summary refs log tree commit diff
diff options
context:
space:
mode:
authorMarius Bakke <mbakke@fastmail.com>2019-05-01 23:11:41 +0200
committerMarius Bakke <mbakke@fastmail.com>2019-05-01 23:11:41 +0200
commit3b458d5462e6bbd852c2dc5c6670d5655abf53f5 (patch)
tree4f3ccec0de1c355134369333c17e948e3258d546
parent2ca3fdc2db1aef96fbf702a2f26f5e18ce832038 (diff)
parent14da3daafc8dd92fdabd3367694c930440fd72cb (diff)
downloadguix-3b458d5462e6bbd852c2dc5c6670d5655abf53f5.tar.gz
Merge branch 'master' into core-updates
-rw-r--r--.gitignore2
-rw-r--r--Makefile.am33
-rw-r--r--NEWS84
-rwxr-xr-xbootstrap14
-rw-r--r--build-aux/build-self.scm13
-rw-r--r--build-aux/compile-all.scm17
-rw-r--r--configure.ac8
-rw-r--r--doc/contributing.de.texi1008
-rw-r--r--doc/contributing.fr.texi1005
-rw-r--r--doc/contributing.texi7
-rw-r--r--doc/guix.de.texi25126
-rw-r--r--doc/guix.fr.texi25303
-rw-r--r--doc/guix.texi979
-rw-r--r--doc/local.mk22
-rw-r--r--etc/completion/bash/guix11
-rw-r--r--etc/snippets/text-mode/guix-commit-message-rename-package20
-rw-r--r--gnu.scm3
-rw-r--r--gnu/bootloader.scm43
-rw-r--r--gnu/bootloader/depthcharge.scm107
-rw-r--r--gnu/bootloader/grub.scm35
-rw-r--r--gnu/bootloader/u-boot.scm2
-rw-r--r--gnu/build/accounts.scm9
-rw-r--r--gnu/build/file-systems.scm2
-rw-r--r--gnu/build/linux-boot.scm15
-rw-r--r--gnu/build/linux-container.scm48
-rw-r--r--gnu/build/vm.scm30
-rw-r--r--gnu/installer.scm99
-rw-r--r--gnu/installer/final.scm90
-rw-r--r--gnu/installer/keymap.scm8
-rw-r--r--gnu/installer/locale.scm21
-rw-r--r--gnu/installer/newt/final.scm28
-rw-r--r--gnu/installer/newt/keymap.scm45
-rw-r--r--gnu/installer/newt/locale.scm54
-rw-r--r--gnu/installer/newt/network.scm7
-rw-r--r--gnu/installer/newt/page.scm76
-rw-r--r--gnu/installer/newt/partition.scm36
-rw-r--r--gnu/installer/newt/services.scm80
-rw-r--r--gnu/installer/newt/timezone.scm5
-rw-r--r--gnu/installer/newt/user.scm99
-rw-r--r--gnu/installer/newt/welcome.scm8
-rw-r--r--gnu/installer/newt/wifi.scm3
-rw-r--r--gnu/installer/parted.scm55
-rw-r--r--gnu/installer/services.scm158
-rw-r--r--gnu/installer/steps.scm28
-rw-r--r--gnu/installer/user.scm31
-rw-r--r--gnu/installer/utils.scm38
-rw-r--r--gnu/local.mk56
-rw-r--r--gnu/packages.scm25
-rw-r--r--gnu/packages/admin.scm122
-rw-r--r--gnu/packages/algebra.scm96
-rw-r--r--gnu/packages/android.scm2
-rw-r--r--gnu/packages/animation.scm25
-rw-r--r--gnu/packages/antivirus.scm4
-rw-r--r--gnu/packages/assembly.scm4
-rw-r--r--gnu/packages/astronomy.scm21
-rw-r--r--gnu/packages/audio.scm78
-rw-r--r--gnu/packages/aux-files/linux-libre/5.0-arm-veyron.conf4574
-rw-r--r--gnu/packages/backup.scm9
-rw-r--r--gnu/packages/base.scm16
-rw-r--r--gnu/packages/bioconductor.scm1754
-rw-r--r--gnu/packages/bioinformatics.scm636
-rw-r--r--gnu/packages/bootloaders.scm65
-rw-r--r--gnu/packages/c.scm34
-rw-r--r--gnu/packages/calendar.scm18
-rw-r--r--gnu/packages/cdrom.scm130
-rw-r--r--gnu/packages/check.scm65
-rw-r--r--gnu/packages/chez.scm2
-rw-r--r--gnu/packages/chromium.scm163
-rw-r--r--gnu/packages/commencement.scm2
-rw-r--r--gnu/packages/compression.scm4
-rw-r--r--gnu/packages/conky.scm8
-rw-r--r--gnu/packages/connman.scm11
-rw-r--r--gnu/packages/cpp.scm9
-rw-r--r--gnu/packages/cran.scm2409
-rw-r--r--gnu/packages/crypto.scm20
-rw-r--r--gnu/packages/cups.scm8
-rw-r--r--gnu/packages/curl.scm18
-rw-r--r--gnu/packages/databases.scm161
-rw-r--r--gnu/packages/dc.scm6
-rw-r--r--gnu/packages/debug.scm20
-rw-r--r--gnu/packages/dictionaries.scm15
-rw-r--r--gnu/packages/disk.scm6
-rw-r--r--gnu/packages/display-managers.scm86
-rw-r--r--gnu/packages/django.scm9
-rw-r--r--gnu/packages/dlang.scm185
-rw-r--r--gnu/packages/dns.scm98
-rw-r--r--gnu/packages/docker.scm11
-rw-r--r--gnu/packages/dunst.scm2
-rw-r--r--gnu/packages/elf.scm8
-rw-r--r--gnu/packages/emacs-xyz.scm3928
-rw-r--r--gnu/packages/emacs.scm6
-rw-r--r--gnu/packages/embedded.scm2
-rw-r--r--gnu/packages/emulators.scm169
-rw-r--r--gnu/packages/engineering.scm123
-rw-r--r--gnu/packages/enlightenment.scm21
-rw-r--r--gnu/packages/entr.scm5
-rw-r--r--gnu/packages/erlang.scm19
-rw-r--r--gnu/packages/file-systems.scm2
-rw-r--r--gnu/packages/file.scm4
-rw-r--r--gnu/packages/finance.scm36
-rw-r--r--gnu/packages/firmware.scm23
-rw-r--r--gnu/packages/flashing-tools.scm19
-rw-r--r--gnu/packages/fltk.scm4
-rw-r--r--gnu/packages/fonts.scm156
-rw-r--r--gnu/packages/fpga.scm6
-rw-r--r--gnu/packages/freedesktop.scm221
-rw-r--r--gnu/packages/ftp.scm10
-rw-r--r--gnu/packages/game-development.scm123
-rw-r--r--gnu/packages/games.scm1388
-rw-r--r--gnu/packages/geo.scm62
-rw-r--r--gnu/packages/ghostscript.scm11
-rw-r--r--gnu/packages/gimp.scm6
-rw-r--r--gnu/packages/gl.scm4
-rw-r--r--gnu/packages/gnome.scm132
-rw-r--r--gnu/packages/gnucash.scm7
-rw-r--r--gnu/packages/gnunet.scm4
-rw-r--r--gnu/packages/gnupg.scm17
-rw-r--r--gnu/packages/gnuzilla.scm162
-rw-r--r--gnu/packages/golang.scm341
-rw-r--r--gnu/packages/gpodder.scm105
-rw-r--r--gnu/packages/graph.scm180
-rw-r--r--gnu/packages/graphics.scm56
-rw-r--r--gnu/packages/gtk.scm2
-rw-r--r--gnu/packages/guile-xyz.scm175
-rw-r--r--gnu/packages/guile.scm32
-rw-r--r--gnu/packages/hardware.scm4
-rw-r--r--gnu/packages/haskell-apps.scm400
-rw-r--r--gnu/packages/haskell-check.scm6
-rw-r--r--gnu/packages/haskell-crypto.scm43
-rw-r--r--gnu/packages/haskell-web.scm108
-rw-r--r--gnu/packages/haskell.scm64
-rw-r--r--gnu/packages/ibus.scm37
-rw-r--r--gnu/packages/idris.scm36
-rw-r--r--gnu/packages/image.scm85
-rw-r--r--gnu/packages/imagemagick.scm4
-rw-r--r--gnu/packages/ipfs.scm4
-rw-r--r--gnu/packages/java.scm120
-rw-r--r--gnu/packages/kde-frameworks.scm7
-rw-r--r--gnu/packages/kde.scm87
-rw-r--r--gnu/packages/kodi.scm7
-rw-r--r--gnu/packages/libedit.scm9
-rw-r--r--gnu/packages/libreoffice.scm24
-rw-r--r--gnu/packages/libusb.scm4
-rw-r--r--gnu/packages/linux.scm219
-rw-r--r--gnu/packages/lirc.scm8
-rw-r--r--gnu/packages/lisp.scm1570
-rw-r--r--gnu/packages/llvm.scm39
-rw-r--r--gnu/packages/machine-learning.scm586
-rw-r--r--gnu/packages/mail.scm205
-rw-r--r--gnu/packages/mate.scm188
-rw-r--r--gnu/packages/maths.scm514
-rw-r--r--gnu/packages/maven.scm4
-rw-r--r--gnu/packages/messaging.scm42
-rw-r--r--gnu/packages/microcom.scm2
-rw-r--r--gnu/packages/monitoring.scm12
-rw-r--r--gnu/packages/mp3.scm18
-rw-r--r--gnu/packages/mpd.scm10
-rw-r--r--gnu/packages/mpi.scm5
-rw-r--r--gnu/packages/mtools.scm22
-rw-r--r--gnu/packages/music.scm87
-rw-r--r--gnu/packages/musl.scm4
-rw-r--r--gnu/packages/nano.scm6
-rw-r--r--gnu/packages/ncurses.scm8
-rw-r--r--gnu/packages/networking.scm177
-rw-r--r--gnu/packages/nss.scm184
-rw-r--r--gnu/packages/ocaml.scm2570
-rw-r--r--gnu/packages/openldap.scm4
-rw-r--r--gnu/packages/package-management.scm40
-rw-r--r--gnu/packages/parallel.scm6
-rw-r--r--gnu/packages/password-utils.scm72
-rw-r--r--gnu/packages/patches/bind-fix-unused-pk11-ecc-constants.patch43
-rw-r--r--gnu/packages/patches/docker-use-fewer-modprobes.patch137
-rw-r--r--gnu/packages/patches/emacs-undohist-ignored.patch27
-rw-r--r--gnu/packages/patches/emacs-zones-called-interactively.patch43
-rw-r--r--gnu/packages/patches/flac-CVE-2017-6888.patch29
-rw-r--r--gnu/packages/patches/grub-efi-fat-serial-number.patch27
-rw-r--r--gnu/packages/patches/idris-test-no-node.patch61
-rw-r--r--gnu/packages/patches/knot-include-system-lmdb-header.patch34
-rw-r--r--gnu/packages/patches/kodi-set-libcurl-ssl-parameters.patch17
-rw-r--r--gnu/packages/patches/lcms-CVE-2018-16435.patch171
-rw-r--r--gnu/packages/patches/ledger-fix-uninitialized.patch27
-rw-r--r--gnu/packages/patches/libopenshot-fixup-tests.patch148
-rw-r--r--gnu/packages/patches/libopenshot-tests-with-system-libs.patch95
-rw-r--r--gnu/packages/patches/linkchecker-tests-require-network.patch (renamed from gnu/packages/patches/linkchecker-mark-more-tests-that-require-the-network.patch)0
-rw-r--r--gnu/packages/patches/localed-xorg-keyboard.patch322
-rw-r--r--gnu/packages/patches/mtools-mformat-uninitialized.patch20
-rw-r--r--gnu/packages/patches/ntfs-3g-CVE-2019-9755.patch72
-rw-r--r--gnu/packages/patches/ocaml-dose3-Fix-for-ocaml-4.06.patch52
-rw-r--r--gnu/packages/patches/ocaml-dose3-Install-mli-cmx-etc.patch133
-rw-r--r--gnu/packages/patches/ocaml-dose3-add-unix-dependency.patch25
-rw-r--r--gnu/packages/patches/ocaml-dose3-dont-make-printconf.patch9
-rw-r--r--gnu/packages/patches/openssh-CVE-2018-20685.patch44
-rw-r--r--gnu/packages/patches/python-pyfakefs-remove-bad-test.patch23
-rw-r--r--gnu/packages/patches/python-robotframework-honor-source-date-epoch.patch62
-rw-r--r--gnu/packages/patches/quilt-getopt-nondigit-param.patch45
-rw-r--r--gnu/packages/patches/quilt-getopt-second-separator.patch58
-rw-r--r--gnu/packages/patches/quilt-test-fix-regex.patch41
-rw-r--r--gnu/packages/patches/reptyr-fix-gcc-7.patch38
-rw-r--r--gnu/packages/patches/soundtouch-CVE-2018-1000223.patch143
-rw-r--r--gnu/packages/patches/soundtouch-CVE-2018-14044-14045.patch138
-rw-r--r--gnu/packages/patches/synfigstudio-fix-ui-with-gtk3.patch55
-rw-r--r--gnu/packages/patches/texlive-bin-CVE-2018-17407.patch249
-rw-r--r--gnu/packages/patches/texlive-bin-pdftex-poppler-compat.patch188
-rw-r--r--gnu/packages/patches/texlive-bin-xetex-poppler-compat.patch31
-rw-r--r--gnu/packages/patches/u-boot-fix-mkimage-header-verification.patch57
-rw-r--r--gnu/packages/patches/webkitgtk-sse2.patch202
-rw-r--r--gnu/packages/patchutils.scm25
-rw-r--r--gnu/packages/pdf.scm5
-rw-r--r--gnu/packages/perl-check.scm133
-rw-r--r--gnu/packages/perl-web.scm59
-rw-r--r--gnu/packages/perl.scm325
-rw-r--r--gnu/packages/perl6.scm21
-rw-r--r--gnu/packages/photo.scm32
-rw-r--r--gnu/packages/php.scm20
-rw-r--r--gnu/packages/plotutils.scm56
-rw-r--r--gnu/packages/poedit.scm80
-rw-r--r--gnu/packages/polkit.scm1
-rw-r--r--gnu/packages/pretty-print.scm15
-rw-r--r--gnu/packages/printers.scm56
-rw-r--r--gnu/packages/protobuf.scm33
-rw-r--r--gnu/packages/python-crypto.scm8
-rw-r--r--gnu/packages/python-web.scm4
-rw-r--r--gnu/packages/python-xyz.scm611
-rw-r--r--gnu/packages/qt.scm14
-rw-r--r--gnu/packages/rails.scm2
-rw-r--r--gnu/packages/ratpoison.scm45
-rw-r--r--gnu/packages/rdf.scm34
-rw-r--r--gnu/packages/regex.scm4
-rw-r--r--gnu/packages/ruby.scm34
-rw-r--r--gnu/packages/rust.scm249
-rw-r--r--gnu/packages/samba.scm17
-rw-r--r--gnu/packages/scheme.scm172
-rw-r--r--gnu/packages/screen.scm39
-rw-r--r--gnu/packages/sdl.scm109
-rw-r--r--gnu/packages/search.scm30
-rw-r--r--gnu/packages/security-token.scm224
-rw-r--r--gnu/packages/serialization.scm20
-rw-r--r--gnu/packages/shellutils.scm54
-rw-r--r--gnu/packages/spice.scm47
-rw-r--r--gnu/packages/ssh.scm31
-rw-r--r--gnu/packages/sssd.scm4
-rw-r--r--gnu/packages/statistics.scm176
-rw-r--r--gnu/packages/storage.scm2
-rw-r--r--gnu/packages/suckless.scm7
-rw-r--r--gnu/packages/sync.scm4
-rw-r--r--gnu/packages/syncthing.scm6
-rw-r--r--gnu/packages/telephony.scm377
-rw-r--r--gnu/packages/terminals.scm25
-rw-r--r--gnu/packages/tex.scm42
-rw-r--r--gnu/packages/textutils.scm2
-rw-r--r--gnu/packages/tls.scm56
-rw-r--r--gnu/packages/tmux.scm8
-rw-r--r--gnu/packages/upnp.scm4
-rw-r--r--gnu/packages/valgrind.scm15
-rw-r--r--gnu/packages/version-control.scm475
-rw-r--r--gnu/packages/video.scm84
-rw-r--r--gnu/packages/vim.scm10
-rw-r--r--gnu/packages/virtualization.scm16
-rw-r--r--gnu/packages/vpn.scm18
-rw-r--r--gnu/packages/vulkan.scm80
-rw-r--r--gnu/packages/w3m.scm6
-rw-r--r--gnu/packages/web-browsers.scm6
-rw-r--r--gnu/packages/web.scm168
-rw-r--r--gnu/packages/webkit.scm6
-rw-r--r--gnu/packages/wget.scm11
-rw-r--r--gnu/packages/wine.scm6
-rw-r--r--gnu/packages/wm.scm67
-rw-r--r--gnu/packages/xdisorg.scm22
-rw-r--r--gnu/packages/xfce.scm80
-rw-r--r--gnu/packages/xiph.scm5
-rw-r--r--gnu/packages/xml.scm114
-rw-r--r--gnu/packages/xorg.scm41
-rw-r--r--gnu/services/authentication.scm16
-rw-r--r--gnu/services/base.scm32
-rw-r--r--gnu/services/certbot.scm40
-rw-r--r--gnu/services/dbus.scm48
-rw-r--r--gnu/services/desktop.scm70
-rw-r--r--gnu/services/dns.scm87
-rw-r--r--gnu/services/mail.scm45
-rw-r--r--gnu/services/networking.scm15
-rw-r--r--gnu/services/sddm.scm14
-rw-r--r--gnu/services/shepherd.scm26
-rw-r--r--gnu/services/ssh.scm3
-rw-r--r--gnu/services/web.scm1
-rw-r--r--gnu/services/xorg.scm320
-rw-r--r--gnu/system.scm109
-rw-r--r--gnu/system/accounts.scm7
-rw-r--r--gnu/system/examples/asus-c201.tmpl60
-rw-r--r--gnu/system/examples/bare-bones.tmpl3
-rw-r--r--gnu/system/examples/beaglebone-black.tmpl3
-rw-r--r--gnu/system/examples/desktop.tmpl23
-rw-r--r--gnu/system/examples/docker-image.tmpl3
-rw-r--r--gnu/system/examples/lightweight-desktop.tmpl3
-rw-r--r--gnu/system/examples/vm-image.tmpl116
-rw-r--r--gnu/system/install.scm131
-rw-r--r--gnu/system/keyboard.scm98
-rw-r--r--gnu/system/linux-container.scm68
-rw-r--r--gnu/system/linux-initrd.scm26
-rw-r--r--gnu/system/shadow.scm5
-rw-r--r--gnu/system/vm.scm57
-rw-r--r--gnu/tests.scm5
-rw-r--r--gnu/tests/install.scm19
-rw-r--r--gnu/tests/networking.scm4
-rw-r--r--guix/build-system/cargo.scm9
-rw-r--r--guix/build-system/dune.scm2
-rw-r--r--guix/build-system/linux-module.scm175
-rw-r--r--guix/build-system/ocaml.scm22
-rw-r--r--guix/build/cargo-build-system.scm155
-rw-r--r--guix/build/clojure-utils.scm2
-rw-r--r--guix/build/dune-build-system.scm17
-rw-r--r--guix/build/go-build-system.scm4
-rw-r--r--guix/build/guile-build-system.scm98
-rw-r--r--guix/build/linux-module-build-system.scm91
-rw-r--r--guix/build/po.scm69
-rw-r--r--guix/build/ruby-build-system.scm2
-rw-r--r--guix/build/syscalls.scm4
-rw-r--r--guix/channels.scm1
-rw-r--r--guix/colors.scm188
-rw-r--r--guix/config.scm.in4
-rw-r--r--guix/derivations.scm5
-rw-r--r--guix/download.scm8
-rw-r--r--guix/gexp.scm47
-rw-r--r--guix/import/opam.scm102
-rw-r--r--guix/licenses.scm16
-rw-r--r--guix/packages.scm31
-rw-r--r--guix/profiles.scm15
-rw-r--r--guix/records.scm54
-rw-r--r--guix/scripts.scm13
-rw-r--r--guix/scripts/build.scm109
-rw-r--r--guix/scripts/describe.scm8
-rw-r--r--guix/scripts/environment.scm64
-rw-r--r--guix/scripts/gc.scm71
-rw-r--r--guix/scripts/install.scm80
-rw-r--r--guix/scripts/lint.scm10
-rw-r--r--guix/scripts/pack.scm8
-rw-r--r--guix/scripts/package.scm21
-rw-r--r--guix/scripts/pull.scm138
-rw-r--r--guix/scripts/refresh.scm6
-rw-r--r--guix/scripts/remove.scm77
-rw-r--r--guix/scripts/search.scm67
-rw-r--r--guix/scripts/size.scm14
-rw-r--r--guix/scripts/system.scm5
-rw-r--r--guix/scripts/upgrade.scm88
-rw-r--r--guix/self.scm138
-rw-r--r--guix/status.scm50
-rw-r--r--guix/store.scm103
-rw-r--r--guix/store/deduplication.scm4
-rw-r--r--guix/store/roots.scm120
-rw-r--r--guix/ui.scm258
-rw-r--r--guix/upstream.scm68
-rw-r--r--po/doc/guix-manual.de.po26819
-rw-r--r--po/doc/guix-manual.es.po47521
-rw-r--r--po/doc/guix-manual.fr.po24430
-rw-r--r--po/doc/guix-manual.zh_CN.po45278
-rw-r--r--po/doc/local.mk8
-rw-r--r--po/guix/POTFILES.in6
-rw-r--r--po/guix/de.po2222
-rw-r--r--po/guix/es.po4193
-rw-r--r--po/guix/fr.po2185
-rw-r--r--po/packages/es.po13259
-rw-r--r--po/packages/fr.po9358
-rw-r--r--tests/accounts.scm10
-rw-r--r--tests/containers.scm11
-rw-r--r--tests/guix-build.sh14
-rw-r--r--tests/guix-environment-container.sh27
-rw-r--r--tests/guix-gc.sh6
-rw-r--r--tests/guix-package-aliases.sh60
-rw-r--r--tests/pack.scm8
-rw-r--r--tests/records.scm58
-rw-r--r--tests/scripts.scm1
-rw-r--r--tests/store-roots.scm53
-rw-r--r--tests/zlib.scm7
372 files changed, 171595 insertions, 96577 deletions
diff --git a/.gitignore b/.gitignore
index 2ffb438219..93d2ec9801 100644
--- a/.gitignore
+++ b/.gitignore
@@ -28,6 +28,7 @@
 /configure
 /doc/*.1
 /doc/.dirstamp
+/doc/contributing.*.texi
 /doc/guix.*.aux
 /doc/guix.*.cp
 /doc/guix.*.cps
@@ -43,6 +44,7 @@
 /doc/guix.*.tp
 /doc/guix.*.vr
 /doc/guix.*.vrs
+/doc/guix.*.texi
 /doc/guix.aux
 /doc/guix.cp
 /doc/guix.cps
diff --git a/Makefile.am b/Makefile.am
index 4902f3afe7..36f3bc5c27 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -54,6 +54,7 @@ nodist_noinst_SCRIPTS =				\
 # Modules that are not compiled but are installed nonetheless, such as
 # build-side modules with unusual dependencies.
 MODULES_NOT_COMPILED =				\
+  guix/build/po.scm				\
   guix/man-db.scm
 
 include gnu/local.mk
@@ -120,6 +121,7 @@ MODULES =					\
   guix/build-system/gnu.scm			\
   guix/build-system/guile.scm			\
   guix/build-system/haskell.scm			\
+  guix/build-system/linux-module.scm		\
   guix/build-system/perl.scm			\
   guix/build-system/python.scm			\
   guix/build-system/ocaml.scm			\
@@ -138,6 +140,7 @@ MODULES =					\
   guix/store.scm				\
   guix/cvs-download.scm				\
   guix/svn-download.scm				\
+  guix/colors.scm				\
   guix/i18n.scm					\
   guix/ui.scm					\
   guix/status.scm				\
@@ -172,6 +175,7 @@ MODULES =					\
   guix/build/texlive-build-system.scm		\
   guix/build/waf-build-system.scm		\
   guix/build/haskell-build-system.scm		\
+  guix/build/linux-module-build-system.scm	\
   guix/build/store-copy.scm			\
   guix/build/utils.scm				\
   guix/build/union.scm				\
@@ -220,6 +224,10 @@ MODULES =					\
   guix/scripts/archive.scm			\
   guix/scripts/import.scm			\
   guix/scripts/package.scm			\
+  guix/scripts/install.scm			\
+  guix/scripts/remove.scm			\
+  guix/scripts/upgrade.scm			\
+  guix/scripts/search.scm			\
   guix/scripts/gc.scm				\
   guix/scripts/hash.scm				\
   guix/scripts/pack.scm				\
@@ -276,7 +284,8 @@ endif BUILD_DAEMON_OFFLOAD
 # Scheme implementation of the build daemon and related functionality.
 STORE_MODULES =					\
   guix/store/database.scm			\
-  guix/store/deduplication.scm
+  guix/store/deduplication.scm			\
+  guix/store/roots.scm
 
 MODULES += $(STORE_MODULES)
 
@@ -292,6 +301,7 @@ AUX_FILES =						\
   gnu/packages/aux-files/linux-libre/5.0-i686.conf	\
   gnu/packages/aux-files/linux-libre/5.0-x86_64.conf	\
   gnu/packages/aux-files/linux-libre/4.19-arm.conf	\
+  gnu/packages/aux-files/linux-libre/5.0-arm-veyron.conf       \
   gnu/packages/aux-files/linux-libre/4.19-arm64.conf	\
   gnu/packages/aux-files/linux-libre/4.19-i686.conf	\
   gnu/packages/aux-files/linux-libre/4.19-x86_64.conf	\
@@ -306,6 +316,7 @@ AUX_FILES =						\
 
 # Templates, examples.
 EXAMPLES =					\
+  gnu/system/examples/asus-c201.tmpl		\
   gnu/system/examples/bare-bones.tmpl		\
   gnu/system/examples/beaglebone-black.tmpl	\
   gnu/system/examples/desktop.tmpl		\
@@ -405,7 +416,8 @@ SCM_TESTS =					\
   tests/pypi.scm				\
   tests/import-utils.scm			\
   tests/store-database.scm			\
-  tests/store-deduplication.scm
+  tests/store-deduplication.scm			\
+  tests/store-roots.scm
 
 SH_TESTS =					\
   tests/guix-build.sh				\
@@ -417,6 +429,7 @@ SH_TESTS =					\
   tests/guix-pack-localstatedir.sh		\
   tests/guix-pack-relocatable.sh		\
   tests/guix-package.sh				\
+  tests/guix-package-aliases.sh			\
   tests/guix-package-net.sh			\
   tests/guix-system.sh				\
   tests/guix-archive.sh				\
@@ -677,6 +690,13 @@ GUIX_SYSTEM_IMAGE_BASE = guix-system-install-$(PACKAGE_VERSION)
 # Prefix of the Guix VM image file name.
 GUIX_SYSTEM_VM_IMAGE_BASE = guix-system-vm-image-$(PACKAGE_VERSION)
 
+# Flags for 'guix system vm-image'.  By default create a VM image that appears
+# to have a 20G hard disk.
+GUIX_SYSTEM_VM_IMAGE_FLAGS ?= --image-size=30G
+
+# Return the sequence of '-s' flags for the given systems.
+system_flags = $(foreach system,$(1),-s $(system))
+
 # The release process works in several phases:
 #
 #   0. We assume the developer created a 'vX.Y' tag.
@@ -694,6 +714,7 @@ GUIX_SYSTEM_VM_IMAGE_BASE = guix-system-vm-image-$(PACKAGE_VERSION)
 # issue described at <https://savannah.gnu.org/bugs/index.php?51027>.
 release: dist
 	cd po; git checkout .
+	cd doc; git checkout .
 	@if ! git diff-index --quiet HEAD; then			\
 	  echo "There are uncommitted changes; stopping." >&2 ;	\
 	  exit 1 ;						\
@@ -706,6 +727,9 @@ release: dist
 	   "`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	\
+	      $(call system_flags,$(SUPPORTED_SYSTEMS))	\
+	      -v1 --no-grafts -K
 	rm -f $(BINARY_TARBALLS)
 	$(MAKE) $(BINARY_TARBALLS)
 	for system in $(SUPPORTED_SYSTEMS) ; do					\
@@ -717,6 +741,9 @@ release: dist
 	   "`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			\
+	      $(call system_flags,$(GUIX_SYSTEM_SUPPORTED_SYSTEMS))	\
+	      -v1 --no-grafts -K
 	for system in $(GUIX_SYSTEM_SUPPORTED_SYSTEMS) ; do				\
 	  image=`$(top_builddir)/pre-inst-env						\
 	    guix system disk-image							\
@@ -733,7 +760,7 @@ release: dist
 	done
 	for system in $(GUIX_SYSTEM_VM_SYSTEMS) ; do					\
 	  image=`$(top_builddir)/pre-inst-env						\
-	    guix system vm-image							\
+	    guix system vm-image $(GUIX_SYSTEM_VM_IMAGE_FLAGS)				\
 	    --system=$$system								\
 	    gnu/system/examples/vm-image.tmpl` ;					\
 	  if [ ! -f "$$image" ] ; then							\
diff --git a/NEWS b/NEWS
index b78c2c6a71..bc1e739d84 100644
--- a/NEWS
+++ b/NEWS
@@ -2,7 +2,7 @@
 #+TITLE: Guix NEWS – history of user-visible changes
 #+STARTUP: content hidestars
 
-Copyright © 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
+Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
 Copyright © 2016, 2017, 2018 Ricardo Wurmus <rekado@elephly.net>
 
   Copying and distribution of this file, with or without modification,
@@ -11,6 +11,88 @@ Copyright © 2016, 2017, 2018 Ricardo Wurmus <rekado@elephly.net>
 
 Please send Guix bug reports to bug-guix@gnu.org.
 
+* Changes in 1.0.0 (since 0.16.0)
+** Package management
+*** New ‘-v’/‘--verbosity’ option for all commands
+*** Most commands now default to verbosity level 1 (“quiet”)
+*** New ‘guix package’ aliases: ‘install’, ‘remove’, ‘upgrade’, and ‘search’
+*** ‘guix pack -RR’ produces PRoot-enabled relocatable binaries
+*** New ‘--save-provenance’ option for ‘guix pack’
+*** CLI diagnostics use colors; more operations show progress bars
+*** New ‘--news’ option for ‘guix pull’
+*** New ‘--preserve’ option for ‘guix environment’
+*** ‘guix environment -C’ creates containers with a non-zero UID
+*** Channels can now specify dependencies in a ‘.guix-channel’ file
+*** New ‘reverse-bag’ graph type for ‘guix graph’
+*** New ‘--with-git-url’ package transformation option
+*** The ‘--with-branch’ package transformation option fetches Git sub-modules
+*** New ‘guix system delete-generations’ command
+*** New ‘--list-roots’ and ‘--delete-generations’ options for ‘guix gc’
+*** New ‘--coverage’ option for ‘guix weather’
+*** ‘guix pull’ computes a package cache to speed up package lookups by name
+*** ‘guix pull’ now embeds ‘glibc-utf8-locales’
+*** ‘guix refresh -l’ better estimates dependents
+*** ‘guix build’ can take multiple ‘--system’ flags
+*** ‘guix offload’ avoids build machines with too little free disk space
+*** ‘guix offload’ now uses (guix inferior) to communicate with remote hosts
+*** Guix can no longer be built with Guile 2.0
+** Distribution
+*** New text-mode graphical installer
+*** New virtual machine (VM) image
+*** New ‘keyboard-layout’ field for the OS, bootloader, and Xorg configuration
+*** New ‘xorg-configuration’ record type for Xorg server configuration
+*** ‘%desktop-services’ now includes GDM instead of SLiM for graphical log-in
+*** New ‘label’ and ‘essential-services’ fields for <operation-system>
+*** The manual has been restructured for clarity
+*** New ‘remote-inferior’ procedure in (guix ssh)
+*** New (gnu ci) module for continuous integration jobs
+*** (gnu services shepherd) now supports one-shot services
+*** New services
+
+cups-pk-helper, imap4d, inputattach, localed, nslcd, zabbix-agent,
+zabbix-server
+
+*** XXX new packages
+*** XXX package updates
+** Programming interfaces
+*** New ‘this-package’, ‘this-origin’, and ‘this-operating-system’ macros
+*** The ‘self-native-input?’ field was removed from <package>
+*** New ‘package-input-rewriting/spec’ procedure for graph rewriting
+*** New ‘package-closure’ procedure in (guix packages)
+*** New UI helper modules (guix colors) and (guix deprecation)
+*** New (gnu build accounts) module to manage /etc/{passwd,shadow,group}
+*** ‘nix-*’ bindings in (guix store) replaced by ‘store-connection-*’
+*** Records created by ‘define-record-type*’ report duplicate fields
+** Noteworthy bug fixes
+*** ISO images produced by ‘guix system’ are now reproducible bit-for-bit
+    (<https://bugs.gnu.org/35283>)
+*** ‘guix pack -f squashfs’ produces relative symlinks
+    (<https://bugs.gnu.org/34913>)
+*** ‘guix package -r something-not-installed’ now raises an error
+*** Fix multi-threaded miscompilation issue with syntax parameters
+    (<https://bugs.gnu.org/27476>)
+*** file-systems: Spawn a REPL only when interaction is possible
+    (<https://bugs.gnu.org/23697>)
+*** ‘guix environment’ supports package transformation options
+    (<https://bugs.gnu.org/33776>)
+*** ‘guix substitute’ now ignores irrelevant narinfo signatures
+    (<https://bugs.gnu.org/33733>)
+*** On Guix System, guix-daemon now runs in a UTF-8 locale
+    (<https://bugs.gnu.org/32942>)
+*** Fix relative file name canonicalization for '--root'
+    (<https://bugs.gnu.org/35271>)
+*** vm: Do not mount /xchg with "cache=loose"
+    (<https://bugs.gnu.org/33639>)
+*** build-system/go: Build with a filesystem union of Go dependencies
+    (<https://bugs.gnu.org/33620>)
+*** 'containerized-operating-system' removes "useless" services
+    (<https://bugs.gnu.org/34211>)
+** Native language support
+*** The manual is now fully translated in French and Spanish
+*** The manual is also partly translated in German and in Simplified Chinese
+*** Updated translations: da, de, es, fr
+*** New translations: sv
+
 * Changes in 0.16.0 (since 0.15.0)
 
 ** Package management
diff --git a/bootstrap b/bootstrap
index cb774bc737..c0b5af7677 100755
--- a/bootstrap
+++ b/bootstrap
@@ -2,4 +2,18 @@
 # Create the build system.
 
 set -e -x
+
+# Generate stubs for translations.
+langs=`find po/doc -type f -name '*.po' \
+        | sed -e 's,guix-manual\.,,' \
+        | xargs -n 1 -I{} basename {} .po`
+for lang in ${langs}; do
+    if [ ! -e "doc/guix.${lang}.texi" ]; then
+	echo "@setfilename guix.${lang}.info" > "doc/guix.${lang}.texi"
+	echo "@include version-${lang}.texi" >> "doc/guix.${lang}.texi"
+	# Ensure .po file is newer.
+	touch "po/doc/guix-manual.${lang}.po"
+    fi
+done
+
 exec autoreconf -vfi
diff --git a/build-aux/build-self.scm b/build-aux/build-self.scm
index d18b4504cf..1ddd2233b0 100644
--- a/build-aux/build-self.scm
+++ b/build-aux/build-self.scm
@@ -54,10 +54,6 @@
 ;;; available at this point.
 ;;;
 
-(define %dependency-variables
-  ;; (guix config) variables corresponding to dependencies.
-  '(%libgcrypt %libz %xz %gzip %bzip2))
-
 (define %persona-variables
   ;; (guix config) variables that define Guix's persona.
   '(%guix-package-name
@@ -313,7 +309,11 @@ interface (FFI) of Guile.")
                           (cons (string-append #$guile-gcrypt "/lib/guile/"
                                                (effective-version)
                                                "/site-ccache")
-                                %load-compiled-path)))
+                                %load-compiled-path))
+
+                        ;; Disable position recording to save time and space
+                        ;; when loading the package modules.
+                        (read-disable 'positions))
 
                       (use-modules (guix store)
                                    (guix self)
@@ -399,6 +399,9 @@ files."
   (mlet %store-monad ((build  (build-program source version guile-version
                                              #:pull-version pull-version))
                       (system (if system (return system) (current-system)))
+
+                      ;; Note: Use the deprecated names here because the
+                      ;; caller might be Guix <= 0.16.0.
                       (port   ((store-lift nix-server-socket)))
                       (major  ((store-lift nix-server-major-version)))
                       (minor  ((store-lift nix-server-minor-version))))
diff --git a/build-aux/compile-all.scm b/build-aux/compile-all.scm
index d2afbdab02..4259ea523c 100644
--- a/build-aux/compile-all.scm
+++ b/build-aux/compile-all.scm
@@ -1,6 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2016 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
-;;; Copyright © 2016, 2017 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2016, 2017, 2019 Ludovic Courtès <ludo@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -17,7 +17,8 @@
 ;;; You should have received a copy of the GNU General Public License
 ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 
-(use-modules (ice-9 match)
+(use-modules (ice-9 format)
+             (ice-9 match)
              (ice-9 threads)
              (srfi srfi-1)
              (guix build compile)
@@ -78,6 +79,10 @@ to 'make'."
                        (current-processor-count))))
                 (loop tail)))))))))
 
+(define (% completed total)
+  "Return the completion percentage of COMPLETED over TOTAL as an integer."
+  (inexact->exact (round (* 100. (/ completed total)))))
+
 ;; Install a SIGINT handler to give unwind handlers in 'compile-file' an
 ;; opportunity to run upon SIGINT and to remove temporary output files.
 (sigaction SIGINT
@@ -92,10 +97,14 @@ to 'make'."
                   #:host host
                   #:report-load (lambda (file total completed)
                                   (when file
-                                    (format #t "  LOAD     ~a~%" file)
+                                    (format #t "[~3d%] LOAD     ~a~%"
+                                            (% (+ 1 completed) (* 2 total))
+                                            file)
                                     (force-output)))
                   #:report-compilation (lambda (file total completed)
                                          (when file
-                                           (format #t "  GUILEC   ~a~%"
+                                           (format #t "[~3d%] GUILEC   ~a~%"
+                                                   (% (+ total completed 1)
+                                                      (* 2 total))
                                                    (scm->go file))
                                            (force-output))))))
diff --git a/configure.ac b/configure.ac
index 5d70de4beb..7e7ae02730 100644
--- a/configure.ac
+++ b/configure.ac
@@ -202,7 +202,6 @@ else
    AC_MSG_RESULT([not found])
 fi
 
-LIBGCRYPT="libgcrypt"
 LIBGCRYPT_LIBDIR="no"
 LIBGCRYPT_PREFIX="no"
 
@@ -212,7 +211,6 @@ AC_ARG_WITH([libgcrypt-prefix],
     yes|no)
       ;;
     *)
-      LIBGCRYPT="$withval/lib/libgcrypt"
       LIBGCRYPT_PREFIX="$withval"
       LIBGCRYPT_LIBDIR="$withval/lib"
       ;;
@@ -223,11 +221,9 @@ AC_ARG_WITH([libgcrypt-libdir],
      [search for GNU libgcrypt's shared library in DIR])],
   [case "$withval" in
     yes|no)
-      LIBGCRYPT="libgcrypt"
       LIBGCRYPT_LIBDIR="no"
       ;;
     *)
-      LIBGCRYPT="$withval/libgcrypt"
       LIBGCRYPT_LIBDIR="$withval"
       ;;
    esac])
@@ -240,10 +236,6 @@ case "x$LIBGCRYPT_PREFIX$LIBGCRYPT_LIBDIR" in
     ;;
 esac
 
-dnl Library name suitable for `dynamic-link'.
-AC_MSG_CHECKING([for libgcrypt shared library name])
-AC_MSG_RESULT([$LIBGCRYPT])
-AC_SUBST([LIBGCRYPT])
 AC_SUBST([LIBGCRYPT_PREFIX])
 AC_SUBST([LIBGCRYPT_LIBDIR])
 
diff --git a/doc/contributing.de.texi b/doc/contributing.de.texi
deleted file mode 100644
index 259523aa6f..0000000000
--- a/doc/contributing.de.texi
+++ /dev/null
@@ -1,1008 +0,0 @@
-@node Mitwirken
-@chapter Mitwirken
-
-Dieses Projekt basiert auf Kooperation, daher benötigen wir Ihre Hilfe, um
-es wachsen zu lassen! Bitte kontaktieren Sie uns auf
-@email{guix-devel@@gnu.org} und @code{#guix} im Freenode-IRC-Netzwerk. Wir
-freuen uns auf Ihre Ideen, Fehlerberichte, Patches und alles, was hilfreich
-für das Projekt sein könnte. Besonders willkommen ist Hilfe bei der
-Erstellung von Paketen (@pxref{Paketrichtlinien}).
-
-@cindex Verhaltensregeln, für Mitwirkende
-@cindex Verhaltenskodex für Mitwirkende
-Wir möchten eine angenehme, freundliche und von Belästigungen freie Umgebung
-bereitstellen, so dass jeder Beiträge nach seinen Fähigkeiten leisten
-kann. Zu diesem Zweck verwendet unser Projekt einen »Verhaltenskodex für
-Mitwirkende«, der von @url{http://contributor-covenant.org/} übernommen
-wurde. Eine übersetzte Fassung finden Sie auf
-@url{https://www.contributor-covenant.org/de/version/1/4/code-of-conduct}
-sowie eine mitgelieferte, englische Fassung in der Datei
-@file{CODE-OF-CONDUCT} im Quellbaum.
-
-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.
-
-@menu
-* Erstellung aus dem Git::   Das Neueste und Beste.
-* Guix vor der Installation ausführen::  Hacker-Tricks.
-* Perfekt eingerichtet::     Die richtigen Werkzeuge.
-* Paketrichtlinien::         Die Distribution wachsen lassen.
-* Code-Stil::                Wie Mitwirkende hygienisch arbeiten.
-* Einreichen von Patches::   Teilen Sie Ihre Arbeit.
-@end menu
-
-@node Erstellung aus dem Git
-@section Erstellung aus dem Git
-
-Wenn Sie an Guix selbst hacken wollen, ist es empfehlenswert, dass Sie die
-neueste Version aus dem Git-Softwarebestand verwenden:
-
-@example
-git clone https://git.savannah.gnu.org/git/guix.git
-@end example
-
-Wenn Sie Guix aus einem Checkout erstellen, sind außer den bereits in den
-Installationsanweisungen genannten Paketen weitere nötig
-(@pxref{Voraussetzungen}).
-
-@itemize
-@item @url{http://gnu.org/software/autoconf/, GNU Autoconf};
-@item @url{http://gnu.org/software/automake/, GNU Automake};
-@item @url{http://gnu.org/software/gettext/, GNU Gettext};
-@item @url{http://gnu.org/software/texinfo/, GNU Texinfo};
-@item @url{http://www.graphviz.org/, Graphviz};
-@item @url{http://www.gnu.org/software/help2man/, GNU Help2man (optional)}.
-@end itemize
-
-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:
-
-@example
-guix environment guix
-@end example
-
-In @xref{Aufruf von guix environment} finden Sie weitere Informationen zu
-diesem Befehl. Zusätzliche Abhängigkeiten können mit @option{--ad-hoc}
-hinzugefügt werden:
-
-@example
-guix environment guix --ad-hoc help2man git strace
-@end example
-
-Führen Sie @command{./bootstrap} aus, um die Infrastruktur des
-Erstellungssystems mit Autoconf und Automake zu erstellen. Möglicherweise
-erhalten Sie eine Fehlermeldung wie diese:
-
-@example
-configure.ac:46: error: possibly undefined macro: PKG_CHECK_MODULES
-@end example
-
-@noindent
-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:
-
-@example
-export ACLOCAL_PATH=/usr/share/aclocal
-@end example
-
-In @xref{Macro Search Path,,, automake, The GNU Automake Manual} finden Sie
-weitere Informationen.
-
-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 auf @pxref{Der Store}).
-
-Zum Schluss müssen Sie @code{make check} aufrufen, um die Tests auszuführen
-(@pxref{Die Testsuite laufen lassen}). Falls etwas fehlschlägt, werfen Sie einen
-Blick auf die Installationsanweisungen (@pxref{Installation}) oder senden
-Sie eine E-Mail an die @email{guix-devel@@gnu.org, Mailingliste}.
-
-
-@node Guix vor der Installation ausführen
-@section Guix vor der Installation ausführen
-
-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.
-
-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 (@pxref{Erstellung aus dem 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.}:
-
-@example
-$ sudo -E ./pre-inst-env guix-daemon --build-users-group=guixbuild
-$ ./pre-inst-env guix build hello
-@end example
-
-@noindent
-Entsprechend, um eine Guile-Sitzung zu öffnen, die die Guix-Module benutzt:
-
-@example
-$ ./pre-inst-env guile -c '(use-modules (guix utils)) (pk (%current-system))'
-
-;;; ("x86_64-linux")
-@end example
-
-@noindent
-@cindex REPL
-@cindex Lese-Auswerten-Schreiben-Schleife
-@dots{} und auf einer REPL (@pxref{Using Guile Interactively,,, guile, Guile
-Reference Manual}):
-
-@example
-$ ./pre-inst-env guile
-scheme@@(guile-user)> ,use(guix)
-scheme@@(guile-user)> ,use(gnu)
-scheme@@(guile-user)> (define snakes
-                       (fold-packages
-                         (lambda (package lst)
-                           (if (string-prefix? "python"
-                                               (package-name package))
-                               (cons package lst)
-                               lst))
-                         '()))
-scheme@@(guile-user)> (length snakes)
-$1 = 361
-@end example
-
-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}.
-
-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} (@pxref{Aufruf von guix pull}).  Um
-Ihren lokalen Quellbaum zu aktualisieren, müssen Sie stattdessen
-@command{git pull} benutzen.
-
-
-@node Perfekt eingerichtet
-@section Perfekt eingerichtet
-
-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:
-
-@example
-guix package -i emacs guile emacs-geiser
-@end example
-
-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
-(@pxref{Einführung,,, geiser, Geiser User Manual}). Zur bequemen
-Guix-Entwicklung sollten Sie Guiles Ladepfad so ergänzen, dass die
-Quelldateien in Ihrem Checkout gefunden werden.
-
-@lisp
-;; @r{Angenommen das Guix-Checkout ist in ~/src/guix.}
-(with-eval-after-load 'geiser-guile
-  (add-to-list 'geiser-guile-load-path "~/src/guix"))
-@end lisp
-
-Um den Code tatsächlich zu bearbeiten, bietet Emacs schon einen netten
-Scheme-Modus. Aber Sie dürfen auch
-@url{http://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.
-
-@cindex Code-Schnipsel
-@cindex Vorlagen
-@cindex Tipparbeit sparen
-Wir bieten auch Vorlagen für häufige Git-Commit-Nachrichten und
-Paketdefinitionen im Verzeichnis @file{etc/snippets}. Diese Vorlagen können
-mit @url{http://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.
-
-@lisp
-;; @r{Angenommen das Guix-Checkout ist in ~/src/guix.}
-(with-eval-after-load 'yasnippet
-  (add-to-list 'yas-snippet-dirs "~/src/guix/etc/snippets"))
-@end lisp
-
-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.
-
-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.
-
-
-@node Paketrichtlinien
-@section Paketrichtlinien
-
-@cindex packages, creating
-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.
-
-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.
-
-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{Paketmodule}).  However,
-in-depth Scheme knowledge is @emph{not} a prerequisite for creating
-packages.  For more information on package definitions, @pxref{Pakete definieren}.
-
-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{Aufruf von guix build}).  For example, assuming the new package is
-called @code{gnew}, you may run this command from the Guix build tree
-(@pxref{Guix vor der Installation ausführen}):
-
-@example
-./pre-inst-env guix build gnew --keep-failed
-@end example
-
-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.
-
-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:
-
-@example
-./pre-inst-env guile -c '(use-modules (gnu packages gnew))'
-@end example
-
-Once your package builds correctly, please send us a patch
-(@pxref{Einreichen von 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}.
-
-@cindex substituter
-Users can obtain the new package definition simply by running @command{guix
-pull} (@pxref{Aufruf von guix pull}).  When @code{@value{SUBSTITUTE-SERVER}}
-is done building the package, installing the package automatically downloads
-binaries from there (@pxref{Substitute}).  The only place where human
-intervention is needed is to review and apply the patch.
-
-
-@menu
-* Software-Freiheit::        Was in die Distribution aufgenommen werden 
-                               darf.
-* Paketbenennung::           Was macht einen Namen aus?
-* Versionsnummern::          Wenn der Name noch nicht genug ist.
-* Zusammenfassungen und Beschreibungen::  Den Nutzern helfen, das richtige 
-                                            Paket zu finden.
-* Python-Module::            Ein Touch britischer Comedy.
-* Perl-Module::              Kleine Perlen.
-* Java-Pakete::              Kaffeepause.
-* Schriftarten::             Schriften verschriftlicht.
-@end menu
-
-@node Software-Freiheit
-@subsection Software-Freiheit
-
-@c ===========================================================================
-@c
-@c This file was generated with po4a. Translate the source file.
-@c
-@c ===========================================================================
-@c Adapted from http://www.gnu.org/philosophy/philosophy.html.
-@cindex free software
-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.
-
-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.
-
-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{Pakete definieren}).  This way, @code{guix build --source}
-returns the ``freed'' source rather than the unmodified upstream source.
-
-
-@node Paketbenennung
-@subsection Paketbenennung
-
-@cindex package name
-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}.
-
-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}.
-
-We do not add @code{lib} prefixes for library packages, unless these are
-already part of the official project name.  But @pxref{Python-Module} and
-@ref{Perl-Module} for special rules concerning modules for the Python and
-Perl languages.
-
-Font package names are handled differently, @pxref{Schriftarten}.
-
-
-@node Versionsnummern
-@subsection Versionsnummern
-
-@cindex package version
-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{Paketbenennung}
-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.
-
-The name inside the package definition is the same for all versions of a
-package and does not contain any version number.
-
-Zum Beispiel können für GTK in den Versionen 2.24.20 und 3.9.12 Pakete wie
-folgt geschrieben werden:
-
-@example
-(define-public gtk+
-  (package
-    (name "gtk+")
-    (version "3.9.12")
-    ...))
-(define-public gtk+-2
-  (package
-    (name "gtk+")
-    (version "2.24.20")
-    ...))
-@end example
-Wenn wir auch GTK 3.8.2 wollten, würden wir das Paket schreiben als
-@example
-(define-public gtk+-3.8
-  (package
-    (name "gtk+")
-    (version "3.8.2")
-    ...))
-@end example
-
-@c See <https://lists.gnu.org/archive/html/guix-devel/2016-01/msg00425.html>,
-@c for a discussion of what follows.
-@cindex version number, for VCS snapshots
-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?
-
-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:
-
-@example
-2.0.11-3.cabba9e
-  ^    ^    ^
-  |    |    `-- upstream commit ID
-  |    |
-  |    `--- Guix package revision
-  |
-latest upstream version
-@end example
-
-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:
-
-@example
-(define my-package
-  (let ((commit "c3f29bc928d5900971f65965feaae59e1272a3f7")
-        (revision "1"))          ;Guix package revision
-    (package
-      (version (git-version "0.9" revision commit))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "git://example.org/my-package.git")
-                      (commit commit)))
-                (sha256 (base32 "1mbikn@dots{}"))
-                (file-name (git-file-name name version))))
-      ;; @dots{}
-      )))
-@end example
-
-@node Zusammenfassungen und Beschreibungen
-@subsection Zusammenfassungen und Beschreibungen
-
-@cindex package description
-@cindex package synopsis
-As we have seen before, each package in GNU@tie{}Guix includes a synopsis
-and a description (@pxref{Pakete definieren}).  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.
-
-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''.
-
-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.
-
-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.
-
-@cindex Texinfo markup, in package descriptions
-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.
-
-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.
-
-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:
-
-@lisp
-(package
-  ;; @dots{}
-  (synopsis "This is translatable")
-  (description (string-append "This is " "*not*" " translatable.")))
-@end lisp
-
-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}):
-
-@example
-;; 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
-
-
-@node Python-Module
-@subsection Python-Module
-
-@cindex python
-We currently package Python 2 and Python 3, under the Scheme variable names
-@code{python-2} and @code{python} as explained in @ref{Versionsnummern}.  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}.
-
-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.
-
-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.
-
-@subsubsection Specifying Dependencies
-@cindex inputs, for Python packages
-
-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}.
-
-Your mission, when writing a recipe for a Python package, is to map these
-dependencies to the appropriate type of ``input'' (@pxref{»package«-Referenz,
-inputs}).  Although the @code{pypi} importer normally does a good job
-(@pxref{Aufruf von guix import}), you may want to check the following check
-list to determine which dependency goes where.
-
-@itemize
-
-@item
-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.
-
-@item
-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.
-
-@item
-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.
-
-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}.
-
-@item
-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.
-
-@item
-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{Einreichen von Patches, @command{guix size}}).
-
-@end itemize
-
-
-@node Perl-Module
-@subsection Perl-Module
-
-@cindex perl
-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}.
-
-
-@node Java-Pakete
-@subsection Java-Pakete
-
-@cindex java
-Java programs standing for themselves are named as any other package, using
-the lowercase upstream name.
-
-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}.
-
-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}.
-
-
-@node Schriftarten
-@subsection Schriftarten
-
-@cindex Schriftarten
-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.
-
-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.
-
-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}.
-
-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}.
-
-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.
-
-
-@node Code-Stil
-@section Code-Stil
-
-Im Allgemeinen folgt unser Code den GNU Coding Standards (@pxref{Top,,,
-standards, GNU Coding Standards}). Da diese aber nicht viel über Scheme zu
-sagen haben, folgen hier einige zusätzliche Regeln.
-
-@menu
-* Programmierparadigmen::    Wie Sie Ihre Elemente zusammenstellen.
-* Module::                   Wo Sie Ihren Code unterbringen.
-* Datentypen und Mustervergleich::  Implementierung von Datenstrukturen.
-* Formatierung von Code::    Schreibkonventionen.
-@end menu
-
-@node Programmierparadigmen
-@subsection Programmierparadigmen
-
-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}.
-
-@node Module
-@subsection Module
-
-Guile-Module, die beim Erstellen nutzbar sein sollen, müssen im Namensraum
-@code{(guix build @dots{})} 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.
-
-Module, die mit dem weiteren GNU-System zu tun haben, sollten im Namensraum
-@code{(gnu @dots{})} und nicht in @code{(guix @dots{})} stehen.
-
-@node Datentypen und Mustervergleich
-@subsection Datentypen und Mustervergleich
-
-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.
-
-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.
-
-@node Formatierung von Code
-@subsection Formatierung von Code
-
-@cindex Formatierung von Code
-@cindex Code-Stil
-Beim Schreiben von Scheme-Code halten wir uns an die üblichen
-Gepflogenheiten unter Scheme-Programmierern. Im Allgemeinen bedeutet das,
-dass wir uns an @url{http://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.
-
-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 (@pxref{Development,,, emacs-guix, The Emacs-Guix Reference
-Manual}).
-
-@cindex Einrückung, Code-
-@cindex Formatierung, Code-
-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:
-
-@example
-./etc/indent-code.el gnu/packages/@var{Datei}.scm @var{Paket}
-@end example
-
-@noindent
-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:
-
-@example
-./etc/indent-code.el gnu/services/@var{Datei}.scm
-@end example
-
-@cindex Vim, zum Editieren von Scheme-Code
-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.
-
-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 @dots{})} aufgeweicht werden.
-
-Prozeduren sollten nicht mehr als vier positionsbestimmte Parameter
-haben. Benutzen Sie Schlüsselwort-Parameter für Prozeduren, die mehr als
-vier Parameter entgegennehmen.
-
-
-@node Einreichen von Patches
-@section Einreichen von Patches
-
-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.
-
-Diese Mailing-Liste setzt auf einer Debbugs-Instanz auf, die zugänglich ist
-unter @uref{https://bugs.gnu.org/guix-patches}, wodurch wir den Überblick
-über Eingereichtes behalten können. Jede an diese Mailing-Liste gesendete
-Nachricht bekommt eine neue Folgenummer zugewiesen, so dass man eine
-Folge-Email zur Einreichung an @code{@var{NNN}@@debbugs.gnu.org} senden
-kann, wobei @var{NNN} für die Folgenummer steht (@pxref{Senden einer Patch-Reihe}).
-
-Bitte schreiben Sie Commit-Logs im ChangeLog-Format (@pxref{Change Logs,,,
-standards, GNU Coding Standards}); dazu finden Sie Beispiele unter den
-bisherigen Commits.
-
-Bevor Sie einen Patch einreichen, der eine Paketdefinition hinzufügt oder
-verändert, gehen Sie bitte diese Prüfliste durch:
-
-@enumerate
-@item
-Wenn die Autoren der verpackten Software eine kryptographische Signatur 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.
-
-@item
-Nehmen Sie sich die Zeit, eine passende Zusammenfassung und Beschreibung für
-das Paket zu verfassen. Unter @xref{Zusammenfassungen und Beschreibungen} finden Sie
-dazu einige Richtlinien.
-
-@item
-Verwenden Sie @code{guix lint @var{Paket}}, wobei @var{Paket} das neue oder
-geänderte Paket bezeichnet, und beheben Sie alle gemeldeten Fehler
-(@pxref{Aufruf von guix lint}).
-
-@item
-Stellen Sie sicher, dass das Paket auf Ihrer Plattform erstellt werden kann,
-indem Sie @code{guix build @var{Paket}} ausführen.
-
-@item
-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:
-
-@example
-(service qemu-binfmt-service-type
- (qemu-binfmt-configuration
-   (platforms (lookup-qemu-platforms "arm" "aarch64" "ppc" "mips64el"))
-   (guix-support? #t)))
-@end example
-
-Then reconfigure your system.
-
-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, powerpc, or mips64 architectures, you would run the
-following commands, respectively:
-@example
-guix build --system=armhf-linux --rounds=2 hello
-guix build --system=aarch64-linux --rounds=2 hello
-guix build --system=powerpc-linux --rounds=2 hello
-guix build --system=mips64el-linux --rounds=2 hello
-@end example
-
-@item
-@cindex gebündelt
-Achten Sie darauf, dass im Paket keine Software gebündelt mitgeliefert wird,
-die bereits in separaten Paketen zur Verfügung steht.
-
-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.
-
-@item
-Take a look at the profile reported by @command{guix size} (@pxref{Aufruf von 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{Pakete mit mehreren Ausgaben.}), 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.
-
-@item
-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 (@pxref{Aufruf von guix refresh}).
-
-@c See <https://lists.gnu.org/archive/html/guix-devel/2016-10/msg00933.html>.
-@cindex Branching-Strategie
-@cindex Neuerstellungs-Zeitplan
-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:
-
-@table @asis
-@item 300 abhängige Pakete oder weniger
-@code{master}-Branch (störfreie Änderungen).
-
-@item zwischen 300 und 1200 abhängige Pakete
-@code{staging}-Branch (störfreie Änderungen). Dieser Branch wird circa alle
-3 Wochen in @code{master} gemerget. Themenbezogene Änderungen (z.B. eine
-Aktualisierung der GNOME-Plattform) können stattdessen auch auf einem
-eigenen Branch umgesetzt werden (wie @code{gnome-updates}).
-
-@item mehr als 1200 abhängige Pakete
-@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.
-@end table
-
-All diese Branches werden kontinuierlich
-@uref{https://hydra.gnu.org/project/gnu, auf unserer Build-Farm} 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.
-
-@c TODO: It would be good with badges on the website that tracks these
-@c branches.  Or maybe even a status page.
-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.
-
-@item
-@cindex Determinismus, von Erstellungsprozessen
-@cindex Reproduzierbare Erstellungen, Überprüfung
-Ü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.
-
-Dies können Sie leicht tun, indem Sie dasselbe Paket mehrere Male
-hintereinander auf Ihrer Maschine erstellen (@pxref{Aufruf von guix build}):
-
-@example
-guix build --rounds=2 mein-paket
-@end example
-
-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.
-
-Another option is to use @command{guix challenge} (@pxref{Aufruf von 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.
-
-@item
-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.
-
-@item
-Stelllen 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.
-
-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.
-
-@item
-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} (@pxref{Formatierung von Code}).
-
-@item
-Benutzen Sie, wenn möglich, Spiegelserver (Mirrors) in der Quell-URL
-(@pxref{Aufruf von 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.
-
-@end enumerate
-
-Bitte benutzen Sie @samp{[PATCH] @dots{}} 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 (@pxref{Senden einer Patch-Reihe}). 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.
-
-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.
-
-@unnumberedsubsec Senden einer Patch-Reihe
-@anchor{Senden einer Patch-Reihe}
-@cindex Patch-Reihe
-@cindex @code{git send-email}
-@cindex @code{git-send-email}
-
-@c Debbugs bug: https://debbugs.gnu.org/db/15/15361.html
-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.
diff --git a/doc/contributing.fr.texi b/doc/contributing.fr.texi
deleted file mode 100644
index 8900c7c704..0000000000
--- a/doc/contributing.fr.texi
+++ /dev/null
@@ -1,1005 +0,0 @@
-@node Contribuer
-@chapter Contribuer
-
-Ce projet est un effort coopératif et nous avons besoin de votre aide pour
-le faire grandir ! Contactez-nous sur @email{guix-devel@@gnu.org} et
-@code{#guix} sur le réseau IRC Freenode.  Nous accueillons les idées, les
-rapports de bogues, les correctifs et tout ce qui pourrait aider le projet.
-Nous apprécions particulièrement toute aide sur la création de paquets
-(@pxref{Consignes d'empaquetage}).
-
-@cindex code de conduite, des contributeurs
-@cindex convention de contribution
-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.
-
-Les contributeurs n'ont pas besoin d'utiliser leur nom légal dans leurs
-correctifs et leurs communications en ligne ; ils peuvent utiliser n'importe
-quel nom ou pseudonyme de leur choix.
-
-@menu
-* Construire depuis Git::    toujours le plus récent.
-* Lancer Guix avant qu'il ne soit installé::  Astuces pour les hackers.
-* La configuration parfaite::  Les bons outils.
-* Consignes d'empaquetage::  Faire grandir la distribution.
-* Style de code::            Hygiène du contributeur.
-* Envoyer des correctifs::   Partager votre travail.
-@end menu
-
-@node Construire depuis Git
-@section Construire depuis Git
-
-Si vous souhaitez travailler sur Guix lui-même, il est recommandé d'utiliser
-la dernière version du dépôt Git :
-
-@example
-git clone https://git.savannah.gnu.org/git/guix.git
-@end example
-
-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}).
-
-@itemize
-@item @url{http://gnu.org/software/autoconf/, GNU Autoconf};
-@item @url{http://gnu.org/software/automake/, GNU Automake};
-@item @url{http://gnu.org/software/gettext/, GNU Gettext};
-@item @url{http://gnu.org/software/texinfo/, GNU Texinfo};
-@item @url{http://www.graphviz.org/, Graphviz};
-@item @url{http://www.gnu.org/software/help2man/, GNU Help2man (facultatif)}.
-@end itemize
-
-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 :
-
-@example
-guix environment guix
-@end example
-
-@xref{Invoquer guix environment}, pour plus d'information sur cette
-commande.  On peut ajouter des dépendances supplémentaires avec
-@option{--ad-hoc} :
-
-@example
-guix environment guix --ad-hoc help2man git strace
-@end example
-
-Lancez @command{./bootstrap} pour générer l'infrastructure du système de
-construction avec Autoconf et Automake.  Si vous avez une erreur comme :
-
-@example
-configure.ac:46: error: possibly undefined macro: PKG_CHECK_MODULES
-@end example
-
-@noindent
-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 :
-
-@example
-export ACLOCAL_PATH=/usr/share/aclocal
-@end example
-
-@xref{Macro Search Path,,, automake, The GNU Automake Manual}, pour plus
-d'information.
-
-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).
-
-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}.
-
-
-@node Lancer Guix avant qu'il ne soit installé
-@section Lancer Guix avant qu'il ne soit installé
-
-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 final » de celui parfois haut en
-couleur de « développeur ».
-
-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{Construire depuis 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.} :
-
-@example
-$ sudo -E ./pre-inst-env guix-daemon --build-users-group=guixbuild
-$ ./pre-inst-env guix build hello
-@end example
-
-@noindent
-De même, pour une session Guile qui utilise les modules Guix :
-
-@example
-$ ./pre-inst-env guile -c '(use-modules (guix utils)) (pk (%current-system))'
-
-;;; ("x86_64-linux")
-@end example
-
-@noindent
-@cindex REPL
-@cindex read-eval-print loop
-@dots{} et pour un REPL (@pxref{Using Guile Interactively,,, guile, Guile
-Reference Manual})
-
-@example
-$ ./pre-inst-env guile
-scheme@@(guile-user)> ,use(guix)
-scheme@@(guile-user)> ,use(gnu)
-scheme@@(guile-user)> (define snakes
-                       (fold-packages
-                         (lambda (package lst)
-                           (if (string-prefix? "python"
-                                               (package-name package))
-                               (cons package lst)
-                               lst))
-                         '()))
-scheme@@(guile-user)> (length snakes)
-$1 = 361
-@end example
-
-Le script @command{pre-inst-env} paramètre toutes les variables
-d'environnement nécessaires, dont @env{PATH} et @env{GUILE_LOAD_PATH}.
-
-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{Invoquer guix pull}).
-Lancez @command{git pull} à la place si vous voulez mettre à jour votre
-arborescence des source locale.
-
-
-@node La configuration parfaite
-@section La configuration parfaite
-
-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:
-
-@example
-guix package -i emacs guile emacs-geiser
-@end example
-
-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
-:
-
-@lisp
-;; @r{Si l'extrait est dans ~/src/guix.}
-(with-eval-after-load 'geiser-guile
-  (add-to-list 'geiser-guile-load-path "~/src/guix"))
-@end lisp
-
-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.
-
-@cindex extraits de code
-@cindex modèles
-@cindex réduire la quantité de code commun
-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.
-
-@lisp
-;; @r{Si l'extrait est dans ~/src/guix.}
-(with-eval-after-load 'yasnippet
-  (add-to-list 'yas-snippet-dirs "~/src/guix/etc/snippets"))
-@end lisp
-
-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.
-
-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.
-
-
-@node Consignes d'empaquetage
-@section Consignes d'empaquetage
-
-@cindex paquets, création
-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.
-
-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.
-
-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{Modules de paquets}).  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{Définition des paquets}.
-
-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{Invoquer 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{Lancer Guix avant qu'il ne soit installé}) :
-
-@example
-./pre-inst-env guix build gnew --keep-failed
-@end example
-
-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.
-
-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 :
-
-@example
-./pre-inst-env guile -c '(use-modules (gnu packages gnew))'
-@end example
-
-Once your package builds correctly, please send us a patch
-(@pxref{Envoyer des correctifs}).  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}.
-
-@cindex substitution
-Users can obtain the new package definition simply by running @command{guix
-pull} (@pxref{Invoquer guix pull}).  When @code{@value{SUBSTITUTE-SERVER}}
-is done building the package, installing the package automatically downloads
-binaries from there (@pxref{Substituts}).  The only place where human
-intervention is needed is to review and apply the patch.
-
-
-@menu
-* Liberté logiciel::        Ce que la distribution peut contenir.
-* Conventions de nommage::   Qu'est-ce qu'un bon nom ?
-* Numéros de version::      Lorsque le nom n'est pas suffisant.
-* Synopsis et descriptions::  Aider les utilisateurs à trouver le bon 
-                                paquet.
-* Modules python::           Un peu de comédie anglaise.
-* Modules perl::             Petites perles.
-* Paquets java::             Pause café.
-* Polices de caractères::   À fond les fontes.
-@end menu
-
-@node Liberté logiciel
-@subsection Liberté logiciel
-
-@c ===========================================================================
-@c
-@c This file was generated with po4a. Translate the source file.
-@c
-@c ===========================================================================
-@c Adapted from http://www.gnu.org/philosophy/philosophy.html.
-@cindex logiciel libre
-Le système d'exploitation GNU a été développé pour que les utilisateurs
-puissent utiliser leur ordinateur en toute liberté.  GNU est un
-@dfn{logiciel libre}, ce qui signifie que les utilisateur ont les
-@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.
-
-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.
-
-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{Définition des paquets}).  De cette
-manière, @code{guix build --source} renvoie la source « libérée » plutôt que
-la source amont sans modification.
-
-
-@node Conventions de nommage
-@subsection Conventions de nommage
-
-@cindex nom du paquet
-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}.
-
-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}.
-
-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{Modules python} et @ref{Modules perl}  pour des règles spéciales concernant les
-modules pour les langages Python et Perl.
-
-Les noms de paquets de polices sont gérés différemment, @pxref{Polices de caractères}.
-
-
-@node Numéros de version
-@subsection Numéros de version
-
-@cindex version du paquet
-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{Conventions de nommage} 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.
-
-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.
-
-Par exemple, les version 2.24.20 et 3.9.12 de GTK+ peuvent être inclus de
-cette manière :
-
-@example
-(define-public gtk+
-  (package
-    (name "gtk+")
-    (version "3.9.12")
-    ...))
-(define-public gtk+-2
-  (package
-    (name "gtk+")
-    (version "2.24.20")
-    ...))
-@end example
-Si nous voulons aussi GTK+ 3.8.2, cela serait inclus de cette manière :
-@example
-(define-public gtk+-3.8
-  (package
-    (name "gtk+")
-    (version "3.8.2")
-    ...))
-@end example
-
-@c See <https://lists.gnu.org/archive/html/guix-devel/2016-01/msg00425.html>,
-@c for a discussion of what follows.
-@cindex numéro de version, pour les instantanés des systèmes de contrôle de version
-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} ?
-
-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 :
-
-@example
-2.0.11-3.cabba9e
-  ^    ^    ^
-  |    |    `-- ID du commit en amont
-  |    |
-  |    `--- révision du paquet Guix
-  |
-dernière version en amont
-@end example
-
-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 :
-
-@example
-(define my-package
-  (let ((commit "c3f29bc928d5900971f65965feaae59e1272a3f7")
-        (revision "1"))          ;révision du paquet Guix
-    (package
-      (version (git-version "0.9" revision commit))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "git://example.org/my-package.git")
-                      (commit commit)))
-                (sha256 (base32 "1mbikn@dots{}"))
-                (file-name (git-file-name name version))))
-      ;; @dots{}
-      )))
-@end example
-
-@node Synopsis et descriptions
-@subsection Synopsis et descriptions
-
-@cindex description du paquet
-@cindex résumé du paquet
-Comme nous l'avons vu avant, chaque paquet dans GNU@tie{}Guix contient un
-résumé et une description (@pxref{Définition des paquets}).  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 utilisateurs à déterminer si un paquet donner correspond à leurs
-besoins.  En conséquence, les mainteneurs doivent prêter attention à leur
-contenu.
-
-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 ».
-
-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 à l'utilisateur pour savoir si c'est ce
-qu'il recherche.
-
-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 pour les utilisateurs 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.
-
-@cindex balisage texinfo, dans les descriptions de paquets
-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
-interfaces utilisateurs comme @command{guix package --show} prennent en
-charge le rendu.
-
-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 d'utilisateurs possible puissent les lire
-dans leur langue natale.  Les interfaces utilisateurs les recherchent et les
-affichent dans la langue spécifiée par le paramètre de régionalisation
-actuel.
-
-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 :
-
-@lisp
-(package
-  ;; @dots{}
-  (synopsis "Ceci est traduisible")
-  (description (string-append "Ceci n'est " "*pas*" " traduisible.")))
-@end lisp
-
-La traduction demande beaucoup de travail, donc en tant que packageur,
-faîtes encore plus attention à vos résumés et descriptions car chaque
-changement peut demander d'autant plus de travail de la part des
-traducteurs.  Pour les aider, il est possible de donner des recommandations
-ou des instructions qu'ils pourront voir en insérant des commentaires
-spéciaux comme ceci (@pxref{xgettext Invocation,,, gettext, GNU Gettext}) :
-
-@example
-;; 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
-
-
-@node Modules python
-@subsection Modules python
-
-@cindex python
-Nous incluons actuellement Python 2 et Python 3, sous les noms de variables
-Scheme @code{python-2} et @code{python} comme expliqué dans @ref{Numéros de version}.  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}.
-
-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.
-
-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.
-
-@subsubsection Spécifier les dépendances
-@cindex entrées, pour les paquets Python
-
-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}.
-
-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{Référence de paquet, inputs}).  Bien que l'importeur @code{pypi} fasse
-du bon boulot (@pxref{Invoquer guix import}), vous devriez vérifier la liste
-suivant pour déterminer où va telle dépendance.
-
-@itemize
-
-@item
-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.
-
-@item
-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}.
-
-@item
-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.
-
-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}.
-
-@item
-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.
-
-@item
-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{Envoyer des correctifs, @command{guix size}}).
-
-@end itemize
-
-
-@node Modules perl
-@subsection Modules perl
-
-@cindex perl
-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}.
-
-
-@node Paquets java
-@subsection Paquets java
-
-@cindex java
-Le programmes Java utiles en soit sont nommés comme les autres paquets, avec
-le nom amont en minuscule.
-
-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}.
-
-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}.
-
-
-@node Polices de caractères
-@subsection Polices de caractères
-
-@cindex polices
-Pour les polices qui n esont en général par installées par un utilisateurs
-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.
-
-Pour rendre plus facile la recherche par l'utilisateur, les noms des autres
-paquets contenant seulement des polices sont construits ainsi,
-indépendamment du nom du paquet en amont.
-
-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}.
-
-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}.
-
-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.
-
-
-@node Style de code
-@section Style de code
-
-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.
-
-@menu
-* Paradigme de programmation::  Comment composer vos éléments.
-* Modules::                  Où stocker votre code ?
-* Types de données et reconnaissance de motif::  Implémenter des 
-                                                    structures de données.
-* Formatage du code::        Conventions d'écriture.
-@end menu
-
-@node Paradigme de programmation
-@subsection Paradigme de programmation
-
-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}.
-
-@node Modules
-@subsection Modules
-
-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.
-
-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{})}.
-
-@node Types de données et reconnaissance de motif
-@subsection Types de données et reconnaissance de motif
-
-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.
-
-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.
-
-@node Formatage du code
-@subsection Formatage du code
-
-@cindex formater le code
-@cindex style de code
-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.
-
-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}).
-
-@cindex indentation, du code
-@cindex formatage, du code
-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 :
-
-@example
-./etc/indent-code.el gnu/packages/@var{file}.scm @var{package}
-@end example
-
-@noindent
-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 :
-
-@example
-./etc/indent-code.el gnu/services/@var{file}.scm
-@end example
-
-@cindex Vim, édition de code Scheme
-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.
-
-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.
-
-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.
-
-
-@node Envoyer des correctifs
-@section Envoyer des correctifs
-
-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}.
-
-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}).
-
-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.
-
-Avant de soumettre un correctif qui ajoute ou modifie la définition d'un
-paquet, veuillez vérifier cette check-list :
-
-@enumerate
-@item
-Si les auteurs du paquet logiciel fournissent une signature cryptographique
-pour l'archive, faîtes 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}.
-
-@item
-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.
-
-@item
-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}).
-
-@item
-Assurez-vous que le paquet se construise sur votre plate-forme avec
-@code{guix build @var{paquet}}.
-
-@item
-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:
-
-@example
-(service qemu-binfmt-service-type
- (qemu-binfmt-configuration
-   (platforms (lookup-qemu-platforms "arm" "aarch64" "ppc" "mips64el"))
-   (guix-support? #t)))
-@end example
-
-Then reconfigure your system.
-
-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, powerpc, or mips64 architectures, you would run the
-following commands, respectively:
-@example
-guix build --system=armhf-linux --rounds=2 hello
-guix build --system=aarch64-linux --rounds=2 hello
-guix build --system=powerpc-linux --rounds=2 hello
-guix build --system=mips64el-linux --rounds=2 hello
-@end example
-
-@item
-@cindex construction groupée
-Assurez-vous que le paquet n'utilise pas de copie groupée d'un logiciel déjà
-disponible dans un paquet séparé.
-
-Parfois, les paquets incluent des copie du code source de leurs dépendances
-pour le confort de leurs utilisateurs.  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.
-
-@item
-Take a look at the profile reported by @command{guix size} (@pxref{Invoquer 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{Des paquets avec plusieurs résultats}), 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.
-
-@item
-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}).
-
-@c See <https://lists.gnu.org/archive/html/guix-devel/2016-10/msg00933.html>.
-@cindex stratégie de branche
-@cindex stratégie de planification des reconstructions
-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 :
-
-@table @asis
-@item 300 paquets dépendants ou moins
-branche @code{master} (changements non-disruptifs).
-
-@item entre 300 et 1 200 paquets dépendants
-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}).
-
-@item plus de 1 200 paquets dépendants
-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.
-@end table
-
-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 utilisateurs et réduit la fenêtre
-pendant laquelle les binaires pré-construits ne sont pas disponibles.
-
-@c TODO: It would be good with badges on the website that tracks these
-@c branches.  Or maybe even a status page.
-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.
-
-@item
-@cindex déterminisme, du processus de construction
-@cindex construction reproductibles, vérification
-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.
-
-Une manière simple de le faire est de reconstruire le paquet plusieurs fois
-à la suite sur votre machine (@pxref{Invoquer guix build}) :
-
-@example
-guix build --rounds=2 mon-paquet
-@end example
-
-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.
-
-Another option is to use @command{guix challenge} (@pxref{Invoquer 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.
-
-@item
-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).
-
-@item
-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.
-
-Ajouter plusieurs paquet ou une mise à jour d'un paquet avec des corrections
-dans ce paquet sont des exemples de changements sans rapport.
-
-@item
-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}).
-
-@item
-Si possible, utilisez des miroirs dans l'URL des sources (@pxref{Invoquer 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.
-
-@end enumerate
-
-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.
-
-Lorsqu'un bogue est résolu, veuillez fermer le fil en envoyant un courriel à
-@email{@var{NNN}-done@@debbugs.gnu.org}.
-
-@unnumberedsubsec Envoyer une série de correctifs
-@anchor{Envoyer une série de correctifs}
-@cindex série de correctifs
-@cindex @code{git send-email}
-@cindex @code{git-send-email}
-
-@c Debbugs bug: https://debbugs.gnu.org/db/15/15361.html
-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.
diff --git a/doc/contributing.texi b/doc/contributing.texi
index 9459c481a7..5331d3e18a 100644
--- a/doc/contributing.texi
+++ b/doc/contributing.texi
@@ -827,7 +827,7 @@ your @code{operating-system} configuration:
 @example
 (service qemu-binfmt-service-type
  (qemu-binfmt-configuration
-   (platforms (lookup-qemu-platforms "arm" "aarch64" "ppc" "mips64el"))
+   (platforms (lookup-qemu-platforms "arm" "aarch64" "mips64el"))
    (guix-support? #t)))
 @end example
 
@@ -835,12 +835,11 @@ Then reconfigure your system.
 
 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, powerpc, or mips64 architectures, you would run the
-following commands, respectively:
+the armhf, aarch64, or mips64 architectures, you would run the following
+commands, respectively:
 @example
 guix build --system=armhf-linux --rounds=2 hello
 guix build --system=aarch64-linux --rounds=2 hello
-guix build --system=powerpc-linux --rounds=2 hello
 guix build --system=mips64el-linux --rounds=2 hello
 @end example
 
diff --git a/doc/guix.de.texi b/doc/guix.de.texi
deleted file mode 100644
index 83dae0d3ec..0000000000
--- a/doc/guix.de.texi
+++ /dev/null
@@ -1,25126 +0,0 @@
-\input texinfo
-@c ===========================================================================
-@c
-@c This file was generated with po4a. Translate the source file.
-@c
-@c ===========================================================================
-@c -*-texinfo-*-
-
-@c %**start of header
-@setfilename guix.de.info
-@documentencoding UTF-8
-@documentlanguage de
-@frenchspacing on
-@settitle Referenzhandbuch zu GNU Guix
-@c %**end of header
-
-@include version-de.texi
-
-@c Identifier of the OpenPGP key used to sign tarballs and such.
-@set OPENPGP-SIGNING-KEY-ID 3CE464558A84FDC69DB40CFB090B11993D9AEBB5
-@set KEY-SERVER pool.sks-keyservers.net
-
-@c The official substitute server used by default.
-@set SUBSTITUTE-SERVER ci.guix.de.info
-
-@copying
-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
-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 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@*
-
-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«.
-@end copying
-
-@dircategory Systemadministration
-@direntry
-* Guix: (guix.de).           Installierte Software und Systemkonfigurationen 
-                               verwalten.
-* guix package: (guix.de)guix package aufrufen.  Pakete installieren, 
-                                                   entfernen und 
-                                                   aktualisieren.
-* guix gc: (guix.de)guix gc aufrufen.  Unbenutzten Plattenspeicher wieder 
-                                         freigeben.
-* guix pull: (guix.de)guix pull aufrufen.  Die Liste verfügbarer Pakete 
-                                             aktualisieren.
-* guix system: (guix.de)guix system aufrufen.  Die 
-                                                 Betriebssystemkonfiguration 
-                                                 verwalten.
-@end direntry
-
-@dircategory Softwareentwicklung
-@direntry
-* guix environment: (guix.de)guix environment aufrufen.  Umgebungen für 
-                                                           Entwickler 
-                                                           erstellen
-* guix build: (guix.de)guix build aufrufen.  Erstellen von Paketen.
-* guix pack: (guix.de)guix pack aufrufen.  Bündel aus Binärdateien 
-                                             erstellen.
-@end direntry
-
-@titlepage
-@title Referenzhandbuch zu GNU Guix
-@subtitle Den funktionalen Paketmanager GNU Guix benutzen
-@author Die GNU-Guix-Entwickler
-
-@page
-@vskip 0pt plus 1filll
-Edition @value{EDITION} @* @value{UPDATED} @*
-
-@insertcopying
-@end titlepage
-
-@contents
-
-@c *********************************************************************
-@node Top
-@top GNU Guix
-
-Dieses Dokument beschreibt GNU Guix, Version @value{VERSION}, ein Werkzeug
-zur funktionalen Verwaltung von Softwarepaketen, das für das GNU-System
-geschrieben wurde.
-
-@c TRANSLATORS: You can replace the following paragraph with information on
-@c how to join your own translation team and how to report issues with the
-@c translation.
-Dieses Handbuch ist auch auf Englisch (@pxref{Top,,, guix, GNU Guix
-Reference Manual}) und Französisch verfügbar (@pxref{Top,,, guix.fr, Manuel
-de référence de 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.
-
-@menu
-* Einführung::              Was ist Guix überhaupt?
-* Installation::             Guix installieren.
-* Systeminstallation::       Das ganze Betriebssystem installieren.
-* Paketverwaltung::          Pakete installieren, aktualisieren usw.
-* Development::              Guix-aided software development.
-* Programmierschnittstelle::  Guix in Scheme verwenden.
-* Zubehör::                 Befehle zur Paketverwaltung.
-* Systemkonfiguration::      Das Betriebssystem konfigurieren.
-* Dokumentation::            Wie man Nutzerhandbücher von Software liest.
-* Dateien zur Fehlersuche installieren::  Womit man seinen Debugger 
-                                            füttert.
-* Sicherheitsaktualisierungen::  Sicherheits-Patches schnell einspielen.
-* Bootstrapping::            GNU/Linux von Grund auf selbst erstellen.
-* Portierung::               Guix auf andere Plattformen und Kernels 
-                               bringen.
-* Mitwirken::                Ihre Hilfe ist nötig!
-
-* Danksagungen::             Danke!
-* GNU-Lizenz für freie Dokumentation::  Die Lizenz dieses Handbuchs.
-* Konzeptverzeichnis::       Konzepte.
-* Programmierverzeichnis::   Datentypen, Funktionen und Variable.
-
-@detailmenu
- --- Detaillierte Liste der Knoten ---
-
-
-
-Einführung
-
-
-
-* Managing Software the Guix Way::  What's special.
-* GNU-Distribution::         The packages and tools.
-
-Installation
-
-
-
-* Aus Binärdatei installieren::  Guix installieren, ohne Zeit zu verlieren!
-* Voraussetzungen::          Zum Erstellen und Benutzen von Guix nötige 
-                               Software.
-* Die Testsuite laufen lassen::  Guix testen.
-* Den Daemon einrichten::    Wie man die Umgebung des Erstellungs-Daemons 
-                               einrichtet.
-* Aufruf des guix-daemon::   Den Erstellungs-Daemon laufen lassen.
-* Anwendungen einrichten::   Anwendungsspezifische Einstellungen.
-
-Den Daemon einrichten
-
-
-
-* Einrichten der Erstellungsumgebung::  Die isolierte Umgebung zum Erstellen 
-                                          vorbereiten.
-* Auslagern des Daemons einrichten::  Erstellungen auf entfernte Maschinen 
-                                        auslagern.
-* SELinux-Unterstützung::   Wie man eine SELinux-Richtlinie für den Daemon 
-                               einrichtet.
-
-Systeminstallation
-
-
-
-* Einschränkungen::         Was Sie erwarten dürfen.
-* Hardware-Überlegungen::   Unterstützte Hardware.
-* Installation von USB-Stick oder DVD::  Das Installationsmedium 
-                                           vorbereiten.
-* Vor der Installation::     Netzwerkanbindung, Partitionierung etc.
-* Fortfahren mit der Installation::  Die Hauptsache.
-* Installing Guix in a VM::  Guix System playground.
-* Ein Abbild zur Installation erstellen::  Wie ein solches entsteht.
-
-Paketverwaltung
-
-
-
-* Funktionalitäten::        Wie Guix Ihr Leben schöner machen wird.
-* Aufruf von guix package::  Pakete installieren, entfernen usw.
-* Substitute::               Vorerstelle Binärdateien herunterladen.
-* Pakete mit mehreren Ausgaben.::  Ein Quellpaket, mehrere Ausgaben.
-* Aufruf von guix gc::       Den Müllsammler laufen lassen.
-* Aufruf von guix pull::     Das neueste Guix samt Distribution laden.
-* Kanäle::                  Die Paketsammlung anpassen.
-* Untergeordnete::           Mit einer anderen Version von Guix 
-                               interagieren.
-* Aufruf von guix describe::  Informationen über Ihre Guix-Version 
-                                anzeigen.
-* Aufruf von guix archive::  Import und Export von Store-Dateien.
-
-Substitute
-
-
-
-* Offizieller Substitut-Server::  Eine besondere Quelle von Substituten.
-* Substitut-Server autorisieren::  Wie man Substitute an- und abschaltet.
-* Substitutauthentifizierung::  Wie Guix Substitute verifiziert.
-* Proxy-Einstellungen::      Wie Sie Substitute über einen Proxy beziehen.
-* Fehler bei der Substitution::  Was passiert, wenn die Substitution 
-                                   fehlschlägt.
-* Vom Vertrauen gegenüber Binärdateien::  Wie können Sie diesem binären 
-                                              Blob trauen?
-
-Development
-
-
-
-* Aufruf von guix environment::  Entwicklungsumgebungen einrichten.
-* Aufruf von guix pack::     Software-Bündel erstellen.
-
-Programmierschnittstelle
-
-
-
-* Paketmodule::              Pakete aus Sicht des Programmierers.
-* Pakete definieren::        Wie Sie neue Pakete definieren.
-* Erstellungssysteme::       Angeben, wie Pakete erstellt werden.
-* Der Store::                Den Paket-Store verändern.
-* Ableitungen::              Systemnahe Schnittstelle für Paketableitungen.
-* Die Store-Monade::         Rein funktionale Schnittstelle zum Store.
-* G-Ausdrücke::             Erstellungsausdrücke verarbeiten.
-* Aufruf von guix repl::     Interaktiv an Guix herumbasteln.
-
-Pakete definieren
-
-
-
-* »package«-Referenz::     Der Datentyp für Pakete.
-* »origin«-Referenz::      Datentyp für Paketursprünge.
-
-Zubehör
-
-
-
-* Aufruf von guix build::    Pakete aus der Befehlszeile heraus erstellen.
-* Aufruf von guix edit::     Paketdefinitionen bearbeiten.
-* Aufruf von guix download::  Herunterladen einer Datei und Ausgabe ihres 
-                                Hashes.
-* Aufruf von guix hash::     Den kryptographischen Hash einer Datei 
-                               berechnen.
-* Aufruf von guix import::   Paketdefinitionen importieren.
-* Aufruf von guix refresh::  Paketdefinitionen aktualisieren.
-* Aufruf von guix lint::     Fehler in Paketdefinitionen finden.
-* Aufruf von guix size::     Plattenverbrauch profilieren.
-* Aufruf von guix graph::    Den Paketgraphen visualisieren.
-* Aufruf von guix publish::  Substitute teilen.
-* Aufruf von guix challenge::  Die Substitut-Server anfechten.
-* Aufruf von guix copy::     Mit einem entfernten Store Dateien austauschen.
-* Aufruf von guix container::  Prozesse isolieren.
-* Aufruf von guix weather::  Die Verfügbarkeit von Substituten 
-                               einschätzen.
-* Aufruf von guix processes::  Auflisten der Client-Prozesse
-
-Aufruf von @command{guix build}
-
-
-
-* Gemeinsame Erstellungsoptionen::  Erstellungsoptionen für die meisten 
-                                      Befehle.
-* Paketumwandlungsoptionen::  Varianten von Paketen erzeugen.
-* Zusätzliche Erstellungsoptionen::  Optionen spezifisch für »guix 
-                                        build«.
-* Fehlschläge beim Erstellen untersuchen::  Praxiserfahrung bei der 
-                                               Paketerstellung.
-
-Systemkonfiguration
-
-
-
-* Das Konfigurationssystem nutzen::  Ihr GNU-System anpassen.
-* »operating-system«-Referenz::  Details der Betriebssystem-Deklarationen.
-* Dateisysteme::             Die Dateisystemeinbindungen konfigurieren.
-* Zugeordnete Geräte::      Näheres zu blockorientierten Speichermedien.
-* Benutzerkonten::           Benutzerkonten festlegen.
-* Locales::                  Sprache und kulturelle Konventionen.
-* Dienste::                  Systemdienste festlegen.
-* Setuid-Programme::         Mit Administratorrechten startende Programme.
-* X.509-Zertifikate::        HTTPS-Server authentifizieren.
-* Name Service Switch::      Den Name Service Switch von libc konfigurieren.
-* Initiale RAM-Disk::        Linux-libre hochfahren.
-* Bootloader-Konfiguration::  Den Bootloader konfigurieren.
-* Aufruf von guix system::   Instanziierung einer Systemkonfiguration.
-* Running Guix in a VM::     How to run Guix System in a virtual machine.
-* Dienste definieren::       Neue Dienstdefinitionen hinzufügen.
-
-Dienste
-
-
-
-* Basisdienste::             Essenzielle Systemdienste.
-* Geplante Auftragsausführung::  Der mcron-Dienst.
-* Log-Rotation::             Der rottlog-Dienst.
-* Netzwerkdienste::          Netzwerkeinrichtung, SSH-Daemon etc.
-* X Window::                 Grafische Anzeige.
-* Druckdienste::             Unterstützung für lokale und entfernte 
-                               Drucker.
-* Desktop-Dienste::          D-Bus- und Desktop-Dienste.
-* Tondienste::               Dienste für ALSA und Pulseaudio.
-* Datenbankdienste::         SQL-Datenbanken, Schlüssel-Wert-Speicher etc.
-* Mail-Dienste::             IMAP, POP3, SMTP und so weiter.
-* Kurznachrichtendienste::   Dienste für Kurznachrichten.
-* Telefondienste::           Telefoniedienste.
-* Überwachungsdienste::     Dienste zur Systemüberwachung.
-* Kerberos-Dienste::         Kerberos-Dienste.
-* Web-Dienste::              Web-Server.
-* Zertifikatsdienste::       TLS-Zertifikate via Let’s Encrypt.
-* DNS-Dienste::              DNS-Daemons.
-* VPN-Dienste::              VPN-Daemons.
-* Network File System::      Dienste mit Bezug zum Netzwerkdateisystem.
-* Kontinuierliche Integration::  Der Cuirass-Dienst.
-* Dienste zur Stromverbrauchsverwaltung::  Den Akku schonen.
-* Audio-Dienste::            Der MPD.
-* Virtualisierungsdienste::  Dienste für virtuelle Maschinen.
-* Versionskontrolldienste::  Entfernten Zugang zu Git-Repositorys bieten.
-* Spieldienste::             Spielserver.
-* Verschiedene Dienste::     Andere Dienste.
-
-Dienste definieren
-
-
-
-* Dienstkompositionen::      Wie Dienste zusammengestellt werden.
-* Diensttypen und Dienste::  Typen und Dienste.
-* Service-Referenz::         Referenz zur Programmierschnittstelle.
-* Shepherd-Dienste::         Eine spezielle Art von Dienst.
-
-@end detailmenu
-@end menu
-
-@c *********************************************************************
-@node Einführung
-@chapter Einführung
-
-@cindex Zweck
-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.
-
-@cindex Guix System
-@cindex GuixSD, now Guix System
-@cindex Guix System Distribution, now Guix System
-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}.
-
-@menu
-* Managing Software the Guix Way::  What's special.
-* GNU-Distribution::         The packages and tools.
-@end menu
-
-@node Managing Software the Guix Way
-@section Managing Software the Guix Way
-
-@cindex Benutzeroberflächen
-Guix provides a command-line package management interface (@pxref{Paketverwaltung}), tools to help with software development (@pxref{Development}),
-command-line utilities for more advanced usage, (@pxref{Zubehör}), as well
-as Scheme programming interfaces (@pxref{Programmierschnittstelle}).
-@cindex Erstellungs-Daemon
-Der @dfn{Erstellungs-Daemon} ist für das Erstellen von Paketen im Auftrag
-von Nutzern verantwortlich (@pxref{Den Daemon einrichten}) und für das
-Herunterladen vorerstellter Binärdateien aus autorisierten Quellen
-(@pxref{Substitute}).
-
-@cindex Erweiterbarkeit der Distribution
-@cindex Anpassung, von Paketen
-Guix enthält Paketdefinitionen für viele Pakete, von GNU und nicht von 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 (@pxref{Pakete definieren}) und sie als
-unabhängige Paketmodule verfügbar machen (@pxref{Paketmodule}). Es ist
-auch @emph{anpassbar}: Nutzer können spezialisierte Paketdefinitionen aus
-bestehenden @emph{ableiten}, auch von der Befehlszeile (@pxref{Paketumwandlungsoptionen}).
-
-@cindex funktionale Paketverwaltung
-@cindex Isolierung
-Intern implementiert Guix die Disziplin der @dfn{funktionalen
-Paketverwaltung}, zu der Nix schon die Pionierarbeit geleistet hat
-(@pxref{Danksagungen}). 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.
-
-@cindex Store
-Das Ergebnis von Paketerstellungsfunktionen wird im Dateisystem
-@dfn{zwischengespeichert} in einem besonderen Verzeichnis, was als @dfn{der
-Store} bezeichnet wird (@pxref{Der 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.
-
-Dieses Vorgehen ist die Grundlage für die Guix auszeichnenden
-Funktionalitäten: Unterstützung transaktionsbasierter Paketaktualisierungen
-und -rückstufungen, Installation von Paketen als einfacher Nutzer sowie
-Garbage Collection für Pakete (@pxref{Funktionalitäten}).
-
-
-@node GNU-Distribution
-@section GNU-Distribution
-
-@cindex Guix System
-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{Systeminstallation}), 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.
-
-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{http://www.gnu.org/software/guix/packages,online}
-einsehen, oder indem Sie @command{guix package} ausführen (@pxref{Aufruf von guix package}):
-
-@example
-guix package --list-available
-@end example
-
-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.
-
-Pakete sind zur Zeit auf folgenden Plattformen verfügbar:
-
-@table @code
-
-@item x86_64-linux
-Intel/AMD-@code{x86_64}-Architektur, Linux-Libre als Kernel,
-
-@item i686-linux
-Intel-32-Bit-Architektur (IA-32), Linux-Libre als Kernel,
-
-@item armhf-linux
-ARMv7-A-Architektur mit »hard float«, Thumb-2 und NEON, für die EABI
-»hard-float application binary interface«, mit Linux-Libre als Kernel.
-
-@item aarch64-linux
-64-Bit-ARMv8-A-Prozessoren, little-endian, Linux-Libre als Kernel. Derzeit
-ist dies noch in der Erprobungsphase mit begrenzter Unterstützung. Unter
-@xref{Mitwirken} steht, wie Sie dabei helfen können!
-
-@item mips64el-linux
-64-Bit-MIPS-Prozessoren, little-endian, insbesondere die Loongson-Reihe,
-n32-ABI, mit Linux-Libre als Kernel.
-
-@end table
-
-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{Systemkonfiguration}).  Guix System uses the Linux-libre kernel, the Shepherd
-initialization system (@pxref{Einführung,,, 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.
-
-Guix System is available on all the above platforms except
-@code{mips64el-linux}.
-
-@noindent
-Informationen, wie auf andere Architekturen oder Kernels portiert werden
-kann, finden Sie im Abschnitt @pxref{Portierung}.
-
-Diese Distribution aufzubauen basiert auf Kooperation, und Sie sind herzlich
-eingeladen, dabei mitzumachen! Im Abschnitt @xref{Mitwirken} stehen
-weitere Informationen, wie Sie uns helfen können.
-
-
-@c *********************************************************************
-@node Installation
-@chapter Installation
-
-@cindex Guix installieren
-
-@quotation Anmerkung
-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{Systeminstallation}.} The script
-automates the download, installation, and initial configuration of Guix.  It
-should be run as the root user.
-@end quotation
-
-@cindex Fremddistribution
-@cindex Verzeichnisse auf einer Fremddistribution
-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.
-
-Sobald es installiert ist, kann Guix durch Ausführen von @command{guix pull}
-aktualisiert werden (@pxref{Aufruf von guix pull}).
-
-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.
-
-@menu
-* Aus Binärdatei installieren::  Guix installieren, ohne Zeit zu verlieren!
-* Voraussetzungen::          Zum Erstellen und Benutzen von Guix nötige 
-                               Software.
-* Die Testsuite laufen lassen::  Guix testen.
-* Den Daemon einrichten::    Wie man die Umgebung des Erstellungs-Daemons 
-                               einrichtet.
-* Aufruf des guix-daemon::   Den Erstellungs-Daemon laufen lassen.
-* Anwendungen einrichten::   Anwendungsspezifische Einstellungen.
-@end menu
-
-@node Aus Binärdatei installieren
-@section Aus Binärdatei installieren
-
-@cindex Guix aus Binärdateien installieren
-@cindex Installations-Skript
-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.
-
-Die Installation läuft so ab:
-
-@enumerate
-@item
-@cindex Guix-Binärdatei herunterladen
-Laden Sie den binären Tarball von
-@indicateurl{https://alpha.gnu.org/gnu/guix/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.
-
-@c The following is somewhat duplicated in ``System Installation''.
-Achten Sie darauf, auch die zugehörige @file{.sig}-Datei herunterzuladen und
-verifizieren Sie damit die Authentizität des Tarballs, ungefähr so:
-
-@example
-$ wget https://alpha.gnu.org/gnu/guix/guix-binary-@value{VERSION}.@var{System}.tar.xz.sig
-$ gpg --verify guix-binary-@value{VERSION}.@var{System}.tar.xz.sig
-@end example
-
-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:
-
-@example
-$ gpg --keyserver @value{KEY-SERVER} \
-      --recv-keys @value{OPENPGP-SIGNING-KEY-ID}
-@end example
-
-@noindent
-@c end authentication part
-und den Befehl @code{gpg --verify} erneut ausführen.
-
-@item
-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:
-
-@example
-# cd /tmp
-# tar --warning=no-timestamp -xf \
-     guix-binary-@value{VERSION}.@var{System}.tar.xz
-# mv var/guix /var/ && mv gnu /
-@end example
-
-Dadurch wird @file{/gnu/store} (@pxref{Der 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).
-
-Entpacken Sie den Tarball @emph{nicht} auf einem schon funktionierenden
-Guix-System, denn es würde seine eigenen essenziellen Dateien überschreiben.
-
-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.
-
-@item
-Machen Sie das Profil als @file{~root/.config/guix/current} verfügbar, wo
-@command{guix pull} es aktualisieren kann (@pxref{Aufruf von guix pull}):
-
-@example
-# mkdir -p ~root/.config/guix
-# ln -sf /var/guix/profiles/per-user/root/current-guix \
-         ~root/.config/guix/current
-@end example
-
-»Sourcen« Sie @file{etc/profile}, um @code{PATH} und andere relevante
-Umgebungsvariable zu ergänzen:
-
-@example
-# GUIX_PROFILE="`echo ~root`/.config/guix/current" ; \
-  source $GUIX_PROFILE/etc/profile
-@end example
-
-@item
-Erzeugen Sie Nutzergruppe und Nutzerkonten für die Erstellungs-Benutzer wie
-folgt (@pxref{Einrichten der Erstellungsumgebung}).
-
-@item
-Führen Sie den Daemon aus, und lassen Sie ihn automatisch bei jedem
-Hochfahren starten.
-
-Wenn Ihre Wirts-Distribution systemd als »init«-System verwendet, können Sie
-das mit folgenden Befehlen veranlassen:
-
-@c Versions of systemd that supported symlinked service files are not
-@c yet widely deployed, so we should suggest that users copy the service
-@c files into place.
-@c
-@c See this thread for more information:
-@c http://lists.gnu.org/archive/html/guix-devel/2017-01/msg01199.html
-
-@example
-# cp ~root/.config/guix/current/lib/systemd/system/guix-daemon.service \
-     /etc/systemd/system/
-# systemctl start guix-daemon && systemctl enable guix-daemon
-@end example
-
-Wenn Ihre Wirts-Distribution als »init«-System Upstart verwendet:
-
-@example
-# initctl reload-configuration
-# cp ~root/.config/guix/current/lib/upstart/system/guix-daemon.conf \
-     /etc/init/
-# start guix-daemon
-@end example
-
-Andernfalls können Sie den Daemon immer noch manuell starten, mit:
-
-@example
-# ~root/.config/guix/current/bin/guix-daemon \
-       --build-users-group=guixbuild
-@end example
-
-@item
-Stellen Sie den @command{guix}-Befehl auch anderen Nutzern Ihrer Maschine
-zur Verfügung, zum Beispiel so:
-
-@example
-# mkdir -p /usr/local/bin
-# cd /usr/local/bin
-# ln -s /var/guix/profiles/per-user/root/current-guix/bin/guix
-@end example
-
-Es ist auch eine gute Idee, die Info-Version dieses Handbuchs ebenso
-verfügbar zu machen:
-
-@example
-# mkdir -p /usr/local/share/info
-# cd /usr/local/share/info
-# for i in /var/guix/profiles/per-user/root/current-guix/share/info/* ;
-  do ln -s $i ; done
-@end example
-
-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} dieses Handbuch öffnen (@pxref{Other Info Directories,,,
-texinfo, GNU Texinfo} hat weitere Details, wie Sie den Info-Suchpfad ändern
-können).
-
-@item
-@cindex Substitute, deren Autorisierung
-To use substitutes from @code{@value{SUBSTITUTE-SERVER}} or one of its
-mirrors (@pxref{Substitute}), authorize them:
-
-@example
-# guix archive --authorize < \
-     ~root/.config/guix/current/share/guix/@value{SUBSTITUTE-SERVER}.pub
-@end example
-
-@item
-Alle Nutzer müssen womöglich ein paar zusätzliche Schritte ausführen, damit
-ihre Guix-Umgebung genutzt werden kann, siehe @pxref{Anwendungen einrichten}.
-@end enumerate
-
-Voilà, die Installation ist fertig!
-
-Sie können nachprüfen, dass Guix funktioniert, indem Sie ein Beispielpaket
-in das root-Profil installieren:
-
-@example
-# guix package -i hello
-@end example
-
-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}.
-
-Der Tarball zur Installation aus einer Binärdatei kann einfach durch
-Ausführung des folgenden Befehls im Guix-Quellbaum (re-)produziert und
-verifiziert werden:
-
-@example
-make guix-binary.@var{System}.tar.xz
-@end example
-
-@noindent
-...@: which, in turn, runs:
-
-@example
-guix pack -s @var{System} --localstatedir \
-  --profile-name=current-guix guix
-@end example
-
-Siehe @xref{Aufruf von guix pack} für weitere Informationen zu diesem
-praktischen Werkzeug.
-
-@node Voraussetzungen
-@section Voraussetzungen
-
-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.
-
-@cindex Offizielle Webpräsenz
-GNU Guix is available for download from its website at
-@url{https://www.gnu.org/software/guix/}.
-
-GNU Guix hat folgende Pakete als Abhängigkeiten:
-
-@itemize
-@item @url{http://gnu.org/software/guile/, GNU Guile}, version 2.2.x;
-@item @url{https://notabug.org/cwebber/guile-gcrypt, Guile-Gcrypt}, Version
-0.1.0 oder neuer,
-@item
-@uref{http://gnutls.org/, GnuTLS}, im Speziellen dessen Bindungen für Guile
-(@pxref{Guile Preparations, how to install the GnuTLS bindings for Guile,,
-gnutls-guile, GnuTLS-Guile}),
-@item
-@uref{https://notabug.org/guile-sqlite3/guile-sqlite3, Guile-SQLite3},
-Version 0.1.0 oder neuer,
-@item
-@c FIXME: Specify a version number once a release has been made.
-@uref{https://gitlab.com/guile-git/guile-git, Guile-Git}, vom August 2017
-oder neuer,
-@item @uref{https://savannah.nongnu.org/projects/guile-json/, Guile-JSON};
-@item @url{http://zlib.net, zlib},
-@item @url{http://www.gnu.org/software/make/, GNU Make}.
-@end itemize
-
-Folgende Abhängigkeiten sind optional:
-
-@itemize
-@item
-@c Note: We need at least 0.10.2 for 'channel-send-eof'.
-Unterstützung für das Auslagern von Erstellungen (@pxref{Auslagern des Daemons einrichten}) und @command{guix copy} (@pxref{Aufruf von guix copy}) hängt von
-@uref{https://github.com/artyom-poptsov/guile-ssh, Guile-SSH}, Version
-0.10.2 oder neuer, ab.
-
-@item
-Wenn @url{http://www.bzip.org, libbz2} verfügbar ist, kann
-@command{guix-daemon} damit Erstellungsprotokolle komprimieren.
-@end itemize
-
-Sofern nicht @code{--disable-daemon} beim Aufruf von @command{configure}
-übergeben wurde, benötigen Sie auch folgende Pakete:
-
-@itemize
-@item @url{http://gnupg.org/, GNU libgcrypt},
-@item @url{http://sqlite.org, SQLite 3},
-@item @url{http://gcc.gnu.org, GCC's g++} mit Unterstützung für den
-C++11-Standard.
-@end itemize
-
-@cindex Zustandsverzeichnis
-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
-(@pxref{Directory Variables, @code{localstatedir},, standards, GNU Coding
-Standards}). Das @command{configure}-Skript schützt vor ungewollter
-Fehlkonfiguration der @var{localstatedir}, damit sie nicht versehentlich
-Ihren Store verfälschen (@pxref{Der Store}).
-
-@cindex Nix, Kompatibilität
-Wenn eine funktionierende Installation of @url{http://nixos.org/nix/, the
-Nix package manager} verfügbar ist, können Sie Guix stattdessen mit
-@code{--disable-daemon} konfigurieren. In diesem Fall ersetzt Nix die drei
-oben genannten Abhängigkeiten.
-
-Guix ist mit Nix kompatibel, daher ist es möglich, denselben Store für beide
-zu verwenden. Dazu müssen Sie an @command{configure} nicht nur denselben
-Wert für @code{--with-store-dir} übergeben, sondern auch denselben Wert für
-@code{--localstatedir}. Letzterer ist deswegen essenziell, weil er unter
-Anderem angibt, wo die Datenbank liegt, in der sich die Metainformationen
-über den Store befinden. Für Nix sind die Werte standardmäßig
-@code{--with-store-dir=/nix/store} und
-@code{--localstatedir=/nix/var}. Beachten Sie, dass @code{--disable-daemon}
-nicht erforderlich ist, wenn Sie die Absicht haben, den Store mit Nix zu
-teilen.
-
-@node Die Testsuite laufen lassen
-@section Die Testsuite laufen lassen
-
-@cindex Testkatalog
-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:
-
-@example
-make check
-@end example
-
-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.
-
-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:
-
-@example
-make check TESTS="tests/store.scm tests/cpio.scm"
-@end example
-
-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:
-
-@example
-make check TESTS="tests/base64.scm" SCM_LOG_DRIVER_FLAGS="--brief=no"
-@end example
-
-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
-(@pxref{Voraussetzungen}).
-
-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:
-
-@example
-make check-system
-@end example
-
-@noindent
-Oder, auch hier, indem Sie @code{TESTS} definieren, um eine Teilmenge der
-auszuführenden Tests anzugeben:
-
-@example
-make check-system TESTS="basic mcron"
-@end example
-
-Diese Systemtests sind in den @code{(gnu tests @dots{})}-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
-(@pxref{Substitute}). Manche von ihnen nehmen viel Speicherplatz in
-Anspruch, um die VM-Abbilder zu speichern.
-
-Auch hier gilt: Falls Testfehler auftreten, senden Sie bitte alle Details an
-@email{bug-guix@@gnu.org}.
-
-@node Den Daemon einrichten
-@section Den Daemon einrichten
-
-@cindex Daemon
-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.
-
-Folgende Abschnitte beschreiben, wie Sie die Umgebung des
-Erstellungs-Daemons ausstatten sollten. Siehe auch @ref{Substitute} für
-Informationen darüber, wie Sie es dem Daemon ermöglichen, vorerstellte
-Binärdateien herunterzuladen.
-
-@menu
-* Einrichten der Erstellungsumgebung::  Die isolierte Umgebung zum Erstellen 
-                                          vorbereiten.
-* Auslagern des Daemons einrichten::  Erstellungen auf entfernte Maschinen 
-                                        auslagern.
-* SELinux-Unterstützung::   Wie man eine SELinux-Richtlinie für den Daemon 
-                               einrichtet.
-@end menu
-
-@node Einrichten der Erstellungsumgebung
-@subsection Einrichten der Erstellungsumgebung
-
-@cindex Erstellungsumgebung
-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.
-
-@cindex Erstellungsbenutzer
-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
-(@pxref{Einführung}).
-
-Auf einem GNU/Linux-System kann ein Pool von Erstellungsbenutzern wie folgt
-erzeugt werden (mit Bash-Syntax und den Befehlen von @code{shadow}):
-
-@c See http://lists.gnu.org/archive/html/bug-guix/2013-01/msg00239.html
-@c for why `-G' is needed.
-@example
-# groupadd --system guixbuild
-# for i in `seq -w 1 10`;
-  do
-    useradd -g guixbuild -G guixbuild                  \
-            -d /var/empty -s `which nologin`           \
-            -c "Guix-Erstellungsbenutzer $i" --system  \
-            guixbuilder$i;
-  done
-@end example
-
-@noindent
-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 (@pxref{Aufruf des 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}
-(@pxref{Aufruf von guix system}).
-
-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.}:
-
-@example
-# guix-daemon --build-users-group=guixbuild
-@end example
-
-@cindex chroot
-@noindent
-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:
-
-@c Keep this list in sync with libstore/build.cc! -----------------------
-@itemize
-@item
-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.},
-
-@item
-dem @code{/proc}-Verzeichnis, es zeigt nur die Prozesse des Containers, weil
-ein separater Namensraum für Prozess-IDs (PIDs) benutzt wird,
-
-@item
-@file{/etc/passwd} mit einem Eintrag für den aktuellen Benutzer und einem
-Eintrag für den Benutzer @file{nobody},
-
-@item
-@file{/etc/group} mit einem Eintrag für die Gruppe des Benutzers,
-
-@item
-@file{/etc/hosts} mit einem Eintrag, der @code{localhost} auf
-@code{127.0.0.1} abbildet,
-
-@item
-einem @file{/tmp}-Verzeichnis mit Schreibrechten.
-@end itemize
-
-Sie können beeinflussen, in welchem Verzeichnis der Daemon Erstellungsbäume
-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.
-
-@vindex http_proxy
-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 (@pxref{Ableitungen}) oder für Substitute
-(@pxref{Substitute}).
-
-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.
-
-
-@node Auslagern des Daemons einrichten
-@subsection Nutzung der Auslagerungsfunktionalität
-
-@cindex auslagern
-@cindex Build-Hook
-Wenn erwünscht kann der Erstellungs-Daemon Ableitungserstellungen
-@dfn{auslagern} auf andere Maschinen, 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.
-
-Die Datei @file{/etc/guix/machines.scm} sieht normalerweise so aus:
-
-@example
-(list (build-machine
-        (name "eightysix.example.org")
-        (system "x86_64-linux")
-        (host-key "ssh-ed25519 AAAAC3Nza@dots{}")
-        (user "bob")
-        (speed 2.))     ;unglaublich schnell!
-
-      (build-machine
-        (name "meeps.example.org")
-        (system "mips64el-linux")
-        (host-key "ssh-rsa AAAAB3Nza@dots{}")
-        (user "alice")
-        (private-key
-         (string-append (getenv "HOME")
-                        "/.ssh/identität-für-guix"))))
-@end example
-
-@noindent
-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.
-
-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
-(@pxref{Einführung, Guile-Avahi,, guile-avahi, Using Avahi in Guile Scheme
-Programs}). Der Datentyp @code{build-machine} wird im Folgenden weiter
-ausgeführt.
-
-@deftp {Datentyp} build-machine
-Dieser Datentyp repräsentiert Erstellungsmaschinen, an die der Daemon
-Erstellungen auslagern darf. Die wichtigen Felder sind:
-
-@table @code
-
-@item name
-Der Hostname (d.h. der Rechnername) der entfernten Maschine.
-
-@item system
-Der Systemtyp der entfernten Maschine — z.B. @code{"x86_64-linux"}.
-
-@item user
-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.
-
-@item host-key
-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:
-
-@example
-ssh-ed25519 AAAAC3NzaC@dots{}mde+UhL hint@@example.org
-@end example
-
-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.
-
-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}
-(@pxref{Converting keys,,, lsh, LSH Manual}):
-
-@example
-$ lsh-export-key --openssh < /etc/lsh/host-key.pub 
-ssh-rsa AAAAB3NzaC1yc2EAAAAEOp8FoQAAAQEAs1eB46LV@dots{}
-@end example
-
-@end table
-
-Eine Reihe optionaler Felder kann festgelegt werden:
-
-@table @asis
-
-@item @code{port} (Vorgabe: @code{22})
-Portnummer des SSH-Servers auf der Maschine.
-
-@item @code{private-key} (Vorgabe: @file{~root/.ssh/id_rsa})
-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.
-
-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.
-
-@item @code{compression} (Vorgabe: @code{"zlib@@openssh.com,zlib"})
-@itemx @code{compression-level} (Vorgabe: @code{3})
-Die Kompressionsmethoden auf SSH-Ebene und das angefragte
-Kompressionsniveau.
-
-Beachten Sie, dass Auslagerungen SSH-Kompression benötigen, um beim
-Übertragen von Dateien an Erstellungsmaschinen und zurück weniger Bandbreite
-zu benutzen.
-
-@item @code{daemon-socket} (Vorgabe: @code{"/var/guix/daemon-socket/socket"})
-Dateiname des Unix-Sockets, auf dem @command{guix-daemon} auf der Maschine
-lauscht.
-
-@item @code{parallel-builds} (Vorgabe: @code{1})
-Die Anzahl der Erstellungen, die auf der Maschine parallel ausgeführt werden
-können.
-
-@item @code{speed} (Vorgabe: @code{1.0})
-Ein »relativer Geschwindigkeitsfaktor«. Der Auslagerungsplaner gibt
-tendenziell Maschinen mit höherem Geschwindigkeitsfaktor den Vorrang.
-
-@item @code{features} (Vorgabe: @code{'()})
-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.
-
-@end table
-@end deftp
-
-The @command{guix} command must be in the search path on the build
-machines.  You can check whether this is the case by running:
-
-@example
-ssh build-machine guix repl --version
-@end example
-
-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
-(@pxref{Aufruf von guix archive}):
-
-@example
-# guix archive --generate-key
-@end example
-
-@noindent
-Jede Erstellungsmaschine muss den Schlüssel der Hauptmaschine autorisieren,
-damit diese Store-Objekte von der Hauptmaschine empfangen kann:
-
-@example
-# guix archive --authorize < öffentlicher-schlüssel-hauptmaschine.txt
-@end example
-
-@noindent
-Andersherum muss auch die Hauptmaschine den jeweiligen Schlüssel jeder
-Erstellungsmaschine autorisieren.
-
-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.
-
-@cindex Auslagerung testen
-Um zu testen, ob Ihr System funktioniert, führen Sie diesen Befehl auf der
-Hauptmaschine aus:
-
-@example
-# guix offload test
-@end example
-
-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.
-
-Wenn Sie stattdessen eine andere Maschinendatei verwenden möchten, geben Sie
-diese einfach auf der Befehlszeile an:
-
-@example
-# guix offload test maschinen-qualif.scm
-@end example
-
-Letztendlich können Sie hiermit nur die Teilmenge der Maschinen testen,
-deren Name zu einem regulären Ausdruck passt:
-
-@example
-# guix offload test maschinen.scm '\.gnu\.org$'
-@end example
-
-@cindex Auslagerungs-Lagebericht
-Um die momentane Auslastung aller Erstellungs-Hosts anzuzeigen, führen Sie
-diesen Befehl auf dem Hauptknoten aus:
-
-@example
-# guix offload status
-@end example
-
-
-@node SELinux-Unterstützung
-@subsection SELinux-Unterstützung
-
-@cindex SELinux, Policy für den Daemon
-@cindex Mandatory Access Control, SELinux
-@cindex Sicherheit, des guix-daemon
-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.
-
-@subsubsection Installieren der SELinux-Policy
-@cindex SELinux, Policy installieren
-Um die Richtlinie (Policy) zu installieren, führen Sie folgenden Befehl mit
-Administratorrechten aus:
-
-@example
-semodule -i etc/guix-daemon.cil
-@end example
-
-Kennzeichnen Sie dann das Dateisystem neu mit @code{restorecon} oder einem
-anderen, von Ihrem System angebotenen Mechanismus.
-
-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:
-
-@example
-ps -Zax | grep guix-daemon
-@end example
-
-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.
-
-@subsubsection Einschränkungen
-@cindex SELinux, Einschränkungen
-
-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.
-
-@enumerate
-@item
-@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.
-
-@item
-@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.
-
-@item
-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.
-
-@item
-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.
-
-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.
-@end enumerate
-
-@node Aufruf des guix-daemon
-@section Aufruf von @command{guix-daemon}
-
-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:
-
-@example
-# guix-daemon --build-users-group=guixbuild
-@end example
-
-@noindent
-Details, wie Sie ihn einrichten, finden Sie im Abschnitt @pxref{Den Daemon einrichten}.
-
-@cindex chroot
-@cindex Container, Erstellungsumgebung
-@cindex Erstellungsumgebung
-@cindex Reproduzierbare Erstellungen
-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 (@pxref{Programmierschnittstelle, 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 (@pxref{Funktionalitäten}).
-
-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«.
-
-Nach Abschluss der Erstellung wird das Erstellungsverzeichnis automatisch
-entfernt, außer wenn die Erstellung fehlgeschlagen ist und der Client
-@option{--keep-failed} angegeben hat (@pxref{Aufruf von guix build,
-@option{--keep-failed}}).
-
-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 @xref{Aufruf von guix processes}.
-
-Die folgenden Befehlszeilenoptionen werden unterstützt:
-
-@table @code
-@item --build-users-group=@var{Gruppe}
-Verwende die Benutzerkonten aus der @var{Gruppe}, um Erstellungsprozesse
-auszuführen (@pxref{Den Daemon einrichten, build users}).
-
-@item --no-substitutes
-@cindex Substitute
-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 (@pxref{Substitute}).
-
-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} (@pxref{Der Store}).
-
-@item --substitute-urls=@var{URLs}
-@anchor{daemon-substitute-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.
-
-Das hat zur Folge, dass Substitute von den @var{URLs} heruntergeladen werden
-können, solange sie mit einer Signatur versehen sind, der vertraut wird
-(@pxref{Substitute}).
-
-@cindex Build-Hook
-@item --no-build-hook
-Den »@dfn{Build-Hook}« nicht benutzen.
-
-»Build-Hook« ist der Name eines Hilfsprogramms, das der Daemon starten kann
-und an das er Erstellungsanfragen übermittelt. Durch diesen Mechanismus
-können Erstellungen an andere Maschinen ausgelagert werden (@pxref{Auslagern des Daemons einrichten}).
-
-@item --cache-failures
-Fehler bei der Erstellung zwischenspeichern. Normalerweise werden nur
-erfolgreiche Erstellungen gespeichert.
-
-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. @xref{Aufruf von guix gc}.
-
-@item --cores=@var{n}
-@itemx -c @var{n}
-@var{n} CPU-Kerne zum Erstellen jeder Ableitung benutzen; @code{0} heißt, so
-viele wie verfügbar sind.
-
-Der Vorgabewert ist @code{0}, jeder Client kann jedoch eine abweichende
-Anzahl vorgeben, zum Beispiel mit der Befehlszeilenoption @code{--cores} von
-@command{guix build} (@pxref{Aufruf von guix build}).
-
-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}.
-
-@item --max-jobs=@var{n}
-@itemx -M @var{n}
-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 (@pxref{Auslagern des Daemons einrichten}) oder sie schlagen einfach fehl.
-
-@item --max-silent-time=@var{Sekunden}
-Wenn der Erstellungs- oder Substitutionsprozess länger als
-@var{Sekunden}-lang keine Ausgabe erzeugt, wird er abgebrochen und ein
-Fehler beim Erstellen gemeldet.
-
-Der Vorgabewert ist @code{0}, was bedeutet, dass es keine Zeitbeschränkung
-gibt.
-
-Clients können einen anderen Wert als den hier angegebenen verwenden lassen
-(@pxref{Gemeinsame Erstellungsoptionen, @code{--max-silent-time}}).
-
-@item --timeout=@var{Sekunden}
-Entsprechend wird hier der Erstellungs- oder Substitutionsprozess
-abgebrochen und als Fehlschlag gemeldet, wenn er mehr als
-@var{Sekunden}-lang dauert.
-
-Der Vorgabewert ist @code{0}, was bedeutet, dass es keine Zeitbeschränkung
-gibt.
-
-Clients können einen anderen Wert verwenden lassen (@pxref{Gemeinsame Erstellungsoptionen, @code{--timeout}}).
-
-@item --rounds=@var{N}
-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 (@pxref{Aufruf von guix build}).
-
-Wenn dies zusammen mit @option{--keep-failed} benutzt wird, bleiben die sich
-unterscheidenden Ausgaben im Store unter dem Namen
-@file{/gnu/store/@dots{}-check}. Dadurch können Unterschiede zwischen den
-beiden Ergebnissen leicht erkannt werden.
-
-@item --debug
-Informationen zur Fehlersuche ausgeben.
-
-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}
-(@pxref{Aufruf von guix build}).
-
-@item --chroot-directory=@var{Verzeichnis}
-Füge das @var{Verzeichnis} zum chroot von Erstellungen hinzu.
-
-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.
-
-@item --disable-chroot
-Erstellungen ohne chroot durchführen.
-
-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.
-
-@item --log-compression=@var{Typ}
-Erstellungsprotokolle werden entsprechend dem @var{Typ} komprimiert, der
-entweder @code{gzip}, @code{bzip2} oder @code{none} (für keine Kompression)
-sein muss.
-
-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.
-
-@item --disable-deduplication
-@cindex Deduplizieren
-Automatische Dateien-»Deduplizierung« im Store ausschalten.
-
-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.
-
-@item --gc-keep-outputs[=yes|no]
-Gibt an, ob der Müllsammler (Garbage Collector, GC) die Ausgaben lebendiger
-Ableitungen behalten muss (»yes«) oder nicht (»no«).
-
-@cindex GC-Wurzeln
-@cindex Müllsammlerwurzeln
-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 @xref{Aufruf von guix gc} für weitere Informationen zu Müllsammlerwurzeln.
-
-@item --gc-keep-derivations[=yes|no]
-Gibt an, ob der Müllsammler (GC) Ableitungen behalten muss (»yes«), wenn sie
-lebendige Ausgaben haben, oder nicht (»no«).
-
-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.
-
-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.
-
-@item --impersonate-linux-2.6
-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.
-
-Dies kann hilfreich sein, um Programme zu erstellen, die (normalerweise zu
-Unrecht) von der Kernel-Versionsnummer abhängen.
-
-@item --lose-logs
-Keine Protokolle der Erstellungen vorhalten. Normalerweise würden solche in
-@code{@var{localstatedir}/guix/log} gespeichert.
-
-@item --system=@var{System}
-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}.
-
-@item --listen=@var{Endpunkt}
-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:
-
-@table @code
-@item --listen=/gnu/var/daemon
-Lausche auf Verbindungen am Unix-Socket @file{/gnu/var/daemon}, falls nötig
-wird er dazu erstellt.
-
-@item --listen=localhost
-@cindex Daemon, Fernzugriff
-@cindex Fernzugriff auf den Daemon
-@cindex Daemon, Einrichten auf Clustern
-@cindex Cluster, Einrichtung des Daemons
-Lausche auf TCP-Verbindungen an der Netzwerkschnittstelle, die
-@code{localhost} entspricht, auf Port 44146.
-
-@item --listen=128.0.0.42:1234
-Lausche auf TCP-Verbindungen an der Netzwerkschnittstelle, die
-@code{128.0.0.42} entspricht, auf Port 1234.
-@end table
-
-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 (@pxref{Der Store,
-@code{GUIX_DAEMON_SOCKET}}).
-
-@quotation Anmerkung
-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.
-@end quotation
-
-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.
-@end table
-
-
-@node Anwendungen einrichten
-@section Anwendungen einrichten
-
-@cindex Fremddistribution
-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.
-
-@subsection Locales
-
-@anchor{locales-and-locpath}
-@cindex locales, when not on Guix System
-@vindex LOCPATH
-@vindex GUIX_LOCPATH
-Ü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:
-
-@example
-$ guix package -i glibc-locales
-$ export GUIX_LOCPATH=$HOME/.guix-profile/lib/locale
-@end example
-
-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 110@tie{}MiB
-wiegt. Alternativ gibt es auch @code{glibc-utf8-locales}, was kleiner, aber
-auf ein paar UTF-8-Locales beschränkt ist.
-
-Die Variable @code{GUIX_LOCPATH} spielt eine ähnliche Rolle wie
-@code{LOCPATH} (@pxref{Locale Names, @code{LOCPATH},, libc, The GNU C
-Library Reference Manual}). Es gibt jedoch zwei wichtige Unterschiede:
-
-@enumerate
-@item
-@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.
-
-@item
-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.
-@end enumerate
-
-Das ist wichtig, weil das Locale-Datenformat verschiedener libc-Versionen
-inkompatibel sein könnte.
-
-@subsection Name Service Switch
-
-@cindex Name Service Switch, glibc
-@cindex NSS (Name Service Switch), glibc
-@cindex nscd (Name Service Caching Daemon)
-@cindex Name Service Caching Daemon (nscd)
-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.
-
-@cindex @file{nsswitch.conf}
-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 (@pxref{Name Service Switch,,, libc, The GNU C Library Reference Manual}).
-
-@cindex Network Information Service (NIS)
-@cindex NIS (Network Information Service)
-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 (@pxref{NSS Configuration File,,, libc, The GNU
-C Reference Manual}).
-
-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, mit der die Anwendung gebunden wurde (also der C-Bibliothek
-von Guix).
-
-Und hier kommt es zum Problem: Wenn die Anwendung mit der 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.
-
-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.
-
-@subsection X11-Schriftarten
-
-@cindex Schriftarten
-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}.
-
-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
-(@pxref{Pakete mit mehreren Ausgaben.}). Zum Beispiel installiert folgender
-Befehl Schriftarten für chinesische Sprachen:
-
-@example
-guix package -i font-adobe-source-han-sans:cn
-@end example
-
-@cindex @code{xterm}
-Ä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:
-
-@example
--*-dejavu sans-medium-r-normal-*-*-100-*-*-*-*-*-1
-@end example
-
-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:
-
-@c Note: 'xset' does not accept symlinks so the trick below arranges to
-@c get at the real directory.  See <https://bugs.gnu.org/30655>.
-@example
-xset +fp $(dirname $(readlink -f ~/.guix-profile/share/fonts/truetype/fonts.dir))
-@end example
-
-@cindex @code{xlsfonts}
-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.
-
-@cindex @code{fc-cache}
-@cindex Font-Cache
-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 -f} aus. Der Befehl
-@code{fc-cache} wird vom Paket @code{fontconfig} angeboten.
-
-@subsection X.509-Zertifikate
-
-@cindex @code{nss-certs}
-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.
-
-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. In @xref{X.509-Zertifikate} stehen
-genaue Informationen.
-
-@subsection Emacs-Pakete
-
-@cindex @code{emacs}
-Wenn Sie mit Guix Pakete für Emacs installieren, werden deren elisp-Dateien
-entweder in @file{$HOME/.guix-profile/share/emacs/site-lisp/} oder in
-Unterverzeichnissen von
-@file{$HOME/.guix-profile/share/emacs/site-lisp/guix.d/}
-gespeichert. Letzteres Verzeichnis gibt es, weil es Tausende von
-Emacs-Paketen gibt und sie alle im selben Verzeichnis zu speichern
-vielleicht nicht verlässlich funktioniert (wegen Namenskonflikten). Daher
-halten wir es für richtig, für jedes Paket ein anderes Verzeichnis zu
-benutzen. Das Emacs-Paketsystem organisiert die Dateistruktur ähnlich
-(@pxref{Package Files,,, emacs, The GNU Emacs Manual}).
-
-Standardmäßig »weiß« Emacs (wenn er mit Guix installiert wurde), wo diese
-Pakete liegen, Sie müssen also nichts selbst konfigurieren. Wenn Sie aber
-aus irgendeinem Grund mit Guix installierte Pakete nicht automatisch laden
-lassen möchten, können Sie Emacs mit der Befehlszeilenoption
-@code{--no-site-file} starten (@pxref{Init File,,, emacs, The GNU Emacs
-Manual}).
-
-@subsection GCC-Toolchain
-
-@cindex GCC
-@cindex ld-wrapper
-
-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.
-
-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}.
-
-@c TODO What else?
-
-@c *********************************************************************
-@node Systeminstallation
-@chapter Systeminstallation
-
-@cindex installing Guix System
-@cindex Guix System, installation
-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}.
-
-@ifinfo
-@quotation Anmerkung
-@c This paragraph is for people reading this from tty2 of the
-@c installation image.
-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: @pxref{Top, Info
-reader,, info-stnd, Stand-alone GNU Info}. Drücken Sie danach @kbd{l}, um
-hierher zurückzukommen.
-
-Führen Sie alternativ @command{info info} auf einer anderen Konsole (tty)
-aus, um dieses Handbuch offen zu lassen.
-@end quotation
-@end ifinfo
-
-@menu
-* Einschränkungen::         Was Sie erwarten dürfen.
-* Hardware-Überlegungen::   Unterstützte Hardware.
-* Installation von USB-Stick oder DVD::  Das Installationsmedium 
-                                           vorbereiten.
-* Vor der Installation::     Netzwerkanbindung, Partitionierung etc.
-* Fortfahren mit der Installation::  Die Hauptsache.
-* Installing Guix in a VM::  Guix System playground.
-* Ein Abbild zur Installation erstellen::  Wie ein solches entsteht.
-@end menu
-
-@node Einschränkungen
-@section Einschränkungen
-
-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}).
-
-Bevor Sie mit der Installation fortfahren, beachten Sie die folgenden
-merklichen Einschränkungen der Version @value{VERSION}:
-
-@itemize
-@item
-Für den Installationsprozess 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).
-
-@item
-Der Logical Volume Manager (LVM) wird nicht unterstützt.
-
-@item
-Immer mehr Systemdienste sind verfügbar (@pxref{Dienste}), aber manche
-könnten noch fehlen.
-
-@item
-More than 8,500 packages are available, but you might occasionally find that
-a useful package is missing.
-
-@item
-GNOME, Xfce, LXDE und Enlightenment stehen zur Verfügung (@pxref{Desktop-Dienste}), ebenso eine Reihe von X11-Fensterverwaltungsprogrammen. Manche
-grafischen Anwendungen könnten aber noch fehlen, ebenso fehlt KDE.
-@end itemize
-
-Sie wurden gewarnt! 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 @xref{Mitwirken}.
-
-
-@node Hardware-Überlegungen
-@section Hardware-Überlegungen
-
-@cindex hardware support on Guix System
-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.
-
-@cindex WLAN, Hardware-Unterstützung
-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«-Referenz,
-@code{firmware}}).
-
-@cindex RYF, Respects Your Freedom
-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 und
-Privatsphäre respektieren und sicherstellen, dass Sie die Kontrolle über Ihr
-Gerät haben. Wir ermutigen Sie dazu, die Liste RYF-zertifizierter Geräte zu
-beachten.
-
-Eine weitere nützliche Ressource ist die Website
-@uref{https://www.h-node.org/, H-Node}. Dort steht ein Katalog von
-Hardware-Geräten mit Informationen darüber, wie gut sie von GNU/Linux
-unterstützt werden.
-
-
-@node Installation von USB-Stick oder DVD
-@section Installation von USB-Stick oder DVD
-
-Sie können ein ISO-9660-Installationsabbild von
-@indicateurl{https://alpha.gnu.org/gnu/guix/guixsd-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:
-
-@table @code
-@item x86_64-linux
-für ein GNU/Linux-System auf Intel/AMD-kompatiblen 64-Bit-Prozessoren,
-
-@item i686-linux
-für ein 32-Bit-GNU/Linux-System auf Intel-kompatiblen Prozessoren.
-@end table
-
-@c start duplication of authentication part from ``Binary Installation''
-Laden Sie auch die entsprechende @file{.sig}-Datei herunter und verifizieren
-Sie damit die Authentizität Ihres Abbilds, indem Sie diese Befehle eingeben:
-
-@example
-$ wget https://alpha.gnu.org/gnu/guix/guixsd-install-@value{VERSION}.@var{System}.iso.xz.sig
-$ gpg --verify guixsd-install-@value{VERSION}.@var{System}.iso.xz.sig
-@end example
-
-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:
-
-@example
-$ gpg --keyserver @value{KEY-SERVER} \
-      --recv-keys @value{OPENPGP-SIGNING-KEY-ID}
-@end example
-
-@noindent
-@c end duplication
-und den Befehl @code{gpg --verify} erneut ausführen.
-
-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.
-
-@unnumberedsubsec Kopieren auf einen USB-Stick
-
-Um das Abbild auf einen USB-Stick zu kopieren, führen Sie folgende Schritte
-durch:
-
-@enumerate
-@item
-Entpacken Sie das Abbild mit dem @command{xz}-Befehl:
-
-@example
-xz -d guixsd-install-@value{VERSION}.@var{System}.iso.xz
-@end example
-
-@item
-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:
-
-@example
-dd if=guixsd-install-@value{VERSION}.@var{system}.iso of=/dev/sdX
-sync
-@end example
-
-Sie benötigen in der Regel Administratorrechte, um auf @file{/dev/sdX}
-zuzugreifen.
-@end enumerate
-
-@unnumberedsubsec Auf eine DVD brennen
-
-Um das Abbild auf eine DVD zu kopieren, führen Sie diese Schritte durch:
-
-@enumerate
-@item
-Entpacken Sie das Abbild mit dem @command{xz}-Befehl:
-
-@example
-xz -d guixsd-install-@value{VERSION}.@var{System}.iso.xz
-@end example
-
-@item
-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:
-
-@example
-growisofs -dvd-compat -Z /dev/srX=guixsd-install-@value{VERSION}.@var{system}.iso
-@end example
-
-Der Zugriff auf @file{/dev/srX} setzt in der Regel Administratorrechte
-voraus.
-@end enumerate
-
-@unnumberedsubsec Das System starten
-
-Sobald das erledigt ist, sollten Sie Ihr System neu starten und es vom
-USB-Stick oder der DVD 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.
-
-@xref{Installing Guix in a VM}, if, instead, you would like to install Guix
-System in a virtual machine (VM).
-
-
-@node Vor der Installation
-@section Vor der Installation
-
-Once you have successfully booted your computer using the installation
-medium, you should end up with the welcome page of the graphical installer.
-The graphical installer is a text-based user interface built upon the newt
-library.  It shall guide you through all the different steps needed to
-install GNU@tie{}Guix System.  However, as the graphical installer is still
-under heavy development, you might want to fallback to the original, shell
-based install process, by switching to TTYs 3 to 6 with the shortcuts
-CTRL-ALT-F[3-6]. The following sections describe the installation procedure
-assuming you're using one of those TTYs. They are configured and can be used
-to run commands as root.
-
-TTY2 shows this documentation, 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.
-
-@quotation Anmerkung
-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.
-@end quotation
-
-The installation system includes many common tools needed for this task.
-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{Aufruf von guix package}).
-
-@subsection Tastaturbelegung
-
-@cindex Tastaturbelegung
-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:
-
-@example
-loadkeys dvorak
-@end example
-
-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.
-
-@subsection Netzwerkkonfiguration
-
-Führen Sie folgenden Befehl aus, um zu sehen, wie Ihre
-Netzwerkschnittstellen benannt sind:
-
-@example
-ifconfig -a
-@end example
-
-@noindent
-@dots{} oder mit dem GNU/Linux-eigenen @command{ip}-Befehl:
-
-@example
-ip a
-@end example
-
-@c http://cgit.freedesktop.org/systemd/systemd/tree/src/udev/udev-builtin-net_id.c#n20
-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}.
-
-@table @asis
-@item Kabelverbindung
-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.
-
-@example
-ifconfig @var{Schnittstelle} up
-@end example
-
-@item Drahtlose Verbindung
-@cindex WLAN
-@cindex WiFi
-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:
-
-@example
-nano wpa_supplicant.conf
-@end example
-
-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:
-
-@example
-network=@{
-  ssid="@var{meine-ssid}"
-  key_mgmt=WPA-PSK
-  psk="geheime Passphrase des Netzwerks"
-@}
-@end example
-
-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):
-
-@example
-wpa_supplicant -c wpa_supplicant.conf -i @var{Schnittstelle} -B
-@end example
-
-Führen Sie @command{man wpa_supplicant} aus, um mehr Informationen zu
-erhalten.
-@end table
-
-@cindex DHCP
-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:
-
-@example
-dhclient -v @var{Schnittstelle}
-@end example
-
-Versuchen Sie, einen Server zu pingen, um zu prüfen, ob sie mit dem Internet
-verbunden sind und alles richtig funktioniert:
-
-@example
-ping -c 3 gnu.org
-@end example
-
-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.
-
-@cindex Über SSH installieren
-Wenn Sie möchten, können Sie die weitere Installation auch per Fernwartung
-durchführen, indem Sie einen SSH-Server starten:
-
-@example
-herd start ssh-daemon
-@end example
-
-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.
-
-@subsection Plattenpartitionierung
-
-Sofern nicht bereits geschehen, ist der nächste Schritt, zu partitionieren
-und dann die Zielpartition zu formatieren.
-
-Auf dem Installationsabbild sind mehrere Partitionierungswerkzeuge zu
-finden, einschließlich (@pxref{Overview,,, parted, GNU Parted User Manual}),
-@command{fdisk} und @command{cfdisk}. Starten Sie eines davon und
-partitionieren Sie Ihre Festplatte oder sonstigen Massenspeicher:
-
-@example
-cfdisk
-@end example
-
-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 (@pxref{BIOS
-installation,,, grub, GNU GRUB manual}).
-
-@cindex EFI, Installation
-@cindex UEFI, Installation
-@cindex ESP, EFI-Systempartition
-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}:
-
-@example
-parted /dev/sda set 1 esp on
-@end example
-
-@quotation Anmerkung
-@vindex grub-bootloader
-@vindex grub-efi-bootloader
-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 @xref{Bootloader-Konfiguration}, wenn Sie mehr Informationen
-über Bootloader brauchen.
-@end quotation
-
-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:
-
-@example
-mkfs.fat -F32 /dev/sda1
-@end example
-
-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 (@pxref{Dateisysteme}). 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:
-
-@example
-mkfs.ext4 -L my-root /dev/sda2
-@end example
-
-@cindex verschlüsselte Partition
-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:
-
-@example
-cryptsetup luksFormat /dev/sda2
-cryptsetup open --type luks /dev/sda2 my-partition
-mkfs.ext4 -L my-root /dev/mapper/my-partition
-@end example
-
-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):
-
-@example
-mount LABEL=my-root /mnt
-@end example
-
-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.
-
-Wenn Sie zudem auch vorhaben, eine oder mehrere Swap-Partitionen zu benutzen
-(@pxref{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:
-
-@example
-mkswap /dev/sda3
-swapon /dev/sda3
-@end example
-
-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}.}:
-
-@example
-# Das bedeutet 10 GiB Swapspeicher. "count" anpassen zum ändern.
-dd if=/dev/zero of=/mnt/swapfile bs=1MiB count=10240
-# Zur Sicherheit darf nur der Administrator lesen und schreiben.
-chmod 600 /mnt/swapfile
-mkswap /mnt/swapfile
-swapon /mnt/swapfile
-@end example
-
-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.
-
-@node Fortfahren mit der Installation
-@section Fortfahren mit der Installation
-
-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:
-
-@example
-herd start cow-store /mnt
-@end example
-
-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.
-
-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 (@pxref{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.
-
-Der Abschnitt @xref{Das Konfigurationssystem nutzen} 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 »Display-Server« (eine
-»Desktop«-Arbeitsumgebung) bietet, könnten Sie so etwas ausführen:
-
-@example
-# mkdir /mnt/etc
-# cp /etc/configuration/desktop.scm /mnt/etc/config.scm
-# nano /mnt/etc/config.scm
-@end example
-
-Achten Sie darauf, was in Ihrer Konfigurationsdatei steht, und besonders auf
-Folgendes:
-
-@itemize
-@item
-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.
-
-@item
-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.
-
-@item
-Gibt es verschlüsselte Partitionen oder RAID-Partitionen, dann müssen sie im
-@code{mapped-devices}-Feld genannt werden (@pxref{Zugeordnete Geräte}).
-@end itemize
-
-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):
-
-@example
-guix system init /mnt/etc/config.scm /mnt
-@end example
-
-@noindent
-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 @pxref{Aufruf von guix system}. Der Befehl kann das Herunterladen
-oder Erstellen fehlender Softwarepakete auslösen, was einige Zeit in
-Anspruch nehmen kann.
-
-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 erst setzen, indem Sie
-den Befehl @command{passwd} als @code{root} ausführen, außer Ihre
-Konfiguration enthält schon Passwörter (@pxref{user-account-password, user
-account passwords}).
-
-@cindex upgrading Guix System
-From then on, you can update the system whenever you want by running, say:
-
-@example
-guix pull
-sudo guix system reconfigure /etc/config.scm
-@end example
-
-@noindent
-This builds a new system generation with the latest packages and services
-(@pxref{Aufruf von guix system}).  We recommend doing that regularly so that
-your system includes the latest security updates (@pxref{Sicherheitsaktualisierungen}).
-
-@c See <https://lists.gnu.org/archive/html/guix-devel/2019-01/msg00268.html>.
-@quotation Anmerkung
-@cindex sudo vs. @command{guix pull}
-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{}}.
-@end quotation
-
-Join us on @code{#guix} on the Freenode IRC network or on
-@email{guix-devel@@gnu.org} to share your experience---good or not so good.
-
-@node Installing Guix in a VM
-@section Installing Guix in a Virtual Machine
-
-@cindex virtual machine, Guix System installation
-@cindex Virtual Private Server (VPS)
-@cindex VPS (Virtual Private Server)
-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.
-
-To boot a @uref{http://qemu.org/,QEMU} VM for installing Guix System in a
-disk image, follow these steps:
-
-@enumerate
-@item
-First, retrieve and decompress the Guix system installation image as
-described previously (@pxref{Installation von USB-Stick oder DVD}).
-
-@item
-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}:
-
-@example
-qemu-img create -f qcow2 guixsd.img 50G
-@end example
-
-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.
-
-@item
-Starten Sie das USB-Installationsabbild auf einer virtuellen Maschine:
-
-@example
-qemu-system-x86_64 -m 1024 -smp 1 \
-  -net user -net nic,model=virtio -boot menu=on \
-  -drive file=guixsd-install-@value{VERSION}.@var{System}.iso \
-  -drive file=guixsd.img
-@end example
-
-Halten Sie obige Reihenfolge der @option{-drive}-Befehlszeilenoptionen für
-die Laufwerke ein.
-
-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.
-
-@item
-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 @xref{Vor der Installation}.
-@end enumerate
-
-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.
-
-@node Ein Abbild zur Installation erstellen
-@section Ein Abbild zur Installation erstellen
-
-@cindex Installationsabbild
-Das oben beschriebene Installationsabbild wurde mit dem Befehl @command{guix
-system} erstellt, genauer gesagt mit:
-
-@example
-guix system disk-image --file-system-type=iso9660 \
-  gnu/system/install.scm
-@end example
-
-Die Datei @file{gnu/system/install.scm} finden Sie im Quellbaum von
-Guix. Schauen Sie sich die Datei und auch den Abschnitt @ref{Aufruf von guix system} an, um mehr Informationen über das Installationsabbild zu erhalten.
-
-@section Abbild zur Installation für ARM-Rechner erstellen
-
-Viele ARM-Chips funktionieren nur mit ihrer eigenen speziellen Variante des
-@uref{http://www.denx.de/wiki/U-Boot/, U-Boot}-Bootloaders.
-
-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:
-
-@example
-guix system disk-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} ist der Name des Chips. Wenn Sie einen ungültigen
-Namen eingeben, wird eine Liste möglicher Chip-Namen ausgegeben.
-
-@c *********************************************************************
-@node Paketverwaltung
-@chapter Paketverwaltung
-
-@cindex Pakete
-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.
-
-Dieses Kapitel beschreibt die Hauptfunktionalitäten von Guix, sowie die von
-Guix angebotenen Paketverwaltungswerkzeuge. Zusätzlich von den im Folgenden
-beschriebenen Befehlszeilen-Benutzerschnittstellen (@pxref{Aufruf von guix package, @code{guix package}}) können Sie auch mit der
-Emacs-Guix-Schnittstelle (@pxref{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):
-
-@example
-guix package -i emacs-guix
-@end example
-
-@menu
-* Funktionalitäten::        Wie Guix Ihr Leben schöner machen wird.
-* Aufruf von guix package::  Pakete installieren, entfernen usw.
-* Substitute::               Vorerstelle Binärdateien herunterladen.
-* Pakete mit mehreren Ausgaben.::  Ein Quellpaket, mehrere Ausgaben.
-* Aufruf von guix gc::       Den Müllsammler laufen lassen.
-* Aufruf von guix pull::     Das neueste Guix samt Distribution laden.
-* Kanäle::                  Die Paketsammlung anpassen.
-* Untergeordnete::           Mit einer anderen Version von Guix 
-                               interagieren.
-* Aufruf von guix describe::  Informationen über Ihre Guix-Version 
-                                anzeigen.
-* Aufruf von guix archive::  Import und Export von Store-Dateien.
-@end menu
-
-@node Funktionalitäten
-@section Funktionalitäten
-
-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.
-
-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}.
-
-Zum Beispiel installiert @code{alice} GCC 4.7.2. Dadurch zeigt dann
-@file{/home/alice/.guix-profile/bin/gcc} auf
-@file{/gnu/store/@dots{}-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/@dots{}-gcc-4.8.0/bin/gcc} —
-d.h. beide Versionen von GCC koexistieren auf demselben System, ohne sich zu
-stören.
-
-Der Befehl @command{guix package} ist das zentrale Werkzeug, um Pakete zu
-verwalten (@pxref{Aufruf von guix package}). Es arbeitet auf dem eigenen
-Profil jedes Nutzers und kann @emph{mit normalen Benutzerrechten} ausgeführt
-werden.
-
-@cindex Transaktionen
-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.
-
-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{Das Konfigurationssystem nutzen}).
-
-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 (@pxref{Aufruf von 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.
-
-@cindex Reproduzierbarkeit
-@cindex Reproduzierbare Erstellungen
-Guix verfolgt einen @dfn{rein funktionalen} Ansatz bei der Paketverwaltung,
-wie er in der Einleitung beschrieben wurde (@pxref{Einführung}). 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 (@pxref{Aufruf des guix-daemon, container}).
-
-@cindex Substitute
-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
-(@pxref{Substitute}). 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} (@pxref{Aufruf von guix challenge}).
-
-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 (@pxref{Aufruf von guix environment}).
-
-@cindex Nachbildung, von Software-Umgebungen
-@cindex Provenienzverfolgung, von Software-Artefakten
-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« (@pxref{Aufruf von 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.
-
-@node Aufruf von guix package
-@section Invoking @command{guix package}
-
-@cindex Installieren von Paketen
-@cindex Entfernen von Paketen
-@cindex Paketinstallation
-@cindex Paketentfernung
-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
-(@pxref{Funktionalitäten}). Die Syntax ist:
-
-@example
-guix package @var{Optionen}
-@end example
-@cindex Transaktionen
-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.
-
-Um zum Beispiel @code{lua} zu entfernen und @code{guile} und
-@code{guile-cairo} in einer einzigen Transaktion zu installieren:
-
-@example
-guix package -r lua -i guile guile-cairo
-@end example
-
-@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
-(@pxref{profile-manifest, @option{--manifest}}).
-
-@cindex Profil
-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.
-@cindex Suchpfade
-Wenn Sie nicht die Guix System Distribution benutzen, sollten Sie in
-Betracht ziehen, folgende Zeilen zu Ihrem @file{~/.bash_profile}
-hinzuzufügen (@pxref{Bash Startup Files,,, bash, The GNU Bash Reference
-Manual}), damit in neu erzeugten Shells alle Umgebungsvariablen richtig
-definiert werden:
-
-@example
-GUIX_PROFILE="$HOME/.guix-profile" ; \
-source "$HOME/.guix-profile/etc/profile"
-@end example
-
-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 (@pxref{Aufruf von 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.
-
-Als @var{Optionen} kann vorkommen:
-
-@table @code
-
-@item --install=@var{Paket} @dots{}
-@itemx -i @var{Paket} @dots{}
-Die angegebenen @var{Paket}e installieren.
-
-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.)
-
-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} (@pxref{Pakete mit mehreren Ausgaben.}). Pakete
-mit zugehörigem Namen (und optional der Version) werden unter den Modulen
-der GNU-Distribution gesucht (@pxref{Paketmodule}).
-
-@cindex propagierte Eingaben
-Manchmal haben Pakete @dfn{propagierte Eingaben}: Als solche werden
-Abhängigkeiten bezeichnet, die automatisch zusammen mit dem angeforderten
-Paket installiert werden (im Abschnitt @pxref{package-propagated-inputs,
-@code{propagated-inputs} in @code{package} objects} sind weitere
-Informationen über propagierte Eingaben in Paketdefinitionen zu finden).
-
-@anchor{package-cmd-propagated-inputs}
-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.
-
-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.
-
-@item --install-from-expression=@var{Ausdruck}
-@itemx -e @var{Ausdruck}
-Das Paket installieren, zu dem der @var{Ausdruck} ausgewertet wird.
-
-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)}.
-
-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.
-
-@item --install-from-file=@var{Datei}
-@itemx -f @var{Datei}
-Das Paket installieren, zu dem der Code in der @var{Datei} ausgewertet wird.
-
-Zum Beispiel könnte die @var{Datei} eine Definition wie diese enthalten
-(@pxref{Pakete definieren}):
-
-@example
-@verbatiminclude package-hello.scm
-@end example
-
-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 (@pxref{Aufruf von guix environment}).
-
-@item --remove=@var{Paket} @dots{}
-@itemx -r @var{Paket} @dots{}
-Die angegebenen @var{Paket}e entfernen.
-
-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.
-
-@item --upgrade[=@var{Regexp} @dots{}]
-@itemx -u [@var{Regexp} @dots{}]
-@cindex Pakete aktualisieren
-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}.
-
-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 (@pxref{Aufruf von guix pull}).
-
-@item --do-not-upgrade[=@var{Regexp} @dots{}]
-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:
-
-@example
-$ guix package --upgrade . --do-not-upgrade emacs
-@end example
-
-@item @anchor{profile-manifest}--manifest=@var{Datei}
-@itemx -m @var{Datei}
-@cindex Profildeklaration
-@cindex Profilmanifest
-Erstellt eine neue Generation des Profils aus dem vom Scheme-Code in
-@var{Datei} gelieferten Manifest-Objekt.
-
-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.
-
-@c FIXME: Add reference to (guix profile) documentation when available.
-Der Code in der @var{Datei} muss ein @dfn{Manifest}-Objekt liefern, was
-ungefähr einer Liste von Paketen entspricht:
-
-@findex packages->manifest
-@example
-(use-package-modules guile emacs)
-
-(packages->manifest
- (list emacs
-       guile-2.0
-       ;; Eine bestimmte Paketausgabe nutzen.
-       (list guile-2.0 "debug")))
-@end example
-
-@findex specifications->manifest
-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:
-
-@example
-(specifications->manifest
- '("emacs" "guile@@2.2" "guile@@2.2:debug"))
-@end example
-
-@item --roll-back
-@cindex rücksetzen
-@cindex Zurücksetzen von Transaktionen
-@cindex Transaktionen, zurücksetzen
-Wechselt zur vorherigen @dfn{Generation} des Profils zurück — d.h. macht die
-letzte Transaktion rückgängig.
-
-In Verbindung mit Befehlszeilenoptionen wie @code{--install} wird zuerst
-zurückgesetzt, bevor andere Aktionen durchgeführt werden.
-
-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.
-
-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.
-
-@item --switch-generation=@var{Muster}
-@itemx -S @var{Muster}
-@cindex Generationen
-Wechselt zu der bestimmten Generation, die durch das @var{Muster} bezeichnet
-wird.
-
-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.
-
-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.
-
-@item --search-paths[=@var{Art}]
-@cindex Suchpfade
-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.
-
-Zum Beispiel braucht GCC die Umgebungsvariablen @code{CPATH} und
-@code{LIBRARY_PATH}, um zu wissen, wo sich im Benutzerprofil Header und
-Bibliotheken befinden (@pxref{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.
-
-Die typische Nutzung ist, in der Shell diese Variablen zu definieren:
-
-@example
-$ eval `guix package --search-paths`
-@end example
-
-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.
-
-Diese Befehlszeilenoption kann auch benutzt werden, um die
-@emph{kombinierten} Suchpfade mehrerer Profile zu berechnen. Betrachten Sie
-dieses Beispiel:
-
-@example
-$ guix package -p foo -i guile
-$ guix package -p bar -i guile-json
-$ guix package -p foo -p bar --search-paths
-@end example
-
-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.
-
-
-@item --profile=@var{Profil}
-@itemx -p @var{Profil}
-Auf @var{Profil} anstelle des Standardprofils des Benutzers arbeiten.
-
-@cindex Kollisionen, in einem Profil
-@cindex Paketkollisionen in Profilen
-@cindex Profilkollisionen
-@item --allow-collisions
-Kollidierende Pakete im neuen Profil zulassen. Benutzung auf eigene Gefahr!
-
-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.
-
-@item --bootstrap
-Erstellt das Profil mit dem Bootstrap-Guile. Diese Option ist nur für
-Entwickler der Distribution nützlich.
-
-@end table
-
-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:
-
-@table @option
-
-@item --search=@var{Regexp}
-@itemx -s @var{Regexp}
-@cindex Suche nach Paketen
-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}).
-
-So können bestimmte Felder mit dem Befehl @command{recsel} extrahiert
-werden, zum Beispiel:
-
-@example
-$ guix package -s malloc | recsel -p name,version,relevance
-name: jemalloc
-version: 4.5.0
-relevance: 6
-
-name: glibc
-version: 2.25
-relevance: 1
-
-name: libgc
-version: 7.6.0
-relevance: 1
-@end example
-
-Ebenso kann der Name aller zu den Bedingungen der GNU@tie{}LGPL, Version 3,
-verfügbaren Pakete ermittelt werden:
-
-@example
-$ guix package -s "" | recsel -p name -e 'license ~ "LGPL 3"'
-name: elfutils
-
-name: gmp
-@dots{}
-@end example
-
-Es ist auch möglich, Suchergebnisse näher einzuschränken, indem Sie
-@code{-s} mehrmals übergeben. Zum Beispiel liefert folgender Befehl eines
-Liste von Brettspielen:
-
-@example
-$ guix package -s '\<board\>' -s game | recsel -p name
-name: gnubg
-@dots{}
-@end example
-
-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.
-
-Es ist Zeit für ein komplexeres Beispiel. Folgender Befehl sucht
-kryptographische Bibliotheken, filtert Haskell-, Perl-, Python- und
-Ruby-Bibliotheken heraus und gibt Namen und Zusammenfassung passender Pakete
-aus:
-
-@example
-$ guix package -s crypto -s library | \
-    recsel -e '! (name ~ "^(ghc|perl|python|ruby)")' -p name,synopsis
-@end example
-
-@noindent
-@xref{Selection Expressions,,, recutils, GNU recutils manual} enthält
-weitere Informationen über @dfn{Auswahlausdrücke} mit @code{recsel -e}.
-
-@item --show=@var{Paket}
-Zeigt Details über das @var{Paket} aus der Liste verfügbarer Pakete, im
-@code{recutils}-Format (@pxref{Top, GNU recutils databases,, recutils, GNU
-recutils manual}).
-
-@example
-$ guix package --show=python | recsel -p name,version
-name: python
-version: 2.7.6
-
-name: python
-version: 3.3.5
-@end example
-
-Sie können auch den vollständigen Namen eines Pakets angeben, um Details nur
-über diese Version angezeigt zu bekommen:
-@example
-$ guix package --show=python@@3.4 | recsel -p name,version
-name: python
-version: 3.4.3
-@end example
-
-
-
-@item --list-installed[=@var{Regexp}]
-@itemx -I [@var{Regexp}]
-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.
-
-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.
-
-@item --list-available[=@var{Regexp}]
-@itemx -A [@var{Regexp}]
-Listet Pakete auf, die in der aktuell installierten Distribution dieses
-Systems verfügbar sind (@pxref{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.
-
-Zu jedem Paket werden folgende Informationen getrennt durch Tabulatorzeichen
-ausgegeben: der Name, die Version als Zeichenkette, die Teile des Programms
-(@pxref{Pakete mit mehreren Ausgaben.}) und die Stelle im Quellcode, an der
-das Paket definiert ist.
-
-@item --list-generations[=@var{Muster}]
-@itemx -l [@var{Muster}]
-@cindex Generationen
-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.
-
-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 (@pxref{Pakete mit mehreren Ausgaben.}) und an welcher Stelle sich das Paket im Store befindet.
-
-Wenn ein @var{Muster} angegeben wird, liefert der Befehl nur dazu passende
-Generationen. Gültige Muster sind zum Beispiel:
-
-@itemize
-@item @emph{Ganze Zahlen und kommagetrennte ganze Zahlen}. Beide Muster bezeichnen
-Generationsnummern. Zum Beispiel liefert @code{--list-generations=1} die
-erste Generation.
-
-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.
-
-@item @emph{Bereiche}. @code{--list-generations=2..9} gibt die
-angegebenen Generationen und alles dazwischen aus. Beachten Sie, dass der
-Bereichsanfang eine kleinere Zahl als das Bereichsende sein muss.
-
-Sie können auch kein Bereichsende angeben, zum Beispiel liefert
-@code{--list-generations=2..} alle Generationen ab der zweiten.
-
-@item @emph{Zeitdauern}. Sie können auch die letzten @emph{N}@tie{}Tage, Wochen
-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.
-@end itemize
-
-@item --delete-generations[=@var{Muster}]
-@itemx -d [@var{Muster}]
-Wird kein @var{Muster} angegeben, werden alle Generationen außer der
-aktuellen entfernt.
-
-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.
-
-Falls die aktuelle Generation zum Muster passt, wird sie @emph{nicht}
-gelöscht. Auch die nullte Generation wird niemals gelöscht.
-
-Beachten Sie, dass Sie auf gelöschte Generationen nicht zurückwechseln
-können. Dieser Befehl sollte also nur mit Vorsicht benutzt werden.
-
-@end table
-
-Zu guter Letzt können Sie, da @command{guix package} Erstellungsprozesse zu
-starten vermag, auch alle gemeinsamen Erstellungsoptionen (@pxref{Gemeinsame Erstellungsoptionen}) verwenden. Auch Paketumwandlungsoptionen wie
-@option{--with-source} sind möglich (@pxref{Paketumwandlungsoptionen}). 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
-(@pxref{Pakete definieren}).
-
-@node Substitute
-@section Substitute
-
-@cindex Substitute
-@cindex vorerstellte Binärdateien
-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.
-
-Substitute können alles sein, was das Ergebnis einer Ableitungserstellung
-ist (@pxref{Ableitungen}). 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.
-
-@menu
-* Offizieller Substitut-Server::  Eine besondere Quelle von Substituten.
-* Substitut-Server autorisieren::  Wie man Substitute an- und abschaltet.
-* Substitutauthentifizierung::  Wie Guix Substitute verifiziert.
-* Proxy-Einstellungen::      Wie Sie Substitute über einen Proxy beziehen.
-* Fehler bei der Substitution::  Was passiert, wenn die Substitution 
-                                   fehlschlägt.
-* Vom Vertrauen gegenüber Binärdateien::  Wie können Sie diesem binären 
-                                              Blob trauen?
-@end menu
-
-@node Offizieller Substitut-Server
-@subsection Offizieller Substitut-Server
-
-@cindex Hydra
-@cindex Build-Farm
-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}).
-
-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.
-
-Substitute von der offiziellen Build-Farm sind standardmäßig erlaubt, wenn
-Sie die Guix-System-Distribution verwenden (@pxref{GNU-Distribution}). Auf
-Fremddistributionen sind sie allerdings standardmäßig ausgeschaltet, solange
-Sie sie nicht ausdrücklich in einem der empfohlenen Installationsschritte
-erlaubt haben (@pxref{Installation}). Die folgenden Absätze beschreiben, wie
-Sie Substitute für die offizielle Build-Farm an- oder ausschalten; dieselbe
-Prozedur kann auch benutzt werden, um Substitute für einen beliebigen
-anderen Substitutsserver zu erlauben.
-
-@node Substitut-Server autorisieren
-@subsection Substitut-Server autorisieren
-
-@cindex Sicherheit
-@cindex Substitute, deren Autorisierung
-@cindex Access Control List (ACL), für Substitute
-@cindex ACL (Access Control List), für Substitute
-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{Aufruf von guix archive}).  Doing so implies that you trust
-@code{@value{SUBSTITUTE-SERVER}} to not be compromised and to serve genuine
-substitutes.
-
-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:
-
-@example
-# guix archive --authorize < @var{prefix}/share/guix/@value{SUBSTITUTE-SERVER}.pub
-@end example
-
-@quotation Anmerkung
-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}.
-@end quotation
-
-Sobald es eingerichtet wurde, sollte sich die Ausgabe eines Befehls wie
-@code{guix build} von so etwas:
-
-@example
-$ guix build emacs --dry-run
-Folgende Ableitungen würden erstellt:
-   /gnu/store/yr7bnx8xwcayd6j95r2clmkdl1qh688w-emacs-24.3.drv
-   /gnu/store/x8qsh1hlhgjx6cwsjyvybnfv2i37z23w-dbus-1.6.4.tar.gz.drv
-   /gnu/store/1ixwp12fl950d15h2cj11c73733jay0z-alsa-lib-1.0.27.1.tar.bz2.drv
-   /gnu/store/nlma1pw0p603fpfiqy7kn4zm105r5dmw-util-linux-2.21.drv
-@dots{}
-@end example
-
-@noindent
-in so etwas verwandeln:
-
-@example
-$ guix build emacs --dry-run
-112.3 MB würden heruntergeladen:
-   /gnu/store/pk3n22lbq6ydamyymqkkz7i69wiwjiwi-emacs-24.3
-   /gnu/store/2ygn4ncnhrpr61rssa6z0d9x22si0va3-libjpeg-8d
-   /gnu/store/71yz6lgx4dazma9dwn2mcjxaah9w77jq-cairo-1.12.16
-   /gnu/store/7zdhgp0n1518lvfn8mb96sxqfmvqrl7v-libxrender-0.9.7
-@dots{}
-@end example
-
-@noindent
-This indicates that substitutes from @code{@value{SUBSTITUTE-SERVER}} are
-usable and will be downloaded, when possible, for future builds.
-
-@cindex Substitute, wie man sie ausschaltet
-Der Substitutsmechanismus kann global ausgeschaltet werden, indem Sie dem
-@code{guix-daemon} beim Starten die Befehlszeilenoption
-@code{--no-substitutes} übergeben (@pxref{Aufruf des 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.
-
-@node Substitutauthentifizierung
-@subsection Substitutauthentifizierung
-
-@cindex digitale Signaturen
-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.
-
-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:
-
-@example
---substitute-urls="https://a.example.org https://b.example.org"
-@end example
-
-@noindent
-@cindex Reproduzierbare Erstellungen
-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).
-
-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).
-
-@node Proxy-Einstellungen
-@subsection Proxy-Einstellungen
-
-@vindex http_proxy
-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}.
-
-@node Fehler bei der Substitution
-@subsection Fehler bei der Substitution
-
-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.
-
-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 (@pxref{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.
-
-Um eine Vorstellung zu bekommen, wieviele Substitute gerade verfügbar sind,
-können Sie den Befehl @command{guix weather} benutzen (@pxref{Aufruf von guix weather}). Dieser Befehl zeigt Statistiken darüber an, wie es um die von
-einem Server verfügbaren Substitute steht.
-
-@node Vom Vertrauen gegenüber Binärdateien
-@subsection Vom Vertrauen gegenüber Binärdateien
-
-@cindex Vertrauen, gegenüber vorerstellten Binärdateien
-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{Aufruf von guix publish}).
-
-Guix hat die richtigen Grundlagen, um die Reproduzierbarkeit von
-Erstellungen zu maximieren (@pxref{Funktionalitäten}). 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
-(@pxref{Aufruf von 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 (@pxref{build-check, @command{guix build --check}}).
-
-In Zukunft wollen wir, dass Guix Binärdateien an und von Nutzern
-peer-to-peer veröffentlichen kann. Wenn Sie mit uns dieses Projekt
-diskuttieren möchten, kommen Sie auf unsere Mailing-Liste
-@email{guix-devel@@gnu.org}.
-
-@node Pakete mit mehreren Ausgaben.
-@section Pakete mit mehreren Ausgaben.
-
-@cindex mehrere Ausgaben, bei Paketen
-@cindex Paketausgaben
-@cindex Ausgaben
-
-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 package -i 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 an obigem Befehl
-sehen. In diesem speziellen Fall enthält die Standard-Paketausgabe von
-@code{glibc} alle C-Headerdateien, gemeinsamen Bibliotheken (»Shared
-Libraries«), statische Bibliotheken (»Static Libraries«), Dokumentation für
-Info sowie andere zusätzliche Dateien.
-
-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:
-
-@example
-guix package -i glib
-@end example
-
-@cindex Dokumentation
-Der Befehl, um die Dokumentation zu installieren, ist:
-
-@example
-guix package -i glib:doc
-@end example
-
-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
-(@pxref{Aufruf von guix size}). @command{guix graph} kann auch helfen
-(@pxref{Aufruf von guix graph}).
-
-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 (@pxref{Dateien zur Fehlersuche installieren}). Die Ausgaben eines
-Pakets stehen in der dritten Spalte der Anzeige von @command{guix package
---list-available} (@pxref{Aufruf von guix package}).
-
-
-@node Aufruf von guix gc
-@section @command{guix gc} aufrufen
-
-@cindex Müllsammler
-@cindex Plattenspeicher
-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!
-
-@cindex GC-Wurzeln
-@cindex Müllsammlerwurzeln
-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 (@pxref{Aufruf von guix build}).
-
-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 (@pxref{Aufruf von guix package}).
-
-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:
-
-@example
-guix gc -F 5G
-@end example
-
-It is perfectly safe to run as a non-interactive periodic job
-(@pxref{Geplante Auftragsausführung}, 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.
-
-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:
-
-@table @code
-@item --collect-garbage[=@var{Minimum}]
-@itemx -C [@var{Minimum}]
-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.
-
-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 (@pxref{Block size,
-size specifications,, coreutils, GNU Coreutils}).
-
-Wird kein @var{Minimum} angegeben, sammelt der Müllsammler allen Müll.
-
-@item --free-space=@var{Menge}
-@itemx -F @var{Menge}
-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.
-
-Wenn die angegebene  @var{Menge} oder mehr bereits in @file{/gnu/store} frei
-verfügbar ist, passiert nichts.
-
-@item --delete
-@itemx -d
-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.
-
-@item --list-failures
-Store-Objekte auflisten, die zwischengespeicherten Erstellungsfehlern
-entsprechen.
-
-Hierbei wird nichts ausgegeben, sofern der Daemon nicht mit
-@option{--cache-failures} gestartet wurde (@pxref{Aufruf des guix-daemon,
-@option{--cache-failures}}).
-
-@item --clear-failures
-Die angegebenen Store-Objekte aus dem Zwischenspeicher für fehlgeschlagene
-Erstellungen entfernen.
-
-Auch diese Option macht nur Sinn, wenn der Daemon mit
-@option{--cache-failures} gestartet wurde. Andernfalls passiert nichts.
-
-@item --list-dead
-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.
-
-@item --list-live
-Zeige die Liste lebendiger Store-Dateien und -Verzeichnisse.
-
-@end table
-
-Außerdem können Referenzen unter bestehenden Store-Dateien gefunden werden:
-
-@table @code
-
-@item --references
-@itemx --referrers
-@cindex Paketabhängigkeiten
-Listet die referenzierten bzw. sie referenzierenden Objekte der angegebenen
-Store-Dateien auf.
-
-@item --requisites
-@itemx -R
-@cindex Abschluss
-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.
-
-Der Abschnitt @xref{Aufruf von guix size} erklärt ein Werkzeug, um den
-Speicherbedarf des Abschlusses eines Elements zu ermitteln. Siehe
-@xref{Aufruf von guix graph} für ein Werkzeug, um den Referenzgraphen zu
-veranschaulichen.
-
-@item --derivers
-@cindex Ableitung
-Liefert die Ableitung(en), die zu den angegebenen Store-Objekten führen
-(@pxref{Ableitungen}).
-
-Zum Beispiel liefert dieser Befehl:
-
-@example
-guix gc --derivers `guix package -I ^emacs$ | cut -f4`
-@end example
-
-@noindent
-die @file{.drv}-Datei(en), die zum in Ihrem Profil installierten
-@code{emacs}-Paket führen.
-
-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.
-@end table
-
-Zuletzt können Sie mit folgenden Befehlszeilenoptionen die Integrität des
-Stores prüfen und den Plattenspeicherverbrauch im Zaum halten.
-
-@table @option
-
-@item --verify[=@var{Optionen}]
-@cindex Integrität, des Stores
-@cindex Integritätsprüfung
-Die Integrität des Stores verifizieren
-
-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.
-
-Wenn angegeben, müssen die @var{Optionen} eine kommagetrennte Liste aus
-mindestens einem der Worte @code{contents} und @code{repair} sein.
-
-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.
-
-@cindex Store, reparieren
-@cindex Datenbeschädigung, Behebung
-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 (@pxref{Substitute}). 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
-(@pxref{Aufruf von guix build}).
-
-@item --optimize
-@cindex Deduplizieren
-Den Store durch Nutzung harter Verknüpfungen für identische Dateien
-optimieren — mit anderen Worten wird der Store @dfn{dedupliziert}.
-
-Der Daemon führt Deduplizierung automatisch nach jeder erfolgreichen
-Erstellung und jedem Importieren eines Archivs durch, sofern er nicht mit
-@code{--disable-deduplication} (@pxref{Aufruf des 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.
-
-@end table
-
-@node Aufruf von guix pull
-@section @command{guix pull} aufrufen
-
-@cindex Aktualisieren von Guix
-@cindex Updaten von Guix
-@cindex @command{guix pull}
-@cindex pull
-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.
-
-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.
-
-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.
-
-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
-(@pxref{Dokumentation}):
-
-@example
-export PATH="$HOME/.config/guix/current/bin:$PATH"
-export INFOPATH="$HOME/.config/guix/current/share/info:$INFOPATH"
-@end example
-
-Die Befehlszeilenoption @code{--list-generations} oder kurz @code{-l} listet
-ältere von @command{guix pull} erzeugte Generationen auf, zusammen mit
-Informationen zu deren Provenienz.
-
-@example
-$ guix pull -l
-Generation 1	Jun 10 2018 00:18:18
-  guix 65956ad
-    repository URL: https://git.savannah.gnu.org/git/guix.git
-    branch: origin/master
-    commit: 65956ad3526ba09e1f7a40722c96c6ef7c0936fe
-
-Generation 2	Jun 11 2018 11:02:49
-  guix e0cc7f6
-    repository URL: https://git.savannah.gnu.org/git/guix.git
-    branch: origin/master
-    commit: e0cc7f669bec22c37481dd03a7941c7d11a64f1d
-  2 new packages: keepalived, libnfnetlink
-  6 packages upgraded: emacs-nix-mode@@2.0.4,
-    guile2.0-guix@@0.14.0-12.77a1aac, guix@@0.14.0-12.77a1aac,
-    heimdal@@7.5.0, milkytracker@@1.02.00, nix@@2.0.4
-
-Generation 3	Jun 13 2018 23:31:07	(current)
-  guix 844cc1c
-    repository URL: https://git.savannah.gnu.org/git/guix.git
-    branch: origin/master
-    commit: 844cc1c8f394f03b404c5bb3aee086922373490c
-  28 new packages: emacs-helm-ls-git, emacs-helm-mu, @dots{}
-  69 packages upgraded: borg@@1.1.6, cheese@@3.28.0, @dots{}
-@end example
-
-Im Abschnitt @ref{Aufruf von guix describe, @command{guix describe}} werden
-andere Möglichkeiten erklärt, sich den momentanen Zustand von Guix
-beschreiben zu lassen.
-
-Das Profil @code{~/.config/guix/current} verhält sich genau wie jedes andere
-Profil, das von @command{guix package} erzeugt wurde (@pxref{Aufruf von 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:
-
-@example
-$ guix package -p ~/.config/guix/current --roll-back
-switched from generation 3 to 2
-$ guix package -p ~/.config/guix/current --delete-generations=1
-deleting /var/guix/profiles/per-user/charlie/current-guix-1-link
-@end example
-
-Der Befehl @command{guix pull} wird in der Regel ohne Befehlszeilenargumente
-aufgerufen, aber er versteht auch folgende Befehlszeilenoptionen:
-
-@table @code
-@item --url=@var{URL}
-@itemx --commit=@var{Commit}
-@itemx --branch=@var{Branch}
-Code wird von der angegebenen @var{URL} für den angegebenen @var{Commit}
-(eine gültige Commit-ID, dargestellt als hexadezimale Zeichenkette) oder
-@var{Branch} heruntergeladen.
-
-@cindex @file{channels.scm}, Konfigurationsdatei
-@cindex Konfigurationsdatei für Kanäle
-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).
-
-@item --channels=@var{Datei}
-@itemx -C @var{Datei}
-Die Liste der Kanäle aus der angegebenen @var{Datei} statt aus
-@file{~/.config/guix/channels.scm} auslesen. Die @var{Datei} muss
-Scheme-Code enthalten, der zu einer Liste von Kanalobjekten ausgewertet
-wird. Siehe @xref{Kanäle} für nähere Informationen.
-
-@item --list-generations[=@var{Muster}]
-@itemx -l [@var{Muster}]
-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} (@pxref{Aufruf von guix package}).
-
-Im Abschnitt @ref{Aufruf von guix describe, @command{guix describe}} wird eine
-Möglichkeit erklärt, sich Informationen nur über die aktuelle Generation
-anzeigen zu lassen.
-
-@item --profile=@var{Profil}
-@itemx -p @var{Profil}
-Auf @var{Profil} anstelle von @file{~/.config/guix/current} arbeiten.
-
-@item --dry-run
-@itemx -n
-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.
-
-@item --system=@var{System}
-@itemx -s @var{System}
-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.
-
-@item --verbose
-Ausführliche Informationen ausgeben und Erstellungsprotokolle auf der
-Standardfehlerausgabe ausgeben.
-
-@item --bootstrap
-Das neueste Guix mit dem Bootstrap-Guile erstellen. Diese
-Befehlszeilenoption ist nur für Guix-Entwickler von Nutzen.
-@end table
-
-Mit Hilfe von @dfn{Kanälen} können Sie bei @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 @xref{Kanäle} finden Sie nähere Informationen.
-
-Außerdem unterstützt @command{guix pull} alle gemeinsamen
-Erstellungsoptionen (@pxref{Gemeinsame Erstellungsoptionen}).
-
-@node Kanäle
-@section Kanäle
-
-@cindex Kanäle
-@cindex @file{channels.scm}, Konfigurationsdatei
-@cindex Konfigurationsdatei für Kanäle
-@cindex @command{guix pull}, Konfigurationsdatei
-@cindex Konfiguration von @command{guix pull}
-Guix und die Sammlung darin verfügbarer Pakete können Sie durch Ausführen
-von @command{guix pull} aktualisieren (@pxref{Aufruf von 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.
-
-@subsection Einen eigenen Guix-Kanal benutzen
-
-Der Kanal namens @code{guix} gibt an, wovon Guix selbst — seine
-Befehlszeilenwerkzeuge und seine Paketsammlung — heruntergeladen werden
-sollten. 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}:
-
-@lisp
-;; 'guix pull' mein eigenes Repository benutzen lassen.
-(list (channel
-        (name 'guix)
-        (url "https://example.org/my-guix.git")
-        (branch "super-hacks")))
-@end lisp
-
-@noindent
-Ab dann wird @command{guix pull} seinen Code vom Branch @code{super-hacks}
-des Repositorys auf @code{example.org} beziehen.
-
-@subsection Weitere Kanäle angeben
-
-@cindex Paketsammlung erweitern (Kanäle)
-@cindex Eigene Pakete (Kanäle)
-@cindex Kanäle, für eigene Pakete
-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 (@pxref{Paketmodule}) 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?
-
-@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 Warnung
-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:
-
-@itemize
-@item
-Bevor Sie einen Kanal veröffentlichen, überlegen Sie sich bitte erst, ob Sie
-die Pakete nicht besser zum eigentlichen Guix-Projekt beisteuern
-(@pxref{Mitwirken}). 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.
-
-@item
-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.
-
-@item
-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.
-@end itemize
-
-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.
-@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
-;; Meine persönlichen Pakete zu denen von Guix dazunehmen.
-(cons (channel
-        (name 'meine-persönlichen-pakete)
-        (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
-  meine-persönlichen-pakete dd3df5e
-    repository URL: https://example.org/personal-packages.git
-    branch: master
-    commit: dd3df5e2c8818760a8fc0bd699e55d3b69fef2bb
-  11 new packages: mein-gimp, mein-emacs-mit-coolen-features, @dots{}
-  4 packages upgraded: emacs-racket-mode@@0.0.2-2.1b78827, @dots{}
-@end example
-
-@noindent
-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.
-
-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{Module,,, 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"))
-  (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.
-
-@subsection Guix nachbilden
-
-@cindex Festsetzen, bei Kanälen
-@cindex Nachbilden von Guix
-@cindex Reproduzierbarkeit von Guix
-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.
-
-@lisp
-;; Ganz bestimmte Commits der relevanten Kanäle installieren.
-(list (channel
-       (name 'guix)
-       (url "https://git.savannah.gnu.org/git/guix.git")
-       (commit "d894ab8e9bfabcefa6c49d9ba2e834dd5a73a300"))
-      (channel
-       (name 'meine-persönlichen-pakete)
-       (url "https://example.org/personal-packages.git")
-       (branch "dd3df5e2c8818760a8fc0bd699e55d3b69fef2bb")))
-@end lisp
-
-Der Befehl @command{guix describe --format=channels} kann diese Kanalliste
-sogar direkt erzeugen (@pxref{Aufruf von guix describe}).
-
-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.
-
-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
-@xref{Untergeordnete} beschreibt eine weitere Möglichkeit, diese Superkräfte zu
-nutzen.
-
-@node Untergeordnete
-@section Untergeordnete
-
-@c TODO: Remove this once we're more confident about API stability.
-@quotation Anmerkung
-Die hier beschriebenen Funktionalitäten sind in der Version @value{VERSION}
-bloß eine »Technologie-Vorschau«, daher kann sich die Schnittstelle in
-Zukunft noch ändern.
-@end quotation
-
-@cindex Untergeordnete
-@cindex Mischen von Guix-Versionen
-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.
-
-@cindex untergeordnete Pakete
-Aus technischer Sicht ist ein »Untergeordneter« im Kern ein separater
-Guix-Prozess, der über eine REPL (@pxref{Aufruf von 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}.
-
-In Kombination mit Kanälen (@pxref{Kanäle}) 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 (@pxref{Aufruf von 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:
-
-@lisp
-(use-modules (guix inferior) (guix channels)
-             (srfi srfi-1))   ;für die Prozedur 'first'
-
-(define channels
-  ;; Dies ist die alte Version, aus der wir
-  ;; guile-json extrahieren möchten.
-  (list (channel
-         (name 'guix)
-         (url "https://git.savannah.gnu.org/git/guix.git")
-         (commit
-          "65956ad3526ba09e1f7a40722c96c6ef7c0936fe"))))
-
-(define inferior
-  ;; Ein Untergeordneter, der obige Version repräsentiert.
-  (inferior-for-channels channels))
-
-;; Daraus erzeugen wir jetzt ein Manifest mit dem aktuellen
-;; »guile«-Paket und dem alten »guile-json«-Paket.
-(packages->manifest
- (list (first (lookup-inferior-packages inferior "guile-json"))
-       (specification->package "guile")))
-@end lisp
-
-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.
-
-Folgende Prozeduren werden im Modul @code{(guix inferior)} angeboten, um
-einen Untergeordneten zu öffnen:
-
-@deffn {Scheme-Prozedur} inferior-for-channels @var{Kanäle} @
-   [#: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.
-
-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.
-@end deffn
-
-@deffn {Scheme-Prozedur} open-inferior @var{Verzeichnis} @
-  [#: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.
-@end deffn
-
-@cindex untergeordnete Pakete
-Die im Folgenden aufgeführten Prozeduren ermöglichen es Ihnen,
-untergeordnete Pakete abzurufen und zu verändern.
-
-@deffn {Scheme-Prozedur} inferior-packages @var{Untergeordneter}
-Liefert die Liste der Pakete in @var{Untergeordneter}.
-@end deffn
-
-@deffn {Scheme-Prozedur} lookup-inferior-packages @var{Untergeordneter} @var{Name} @
-   [@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.
-@end deffn
-
-@deffn {Scheme-Prozedur} inferior-package? @var{Objekt}
-Liefert wahr, wenn das @var{obj} ein Untergeordneter ist.
-@end deffn
-
-@deffn {Scheme-Prozedur} inferior-package-name @var{Paket}
-@deffnx {Scheme-Prozedur} inferior-package-version @var{Paket}
-@deffnx {Scheme-Prozedur} inferior-package-synopsis @var{Paket}
-@deffnx {Scheme-Prozedur} inferior-package-description @var{Paket}
-@deffnx {Scheme-Prozedur} inferior-package-home-page @var{Paket}
-@deffnx {Scheme-Prozedur} inferior-package-location @var{Paket}
-@deffnx {Scheme-Prozedur} inferior-package-inputs @var{Paket}
-@deffnx {Scheme-Prozedur} inferior-package-native-inputs @var{Paket}
-@deffnx {Scheme-Prozedur} inferior-package-propagated-inputs @var{Paket}
-@deffnx {Scheme-Prozedur} inferior-package-transitive-propagated-inputs @var{Paket}
-@deffnx {Scheme-Prozedur} inferior-package-native-search-paths @var{Paket}
-@deffnx {Scheme-Prozedur} inferior-package-transitive-native-search-paths @var{Paket}
-@deffnx {Scheme-Prozedur} inferior-package-search-paths @var{Paket}
-Diese Prozeduren sind das Gegenstück zu den Zugriffsmethoden des Verbunds
-»package« für Pakete (@pxref{»package«-Referenz}). 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.
-@end deffn
-
-Untergeordnete Pakete können transparent wie jedes andere Paket oder
-dateiartige Objekt in G-Ausdrücken verwendet werden
-(@pxref{G-Ausdrücke}). Sie werden auch transparent wie reguläre Pakete von
-der Prozedur @code{packages->manifest} behandelt, welche oft in Manifesten
-benutzt wird (@pxref{Aufruf von 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.
-
-@node Aufruf von guix describe
-@section @command{guix describe} aufrufen
-
-@cindex Reproduzierbarkeit
-@cindex Nachbilden von Guix
-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.
-
-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
-(@pxref{Kanäle}):
-
-@example
-$ guix describe
-Generation 10	Sep 03 2018 17:32:44	(current)
-  guix e0fa68c
-    repository URL: https://git.savannah.gnu.org/git/guix.git
-    branch: master
-    commit: e0fa68c7718fffd33d81af415279d6ddb518f727
-@end example
-
-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 (@pxref{Aufruf von 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.
-
-Damit es leichter ist, Guix nachzubilden, kann Ihnen @command{guix describe}
-auch eine Liste der Kanäle statt einer menschenlesbaren Beschreibung wie
-oben liefern:
-
-@example
-$ guix describe -f channels
-(list (channel
-        (name 'guix)
-        (url "https://git.savannah.gnu.org/git/guix.git")
-        (commit
-          "e0fa68c7718fffd33d81af415279d6ddb518f727")))
-@end example
-
-@noindent
-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 (@pxref{Aufruf von 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!
-
-Die genauen Befehlszeilenoptionen, die @command{guix describe} unterstützt,
-lauten wie folgt:
-
-@table @code
-@item --format=@var{Format}
-@itemx -f @var{Format}
-Die Ausgabe im angegebenen @var{Format} generieren, was eines der Folgenden
-sein muss:
-
-@table @code
-@item human
-für menschenlesbare Ausgabe,
-@item Kanäle
-eine Liste von Kanalspezifikationen erzeugen, die an @command{guix pull -C}
-übergeben werden oder als @file{~/.config/guix/channels.scm} eingesetzt
-werden können (@pxref{Aufruf von guix pull}),
-@item json
-@cindex JSON
-generiert eine Liste von Kanalspezifikationen im JSON-Format,
-@item recutils
-generiert eine Liste von Kanalspezifikationen im Recutils-Format.
-@end table
-
-@item --profile=@var{Profil}
-@itemx -p @var{Profil}
-Informationen über das @var{Profil} anzeigen.
-@end table
-
-@node Aufruf von guix archive
-@section @command{guix archive} aufrufen
-
-@cindex @command{guix archive}
-@cindex Archivdateien
-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.
-
-@quotation Anmerkung
-Wenn Sie nach einer Möglichkeit suchen, Archivdateien für andere Werkzeuge
-als Guix zu erstellen, finden Sie Informationen dazu im Abschnitt
-@pxref{Aufruf von guix pack}.
-@end quotation
-
-@cindex Store-Objekte exportieren
-Führen Sie Folgendes aus, um Store-Dateien als ein Archiv auf die
-Standardausgabe zu exportieren:
-
-@example
-guix archive --export @var{Optionen} @var{Spezifikationen}...
-@end example
-
-@var{Spezifikationen} sind dabei entweder die Namen von Store-Dateien oder
-Paketspezifikationen wie bei @command{guix package} (@pxref{Aufruf von guix package}). Zum Beispiel erzeugt der folgende Befehl ein Archiv der
-@code{gui}-Ausgabe des Pakets @code{git} sowie die Hauptausgabe von
-@code{emacs}:
-
-@example
-guix archive --export git:gui /gnu/store/...-emacs-24.3 > groß.nar
-@end example
-
-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
-(@pxref{Gemeinsame Erstellungsoptionen}).
-
-Um das @code{emacs}-Paket auf eine über SSH verbundene Maschine zu
-übertragen, würde man dies ausführen:
-
-@example
-guix archive --export -r emacs | ssh die-maschine guix archive --import
-@end example
-
-@noindent
-Auf gleiche Art kann auch ein vollständiges Benutzerprofil von einer
-Maschine auf eine andere übertragen werden:
-
-@example
-guix archive --export -r $(readlink -f ~/.guix-profile) | \
-  ssh die-maschine guix-archive --import
-@end example
-
-@noindent
-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
-(@pxref{Aufruf von guix copy}).
-
-@cindex Nar, Archivformat
-@cindex Normalisiertes Archiv (Nar)
-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.
-
-@c FIXME: Add xref to daemon doc about signatures.
-Beim Exportieren versieht der Daemon den Inhalt des Archivs mit einer
-digitalen Signatur.  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.
-
-Die wichtigsten Befehlszeilenoptionen sind:
-
-@table @code
-@item --export
-Exportiert die angegebenen Store-Dateien oder Pakete (siehe unten) und
-schreibt das resultierende Archiv auf die Standardausgabe.
-
-Abhängigkeiten @emph{fehlen} in der Ausgabe, außer wenn @code{--recursive}
-angegeben wurde.
-
-@item -r
-@itemx --recursive
-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.
-
-@item --import
-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).
-
-@item --missing
-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.
-
-@item --generate-key[=@var{Parameter}]
-@cindex Signieren, von Archiven
-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.
-
-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 (@pxref{General public-key related Functions,
-@code{gcry_pk_genkey},, gcrypt, The Libgcrypt Reference Manual}).
-
-@item --authorize
-@cindex Autorisieren, von Archiven
-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}.
-
-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{http://people.csail.mit.edu/rivest/Sexp.txt, »advanced«-formatierte
-S-Ausdrücke} und ist als eine Access Control List für die
-@url{http://theworld.com/~cme/spki.txt, Simple Public-Key Infrastructure
-(SPKI)} aufgebaut.
-
-@item --extract=@var{Verzeichnis}
-@itemx -x @var{Verzeichnis}
-Ein Archiv mit einem einzelnen Objekt lesen, wie es von Substitutservern
-geliefert wird (@pxref{Substitute}) und ins @var{Verzeichnis}
-entpacken. Dies ist eine systemnahe Operation, die man nur selten direkt
-benutzt; siehe unten.
-
-For example, the following command extracts the substitute for Emacs served
-by @code{@value{SUBSTITUTE-SERVER}} to @file{/tmp/emacs}:
-
-@example
-$ wget -O - \
-  https://@value{SUBSTITUTE-SERVER}/nar/@dots{}-emacs-24.5 \
-  | bunzip2 | guix archive -x /tmp/emacs
-@end example
-
-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.
-
-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.
-
-@end table
-
-
-@c *********************************************************************
-@node Development
-@chapter Development
-
-@cindex software development
-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.
-
-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.
-
-@menu
-* Aufruf von guix environment::  Entwicklungsumgebungen einrichten.
-* Aufruf von guix pack::     Software-Bündel erstellen.
-@end menu
-
-@node Aufruf von guix environment
-@section @command{guix environment} aufrufen
-
-@cindex reproduzierbare Erstellungsumgebungen
-@cindex Entwicklungsumgebungen
-@cindex @command{guix environment}
-@cindex Umgebung, Paketerstellungsumgebung
-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.
-
-Die allgemeine Syntax lautet:
-
-@example
-guix environment @var{Optionen} @var{Paket}@dots{}
-@end example
-
-Folgendes Beispiel zeigt, wie eine neue Shell gestartet wird, auf der alles
-für die Entwicklung von GNU@tie{}Guile eingerichtet ist:
-
-@example
-guix environment guile
-@end example
-
-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. @xref{Bash Startup Files,,, bash, The GNU Bash
-Reference Manual}, für Details über beim Starten von Bash gelesene Dateien}.
-
-@vindex GUIX_ENVIRONMENT
-@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 (@pxref{Bash Startup Files,,, bash, The GNU Bash
-Reference Manual}):
-
-@example
-if [ -n "$GUIX_ENVIRONMENT" ]
-then
-    export PS1="\u@@\h \w [dev]\$ "
-fi
-@end example
-
-@noindent
-...@: or to browse the profile:
-
-@example
-$ ls "$GUIX_ENVIRONMENT/bin"
-@end example
-
-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:
-
-@example
-guix environment guile emacs
-@end example
-
-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:
-
-@example
-guix environment guile -- make -j4
-@end example
-
-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:
-
-@example
-guix environment --ad-hoc python2-numpy python-2.7 -- python
-@end example
-
-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:
-
-@example
-guix environment guix --ad-hoc git strace
-@end example
-
-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:
-
-@example
-guix environment --ad-hoc --container guile -- guile
-@end example
-
-@quotation Anmerkung
-Die Befehlszeilenoption @code{--container} funktioniert nur mit Linux-libre
-3.19 oder neuer.
-@end quotation
-
-Im Folgenden werden die verfügbaren Befehlszeilenoptionen zusammengefasst.
-
-@table @code
-@item --root=@var{file}
-@itemx -r @var{file}
-@cindex persistente Umgebung
-@cindex Müllsammlerwurzel, für Umgebungen
-Die @var{Datei} zu einer symbolischen Verknüpfung auf das Profil dieser
-Umgebung machen und als eine Müllsammlerwurzel registrieren.
-
-Das ist nützlich, um seine Umgebung vor dem Müllsammler zu schützen und sie
-»persistent« zu machen.
-
-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. @xref{Aufruf von guix gc} hat mehr Informationen über Müllsammlerwurzeln.
-
-@item --expression=@var{Ausdruck}
-@itemx -e @var{Ausdruck}
-Eine Umgebung für das Paket oder die Liste von Paketen erzeugen, zu der der
-@var{Ausdruck} ausgewertet wird.
-
-Zum Beispiel startet dies:
-
-@example
-guix environment -e '(@@ (gnu packages maths) petsc-openmpi)'
-@end example
-
-eine Shell mit der Umgebung für eben diese bestimmte Variante des Pakets
-PETSc.
-
-Wenn man dies ausführt:
-
-@example
-guix environment --ad-hoc -e '(@@ (gnu) %base-packages)'
-@end example
-
-starts a shell with all the base system packages available.
-
-Die obigen Befehle benutzen nur die Standard-Ausgabe des jeweiligen
-Pakets. Um andere Ausgaben auszuwählen, können zweielementige Tupel
-spezifiziert werden:
-
-@example
-guix environment --ad-hoc -e '(list (@@ (gnu packages bash) bash) "include")'
-@end example
-
-@item --load=@var{Datei}
-@itemx -l @var{Datei}
-Eine Umgebung erstellen für das Paket oder die Liste von Paketen, zu der der
-Code in der @var{Datei} ausgewertet wird.
-
-Zum Beispiel könnte die @var{Datei} eine Definition wie diese enthalten
-(@pxref{Pakete definieren}):
-
-@example
-@verbatiminclude environment-gdb.scm
-@end example
-
-@item --manifest=@var{Datei}
-@itemx -m @var{Datei}
-Eine Umgebung für die Pakete erzeugen, die im Manifest-Objekt enthalten
-sind, das vom Scheme-Code in der @var{Datei} geliefert wird.
-
-Dies verhält sich ähnlich wie die gleichnamige Option des Befehls
-@command{guix package} (@pxref{profile-manifest, @option{--manifest}}) und
-benutzt auch dieselben Manifestdateien.
-
-@item --ad-hoc
-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.
-
-Zum Beispiel wird mit diesem Befehl:
-
-@example
-guix environment --ad-hoc guile guile-sdl -- guile
-@end example
-
-@command{guile} in einer Umgebung ausgeführt, in der sowohl Guile als auch
-Guile-SDL zur Verfügung stehen.
-
-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 (@pxref{Pakete mit mehreren Ausgaben.}).
-
-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.
-
-@item --pure
-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.
-
-@item --preserve=@var{regexp}
-@itemx -E @var{regexp}
-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.
-
-@example
-guix environment --pure --preserve=^SLURM --ad-hoc openmpi @dots{} \
-  -- mpirun @dots{}
-@end example
-
-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.)
-
-@item --search-paths
-Die Umgebungsvariablendefinitionen anzeigen, aus denen die Umgebung besteht.
-
-@item --system=@var{System}
-@itemx -s @var{System}
-Versuchen, für das angegebene @var{System} zu erstellen —
-z.B. @code{i686-linux}.
-
-@item --container
-@itemx -C
-@cindex container
-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}. Der erzeugte Prozess läuft außerhalb des
-Containers als der momentane Nutzer, aber im Kontext des Containers hat er
-Administratorrechte.
-
-@item --network
-@itemx -N
-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.
-
-@item --link-profile
-@itemx -P
-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.
-
-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.
-
-@item --user=@var{Benutzer}
-@itemx -u @var{Benutzer}
-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. @var{Benutzer} muss auf dem System nicht
-existieren.
-
-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.
-
-@example
-# wird Pfade als /home/foo/wd, /home/foo/test und /home/foo/target exponieren
-cd $HOME/wd
-guix environment --container --user=foo \
-     --expose=$HOME/test \
-     --expose=/tmp/target=$HOME/target
-@end example
-
-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 Privatsphäre und Anonymität sinnvoll eingesetzt
-werden. Es sollte nicht für sich allein dazu eingesetzt werden.
-
-@item --expose=@var{Quelle}[=@var{Ziel}]
-Bei isolierten Umgebungen (»Containern«) wird das Dateisystem unter
-@var{Quelle} vom Wirtssystem als Nur-Lese-Dateisystem @var{Ziel} 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.
-
-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:
-
-@example
-guix environment --container --expose=$HOME=/austausch --ad-hoc guile -- guile
-@end example
-
-@item --share=@var{Quelle}[=@var{Ziel}]
-Bei isolierten Umgebungen (»Containern«) wird das Dateisystem unter
-@var{Quelle} vom Wirtssystem als beschreibbares Dateisystem @var{Ziel} 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.
-
-Im folgenden Beispiel wird eine Guile-REPL in einer isolierten Umgebung
-gestartet, in der das persönliche Verzeichnis des Benutzers als Verzeichnis
-@file{/austausch} sowohl für Lese- als auch für Schreibzugriffe zugänglich
-gemacht wurde:
-
-@example
-guix environment --container --share=$HOME=/austausch --ad-hoc guile -- guile
-@end example
-@end table
-
-@command{guix environment} also supports all of the common build options
-that @command{guix build} supports (@pxref{Gemeinsame Erstellungsoptionen}) as well as
-package transformation options (@pxref{Paketumwandlungsoptionen}).
-
-@node Aufruf von guix pack
-@section @command{guix pack} aufrufen
-
-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.
-
-@quotation Anmerkung
-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 @pxref{Aufruf von guix copy}, @ref{Aufruf von guix publish} und
-@ref{Aufruf von guix archive} werfen.
-@end quotation
-
-@cindex Pack
-@cindex Bündel
-@cindex Anwendungsbündel
-@cindex Software-Bündel
-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.
-
-Um zum Beispiel ein Bündel mit Guile, Emacs, Geiser und all ihren
-Abhängigkeiten zu erzeugen, führen Sie diesen Befehl aus:
-
-@example
-$ guix pack guile emacs geiser
-@dots{}
-/gnu/store/@dots{}-pack.tar.gz
-@end example
-
-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 (@pxref{Aus Binärdatei installieren}).
-
-Benutzer des Bündels müssten dann aber zum Beispiel
-@file{/gnu/store/@dots{}-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:
-
-@example
-guix pack -S /opt/gnu/bin=bin guile emacs geiser
-@end example
-
-@noindent
-Benutzer müssten dann nur noch @file{/opt/gnu/bin/guile} eintippen, um Guile
-zu genießen.
-
-@cindex pfad-agnostische Binärdateien, mit @command{guix pack}
-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{pfad-agnostische Binärdateien} erzeugt, die auch
-in einem beliebigen anderen Verzeichnis in der Dateisystemhierarchie
-abgelegt und von dort ausgeführt werden können. 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.
-
-@cindex Docker, ein Abbild erstellen mit guix pack
-Eine weitere Möglichkeit ist, das Bündel im Format eines Docker-Abbilds
-(englisch Docker-Image) zu erzeugen. Das geht mit dem folgenden Befehl:
-
-@example
-guix pack -f docker guile emacs geiser
-@end example
-
-@noindent
-Das Ergebnis ist ein Tarball, der dem Befehl @command{docker load} übergeben
-werden kann. In der
-@uref{https://docs.docker.com/engine/reference/commandline/load/,
-Dokumentation von Docker} finden Sie nähere Informationen.
-
-@cindex Singularity, ein Abbild erstellen mit guix pack
-@cindex SquashFS, ein Abbild erstellen mit guix pack
-Und noch eine weitere Möglichkeit ist, dass Sie ein SquashFS-Abbild mit
-folgendem Befehl erzeugen:
-
-@example
-guix pack -f squashfs guile emacs geiser
-@end example
-
-@noindent
-Das Ergebnis ist ein SquashFS-Dateisystemabbild, dass entweder als
-Dateisystem eingebunden oder mit Hilfe der @uref{http://singularity.lbl.gov,
-Singularity-Container-Ausführungsumgebung} als Dateisystemcontainer benutzt
-werden kann, mit Befehlen wie @command{singularity shell} oder
-@command{singularity exec}.
-
-Es gibt mehrere Befehlszeilenoptionen, mit denen Sie Ihr Bündel anpassen
-können:
-
-@table @code
-@item --format=@var{Format}
-@itemx -f @var{Format}
-Generiert ein Bündel im angegebenen @var{Format}.
-
-Die verfügbaren Formate sind:
-
-@table @code
-@item tarball
-Das standardmäßig benutzte Format. Damit wird ein Tarball generiert, der
-alle angegebenen Binärdateien und symbolischen Verknüpfungen enthält.
-
-@item docker
-Generiert einen Tarball gemäß der
-@uref{https://github.com/docker/docker/blob/master/image/spec/v1.2.md,
-Docker Image Specification}, d.h. der Spezifikation für Docker-Abbilder.
-
-@item squashfs
-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.
-@end table
-
-@item --relocatable
-@itemx -R
-Erzeugt @dfn{pfad-agnostische Binärdateien} — also »portable« Binärdateien,
-die an einer beliebigen Stelle in der Dateisystemhierarchie platziert und
-von dort ausgeführt werden können. Zum Beispiel können Sie ein Bash
-enthalltendes Bündel erzeugen mit:
-
-@example
-guix pack -R -S /meine-bin=bin bash
-@end example
-
-@noindent
-...@: you can copy that pack to a machine that lacks Guix, and from your
-home directory as a normal user, run:
-
-@example
-tar xf pack.tar.gz
-./meine-bin/sh
-@end example
-
-@noindent
-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.
-
-Die Sache hat nur einen Haken: Diese Technik funktioniert 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 es noch nicht unterstützt und manche Distributionen von
-GNU/Linux schalten diese Funktionalität ab; auf diesen Systemen @emph{werden
-Programme aus dem Bündel nicht funktionieren}, solange sie nicht in das
-echte Wurzeldateisystem entpackt werden.
-
-@item --expression=@var{Ausdruck}
-@itemx -e @var{Ausdruck}
-Als Paket benutzen, wozu der @var{Ausdruck} ausgewertet wird.
-
-Der Zweck hiervon ist derselbe wie bei der gleichnamigen Befehlszeilenoption
-in @command{guix build} (@pxref{Zusätzliche Erstellungsoptionen,
-@code{--expression} in @command{guix build}}).
-
-@item --manifest=@var{Datei}
-@itemx -m @var{Datei}
-Die Pakete benutzen, die im Manifest-Objekt aufgeführt sind, das vom
-Scheme-Code in der angegebenen @var{Datei} geliefert wird.
-
-Dies hat einen ähnlichen Zweck wie die gleichnamige Befehlszeilenoption in
-@command{guix package} (@pxref{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.
-
-@item --system=@var{System}
-@itemx -s @var{System}
-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.
-
-@item --target=@var{Tripel}
-@cindex Cross-Kompilieren
-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
-(@pxref{Specifying target triplets, GNU configuration triplets,, autoconf,
-Autoconf}).
-
-@item --compression=@var{Werkzeug}
-@itemx -C @var{Werkzeug}
-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.
-
-@item --symlink=@var{Spezifikation}
-@itemx -S @var{Spezifikation}
-Fügt die in der @var{Spezifikation} festgelegten symbolischen Verknüpfungen
-zum Bündel hinzu.  Diese Befehlszeilenoption darf mehrmals vorkommen.
-
-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.
-
-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.
-
-@item --save-provenance
-Save provenance information for the packages passed on the command line.
-Provenance information includes the URL and commit of the channels in use
-(@pxref{Kanäle}).
-
-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.
-
-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.
-
-@item --localstatedir
-@itemx --profile-name=@var{Name}
-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.
-
-@file{/var/guix} enthält die Store-Datenbank (@pxref{Der Store}) sowie die
-Müllsammlerwurzeln (@pxref{Aufruf von 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.
-
-Ein Anwendungsfall hierfür ist der eigenständige, alle Komponenten
-umfassende binäre Tarball von Guix (@pxref{Aus Binärdatei installieren}).
-
-@item --bootstrap
-Mit den Bootstrap-Binärdateien das Bündel erstellen. Diese Option ist nur
-für Guix-Entwickler nützlich.
-@end table
-
-Außerdem unterstützt @command{guix pack} alle gemeinsamen
-Erstellungsoptionen (@pxref{Gemeinsame Erstellungsoptionen}) und alle
-Paketumwandlungsoptionen (@pxref{Paketumwandlungsoptionen}).
-
-
-@c *********************************************************************
-@node Programmierschnittstelle
-@chapter Programmierschnittstelle
-
-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.
-
-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.
-
-@cindex Ableitung
-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.
-
-Dieses Kapitel beschreibt der Reihe nach all diese Programmierschnittstellen
-(APIs), angefangen mit hochsprachlichen Paketdefinitionen.
-
-@menu
-* Paketmodule::              Pakete aus Sicht des Programmierers.
-* Pakete definieren::        Wie Sie neue Pakete definieren.
-* Erstellungssysteme::       Angeben, wie Pakete erstellt werden.
-* Der Store::                Den Paket-Store verändern.
-* Ableitungen::              Systemnahe Schnittstelle für Paketableitungen.
-* Die Store-Monade::         Rein funktionale Schnittstelle zum Store.
-* G-Ausdrücke::             Erstellungsausdrücke verarbeiten.
-* Aufruf von guix repl::     Interaktiv an Guix herumbasteln.
-@end menu
-
-@node Paketmodule
-@section Paketmodule
-
-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{Module, 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{Pakete definieren}).
-
-The @code{(gnu packages @dots{})} module name space is automatically scanned
-for packages by the command-line tools.  For instance, when running
-@code{guix package -i 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.
-
-@cindex Anpassung, von Paketen
-@cindex package module search path
-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:
-
-@enumerate
-@item
-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{Gemeinsame Erstellungsoptionen}), or by setting the @code{GUIX_PACKAGE_PATH}
-environment variable described below.
-
-@item
-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{Kanäle}, for more information on how to define and use
-channels.
-@end enumerate
-
-@code{GUIX_PACKAGE_PATH} works similarly to other search path variables:
-
-@defvr {Environment Variable} GUIX_PACKAGE_PATH
-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.
-@end defvr
-
-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}.
-
-@node Pakete definieren
-@section Pakete definieren
-
-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:
-
-@example
-(define-module (gnu packages hello)
-  #:use-module (guix packages)
-  #:use-module (guix download)
-  #:use-module (guix build-system gnu)
-  #:use-module (guix licenses)
-  #:use-module (gnu packages gawk))
-
-(define-public hello
-  (package
-    (name "hello")
-    (version "2.10")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://gnu/hello/hello-" version
-                                  ".tar.gz"))
-              (sha256
-               (base32
-                "0ssi1wpaf7plaswqqjwigppsg5fyh99vdlb9kzl7c9lng89ndq1i"))))
-    (build-system gnu-build-system)
-    (arguments '(#:configure-flags '("--enable-silent-rules")))
-    (inputs `(("gawk" ,gawk)))
-    (synopsis "Hello, GNU world: An example GNU package")
-    (description "Guess what GNU Hello prints!")
-    (home-page "http://www.gnu.org/software/hello/")
-    (license gpl3+)))
-@end example
-
-@noindent
-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 (@pxref{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"}.
-
-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 (@pxref{Aufruf von guix import}).
-
-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 @dots{})} werden
-automatisch von den Befehlszeilenwerkzeugen gefunden (@pxref{Paketmodule}).
-
-Ein paar Dinge sind noch erwähnenswert in der obigen Paketdefinition:
-
-@itemize
-@item
-Das @code{source}-Feld für die Quelle des Pakets ist ein
-@code{<origin>}-Objekt, was den Paketursprung angibt (siehe @pxref{»origin«-Referenz}, 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.
-
-Das Präfix @code{mirror://gnu} lässt @code{url-fetch} einen der
-GNU-Spiegelserver benutzen, die in @code{(guix download)} definiert sind.
-
-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
-@dots{})} geht der base32-Darstellung des Hash-Wertes voraus. Sie finden die
-base32-Darstellung mit Hilfe der Befehle @code{guix download}
-(@pxref{Aufruf von guix download}) und @code{guix hash} (@pxref{Aufruf von guix hash}).
-
-@cindex Patches
-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.
-
-@item
-@cindex GNU-Erstellungssystem
-Das Feld @code{build-system} legt fest, mit welcher Prozedur das Paket
-erstellt werden soll (@pxref{Erstellungssysteme}). 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.
-
-@item
-Das Feld @code{arguments} gibt an, welche Optionen dem Erstellungssystem
-mitgegeben werden sollen (@pxref{Erstellungssysteme}). In diesem Fall
-interpretiert @var{gnu-build-system} diese als Auftrag, @file{configure} mit
-der Befehlszeilenoption @code{--enable-silent-rules} auszuführen.
-
-@cindex quote
-@cindex Maskierung
-@findex '
-@findex quote
-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}. @xref{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} (@pxref{Fly
-Evaluation, @code{apply},, guile, GNU Guile Reference Manual}).
-
-Ein Doppelkreuz gefolgt von einem Doppelpunkt (@code{#:}) definiert ein
-Scheme-@dfn{Schlüsselwort} (@pxref{Keywords,,, guile, GNU Guile Reference
-Manual}) und @code{#:configure-flags} ist ein Schlüsselwort, um eine
-Befehlszeilenoption an das Erstellungssystem mitzugeben (@pxref{Coding With
-Keywords,,, guile, GNU Guile Reference Manual}).
-
-@item
-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.
-
-@cindex Backquote (Quasimaskierung)
-@findex `
-@findex quasiquote
-@cindex Komma (Demaskierung)
-@findex ,
-@findex unquote
-@findex ,@@
-@findex unquote-splicing
-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 (@pxref{Expression Syntax, unquote,, guile, GNU Guile
-Reference Manual}).
-
-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 (@pxref{Erstellungssysteme}).
-
-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.
-@end itemize
-
-Siehe @xref{»package«-Referenz} für eine umfassende Beschreibung aller
-erlaubten Felder.
-
-Sobald eine Paketdefinition eingesetzt wurde, können Sie das Paket mit Hilfe
-des Befehlszeilenwerkzeugs @code{guix build} dann auch tatsächlich erstellen
-(@pxref{Aufruf von guix build}) und dabei jegliche Erstellungsfehler, auf die
-Sie stoßen, beseitigen (@pxref{Fehlschläge beim Erstellen untersuchen}). Sie können den
-Befehl @command{guix edit} benutzen, um leicht zur Paketdefinition
-zurückzuspringen (@pxref{Aufruf von guix edit}). Unter @xref{Paketrichtlinien} finden Sie mehr Informationen darüber, wie Sie Paketdefinitionen
-testen, und unter @ref{Aufruf von guix lint} finden Sie Informationen, wie Sie
-prüfen, ob eine Definition alle Stilkonventionen einhält.
-@vindex GUIX_PACKAGE_PATH
-Zuletzt finden Sie unter @pxref{Kanäle} Informationen, wie Sie die
-Distribution um Ihre eigenen Pakete in einem »Kanal« erweitern.
-
-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
-(@pxref{Aufruf von guix refresh}).
-
-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 (@pxref{Der Store}).
-
-@deffn {Scheme-Prozedur} package-derivation @var{Store} @var{Paket} [@var{System}]
-Das @code{<derivation>}-Objekt zum @var{Paket} für das angegebene
-@var{System} liefern (@pxref{Ableitungen}).
-
-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 (@pxref{Der Store}).
-@end deffn
-
-@noindent
-@cindex Cross-Kompilieren
-Auf ähnliche Weise kann eine Ableitung berechnet werden, die ein Paket für
-ein anderes System cross-erstellt.
-
-@deffn {Scheme-Prozedur} package-cross-derivation @var{Store} @
-            @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.
-
-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"} (@pxref{Configuration Names, GNU
-configuration triplets,, configure, GNU Configure and Build System}).
-@end deffn
-
-@cindex Paketumwandlungen
-@cindex Eingaben umschreiben
-@cindex Abhängigkeitsbaum umschreiben
-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:
-
-@deffn {Scheme-Prozedur} package-input-rewriting @var{Ersetzungen} @
-           [@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.
-
-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.
-@end deffn
-
-@noindent
-Betrachten Sie dieses Beispiel:
-
-@example
-(define libressl-statt-openssl
-  ;; Dies ist eine Prozedur, mit der OPENSSL durch LIBRESSL
-  ;; rekursiv ersetzt wird.
-  (package-input-rewriting `((,openssl . ,libressl))))
-
-(define git-mit-libressl
-  (libressl-statt-openssl git))
-@end example
-
-@noindent
-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
-(@pxref{Paketumwandlungsoptionen, @option{--with-input}}).
-
-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.
-
-@deffn {Scheme-Prozedur} package-mapping @var{Prozedur} [@var{Schnitt?}]
-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.
-@end deffn
-
-@menu
-* »package«-Referenz::     Der Datentyp für Pakete.
-* »origin«-Referenz::      Datentyp für Paketursprünge.
-@end menu
-
-
-@node »package«-Referenz
-@subsection @code{package}-Referenz
-
-Dieser Abschnitt fasst alle in @code{package}-Deklarationen zur Verfügung
-stehenden Optionen zusammen (@pxref{Pakete definieren}).
-
-@deftp {Datentyp} package
-Dieser Datentyp steht für ein Paketrezept.
-
-@table @asis
-@item @code{name}
-Der Name des Pakets als Zeichenkette.
-
-@item @code{version}
-Die Version des Pakets als Zeichenkette.
-
-@item @code{source}
-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 (@pxref{»origin«-Referenz}). 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
-(@pxref{G-Ausdrücke, @code{local-file}}).
-
-@item @code{build-system}
-Das Erstellungssystem, mit dem das Paket erstellt werden soll (@pxref{Erstellungssysteme}).
-
-@item @code{arguments} (Vorgabe: @code{'()})
-Die Argumente, die an das Erstellungssystem übergeben werden sollen. Dies
-ist eine Liste, typischerweise eine Reihe von Schlüssel-Wert-Paaren.
-
-@item @code{inputs} (Vorgabe: @code{'()})
-@itemx @code{native-inputs} (Vorgabe: @code{'()})
-@itemx @code{propagated-inputs} (Vorgabe: @code{'()})
-@cindex Eingaben, von Paketen
-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 @pxref{Pakete mit mehreren Ausgaben.} für mehr Informationen zu
-Paketausgaben). Im folgenden Beispiel etwa werden drei Eingaben festgelegt:
-
-@example
-`(("libffi" ,libffi)
-  ("libunistring" ,libunistring)
-  ("glib:bin" ,glib "bin"))  ;Ausgabe "bin" von Glib
-@end example
-
-@cindex Cross-Kompilieren, Paketabhängigkeiten
-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.
-
-@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 (@pxref{Aufruf von guix lint}).
-
-@anchor{package-propagated-inputs}
-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
-@pxref{package-cmd-propagated-inputs, @command{guix package}}, für
-Informationen darüber, wie @command{guix package} mit propagierten Eingaben
-umgeht).
-
-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.
-
-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.
-
-@item @code{self-native-input?} (Vorgabe: @code{#f})
-Dieses boolesche Feld gibt an, ob das Paket sich selbst als eine native
-Eingabe beim Cross-Kompilieren braucht.
-
-@item @code{outputs} (Vorgabe: @code{'("out")})
-Die Liste der Benennungen der Ausgaben des Pakets. Der Abschnitt
-@xref{Pakete mit mehreren Ausgaben.} beschreibt übliche Nutzungen
-zusätzlicher Ausgaben.
-
-@item @code{native-search-paths} (Vorgabe: @code{'()})
-@itemx @code{search-paths} (Vorgabe: @code{'()})
-Eine Liste von @code{search-path-specification}-Objekten, die
-Umgebungsvariable für von diesem Paket beachtete Suchpfade (»search paths«)
-beschreiben.
-
-@item @code{replacement} (Vorgabe: @code{#f})
-Dies muss entweder @code{#f} oder ein package-Objekt sein, das als Ersatz
-(@dfn{replacement}) dieses Pakets benutzt werden soll. Im Abschnitt
-@xref{Sicherheitsaktualisierungen, grafts}, wird dies erklärt.
-
-@item @code{synopsis}
-Eine einzeilige Beschreibung des Pakets.
-
-@item @code{description}
-Eine ausführlichere Beschreibung des Pakets.
-
-@item @code{license}
-@cindex Lizenz, von Paketen
-Die Lizenz des Pakets; benutzt werden kann ein Wert aus dem Modul
-@code{(guix licenses)} oder eine Liste solcher Werte.
-
-@item @code{home-page}
-Die URL, die die Homepage des Pakets angibt, als Zeichenkette.
-
-@item @code{supported-systems} (Vorgabe: @var{%supported-systems})
-Die Liste der vom Paket unterstützten Systeme als Zeichenketten der Form
-@code{Architektur-Kernel}, zum Beispiel @code{"x86_64-linux"}.
-
-@item @code{maintainers} (Vorgabe: @code{'()})
-Die Liste der Betreuer (Maintainer) des Pakets als
-@code{maintainer}-Objekte.
-
-@item @code{location} (Vorgabe: die Stelle im Quellcode, wo die @code{package}-Form steht)
-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.
-@end table
-@end deftp
-
-
-@node »origin«-Referenz
-@subsection @code{origin}-Referenz
-
-Dieser Abschnitt fasst alle Optionen zusammen, die in
-@code{origin}-Deklarationen zur Verfügung stehen (@pxref{Pakete definieren}).
-
-@deftp {Datentyp} origin
-Mit diesem Datentyp wird ein Ursprung, von dem Quellcode geladen werden
-kann, beschrieben.
-
-@table @asis
-@item @code{uri}
-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.
-
-@item @code{method}
-Eine Prozedur, die die URI verwertet.
-
-Beispiele sind unter Anderem:
-
-@table @asis
-@item @var{url-fetch} aus @code{(guix download)}
-Herunterladen einer Datei von einer HTTP-, HTTPS- oder FTP-URL, die im
-@code{uri}-Feld angegeben wurde.
-
-@vindex git-fetch
-@item @var{git-fetch} aus @code{(guix git-download)}
-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:
-
-@example
-(git-reference
-  (url "git://git.debian.org/git/pkg-shadow/shadow")
-  (commit "v4.1.5.1"))
-@end example
-@end table
-
-@item @code{sha256}
-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.
-
-Diese Informationen liefert Ihnen der Befehl @code{guix download}
-(@pxref{Aufruf von guix download}) oder @code{guix hash} (@pxref{Aufruf von guix hash}).
-
-@item @code{file-name} (Vorgabe: @code{#f})
-Der Dateiname, unter dem der Quellcode abgespeichert werden sollte. 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.
-
-@item @code{patches} (Vorgabe: @code{'()})
-Eine Liste von Dateinamen, Ursprüngen oder dateiähnlichen Objekten
-(@pxref{G-Ausdrücke, file-like objects}) mit Patches, welche auf den
-Quellcode anzuwenden sind.
-
-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.
-
-@item @code{snippet} (Vorgabe: @code{#f})
-Ein im Quellcode-Verzeichnis auszuführender G-Ausdruck
-(@pxref{G-Ausdrücke}) oder S-Ausdruck. Hiermit kann der Quellcode bequem
-modifiziert werden, manchmal ist dies bequemer als mit einem Patch.
-
-@item @code{patch-flags} (Vorgabe: @code{'("-p1")})
-Eine Liste der Befehlszeilenoptionen, die dem @code{patch}-Befehl übergeben
-werden sollen.
-
-@item @code{patch-inputs} (Vorgabe: @code{#f})
-Eingabepakete oder -ableitungen für den Patch-Prozess. Bei @code{#f} werden
-die üblichen Patcheingaben wie GNU@tie{}Patch bereitgestellt.
-
-@item @code{modules} (Vorgabe: @code{'()})
-Eine Liste von Guile-Modulen, die während des Patch-Prozesses und während
-der Ausführung des @code{snippet}-Felds geladen werden sollten.
-
-@item @code{patch-guile} (Vorgabe: @code{#f})
-Welches Guile-Paket für den Patch-Prozess benutzt werden sollte. Bei
-@code{#f} wird ein vernünftiger Vorgabewert angenommen.
-@end table
-@end deftp
-
-
-@node Erstellungssysteme
-@section Erstellungssysteme
-
-@cindex Erstellungssystem
-Jede Paketdefinition legt ein @dfn{Erstellungssystem} (»build system«) sowie
-dessen Argumente fest (@pxref{Pakete definieren}). Das
-@code{build-system}-Feld steht für die Erstellungsprozedur des Pakets sowie
-für weitere implizite Eingaben für die Erstellungsprozedur.
-
-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.
-
-@cindex Bag (systemnahe Paketrepräsentation)
-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
-(@pxref{Ableitungen}).
-
-Erstellungssysteme akzeptieren optional eine Liste von @dfn{Argumenten}. In
-Paketdefinitionen werden diese über das @code{arguments}-Feld übergeben
-(@pxref{Pakete definieren}). Sie sind in der Regel Schlüsselwort-Argumente
-(@pxref{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 (@pxref{Ableitungen}).
-
-Das häufigste Erstellungssystem ist @var{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.
-
-@defvr {Scheme-Variable} gnu-build-system
-@var{gnu-build-system} steht für das GNU-Erstellungssystem und Varianten
-desselben (@pxref{Configuration, configuration and makefile conventions,,
-standards, GNU Coding Standards}).
-
-@cindex Erstellungsphasen
-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.}:
-
-@table @code
-@item unpack
-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.
-
-@item patch-source-shebangs
-»Shebangs« in Quelldateien beheben, damit Sie sich auf die richtigen
-Store-Dateipfade beziehen. Zum Beispiel könnte @code{#!/bin/sh} zu
-@code{#!/gnu/store/@dots{}-bash-4.3/bin/sh} geändert werden.
-
-@item configure
-Das Skript @file{configure} mit einigen vorgegebenen Befehlszeilenoptionen
-ausführen, wie z.B. mit @code{--prefix=/gnu/store/@dots{}}, sowie mit den im
-@code{#:configure-flags}-Argument angegebenen Optionen.
-
-@item build
-@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.
-
-@item check
-@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.
-
-@item install
-@code{make install} mit den in @code{#:make-flags} aufgelisteten Optionen
-ausführen.
-
-@item patch-shebangs
-Shebangs in den installierten ausführbaren Dateien beheben.
-
-@item strip
-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 (@pxref{Dateien zur Fehlersuche installieren}).
-@end table
-
-@vindex %standard-phases
-Das erstellungsseitige Modul @code{(guix build gnu-build-system)} definiert
-@var{%standard-phases} als die vorgegebene Liste der
-Erstellungsphasen. @var{%standard-phases} ist eine Liste von Paaren aus je
-einem Symbol und einer Prozedur. Letztere implementiert die eigentliche
-Phase.
-
-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:
-
-@example
-#:phases (modify-phases %standard-phases (delete 'configure))
-@end example
-
-alle oben beschriebenen Phasen benutzt außer der @code{configure}-Phase.
-
-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.
-@end defvr
-
-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
-@var{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.
-
-@defvr {Scheme-Variable} ant-build-system
-Diese Variable wird vom Modul @code{(guix build-system ant)} exportiert. Sie
-implementiert die Erstellungsprozedur für Java-Pakete, die mit dem
-@url{http://ant.apache.org/, Ant build tool} erstellt werden können.
-
-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.
-
-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«.
-
-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.
-
-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.
-
-@end defvr
-
-@defvr {Scheme-Variable} android-ndk-build-system
-@cindex Android-Distribution
-@cindex Android-NDK-Erstellungssystem
-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.
-
-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.
-
-Ebenso wird angenommen, dass es keine im Konflikt stehenden Dateien unter
-der Vereinigung aller Abhängigkeiten gibt.
-
-Derzeit wird Cross-Kompilieren hierfür nicht unterstützt, also wird dabei
-vorausgesetzt, dass Bibliotheken und Header-Dateien dieselben wie im
-Wirtssystem sind.
-
-@end defvr
-
-@defvr {Scheme-Variable} asdf-build-system/source
-@defvrx {Scheme-Variable} asdf-build-system/sbcl
-@defvrx {Scheme-Variable} asdf-build-system/ecl
-
-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.
-
-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.
-
-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}.
-
-Zudem sollte das entsprechende Quellcode-Paket mit der Konvention wie bei
-Python-Paketen (siehe @ref{Python-Module}) ein @code{cl-} als Präfix
-bekommen.
-
-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.
-
-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.
-
-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.
-
-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.
-
-@end defvr
-
-@defvr {Scheme-Variable} cargo-build-system
-@cindex Rust-Programmiersprache
-@cindex Cargo (Rust-Erstellungssystem)
-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}.
-
-In seiner @code{configure}-Phase ersetzt dieses Erstellungssystem in der
-Datei @file{Carto.toml} angegebene Abhängigkeiten durch Eingaben im
-Guix-Paket. Die Phase @code{install} installiert die Binärdateien und auch
-den Quellcode und die @file{Cargo.toml}-Datei.
-@end defvr
-
-@cindex Clojure (Programmiersprache)
-@cindex einfaches Clojure-Erstellungssystem
-@defvr {Scheme-Variable} clojure-build-system
-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.
-
-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.
-
-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.
-
-Dieses Erstellungssystem ist eine Erweiterung des @var{ant-build-system},
-bei der aber die folgenden Phasen geändert wurden:
-
-@table @code
-
-@item build
-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 sollten.
-
-@item check
-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.
-
-@item install
-In dieser Phase werden alle zuvor erstellten Jar-Dateien installiert.
-@end table
-
-Zusätzlich zu den bereits angegebenen enthält dieses Erstellungssystem noch
-eine weitere Phase.
-
-@table @code
-
-@item install-doc
-Diese Phase installiert alle Dateien auf oberster Ebene, deren Basisnamen
-ohne Verzeichnisangabe zu @var{%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.
-@end table
-@end defvr
-
-@defvr {Scheme-Variable} cmake-build-system
-Diese Variable wird von @code{(guix build-system cmake)} exportiert. Sie
-implementiert die Erstellungsprozedur für Pakete, die das
-@url{http://www.cmake.org, CMake-Erstellungswerkzeug} benutzen.
-
-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.
-
-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.
-@end defvr
-
-@defvr {Scheme Variable} dune-build-system
-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.
-
-It automatically adds the @code{dune} package to the set of inputs.  Which
-package is used can be specified with the @code{#:dune} parameter.
-
-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.
-
-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}.
-@end defvr
-
-@defvr {Scheme-Variable} go-build-system
-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.
-
-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.
-
-Pakete, die Go-Bibliotheken zur Verfügung stellen, sollten zusammen mit
-ihrem Quellcode installiert werden. 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.
-@end defvr
-
-@defvr {Scheme-Variable} glib-or-gtk-build-system
-Diese Variable wird vom Modul @code{(guix build-system glib-or-gtk)}
-exportiert. Sie ist für Pakete gedacht, die GLib oder GTK benutzen.
-
-Dieses Erstellungssystem fügt die folgenden zwei Phasen zu denen von
-@var{gnu-build-system} hinzu:
-
-@table @code
-@item glib-or-gtk-wrap
-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.
-
-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.
-
-@item glib-or-gtk-compile-schemas
-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.
-@end table
-
-Beide Phasen finden nach der @code{install}-Phase statt.
-@end defvr
-
-@defvr {Scheme-Variable} guile-build-system
-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
-(@pxref{Compilation,,, guile, GNU Guile Reference Manual}) und die
-@file{.scm}- und @file{.go}-Dateien an den richtigen Pfad installiert. Auch
-Dokumentation wird installiert.
-
-Das Erstellungssystem unterstützt Cross-Kompilieren durch die
-Befehlszeilenoption @code{--target} für @command{guild compile}.
-
-Mit @code{guile-build-system} erstellte Pakete müssen ein Guile-Paket in
-ihrem @code{native-inputs}-Feld aufführen.
-@end defvr
-
-@defvr {Scheme-Variable} minify-build-system
-Diese Variable wird vom Modul @code{(guix build-system minify)}
-exportiert. Sie implementiert eine Prozedur zur Minifikation einfacher
-JavaScript-Pakete.
-
-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.
-
-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.
-@end defvr
-
-@defvr {Scheme-Variable} ocaml-build-system
-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.
-
-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.
-
-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.
-
-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.
-
-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.
-
-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.
-@end defvr
-
-@defvr {Scheme-Variable} python-build-system
-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/@dots{}}.
-
-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.
-
-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, was nötig sein kann, wenn das Programm nur
-mit einer einzigen Interpretiererversion kompatibel ist.
-
-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.
-@end defvr
-
-@defvr {Scheme-Variable} perl-build-system
-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/@dots{}} gefolgt von @code{Build} und @code{Build
-install} auszuführen, oder @code{perl Makefile.PL PREFIX=/gnu/store/@dots{}}
-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.
-
-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.
-
-Welches Perl-Paket dafür benutzt wird, kann mit @code{#:perl} angegeben
-werden.
-@end defvr
-
-@defvr {Scheme-Variable} r-build-system
-Diese Variable wird vom Modul @code{(guix build-system r)} exportiert. Sie
-entspricht einer Implementierung der durch @uref{http://r-project.org,
-R}-Pakete genutzten Erstellungsprozedur, die wenig mehr tut, als @code{R CMD
-INSTALL --library=/gnu/store/@dots{}} 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.
-@end defvr
-
-@defvr {Scheme-Variable} texlive-build-system
-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.
-
-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.
-
-Der Parameter @code{#:tex-directory} sagt dem Erstellungssystem, wohin die
-installierten Dateien im texmf-Verzeichnisbaum installiert werden sollen.
-@end defvr
-
-@defvr {Scheme-Variable} ruby-build-system
-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.
-
-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.
-
-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.
-@end defvr
-
-@defvr {Scheme-Variable} waf-build-system
-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.
-
-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.
-@end defvr
-
-@defvr {Scheme-Variable} scons-build-system
-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.
-
-Zusätzliche Optionen, die an @code{scons} übergeben werden sollen, können
-mit dem Parameter @code{#:scons-flags} angegeben 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.
-@end defvr
-
-@defvr {Scheme-Variable} haskell-build-system
-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/@dots{}} 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}.
-
-Welcher Haskell-Compiler benutzt werden soll, kann über den
-@code{#:haskell}-Parameter angegeben werden. Als Vorgabewert verwendet er
-@code{ghc}.
-@end defvr
-
-@defvr {Scheme-Variable} dub-build-system
-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.
-
-Welcher D-Compiler benutzt wird, kann mit dem Parameter @code{#:ldc}
-festgelegt werden, was als Vorgabewert @code{ldc} benutzt.
-@end defvr
-
-@defvr {Scheme-Variable} emacs-build-system
-Diese Variable wird vom Modul @code{(guix build-system emacs)}
-exportiert. Darin wird eine Installationsprozedur ähnlich der des
-Paketsystems von Emacs selbst implementiert (@pxref{Packages,,, emacs, The
-GNU Emacs Manual}).
-
-Zunächst wird eine Datei @code{@var{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. Jedes Paket wird in sein eigenes Verzeichnis unter
-@file{share/emacs/site-lisp/guix.d} installiert.
-@end defvr
-
-@defvr {Scheme-Variable} font-build-system
-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.
-@end defvr
-
-@defvr {Scheme-Variable} meson-build-system
-Diese Variable wird vom Modul @code{(guix build-system meson)}
-exportiert. Sie enthält die Erstellungsprozedur für Pakete, die
-@url{http://mesonbuild.com, Meson} als ihr Erstellungssystem benutzen.
-
-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.
-
-Dieses Erstellungssystem ist eine Erweiterung für das
-@var{gnu-build-system}, aber mit Änderungen an den folgenden Phasen, die
-Meson-spezifisch sind:
-
-@table @code
-
-@item configure
-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.
-
-@item build
-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?}.
-
-@item check
-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"}.
-
-@item install
-Diese Phase führt @code{ninja install} aus und kann nicht verändert werden.
-@end table
-
-Dazu fügt das Erstellungssystem noch folgende neue Phasen:
-
-@table @code
-
-@item fix-runpath
-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.
-
-@item glib-or-gtk-wrap
-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.
-
-@item glib-or-gtk-compile-schemas
-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.
-@end table
-@end defvr
-
-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.
-
-@defvr {Scheme-Variable} trivial-build-system
-Diese Variable wird vom Modul @code{(guix build-system trivial)} exportiert.
-
-Diesem Erstellungssystem muss im Argument @code{#:builder} ein
-Scheme-Ausdruck übergeben werden, der die Paketausgabe(n) erstellt — wie bei
-@code{build-expression->derivation} (@pxref{Ableitungen,
-@code{build-expression->derivation}}).
-@end defvr
-
-@node Der Store
-@section Der Store
-
-@cindex Store
-@cindex Store-Objekte
-@cindex Store-Pfade
-
-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}.
-
-Auf den Store wird @emph{nur} durch den Daemon im Auftrag seiner Clients
-zugegriffen (@pxref{Aufruf des 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).
-
-@quotation Anmerkung
-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 (@pxref{Einführung}).
-
-Siehe @xref{Aufruf von 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.
-@end quotation
-
-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.
-
-@defvr {Umgebungsvariable} GUIX_DAEMON_SOCKET
-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:
-
-@table @code
-@item file
-@itemx unix
-Für Unix-Sockets. @code{file:///var/guix/daemon-socket/socket} kann
-gleichbedeutend auch als @file{/var/guix/daemon-socket/socket} angegeben
-werden.
-
-@item guix
-@cindex Daemon, Fernzugriff
-@cindex Fernzugriff auf den Daemon
-@cindex Daemon, Einrichten auf Clustern
-@cindex Cluster, Einrichtung des Daemons
-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):
-
-@example
-guix://master.guix.example.org:1234
-@end example
-
-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.
-
-Die Befehlszeilenoption @code{--listen} von @command{guix-daemon} kann
-benutzt werden, damit er auf TCP-Verbindungen lauscht (@pxref{Aufruf des guix-daemon, @code{--listen}}).
-
-@item ssh
-@cindex SSH-Zugriff auf Erstellungs-Daemons
-Mit solchen URIs kann eine Verbindung zu einem entfernten Daemon über SSH
-hergestellt werden@footnote{Diese Funktionalitäts setzt Guile-SSH voraus
-(@pxref{Voraussetzungen}).}. Eine typische URL sieht so aus:
-
-@example
-ssh://charlie@@guix.example.org:22
-@end example
-
-Was @command{guix copy} betrifft, richtet es sich nach den üblichen
-OpenSSH-Client-Konfigurationsdateien (@pxref{Aufruf von guix copy}).
-@end table
-
-In Zukunft könnten weitere URI-Schemata unterstützt werden.
-
-@c XXX: Remove this note when the protocol incurs fewer round trips
-@c and when (guix derivations) no longer relies on file system access.
-@quotation Anmerkung
-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
-(@pxref{Mitwirken}).
-@end quotation
-@end defvr
-
-@deffn {Scheme-Prozedur} open-connection [@var{Uri}] [#:reserve-space? #t]
-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.
-
-@var{Uri} nimmt standardmäßig den Wert von @var{%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.
-@end deffn
-
-@deffn {Scheme-Prozedur} close-connection @var{Server}
-Die Verbindung zum @var{Server} trennen.
-@end deffn
-
-@defvr {Scheme-Variable} current-build-output-port
-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.
-@end defvr
-
-Prozeduren, die entfernte Prozeduraufrufe durchführen, nehmen immer ein
-Server-Objekt als ihr erstes Argument.
-
-@deffn {Scheme-Prozedur} valid-path? @var{Server} @var{Pfad}
-@cindex ungültige Store-Objekte
-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).
-
-A @code{&store-protocol-error} condition is raised if @var{path} is not
-prefixed by the store directory (@file{/gnu/store}).
-@end deffn
-
-@deffn {Scheme-Prozedur} add-text-to-store @var{Server} @var{Name} @var{Text} [@var{Referenzen}]
-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.
-@end deffn
-
-@deffn {Scheme-Prozedur} build-derivations @var{Server} @var{Ableitungen}
-Die @var{Ableitungen} erstellen (eine Liste von @code{<derivation>}-Objekten
-oder von Pfaden zu Ableitungen) und terminieren, sobald der Worker-Prozess
-mit dem Erstellen fertig ist. Liefert @code{#t} bei erfolgreicher
-Erstellung.
-@end deffn
-
-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 (@pxref{Die Store-Monade}).
-
-@c FIXME
-@i{Dieser Abschnitt ist im Moment noch unvollständig.}
-
-@node Ableitungen
-@section Ableitungen
-
-@cindex Ableitungen
-Systemnahe Erstellungsaktionen sowie die Umgebung, in der selbige
-durchzuführen sind, werden durch @dfn{Ableitungen} dargestellt. Eine
-Ableitung enthält folgende Informationen:
-
-@itemize
-@item
-Die Ausgaben, die die Ableitung hat. Ableitungen erzeugen mindestens eine
-Datei bzw. ein Verzeichnis im Store, können aber auch mehrere erzeugen.
-
-@item
-@cindex build-time dependencies
-@cindex dependencies, build-time
-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.)
-
-@item
-Das System, wofür mit der Ableitung erstellt wird, also ihr Ziel —
-z.B. @code{x86_64-linux}.
-
-@item
-Der Dateiname eines Erstellungsskripts im Store, zusammen mit den
-Argumenten, mit denen es aufgerufen werden soll.
-
-@item
-Eine Liste zu definierender Umgebungsvariabler.
-
-@end itemize
-
-@cindex Ableitungspfad
-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 (@pxref{Der Store}).
-
-@cindex Ableitungen mit fester Ausgabe
-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.
-
-@cindex references
-@cindex run-time dependencies
-@cindex dependencies, run-time
-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{Aufruf von 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.
-
-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}:
-
-@deffn {Scheme-Prozedur} derivation @var{Store} @var{Name} @var{Ersteller} @
-  @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.
-
-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.
-
-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.
-
-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.
-
-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.
-
-Ist @var{local-build?} wahr, wird die Ableitung als schlechter Kandidat für
-das Auslagern deklariert, der besser lokal erstellt werden sollte
-(@pxref{Auslagern des Daemons einrichten}). Dies betrifft kleine Ableitungen, wo das
-Übertragen der Daten aufwendiger als ihre Erstellung ist.
-
-Ist @var{substitutable?} falsch, wird deklariert, dass für die Ausgabe der
-Ableitung keine Substitute benutzt werden sollen (@pxref{Substitute}). Das
-ist nützlich, wenn Pakete erstellt werden, die Details über den
-Prozessorbefehlssatz des Wirtssystems auslesen.
-
-@var{properties} muss eine assoziative Liste enthalten, die »Eigenschaften«
-der Ableitungen beschreibt. Sie wird genau so, wie sie ist, in der Ableitung
-gespeichert.
-@end deffn
-
-@noindent
-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:
-
-@lisp
-(use-modules (guix utils)
-             (guix store)
-             (guix derivations))
-
-(let ((builder   ; das Ersteller-Bash-Skript in den Store einfügen
-        (add-text-to-store store "my-builder.sh"
-                           "echo Hallo Welt > $out\n" '())))
-  (derivation store "foo"
-              bash `("-e" ,builder)
-              #:inputs `((,bash) (,builder))
-              #:env-vars '(("HOME" . "/homeless"))))
-@result{} #<derivation /gnu/store/@dots{}-foo.drv => /gnu/store/@dots{}-foo>
-@end lisp
-
-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 @pxref{G-Ausdrücke}.
-
-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.
-
-@deffn {Scheme-Prozedur} build-expression->derivation @var{Store} @
-       @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))}.
-
-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.
-
-@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.
-
-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?}.
-@end deffn
-
-@noindent
-Hier ist ein Beispiel einer Ableitung mit nur einer Ausgabe, die ein
-Verzeichnis erzeugt, in dem eine einzelne Datei enthalten ist:
-
-@lisp
-(let ((builder '(let ((out (assoc-ref %outputs "out")))
-                  (mkdir out)    ; das Verzeichnis
-                                 ; /gnu/store/@dots{}-goo erstellen
-                  (call-with-output-file (string-append out "/test")
-                    (lambda (p)
-                      (display '(Hallo Guix) p))))))
-  (build-expression->derivation store "goo" builder))
-
-@result{} #<derivation /gnu/store/@dots{}-goo.drv => @dots{}>
-@end lisp
-
-
-@node Die Store-Monade
-@section Die Store-Monade
-
-@cindex Monade
-
-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.
-
-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.
-
-@cindex monadische Werte
-@cindex monadische Funktionen
-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}.
-
-Betrachten Sie folgende »normale« Prozedur:
-
-@example
-(define (sh-symlink store)
-  ;; Eine Ableitung liefern, die mit der ausführbaren Datei »bash«
-  ;; symbolisch verknüpft.
-  (let* ((drv (package-derivation store bash))
-         (out (derivation->output-path drv))
-         (sh  (string-append out "/bin/bash")))
-    (build-expression->derivation store "sh"
-                                  `(symlink ,sh %output))))
-@end example
-
-Unter Verwendung von @code{(guix monads)} und @code{(guix gexp)} lässt sie
-sich als monadische Funktion aufschreiben:
-
-@example
-(define (sh-symlink)
-  ;; Ebenso, liefert aber einen monadischen Wert.
-  (mlet %store-monad ((drv (package->derivation bash)))
-    (gexp->derivation "sh"
-                      #~(symlink (string-append #$drv "/bin/bash")
-                                 #$output))))
-@end example
-
-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}.
-
-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 @pxref{G-Ausdrücke}):
-
-@example
-(define (sh-symlink)
-  (gexp->derivation "sh"
-                    #~(symlink (string-append #$bash "/bin/bash")
-                               #$output)))
-@end example
-
-@c See
-@c <https://syntaxexclamation.wordpress.com/2014/06/26/escaping-continuations/>
-@c for the funny quote.
-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:
-
-@example
-(run-with-store (open-connection) (sh-symlink))
-@result{} /gnu/store/...-sh-symlink
-@end example
-
-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«:
-
-@example
-scheme@@(guile-user)> ,run-in-store (package->derivation hello)
-$1 = #<derivation /gnu/store/@dots{}-hello-2.9.drv => @dots{}>
-@end example
-
-Mit Letzterer wird rekursiv eine weitere REPL betreten, in der alle
-Rückgabewerte automatisch durch den Store laufen gelassen werden:
-
-@example
-scheme@@(guile-user)> ,enter-store-monad
-store-monad@@(guile-user) [1]> (package->derivation hello)
-$2 = #<derivation /gnu/store/@dots{}-hello-2.9.drv => @dots{}>
-store-monad@@(guile-user) [1]> (text-file "foo" "Hallo!")
-$3 = "/gnu/store/@dots{}-foo"
-store-monad@@(guile-user) [1]> ,q
-scheme@@(guile-user)>
-@end example
-
-@noindent
-Beachten Sie, dass in einer @code{store-monad}-REPL keine nicht-monadischen
-Werte zurückgeliefert werden können.
-
-Die wichtigsten syntaktischen Formen, um mit Monaden im Allgemeinen
-umzugehen, werden im Modul @code{(guix monads)} bereitgestellt und sind im
-Folgenden beschrieben.
-
-@deffn {Scheme-Syntax} with-monad @var{Monade} @var{Rumpf} ...
-Alle @code{>>=}- oder @code{return}-Formen im @var{Rumpf} in der
-@var{Monade} auswerten.
-@end deffn
-
-@deffn {Scheme-Syntax} return @var{Wert}
-Einen monadischen Wert liefern, der den übergebenen @var{Wert} kapselt.
-@end deffn
-
-@deffn {Scheme-Syntax} >>= @var{mWert} @var{mProz} ...
-Den monadischen Wert @var{mWert} @dfn{binden}, wobei sein »Inhalt« an die
-monadischen Prozeduren @var{mProz}@dots{} ü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:
-
-@example
-(run-with-state
-    (with-monad %state-monad
-      (>>= (return 1)
-           (lambda (x) (return (+ 1 x)))
-           (lambda (x) (return (* 2 x)))))
-  'irgendein-Zustand)
-
-@result{} 4
-@result{} irgendein-Zustand
-@end example
-@end deffn
-
-@deffn {Scheme-Syntax} mlet @var{Monade} ((@var{Variable} @var{mWert}) ...) @
-       @var{Rumpf} ...
-@deffnx {Scheme-Syntax} mlet* @var{Monade} ((@var{Variable} @var{mWert}) ...) @
-       @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.
-
-@code{mlet*} verhält sich gegenüber @code{mlet} wie @code{let*} gegenüber
-@code{let} (@pxref{Local Bindings,,, guile, GNU Guile Reference Manual}).
-@end deffn
-
-@deffn {Scheme-System} mbegin @var{Monade} @var{mAusdruck} ...
-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.
-
-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.
-@end deffn
-
-@deffn {Scheme-System} mwhen @var{Bedingung} @var{mAusdr0} @var{mAusdr*} ...
-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*} in der momentanen
-Monade zurückgeliefert. Jeder Ausdruck in der Folge muss ein monadischer
-Ausdruck sein.
-@end deffn
-
-@deffn {Scheme-System} munless @var{Bedingung} @var{mAusdr0} @var{mAusdr*} ...
-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*} in der momentanen Monade
-zurückgeliefert. Jeder Ausdruck in der Folge muss ein monadischer Ausdruck
-sein.
-@end deffn
-
-@cindex Zustandsmonade
-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.
-
-@defvr {Scheme-Variable} %state-monad
-Die Zustandsmonade. Prozeduren in der Zustandsmonade können auf den
-gefädelten Zustand zugreifen und ihn verändern.
-
-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:
-
-@example
-(define (Quadrat x)
-  (mlet %state-monad ((Anzahl (current-state)))
-    (mbegin %state-monad
-      (set-current-state (+ 1 Anzahl))
-      (return (* x x)))))
-
-(run-with-state (sequence %state-monad (map Quadrat (iota 3))) 0)
-@result{} (0 1 4)
-@result{} 3
-@end example
-
-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.
-@end defvr
-
-@deffn {Monadische Prozedur} current-state
-Liefert den momentanen Zustand als einen monadischen Wert.
-@end deffn
-
-@deffn {Monadische Prozedur} set-current-state @var{Wert}
-Setzt den momentanen Zustand auf @var{Wert} und liefert den vorherigen
-Zustand als einen monadischen Wert.
-@end deffn
-
-@deffn {Monadische Prozedur} state-push @var{Wert}
-Hängt den @var{Wert} vorne an den momentanen Zustand an, der eine Liste sein
-muss. Liefert den vorherigen Zustand als monadischen Wert.
-@end deffn
-
-@deffn {Monadische Prozedur} state-pop
-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.
-@end deffn
-
-@deffn {Scheme-Prozedur} run-with-state @var{mWert} [@var{Zustand}]
-Den monadischen Wert @var{mWert} mit @var{Zustand} als initialem Zustand
-laufen lassen. Dies liefert zwei Werte: den Ergebniswert und den
-Ergebniszustand.
-@end deffn
-
-Die zentrale Schnittstelle zur Store-Monade, wie sie vom Modul @code{(guix
-store)} angeboten wird, ist die Folgende:
-
-@defvr {Scheme-Variable} %store-monad
-Die Store-Monade — ein anderer Name für @var{%state-monad}.
-
-Werte in der Store-Monade kapseln Zugriffe auf den Store. Sobald seine
-Wirkung gebraucht wird, muss ein Wert der Store-Monade »ausgewertet« werden,
-indem er an die Prozedur @code{run-with-store} übergeben wird (siehe unten).
-@end defvr
-
-@deffn {Scheme-Prozedur} run-with-store @var{Store} @var{mWert} [#:guile-for-build] [#:system (%current-system)]
-Den @var{mWert}, einen monadischen Wert in der Store-Monade, in der offenen
-Verbindung @var{Store} laufen lassen.
-@end deffn
-
-@deffn {Monadische Prozedur} text-file @var{Name} @var{Text} [@var{Referenzen}]
-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.
-@end deffn
-
-@deffn {Monadische Prozedur} binary-file @var{Name} @var{Daten} [@var{Referenzen}]
-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.
-@end deffn
-
-@deffn {Monadische Prozedur} interned-file @var{Datei} [@var{Name}] @
-         [#: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}.
-
-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.
-
-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.
-
-Folgendes Beispiel fügt eine Datei unter zwei verschiedenen Namen in den
-Store ein:
-
-@example
-(run-with-store (open-connection)
-  (mlet %store-monad ((a (interned-file "README"))
-                      (b (interned-file "README" "LEGU-MIN")))
-    (return (list a b))))
-
-@result{} ("/gnu/store/rwm@dots{}-README" "/gnu/store/44i@dots{}-LEGU-MIN")
-@end example
-
-@end deffn
-
-Das Modul @code{(guix packages)} exportiert die folgenden paketbezogenen
-monadischen Prozeduren:
-
-@deffn {Monadische Prozedur} package-file @var{Paket} [@var{Datei}] @
-       [#: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.
-@end deffn
-
-@deffn {Monadische Prozedur} package->derivation @var{Paket} [@var{System}]
-@deffnx {Monadische Prozedur} package->cross-derivation @var{Paket} @
-          @var{Ziel} [@var{System}] Monadische Version von @code{package-derivation}
-und @code{package-cross-derivation} (@pxref{Pakete definieren}).
-@end deffn
-
-
-@node G-Ausdrücke
-@section G-Ausdrücke
-
-@cindex G-Ausdruck
-@cindex Erstellungscode maskieren
-Es gibt also »Ableitungen«, die eine Abfolge von Erstellungsaktionen
-repräsentieren, die durchgeführt werden müssen, um ein Objekt im Store zu
-erzeugen (@pxref{Ableitungen}). 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 (@pxref{Aufruf des guix-daemon}).
-
-@cindex Schichten von Code
-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.
-
-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.
-
-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 (@pxref{Expression Syntax,
-@code{quasiquote},, guile, GNU Guile Reference Manual}). Es gibt aber auch
-erhebliche Unterschiede:
-
-@itemize
-@item
-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.
-
-@item
-Wenn ein abstraktes Objekt wie ein Paket oder eine Ableitung innerhalb eines
-G-Ausdrücks demaskiert wird, ist das Ergebnis davon dasselbe, wie wenn
-dessen Ausgabedateiname genannt worden wäre.
-
-@item
-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.
-@end itemize
-
-@cindex Herunterbrechen, von abstrakten Objekten in G-Ausdrücken
-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}).
-
-Zur Veranschaulichung dieser Idee soll uns dieses Beispiel eines G-Ausdrucks
-dienen:
-
-@example
-(define build-exp
-  #~(begin
-      (mkdir #$output)
-      (chdir #$output)
-      (symlink (string-append #$coreutils "/bin/ls")
-               "list-files")))
-@end example
-
-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/@dots{}-coreutils-8.22/bin/ls} erstellt:
-
-@example
-(gexp->derivation "das-ding" build-exp)
-@end example
-
-Wie man es erwarten würde, wird die Zeichenkette
-@code{"/gnu/store/@dots{}-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.
-
-@cindex Cross-Kompilieren
-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.
-
-@example
-(gexp->derivation "vi"
-   #~(begin
-       (mkdir #$output)
-       (system* (string-append #+coreutils "/bin/ln")
-                "-s"
-                (string-append #$emacs "/bin/emacs")
-                (string-append #$output "/bin/vi")))
-   #:target "mips64el-linux-gnu")
-@end example
-
-@noindent
-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.
-
-@cindex importierte Module, in G-Ausdrücken
-@findex with-imported-modules
-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:
-
-@example
-(let ((build (with-imported-modules '((guix build utils))
-               #~(begin
-                   (use-modules (guix build utils))
-                   (mkdir-p (string-append #$output "/bin"))))))
-  (gexp->derivation "leeres-Verzeichnis"
-                    #~(begin
-                        #$build
-                        (display "Erfolg!\n")
-                        #t)))
-@end example
-
-@noindent
-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.
-
-@cindex Modulabschluss
-@findex source-module-closure
-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:
-
-@example
-(use-modules (guix modules))   ;»source-module-closure« verfügbar machen
-
-(with-imported-modules (source-module-closure
-                         '((guix build utils)
-                           (gnu build vm)))
-  (gexp->derivation "etwas-mit-vms"
-                    #~(begin
-                        (use-modules (guix build utils)
-                                     (gnu build vm))
-                        @dots{})))
-@end example
-
-@cindex Erweiterungen, für G-Ausdrücke
-@findex with-extensions
-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:
-
-@example
-(use-modules (gnu packages guile))  ;für »guile-json«
-
-(with-extensions (list guile-json)
-  (gexp->derivation "etwas-mit-json"
-                    #~(begin
-                        (use-modules (json))
-                        @dots{})))
-@end example
-
-Die syntaktische Form, in der G-Ausdrücke konstruiert werden, ist im
-Folgenden zusammengefasst.
-
-@deffn {Scheme-Syntax} #~@var{Ausdruck}
-@deffnx {Scheme-Syntax} (gexp @var{Ausdruck})
-Liefert einen G-Ausdruck, der den @var{Ausdruck} enthält. Der @var{Ausdruck}
-kann eine oder mehrere der folgenden Formen enthalten:
-
-@table @code
-@item #$@var{Objekt}
-@itemx (ungexp @var{Objekt})
-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/@dots{}-coreutils-8.22}.
-
-Wenn das @var{Objekt} eine Liste ist, wird diese durchlaufen und alle
-unterstützten Objekte darin auf diese Weise ersetzt.
-
-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.
-
-Wenn das @var{Objekt} eine andere Art von Objekt ist, wird es so wie es ist
-eingefügt.
-
-@item #$@var{Objekt}:@var{Ausgabe}
-@itemx (ungexp @var{Objekt} @var{Ausgabe})
-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 (@pxref{Pakete mit mehreren Ausgaben.}).
-
-@item #+@var{Objekt}
-@itemx #+@var{Objekt}:@var{Ausgabe}
-@itemx (ungexp-native @var{Objekt})
-@itemx (ungexp-native @var{Objekt} @var{Ausgabe})
-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.
-
-@item #$output[:@var{Ausgabe}]
-@itemx (ungexp output [@var{Ausgabe}])
-Fügt eine Referenz auf die angegebene @var{Ausgabe} dieser Ableitung ein,
-oder auf die Hauptausgabe, wenn keine @var{Ausgabe} angegeben wurde.
-
-Dies ist nur bei G-Ausdrücken sinnvoll, die an @code{gexp->derivation}
-übergeben werden.
-
-@item #$@@@var{Liste}
-@itemx (ungexp-splicing @var{Liste})
-Das Gleiche wie oben, jedoch wird nur der Inhalt der @var{Liste} in die
-äußere Liste eingespleißt.
-
-@item #+@@@var{Liste}
-@itemx (ungexp-native-splicing @var{Liste})
-Das Gleiche, aber referenziert werden native Erstellungen der Objekte in der
-@var{Liste}.
-
-@end table
-
-G-Ausdrücke, die mit @code{gexp} oder @code{#~} erzeugt wurden, sind zur
-Laufzeit Objekte vom Typ @code{gexp?} (siehe unten).
-@end deffn
-
-@deffn {Scheme-Syntax} with-imported-modules @var{Module} @var{Rumpf}@dots{}
-Markiert die in @var{Rumpf}@dots{} definierten G-Ausdrücke, dass sie in
-ihrer Ausführungsumgebung die angegebenen @var{Module} brauchen.
-
-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:
-
-@example
-`((guix build utils)
-  (guix gcrypt)
-  ((guix config) => ,(scheme-file "config.scm"
-                                  #~(define-module @dots{}))))
-@end example
-
-@noindent
-Im Beispiel oben werden die ersten beiden Module vom Suchpfad genommen und
-das letzte aus dem angegebenen dateiartigen Objekt erzeugt.
-
-Diese Form hat einen @emph{lexikalischen} Sichtbarkeitsbereich: Sie wirkt
-sich auf die direkt in @var{Rumpf}@dots{} definierten G-Ausdrücke aus, aber
-nicht auf jene, die, sagen wir, in aus @var{Rumpf}@dots{} heraus
-aufgerufenen Prozeduren definiert wurden.
-@end deffn
-
-@deffn {Scheme-Syntax} with-extensions @var{Erweiterungen} @var{Rumpf}@dots{}
-Markiert die in @var{Rumpf}@dots{} 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.
-
-Konkret werden die unter den @var{Erweiterungen} aufgeführten Pakete zum
-Ladepfad hinzugefügt, während die in @var{Rumpf}@dots{} aufgeführten
-importierten Module kompiliert werden und sie werden auch zum Ladepfad des
-von @var{Rumpf}@dots{} gelieferten G-Ausdrucks hinzugefügt.
-@end deffn
-
-@deffn {Scheme-Prozedur} gexp? @var{Objekt}
-Liefert @code{#t}, wenn das @var{Objekt} ein G-Ausdruck ist.
-@end deffn
-
-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 (@pxref{Die Store-Monade}, wenn Sie mehr Informationen über Monaden suchen).
-
-@deffn {Monadische Prozedur} gexp->derivation @var{Name} @var{Ausdruck} @
-       [#: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.
-
-@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))}.
-
-@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"}.
-
-@var{graft?} bestimmt, ob vom @var{Ausdruck} benannte Pakete veredelt werden
-sollen, falls Veredelungen zur Verfügung stehen.
-
-Ist @var{references-graphs} wahr, muss es eine Liste von Tupeln in einer der
-folgenden Formen sein:
-
-@example
-(@var{Dateiname} @var{Paket})
-(@var{Dateiname} @var{Paket} @var{Ausgabe})
-(@var{Dateiname} @var{Ableitung})
-(@var{Dateiname} @var{Ableitung} @var{Ausgabe})
-(@var{Dateiname} @var{Store-Objekt})
-@end example
-
-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.
-
-@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.
-
-@var{deprecation-warnings} bestimmt, ob beim Kompilieren von Modulen
-Warnungen angezeigt werden sollen, wenn auf als veraltet markierten Code
-zugegriffen wird (»deprecation warnings«). @var{deprecation-warnings} kann
-@code{#f}, @code{#t} oder @code{'detailed} (detailliert) sein.
-
-Die anderen Argumente verhalten sich wie bei @code{derivation}
-(@pxref{Ableitungen}).
-@end deffn
-
-@cindex dateiartige Objekte
-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:
-
-@example
-#~(system* #$(file-append glibc "/sbin/nscd") "-f"
-           #$(local-file "/tmp/my-nscd.conf"))
-@end example
-
-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.
-
-@deffn {Scheme-Prozedur} local-file @var{Datei} [@var{Name}] @
-   [#: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 angegeben, wird sie relativ zur Quelldatei gesucht,
-in der diese Form steht. Die @var{Datei} wird unter dem angegebenen
-@var{Name}n im Store abgelegt — als Vorgabe wird dabei der Basisname der
-@var{Datei} genommen.
-
-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.
-
-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.
-
-Dies ist das deklarative Gegenstück zur monadischen Prozedur
-@code{interned-file} (@pxref{Die Store-Monade, @code{interned-file}}).
-@end deffn
-
-@deffn {Scheme-Prozedur} plain-file @var{Name} @var{Inhalt}
-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.
-
-Dies ist das deklarative Gegenstück zu @code{text-file}.
-@end deffn
-
-@deffn {Scheme-Prozedur} computed-file @var{Name} @var{G-Ausdruck} @
-          [#: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.
-
-Dies ist das deklarative Gegenstück zu @code{gexp->derivation}.
-@end deffn
-
-@deffn {Monadische Prozedur} gexp->script @var{Name} @var{Ausdruck} @
-  [#:guile (default-guile)] [#:module-path %load-path] 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.
-
-Folgendes Beispiel erstellt ein Skript, das einfach nur den Befehl
-@command{ls} ausführt:
-
-@example
-(use-modules (guix gexp) (gnu packages base))
-
-(gexp->script "list-files"
-              #~(execl #$(file-append coreutils "/bin/ls")
-                       "ls"))
-@end example
-
-Lässt man es durch den Store »laufen« (siehe @pxref{Die Store-Monade,
-@code{run-with-store}}), erhalten wir eine Ableitung, die eine ausführbare
-Datei @file{/gnu/store/@dots{}-list-files} generiert, ungefähr so:
-
-@example
-#!/gnu/store/@dots{}-guile-2.0.11/bin/guile -ds
-!#
-(execl "/gnu/store/@dots{}-coreutils-8.22"/bin/ls" "ls")
-@end example
-@end deffn
-
-@deffn {Scheme-Prozedur} program-file @var{Name} @var{G-Ausdruck} @
-          [#: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.
-
-Dies ist das deklarative Gegenstück zu @code{gexp->script}.
-@end deffn
-
-@deffn {Monadische Prozedur} gexp->file @var{Name} @var{G-Ausdruck} @
-            [#: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.
-
-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.
-
-Die resultierende Datei referenziert alle Abhängigkeiten des
-@var{G-Ausdruck}s oder eine Teilmenge davon.
-@end deffn
-
-@deffn {Scheme-Prozedur} scheme-file @var{Name} @var{G-Ausdruck} [#:splice? #f]
-Liefert ein Objekt, das die Scheme-Datei @var{Name} mit dem @var{G-Ausdruck}
-als Inhalt repräsentiert.
-
-Dies ist das deklarative Gegenstück zu @code{gexp->file}.
-@end deffn
-
-@deffn {Monadische Prozedur} text-file* @var{Name} @var{Text} @dots{}
-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.
-
-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:
-
-@example
-(define (profile.sh)
-  ;; Liefert den Namen eines Shell-Skripts im Store,
-  ;; welcher die Umgebungsvariable »PATH« initialisiert.
-  (text-file* "profile.sh"
-              "export PATH=" coreutils "/bin:"
-              grep "/bin:" sed "/bin\n"))
-@end example
-
-In diesem Beispiel wird die resultierende Datei
-@file{/gnu/store/@dots{}-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.
-@end deffn
-
-@deffn {Scheme-Prozedur} mixed-text-file @var{Name} @var{Text} @dots{}
-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:
-
-@example
-(mixed-text-file "profile"
-                 "export PATH=" coreutils "/bin:" grep "/bin")
-@end example
-
-Dies ist das deklarative Gegenstück zu @code{text-file*}.
-@end deffn
-
-@deffn {Scheme-Prozedur} file-union @var{Name} @var{Dateien}
-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:
-
-@example
-(file-union "etc"
-            `(("hosts" ,(plain-file "hosts"
-                                    "127.0.0.1 localhost"))
-              ("bashrc" ,(plain-file "bashrc"
-                                     "alias ls='ls --color=auto'"))))
-@end example
-
-Dies liefert ein Verzeichnis @code{etc}, das zwei Dateien enthält.
-@end deffn
-
-@deffn {Scheme-Prozedur} directory-union @var{Name} @var{Dinge}
-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:
-
-@example
-(directory-union "guile+emacs" (list guile emacs))
-@end example
-
-Das liefert ein Verzeichnis, welches die Vereinigung der Pakete @code{guile}
-und @code{emacs} ist.
-@end deffn
-
-@deffn {Scheme-Prozedur} file-append @var{Objekt} @var{Suffix} @dots{}
-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.
-
-Betrachten Sie zum Beispiel diesen G-Ausdruck:
-
-@example
-(gexp->script "uname-ausfuehren"
-              #~(system* #$(file-append coreutils
-                                        "/bin/uname")))
-@end example
-
-Denselben Effekt könnte man erreichen mit:
-
-@example
-(gexp->script "uname-ausfuehren"
-              #~(system* (string-append #$coreutils
-                                        "/bin/uname")))
-@end example
-
-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 @dots{})} enthält, der den Dateinamen erst
-@emph{zur Laufzeit} zusammensetzt.
-@end deffn
-
-
-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
-@dots{})}.
-
-@cindex Herunterbrechen, von abstrakten Objekten in G-Ausdrücken
-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.
-
-@deffn {Monadische Prozedur} lower-object @var{Objekt} [@var{System}] @
-           [#: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>}.
-@end deffn
-
-@node Aufruf von guix repl
-@section @command{guix repl} aufrufen
-
-@cindex REPL (Lese-Auswerten-Schreiben-Schleife)
-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:
-
-@example
-$ guix repl
-scheme@@(guile-user)> ,use (gnu packages base)
-scheme@@(guile-user)> coreutils
-$1 = #<package coreutils@@8.29 gnu/packages/base.scm:327 3e28300>
-@end example
-
-@cindex Untergeordnete
-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.
-
-Folgende @var{Optionen} gibt es:
-
-@table @code
-@item --type=@var{type}
-@itemx -t @var{type}
-Start a REPL of the given @var{TYPE}, which can be one of the following:
-
-@table @code
-@item guile
-This is default, and it spawns a standard full-featured Guile REPL.
-@item machine
-Spawn a REPL that uses the machine-readable protocol.  This is the protocol
-that the @code{(guix inferior)} module speaks.
-@end table
-
-@item --listen=@var{Endpunkt}
-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:
-
-@table @code
-@item --listen=tcp:37146
-Accept connections on localhost on port 37146.
-
-@item --listen=unix:/tmp/socket
-Accept connections on the Unix-domain socket @file{/tmp/socket}.
-@end table
-@end table
-
-@c *********************************************************************
-@node Zubehör
-@chapter Zubehör
-
-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.
-
-@menu
-* Aufruf von guix build::    Pakete aus der Befehlszeile heraus erstellen.
-* Aufruf von guix edit::     Paketdefinitionen bearbeiten.
-* Aufruf von guix download::  Herunterladen einer Datei und Ausgabe ihres 
-                                Hashes.
-* Aufruf von guix hash::     Den kryptographischen Hash einer Datei 
-                               berechnen.
-* Aufruf von guix import::   Paketdefinitionen importieren.
-* Aufruf von guix refresh::  Paketdefinitionen aktualisieren.
-* Aufruf von guix lint::     Fehler in Paketdefinitionen finden.
-* Aufruf von guix size::     Plattenverbrauch profilieren.
-* Aufruf von guix graph::    Den Paketgraphen visualisieren.
-* Aufruf von guix publish::  Substitute teilen.
-* Aufruf von guix challenge::  Die Substitut-Server anfechten.
-* Aufruf von guix copy::     Mit einem entfernten Store Dateien austauschen.
-* Aufruf von guix container::  Prozesse isolieren.
-* Aufruf von guix weather::  Die Verfügbarkeit von Substituten 
-                               einschätzen.
-* Aufruf von guix processes::  Auflisten der Client-Prozesse
-@end menu
-
-@node Aufruf von guix build
-@section Aufruf von @command{guix build}
-
-@cindex Paketerstellung
-@cindex @command{guix build}
-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}
-(@pxref{Aufruf von guix package}). @command{guix build} wird also
-hauptsächlich von Entwicklern der Distribution benutzt.
-
-Die allgemeine Syntax lautet:
-
-@example
-guix build @var{Optionen} @var{Paket-oder-Ableitung}@dots{}
-@end example
-
-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:
-
-@example
-guix build emacs guile
-@end example
-
-Folgender Befehl erstellt alle Pakete, die zur Verfügung stehen:
-
-@example
-guix build --quiet --keep-going \
-  `guix package -A | cut -f1,2 --output-delimiter=@@`
-@end example
-
-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/@dots{}-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 (@pxref{Paketmodule}).
-
-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.
-
-Null oder mehr @var{Optionen} können angegeben werden. Zur Verfügung stehen
-die in den folgenden Unterabschnitten beschriebenen Befehlszeilenoptionen.
-
-@menu
-* Gemeinsame Erstellungsoptionen::  Erstellungsoptionen für die meisten 
-                                      Befehle.
-* Paketumwandlungsoptionen::  Varianten von Paketen erzeugen.
-* Zusätzliche Erstellungsoptionen::  Optionen spezifisch für »guix 
-                                        build«.
-* Fehlschläge beim Erstellen untersuchen::  Praxiserfahrung bei der 
-                                               Paketerstellung.
-@end menu
-
-@node Gemeinsame Erstellungsoptionen
-@subsection Gemeinsame Erstellungsoptionen
-
-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:
-
-@table @code
-
-@item --load-path=@var{Verzeichnis}
-@itemx -L @var{Verzeichnis}
-Das @var{Verzeichnis} vorne an den Suchpfad für Paketmodule anfügen
-(@pxref{Paketmodule}).
-
-Damit können Nutzer dafür sorgen, dass ihre eigenen selbstdefinierten Pakete
-für die Befehlszeilenwerkzeuge sichtbar sind.
-
-@item --keep-failed
-@itemx -K
-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 @xref{Fehlschläge beim Erstellen untersuchen}
-zeigt Ihnen Hinweise und Tricks, wie Erstellungsfehler untersucht werden
-können.
-
-Diese Option hat keine Auswirkungen, wenn eine Verbindung zu einem
-entfernten Daemon über eine @code{guix://}-URI verwendet wurde (@pxref{Der Store, the @code{GUIX_DAEMON_SOCKET} variable}).
-
-@item --keep-going
-@itemx -k
-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.
-
-Das normale Verhalten ist, abzubrechen, sobald eine der angegebenen
-Ableitungen fehlschlägt.
-
-@item --dry-run
-@itemx -n
-Die Ableitungen nicht erstellen.
-
-@anchor{fallback-option}
-@item --fallback
-Wenn das Substituieren vorerstellter Binärdateien fehlschlägt, diese als
-»Fallback« lokal selbst erstellen (@pxref{Fehler bei der Substitution}).
-
-@item --substitute-urls=@var{URLs}
-@anchor{client-substitute-urls}
-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 (@pxref{daemon-substitute-urls,, @command{guix-daemon} URLs}).
-
-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 (@pxref{Substitute}).
-
-Wenn als @var{urls} eine leere Zeichenkette angegeben wurde, verhält es
-sich, als wären Substitute abgeschaltet.
-
-@item --no-substitutes
-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 (@pxref{Substitute}).
-
-@item --no-grafts
-Pakete nicht »veredeln« (engl. »graft«). Praktisch heißt das, dass als
-Veredelungen verfügbare Paketaktualisierungen nicht angewandt werden. Der
-Abschnitt @xref{Sicherheitsaktualisierungen} hat weitere Informationen zu Veredelungen.
-
-@item --rounds=@var{n}
-Jede Ableitung @var{n}-mal nacheinander erstellen und einen Fehler melden,
-wenn die aufeinanderfolgenden Erstellungsergebnisse nicht Bit für Bit
-identisch sind.
-
-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 @xref{Aufruf von guix challenge} erklärt dies genauer.
-
-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 (@pxref{Aufruf von guix archive}), dann neu
-erstellen und letztlich die beiden Erstellungsergebnisse vergleichen.
-
-@item --no-build-hook
-Nicht versuchen, Erstellungen über den »Build-Hook« des Daemons auszulagern
-(@pxref{Auslagern des Daemons einrichten}). Somit wird lokal erstellt, statt
-Erstellungen auf entfernte Maschinen auszulagern.
-
-@item --max-silent-time=@var{Sekunden}
-Wenn der Erstellungs- oder Substitutionsprozess länger als
-@var{Sekunden}-lang keine Ausgabe erzeugt, wird er abgebrochen und ein
-Fehler beim Erstellen gemeldet.
-
-Standardmäßig wird die Einstellung für den Daemon benutzt (@pxref{Aufruf des guix-daemon, @code{--max-silent-time}}).
-
-@item --timeout=@var{Sekunden}
-Entsprechend wird hier der Erstellungs- oder Substitutionsprozess
-abgebrochen und als Fehlschlag gemeldet, wenn er mehr als
-@var{Sekunden}-lang dauert.
-
-Standardmäßig wird die Einstellung für den Daemon benutzt (@pxref{Aufruf des guix-daemon, @code{--timeout}}).
-
-@c Note: This option is actually not part of %standard-build-options but
-@c most programs honor it.
-@cindex verbosity, of the command-line tools
-@cindex build logs, verbosity
-@item -v @var{level}
-@itemx --verbosity=@var{Stufe}
-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.
-
-@item --cores=@var{n}
-@itemx -c @var{n}
-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.
-
-@item --max-jobs=@var{n}
-@itemx -M @var{n}
-Höchstens @var{n} gleichzeitige Erstellungsaufträge erlauben. Im Abschnitt
-@xref{Aufruf des guix-daemon, @code{--max-jobs}}, finden Sie Details zu dieser
-Option und der äquivalenten Option des @command{guix-daemon}.
-
-@item --debug=@var{level}
-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.
-
-@end table
-
-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)}.
-
-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}.
-
-@defvr {Umgebungsvariable} GUIX_BUILD_OPTIONS
-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:
-
-@example
-$ export GUIX_BUILD_OPTIONS="--no-substitutes -c 2 -L /foo/bar"
-@end example
-
-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.
-@end defvr
-
-
-@node Paketumwandlungsoptionen
-@subsection Paketumwandlungsoptionen
-
-@cindex Paketvarianten
-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 (@pxref{Pakete definieren}).
-
-@table @code
-
-@item --with-source=@var{Quelle}
-@itemx --with-source=@var{Paket}=@var{Quelle}
-@itemx --with-source=@var{Paket}@@@var{Version}=@var{Quelle}
-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} (@pxref{Aufruf von guix download}).
-
-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.
-
-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}.
-
-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:
-
-@example
-guix build ed --with-source=mirror://gnu/ed/ed-1.7.tar.gz
-@end example
-
-Für Entwickler wird es einem durch @code{--with-source} leicht gemacht,
-»Release Candidates«, also Vorabversionen, zu testen:
-
-@example
-guix build guile --with-source=../guile-2.0.9.219-e1bb7.tar.xz
-@end example
-
-@dots{} oder ein Checkout eines versionskontrollierten Repositorys in einer
-isolierten Umgebung zu erstellen:
-
-@example
-$ git clone git://git.sv.gnu.org/guix.git
-$ guix build guix --with-source=guix@@1.0=./guix
-@end example
-
-@item --with-input=@var{Paket}=@var{Ersatz}
-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}.
-
-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:
-
-@example
-guix build --with-input=guile=guile@@2.0 guix
-@end example
-
-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.
-
-Implementiert wird das alles mit der Scheme-Prozedur
-@code{package-input-rewriting} (@pxref{Pakete definieren,
-@code{package-input-rewriting}}).
-
-@item --with-graft=@var{Paket}=@var{Ersatz}
-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 @xref{Sicherheitsaktualisierungen} finden Sie
-weitere Informationen über Veredelungen.
-
-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:
-
-@example
-guix build --with-graft=gnutls=gnutls@@3.5.4 wget
-@end example
-
-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!
-
-@item --with-branch=@var{package}=@var{branch}
-@cindex Git, using the latest commit
-@cindex latest commit, building
-Build @var{package} from the latest commit of @var{branch}.  The
-@code{source} field of @var{package} must be an origin with the
-@code{git-fetch} method (@pxref{»origin«-Referenz}) or a @code{git-checkout}
-object; the repository URL is taken from that @code{source}.  Git
-sub-modules of the repository are fetched, recursively.
-
-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:
-
-@example
-guix build --with-branch=guile-sqlite3=master cuirass
-@end example
-
-@cindex continuous integration
-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).
-
-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.
-
-@item --with-commit=@var{package}=@var{commit}
-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.
-@end table
-
-@node Zusätzliche Erstellungsoptionen
-@subsection Zusätzliche Erstellungsoptionen
-
-Die unten aufgeführten Befehlszeilenoptionen funktionieren nur mit
-@command{guix build}.
-
-@table @code
-
-@item --quiet
-@itemx -q
-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.
-
-@item --file=@var{Datei}
-@itemx -f @var{Datei}
-Das Paket, die Ableitung oder das dateiähnliche Objekt erstellen, zu dem der
-Code in der @var{Datei} ausgewertet wird (@pxref{G-Ausdrücke, file-like
-objects}).
-
-Zum Beispiel könnte in der @var{Datei} so eine Paketdefinition stehen
-(@pxref{Pakete definieren}):
-
-@example
-@verbatiminclude package-hello.scm
-@end example
-
-@item --expression=@var{Ausdruck}
-@itemx -e @var{Ausdruck}
-Build the package or derivation @var{expr} evaluates to.
-
-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.
-
-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-Ausdrücke}).
-
-Lastly, @var{expr} may refer to a zero-argument monadic procedure
-(@pxref{Die Store-Monade}).  The procedure must return a derivation as a
-monadic value, which is then passed through @code{run-with-store}.
-
-@item --source
-@itemx -S
-Build the source derivations of the packages, rather than the packages
-themselves.
-
-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.
-
-The returned source tarball is the result of applying any patches and code
-snippets specified in the package @code{origin} (@pxref{Pakete definieren}).
-
-@item --sources
-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:
-
-@table @code
-@item package
-This value causes the @code{--sources} option to behave in the same way as
-the @code{--source} option.
-
-@item all
-Build the source derivations of all packages, including any source that
-might be listed as @code{inputs}.  This is the default value.
-
-@example
-$ guix build --sources tzdata
-The following derivations will be built:
-   /gnu/store/@dots{}-tzdata2015b.tar.gz.drv
-   /gnu/store/@dots{}-tzcode2015b.tar.gz.drv
-@end example
-
-@item transitive
-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.
-
-@example
-$ guix build --sources=transitive tzdata
-The following derivations will be built:
-   /gnu/store/@dots{}-tzcode2015b.tar.gz.drv
-   /gnu/store/@dots{}-findutils-4.4.2.tar.xz.drv
-   /gnu/store/@dots{}-grep-2.21.tar.xz.drv
-   /gnu/store/@dots{}-coreutils-8.23.tar.xz.drv
-   /gnu/store/@dots{}-make-4.1.tar.xz.drv
-   /gnu/store/@dots{}-bash-4.3.tar.xz.drv
-@dots{}
-@end example
-
-@end table
-
-@item --system=@var{System}
-@itemx -s @var{System}
-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.
-
-@quotation Anmerkung
-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.
-@end quotation
-
-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.
-
-@quotation Anmerkung
-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.
-@end quotation
-
-Similarly, when transparent emulation with QEMU and @code{binfmt_misc} is
-enabled (@pxref{Virtualisierungsdienste, @code{qemu-binfmt-service-type}}),
-you can build for any system for which a QEMU @code{binfmt_misc} handler is
-installed.
-
-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{Auslagern des Daemons einrichten}, for more information on offloading.
-
-@item --target=@var{Tripel}
-@cindex Cross-Kompilieren
-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
-(@pxref{Specifying target triplets, GNU configuration triplets,, autoconf,
-Autoconf}).
-
-@anchor{build-check}
-@item --check
-@cindex determinism, checking
-@cindex reproducibility, checking
-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.
-
-This mechanism allows you to check whether previously installed substitutes
-are genuine (@pxref{Substitute}), or whether the build result of a package
-is deterministic.  @xref{Aufruf von guix challenge}, for more background
-information and tools.
-
-Wenn dies zusammen mit @option{--keep-failed} benutzt wird, bleiben die sich
-unterscheidenden Ausgaben im Store unter dem Namen
-@file{/gnu/store/@dots{}-check}. Dadurch können Unterschiede zwischen den
-beiden Ergebnissen leicht erkannt werden.
-
-@item --repair
-@cindex repairing store items
-@cindex Datenbeschädigung, Behebung
-Attempt to repair the specified store items, if they are corrupt, by
-re-downloading or rebuilding them.
-
-This operation is not atomic and thus restricted to @code{root}.
-
-@item --derivations
-@itemx -d
-Return the derivation paths, not the output paths, of the given packages.
-
-@item --root=@var{file}
-@itemx -r @var{file}
-@cindex GC roots, adding
-@cindex garbage collector roots, adding
-Make @var{file} a symlink to the result, and register it as a garbage
-collector root.
-
-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{Aufruf von guix gc}, for more on GC roots.
-
-@item --log-file
-@cindex build logs, access
-Return the build log file names or URLs for the given
-@var{package-or-derivation}, or raise an error if build logs are missing.
-
-This works regardless of how packages or derivations are specified.  For
-instance, the following invocations are equivalent:
-
-@example
-guix build --log-file `guix build -d guile`
-guix build --log-file `guix build guile`
-guix build --log-file guile
-guix build --log-file -e '(@@ (gnu packages guile) guile-2.0)'
-@end example
-
-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}.)
-
-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:
-
-@example
-$ guix build --log-file gdb -s mips64el-linux
-https://@value{SUBSTITUTE-SERVER}/log/@dots{}-gdb-7.10
-@end example
-
-You can freely access a huge library of build logs!
-@end table
-
-@node Fehlschläge beim Erstellen untersuchen
-@subsection Fehlschläge beim Erstellen untersuchen
-
-@cindex build failures, debugging
-When defining a new package (@pxref{Pakete definieren}), 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.
-
-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{Aufruf von guix build, @code{--keep-failed}}).
-
-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:
-
-@example
-$ guix build foo -K
-@dots{} @i{build fails}
-$ cd /tmp/guix-build-foo.drv-0
-$ source ./environment-variables
-$ cd foo-1.2
-@end example
-
-Now, you can invoke commands as if you were the daemon (almost) and
-troubleshoot your build process.
-
-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{Einrichten der Erstellungsumgebung}).
-
-In such cases, you may need to run inspect the build process from within a
-container similar to the one the build daemon creates:
-
-@example
-$ guix build -K foo
-@dots{}
-$ cd /tmp/guix-build-foo.drv-0
-$ guix environment --no-grafts -C foo --ad-hoc strace gdb
-[env]# source ./environment-variables
-[env]# cd foo-1.2
-@end example
-
-Here, @command{guix environment -C} creates a container and spawns a new
-shell in it (@pxref{Aufruf von 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{Sicherheitsaktualisierungen}, for more info on grafts).
-
-To get closer to a container like that used by the build daemon, we can
-remove @file{/bin/sh}:
-
-@example
-[env]# rm /bin/sh
-@end example
-
-(Don't worry, this is harmless: this is all happening in the throw-away
-container created by @command{guix environment}.)
-
-The @command{strace} command is probably not in the search path, but we can
-run:
-
-@example
-[env]# $GUIX_ENVIRONMENT/bin/strace -f -o log make check
-@end example
-
-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.
-
-
-@node Aufruf von guix edit
-@section Invoking @command{guix edit}
-
-@cindex @command{guix edit}
-@cindex package definition, editing
-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:
-
-@example
-guix edit gcc@@4.9 vim
-@end example
-
-@noindent
-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.
-
-If you are using a Guix Git checkout (@pxref{Erstellung aus dem Git}), or have
-created your own packages on @code{GUIX_PACKAGE_PATH} (@pxref{Paketmodule}), 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.
-
-
-@node Aufruf von guix download
-@section Invoking @command{guix download}
-
-@cindex @command{guix download}
-@cindex downloading package sources
-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{Pakete definieren}).  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.
-
-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{Aufruf von guix gc}).
-
-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.
-
-@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-Zertifikate}),
-unless @option{--no-check-certificate} is used.
-
-The following options are available:
-
-@table @code
-@item --format=@var{fmt}
-@itemx -f @var{fmt}
-Write the hash in the format specified by @var{fmt}.  For more information
-on the valid values for @var{fmt}, @pxref{Aufruf von guix hash}.
-
-@item --no-check-certificate
-Do not validate the X.509 certificates of HTTPS servers.
-
-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.
-
-@item --output=@var{file}
-@itemx -o @var{file}
-Save the downloaded file to @var{file} instead of adding it to the store.
-@end table
-
-@node Aufruf von guix hash
-@section Invoking @command{guix hash}
-
-@cindex @command{guix hash}
-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{Pakete definieren}).
-
-Die allgemeine Syntax lautet:
-
-@example
-guix hash @var{option} @var{file}
-@end example
-
-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:
-
-@table @code
-
-@item --format=@var{fmt}
-@itemx -f @var{fmt}
-Write the hash in the format specified by @var{fmt}.
-
-Supported formats: @code{nix-base32}, @code{base32}, @code{base16}
-(@code{hex} and @code{hexadecimal} can be used as well).
-
-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.
-
-@item --recursive
-@itemx -r
-Compute the hash on @var{file} recursively.
-
-@c FIXME: Replace xref above with xref to an ``Archive'' section when
-@c it exists.
-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{Aufruf von guix archive}).
-
-@item --exclude-vcs
-@itemx -x
-When combined with @option{--recursive}, exclude version control system
-directories (@file{.bzr}, @file{.git}, @file{.hg}, etc.)
-
-@vindex git-fetch
-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«-Referenz}):
-
-@example
-$ git clone http://example.org/foo.git
-$ cd foo
-$ guix hash -rx .
-@end example
-@end table
-
-@node Aufruf von guix import
-@section Invoking @command{guix import}
-
-@cindex importing packages
-@cindex package import
-@cindex package conversion
-@cindex Invoking @command{guix import}
-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{Pakete definieren}).
-
-Die allgemeine Syntax lautet:
-
-@example
-guix import @var{importer} @var{options}@dots{}
-@end example
-
-@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:
-
-@table @code
-@item gnu
-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.
-
-Additional information such as the package dependencies and its license
-needs to be figured out manually.
-
-For example, the following command returns a package definition for
-GNU@tie{}Hello:
-
-@example
-guix import gnu hello
-@end example
-
-Specific command-line options are:
-
-@table @code
-@item --key-download=@var{policy}
-As for @code{guix refresh}, specify the policy to handle missing OpenPGP
-keys when verifying the package signature.  @xref{Aufruf von guix refresh,
-@code{--key-download}}.
-@end table
-
-@item pypi
-@cindex pypi
-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.
-
-The command below imports metadata for the @code{itsdangerous} Python
-package:
-
-@example
-guix import pypi itsdangerous
-@end example
-
-@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.
-@end table
-
-@item gem
-@cindex gem
-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.
-
-The command below imports metadata for the @code{rails} Ruby package:
-
-@example
-guix import gem rails
-@end example
-
-@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.
-@end table
-
-@item cpan
-@cindex CPAN
-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.
-
-The command command below imports metadata for the @code{Acme::Boolean} Perl
-module:
-
-@example
-guix import cpan Acme::Boolean
-@end example
-
-@item cran
-@cindex CRAN
-@cindex Bioconductor
-Import metadata from @uref{https://cran.r-project.org/, CRAN}, the central
-repository for the @uref{http://r-project.org, GNU@tie{}R statistical and
-graphical environment}.
-
-Information is extracted from the @code{DESCRIPTION} file of the package.
-
-The command command below imports metadata for the @code{Cairo} R package:
-
-@example
-guix import cran Cairo
-@end example
-
-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.
-
-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.
-
-Information is extracted from the @code{DESCRIPTION} file of a package
-published on the web interface of the Bioconductor SVN repository.
-
-The command below imports metadata for the @code{GenomicRanges} R package:
-
-@example
-guix import cran --archive=bioconductor GenomicRanges
-@end example
-
-@item texlive
-@cindex TeX Live
-@cindex CTAN
-Import metadata from @uref{http://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}.
-
-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.
-
-The command command below imports metadata for the @code{fontspec} TeX
-package:
-
-@example
-guix import texlive fontspec
-@end example
-
-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.
-
-The command below imports metadata for the @code{ifxetex} package from CTAN
-while fetching the sources from the directory @file{texmf/source/generic}:
-
-@example
-guix import texlive --archive=generic ifxetex
-@end example
-
-@item json
-@cindex JSON, import
-Import package metadata from a local JSON file.  Consider the following
-example package definition in JSON format:
-
-@example
-@{
-  "name": "hello",
-  "version": "2.10",
-  "source": "mirror://gnu/hello/hello-2.10.tar.gz",
-  "build-system": "gnu",
-  "home-page": "https://www.gnu.org/software/hello/",
-  "synopsis": "Hello, GNU world: An example GNU package",
-  "description": "GNU Hello prints a greeting.",
-  "license": "GPL-3.0+",
-  "native-inputs": ["gcc@@6"]
-@}
-@end example
-
-The field names are the same as for the @code{<package>} record
-(@xref{Pakete definieren}).  References to other packages are provided as
-JSON lists of quoted package specification strings such as @code{guile} or
-@code{guile@@2.0}.
-
-The importer also supports a more explicit source definition using the
-common fields for @code{<origin>} records:
-
-@example
-@{
-  @dots{}
-  "source": @{
-    "method": "url-fetch",
-    "uri": "mirror://gnu/hello/hello-2.10.tar.gz",
-    "sha256": @{
-      "base32": "0ssi1wpaf7plaswqqjwigppsg5fyh99vdlb9kzl7c9lng89ndq1i"
-    @}
-  @}
-  @dots{}
-@}
-@end example
-
-The command below reads metadata from the JSON file @code{hello.json} and
-outputs a package expression:
-
-@example
-guix import json hello.json
-@end example
-
-@item nix
-Import metadata from a local copy of the source of the
-@uref{http://nixos.org/nixpkgs/, Nixpkgs distribution}@footnote{This relies
-on the @command{nix-instantiate} command of @uref{http://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.
-
-When importing a GNU package, the synopsis and descriptions are replaced by
-their canonical upstream variant.
-
-Usually, you will first need to do:
-
-@example
-export NIX_REMOTE=daemon
-@end example
-
-@noindent
-so that @command{nix-instantiate} does not try to open the Nix database.
-
-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):
-
-@example
-guix import nix ~/path/to/nixpkgs libreoffice
-@end example
-
-@item hackage
-@cindex hackage
-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.
-
-Specific command-line options are:
-
-@table @code
-@item --stdin
-@itemx -s
-Read a Cabal file from standard input.
-@item --no-test-dependencies
-@itemx -t
-Do not include dependencies required only by the test suites.
-@item --cabal-environment=@var{alist}
-@itemx -e @var{alist}
-@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.
-@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.
-@end table
-
-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}:
-
-@example
-guix import hackage -t -e "'((\"network-uri\" . false))" HTTP
-@end example
-
-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:
-
-@example
-guix import hackage mtl@@2.1.3.1
-@end example
-
-@item stackage
-@cindex stackage
-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.
-
-Specific command-line options are:
-
-@table @code
-@item --no-test-dependencies
-@itemx -t
-Do not include dependencies required only by the test suites.
-@item --lts-version=@var{version}
-@itemx -l @var{Version}
-@var{version} is the desired LTS release version.  If omitted the latest
-release is used.
-@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.
-@end table
-
-The command below imports metadata for the @code{HTTP} Haskell package
-included in the LTS Stackage release version 7.18:
-
-@example
-guix import stackage --lts-version=7.18 HTTP
-@end example
-
-@item elpa
-@cindex elpa
-Import metadata from an Emacs Lisp Package Archive (ELPA) package repository
-(@pxref{Packages,,, emacs, The GNU Emacs Manual}).
-
-Specific command-line options are:
-
-@table @code
-@item --archive=@var{repo}
-@itemx -a @var{repo}
-@var{repo} identifies the archive repository from which to retrieve the
-information.  Currently the supported repositories and their identifiers
-are:
-@itemize -
-@item
-@uref{http://elpa.gnu.org/packages, GNU}, selected by the @code{gnu}
-identifier.  This is the default.
-
-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}).
-
-@item
-@uref{http://stable.melpa.org/packages, MELPA-Stable}, selected by the
-@code{melpa-stable} identifier.
-
-@item
-@uref{http://melpa.org/packages, MELPA}, selected by the @code{melpa}
-identifier.
-@end itemize
-
-@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.
-@end table
-
-@item crate
-@cindex crate
-Import metadata from the crates.io Rust package repository
-@uref{https://crates.io, crates.io}.
-
-@item opam
-@cindex OPAM
-@cindex OCaml
-Import metadata from the @uref{https://opam.ocaml.org/, OPAM} package
-repository used by the OCaml community.
-@end table
-
-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{Mitwirken}).
-
-@node Aufruf von guix refresh
-@section Invoking @command{guix refresh}
-
-@cindex @command{guix refresh}
-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:
-
-@example
-$ guix refresh
-gnu/packages/gettext.scm:29:13: gettext would be upgraded from 0.18.1.1 to 0.18.2.1
-gnu/packages/glib.scm:77:12: glib would be upgraded from 2.34.3 to 2.37.0
-@end example
-
-Alternately, one can specify packages to consider, in which case a warning
-is emitted for packages that lack an updater:
-
-@example
-$ guix refresh coreutils guile guile-ssh
-gnu/packages/ssh.scm:205:2: warning: no updater for guile-ssh
-gnu/packages/guile.scm:136:12: guile would be upgraded from 2.0.12 to 2.0.13
-@end example
-
-@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!
-
-@table @code
-
-@item --recursive
-Consider the packages specified, and all the packages upon which they
-depend.
-
-@example
-$ guix refresh --recursive coreutils
-gnu/packages/acl.scm:35:2: warning: no updater for acl
-gnu/packages/m4.scm:30:12: info: 1.4.18 is already the latest version of m4
-gnu/packages/xml.scm:68:2: warning: no updater for expat
-gnu/packages/multiprecision.scm:40:12: info: 6.1.2 is already the latest version of gmp
-@dots{}
-@end example
-
-@end table
-
-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:
-
-@example
-(define-public network-manager
-  (package
-    (name "network-manager")
-    ;; @dots{}
-    (properties '((upstream-name . "NetworkManager")))))
-@end example
-
-When passed @code{--update}, it modifies distribution source files to update
-the version numbers and source tarball hashes of those package recipes
-(@pxref{Pakete definieren}).  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.
-
-The following options are supported:
-
-@table @code
-
-@item --expression=@var{Ausdruck}
-@itemx -e @var{Ausdruck}
-Als Paket benutzen, wozu der @var{Ausdruck} ausgewertet wird.
-
-This is useful to precisely refer to a package, as in this example:
-
-@example
-guix refresh -l -e '(@@@@ (gnu packages commencement) glibc-final)'
-@end example
-
-This command lists the dependents of the ``final'' libc (essentially all the
-packages.)
-
-@item --update
-@itemx -u
-Update distribution source files (package recipes) in place.  This is
-usually run from a checkout of the Guix source tree (@pxref{Guix vor der Installation ausführen}):
-
-@example
-$ ./pre-inst-env guix refresh -s non-core -u
-@end example
-
-@xref{Pakete definieren}, for more information on package definitions.
-
-@item --select=[@var{subset}]
-@itemx -s @var{subset}
-Select all the packages in @var{subset}, one of @code{core} or
-@code{non-core}.
-
-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.
-
-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.
-
-@item --manifest=@var{Datei}
-@itemx -m @var{Datei}
-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}
-@itemx -t @var{updater}
-Select only packages handled by @var{updater} (may be a comma-separated list
-of updaters).  Currently, @var{updater} may be one of:
-
-@table @code
-@item gnu
-the updater for GNU packages;
-@item gnome
-the updater for GNOME packages;
-@item kde
-the updater for KDE packages;
-@item xorg
-the updater for X.org packages;
-@item kernel.org
-the updater for packages hosted on kernel.org;
-@item elpa
-the updater for @uref{http://elpa.gnu.org/, ELPA} packages;
-@item cran
-the updater for @uref{https://cran.r-project.org/, CRAN} packages;
-@item bioconductor
-the updater for @uref{https://www.bioconductor.org/, Bioconductor} R
-packages;
-@item cpan
-the updater for @uref{http://www.cpan.org/, CPAN} packages;
-@item pypi
-the updater for @uref{https://pypi.python.org, PyPI} packages.
-@item gem
-the updater for @uref{https://rubygems.org, RubyGems} packages.
-@item github
-the updater for @uref{https://github.com, GitHub} packages.
-@item hackage
-the updater for @uref{https://hackage.haskell.org, Hackage} packages.
-@item stackage
-the updater for @uref{https://www.stackage.org, Stackage} packages.
-@item crate
-the updater for @uref{https://crates.io, Crates} packages.
-@end table
-
-For instance, the following command only checks for updates of Emacs
-packages hosted at @code{elpa.gnu.org} and for updates of CRAN packages:
-
-@example
-$ guix refresh --type=elpa,cran
-gnu/packages/statistics.scm:819:13: r-testthat would be upgraded from 0.10.0 to 0.11.0
-gnu/packages/emacs.scm:856:13: emacs-auctex would be upgraded from 11.88.6 to 11.88.9
-@end example
-
-@end table
-
-In addition, @command{guix refresh} can be passed one or more package names,
-as in this example:
-
-@example
-$ ./pre-inst-env guix refresh -u emacs idutils gcc@@4.8
-@end example
-
-@noindent
-The command above specifically updates the @code{emacs} and @code{idutils}
-packages.  The @code{--select} option would have no effect in this case.
-
-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:
-
-@table @code
-
-@item --list-updaters
-@itemx -L
-List available updaters and exit (see @option{--type} above.)
-
-For each updater, display the fraction of packages it covers; at the end,
-display the fraction of packages covered by all these updaters.
-
-@item --list-dependent
-@itemx -l
-List top-level dependent packages that would need to be rebuilt as a result
-of upgrading one or more packages.
-
-@xref{Aufruf von guix graph, the @code{reverse-package} type of @command{guix
-graph}}, for information on how to visualize the list of dependents of a
-package.
-
-@end table
-
-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.
-
-@example
-$ guix refresh --list-dependent flex
-Building the following 120 packages would ensure 213 dependent packages are rebuilt:
-hop@@2.4.0 geiser@@0.4 notmuch@@0.18 mu@@0.9.9.5 cflow@@1.4 idutils@@4.6 @dots{}
-@end example
-
-The command above lists a set of packages that could be built to check for
-compatibility with an upgraded @code{flex} package.
-
-@table @code
-
-@item --list-transitive
-List all the packages which one or more packages depend upon.
-
-@example
-$ guix refresh --list-transitive flex
-flex@@2.6.4 depends on the following 25 packages: perl@@5.28.0 help2man@@1.47.6
-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{}
-@end example
-
-@end table
-
-The command above lists a set of packages which, when changed, would cause
-@code{flex} to be rebuilt.
-
-The following options can be used to customize GnuPG operation:
-
-@table @code
-
-@item --gpg=@var{command}
-Use @var{command} as the GnuPG 2.x command.  @var{command} is searched for
-in @code{$PATH}.
-
-@item --keyring=@var{Datei}
-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).
-
-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.)
-
-You can export keys from your default GPG keyring into a keybox file using
-commands like this one:
-
-@example
-gpg --export rms@@gnu.org | kbxutil --import-openpgp >> mykeyring.kbx
-@end example
-
-Likewise, you can fetch keys to a specific keybox file like this:
-
-@example
-gpg --no-default-keyring --keyring mykeyring.kbx \
-  --recv-keys @value{OPENPGP-SIGNING-KEY-ID}
-@end example
-
-@ref{GPG Configuration Options, @option{--keyring},, gnupg, Using the GNU
-Privacy Guard}, for more information on GPG's @option{--keyring} option.
-
-@item --key-download=@var{policy}
-Handle missing OpenPGP keys according to @var{policy}, which may be one of:
-
-@table @code
-@item always
-Always download missing OpenPGP keys from the key server, and add them to
-the user's GnuPG keyring.
-
-@item never
-Never try to download missing OpenPGP keys.  Instead just bail out.
-
-@item interactive
-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.
-@end table
-
-@item --key-server=@var{host}
-Use @var{host} as the OpenPGP key server when importing a public key.
-
-@end table
-
-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.
-
-
-@node Aufruf von guix lint
-@section Invoking @command{guix lint}
-
-@cindex @command{guix lint}
-@cindex package, checking for errors
-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):
-
-@table @code
-@item synopsis
-@itemx description
-Validate certain typographical and stylistic rules about package
-descriptions and synopses.
-
-@item inputs-should-be-native
-Identify inputs that should most likely be native inputs.
-
-@item source
-@itemx home-page
-@itemx mirror-url
-@itemx github-url
-@itemx source-file-name
-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«-Referenz}).
-
-@item source-unstable-tarball
-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.
-
-@item cve
-@cindex security vulnerabilities
-@cindex CVE, Common Vulnerabilities and Exposures
-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}.
-
-To view information about a particular vulnerability, visit pages such as:
-
-@itemize
-@item
-@indicateurl{https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-YYYY-ABCD}
-@item
-@indicateurl{https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-YYYY-ABCD}
-@end itemize
-
-@noindent
-where @code{CVE-YYYY-ABCD} is the CVE identifier---e.g.,
-@code{CVE-2015-7554}.
-
-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:
-
-@example
-(package
-  (name "grub")
-  ;; @dots{}
-  ;; CPE calls this package "grub2".
-  (properties '((cpe-name . "grub2")
-                (cpe-version . "2.3")))
-@end example
-
-@c See <http://www.openwall.com/lists/oss-security/2017/03/15/3>.
-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:
-
-@example
-(package
-  (name "t1lib")
-  ;; @dots{}
-  ;; These CVEs no longer apply and can be safely ignored.
-  (properties `((lint-hidden-cve . ("CVE-2011-0433"
-                                    "CVE-2011-1553"
-                                    "CVE-2011-1554"
-                                    "CVE-2011-5244")))))
-@end example
-
-@item formatting
-Warn about obvious source code formatting issues: trailing white space, use
-of tabulations, etc.
-@end table
-
-Die allgemeine Syntax lautet:
-
-@example
-guix lint @var{options} @var{package}@dots{}
-@end example
-
-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:
-
-@table @code
-@item --list-checkers
-@itemx -l
-List and describe all the available checkers that will be run on packages
-and exit.
-
-@item --checkers
-@itemx -c
-Only enable the checkers specified in a comma-separated list using the names
-returned by @code{--list-checkers}.
-
-@end table
-
-@node Aufruf von guix size
-@section Invoking @command{guix size}
-
-@cindex size
-@cindex package size
-@cindex Abschluss
-@cindex @command{guix size}
-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{Pakete mit mehreren Ausgaben.}).  Such are the typical issues that @command{guix size} can
-highlight.
-
-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:
-
-@example
-$ guix size coreutils
-store item                               total    self
-/gnu/store/@dots{}-gcc-5.5.0-lib           60.4    30.1  38.1%
-/gnu/store/@dots{}-glibc-2.27              30.3    28.8  36.6%
-/gnu/store/@dots{}-coreutils-8.28          78.9    15.0  19.0%
-/gnu/store/@dots{}-gmp-6.1.2               63.1     2.7   3.4%
-/gnu/store/@dots{}-bash-static-4.4.12       1.5     1.5   1.9%
-/gnu/store/@dots{}-acl-2.2.52              61.1     0.4   0.5%
-/gnu/store/@dots{}-attr-2.4.47             60.6     0.2   0.3%
-/gnu/store/@dots{}-libcap-2.25             60.5     0.2   0.2%
-total: 78.9 MiB
-@end example
-
-@cindex Abschluss
-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:
-
-@example
-$ guix gc -R /gnu/store/@dots{}-coreutils-8.23
-@end example
-
-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.
-
-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.)
-
-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{Sicherheitsaktualisierungen}, 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}).
-
-When the given packages are @emph{not} in the store, @command{guix size}
-reports information based on the available substitutes
-(@pxref{Substitute}).  This makes it possible it to profile disk usage of
-store items that are not even on disk, only available remotely.
-
-You can also specify several package names:
-
-@example
-$ guix size coreutils grep sed bash
-store item                               total    self
-/gnu/store/@dots{}-coreutils-8.24          77.8    13.8  13.4%
-/gnu/store/@dots{}-grep-2.22               73.1     0.8   0.8%
-/gnu/store/@dots{}-bash-4.3.42             72.3     4.7   4.6%
-/gnu/store/@dots{}-readline-6.3            67.6     1.2   1.2%
-@dots{}
-total: 102.3 MiB
-@end example
-
-@noindent
-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.
-
-The available options are:
-
-@table @option
-
-@item --substitute-urls=@var{URLs}
-Use substitute information from @var{urls}.  @xref{client-substitute-urls,
-the same option for @code{guix build}}.
-
-@item --sort=@var{key}
-Sort lines according to @var{key}, one of the following options:
-
-@table @code
-@item self
-the size of each item (the default);
-@item Abschluss
-the total size of the item's closure.
-@end table
-
-@item --map-file=@var{file}
-Write a graphical map of disk usage in PNG format to @var{file}.
-
-For the example above, the map looks like this:
-
-@image{images/coreutils-size-map,5in,, map of Coreutils disk usage produced
-by @command{guix size}}
-
-This option requires that
-@uref{http://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.
-
-@item --system=@var{System}
-@itemx -s @var{System}
-Consider packages for @var{system}---e.g., @code{x86_64-linux}.
-
-@end table
-
-@node Aufruf von guix graph
-@section Invoking @command{guix graph}
-
-@cindex DAG
-@cindex @command{guix graph}
-@cindex Paketabhängigkeiten
-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{http://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{http://www.opencypher.org/,
-openCypher} query language.  The general syntax is:
-
-@example
-guix graph @var{options} @var{package}@dots{}
-@end example
-
-For example, the following command generates a PDF file representing the
-package DAG for the GNU@tie{}Core Utilities, showing its build-time
-dependencies:
-
-@example
-guix graph coreutils | dot -Tpdf > dag.pdf
-@end example
-
-The output looks like this:
-
-@image{images/coreutils-graph,2in,,Dependency graph of the GNU Coreutils}
-
-Nice little graph, no?
-
-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:
-
-@table @code
-@item package
-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.
-
-@item reverse-package
-This shows the @emph{reverse} DAG of packages.  For example:
-
-@example
-guix graph --type=reverse-package ocaml
-@end example
-
-...@: yields the graph of packages that depend on OCaml.
-
-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{Aufruf von guix refresh,
-@option{--list-dependent}}).
-
-@item bag-emerged
-This is the package DAG, @emph{including} implicit inputs.
-
-For instance, the following command:
-
-@example
-guix graph --type=bag-emerged coreutils | dot -Tpdf > dag.pdf
-@end example
-
-...@: yields this bigger graph:
-
-@image{images/coreutils-bag-graph,,5in,Detailed dependency graph of the GNU
-Coreutils}
-
-At the bottom of the graph, we see all the implicit inputs of
-@var{gnu-build-system} (@pxref{Erstellungssysteme, @code{gnu-build-system}}).
-
-Now, note that the dependencies of these implicit inputs---that is, the
-@dfn{bootstrap dependencies} (@pxref{Bootstrapping})---are not shown here,
-for conciseness.
-
-@item bag
-Similar to @code{bag-emerged}, but this time including all the bootstrap
-dependencies.
-
-@item bag-with-origins
-Similar to @code{bag}, but also showing origins and their dependencies.
-
-@item Ableitung
-This is the most detailed representation: It shows the DAG of derivations
-(@pxref{Ableitungen}) and plain store items.  Compared to the above
-representation, many additional nodes are visible, including build scripts,
-patches, Guile modules, etc.
-
-For this type of graph, it is also possible to pass a @file{.drv} file name
-instead of a package name, as in:
-
-@example
-guix graph -t derivation `guix system build -d my-config.scm`
-@end example
-
-@item module
-This is the graph of @dfn{package modules} (@pxref{Paketmodule}).  For
-example, the following command shows the graph for the package module that
-defines the @code{guile} package:
-
-@example
-guix graph -t module guile | dot -Tpdf > module-graph.pdf
-@end example
-@end table
-
-All the types above correspond to @emph{build-time dependencies}.  The
-following graph type represents the @emph{run-time dependencies}:
-
-@table @code
-@item references
-This is the graph of @dfn{references} of a package output, as returned by
-@command{guix gc --references} (@pxref{Aufruf von guix gc}).
-
-If the given package output is not available in the store, @command{guix
-graph} attempts to obtain dependency information from substitutes.
-
-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!):
-
-@example
-guix graph -t references `readlink -f ~/.guix-profile`
-@end example
-
-@item referrers
-This is the graph of the @dfn{referrers} of a store item, as returned by
-@command{guix gc --referrers} (@pxref{Aufruf von guix gc}).
-
-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.
-
-It can help determine what is preventing a store item from being garbage
-collected.
-
-@end table
-
-The available options are the following:
-
-@table @option
-@item --type=@var{type}
-@itemx -t @var{type}
-Produce a graph output of @var{type}, where @var{type} must be one of the
-values listed above.
-
-@item --list-types
-List the supported graph types.
-
-@item --backend=@var{backend}
-@itemx -b @var{backend}
-Produce a graph using the selected @var{backend}.
-
-@item --list-backends
-List the supported graph backends.
-
-Currently, the available backends are Graphviz and d3.js.
-
-@item --expression=@var{Ausdruck}
-@itemx -e @var{Ausdruck}
-Als Paket benutzen, wozu der @var{Ausdruck} ausgewertet wird.
-
-This is useful to precisely refer to a package, as in this example:
-
-@example
-guix graph -e '(@@@@ (gnu packages commencement) gnu-make-final)'
-@end example
-
-@item --system=@var{System}
-@itemx -s @var{System}
-Display the graph for @var{system}---e.g., @code{i686-linux}.
-
-The package dependency graph is largely architecture-independent, but there
-are some architecture-dependent bits that this option allows you to
-visualize.
-@end table
-
-
-
-@node Aufruf von guix publish
-@section @command{guix publish} aufrufen
-
-@cindex @command{guix publish}
-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 (@pxref{Substitute}).
-
-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.
-
-Um Sicherheit zu gewährleisten, wird jedes Substitut signiert, so dass
-Empfänger dessen Authentizität und Integrität nachprüfen können (siehe
-@pxref{Substitute}). 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.
-
-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 (@pxref{Aufruf von guix archive}).
-
-Die allgemeine Syntax lautet:
-
-@example
-guix publish @var{Optionen}@dots{}
-@end example
-
-Wird @command{guix publish} ohne weitere Argumente ausgeführt, wird damit
-ein HTTP-Server gestartet, der auf Port 8080 lauscht:
-
-@example
-guix publish
-@end example
-
-Sobald ein Server zum Veröffentlichen autorisiert wurde (@pxref{Aufruf von guix archive}), kann der Daemon davon Substitute herunterladen:
-
-@example
-guix-daemon --substitute-urls=http://example.org:8080
-@end example
-
-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 (@pxref{Aufruf von guix weather}).
-
-Als Bonus dient @command{guix publish} auch als inhaltsadressierbarer
-Spiegelserver für Quelldateien, die in @code{origin}-Verbundsobjekten
-eingetragen sind (@pxref{»origin«-Referenz}). 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
-@pxref{Aufruf von guix hash}):
-
-@example
-http://example.org/file/hello-2.10.tar.gz/sha256/0ssi1@dots{}ndq1i
-@end example
-
-Offensichtlich funktionieren diese URLs nur mit solchen Dateien, die auch im
-Store vorliegen; in anderen Fällen werden sie 404 (»Nicht gefunden«)
-zurückliefern.
-
-@cindex Erstellungsprotokolle, Veröffentlichen
-Erstellungsprotokolle sind unter @code{/log}-URLs abrufbar:
-
-@example
-http://example.org/log/gwspk@dots{}-guile-2.2.3
-@end example
-
-@noindent
-Ist der @command{guix-daemon} so eingestellt, dass er Erstellungsprotokolle
-komprimiert abspeichert, wie es voreingestellt ist (@pxref{Aufruf des 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.
-
-The following options are available:
-
-@table @code
-@item --port=@var{Port}
-@itemx -p @var{Port}
-Auf HTTP-Anfragen auf diesem @var{Port} lauschen.
-
-@item --listen=@var{Host}
-Auf der Netzwerkschnittstelle für den angegebenen @var{Host}, also der
-angegebenen Rechneradresse, lauschen. Vorgegeben ist, Verbindungen mit jeder
-Schnittstelle zu akzeptieren.
-
-@item --user=@var{Benutzer}
-@itemx -u @var{Benutzer}
-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.
-
-@item --compression[=@var{Stufe}]
-@itemx -C [@var{Stufe}]
-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 gzip-Kompressionsstufen: 1 ist am
-schnellsten, während 9 am besten komprimiert (aber den Prozessor mehr
-auslastet). Der Vorgabewert ist 3.
-
-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.
-
-@item --cache=@var{Verzeichnis}
-@itemx -c @var{Verzeichnis}
-Archive und Metadaten (@code{.narinfo}-URLs) in das @var{Verzeichnis}
-zwischenspeichern und nur solche Archive versenden, die im Zwischenspeicher
-vorliegen.
-
-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.
-
-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.
-
-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.
-
-Wird @option{--ttl} verwendet, werden zwischengespeicherte Einträge
-automatisch gelöscht, sobald die dabei angegebene Zeit abgelaufen ist.
-
-@item --workers=@var{N}
-Wird @option{--cache} benutzt, wird die Reservierung von @var{N}
-Worker-Threads angefragt, um Archive einzulagern.
-
-@item --ttl=@var{ttl}
-@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.
-
-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.
-
-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.
-
-@item --nar-path=@var{Pfad}
-Den @var{Pfad} als Präfix für die URLs von »nar«-Dateien benutzen
-(@pxref{Aufruf von guix archive, normalized archives}).
-
-Vorgegeben ist, dass Nars unter einer URL mit
-@code{/nar/gzip/@dots{}-coreutils-8.25} angeboten werden. Mit dieser
-Befehlszeilenoption können Sie den @code{/nar}-Teil durch den angegebenen
-@var{Pfad} ersetzen.
-
-@item --public-key=@var{Datei}
-@itemx --private-key=@var{Datei}
-Die angegebenen @var{Datei}en als das Paar aus öffentlichem und privatem
-Schlüssel zum Signieren veröffentlichter Store-Objekte benutzen.
-
-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 (@pxref{Aufruf von guix archive}). Vorgegeben ist, dass @file{/etc/guix/signing-key.pub} und
-@file{/etc/guix/signing-key.sec} benutzt werden.
-
-@item --repl[=@var{Port}]
-@itemx -r [@var{Port}]
-Einen Guile-REPL-Server (@pxref{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.
-@end table
-
-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}}).
-
-Falls Sie Guix aber auf einer »Fremddistribution« laufen lassen, folgen Sie
-folgenden Anweisungen:
-
-@itemize
-@item
-Wenn Ihre Wirtsdistribution systemd als »init«-System benutzt:
-
-@example
-# ln -s ~root/.guix-profile/lib/systemd/system/guix-publish.service \
-        /etc/systemd/system/
-# systemctl start guix-publish && systemctl enable guix-publish
-@end example
-
-@item
-Wenn Ihre Wirts-Distribution als »init«-System Upstart verwendet:
-
-@example
-# ln -s ~root/.guix-profile/lib/upstart/system/guix-publish.conf /etc/init/
-# start guix-publish
-@end example
-
-@item
-Verfahren Sie andernfalls auf die gleiche Art für das »init«-System, das
-Ihre Distribution verwendet.
-@end itemize
-
-@node Aufruf von guix challenge
-@section Invoking @command{guix challenge}
-
-@cindex Reproduzierbare Erstellungen
-@cindex verifiable builds
-@cindex @command{guix challenge}
-@cindex challenge
-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.
-
-The former is obviously an important question: Before using a substitute
-server (@pxref{Substitute}), 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.
-
-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{Einführung}).  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.
-
-The command output looks like this:
-
-@smallexample
-$ guix challenge --substitute-urls="https://@value{SUBSTITUTE-SERVER} https://guix.example.org"
-updating list of substitutes from 'https://@value{SUBSTITUTE-SERVER}'... 100.0%
-updating list of substitutes from 'https://guix.example.org'... 100.0%
-/gnu/store/@dots{}-openssl-1.0.2d contents differ:
-  local hash: 0725l22r5jnzazaacncwsvp9kgf42266ayyp814v7djxs7nk963q
-  https://@value{SUBSTITUTE-SERVER}/nar/@dots{}-openssl-1.0.2d: 0725l22r5jnzazaacncwsvp9kgf42266ayyp814v7djxs7nk963q
-  https://guix.example.org/nar/@dots{}-openssl-1.0.2d: 1zy4fmaaqcnjrzzajkdn3f5gmjk754b43qkq47llbyak9z0qjyim
-/gnu/store/@dots{}-git-2.5.0 contents differ:
-  local hash: 00p3bmryhjxrhpn2gxs2fy0a15lnip05l97205pgbk5ra395hyha
-  https://@value{SUBSTITUTE-SERVER}/nar/@dots{}-git-2.5.0: 069nb85bv4d4a6slrwjdy8v1cn4cwspm3kdbmyb81d6zckj3nq9f
-  https://guix.example.org/nar/@dots{}-git-2.5.0: 0mdqa9w1p6cmli6976v4wi0sw9r4p5prkj7lzfd1877wk11c9c73
-/gnu/store/@dots{}-pius-2.1.1 contents differ:
-  local hash: 0k4v3m9z1zp8xzzizb7d8kjj72f9172xv078sq4wl73vnq9ig3ax
-  https://@value{SUBSTITUTE-SERVER}/nar/@dots{}-pius-2.1.1: 0k4v3m9z1zp8xzzizb7d8kjj72f9172xv078sq4wl73vnq9ig3ax
-  https://guix.example.org/nar/@dots{}-pius-2.1.1: 1cy25x1a4fzq5rk0pmvc8xhwyffnqz95h2bpvqsz2mpvlbccy0gs
-
-@dots{}
-
-6,406 store items were analyzed:
-  - 4,749 (74.1%) were identical
-  - 525 (8.2%) differed
-  - 1,132 (17.7%) were inconclusive
-@end smallexample
-
-@noindent
-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.
-
-@cindex non-determinism, in package builds
-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{Funktionalitäten}).  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.
-
-To find out what is wrong with this Git binary, we can do something along
-these lines (@pxref{Aufruf von guix archive}):
-
-@example
-$ wget -q -O - https://@value{SUBSTITUTE-SERVER}/nar/@dots{}-git-2.5.0 \
-   | guix archive -x /tmp/git
-$ diff -ur --no-dereference /gnu/store/@dots{}-git.2.5.0 /tmp/git
-@end example
-
-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.
-
-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.
-
-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:
-
-@example
-$ guix challenge @var{package}
-@end example
-
-@noindent
-where @var{package} is a package specification such as @code{guile@@2.0} or
-@code{glibc:debug}.
-
-Die allgemeine Syntax lautet:
-
-@example
-guix challenge @var{options} [@var{packages}@dots{}]
-@end example
-
-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.)
-
-The one option that matters is:
-
-@table @code
-
-@item --substitute-urls=@var{URLs}
-Consider @var{urls} the whitespace-separated list of substitute source URLs
-to compare to.
-
-@item --verbose
-@itemx -v
-Show details about matches (identical contents) in addition to information
-about mismatches.
-
-@end table
-
-@node Aufruf von guix copy
-@section Invoking @command{guix copy}
-
-@cindex copy, of store items, over SSH
-@cindex SSH, copy of store items
-@cindex sharing store items across machines
-@cindex transferring store items across machines
-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{Voraussetzungen}, 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}:
-
-@example
-guix copy --to=@var{user}@@@var{host} \
-          coreutils `readlink -f ~/.guix-profile`
-@end example
-
-If some of the items to be copied are already present on @var{host}, they
-are not actually sent.
-
-The command below retrieves @code{libreoffice} and @code{gimp} from
-@var{host}, assuming they are available there:
-
-@example
-guix copy --from=@var{host} libreoffice gimp
-@end example
-
-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.
-
-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{Aufruf von guix archive}, for more information about store item
-authentication.
-
-Die allgemeine Syntax lautet:
-
-@example
-guix copy [--to=@var{spec}|--from=@var{spec}] @var{items}@dots{}
-@end example
-
-You must always specify one of the following options:
-
-@table @code
-@item --to=@var{spec}
-@itemx --from=@var{spec}
-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}.
-@end table
-
-The @var{items} can be either package names, such as @code{gimp}, or store
-items, such as @file{/gnu/store/@dots{}-idutils-4.6}.
-
-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{Gemeinsame Erstellungsoptionen}).
-
-
-@node Aufruf von guix container
-@section Invoking @command{guix container}
-@cindex container
-@cindex @command{guix container}
-@quotation Anmerkung
-As of version @value{VERSION}, this tool is experimental.  The interface is
-subject to radical change in the future.
-@end quotation
-
-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{Aufruf von guix environment}) and @command{guix system container} (@pxref{Aufruf von guix system}) commands.
-
-Die allgemeine Syntax lautet:
-
-@example
-guix container @var{action} @var{options}@dots{}
-@end example
-
-@var{action} specifies the operation to perform with a container, and
-@var{options} specifies the context-specific arguments for the action.
-
-The following actions are available:
-
-@table @code
-@item exec
-Execute a command within the context of a running container.
-
-The syntax is:
-
-@example
-guix container exec @var{pid} @var{program} @var{arguments}@dots{}
-@end example
-
-@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}.
-
-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:
-
-@example
-guix container exec 9001 /run/current-system/profile/bin/bash --login
-@end example
-
-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.
-
-@end table
-
-@node Aufruf von guix weather
-@section Invoking @command{guix weather}
-
-Occasionally you're grumpy because substitutes are lacking and you end up
-building packages by yourself (@pxref{Substitute}).  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{Aufruf von guix publish}).
-
-@cindex statistics, for substitutes
-@cindex availability of substitutes
-@cindex substitute availability
-@cindex weather, substitute availability
-Here's a sample run:
-
-@example
-$ guix weather --substitute-urls=https://guix.example.org
-computing 5,872 package derivations for x86_64-linux...
-looking for 6,128 store items on https://guix.example.org..
-updating list of substitutes from 'https://guix.example.org'... 100.0%
-https://guix.example.org
-  43.4% substitutes available (2,658 out of 6,128)
-  7,032.5 MiB of nars (compressed)
-  19,824.2 MiB on disk (uncompressed)
-  0.030 seconds per request (182.9 seconds in total)
-  33.5 requests per second
-
-  9.8% (342 out of 3,470) of the missing items are queued
-  867 queued builds
-      x86_64-linux: 518 (59.7%)
-      i686-linux: 221 (25.5%)
-      aarch64-linux: 128 (14.8%)
-  build rate: 23.41 builds per hour
-      x86_64-linux: 11.16 builds per hour
-      i686-linux: 6.03 builds per hour
-      aarch64-linux: 6.41 builds per hour
-@end example
-
-@cindex continuous integration, statistics
-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).
-
-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.
-
-Among other things, it is possible to query specific system types and
-specific package sets.  The available options are listed below.
-
-@table @code
-@item --substitute-urls=@var{URLs}
-@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.
-
-@item --system=@var{System}
-@itemx -s @var{System}
-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.
-
-@item --manifest=@var{Datei}
-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{Aufruf von guix package}).
-
-@item --coverage[=@var{count}]
-@itemx -c [@var{count}]
-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:
-
-@example
-$ guix weather --substitute-urls=https://ci.guix.de.info -c 10
-computing 8,983 package derivations for x86_64-linux...
-looking for 9,343 store items on https://ci.guix.de.info...
-updating substitutes from 'https://ci.guix.de.info'... 100.0%
-https://ci.guix.de.info
-  64.7% substitutes available (6,047 out of 9,343)
-@dots{}
-2502 packages are missing from 'https://ci.guix.de.info' for 'x86_64-linux', among which:
-    58  kcoreaddons@@5.49.0      /gnu/store/@dots{}-kcoreaddons-5.49.0
-    46  qgpgme@@1.11.1           /gnu/store/@dots{}-qgpgme-1.11.1
-    37  perl-http-cookiejar@@0.008  /gnu/store/@dots{}-perl-http-cookiejar-0.008
-    @dots{}
-@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.de.info};
-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 fail to build.
-@end table
-
-@node Aufruf von guix processes
-@section @command{guix processes} aufrufen
-
-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:
-
-@example
-$ sudo guix processes
-SessionPID: 19002
-ClientPID: 19090
-ClientCommand: guix environment --ad-hoc python
-
-SessionPID: 19402
-ClientPID: 19367
-ClientCommand: guix publish -u guix-publish -p 3000 -C 9 @dots{}
-
-SessionPID: 19444
-ClientPID: 19419
-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
-@end example
-
-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.
-
-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{Auslagern des Daemons einrichten}).
-
-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:
-
-@example
-$ sudo guix processes | \
-    recsel -p ClientPID,ClientCommand -e 'LockHeld ~ "perl"'
-ClientPID: 19419
-ClientCommand: cuirass --cache-directory /var/cache/cuirass @dots{}
-@end example
-
-
-@node Systemkonfiguration
-@chapter Systemkonfiguration
-
-@cindex Systemkonfiguration
-Die Guix-Systemdistribution 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.
-
-@c Yes, we're talking of Puppet, Chef, & co. here.  ↑
-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 (@pxref{Funktionalitäten}). 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.
-
-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.
-
-@menu
-* Das Konfigurationssystem nutzen::  Ihr GNU-System anpassen.
-* »operating-system«-Referenz::  Details der Betriebssystem-Deklarationen.
-* Dateisysteme::             Die Dateisystemeinbindungen konfigurieren.
-* Zugeordnete Geräte::      Näheres zu blockorientierten Speichermedien.
-* Benutzerkonten::           Benutzerkonten festlegen.
-* Locales::                  Sprache und kulturelle Konventionen.
-* Dienste::                  Systemdienste festlegen.
-* Setuid-Programme::         Mit Administratorrechten startende Programme.
-* X.509-Zertifikate::        HTTPS-Server authentifizieren.
-* Name Service Switch::      Den Name Service Switch von libc konfigurieren.
-* Initiale RAM-Disk::        Linux-libre hochfahren.
-* Bootloader-Konfiguration::  Den Bootloader konfigurieren.
-* Aufruf von guix system::   Instanziierung einer Systemkonfiguration.
-* Running Guix in a VM::     How to run Guix System in a virtual machine.
-* Dienste definieren::       Neue Dienstdefinitionen hinzufügen.
-@end menu
-
-@node Das Konfigurationssystem nutzen
-@section Das Konfigurationssystem nutzen
-
-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 (@pxref{Aufruf von 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:
-
-@findex operating-system
-@lisp
-@include os-config-bare-bones.texi
-@end lisp
-
-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.
-
-Im Folgenden werden die Effekte von einigen der wichtigsten Feldern
-erläutert (@pxref{»operating-system«-Referenz}, für Details zu allen
-verfügbaren Feldern), dann wird beschrieben, wie man das Betriebssystem mit
-@command{guix system} @dfn{instanziieren} kann.
-
-@unnumberedsubsec Bootloader
-
-@cindex Legacy-Boot, auf Intel-Maschinen
-@cindex BIOS-Boot, auf Intel-Maschinen
-@cindex UEFI-Boot
-@cindex EFI-Boot
-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:
-
-@example
-(bootloader-configuration
-  (bootloader grub-efi-bootloader)
-  (target "/boot/efi"))
-@end example
-
-Siehe den Abschnitt @xref{Bootloader-Konfiguration} für weitere
-Informationen zu den verfügbaren Konfigurationsoptionen.
-
-@unnumberedsubsec global sichtbare Pakete
-
-@vindex %base-packages
-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 (@pxref{Aufruf von guix package}). Die Variable
-@var{%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 (@pxref{Paketmodule}). Die
-Syntax @code{(list package output)} kann benutzt werden, um eine bestimmte
-Ausgabe eines Pakets auszuwählen:
-
-@lisp
-(use-modules (gnu packages))
-(use-modules (gnu packages dns))
-
-(operating-system
-  ;; ...
-  (packages (cons (list bind "utils")
-                  %base-packages)))
-@end lisp
-
-@findex specification->package
-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:
-
-@lisp
-(use-modules (gnu packages))
-
-(operating-system
-  ;; ...
-  (packages (append (map specification->package
-                         '("tcpdump" "htop" "gnupg@@2.0"))
-                    %base-packages)))
-@end lisp
-
-@unnumberedsubsec Systemdienste
-
-@cindex services
-@vindex %base-services
-The @code{services} field lists @dfn{system services} to be made available
-when the system starts (@pxref{Dienste}).  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{Netzwerkdienste, @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{Dienste definieren}).
-
-@cindex Anpassung, von Diensten
-@findex modify-services
-Gelegentlich werden Sie die Basis-Dienste nicht einfach so, wie sie sind,
-benutzen, sondern anpassen wollen. Benutzen Sie @code{modify-services}
-(@pxref{Service-Referenz, @code{modify-services}}), um die Liste der
-Basis-Dienste zu modifizieren.
-
-Wenn Sie zum Beispiel @code{guix-daemon} und Mingetty (das Programm, womit
-Sie sich auf der Konsole anmelden) in der @var{%base-services}-Liste
-modifizieren möchten (@pxref{Basisdienste, @code{%base-services}}),
-schreiben Sie das Folgende in Ihre Betriebssystemdeklaration:
-
-@lisp
-(define %my-services
-  ;; Meine ganz eigene Liste von Diensten.
-  (modify-services %base-services
-    (guix-service-type config =>
-                       (guix-configuration
-                        (inherit config)
-                        (use-substitutes? #f)
-                        (extra-options '("--gc-keep-derivations"))))
-    (mingetty-service-type config =>
-                           (mingetty-configuration
-                            (inherit config)))))
-
-(operating-system
-  ;; @dots{}
-  (services %my-services))
-@end lisp
-
-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
-@var{%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.
-
-@cindex verschlüsselte Partition
-Die Konfiguration für typische »Schreibtisch«-Nutzung zum Arbeiten, mit
-einer verschlüsselten Partition für das Wurzeldateisystem, einem
-X11-Display-Server, 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:
-
-@lisp
-@include os-config-desktop.texi
-@end lisp
-
-Ein grafisches System mit einer Auswahl an leichtgewichtigen
-Fenster-Managern statt voll ausgestatteten Arbeitsumgebungen würde so
-aussehen:
-
-@lisp
-@include os-config-lightweight-desktop.texi
-@end lisp
-
-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.
-
-Im Abschnitt @xref{Desktop-Dienste} finden Sie eine genaue Liste der unter
-@var{%desktop-services} angebotenen Dienste. Der Abschnitt @xref{X.509-Zertifikate} hat Hintergrundinformationen über das @code{nss-certs}-Paket,
-das hier benutzt wird.
-
-Beachten Sie, dass @var{%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
-(@pxref{SRFI-1 Filtering and Partitioning,,, guile, GNU Guile Reference
-Manual}). Beispielsweise liefert der folgende Ausdruck eine Liste mit allen
-Diensten von @var{%desktop-services} außer dem Avahi-Dienst.
-
-@example
-(remove (lambda (service)
-          (eq? (service-kind service) avahi-service-type))
-        %desktop-services)
-@end example
-
-@unnumberedsubsec Das System instanziieren
-
-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 (@pxref{Aufruf von guix system}).
-
-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.
-
-@cindex Zurücksetzen, des Betriebssystems
-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 Booten 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.
-
-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 (@pxref{Aufruf von guix system}).
-
-@unnumberedsubsec Die Programmierschnittstelle
-
-Auf der Ebene von Scheme wird der Großteil der
-@code{operating-system}-Deklaration mit der folgenden monadischen Prozedur
-instanziiert (@pxref{Die Store-Monade}):
-
-@deffn {Monadische Prozedur} operating-system-derivation os
-Liefert eine Ableitung, mit der ein @code{operating-system}-Objekt @var{os}
-erstellt wird (@pxref{Ableitungen}).
-
-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.
-@end deffn
-
-This procedure is provided by the @code{(gnu system)} module.  Along with
-@code{(gnu services)} (@pxref{Dienste}), this module contains the guts of
-Guix System.  Make sure to visit it!
-
-
-@node »operating-system«-Referenz
-@section @code{operating-system}-Referenz
-
-Dieser Abschnitt fasst alle Optionen zusammen, die für
-@code{operating-system}-Deklarationen zur Verfügung stehen (@pxref{Das Konfigurationssystem nutzen}).
-
-@deftp {Datentyp} operating-system
-Der die Betriebssystemkonfiguration repräsentierende Datentyp. Damit meinen
-wir die globale Konfiguration des Systems und nicht die, die sich nur auf
-einzelne Nutzer bezieht (@pxref{Das Konfigurationssystem nutzen}).
-
-@table @asis
-@item @code{kernel} (Vorgabe: @var{linux-libre})
-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.}.
-
-@item @code{kernel-arguments} (Vorgabe: @code{'()})
-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")}.
-
-@item @code{bootloader}
-Das Konfigurationsobjekt für den Bootloader, mit dem das System gestartet
-wird. Siehe @xref{Bootloader-Konfiguration}.
-
-@item @code{initrd-modules} (Vorgabe: @code{%base-initrd-modules})
-@cindex initrd
-@cindex initiale RAM-Disk
-Die Liste der Linux-Kernel-Module, die in der initialen RAM-Disk zur
-Verfügung stehen sollen @xref{Initiale RAM-Disk}.
-
-@item @code{initrd} (Vorgabe: @code{base-initrd})
-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 @xref{Initiale RAM-Disk}.
-
-@item @code{firmware} (Vorgabe: @var{%base-firmware})
-@cindex Firmware
-Eine Liste der Firmware-Pakete, die vom Betriebssystem-Kernel geladen werden
-können.
-
-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 @xref{Hardware-Überlegungen}, für mehr Informationen zu unterstützter Hardware.
-
-@item @code{host-name}
-Der Hostname
-
-@item @code{hosts-file}
-@cindex hosts-Datei
-Ein dateiartiges Objekt (@pxref{G-Ausdrücke, file-like objects}), das für
-@file{/etc/hosts} benutzt werden soll (@pxref{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}.
-
-@item @code{mapped-devices} (Vorgabe: @code{'()})
-Eine Liste zugeordneter Geräte (»mapped devices«). Siehe @xref{Zugeordnete Geräte}.
-
-@item @code{file-systems}
-Eine Liste von Dateisystemen. Siehe @xref{Dateisysteme}.
-
-@item @code{swap-devices} (Vorgabe: @code{'()})
-@cindex Swap-Geräte
-Eine Liste von Zeichenketten, die Geräte identifizieren oder als
-»Swap-Speicher« genutzte Dateien identifizieren (@pxref{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
-@xref{Zugeordnete Geräte} und @ref{Dateisysteme}.
-
-@item @code{users} (Vorgabe: @code{%base-user-accounts})
-@itemx @code{groups} (Vorgabe: @var{%base-groups})
-Liste der Benutzerkonten und Benutzergruppen. Siehe @xref{Benutzerkonten}.
-
-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.
-
-@item @code{skeletons} (Vorgabe: @code{(default-skeletons)})
-Eine Liste von Tupeln aus je einem Ziel-Dateinamen und einem dateiähnlichen
-Objekt (@pxref{G-Ausdrücke, file-like objects}). Diese Objekte werden als
-Skeleton-Dateien im Persönlichen Verzeichnis (»Home«-Verzeichnis) jedes
-neuen Benutzerkontos angelegt.
-
-Ein gültiger Wert könnte zum Beispiel so aussehen:
-
-@example
-`((".bashrc" ,(plain-file "bashrc" "echo Hallo\n"))
-  (".guile" ,(plain-file "guile"
-                         "(use-modules (ice-9 readline))
-                          (activate-readline)")))
-@end example
-
-@item @code{issue} (Vorgabe: @var{%default-issue})
-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.
-
-@item @code{packages} (Vorgabe: @var{%base-packages})
-Die Menge der Pakete, die ins globale Profil installiert werden sollen,
-welches unter @file{/run/current-system/profile} zu finden ist.
-
-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
-(@pxref{Aufruf von guix package}).
-
-@item @code{timezone}
-Eine Zeichenkette, die die Zeitzone bezeichnet, wie
-z.B. @code{"Europe/Berlin"}.
-
-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.
-
-@item @code{locale} (Vorgabe: @code{"en_US.utf8"})
-Der Name der als Voreinstellung zu verwendenden Locale (@pxref{Locale
-Names,,, libc, The GNU C Library Reference Manual}). Siehe @xref{Locales}
-für weitere Informationen.
-
-@item @code{locale-definitions} (Vorgabe: @var{%default-locale-definitions})
-Die Liste der Locale-Definitionen, die kompiliert werden sollen und dann im
-laufenden System benutzt werden können. Siehe @xref{Locales}.
-
-@item @code{locale-libcs} (Vorgabe: @code{(list @var{glibc})})
-Die Liste der GNU-libc-Pakete, deren Locale-Daten und -Werkzeuge zum
-Erzeugen der Locale-Definitionen verwendet werden sollen. Siehe
-@xref{Locales} für eine Erläuterung der Kompatibilitätsauswirkungen,
-deretwegen man diese Option benutzen wollen könnte.
-
-@item @code{name-service-switch} (Vorgabe: @var{%default-nss})
-Die Konfiguration des Name Service Switch (NSS) der libc — ein
-@code{<name-service-switch>}-Objekt. Siehe @xref{Name Service Switch}, für
-Details.
-
-@item @code{services} (Vorgabe: @var{%base-services})
-Eine Liste von »service«-Objekten, die die Systemdienste
-repräsentieren. Siehe @xref{Dienste}.
-
-@item @code{pam-services} (Vorgabe: @code{(base-pam-services)})
-@cindex PAM
-@cindex Pluggable Authentication Modules
-@c FIXME: Add xref to PAM services section.
-Dienste für »@dfn{Pluggable Authentication Modules}« (PAM) von Linux.
-
-@item @code{setuid-programs} (Vorgabe: @var{%setuid-programs})
-Eine Liste von Zeichenketten liefernden G-Ausdrücken, die setuid-Programme
-bezeichnen. Siehe @xref{Setuid-Programme}.
-
-@item @code{sudoers-file} (Vorgabe: @var{%sudoers-specification})
-@cindex sudoers-Datei
-Der Inhalt der Datei @file{/etc/sudoers} als ein dateiähnliches Objekt
-(@pxref{G-Ausdrücke, @code{local-file} und @code{plain-file}}).
-
-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.
-
-@end table
-@end deftp
-
-@node Dateisysteme
-@section Dateisysteme
-
-Die Liste der Dateisysteme, die eingebunden werden sollen, steht im
-@code{file-systems}-Feld der Betriebssystemdeklaration (@pxref{Das Konfigurationssystem nutzen}). Jedes Dateisystem wird mit der
-@code{file-system}-Form deklariert, etwa so:
-
-@example
-(file-system
-  (mount-point "/home")
-  (device "/dev/sda3")
-  (type "ext4"))
-@end example
-
-Wie immer müssen manche Felder angegeben werden — die, die im Beispiel oben
-stehen —, während andere optional sind. Die Felder werden nun beschrieben.
-
-@deftp {Datentyp} file-system
-Objekte dieses Typs repräsentieren einzubindende Dateisysteme. Sie weisen
-folgende Komponenten auf:
-
-@table @asis
-@item @code{type}
-Eine Zeichenkette, die den Typ des Dateisystems spezifiziert,
-z.B. @code{"ext4"}.
-
-@item @code{mount-point}
-Der Einhängepunkt, d.h. der Pfad, an dem das Dateisystem eingebunden werden
-soll.
-
-@item @code{device}
-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.}.
-
-@findex file-system-label
-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:
-
-@example
-(file-system
-  (mount-point "/home")
-  (type "ext4")
-  (device (file-system-label "my-home")))
-@end example
-
-@findex uuid
-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:
-
-@example
-(file-system
-  (mount-point "/home")
-  (type "ext4")
-  (device (uuid "4dab5feb-d176-45de-b287-9b0a6e4c01cb")))
-@end example
-
-Wenn die Quelle eines Dateisystems ein zugeordnetes Gerät (@pxref{Zugeordnete Geräte}) 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.
-
-@item @code{flags} (Vorgabe: @code{'()})
-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) und @code{no-exec}
-(Programmausführungen verweigern).
-
-@item @code{options} (Vorgabe: @code{#f})
-Entweder @code{#f} oder eine Zeichenkette mit Einbinde-Optionen (»mount
-options«).
-
-@item @code{mount?} (Vorgabe: @code{#t})
-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.
-
-@item @code{needed-for-boot?} (Vorgabe: @code{#f})
-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.
-
-@item @code{check?} (Vorgabe: @code{#t})
-Dieser boolesche Wert sagt aus, ob das Dateisystem vor dem Einbinden auf
-Fehler hin geprüft werden soll.
-
-@item @code{create-mount-point?} (Vorgabe: @code{#f})
-Steht dies auf wahr, wird der Einhängepunkt vor dem Einbinden erstellt, wenn
-er noch nicht existiert.
-
-@item @code{dependencies} (Vorgabe: @code{'()})
-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).
-
-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}.
-
-Ein weiteres Beispiel ist ein Dateisystem, was von einem zugeordneten Gerät
-abhängt, zum Beispiel zur Verschlüsselung einer Partition (@pxref{Zugeordnete Geräte}).
-@end table
-@end deftp
-
-Das Modul @code{(gnu system file-systems)} exportiert die folgenden
-nützlichen Variablen.
-
-@defvr {Scheme-Variable} %base-file-systems
-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.
-@end defvr
-
-@defvr {Scheme-Variable} %pseudo-terminal-file-system
-Das als @file{/dev/pts} einzubindende Dateisystem. Es unterstützt über
-@code{openpty} und ähnliche Funktionen erstellte @dfn{Pseudo-Terminals}
-(@pxref{Pseudo-Terminals,,, libc, The GNU C Library Reference
-Manual}). Pseudo-Terminals werden von Terminal-Emulatoren wie
-@command{xterm} benutzt.
-@end defvr
-
-@defvr {Scheme-Variable} %shared-memory-file-system
-Dieses Dateisystem wird als @file{/dev/shm} eingebunden, um Speicher
-zwischen Prozessen teilen zu können (@pxref{Memory-mapped I/O,
-@code{shm_open},, libc, The GNU C Library Reference Manual}).
-@end defvr
-
-@defvr {Scheme-Variable} %immutable-store
-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.
-
-Der Daemon kann weiterhin in den Store schreiben, indem er ihn selbst mit
-Schreibrechten in seinem eigenen »Namensraum« einbindet.
-@end defvr
-
-@defvr {Scheme-Variable} %binary-format-file-system
-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.
-@end defvr
-
-@defvr {Scheme-Variable} %fuse-control-file-system
-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.
-@end defvr
-
-@node Zugeordnete Geräte
-@section Zugeordnete Geräte
-
-@cindex Gerätezuordnung
-@cindex zugeordnete Geräte
-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 (@pxref{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«.
-
-Zugeordnete Geräte werden mittels einer @code{mapped-device}-Form
-deklariert, die wie folgt definiert ist; Beispiele folgen weiter unten.
-
-@deftp {Datentyp} mapped-device
-Objekte dieses Typs repräsentieren Gerätezuordnungen, die gemacht werden,
-wenn das System hochfährt.
-
-@table @code
-@item source
-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.
-
-@item target
-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.
-
-@item type
-Dies muss ein @code{mapped-device-kind}-Objekt sein, das angibt, wie die
-Quelle @var{source} dem Ziel @var{target} zugeordnet wird.
-@end table
-@end deftp
-
-@defvr {Scheme-Variable} luks-device-mapping
-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.
-@end defvr
-
-@defvr {Scheme-Variable} raid-device-mapping
-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.
-@end defvr
-
-@cindex Laufwerksverschlüsselung
-@cindex LUKS
-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 (@pxref{Dateisysteme}).
-
-@example
-(mapped-device
-  (source "/dev/sda3")
-  (target "home")
-  (type luks-device-mapping))
-@end example
-
-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:
-
-@example
-cryptsetup luksUUID /dev/sda3
-@end example
-
-und wie folgt benutzen:
-
-@example
-(mapped-device
-  (source (uuid "cb67fc72-0d54-4c88-9d4b-b225f30b0f44"))
-  (target "home")
-  (type luks-device-mapping))
-@end example
-
-@cindex Swap-Verschlüsselung
-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
-@xref{Vor der Installation,,Disk Partitioning}.
-
-Ein RAID-Gerät als Verbund der Partitionen @file{/dev/sda1} und
-@file{/dev/sdb1} kann wie folgt deklariert werden:
-
-@example
-(mapped-device
-  (source (list "/dev/sda1" "/dev/sdb1"))
-  (target "/dev/md0")
-  (type raid-device-mapping))
-@end example
-
-Das Gerät @file{/dev/md0} kann als @code{device} in einer
-@code{file-system}-Deklaration dienen (@pxref{Dateisysteme}). 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.
-
-
-@node Benutzerkonten
-@section Benutzerkonten
-
-@cindex Benutzer
-@cindex Konten
-@cindex Benutzerkonten
-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:
-
-@example
-(user-account
-  (name "alice")
-  (group "users")
-  (supplementary-groups '("wheel"   ;zur sudo-Nutzung usw. berechtigen
-                          "audio"   ;Soundkarte
-                          "video"   ;Videogeräte wie Webcams
-                          "cdrom")) ;die gute alte CD-ROM
-  (comment "Bobs Schwester")
-  (home-directory "/home/alice"))
-@end example
-
-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.
-
-@deftp {Datentyp} user-account
-Objekte dieses Typs repräsentieren Benutzerkonten. Darin können folgende
-Komponenten aufgeführt werden:
-
-@table @asis
-@item @code{name}
-Der Name des Benutzerkontos.
-
-@item @code{group}
-@cindex Gruppen
-Dies ist der Name (als Zeichenkette) oder die Bezeichnung (als Zahl) der
-Benutzergruppe, zu der dieses Konto gehört.
-
-@item @code{supplementary-groups} (Vorgabe: @code{'()})
-Dies kann optional als Liste von Gruppennamen angegeben werden, zu denen
-dieses Konto auch gehört.
-
-@item @code{uid} (Vorgabe: @code{#f})
-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.
-
-@item @code{comment} (Vorgabe: @code{""})
-Ein Kommentar zu dem Konto, wie etwa der vollständige Name des
-Kontoinhabers.
-
-@item @code{home-directory}
-Der Name des Persönlichen Verzeichnisses (»Home«-Verzeichnis) für dieses
-Konto.
-
-@item @code{create-home-directory?} (Vorgabe: @code{#t})
-Zeigt an, ob das Persönliche Verzeichnis für das Konto automatisch erstellt
-werden soll, falls es noch nicht existiert.
-
-@item @code{shell} (Vorgabe: Bash)
-Ein G-Ausdruck, der den Dateinamen des Programms angibt, das dem Benutzer
-als Shell dienen soll (@pxref{G-Ausdrücke}).
-
-@item @code{system?} (Vorgabe: @code{#f})
-Dieser boolesche Wert zeigt an, ob das Konto ein »System«-Benutzerkonto
-ist. Systemkonten werden manchmal anders behandelt, zum Beispiel werden sie
-auf graphischen Anmeldebildschirmen nicht aufgeführt.
-
-@anchor{user-account-password}
-@cindex password, for user accounts
-@item @code{password} (Vorgabe: @code{#f})
-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.
-
-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:
-
-@example
-(user-account
-  (name "charlie")
-  (home-directory "/home/charlie")
-  (group "users")
-
-  ;; Specify a SHA-512-hashed initial password.
-  (password (crypt "InitialPassword!" "$6$abc")))
-@end example
-
-@quotation Anmerkung
-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.
-@end quotation
-
-@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.
-
-@end table
-@end deftp
-
-@cindex Gruppen
-Benutzergruppen-Deklarationen sind noch einfacher aufgebaut:
-
-@example
-(user-group (name "students"))
-@end example
-
-@deftp {Datentyp} user-group
-Dieser Typ gibt, nun ja, eine Benutzergruppe an. Es gibt darin nur ein paar
-Felder:
-
-@table @asis
-@item @code{name}
-Der Name der Gruppe.
-
-@item @code{id} (Vorgabe: @code{#f})
-Der Gruppenbezeichner (eine Zahl). Wird er als @code{#f} angegeben, wird
-automatisch eine neue Zahl reserviert, wenn die Gruppe erstellt wird.
-
-@item @code{system?} (Vorgabe: @code{#f})
-Dieser boolesche Wert gibt an, ob es sich um eine »System«-Gruppe
-handelt. Systemgruppen sind solche mit einer kleinen Zahl als Bezeichner.
-
-@item @code{password} (Vorgabe: @code{#f})
-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.
-
-@end table
-@end deftp
-
-Um Ihnen das Leben zu erleichtern, gibt es eine Variable, worin alle
-grundlegenden Benutzergruppen aufgeführt sind, die man erwarten könnte:
-
-@defvr {Scheme-Variable} %base-groups
-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«.
-@end defvr
-
-@defvr {Scheme-Variable} %base-user-accounts
-Diese Liste enthält Basis-Systembenutzerkonten, von denen Programme erwarten
-können, dass sie auf einem GNU/Linux-System existieren, wie das Konto
-»nobody«.
-
-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.
-@end defvr
-
-@node Locales
-@section Locales
-
-@cindex Locale
-Eine @dfn{Locale} legt die kulturellen Konventionen einer bestimmten Sprache
-und Region auf der Welt fest (@pxref{Locales,,, libc, The GNU C Library
-Reference Manual}). Jede Locale hat einen Namen, der typischerweise von der
-Form @code{@var{Sprache}_@var{Territorium}.@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.
-
-@cindex Locale-Definition
-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 (@pxref{»operating-system«-Referenz, @code{locale}}).
-
-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.
-
-Um zum Beispiel die nordfriesische Locale für Deutschland hinzuzufügen,
-könnte der Wert des Feldes wie folgt aussehen:
-
-@example
-(cons (locale-definition
-        (name "fy_DE.utf8") (source "fy_DE"))
-      %default-locale-definitions)
-@end example
-
-Um Platz zu sparen, könnte man auch wollen, dass @code{locale-definitions}
-nur die tatsächlich benutzen Locales aufführt, wie etwa:
-
-@example
-(list (locale-definition
-        (name "ja_JP.eucjp") (source "ja_JP")
-        (charset "EUC-JP")))
-@end example
-
-@vindex LOCPATH
-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}
-(@pxref{locales-and-locpath, @code{LOCPATH} und Locale-Pakete}).
-
-Die @code{locale-definition}-Form wird vom Modul @code{(gnu system locale)}
-zur Verfügung gestellt.  Details folgen unten.
-
-@deftp {Datentyp} locale-definition
-Dies ist der Datentyp einer Locale-Definition.
-
-@table @asis
-
-@item @code{name}
-Der Name der Locale. Siehe @xref{Locale Names,,, libc, The GNU C Library
-Reference Manual} für mehr Informationen zu Locale-Namen.
-
-@item @code{source}
-Der Name der Quelle der Locale. Typischerweise ist das der Teil aus
-@code{@var{Sprache}_@var{Territorium}} des Locale-Namens.
-
-@item @code{charset} (Vorgabe: @code{"UTF-8"})
-Der »Zeichensatz« oder das »Code set«, d.h. die Kodierung dieser Locale,
-@uref{http://www.iana.org/assignments/character-sets, wie die IANA sie
-definiert}.
-
-@end table
-@end deftp
-
-@defvr {Scheme-Variable} %default-locale-definitions
-Eine Liste häufig benutzter UTF-8-Locales, die als Vorgabewert des
-@code{locale-definitions}-Feldes in @code{operating-system}-Deklarationen
-benutzt wird.
-
-@cindex Locale-Name
-@cindex Normalisiertes Codeset in Locale-Namen
-Diese Locale-Definitionen benutzen das @dfn{normalisierte Codeset} für den
-Teil des Namens, der nach dem Punkt steht (@pxref{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.
-@end defvr
-
-@subsection Kompatibilität der Locale-Daten
-
-@cindex Inkompatibilität, von Locale-Daten
-@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
-(@pxref{»operating-system«-Referenz}). »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.
-
-@c See <https://sourceware.org/ml/libc-alpha/2015-09/msg00575.html>
-@c and <https://lists.gnu.org/archive/html/guix-devel/2015-08/msg00737.html>.
-Zum Beispiel kann ein mit der 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 gegen 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.
-
-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.
-
-Glücklicherweise können »unprivilegierte« Nutzer ohne zusätzliche
-Berechtigungen dann zumindest ihre eigenen Locale-Daten installieren und
-@var{GUIX_LOCPATH} entsprechend definieren (@pxref{locales-and-locpath,
-@code{GUIX_LOCPATH} und Locale-Pakete}).
-
-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:
-
-@example
-(use-package-modules base)
-
-(operating-system
-  ;; @dots{}
-  (locale-libcs (list glibc-2.21 (canonical-package glibc))))
-@end example
-
-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.
-
-
-@node Dienste
-@section Dienste
-
-@cindex Systemdienste
-Ein wichtiger Bestandteil des Schreibens einer
-@code{operating-system}-Deklaration ist das Auflisten der
-@dfn{Systemdienste} und ihrer Konfiguration (@pxref{Das Konfigurationssystem nutzen}). 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.
-
-Guix has a broad definition of ``service'' (@pxref{Dienstkompositionen}),
-but many services are managed by the GNU@tie{}Shepherd (@pxref{Shepherd-Dienste}).  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:
-
-@example
-# herd status
-@end example
-
-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:
-
-@example
-# herd doc nscd
-Run libc's name service cache daemon (nscd).
-
-# herd doc nscd action invalidate
-invalidate: Invalidate the given cache--e.g., 'hosts' for host name lookups.
-@end example
-
-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-Display-Server neu
-gestartet werden:
-
-@example
-# herd stop nscd
-Service nscd has been stopped.
-# herd restart xorg-server
-Service xorg-server has been stopped.
-Service xorg-server has been started.
-@end example
-
-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«)
-
-@menu
-* Basisdienste::             Essenzielle Systemdienste.
-* Geplante Auftragsausführung::  Der mcron-Dienst.
-* Log-Rotation::             Der rottlog-Dienst.
-* Netzwerkdienste::          Netzwerkeinrichtung, SSH-Daemon etc.
-* X Window::                 Grafische Anzeige.
-* Druckdienste::             Unterstützung für lokale und entfernte 
-                               Drucker.
-* Desktop-Dienste::          D-Bus- und Desktop-Dienste.
-* Tondienste::               Dienste für ALSA und Pulseaudio.
-* Datenbankdienste::         SQL-Datenbanken, Schlüssel-Wert-Speicher etc.
-* Mail-Dienste::             IMAP, POP3, SMTP und so weiter.
-* Kurznachrichtendienste::   Dienste für Kurznachrichten.
-* Telefondienste::           Telefoniedienste.
-* Überwachungsdienste::     Dienste zur Systemüberwachung.
-* Kerberos-Dienste::         Kerberos-Dienste.
-* Web-Dienste::              Web-Server.
-* Zertifikatsdienste::       TLS-Zertifikate via Let’s Encrypt.
-* DNS-Dienste::              DNS-Daemons.
-* VPN-Dienste::              VPN-Daemons.
-* Network File System::      Dienste mit Bezug zum Netzwerkdateisystem.
-* Kontinuierliche Integration::  Der Cuirass-Dienst.
-* Dienste zur Stromverbrauchsverwaltung::  Den Akku schonen.
-* Audio-Dienste::            Der MPD.
-* Virtualisierungsdienste::  Dienste für virtuelle Maschinen.
-* Versionskontrolldienste::  Entfernten Zugang zu Git-Repositorys bieten.
-* Spieldienste::             Spielserver.
-* Verschiedene Dienste::     Andere Dienste.
-@end menu
-
-@node Basisdienste
-@subsection Basisdienste
-
-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.
-
-@defvr {Scheme-Variable} %base-services
-Diese Variable enthält eine Liste von Basis-Diensten, die man auf einem
-System vorzufinden erwartet (siehe @pxref{Diensttypen und Dienste} 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.
-
-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 @var{%base-services}-Liste
-anhängen, wie hier gezeigt:
-
-@example
-(append (list (service avahi-service-type)
-              (service openssh-service-type))
-        %base-services)
-@end example
-@end defvr
-
-@defvr {Scheme-Variable} special-files-service-type
-Dieser Dienst richtet »besondere Dateien« wie @file{/bin/sh} ein; eine
-Instanz des Dienstes ist Teil der @code{%base-services}.
-
-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:
-
-@cindex @file{/bin/sh}
-@cindex @file{sh}, in @file{/bin}
-@example
-`(("/bin/sh" ,(file-append @var{bash} "/bin/sh")))
-@end example
-
-@cindex @file{/usr/bin/env}
-@cindex @file{env}, in @file{/usr/bin}
-Wenn Sie zum Beispiel auch @code{/usr/bin/env} zu Ihrem System hinzufügen
-möchten, können Sie den Wert ändern auf:
-
-@example
-`(("/bin/sh" ,(file-append @var{bash} "/bin/sh"))
-  ("/usr/bin/env" ,(file-append @var{coreutils} "/bin/env")))
-@end example
-
-Da dieser Dienst Teil der @code{%base-services} ist, können Sie
-@code{modify-services} benutzen, um die Liste besonderer Dateien abzuändern
-(@pxref{Service-Referenz, @code{modify-services}}). Die leichte
-Alternative, um eine besondere Datei hinzuzufügen, ist über die Prozedur
-@code{extra-special-file} (siehe unten).
-@end defvr
-
-@deffn {Scheme-Prozedur} extra-special-file @var{Datei} @var{Ziel}
-Das @var{Ziel} als »besondere Datei« @var{Datei} verwenden.
-
-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}:
-
-@example
-(extra-special-file "/usr/bin/env"
-                    (file-append coreutils "/bin/env"))
-@end example
-@end deffn
-
-@deffn {Scheme-Prozedur} host-name-service @var{Name}
-Liefert einen Dienst, der den Rechnernamen (den »Host«-Namen des Rechners)
-als @var{Name} festlegt.
-@end deffn
-
-@deffn {Scheme-Prozedur} login-service @var{Konfiguration}
-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 (englisch »Message of the Day«) festlegt.
-@end deffn
-
-@deftp {Datentyp} login-configuration
-Dies ist der Datentyp, der die Anmeldekonfiguration repräsentiert.
-
-@table @asis
-
-@item @code{motd}
-@cindex Message of the Day
-Ein dateiartiges Objekt, das die »Message of the Day« enthält.
-
-@item @code{allow-empty-passwords?} (Vorgabe: @code{#t})
-Leere Passwörter standardmäßig zulassen, damit sich neue Anwender anmelden
-können, direkt nachdem das Benutzerkonto »root« für den Administrator
-angelegt wurde.
-
-@end table
-@end deftp
-
-@deffn {Scheme-Prozedur} mingetty-service @var{Konfiguration}
-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.
-@end deffn
-
-@deftp {Datentyp} mingetty-configuration
-Dieser Datentyp repräsentiert die Konfiguration von Mingetty, der
-vorgegebenen Implementierung zur Anmeldung auf einer virtuellen Konsole.
-
-@table @asis
-
-@item @code{tty}
-Der Name der Konsole, auf der diese Mingetty-Instanz läuft —
-z.B. @code{"tty1"}.
-
-@item @code{auto-login} (Vorgabe: @code{#f})
-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.
-
-@item @code{login-program} (Vorgabe: @code{#f})
-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.
-
-@item @code{login-pause?} (Vorgabe: @code{#f})
-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.
-
-@item @code{mingetty} (Vorgabe: @var{mingetty})
-Welches Mingetty-Paket benutzt werden soll.
-
-@end table
-@end deftp
-
-@deffn {Scheme-Prozedur} agetty-service @var{Konfiguration}
-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.
-@end deffn
-
-@deftp {Datentyp} agetty-configuration
-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.
-
-@table @asis
-
-@item @code{tty}
-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.
-
-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.
-
-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.
-
-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.
-
-@item @code{baud-rate} (Vorgabe: @code{#f})
-Eine Zeichenkette, die aus einer kommagetrennten Liste von einer oder
-mehreren Baud-Raten besteht, absteigend sortiert.
-
-@item @code{term} (Vorgabe: @code{#f})
-Eine Zeichenkette, die den Wert enthält, der für die Umgebungsvariable
-@code{TERM} benutzt werden soll.
-
-@item @code{eight-bits?} (Vorgabe: @code{#f})
-Steht dies auf @code{#t}, wird angenommen, dass das tty 8-Bit-korrekt ist,
-so dass die Paritätserkennung abgeschaltet wird.
-
-@item @code{auto-login} (Vorgabe: @code{#f})
-Wird hier ein Anmeldename als eine Zeichenkette übergeben, wird der
-angegebene Nutzer automatisch angemeldet, ohne nach einem Anmeldenamen oder
-Passwort zu fragen.
-
-@item @code{no-reset?} (Vorgabe: @code{#f})
-Steht dies auf @code{#t}, werden die Cflags des Terminals (d.h. dessen
-Steuermodi) nicht zurückgesetzt.
-
-@item @code{host} (Vorgabe: @code{#f})
-Dies akzeptiert eine Zeichenkette mit dem einzutragenden
-Anmeldungs-Rechnernamen "login_host", der in die Datei @file{/var/run/utmpx}
-geschrieben wird.
-
-@item @code{remote?} (Vorgabe: @code{#f})
-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.
-
-@item @code{flow-control?} (Vorgabe: @code{#f})
-Ist dies auf @code{#t} gesetzt, wird Hardware-Flusssteuerung (RTS/CTS)
-aktiviert.
-
-@item @code{no-issue?} (Vorgabe: @code{#f})
-Ist dies auf @code{#t} gesetzt, wird der Inhalt der Datei @file{/etc/issue}
-@emph{nicht} angezeigt, bevor die Anmeldeaufforderung zu sehen ist.
-
-@item @code{init-string} (Vorgabe: @code{#f})
-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.
-
-@item @code{no-clear?} (Vorgabe: @code{#f})
-Ist dies auf @code{#t} gesetzt, wird agetty den Bildschirm @emph{nicht}
-löschen, bevor es die Anmeldeaufforderung anzeigt.
-
-@item @code{login-program} (Vorgabe: (file-append shadow "/bin/login"))
-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.
-
-@item @code{local-line} (Vorgabe: @code{#f})
-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}.
-
-@item @code{extract-baud?} (Vorgabe: @code{#f})
-Ist dies auf @code{#t} gesetzt, so wird agetty angewiesen, die Baud-Rate aus
-den Statusmeldungen mancher Arten von Modem abzulesen.
-
-@item @code{skip-login?} (Vorgabe: @code{#f})
-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.
-
-@item @code{no-newline?} (Vorgabe: @code{#f})
-Ist dies auf @code{#t} gesetzt, wird @emph{kein} Zeilenumbruch ausgegeben,
-bevor die Datei @file{/etc/issue} ausgegeben wird.
-
-@c Is this dangerous only when used with login-program, or always?
-@item @code{login-options} (Vorgabe: @code{#f})
-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.
-
-@item @code{login-pause} (Vorgabe: @code{#f})
-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.
-
-@item @code{chroot} (Vorgabe: @code{#f})
-Wechselt die Wurzel des Dateisystems auf das angegebene Verzeichnis. Dieses
-Feld akzeptiert einen Verzeichnispfad als Zeichenkette.
-
-@item @code{hangup?} (Vorgabe: @code{#f})
-Mit dem Linux-Systemaufruf @code{vhangup} auf dem angegebenen Terminal
-virtuell auflegen.
-
-@item @code{keep-baud?} (Vorgabe: @code{#f})
-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.
-
-@item @code{timeout} (Vorgabe: @code{#f})
-Ist dies auf einen ganzzahligen Wert gesetzt, wird terminiert, falls kein
-Benutzername innerhalb von @var{timeout} Sekunden eingelesen werden konnte.
-
-@item @code{detect-case?} (Vorgabe: @code{#f})
-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.
-
-@item @code{wait-cr?} (Vorgabe: @code{#f})
-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.
-
-@item @code{no-hints?} (Vorgabe: @code{#f})
-Ist es auf @code{#t} gesetzt, werden @emph{keine} Hinweise zu den
-Feststelltasten Num-Taste, Umschaltsperre (»Caps Lock«) und Rollen-Taste
-(»Scroll Lock«) angezeigt.
-
-@item @code{no-hostname?} (Vorgabe: @code{#f})
-Das vorgegebene Verhalten ist, den Rechnernamen auszugeben. Ist dieses Feld
-auf @code{#t} gesetzt, wird überhaupt kein Rechnername angezeigt.
-
-@item @code{long-hostname?} (Vorgabe: @code{#f})
-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.
-
-@item @code{erase-characters} (Vorgabe: @code{#f})
-Dieses Feld akzeptiert eine Zeichenkette aus Zeichen, die auch als Rücktaste
-(zum Löschen) interpretiert werden sollen, wenn der Benutzer seinen
-Anmeldenamen eintippt.
-
-@item @code{kill-characters} (Vorgabe: @code{#f})
-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.
-
-@item @code{chdir} (Vorgabe: @code{#f})
-Dieses Feld akzeptiert eine Zeichenkette, die einen Verzeichnispfad angibt,
-zu dem vor der Anmeldung gewechselt wird.
-
-@item @code{delay} (Vorgabe: @code{#f})
-Dieses Feld akzeptiert eine ganze Zahl mit der Anzahl Sekunden, die gewartet
-werden soll, bis ein tty geöffnet und die Anmeldeaufforderung angezeigt
-wird.
-
-@item @code{nice} (Vorgabe: @code{#f})
-Dieses Feld akzeptiert eine ganze Zahl mit dem »nice«-Wert, mit dem das
-Anmeldeprogramm ausgeführt werden soll.
-
-@item @code{extra-options} (Vorgabe: @code{'()})
-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.
-
-@end table
-@end deftp
-
-@deffn {Scheme-Prozedur} kmscon-service-type @var{Konfiguration}
-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.
-@end deffn
-
-@deftp {Datentyp} kmscon-configuration
-Dieser Datentyp repräsentiert die Konfiguration von Kmscon, die das Anmelden
-auf virtuellen Konsolen ermöglicht.
-
-@table @asis
-
-@item @code{virtual-terminal}
-Der Name der Konsole, auf der diese Kmscon läuft — z.B. @code{"tty1"}.
-
-@item @code{login-program} (Vorgabe: @code{#~(string-append #$shadow "/bin/login")})
-Ein G-Ausdruck, der den Namen des Anmeldeprogramms angibt. Als Vorgabe wird
-das Anmeldeprogramm @command{login} aus dem Shadow-Werkzeugsatz verwendet.
-
-@item @code{login-arguments} (Vorgabe: @code{'("-p")})
-Eine Liste der Argumente, die an @command{login} übergeben werden sollen.
-
-@item @code{auto-login} (Vorgabe: @code{#f})
-Wird hier ein Anmeldename als eine Zeichenkette übergeben, wird der
-angegebene Nutzer automatisch angemeldet, ohne nach einem Anmeldenamen oder
-Passwort zu fragen.
-
-@item @code{hardware-acceleration?} (Vorgabe: #f)
-Ob Hardware-Beschleunigung verwendet werden soll.
-
-@item @code{kmscon} (Vorgabe: @var{kmscon})
-Das Kmscon-Paket, das benutzt werden soll.
-
-@end table
-@end deftp
-
-@cindex Name Service Cache Daemon
-@cindex nscd
-@deffn {Scheme-Prozedur} nscd-service [@var{Konfiguration}] [#:glibc glibc] @
-                [#: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 @xref{Name Service Switch} für ein Beispiel.
-
-Der Einfachheit halber bietet der Shepherd-Dienst für nscd die folgenden
-Aktionen an:
-
-@table @code
-@item invalidate
-@cindex Zwischenspeicher ungültig machen, nscd
-@cindex nscd, Ungültigmachen des Zwischenspeichers
-Dies macht den angegebenen Zwischenspeicher ungültig. Wenn Sie zum Beispiel:
-
-@example
-herd invalidate nscd hosts
-@end example
-
-@noindent
-ausführen, wird der Zwischenspeicher für die Auflösung von Rechnernamen (von
-»Host«-Namen) des nscd ungültig.
-
-@item statistics
-Wenn Sie @command{herd statistics nscd} ausführen, werden Ihnen
-Informationen angezeigt, welche Ihnen Informationen über den nscd-Zustand
-und die Zwischenspeicher angezeigt.
-@end table
-
-@end deffn
-
-@defvr {Scheme-Variable} %nscd-default-configuration
-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.
-@end defvr
-
-@deftp {Datentyp} nscd-configuration
-Dieser Datentyp repräsentiert die Konfiguration des Name Service Caching
-Daemon (kurz »nscd«).
-
-@table @asis
-
-@item @code{name-services} (Vorgabe: @code{'()})
-Liste von Paketen, die @dfn{Namensdienste} bezeichnen, die für den nscd
-sichtbar sein müssen, z.B. @code{(list @var{nss-mdns})}.
-
-@item @code{glibc} (Vorgabe: @var{glibc})
-Ein Paket-Objekt, das die GNU-C-Bibliothek angibt, woraus der
-@command{nscd}-Befehl genommen werden soll.
-
-@item @code{log-file} (Vorgabe: @code{"/var/log/nscd.log"})
-Name der nscd-Protokolldatei. Hierhin werden Ausgaben zur Fehlersuche
-geschrieben, falls @code{debug-level} echt positiv ist.
-
-@item @code{debug-level} (Vorgabe: @code{0})
-Eine ganze Zahl, die den Detailgrad der Ausgabe zur Fehlersuche
-angibt. Größere Zahlen bewirken eine ausführlichere Ausgabe.
-
-@item @code{caches} (Vorgabe: @var{%nscd-default-caches})
-Liste der @code{<nscd-cache>}-Objekte, die repräsentieren, was alles
-zwischengespeichert werden soll; siehe unten.
-
-@end table
-@end deftp
-
-@deftp {Datentyp} nscd-cache
-Ein Datentyp, der eine Zwischenspeicher-Datenbank von nscd mitsamt ihren
-Parametern definiert.
-
-@table @asis
-
-@item @code{Datenbank}
-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 (@pxref{NSS Basics,,, libc, The
-GNU C Library Reference Manual}).
-
-@item @code{positive-time-to-live}
-@itemx @code{negative-time-to-live} (Vorgabe: @code{20})
-Eine Zahl, die für die Anzahl an Sekunden steht, die ein erfolgreiches
-(positives) oder erfolgloses (negatives) Nachschlageresultat im
-Zwischenspeicher verbleibt.
-
-@item @code{check-files?} (Vorgabe: @code{#t})
-Ob auf Änderungen an den der @var{database} entsprechenden Dateien reagiert
-werden soll.
-
-Wenn @var{database} zum Beispiel @code{hosts} ist, wird, wenn dieses Feld
-gesetzt ist, nscd Änderungen an @file{/etc/hosts} beobachten und
-berücksichtigen.
-
-@item @code{persistent?} (Vorgabe: @code{#t})
-Ob der Zwischenspeicher dauerhaft auf der Platte gespeichert werden soll.
-
-@item @code{shared?} (Vorgabe: @code{#t})
-Ob der Zwischenspeicher zwischen den Nutzern geteilt werden soll.
-
-@item @code{max-database-size} (Vorgabe: 32@tie{}MiB)
-Die Maximalgröße des Datenbank-Zwischenspeichers in Bytes.
-
-@c XXX: 'suggested-size' and 'auto-propagate?' seem to be expert
-@c settings, so leave them out.
-
-@end table
-@end deftp
-
-@defvr {Scheme-Variable} %nscd-default-caches
-Liste von @code{<nscd-cache>}-Objekten, die von der vorgegebenen
-@code{nscd-configuration} benutzt werden (siehe oben).
-
-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 Schutz der Privatsphäre — oftmals befindet sich das
-Ergebnis einer Anfrage nach einem Rechnernamen bereits im lokalen
-Zwischenspeicher und externe Namens-Server müssen nicht miteinbezogen
-werden.
-@end defvr
-
-@anchor{syslog-configuration-type}
-@cindex syslog
-@cindex Protokollierung
-@deftp {Datentyp} syslog-configuration
-Dieser Datentyp repräsentiert die Konfiguration des syslog-Daemons.
-
-@table @asis
-@item @code{syslogd} (Vorgabe: @code{#~(string-append #$inetutils "/libexec/syslogd")})
-Welcher Syslog-Daemon benutzt werden soll.
-
-@item @code{config-file} (Vorgabe: @code{%default-syslog.conf})
-Die zu benutzende syslog-Konfigurationsdatei.
-
-@end table
-@end deftp
-
-@anchor{syslog-service}
-@cindex syslog
-@deffn {Scheme-Prozedur} syslog-service @var{Konfiguration}
-Liefert einen Dienst, der einen syslog-Daemon entsprechend der
-@var{Konfiguration} ausführt.
-
-@xref{syslogd invocation,,, inetutils, GNU Inetutils}, für weitere
-Informationen über die Syntax der Konfiguration.
-@end deffn
-
-@defvr {Scheme-Variable} guix-service-type
-Dies ist der Typ für den Dienst, der den Erstellungs-Daemon
-@command{guix-daemon} ausführt (@pxref{Aufruf des guix-daemon}). Als Wert muss
-ein @code{guix-configuration}-Verbundsobjekt verwendet werden, wie unten
-beschrieben.
-@end defvr
-
-@anchor{guix-configuration-type}
-@deftp {Datentyp} guix-configuration
-Dieser Datentyp repräsentiert die Konfiguration des Erstellungs-Daemons von
-Guix. Siehe @xref{Aufruf des guix-daemon} für weitere Informationen.
-
-@table @asis
-@item @code{guix} (Vorgabe: @var{guix})
-Das zu verwendende Guix-Paket.
-
-@item @code{build-group} (Vorgabe: @code{"guixbuild"})
-Der Name der Gruppe, zu der die Erstellungs-Benutzerkonten gehören.
-
-@item @code{build-accounts} (Vorgabe: @code{10})
-Die Anzahl zu erzeugender Erstellungs-Benutzerkonten.
-
-@item @code{authorize-key?} (Vorgabe: @code{#t})
-@cindex Substitute, deren Autorisierung
-Whether to authorize the substitute keys listed in
-@code{authorized-keys}---by default that of @code{@value{SUBSTITUTE-SERVER}}
-(@pxref{Substitute}).
-
-@vindex %default-authorized-guix-keys
-@item @code{authorized-keys} (Vorgabe: @var{%default-authorized-guix-keys})
-The list of authorized key files for archive imports, as a list of
-string-valued gexps (@pxref{Aufruf von guix archive}).  By default, it
-contains that of @code{@value{SUBSTITUTE-SERVER}} (@pxref{Substitute}).
-
-@item @code{use-substitutes?} (Vorgabe: @code{#t})
-Ob Substitute benutzt werden sollen.
-
-@item @code{substitute-urls} (Vorgabe: @var{%default-substitute-urls})
-Die Liste der URLs, auf denen nach Substituten gesucht wird, wenn nicht
-anders angegeben.
-
-@item @code{max-silent-time} (Vorgabe: @code{0})
-@itemx @code{timeout} (Vorgabe: @code{0})
-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.
-
-@item @code{log-compression} (Vorgabe: @code{'bzip2})
-Die für Erstellungsprotokolle zu benutzende Kompressionsmethode — entweder
-@code{gzip}, @code{bzip2} oder @code{none}.
-
-@item @code{extra-options} (Vorgabe: @code{'()})
-Eine Liste zusätzlicher Befehlszeilenoptionen zu @command{guix-daemon}.
-
-@item @code{log-file} (Vorgabe: @code{"/var/log/guix-daemon.log"})
-Die Datei, in die die Standardausgabe und die Standardfehlerausgabe von
-@command{guix-daemon} geschrieben werden.
-
-@item @code{http-proxy} (Vorgabe: @code{#f})
-Der für das Herunterladen von Ableitungen mit fester Ausgabe und von
-Substituten zu verwendende HTTP-Proxy.
-
-@item @code{tmpdir} (Vorgabe: @code{#f})
-Ein Verzeichnispfad, der angibt, wo @command{guix-daemon} seine Erstellungen
-durchführt.
-
-@end table
-@end deftp
-
-@deffn {Scheme-Prozedur} udev-service [#:udev @var{eudev} #:rules @code{'()}]
-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 @var{udev-rule} und
-@var{file->udev-rule} aus @code{(gnu services base)} vereinfachen die
-Erstellung einer solchen Regeldatei.
-@end deffn
-
-@deffn {Scheme-Prozedur} udev-rule [@var{Dateiname} @var{Inhalt}]
-Liefert eine udev-Regeldatei mit dem angegebenen @var{Dateiname}n, in der
-die vom Literal @var{Inhalt} definierten Regeln stehen.
-
-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.
-
-@example
-(define %beispiel-udev-rule
-  (udev-rule
-    "90-usb-ding.rules"
-    (string-append "ACTION==\"add\", SUBSYSTEM==\"usb\", "
-                   "ATTR@{product@}==\"Beispiel\", "
-                   "RUN+=\"/pfad/zum/skript\"")))
-@end example
-
-The @command{herd rules udev} command, as root, returns the name of the
-directory containing all the active udev rules.
-@end deffn
-
-Hier zeigen wir, wie man den vorgegebenen @var{udev-service} um sie
-erweitern kann.
-
-@example
-(operating-system
- ;; @dots{}
- (services
- (modify-services %desktop-services
-   (udev-service-type config =>
-     (udev-configuration (inherit config)
-      (rules (append (udev-configuration-rules config)
-                     (list %beispiel-udev-rule))))))))
-@end example
-
-@deffn {Scheme-Prozedur} file->udev-rule [@var{Dateiname} @var{Datei}]
-Liefert eine udev-Datei mit dem angegebenen @var{Dateiname}n, in der alle in
-der @var{Datei}, einem dateiartigen Objekt, definierten Regeln stehen.
-
-Folgendes Beispiel stellt dar, wie wir eine bestehende Regeldatei verwenden
-können.
-
-@example
-(use-modules (guix download)     ;für url-fetch
-             (guix packages)     ;für origin
-             ;; @dots{})
-
-(define %android-udev-rules
-  (file->udev-rule
-    "51-android-udev.rules"
-    (let ((version "20170910"))
-      (origin
-       (method url-fetch)
-       (uri (string-append "https://raw.githubusercontent.com/M0Rf30/"
-                           "android-udev-rules/" version "/51-android.rules"))
-       (sha256
-        (base32 "0lmmagpyb6xsq6zcr2w1cyx9qmjqmajkvrdbhjx32gqf1d9is003"))))))
-@end example
-@end deffn
-
-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.
-
-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.
-
-@example
-(use-modules (gnu packages android)  ;für android-udev-rules
-             (gnu system shadow)     ;für user-group
-             ;; @dots{})
-
-(operating-system
-  ;; @dots{}
-  (users (cons (user-acount
-                ;; @dots{}
-                (supplementary-groups
-                 '("adbusers"   ;für adb
-                   "wheel" "netdev" "audio" "video"))
-                ;; @dots{})))
-
-  (groups (cons (user-group (system? #t) (name "adbusers"))
-                %base-groups))
-
-  ;; @dots{}
-
-  (services
-   (modify-services %desktop-services
-     (udev-service-type
-      config =>
-      (udev-configuration (inherit config)
-                          (rules (cons android-udev-rules
-                                       (udev-configuration-rules config))))))))
-@end example
-
-@defvr {Scheme-Variable} urandom-seed-service-type
-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.
-@end defvr
-
-@defvr {Scheme-Variable} %random-seed-file
-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.
-@end defvr
-
-@cindex Keymap
-@cindex Tastatur
-@deffn {Scheme-Prozedur} console-keymap-service @var{Dateien} ...
-@cindex Tastaturbelegung
-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:
-
-@example
-(console-keymap-service "dvorak")
-@end example
-
-Oder um zum Beispiel eine schwedische Tastaturbelegung zu bekommen, könnten
-Sie die folgenden Keymaps kombinieren müssen:
-@example
-(console-keymap-service "se-lat6" "se-fi-lat6")
-@end example
-
-Sie können alternativ auch den oder die vollständigen Dateinamen Ihrer
-Keymap(s) angeben. Siehe @code{man loadkeys} für Details.
-
-@end deffn
-
-@cindex Maus
-@cindex gpm
-@defvr {Scheme-Variable} gpm-service-type
-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.
-
-Der Wert für Dienste dieses Typs muss eine @code{gpm-configuration} sein
-(siehe unten). Dieser Dienst gehört @emph{nicht} zu den
-@var{%base-services}.
-@end defvr
-
-@deftp {Datentyp} gpm-configuration
-Repräsentiert die Konfiguration von GPM.
-
-@table @asis
-@item @code{options} (Vorgabe: @code{%default-gpm-options})
-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 @xref{Command Line,,, gpm,
-gpm manual} für weitere Informationen.
-
-@item @code{gpm} (Vorgabe: @code{gpm})
-Das GPM-Paket, was benutzt werden soll.
-
-@end table
-@end deftp
-
-@anchor{guix-publish-service-type}
-@deffn {Scheme-Variable} guix-publish-service-type
-Dies ist der Diensttyp für @command{guix publish} (@pxref{Aufruf von guix publish}). Sein Wert muss ein @code{guix-publish-configuration}-Objekt sein,
-wie im Folgenden beschrieben.
-
-Hierbei wird angenommen, dass @file{/etc/guix} bereits ein mit @command{guix
-archive --generate-key} erzeugtes Schlüsselpaar zum Signieren enthält
-(@pxref{Aufruf von guix archive}). Falls nicht, wird der Dienst beim Starten
-fehlschlagen.
-@end deffn
-
-@deftp {Datentyp} guix-publish-configuration
-Der Datentyp, der die Konfiguration des »@code{guix publish}«-Dienstes
-repräsentiert.
-
-@table @asis
-@item @code{guix} (Vorgabe: @code{guix})
-Das zu verwendende Guix-Paket.
-
-@item @code{port} (Vorgabe: @code{80})
-Der TCP-Port, auf dem auf Verbindungen gelauscht werden soll.
-
-@item @code{host} (Vorgabe: @code{"localhost"})
-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.
-
-@item @code{compression-level} (Vorgabe: @code{3})
-Die gzip-Kompressionsstufe, mit der Substitute komprimiert werden
-sollen. Benutzen Sie @code{0}, um Kompression völlig abzuschalten, und
-@code{9} für das höchste Kompressionsverhältnis, zu Lasten von zusätzlicher
-Prozessorauslastung.
-
-@item @code{nar-path} (Vorgabe: @code{"nar"})
-Der URL-Pfad, unter dem »Nars« zum Herunterladen angeboten werden. Siehe
-@xref{Aufruf von guix publish, @code{--nar-path}}, für Details.
-
-@item @code{cache} (Vorgabe: @code{#f})
-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 @xref{Aufruf von guix publish, @option{--cache}}, für weitere
-Informationen über die jeweiligen Vor- und Nachteile.
-
-@item @code{workers} (Vorgabe: @code{#f})
-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 @xref{Aufruf von guix publish,
-@option{--workers}}, für mehr Informationen.
-
-@item @code{ttl} (Vorgabe: @code{#f})
-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 @xref{Aufruf von guix publish,
-@option{--ttl}}, für mehr Informationen.
-@end table
-@end deftp
-
-@anchor{rngd-service}
-@deffn {Scheme-Prozedur} rngd-service [#:rng-tools @var{rng-tools}] @
-            [#: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.
-@end deffn
-
-@anchor{pam-limits-service}
-@cindex Sitzungs-Limits
-@cindex ulimit
-@cindex Priorität
-@cindex Echtzeit
-@cindex jackd
-@deffn {Scheme-Prozedur} pam-limits-service [#:limits @code{'()}]
-
-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.
-
-Die folgenden Limit-Definitionen setzen zwei harte und weiche Limits für
-alle Anmeldesitzungen für Benutzer in der @code{realtime}-Gruppe.
-
-@example
-(pam-limits-service
- (list
-  (pam-limits-entry "@@realtime" 'both 'rtprio 99)
-  (pam-limits-entry "@@realtime" 'both 'memlock 'unlimited)))
-@end example
-
-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.
-@end deffn
-
-@node Geplante Auftragsausführung
-@subsection Geplante Auftragsausführung
-
-@cindex cron
-@cindex mcron
-@cindex scheduling jobs
-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.
-
-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{Aufruf von 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-Ausdrücke}).
-
-@lisp
-(use-modules (guix) (gnu) (gnu services mcron))
-(use-package-modules base idutils)
-
-(define updatedb-job
-  ;; Run 'updatedb' at 3AM every day.  Here we write the
-  ;; job's action as a Scheme procedure.
-  #~(job '(next-hour '(3))
-         (lambda ()
-           (execl (string-append #$findutils "/bin/updatedb")
-                  "updatedb"
-                  "--prunepaths=/tmp /var/tmp /gnu/store"))))
-
-(define garbage-collector-job
-  ;; Collect garbage 5 minutes after midnight every day.
-  ;; The job's action is a shell command.
-  #~(job "5 0 * * *"            ;Vixie cron syntax
-         "guix gc -F 1G"))
-
-(define idutils-job
-  ;; Update the index database as user "charlie" at 12:15PM
-  ;; and 19:15PM.  This runs from the user's home directory.
-  #~(job '(next-minute-from (next-hour '(12 19)) '(15))
-         (string-append #$idutils "/bin/mkid src")
-         #:user "charlie"))
-
-(operating-system
-  ;; @dots{}
-  (services (cons (service mcron-service-type
-                           (mcron-configuration
-                            (jobs (list garbage-collector-job
-                                        updatedb-job
-                                        idutils-job))))
-                  %base-services)))
-@end lisp
-
-@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.
-
-On a running system, you can use the @code{schedule} action of the service
-to visualize the mcron jobs that will be executed next:
-
-@example
-# herd schedule mcron
-@end example
-
-@noindent
-The example above lists the next five tasks that will be executed, but you
-can also specify the number of tasks to display:
-
-@example
-# herd schedule mcron 10
-@end example
-
-@defvr {Scheme Variable} mcron-service-type
-This is the type of the @code{mcron} service, whose value is an
-@code{mcron-configuration} object.
-
-This service type can be the target of a service extension that provides it
-additional job specifications (@pxref{Dienstkompositionen}).  In other
-words, it is possible to define services that provide additional mcron jobs
-to run.
-@end defvr
-
-@deftp {Data Type} mcron-configuration
-Data type representing the configuration of mcron.
-
-@table @asis
-@item @code{mcron} (default: @var{mcron})
-The mcron package to use.
-
-@item @code{jobs}
-This is a list of gexps (@pxref{G-Ausdrücke}), where each gexp corresponds
-to an mcron job specification (@pxref{Syntax, mcron job specifications,,
-mcron, GNU@tie{}mcron}).
-@end table
-@end deftp
-
-
-@node Log-Rotation
-@subsection Log-Rotation
-
-@cindex rottlog
-@cindex log rotation
-@cindex Protokollierung
-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}).
-
-The example below defines an operating system that provides log rotation
-with the default settings, for commonly encountered log files.
-
-@lisp
-(use-modules (guix) (gnu))
-(use-service-modules admin mcron)
-(use-package-modules base idutils)
-
-(operating-system
-  ;; @dots{}
-  (services (cons (service rottlog-service-type)
-                  %base-services)))
-@end lisp
-
-@defvr {Scheme Variable} rottlog-service-type
-This is the type of the Rottlog service, whose value is a
-@code{rottlog-configuration} object.
-
-Other services can extend this one with new @code{log-rotation} objects (see
-below), thereby augmenting the set of files to be rotated.
-
-This service type can define mcron jobs (@pxref{Geplante Auftragsausführung}) to
-run the rottlog service.
-@end defvr
-
-@deftp {Data Type} rottlog-configuration
-Data type representing the configuration of rottlog.
-
-@table @asis
-@item @code{rottlog} (default: @code{rottlog})
-The Rottlog package to use.
-
-@item @code{rc-file} (default: @code{(file-append rottlog "/etc/rc")})
-The Rottlog configuration file to use (@pxref{Mandatory RC Variables,,,
-rottlog, GNU Rot[t]log Manual}).
-
-@item @code{rotations} (default: @code{%default-rotations})
-A list of @code{log-rotation} objects as defined below.
-
-@item @code{jobs}
-This is a list of gexps where each gexp corresponds to an mcron job
-specification (@pxref{Geplante Auftragsausführung}).
-@end table
-@end deftp
-
-@deftp {Data Type} log-rotation
-Data type representing the rotation of a group of log files.
-
-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:
-
-@example
-(log-rotation
-  (frequency 'daily)
-  (files '("/var/log/apache/*"))
-  (options '("storedir apache-archives"
-             "rotate 6"
-             "notifempty"
-             "nocompress")))
-@end example
-
-The list of fields is as follows:
-
-@table @asis
-@item @code{frequency} (default: @code{'weekly})
-The log rotation frequency, a symbol.
-
-@item @code{files}
-The list of files or file glob patterns to rotate.
-
-@item @code{options} (default: @code{'()})
-The list of rottlog options for this rotation (@pxref{Configuration
-parameters,,, rottlog, GNU Rot[t]lg Manual}).
-
-@item @code{post-rotate} (default: @code{#f})
-Either @code{#f} or a gexp to execute once the rotation has completed.
-@end table
-@end deftp
-
-@defvr {Scheme Variable} %default-rotations
-Specifies weekly rotation of @var{%rotated-files} and a couple of other
-files.
-@end defvr
-
-@defvr {Scheme Variable} %rotated-files
-The list of syslog-controlled files to be rotated.  By default it is:
-@code{'("/var/log/messages" "/var/log/secure")}.
-@end defvr
-
-@node Netzwerkdienste
-@subsection Netzwerkdienste
-
-The @code{(gnu services networking)} module provides services to configure
-the network interface.
-
-@cindex DHCP, networking service
-@defvr {Scheme Variable} dhcp-client-service-type
-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.
-@end defvr
-
-@deffn {Scheme Procedure} dhcpd-service-type
-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:
-
-@example
-(service dhcpd-service-type
-         (dhcpd-configuration
-          (config-file (local-file "my-dhcpd.conf"))
-          (interfaces '("enp0s25"))))
-@end example
-@end deffn
-
-@deftp {Data Type} dhcpd-configuration
-@table @asis
-@item @code{package} (default: @code{isc-dhcp})
-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{http://www.isc.org/products/DHCP, ISC's
-DHCP server}.
-@item @code{config-file} (default: @code{#f})
-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-Ausdrücke, file-like objects}).  See @code{man
-dhcpd.conf} for details on the configuration file syntax.
-@item @code{version} (default: @code{"4"})
-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.
-@item @code{run-directory} (default: @code{"/run/dhcpd"})
-The run directory to use.  At service activation time, this directory will
-be created if it does not exist.
-@item @code{pid-file} (default: @code{"/run/dhcpd/dhcpd.pid"})
-The PID file to use.  This corresponds to the @code{-pf} option of
-@code{dhcpd}.  See @code{man dhcpd} for details.
-@item @code{interfaces} (default: @code{'()})
-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.
-@end table
-@end deftp
-
-@defvr {Scheme Variable} static-networking-service-type
-@c TODO Document <static-networking> data structures.
-This is the type for statically-configured network interfaces.
-@end defvr
-
-@deffn {Scheme Procedure} static-networking-service @var{interface} @var{ip} @
-       [#: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.
-
-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.
-
-Zum Beispiel:
-
-@example
-(static-networking-service "eno1" "192.168.1.82"
-                           #:gateway "192.168.1.2"
-                           #:name-servers '("192.168.1.2"))
-@end example
-@end deffn
-
-@cindex wicd
-@cindex WLAN
-@cindex WiFi
-@cindex network management
-@deffn {Scheme Procedure} wicd-service [#:wicd @var{wicd}]
-Return a service that runs @url{https://launchpad.net/wicd,Wicd}, a network
-management daemon that aims to simplify wired and wireless networking.
-
-This service adds the @var{wicd} package to the global profile, providing
-several commands to interact with the daemon and configure networking:
-@command{wicd-client}, a graphical user interface, and the
-@command{wicd-cli} and @command{wicd-curses} user interfaces.
-@end deffn
-
-@cindex ModemManager
-
-@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
-@code{modem-manager-configuration} record.
-
-This service is part of @code{%desktop-services} (@pxref{Desktop-Dienste}).
-@end defvr
-
-@deftp {Data Type} modem-manager-configuration
-Repräsentiert die Konfiguration vom ModemManager.
-
-@table @asis
-@item @code{modem-manager} (Vorgabe: @code{modem-manager})
-Das ModemManager-Paket, was benutzt werden soll.
-
-@end table
-@end deftp
-
-@cindex NetworkManager
-
-@defvr {Scheme Variable} network-manager-service-type
-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.
-
-This service is part of @code{%desktop-services} (@pxref{Desktop-Dienste}).
-@end defvr
-
-@deftp {Data Type} network-manager-configuration
-Data type representing the configuration of NetworkManager.
-
-@table @asis
-@item @code{network-manager} (default: @code{network-manager})
-The NetworkManager package to use.
-
-@item @code{dns} (default: @code{"default"})
-Processing mode for DNS, which affects how NetworkManager uses the
-@code{resolv.conf} configuration file.
-
-@table @samp
-@item default
-NetworkManager will update @code{resolv.conf} to reflect the nameservers
-provided by currently active connections.
-
-@item dnsmasq
-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.
-
-@item none
-NetworkManager will not modify @code{resolv.conf}.
-@end table
-
-@item @code{vpn-plugins} (default: @code{'()})
-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.
-
-@end table
-@end deftp
-
-@cindex Connman
-@deffn {Scheme Variable} connman-service-type
-This is the service type to run @url{https://01.org/connman,Connman}, a
-network connection manager.
-
-Its value must be an @code{connman-configuration} record as in this example:
-
-@example
-(service connman-service-type
-         (connman-configuration
-           (disable-vpn? #t)))
-@end example
-
-See below for details about @code{connman-configuration}.
-@end deffn
-
-@deftp {Data Type} connman-configuration
-Data Type representing the configuration of connman.
-
-@table @asis
-@item @code{connman} (default: @var{connman})
-The connman package to use.
-
-@item @code{disable-vpn?} (default: @code{#f})
-When true, disable connman's vpn plugin.
-@end table
-@end deftp
-
-@cindex WPA Supplicant
-@defvr {Scheme Variable} wpa-supplicant-service-type
-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.
-@end defvr
-
-@deftp {Data Type} wpa-supplicant-configuration
-Repräsentiert die Konfiguration des WPA-Supplikanten.
-
-Sie hat folgende Parameter:
-
-@table @asis
-@item @code{wpa-supplicant} (Vorgabe: @code{wpa-supplicant})
-Das WPA-Supplicant-Paket, was benutzt werden soll.
-
-@item @code{dbus?} (Vorgabe: @code{#t})
-Whether to listen for requests on D-Bus.
-
-@item @code{pid-file} (Vorgabe: @code{"/var/run/wpa_supplicant.pid"})
-Wo die PID-Datei abgelegt wird.
-
-@item @code{interface} (Vorgabe: @code{#f})
-If this is set, it must specify the name of a network interface that WPA
-supplicant will control.
-
-@item @code{config-file} (default: @code{#f})
-Optionale Konfigurationsdatei.
-
-@item @code{extra-options} (Vorgabe: @code{'()})
-List of additional command-line arguments to pass to the daemon.
-@end table
-@end deftp
-
-@cindex iptables
-@defvr {Scheme Variable} iptables-service-type
-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.
-
-@lisp
-(service iptables-service-type
-         (iptables-configuration
-          (ipv4-rules (plain-file "iptables.rules" "*filter
-:INPUT ACCEPT
-:FORWARD ACCEPT
-:OUTPUT ACCEPT
--A INPUT -p tcp --dport 22 -j ACCEPT
--A INPUT -j REJECT --reject-with icmp-port-unreachable
-COMMIT
-"))
-          (ipv6-rules (plain-file "ip6tables.rules" "*filter
-:INPUT ACCEPT
-:FORWARD ACCEPT
-:OUTPUT ACCEPT
--A INPUT -p tcp --dport 22 -j ACCEPT
--A INPUT -j REJECT --reject-with icmp6-port-unreachable
-COMMIT
-"))))
-@end lisp
-@end defvr
-
-@deftp {Datentyp} iptables-configuration
-Repräsentiert die iptables-Konfiguration.
-
-@table @asis
-@item @code{iptables} (Vorgabe: @code{iptables})
-The iptables package that provides @code{iptables-restore} and
-@code{ip6tables-restore}.
-@item @code{ipv4-rules} (Vorgabe: @code{%iptables-accept-all-rules})
-The iptables rules to use.  It will be passed to @code{iptables-restore}.
-This may be any ``file-like'' object (@pxref{G-Ausdrücke, file-like
-objects}).
-@item @code{ipv6-rules} (Vorgabe: @code{%iptables-accept-all-rules})
-The ip6tables rules to use.  It will be passed to @code{ip6tables-restore}.
-This may be any ``file-like'' object (@pxref{G-Ausdrücke, file-like
-objects}).
-@end table
-@end deftp
-
-@cindex NTP (Network Time Protocol), Dienst
-@cindex real time clock
-@defvr {Scheme Variable} ntp-service-type
-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.
-
-The value of this service is an @code{ntpd-configuration} object, as
-described below.
-@end defvr
-
-@deftp {Datentyp} ntp-configuration
-Der Datentyp für die Dienstkonfiguration des NTP-Dienstes.
-
-@table @asis
-@item @code{servers} (Vorgabe: @code{%ntp-servers})
-This is the list of servers (host names) with which @command{ntpd} will be
-synchronized.
-
-@item @code{allow-large-adjustment?} (default: @code{#f})
-This determines whether @command{ntpd} is allowed to make an initial
-adjustment of more than 1,000 seconds.
-
-@item @code{ntp} (Vorgabe: @code{ntp})
-Das NTP-Paket, was benutzt werden soll.
-@end table
-@end deftp
-
-@defvr {Scheme Variable} %ntp-servers
-List of host names used as the default NTP servers.  These are servers of
-the @uref{https://www.ntppool.org/en/, NTP Pool Project}.
-@end defvr
-
-@cindex OpenNTPD
-@deffn {Scheme Procedure} openntpd-service-type
-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.
-
-@example
-(service
- openntpd-service-type
- (openntpd-configuration
-  (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)))
-
-@end example
-@end deffn
-
-@deftp {Data Type} openntpd-configuration
-@table @asis
-@item @code{openntpd} (default: @code{(file-append openntpd "/sbin/ntpd")})
-The openntpd executable to use.
-@item @code{listen-on} (default: @code{'("127.0.0.1" "::1")})
-A list of local IP addresses or hostnames the ntpd daemon should listen on.
-@item @code{query-from} (default: @code{'()})
-A list of local IP address the ntpd daemon should use for outgoing queries.
-@item @code{sensor} (default: @code{'()})
-Specify a list of timedelta sensor devices ntpd should use.  @code{ntpd}
-will listen to each sensor that acutally exists and ignore non-existant
-ones.  See @uref{https://man.openbsd.org/ntpd.conf, upstream documentation}
-for more information.
-@item @code{server} (default: @var{%ntp-servers})
-Specify a list of IP addresses or hostnames of NTP servers to synchronize
-to.
-@item @code{servers} (default: @code{'()})
-Specify a list of IP addresses or hostnames of NTP pools to synchronize to.
-@item @code{constraint-from} (default: @code{'()})
-@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.
-@item @code{constraints-from} (default: @code{'()})
-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
-
-@cindex inetd
-@deffn {Scheme variable} inetd-service-type
-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.
-
-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}:
-
-@example
-(service
- inetd-service-type
- (inetd-configuration
-  (entries (list
-            (inetd-entry
-             (name "echo")
-             (socket-type 'stream)
-             (protocol "tcp")
-             (wait? #f)
-             (user "root"))
-            (inetd-entry
-             (node "127.0.0.1")
-             (name "smtp")
-             (socket-type 'stream)
-             (protocol "tcp")
-             (wait? #f)
-             (user "root")
-             (program (file-append openssh "/bin/ssh"))
-             (arguments
-              '("ssh" "-qT" "-i" "/path/to/ssh_key"
-                "-W" "smtp-server:25" "user@@hostname")))))
-@end example
-
-See below for more details about @code{inetd-configuration}.
-@end deffn
-
-@deftp {Data Type} inetd-configuration
-Data type representing the configuration of @command{inetd}.
-
-@table @asis
-@item @code{program} (default: @code{(file-append inetutils "/libexec/inetd")})
-The @command{inetd} executable to use.
-
-@item @code{entries} (default: @code{'()})
-A list of @command{inetd} service entries.  Each entry should be created by
-the @code{inetd-entry} constructor.
-@end table
-@end deftp
-
-@deftp {Data Type} inetd-entry
-Data type representing an entry in the @command{inetd} configuration.  Each
-entry corresponds to a socket where @command{inetd} will listen for
-requests.
-
-@table @asis
-@item @code{node} (Vorgabe: @code{#f})
-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.
-@item @code{name}
-A string, the name must correspond to an entry in @code{/etc/services}.
-@item @code{socket-type}
-One of @code{'stream}, @code{'dgram}, @code{'raw}, @code{'rdm} or
-@code{'seqpacket}.
-@item @code{protocol}
-A string, must correspond to an entry in @code{/etc/protocols}.
-@item @code{wait?} (Vorgabe: @code{#t})
-Whether @command{inetd} should wait for the server to exit before listening
-to new service requests.
-@item @code{user}
-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"}.
-@item @code{program} (default: @code{"internal"})
-The server program which will serve the requests, or @code{"internal"} if
-@command{inetd} should use a built-in service.
-@item @code{arguments} (Vorgabe: @code{'()})
-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")}.
-@end table
-
-@xref{Configuration file,,, inetutils, GNU Inetutils} for a more detailed
-discussion of each configuration field.
-@end deftp
-
-@cindex Tor
-@defvr {Scheme Variable} tor-service-type
-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.
-
-@end defvr
-
-@deftp {Datentyp} tor-configuration
-@table @asis
-@item @code{tor} (Vorgabe: @code{tor})
-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.
-
-@item @code{config-file} (Vorgabe: @code{(plain-file "empty" "")})
-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-Ausdrücke, file-like objects}).  See @code{man tor} for details
-on the configuration file syntax.
-
-@item @code{hidden-services} (Vorgabe: @code{'()})
-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.
-
-@item @code{socks-socket-type} (Vorgabe: @code{'tcp})
-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.
-
-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.
-@end table
-@end deftp
-
-@cindex hidden service
-@deffn {Scheme Procedure} tor-hidden-service @var{name} @var{mapping}
-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:
-
-@example
- '((22 "127.0.0.1:22")
-   (80 "127.0.0.1:8080"))
-@end example
-
-In this example, port 22 of the hidden service is mapped to local port 22,
-and port 80 is mapped to local port 8080.
-
-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.
-
-See @uref{https://www.torproject.org/docs/tor-hidden-service.html.en, the
-Tor project's documentation} for more information.
-@end deffn
-
-The @code{(gnu services rsync)} module provides the following services:
-
-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.
-
-@deffn {Scheme Variable} rsync-service-type
-This is the type for the @uref{https://rsync.samba.org, rsync} rsync daemon,
-@command{rsync-configuration} record as in this example:
-
-@example
-(service rsync-service-type)
-@end example
-
-See below for details about @code{rsync-configuration}.
-@end deffn
-
-@deftp {Data Type} rsync-configuration
-Data type representing the configuration for @code{rsync-service}.
-
-@table @asis
-@item @code{package} (default: @var{rsync})
-@code{rsync} package to use.
-
-@item @code{port-number} (default: @code{873})
-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.
-
-@item @code{pid-file} (default: @code{"/var/run/rsyncd/rsyncd.pid"})
-Name of the file where @command{rsync} writes its PID.
-
-@item @code{lock-file} (default: @code{"/var/run/rsyncd/rsyncd.lock"})
-Name of the file where @command{rsync} writes its lock file.
-
-@item @code{log-file} (default: @code{"/var/log/rsyncd.log"})
-Name of the file where @command{rsync} writes its log file.
-
-@item @code{use-chroot?} (default: @var{#t})
-Whether to use chroot for @command{rsync} shared directory.
-
-@item @code{share-path} (default: @file{/srv/rsync})
-Location of the @command{rsync} shared directory.
-
-@item @code{share-comment} (default: @code{"Rsync share"})
-Comment of the @command{rsync} shared directory.
-
-@item @code{read-only?} (default: @var{#f})
-Read-write permissions to shared directory.
-
-@item @code{timeout} (default: @code{300})
-I/O timeout in seconds.
-
-@item @code{user} (default: @var{"root"})
-Owner of the @code{rsync} process.
-
-@item @code{group} (default: @var{"root"})
-Group of the @code{rsync} process.
-
-@item @code{uid} (default: @var{"rsyncd"})
-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}.
-
-@item @code{gid} (default: @var{"rsyncd"})
-Group name or group ID that will be used when accessing the module.
-
-@end table
-@end deftp
-
-Furthermore, @code{(gnu services ssh)} provides the following services.
-@cindex SSH
-@cindex SSH server
-
-@deffn {Scheme Procedure} lsh-service [#:host-key "/etc/lsh/host-key"] @
-       [#: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.
-
-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}.
-
-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.
-
-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}).
-
-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.
-
-@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.
-
-The other options should be self-descriptive.
-@end deffn
-
-@cindex SSH
-@cindex SSH server
-@deffn {Scheme Variable} openssh-service-type
-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:
-
-@example
-(service openssh-service-type
-         (openssh-configuration
-           (x11-forwarding? #t)
-           (permit-root-login 'without-password)
-           (authorized-keys
-             `(("alice" ,(local-file "alice.pub"))
-               ("bob" ,(local-file "bob.pub"))))))
-@end example
-
-See below for details about @code{openssh-configuration}.
-
-This service can be extended with extra authorized keys, as in this example:
-
-@example
-(service-extension openssh-service-type
-                   (const `(("charlie"
-                             ,(local-file "charlie.pub")))))
-@end example
-@end deffn
-
-@deftp {Data Type} openssh-configuration
-This is the configuration record for OpenSSH's @command{sshd}.
-
-@table @asis
-@item @code{pid-file} (default: @code{"/var/run/sshd.pid"})
-Name of the file where @command{sshd} writes its PID.
-
-@item @code{port-number} (default: @code{22})
-TCP port on which @command{sshd} listens for incoming connections.
-
-@item @code{permit-root-login} (default: @code{#f})
-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.
-
-@item @code{allow-empty-passwords?} (default: @code{#f})
-When true, users with empty passwords may log in.  When false, they may not.
-
-@item @code{password-authentication?} (default: @code{#t})
-When true, users may log in with their password.  When false, they have
-other authentication methods.
-
-@item @code{public-key-authentication?} (default: @code{#t})
-When true, users may log in using public key authentication.  When false,
-users have to use other authentication method.
-
-Authorized public keys are stored in @file{~/.ssh/authorized_keys}.  This is
-used only by protocol version 2.
-
-@item @code{x11-forwarding?} (default: @code{#f})
-When true, forwarding of X11 graphical client connections is enabled---in
-other words, @command{ssh} options @option{-X} and @option{-Y} will work.
-
-@item @code{allow-agent-forwarding?} (Vorgabe: @code{#t})
-Whether to allow agent forwarding.
-
-@item @code{allow-tcp-forwarding?} (Vorgabe: @code{#t})
-Whether to allow TCP forwarding.
-
-@item @code{gateway-ports?} (Vorgabe: @code{#f})
-Whether to allow gateway ports.
-
-@item @code{challenge-response-authentication?} (default: @code{#f})
-Specifies whether challenge response authentication is allowed (e.g.@: via
-PAM).
-
-@item @code{use-pam?} (default: @code{#t})
-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.
-
-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?}.
-
-@item @code{print-last-log?} (default: @code{#t})
-Specifies whether @command{sshd} should print the date and time of the last
-user login when a user logs in interactively.
-
-@item @code{subsystems} (default: @code{'(("sftp" "internal-sftp"))})
-Configures external subsystems (e.g.@: file transfer daemon).
-
-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.
-
-The command @command{internal-sftp} implements an in-process SFTP server.
-Alternately, one can specify the @command{sftp-server} command:
-@example
-(service openssh-service-type
-         (openssh-configuration
-          (subsystems
-           `(("sftp" ,(file-append openssh "/libexec/sftp-server"))))))
-@end example
-
-@item @code{accepted-environment} (default: @code{'()})
-List of strings describing which environment variables may be exported.
-
-Each string gets on its own line.  See the @code{AcceptEnv} option in
-@code{man sshd_config}.
-
-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.
-
-@example
-(service openssh-service-type
-         (openssh-configuration
-           (accepted-environment '("COLORTERM"))))
-@end example
-
-@item @code{authorized-keys} (default: @code{'()})
-@cindex authorized keys, SSH
-@cindex SSH authorized keys
-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:
-
-@example
-(openssh-configuration
-  (authorized-keys
-    `(("rekado" ,(local-file "rekado.pub"))
-      ("chris" ,(local-file "chris.pub"))
-      ("root" ,(local-file "rekado.pub") ,(local-file "chris.pub")))))
-@end example
-
-@noindent
-registers the specified public keys for user accounts @code{rekado},
-@code{chris}, and @code{root}.
-
-Additional authorized keys can be specified @i{via}
-@code{service-extension}.
-
-Note that this does @emph{not} interfere with the use of
-@file{~/.ssh/authorized_keys}.
-
-@item @code{log-level} (Vorgabe: @code{'info})
-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.
-
-@item @code{extra-content} (Vorgabe: @code{""})
-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:
-
-@example
-(openssh-configuration
-  (extra-content "\
-Match Address 192.168.0.1
-  PermitRootLogin yes"))
-@end example
-
-@end table
-@end deftp
-
-@deffn {Scheme Procedure} dropbear-service [@var{config}]
-Run the @uref{https://matt.ucc.asn.au/dropbear/dropbear.html,Dropbear SSH
-daemon} with the given @var{config}, a @code{<dropbear-configuration>}
-object.
-
-For example, to specify a Dropbear service listening on port 1234, add this
-call to the operating system's @code{services} field:
-
-@example
-(dropbear-service (dropbear-configuration
-                    (port-number 1234)))
-@end example
-@end deffn
-
-@deftp {Data Type} dropbear-configuration
-This data type represents the configuration of a Dropbear SSH daemon.
-
-@table @asis
-@item @code{dropbear} (default: @var{dropbear})
-The Dropbear package to use.
-
-@item @code{port-number} (default: 22)
-The TCP port where the daemon waits for incoming connections.
-
-@item @code{syslog-output?} (default: @code{#t})
-Whether to enable syslog output.
-
-@item @code{pid-file} (default: @code{"/var/run/dropbear.pid"})
-File name of the daemon's PID file.
-
-@item @code{root-login?} (default: @code{#f})
-Whether to allow @code{root} logins.
-
-@item @code{allow-empty-passwords?} (default: @code{#f})
-Whether to allow empty passwords.
-
-@item @code{password-authentication?} (default: @code{#t})
-Whether to enable password-based authentication.
-@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 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}.
-
-This variable is typically used in the @code{hosts-file} field of an
-@code{operating-system} declaration (@pxref{»operating-system«-Referenz,
-@file{/etc/hosts}}):
-
-@example
-(use-modules (gnu) (guix))
-
-(operating-system
-  (host-name "mymachine")
-  ;; ...
-  (hosts-file
-    ;; Create a /etc/hosts file with aliases for "localhost"
-    ;; and "mymachine", as well as for Facebook servers.
-    (plain-file "hosts"
-                (string-append (local-host-aliases host-name)
-                               %facebook-host-aliases))))
-@end example
-
-This mechanism can prevent programs running locally, such as Web browsers,
-from accessing Facebook.
-@end defvr
-
-The @code{(gnu services avahi)} provides the following definition.
-
-@defvr {Scheme Variable} avahi-service-type
-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{http://avahi.org/}).
-Its value must be a @code{zero-configuration} record---see below.
-
-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.
-
-Additionally, add the @var{avahi} package to the system profile so that
-commands such as @command{avahi-browse} are directly usable.
-@end defvr
-
-@deftp {Data Type} avahi-configuration
-Data type representation the configuration for Avahi.
-
-@table @asis
-
-@item @code{host-name} (default: @code{#f})
-If different from @code{#f}, use that as the host name to publish for this
-machine; otherwise, use the machine's actual host name.
-
-@item @code{publish?} (default: @code{#t})
-When true, allow host names and services to be published (broadcast) over
-the network.
-
-@item @code{publish-workstation?} (default: @code{#t})
-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:
-
-@example
-avahi-browse _workstation._tcp
-@end example
-
-@item @code{wide-area?} (default: @code{#f})
-When true, DNS-SD over unicast DNS is enabled.
-
-@item @code{ipv4?} (default: @code{#t})
-@itemx @code{ipv6?} (default: @code{#t})
-These fields determine whether to use IPv4/IPv6 sockets.
-
-@item @code{domains-to-browse} (default: @code{'()})
-This is a list of domains to browse.
-@end table
-@end deftp
-
-@deffn {Scheme Variable} openvswitch-service-type
-This is the type of the @uref{http://www.openvswitch.org, Open vSwitch}
-service, whose value should be an @code{openvswitch-configuration} object.
-@end deffn
-
-@deftp {Data Type} openvswitch-configuration
-Data type representing the configuration of Open vSwitch, a multilayer
-virtual switch which is designed to enable massive network automation
-through programmatic extension.
-
-@table @asis
-@item @code{package} (default: @var{openvswitch})
-Package object of the Open vSwitch.
-
-@end table
-@end deftp
-
-@node X Window
-@subsection X Window
-
-@cindex X11
-@cindex X Window System
-@cindex login manager
-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 SLiM.
-
-@cindex window manager
-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«-Referenz, system-wide packages}).
-
-@defvr {Scheme Variable} slim-service-type
-This is the type for the SLiM graphical login manager for X11.
-
-@cindex session types (X11)
-@cindex X11 session types
-SLiM 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 using @kbd{F1}.  Packages such as
-@code{xfce}, @code{sawfish}, and @code{ratpoison} provide @file{.desktop}
-files; adding them to the system-wide set of packages automatically makes
-them available at the log-in screen.
-
-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.
-@end defvr
-
-@deftp {Data Type} slim-configuration
-Data type representing the configuration of @code{slim-service-type}.
-
-@table @asis
-@item @code{allow-empty-passwords?} (Vorgabe: @code{#t})
-Whether to allow logins with empty passwords.
-
-@item @code{auto-login?} (default: @code{#f})
-@itemx @code{default-user} (default: @code{""})
-When @code{auto-login?} is false, SLiM presents a log-in screen.
-
-When @code{auto-login?} is true, SLiM logs in directly as
-@code{default-user}.
-
-@item @code{theme} (default: @code{%default-slim-theme})
-@itemx @code{theme-name} (default: @code{%default-slim-theme-name})
-The graphical theme to use and its name.
-
-@item @code{auto-login-session} (default: @code{#f})
-If true, this must be the name of the executable to start as the default
-session---e.g., @code{(file-append windowmaker "/bin/windowmaker")}.
-
-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.
-
-@quotation Anmerkung
-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.
-@end quotation
-
-@item @code{startx} (default: @code{(xorg-start-command)})
-The command used to start the X11 graphical server.
-
-@item @code{xauth} (default: @code{xauth})
-The XAuth package to use.
-
-@item @code{shepherd} (default: @code{shepherd})
-The Shepherd package used when invoking @command{halt} and @command{reboot}.
-
-@item @code{sessreg} (default: @code{sessreg})
-The sessreg package used in order to register the session.
-
-@item @code{slim} (default: @code{slim})
-The SLiM package to use.
-@end table
-@end deftp
-
-@defvr {Scheme Variable} %default-theme
-@defvrx {Scheme Variable} %default-theme-name
-The default SLiM theme and its name.
-@end defvr
-
-
-@deftp {Data Type} sddm-configuration
-This is the data type representing the sddm service configuration.
-
-@table @asis
-@item @code{display-server} (default: "x11")
-Select display server to use for the greeter. Valid values are "x11" or
-"wayland".
-
-@item @code{numlock} (default: "on")
-Valid values are "on", "off" or "none".
-
-@item @code{halt-command} (default @code{#~(string-apppend #$shepherd "/sbin/halt")})
-Command to run when halting.
-
-@item @code{reboot-command} (default @code{#~(string-append #$shepherd "/sbin/reboot")})
-Command to run when rebooting.
-
-@item @code{theme} (default "maldives")
-Theme to use. Default themes provided by SDDM are "elarun" or "maldives".
-
-@item @code{themes-directory} (default "/run/current-system/profile/share/sddm/themes")
-Directory to look for themes.
-
-@item @code{faces-directory} (default "/run/current-system/profile/share/sddm/faces")
-Directory to look for faces.
-
-@item @code{default-path} (default "/run/current-system/profile/bin")
-Default PATH to use.
-
-@item @code{minimum-uid} (default 1000)
-Minimum UID to display in SDDM.
-
-@item @code{maximum-uid} (default 2000)
-Maximum UID to display in SDDM
-
-@item @code{remember-last-user?} (default #t)
-Remember last user.
-
-@item @code{remember-last-session?} (default #t)
-Remember last session.
-
-@item @code{hide-users} (default "")
-Usernames to hide from SDDM greeter.
-
-@item @code{hide-shells} (default @code{#~(string-append #$shadow "/sbin/nologin")})
-Users with shells listed will be hidden from the SDDM greeter.
-
-@item @code{session-command} (default @code{#~(string-append #$sddm "/share/sddm/scripts/wayland-session")})
-Script to run before starting a wayland session.
-
-@item @code{sessions-directory} (default "/run/current-system/profile/share/wayland-sessions")
-Directory to look for desktop files starting wayland sessions.
-
-@item @code{xorg-server-path} (default @code{xorg-start-command})
-Path to xorg-server.
-
-@item @code{xauth-path} (default @code{#~(string-append #$xauth "/bin/xauth")})
-Path to xauth.
-
-@item @code{xephyr-path} (default @code{#~(string-append #$xorg-server "/bin/Xephyr")})
-Path to Xephyr.
-
-@item @code{xdisplay-start} (default @code{#~(string-append #$sddm "/share/sddm/scripts/Xsetup")})
-Script to run after starting xorg-server.
-
-@item @code{xdisplay-stop} (default @code{#~(string-append #$sddm "/share/sddm/scripts/Xstop")})
-Script to run before stopping xorg-server.
-
-@item @code{xsession-command} (Vorgabe: @code{xinitrc})
-Script to run before starting a X session.
-
-@item @code{xsessions-directory} (default: "/run/current-system/profile/share/xsessions")
-Directory to look for desktop files starting X sessions.
-
-@item @code{minimum-vt} (default: 7)
-Minimum VT to use.
-
-@item @code{xserver-arguments} (default "-nolisten tcp")
-Arguments to pass to xorg-server.
-
-@item @code{auto-login-user} (default "")
-User to use for auto-login.
-
-@item @code{auto-login-session} (default "")
-Desktop file to use for auto-login.
-
-@item @code{relogin?} (default #f)
-Relogin after logout.
-
-@end table
-@end deftp
-
-@cindex login manager
-@cindex X11 login
-@deffn {Scheme Procedure} sddm-service config
-Return a service that spawns the SDDM graphical login manager for config of
-type @code{<sddm-configuration>}.
-
-@example
-  (sddm-service (sddm-configuration
-                 (auto-login-user "Alice")
-                 (auto-login-session "xfce.desktop")))
-@end example
-@end deffn
-
-@deffn {Scheme Procedure} xorg-start-command [#:guile] @
-  [#:modules %default-xorg-modules] @ [#:fonts %default-xorg-fonts] @
-[#:configuration-file (xorg-configuration-file @dots{})] @ [#:xorg-server
-@var{xorg-server}] [#:xserver-arguments '("-nolisten" "tcp")] Return a
-@code{startx} script in which @var{modules}, a list of X module packages,
-and @var{fonts}, a list of X font directories, are available.  See
-@code{xorg-wrapper} for more details on the arguments.  The result should be
-used in place of @code{startx}.
-
-Usually the X server is started by a login manager.
-@end deffn
-
-@cindex @code{-listen tcp}, for X11.
-This procedure is useful to override command line options for the X server,
-such as having it listen to over TCP:
-
-@example
-(operating-system
-  ...
-  (services
-    (modify-services %desktop-services
-      (slim-service-type config =>
-        (slim-configuration
-          (inherit config)
-          (startx (xorg-start-command
-                   #:xserver-arguments '("-listen" "tcp"))))))))
-@end example
-
-@deffn {Scheme Procedure} xorg-configuration-file @
-  [#:modules %default-xorg-modules] @ [#:fonts %default-xorg-fonts] @
-[#:drivers '()] [#:resolutions '()] [#:extra-config '()] Return a
-configuration file for the Xorg server containing search paths for all the
-common drivers.
-
-@var{modules} must be a list of @dfn{module packages} loaded by the Xorg
-server---e.g., @code{xf86-video-vesa}, @code{xf86-input-keyboard}, and so
-on.  @var{fonts} must be a list of font directories to add to the server's
-@dfn{font path}.
-
-@var{drivers} 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")}.
-
-Likewise, when @var{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))}.
-
-Last, @var{extra-config} 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.
-
-@cindex Keymap
-@cindex Tastaturbelegung
-This procedure is especially useful to configure a different keyboard layout
-than the default US keymap.  For instance, to use the ``bépo'' keymap by
-default on the display manager:
-
-@example
-(define bepo-evdev
-  "Section \"InputClass\"
-        Identifier \"evdev keyboard catchall\"
-        Driver \"evdev\"
-        MatchIsKeyboard \"on\"
-        Option \"xkb_layout\" \"fr\"
-        Option \"xkb_variant\" \"bepo\"
-EndSection")
-
-(operating-system
-  ...
-  (services
-    (modify-services %desktop-services
-      (slim-service-type config =>
-        (slim-configuration
-          (inherit config)
-          (startx (xorg-start-command
-                   #:configuration-file
-                   (xorg-configuration-file
-                     #:extra-config
-                     (list bepo-evdev)))))))))
-@end example
-
-The @code{MatchIsKeyboard} line specifies that we only apply the
-configuration to keyboards.  Without this line, other devices such as
-touchpad may not work correctly because they will be attached to the wrong
-driver.  In this example, the user typically used @code{setxkbmap fr bepo}
-to set their favorite keymap once logged in.  The first argument corresponds
-to the layout, while the second argument corresponds to the variant.  The
-@code{xkb_variant} line can be omitted to select the default variant.
-@end deffn
-
-@deffn {Scheme Procedure} screen-locker-service @var{package} [@var{program}]
-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:
-
-@lisp
-(screen-locker-service xlockmore "xlock")
-@end lisp
-
-makes the good ol' XlockMore usable.
-@end deffn
-
-
-@node Druckdienste
-@subsection Druckdienste
-
-@cindex printer support with CUPS
-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:
-
-@deffn {Scheme Variable} cups-service-type
-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:
-@example
-(service cups-service-type)
-@end example
-@end deffn
-
-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.
-
-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):
-
-@example
-(service cups-service-type
-         (cups-configuration
-           (web-interface? #t)
-           (extensions
-             (list cups-filters escpr hplip-minimal))))
-@end example
-
-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.
-
-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.
-
-@c The following documentation was initially generated by
-@c (generate-documentation) in (gnu services cups).  Manually maintained
-@c documentation is better, so we shouldn't hesitate to edit below as
-@c needed.  However if the change you want to make to this documentation
-@c can be done in an automated way, it's probably easier to change
-@c (generate-documentation) than to make it below and have to deal with
-@c the churn as CUPS updates.
-
-
-Available @code{cups-configuration} fields are:
-
-@deftypevr {@code{cups-configuration} parameter} package cups
-The CUPS package.
-@end deftypevr
-
-@deftypevr {@code{cups-configuration} parameter} package-list extensions
-Drivers and other extensions to the CUPS package.
-@end deftypevr
-
-@deftypevr {@code{cups-configuration} parameter} files-configuration files-configuration
-Configuration of where to write logs, what directories to use for print
-spools, and related privileged configuration parameters.
-
-Available @code{files-configuration} fields are:
-
-@deftypevr {@code{files-configuration} parameter} log-location access-log
-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}.
-
-Defaults to @samp{"/var/log/cups/access_log"}.
-@end deftypevr
-
-@deftypevr {@code{files-configuration} parameter} file-name cache-dir
-Where CUPS should cache data.
-
-Defaults to @samp{"/var/cache/cups"}.
-@end deftypevr
-
-@deftypevr {@code{files-configuration} parameter} string config-file-perm
-Specifies the permissions for all configuration files that the scheduler
-writes.
-
-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.
-
-Defaults to @samp{"0640"}.
-@end deftypevr
-
-@deftypevr {@code{files-configuration} parameter} log-location error-log
-Defines the error 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-error_log}.
-
-Defaults to @samp{"/var/log/cups/error_log"}.
-@end deftypevr
-
-@deftypevr {@code{files-configuration} parameter} string fatal-errors
-Specifies which errors are fatal, causing the scheduler to exit.  The kind
-strings are:
-
-@table @code
-@item none
-No errors are fatal.
-
-@item all
-All of the errors below are fatal.
-
-@item browse
-Browsing initialization errors are fatal, for example failed connections to
-the DNS-SD daemon.
-
-@item config
-Configuration file syntax errors are fatal.
-
-@item listen
-Listen or Port errors are fatal, except for IPv6 failures on the loopback or
-@code{any} addresses.
-
-@item log
-Log file creation or write errors are fatal.
-
-@item permissions
-Bad startup file permissions are fatal, for example shared TLS certificate
-and key files with world-read permissions.
-@end table
-
-Defaults to @samp{"all -browse"}.
-@end deftypevr
-
-@deftypevr {@code{files-configuration} parameter} boolean file-device?
-Specifies whether the file pseudo-device can be used for new printer
-queues.  The URI @uref{file:///dev/null} is always allowed.
-
-Defaults to @samp{#f}.
-@end deftypevr
-
-@deftypevr {@code{files-configuration} parameter} string group
-Specifies the group name or ID that will be used when executing external
-programs.
-
-Defaults to @samp{"lp"}.
-@end deftypevr
-
-@deftypevr {@code{files-configuration} parameter} string log-file-perm
-Specifies the permissions for all log files that the scheduler writes.
-
-Defaults to @samp{"0644"}.
-@end deftypevr
-
-@deftypevr {@code{files-configuration} parameter} log-location page-log
-Defines the page 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-page_log}.
-
-Defaults to @samp{"/var/log/cups/page_log"}.
-@end deftypevr
-
-@deftypevr {@code{files-configuration} parameter} string remote-root
-Specifies the username that is associated with unauthenticated accesses by
-clients claiming to be the root user.  The default is @code{remroot}.
-
-Defaults to @samp{"remroot"}.
-@end deftypevr
-
-@deftypevr {@code{files-configuration} parameter} file-name request-root
-Specifies the directory that contains print jobs and other HTTP request
-data.
-
-Defaults to @samp{"/var/spool/cups"}.
-@end deftypevr
-
-@deftypevr {@code{files-configuration} parameter} sandboxing sandboxing
-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.
-
-Defaults to @samp{strict}.
-@end deftypevr
-
-@deftypevr {@code{files-configuration} parameter} file-name server-keychain
-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.
-
-Defaults to @samp{"/etc/cups/ssl"}.
-@end deftypevr
-
-@deftypevr {@code{files-configuration} parameter} file-name server-root
-Specifies the directory containing the server configuration files.
-
-Defaults to @samp{"/etc/cups"}.
-@end deftypevr
-
-@deftypevr {@code{files-configuration} parameter} boolean sync-on-close?
-Specifies whether the scheduler calls fsync(2) after writing configuration
-or state files.
-
-Defaults to @samp{#f}.
-@end deftypevr
-
-@deftypevr {@code{files-configuration} parameter} space-separated-string-list system-group
-Specifies the group(s) to use for @code{@@SYSTEM} group authentication.
-@end deftypevr
-
-@deftypevr {@code{files-configuration} parameter} file-name temp-dir
-Specifies the directory where temporary files are stored.
-
-Defaults to @samp{"/var/spool/cups/tmp"}.
-@end deftypevr
-
-@deftypevr {@code{files-configuration} parameter} string user
-Specifies the user name or ID that is used when running external programs.
-
-Defaults to @samp{"lp"}.
-@end deftypevr
-@end deftypevr
-
-@deftypevr {@code{cups-configuration} parameter} access-log-level access-log-level
-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.
-
-Defaults to @samp{actions}.
-@end deftypevr
-
-@deftypevr {@code{cups-configuration} parameter} boolean auto-purge-jobs?
-Specifies whether to purge job history data automatically when it is no
-longer required for quotas.
-
-Defaults to @samp{#f}.
-@end deftypevr
-
-@deftypevr {@code{cups-configuration} parameter} browse-local-protocols browse-local-protocols
-Specifies which protocols to use for local printer sharing.
-
-Defaults to @samp{dnssd}.
-@end deftypevr
-
-@deftypevr {@code{cups-configuration} parameter} boolean browse-web-if?
-Specifies whether the CUPS web interface is advertised.
-
-Defaults to @samp{#f}.
-@end deftypevr
-
-@deftypevr {@code{cups-configuration} parameter} boolean browsing?
-Specifies whether shared printers are advertised.
-
-Defaults to @samp{#f}.
-@end deftypevr
-
-@deftypevr {@code{cups-configuration} parameter} string classification
-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.
-
-Defaults to @samp{""}.
-@end deftypevr
-
-@deftypevr {@code{cups-configuration} parameter} boolean classify-override?
-Specifies whether users may override the classification (cover page) of
-individual print jobs using the @code{job-sheets} option.
-
-Defaults to @samp{#f}.
-@end deftypevr
-
-@deftypevr {@code{cups-configuration} parameter} default-auth-type default-auth-type
-Specifies the default type of authentication to use.
-
-Defaults to @samp{Basic}.
-@end deftypevr
-
-@deftypevr {@code{cups-configuration} parameter} default-encryption default-encryption
-Specifies whether encryption will be used for authenticated requests.
-
-Defaults to @samp{Required}.
-@end deftypevr
-
-@deftypevr {@code{cups-configuration} parameter} string default-language
-Specifies the default language to use for text and web content.
-
-Defaults to @samp{"en"}.
-@end deftypevr
-
-@deftypevr {@code{cups-configuration} parameter} string default-paper-size
-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"}.
-
-Defaults to @samp{"Auto"}.
-@end deftypevr
-
-@deftypevr {@code{cups-configuration} parameter} string default-policy
-Specifies the default access policy to use.
-
-Defaults to @samp{"default"}.
-@end deftypevr
-
-@deftypevr {@code{cups-configuration} parameter} boolean default-shared?
-Specifies whether local printers are shared by default.
-
-Defaults to @samp{#t}.
-@end deftypevr
-
-@deftypevr {@code{cups-configuration} parameter} non-negative-integer dirty-clean-interval
-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.
-
-Defaults to @samp{30}.
-@end deftypevr
-
-@deftypevr {@code{cups-configuration} parameter} error-policy error-policy
-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.
-
-Defaults to @samp{stop-printer}.
-@end deftypevr
-
-@deftypevr {@code{cups-configuration} parameter} non-negative-integer filter-limit
-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.
-
-Defaults to @samp{0}.
-@end deftypevr
-
-@deftypevr {@code{cups-configuration} parameter} non-negative-integer filter-nice
-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.
-
-Defaults to @samp{0}.
-@end deftypevr
-
-@deftypevr {@code{cups-configuration} parameter} host-name-lookups host-name-lookups
-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.
-
-Defaults to @samp{#f}.
-@end deftypevr
-
-@deftypevr {@code{cups-configuration} parameter} non-negative-integer job-kill-delay
-Specifies the number of seconds to wait before killing the filters and
-backend associated with a canceled or held job.
-
-Defaults to @samp{30}.
-@end deftypevr
-
-@deftypevr {@code{cups-configuration} parameter} non-negative-integer job-retry-interval
-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}.
-
-Defaults to @samp{30}.
-@end deftypevr
-
-@deftypevr {@code{cups-configuration} parameter} non-negative-integer job-retry-limit
-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}.
-
-Defaults to @samp{5}.
-@end deftypevr
-
-@deftypevr {@code{cups-configuration} parameter} boolean keep-alive?
-Specifies whether to support HTTP keep-alive connections.
-
-Defaults to @samp{#t}.
-@end deftypevr
-
-@deftypevr {@code{cups-configuration} parameter} non-negative-integer keep-alive-timeout
-Specifies how long an idle client connection remains open, in seconds.
-
-Defaults to @samp{30}.
-@end deftypevr
-
-@deftypevr {@code{cups-configuration} parameter} non-negative-integer limit-request-body
-Specifies the maximum size of print files, IPP requests, and HTML form
-data.  A limit of 0 disables the limit check.
-
-Defaults to @samp{0}.
-@end deftypevr
-
-@deftypevr {@code{cups-configuration} parameter} multiline-string-list listen
-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.
-@end deftypevr
-
-@deftypevr {@code{cups-configuration} parameter} non-negative-integer listen-back-log
-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.
-
-Defaults to @samp{128}.
-@end deftypevr
-
-@deftypevr {@code{cups-configuration} parameter} location-access-control-list location-access-controls
-Specifies a set of additional access controls.
-
-Available @code{location-access-controls} fields are:
-
-@deftypevr {@code{location-access-controls} parameter} file-name path
-Specifies the URI path to which the access control applies.
-@end deftypevr
-
-@deftypevr {@code{location-access-controls} parameter} access-control-list access-controls
-Access controls for all access to this path, in the same format as the
-@code{access-controls} of @code{operation-access-control}.
-
-Defaults to @samp{()}.
-@end deftypevr
-
-@deftypevr {@code{location-access-controls} parameter} method-access-control-list method-access-controls
-Access controls for method-specific access to this path.
-
-Defaults to @samp{()}.
-
-Available @code{method-access-controls} fields are:
-
-@deftypevr {@code{method-access-controls} parameter} boolean reverse?
-If @code{#t}, apply access controls to all methods except the listed
-methods.  Otherwise apply to only the listed methods.
-
-Defaults to @samp{#f}.
-@end deftypevr
-
-@deftypevr {@code{method-access-controls} parameter} method-list methods
-Methods to which this access control applies.
-
-Defaults to @samp{()}.
-@end deftypevr
-
-@deftypevr {@code{method-access-controls} parameter} access-control-list access-controls
-Access control directives, as a list of strings.  Each string should be one
-directive, such as "Order allow,deny".
-
-Defaults to @samp{()}.
-@end deftypevr
-@end deftypevr
-@end deftypevr
-
-@deftypevr {@code{cups-configuration} parameter} non-negative-integer log-debug-history
-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.
-
-Defaults to @samp{100}.
-@end deftypevr
-
-@deftypevr {@code{cups-configuration} parameter} log-level log-level
-Specifies the level of logging for the ErrorLog file.  The value @code{none}
-stops all logging while @code{debug2} logs everything.
-
-Defaults to @samp{info}.
-@end deftypevr
-
-@deftypevr {@code{cups-configuration} parameter} log-time-format log-time-format
-Specifies the format of the date and time in the log files.  The value
-@code{standard} logs whole seconds while @code{usecs} logs microseconds.
-
-Defaults to @samp{standard}.
-@end deftypevr
-
-@deftypevr {@code{cups-configuration} parameter} non-negative-integer max-clients
-Specifies the maximum number of simultaneous clients that are allowed by the
-scheduler.
-
-Defaults to @samp{100}.
-@end deftypevr
-
-@deftypevr {@code{cups-configuration} parameter} non-negative-integer max-clients-per-host
-Specifies the maximum number of simultaneous clients that are allowed from a
-single address.
-
-Defaults to @samp{100}.
-@end deftypevr
-
-@deftypevr {@code{cups-configuration} parameter} non-negative-integer max-copies
-Specifies the maximum number of copies that a user can print of each job.
-
-Defaults to @samp{9999}.
-@end deftypevr
-
-@deftypevr {@code{cups-configuration} parameter} non-negative-integer max-hold-time
-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.
-
-Defaults to @samp{0}.
-@end deftypevr
-
-@deftypevr {@code{cups-configuration} parameter} non-negative-integer max-jobs
-Specifies the maximum number of simultaneous jobs that are allowed.  Set to
-0 to allow an unlimited number of jobs.
-
-Defaults to @samp{500}.
-@end deftypevr
-
-@deftypevr {@code{cups-configuration} parameter} non-negative-integer max-jobs-per-printer
-Specifies the maximum number of simultaneous jobs that are allowed per
-printer.  A value of 0 allows up to MaxJobs jobs per printer.
-
-Defaults to @samp{0}.
-@end deftypevr
-
-@deftypevr {@code{cups-configuration} parameter} non-negative-integer max-jobs-per-user
-Specifies the maximum number of simultaneous jobs that are allowed per
-user.  A value of 0 allows up to MaxJobs jobs per user.
-
-Defaults to @samp{0}.
-@end deftypevr
-
-@deftypevr {@code{cups-configuration} parameter} non-negative-integer max-job-time
-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.
-
-Defaults to @samp{10800}.
-@end deftypevr
-
-@deftypevr {@code{cups-configuration} parameter} non-negative-integer max-log-size
-Specifies the maximum size of the log files before they are rotated, in
-bytes.  The value 0 disables log rotation.
-
-Defaults to @samp{1048576}.
-@end deftypevr
-
-@deftypevr {@code{cups-configuration} parameter} non-negative-integer multiple-operation-timeout
-Specifies the maximum amount of time to allow between files in a multiple
-file print job, in seconds.
-
-Defaults to @samp{300}.
-@end deftypevr
-
-@deftypevr {@code{cups-configuration} parameter} string page-log-format
-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:
-
-@table @samp
-@item %%
-insert a single percent character
-
-@item %@{name@}
-insert the value of the specified IPP attribute
-
-@item %C
-insert the number of copies for the current page
-
-@item %P
-insert the current page number
-
-@item %T
-insert the current date and time in common log format
-
-@item %j
-insert the job ID
-
-@item %p
-insert the printer name
-
-@item %u
-insert the username
-@end table
-
-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.
-
-Defaults to @samp{""}.
-@end deftypevr
-
-@deftypevr {@code{cups-configuration} parameter} environment-variables environment-variables
-Passes the specified environment variable(s) to child processes; a list of
-strings.
-
-Defaults to @samp{()}.
-@end deftypevr
-
-@deftypevr {@code{cups-configuration} parameter} policy-configuration-list policies
-Specifies named access control policies.
-
-Available @code{policy-configuration} fields are:
-
-@deftypevr {@code{policy-configuration} parameter} string name
-Name of the policy.
-@end deftypevr
-
-@deftypevr {@code{policy-configuration} parameter} string job-private-access
-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}.
-
-Defaults to @samp{"@@OWNER @@SYSTEM"}.
-@end deftypevr
-
-@deftypevr {@code{policy-configuration} parameter} string job-private-values
-Specifies the list of job values to make private, or @code{all},
-@code{default}, or @code{none}.
-
-Defaults to @samp{"job-name job-originating-host-name
-job-originating-user-name phone"}.
-@end deftypevr
-
-@deftypevr {@code{policy-configuration} parameter} string subscription-private-access
-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}.
-
-Defaults to @samp{"@@OWNER @@SYSTEM"}.
-@end deftypevr
-
-@deftypevr {@code{policy-configuration} parameter} string subscription-private-values
-Specifies the list of job values to make private, or @code{all},
-@code{default}, or @code{none}.
-
-Defaults to @samp{"notify-events notify-pull-method notify-recipient-uri
-notify-subscriber-user-name notify-user-data"}.
-@end deftypevr
-
-@deftypevr {@code{policy-configuration} parameter} operation-access-control-list access-controls
-Access control by IPP operation.
-
-Defaults to @samp{()}.
-@end deftypevr
-@end deftypevr
-
-@deftypevr {@code{cups-configuration} parameter} boolean-or-non-negative-integer preserve-job-files
-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.
-
-Defaults to @samp{86400}.
-@end deftypevr
-
-@deftypevr {@code{cups-configuration} parameter} boolean-or-non-negative-integer preserve-job-history
-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.
-
-Defaults to @samp{#t}.
-@end deftypevr
-
-@deftypevr {@code{cups-configuration} parameter} non-negative-integer reload-timeout
-Specifies the amount of time to wait for job completion before restarting
-the scheduler.
-
-Defaults to @samp{30}.
-@end deftypevr
-
-@deftypevr {@code{cups-configuration} parameter} string rip-cache
-Specifies the maximum amount of memory to use when converting documents into
-bitmaps for a printer.
-
-Defaults to @samp{"128m"}.
-@end deftypevr
-
-@deftypevr {@code{cups-configuration} parameter} string server-admin
-Specifies the email address of the server administrator.
-
-Defaults to @samp{"root@@localhost.localdomain"}.
-@end deftypevr
-
-@deftypevr {@code{cups-configuration} parameter} host-name-list-or-* server-alias
-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{*}.
-
-Defaults to @samp{*}.
-@end deftypevr
-
-@deftypevr {@code{cups-configuration} parameter} string server-name
-Specifies the fully-qualified host name of the server.
-
-Defaults to @samp{"localhost"}.
-@end deftypevr
-
-@deftypevr {@code{cups-configuration} parameter} server-tokens server-tokens
-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}.
-
-Defaults to @samp{Minimal}.
-@end deftypevr
-
-@deftypevr {@code{cups-configuration} parameter} string set-env
-Set the specified environment variable to be passed to child processes.
-
-Defaults to @samp{"variable value"}.
-@end deftypevr
-
-@deftypevr {@code{cups-configuration} parameter} multiline-string-list ssl-listen
-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.
-
-Defaults to @samp{()}.
-@end deftypevr
-
-@deftypevr {@code{cups-configuration} parameter} ssl-options ssl-options
-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.
-
-Defaults to @samp{()}.
-@end deftypevr
-
-@deftypevr {@code{cups-configuration} parameter} boolean strict-conformance?
-Specifies whether the scheduler requires clients to strictly adhere to the
-IPP specifications.
-
-Defaults to @samp{#f}.
-@end deftypevr
-
-@deftypevr {@code{cups-configuration} parameter} non-negative-integer timeout
-Specifies the HTTP request timeout, in seconds.
-
-Defaults to @samp{300}.
-
-@end deftypevr
-
-@deftypevr {@code{cups-configuration} parameter} boolean web-interface?
-Specifies whether the web interface is enabled.
-
-Defaults to @samp{#f}.
-@end deftypevr
-
-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}.
-
-Available @code{opaque-cups-configuration} fields are:
-
-@deftypevr {@code{opaque-cups-configuration} parameter} package cups
-The CUPS package.
-@end deftypevr
-
-@deftypevr {@code{opaque-cups-configuration} parameter} string cupsd.conf
-The contents of the @code{cupsd.conf}, as a string.
-@end deftypevr
-
-@deftypevr {@code{opaque-cups-configuration} parameter} string cups-files.conf
-The contents of the @code{cups-files.conf} file, as a string.
-@end deftypevr
-
-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:
-
-@example
-(service cups-service-type
-         (opaque-cups-configuration
-           (cupsd.conf cupsd.conf)
-           (cups-files.conf cups-files.conf)))
-@end example
-
-
-@node Desktop-Dienste
-@subsection Desktop-Dienste
-
-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.
-
-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:
-
-@defvr {Scheme Variable} %desktop-services
-This is a list of services that builds upon @var{%base-services} and adds or
-adjusts services for a typical ``desktop'' setup.
-
-In particular, it adds a graphical login manager (@pxref{X Window,
-@code{slim-service}}), screen lockers, a network management tool
-(@pxref{Netzwerkdienste, @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{Netzwerkdienste}), the Avahi daemon, and has the
-name service switch service configured to be able to use @code{nss-mdns}
-(@pxref{Name Service Switch, mDNS}).
-@end defvr
-
-The @var{%desktop-services} variable can be used as the @code{services}
-field of an @code{operating-system} declaration (@pxref{»operating-system«-Referenz, @code{services}}).
-
-Additionally, the @code{gnome-desktop-service}, @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} 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.
-
-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 the @code{slim-service} for 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.
-
-@deffn {Scheme Procedure} gnome-desktop-service
-Return a service that adds the @code{gnome} package to the system profile,
-and extends polkit with the actions from @code{gnome-settings-daemon}.
-@end deffn
-
-@deffn {Scheme Procedure} xfce-desktop-service
-Return a service that 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.
-@end deffn
-
-@deffn {Scheme Variable} mate-desktop-service-type
-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.)
-
-This service adds the @code{mate} package to the system profile, and extends
-polkit with the actions from @code{mate-settings-daemon}.
-@end deffn
-
-@deftp {Data Type} mate-desktop-configuration
-Configuration record for the MATE desktop environment.
-
-@table @asis
-@item @code{mate} (default @code{mate})
-The MATE 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}.
-@end deffn
-
-@deftp {Data Type} enlightenment-desktop-service-configuration
-@table @asis
-@item @code{enlightenment} (Vorgabe: @code{enlightenment})
-Das Enlightenment-Paket, was benutzt werden soll.
-@end table
-@end deftp
-
-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}:
-
-@example
-(use-modules (gnu))
-(use-service-modules desktop)
-(operating-system
-  ...
-  ;; cons* adds items to the list given as its last argument.
-  (services (cons* (gnome-desktop-service)
-                   (xfce-desktop-service)
-                   %desktop-services))
-  ...)
-@end example
-
-These desktop environments will then be available as options in the
-graphical login window.
-
-The actual service definitions included in @code{%desktop-services} and
-provided by @code{(gnu services dbus)} and @code{(gnu services desktop)} are
-described below.
-
-@deffn {Scheme Procedure} dbus-service [#:dbus @var{dbus}] [#:services '()]
-Return a service that runs the ``system bus'', using @var{dbus}, with
-support for @var{services}.
-
-@uref{http://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.
-
-@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)}.
-@end deffn
-
-@deffn {Scheme Procedure} elogind-service [#:config @var{config}]
-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.
-
-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.
-
-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:
-
-@table @code
-@item kill-user-processes?
-@code{#f}
-@item kill-only-users
-@code{()}
-@item kill-exclude-users
-@code{("root")}
-@item inhibit-delay-max-seconds
-@code{5}
-@item handle-power-key
-@code{poweroff}
-@item handle-suspend-key
-@code{suspend}
-@item handle-hibernate-key
-@code{hibernate}
-@item handle-lid-switch
-@code{suspend}
-@item handle-lid-switch-docked
-@code{ignore}
-@item power-key-ignore-inhibited?
-@code{#f}
-@item suspend-key-ignore-inhibited?
-@code{#f}
-@item hibernate-key-ignore-inhibited?
-@code{#f}
-@item lid-switch-ignore-inhibited?
-@code{#t}
-@item holdoff-timeout-seconds
-@code{30}
-@item idle-action
-@code{ignore}
-@item idle-action-seconds
-@code{(* 30 60)}
-@item runtime-directory-size-percent
-@code{10}
-@item runtime-directory-size
-@code{#f}
-@item remove-ipc?
-@code{#t}
-@item suspend-state
-@code{("mem" "standby" "freeze")}
-@item suspend-mode
-@code{()}
-@item hibernate-state
-@code{("disk")}
-@item hibernate-mode
-@code{("platform" "shutdown")}
-@item hybrid-sleep-state
-@code{("disk")}
-@item hybrid-sleep-mode
-@code{("suspend" "platform" "shutdown")}
-@end table
-@end deffn
-
-@deffn {Scheme Procedure} accountsservice-service @
-       [#: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.
-
-The @var{accountsservice} keyword argument is the @code{accountsservice}
-package to expose as a service.
-@end deffn
-
-@deffn {Scheme Procedure} polkit-service @
-                         [#:polkit @var{polkit}] Return a service that runs the
-@uref{http://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.
-@end deffn
-
-@defvr {Scheme Variable} upower-service-type
-Service that runs @uref{http://upower.freedesktop.org/, @command{upowerd}},
-a system-wide monitor for power consumption and battery levels, with the
-given configuration settings.
-
-It implements the @code{org.freedesktop.UPower} D-Bus interface, and is
-notably used by GNOME.
-@end defvr
-
-@deftp {Data Type} upower-configuration
-Data type representation the configuration for UPower.
-
-@table @asis
-
-@item @code{upower} (default: @var{upower})
-Package to use for @code{upower}.
-
-@item @code{watts-up-pro?} (default: @code{#f})
-Enable the Watts Up Pro device.
-
-@item @code{poll-batteries?} (default: @code{#t})
-Enable polling the kernel for battery level changes.
-
-@item @code{ignore-lid?} (default: @code{#f})
-Ignore the lid state, this can be useful if it's incorrect on a device.
-
-@item @code{use-percentage-for-policy?} (default: @code{#f})
-Whether battery percentage based policy should be used.  The default is to
-use the time left, change to @code{#t} to use the percentage.
-
-@item @code{percentage-low} (default: @code{10})
-When @code{use-percentage-for-policy?} is @code{#t}, this sets the
-percentage at which the battery is considered low.
-
-@item @code{percentage-critical} (default: @code{3})
-When @code{use-percentage-for-policy?} is @code{#t}, this sets the
-percentage at which the battery is considered critical.
-
-@item @code{percentage-action} (default: @code{2})
-When @code{use-percentage-for-policy?} is @code{#t}, this sets the
-percentage at which action will be taken.
-
-@item @code{time-low} (default: @code{1200})
-When @code{use-time-for-policy?} is @code{#f}, this sets the time remaining
-in seconds at which the battery is considered low.
-
-@item @code{time-critical} (default: @code{300})
-When @code{use-time-for-policy?} is @code{#f}, this sets the time remaining
-in seconds at which the battery is considered critical.
-
-@item @code{time-action} (default: @code{120})
-When @code{use-time-for-policy?} is @code{#f}, this sets the time remaining
-in seconds at which action will be taken.
-
-@item @code{critical-power-action} (default: @code{'hybrid-sleep})
-The action taken when @code{percentage-action} or @code{time-action} is
-reached (depending on the configuration of
-@code{use-percentage-for-policy?}).
-
-Possible values are:
-
-@itemize @bullet
-@item
-@code{'power-off}
-
-@item
-@code{'hibernate}
-
-@item
-@code{'hybrid-sleep}.
-@end itemize
-
-@end table
-@end deftp
-
-@deffn {Scheme Procedure} udisks-service [#:udisks @var{udisks}]
-Return a service for @uref{http://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.
-@end deffn
-
-@deffn {Scheme Procedure} colord-service [#:colord @var{colord}]
-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{http://www.freedesktop.org/software/colord/, the
-colord web site} for more information.
-@end deffn
-
-@deffn {Scheme Procedure} geoclue-application name [#:allowed? #t] [#:system? #f] [#:users '()]
-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.
-@end deffn
-
-@defvr {Scheme Variable} %standard-geoclue-applications
-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.
-@end defvr
-
-@deffn {Scheme Procedure} geoclue-service [#:colord @var{colord}] @
-                         [#: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.
-@end deffn
-
-@deffn {Scheme Procedure} bluetooth-service [#:bluez @var{bluez}] @
-       [@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.
-
-Users need to be in the @code{lp} group to access the D-Bus service.
-@end deffn
-
-@node Tondienste
-@subsection Tondienste
-
-@cindex sound support
-@cindex ALSA
-@cindex PulseAudio, sound support
-
-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.
-
-@deffn {Scheme Variable} alsa-service-type
-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:
-
-@example
-(service alsa-service-type)
-@end example
-
-See below for details about @code{alsa-configuration}.
-@end deffn
-
-@deftp {Datentyp} alsa-configuration
-Repräsentiert die Konfiguration für den Dienst @code{alsa-service}.
-
-@table @asis
-@item @code{alsa-plugins} (Vorgabe: @var{alsa-plugins})
-@code{alsa-plugins}-Paket, was benutzt werden soll.
-
-@item @code{pulseaudio?} (Vorgabe: @var{#t})
-Whether ALSA applications should transparently be made to use the
-@uref{http://www.pulseaudio.org/, PulseAudio} sound server.
-
-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.
-
-@item @code{extra-options} (Vorgabe: @var{""})
-String to append to the @file{/etc/asound.conf} file.
-
-@end table
-@end deftp
-
-Individual users who want to override the system configuration of ALSA can
-do it with the @file{~/.asoundrc} file:
-
-@example
-# In guix, we have to specify the absolute path for plugins.
-pcm_type.jack @{
-  lib "/home/alice/.guix-profile/lib/alsa-lib/libasound_module_pcm_jack.so"
-@}
-
-# Routing ALSA to jack:
-# <http://jackaudio.org/faq/routing_alsa.html>.
-pcm.rawjack @{
-  type jack
-  playback_ports @{
-    0 system:playback_1
-    1 system:playback_2
-  @}
-
-  capture_ports @{
-    0 system:capture_1
-    1 system:capture_2
-  @}
-@}
-
-pcm.!default @{
-  type plug
-  slave @{
-    pcm "rawjack"
-  @}
-@}
-@end example
-
-See @uref{https://www.alsa-project.org/main/index.php/Asoundrc} for the
-details.
-
-
-@node Datenbankdienste
-@subsection Datenbankdienste
-
-@cindex Datenbank
-@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.
-
-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}.
-
-@cindex postgresql extension-packages
-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:
-
-@cindex postgis
-@example
-(use-package-modules databases geo)
-
-(operating-system
-  ...
-  ;; postgresql is required to run `psql' but postgis is not required for
-  ;; proper operation.
-  (packages (cons* postgresql %base-packages))
-  (services
-    (cons*
-      (postgresql-service #:extension-packages (list postgis))
-      %base-services)))
-@end example
-
-Then the extension becomes visible and you can initialise an empty
-geographic database in this way:
-
-@example
-psql -U postgres
-> create database postgistest;
-> \connect postgistest;
-> create extension postgis;
-> create extension postgis_topology;
-@end example
-
-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.
-
-The optional @var{config} argument specifies the configuration for
-@command{mysqld}, which should be a @code{<mysql-configuration>} object.
-@end deffn
-
-@deftp {Data Type} mysql-configuration
-Data type representing the configuration of @var{mysql-service}.
-
-@table @asis
-@item @code{mysql} (default: @var{mariadb})
-Package object of the MySQL database server, can be either @var{mariadb} or
-@var{mysql}.
-
-For MySQL, a temporary root password will be displayed at activation time.
-For MariaDB, the root password is empty.
-
-@item @code{port} (default: @code{3306})
-TCP port on which the database server listens for incoming connections.
-@end table
-@end deftp
-
-@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 value for the
-service type is a @code{memcached-configuration} object.
-@end defvr
-
-@example
-(service memcached-service-type)
-@end example
-
-@deftp {Data Type} memcached-configuration
-Data type representing the configuration of memcached.
-
-@table @asis
-@item @code{memcached} (default: @code{memcached})
-The Memcached package to use.
-
-@item @code{interfaces} (default: @code{'("0.0.0.0")})
-Network interfaces on which to listen.
-
-@item @code{tcp-port} (default: @code{11211})
-Port on which to accept connections on,
-
-@item @code{udp-port} (default: @code{11211})
-Port on which to accept UDP connections on, a value of 0 will disable
-listening on a UDP socket.
-
-@item @code{additional-options} (default: @code{'()})
-Additional command line options to pass to @code{memcached}.
-@end table
-@end deftp
-
-@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.
-@end defvr
-
-@example
-(service mongodb-service-type)
-@end example
-
-@deftp {Data Type} mongodb-configuration
-Data type representing the configuration of mongodb.
-
-@table @asis
-@item @code{mongodb} (default: @code{mongodb})
-The MongoDB package to use.
-
-@item @code{config-file} (default: @code{%default-mongodb-configuration-file})
-The configuration file for MongoDB.
-
-@item @code{data-directory} (default: @code{"/var/lib/mongodb"})
-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.
-@end table
-@end deftp
-
-@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.
-@end defvr
-
-@deftp {Data Type} redis-configuration
-Data type representing the configuration of redis.
-
-@table @asis
-@item @code{redis} (default: @code{redis})
-The Redis package to use.
-
-@item @code{bind} (default: @code{"127.0.0.1"})
-Network interface on which to listen.
-
-@item @code{port} (default: @code{6379})
-Port on which to accept connections on, a value of 0 will disable listening
-on a TCP socket.
-
-@item @code{working-directory} (default: @code{"/var/lib/redis"})
-Directory in which to store the database and related files.
-@end table
-@end deftp
-
-@node Mail-Dienste
-@subsection Mail-Dienste
-
-@cindex mail
-@cindex email
-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.
-
-@subsubheading Dovecot Service
-
-@deffn {Scheme Procedure} dovecot-service [#:config (dovecot-configuration)]
-Return a service that runs the Dovecot IMAP/POP3/LMTP mail server.
-@end deffn
-
-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.
-
-For example, to specify that mail is located at @code{maildir~/.mail}, one
-would instantiate the Dovecot service like this:
-
-@example
-(dovecot-service #:config
-                 (dovecot-configuration
-                  (mail-location "maildir:~/.mail")))
-@end example
-
-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.
-
-@c The following documentation was initially generated by
-@c (generate-documentation) in (gnu services mail).  Manually maintained
-@c documentation is better, so we shouldn't hesitate to edit below as
-@c needed.  However if the change you want to make to this documentation
-@c can be done in an automated way, it's probably easier to change
-@c (generate-documentation) than to make it below and have to deal with
-@c the churn as dovecot updates.
-
-Available @code{dovecot-configuration} fields are:
-
-@deftypevr {@code{dovecot-configuration} parameter} package dovecot
-The dovecot package.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} comma-separated-string-list listen
-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.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} protocol-configuration-list protocols
-List of protocols we want to serve.  Available protocols include
-@samp{imap}, @samp{pop3}, and @samp{lmtp}.
-
-Available @code{protocol-configuration} fields are:
-
-@deftypevr {@code{protocol-configuration} parameter} string name
-The name of the protocol.
-@end deftypevr
-
-@deftypevr {@code{protocol-configuration} parameter} string auth-socket-path
-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"}.
-@end deftypevr
-
-@deftypevr {@code{protocol-configuration} parameter} space-separated-string-list mail-plugins
-Space separated list of plugins to load.
-@end deftypevr
-
-@deftypevr {@code{protocol-configuration} parameter} non-negative-integer mail-max-userip-connections
-Maximum number of IMAP connections allowed for a user from each IP address.
-NOTE: The username is compared case-sensitively.  Defaults to @samp{10}.
-@end deftypevr
-
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} service-configuration-list services
-List of services to enable.  Available services include @samp{imap},
-@samp{imap-login}, @samp{pop3}, @samp{pop3-login}, @samp{auth}, and
-@samp{lmtp}.
-
-Available @code{service-configuration} fields are:
-
-@deftypevr {@code{service-configuration} parameter} string kind
-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.
-@end deftypevr
-
-@deftypevr {@code{service-configuration} parameter} listener-configuration-list listeners
-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{()}.
-
-Available @code{unix-listener-configuration} fields are:
-
-@deftypevr {@code{unix-listener-configuration} parameter} string path
-Path to the file, relative to @code{base-dir} field.  This is also used as
-the section name.
-@end deftypevr
-
-@deftypevr {@code{unix-listener-configuration} parameter} string mode
-The access mode for the socket.  Defaults to @samp{"0600"}.
-@end deftypevr
-
-@deftypevr {@code{unix-listener-configuration} parameter} string user
-The user to own the socket.  Defaults to @samp{""}.
-@end deftypevr
-
-@deftypevr {@code{unix-listener-configuration} parameter} string group
-The group to own the socket.  Defaults to @samp{""}.
-@end deftypevr
-
-
-Available @code{fifo-listener-configuration} fields are:
-
-@deftypevr {@code{fifo-listener-configuration} parameter} string path
-Path to the file, relative to @code{base-dir} field.  This is also used as
-the section name.
-@end deftypevr
-
-@deftypevr {@code{fifo-listener-configuration} parameter} string mode
-The access mode for the socket.  Defaults to @samp{"0600"}.
-@end deftypevr
-
-@deftypevr {@code{fifo-listener-configuration} parameter} string user
-The user to own the socket.  Defaults to @samp{""}.
-@end deftypevr
-
-@deftypevr {@code{fifo-listener-configuration} parameter} string group
-The group to own the socket.  Defaults to @samp{""}.
-@end deftypevr
-
-
-Available @code{inet-listener-configuration} fields are:
-
-@deftypevr {@code{inet-listener-configuration} parameter} string protocol
-The protocol to listen for.
-@end deftypevr
-
-@deftypevr {@code{inet-listener-configuration} parameter} string address
-The address on which to listen, or empty for all addresses.  Defaults to
-@samp{""}.
-@end deftypevr
-
-@deftypevr {@code{inet-listener-configuration} parameter} non-negative-integer port
-The port on which to listen.
-@end deftypevr
-
-@deftypevr {@code{inet-listener-configuration} parameter} boolean ssl?
-Whether to use SSL for this service; @samp{yes}, @samp{no}, or
-@samp{required}.  Defaults to @samp{#t}.
-@end deftypevr
-
-@end deftypevr
-
-@deftypevr {@code{service-configuration} parameter} non-negative-integer client-limit
-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.
-
-Defaults to @samp{0}.
-
-@end deftypevr
-
-@deftypevr {@code{service-configuration} parameter} non-negative-integer service-count
-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}.
-
-@end deftypevr
-
-@deftypevr {@code{service-configuration} parameter} non-negative-integer process-limit
-Maximum number of processes that can exist for this service.  If set to 0,
-@code{default-process-limit} is used instead.
-
-Defaults to @samp{0}.
-
-@end deftypevr
-
-@deftypevr {@code{service-configuration} parameter} non-negative-integer process-min-avail
-Number of processes to always keep waiting for more connections.  Defaults
-to @samp{0}.
-@end deftypevr
-
-@deftypevr {@code{service-configuration} parameter} non-negative-integer vsz-limit
-If you set @samp{service-count 0}, you probably need to grow this.  Defaults
-to @samp{256000000}.
-@end deftypevr
-
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} dict-configuration dict
-Dict configuration, as created by the @code{dict-configuration} constructor.
-
-Available @code{dict-configuration} fields are:
-
-@deftypevr {@code{dict-configuration} parameter} free-form-fields entries
-A list of key-value pairs that this dict should hold.  Defaults to
-@samp{()}.
-@end deftypevr
-
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} passdb-configuration-list passdbs
-A list of passdb configurations, each one created by the
-@code{passdb-configuration} constructor.
-
-Available @code{passdb-configuration} fields are:
-
-@deftypevr {@code{passdb-configuration} parameter} string driver
-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"}.
-@end deftypevr
-
-@deftypevr {@code{passdb-configuration} parameter} space-separated-string-list args
-Space separated list of arguments to the passdb driver.  Defaults to
-@samp{""}.
-@end deftypevr
-
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} userdb-configuration-list userdbs
-List of userdb configurations, each one created by the
-@code{userdb-configuration} constructor.
-
-Available @code{userdb-configuration} fields are:
-
-@deftypevr {@code{userdb-configuration} parameter} string driver
-The driver that the userdb should use.  Valid values include @samp{passwd}
-and @samp{static}.  Defaults to @samp{"passwd"}.
-@end deftypevr
-
-@deftypevr {@code{userdb-configuration} parameter} space-separated-string-list args
-Space separated list of arguments to the userdb driver.  Defaults to
-@samp{""}.
-@end deftypevr
-
-@deftypevr {@code{userdb-configuration} parameter} free-form-args override-fields
-Override fields from passwd.  Defaults to @samp{()}.
-@end deftypevr
-
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} plugin-configuration plugin-configuration
-Plug-in configuration, created by the @code{plugin-configuration}
-constructor.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} list-of-namespace-configuration namespaces
-List of namespaces.  Each item in the list is created by the
-@code{namespace-configuration} constructor.
-
-Available @code{namespace-configuration} fields are:
-
-@deftypevr {@code{namespace-configuration} parameter} string name
-Name for this namespace.
-@end deftypevr
-
-@deftypevr {@code{namespace-configuration} parameter} string type
-Namespace type: @samp{private}, @samp{shared} or @samp{public}.  Defaults to
-@samp{"private"}.
-@end deftypevr
-
-@deftypevr {@code{namespace-configuration} parameter} string separator
-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{""}.
-@end deftypevr
-
-@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/}.  Defaults to @samp{""}.
-@end deftypevr
-
-@deftypevr {@code{namespace-configuration} parameter} string location
-Physical location of the mailbox. This is in the same format as
-mail_location, which is also the default for it.  Defaults to @samp{""}.
-@end deftypevr
-
-@deftypevr {@code{namespace-configuration} parameter} boolean inbox?
-There can be only one INBOX, and this setting defines which namespace has
-it.  Defaults to @samp{#f}.
-@end deftypevr
-
-@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 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}.
-@end deftypevr
-
-@deftypevr {@code{namespace-configuration} parameter} boolean list?
-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}.
-@end deftypevr
-
-@deftypevr {@code{namespace-configuration} parameter} boolean subscriptions?
-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}.
-@end deftypevr
-
-@deftypevr {@code{namespace-configuration} parameter} mailbox-configuration-list mailboxes
-List of predefined mailboxes in this namespace.  Defaults to @samp{()}.
-
-Available @code{mailbox-configuration} fields are:
-
-@deftypevr {@code{mailbox-configuration} parameter} string name
-Name for this mailbox.
-@end deftypevr
-
-@deftypevr {@code{mailbox-configuration} parameter} string auto
-@samp{create} will automatically create this mailbox.  @samp{subscribe} will
-both create and subscribe to the mailbox.  Defaults to @samp{"no"}.
-@end deftypevr
-
-@deftypevr {@code{mailbox-configuration} parameter} space-separated-string-list special-use
-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{()}.
-@end deftypevr
-
-@end deftypevr
-
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} file-name base-dir
-Base directory where to store runtime data.  Defaults to
-@samp{"/var/run/dovecot/"}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} string login-greeting
-Greeting message for clients.  Defaults to @samp{"Dovecot ready."}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} space-separated-string-list login-trusted-networks
-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{()}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} space-separated-string-list login-access-sockets
-List of login access check sockets (e.g.@: tcpwrap).  Defaults to @samp{()}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} boolean verbose-proctitle?
-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}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} boolean shutdown-clients?
-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}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} non-negative-integer doveadm-worker-count
-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}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} string doveadm-socket-path
-UNIX socket or host:port used for connecting to doveadm server.  Defaults to
-@samp{"doveadm-server"}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} space-separated-string-list import-environment
-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.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} boolean disable-plaintext-auth?
-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}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} non-negative-integer auth-cache-size
-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}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} string auth-cache-ttl
-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"}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} string auth-cache-negative-ttl
-TTL for negative hits (user not found, password mismatch).  0 disables
-caching them completely.  Defaults to @samp{"1 hour"}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} space-separated-string-list auth-realms
-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{()}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} string auth-default-realm
-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{""}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} string auth-username-chars
-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.-_@@"}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} string auth-username-translation
-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{""}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} string auth-username-format
-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"}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} string auth-master-user-separator
-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{""}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} string auth-anonymous-username
-Username to use for users logging in with ANONYMOUS SASL mechanism.
-Defaults to @samp{"anonymous"}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} non-negative-integer auth-worker-max-count
-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}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} string auth-gssapi-hostname
-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{""}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} string auth-krb5-keytab
-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{""}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} boolean auth-use-winbind?
-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}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} file-name auth-winbind-helper-path
-Path for Samba's @samp{ntlm-auth} helper binary.  Defaults to
-@samp{"/usr/bin/ntlm_auth"}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} string auth-failure-delay
-Time to delay before replying to failed authentications.  Defaults to
-@samp{"2 secs"}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} boolean auth-ssl-require-client-cert?
-Require a valid SSL client certificate or the authentication fails.
-Defaults to @samp{#f}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} boolean auth-ssl-username-from-cert?
-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}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} space-separated-string-list auth-mechanisms
-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.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} space-separated-string-list director-servers
-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{()}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} space-separated-string-list director-mail-servers
-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{()}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} string director-user-expire
-How long to redirect users to a specific server after it no longer has any
-connections.  Defaults to @samp{"15 min"}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} string director-username-hash
-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"}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} string log-path
-Log file to use for error messages.  @samp{syslog} logs to syslog,
-@samp{/dev/stderr} logs to stderr.  Defaults to @samp{"syslog"}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} string info-log-path
-Log file to use for informational messages.  Defaults to @samp{log-path}.
-Defaults to @samp{""}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} string debug-log-path
-Log file to use for debug messages.  Defaults to @samp{info-log-path}.
-Defaults to @samp{""}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} string syslog-facility
-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"}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} boolean auth-verbose?
-Log unsuccessful authentication attempts and the reasons why they failed.
-Defaults to @samp{#f}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} boolean auth-verbose-passwords?
-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{#f}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} boolean auth-debug?
-Even more verbose logging for debugging purposes.  Shows for example SQL
-queries.  Defaults to @samp{#f}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} boolean auth-debug-passwords?
-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}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} boolean mail-debug?
-Enable mail process debugging.  This can help you figure out why Dovecot
-isn't finding your mails.  Defaults to @samp{#f}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} boolean verbose-ssl?
-Show protocol level SSL errors.  Defaults to @samp{#f}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} string log-timestamp
-Prefix for each line written to log file.  % codes are in strftime(3)
-format.  Defaults to @samp{"\"%b %d %H:%M:%S \""}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} space-separated-string-list login-log-format-elements
-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.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} string login-log-format
-Login log format.  %s contains @samp{login-log-format-elements} string, %$
-contains the data we want to log.  Defaults to @samp{"%$: %s"}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} string mail-log-prefix
-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@}>: \""}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} string deliver-log-format
-Format to use for logging mail deliveries.  You can use variables:
-@table @code
-@item %$
-Delivery status message (e.g.@: @samp{saved to INBOX})
-@item %m
-Message-ID
-@item %s
-Subject
-@item %f
-From address
-@item %p
-Physical size
-@item %w
-Virtual size.
-@end table
-Defaults to @samp{"msgid=%m: %$"}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} string mail-location
-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.
-
-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.
-
-There are a few special variables you can use, eg.:
-
-@table @samp
-@item %u
-username
-@item %n
-user part in user@@domain, same as %u if there's no domain
-@item %d
-domain part in user@@domain, empty if there's no domain
-@item %h
-home director
-@end table
-
-See doc/wiki/Variables.txt for full list.  Some examples:
-@table @samp
-@item maildir:~/Maildir
-@item mbox:~/mail:INBOX=/var/mail/%u
-@item mbox:/var/mail/%d/%1n/%n:INDEX=/var/indexes/%d/%1n/%
-@end table
-Defaults to @samp{""}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} string mail-uid
-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{""}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} string mail-gid
-
-Defaults to @samp{""}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} string mail-privileged-group
-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{""}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} string mail-access-groups
-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{""}.
-@end deftypevr
-
-@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 works with
-both maildir and mboxes, allowing you to prefix mailboxes names with e.g.@:
-/path/ or ~user/.  Defaults to @samp{#f}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} boolean mmap-disable?
-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}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} boolean dotlock-use-excl?
-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}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} string mail-fsync
-When to use fsync() or fdatasync() calls:
-@table @code
-@item optimized
-Whenever necessary to avoid losing important data
-@item always
-Useful with e.g.@: NFS when write()s are delayed
-@item never
-Never use it (best performance, but crashes can lose data).
-@end table
-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 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
-@samp{mmap-disable? #t} and @samp{fsync-disable? #f}.  Defaults to
-@samp{#f}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} string lock-method
-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"}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} file-name mail-temp-dir
-Directory in which LDA/LMTP temporarily stores incoming mails >128 kB.
-Defaults to @samp{"/tmp"}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} non-negative-integer first-valid-uid
-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}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} non-negative-integer last-valid-uid
-
-Defaults to @samp{0}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} non-negative-integer first-valid-gid
-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}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} non-negative-integer last-valid-gid
-
-Defaults to @samp{0}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} non-negative-integer mail-max-keyword-length
-Maximum allowed length for mail keyword name.  It's only forced when trying
-to create new keywords.  Defaults to @samp{50}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} colon-separated-file-name-list valid-chroot-dirs
-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{()}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} string mail-chroot
-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{""}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} file-name auth-socket-path
-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"}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} file-name mail-plugin-dir
-Directory where to look up mail plugins.  Defaults to
-@samp{"/usr/lib/dovecot"}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} space-separated-string-list mail-plugins
-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{()}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} non-negative-integer mail-cache-min-mail-count
-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}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} string mailbox-idle-check-interval
-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"}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} boolean mail-save-crlf?
-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}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} boolean maildir-stat-dirs?
-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}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} boolean maildir-copy-with-hardlinks?
-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}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} boolean maildir-very-dirty-syncs?
-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}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} space-separated-string-list mbox-read-locks
-Which locking methods to use for locking mbox.  There are four available:
-
-@table @code
-@item dotlock
-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.
-@item dotlock-try
-Same as dotlock, but if it fails because of permissions or because there
-isn't enough disk space, just skip it.
-@item fcntl
-Use this if possible.  Works with NFS too if lockd is used.
-@item flock
-May not exist in all systems.  Doesn't work with NFS.
-@item lockf
-May not exist in all systems.  Doesn't work with NFS.
-@end table
-
-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.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} space-separated-string-list mbox-write-locks
-
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} string mbox-lock-timeout
-Maximum time to wait for lock (all of them) before aborting.  Defaults to
-@samp{"5 mins"}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} string mbox-dotlock-change-timeout
-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"}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} boolean mbox-dirty-syncs?
-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}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} boolean mbox-very-dirty-syncs?
-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}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} boolean mbox-lazy-writes?
-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}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} non-negative-integer mbox-min-index-size
-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}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} non-negative-integer mdbox-rotate-size
-Maximum dbox file size until it's rotated.  Defaults to @samp{10000000}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} string mdbox-rotate-interval
-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"}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} boolean mdbox-preallocate-space?
-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}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} string mail-attachment-dir
-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.
-
-WARNING: This feature hasn't been tested much yet.  Use at your own risk.
-
-Directory root where to store mail attachments.  Disabled, if empty.
-Defaults to @samp{""}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} non-negative-integer mail-attachment-min-size
-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}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} string mail-attachment-fs
-File system backend to use for saving attachments:
-@table @code
-@item posix
-No SiS done by Dovecot (but this might help FS's own deduplication)
-@item sis posix
-SiS with immediate byte-by-byte comparison during saving
-@item sis-queue posix
-SiS with delayed comparison and deduplication.
-@end table
-Defaults to @samp{"sis posix"}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} string mail-attachment-hash
-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@}"}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} non-negative-integer default-process-limit
-
-Defaults to @samp{100}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} non-negative-integer default-client-limit
-
-Defaults to @samp{1000}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} non-negative-integer default-vsz-limit
-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}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} string default-login-user
-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"}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} string default-internal-user
-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"}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} string ssl?
-SSL/TLS support: yes, no, required.  <doc/wiki/SSL.txt>.  Defaults to
-@samp{"required"}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} string ssl-cert
-PEM encoded X.509 SSL/TLS certificate (public key).  Defaults to
-@samp{"</etc/dovecot/default.pem"}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} string ssl-key
-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"}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} string ssl-key-password
-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{""}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} string ssl-ca
-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{""}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} boolean ssl-require-crl?
-Require that CRL check succeeds for client certificates.  Defaults to
-@samp{#t}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} boolean ssl-verify-client-cert?
-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}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} string ssl-cert-username-field
-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"}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} string ssl-min-protocol
-Minimum SSL protocol version to accept.  Defaults to @samp{"TLSv1"}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} string ssl-cipher-list
-SSL ciphers to use.  Defaults to
-@samp{"ALL:!kRSA:!SRP:!kDHd:!DSS:!aNULL:!eNULL:!EXPORT:!DES:!3DES:!MD5:!PSK:!RC4:!ADH:!LOW@@STRENGTH"}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} string ssl-crypto-device
-SSL crypto device to use, for valid values run "openssl engine".  Defaults
-to @samp{""}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} string postmaster-address
-Address to use when sending rejection mails.  %d expands to recipient
-domain.  Defaults to @samp{"postmaster@@%d"}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} string hostname
-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{""}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} boolean quota-full-tempfail?
-If user is over quota, return with temporary failure instead of bouncing the
-mail.  Defaults to @samp{#f}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} file-name sendmail-path
-Binary to use for sending mails.  Defaults to @samp{"/usr/sbin/sendmail"}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} string submission-host
-If non-empty, send mails via this SMTP host[:port] instead of sendmail.
-Defaults to @samp{""}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} string rejection-subject
-Subject: header to use for rejection mails.  You can use the same variables
-as for @samp{rejection-reason} below.  Defaults to @samp{"Rejected: %s"}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} string rejection-reason
-Human readable error message for rejection mails.  You can use variables:
-
-@table @code
-@item %n
-CRLF
-@item %r
-reason
-@item %s
-original subject
-@item %t
-recipient
-@end table
-Defaults to @samp{"Your message to <%t> was automatically rejected:%n%r"}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} string recipient-delimiter
-Delimiter character between local-part and detail in email address.
-Defaults to @samp{"+"}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} string lda-original-recipient-header
-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{""}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} boolean lda-mailbox-autocreate?
-Should saving a mail to a nonexistent mailbox automatically create it?.
-Defaults to @samp{#f}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} boolean lda-mailbox-autosubscribe?
-Should automatically created mailboxes be also automatically subscribed?.
-Defaults to @samp{#f}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} non-negative-integer imap-max-line-length
-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}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} string imap-logout-format
-IMAP logout format string:
-@table @code
-@item %i
-total number of bytes read from client
-@item %o
-total number of bytes sent to client.
-@end table
-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@}"}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} string imap-capability
-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{""}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} string imap-idle-notify-interval
-How long to wait between "OK Still here" notifications when client is
-IDLEing.  Defaults to @samp{"2 mins"}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} string imap-id-send
-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{""}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} string imap-id-log
-ID fields sent by client to log.  * means everything.  Defaults to
-@samp{""}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} space-separated-string-list imap-client-workarounds
-Workarounds for various client bugs:
-
-@table @code
-@item delay-newmail
-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".
-
-@item tb-extra-mailbox-sep
-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.
-
-@item tb-lsub-flags
-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.
-@end table
-Defaults to @samp{()}.
-@end deftypevr
-
-@deftypevr {@code{dovecot-configuration} parameter} string imap-urlauth-host
-Host allowed in URLAUTH URLs sent by client.  "*" allows all.  Defaults to
-@samp{""}.
-@end deftypevr
-
-
-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.
-
-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.
-
-Available @code{opaque-dovecot-configuration} fields are:
-
-@deftypevr {@code{opaque-dovecot-configuration} parameter} package dovecot
-The dovecot package.
-@end deftypevr
-
-@deftypevr {@code{opaque-dovecot-configuration} parameter} string string
-The contents of the @code{dovecot.conf}, as a string.
-@end deftypevr
-
-For example, if your @code{dovecot.conf} is just the empty string, you could
-instantiate a dovecot service like this:
-
-@example
-(dovecot-service #:config
-                 (opaque-dovecot-configuration
-                  (string "")))
-@end example
-
-@subsubheading OpenSMTPD Service
-
-@deffn {Scheme Variable} opensmtpd-service-type
-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:
-
-@example
-(service opensmtpd-service-type
-         (opensmtpd-configuration
-           (config-file (local-file "./my-smtpd.conf"))))
-@end example
-@end deffn
-
-@deftp {Data Type} opensmtpd-configuration
-Data type representing the configuration of opensmtpd.
-
-@table @asis
-@item @code{package} (default: @var{opensmtpd})
-Package object of the OpenSMTPD SMTP server.
-
-@item @code{config-file} (default: @var{%default-opensmtpd-file})
-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.
-
-@end table
-@end deftp
-
-@subsubheading Exim Service
-
-@cindex mail transfer agent (MTA)
-@cindex MTA (mail transfer agent)
-@cindex SMTP
-
-@deffn {Scheme Variable} exim-service-type
-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:
-
-@example
-(service exim-service-type
-         (exim-configuration
-           (config-file (local-file "./my-exim.conf"))))
-@end example
-@end deffn
-
-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).
-
-@deftp {Data Type} exim-configuration
-Data type representing the configuration of exim.
-
-@table @asis
-@item @code{package} (default: @var{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
-@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.
-
-@end table
-@end deftp
-
-@subsubheading Mail Aliases Service
-
-@cindex email aliases
-@cindex aliases, for email addresses
-
-@deffn {Scheme Variable} mail-aliases-service-type
-This is the type of the service which provides @code{/etc/aliases},
-specifying how to deliver mail to users on this system.
-
-@example
-(service mail-aliases-service-type
-         '(("postmaster" "bob")
-           ("bob" "bob@@example.com" "bob@@example2.com")))
-@end example
-@end deffn
-
-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.
-
-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}).
-
-@node Kurznachrichtendienste
-@subsection Kurznachrichtendienste
-
-@cindex messaging
-@cindex jabber
-@cindex XMPP
-The @code{(gnu services messaging)} module provides Guix service definitions
-for messaging services: currently only Prosody is supported.
-
-@subsubheading Prosody Service
-
-@deffn {Scheme Variable} prosody-service-type
-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:
-
-@example
-(service prosody-service-type
-         (prosody-configuration
-          (modules-enabled (cons "groups" "mam" %default-modules-enabled))
-          (int-components
-           (list
-            (int-component-configuration
-             (hostname "conference.example.net")
-             (plugin "muc")
-             (mod-muc (mod-muc-configuration)))))
-          (virtualhosts
-           (list
-            (virtualhost-configuration
-             (domain "example.net"))))))
-@end example
-
-See below for details about @code{prosody-configuration}.
-
-@end deffn
-
-By default, Prosody does not need much configuration.  Only one
-@code{virtualhosts} field is needed: it specifies the domain you wish
-Prosody to serve.
-
-You can perform various sanity checks on the generated configuration with
-the @code{prosodyctl check} command.
-
-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}.
-
-@example
-prosodyctl --root cert import /etc/letsencrypt/live
-@end example
-
-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}.
-
-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.
-
-The @code{file-object} type designates either a file-like object
-(@pxref{G-Ausdrücke, file-like objects}) or a file name.
-
-@c The following documentation was initially generated by
-@c (generate-documentation) in (gnu services messaging).  Manually maintained
-@c documentation is better, so we shouldn't hesitate to edit below as
-@c needed.  However if the change you want to make to this documentation
-@c can be done in an automated way, it's probably easier to change
-@c (generate-documentation) than to make it below and have to deal with
-@c the churn as Prosody updates.
-
-Available @code{prosody-configuration} fields are:
-
-@deftypevr {@code{prosody-configuration} parameter} package prosody
-The Prosody package.
-@end deftypevr
-
-@deftypevr {@code{prosody-configuration} parameter} file-name data-path
-Location of the Prosody data storage directory.  See
-@url{https://prosody.im/doc/configure}.  Defaults to
-@samp{"/var/lib/prosody"}.
-@end deftypevr
-
-@deftypevr {@code{prosody-configuration} parameter} file-object-list plugin-paths
-Additional plugin directories.  They are searched in all the specified paths
-in order.  See @url{https://prosody.im/doc/plugins_directory}.  Defaults to
-@samp{()}.
-@end deftypevr
-
-@deftypevr {@code{prosody-configuration} parameter} file-name certificates
-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"}.
-@end deftypevr
-
-@deftypevr {@code{prosody-configuration} parameter} string-list admins
-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{()}.
-@end deftypevr
-
-@deftypevr {@code{prosody-configuration} parameter} boolean use-libevent?
-Enable use of libevent for better performance under high load.  See
-@url{https://prosody.im/doc/libevent}.  Defaults to @samp{#f}.
-@end deftypevr
-
-@deftypevr {@code{prosody-configuration} parameter} module-list modules-enabled
-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")}.
-@end deftypevr
-
-@deftypevr {@code{prosody-configuration} parameter} string-list modules-disabled
-@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{()}.
-@end deftypevr
-
-@deftypevr {@code{prosody-configuration} parameter} file-object groups-file
-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"}.
-@end deftypevr
-
-@deftypevr {@code{prosody-configuration} parameter} boolean allow-registration?
-Disable account creation by default, for security.  See
-@url{https://prosody.im/doc/creating_accounts}.  Defaults to @samp{#f}.
-@end deftypevr
-
-@deftypevr {@code{prosody-configuration} parameter} maybe-ssl-configuration ssl
-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}.
-
-Available @code{ssl-configuration} fields are:
-
-@deftypevr {@code{ssl-configuration} parameter} maybe-string protocol
-This determines what handshake to use.
-@end deftypevr
-
-@deftypevr {@code{ssl-configuration} parameter} maybe-file-name key
-Path to your private key file.
-@end deftypevr
-
-@deftypevr {@code{ssl-configuration} parameter} maybe-file-name certificate
-Path to your certificate file.
-@end deftypevr
-
-@deftypevr {@code{ssl-configuration} parameter} file-object capath
-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"}.
-@end deftypevr
-
-@deftypevr {@code{ssl-configuration} parameter} maybe-file-object cafile
-Path to a file containing root certificates that you wish Prosody to trust.
-Similar to @code{capath} but with all certificates concatenated together.
-@end deftypevr
-
-@deftypevr {@code{ssl-configuration} parameter} maybe-string-list verify
-A list of verification options (these mostly map to OpenSSL's
-@code{set_verify()} flags).
-@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
-@code{set_options()}.  For a full list of options available in LuaSec, see
-the LuaSec source.
-@end deftypevr
-
-@deftypevr {@code{ssl-configuration} parameter} maybe-non-negative-integer depth
-How long a chain of certificate authorities to check when looking for a
-trusted root certificate.
-@end deftypevr
-
-@deftypevr {@code{ssl-configuration} parameter} maybe-string ciphers
-An OpenSSL cipher string.  This selects what ciphers Prosody will offer to
-clients, and in what order.
-@end deftypevr
-
-@deftypevr {@code{ssl-configuration} parameter} maybe-file-name dhparam
-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}
-@end deftypevr
-
-@deftypevr {@code{ssl-configuration} parameter} maybe-string curve
-Curve for Elliptic curve Diffie-Hellman. Prosody's default is
-@samp{"secp384r1"}.
-@end deftypevr
-
-@deftypevr {@code{ssl-configuration} parameter} maybe-string-list verifyext
-A list of "extra" verification options.
-@end deftypevr
-
-@deftypevr {@code{ssl-configuration} parameter} maybe-string password
-Password for encrypted private keys.
-@end deftypevr
-
-@end deftypevr
-
-@deftypevr {@code{prosody-configuration} parameter} boolean c2s-require-encryption?
-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}.
-@end deftypevr
-
-@deftypevr {@code{prosody-configuration} parameter} string-list disable-sasl-mechanisms
-Set of mechanisms that will never be offered.  See
-@url{https://prosody.im/doc/modules/mod_saslauth}.  Defaults to
-@samp{("DIGEST-MD5")}.
-@end deftypevr
-
-@deftypevr {@code{prosody-configuration} parameter} boolean s2s-require-encryption?
-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}.
-@end deftypevr
-
-@deftypevr {@code{prosody-configuration} parameter} boolean s2s-secure-auth?
-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}.
-@end deftypevr
-
-@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
-@url{https://prosody.im/doc/s2s#security}.  Defaults to @samp{()}.
-@end deftypevr
-
-@deftypevr {@code{prosody-configuration} parameter} string-list s2s-secure-domains
-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{()}.
-@end deftypevr
-
-@deftypevr {@code{prosody-configuration} parameter} string authentication
-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"}.
-@end deftypevr
-
-@deftypevr {@code{prosody-configuration} parameter} maybe-string log
-Set logging options.  Advanced logging configuration is not yet supported by
-the Guix Prosody Service.  See @url{https://prosody.im/doc/logging}.
-Defaults to @samp{"*syslog"}.
-@end deftypevr
-
-@deftypevr {@code{prosody-configuration} parameter} file-name pidfile
-File to write pid in.  See @url{https://prosody.im/doc/modules/mod_posix}.
-Defaults to @samp{"/var/run/prosody/prosody.pid"}.
-@end deftypevr
-
-@deftypevr {@code{prosody-configuration} parameter} maybe-non-negative-integer http-max-content-size
-Maximum allowed size of the HTTP body (in bytes).
-@end deftypevr
-
-@deftypevr {@code{prosody-configuration} parameter} maybe-string http-external-url
-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}.
-@end deftypevr
-
-@deftypevr {@code{prosody-configuration} parameter} virtualhost-configuration-list virtualhosts
-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.
-
-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.
-
-See @url{https://prosody.im/doc/configure#virtual_host_settings}.
-
-Available @code{virtualhost-configuration} fields are:
-
-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:
-@deftypevr {@code{virtualhost-configuration} parameter} string domain
-Domain you wish Prosody to serve.
-@end deftypevr
-
-@end deftypevr
-
-@deftypevr {@code{prosody-configuration} parameter} int-component-configuration-list int-components
-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.
-
-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.
-
-See @url{https://prosody.im/doc/components}.  Defaults to @samp{()}.
-
-Available @code{int-component-configuration} fields are:
-
-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:
-@deftypevr {@code{int-component-configuration} parameter} string hostname
-Hostname of the component.
-@end deftypevr
-
-@deftypevr {@code{int-component-configuration} parameter} string plugin
-Plugin you wish to use for the component.
-@end deftypevr
-
-@deftypevr {@code{int-component-configuration} parameter} maybe-mod-muc-configuration mod-muc
-Multi-user chat (MUC) is Prosody's module for allowing you to create hosted
-chatrooms/conferences for XMPP users.
-
-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.
-
-See also @url{https://prosody.im/doc/modules/mod_muc}.
-
-Available @code{mod-muc-configuration} fields are:
-
-@deftypevr {@code{mod-muc-configuration} parameter} string name
-The name to return in service discovery responses.  Defaults to
-@samp{"Prosody Chatrooms"}.
-@end deftypevr
-
-@deftypevr {@code{mod-muc-configuration} parameter} string-or-boolean restrict-room-creation
-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}.
-@end deftypevr
-
-@deftypevr {@code{mod-muc-configuration} parameter} non-negative-integer max-history-messages
-Maximum number of history messages that will be sent to the member that has
-just joined the room.  Defaults to @samp{20}.
-@end deftypevr
-
-@end deftypevr
-
-@end deftypevr
-
-@deftypevr {@code{prosody-configuration} parameter} ext-component-configuration-list ext-components
-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{()}.
-
-Available @code{ext-component-configuration} fields are:
-
-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:
-@deftypevr {@code{ext-component-configuration} parameter} string component-secret
-Password which the component will use to log in.
-@end deftypevr
-
-@deftypevr {@code{ext-component-configuration} parameter} string hostname
-Hostname of the component.
-@end deftypevr
-
-@end deftypevr
-
-@deftypevr {@code{prosody-configuration} parameter} non-negative-integer-list component-ports
-Port(s) Prosody listens on for component connections.  Defaults to
-@samp{(5347)}.
-@end deftypevr
-
-@deftypevr {@code{prosody-configuration} parameter} string component-interface
-Interface Prosody listens on for component connections.  Defaults to
-@samp{"127.0.0.1"}.
-@end deftypevr
-
-@deftypevr {@code{prosody-configuration} parameter} maybe-raw-content raw-content
-Raw content that will be added to the configuration file.
-@end deftypevr
-
-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:
-
-@deftypevr {@code{opaque-prosody-configuration} parameter} package prosody
-The prosody package.
-@end deftypevr
-
-@deftypevr {@code{opaque-prosody-configuration} parameter} string prosody.cfg.lua
-The contents of the @code{prosody.cfg.lua} to use.
-@end deftypevr
-
-For example, if your @code{prosody.cfg.lua} is just the empty string, you
-could instantiate a prosody service like this:
-
-@example
-(service prosody-service-type
-         (opaque-prosody-configuration
-          (prosody.cfg.lua "")))
-@end example
-
-@c end of Prosody auto-generated documentation
-
-@subsubheading BitlBee Service
-
-@cindex IRC (Internet Relay Chat)
-@cindex IRC gateway
-@url{http://bitlbee.org,BitlBee} is a gateway that provides an IRC interface
-to a variety of messaging protocols such as XMPP.
-
-@defvr {Scheme Variable} bitlbee-service-type
-This is the service type for the @url{http://bitlbee.org,BitlBee} IRC
-gateway daemon.  Its value is a @code{bitlbee-configuration} (see below).
-
-To have BitlBee listen on port 6667 on localhost, add this line to your
-services:
-
-@example
-(service bitlbee-service-type)
-@end example
-@end defvr
-
-@deftp {Data Type} bitlbee-configuration
-This is the configuration for BitlBee, with the following fields:
-
-@table @asis
-@item @code{interface} (default: @code{"127.0.0.1"})
-@itemx @code{port} (default: @code{6667})
-Listen on the network interface corresponding to the IP address specified in
-@var{interface}, on @var{port}.
-
-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.
-
-@item @code{package} (default: @code{bitlbee})
-The BitlBee package to use.
-
-@item @code{plugins} (Vorgabe: @code{'()})
-List of plugin packages to use---e.g., @code{bitlbee-discord}.
-
-@item @code{extra-settings} (default: @code{""})
-Configuration snippet added as-is to the BitlBee configuration file.
-@end table
-@end deftp
-
-@subsubheading Quassel Service
-
-@cindex IRC (Internet Relay Chat)
-@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.
-
-@defvr {Scheme Variable} quassel-service-type
-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).
-@end defvr
-
-@deftp {Data Type} quassel-configuration
-This is the configuration for Quassel, with the following fields:
-
-@table @asis
-@item @code{quassel} (default: @code{quassel})
-The Quassel package to use.
-
-@item @code{interface} (default: @code{"::,0.0.0.0"})
-@item @code{port} (default: @code{4242})
-Listen on the network interface(s) corresponding to the IPv4 or IPv6
-interfaces specified in the comma delimited @var{interface}, on @var{port}.
-
-@item @code{loglevel} (default: @code{"Info"})
-The level of logging desired.  Accepted values are Debug, Info, Warning and
-Error.
-@end table
-@end deftp
-
-@node Telefondienste
-@subsection Telefondienste
-
-@cindex Murmur (VoIP server)
-@cindex VoIP server
-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.
-
-@deftp {Data Type} murmur-configuration
-The service type for the Murmur server.  An example configuration can look
-like this:
-
-@example
-(service murmur-service-type
-         (murmur-configuration
-          (welcome-text
-            "Welcome to this Mumble server running on Guix!")
-          (cert-required? #t) ;disallow text password logins
-          (ssl-cert "/etc/letsencrypt/live/mumble.example.com/fullchain.pem")
-          (ssl-key "/etc/letsencrypt/live/mumble.example.com/privkey.pem")))
-@end example
-
-After reconfiguring your system, you can manually set the murmur
-@code{SuperUser} password with the command that is printed during the
-activation phase.
-
-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.
-
-Available @code{murmur-configuration} fields are:
-
-@table @asis
-@item @code{package} (default: @code{mumble})
-Package that contains @code{bin/murmurd}.
-
-@item @code{user} (default: @code{"murmur"})
-User who will run the Murmur server.
-
-@item @code{group} (default: @code{"murmur"})
-Group of the user who will run the murmur server.
-
-@item @code{port} (default: @code{64738})
-Port on which the server will listen.
-
-@item @code{welcome-text} (default: @code{""})
-Welcome text sent to clients when they connect.
-
-@item @code{server-password} (default: @code{""})
-Password the clients have to enter in order to connect.
-
-@item @code{max-users} (default: @code{100})
-Maximum of users that can be connected to the server at once.
-
-@item @code{max-user-bandwidth} (default: @code{#f})
-Maximum voice traffic a user can send per second.
-
-@item @code{database-file} (default: @code{"/var/lib/murmur/db.sqlite"})
-File name of the sqlite database.  The service's user will become the owner
-of the directory.
-
-@item @code{log-file} (default: @code{"/var/log/murmur/murmur.log"})
-File name of the log file.  The service's user will become the owner of the
-directory.
-
-@item @code{autoban-attempts} (default: @code{10})
-Maximum number of logins a user can make in @code{autoban-timeframe} without
-getting auto banned for @code{autoban-time}.
-
-@item @code{autoban-timeframe} (default: @code{120})
-Timeframe for autoban in seconds.
-
-@item @code{autoban-time} (default: @code{300})
-Amount of time in seconds for which a client gets banned when violating the
-autoban limits.
-
-@item @code{opus-threshold} (default: @code{100})
-Percentage of clients that need to support opus before switching over to
-opus audio codec.
-
-@item @code{channel-nesting-limit} (default: @code{10})
-How deep channels can be nested at maximum.
-
-@item @code{channelname-regex} (default: @code{#f})
-A string in form of a Qt regular expression that channel names must conform
-to.
-
-@item @code{username-regex} (default: @code{#f})
-A string in form of a Qt regular expression that user names must conform to.
-
-@item @code{text-message-length} (default: @code{5000})
-Maximum size in bytes that a user can send in one text chat message.
-
-@item @code{image-message-length} (default: @code{(* 128 1024)})
-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 authentification
-will not be accepted. Users must have completed the certificate wizard to
-join.
-
-@item @code{remember-channel?} (Vorgabe: @code{#f})
-Should murmur remember the last channel each user was in when they
-disconnected and put them into the remembered channel when they rejoin.
-
-@item @code{allow-html?} (default: @code{#f})
-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
-Mumble client, this information is shown in the Connect dialog.
-
-Disabling this setting will prevent public listing of the server.
-
-@item @code{bonjour?} (default: @code{#f})
-Should the server advertise itself in the local network through the bonjour
-protocol.
-
-@item @code{send-version?} (default: @code{#f})
-Should the murmur server version be exposed in ping requests.
-
-@item @code{log-days} (default: @code{31})
-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.
-
-@item @code{obfuscate-ips?} (Vorgabe: @code{#t})
-Should logged ips be obfuscated to protect the privacy of users.
-
-@item @code{ssl-cert} (default: @code{#f})
-File name of the SSL/TLS certificate used for encrypted connections.
-
-@example
-(ssl-cert "/etc/letsencrypt/live/example.com/fullchain.pem")
-@end example
-@item @code{ssl-key} (default: @code{#f})
-Filepath to the ssl private key used for encrypted connections.
-@example
-(ssl-key "/etc/letsencrypt/live/example.com/privkey.pem")
-@end example
-
-@item @code{ssl-dh-params} (default: @code{#f})
-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.
-
-@item @code{ssl-ciphers} (default: @code{#f})
-The @code{ssl-ciphers} option chooses the cipher suites to make available
-for use in SSL/TLS.
-
-This option is specified using
-@uref{https://www.openssl.org/docs/apps/ciphers.html#CIPHER-LIST-FORMAT,
-OpenSSL cipher list notation}.
-
-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.
-
-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.
-
-@item @code{public-registration} (default: @code{#f})
-Must be a @code{<murmur-public-registration-configuration>} record or
-@code{#f}.
-
-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}.
-
-It might take a few hours until it shows up in the public list.
-
-@item @code{file} (default: @code{#f})
-Optional alternative override for this configuration.
-@end table
-@end deftp
-
-@deftp {Data Type} murmur-public-registration-configuration
-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.
-
-@item @code{password}
-A password to identify your registration.  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 site.
-
-@item @code{hostname} (default: @code{#f})
-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.
-@end table
-@end deftp
-
-
-
-@node Überwachungsdienste
-@subsection Überwachungsdienste
-
-@subsubheading Tailon Service
-
-@uref{https://tailon.readthedocs.io/, Tailon} is a web application for
-viewing and searching log files.
-
-The following example will configure the service with default values.  By
-default, Tailon can be accessed on port 8080 (@code{http://localhost:8080}).
-
-@example
-(service tailon-service-type)
-@end example
-
-The following example customises more of the Tailon configuration, adding
-@command{sed} to the list of allowed commands.
-
-@example
-(service tailon-service-type
-         (tailon-configuration
-           (config-file
-             (tailon-configuration-file
-               (allowed-commands '("tail" "grep" "awk" "sed"))))))
-@end example
-
-
-@deftp {Data Type} tailon-configuration
-Data type representing the configuration of Tailon.  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
-@dfn{tailon-configuration-file} record value, or any gexp
-(@pxref{G-Ausdrücke}).
-
-For example, to instead use a local file, the @code{local-file} function can
-be used:
-
-@example
-(service tailon-service-type
-         (tailon-configuration
-           (config-file (local-file "./my-tailon.conf"))))
-@end example
-
-@item @code{package} (default: @code{tailon})
-The tailon package to use.
-
-@end table
-@end deftp
-
-@deftp {Data Type} tailon-configuration-file
-Data type representing the configuration options for Tailon.  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 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.
-
-@item @code{bind} (default: @code{"localhost:8080"})
-Address and port to which Tailon should bind on.
-
-@item @code{relative-root} (default: @code{#f})
-URL path to use for Tailon, set to @code{#f} to not use a path.
-
-@item @code{allow-transfers?} (default: @code{#t})
-Allow downloading the log files in the web interface.
-
-@item @code{follow-names?} (default: @code{#t})
-Allow tailing of not-yet existent files.
-
-@item @code{tail-lines} (default: @code{200})
-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.
-
-@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
-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 @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 list
-of pairs, where the first element of the pair is the username, and the 2nd
-element of the pair is the password.
-
-@example
-(tailon-configuration-file
-  (http-auth "basic")
-  (users     '(("user1" . "password1")
-               ("user2" . "password2"))))
-@end example
-
-@end table
-@end deftp
-
-
-@subsubheading Darkstat Service
-@cindex darkstat
-Darkstat is a packet sniffer that captures network traffic, calculates
-statistics about usage, and serves reports over HTTP.
-
-@defvar {Scheme Variable} darkstat-service-type
-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:
-
-@example
-(service darkstat-service-type
-         (darkstat-configuration
-           (interface "eno1")))
-@end example
-@end defvar
-
-@deftp {Data Type} darkstat-configuration
-Data type representing the configuration of @command{darkstat}.
-
-@table @asis
-@item @code{package} (default: @code{darkstat})
-The darkstat package to use.
-
-@item @code{interface}
-Capture traffic on the specified network interface.
-
-@item @code{port} (default: @code{"667"})
-Bind the web interface to the specified port.
-
-@item @code{bind-address} (default: @code{"127.0.0.1"})
-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 @command{darkstat}
-is accessed via a reverse proxy.
-
-@end table
-@end deftp
-
-@subsubheading Prometheus Node Exporter Service
-
-@cindex prometheus-node-exporter
-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.
-
-@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:
-
-@example
-(service prometheus-node-exporter-service-type
-         (prometheus-node-exporter-configuration
-           (web-listen-address ":9100")))
-@end example
-@end defvar
-
-@deftp {Data Type} prometheus-node-exporter-configuration
-Repräsentiert die Konfiguration von @command{node_exporter}.
-
-@table @asis
-@item @code{package} (Vorgabe: @code{go-github-com-prometheus-node-exporter})
-Das Paket für den prometheus-node-exporter, was benutzt werden soll.
-
-@item @code{web-listen-address} (Vorgabe: @code{":9100"})
-Bind the web interface to the specified address.
-
-@end table
-@end deftp
-
-@subsubheading Zabbix server
-@cindex zabbix zabbix-server
-Zabbix provides monitoring metrics, among others network utilization, CPU
-load and disk space consumption:
-
-@itemize
-@item High performance, high capacity (able to monitor hundreds of thousands of devices).
-@item Auto-discovery of servers and network devices and interfaces.
-@item Low-level discovery, allows to automatically start monitoring new items, file systems or network interfaces among others.
-@item Distributed monitoring with centralized web administration.
-@item Native high performance agents.
-@item SLA, and ITIL KPI metrics on reporting.
-@item High-level (business) view of monitored resources through user-defined visual console screens and dashboards.
-@item Remote command execution through Zabbix proxies.
-@end itemize
-
-@c %start of fragment
-
-Available @code{zabbix-server-configuration} fields are:
-
-@deftypevr {@code{zabbix-server-configuration} parameter} package zabbix-server
-The zabbix-server package.
-
-@end deftypevr
-
-@deftypevr {@code{zabbix-server-configuration} parameter} string user
-User who will run the Zabbix server.
-
-Defaults to @samp{"zabbix"}.
-
-@end deftypevr
-
-@deftypevr {@code{zabbix-server-configuration} parameter} group group
-Group who will run the Zabbix server.
-
-Defaults to @samp{"zabbix"}.
-
-@end deftypevr
-
-@deftypevr {@code{zabbix-server-configuration} parameter} string db-host
-Database host name.
-
-Defaults to @samp{"127.0.0.1"}.
-
-@end deftypevr
-
-@deftypevr {@code{zabbix-server-configuration} parameter} string db-name
-Database name.
-
-Defaults to @samp{"zabbix"}.
-
-@end deftypevr
-
-@deftypevr {@code{zabbix-server-configuration} parameter} string db-user
-Database user.
-
-Defaults to @samp{"zabbix"}.
-
-@end deftypevr
-
-@deftypevr {@code{zabbix-server-configuration} parameter} string db-password
-Database password.  Please, use @code{include-files} with
-@code{DBPassword=SECRET} inside a specified file instead.
-
-Defaults to @samp{""}.
-
-@end deftypevr
-
-@deftypevr {@code{zabbix-server-configuration} parameter} number db-port
-Database port.
-
-Defaults to @samp{5432}.
-
-@end deftypevr
-
-@deftypevr {@code{zabbix-server-configuration} parameter} string log-type
-Specifies where log messages are written to:
-
-@itemize @bullet
-@item
-@code{system} - syslog.
-
-@item
-@code{file} - file specified with @code{log-file} parameter.
-
-@item
-@code{console} - standard output.
-
-@end itemize
-
-Defaults to @samp{""}.
-
-@end deftypevr
-
-@deftypevr {@code{zabbix-server-configuration} parameter} string log-file
-Log file name for @code{log-type} @code{file} parameter.
-
-Defaults to @samp{"/var/log/zabbix/server.log"}.
-
-@end deftypevr
-
-@deftypevr {@code{zabbix-server-configuration} parameter} string pid-file
-Name of PID file.
-
-Defaults to @samp{"/var/run/zabbix/zabbix_server.pid"}.
-
-@end deftypevr
-
-@deftypevr {@code{zabbix-server-configuration} parameter} string ssl-ca-location
-The location of certificate authority (CA) files for SSL server certificate
-verification.
-
-Defaults to @samp{"/etc/ssl/certs/ca-certificates.crt"}.
-
-@end deftypevr
-
-@deftypevr {@code{zabbix-server-configuration} parameter} string ssl-cert-location
-Location of SSL client certificates.
-
-Defaults to @samp{"/etc/ssl/certs"}.
-
-@end deftypevr
-
-@deftypevr {@code{zabbix-server-configuration} parameter} string extra-options
-Extra options will be appended to Zabbix server configuration file.
-
-Defaults to @samp{""}.
-
-@end deftypevr
-
-@deftypevr {@code{zabbix-server-configuration} parameter} include-files include-files
-You may include individual files or all files in a directory in the
-configuration file.
-
-Defaults to @samp{()}.
-
-@end deftypevr
-
-@c %end of fragment
-
-@subsubheading Zabbix agent
-@cindex zabbix zabbix-agent
-
-Zabbix agent gathers information for Zabbix server.
-
-@c %start of fragment
-
-Available @code{zabbix-agent-configuration} fields are:
-
-@deftypevr {@code{zabbix-agent-configuration} parameter} package zabbix-agent
-The zabbix-agent package.
-
-@end deftypevr
-
-@deftypevr {@code{zabbix-agent-configuration} parameter} string user
-User who will run the Zabbix agent.
-
-Defaults to @samp{"zabbix"}.
-
-@end deftypevr
-
-@deftypevr {@code{zabbix-agent-configuration} parameter} group group
-Group who will run the Zabbix agent.
-
-Defaults to @samp{"zabbix"}.
-
-@end deftypevr
-
-@deftypevr {@code{zabbix-agent-configuration} parameter} string hostname
-Unique, case sensitive hostname which is required for active checks and must
-match hostname as configured on the server.
-
-Defaults to @samp{"Zabbix server"}.
-
-@end deftypevr
-
-@deftypevr {@code{zabbix-agent-configuration} parameter} string log-type
-Specifies where log messages are written to:
-
-@itemize @bullet
-@item
-@code{system} - syslog.
-
-@item
-@code{file} - file specified with @code{log-file} parameter.
-
-@item
-@code{console} - standard output.
-
-@end itemize
-
-Defaults to @samp{""}.
-
-@end deftypevr
-
-@deftypevr {@code{zabbix-agent-configuration} parameter} string log-file
-Log file name for @code{log-type} @code{file} parameter.
-
-Defaults to @samp{"/var/log/zabbix/agent.log"}.
-
-@end deftypevr
-
-@deftypevr {@code{zabbix-agent-configuration} parameter} string pid-file
-Name of PID file.
-
-Defaults to @samp{"/var/run/zabbix/zabbix_agent.pid"}.
-
-@end deftypevr
-
-@deftypevr {@code{zabbix-agent-configuration} parameter} list server
-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.
-
-Defaults to @samp{("127.0.0.1")}.
-
-@end deftypevr
-
-@deftypevr {@code{zabbix-agent-configuration} parameter} list server-active
-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.
-
-Defaults to @samp{("127.0.0.1")}.
-
-@end deftypevr
-
-@deftypevr {@code{zabbix-agent-configuration} parameter} string extra-options
-Extra options will be appended to Zabbix server configuration file.
-
-Defaults to @samp{""}.
-
-@end deftypevr
-
-@deftypevr {@code{zabbix-agent-configuration} parameter} include-files include-files
-You may include individual files or all files in a directory in the
-configuration file.
-
-Defaults to @samp{()}.
-
-@end deftypevr
-
-@c %end of fragment
-
-@subsubheading Zabbix front-end
-@cindex zabbix zabbix-front-end
-
-This service provides a WEB interface to Zabbix server.
-
-@c %start of fragment
-
-Available @code{zabbix-front-end-configuration} fields are:
-
-@deftypevr {@code{zabbix-front-end-configuration} parameter} nginx-server-configuration-list nginx
-NGINX configuration.
-
-@end deftypevr
-
-@deftypevr {@code{zabbix-front-end-configuration} parameter} string db-host
-Database host name.
-
-Defaults to @samp{"localhost"}.
-
-@end deftypevr
-
-@deftypevr {@code{zabbix-front-end-configuration} parameter} number db-port
-Database port.
-
-Defaults to @samp{5432}.
-
-@end deftypevr
-
-@deftypevr {@code{zabbix-front-end-configuration} parameter} string db-name
-Database name.
-
-Defaults to @samp{"zabbix"}.
-
-@end deftypevr
-
-@deftypevr {@code{zabbix-front-end-configuration} parameter} string db-user
-Database user.
-
-Defaults to @samp{"zabbix"}.
-
-@end deftypevr
-
-@deftypevr {@code{zabbix-front-end-configuration} parameter} string db-password
-Database password.  Please, use @code{db-secret-file} instead.
-
-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.
-
-Defaults to @samp{""}.
-
-@end deftypevr
-
-@deftypevr {@code{zabbix-front-end-configuration} parameter} string zabbix-host
-Zabbix server hostname.
-
-Defaults to @samp{"localhost"}.
-
-@end deftypevr
-
-@deftypevr {@code{zabbix-front-end-configuration} parameter} number zabbix-port
-Zabbix server port.
-
-Defaults to @samp{10051}.
-
-@end deftypevr
-
-
-@c %end of fragment
-
-@node Kerberos-Dienste
-@subsection Kerberos-Dienste
-@cindex Kerberos
-
-The @code{(gnu services kerberos)} module provides services relating to the
-authentication protocol @dfn{Kerberos}.
-
-@subsubheading Krb5 Service
-
-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.
-
-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.
-
-@defvr {Scheme Variable} krb5-service-type
-A service type for Kerberos 5 clients.
-@end defvr
-
-@noindent
-Here is an example of its use:
-@lisp
-(service krb5-service-type
-         (krb5-configuration
-          (default-realm "EXAMPLE.COM")
-          (allow-weak-crypto? #t)
-          (realms (list
-                   (krb5-realm
-                    (name "EXAMPLE.COM")
-                    (admin-server "groucho.example.com")
-                    (kdc "karl.example.com"))
-                   (krb5-realm
-                    (name "ARGRX.EDU")
-                    (admin-server "kerb-admin.argrx.edu")
-                    (kdc "keys.argrx.edu"))))))
-@end lisp
-
-@noindent
-This example provides a Kerberos@tie{}5 client configuration which:
-@itemize
-@item Recognizes two realms, @i{viz:} ``EXAMPLE.COM'' and ``ARGRX.EDU'', both
-of which have distinct administration servers and key distribution centers;
-@item Will default to the realm ``EXAMPLE.COM'' if the realm is not explicitly
-specified by clients;
-@item Accepts services which only support encryption types known to be weak.
-@end itemize
-
-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{http://web.mit.edu/kerberos/krb5-devel/doc/admin/conf_files/krb5_conf.html,,krb5.conf}
-documentation.
-
-
-@deftp {Data Type} krb5-realm
-@cindex realm, kerberos
-@table @asis
-@item @code{name}
-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.
-
-@item @code{admin-server}
-This field is a string identifying the host where the administration server
-is running.
-
-@item @code{kdc}
-This field is a string identifying the key distribution center for the
-realm.
-@end table
-@end deftp
-
-@deftp {Data Type} krb5-configuration
-
-@table @asis
-@item @code{allow-weak-crypto?} (default: @code{#f})
-If this flag is @code{#t} then services which only offer encryption
-algorithms known to be weak will be accepted.
-
-@item @code{default-realm} (default: @code{#f})
-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}.
-
-@item @code{realms}
-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.
-@end table
-@end deftp
-
-
-@subsubheading PAM krb5 Service
-@cindex pam-krb5
-
-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.
-
-@defvr {Scheme Variable} pam-krb5-service-type
-A service type for the Kerberos 5 PAM module.
-@end defvr
-
-@deftp {Data Type} pam-krb5-configuration
-Data type representing the configuration of the Kerberos 5 PAM module This
-type has the following parameters:
-@table @asis
-@item @code{pam-krb5} (default: @code{pam-krb5})
-The pam-krb5 package to use.
-
-@item @code{minimum-uid} (default: @code{1000})
-The smallest user ID for which Kerberos authentications should be
-attempted.  Local accounts with lower values will silently fail to
-authenticate.
-@end table
-@end deftp
-
-
-@node Web-Dienste
-@subsection Web-Dienste
-
-@cindex web
-@cindex www
-@cindex HTTP
-The @code{(gnu services web)} module provides the Apache HTTP Server, the
-nginx web server, and also a fastcgi wrapper daemon.
-
-@subsubheading Apache HTTP Server
-
-@deffn {Scheme Variable} httpd-service-type
-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.
-
-A simple example configuration is given below.
-
-@example
-(service httpd-service-type
-         (httpd-configuration
-           (config
-             (httpd-config-file
-               (server-name "www.example.com")
-               (document-root "/srv/http/www.example.com")))))
-@end example
-
-Other services can also extend the @code{httpd-service-type} to add to the
-configuration.
-
-@example
-(simple-service 'my-extra-server httpd-service-type
-                (list
-                  (httpd-virtualhost
-                    "*:80"
-                    (list (string-append
-                           "ServerName "www.example.com
-                            DocumentRoot \"/srv/http/www.example.com\"")))))
-@end example
-@end deffn
-
-The details for the @code{httpd-configuration}, @code{httpd-module},
-@code{httpd-config-file} and @code{httpd-virtualhost} record types are given
-below.
-
-@deffn {Data Type} httpd-configuration
-This data type represents the configuration for the httpd service.
-
-@table @asis
-@item @code{package} (default: @code{httpd})
-The httpd package to use.
-
-@item @code{pid-file} (default: @code{"/var/run/httpd"})
-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 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.
-
-@end table
-@end deffn
-
-@deffn {Data Type} httpd-module
-This data type represents a module for the httpd service.
-
-@table @asis
-@item @code{name}
-The name of the module.
-
-@item @code{file}
-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")}.
-
-@end table
-@end deffn
-
-@defvr {Scheme Variable} %default-httpd-modules
-A default list of @code{httpd-module} objects.
-@end defvr
-
-@deffn {Data Type} httpd-config-file
-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
-additional configuration.
-
-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}:
-
-@example
-(service httpd-service-type
-         (httpd-configuration
-          (config
-           (httpd-config-file
-            (modules (cons*
-                      (httpd-module
-                       (name "proxy_module")
-                       (file "modules/mod_proxy.so"))
-                      (httpd-module
-                       (name "proxy_fcgi_module")
-                       (file "modules/mod_proxy_fcgi.so"))
-                      %default-httpd-modules))
-            (extra-config (list "\
-<FilesMatch \\.php$>
-    SetHandler \"proxy:unix:/var/run/php-fpm.sock|fcgi://localhost/\"
-</FilesMatch>"))))))
-(service php-fpm-service-type
-         (php-fpm-configuration
-          (socket "/var/run/php-fpm.sock")
-          (socket-group "httpd")))
-@end example
-
-@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 taken
-as relative to the server root.
-
-@item @code{server-name} (default: @code{#f})
-The @code{ServerName} in the configuration file, used to specify the 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 specifyed in
-virtual hosts. The default is @code{#f} to not specify a @code{ServerName}.
-
-@item @code{document-root} (default: @code{"/srv/http"})
-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 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{httpd-configuration} so that the Shepherd service is configured
-correctly.
-
-@item @code{error-log} (default: @code{"/var/log/httpd/error_log"})
-The @code{ErrorLog} to which the server will log errors.
-
-@item @code{user} (default: @code{"httpd"})
-The @code{User} which the server will answer requests as.
-
-@item @code{group} (default: @code{"httpd"})
-The @code{Group} which the server will answer requests as.
-
-@item @code{extra-config} (default: @code{(list "TypesConfig etc/httpd/mime.types")})
-A flat list of strings and G-expressions which will be added to the end of
-the configuration file.
-
-Any values which the service is extended with will be appended to this list.
-
-@end table
-@end deffn
-
-@deffn {Data Type} httpd-virtualhost
-This data type represents a virtualhost configuration block for the httpd
-service.
-
-These should be added to the extra-config for the httpd-service.
-
-@example
-(simple-service 'my-extra-server httpd-service-type
-                (list
-                  (httpd-virtualhost
-                    "*:80"
-                    (list (string-append
-                           "ServerName "www.example.com
-                            DocumentRoot \"/srv/http/www.example.com\"")))))
-@end example
-
-@table @asis
-@item @code{addresses-and-ports}
-The addresses and ports for the @code{VirtualHost} directive.
-
-@item @code{contents}
-The contents of the @code{VirtualHost} directive, this should be a list of
-strings and G-expressions.
-
-@end table
-@end deffn
-
-@subsubheading NGINX
-
-@deffn {Scheme Variable} nginx-service-type
-Service type for the @uref{https://nginx.org/,NGinx} web server.  The value
-for this service type is a @code{<nginx-configuration>} record.
-
-A simple example configuration is given below.
-
-@example
-(service nginx-service-type
-         (nginx-configuration
-           (server-blocks
-             (list (nginx-server-configuration
-                     (server-name '("www.example.com"))
-                     (root "/srv/http/www.example.com"))))))
-@end example
-
-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:
-
-@example
-(simple-service 'my-extra-server nginx-service-type
-                (list (nginx-server-configuration
-                        (root "/srv/http/extra-website")
-                        (try-files (list "$uri" "$uri/index.html")))))
-@end example
-@end deffn
-
-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.
-
-@deffn {Data Type} nginx-configuration
-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.
-
-@table @asis
-@item @code{nginx} (default: @code{nginx})
-The nginx package to use.
-
-@item @code{log-directory} (default: @code{"/var/log/nginx"})
-The directory to which NGinx will write log files.
-
-@item @code{run-directory} (default: @code{"/var/run/nginx"})
-The directory in which NGinx will create a pid file, and write temporary
-files.
-
-@item @code{server-blocks} (default: @code{'()})
-A list of @dfn{server blocks} to create in the generated configuration file,
-the elements should be of type @code{<nginx-server-configuration>}.
-
-The following example would setup NGinx to serve @code{www.example.com} from
-the @code{/srv/http/www.example.com} directory, without using HTTPS.
-@example
-(service nginx-service-type
-         (nginx-configuration
-           (server-blocks
-             (list (nginx-server-configuration
-                     (server-name '("www.example.com"))
-                     (root "/srv/http/www.example.com"))))))
-@end example
-
-@item @code{upstream-blocks} (default: @code{'()})
-A list of @dfn{upstream blocks} to create in the generated configuration
-file, the elements should be of type @code{<nginx-upstream-configuration>}.
-
-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.
-
-@example
-(service
-  nginx-service-type
-  (nginx-configuration
-    (server-blocks
-      (list (nginx-server-configuration
-              (server-name '("www.example.com"))
-              (root "/srv/http/www.example.com")
-              (locations
-                (list
-                  (nginx-location-configuration
-                  (uri "/path1")
-                  (body '("proxy_pass http://server-proxy;"))))))))
-    (upstream-blocks
-      (list (nginx-upstream-configuration
-              (name "server-proxy")
-              (servers (list "server1.example.com"
-                             "server2.example.com")))))))
-@end example
-
-@item @code{file} (default: @code{#f})
-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.
-
-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.
-
-@item @code{server-names-hash-bucket-size} (default: @code{#f})
-Bucket size for the server names hash tables, defaults to @code{#f} to use
-the size of the processors cache line.
-
-@item @code{server-names-hash-bucket-max-size} (default: @code{#f})
-Maximum bucket size for the server names hash tables.
-
-@item @code{extra-content} (Vorgabe: @code{""})
-Extra content for the @code{http} block.  Should be string or a string
-valued G-expression.
-
-@end table
-@end deffn
-
-@deftp {Data Type} nginx-server-configuration
-Data type representing the configuration of an nginx server block.  This
-type has the following parameters:
-
-@table @asis
-@item @code{listen} (default: @code{'("80" "443 ssl")})
-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:
-
-@example
-'("127.0.0.1:8000" "127.0.0.1" "8000" "*:8000" "localhost:8000")
-@end example
-
-@item @code{server-name} (default: @code{(list 'default)})
-A list of server names this server represents. @code{'default} represents
-the default server for connections matching no other server.
-
-@item @code{root} (default: @code{"/srv/http"})
-Root of the website nginx will serve.
-
-@item @code{locations} (default: @code{'()})
-A list of @dfn{nginx-location-configuration} or
-@dfn{nginx-named-location-configuration} records to use within this server
-block.
-
-@item @code{index} (default: @code{(list "index.html")})
-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.
-
-@item @code{try-files} (default: @code{'()})
-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.
-
-@item @code{ssl-certificate} (default: @code{#f})
-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.
-
-@item @code{ssl-certificate-key} (default: @code{#f})
-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.
-
-@item @code{server-tokens?} (default: @code{#f})
-Whether the server should add its configuration to response.
-
-@item @code{raw-content} (default: @code{'()})
-A list of raw lines added to the server block.
-
-@end table
-@end deftp
-
-@deftp {Data Type} nginx-upstream-configuration
-Data type representing the configuration of an nginx @code{upstream} block.
-This type has the following parameters:
-
-@table @asis
-@item @code{name}
-Name for this group of servers.
-
-@item @code{servers}
-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.
-
-@end table
-@end deftp
-
-@deftp {Data Type} nginx-location-configuration
-Data type representing the configuration of an nginx @code{location} block.
-This type has the following parameters:
-
-@table @asis
-@item @code{uri}
-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
-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;")}.
-
-@end table
-@end deftp
-
-@deftp {Data Type} nginx-named-location-configuration
-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:
-
-@table @asis
-@item @code{name}
-Name to identify this location block.
-
-@item @code{body}
-@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.
-
-@end table
-@end deftp
-
-@subsubheading Varnish Cache
-@cindex Varnish
-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.
-
-@defvr {Scheme Variable} varnish-service-type
-Service type for the Varnish daemon.
-@end defvr
-
-@deftp {Data Type} varnish-configuration
-Data type representing the @code{varnish} service configuration.  This type
-has the following parameters:
-
-@table @asis
-@item @code{package} (Vorgabe: @code{varnish})
-Das Varnish-Paket, was benutzt werden soll.
-
-@item @code{name} (Vorgabe: @code{"default"})
-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.
-
-Pass the @code{-n} argument to other Varnish programs to connect to the
-named instance, e.g.@: @command{varnishncsa -n default}.
-
-@item @code{backend} (Vorgabe: @code{"localhost:8080"})
-The backend to use.  This option has no effect if @code{vcl} is set.
-
-@item @code{vcl} (Vorgabe: #f)
-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.
-
-@c Varnish does not support HTTPS, so keep this URL to avoid confusion.
-For example, to mirror @url{http://www.gnu.org,www.gnu.org} with VCL you can
-do something along these lines:
-
-@example
-(define %gnu-mirror
-  (plain-file
-   "gnu.vcl"
-   "vcl 4.1;
-backend gnu @{ .host = "www.gnu.org"; @}"))
-
-(operating-system
-  ...
-  (services (cons (service varnish-service-type
-                           (varnish-configuration
-                            (listen '(":80"))
-                            (vcl %gnu-mirror)))
-                  %base-services)))
-@end example
-
-The configuration of an already running Varnish instance can be inspected
-and changed using the @command{varnishadm} program.
-
-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.
-
-@item @code{listen} (Vorgabe: @code{'("localhost:80")})
-List of addresses Varnish will listen on.
-
-@item @code{storage} (Vorgabe: @code{'("malloc,128m")})
-List of storage backends that will be available in VCL.
-
-@item @code{parameters} (Vorgabe: @code{'()})
-List of run-time parameters in the form @code{'(("parameter" . "value"))}.
-
-@item @code{extra-options} (Vorgabe: @code{'()})
-Additional arguments to pass to the @command{varnishd} process.
-
-@end table
-@end deftp
-
-@subsubheading FastCGI
-@cindex fastcgi
-@cindex fcgiwrap
-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.
-
-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.
-
-@defvr {Scheme Variable} fcgiwrap-service-type
-A service type for the @code{fcgiwrap} FastCGI proxy.
-@end defvr
-
-@deftp {Data Type} fcgiwrap-configuration
-Data type representing the configuration of the @code{fcgiwrap} service.
-This type has the following parameters:
-@table @asis
-@item @code{package} (default: @code{fcgiwrap})
-The fcgiwrap package to use.
-
-@item @code{socket} (default: @code{tcp:127.0.0.1:9000})
-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}.
-
-@item @code{user} (default: @code{fcgiwrap})
-@itemx @code{group} (default: @code{fcgiwrap})
-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.
-
-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.
-@end table
-@end deftp
-
-@cindex php-fpm
-PHP-FPM (FastCGI Process Manager) is an alternative PHP FastCGI
-implementation with some additional features useful for sites of any size.
-
-These features include:
-@itemize @bullet
-@item Adaptive process spawning
-@item Basic statistics (similar to Apache's mod_status)
-@item Advanced process management with graceful stop/start
-@item Ability to start workers with different uid/gid/chroot/environment
-and different php.ini (replaces safe_mode)
-@item Stdout & stderr logging
-@item Emergency restart in case of accidental opcode cache destruction
-@item Accelerated upload support
-@item Support for a "slowlog"
-@item Enhancements to FastCGI, such as fastcgi_finish_request() -
-a special function to finish request & flush all data while continuing to do
-something time-consuming (video converting, stats processing, etc.)
-@end itemize
-...@: and much more.
-
-@defvr {Scheme Variable} php-fpm-service-type
-A Service type for @code{php-fpm}.
-@end defvr
-
-@deftp {Data Type} php-fpm-configuration
-Data Type for php-fpm service configuration.
-@table @asis
-@item @code{php} (default: @code{php})
-The php package to use.
-@item @code{socket} (default: @code{(string-append "/var/run/php" (version-major (package-version php)) "-fpm.sock")})
-The address on which to accept FastCGI requests.  Valid syntaxes are:
-@table @asis
-@item @code{"ip.add.re.ss:port"}
-Listen on a TCP socket to a specific address on a specific port.
-@item @code{"port"}
-Listen on a TCP socket to all addresses on a specific port.
-@item @code{"/path/to/unix/socket"}
-Listen on a unix socket.
-@end table
-
-@item @code{user} (default: @code{php-fpm})
-User who will own the php worker processes.
-@item @code{group} (default: @code{php-fpm})
-Group of the worker processes.
-@item @code{socket-user} (default: @code{php-fpm})
-User who can speak to the php-fpm socket.
-@item @code{socket-group} (default: @code{php-fpm})
-Group that can speak to the php-fpm socket.
-@item @code{pid-file} (default: @code{(string-append "/var/run/php" (version-major (package-version php)) "-fpm.pid")})
-The process id of the php-fpm process is written to this file once the
-service has started.
-@item @code{log-file} (default: @code{(string-append "/var/log/php" (version-major (package-version php)) "-fpm.log")})
-Log for the php-fpm master process.
-@item @code{process-manager} (default: @code{(php-fpm-dynamic-process-manager-configuration)})
-Detailed settings for the php-fpm process manager.  Must be either:
-@table @asis
-@item @code{<php-fpm-dynamic-process-manager-configuration>}
-@item @code{<php-fpm-static-process-manager-configuration>}
-@item @code{<php-fpm-on-demand-process-manager-configuration>}
-@end table
-@item @code{display-errors} (default @code{#f})
-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.
-@item @code{timezone} (default @code{#f})
-Specifies @code{php_admin_value[date.timezone]} parameter.
-@item @code{workers-logfile} (default @code{(string-append "/var/log/php" (version-major (package-version php)) "-fpm.www.log")})
-This file will log the @code{stderr} outputs of php worker processes.  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.
-@end table
-@end deftp
-
-@deftp {Data type} php-fpm-dynamic-process-manager-configuration
-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.
-@table @asis
-@item @code{max-children} (default: @code{5})
-Maximum of worker processes.
-@item @code{start-servers} (default: @code{2})
-How many worker processes should be started on start-up.
-@item @code{min-spare-servers} (default: @code{1})
-How many spare worker processes should be kept around at minimum.
-@item @code{max-spare-servers} (default: @code{3})
-How many spare worker processes should be kept around at maximum.
-@end table
-@end deftp
-
-@deftp {Data type} php-fpm-static-process-manager-configuration
-Data Type for the @code{static} php-fpm process manager.  With the
-@code{static} process manager, an unchanging number of worker processes are
-created.
-@table @asis
-@item @code{max-children} (default: @code{5})
-Maximum of worker processes.
-@end table
-@end deftp
-
-@deftp {Data type} php-fpm-on-demand-process-manager-configuration
-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.
-@table @asis
-@item @code{max-children} (default: @code{5})
-Maximum of worker processes.
-@item @code{process-idle-timeout} (default: @code{10})
-The time in seconds after which a process with no requests is killed.
-@end table
-@end deftp
-
-
-@deffn {Scheme Procedure} nginx-php-fpm-location @
-       [#: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}.
-@end deffn
-
-A simple services setup for nginx with php can look like this:
-@example
-(services (cons* (service dhcp-client-service-type)
-                 (service php-fpm-service-type)
-                 (service nginx-service-type
-                          (nginx-server-configuration
-                           (server-name '("example.com"))
-                           (root "/srv/http/")
-                           (locations
-                            (list (nginx-php-location)))
-                           (listen '("80"))
-                           (ssl-certificate #f)
-                           (ssl-certificate-key #f)))
-                 %base-services))
-@end example
-
-@cindex cat-avatar-generator
-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.
-
-@deffn {Scheme Procedure} cat-avatar-generator-service @
-       [#: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.
-@end deffn
-
-A simple setup for cat-avatar-generator can look like this:
-@example
-(services (cons* (cat-avatar-generator-service
-                  #:configuration
-                  (nginx-server-configuration
-                    (server-name '("example.com"))))
-                 ...
-                 %base-services))
-@end example
-
-@subsubheading Hpcguix-web
-
-@cindex hpcguix-web
-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.
-
-@defvr {Scheme Variable} hpcguix-web-service-type
-The service type for @code{hpcguix-web}.
-@end defvr
-
-@deftp {Data Type} hpcguix-web-configuration
-Data type for the hpcguix-web service configuration.
-
-@table @asis
-@item @code{specs}
-A gexp (@pxref{G-Ausdrücke}) specifying the hpcguix-web service
-configuration.  The main items available in this spec are:
-
-@table @asis
-@item @code{title-prefix} (Vorgabe: @code{"hpcguix | "})
-Das Präfix der Webseitentitel.
-
-@item @code{guix-command} (Vorgabe: @code{"guix"})
-Der @command{guix}-Befehl.
-
-@item @code{package-filter-proc} (Vorgabe: @code{(const #t)})
-Eine Prozedur, die festlegt, wie anzuzeigende Pakete gefiltert werden.
-
-@item @code{package-page-extension-proc} (Vorgabe: @code{(const '())})
-Extension package for @code{hpcguix-web}.
-
-@item @code{menu} (Vorgabe: @code{'()})
-Additional entry in page @code{menu}.
-
-@item @code{channels} (Vorgabe: @code{%default-channels})
-List of channels from which the package list is built (@pxref{Kanäle}).
-
-@item @code{package-list-expiration} (Vorgabe: @code{(* 12 3600)})
-The expiration time, in seconds, after which the package list is rebuilt
-from the latest instances of the given channels.
-@end table
-
-See the hpcguix-web repository for a
-@uref{https://github.com/UMCUGenetics/hpcguix-web/blob/master/hpcweb-configuration.scm,
-complete example}.
-
-@item @code{package} (Vorgabe: @code{hpcguix-web})
-Das hpcguix-web-Paket, was benutzt werden soll.
-@end table
-@end deftp
-
-A typical hpcguix-web service declaration looks like this:
-
-@example
-(service hpcguix-web-service-type
-         (hpcguix-web-configuration
-          (specs
-           #~(define site-config
-               (hpcweb-configuration
-                (title-prefix "Guix-HPC - ")
-                (menu '(("/about" "ABOUT"))))))))
-@end example
-
-@quotation Anmerkung
-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.
-
-Thus, make sure to add @code{nss-certs} or another certificate package to
-the @code{packages} field of your configuration.  @ref{X.509-Zertifikate},
-for more information on X.509 certificates.
-@end quotation
-
-@node Zertifikatsdienste
-@subsection Zertifikatsdienste
-
-@cindex Web
-@cindex HTTP, HTTPS
-@cindex Let's Encrypt
-@cindex TLS certificates
-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.
-
-@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.
-
-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).
-
-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.
-
-By using this service, you agree to the ACME Subscriber Agreement, which can
-be found there: @url{https://acme-v01.api.letsencrypt.org/directory}.
-
-@defvr {Scheme Variable} certbot-service-type
-A service type for the @code{certbot} Let's Encrypt client.  Its value must
-be a @code{certbot-configuration} record as in this example:
-
-@example
-(define %nginx-deploy-hook
-  (program-file
-   "nginx-deploy-hook"
-   #~(let ((pid (call-with-input-file "/var/run/nginx/pid" read)))
-       (kill pid SIGHUP))))
-
-(service certbot-service-type
-         (certbot-configuration
-          (email "foo@@example.net")
-          (certificates
-           (list
-            (certificate-configuration
-             (domains '("example.net" "www.example.net"))
-             (deploy-hook %nginx-deploy-hook))
-            (certificate-configuration
-             (domains '("bar.example.net")))))))
-@end example
-
-See below for details about @code{certbot-configuration}.
-@end defvr
-
-@deftp {Data Type} certbot-configuration
-Data type representing the configuration of the @code{certbot} service.
-This type has the following parameters:
-
-@table @asis
-@item @code{package} (default: @code{certbot})
-The certbot package to use.
-
-@item @code{webroot} (default: @code{/var/www})
-The directory from which to serve the Let's Encrypt challenge/response
-files.
-
-@item @code{certificates} (default: @code{()})
-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{rsa-key-size} (default: @code{2048})
-Size of the RSA key.
-
-@item @code{default-location} (default: @i{see below})
-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-Dienste}, for more on these nginx configuration data types.
-
-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.
-
-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}.
-
-Pass @code{#f} to not issue a default location.
-@end table
-@end deftp
-
-@deftp {Data Type} certificate-configuration
-Data type representing the configuration of a certificate.  This type has
-the following parameters:
-
-@table @asis
-@item @code{name} (default: @i{see below})
-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}.
-
-Its default is the first provided domain.
-
-@item @code{domains} (default: @code{()})
-The first domain provided will be the subject CN of the certificate, and all
-domains will be Subject Alternative Names on the certificate.
-
-@item @code{deploy-hook} (default: @code{#f})
-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"}.
-
-@end table
-@end deftp
-
-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}.
-@node DNS-Dienste
-@subsection DNS-Dienste
-@cindex DNS (domain name system)
-@cindex domain name system (DNS)
-
-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}.
-
-@subsubheading Knot-Dienst
-
-An example configuration of an authoritative server for two zones, one
-master and one slave, is:
-
-@lisp
-(define-zone-entries example.org.zone
-;; Name TTL Class Type Data
-  ("@@"  ""  "IN"  "A"  "127.0.0.1")
-  ("@@"  ""  "IN"  "NS" "ns")
-  ("ns" ""  "IN"  "A"  "127.0.0.1"))
-
-(define master-zone
-  (knot-zone-configuration
-    (domain "example.org")
-    (zone (zone-file
-            (origin "example.org")
-            (entries example.org.zone)))))
-
-(define slave-zone
-  (knot-zone-configuration
-    (domain "plop.org")
-    (dnssec-policy "default")
-    (master (list "plop-master"))))
-
-(define plop-master
-  (knot-remote-configuration
-    (id "plop-master")
-    (address (list "208.76.58.171"))))
-
-(operating-system
-  ;; ...
-  (services (cons* (service knot-service-type
-                     (knot-configuration
-                       (remotes (list plop-master))
-                       (zones (list master-zone slave-zone))))
-                   ;; ...
-                   %base-services)))
-@end lisp
-
-@deffn {Scheme Variable} knot-service-type
-This is the type for the Knot DNS server.
-
-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.
-
-The following data types are used to configure the Knot DNS server:
-@end deffn
-
-@deftp {Data Type} knot-key-configuration
-Data type representing a key.  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
-be unique and must not be empty.
-
-@item @code{algorithm} (default: @code{#f})
-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}.
-
-@item @code{secret} (default: @code{""})
-The secret key itself.
-
-@end table
-@end deftp
-
-@deftp {Data Type} knot-acl-configuration
-Data type representing an Access Control List (ACL) configuration.  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 unique and must not be empty.
-
-@item @code{address} (default: @code{'()})
-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.
-
-@item @code{key} (default: @code{'()})
-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.
-
-@item @code{action} (default: @code{'()})
-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}.
-
-@item @code{deny?} (default: @code{#f})
-When true, the ACL defines restrictions.  Listed actions are forbidden.
-When false, listed actions are allowed.
-
-@end table
-@end deftp
-
-@deftp {Data Type} zone-entry
-Data type represnting a record entry in a zone file.  This type has the
-following parameters:
-
-@table @asis
-@item @code{name} (default: @code{"@@"})
-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}.
-
-@item @code{ttl} (default: @code{""})
-The Time-To-Live (TTL) of this record.  If not set, the default TTL is used.
-
-@item @code{class} (default: @code{"IN"})
-The class of the record.  Knot currently supports only @code{"IN"} and
-partially @code{"CH"}.
-
-@item @code{type} (default: @code{"A"})
-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.
-
-@item @code{data} (default: @code{""})
-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.
-
-@end table
-@end deftp
-
-@deftp {Data Type} zone-file
-Data type representing the content of a zone file.  This type has the
-following parameters:
-
-@table @asis
-@item @code{entries} (default: @code{'()})
-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}.
-
-@item @code{origin} (default: @code{""})
-The name of your zone.  This parameter cannot be empty.
-
-@item @code{ns} (default: @code{"ns"})
-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.
-
-@item @code{mail} (default: @code{"hostmaster"})
-An email address people can contact you at, as the owner of the zone.  This
-is translated as @code{<mail>@@<origin>}.
-
-@item @code{serial} (default: @code{1})
-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.
-
-@item @code{refresh} (default: @code{(* 2 24 3600)})
-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)}.
-
-@item @code{retry} (default: @code{(* 15 60)})
-The period after which a slave will retry to contact its master when it
-fails to do so a first time.
-
-@item @code{expiry} (default: @code{(* 14 24 3600)})
-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.
-
-@item @code{nx} (default: @code{3600})
-Default TTL of inexistant records.  This delay is usually short because you
-want your new domains to reach everyone quickly.
-
-@end table
-@end deftp
-
-@deftp {Data Type} knot-remote-configuration
-Data type representing a remote configuration.  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 be unique and must not be empty.
-
-@item @code{address} (default: @code{'()})
-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.
-
-@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.  The default is to choose at random.
-
-@item @code{key} (default: @code{#f})
-A reference to a key, that is a string containing the identifier of a key
-defined in a @code{knot-key-configuration} field.
-
-@end table
-@end deftp
-
-@deftp {Data Type} knot-keystore-configuration
-Data type representing a keystore to hold dnssec keys.  This type has the
-following parameters:
-
-@table @asis
-@item @code{id} (default: @code{""})
-The id of the keystore.  It must not be empty.
-
-@item @code{backend} (default: @code{'pem})
-The backend to store the keys in.  Can be @code{'pem} or @code{'pkcs11}.
-
-@item @code{config} (default: @code{"/var/lib/knot/keys/keys"})
-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.
-
-@end table
-@end deftp
-
-@deftp {Data Type} knot-policy-configuration
-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.
-
-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.
-
-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.
-
-This type has the following parameters:
-
-@table @asis
-@item @code{id} (default: @code{""})
-The id of the policy.  It must not be empty.
-
-@item @code{keystore} (default: @code{"default"})
-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).
-
-@item @code{manual?} (default: @code{#f})
-Whether the key management is manual or automatic.
-
-@item @code{single-type-signing?} (default: @code{#f})
-When @code{#t}, use the Single-Type Signing Scheme.
-
-@item @code{algorithm} (default: @code{"ecdsap256sha256"})
-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
-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
-algorithm, but would be unsecure for other algorithms.
-
-@item @code{dnskey-ttl} (default: @code{'default})
-The TTL value for DNSKEY records added into zone apex.  The special
-@code{'default} value means same as the zone SOA TTL.
-
-@item @code{zsk-lifetime} (default: @code{(* 30 24 3600)})
-The period between ZSK publication and the next rollover initiation.
-
-@item @code{propagation-delay} (default: @code{(* 24 3600)})
-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.
-
-@item @code{rrsig-lifetime} (default: @code{(* 14 24 3600)})
-A validity period of newly issued signatures.
-
-@item @code{rrsig-refresh} (default: @code{(* 7 24 3600)})
-A period how long before a signature expiration the signature will be
-refreshed.
-
-@item @code{nsec3?} (default: @code{#f})
-When @code{#t}, NSEC3 will be used instead of NSEC.
-
-@item @code{nsec3-iterations} (default: @code{5})
-The number of additional times the hashing is performed.
-
-@item @code{nsec3-salt-length} (default: @code{8})
-The length of a salt field in octets, which is appended to the original
-owner name before hashing.
-
-@item @code{nsec3-salt-lifetime} (default: @code{(* 30 24 3600)})
-The validity period of newly issued salt field.
-
-@end table
-@end deftp
-
-@deftp {Data Type} knot-zone-configuration
-Data type representing a zone served by Knot.  This type has the following
-parameters:
-
-@table @asis
-@item @code{domain} (default: @code{""})
-The domain served by this configuration.  It must not be empty.
-
-@item @code{file} (default: @code{""})
-The file where this zone is saved.  This parameter is ignored by master
-zones.  Empty means default location that depends on the domain name.
-
-@item @code{zone} (default: @code{(zone-file)})
-The content of the zone file.  This parameter is ignored by slave zones.  It
-must contain a zone-file record.
-
-@item @code{master} (default: @code{'()})
-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.
-
-@item @code{ddns-master} (default: @code{#f})
-The main master.  When empty, it defaults to the first master in the list of
-masters.
-
-@item @code{notify} (default: @code{'()})
-A list of slave remote identifiers.
-
-@item @code{acl} (default: @code{'()})
-A list of acl identifiers.
-
-@item @code{semantic-checks?} (default: @code{#f})
-When set, this adds more semantic checks to the zone.
-
-@item @code{disable-any?} (default: @code{#f})
-When set, this forbids queries of the ANY type.
-
-@item @code{zonefile-sync} (default: @code{0})
-The delay between a modification in memory and on disk.  0 means immediate
-synchronization.
-
-@item @code{serial-policy} (default: @code{'increment})
-A policy between @code{'increment} and @code{'unixtime}.
-
-@end table
-@end deftp
-
-@deftp {Data Type} knot-configuration
-Data type representing the Knot configuration.  This type has the following
-parameters:
-
-@table @asis
-@item @code{knot} (default: @code{knot})
-The Knot package.
-
-@item @code{run-directory} (default: @code{"/var/run/knot"})
-The run directory.  This directory will be used for pid file and sockets.
-
-@item @code{listen-v4} (default: @code{"0.0.0.0"})
-An ip address on which to listen.
-
-@item @code{listen-v6} (default: @code{"::"})
-An ip address on which to listen.
-
-@item @code{listen-port} (default: @code{53})
-A port on which to listen.
-
-@item @code{keys} (default: @code{'()})
-The list of knot-key-configuration used by this configuration.
-
-@item @code{acls} (default: @code{'()})
-The list of knot-acl-configuration used by this configuration.
-
-@item @code{remotes} (default: @code{'()})
-The list of knot-remote-configuration used by this configuration.
-
-@item @code{zones} (default: @code{'()})
-The list of knot-zone-configuration used by this configuration.
-
-@end table
-@end deftp
-
-@subsubheading Dnsmasq-Dienst
-
-@deffn {Scheme Variable} dnsmasq-service-type
-This is the type of the dnsmasq service, whose value should be an
-@code{dnsmasq-configuration} object as in this example:
-
-@example
-(service dnsmasq-service-type
-         (dnsmasq-configuration
-           (no-resolv? #t)
-           (servers '("192.168.1.1"))))
-@end example
-@end deffn
-
-@deftp {Datentyp} dnsmasq-configuration
-Repräsentiert die dnsmasq-Konfiguration.
-
-@table @asis
-@item @code{package} (Vorgabe: @var{dnsmasq})
-Package object of the dnsmasq server.
-
-@item @code{no-hosts?} (Vorgabe: @code{#f})
-When true, don't read the hostnames in /etc/hosts.
-
-@item @code{port} (Vorgabe: @code{53})
-The port to listen on.  Setting this to zero completely disables DNS
-responses, leaving only DHCP and/or TFTP functions.
-
-@item @code{local-service?} (Vorgabe: @code{#t})
-Accept DNS queries only from hosts whose address is on a local subnet, ie a
-subnet for which an interface exists on the server.
-
-@item @code{listen-addresses} (Vorgabe: @code{'()})
-Listen on the given IP addresses.
-
-@item @code{resolv-file} (Vorgabe: @code{"/etc/resolv.conf"})
-The file to read the IP address of the upstream nameservers from.
-
-@item @code{no-resolv?} (Vorgabe: @code{#f})
-When true, don't read @var{resolv-file}.
-
-@item @code{servers} (default: @code{'()})
-Specify IP address of upstream servers directly.
-
-@item @code{cache-size} (Vorgabe: @code{150})
-Set the size of dnsmasq's cache.  Setting the cache size to zero disables
-caching.
-
-@item @code{negative-cache?} (Vorgabe: @code{#t})
-When false, disable negative caching.
-
-@end table
-@end deftp
-
-@subsubheading ddclient-Dienst
-
-@cindex ddclient
-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}.
-
-The following example show instantiates the service with its default
-configuration:
-
-@example
-(service ddclient-service-type)
-@end example
-
-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.
-
-@c %start of fragment
-
-Available @code{ddclient-configuration} fields are:
-
-@deftypevr {@code{ddclient-configuration} parameter} package ddclient
-Das ddclient-Paket.
-
-@end deftypevr
-
-@deftypevr {@code{ddclient-configuration} parameter} integer daemon
-The period after which ddclient will retry to check IP and domain name.
-
-Defaults to @samp{300}.
-
-@end deftypevr
-
-@deftypevr {@code{ddclient-configuration} parameter} boolean syslog
-Use syslog for the output.
-
-Defaults to @samp{#t}.
-
-@end deftypevr
-
-@deftypevr {@code{ddclient-configuration} parameter} string mail
-Mail to user.
-
-Defaults to @samp{"root"}.
-
-@end deftypevr
-
-@deftypevr {@code{ddclient-configuration} parameter} string mail-failure
-Den Nutzer per Mail bei fehlgeschlagenen Aktualisierungen benachrichtigen.
-
-Defaults to @samp{"root"}.
-
-@end deftypevr
-
-@deftypevr {@code{ddclient-configuration} parameter} string pid
-PID-Datei für den ddclient.
-
-Defaults to @samp{"/var/run/ddclient/ddclient.pid"}.
-
-@end deftypevr
-
-@deftypevr {@code{ddclient-configuration} parameter} boolean ssl
-Enable SSL support.
-
-Defaults to @samp{#t}.
-
-@end deftypevr
-
-@deftypevr {@code{ddclient-configuration} parameter} string user
-Specifies the user name or ID that is used when running ddclient program.
-
-Defaults to @samp{"ddclient"}.
-
-@end deftypevr
-
-@deftypevr {@code{ddclient-configuration} parameter} string group
-Group of the user who will run the ddclient program.
-
-Defaults to @samp{"ddclient"}.
-
-@end deftypevr
-
-@deftypevr {@code{ddclient-configuration} parameter} string secret-file
-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.
-
-Defaults to @samp{"/etc/ddclient/secrets.conf"}.
-
-@end deftypevr
-
-@deftypevr {@code{ddclient-configuration} parameter} list extra-options
-Extra options will be appended to @file{ddclient.conf} file.
-
-Defaults to @samp{()}.
-
-@end deftypevr
-
-
-@c %end of fragment
-
-
-@node VPN-Dienste
-@subsection VPN-Dienste
-@cindex VPN (virtual private network)
-@cindex virtual private network (VPN)
-
-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{servire} service for your
-machine to host a VPN.  Both services use @uref{https://openvpn.net/,
-OpenVPN}.
-
-@deffn {Scheme Procedure} openvpn-client-service @
-       [#:config (openvpn-client-configuration)]
-
-Return a service that runs @command{openvpn}, a VPN daemon, as a client.
-@end deffn
-
-@deffn {Scheme Procedure} openvpn-server-service @
-       [#:config (openvpn-server-configuration)]
-
-Return a service that runs @command{openvpn}, a VPN daemon, as a server.
-
-Both can be run simultaneously.
-@end deffn
-
-@c %automatically generated documentation
-
-Available @code{openvpn-client-configuration} fields are:
-
-@deftypevr {@code{openvpn-client-configuration} parameter} package openvpn
-The OpenVPN package.
-
-@end deftypevr
-
-@deftypevr {@code{openvpn-client-configuration} parameter} string pid-file
-The OpenVPN pid file.
-
-Defaults to @samp{"/var/run/openvpn/openvpn.pid"}.
-
-@end deftypevr
-
-@deftypevr {@code{openvpn-client-configuration} parameter} proto proto
-The protocol (UDP or TCP) used to open a channel between clients and
-servers.
-
-Defaults to @samp{udp}.
-
-@end deftypevr
-
-@deftypevr {@code{openvpn-client-configuration} parameter} dev dev
-The device type used to represent the VPN connection.
-
-Defaults to @samp{tun}.
-
-@end deftypevr
-
-@deftypevr {@code{openvpn-client-configuration} parameter} 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
-The certificate of the machine the daemon is running on.  It should be
-signed by the authority given in @code{ca}.
-
-Defaults to @samp{"/etc/openvpn/client.crt"}.
-
-@end deftypevr
-
-@deftypevr {@code{openvpn-client-configuration} parameter} string key
-The key of the machine the daemon is running on.  It must be the key whose
-certificate is @code{cert}.
-
-Defaults to @samp{"/etc/openvpn/client.key"}.
-
-@end deftypevr
-
-@deftypevr {@code{openvpn-client-configuration} parameter} boolean comp-lzo?
-Whether to use the lzo compression algorithm.
-
-Defaults to @samp{#t}.
-
-@end deftypevr
-
-@deftypevr {@code{openvpn-client-configuration} parameter} boolean persist-key?
-Don't re-read key files across SIGUSR1 or --ping-restart.
-
-Defaults to @samp{#t}.
-
-@end deftypevr
-
-@deftypevr {@code{openvpn-client-configuration} parameter} boolean persist-tun?
-Don't close and reopen TUN/TAP device or run up/down scripts across SIGUSR1
-or --ping-restart restarts.
-
-Defaults to @samp{#t}.
-
-@end deftypevr
-
-@deftypevr {@code{openvpn-client-configuration} parameter} number verbosity
-Verbosity level.
-
-Defaults to @samp{3}.
-
-@end deftypevr
-
-@deftypevr {@code{openvpn-client-configuration} parameter} tls-auth-client tls-auth
-Add an additional layer of HMAC authentication on top of the TLS control
-channel to protect against DoS attacks.
-
-Defaults to @samp{#f}.
-
-@end deftypevr
-
-@deftypevr {@code{openvpn-client-configuration} parameter} key-usage verify-key-usage?
-Whether to check the server certificate has server usage extension.
-
-Defaults to @samp{#t}.
-
-@end deftypevr
-
-@deftypevr {@code{openvpn-client-configuration} parameter} bind bind?
-Bind to a specific local port number.
-
-Defaults to @samp{#f}.
-
-@end deftypevr
-
-@deftypevr {@code{openvpn-client-configuration} parameter} resolv-retry resolv-retry?
-Retry resolving server address.
-
-Defaults to @samp{#t}.
-
-@end deftypevr
-
-@deftypevr {@code{openvpn-client-configuration} parameter} openvpn-remote-list remote
-A list of remote servers to connect to.
-
-Defaults to @samp{()}.
-
-Available @code{openvpn-remote-configuration} fields are:
-
-@deftypevr {@code{openvpn-remote-configuration} parameter} string name
-Server name.
-
-Defaults to @samp{"my-server"}.
-
-@end deftypevr
-
-@deftypevr {@code{openvpn-remote-configuration} parameter} number port
-Port number the server listens to.
-
-Defaults to @samp{1194}.
-
-@end deftypevr
-
-@end deftypevr
-@c %end of automatic openvpn-client documentation
-
-@c %automatically generated documentation
-
-Available @code{openvpn-server-configuration} fields are:
-
-@deftypevr {@code{openvpn-server-configuration} parameter} package openvpn
-The OpenVPN package.
-
-@end deftypevr
-
-@deftypevr {@code{openvpn-server-configuration} parameter} string pid-file
-The OpenVPN pid file.
-
-Defaults to @samp{"/var/run/openvpn/openvpn.pid"}.
-
-@end deftypevr
-
-@deftypevr {@code{openvpn-server-configuration} parameter} proto proto
-The protocol (UDP or TCP) used to open a channel between clients and
-servers.
-
-Defaults to @samp{udp}.
-
-@end deftypevr
-
-@deftypevr {@code{openvpn-server-configuration} parameter} dev dev
-The device type used to represent the VPN connection.
-
-Defaults to @samp{tun}.
-
-@end deftypevr
-
-@deftypevr {@code{openvpn-server-configuration} parameter} 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
-The certificate of the machine the daemon is running on.  It should be
-signed by the authority given in @code{ca}.
-
-Defaults to @samp{"/etc/openvpn/client.crt"}.
-
-@end deftypevr
-
-@deftypevr {@code{openvpn-server-configuration} parameter} string key
-The key of the machine the daemon is running on.  It must be the key whose
-certificate is @code{cert}.
-
-Defaults to @samp{"/etc/openvpn/client.key"}.
-
-@end deftypevr
-
-@deftypevr {@code{openvpn-server-configuration} parameter} boolean comp-lzo?
-Whether to use the lzo compression algorithm.
-
-Defaults to @samp{#t}.
-
-@end deftypevr
-
-@deftypevr {@code{openvpn-server-configuration} parameter} boolean persist-key?
-Don't re-read key files across SIGUSR1 or --ping-restart.
-
-Defaults to @samp{#t}.
-
-@end deftypevr
-
-@deftypevr {@code{openvpn-server-configuration} parameter} boolean persist-tun?
-Don't close and reopen TUN/TAP device or run up/down scripts across SIGUSR1
-or --ping-restart restarts.
-
-Defaults to @samp{#t}.
-
-@end deftypevr
-
-@deftypevr {@code{openvpn-server-configuration} parameter} number verbosity
-Verbosity level.
-
-Defaults to @samp{3}.
-
-@end deftypevr
-
-@deftypevr {@code{openvpn-server-configuration} parameter} tls-auth-server tls-auth
-Add an additional layer of HMAC authentication on top of the TLS control
-channel to protect against DoS attacks.
-
-Defaults to @samp{#f}.
-
-@end deftypevr
-
-@deftypevr {@code{openvpn-server-configuration} parameter} number port
-Specifies the port number on which the server listens.
-
-Defaults to @samp{1194}.
-
-@end deftypevr
-
-@deftypevr {@code{openvpn-server-configuration} parameter} ip-mask server
-An ip and mask specifying the subnet inside the virtual network.
-
-Defaults to @samp{"10.8.0.0 255.255.255.0"}.
-
-@end deftypevr
-
-@deftypevr {@code{openvpn-server-configuration} parameter} cidr6 server-ipv6
-A CIDR notation specifying the IPv6 subnet inside the virtual network.
-
-Defaults to @samp{#f}.
-
-@end deftypevr
-
-@deftypevr {@code{openvpn-server-configuration} parameter} string dh
-The Diffie-Hellman parameters file.
-
-Defaults to @samp{"/etc/openvpn/dh2048.pem"}.
-
-@end deftypevr
-
-@deftypevr {@code{openvpn-server-configuration} parameter} string ifconfig-pool-persist
-The file that records client IPs.
-
-Defaults to @samp{"/etc/openvpn/ipp.txt"}.
-
-@end deftypevr
-
-@deftypevr {@code{openvpn-server-configuration} parameter} gateway redirect-gateway?
-When true, the server will act as a gateway for its clients.
-
-Defaults to @samp{#f}.
-
-@end deftypevr
-
-@deftypevr {@code{openvpn-server-configuration} parameter} boolean client-to-client?
-When true, clients are allowed to talk to each other inside the VPN.
-
-Defaults to @samp{#f}.
-
-@end deftypevr
-
-@deftypevr {@code{openvpn-server-configuration} parameter} keepalive keepalive
-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.
-
-@end deftypevr
-
-@deftypevr {@code{openvpn-server-configuration} parameter} number max-clients
-The maximum number of clients.
-
-Defaults to @samp{100}.
-
-@end deftypevr
-
-@deftypevr {@code{openvpn-server-configuration} parameter} string status
-The status file.  This file shows a small report on current connection.  It
-is truncated and rewritten every minute.
-
-Defaults to @samp{"/var/run/openvpn/status"}.
-
-@end deftypevr
-
-@deftypevr {@code{openvpn-server-configuration} parameter} openvpn-ccd-list client-config-dir
-The list of configuration for some clients.
-
-Defaults to @samp{()}.
-
-Available @code{openvpn-ccd-configuration} fields are:
-
-@deftypevr {@code{openvpn-ccd-configuration} parameter} string name
-Client name.
-
-Defaults to @samp{"client"}.
-
-@end deftypevr
-
-@deftypevr {@code{openvpn-ccd-configuration} parameter} ip-mask iroute
-Client own network
-
-Defaults to @samp{#f}.
-
-@end deftypevr
-
-@deftypevr {@code{openvpn-ccd-configuration} parameter} ip-mask ifconfig-push
-Client VPN IP.
-
-Defaults to @samp{#f}.
-
-@end deftypevr
-
-@end deftypevr
-
-
-@c %end of automatic openvpn-server documentation
-
-
-@node Network File System
-@subsection Network File System
-@cindex NFS
-
-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).
-
-@subsubheading RPC Bind Service
-@cindex rpcbind
-
-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.
-
-@defvr {Scheme Variable} rpcbind-service-type
-A service type for the RPC portmapper daemon.
-@end defvr
-
-
-@deftp {Data Type} rpcbind-configuration
-Data type representing the configuration of the RPC Bind Service.  This type
-has the following parameters:
-@table @asis
-@item @code{rpcbind} (default: @code{rpcbind})
-The rpcbind package to use.
-
-@item @code{warm-start?} (default: @code{#t})
-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.
-@end table
-@end deftp
-
-
-@subsubheading Pipefs Pseudo File System
-@cindex pipefs
-@cindex rpc_pipefs
-
-The pipefs file system is used to transfer NFS related data between the
-kernel and user space programs.
-
-@defvr {Scheme Variable} pipefs-service-type
-A service type for the pipefs pseudo file system.
-@end defvr
-
-@deftp {Data Type} pipefs-configuration
-Data type representing the configuration of the pipefs pseudo file system
-service.  This type has the following parameters:
-@table @asis
-@item @code{mount-point} (default: @code{"/var/lib/nfs/rpc_pipefs"})
-The directory to which the file system is to be attached.
-@end table
-@end deftp
-
-
-@subsubheading GSS Daemon Service
-@cindex GSSD
-@cindex GSS
-@cindex global security system
-
-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-Dienste}).
-
-@defvr {Scheme Variable} gss-service-type
-A service type for the Global Security System (GSS) daemon.
-@end defvr
-
-@deftp {Data Type} gss-configuration
-Data type representing the configuration of the GSS daemon service.  This
-type has the following parameters:
-@table @asis
-@item @code{nfs-utils} (default: @code{nfs-utils})
-The package in which the @command{rpc.gssd} command is to be found.
-
-@item @code{pipefs-directory} (default: @code{"/var/lib/nfs/rpc_pipefs"})
-The directory where the pipefs file system is mounted.
-
-@end table
-@end deftp
-
-
-@subsubheading IDMAP Daemon Service
-@cindex idmapd
-@cindex name mapper
-
-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.
-
-@defvr {Scheme Variable} idmap-service-type
-A service type for the Identity Mapper (IDMAP) daemon.
-@end defvr
-
-@deftp {Data Type} idmap-configuration
-Data type representing the configuration of the IDMAP daemon service.  This
-type has the following parameters:
-@table @asis
-@item @code{nfs-utils} (default: @code{nfs-utils})
-The package in which the @command{rpc.idmapd} command is to be found.
-
-@item @code{pipefs-directory} (default: @code{"/var/lib/nfs/rpc_pipefs"})
-The directory where the pipefs file system is mounted.
-
-@item @code{domain} (default: @code{#f})
-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.
-
-@end table
-@end deftp
-
-@node Kontinuierliche Integration
-@subsection Kontinuierliche Integration
-
-@cindex continuous integration
-@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{Substitute}).
-
-The @code{(gnu services cuirass)} module provides the following service.
-
-@defvr {Scheme Procedure} cuirass-service-type
-The type of the Cuirass service.  Its value must be a
-@code{cuirass-configuration} object, as described below.
-@end defvr
-
-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}.
-
-@example
-(define %cuirass-specs
-  #~(list
-     '((#:name . "my-manifest")
-       (#:load-path-inputs . ("guix"))
-       (#:package-path-inputs . ("custom-packages"))
-       (#:proc-input . "guix")
-       (#:proc-file . "build-aux/cuirass/gnu-system.scm")
-       (#:proc . cuirass-jobs)
-       (#:proc-args . ((subset . "manifests")
-                       (systems . ("x86_64-linux"))
-                       (manifests . (("config" . "guix/manifest.scm")))))
-       (#:inputs . (((#:name . "guix")
-                     (#:url . "git://git.savannah.gnu.org/guix.git")
-                     (#:load-path . ".")
-                     (#:branch . "master")
-                     (#:no-compile? . #t))
-                    ((#:name . "config")
-                     (#:url . "git://git.example.org/config.git")
-                     (#:load-path . ".")
-                     (#:branch . "master")
-                     (#:no-compile? . #t))
-                    ((#:name . "custom-packages")
-                     (#:url . "git://git.example.org/custom-packages.git")
-                     (#:load-path . ".")
-                     (#:branch . "master")
-                     (#:no-compile? . #t)))))))
-
-(service cuirass-service-type
-         (cuirass-configuration
-          (specifications %cuirass-specs)))
-@end example
-
-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.
-
-@deftp {Data Type} cuirass-configuration
-Data type representing the configuration of Cuirass.
-
-@table @asis
-@item @code{log-file} (default: @code{"/var/log/cuirass.log"})
-Location of the log file.
-
-@item @code{cache-directory} (default: @code{"/var/cache/cuirass"})
-Location of the repository cache.
-
-@item @code{user} (default: @code{"cuirass"})
-Owner of the @code{cuirass} process.
-
-@item @code{group} (default: @code{"cuirass"})
-Owner's group of the @code{cuirass} process.
-
-@item @code{interval} (default: @code{60})
-Number of seconds between the poll of the repositories followed by the
-Cuirass jobs.
-
-@item @code{database} (Vorgabe: @code{"/var/lib/cuirass/cuirass.db"})
-Location of sqlite database which contains the build results and previously
-added specifications.
-
-@item @code{ttl} (Vorgabe: @code{(* 30 24 3600)})
-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.
-
-@item @code{port} (default: @code{8081})
-Port number used by the HTTP server.
-
-@item --listen=@var{Host}
-Listen on the network interface for @var{host}.  The default is to accept
-connections from localhost.
-
-@item @code{specifications} (default: @code{#~'()})
-A gexp (@pxref{G-Ausdrücke}) 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.
-
-@item @code{use-substitutes?} (default: @code{#f})
-This allows using substitutes to avoid building every dependencies of a job
-from source.
-
-@item @code{one-shot?} (default: @code{#f})
-Only evaluate specifications and build derivations once.
-
-@item @code{fallback?} (default: @code{#f})
-When substituting a pre-built binary fails, fall back to building packages
-locally.
-
-@item @code{cuirass} (default: @code{cuirass})
-The Cuirass package to use.
-@end table
-@end deftp
-
-@node Dienste zur Stromverbrauchsverwaltung
-@subsection Dienste zur Stromverbrauchsverwaltung
-
-@cindex tlp
-@cindex power management with TLP
-@subsubheading TLP-Daemon
-
-The @code{(gnu services pm)} module provides a Guix service definition for
-the Linux power management tool TLP.
-
-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{http://linrunner.de/en/tlp/tlp.html, TLP
-home page}.
-
-@deffn {Scheme Variable} tlp-service-type
-The service type for the TLP tool.  Its value should be a valid TLP
-configuration (see below).  To use the default settings, simply write:
-@example
-(service tlp-service-type)
-@end example
-@end deffn
-
-By default TLP does not need much configuration but most TLP parameters can
-be tweaked using @code{tlp-configuration}.
-
-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}.
-
-@c The following documentation was initially generated by
-@c (generate-tlp-documentation) in (gnu services pm).  Manually maintained
-@c documentation is better, so we shouldn't hesitate to edit below as
-@c needed.  However if the change you want to make to this documentation
-@c can be done in an automated way, it's probably easier to change
-@c (generate-documentation) than to make it below and have to deal with
-@c the churn as TLP updates.
-
-Available @code{tlp-configuration} fields are:
-
-@deftypevr {@code{tlp-configuration} parameter} package tlp
-The TLP package.
-
-@end deftypevr
-
-@deftypevr {@code{tlp-configuration} parameter} boolean tlp-enable?
-Set to true if you wish to enable TLP.
-
-Defaults to @samp{#t}.
-
-@end deftypevr
-
-@deftypevr {@code{tlp-configuration} parameter} string tlp-default-mode
-Default mode when no power supply can be detected.  Alternatives are AC and
-BAT.
-
-Defaults to @samp{"AC"}.
-
-@end deftypevr
-
-@deftypevr {@code{tlp-configuration} parameter} non-negative-integer disk-idle-secs-on-ac
-Number of seconds Linux kernel has to wait after the disk goes idle, before
-syncing on AC.
-
-Defaults to @samp{0}.
-
-@end deftypevr
-
-@deftypevr {@code{tlp-configuration} parameter} non-negative-integer disk-idle-secs-on-bat
-Same as @code{disk-idle-ac} but on BAT mode.
-
-Defaults to @samp{2}.
-
-@end deftypevr
-
-@deftypevr {@code{tlp-configuration} parameter} non-negative-integer max-lost-work-secs-on-ac
-Dirty pages flushing periodicity, expressed in seconds.
-
-Defaults to @samp{15}.
-
-@end deftypevr
-
-@deftypevr {@code{tlp-configuration} parameter} non-negative-integer max-lost-work-secs-on-bat
-Same as @code{max-lost-work-secs-on-ac} but on BAT mode.
-
-Defaults to @samp{60}.
-
-@end deftypevr
-
-@deftypevr {@code{tlp-configuration} parameter} maybe-space-separated-string-list cpu-scaling-governor-on-ac
-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.
-
-Defaults to @samp{disabled}.
-
-@end deftypevr
-
-@deftypevr {@code{tlp-configuration} parameter} maybe-space-separated-string-list cpu-scaling-governor-on-bat
-Same as @code{cpu-scaling-governor-on-ac} but on BAT mode.
-
-Defaults to @samp{disabled}.
-
-@end deftypevr
-
-@deftypevr {@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-scaling-min-freq-on-ac
-Set the min available frequency for the scaling governor on AC.
-
-Defaults to @samp{disabled}.
-
-@end deftypevr
-
-@deftypevr {@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-scaling-max-freq-on-ac
-Set the max available frequency for the scaling governor on AC.
-
-Defaults to @samp{disabled}.
-
-@end deftypevr
-
-@deftypevr {@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-scaling-min-freq-on-bat
-Set the min available frequency for the scaling governor on BAT.
-
-Defaults to @samp{disabled}.
-
-@end deftypevr
-
-@deftypevr {@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-scaling-max-freq-on-bat
-Set the max available frequency for the scaling governor on BAT.
-
-Defaults to @samp{disabled}.
-
-@end deftypevr
-
-@deftypevr {@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-min-perf-on-ac
-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.
-
-Defaults to @samp{disabled}.
-
-@end deftypevr
-
-@deftypevr {@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-max-perf-on-ac
-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.
-
-Defaults to @samp{disabled}.
-
-@end deftypevr
-
-@deftypevr {@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-min-perf-on-bat
-Same as @code{cpu-min-perf-on-ac} on BAT mode.
-
-Defaults to @samp{disabled}.
-
-@end deftypevr
-
-@deftypevr {@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-max-perf-on-bat
-Same as @code{cpu-max-perf-on-ac} on BAT mode.
-
-Defaults to @samp{disabled}.
-
-@end deftypevr
-
-@deftypevr {@code{tlp-configuration} parameter} maybe-boolean cpu-boost-on-ac?
-Enable CPU turbo boost feature on AC mode.
-
-Defaults to @samp{disabled}.
-
-@end deftypevr
-
-@deftypevr {@code{tlp-configuration} parameter} maybe-boolean cpu-boost-on-bat?
-Same as @code{cpu-boost-on-ac?} on BAT mode.
-
-Defaults to @samp{disabled}.
-
-@end deftypevr
-
-@deftypevr {@code{tlp-configuration} parameter} boolean sched-powersave-on-ac?
-Allow Linux kernel to minimize the number of CPU cores/hyper-threads used
-under light load conditions.
-
-Defaults to @samp{#f}.
-
-@end deftypevr
-
-@deftypevr {@code{tlp-configuration} parameter} boolean sched-powersave-on-bat?
-Same as @code{sched-powersave-on-ac?} but on BAT mode.
-
-Defaults to @samp{#t}.
-
-@end deftypevr
-
-@deftypevr {@code{tlp-configuration} parameter} boolean nmi-watchdog?
-Enable Linux kernel NMI watchdog.
-
-Defaults to @samp{#f}.
-
-@end deftypevr
-
-@deftypevr {@code{tlp-configuration} parameter} maybe-string phc-controls
-For Linux kernels with PHC patch applied, change CPU voltages.  An example
-value would be @samp{"F:V F:V F:V F:V"}.
-
-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
-performance, normal, powersave.
-
-Defaults to @samp{"performance"}.
-
-@end deftypevr
-
-@deftypevr {@code{tlp-configuration} parameter} string energy-perf-policy-on-bat
-Same as @code{energy-perf-policy-ac} but on BAT mode.
-
-Defaults to @samp{"powersave"}.
-
-@end deftypevr
-
-@deftypevr {@code{tlp-configuration} parameter} space-separated-string-list disks-devices
-Hard disk devices.
-
-@end deftypevr
-
-@deftypevr {@code{tlp-configuration} parameter} space-separated-string-list disk-apm-level-on-ac
-Hard disk advanced power management level.
-
-@end deftypevr
-
-@deftypevr {@code{tlp-configuration} parameter} space-separated-string-list disk-apm-level-on-bat
-Same as @code{disk-apm-bat} but on BAT mode.
-
-@end deftypevr
-
-@deftypevr {@code{tlp-configuration} parameter} maybe-space-separated-string-list disk-spindown-timeout-on-ac
-Hard disk spin down timeout.  One value has to be specified for each
-declared hard disk.
-
-Defaults to @samp{disabled}.
-
-@end deftypevr
-
-@deftypevr {@code{tlp-configuration} parameter} maybe-space-separated-string-list disk-spindown-timeout-on-bat
-Same as @code{disk-spindown-timeout-on-ac} but on BAT mode.
-
-Defaults to @samp{disabled}.
-
-@end deftypevr
-
-@deftypevr {@code{tlp-configuration} parameter} maybe-space-separated-string-list disk-iosched
-Select IO scheduler for disk devices.  One value has to be specified for
-each declared hard disk.  Example alternatives are cfq, deadline and noop.
-
-Defaults to @samp{disabled}.
-
-@end deftypevr
-
-@deftypevr {@code{tlp-configuration} parameter} string sata-linkpwr-on-ac
-SATA aggressive link power management (ALPM) level.  Alternatives are
-min_power, medium_power, max_performance.
-
-Defaults to @samp{"max_performance"}.
-
-@end deftypevr
-
-@deftypevr {@code{tlp-configuration} parameter} string sata-linkpwr-on-bat
-Same as @code{sata-linkpwr-ac} but on BAT mode.
-
-Defaults to @samp{"min_power"}.
-
-@end deftypevr
-
-@deftypevr {@code{tlp-configuration} parameter} maybe-string sata-linkpwr-blacklist
-Exclude specified SATA host devices for link power management.
-
-Defaults to @samp{disabled}.
-
-@end deftypevr
-
-@deftypevr {@code{tlp-configuration} parameter} maybe-on-off-boolean ahci-runtime-pm-on-ac?
-Enable Runtime Power Management for AHCI controller and disks on AC mode.
-
-Defaults to @samp{disabled}.
-
-@end deftypevr
-
-@deftypevr {@code{tlp-configuration} parameter} maybe-on-off-boolean ahci-runtime-pm-on-bat?
-Same as @code{ahci-runtime-pm-on-ac} on BAT mode.
-
-Defaults to @samp{disabled}.
-
-@end deftypevr
-
-@deftypevr {@code{tlp-configuration} parameter} non-negative-integer ahci-runtime-pm-timeout
-Seconds of inactivity before disk is suspended.
-
-Defaults to @samp{15}.
-
-@end deftypevr
-
-@deftypevr {@code{tlp-configuration} parameter} string pcie-aspm-on-ac
-PCI Express Active State Power Management level.  Alternatives are default,
-performance, powersave.
-
-Defaults to @samp{"performance"}.
-
-@end deftypevr
-
-@deftypevr {@code{tlp-configuration} parameter} string pcie-aspm-on-bat
-Same as @code{pcie-aspm-ac} but on BAT mode.
-
-Defaults to @samp{"powersave"}.
-
-@end deftypevr
-
-@deftypevr {@code{tlp-configuration} parameter} string radeon-power-profile-on-ac
-Radeon graphics clock speed level.  Alternatives are low, mid, high, auto,
-default.
-
-Defaults to @samp{"high"}.
-
-@end deftypevr
-
-@deftypevr {@code{tlp-configuration} parameter} string radeon-power-profile-on-bat
-Same as @code{radeon-power-ac} but on BAT mode.
-
-Defaults to @samp{"low"}.
-
-@end deftypevr
-
-@deftypevr {@code{tlp-configuration} parameter} string radeon-dpm-state-on-ac
-Radeon dynamic power management method (DPM).  Alternatives are battery,
-performance.
-
-Defaults to @samp{"performance"}.
-
-@end deftypevr
-
-@deftypevr {@code{tlp-configuration} parameter} string radeon-dpm-state-on-bat
-Same as @code{radeon-dpm-state-ac} but on BAT mode.
-
-Defaults to @samp{"battery"}.
-
-@end deftypevr
-
-@deftypevr {@code{tlp-configuration} parameter} string radeon-dpm-perf-level-on-ac
-Radeon DPM performance level.  Alternatives are auto, low, high.
-
-Defaults to @samp{"auto"}.
-
-@end deftypevr
-
-@deftypevr {@code{tlp-configuration} parameter} string radeon-dpm-perf-level-on-bat
-Same as @code{radeon-dpm-perf-ac} but on BAT mode.
-
-Defaults to @samp{"auto"}.
-
-@end deftypevr
-
-@deftypevr {@code{tlp-configuration} parameter} on-off-boolean wifi-pwr-on-ac?
-Wifi power saving mode.
-
-Defaults to @samp{#f}.
-
-@end deftypevr
-
-@deftypevr {@code{tlp-configuration} parameter} on-off-boolean wifi-pwr-on-bat?
-Same as @code{wifi-power-ac?} but on BAT mode.
-
-Defaults to @samp{#t}.
-
-@end deftypevr
-
-@deftypevr {@code{tlp-configuration} parameter} y-n-boolean wol-disable?
-Disable wake on LAN.
-
-Defaults to @samp{#t}.
-
-@end deftypevr
-
-@deftypevr {@code{tlp-configuration} parameter} non-negative-integer sound-power-save-on-ac
-Timeout duration in seconds before activating audio power saving on Intel
-HDA and AC97 devices.  A value of 0 disables power saving.
-
-Defaults to @samp{0}.
-
-@end deftypevr
-
-@deftypevr {@code{tlp-configuration} parameter} non-negative-integer sound-power-save-on-bat
-Same as @code{sound-powersave-ac} but on BAT mode.
-
-Defaults to @samp{1}.
-
-@end deftypevr
-
-@deftypevr {@code{tlp-configuration} parameter} y-n-boolean sound-power-save-controller?
-Disable controller in powersaving mode on Intel HDA devices.
-
-Defaults to @samp{#t}.
-
-@end deftypevr
-
-@deftypevr {@code{tlp-configuration} parameter} boolean bay-poweroff-on-bat?
-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.
-
-Defaults to @samp{#f}.
-
-@end deftypevr
-
-@deftypevr {@code{tlp-configuration} parameter} string bay-device
-Name of the optical drive device to power off.
-
-Defaults to @samp{"sr0"}.
-
-@end deftypevr
-
-@deftypevr {@code{tlp-configuration} parameter} string runtime-pm-on-ac
-Runtime Power Management for PCI(e) bus devices.  Alternatives are on and
-auto.
-
-Defaults to @samp{"on"}.
-
-@end deftypevr
-
-@deftypevr {@code{tlp-configuration} parameter} string runtime-pm-on-bat
-Same as @code{runtime-pm-ac} but on BAT mode.
-
-Defaults to @samp{"auto"}.
-
-@end deftypevr
-
-@deftypevr {@code{tlp-configuration} parameter} boolean runtime-pm-all?
-Runtime Power Management for all PCI(e) bus devices, except blacklisted
-ones.
-
-Defaults to @samp{#t}.
-
-@end deftypevr
-
-@deftypevr {@code{tlp-configuration} parameter} maybe-space-separated-string-list runtime-pm-blacklist
-Exclude specified PCI(e) device addresses from Runtime Power Management.
-
-Defaults to @samp{disabled}.
-
-@end deftypevr
-
-@deftypevr {@code{tlp-configuration} parameter} space-separated-string-list runtime-pm-driver-blacklist
-Exclude PCI(e) devices assigned to the specified drivers from Runtime Power
-Management.
-
-@end deftypevr
-
-@deftypevr {@code{tlp-configuration} parameter} boolean usb-autosuspend?
-Enable USB autosuspend feature.
-
-Defaults to @samp{#t}.
-
-@end deftypevr
-
-@deftypevr {@code{tlp-configuration} parameter} maybe-string usb-blacklist
-Exclude specified devices from USB autosuspend.
-
-Defaults to @samp{disabled}.
-
-@end deftypevr
-
-@deftypevr {@code{tlp-configuration} parameter} boolean usb-blacklist-wwan?
-Exclude WWAN devices from USB autosuspend.
-
-Defaults to @samp{#t}.
-
-@end deftypevr
-
-@deftypevr {@code{tlp-configuration} parameter} maybe-string usb-whitelist
-Include specified devices into USB autosuspend, even if they are already
-excluded by the driver or via @code{usb-blacklist-wwan?}.
-
-Defaults to @samp{disabled}.
-
-@end deftypevr
-
-@deftypevr {@code{tlp-configuration} parameter} maybe-boolean usb-autosuspend-disable-on-shutdown?
-Enable USB autosuspend before shutdown.
-
-Defaults to @samp{disabled}.
-
-@end deftypevr
-
-@deftypevr {@code{tlp-configuration} parameter} boolean restore-device-state-on-startup?
-Restore radio device state (bluetooth, wifi, wwan) from previous shutdown on
-system startup.
-
-Defaults to @samp{#f}.
-
-@end deftypevr
-
-@cindex thermald
-@cindex CPU frequency scaling with thermald
-@subsubheading Thermald-Daemon
-
-The @code{(gnu services pm)} module provides an interface to thermald, a CPU
-frequency scaling service which helps prevent overheating.
-
-@defvr {Scheme Variable} thermald-service-type
-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.
-@end defvr
-
-@deftp {Data Type} thermald-configuration
-Data type representing the configuration of @code{thermald-service-type}.
-
-@table @asis
-@item @code{ignore-cpuid-check?} (default: @code{#f})
-Ignore cpuid check for supported CPU models.
-
-@item @code{thermald} (default: @var{thermald})
-Package object of thermald.
-
-@end table
-@end deftp
-
-@node Audio-Dienste
-@subsection Audio-Dienste
-
-The @code{(gnu services audio)} module provides a service to start MPD (the
-Music Player Daemon).
-
-@cindex mpd
-@subsubheading Music Player Daemon
-
-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.
-
-The following example shows how one might run @code{mpd} as user
-@code{"bob"} on port @code{6666}.  It uses pulseaudio for output.
-
-@example
-(service mpd-service-type
-         (mpd-configuration
-          (user "bob")
-          (port "6666")))
-@end example
-
-@defvr {Scheme Variable} mpd-service-type
-The service type for @command{mpd}
-@end defvr
-
-@deftp {Data Type} mpd-configuration
-Data type representing the configuration of @command{mpd}.
-
-@table @asis
-@item @code{user} (default: @code{"mpd"})
-The user to run mpd as.
-
-@item @code{music-dir} (default: @code{"~/Music"})
-The directory to scan for music files.
-
-@item @code{playlist-dir} (default: @code{"~/.mpd/playlists"})
-The directory to store playlists.
-
-@item @code{port} (default: @code{"6600"})
-The port to run mpd on.
-
-@item @code{address} (default: @code{"any"})
-The address that mpd will bind to.  To use a Unix domain socket, an absolute
-path can be specified here.
-
-@end table
-@end deftp
-
-@node Virtualisierungsdienste
-@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 and
-performs required management tasks for virtualized guests.
-
-@deffn {Scheme Variable} libvirt-service-type
-This is the type of the @uref{https://libvirt.org, libvirt daemon}.  Its
-value must be a @code{libvirt-configuration}.
-
-@example
-(service libvirt-service-type
-         (libvirt-configuration
-          (unix-sock-group "libvirt")
-          (tls-port "16555")))
-@end example
-@end deffn
-
-@c Auto-generated with (generate-libvirt-documentation)
-Available @code{libvirt-configuration} fields are:
-
-@deftypevr {@code{libvirt-configuration} parameter} package libvirt
-Libvirt package.
-
-@end deftypevr
-
-@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.
-
-It is necessary to setup a CA and issue server certificates before using
-this capability.
-
-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 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)
-
-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
-
-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
-
-Defaults to @samp{"16509"}.
-
-@end deftypevr
-
-@deftypevr {@code{libvirt-configuration} parameter} string listen-addr
-IP address or hostname used for client connections.
-
-Defaults to @samp{"0.0.0.0"}.
-
-@end deftypevr
-
-@deftypevr {@code{libvirt-configuration} parameter} boolean mdns-adv?
-Flag toggling mDNS advertisement of the libvirt service.
-
-Alternatively can disable for all services on a host by stopping the Avahi
-daemon.
-
-Defaults to @samp{#f}.
-
-@end deftypevr
-
-@deftypevr {@code{libvirt-configuration} parameter} string mdns-name
-Default mDNS advertisement name.  This must be unique on the immediate
-broadcast network.
-
-Defaults to @samp{"Virtualization Host <hostname>"}.
-
-@end deftypevr
-
-@deftypevr {@code{libvirt-configuration} parameter} string unix-sock-group
-UNIX domain socket group ownership.  This can be used to allow a 'trusted'
-set of users access to management capabilities without becoming root.
-
-Defaults to @samp{"root"}.
-
-@end deftypevr
-
-@deftypevr {@code{libvirt-configuration} parameter} string unix-sock-ro-perms
-UNIX socket permissions for the R/O socket.  This is used for monitoring VM
-status only.
-
-Defaults to @samp{"0777"}.
-
-@end deftypevr
-
-@deftypevr {@code{libvirt-configuration} parameter} string unix-sock-rw-perms
-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)
-
-Defaults to @samp{"0770"}.
-
-@end deftypevr
-
-@deftypevr {@code{libvirt-configuration} parameter} string unix-sock-admin-perms
-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.
-
-Defaults to @samp{"0777"}.
-
-@end deftypevr
-
-@deftypevr {@code{libvirt-configuration} parameter} string unix-sock-dir
-The directory in which sockets will be found/created.
-
-Defaults to @samp{"/var/run/libvirt"}.
-
-@end deftypevr
-
-@deftypevr {@code{libvirt-configuration} parameter} string auth-unix-ro
-Authentication scheme for UNIX read-only sockets.  By default socket
-permissions allow anyone to connect
-
-Defaults to @samp{"polkit"}.
-
-@end deftypevr
-
-@deftypevr {@code{libvirt-configuration} parameter} string auth-unix-rw
-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.
-
-Defaults to @samp{"polkit"}.
-
-@end deftypevr
-
-@deftypevr {@code{libvirt-configuration} parameter} string auth-tcp
-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.
-
-Defaults to @samp{"sasl"}.
-
-@end deftypevr
-
-@deftypevr {@code{libvirt-configuration} parameter} string auth-tls
-Authentication scheme for TLS sockets.  TLS sockets already have encryption
-provided by the TLS layer, and limited authentication is done by
-certificates.
-
-It is possible to make use of any SASL authentication mechanism as well, by
-using 'sasl' for this option
-
-Defaults to @samp{"none"}.
-
-@end deftypevr
-
-@deftypevr {@code{libvirt-configuration} parameter} optional-list access-drivers
-API access control scheme.
-
-By default an authenticated user is allowed access to all APIs.  Access
-drivers can place restrictions on this.
-
-Defaults to @samp{()}.
-
-@end deftypevr
-
-@deftypevr {@code{libvirt-configuration} parameter} string key-file
-Server key file path.  If set to an empty string, then no private key is
-loaded.
-
-Defaults to @samp{""}.
-
-@end deftypevr
-
-@deftypevr {@code{libvirt-configuration} parameter} string cert-file
-Server key file path.  If set to an empty string, then no certificate is
-loaded.
-
-Defaults to @samp{""}.
-
-@end deftypevr
-
-@deftypevr {@code{libvirt-configuration} parameter} string ca-file
-Server key file path.  If set to an empty string, then no CA certificate is
-loaded.
-
-Defaults to @samp{""}.
-
-@end deftypevr
-
-@deftypevr {@code{libvirt-configuration} parameter} string crl-file
-Certificate revocation list path.  If set to an empty string, then no CRL is
-loaded.
-
-Defaults to @samp{""}.
-
-@end deftypevr
-
-@deftypevr {@code{libvirt-configuration} parameter} boolean tls-no-sanity-cert
-Disable verification of our own server certificates.
-
-When libvirtd starts it performs some sanity checks against its own
-certificates.
-
-Defaults to @samp{#f}.
-
-@end deftypevr
-
-@deftypevr {@code{libvirt-configuration} parameter} boolean tls-no-verify-cert
-Disable verification of client certificates.
-
-Client certificate verification is the primary authentication mechanism.
-Any client which does not present a certificate signed by the CA will be
-rejected.
-
-Defaults to @samp{#f}.
-
-@end deftypevr
-
-@deftypevr {@code{libvirt-configuration} parameter} optional-list tls-allowed-dn-list
-Whitelist of allowed x509 Distinguished Name.
-
-Defaults to @samp{()}.
-
-@end deftypevr
-
-@deftypevr {@code{libvirt-configuration} parameter} optional-list sasl-allowed-usernames
-Whitelist of allowed SASL usernames.  The format for username depends on the
-SASL authentication mechanism.
-
-Defaults to @samp{()}.
-
-@end deftypevr
-
-@deftypevr {@code{libvirt-configuration} parameter} string tls-priority
-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.
-
-Defaults to @samp{"NORMAL"}.
-
-@end deftypevr
-
-@deftypevr {@code{libvirt-configuration} parameter} integer max-clients
-Maximum number of concurrent client connections to allow over all sockets
-combined.
-
-Defaults to @samp{5000}.
-
-@end deftypevr
-
-@deftypevr {@code{libvirt-configuration} parameter} integer max-queued-clients
-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.
-
-Defaults to @samp{1000}.
-
-@end deftypevr
-
-@deftypevr {@code{libvirt-configuration} parameter} integer max-anonymous-clients
-Maximum length of queue of accepted but not yet authenticated clients.  Set
-this to zero to turn this feature off
-
-Defaults to @samp{20}.
-
-@end deftypevr
-
-@deftypevr {@code{libvirt-configuration} parameter} integer min-workers
-Number of workers to start up initially.
-
-Defaults to @samp{5}.
-
-@end deftypevr
-
-@deftypevr {@code{libvirt-configuration} parameter} integer max-workers
-Maximum number of worker threads.
-
-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.
-
-Defaults to @samp{20}.
-
-@end deftypevr
-
-@deftypevr {@code{libvirt-configuration} parameter} integer prio-workers
-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.
-
-Defaults to @samp{5}.
-
-@end deftypevr
-
-@deftypevr {@code{libvirt-configuration} parameter} integer max-requests
-Total global limit on concurrent RPC calls.
-
-Defaults to @samp{20}.
-
-@end deftypevr
-
-@deftypevr {@code{libvirt-configuration} parameter} integer max-client-requests
-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.
-
-Defaults to @samp{5}.
-
-@end deftypevr
-
-@deftypevr {@code{libvirt-configuration} parameter} integer admin-min-workers
-Same as @code{min-workers} but for the admin interface.
-
-Defaults to @samp{1}.
-
-@end deftypevr
-
-@deftypevr {@code{libvirt-configuration} parameter} integer admin-max-workers
-Same as @code{max-workers} but for the admin interface.
-
-Defaults to @samp{5}.
-
-@end deftypevr
-
-@deftypevr {@code{libvirt-configuration} parameter} integer admin-max-clients
-Same as @code{max-clients} but for the admin interface.
-
-Defaults to @samp{5}.
-
-@end deftypevr
-
-@deftypevr {@code{libvirt-configuration} parameter} integer admin-max-queued-clients
-Same as @code{max-queued-clients} but for the admin interface.
-
-Defaults to @samp{5}.
-
-@end deftypevr
-
-@deftypevr {@code{libvirt-configuration} parameter} integer admin-max-client-requests
-Same as @code{max-client-requests} but for the admin interface.
-
-Defaults to @samp{5}.
-
-@end deftypevr
-
-@deftypevr {@code{libvirt-configuration} parameter} integer log-level
-Logging level.  4 errors, 3 warnings, 2 information, 1 debug.
-
-Defaults to @samp{3}.
-
-@end deftypevr
-
-@deftypevr {@code{libvirt-configuration} parameter} string log-filters
-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:
-
-@itemize @bullet
-@item
-x:name
-
-@item
-x:+name
-
-@end itemize
-
-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:
-
-@itemize @bullet
-@item
-1: DEBUG
-
-@item
-2: INFO
-
-@item
-3: WARNING
-
-@item
-4: ERROR
-
-@end itemize
-
-Multiple filters can be defined in a single filters statement, they just
-need to be separated by spaces.
-
-Defaults to @samp{"3:remote 4:event"}.
-
-@end deftypevr
-
-@deftypevr {@code{libvirt-configuration} parameter} string log-outputs
-Logging outputs.
-
-An output is one of the places to save logging information The format for an
-output can be:
-
-@table @code
-@item x:stderr
-output goes to stderr
-
-@item x:syslog:name
-use syslog for the output and use the given name as the ident
-
-@item x:file:file_path
-output to a file, with the given filepath
-
-@item x:journald
-output to journald logging system
-
-@end table
-
-In all case the x prefix is the minimal level, acting as a filter
-
-@itemize @bullet
-@item
-1: DEBUG
-
-@item
-2: INFO
-
-@item
-3: WARNING
-
-@item
-4: ERROR
-
-@end itemize
-
-Multiple outputs can be defined, they just need to be separated by spaces.
-
-Defaults to @samp{"3:stderr"}.
-
-@end deftypevr
-
-@deftypevr {@code{libvirt-configuration} parameter} integer audit-level
-Allows usage of the auditing subsystem to be altered
-
-@itemize @bullet
-@item
-0: disable all auditing
-
-@item
-1: enable auditing, only if enabled on host
-
-@item
-2: enable auditing, and exit if disabled on host.
-
-@end itemize
-
-Defaults to @samp{1}.
-
-@end deftypevr
-
-@deftypevr {@code{libvirt-configuration} parameter} boolean audit-logging
-Send audit messages via libvirt logging infrastructure.
-
-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.
-
-Defaults to @samp{""}.
-
-@end deftypevr
-
-@deftypevr {@code{libvirt-configuration} parameter} string host-uuid-source
-Source to read host UUID.
-
-@itemize @bullet
-@item
-@code{smbios}: fetch the UUID from @code{dmidecode -s system-uuid}
-
-@item
-@code{machine-id}: fetch the UUID from @code{/etc/machine-id}
-
-@end itemize
-
-If @code{dmidecode} does not provide a valid UUID a temporary UUID will be
-generated.
-
-Defaults to @samp{"smbios"}.
-
-@end deftypevr
-
-@deftypevr {@code{libvirt-configuration} parameter} integer keepalive-interval
-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.
-
-Defaults to @samp{5}.
-
-@end deftypevr
-
-@deftypevr {@code{libvirt-configuration} parameter} integer keepalive-count
-Maximum number of keepalive messages that are allowed to be sent to the
-client without getting any response before the connection is considered
-broken.
-
-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.
-
-Defaults to @samp{5}.
-
-@end deftypevr
-
-@deftypevr {@code{libvirt-configuration} parameter} integer admin-keepalive-interval
-Same as above but for admin interface.
-
-Defaults to @samp{5}.
-
-@end deftypevr
-
-@deftypevr {@code{libvirt-configuration} parameter} integer admin-keepalive-count
-Same as above but for admin interface.
-
-Defaults to @samp{5}.
-
-@end deftypevr
-
-@deftypevr {@code{libvirt-configuration} parameter} integer ovs-timeout
-Timeout for Open vSwitch calls.
-
-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.
-
-Defaults to @samp{5}.
-
-@end deftypevr
-
-@c %end of autogenerated docs
-
-@subsubheading Virtlog daemon
-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
-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.
-
-@deffn {Scheme Variable} virtlog-service-type
-This is the type of the virtlog daemon.  Its value must be a
-@code{virtlog-configuration}.
-
-@example
-(service virtlog-service-type
-         (virtlog-configuration
-          (max-clients 1000)))
-@end example
-@end deffn
-
-@deftypevr {@code{virtlog-configuration} parameter} integer log-level
-Logging level.  4 errors, 3 warnings, 2 information, 1 debug.
-
-Defaults to @samp{3}.
-
-@end deftypevr
-
-@deftypevr {@code{virtlog-configuration} parameter} string log-filters
-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:
-
-@itemize @bullet
-@item
-x:name
-
-@item
-x:+name
-
-@end itemize
-
-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:
-
-@itemize @bullet
-@item
-1: DEBUG
-
-@item
-2: INFO
-
-@item
-3: WARNING
-
-@item
-4: ERROR
-
-@end itemize
-
-Multiple filters can be defined in a single filters statement, they just
-need to be separated by spaces.
-
-Defaults to @samp{"3:remote 4:event"}.
-
-@end deftypevr
-
-@deftypevr {@code{virtlog-configuration} parameter} string log-outputs
-Logging outputs.
-
-An output is one of the places to save logging information The format for an
-output can be:
-
-@table @code
-@item x:stderr
-output goes to stderr
-
-@item x:syslog:name
-use syslog for the output and use the given name as the ident
-
-@item x:file:file_path
-output to a file, with the given filepath
-
-@item x:journald
-output to journald logging system
-
-@end table
-
-In all case the x prefix is the minimal level, acting as a filter
-
-@itemize @bullet
-@item
-1: DEBUG
-
-@item
-2: INFO
-
-@item
-3: WARNING
-
-@item
-4: ERROR
-
-@end itemize
-
-Multiple outputs can be defined, they just need to be separated by spaces.
-
-Defaults to @samp{"3:stderr"}.
-
-@end deftypevr
-
-@deftypevr {@code{virtlog-configuration} parameter} integer max-clients
-Maximum number of concurrent client connections to allow over all sockets
-combined.
-
-Defaults to @samp{1024}.
-
-@end deftypevr
-
-@deftypevr {@code{virtlog-configuration} parameter} integer max-size
-Maximum file size before rolling over.
-
-Defaults to @samp{2MB}
-
-@end deftypevr
-
-@deftypevr {@code{virtlog-configuration} parameter} integer max-backups
-Maximum number of backup files to keep.
-
-Defaults to @samp{3}
-
-@end deftypevr
-
-@subsubheading Transparent Emulation with QEMU
-
-@cindex emulation
-@cindex @code{binfmt_misc}
-@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.
-
-@defvr {Scheme Variable} qemu-binfmt-service-type
-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:
-
-@example
-(service qemu-binfmt-service-type
-         (qemu-binfmt-configuration
-           (platforms (lookup-qemu-platforms "arm" "aarch64" "ppc"))))
-@end example
-
-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}).
-@end defvr
-
-@deftp {Data Type} qemu-binfmt-configuration
-This is the configuration for the @code{qemu-binfmt} service.
-
-@table @asis
-@item @code{platforms} (default: @code{'()})
-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})
-When it is true, QEMU and all its dependencies are added to the build
-environment of @command{guix-daemon} (@pxref{Aufruf des 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.
-
-For example, let's suppose you're on an x86_64 machine and you have this
-service:
-
-@example
-(service qemu-binfmt-service-type
-         (qemu-binfmt-configuration
-           (platforms (lookup-qemu-platforms "arm"))
-           (guix-support? #t)))
-@end example
-
-You can run:
-
-@example
-guix build -s armhf-linux inkscape
-@end example
-
-@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 if you'd
-like to test a package build for an architecture you don't have access to!
-
-@item @code{qemu} (default: @code{qemu})
-The QEMU package to use.
-@end table
-@end deftp
-
-@deffn {Scheme Procedure} lookup-qemu-platforms @var{platforms}@dots{}
-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.
-@end deffn
-
-@deffn {Scheme Procedure} qemu-platform? @var{obj}
-Return true if @var{obj} is a platform object.
-@end deffn
-
-@deffn {Scheme Procedure} qemu-platform-name @var{platform}
-Return the name of @var{platform}---a string such as @code{"arm"}.
-@end deffn
-
-@node Versionskontrolldienste
-@subsection Versionskontrolldienste
-
-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}.
-
-@deffn {Scheme Procedure} git-daemon-service [#:config (git-daemon-configuration)]
-
-Return a service that runs @command{git daemon}, a simple TCP server to
-expose repositories over the Git protocol for anonymous access.
-
-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}.
-
-@end deffn
-
-@deftp {Data Type} git-daemon-configuration
-Data type representing the configuration for @code{git-daemon-service}.
-
-@table @asis
-@item @code{package} (default: @var{git})
-Package object of the Git distributed version control system.
-
-@item @code{export-all?} (default: @var{#f})
-Whether to allow access for all Git repositories, even if they do not have
-the @file{git-daemon-export-ok} file.
-
-@item @code{base-path} (default: @file{/srv/git})
-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}.
-
-@item @code{user-path} (default: @var{#f})
-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}.
-
-@item @code{listen} (default: @var{'()})
-Whether to listen on specific IP addresses or hostnames, defaults to all.
-
-@item @code{port} (default: @var{#f})
-Whether to listen on an alternative port, which defaults to 9418.
-
-@item @code{whitelist} (default: @var{'()})
-If not empty, only allow access to this list of directories.
-
-@item @code{extra-options} (default: @var{'()})
-Extra options will be passed to @code{git daemon}, please run @command{man
-git-daemon} for more information.
-
-@end table
-@end deftp
-
-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-Dienste}, for more on running the necessary @code{fcgiwrap} daemon.
-
-Guix has a separate configuration data type for serving Git repositories
-over HTTP.
-
-@deftp {Data Type} git-http-configuration
-Data type representing the configuration for @code{git-http-service}.
-
-@table @asis
-@item @code{package} (default: @var{git})
-Package object of the Git distributed version control system.
-
-@item @code{git-root} (default: @file{/srv/git})
-Directory containing the Git repositories to expose to the world.
-
-@item @code{export-all?} (default: @var{#f})
-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.
-
-@item @code{uri-path} (default: @file{/git/})
-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.
-
-@item @code{fcgiwrap-socket} (default: @code{127.0.0.1:9000})
-The socket on which the @code{fcgiwrap} daemon is listening.  @xref{Web-Dienste}.
-@end table
-@end deftp
-
-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.
-
-@deffn {Scheme Procedure} git-http-nginx-location-configuration @
-       [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:
-
-@example
-(service nginx-service-type
-         (nginx-configuration
-          (server-blocks
-           (list
-            (nginx-server-configuration
-             (listen '("443 ssl"))
-             (server-name "git.my-host.org")
-             (ssl-certificate
-              "/etc/letsencrypt/live/git.my-host.org/fullchain.pem")
-             (ssl-certificate-key
-              "/etc/letsencrypt/live/git.my-host.org/privkey.pem")
-             (locations
-              (list
-               (git-http-nginx-location-configuration
-                (git-http-configuration (uri-path "/"))))))))))
-@end example
-
-This example assumes that you are using Let's Encrypt to get your TLS
-certificate.  @xref{Zertifikatsdienste}.  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-Dienste}.
-@end deffn
-
-@subsubheading Cgit Service
-
-@cindex Cgit service
-@cindex Git, web interface
-@uref{https://git.zx2c4.com/cgit/, Cgit} is a web frontend for Git
-repositories written in C.
-
-The following example will configure the service with default values.  By
-default, Cgit can be accessed on port 80 (@code{http://localhost:80}).
-
-@example
-(service cgit-service-type)
-@end example
-
-The @code{file-object} type designates either a file-like object
-(@pxref{G-Ausdrücke, file-like objects}) or a string.
-
-@c %start of fragment
-
-Available @code{cgit-configuration} fields are:
-
-@deftypevr {@code{cgit-configuration} parameter} package package
-The CGIT package.
-
-@end deftypevr
-
-@deftypevr {@code{cgit-configuration} parameter} nginx-server-configuration-list nginx
-NGINX configuration.
-
-@end deftypevr
-
-@deftypevr {@code{cgit-configuration} parameter} file-object about-filter
-Specifies a command which will be invoked to format the content of about
-pages (both top-level and for each repository).
-
-Defaults to @samp{""}.
-
-@end deftypevr
-
-@deftypevr {@code{cgit-configuration} parameter} string agefile
-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.
-
-Defaults to @samp{""}.
-
-@end deftypevr
-
-@deftypevr {@code{cgit-configuration} parameter} file-object auth-filter
-Specifies a command that will be invoked for authenticating repository
-access.
-
-Defaults to @samp{""}.
-
-@end deftypevr
-
-@deftypevr {@code{cgit-configuration} parameter} string branch-sort
-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.
-
-Defaults to @samp{"name"}.
-
-@end deftypevr
-
-@deftypevr {@code{cgit-configuration} parameter} string cache-root
-Path used to store the cgit cache entries.
-
-Defaults to @samp{"/var/cache/cgit"}.
-
-@end deftypevr
-
-@deftypevr {@code{cgit-configuration} parameter} integer cache-static-ttl
-Number which specifies the time-to-live, in minutes, for the cached version
-of repository pages accessed with a fixed SHA1.
-
-Defaults to @samp{-1}.
-
-@end deftypevr
-
-@deftypevr {@code{cgit-configuration} parameter} integer cache-dynamic-ttl
-Number which specifies the time-to-live, in minutes, for the cached version
-of repository pages accessed without a fixed SHA1.
-
-Defaults to @samp{5}.
-
-@end deftypevr
-
-@deftypevr {@code{cgit-configuration} parameter} integer cache-repo-ttl
-Number which specifies the time-to-live, in minutes, for the cached version
-of the repository summary page.
-
-Defaults to @samp{5}.
-
-@end deftypevr
-
-@deftypevr {@code{cgit-configuration} parameter} integer cache-root-ttl
-Number which specifies the time-to-live, in minutes, for the cached version
-of the repository index page.
-
-Defaults to @samp{5}.
-
-@end deftypevr
-
-@deftypevr {@code{cgit-configuration} parameter} integer cache-scanrc-ttl
-Number which specifies the time-to-live, in minutes, for the result of
-scanning a path for Git repositories.
-
-Defaults to @samp{15}.
-
-@end deftypevr
-
-@deftypevr {@code{cgit-configuration} parameter} integer cache-about-ttl
-Number which specifies the time-to-live, in minutes, for the cached version
-of the repository about page.
-
-Defaults to @samp{15}.
-
-@end deftypevr
-
-@deftypevr {@code{cgit-configuration} parameter} integer cache-snapshot-ttl
-Number which specifies the time-to-live, in minutes, for the cached version
-of snapshots.
-
-Defaults to @samp{5}.
-
-@end deftypevr
-
-@deftypevr {@code{cgit-configuration} parameter} integer cache-size
-The maximum number of entries in the cgit cache.  When set to @samp{0},
-caching is disabled.
-
-Defaults to @samp{0}.
-
-@end deftypevr
-
-@deftypevr {@code{cgit-configuration} parameter} boolean case-sensitive-sort?
-Sort items in the repo list case sensitively.
-
-Defaults to @samp{#t}.
-
-@end deftypevr
-
-@deftypevr {@code{cgit-configuration} parameter} list clone-prefix
-List of common prefixes which, when combined with a repository URL,
-generates valid clone URLs for the repository.
-
-Defaults to @samp{()}.
-
-@end deftypevr
-
-@deftypevr {@code{cgit-configuration} parameter} list clone-url
-List of @code{clone-url} templates.
-
-Defaults to @samp{()}.
-
-@end deftypevr
-
-@deftypevr {@code{cgit-configuration} parameter} file-object commit-filter
-Command which will be invoked to format commit messages.
-
-Defaults to @samp{""}.
-
-@end deftypevr
-
-@deftypevr {@code{cgit-configuration} parameter} string commit-sort
-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.
-
-Defaults to @samp{"git log"}.
-
-@end deftypevr
-
-@deftypevr {@code{cgit-configuration} parameter} file-object css
-URL which specifies the css document to include in all cgit pages.
-
-Defaults to @samp{"/share/cgit/cgit.css"}.
-
-@end deftypevr
-
-@deftypevr {@code{cgit-configuration} parameter} file-object email-filter
-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.
-
-Defaults to @samp{""}.
-
-@end deftypevr
-
-@deftypevr {@code{cgit-configuration} parameter} boolean embedded?
-Flag which, when set to @samp{#t}, will make cgit generate a HTML fragment
-suitable for embedding in other HTML pages.
-
-Defaults to @samp{#f}.
-
-@end deftypevr
-
-@deftypevr {@code{cgit-configuration} parameter} boolean enable-commit-graph?
-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.
-
-Defaults to @samp{#f}.
-
-@end deftypevr
-
-@deftypevr {@code{cgit-configuration} parameter} boolean enable-filter-overrides?
-Flag which, when set to @samp{#t}, allows all filter settings to be
-overridden in repository-specific cgitrc files.
-
-Defaults to @samp{#f}.
-
-@end deftypevr
-
-@deftypevr {@code{cgit-configuration} parameter} boolean enable-follow-links?
-Flag which, when set to @samp{#t}, allows users to follow a file in the log
-view.
-
-Defaults to @samp{#f}.
-
-@end deftypevr
-
-@deftypevr {@code{cgit-configuration} parameter} boolean enable-http-clone?
-If set to @samp{#t}, cgit will act as an dumb HTTP endpoint for Git clones.
-
-Defaults to @samp{#t}.
-
-@end deftypevr
-
-@deftypevr {@code{cgit-configuration} parameter} boolean enable-index-links?
-Flag which, when set to @samp{#t}, will make cgit generate extra links
-"summary", "commit", "tree" for each repo in the repository index.
-
-Defaults to @samp{#f}.
-
-@end deftypevr
-
-@deftypevr {@code{cgit-configuration} parameter} boolean enable-index-owner?
-Flag which, when set to @samp{#t}, will make cgit display the owner of each
-repo in the repository index.
-
-Defaults to @samp{#t}.
-
-@end deftypevr
-
-@deftypevr {@code{cgit-configuration} parameter} boolean enable-log-filecount?
-Flag which, when set to @samp{#t}, will make cgit print the number of
-modified files for each commit on the repository log page.
-
-Defaults to @samp{#f}.
-
-@end deftypevr
-
-@deftypevr {@code{cgit-configuration} parameter} boolean enable-log-linecount?
-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.
-
-Defaults to @samp{#f}.
-
-@end deftypevr
-
-@deftypevr {@code{cgit-configuration} parameter} boolean enable-remote-branches?
-Flag which, when set to @code{#t}, will make cgit display remote branches in
-the summary and refs views.
-
-Defaults to @samp{#f}.
-
-@end deftypevr
-
-@deftypevr {@code{cgit-configuration} parameter} boolean enable-subject-links?
-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.
-
-Defaults to @samp{#f}.
-
-@end deftypevr
-
-@deftypevr {@code{cgit-configuration} parameter} boolean enable-html-serving?
-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.
-
-Defaults to @samp{#f}.
-
-@end deftypevr
-
-@deftypevr {@code{cgit-configuration} parameter} boolean enable-tree-linenumbers?
-Flag which, when set to @samp{#t}, will make cgit generate linenumber links
-for plaintext blobs printed in the tree view.
-
-Defaults to @samp{#t}.
-
-@end deftypevr
-
-@deftypevr {@code{cgit-configuration} parameter} boolean enable-git-config?
-Flag which, when set to @samp{#f}, will allow cgit to use Git config to set
-any repo specific settings.
-
-Defaults to @samp{#f}.
-
-@end deftypevr
-
-@deftypevr {@code{cgit-configuration} parameter} file-object favicon
-URL used as link to a shortcut icon for cgit.
-
-Defaults to @samp{"/favicon.ico"}.
-
-@end deftypevr
-
-@deftypevr {@code{cgit-configuration} parameter} string footer
-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).
-
-Defaults to @samp{""}.
-
-@end deftypevr
-
-@deftypevr {@code{cgit-configuration} parameter} string head-include
-The content of the file specified with this option will be included verbatim
-in the HTML HEAD section on all pages.
-
-Defaults to @samp{""}.
-
-@end deftypevr
-
-@deftypevr {@code{cgit-configuration} parameter} string header
-The content of the file specified with this option will be included verbatim
-at the top of all pages.
-
-Defaults to @samp{""}.
-
-@end deftypevr
-
-@deftypevr {@code{cgit-configuration} parameter} file-object include
-Name of a configfile to include before the rest of the current config- file
-is parsed.
-
-Defaults to @samp{""}.
-
-@end deftypevr
-
-@deftypevr {@code{cgit-configuration} parameter} string index-header
-The content of the file specified with this option will be included verbatim
-above the repository index.
-
-Defaults to @samp{""}.
-
-@end deftypevr
-
-@deftypevr {@code{cgit-configuration} parameter} string index-info
-The content of the file specified with this option will be included verbatim
-below the heading on the repository index page.
-
-Defaults to @samp{""}.
-
-@end deftypevr
-
-@deftypevr {@code{cgit-configuration} parameter} boolean local-time?
-Flag which, if set to @samp{#t}, makes cgit print commit and tag times in
-the servers timezone.
-
-Defaults to @samp{#f}.
-
-@end deftypevr
-
-@deftypevr {@code{cgit-configuration} parameter} file-object logo
-URL which specifies the source of an image which will be used as a logo on
-all cgit pages.
-
-Defaults to @samp{"/share/cgit/cgit.png"}.
-
-@end deftypevr
-
-@deftypevr {@code{cgit-configuration} parameter} string logo-link
-URL loaded when clicking on the cgit logo image.
-
-Defaults to @samp{""}.
-
-@end deftypevr
-
-@deftypevr {@code{cgit-configuration} parameter} file-object owner-filter
-Command which will be invoked to format the Owner column of the main page.
-
-Defaults to @samp{""}.
-
-@end deftypevr
-
-@deftypevr {@code{cgit-configuration} parameter} integer max-atom-items
-Number of items to display in atom feeds view.
-
-Defaults to @samp{10}.
-
-@end deftypevr
-
-@deftypevr {@code{cgit-configuration} parameter} integer max-commit-count
-Number of entries to list per page in "log" view.
-
-Defaults to @samp{50}.
-
-@end deftypevr
-
-@deftypevr {@code{cgit-configuration} parameter} integer max-message-length
-Number of commit message characters to display in "log" view.
-
-Defaults to @samp{80}.
-
-@end deftypevr
-
-@deftypevr {@code{cgit-configuration} parameter} integer max-repo-count
-Specifies the number of entries to list per page on the repository index
-page.
-
-Defaults to @samp{50}.
-
-@end deftypevr
-
-@deftypevr {@code{cgit-configuration} parameter} integer max-repodesc-length
-Specifies the maximum number of repo description characters to display on
-the repository index page.
-
-Defaults to @samp{80}.
-
-@end deftypevr
-
-@deftypevr {@code{cgit-configuration} parameter} integer max-blob-size
-Specifies the maximum size of a blob to display HTML for in KBytes.
-
-Defaults to @samp{0}.
-
-@end deftypevr
-
-@deftypevr {@code{cgit-configuration} parameter} string max-stats
-Maximum statistics period.  Valid values are @samp{week},@samp{month},
-@samp{quarter} and @samp{year}.
-
-Defaults to @samp{""}.
-
-@end deftypevr
-
-@deftypevr {@code{cgit-configuration} parameter} mimetype-alist mimetype
-Mimetype for the specified filename extension.
-
-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"))}.
-
-@end deftypevr
-
-@deftypevr {@code{cgit-configuration} parameter} file-object mimetype-file
-Specifies the file to use for automatic mimetype lookup.
-
-Defaults to @samp{""}.
-
-@end deftypevr
-
-@deftypevr {@code{cgit-configuration} parameter} string module-link
-Text which will be used as the formatstring for a hyperlink when a submodule
-is printed in a directory listing.
-
-Defaults to @samp{""}.
-
-@end deftypevr
-
-@deftypevr {@code{cgit-configuration} parameter} boolean nocache?
-If set to the value @samp{#t} caching will be disabled.
-
-Defaults to @samp{#f}.
-
-@end deftypevr
-
-@deftypevr {@code{cgit-configuration} parameter} boolean noplainemail?
-If set to @samp{#t} showing full author email addresses will be disabled.
-
-Defaults to @samp{#f}.
-
-@end deftypevr
-
-@deftypevr {@code{cgit-configuration} parameter} boolean noheader?
-Flag which, when set to @samp{#t}, will make cgit omit the standard header
-on all pages.
-
-Defaults to @samp{#f}.
-
-@end deftypevr
-
-@deftypevr {@code{cgit-configuration} parameter} project-list project-list
-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.
-
-Defaults to @samp{()}.
-
-@end deftypevr
-
-@deftypevr {@code{cgit-configuration} parameter} file-object readme
-Text which will be used as default value for @code{cgit-repo-readme}.
-
-Defaults to @samp{""}.
-
-@end deftypevr
-
-@deftypevr {@code{cgit-configuration} parameter} boolean remove-suffix?
-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.
-
-Defaults to @samp{#f}.
-
-@end deftypevr
-
-@deftypevr {@code{cgit-configuration} parameter} integer renamelimit
-Maximum number of files to consider when detecting renames.
-
-Defaults to @samp{-1}.
-
-@end deftypevr
-
-@deftypevr {@code{cgit-configuration} parameter} string repository-sort
-The way in which repositories in each section are sorted.
-
-Defaults to @samp{""}.
-
-@end deftypevr
-
-@deftypevr {@code{cgit-configuration} parameter} robots-list robots
-Text used as content for the @code{robots} meta-tag.
-
-Defaults to @samp{("noindex" "nofollow")}.
-
-@end deftypevr
-
-@deftypevr {@code{cgit-configuration} parameter} string root-desc
-Text printed below the heading on the repository index page.
-
-Defaults to @samp{"a fast webinterface for the git dscm"}.
-
-@end deftypevr
-
-@deftypevr {@code{cgit-configuration} parameter} string root-readme
-The content of the file specified with this option will be included verbatim
-below thef "about" link on the repository index page.
-
-Defaults to @samp{""}.
-
-@end deftypevr
-
-@deftypevr {@code{cgit-configuration} parameter} string root-title
-Text printed as heading on the repository index page.
-
-Defaults to @samp{""}.
-
-@end deftypevr
-
-@deftypevr {@code{cgit-configuration} parameter} boolean scan-hidden-path
-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.
-
-Defaults to @samp{#f}.
-
-@end deftypevr
-
-@deftypevr {@code{cgit-configuration} parameter} list snapshots
-Text which specifies the default set of snapshot formats that cgit generates
-links for.
-
-Defaults to @samp{()}.
-
-@end deftypevr
-
-@deftypevr {@code{cgit-configuration} parameter} repository-directory repository-directory
-Name of the directory to scan for repositories (represents
-@code{scan-path}).
-
-Defaults to @samp{"/srv/git"}.
-
-@end deftypevr
-
-@deftypevr {@code{cgit-configuration} parameter} string section
-The name of the current repository section - all repositories defined after
-this option will inherit the current section name.
-
-Defaults to @samp{""}.
-
-@end deftypevr
-
-@deftypevr {@code{cgit-configuration} parameter} string section-sort
-Flag which, when set to @samp{1}, will sort the sections on the repository
-listing by name.
-
-Defaults to @samp{""}.
-
-@end deftypevr
-
-@deftypevr {@code{cgit-configuration} parameter} integer section-from-path
-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.
-
-Defaults to @samp{0}.
-
-@end deftypevr
-
-@deftypevr {@code{cgit-configuration} parameter} boolean side-by-side-diffs?
-If set to @samp{#t} shows side-by-side diffs instead of unidiffs per
-default.
-
-Defaults to @samp{#f}.
-
-@end deftypevr
-
-@deftypevr {@code{cgit-configuration} parameter} file-object source-filter
-Specifies a command which will be invoked to format plaintext blobs in the
-tree view.
-
-Defaults to @samp{""}.
-
-@end deftypevr
-
-@deftypevr {@code{cgit-configuration} parameter} integer summary-branches
-Specifies the number of branches to display in the repository "summary"
-view.
-
-Defaults to @samp{10}.
-
-@end deftypevr
-
-@deftypevr {@code{cgit-configuration} parameter} integer summary-log
-Specifies the number of log entries to display in the repository "summary"
-view.
-
-Defaults to @samp{10}.
-
-@end deftypevr
-
-@deftypevr {@code{cgit-configuration} parameter} integer summary-tags
-Specifies the number of tags to display in the repository "summary" view.
-
-Defaults to @samp{10}.
-
-@end deftypevr
-
-@deftypevr {@code{cgit-configuration} parameter} string strict-export
-Filename which, if specified, needs to be present within the repository for
-cgit to allow access to that repository.
-
-Defaults to @samp{""}.
-
-@end deftypevr
-
-@deftypevr {@code{cgit-configuration} parameter} string virtual-root
-URL which, if specified, will be used as root for all cgit links.
-
-Defaults to @samp{"/"}.
-
-@end deftypevr
-
-@deftypevr {@code{cgit-configuration} parameter} repository-cgit-configuration-list repositories
-A list of @dfn{cgit-repo} records to use with config.
-
-Defaults to @samp{()}.
-
-Available @code{repository-cgit-configuration} fields are:
-
-@deftypevr {@code{repository-cgit-configuration} parameter} repo-list snapshots
-A mask of snapshot formats for this repo that cgit generates links for,
-restricted by the global @code{snapshots} setting.
-
-Defaults to @samp{()}.
-
-@end deftypevr
-
-@deftypevr {@code{repository-cgit-configuration} parameter} repo-file-object source-filter
-Override the default @code{source-filter}.
-
-Defaults to @samp{""}.
-
-@end deftypevr
-
-@deftypevr {@code{repository-cgit-configuration} parameter} repo-string url
-The relative URL used to access the repository.
-
-Defaults to @samp{""}.
-
-@end deftypevr
-
-@deftypevr {@code{repository-cgit-configuration} parameter} repo-file-object about-filter
-Override the default @code{about-filter}.
-
-Defaults to @samp{""}.
-
-@end deftypevr
-
-@deftypevr {@code{repository-cgit-configuration} parameter} repo-string branch-sort
-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.
-
-Defaults to @samp{""}.
-
-@end deftypevr
-
-@deftypevr {@code{repository-cgit-configuration} parameter} repo-list clone-url
-A list of URLs which can be used to clone repo.
-
-Defaults to @samp{()}.
-
-@end deftypevr
-
-@deftypevr {@code{repository-cgit-configuration} parameter} repo-file-object commit-filter
-Override the default @code{commit-filter}.
-
-Defaults to @samp{""}.
-
-@end deftypevr
-
-@deftypevr {@code{repository-cgit-configuration} parameter} repo-string commit-sort
-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.
-
-Defaults to @samp{""}.
-
-@end deftypevr
-
-@deftypevr {@code{repository-cgit-configuration} parameter} repo-string defbranch
-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.
-
-Defaults to @samp{""}.
-
-@end deftypevr
-
-@deftypevr {@code{repository-cgit-configuration} parameter} repo-string desc
-The value to show as repository description.
-
-Defaults to @samp{""}.
-
-@end deftypevr
-
-@deftypevr {@code{repository-cgit-configuration} parameter} repo-string homepage
-The value to show as repository homepage.
-
-Defaults to @samp{""}.
-
-@end deftypevr
-
-@deftypevr {@code{repository-cgit-configuration} parameter} repo-file-object email-filter
-Override the default @code{email-filter}.
-
-Defaults to @samp{""}.
-
-@end deftypevr
-
-@deftypevr {@code{repository-cgit-configuration} parameter} maybe-repo-boolean enable-commit-graph?
-A flag which can be used to disable the global setting
-@code{enable-commit-graph?}.
-
-Defaults to @samp{disabled}.
-
-@end deftypevr
-
-@deftypevr {@code{repository-cgit-configuration} parameter} maybe-repo-boolean enable-log-filecount?
-A flag which can be used to disable the global setting
-@code{enable-log-filecount?}.
-
-Defaults to @samp{disabled}.
-
-@end deftypevr
-
-@deftypevr {@code{repository-cgit-configuration} parameter} maybe-repo-boolean enable-log-linecount?
-A flag which can be used to disable the global setting
-@code{enable-log-linecount?}.
-
-Defaults to @samp{disabled}.
-
-@end deftypevr
-
-@deftypevr {@code{repository-cgit-configuration} parameter} maybe-repo-boolean enable-remote-branches?
-Flag which, when set to @code{#t}, will make cgit display remote branches in
-the summary and refs views.
-
-Defaults to @samp{disabled}.
-
-@end deftypevr
-
-@deftypevr {@code{repository-cgit-configuration} parameter} maybe-repo-boolean enable-subject-links?
-A flag which can be used to override the global setting
-@code{enable-subject-links?}.
-
-Defaults to @samp{disabled}.
-
-@end deftypevr
-
-@deftypevr {@code{repository-cgit-configuration} parameter} maybe-repo-boolean enable-html-serving?
-A flag which can be used to override the global setting
-@code{enable-html-serving?}.
-
-Defaults to @samp{disabled}.
-
-@end deftypevr
-
-@deftypevr {@code{repository-cgit-configuration} parameter} repo-boolean hide?
-Flag which, when set to @code{#t}, hides the repository from the repository
-index.
-
-Defaults to @samp{#f}.
-
-@end deftypevr
-
-@deftypevr {@code{repository-cgit-configuration} parameter} repo-boolean ignore?
-Flag which, when set to @samp{#t}, ignores the repository.
-
-Defaults to @samp{#f}.
-
-@end deftypevr
-
-@deftypevr {@code{repository-cgit-configuration} parameter} repo-file-object logo
-URL which specifies the source of an image which will be used as a logo on
-this repo’s pages.
-
-Defaults to @samp{""}.
-
-@end deftypevr
-
-@deftypevr {@code{repository-cgit-configuration} parameter} repo-string logo-link
-URL loaded when clicking on the cgit logo image.
-
-Defaults to @samp{""}.
-
-@end deftypevr
-
-@deftypevr {@code{repository-cgit-configuration} parameter} repo-file-object owner-filter
-Override the default @code{owner-filter}.
-
-Defaults to @samp{""}.
-
-@end deftypevr
-
-@deftypevr {@code{repository-cgit-configuration} parameter} repo-string module-link
-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.
-
-Defaults to @samp{""}.
-
-@end deftypevr
-
-@deftypevr {@code{repository-cgit-configuration} parameter} module-link-path module-link-path
-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.
-
-Defaults to @samp{()}.
-
-@end deftypevr
-
-@deftypevr {@code{repository-cgit-configuration} parameter} repo-string max-stats
-Override the default maximum statistics period.
-
-Defaults to @samp{""}.
-
-@end deftypevr
-
-@deftypevr {@code{repository-cgit-configuration} parameter} repo-string name
-The value to show as repository name.
-
-Defaults to @samp{""}.
-
-@end deftypevr
-
-@deftypevr {@code{repository-cgit-configuration} parameter} repo-string owner
-A value used to identify the owner of the repository.
-
-Defaults to @samp{""}.
-
-@end deftypevr
-
-@deftypevr {@code{repository-cgit-configuration} parameter} repo-string path
-An absolute path to the repository directory.
-
-Defaults to @samp{""}.
-
-@end deftypevr
-
-@deftypevr {@code{repository-cgit-configuration} parameter} repo-string readme
-A path (relative to repo) which specifies a file to include verbatim as the
-"About" page for this repo.
-
-Defaults to @samp{""}.
-
-@end deftypevr
-
-@deftypevr {@code{repository-cgit-configuration} parameter} repo-string section
-The name of the current repository section - all repositories defined after
-this option will inherit the current section name.
-
-Defaults to @samp{""}.
-
-@end deftypevr
-
-@deftypevr {@code{repository-cgit-configuration} parameter} repo-list extra-options
-Extra options will be appended to cgitrc file.
-
-Defaults to @samp{()}.
-
-@end deftypevr
-
-@end deftypevr
-
-@deftypevr {@code{cgit-configuration} parameter} list extra-options
-Extra options will be appended to cgitrc file.
-
-Defaults to @samp{()}.
-
-@end deftypevr
-
-
-@c %end of fragment
-
-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.
-
-Available @code{opaque-cgit-configuration} fields are:
-
-@deftypevr {@code{opaque-cgit-configuration} parameter} package cgit
-The cgit package.
-@end deftypevr
-
-@deftypevr {@code{opaque-cgit-configuration} parameter} string string
-The contents of the @code{cgitrc}, as a string.
-@end deftypevr
-
-For example, if your @code{cgitrc} is just the empty string, you could
-instantiate a cgit service like this:
-
-@example
-(service cgit-service-type
-         (opaque-cgit-configuration
-          (cgitrc "")))
-@end example
-
-@subsubheading Gitolite-Dienst
-
-@cindex Gitolite-Dienst
-@cindex Git, hosting
-@uref{http://gitolite.com/gitolite/, Gitolite} is a tool for hosting Git
-repositories on a central server.
-
-Gitolite can handle multiple repositories and users, and supports flexible
-configuration of the permissions for the users on the repositories.
-
-The following example will configure Gitolite using the default @code{git}
-user, and the provided SSH public key.
-
-@example
-(service gitolite-service-type
-         (gitolite-configuration
-           (admin-pubkey (plain-file
-                           "yourname.pub"
-                           "ssh-rsa AAAA... guix@@example.com"))))
-@end example
-
-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.
-
-@example
-git clone git@@example.com:gitolite-admin
-@end example
-
-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''.
-
-@deftp {Datentyp} gitolite-configuration
-Repräsentiert die Konfiguration vom @code{gitolite-service-type}.
-
-@table @asis
-@item @code{package} (Vorgabe: @var{gitolite})
-Welches Gitolite-Paket benutzt werden soll.
-
-@item @code{user} (Vorgabe: @var{git})
-User to use for Gitolite.  This will be user that you use when accessing
-Gitolite over SSH.
-
-@item @code{group} (Vorgabe: @var{git})
-Group to use for Gitolite.
-
-@item @code{home-directory} (Vorgabe: @var{"/var/lib/gitolite"})
-Directory in which to store the Gitolite configuration and repositories.
-
-@item @code{rc-file} (Vorgabe: @var{(gitolite-rc-file)})
-A ``file-like'' object (@pxref{G-Ausdrücke, file-like objects}),
-representing the configuration for Gitolite.
-
-@item @code{admin-pubkey} (Vorgabe: @var{#f})
-A ``file-like'' object (@pxref{G-Ausdrücke, file-like objects}) used to
-setup Gitolite.  This will be inserted in to the @file{keydir} directory
-within the gitolite-admin repository.
-
-To specify the SSH key as a string, use the @code{plain-file} function.
-
-@example
-(plain-file "yourname.pub" "ssh-rsa AAAA... guix@@example.com")
-@end example
-
-@end table
-@end deftp
-
-@deftp {Datentyp} gitolite-rc-file
-Repräsentiert die Gitolie-RC-Datei.
-
-@table @asis
-@item @code{umask} (Vorgabe: @code{#o0077})
-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 like cgit or gitweb.
-
-@item @code{git-config-keys} (Vorgabe: @code{""})
-Gitolite allows you to set git config values using the "config"
-keyword. This setting allows control over the config keys to accept.
-
-@item @code{roles} (Vorgabe: @code{'(("READERS" . 1) ("WRITERS" . ))})
-Set the role names allowed to be used by users running the perms command.
-
-@item @code{enable} (default: @code{'("help" "desc" "info" "perms" "writable" "ssh-authkeys" "git-config" "daemon" "gitweb")})
-This setting controls the commands and features to enable within Gitolite.
-
-@end table
-@end deftp
-
-
-@node Spieldienste
-@subsection Spieldienste
-
-@subsubheading The Battle for Wesnoth Service
-@cindex wesnothd
-@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).
-
-@defvar {Scheme Variable} wesnothd-service-type
-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:
-
-@example
-(service wesnothd-service-type)
-@end example
-@end defvar
-
-@deftp {Data Type} wesnothd-configuration
-Data type representing the configuration of @command{wesnothd}.
-
-@table @asis
-@item @code{package} (default: @code{wesnoth-server})
-The wesnoth server package to use.
-
-@item @code{port} (default: @code{15000})
-The port to bind the server to.
-@end table
-@end deftp
-
-@node Verschiedene Dienste
-@subsection Verschiedene Dienste
-
-@cindex fingerprint
-@subsubheading Fingerabdrucklese-Dienst
-
-The @code{(gnu services fingerprint)} module provides a DBus service to read
-and identify fingerprints via a fingerprint sensor.
-
-@defvr {Scheme Variable} fprintd-service-type
-The service type for @command{fprintd}, which provides the fingerprint
-reading capability.
-
-@example
-(service fprintd-service-type)
-@end example
-@end defvr
-
-@cindex sysctl
-@subsubheading System Control Service
-
-The @code{(gnu services sysctl)} provides a service to configure kernel
-parameters at boot.
-
-@defvr {Scheme Variable} sysctl-service-type
-The service type for @command{sysctl}, which modifies kernel parameters
-under @file{/proc/sys/}.  To enable IPv4 forwarding, it can be instantiated
-as:
-
-@example
-(service sysctl-service-type
-         (sysctl-configuration
-           (settings '(("net.ipv4.ip_forward" . "1")))))
-@end example
-@end defvr
-
-@deftp {Data Type} sysctl-configuration
-The data type representing the configuration of @command{sysctl}.
-
-@table @asis
-@item @code{sysctl} (default: @code{(file-append procps "/sbin/sysctl"})
-The @command{sysctl} executable to use.
-
-@item @code{settings} (default: @code{'()})
-An association list specifies kernel parameters and their values.
-@end table
-@end deftp
-
-@cindex pcscd
-@subsubheading PC/SC Smart Card Daemon Service
-
-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.
-
-@defvr {Scheme Variable} pcscd-service-type
-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:
-
-@example
-(service pcscd-service-type)
-@end example
-@end defvr
-
-@deftp {Datentyp} pcscd-configuration
-Repräsentiert die Konfiguration von @command{pcscd}.
-
-@table @asis
-@item @code{pcsc-lite} (Vorgabe: @code{pcsc-lite})
-The pcsc-lite package that provides pcscd.
-@item @code{usb-drivers} (Vorgabe: @code{(list ccid)})
-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
-
-@cindex lirc
-@subsubheading Lirc Service
-
-The @code{(gnu services lirc)} module provides the following service.
-
-@deffn {Scheme Procedure} lirc-service [#:lirc lirc] @
-       [#: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.
-
-Optionally, @var{device}, @var{driver} and @var{config-file} (configuration
-file name) may be specified.  See @command{lircd} manual for details.
-
-Finally, @var{extra-options} is a list of additional command-line options
-passed to @command{lircd}.
-@end deffn
-
-@cindex spice
-@subsubheading Spice Service
-
-The @code{(gnu services spice)} module provides the following service.
-
-@deffn {Scheme Procedure} spice-vdagent-service [#:spice-vdagent]
-Returns a service that runs @url{http://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.
-@end deffn
-
-@subsection Dictionary Services
-@cindex dictionary
-The @code{(gnu services dict)} module provides the following service:
-
-@deffn {Scheme Procedure} dicod-service [#:config (dicod-configuration)]
-Return a service that runs the @command{dicod} daemon, an implementation 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.
-
-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}).
-@end deffn
-
-@deftp {Data Type} dicod-configuration
-Data type representing the configuration of dicod.
-
-@table @asis
-@item @code{dico} (default: @var{dico})
-Package object of the GNU Dico dictionary server.
-
-@item @code{interfaces} (default: @var{'("localhost")})
-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}).
-
-@item @code{handlers} (default: @var{'()})
-List of @code{<dicod-handler>} objects denoting handlers (module instances).
-
-@item @code{databases} (default: @var{(list %dicod-database:gcide)})
-List of @code{<dicod-database>} objects denoting dictionaries to be served.
-@end table
-@end deftp
-
-@deftp {Data Type} dicod-handler
-Data type representing a dictionary handler (module instance).
-
-@table @asis
-@item @code{name}
-Name of the handler (module instance).
-
-@item @code{module} (default: @var{#f})
-Name of the dicod module of the handler (instance).  If it is @code{#f}, the
-module has the same name as the handler.  (@pxref{Module,,, dico, GNU Dico
-Manual}).
-
-@item @code{options}
-List of strings or gexps representing the arguments for the module handler
-@end table
-@end deftp
-
-@deftp {Data Type} dicod-database
-Data type representing a dictionary database.
-
-@table @asis
-@item @code{name}
-Name of the database, will be used in DICT commands.
-
-@item @code{handler}
-Name of the dicod handler (module instance) used by this database
-(@pxref{Handlers,,, dico, GNU Dico Manual}).
-
-@item @code{complex?} (default: @var{#f})
-Whether the database configuration complex.  The complex configuration will
-need a corresponding @code{<dicod-handler>} object, otherwise not.
-
-@item @code{options}
-List of strings or gexps representing the arguments for the database
-(@pxref{Databases,,, dico, GNU Dico Manual}).
-@end table
-@end deftp
-
-@defvr {Scheme Variable} %dicod-database:gcide
-A @code{<dicod-database>} object serving the GNU Collaborative International
-Dictionary of English using the @code{gcide} package.
-@end defvr
-
-The following is an example @code{dicod-service} configuration.
-
-@example
-(dicod-service #:config
-  (dicod-configuration
-   (handlers (list (dicod-handler
-                    (name "wordnet")
-                    (module "dictorg")
-                    (options
-                     (list #~(string-append "dbdir=" #$wordnet))))))
-   (databases (list (dicod-database
-                     (name "wordnet")
-                     (complex? #t)
-                     (handler "wordnet")
-                     (options '("database=wn")))
-                    %dicod-database:gcide))))
-@end example
-
-@cindex Docker
-@subsubheading Docker Service
-
-The @code{(gnu services docker)} module provides the following service.
-
-@defvr {Scheme Variable} docker-service-type
-
-This is the type of the service that runs
-@url{http://www.docker.com,Docker}, a daemon that can execute application
-bundles (sometimes referred to as ``containers'') in isolated environments.
-
-@end defvr
-
-@deftp {Data Type} docker-configuration
-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.
-
-@item @code{containerd} (default: @var{containerd})
-The Containerd package to use.
-
-@end table
-@end deftp
-
-@node Setuid-Programme
-@section Setuid-Programme
-
-@cindex setuid programs
-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.)
-
-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{Der 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.
-
-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{Das Konfigurationssystem nutzen}).  For instance, the
-@command{passwd} program, which is part of the Shadow package, can be
-designated by this G-expression (@pxref{G-Ausdrücke}):
-
-@example
-#~(string-append #$shadow "/bin/passwd")
-@end example
-
-A default set of setuid programs is defined by the @code{%setuid-programs}
-variable of the @code{(gnu system)} module.
-
-@defvr {Scheme Variable} %setuid-programs
-A list of G-expressions denoting common programs that are setuid-root.
-
-The list includes commands such as @command{passwd}, @command{ping},
-@command{su}, and @command{sudo}.
-@end defvr
-
-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.
-
-@node X.509-Zertifikate
-@section X.509-Zertifikate
-
-@cindex HTTPS, Zertifikate
-@cindex X.509-Zertifikate
-@cindex TLS
-Ü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 (englisch @dfn{Certificate Authority}, kurz CA). Damit er aber die
-Signatur der Zertifizierungsstelle verifizieren kann, muss jeder Client das
-Zertifikat der Zertifizierungsstelle besitzen.
-
-Web-Browser wie GNU@tie{}IceCat liefern ihre eigenen CA-Zertifikate mit,
-damit sie von Haus aus Zertifikate verifizieren können.
-
-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.
-
-@cindex @code{nss-certs}
-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«-Referenz}).  Guix includes one such package,
-@code{nss-certs}, which is a set of CA certificates provided as part of
-Mozilla's Network Security Services.
-
-Beachten Sie, dass es @emph{nicht} zu den @var{%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.
-
-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:
-
-@example
-$ guix package -i nss-certs
-$ export SSL_CERT_DIR="$HOME/.guix-profile/etc/ssl/certs"
-$ export SSL_CERT_FILE="$HOME/.guix-profile/etc/ssl/certs/ca-certificates.crt"
-$ export GIT_SSL_CAINFO="$SSL_CERT_FILE"
-@end example
-
-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:
-
-@example
-$ guix package -i nss-certs
-$ export CURL_CA_BUNDLE="$HOME/.guix-profile/etc/ssl/certs/ca-certificates.crt"
-@end example
-
-Für andere Anwendungen möchten Sie die Namen der benötigten
-Umgebungsvariablen vielleicht in deren Dokumentation nachschlagen.
-
-
-@node Name Service Switch
-@section Name Service Switch
-
-@cindex Name Service Switch
-@cindex NSS
-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}).
-
-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«-Referenz, @code{name-service-switch}}).
-
-@cindex nss-mdns
-@cindex .local, host name lookup
-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}:
-
-@example
-(name-service-switch
-   (hosts (list %files    ;first, check /etc/hosts
-
-                ;; If the above did not succeed, try
-                ;; with 'mdns_minimal'.
-                (name-service
-                  (name "mdns_minimal")
-
-                  ;; 'mdns_minimal' is authoritative for
-                  ;; '.local'.  When it returns "not found",
-                  ;; no need to try the next methods.
-                  (reaction (lookup-specification
-                             (not-found => return))))
-
-                ;; Then fall back to DNS.
-                (name-service
-                  (name "dns"))
-
-                ;; Finally, try with the "full" 'mdns'.
-                (name-service
-                  (name "mdns")))))
-@end example
-
-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.
-
-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{Netzwerkdienste,
-@code{avahi-service-type}}), or @var{%desktop-services}, which includes it
-(@pxref{Desktop-Dienste}).  Doing this makes @code{nss-mdns} accessible to
-the name service cache daemon (@pxref{Basisdienste, @code{nscd-service}}).
-
-For convenience, the following variables provide typical NSS configurations.
-
-@defvr {Scheme Variable} %default-nss
-This is the default name service switch configuration, a
-@code{name-service-switch} object.
-@end defvr
-
-@defvr {Scheme Variable} %mdns-host-lookup-nss
-This is the name service switch configuration with support for host name
-lookup over multicast DNS (mDNS) for host names ending in @code{.local}.
-@end defvr
-
-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}.
-
-@deftp {Data Type} name-service-switch
-
-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.
-
-@table @code
-@item aliases
-@itemx ethers
-@itemx group
-@itemx gshadow
-@itemx hosts
-@itemx initgroups
-@itemx netgroup
-@itemx networks
-@itemx password
-@itemx public-key
-@itemx rpc
-@itemx services
-@itemx shadow
-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
-
-@deftp {Data Type} name-service
-
-This is the data type representing an actual name service and the associated
-lookup action.
-
-@table @code
-@item name
-A string denoting the name service (@pxref{Services in the NSS
-configuration,,, libc, The GNU C Library Reference Manual}).
-
-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{Basisdienste, @code{nscd-service}}).
-
-@item reaction
-An action specified using the @code{lookup-specification} macro
-(@pxref{Actions in the NSS configuration,,, libc, The GNU C Library
-Reference Manual}).  For example:
-
-@example
-(lookup-specification (unavailable => continue)
-                      (success => return))
-@end example
-@end table
-@end deftp
-
-@node Initiale RAM-Disk
-@section Initiale RAM-Disk
-
-@cindex initrd
-@cindex initiale RAM-Disk
-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.
-
-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:
-
-@example
-(operating-system
-  ;; @dots{}
-  (initrd-modules (cons "megaraid_sas" %base-initrd-modules)))
-@end example
-
-@defvr {Scheme Variable} %base-initrd-modules
-This is the list of kernel modules included in the initrd by default.
-@end defvr
-
-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.
-
-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:
-
-@example
-(initrd (lambda (file-systems . rest)
-          ;; Create a standard initrd but set up networking
-          ;; with the parameters QEMU expects by default.
-          (apply base-initrd file-systems
-                 #:qemu-networking? #t
-                 rest)))
-@end example
-
-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.
-
-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.
-
-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:
-
-@table @code
-@item --load=@var{boot}
-Tell the initial RAM disk to load @var{boot}, a file containing a Scheme
-program, once it has mounted the root file system.
-
-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.
-
-@item --root=@var{root}
-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.
-
-@item --system=@var{System}
-Have @file{/run/booted-system} and @file{/run/current-system} point to
-@var{system}.
-
-@item modprobe.blacklist=@var{modules}@dots{}
-@cindex module, black-listing
-@cindex black list, of kernel modules
-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}.
-
-@item --repl
-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.
-
-@end table
-
-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.
-
-@cindex initrd
-@cindex initiale RAM-Disk
-@deffn {Scheme Procedure} raw-initrd @var{file-systems} @
-       [#:linux-modules '()] [#:mapped-devices '()] @ [#: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{Zugeordnete Geräte}).  @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.
-
-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.
-
-When @var{volatile-root?} is true, the root file system is writable but any
-changes to it are lost.
-@end deffn
-
-@deffn {Scheme Procedure} base-initrd @var{file-systems} @
-       [#:mapped-devices '()] [#: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.
-
-@var{qemu-networking?} and @var{volatile-root?} behaves as in
-@code{raw-initrd}.
-
-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.
-@end deffn
-
-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.
-
-@deffn {Scheme Procedure} expression->initrd @var{exp} @
-       [#: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.
-@end deffn
-
-@node Bootloader-Konfiguration
-@section Bootloader-Konfiguration
-
-@cindex bootloader
-@cindex boot loader
-
-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.
-
-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.
-
-@deftp {Data Type} bootloader-configuration
-The type of a bootloader configuration declaration.
-
-@table @asis
-
-@item @code{bootloader}
-@cindex EFI, bootloader
-@cindex UEFI, bootloader
-@cindex BIOS, bootloader
-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.
-
-@vindex grub-efi-bootloader
-@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.
-
-@vindex grub-bootloader
-@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{http://www.denx.de/wiki/U-Boot/, U-Boot bootloader}.
-
-@item @code{target}
-This is a string denoting the target onto which to install the bootloader.
-
-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}.
-
-@item @code{menu-entries} (default: @code{()})
-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.
-
-@item @code{default-entry} (default: @code{0})
-The index of the default boot menu entry.  Index 0 is for the entry of the
-current system.
-
-@item @code{timeout} (default: @code{5})
-The number of seconds to wait for keyboard input before booting.  Set to 0
-to boot immediately, and to -1 to wait indefinitely.
-
-@item @code{theme} (default: @var{#f})
-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.
-
-@item @code{terminal-outputs} (default: @code{'gfxterm})
-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}).
-
-@item @code{terminal-inputs} (default: @code{'()})
-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}).
-
-@item @code{serial-unit} (default: @code{#f})
-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}).
-
-@item @code{serial-speed} (default: @code{#f})
-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}).
-@end table
-
-@end deftp
-
-@cindex dual boot
-@cindex boot menu
-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:
-
-@example
-(menu-entry
-  (label "The Other Distro")
-  (linux "/boot/old/vmlinux-2.6.32")
-  (linux-arguments '("root=/dev/sda2"))
-  (initrd "/boot/old/initrd"))
-@end example
-
-Details below.
-
-@deftp {Data Type} menu-entry
-The type of an entry in the bootloader menu.
-
-@table @asis
-
-@item @code{label}
-The label to show in the menu---e.g., @code{"GNU"}.
-
-@item @code{linux}
-The Linux kernel image to boot, for example:
-
-@example
-(file-append linux-libre "/bzImage")
-@end example
-
-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:
-
-@example
-"(hd0,msdos1)/boot/vmlinuz"
-@end example
-
-If the device is specified explicitly as above, then the @code{device} field
-is ignored entirely.
-
-@item @code{linux-arguments} (default: @code{()})
-The list of extra Linux kernel command-line arguments---e.g.,
-@code{("console=ttyS0")}.
-
-@item @code{initrd}
-A G-Expression or string denoting the file name of the initial RAM disk to
-use (@pxref{G-Ausdrücke}).
-@item @code{device} (default: @code{#f})
-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}).
-
-This may be a file system label (a string), a file system UUID (a
-bytevector, @pxref{Dateisysteme}), 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}.
-
-@end table
-@end deftp
-
-@c FIXME: Write documentation once it's stable.
-Fow now only GRUB has theme support. GRUB themes are created using the
-@code{grub-theme} form, which is not documented yet.
-
-@defvr {Scheme Variable} %default-theme
-This is the default GRUB theme used by the operating system if no
-@code{theme} field is specified in @code{bootloader-configuration} record.
-
-It comes with a fancy background image displaying the GNU and Guix logos.
-@end defvr
-
-
-@node Aufruf von guix system
-@section @code{guix system} aufrufen
-
-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:
-
-@example
-guix system @var{Optionen}@dots{} @var{Aktion} @var{Datei}
-@end example
-
-@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:
-
-@table @code
-@item search
-Verfügbare Diensttypendefinitionen anzeigen, die zum angegebenen regulären
-Ausdruck passen, sortiert nach Relevanz:
-
-@example
-$ guix system search console font
-name: console-fonts
-location: gnu/services/base.scm:729:2
-extends: shepherd-root
-description: Install the given fonts on the specified ttys (fonts are
-+ per virtual console on GNU/Linux).  The value of this service is a list
-+ of tty/font pairs like:
-+ 
-+      '(("tty1" . "LatGrkCyr-8x16"))
-relevance: 20
-
-name: mingetty
-location: gnu/services/base.scm:1048:2
-extends: shepherd-root
-description: Provide console login using the `mingetty' program.
-relevance: 2
-
-name: login
-location: gnu/services/base.scm:775:2
-extends: pam
-description: Provide a console log-in service as specified by its
-+ configuration value, a `login-configuration' object.
-relevance: 2
-
-@dots{}
-@end example
-
-Wie auch bei @command{guix package --search} wird das Ergebnis im
-@code{recutils}-Format geliefert, so dass es leicht ist, die Ausgabe zu
-filtern (@pxref{Top, GNU recutils databases,, recutils, GNU recutils
-manual}).
-
-@item reconfigure
-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.}.
-
-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}).
-
-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} (@pxref{Aufruf von guix package}).
-
-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.
-
-@quotation Anmerkung
-@c The paragraph below refers to the problem discussed at
-@c <http://lists.gnu.org/archive/html/guix-devel/2014-08/msg00057.html>.
-Es ist sehr zu empfehlen, @command{guix pull} einmal auszuführen, bevor Sie
-@command{guix system reconfigure} zum ersten Mal aufrufen (@pxref{Aufruf von 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.
-@end quotation
-
-@item switch-generation
-@cindex Generationen
-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.
-
-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.
-
-Die Zielgeneration kann ausdrücklich über ihre Generationsnummer angegeben
-werden. Zum Beispiel würde folgender Aufruf einen Wechsel zur
-Systemgeneration 7 bewirken:
-
-@example
-guix system switch-generation 7
-@end example
-
-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:
-
-@example
-guix system switch-generation -- -1
-@end example
-
-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.
-
-Diese Aktion schlägt fehl, wenn die angegebene Generation nicht existiert.
-
-@item roll-back
-@cindex rücksetzen
-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.
-
-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.
-
-@item delete-generations
-@cindex deleting system generations
-@cindex saving space
-Delete system generations, making them candidates for garbage collection
-(@pxref{Aufruf von guix gc}, for information on how to run the ``garbage
-collector'').
-
-This works in the same way as @command{guix package --delete-generations}
-(@pxref{Aufruf von guix package, @code{--delete-generations}}).  With no
-arguments, all system generations but the current one are deleted:
-
-@example
-guix system delete-generations
-@end example
-
-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:
-
-@example
-guix system delete-generations 2m
-@end example
-
-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.
-
-@item build
-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.
-
-@item init
-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:
-
-@example
-guix system init my-os-config.scm /mnt
-@end example
-
-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}.
-
-Dieser Befehl installiert auch den Bootloader auf dem in @file{my-os-config}
-angegebenen Ziel, außer die Befehlszeilenoption @option{--no-bootloader}
-wurde übergeben.
-
-@item vm
-@cindex virtuelle Maschine
-@cindex VM
-@anchor{guix system vm}
-Build a virtual machine that contains the operating system declared in
-@var{file}, and return a script to run that virtual machine (VM).
-
-@quotation Anmerkung
-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{Einrichten der Erstellungsumgebung}).
-@end quotation
-
-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:
-
-@example
-$ /gnu/store/@dots{}-run-vm.sh -m 1024 -net user
-@end example
-
-Die virtuelle Maschine verwendet denselben Store wie das Wirtssystem.
-
-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.
-
-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:
-
-@example
-guix system vm my-config.scm \
-   --expose=$HOME --share=$HOME/tmp=/austausch
-@end example
-
-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.
-
-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.
-
-@cindex System-Disk-Images, Erstellung in verschiedenen Formaten
-@cindex Erzeugen von System-Disk-Images in verschiedenen Formaten
-@item vm-image
-@itemx disk-image
-@itemx docker-image
-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.
-
-Sie können den Dateisystemtyp für das Wurzeldateisystem mit der
-Befehlszeilenoption @option{--file-system-type} festlegen. Vorgegeben ist,
-@code{ext4} zu verwenden.
-
-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.
-
-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:
-
-@example
-# dd if=$(guix system disk-image my-os.scm) of=/dev/sdc
-@end example
-
-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:
-
-@example
-image_id="$(docker load < guixsd-docker-image.tar.gz)"
-docker run -e GUIX_NEW_SYSTEM=/var/guix/profiles/system \\
-    --entrypoint /var/guix/profiles/system/profile/bin/guile \\
-    $image_id /var/guix/profiles/system/boot
-@end example
-
-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}.
-
-@item container
-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.
-
-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.
-
-Wie bei der Aktion @code{vm} (@pxref{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:
-
-@example
-guix system container my-config.scm \
-   --expose=$HOME --share=$HOME/tmp=/austausch
-@end example
-
-@quotation Anmerkung
-Diese Befehlszeilenoption funktioniert nur mit Linux-libre 3.19 oder neuer.
-@end quotation
-
-@end table
-
-Unter den @var{Optionen} können beliebige gemeinsame Erstellungsoptionen
-aufgeführt werden (siehe @pxref{Gemeinsame Erstellungsoptionen}). Des Weiteren kann
-als @var{Optionen} Folgendes angegeben werden:
-
-@table @option
-@item --expression=@var{Ausdruck}
-@itemx -e @var{Ausdruck}
-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{Ein Abbild zur Installation erstellen}).
-
-@item --system=@var{System}
-@itemx -s @var{System}
-Versuche, für das angegebene @var{System} statt für denselben Systemtyp wie
-auf dem Wirtssystem zu erstellen. Dies funktioniert wie bei @command{guix
-build} (@pxref{Aufruf von guix build}).
-
-@item --derivation
-@itemx -d
-Liefert den Namen der Ableitungsdatei für das angegebene Betriebssystem,
-ohne dazu etwas zu erstellen.
-
-@item --file-system-type=@var{Typ}
-@itemx -t @var{type}
-Für die Aktion @code{disk-image} wird hiermit ein Dateisystem des
-angegebenen @var{Typ}s im Abbild bzw. Disk-Image erzeugt.
-
-Wird diese Befehlszeilenoption nicht angegeben, so benutzt @command{guix
-system} als Dateisystemtyp @code{ext4}.
-
-@cindex ISO-9660-Format
-@cindex CD-Abbild-Format
-@cindex DVD-Abbild-Format
-@code{--file-system-type=iso9660} erzeugt ein Abbild im Format ISO-9660, was
-für das Brennen auf CDs und DVDs geeignet ist.
-
-@item --image-size=@var{Größe}
-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 @pxref{Block size, size
-specifications,, coreutils, GNU Coreutils}).
-
-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.
-
-@item --root=@var{file}
-@itemx -r @var{file}
-Make @var{file} a symlink to the result, and register it as a garbage
-collector root.
-
-@item --skip-checks
-Die Konfiguration @emph{nicht} vor der Installation zur Sicherheit auf
-Fehler prüfen.
-
-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 (@pxref{Dateisysteme}) und
-dass alle Linux-Kernelmodule, die beim Booten benötigt werden könnten, auch
-im @code{initrd-modules}-Feld aufgeführt sind (@pxref{Initiale RAM-Disk}). Mit dieser Befehlszeilenoption werden diese Tests allesamt
-übersprungen.
-
-@cindex on-error
-@cindex on-error strategy
-@cindex error strategy
-@item --on-error=@var{Strategie}
-Beim Auftreten eines Fehlers beim Einlesen der @var{Datei} die angegebene
-@var{Strategie} verfolgen. Als @var{Strategie} dient eine der Folgenden:
-
-@table @code
-@item nothing-special
-Nichts besonderes; der Fehler wird kurz gemeldet und der Vorgang
-abgebrochen. Dies ist die vorgegebene Strategie.
-
-@item backtrace
-Ebenso, aber zusätzlich wird eine Rückverfolgung des Fehlers (ein
-»Backtrace«) angezeigt.
-
-@item debug
-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 @xref{Debug Commands,,, guile, GNU Guile Reference
-Manual} für eine Liste verfügbarer Befehle zur Fehlersuche.
-@end table
-@end table
-
-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:
-
-@table @code
-
-@item list-generations
-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}
-(@pxref{Aufruf von guix package}).
-
-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:
-
-@example
-$ guix system list-generations 10d
-@end example
-
-@end table
-
-Der Befehl @command{guix system} hat sogar noch mehr zu bieten! Mit
-folgenden Unterbefehlen wird Ihnen visualisiert, wie Ihre Systemdienste
-voneinander abhängen:
-
-@anchor{system-extension-graph}
-@table @code
-
-@item extension-graph
-Im Dot-/Graphviz-Format auf die Standardausgabe den
-@dfn{Diensterweiterungsgraphen} des in der @var{Datei} definierten
-Betriebssystems ausgeben (@pxref{Dienstkompositionen}, für mehr
-Informationen zu Diensterweiterungen).
-
-Der Befehl:
-
-@example
-$ guix system extension-graph @var{file} | dot -Tpdf > services.pdf
-@end example
-
-erzeugt eine PDF-Datei, in der die Erweiterungsrelation unter Diensten
-angezeigt wird.
-
-@anchor{system-shepherd-graph}
-@item shepherd-graph
-Im Dot-/Graphviz-Format auf die Standardausgabe den
-@dfn{Abhängigkeitsgraphen} der Shepherd-Dienste des in der @var{Datei}
-definierten Betriebssystems ausgeben. Siehe @xref{Shepherd-Dienste} für
-mehr Informationen sowie einen Beispielgraphen.
-
-@end table
-
-@node Running Guix in a VM
-@section Running Guix in a Virtual Machine
-
-@cindex virtuelle Maschine
-To run Guix in a virtual machine (VM), one can either use the pre-built Guix
-VM image distributed at
-@indicateurl{https://alpha.gnu.org/gnu/guix/guixsd-vm-image-@value{VERSION}.@var{system}.xz}
-, or build their own virtual machine image using @command{guix system
-vm-image} (@pxref{Aufruf von guix system}).  The returned image is in qcow2
-format, which the @uref{http://qemu.org/, QEMU emulator} can efficiently
-use.
-
-@cindex QEMU
-If you built your own image, you must copy it out of the store (@pxref{Der 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:
-
-@example
-$ qemu-system-x86_64 \
-   -net user -net nic,model=virtio \
-   -enable-kvm -m 256 /tmp/qemu-image
-@end example
-
-Here is what each of these options means:
-
-@table @code
-@item qemu-system-x86_64
-This specifies the hardware platform to emulate.  This should match the
-host.
-
-@item -net user
-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.
-
-@item -net nic,model=virtio
-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}.
-
-@item -enable-kvm
-If your system has hardware virtualization extensions, enabling the virtual
-machine support (KVM) of the Linux kernel will make things run faster.
-
-@item -m 256
-RAM available to the guest OS, in mebibytes.  Defaults to 128@tie{}MiB,
-which may be insufficient for some operations.
-
-@item /tmp/qemu-image
-The file name of the qcow2 image.
-@end table
-
-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}.
-
-@subsection Connecting Through SSH
-
-@cindex SSH
-@cindex SSH server
-To enable SSH inside a VM you need to add a SSH server like
-@code{(dropbear-service)} or @code{(lsh-service)} to your VM.  The
-@code{(lsh-service}) doesn't currently boot unsupervised.  It requires you
-to type some characters to initialize the randomness generator.  In addition
-you need to forward the SSH port, 22 by default, to the host.  You can do
-this with
-
-@example
-`guix system vm config.scm` -net user,hostfwd=tcp::10022-:22
-@end example
-
-To connect to the VM you can run
-
-@example
-ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -p 10022
-@end example
-
-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.
-
-@subsection Using @command{virt-viewer} with Spice
-
-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.
-
-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}:
-
-@example
--device virtio-serial-pci,id=virtio-serial0,max_ports=16,bus=pci.0,addr=0x5
--chardev spicevmc,name=vdagent,id=vdagent
--device virtserialport,nr=1,bus=virtio-serial0.0,chardev=vdagent,
-name=com.redhat.spice.0
-@end example
-
-You'll also need to add the @pxref{Verschiedene Dienste, Spice service}.
-
-@node Dienste definieren
-@section Dienste definieren
-
-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?
-
-@menu
-* Dienstkompositionen::      Wie Dienste zusammengestellt werden.
-* Diensttypen und Dienste::  Typen und Dienste.
-* Service-Referenz::         Referenz zur Programmierschnittstelle.
-* Shepherd-Dienste::         Eine spezielle Art von Dienst.
-@end menu
-
-@node Dienstkompositionen
-@subsection Dienstkompositionen
-
-@cindex services
-@cindex daemons
-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.
-
-@cindex service extensions
-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{Netzwerkdienste,
-@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-Dienste,
-@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{Basisdienste}).
-
-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:
-
-@image{images/service-graph,,5in,Typical service extension graph.}
-
-@cindex system service
-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-Referenz}, 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.
-
-@cindex service types
-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.
-
-The following section describes the programming interface for service types
-and services.
-
-@node Diensttypen und Dienste
-@subsection Diensttypen und Dienste
-
-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{Aufruf des guix-daemon}):
-
-@example
-(define guix-service-type
-  (service-type
-   (name 'guix)
-   (extensions
-    (list (service-extension shepherd-root-service-type guix-shepherd-service)
-          (service-extension account-service-type guix-accounts)
-          (service-extension activation-service-type guix-activation)))
-   (default-value (guix-configuration))))
-@end example
-
-@noindent
-It defines three things:
-
-@enumerate
-@item
-A name, whose sole purpose is to make inspection and debugging easier.
-
-@item
-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.
-
-Every service type has at least one service extension.  The only exception
-is the @dfn{boot service type}, which is the ultimate service.
-
-@item
-Optionally, a default value for instances of this type.
-@end enumerate
-
-In this example, @var{guix-service-type} extends three services:
-
-@table @var
-@item shepherd-root-service-type
-The @var{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-Dienste}).
-
-@item account-service-type
-This extension for this service is computed by @var{guix-accounts}, which
-returns a list of @code{user-group} and @code{user-account} objects
-representing the build user accounts (@pxref{Aufruf des guix-daemon}).
-
-@item activation-service-type
-Here @var{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.
-@end table
-
-A service of this type is instantiated like this:
-
-@example
-(service guix-service-type
-         (guix-configuration
-           (build-accounts 5)
-           (use-substitutes? #f)))
-@end example
-
-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:
-
-@example
-(service guix-service-type)
-@end example
-
-@var{guix-service-type} is quite simple because it extends other services
-but is not extensible itself.
-
-@c @subsubsubsection Extensible Service Types
-
-The service type for an @emph{extensible} service looks like this:
-
-@example
-(define udev-service-type
-  (service-type (name 'udev)
-                (extensions
-                 (list (service-extension shepherd-root-service-type
-                                          udev-shepherd-service)))
-
-                (compose concatenate)       ;concatenate the list of rules
-                (extend (lambda (config rules)
-                          (match config
-                            (($ <udev-configuration> udev initial-rules)
-                             (udev-configuration
-                              (udev udev)   ;the udev package to use
-                              (rules (append initial-rules rules)))))))))
-@end example
-
-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
-@var{shepherd-root-service-type}, we see two new fields:
-
-@table @code
-@item compose
-This is the procedure to @dfn{compose} the list of extensions to services of
-this type.
-
-Services can extend the udev service by passing it lists of rules; we
-compose those extensions simply by concatenating them.
-
-@item extend
-This procedure defines how the value of the service is @dfn{extended} with
-the composition of the extensions.
-
-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.
-
-@item description
-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{Aufruf von guix system}).
-@end table
-
-There can be only one instance of an extensible service type such as
-@var{udev-service-type}.  If there were more, the @code{service-extension}
-specifications would be ambiguous.
-
-Still here? The next section provides a reference of the programming
-interface for services.
-
-@node Service-Referenz
-@subsection Service-Referenz
-
-We have seen an overview of service types (@pxref{Diensttypen und Dienste}).  This section provides a reference on how to manipulate services
-and service types.  This interface is provided by the @code{(gnu services)}
-module.
-
-@deffn {Scheme Procedure} service @var{type} [@var{value}]
-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.
-
-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.
-
-For instance, this:
-
-@example
-(service openssh-service-type)
-@end example
-
-@noindent
-is equivalent to this:
-
-@example
-(service openssh-service-type
-         (openssh-configuration))
-@end example
-
-In both cases the result is an instance of @code{openssh-service-type} with
-the default configuration.
-@end deffn
-
-@deffn {Scheme Procedure} service? @var{obj}
-Return true if @var{obj} is a service.
-@end deffn
-
-@deffn {Scheme Procedure} service-kind @var{service}
-Return the type of @var{service}---i.e., a @code{<service-type>} object.
-@end deffn
-
-@deffn {Scheme Procedure} service-value @var{service}
-Return the value associated with @var{service}.  It represents its
-parameters.
-@end deffn
-
-Here is an example of how a service is created and manipulated:
-
-@example
-(define s
-  (service nginx-service-type
-           (nginx-configuration
-            (nginx nginx)
-            (log-directory log-directory)
-            (run-directory run-directory)
-            (file config-file))))
-
-(service? s)
-@result{} #t
-
-(eq? (service-kind s) nginx-service-type)
-@result{} #t
-@end example
-
-The @code{modify-services} form provides a handy way to change the
-parameters of some of the services of a list such as @var{%base-services}
-(@pxref{Basisdienste, @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.
-
-@deffn {Scheme-Syntax} modify-services @var{Dienste} @
-  (@var{Typ} @var{Variable} => @var{Rumpf}) @dots{}
-
-Passt die von @var{Dienste} bezeichnete Dienst-Liste entsprechend den
-angegebenen Klauseln an. Jede Klausel hat die Form:
-
-@example
-(@var{Typ} @var{Variable} => @var{Rumpf})
-@end example
-
-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.
-
-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.
-
-Siehe @xref{Das Konfigurationssystem nutzen} für ein Anwendungsbeispiel.
-
-@end deffn
-
-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.
-
-@deftp {Data Type} service-type
-@cindex service type
-This is the representation of a @dfn{service type} (@pxref{Diensttypen und Dienste}).
-
-@table @asis
-@item @code{name}
-This is a symbol, used only to simplify inspection and debugging.
-
-@item @code{extensions}
-A non-empty list of @code{<service-extension>} objects (see below).
-
-@item @code{compose} (default: @code{#f})
-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.
-
-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.
-
-@item @code{extend} (default: @code{#f})
-If this is @code{#f}, services of this type cannot be extended.
-
-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.
-@end table
-
-@xref{Diensttypen und Dienste}, for examples.
-@end deftp
-
-@deffn {Scheme Procedure} service-extension @var{target-type} @
-                              @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.
-@end deffn
-
-@deffn {Scheme Procedure} service-extension? @var{obj}
-Return true if @var{obj} is a service extension.
-@end deffn
-
-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.
-
-@deffn {Scheme Procedure} simple-service @var{name} @var{target} @var{value}
-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.
-
-For example, this extends mcron (@pxref{Geplante Auftragsausführung}) with an
-additional job:
-
-@example
-(simple-service 'my-mcron-job mcron-service-type
-                #~(job '(next-hour (3)) "guix gc -F 2G"))
-@end example
-@end deffn
-
-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{Aufruf von 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.
-
-@deffn {Scheme Procedure} fold-services @var{services} @
-                            [#: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.
-@end deffn
-
-Lastly, the @code{(gnu services)} module also defines several essential
-service types, some of which are listed below.
-
-@defvr {Scheme Variable} system-service-type
-This is the root of the service graph.  It produces the system directory as
-returned by the @command{guix system build} command.
-@end defvr
-
-@defvr {Scheme Variable} boot-service-type
-The type of the ``boot service'', which produces the @dfn{boot script}.  The
-boot script is what the initial RAM disk runs when booting.
-@end defvr
-
-@defvr {Scheme Variable} etc-service-type
-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:
-
-@example
-(list `("issue" ,(plain-file "issue" "Welcome!\n")))
-@end example
-
-In this example, the effect would be to add an @file{/etc/issue} file
-pointing to the given file.
-@end defvr
-
-@defvr {Scheme Variable} setuid-program-service-type
-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-Programme}).
-@end defvr
-
-@defvr {Scheme Variable} profile-service-type
-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.
-@end defvr
-
-
-@node Shepherd-Dienste
-@subsection Shepherd-Dienste
-
-@cindex shepherd services
-@cindex PID 1
-@cindex init system
-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{Einführung,,, shepherd, The GNU Shepherd Manual}).
-
-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{Das Konfigurationssystem nutzen}) results in a service graph like this:
-
-@image{images/shepherd-graph,,5in,Typical shepherd service graph.}
-
-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}}).
-
-The @var{%shepherd-root-service} is a service object representing
-PID@tie{}1, of type @var{shepherd-root-service-type}; it can be extended by
-passing it lists of @code{<shepherd-service>} objects.
-
-@deftp {Data Type} shepherd-service
-The data type representing a service managed by the Shepherd.
-
-@table @asis
-@item @code{provision}
-This is a list of symbols denoting what the service provides.
-
-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.
-
-@item @code{requirements} (default: @code{'()})
-List of symbols denoting the Shepherd services this one depends on.
-
-@item @code{respawn?} (default: @code{#t})
-Whether to restart the service when it stops, for instance when the
-underlying process dies.
-
-@item @code{start}
-@itemx @code{stop} (default: @code{#~(const #f)})
-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-Ausdrücke}).
-
-@item @code{actions} (Vorgabe: @code{'()})
-@cindex Aktionen, bei Shepherd-Diensten
-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:
-
-@example
-herd @var{action} @var{service} [@var{arguments}@dots{}]
-@end example
-
-@item @code{Dokumentation}
-A documentation string, as shown when running:
-
-@example
-herd doc @var{service-name}
-@end example
-
-where @var{service-name} is one of the symbols in @var{provision}
-(@pxref{Invoking herd,,, shepherd, The GNU Shepherd Manual}).
-
-@item @code{modules} (default: @var{%default-modules})
-This is the list of modules that must be in scope when @code{start} and
-@code{stop} are evaluated.
-
-@end table
-@end deftp
-
-@deftp {Datentyp} shepherd-action
-This is the data type that defines additional actions implemented by a
-Shepherd service (see above).
-
-@table @code
-@item name
-Die Aktion bezeichnendes Symbol.
-
-@item Dokumentation
-This is a documentation string for the action.  It can be viewed by running:
-
-@example
-herd doc @var{service} action @var{action}
-@end example
-
-@item procedure
-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}).
-@end table
-
-The following example defines an action called @code{say-hello} that kindly
-greets the user:
-
-@example
-(shepherd-action
-  (name 'say-hello)
-  (documentation "Say hi!")
-  (procedure #~(lambda (running . args)
-                 (format #t "Hello, friend! arguments: ~s\n"
-                         args)
-                 #t)))
-@end example
-
-Assuming this action is added to the @code{example} service, then you can
-do:
-
-@example
-# herd say-hello example
-Hello, friend! arguments: ()
-# herd say-hello example a b c
-Hello, friend! arguments: ("a" "b" "c")
-@end example
-
-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.
-@end deftp
-
-@defvr {Scheme Variable} shepherd-root-service-type
-The service type for the Shepherd ``root service''---i.e., PID@tie{}1.
-
-This is the service type that extensions target when they want to create
-shepherd services (@pxref{Diensttypen und Dienste}, for an example).
-Each extension must pass a list of @code{<shepherd-service>}.
-@end defvr
-
-@defvr {Scheme Variable} %shepherd-root-service
-This service represents PID@tie{}1.
-@end defvr
-
-
-@node Dokumentation
-@chapter Dokumentation
-
-@cindex documentation, searching for
-@cindex searching for documentation
-@cindex Info, documentation format
-@cindex man pages
-@cindex manual pages
-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}.
-
-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:
-
-@example
-$ info -k TLS
-"(emacs)Network Security" -- STARTTLS
-"(emacs)Network Security" -- TLS
-"(gnutls)Core TLS API" -- gnutls_certificate_set_verify_flags
-"(gnutls)Core TLS API" -- gnutls_certificate_set_verify_function
-@dots{}
-@end example
-
-@noindent
-The command below searches for the same keyword in man pages:
-
-@example
-$ man -k TLS
-SSL (7)              - OpenSSL SSL/TLS library
-certtool (1)         - GnuTLS certificate tool
-@dots {}
-@end example
-
-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.
-
-Once you have these results, you can view the relevant documentation by
-running, say:
-
-@example
-$ info "(gnutls)Core TLS API"
-@end example
-
-@noindent
-or:
-
-@example
-$ man certtool
-@end example
-
-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.
-
-@node Dateien zur Fehlersuche installieren
-@chapter Dateien zur Fehlersuche installieren
-
-@cindex debugging files
-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.
-
-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}).
-
-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}).
-
-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{Pakete mit mehreren Ausgaben.}).  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:
-
-@example
-guix package -i glibc:debug guile:debug
-@end example
-
-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}):
-
-@example
-(gdb) set debug-file-directory ~/.guix-profile/lib/debug
-@end example
-
-From there on, GDB will pick up debugging information from the @code{.debug}
-files under @file{~/.guix-profile/lib/debug}.
-
-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{Aufruf von guix build}), and to point GDB to that source directory
-using the @code{directory} command (@pxref{Source Path, @code{directory},,
-gdb, Debugging with GDB}).
-
-@c XXX: keep me up-to-date
-The @code{debug} output mechanism in Guix is implemented by the
-@code{gnu-build-system} (@pxref{Erstellungssysteme}).  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{Aufruf von guix package}).
-
-
-@node Sicherheitsaktualisierungen
-@chapter Sicherheitsaktualisierungen
-
-@cindex security updates
-@cindex security vulnerabilities
-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:
-
-@smallexample
-$ guix lint -c cve
-gnu/packages/base.scm:652:2: glibc@@2.21: probably vulnerable to CVE-2015-1781, CVE-2015-7547
-gnu/packages/gcc.scm:334:2: gcc@@4.9.3: probably vulnerable to CVE-2015-5276
-gnu/packages/image.scm:312:2: openjpeg@@2.1.0: probably vulnerable to CVE-2016-1923, CVE-2016-1924
-@dots{}
-@end smallexample
-
-@xref{Aufruf von guix lint}, for more information.
-
-@quotation Anmerkung
-As of version @value{VERSION}, the feature described below is considered
-``beta''.
-@end quotation
-
-Guix follows a functional package management discipline
-(@pxref{Einführung}), 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{Substitute}), but
-deployment may still take more time than desired.
-
-@cindex grafts
-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.
-
-@cindex replacements of packages, for grafts
-For instance, suppose a security update needs to be applied to Bash.  Guix
-developers will provide a package definition for the ``fixed'' Bash, say
-@var{bash-fixed}, in the usual way (@pxref{Pakete definieren}).  Then, the
-original package definition is augmented with a @code{replacement} field
-pointing to the package containing the bug fix:
-
-@example
-(define bash
-  (package
-    (name "bash")
-    ;; @dots{}
-    (replacement bash-fixed)))
-@end example
-
-From there on, any package depending directly or indirectly on Bash---as
-reported by @command{guix gc --requisites} (@pxref{Aufruf von guix gc})---that
-is installed is automatically ``rewritten'' to refer to @var{bash-fixed}
-instead of @var{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.
-
-Currently, the length of the name and version of the graft and that of the
-package it replaces (@var{bash-fixed} and @var{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.
-
-The @option{--no-grafts} command-line option allows you to forcefully avoid
-grafting (@pxref{Gemeinsame Erstellungsoptionen, @option{--no-grafts}}).  Thus, the
-command:
-
-@example
-guix build bash --no-grafts
-@end example
-
-@noindent
-returns the store file name of the original Bash, whereas:
-
-@example
-guix build bash
-@end example
-
-@noindent
-returns the store file name of the ``fixed'', replacement Bash.  This allows
-you to distinguish between the two variants of Bash.
-
-To verify which Bash your whole profile refers to, you can run
-(@pxref{Aufruf von guix gc}):
-
-@example
-guix gc -R `readlink -f ~/.guix-profile` | grep bash
-@end example
-
-@noindent
-@dots{} and compare the store file names that you get with those above.
-Likewise for a complete Guix system generation:
-
-@example
-guix gc -R `guix system build my-config.scm` | grep bash
-@end example
-
-Lastly, to check which Bash running processes are using, you can use the
-@command{lsof} command:
-
-@example
-lsof | grep /gnu/store/.*bash
-@end example
-
-
-@node Bootstrapping
-@chapter Bootstrapping
-
-@c Adapted from the ELS 2013 paper.
-
-@cindex bootstrapping
-
-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{Einführung}).  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''.
-
-@cindex bootstrap binaries
-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{Ableitungen}).
-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}.
-
-These bootstrap binaries are ``taken for granted'', though we can also
-re-create them if needed (more on that later).
-
-@unnumberedsec Preparing to Use the Bootstrap Binaries
-
-@c As of Emacs 24.3, Info-mode displays the image, but since it's a
-@c large image, it's hard to scroll.  Oh well.
-@image{images/bootstrap-graph,6in,,Dependency graph of the early bootstrap
-derivations}
-
-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{Aufruf von guix graph}), along the lines of:
-
-@example
-guix graph -t derivation \
-  -e '(@@@@ (gnu packages bootstrap) %bootstrap-gcc)' \
-  | dot -Tps > t.ps
-@end example
-
-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{Der Store}).
-
-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.
-
-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{Ableitungen}).
-
-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.
-
-
-@unnumberedsec Building the Build Tools
-
-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.
-
-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:
-
-@example
-guix graph -t bag \
-  -e '(@@@@ (gnu packages commencement)
-          glibc-final-with-bootstrap-bash)' | dot -Tps > t.ps
-@end example
-
-@noindent
-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.
-
-@image{images/bootstrap-packages,6in,,Dependency graph of the early
-packages}
-
-@c See <http://lists.gnu.org/archive/html/gnu-system-discuss/2012-10/msg00000.html>.
-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.
-
-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.
-
-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.
-
-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{Erstellungssysteme,
-@code{gnu-build-system}}).
-
-
-@unnumberedsec Building the Bootstrap Binaries
-
-@cindex bootstrap binaries
-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.
-
-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):
-
-@example
-guix build bootstrap-tarballs
-@end example
-
-The generated tarballs are those that should be referred to in the
-@code{(gnu packages bootstrap)} module mentioned at the beginning of this
-section.
-
-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.
-
-@unnumberedsec Reducing the Set of Bootstrap Binaries
-
-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}.
-
-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.
-
-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!
-
-
-@node Portierung
-@chapter Porting to a New Platform
-
-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.
-
-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:
-
-@example
-guix build --target=armv5tel-linux-gnueabi bootstrap-tarballs
-@end example
-
-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.
-
-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.
-
-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.
-
-@c *********************************************************************
-@include contributing.de.texi
-
-@c *********************************************************************
-@node Danksagungen
-@chapter Danksagungen
-
-Guix is based on the @uref{http://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.
-
-The Nix-based software distributions, Nixpkgs and NixOS, have also been an
-inspiration for Guix.
-
-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!
-
-
-@c *********************************************************************
-@node GNU-Lizenz für freie Dokumentation
-@appendix GNU-Lizenz für freie Dokumentation
-@cindex license, GNU Free Documentation License
-@include fdl-1.3.texi
-
-@c *********************************************************************
-@node Konzeptverzeichnis
-@unnumbered Konzeptverzeichnis
-@printindex cp
-
-@node Programmierverzeichnis
-@unnumbered Programmierverzeichnis
-@syncodeindex tp fn
-@syncodeindex vr fn
-@printindex fn
-
-@bye
-
-@c Local Variables:
-@c ispell-local-dictionary: "american";
-@c End:
diff --git a/doc/guix.fr.texi b/doc/guix.fr.texi
deleted file mode 100644
index 541fd6f0d0..0000000000
--- a/doc/guix.fr.texi
+++ /dev/null
@@ -1,25303 +0,0 @@
-\input texinfo
-@c ===========================================================================
-@c
-@c This file was generated with po4a. Translate the source file.
-@c
-@c ===========================================================================
-@c -*-texinfo-*-
-
-@c %**start of header
-@setfilename guix.fr.info
-@documentencoding UTF-8
-@documentlanguage fr
-@frenchspacing on
-@settitle Manuel de référence de GNU Guix
-@c %**end of header
-
-@include version-fr.texi
-
-@c Identifier of the OpenPGP key used to sign tarballs and such.
-@set OPENPGP-SIGNING-KEY-ID 3CE464558A84FDC69DB40CFB090B11993D9AEBB5
-@set KEY-SERVER pool.sks-keyservers.net
-
-@c The official substitute server used by default.
-@set SUBSTITUTE-SERVER ci.guix.fr.info
-
-@copying
-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
-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 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@*
-
-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 ».
-@end copying
-
-@dircategory Administration système
-@direntry
-* Guix: (guix.fr).           Gérer les logiciels installés et la 
-                               configuration du système.
-* guix package : (guix.fr)Invoquer guix package.  Installer, supprimer et 
-                                                      mettre à jour des 
-                                                      paquets.
-* guix gc : (guix.fr)Invoquer guix gc.  Récupérer de l'espace disque 
-                                            inutilisé.
-* guix pull : (guix.fr)Invoquer guix pull.  Mettre à jour la liste des 
-                                                paquets disponibles.
-* guix system : (guix.fr)Invoquer guix system.  Gérer la configuration du 
-                                                    système d'exploitation.
-@end direntry
-
-@dircategory Développement logiciel
-@direntry
-* guix environment : (guix.fr)Invoquer guix environment.  Construire des 
-                                                              environnements 
-                                                              de construction 
-                                                              avec Guix.
-* guix build : (guix.fr)Invoquer guix build.  Construire des paquets.
-* guix pack : (guix.fr) Invoquer guix pack.  Créer des lots binaires.
-@end direntry
-
-@titlepage
-@title Manuel de référence de GNU Guix
-@subtitle Utiliser le gestionnaire de paquet fonctionnel GNU Guix
-@author Les développeurs de GNU Guix
-
-@page
-@vskip 0pt plus 1filll
-Édition @value{EDITION} @* @value{UPDATED} @*
-
-@insertcopying
-@end titlepage
-
-@contents
-
-@c *********************************************************************
-@node Top
-@top GNU Guix
-
-Cette documentation décrit GNU Guix version @value{VERSION}, un outil de
-gestion de paquets fonctionnel écrit pour le système GNU@.
-
-@c TRANSLATORS: You can replace the following paragraph with information on
-@c how to join your own translation team and how to report issues with the
-@c translation.
-Ce manuel est aussi disponible en anglais (@pxref{Top,,, guix, GNU Guix
-Reference Manual}) et en allemand (@pxref{Top,,, guix.de, Referenzhandbuch
-zu 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}.
-
-@menu
-* Introduction::             Qu'est-ce que Guix ?
-* Installation::             Installer Guix.
-* Installation du système::  Installer le système d'exploitation complet.
-* Gestion de paquets::       Installation des paquets, mises à jour, etc.
-* Development::              Guix-aided software development.
-* Interface de programmation::  Utiliser Guix en Scheme.
-* Utilitaires::              Commandes de gestion de paquets.
-* Configuration système::   Configurer le système d'exploitation.
-* Documentation::            Visualiser les manuels d'utilisateur des 
-                               logiciels.
-* Installer les fichiers de débogage::  Nourrir le débogueur.
-* Mises à jour de sécurité::  Déployer des correctifs de sécurité 
-                                   rapidement.
-* Bootstrapping::            GNU/Linux depuis zéro.
-* Porter::                   Cibler une autre plateforme ou un autre noyau.
-* Contribuer::               Nous avons besoin de votre aide !
-
-* Remerciements::            Merci !
-* La licence GNU Free Documentation::  La licence de ce manuel.
-* Index des concepts::       Les concepts.
-* Index de programmation::   Types de données, fonctions et variables.
-
-@detailmenu
- --- Liste détaillée des nœuds ---
-
-
-
-Introduction
-
-
-
-* Managing Software the Guix Way::  What's special.
-* Distribution GNU::         The packages and tools.
-
-Installation
-
-
-
-* Installation binaire::     Commencer à utiliser Guix en un rien de temps 
-                               !
-* Prérequis::               Logiciels requis pour construire et lancer 
-                               Guix.
-* Lancer la suite de tests::  Tester Guix.
-* Paramétrer le démon::    Préparer l'environnement du démon de 
-                               construction.
-* Invoquer guix-daemon::     Lancer le démon de construction.
-* Réglages applicatifs::    Réglages spécifiques pour les application.
-
-Paramétrer le démon
-
-
-
-* Réglages de l'environnement de construction::  Préparer l'environnement 
-                                                    de construction isolé.
-* Réglages du délestage du démon::  Envoyer des constructions à des 
-                                         machines distantes.
-* Support de SELinux::       Utiliser une politique SELinux pour le démon.
-
-Installation du système
-
-
-
-* Limitations::              Ce à quoi vous attendre.
-* Considérations matérielles::  Matériel supporté.
-* Installation depuis une clef USB ou un DVD::  Préparer le média 
-                                                  d'installation.
-* Préparer l'installation::  Réseau, partitionnement, etc.
-* Effectuer l'installation::  Pour de vrai.
-* Installing Guix in a VM::  Guix System playground.
-* Construire l'image d'installation::  D'où vient tout cela.
-
-Gestion de paquets
-
-
-
-* Fonctionnalités::         Comment Guix va rendre votre vie plus heureuse.
-* Invoquer guix package::    Installation, suppression, etc.@: de paquets.
-* Substituts::               Télécharger des binaire déjà construits.
-* Des paquets avec plusieurs résultats::  Un seul paquet source, plusieurs 
-                                             résultats.
-* Invoquer guix gc::         Lancer le ramasse-miettes.
-* Invoquer guix pull::       Récupérer la dernière version de Guix et de 
-                               la distribution.
-* Canaux::                   Personnaliser la collection des paquets.
-* Inférieurs::              Interagir avec une autre révision de Guix.
-* Invoquer guix describe::   Affiche des informations sur la révision Guix 
-                               actuelle.
-* Invoquer guix archive::    Exporter et importer des fichiers du dépôt.
-
-Substituts
-
-
-
-* Serveur de substituts officiel::  Une source particulière de substituts.
-* Autoriser un serveur de substituts::  Comment activer ou désactiver les 
-                                          substituts.
-* Authentification des substituts::  Comment Guix vérifie les substituts.
-* Paramètres de serveur mandataire::  Comment récupérer des substituts à 
-                                         travers un serveur mandataire.
-* Échec de substitution::   Qu'arrive-t-il quand la substitution échoue.
-* De la confiance en des binaires::  Comment pouvez-vous avoir confiance en 
-                                       un paquet binaire ?
-
-Development
-
-
-
-* Invoquer guix environment::  Mettre en place des environnements de 
-                                 développement.
-* Invoquer guix pack::       Créer des lots de logiciels.
-
-Interface de programmation
-
-
-
-* Modules de paquets::       Les paquets du point de vu du programmeur.
-* Définition des paquets::  Définir de nouveaux paquets.
-* Systèmes de construction::  Spécifier comment construire les paquets.
-* Le dépôt::               Manipuler le dépôt de paquets.
-* Dérivations::             Interface de bas-niveau avec les dérivations 
-                               de paquets.
-* La monade du dépôt::     Interface purement fonctionnelle avec le 
-                               dépôt.
-* G-Expressions::            Manipuler les expressions de construction.
-* Invoquer guix repl::       S'amuser avec Guix de manière interactive.
-
-Définition des paquets
-
-
-
-* Référence de paquet::    Le type de donnée des paquets.
-* Référence d'origine::    Le type de données d'origine.
-
-Utilitaires
-
-
-
-* Invoquer guix build::      Construire des paquets depuis la ligne de 
-                               commande.
-* Invoquer guix edit::       Modifier les définitions de paquets.
-* Invoquer guix download::   Télécharger un fichier et afficher son hash.
-* Invoquer guix hash::       Calculer le hash cryptographique d'un fichier.
-* Invoquer guix import::     Importer des définitions de paquets.
-* Invoquer guix refresh::    Mettre à jour les définitions de paquets.
-* Invoquer guix lint::       Trouver des erreurs dans les définitions de 
-                               paquets.
-* Invoquer guix size::       Profiler l'utilisation du disque.
-* Invoquer guix graph::      Visualiser le graphe des paquets.
-* Invoquer guix publish::    Partager des substituts.
-* Invoquer guix challenge::  Défier les serveurs de substituts.
-* Invoquer guix copy::       Copier vers et depuis un dépôt distant.
-* Invoquer guix container::  Isolation de processus.
-* Invoquer guix weather::    Mesurer la disponibilité des substituts.
-* Invoquer guix processes::  Lister les processus clients.
-
-Invoquer @command{guix build}
-
-
-
-* Options de construction communes::  Options de construction pour la 
-                                        plupart des commandes.
-* Options de transformation de paquets::  Créer des variantes de paquets.
-* Options de construction supplémentaires::  Options spécifiques à « 
-                                                guix build ».
-* Débogage des échecs de construction::  La vie d'un empaqueteur.
-
-Configuration système
-
-
-
-* Utiliser le système de configuration::  Personnaliser votre système 
-                                             GNU@.
-* Référence de système d'exploitation::  Détail sur la déclaration de 
-                                              système d'exploitation.
-* Systèmes de fichiers::    Configurer les montages de systèmes de 
-                               fichiers.
-* Périphériques mappés::  Gestion des périphériques de bloc.
-* Comptes utilisateurs::     Spécifier des comptes utilisateurs.
-* Régionalisation::         Paramétrer la langue et les conventions 
-                               culturelles.
-* Services::                 Spécifier les services du système.
-* Programmes setuid::        Programmes tournant avec les privilèges root.
-* Certificats X.509::        Authentifier les serveurs HTTPS@.
-* Name Service Switch::      Configurer le « name service switch » de la 
-                               libc.
-* Disque de RAM initial::    Démarrage de Linux-Libre.
-* Configuration du chargeur d'amorçage::  Configurer le chargeur 
-                                             d'amorçage.
-* Invoquer guix system::     Instantier une configuration du système.
-* Running Guix in a VM::     How to run Guix System in a virtual machine.
-* Définir des services::    Ajouter de nouvelles définitions de services.
-
-Services
-
-
-
-* Services de base::         Services systèmes essentiels.
-* Exécution de tâches planifiées::  Le service mcron.
-* Rotation des journaux::    Le service rottlog.
-* Services réseau::         Paramètres réseau, démon SSH, etc.
-* Système de fenêtrage X::  Affichage graphique.
-* Services d'impression::    Support pour les imprimantes locales et 
-                               distantes.
-* Services de bureaux::      D-Bus et les services de bureaux.
-* Services de son::          Services ALSA et Pulseaudio.
-* Services de bases de données::  Bases SQL, clefs-valeurs, etc.
-* Services de courriels::    IMAP, POP3, SMTP, et tout ça.
-* Services de messagerie::   Services de messagerie.
-* Services de téléphonie::  Services de téléphonie.
-* Services de surveillance::  Services de surveillance.
-* Services Kerberos::        Services Kerberos.
-* Services web::             Services web.
-* Services de certificats::  Certificats TLS via Let's Encrypt.
-* Services DNS::             Démons DNS@.
-* Services VPN::             Démons VPN
-* Système de fichiers en réseau::  Services liés à NFS@.
-* Intégration continue::    Le service Cuirass.
-* Services de gestion de l'énergie::  Augmenter la durée de vie de la 
-                                         batterie.
-* Services audio::           MPD@.
-* Services de virtualisation::  Services de virtualisation.
-* Services de contrôle de version::  Fournit des accès distants à des 
-                                        dépôts Git.
-* Services de jeu::          Serveurs de jeu.
-* Services divers::          D'autres services.
-
-Définir des services
-
-
-
-* Composition de services::  Le modèle de composition des services.
-* Types service et services::  Types et services.
-* Référence de service::   Référence de l'API@.
-* Services Shepherd::        Un type de service particulier.
-
-@end detailmenu
-@end menu
-
-@c *********************************************************************
-@node Introduction
-@chapter Introduction
-
-@cindex but
-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.
-
-@cindex Guix System
-@cindex GuixSD, now Guix System
-@cindex Guix System Distribution, now Guix System
-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{Distribution GNU}.
-
-@menu
-* Managing Software the Guix Way::  What's special.
-* Distribution GNU::         The packages and tools.
-@end menu
-
-@node Managing Software the Guix Way
-@section Managing Software the Guix Way
-
-@cindex interfaces utilisateurs
-Guix provides a command-line package management interface (@pxref{Gestion de paquets}), tools to help with software development (@pxref{Development}),
-command-line utilities for more advanced usage, (@pxref{Utilitaires}), as well
-as Scheme programming interfaces (@pxref{Interface de programmation}).
-@cindex démon de construction
-Son @dfn{démon de construction} est responsable de la construction des
-paquets pour les utilisateurs (@pxref{Paramétrer le démon}) et du
-téléchargement des binaires pré-construits depuis les sources autorisées
-(@pxref{Substituts}).
-
-@cindex extensibilité de la distribution
-@cindex personnalisation, des paquets
-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}.  Il est @emph{extensible} : les utilisateurs
-peuvent écrire leurs propres définitions de paquets (@pxref{Définition des paquets}) et les rendre disponibles dans des modules de paquets
-indépendants (@pxref{Modules de paquets}).  Il est aussi
-@emph{personnalisable} : les utilisateurs peuvent @emph{dériver} des
-définitions de paquets spécialisées à partir de définitions existantes, même
-depuis la ligne de commande (@pxref{Options de transformation de paquets}).
-
-@cindex gestion de paquet fonctionnelle
-@cindex isolation
-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.
-
-@cindex dépôt
-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{Le dépôt}).  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.
-
-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 et le ramassage
-de miettes pour les paquets (@pxref{Fonctionnalités}).
-
-
-@node Distribution GNU
-@section Distribution GNU
-
-@cindex Guix System
-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{Installation du système}), 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.
-
-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{Invoquer guix package}) :
-
-@example
-guix package --list-available
-@end example
-
-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 à exercer ses libertés.
-
-Les paquets sont actuellement disponibles pour les plateformes suivantes :
-
-@table @code
-
-@item x86_64-linux
-l'architecture Intel et AMD @code{x86_64} avec le noyau Linux-libre ;
-
-@item i686-linux
-l'architecture Intel 32-bits (IA32) avec le noyau Linux-libre ;
-
-@item armhf-linux
-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 ;
-
-@item aarch64-linux
-les processeurs ARMv8-A 64-bits en little-endian avec le noyau Linux-libre.
-Le support est actuellement expérimental et limité.  @xref{Contribuer},
-pour savoir comment aider !
-
-@item mips64el-linux
-les processeurs MIPS 64-bits little-endian, spécifiquement la série
-Loongson, ABI n32, avec le noyau Linux-libre.
-
-@end table
-
-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{Configuration système}).  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.
-
-Guix System is available on all the above platforms except
-@code{mips64el-linux}.
-
-@noindent
-Pour des informations sur comment porter vers d'autres architectures et
-d'autres noyau, @pxref{Porter}.
-
-La construction de cette distribution est un effort collaboratif et nous
-vous invitons à nous rejoindre ! @xref{Contribuer}, pour des informations
-sur la manière de nous aider.
-
-
-@c *********************************************************************
-@node Installation
-@chapter Installation
-
-@cindex installer Guix
-
-@quotation Remarque
-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{Installation du système}.} The script
-automates the download, installation, and initial configuration of Guix.  It
-should be run as the root user.
-@end quotation
-
-@cindex distro extérieure
-@cindex répertoires liés aux distro extérieures
-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.
-
-Une fois installé, Guix peut être mis à jour en lançant @command{guix pull}
-(@pxref{Invoquer guix pull}).
-
-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.
-
-@menu
-* Installation binaire::     Commencer à utiliser Guix en un rien de temps 
-                               !
-* Prérequis::               Logiciels requis pour construire et lancer 
-                               Guix.
-* Lancer la suite de tests::  Tester Guix.
-* Paramétrer le démon::    Préparer l'environnement du démon de 
-                               construction.
-* Invoquer guix-daemon::     Lancer le démon de construction.
-* Réglages applicatifs::    Réglages spécifiques pour les application.
-@end menu
-
-@node Installation binaire
-@section Installation binaire
-
-@cindex installer Guix depuis les binaires
-@cindex script d'installation
-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.
-
-L'installation se comme ceci :
-
-@enumerate
-@item
-@cindex téléchargement du Guix binaire
-Téléchargez l'archive binaire depuis
-@indicateurl{https://alpha.gnu.org/gnu/guix/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.
-
-@c The following is somewhat duplicated in ``System Installation''.
-Assurez-vous de télécharger le fichier @file{.sig} associé et de vérifier
-l'authenticité de l'archive avec, comme ceci :
-
-@example
-$ wget https://alpha.gnu.org/gnu/guix/guix-binary-@value{VERSION}.@var{système}.tar.xz.sig
-$ gpg --verify guix-binary-@value{VERSION}.@var{système}.tar.xz.sig
-@end example
-
-Si cette commande échoue parce que vous n'avez pas la clef publique requise,
-lancez cette commande pour l'importer :
-
-@example
-$ gpg --keyserver @value{KEY-SERVER} \
-      --recv-keys @value{OPENPGP-SIGNING-KEY-ID}
-@end example
-
-@noindent
-@c end authentication part
-et relancez la commande @code{gpg --verify}.
-
-@item
-Maintenant, vous devez devenir l'utilisateur @code{root}.  En fonction de
-votre distribution, vous devrez lancer @code{su -} ou @code{sudo -i}.  En
-tant que @code{root}, lancez :
-
-@example
-# cd /tmp
-# tar --warning=no-timestamp -xf \
-     guix-binary-@value{VERSION}.@var{système}.tar.xz
-# mv var/guix /var/ && mv gnu /
-@end example
-
-Cela crée @file{/gnu/store} (@pxref{Le dépôt}) and @file{/var/guix}.  Ce
-deuxième dossier contient un profil prêt à être utilisé pour @code{root}
-(voir les étapes suivantes).
-
-Ne décompressez @emph{pas} l'archive sur un système Guix lancé car cela
-écraserait ses propres fichiers essentiels.
-
-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.
-
-@item
-Rendez le profil disponible sous @file{~root/.config/guix/current}, qui est
-l'emplacement où @command{guix pull} installera les mises à jour
-(@pxref{Invoquer guix pull}) :
-
-@example
-# mkdir -p ~root/.config/guix
-# ln -sf /var/guix/profiles/per-user/root/current-guix \
-         ~root/.config/guix/current
-@end example
-
-Sourcez @file{etc/profile} pour augmenter @code{PATH} et les autres
-variables d'environnement nécessaires :
-
-@example
-# GUIX_PROFILE="`echo ~root`/.config/guix/current" ; \
-  source $GUIX_PROFILE/etc/profile
-@end example
-
-@item
-Créez le groupe et les comptes utilisateurs pour les utilisateurs de
-construction comme expliqué plus loin (@pxref{Réglages de l'environnement de construction}).
-
-@item
-Lancez le démon et paramétrez-le pour démarrer automatiquement au démarrage.
-
-Si votre distribution hôte utilise le système d'initialisation systemd, cela
-peut se faire avec ces commandes :
-
-@c Versions of systemd that supported symlinked service files are not
-@c yet widely deployed, so we should suggest that users copy the service
-@c files into place.
-@c
-@c See this thread for more information:
-@c http://lists.gnu.org/archive/html/guix-devel/2017-01/msg01199.html
-
-@example
-# cp ~root/.config/guix/current/lib/systemd/system/guix-daemon.service \
-     /etc/systemd/system/
-# systemctl start guix-daemon && systemctl enable guix-daemon
-@end example
-
-Si votre distribution hôte utilise le système d'initialisation Upstart :
-
-@example
-# initctl reload-configuration
-# cp ~root/.config/guix/current/lib/upstart/system/guix-daemon.conf \
-     /etc/init/
-# start guix-daemon
-@end example
-
-Sinon, vous pouvez toujours démarrer le démon manuellement avec :
-
-@example
-# ~root/.config/guix/current/bin/guix-daemon \
-       --build-users-group=guixbuild
-@end example
-
-@item
-Rendez la commande @command{guix} disponible pour les autres utilisateurs
-sur la machine, par exemple avec :
-
-@example
-# mkdir -p /usr/local/bin
-# cd /usr/local/bin
-# ln -s /var/guix/profiles/per-user/root/current-guix/bin/guix
-@end example
-
-C'est aussi une bonne idée de rendre la version Info de ce manuel disponible
-ici :
-
-@example
-# mkdir -p /usr/local/share/info
-# cd /usr/local/share/info
-# for i in /var/guix/profiles/per-user/root/current-guix/share/info/* ;
-  do ln -s $i ; done
-@end example
-
-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).
-
-@item
-@cindex substituts, autorisations
-To use substitutes from @code{@value{SUBSTITUTE-SERVER}} or one of its
-mirrors (@pxref{Substituts}), authorize them:
-
-@example
-# guix archive --authorize < \
-     ~root/.config/guix/current/share/guix/@value{SUBSTITUTE-SERVER}.pub
-@end example
-
-@item
-Chaque utilisateur peut avoir besoin d'effectuer des étapes supplémentaires
-pour que leur environnement Guix soit prêt à être utilisé,
-@pxref{Réglages applicatifs}.
-@end enumerate
-
-Voilà, l'installation est terminée !
-
-Vous pouvez confirmer que Guix fonctionne en installant un paquet d'exemple
-dans le profil de root :
-
-@example
-# guix package -i hello
-@end example
-
-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}.
-
-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 :
-
-@example
-make guix-binary.@var{system}.tar.xz
-@end example
-
-@noindent
-...@: which, in turn, runs:
-
-@example
-guix pack -s @var{system} --localstatedir \
-  --profile-name=current-guix guix
-@end example
-
-@xref{Invoquer guix pack}, pour plus d'info sur cet outil pratique.
-
-@node Prérequis
-@section Prérequis
-
-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.
-
-@cindex site officiel
-GNU Guix is available for download from its website at
-@url{https://www.gnu.org/software/guix/}.
-
-GNU Guix dépend des paquets suivants :
-
-@itemize
-@item @url{http://gnu.org/software/guile/, GNU Guile}, version 2.2.x;
-@item @url{https://notabug.org/cwebber/guile-gcrypt, Guile-Gcrypt}, version
-0.1.0 ou supérieure,
-@item
-@uref{http://gnutls.org/, GnuTLS}, en particulier ses liaisons Guile
-(@pxref{Guile Preparations, how to install the GnuTLS bindings for Guile,,
-gnutls-guile, GnuTLS-Guile}),
-@item
-@uref{https://notabug.org/guile-sqlite3/guile-sqlite3, Guile-SQLite3},
-version 0.1.0 ou supérieure,
-@item
-@c FIXME: Specify a version number once a release has been made.
-@uref{https://gitlab.com/guile-git/guile-git, Guile-Git}, d'août 2017 ou
-ultérieur,
-@item @uref{https://savannah.nongnu.org/projects/guile-json/, Guile-JSON};
-@item @url{http://zlib.net, zlib},
-@item @url{http://www.gnu.org/software/make/, GNU Make}.
-@end itemize
-
-Les dépendances suivantes sont facultatives :
-
-@itemize
-@item
-@c Note: We need at least 0.10.2 for 'channel-send-eof'.
-Le support pour la décharge de construction (@pxref{Réglages du délestage du démon})
-et @command{guix copy}  (@pxref{Invoquer guix copy}) dépend de
-@uref{https://github.com/artyom-poptsov/guile-ssh, Guile-SSH}, version
-0.10.2 ou ultérieure.
-
-@item
-Lorsque @url{http://www.bzip.org, libbz2} est disponible,
-@command{guix-daemon} peut l'utiliser pour compresser les journaux de
-construction.
-@end itemize
-
-À moins que @code{--disable-daemon} ne soit passé à @command{configure}, les
-paquets suivants sont aussi requis :
-
-@itemize
-@item @url{http://gnupg.org/, GNU libgcrypt},
-@item @url{http://sqlite.org, SQLite 3},
-@item @url{http://gcc.gnu.org, GCC's g++}, avec le support pour le
-standard C++11.
-@end itemize
-
-@cindex répertoire d'état
-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{Le dépôt}).
-
-@cindex Nix, compatibilité
-Lorsque vous avez une installation fonctionnelle du
-@url{http://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.
-
-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.
-
-@node Lancer la suite de tests
-@section Lancer la suite de tests
-
-@cindex suite de tests
-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 :
-
-@example
-make check
-@end example
-
-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.
-
-Il est aussi possible de lancer un sous-ensemble des tests en définissant la
-variable makefile @code{TESTS} comme dans cet exemple :
-
-@example
-make check TESTS="tests/store.scm tests/cpio.scm"
-@end example
-
-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 :
-
-@example
-make check TESTS="tests/base64.scm" SCM_LOG_DRIVER_FLAGS="--brief=no"
-@end example
-
-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{Prérequis})
-dans votre message.
-
-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:
-
-@example
-make check-system
-@end example
-
-@noindent
-Ou, de nouveau, en définissant @code{TESTS} pour choisir un sous-ensemble
-des tests à lancer :
-
-@example
-make check-system TESTS="basic mcron"
-@end example
-
-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@.
-
-De nouveau, en cas d'échec, envoyez tous les détails à
-@email{bug-guix@@gnu.org}.
-
-@node Paramétrer le démon
-@section Paramétrer le démon
-
-@cindex démon
-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.
-
-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.
-
-@menu
-* Réglages de l'environnement de construction::  Préparer l'environnement 
-                                                    de construction isolé.
-* Réglages du délestage du démon::  Envoyer des constructions à des 
-                                         machines distantes.
-* Support de SELinux::       Utiliser une politique SELinux pour le démon.
-@end menu
-
-@node Réglages de l'environnement de construction
-@subsection Réglages de l'environnement de construction
-
-@cindex environnement de construction
-Dans une installation standard multi-utilisateurs, Guix et son démon — le
-programme @command{guix-daemon} — sont installé par l'administrateur système
-; @file{/gnu/store} appartient à @code{root} et @command{guix-daemon} est
-lancé en @code{root}.  Les utilisateurs non-privilégié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 utilisateurs.
-
-@cindex utilisateurs de construction
-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 d'@dfn{utilisateurs de construction}
-que les processus de construction démarrés par le démon utiliseront.  Ces
-utilisateurs 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 utilisateurs, 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}).
-
-Sur un système GNU/Linux, on peut créer une réserve d'utilisateurs de
-construction comme ceci (avec la syntaxe Bash et les commandes
-@code{shadow}) :
-
-@c See http://lists.gnu.org/archive/html/bug-guix/2013-01/msg00239.html
-@c for why `-G' is needed.
-@example
-# groupadd --system guixbuild
-# for i in `seq -w 1 10`;
-  do
-    useradd -g guixbuild -G guixbuild           \
-            -d /var/empty -s `which nologin`    \
-            -c "Utilisateur de construction Guix $i" --system    \
-            guixbuilder$i;
-  done
-@end example
-
-@noindent
-Le nombre d'utilisateurs 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{Invoquer guix-daemon,
-@option{--max-jobs}}).  Pour utiliser @command{guix system vm} et les
-commandes liées, vous devrez ajouter les utilisateurs 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{Invoquer guix system}).
-
-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}.} :
-
-@example
-# guix-daemon --build-users-group=guixbuild
-@end example
-
-@cindex chroot
-@noindent
-De cette façon, le démon démarre les processus de construction dans un
-chroot, sous un des utilisateurs @code{guixbuilder}.  Sur GNU/Linux par
-défaut, l'environnement chroot ne contient rien d'autre que :
-
-@c Keep this list in sync with libstore/build.cc! -----------------------
-@itemize
-@item
-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.} ;
-
-@item
-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 ;
-
-@item
-@file{/etc/passwd} avec une entrée pour l'utilisateur actuel et une entrée
-pour l'utilisateur @file{nobody} ;
-
-@item
-@file{/etc/group} avec une entrée pour le groupe de l'utilisateur ;
-
-@item
-@file{/etc/hosts} avec une entrée qui fait correspondre @code{localhost} à
-@code{127.0.0.1} ;
-
-@item
-un répertoire @file{/tmp} inscriptible.
-@end itemize
-
-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.
-
-@vindex http_proxy
-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{Dérivations}) ou pour les substituts (@pxref{Substituts}).
-
-Si vous installez Guix en tant qu'utilisateur non-privilégié, 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}.
-
-
-@node Réglages du délestage du démon
-@subsection Utiliser le dispositif de déchargement
-
-@cindex déchargement
-@cindex crochet de construction
-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 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éussi, les
-sorties de la construction sont copiés vers la machine de départ.
-
-Le fichier @file{/etc/guix/machines.scm} ressemble typiquement à cela :
-
-@example
-(list (build-machine
-        (name "eightysix.example.org")
-        (system "x86_64-linux")
-        (host-key "ssh-ed25519 AAAAC3Nza@dots{}")
-        (user "bob")
-        (speed 2.))     ;très rapide !
-
-      (build-machine
-        (name "meeps.example.org")
-        (system "mips64el-linux")
-        (host-key "ssh-rsa AAAAB3Nza@dots{}")
-        (user "alice")
-        (private-key
-         (string-append (getenv "HOME")
-                        "/.ssh/identity-for-guix"))))
-@end example
-
-@noindent
-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}.
-
-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.
-
-@deftp {Type de données} build-machine
-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 :
-
-@table @code
-
-@item name
-Le nom d'hôte de la machine distante.
-
-@item system
-Le type de système de la machine distante, p.@: ex.@: @code{"x86_64-linux"}.
-
-@item user
-Le compte utilisateur à 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.
-
-@item host-key
-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 :
-
-@example
-ssh-ed25519 AAAAC3NzaC@dots{}mde+UhL hint@@example.org
-@end example
-
-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}.
-
-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}) :
-
-@example
-$ lsh-export-key --openssh < /etc/lsh/host-key.pub 
-ssh-rsa AAAAB3NzaC1yc2EAAAAEOp8FoQAAAQEAs1eB46LV@dots{}
-@end example
-
-@end table
-
-Il y a un certain nombre de champs facultatifs que vous pouvez remplir :
-
-@table @asis
-
-@item @code{port} (par défaut : @code{22})
-Numéro de port du serveur SSH sur la machine.
-
-@item @code{private-key} (par défaut : @file{~root/.ssh/id_rsa})
-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.
-
-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.
-
-@item @code{compression} (par défaut : @code{"zlib@@openssh.com,zlib"})
-@itemx @code{compression-level} (par défaut : @code{3})
-Les méthodes de compression au niveau SSH et le niveau de compression
-demandé.
-
-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.
-
-@item @code{daemon-socket} (par défaut : @code{"/var/guix/daemon-socket/socket"})
-Le nom de fichier du socket Unix-domain sur lequel @command{guix-daemon}
-écoute sur cette machine.
-
-@item @code{parallel-builds} (par défaut : @code{1})
-Le nombre de constructions qui peuvent tourner simultanément sur la machine.
-
-@item @code{speed} (par défaut : @code{1.0})
-Un « facteur de vitesse relatif ».  L'ordonnanceur des constructions tendra
-à préférer les machines avec un plus grand facteur de vitesse.
-
-@item @code{features} (par défaut : @code{'()})
-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.
-
-@end table
-@end deftp
-
-The @command{guix} command must be in the search path on the build
-machines.  You can check whether this is the case by running:
-
-@example
-ssh build-machine guix repl --version
-@end example
-
-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{Invoquer guix archive}) :
-
-@example
-# guix archive --generate-key
-@end example
-
-@noindent
-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 :
-
-@example
-# guix archive --authorize < master-public-key.txt
-@end example
-
-@noindent
-De même, la machine maîtresse doit autoriser les clefs de chaque machine de
-construction.
-
-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.
-
-@cindex test du déchargement
-Pour tester que votre paramétrage fonctionne, lancez cette commande sur le
-nœud maître :
-
-@example
-# guix offload test
-@end example
-
-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.
-
-Si vous souhaitez tester un fichier de machines différent, spécifiez-le sur
-la ligne de commande :
-
-@example
-# guix offload test machines-qualif.scm
-@end example
-
-Enfin, vous pouvez tester un sous-ensemble de machines dont le nom
-correspond à une expression rationnelle comme ceci :
-
-@example
-# guix offload test machines.scm '\.gnu\.org$'
-@end example
-
-@cindex statut du déchargement
-Pour afficher la charge actuelle de tous les hôtes de construction, lancez
-cette commande sur le nœud principal :
-
-@example
-# guix offload status
-@end example
-
-
-@node Support de SELinux
-@subsection Support de SELinux
-
-@cindex SELinux, politique du démon
-@cindex contrôle d'accès obligatoire, SELinux
-@cindex sécurité, guix-daemon
-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.
-
-@subsubsection Installer la politique SELinux
-@cindex SELinux, installation de la politique
-Pour installer la politique, lancez cette commande en root :
-
-@example
-semodule -i etc/guix-daemon.cil
-@end example
-
-Puis ré-étiquetez le système de fichier avec @code{restorecon} ou par un
-mécanisme différent fournit par votre système.
-
-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 :
-
-@example
-ps -Zax | grep guix-daemon
-@end example
-
-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.
-
-@subsubsection Limitations
-@cindex SELinux, limites
-
-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.
-
-@enumerate
-@item
-@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.
-
-@item
-@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 l'utilisateur 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.
-
-@item
-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.
-
-@item
-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 utilisateur 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.
-
-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.
-@end enumerate
-
-@node Invoquer guix-daemon
-@section Invoquer @command{guix-daemon}
-
-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 :
-
-@example
-# guix-daemon --build-users-group=guixbuild
-@end example
-
-@noindent
-Pour des détails sur son paramétrage, @pxref{Paramétrer le démon}.
-
-@cindex chroot
-@cindex conteneur, environnement de construction
-@cindex environnement de construction
-@cindex constructions reproductibles
-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}).
-
-Lorsque le démon effectue une construction pour le compte de l'utilisateur,
-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}.
-
-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{Invoquer guix build,
-@option{--keep-failed}}).
-
-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{Invoquer guix processes} pour plus d'informations.
-
-Les options en ligne de commande suivantes sont disponibles :
-
-@table @code
-@item --build-users-group=@var{groupe}
-Prendre les utilisateurs de @var{group} pour lancer les processus de
-construction (@pxref{Paramétrer le démon, utilisateurs de construction}).
-
-@item --no-substitutes
-@cindex substituts
-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}).
-
-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{Le dépôt}).
-
-@item --substitute-urls=@var{urls}
-@anchor{daemon-substitute-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.
-
-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}).
-
-@cindex crochet de construction
-@item --no-build-hook
-Ne pas utiliser le @dfn{crochet de construction}.
-
-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{Réglages du délestage du démon}).
-
-@item --cache-failures
-Mettre les échecs de construction en cache.  Par défaut, seules les
-constructions réussies sont mises en cache.
-
-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{Invoquer guix gc}.
-
-@item --cores=@var{n}
-@itemx -c @var{n}
-Utiliser @var{n} cœurs CPU pour construire chaque dérivation ; @code{0}
-signifie autant que possible.
-
-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{Invoquer guix build}).
-
-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}.
-
-@item --max-jobs=@var{n}
-@itemx -M @var{n}
-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{Réglages du délestage du démon}) ou échouera.
-
-@item --max-silent-time=@var{secondes}
-Lorsque le processus de construction ou de substitution restent silencieux
-pendant plus de @var{secondes}, le terminer et rapporter une erreur de
-construction.
-
-La valeur par défaut est @code{0}, ce qui désactive le délai.
-
-La valeur spécifiée ici peut être modifiée par les clients (@pxref{Options de construction communes, @code{--max-silent-time}}).
-
-@item --timeout=@var{secondes}
-De même, lorsque le processus de construction ou de substitution dure plus
-de @var{secondes}, le terminer et rapporter une erreur de construction.
-
-La valeur par défaut est @code{0}, ce qui désactive le délai.
-
-La valeur spécifiée ici peut être modifiée par les clients (@pxref{Options de construction communes, @code{--timeout}}).
-
-@item --rounds=@var{N}
-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{Invoquer guix build}).
-
-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.
-
-@item --debug
-Produire une sortie de débogage.
-
-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{Invoquer guix build}).
-
-@item --chroot-directory=@var{rép}
-Ajouter @var{rép} au chroot de construction
-
-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.
-
-@item --disable-chroot
-Désactive les constructions dans un chroot.
-
-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 en tant
-qu'utilisateur non privilégié.
-
-@item --log-compression=@var{type}
-Compresser les journaux de construction suivant le @var{type}, parmi
-@code{gzip}, @code{bzip2} ou @code{none}.
-
-À 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.
-
-@item --disable-deduplication
-@cindex déduplication
-Désactiver la « déduplication » automatique des fichiers dans le dépôt.
-
-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.
-
-@item --gc-keep-outputs[=yes|no]
-Dire si le ramasse-miettes (GC) doit garder les sorties des dérivations
-utilisées.
-
-@cindex racines du GC
-@cindex racines du ramasse-miettes
-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{Invoquer guix gc} pour plus d'informations sur les
-racines du GC.
-
-@item --gc-keep-derivations[=yes|no]
-Dire si le ramasse-miettes (GC) doit garder les dérivations correspondant à
-des sorties utilisées.
-
-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 aux utilisateurs de garder une
-trace de l'origine des éléments du dépôt.  Le mettre à « no » préserve un
-peu d'espace disque.
-
-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.
-
-@item --impersonate-linux-2.6
-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.
-
-Cela peut être utile pour construire des programmes qui dépendent
-(généralement sans fondement) du numéro de version du noyau.
-
-@item --lose-logs
-Ne pas garder les journaux de construction.  Par défaut ils sont gardés dans
-@code{@var{localstatedir}/guix/log}.
-
-@item --system=@var{système}
-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}.
-
-@item --listen=@var{extrémité}
-É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 :
-
-@table @code
-@item --listen=/gnu/var/daemon
-Écouter les connexions sur le socket Unix-domain @file{/gnu/var/daemon} en
-le créant si besoin.
-
-@item --listen=localhost
-@cindex démon, accès distant
-@cindex accès distant au démon
-@cindex démon, paramètres de grappes
-@cindex grappes, paramètres du démon
-Écouter les connexions TCP sur l'interface réseau correspondant à
-@code{localhost} sur le port 44146.
-
-@item --listen=128.0.0.42:1234
-Écouter les connexions TCP sur l'interface réseau correspondant à
-@code{128.0.0.42} sur le port 1234.
-@end table
-
-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.  Les utilisateurs peuvent dire aux commandes clientes à quelle
-extrémité se connecter en paramétrant la variable d'environnement
-@code{GUIX_DAEMON_SOCKET} (@pxref{Le dépôt, @code{GUIX_DAEMON_SOCKET}}).
-
-@quotation Remarque
-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@.
-@end quotation
-
-Lorsque @code{--listen} est omis, @command{guix-daemon} écoute les
-connexions sur le socket Unix-domain situé à
-@file{@var{localstatedir}/guix/daemon-socket/socket}.
-@end table
-
-
-@node Réglages applicatifs
-@section Réglages applicatifs
-
-@cindex distro extérieure
-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.
-
-@subsection Régionalisation
-
-@anchor{locales-and-locpath}
-@cindex locales, when not on Guix System
-@vindex LOCPATH
-@vindex GUIX_LOCPATH
-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} :
-
-@example
-$ guix package -i glibc-locales
-$ export GUIX_LOCPATH=$HOME/.guix-profile/lib/locale
-@end example
-
-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.
-
-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 :
-
-@enumerate
-@item
-@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.
-
-@item
-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.
-@end enumerate
-
-Cela est important car le format des données linguistiques utilisés par
-différentes version de la libc peuvent être incompatibles.
-
-@subsection Name Service Switch
-
-@cindex name service switch, glibc
-@cindex NSS (name service switch), glibc
-@cindex nscd (name service caching daemon)
-@cindex name service caching daemon (nscd)
-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
-d'utilisateurs, ou même planter.  Les paragraphes suivants expliquent
-pourquoi.
-
-@cindex @file{nsswitch.conf}
-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 et plus (@pxref{Name Service Switch,,, libc, The GNU C Library Reference Manual}).
-
-@cindex Network information service (NIS)
-@cindex NIS (Network information service)
-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 utilisateurs 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})
-
-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).
-
-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.
-
-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.
-
-@subsection Polices X11
-
-@cindex polices
-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}.
-
-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{Des paquets avec plusieurs résultats}).  Par exemple, la commande
-suivante installe les polices pour le chinois :
-
-@example
-guix package -i font-adobe-source-han-sans:cn
-@end example
-
-@cindex @code{xterm}
-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 :
-
-@example
--*-dejavu sans-medium-r-normal-*-*-100-*-*-*-*-*-1
-@end example
-
-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 :
-
-@c Note: 'xset' does not accept symlinks so the trick below arranges to
-@c get at the real directory.  See <https://bugs.gnu.org/30655>.
-@example
-xset +fp $(dirname $(readlink -f ~/.guix-profile/share/fonts/truetype/fonts.dir))
-@end example
-
-@cindex @code{xlsfonts}
-Ensuite, vous pouvez lancer @code{xlsfonts} (du paquet @code{xlsfonts}) pour
-vous assurer que vos polices TrueType y sont listées.
-
-@cindex @code{fc-cache}
-@cindex cache de polices
-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}.
-
-@subsection Certificats X.509
-
-@cindex @code{nss-certs}
-Le paquet @code{nss-certs} fournit les certificats X.509 qui permettent aux
-programmes d'authentifier les serveurs web par HTTPS@.
-
-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{Certificats X.509}, pour des informations détaillées.
-
-@subsection Paquets emacs
-
-@cindex @code{emacs}
-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}).
-
-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}).
-
-@subsection La chaîne d'outils GCC
-
-@cindex GCC
-@cindex ld-wrapper
-
-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.
-
-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}.
-
-@c TODO What else?
-
-@c *********************************************************************
-@node Installation du système
-@chapter Installation du système
-
-@cindex installing Guix System
-@cindex Guix System, installation
-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}.
-
-@ifinfo
-@quotation Remarque
-@c This paragraph is for people reading this from tty2 of the
-@c installation image.
-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.
-
-Autrement, lancez @command{info info} dans un autre tty pour garder ce
-manuel ouvert.
-@end quotation
-@end ifinfo
-
-@menu
-* Limitations::              Ce à quoi vous attendre.
-* Considérations matérielles::  Matériel supporté.
-* Installation depuis une clef USB ou un DVD::  Préparer le média 
-                                                  d'installation.
-* Préparer l'installation::  Réseau, partitionnement, etc.
-* Effectuer l'installation::  Pour de vrai.
-* Installing Guix in a VM::  Guix System playground.
-* Construire l'image d'installation::  D'où vient tout cela.
-@end menu
-
-@node Limitations
-@section Limitations
-
-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}).
-
-Avant de procéder à l'installation, soyez conscient de ces limitations les
-plus importantes qui s'appliquent à la version @value{VERSION} :
-
-@itemize
-@item
-Le procédé d'installation n'a pas d'interface utilisateur graphique et
-requiert une certaine familiarité avec GNU/Linux (voir les sous-sections
-suivantes pour avoir un aperçu de ce que cela signifie).
-
-@item
-LVM (gestionnaire de volumes logiques) n'est pas supporté.
-
-@item
-De plus en plus de services systèmes sont fournis (@pxref{Services}) mais
-certains manquent toujours cruellement.
-
-@item
-More than 8,500 packages are available, but you might occasionally find that
-a useful package is missing.
-
-@item
-GNOME, Xfce, LXDE et Enlightenment sont disponibles (@pxref{Services de bureaux}), ainsi qu'un certain nombre de gestionnaires de fenêtres X11.
-cependant, certaines applications graphiques peuvent manquer, ainsi que KDE.
-@end itemize
-
-Vous êtes avertis ! Mais 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{Contribuer}, pour plus d'info.
-
-
-@node Considérations matérielles
-@section Considérations matérielles
-
-@cindex hardware support on Guix System
-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.
-
-@cindex WiFi, support matériel
-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{Référence de système d'exploitation,
-@code{firmware}}).
-
-@cindex RYF, Respects Your Freedom
-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.
-
-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.
-
-
-@node Installation depuis une clef USB ou un DVD
-@section Installation depuis une clef USB ou un DVD
-
-Une image d'installation ISO-9660 téléchargeable depuis
-@indicateurl{https://alpha.gnu.org/gnu/guix/guixsd-install-@value{VERSION}.@var{système}.iso.xz}
-peut être écrite sur une clef USB ou gravée sur un DVD, où @var{système} est
-l'une de ces valeurs :
-
-@table @code
-@item x86_64-linux
-pour un système GNU/Linux sur un CPU compatible Intel/AMD 64-bits ;
-
-@item i686-linux
-pour un système GNU/Linux sur un CPU compatible Intel 32-bits ;
-@end table
-
-@c start duplication of authentication part from ``Binary Installation''
-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 :
-
-@example
-$ wget https://alpha.gnu.org/gnu/guix/guixsd-install-@value{VERSION}.@var{system}.iso.xz.sig
-$ gpg --verify guixsd-install-@value{VERSION}.@var{system}.iso.xz.sig
-@end example
-
-Si cette commande échoue parce que vous n'avez pas la clef publique requise,
-lancez cette commande pour l'importer :
-
-@example
-$ gpg --keyserver @value{KEY-SERVER} \
-      --recv-keys @value{OPENPGP-SIGNING-KEY-ID}
-@end example
-
-@noindent
-@c end duplication
-et relancez la commande @code{gpg --verify}.
-
-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.
-
-@unnumberedsubsec Copie sur une clef USB
-
-Pour copier l'image sur une clef USB, suivez ces étapes :
-
-@enumerate
-@item
-Décompressez l'image avec la commande @command{xz} :
-
-@example
-xz -d guixsd-install-@value{VERSION}.@var{système}.iso.xz
-@end example
-
-@item
-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 :
-
-@example
-dd if=guixsd-install-@value{VERSION}.@var{system}.iso of=/dev/sdX
-sync
-@end example
-
-Accéder à @file{/dev/sdX} requiert généralement les privilèges
-super-utilisateur.
-@end enumerate
-
-@unnumberedsubsec Graver sur un DVD
-
-Pour copier l'image sur un DVD, suivez ces étapes :
-
-@enumerate
-@item
-Décompressez l'image avec la commande @command{xz} :
-
-@example
-xz -d guixsd-install-@value{VERSION}.@var{système}.iso.xz
-@end example
-
-@item
-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 :
-
-@example
-growisofs -dvd-compat -Z /dev/srX=guixsd-install-@value{VERSION}.@var{system}.iso
-@end example
-
-Accéder à @file{/dev/srX} requiert généralement les privilèges
-super-utilisateur.
-@end enumerate
-
-@unnumberedsubsec Démarrage
-
-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.
-
-@xref{Installing Guix in a VM}, if, instead, you would like to install Guix
-System in a virtual machine (VM).
-
-
-@node Préparer l'installation
-@section Préparer l'installation
-
-Once you have successfully booted your computer using the installation
-medium, you should end up with the welcome page of the graphical installer.
-The graphical installer is a text-based user interface built upon the newt
-library.  It shall guide you through all the different steps needed to
-install GNU@tie{}Guix System.  However, as the graphical installer is still
-under heavy development, you might want to fallback to the original, shell
-based install process, by switching to TTYs 3 to 6 with the shortcuts
-CTRL-ALT-F[3-6]. The following sections describe the installation procedure
-assuming you're using one of those TTYs. They are configured and can be used
-to run commands as root.
-
-TTY2 shows this documentation, 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.
-
-@quotation Remarque
-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.
-@end quotation
-
-The installation system includes many common tools needed for this task.
-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{Invoquer guix package}).
-
-@subsection Disposition du clavier
-
-@cindex disposition du clavier
-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 :
-
-@example
-loadkeys dvorak
-@end example
-
-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.
-
-@subsection Réseau
-
-Lancez la commande suivante pour voir comment vos interfaces réseau sont
-appelées :
-
-@example
-ifconfig -a
-@end example
-
-@noindent
-@dots{} ou, avec la commande spécifique à GNU/Linux @command{ip} :
-
-@example
-ip a
-@end example
-
-@c http://cgit.freedesktop.org/systemd/systemd/tree/src/udev/udev-builtin-net_id.c#n20
-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}.
-
-@table @asis
-@item Connexion filaire
-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.
-
-@example
-ifconfig @var{interface} up
-@end example
-
-@item Connexion sans-fil
-@cindex sans-fil
-@cindex WiFi
-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} :
-
-@example
-nano wpa_supplicant.conf
-@end example
-
-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 :
-
-@example
-network=@{
-  ssid="@var{mon-ssid}"
-  key_mgmt=WPA-PSK
-  psk="la phrase de passe secrète du réseau"
-@}
-@end example
-
-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) :
-
-@example
-wpa_supplicant -c wpa_supplicant.conf -i @var{interface} -B
-@end example
-
-Lancez @command{man wpa_supplicant} pour plus d'informations.
-@end table
-
-@cindex DHCP
-À 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 :
-
-@example
-dhclient -v @var{interface}
-@end example
-
-Essayez de pinger un serveur pour voir si le réseau fonctionne :
-
-@example
-ping -c 3 gnu.org
-@end example
-
-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.
-
-@cindex installer par SSH
-Si vous le souhaitez, vous pouvez continuer l'installation à distance en
-démarrant un serveur SSH :
-
-@example
-herd start ssh-daemon
-@end example
-
-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.
-
-@subsection Partitionnement
-
-À moins que vous ne l'ayez déjà fait, l'étape suivante consiste à
-partitionner le disque puis à formater les partitions cibles.
-
-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 :
-
-@example
-cfdisk
-@end example
-
-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}).
-
-@cindex EFI, installation
-@cindex UEFI, installation
-@cindex ESP, partition système EFI
-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}:
-
-@example
-parted /dev/sda set 1 esp on
-@end example
-
-@quotation Remarque
-@vindex grub-bootloader
-@vindex grub-efi-bootloader
-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{Configuration du chargeur d'amorçage} pour plus
-d'information sur le chargeur d'amorçage.
-@end quotation
-
-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:
-
-@example
-mkfs.fat -F32 /dev/sda1
-@end example
-
-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{Systèmes de fichiers}).  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 :
-
-@example
-mkfs.ext4 -L my-root /dev/sda2
-@end example
-
-@cindex chiffrement du disque
-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 :
-
-@example
-cryptsetup luksFormat /dev/sda2
-cryptsetup open --type luks /dev/sda2 my-partition
-mkfs.ext4 -L my-root /dev/mapper/my-partition
-@end example
-
-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) :
-
-@example
-mount LABEL=my-root /mnt
-@end example
-
-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.
-
-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 :
-
-@example
-mkswap /dev/sda3
-swapon /dev/sda3
-@end example
-
-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}.} :
-
-@example
-# Cela représente 10 Gio d'espace d'échange. Ajustez « count » pour changer la taille.
-dd if=/dev/zero of=/mnt/swapfile bs=1MiB count=10240
-# Par sécurité, laissez le fichier en lecture et en écriture uniquement pour root.
-chmod 600 /mnt/swapfile
-mkswap /mnt/swapfile
-swapon /mnt/swapfile
-@end example
-
-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.
-
-@node Effectuer l'installation
-@section Effectuer l'installation
-
-Lorsque la partition cible est prête et que les autres partitions sont
-montées, on est prêt à commencer l'installation.  Commencez par :
-
-@example
-herd start cow-store /mnt
-@end example
-
-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.
-
-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.
-
-@xref{Utiliser le système de configuration}, 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 :
-
-@example
-# mkdir /mnt/etc
-# cp /etc/configuration/desktop.scm /mnt/etc/config.scm
-# nano /mnt/etc/config.scm
-@end example
-
-Vous devriez faire attention à ce que contient votre fichier de
-configuration, en particulier :
-
-@itemize
-@item
-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-sytem} entry is specified in your configuration.
-
-@item
-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}.
-
-@item
-Si vous avez des partitions RAID ou chiffrées, assurez-vous d'ajouter un
-champ @code{mapped-device} pour les décrire (@pxref{Périphériques mappés}).
-@end itemize
-
-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}) :
-
-@example
-guix system init /mnt/etc/config.scm /mnt
-@end example
-
-@noindent
-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{Invoquer guix system}.  Cette commande peut engendrer des téléchargements ou des
-constructions pour les paquets manquants, ce qui peut prendre du temps.
-
-Une fois que cette commande a terminée — 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
-utilisateurs 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 utilisateurs}).
-
-@cindex upgrading Guix System
-From then on, you can update the system whenever you want by running, say:
-
-@example
-guix pull
-sudo guix system reconfigure /etc/config.scm
-@end example
-
-@noindent
-This builds a new system generation with the latest packages and services
-(@pxref{Invoquer guix system}).  We recommend doing that regularly so that
-your system includes the latest security updates (@pxref{Mises à jour de sécurité}).
-
-@c See <https://lists.gnu.org/archive/html/guix-devel/2019-01/msg00268.html>.
-@quotation Remarque
-@cindex sudo vs. @command{guix pull}
-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{}}.
-@end quotation
-
-Join us on @code{#guix} on the Freenode IRC network or on
-@email{guix-devel@@gnu.org} to share your experience---good or not so good.
-
-@node Installing Guix in a VM
-@section Installing Guix in a Virtual Machine
-
-@cindex virtual machine, Guix System installation
-@cindex serveur privé virtuel (VPS)
-@cindex VPS (serveur privé virtuel)
-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.
-
-To boot a @uref{http://qemu.org/,QEMU} VM for installing Guix System in a
-disk image, follow these steps:
-
-@enumerate
-@item
-First, retrieve and decompress the Guix system installation image as
-described previously (@pxref{Installation depuis une clef USB ou un DVD}).
-
-@item
-Créez une image disque qui contiendra le système installé.  Pour créer une
-image qcow2, utilise la commande @command{qemu-img} :
-
-@example
-qemu-img create -f qcow2 guixsd.img 50G
-@end example
-
-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.
-
-@item
-Démarrez l'image d'installation USB dans une VM :
-
-@example
-qemu-system-x86_64 -m 1024 -smp 1 \
-  -net user -net nic,model=virtio -boot menu=on \
-  -drive file=guixsd-install-@value{VERSION}.@var{system}.iso \
-  -drive file=guixsd.img
-@end example
-
-L'ordre des périphérique est important
-
-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.
-
-@item
-Vous êtes maintenant root dans la VM, continuez en suivant la procédure
-d'installation.  @xref{Préparer l'installation}, et suivez les
-instructions.
-@end enumerate
-
-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.
-
-@node Construire l'image d'installation
-@section Construire l'image d'installation
-
-@cindex image d'installation
-L'image d'installation décrite plus haut a été construite avec la commande
-@command{guix system}, plus précisément :
-
-@example
-guix system disk-image --file-system-type=iso9660 \
-  gnu/system/install.scm
-@end example
-
-Regardez le fichier @file{gnu/system/install.scm} dans l'arborescence des
-sources et regardez aussi @ref{Invoquer guix system} pour plus
-d'informations sur l'image d'installation.
-
-@section Construire l'image d'installation pour les cartes ARM
-
-De nombreuses cartes ARM requièrent une variante spécifique du chargeur
-d'amorçage @uref{http://www.denx.de/wiki/U-Boot/, U-Boot}.
-
-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 :
-
-@example
-guix system disk-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} est le nom de la carte.  Si vous spécifiez une
-carte invalide, une liste de cartes possibles sera affichée.
-
-@c *********************************************************************
-@node Gestion de paquets
-@chapter Gestion de paquets
-
-@cindex paquets
-Le but de GNU Guix est de permettre à ses 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.
-
-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) :
-
-@example
-guix package -i emacs-guix
-@end example
-
-@menu
-* Fonctionnalités::         Comment Guix va rendre votre vie plus heureuse.
-* Invoquer guix package::    Installation, suppression, etc.@: de paquets.
-* Substituts::               Télécharger des binaire déjà construits.
-* Des paquets avec plusieurs résultats::  Un seul paquet source, plusieurs 
-                                             résultats.
-* Invoquer guix gc::         Lancer le ramasse-miettes.
-* Invoquer guix pull::       Récupérer la dernière version de Guix et de 
-                               la distribution.
-* Canaux::                   Personnaliser la collection des paquets.
-* Inférieurs::              Interagir avec une autre révision de Guix.
-* Invoquer guix describe::   Affiche des informations sur la révision Guix 
-                               actuelle.
-* Invoquer guix archive::    Exporter et importer des fichiers du dépôt.
-@end menu
-
-@node Fonctionnalités
-@section Fonctionnalités
-
-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.
-
-Plutôt que de se rapporter à ces répertoires, les utilisateurs ont leur
-propre @dfn{profil} qui pointe vers les paquets qu'ils veulent vraiment
-utiliser.  Ces profils sont stockés dans le répertoire personnel de chaque
-utilisateur dans @code{$HOME/.guix-profile}.
-
-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.
-
-La commande @command{guix package} est l'outil central pour gérer les
-paquets (@pxref{Invoquer guix package}).  Il opère sur les profils
-utilisateurs et peut être utilisé avec les @emph{privilèges utilisateurs
-normaux}.
-
-@cindex transactions
-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éussi, 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 de
-l'utilisateur reste dans son état précédent et reste utilisable.
-
-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{Utiliser le système de configuration}).
-
-Tous les paquets 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
-utilisateurs et supprimer ceux qui ne sont plus référencés de manière
-prouvable (@pxref{Invoquer guix gc}).  Les utilisateurs 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.
-
-@cindex reproductibilité
-@cindex constructions reproductibles
-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 utilisateurs 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 à de
-forte chances de donner des fichiers identiques bit-à-bit lorsqu'elle est
-effectuée sur des machines différents (@pxref{Invoquer guix-daemon,
-container}).
-
-@cindex substituts
-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{Invoquer guix challenge}).
-
-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{Invoquer guix environment}).
-
-@cindex réplication, des environnements logiciels
-@cindex suivi de la provenance, des artefacts logiciels
-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{Invoquer 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.
-
-@node Invoquer guix package
-@section Invoquer @command{guix package}
-
-@cindex installer des paquets
-@cindex supprimer des paquets
-@cindex installation de paquets
-@cindex suppression de paquets
-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
-et fonctionne avec les privilèges utilisateurs normaux
-(@pxref{Fonctionnalités}).  Sa syntaxe est :
-
-@example
-guix package @var{options}
-@end example
-@cindex transactions
-@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
-souhaite y revenir.
-
-Par exemple, pour supprimer @code{lua} et installer @code{guile} et
-@code{guile-cairo} en une seule transaction :
-
-@example
-guix package -r lua -i guile guile-cairo
-@end example
-
-@command{guix package} supporte aussi une @dfn{approche déclarative} où
-l'utilisateur spécifie l'ensemble exact des paquets qui doivent être
-disponibles le passe @i{via} l'option @option{--manifest}
-(@pxref{profile-manifest, @option{--manifest}}).
-
-@cindex profil
-Pour chaque utilisateur, un lien symbolique vers le profil par défaut de cet
-utilisateur est automatiquement créé dans @file{$HOME/.guix-profile}.  Ce
-lien symbolique pointe toujours vers la génération actuelle du profil par
-défaut de l'utilisateur.  Ainsi, les utilisateurs peuvent ajouter
-@file{$HOME/.guix-profile/bin} à leur variable d'environnement @code{PATH}
-etc.
-@cindex chemins de recherche
-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 les bonnes définitions des variables d'environnement :
-
-@example
-GUIX_PROFILE="$HOME/.guix-profile" ; \
-source "$HOME/.guix-profile/etc/profile"
-@end example
-
-Dans un environnement multi-utilisateur, les profils utilisateurs sont
-stockés comme une @dfn{racine du ramasse-miettes}, vers laquelle pointe
-@file{$HOME/.guix-profile} (@pxref{Invoquer guix gc}).  Ce répertoire est
-normalement
-@code{@var{localstatedir}/guix/profiles/per-user/@var{utilisateur}},  où
-@var{localstatedir} est la valeur passée à @code{configure} avec
-@code{--localstatedir} et @var{utilisateur} le nom d'utilisateur.  Le
-répertoire @file{per-user} est créé lorsque @command{guix-daemon} est
-démarré et sous-répertoire @var{utilisateur} est créé par @command{guix
-package}.
-
-Les @var{options} peuvent être les suivante :
-
-@table @code
-
-@item --install=@var{paquet} @dots{}
-@itemx -i @var{paquet} @dots{}
-Installer les @var{paquet}s spécifiés.
-
-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).
-
-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{Des paquets avec plusieurs résultats}).  Des
-paquets avec un nom correspondant et (éventuellement une version) sont
-recherchés dans les modules de la distribution GNU (@pxref{Modules de paquets}).
-
-@cindex entrées propagées
-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).
-
-@anchor{package-cmd-propagated-inputs}
-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.
-
-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.
-
-@item --install-from-expression=@var{exp}
-@itemx -e @var{exp}
-Installer le paquet évalué par @var{exp}
-
-@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)}.
-
-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.
-
-@item --install-from-file=@var{fichier}
-@itemx -f @var{fichier}
-Installer le paquet évalué par le code dans le @var{fichier}.
-
-Par exemple, @var{fichier} peut contenir une définition comme celle-ci
-(@pxref{Définition des paquets}) :
-
-@example
-@verbatiminclude package-hello.scm
-@end example
-
-Les développeurs peuvent trouver utile d'inclure un tel fichier
-@file{guix.scm} à la racine de l'arborescence des sources de leur projet qui
-pourrait être utilisé pour tester des versions de développement et créer des
-environnements de développement reproductibles (@pxref{Invoquer guix environment}).
-
-@item --remove=@var{paquet} @dots{}
-@itemx -r @var{paquet} @dots{}
-Supprimer les @var{paquet}s spécifiés.
-
-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}.
-
-@item --upgrade[=@var{regexp} @dots{}]
-@itemx -u [@var{regexp} @dots{}]
-@cindex mettre à jour des paquets
-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.
-
-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{Invoquer guix pull}).
-
-@item --do-not-upgrade[=@var{regexp} @dots{}]
-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 » :
-
-@example
-$ guix package --upgrade . --do-not-upgrade emacs
-@end example
-
-@item @anchor{profile-manifest}--manifest=@var{fichier}
-@itemx -m @var{fichier}
-@cindex déclaration de profil
-@cindex manifest de profil
-Créer une nouvelle génération du profil depuis l'objet manifeste renvoyé par
-le code Scheme dans @var{fichier}.
-
-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.
-
-@c FIXME: Add reference to (guix profile) documentation when available.
-@var{fichier} doit retourner un objet @dfn{manifest} qui est en gros une
-liste de paquets :
-
-@findex packages->manifest
-@example
-(use-package-modules guile emacs)
-
-(packages->manifest
- (list emacs
-       guile-2.0
-       ;; Utiliser une sortie spécifique d'un paquet.
-       (list guile-2.0 "debug")))
-@end example
-
-@findex specifications->manifest
-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 :
-
-@example
-(specifications->manifest
- '("emacs" "guile@@2.2" "guile@@2.2:debug"))
-@end example
-
-@item --roll-back
-@cindex revenir en arrière
-@cindex défaire des transactions
-@cindex transactions, défaire
-Revenir à la @dfn{génération} précédente du profil c.-à-d.@: défaire la
-dernière transaction.
-
-Lorsqu'elle est combinée avec des options comme @code{--install}, cette
-option revient en arrière avant toute autre action.
-
-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.
-
-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.
-
-@item --switch-generation=@var{motif}
-@itemx -S @var{motif}
-@cindex générations
-Basculer vers une génération particulière définie par le @var{motif}.
-
-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}.
-
-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.
-
-@item --search-paths[=@var{genre}]
-@cindex chemins de recherche
-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.
-
-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 (@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.
-
-Le cas d'utilisation typique est de définir ces variables d'environnement
-dans le shell :
-
-@example
-$ eval `guix package --search-paths`
-@end example
-
-@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}.
-
-Cette option peut aussi être utilisé pour calculer les chemins de recherche
-@emph{combinés} de plusieurs profils.  Regardez cet exemple :
-
-@example
-$ guix package -p foo -i guile
-$ guix package -p bar -i guile-json
-$ guix package -p foo -p bar --search-paths
-@end example
-
-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.
-
-
-@item --profile=@var{profil}
-@itemx -p @var{profil}
-Utiliser le @var{profil} à la place du profil par défaut de l'utilisateur.
-
-@cindex collisions, dans un profil
-@cindex faire des collisions de paquets dans des profils
-@cindex profil, collisions
-@item --allow-collisions
-Permettre des collisions de paquets dans le nouveau profil.  À utiliser à
-vos risques et périls !
-
-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.
-
-@item --bootstrap
-Utiliser le programme d'amorçage Guile pour compiler le profil.  Cette
-option n'est utile que pour les développeurs de la distribution.
-
-@end table
-
-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 :
-
-@table @option
-
-@item --search=@var{regexp}
-@itemx -s @var{regexp}
-@cindex chercher des paquets
-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}).
-
-Cela permet à des champs spécifiques d'être extraits avec la commande
-@command{recsel}, par exemple :
-
-@example
-$ guix package -s malloc | recsel -p name,version,relevance
-name: jemalloc
-version: 4.5.0
-relevance: 6
-
-name: glibc
-version: 2.25
-relevance: 1
-
-name: libgc
-version: 7.6.0
-relevance: 1
-@end example
-
-De manière similaire, pour montrer le nom de tous les paquets disponibles
-sous license GNU@tie{}LGPL version 3 :
-
-@example
-$ guix package -s "" | recsel -p name -e 'license ~ "LGPL 3"'
-name: elfutils
-
-name: gmp
-@dots{}
-@end example
-
-Il est aussi possible de raffiner les résultats de la recherche avec
-plusieurs options @code{-s}.  Par exemple, la commande suivante renvoie la
-liste des jeux de plateau :
-
-@example
-$ guix package -s '\<board\>' -s game | recsel -p name
-name: gnubg
-@dots{}
-@end example
-
-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}).
-
-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 :
-
-@example
-$ guix package -s crypto -s library | \
-    recsel -e '! (name ~ "^(ghc|perl|python|ruby)")' -p name,synopsis
-@end example
-
-@noindent
-@xref{Selection Expressions,,, recutils, GNU recutils manual} pour plus
-d'information sur les @dfn{expressions de sélection} pour @code{recsel -e}.
-
-@item --show=@var{paquet}
-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}).
-
-@example
-$ guix package --show=python | recsel -p name,version
-name: python
-version: 2.7.6
-
-name: python
-version: 3.3.5
-@end example
-
-Vous pouvez aussi spécifier le nom complet d'un paquet pour n'avoir que les
-détails concernant une version spécifique :
-@example
-$ guix package --show=python@@3.4 | recsel -p name,version
-name: python
-version: 3.4.3
-@end example
-
-
-
-@item --list-installed[=@var{regexp}]
-@itemx -I [@var{regexp}]
-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}.
-
-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.
-
-@item --list-available[=@var{regexp}]
-@itemx -A [@var{regexp}]
-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}.
-
-Pour chaque paquet, affiche les éléments suivants séparés par des
-tabulations : son nom, sa version, les parties du paquet (@pxref{Des paquets avec plusieurs résultats}), et l'emplacement de sa définition.
-
-@item --list-generations[=@var{motif}]
-@itemx -l [@var{motif}]
-@cindex générations
-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.
-
-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{Des paquets avec plusieurs résultats}), et l'emplacement du
-paquet dans le dépôt.
-
-Lorsque @var{motif} est utilisé, la commande ne renvoie que les générations
-correspondantes.  Les motifs valides sont :
-
-@itemize
-@item @emph{Des entiers et des entiers séparés par des virgules}.  Les deux motifs correspondent
-à des numéros de version.  Par exemple, @code{--list-generations=1} renvoie
-la première.
-
-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.
-
-@item @emph{Des intervalles}.  @code{--list-generations=2..9} affiche les
-générations demandées et tout ce qui se trouvent entre elles.  Remarquez que
-le début d'un intervalle doit être plus petit que sa fin.
-
-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.
-
-@item @emph{Des durées}.  Vous pouvez aussi récupérer les derniers @emph{N}@tie{}jours, semaines,
-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.
-@end itemize
-
-@item --delete-generations[=@var{motif}]
-@itemx -d [@var{motif}]
-Lorsque @var{motif} est omis, supprimer toutes les générations en dehors de
-l'actuelle.
-
-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.
-
-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.
-
-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.
-
-@end table
-
-Enfin, comme @command{guix package} peut démarrer des processus de
-construction, elle supporte les options de construction communes
-(@pxref{Options de construction communes}).   Elle supporte aussi les options de
-transformation de paquets comme @option{--with-source} (@pxref{Options de transformation de paquets}).  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{Définition des paquets}).
-
-@node Substituts
-@section Substituts
-
-@cindex substituts
-@cindex binaires pré-construits
-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.
-
-Les substituts peuvent être tout ce qui résulte d'une construction de
-dérivation (@pxref{Dérivations}).  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.
-
-@menu
-* Serveur de substituts officiel::  Une source particulière de substituts.
-* Autoriser un serveur de substituts::  Comment activer ou désactiver les 
-                                          substituts.
-* Authentification des substituts::  Comment Guix vérifie les substituts.
-* Paramètres de serveur mandataire::  Comment récupérer des substituts à 
-                                         travers un serveur mandataire.
-* Échec de substitution::   Qu'arrive-t-il quand la substitution échoue.
-* De la confiance en des binaires::  Comment pouvez-vous avoir confiance en 
-                                       un paquet binaire ?
-@end menu
-
-@node Serveur de substituts officiel
-@subsection Serveur de substituts officiel
-
-@cindex hydra
-@cindex ferme de construction
-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}).
-
-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.
-
-Les substituts de la ferme de construction officielle sont activés par
-défaut dans la distribution système Guix (@pxref{Distribution GNU}).
-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
-de la ferme de construction ; la même procédure peut être utilisée pour
-activer les substituts de n'importe quel autre serveur de substituts.
-
-@node Autoriser un serveur de substituts
-@subsection Autoriser un serveur de substituts
-
-@cindex sécurité
-@cindex substituts, autorisations
-@cindex liste de contrôle d'accès (ACL), pour les substituts
-@cindex ACL (liste de contrôle d'accès), pour les substituts
-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{Invoquer guix archive}).  Doing so implies that you trust
-@code{@value{SUBSTITUTE-SERVER}} to not be compromised and to serve genuine
-substitutes.
-
-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:
-
-@example
-# guix archive --authorize < @var{prefix}/share/guix/@value{SUBSTITUTE-SERVER}.pub
-@end example
-
-@quotation Remarque
-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}.
-@end quotation
-
-Une fois que cela est en place, la sortie d'une commande comme @code{guix
-build} devrait changer de quelque chose comme :
-
-@example
-$ guix build emacs --dry-run
-Les dérivations suivantes seraient construites :
-   /gnu/store/yr7bnx8xwcayd6j95r2clmkdl1qh688w-emacs-24.3.drv
-   /gnu/store/x8qsh1hlhgjx6cwsjyvybnfv2i37z23w-dbus-1.6.4.tar.gz.drv
-   /gnu/store/1ixwp12fl950d15h2cj11c73733jay0z-alsa-lib-1.0.27.1.tar.bz2.drv
-   /gnu/store/nlma1pw0p603fpfiqy7kn4zm105r5dmw-util-linux-2.21.drv
-@dots{}
-@end example
-
-@noindent
-à quelque chose comme :
-
-@example
-$ guix build emacs --dry-run
-112.3 Mo seraient téléchargés :
-   /gnu/store/pk3n22lbq6ydamyymqkkz7i69wiwjiwi-emacs-24.3
-   /gnu/store/2ygn4ncnhrpr61rssa6z0d9x22si0va3-libjpeg-8d
-   /gnu/store/71yz6lgx4dazma9dwn2mcjxaah9w77jq-cairo-1.12.16
-   /gnu/store/7zdhgp0n1518lvfn8mb96sxqfmvqrl7v-libxrender-0.9.7
-@dots{}
-@end example
-
-@noindent
-This indicates that substitutes from @code{@value{SUBSTITUTE-SERVER}} are
-usable and will be downloaded, when possible, for future builds.
-
-@cindex substituts, comment les désactiver
-Le mécanisme de substitution peut être désactivé globalement en lançant
-@code{guix-daemon} avec @code{--no-substitutes} (@pxref{Invoquer 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.
-
-@node Authentification des substituts
-@subsection Authentification des substituts
-
-@cindex signatures numériques
-Guix détecte et lève une erreur lorsqu'il essaye d'utiliser un substituts
-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és dans l'ACL.
-
-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 :
-
-@example
---substitute-urls="https://a.example.org https://b.example.org"
-@end example
-
-@noindent
-@cindex constructions reproductibles
-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).
-
-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).
-
-@node Paramètres de serveur mandataire
-@subsection Paramètres de serveur mandataire
-
-@vindex http_proxy
-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}.
-
-@node Échec de substitution
-@subsection Échec de substitution
-
-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.
-
-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{option de repli,, 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é.
-
-Pour se donner une idée du nombre de substituts disponibles maintenant, vous
-pouvez essayer de lancer la commande @command{guix weather} (@pxref{Invoquer guix weather}).  Cette command fournit des statistiques sur les substituts
-fournis par un serveur.
-
-@node De la confiance en des binaires
-@subsection De la confiance en des binaires
-
-@cindex confiance, en des binaires pré-construits
-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{Invoquer guix publish}).
-
-Guix possède les fondations pour maximiser la reproductibilité logicielle
-(@pxref{Fonctionnalités}).  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 utilisateurs à tester les serveurs de substituts et à aider les
-développeurs à trouver les constructions de paquets non-déterministes
-(@pxref{Invoquer guix challenge}).  De même, l'option @option{--check} de
-@command{guix build} permet aux utilisateurs de vérifier si les substituts
-précédemment installés sont authentiques en les reconstruisant localement
-(@pxref{vérification de la construction, @command{guix build --check}}).
-
-Dans le futur, nous aimerions que Guix puisse publier et recevoir des
-binaires d'autres utilisateurs, d'une manière pair-à-pair.  Si vous voulez
-discuter de ce projet, rejoignez-nous sur @email{guix-devel@@gnu.org}.
-
-@node Des paquets avec plusieurs résultats
-@section Des paquets avec plusieurs résultats
-
-@cindex paquets avec plusieurs résultats
-@cindex sorties de paquets
-@cindex sorties
-
-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 package -i 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 particuliers, 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.
-
-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 :
-
-@example
-guix package -i glib
-@end example
-
-@cindex documentation
-La commande pour installer la documentation est :
-
-@example
-guix package -i glib:doc
-@end example
-
-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{Invoquer guix size}). @command{guix graph} peut aussi être utile (@pxref{Invoquer guix graph}).
-
-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{Installer les fichiers de débogage}).   Les sorties d'un paquet sont listés
-dans la troisième colonne de la sortie de @command{guix package
---list-available} (@pxref{Invoquer guix package}).
-
-
-@node Invoquer guix gc
-@section Invoquer @command{guix gc}
-
-@cindex ramasse-miettes
-@cindex espace disque
-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 !
-
-@cindex racines du GC
-@cindex racines du ramasse-miettes
-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{Invoquer guix build}).
-
-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{Invoquer guix package}).
-
-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 :
-
-@example
-guix gc -F 5G
-@end example
-
-It is perfectly safe to run as a non-interactive periodic job
-(@pxref{Exécution de tâches planifiées}, 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.
-
-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 :
-
-@table @code
-@item --collect-garbage[=@var{min}]
-@itemx -C [@var{min}]
-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.
-
-Lorsque @var{min} est donné, s'arrêter une fois que @var{min} octets ont été
-collectés.  @var{min} pour ê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}).
-
-Lorsque @var{min} est omis, tout glaner.
-
-@item --free-space=@var{libre}
-@itemx -F @var{libre}
-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.
-
-Lorsque @var{libre} ou plus est disponible dans @file{/gnu/store} ne rien
-faire et s'arrêter immédiatement.
-
-@item --delete
-@itemx -d
-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.
-
-@item --list-failures
-Lister les éléments du dépôt qui correspondent à des échecs de construction
-
-Cela n'affiche rien à moins que le démon n'ait été démarré avec
-@option{--cache-failures} (@pxref{Invoquer guix-daemon,
-@option{--cache-failures}}).
-
-@item --clear-failures
-Supprimer les éléments du dépôt spécifiés du cache des constructions
-échouées.
-
-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.
-
-@item --list-dead
-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.
-
-@item --list-live
-Montrer la liste des fichiers et des répertoires du dépôt utilisés.
-
-@end table
-
-En plus, les références entre les fichiers existants du dépôt peuvent être
-demandés :
-
-@table @code
-
-@item --references
-@itemx --referrers
-@cindex dépendances des paquets
-Lister les références (respectivement les référents) des fichiers du dépôt
-en argument.
-
-@item --requisites
-@itemx -R
-@cindex closure
-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.
-
-@xref{Invoquer guix size} pour un outil pour surveiller la taille de la
-closure d'un élément.  @xref{Invoquer guix graph} pour un outil pour
-visualiser le graphe des références.
-
-@item --derivers
-@cindex dérivation
-Renvoie les dérivations menant aux éléments du dépôt donnés
-(@pxref{Dérivations}).
-
-Par exemple cette commande :
-
-@example
-guix gc --derivers `guix package -I ^emacs$ | cut -f4`
-@end example
-
-@noindent
-renvoie les fichiers @file{.drv} menant au paquet @code{emacs} installé dans
-votre profil.
-
-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.
-@end table
-
-Enfin, les options suivantes vous permettent de vérifier l'intégrité du
-dépôt et de contrôler l'utilisation du disque.
-
-@table @option
-
-@item --verify[=@var{options}]
-@cindex intégrité, du dépôt
-@cindex vérification d'intégrité
-Vérifier l'intégrité du dépôt.
-
-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}.
-
-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}.
-
-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.
-
-@cindex réparer le dépôt
-@cindex corruption, récupérer de
-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{Invoquer guix build}).
-
-@item --optimize
-@cindex déduplication
-Optimiser le dépôt en liant en dur les fichiers identiques — c'est la
-@dfn{déduplication}.
-
-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{Invoquer guix-daemon,
-@code{--disable-deduplication}}).  Ainsi, cette option est surtout utile
-lorsque le démon tourne avec @code{--disable-deduplication}.
-
-@end table
-
-@node Invoquer guix pull
-@section Invoquer @command{guix pull}
-
-@cindex mettre à niveau Guix
-@cindex mettre à jour Guix
-@cindex @command{guix pull}
-@cindex pull
-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é.
-
-À 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.
-
-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 vois @code{alice} et
-vice-versa
-
-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}) :
-
-@example
-export PATH="$HOME/.config/guix/current/bin:$PATH"
-export INFOPATH="$HOME/.config/guix/current/share/info:$INFOPATH"
-@end example
-
-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 :
-
-@example
-$ guix pull -l
-Génération 1	10 juin 2018 00:18:18
-  guix 65956ad
-    URL du dépôt : https://git.savannah.gnu.org/git/guix.git
-    branche : origin/master
-    commit : 65956ad3526ba09e1f7a40722c96c6ef7c0936fe
-
-Génération 2	11 juin 2018 11:02:49
-  guix e0cc7f6
-    URL du dépôt : https://git.savannah.gnu.org/git/guix.git
-    branche : origin/master
-    commit : e0cc7f669bec22c37481dd03a7941c7d11a64f1d
-  2 nouveaux paquets : keepalived, libnfnetlink
-  6 paquets mis à jour : emacs-nix-mode@@2.0.4,
-    guile2.0-guix@@0.14.0-12.77a1aac, guix@@0.14.0-12.77a1aac,
-    heimdal@@7.5.0, milkytracker@@1.02.00, nix@@2.0.4
-
-Génération 3	13 juin 2018 23:31:07	(actuelle)
-  guix 844cc1c
-    URL du dépôt : https://git.savannah.gnu.org/git/guix.git
-    branche : origin/master
-    commit : 844cc1c8f394f03b404c5bb3aee086922373490c
-  28 nouveaux paquets : emacs-helm-ls-git, emacs-helm-mu, @dots{}
-  69 paquets mis à jour : borg@@1.1.6, cheese@@3.28.0, @dots{}
-@end example
-
-@ref{Invoquer guix describe, @command{guix describe}} pour d'autres manières
-de décrire le statut actuel de Guix.
-
-Ce profil @code{~/.config/guix/current} fonctionne comme les autres profils
-créés par @command{guix package} (@pxref{Invoquer 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 :
-
-@example
-$ guix package -p ~/.config/guix/current --roll-back
-passé de la génération 3 à 2
-$ guix package -p ~/.config/guix/current --delete-generations=1
-suppression de /var/guix/profiles/per-user/charlie/current-guix-1-link
-@end example
-
-La commande @command{guix pull} est typiquement invoquée sans arguments mais
-il supporte les options suivantes :
-
-@table @code
-@item --url=@var{url}
-@itemx --commit=@var{commit}
-@itemx --branch=@var{branche}
-Télécharger le code 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}.
-
-@cindex @file{channels.scm}, fichier de configuration
-@cindex fichier de configuration pour les canaux
-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).
-
-@item --channels=@var{file}
-@itemx -C @var{file}
-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{Canaux} pour plus
-d'informations.
-
-@item --list-generations[=@var{motif}]
-@itemx -l [@var{motif}]
-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{Invoquer guix package}).
-
-@ref{Invoquer guix describe}, pour une manière d'afficher des informations
-sur la génération actuelle uniquement.
-
-@item --profile=@var{profil}
-@itemx -p @var{profil}
-Utiliser le @var{profil} à la place de @file{~/.config/guix/current}.
-
-@item --dry-run
-@itemx -n
-Montrer quels commits des canaux seraient utilisés et ce qui serait
-construit ou substitué mais ne pas le faire vraiment.
-
-@item --system=@var{système}
-@itemx -s @var{système}
-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.
-
-@item --verbose
-Produire une sortie verbeuse, en écrivant les journaux de construction sur
-la sortie d'erreur standard.
-
-@item --bootstrap
-Utiliser le programme d'amorçage Guile pour construire la dernière version
-de Guix.  Cette option n'est utile que pour les développeurs de Guix.
-@end table
-
-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{Canaux} pour plus d'information.
-
-En plus, @command{guix pull} supporte toutes les options de construction
-communes (@pxref{Options de construction communes}).
-
-@node Canaux
-@section Canaux
-
-@cindex canaux
-@cindex @file{channels.scm}, fichier de configuration
-@cindex fichier de configuration pour les canaux
-@cindex @command{guix pull}, fichier de configuration
-@cindex configuration de @command{guix pull}
-Guix et sa collection de paquets sont mis à jour en lançant @command{guix
-pull} (@pxref{Invoquer 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.
-
-@subsection Utiliser un canal Guix personnalisé
-
-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} :
-
-@lisp
-;; Dit à « guix pull » d'utiliser mon propre dépôt.
-(list (channel
-        (name 'guix)
-        (url "https://example.org/my-guix.git")
-        (branch "super-hacks")))
-@end lisp
-
-@noindent
-Maintenant, @command{guix pull} récupérera le code depuis la branche
-@code{super-hacks} du dépôt sur @code{example.org}.
-
-@subsection Spécifier des canaux supplémentaires
-
-@cindex étendre la collection de paquets (canaux)
-@cindex paquets personnels (canaux)
-@cindex canaux, pour des paquets personnels
-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{Modules de paquets}), 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 ?
-
-@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 Attention
-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 :
-
-@itemize
-@item
-Avant de publier un canal, envisagez de contribuer vos définitions de
-paquets dans Guix (@pxref{Contribuer}).  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.
-
-@item
-Lorsque vous maintenez des définitions de paquets en dehors de Guix, nous,
-les développeurs 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.
-
-@item
-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.
-@end itemize
-
-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.
-@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
-;; Ajouter mes paquets personnels à ceux fournis par Guix.
-(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{}
-Génération 19	Aug 27 2018 16:20:48
-  guix d894ab8
-    URL du dépôt : https://git.savannah.gnu.org/git/guix.git
-    branche : master
-    commit : d894ab8e9bfabcefa6c49d9ba2e834dd5a73a300
-  my-personal-packages dd3df5e
-    URL du dépôt : https://example.org/personal-packages.git
-    branche : master
-    commit : dd3df5e2c8818760a8fc0bd699e55d3b69fef2bb
-  11 nouveaux paquets : my-gimp, my-emacs-with-cool-features, @dots{}
-  4 paquets mis à jour : emacs-racket-mode@@0.0.2-2.1b78827, @dots{}
-@end example
-
-@noindent
-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.
-
-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"))
-  (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.
-
-@subsection Répliquer Guix
-
-@cindex épinglage, canaux
-@cindex répliquer Guix
-@cindex reproductibilité, de Guix
-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 :
-
-@lisp
-;; Déployer des commits précis de mes canaux préférés.
-(list (channel
-       (name 'guix)
-       (url "https://git.savannah.gnu.org/git/guix.git")
-       (commit "d894ab8e9bfabcefa6c49d9ba2e834dd5a73a300"))
-      (channel
-       (name 'my-personal-packages)
-       (url "https://example.org/personal-packages.git")
-       (branch "dd3df5e2c8818760a8fc0bd699e55d3b69fef2bb")))
-@end lisp
-
-La commande @command{guix describe --format=channels} peut même générer
-cette liste de canaux directement (@pxref{Invoquer guix describe}).
-
-À 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.
-
-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{Inférieurs}, pour une autre
-manière d'utiliser ces super-pouvoirs.
-
-@node Inférieurs
-@section Inférieurs
-
-@c TODO: Remove this once we're more confident about API stability.
-@quotation Remarque
-La fonctionnalité décrite ici est un « démonstrateur technique » à la
-version @value{VERSION}.  Ainsi, l'interface est sujette à changements.
-@end quotation
-
-@cindex inférieurs
-@cindex composition de révisions de Guix
-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.
-
-@cindex paquets inférieurs
-Techniquement, un « inférieur » est surtout un processus Guix séparé
-connecté à votre processus Guix principal à travers un REPL (@pxref{Invoquer 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.
-
-Lorsqu'on les combine avec des canaux (@pxref{Canaux}), 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{Invoquer 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 :
-
-@lisp
-(use-modules (guix inferior) (guix channels)
-             (srfi srfi-1))   ;pour « first »
-
-(define channels
-  ;; L'ancienne révision depuis laquelle on veut
-  ;; extraire guile-json.
-  (list (channel
-         (name 'guix)
-         (url "https://git.savannah.gnu.org/git/guix.git")
-         (commit
-          "65956ad3526ba09e1f7a40722c96c6ef7c0936fe"))))
-
-(define inferior
-  ;; Un inférieur représentant la révision ci-dessus.
-  (inferior-for-channels channels))
-
-;; Maintenant on crée un manifeste avec le paquet « guile » actuel
-;; et l'ancien paquet « guile-json ».
-(packages->manifest
- (list (first (lookup-inferior-packages inferior "guile-json"))
-       (specification->package "guile")))
-@end lisp
-
-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.
-
-Le module @code{(guix inferior)} fournit les procédures suivantes pour
-ouvrir un inférieur :
-
-@deffn {Procédure Scheme} inferior-for-channels @var{channels} @
-   [#:cache-directory] [#:ttl]
-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.
-
-Elle a pour effet de bord de construire ou de substituer des binaires pour
-@var{channels}, ce qui peut prendre du temps.
-@end deffn
-
-@deffn {Procédure Scheme} open-inferior @var{directory} @
-  [#:command "bin/guix"]
-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é.
-@end deffn
-
-@cindex paquets inférieurs
-Les procédures listées plus bas vous permettent d'obtenir et de manipuler
-des paquets inférieurs.
-
-@deffn {Procédure Scheme} inferior-packages @var{inferior}
-Renvoie la liste des paquets connus de l'inférieur @var{inferior}.
-@end deffn
-
-@deffn {Procédure Scheme} lookup-inferior-packages @var{inferior} @var{name} @
-   [@var{version}]
-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}.
-@end deffn
-
-@deffn {Procédure Scheme} inferior-package? @var{obj}
-Renvoie vrai si @var{obj} est un paquet inférieur.
-@end deffn
-
-@deffn {Procédure Scheme} inferior-package-name @var{package}
-@deffnx {Procédure Scheme} inferior-package-version @var{package}
-@deffnx {Procédure Scheme} inferior-package-synopsis @var{package}
-@deffnx {Procédure Scheme} inferior-package-description @var{package}
-@deffnx {Procédure Scheme} inferior-package-home-page @var{package}
-@deffnx {Procédure Scheme} inferior-package-location @var{package}
-@deffnx {Procédure Scheme} inferior-package-inputs @var{package}
-@deffnx {Procédure Scheme} inferior-package-native-inputs @var{package}
-@deffnx {Procédure Scheme} inferior-package-propagated-inputs @var{package}
-@deffnx {Procédure Scheme} inferior-package-transitive-propagated-inputs @var{package}
-@deffnx {Procédure Scheme} inferior-package-native-search-paths @var{package}
-@deffnx {Procédure Scheme} inferior-package-transitive-native-search-paths @var{package}
-@deffnx {Procédure Scheme} inferior-package-search-paths @var{package}
-Ces procédures sont la contrepartie des accesseurs des enregistrements de
-paquets (@pxref{Référence de paquet}).  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.
-@end deffn
-
-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{Invoquer 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.
-
-@node Invoquer guix describe
-@section Invoquer @command{guix describe}
-
-@cindex reproductibilité
-@cindex répliquer Guix
-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.
-
-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{Canaux}) :
-
-@example
-$ guix describe
-Generation 10	03 sep. 2018 17:32:44	(actuelle)
-  guix e0fa68c
-    URL du dépôt : https://git.savannah.gnu.org/git/guix.git
-    branche : master
-    commit : e0fa68c7718fffd33d81af415279d6ddb518f727
-@end example
-
-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{Invoquer 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.
-
-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 :
-
-@example
-$ guix describe -f channels
-(list (channel
-        (name 'guix)
-        (url "https://git.savannah.gnu.org/git/guix.git")
-        (commit
-          "e0fa68c7718fffd33d81af415279d6ddb518f727")))
-@end example
-
-@noindent
-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{Invoquer 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 !
-
-Voici les détails des options supportées par @command{guix describe} :
-
-@table @code
-@item --format=@var{format}
-@itemx -f @var{format}
-Produire la sortie dans le @var{format} donné, parmi :
-
-@table @code
-@item human
-produire une sortie lisible par un humain,
-@item canaux
-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{Invoquer guix pull}),
-@item json
-@cindex JSON
-produire une liste de spécifications de canaux dans le format JSON,
-@item recutils
-produire une liste de spécifications de canaux dans le format Recutils.
-@end table
-
-@item --profile=@var{profil}
-@itemx -p @var{profil}
-Afficher les informations sur le @var{profil}.
-@end table
-
-@node Invoquer guix archive
-@section Invoquer @command{guix archive}
-
-@cindex @command{guix archive}
-@cindex archive
-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.
-
-@quotation Remarque
-Si vous chercher une manière de produire des archives dans un format adapté
-pour des outils autres que Guix, @pxref{Invoquer guix pack}.
-@end quotation
-
-@cindex exporter des éléments du dépôt
-Pour exporter des fichiers du dépôt comme une archive sur la sortie
-standard, lancez :
-
-@example
-guix archive --export @var{options} @var{spécifications}...
-@end example
-
-@var{spécifications} peut être soit des noms de fichiers soit des
-spécifications de paquets, comme pour @command{guix package}
-(@pxref{Invoquer 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} :
-
-@example
-guix archive --export git:gui /gnu/store/...-emacs-24.3 > great.nar
-@end example
-
-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{Options de construction communes}).
-
-Pour transférer le paquet @code{emacs} vers une machine connectée en SSH, on
-pourrait lancer :
-
-@example
-guix archive --export -r emacs | ssh la-machine guix archive --import
-@end example
-
-@noindent
-De même, on peut transférer un profil utilisateur complet d'une machine à
-une autre comme cela :
-
-@example
-guix archive --export -r $(readlink -f ~/.guix-profile) | \
-  ssh la-machine guix-archive --import
-@end example
-
-@noindent
-Cependant, remarquez que, dans les deux exemples, le paquet @code{emacs}, le
-profil ainsi que toutes leurs dépendances sont transférées (à cause de
-@code{-r}), indépendamment du fait qu'ils soient 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{Invoquer guix copy}).
-
-@cindex nar, format d'archive
-@cindex archive normalisée (nar)
-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.
-
-@c FIXME: Add xref to daemon doc about signatures.
-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.
-
-Les principales options sont :
-
-@table @code
-@item --export
-Exporter les fichiers ou les paquets du dépôt (voir plus bas).  Écrire
-l'archive résultante sur la sortie standard.
-
-Les dépendances ne sont @emph{pas} incluses dans la sortie à moins que
-@code{--recursive} ne soit passé.
-
-@item -r
-@itemx --recursive
-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.
-
-@item --import
-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.)
-
-@item --missing
-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.
-
-@item --generate-key[=@var{paramètres}]
-@cindex signature, archives
-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.
-
-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}).
-
-@item --authorize
-@cindex autorisation, archives
-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}.
-
-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{http://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{http://theworld.com/~cme/spki.txt, infrastructure à clefs publiques
-simple (SPKI)}.
-
-@item --extract=@var{répertoire}
-@itemx -x @var{répertoire}
-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.
-
-For example, the following command extracts the substitute for Emacs served
-by @code{@value{SUBSTITUTE-SERVER}} to @file{/tmp/emacs}:
-
-@example
-$ wget -O - \
-  https://@value{SUBSTITUTE-SERVER}/nar/@dots{}-emacs-24.5 \
-  | bunzip2 | guix archive -x /tmp/emacs
-@end example
-
-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.
-
-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.
-
-@end table
-
-
-@c *********************************************************************
-@node Development
-@chapter Development
-
-@cindex software development
-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.
-
-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.
-
-@menu
-* Invoquer guix environment::  Mettre en place des environnements de 
-                                 développement.
-* Invoquer guix pack::       Créer des lots de logiciels.
-@end menu
-
-@node Invoquer guix environment
-@section Invoquer @command{guix environment}
-
-@cindex environnements de construction reproductibles
-@cindex environnement de développement
-@cindex @command{guix environment}
-@cindex environnement de construction de paquets
-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.
-
-La syntaxe générale est :
-
-@example
-guix environment @var{options} @var{paquet}@dots{}
-@end example
-
-L'exemple suivant crée un nouveau shell préparé pour le développement de
-GNU@tie{}Guile :
-
-@example
-guix environment guile
-@end example
-
-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.}.
-
-@vindex GUIX_ENVIRONMENT
-@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}) :
-
-@example
-if [ -n "$GUIX_ENVIRONMENT" ]
-then
-    export PS1="\u@@\h \w [dev]\$ "
-fi
-@end example
-
-@noindent
-...@: or to browse the profile:
-
-@example
-$ ls "$GUIX_ENVIRONMENT/bin"
-@end example
-
-En plus, 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 :
-
-@example
-guix environment guile emacs
-@end example
-
-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 :
-
-@example
-guix environment guile -- make -j4
-@end example
-
-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 :
-
-@example
-guix environment --ad-hoc python2-numpy python-2.7 -- python
-@end example
-
-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 :
-
-@example
-guix environment guix --ad-hoc git strace
-@end example
-
-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:
-
-@example
-guix environment --ad-hoc --container guile -- guile
-@end example
-
-@quotation Remarque
-L'option @code{--container} requiert Linux-libre 3.19 ou supérieur.
-@end quotation
-
-Les options disponibles sont résumées ci-dessous.
-
-@table @code
-@item --root=@var{fichier}
-@itemx -r @var{fichier}
-@cindex environnement persistent
-@cindex racine du ramasse-miettes, pour les environnements
-Fait de @var{fichier} un lien symbolique vers le profil de cet
-environnement, et l'enregistre comme une racine du ramasse-miettes.
-
-C'est utile si vous souhaitez protéger votre environnement du
-ramasse-miettes, pour le rendre « persistent ».
-
-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{Invoquer guix gc}, pour plus d'informations sur les racines du GC.
-
-@item --expression=@var{expr}
-@itemx -e @var{expr}
-Crée un environnement pour le paquet ou la liste de paquets en lesquels
-s'évalue @var{expr}.
-
-Par exemple, lancer :
-
-@example
-guix environment -e '(@@ (gnu packages maths) petsc-openmpi)'
-@end example
-
-démarre un shell avec l'environnement pour cette variante spécifique du
-paquet PETSc.
-
-Lancer :
-
-@example
-guix environment --ad-hoc -e '(@@ (gnu) %base-packages)'
-@end example
-
-starts a shell with all the base system packages available.
-
-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 :
-
-@example
-guix environment --ad-hoc -e '(list (@@ (gnu packages bash) bash) "include")'
-@end example
-
-@item --load=@var{fichier}
-@itemx -l @var{fichier}
-Crée un environnement pour le paquet ou la liste de paquets en lesquels
-@var{fichier} s'évalue.
-
-Par exemple, @var{fichier} peut contenir une définition comme celle-ci
-(@pxref{Définition des paquets}) :
-
-@example
-@verbatiminclude environment-gdb.scm
-@end example
-
-@item --manifest=@var{fichier}
-@itemx -m @var{fichier}
-Crée un environnement pour les paquets contenus dans l'objet manifeste
-renvoyé par le code Scheme dans @var{fichier}.
-
-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.
-
-@item --ad-hoc
-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.
-
-Par exemple la commande :
-
-@example
-guix environment --ad-hoc guile guile-sdl -- guile
-@end example
-
-lance @command{guile} dans un environnement où Guile et Guile-SDDL sont
-disponibles.
-
-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{Des paquets avec plusieurs résultats}).
-
-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.
-
-@item --pure
-Unset existing environment variables when building the new environment,
-except those specified with @option{--inherit} (see below.)  This has the
-effect of creating an environment in which search paths only contain package
-inputs.
-
-@item --inherit=@var{regexp}
-When used alongside @option{--pure}, inherit all 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.
-
-@example
-guix environment --pure --inherit=^SLURM --ad-hoc openmpi @dots{} \
-  -- mpirun @dots{}
-@end example
-
-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.)
-
-@item --search-paths
-Affiche les définitions des variables d'environnement qui composent
-l'environnement.
-
-@item --system=@var{système}
-@itemx -s @var{système}
-Essaye de construire pour @var{système} — p.@: ex.@: @code{i686-linux}.
-
-@item --container
-@itemx -C
-@cindex conteneur
-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.  Le processus est lancé en tant que l'utilisateur
-actuel en dehors du conteneur, mais a les privilèges root dans le contexte
-du conteneur.
-
-@item --network
-@itemx -N
-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.
-
-@item --link-profile
-@itemx -P
-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.
-
-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.
-
-@item --user=@var{utilisateur}
-@itemx -u @var{utilisateur}
-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/UTILISATEUR} ; et aucune donnée GECOS ne sera
-copiée.  @var{utilisateur} n'a pas besoin d'exister sur le système.
-
-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.
-
-@example
-# exposera les chemins comme /home/foo/wd, /home/foo/test et /home/foo/target
-cd $HOME/wd
-guix environment --container --user=foo \
-     --expose=$HOME/test \
-     --expose=/tmp/target=$HOME/target
-@end example
-
-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.
-
-@item --expose=@var{source}[=@var{cible}]
-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.
-
-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} :
-
-@example
-guix environment --container --expose=$HOME=/exchange --ad-hoc guile -- guile
-@end example
-
-@item --share=@var{source}[=@var{cible}]
-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.
-
-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} :
-
-@example
-guix environment --container --share=$HOME=/exchange --ad-hoc guile -- guile
-@end example
-@end table
-
-@command{guix environment} also supports all of the common build options
-that @command{guix build} supports (@pxref{Options de construction communes}) as well as
-package transformation options (@pxref{Options de transformation de paquets}).
-
-@node Invoquer guix pack
-@section Invoquer @command{guix pack}
-
-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.
-
-@quotation Remarque
-Si vous cherchez comment échanger des binaires entre des machines où Guix
-est déjà installé, @pxref{Invoquer guix copy}, @ref{Invoquer guix publish},
-et @ref{Invoquer guix archive}.
-@end quotation
-
-@cindex pack
-@cindex lot
-@cindex lot d'applications
-@cindex lot de logiciels
-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.
-
-Par exemple, pour créer un lot contenant Guile, Emacs, Geiser et toutes
-leurs dépendances, vous pouvez lancer :
-
-@example
-$ guix pack guile emacs geiser
-@dots{}
-/gnu/store/@dots{}-pack.tar.gz
-@end example
-
-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{Installation binaire}).
-
-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 :
-
-@example
-guix pack -S /opt/gnu/bin=bin guile emacs geiser
-@end example
-
-@noindent
-De cette façon, les utilisateurs peuvent joyeusement taper
-@file{/opt/gnu/bin/guile} et profiter.
-
-@cindex binaires repositionnables, avec @command{guix pack}
-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 produite 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}.
-
-@cindex Docker, construire une image avec guix pack
-Autrement, vous pouvez produire un pack au format d'image Docker avec la
-commande suivante :
-
-@example
-guix pack -f docker guile emacs geiser
-@end example
-
-@noindent
-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.
-
-@cindex Singularity, construire une image avec guix pack
-@cindex SquashFS, construire une image avec guix pack
-Autrement, vous pouvez produire une image SquashFS avec la commande suivante
-:
-
-@example
-guix pack -f squashfs guile emacs geiser
-@end example
-
-@noindent
-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{http://singularity.lbl.gov, environnement d'exécution
-conteneurisé Singularity}, avec des commandes comme @command{singularity
-shell} ou @command{singularity exec}.
-
-Diverses options en ligne de commande vous permettent de personnaliser votre
-pack :
-
-@table @code
-@item --format=@var{format}
-@itemx -f @var{format}
-Produire un pack dans le @var{format} donné.
-
-Les formats disponibles sont :
-
-@table @code
-@item tarball
-C'est le format par défaut.  Il produit une archive tar contenant tous les
-binaires et les liens symboliques spécifiés.
-
-@item docker
-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}.
-
-@item squashfs
-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.
-@end table
-
-@item --relocatable
-@itemx -R
-Produit 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à.  Par exemple, si vous créez un pack contenant
-Bash avec :
-
-@example
-guix pack -R -S /mybin=bin bash
-@end example
-
-@noindent
-...@: you can copy that pack to a machine that lacks Guix, and from your
-home directory as a normal user, run:
-
-@example
-tar xf pack.tar.gz
-./mybin/sh
-@end example
-
-@noindent
-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.
-
-Il y a un inconvénient cependant : cette technique repose sur les
-@dfn{espaces de noms} du noyau Linux qui permettent à des utilisateurs
-non-privilégiés de monter des systèmes de fichiers ou de changer de racine.
-Les anciennes versions de Linux ne le supportaient pas et certaines
-distributions GNU/Linux les désactivent ; sur ces système, les programme du
-pack @emph{ne fonctionneront pas} à moins qu'ils ne soient décompressés à la
-racine du système de fichiers.
-
-@item --expression=@var{expr}
-@itemx -e @var{expr}
-Considérer le paquet évalué par @var{expr}.
-
-Cela a le même but que l'option de même nom de @command{guix build}
-(@pxref{Options de construction supplémentaires, @code{--expression} dans @command{guix
-build}}).
-
-@item --manifest=@var{fichier}
-@itemx -m @var{fichier}
-Utiliser les paquets contenus dans l'objet manifeste renvoyé par le code
-Scheme dans @var{fichier}
-
-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.
-
-@item --system=@var{système}
-@itemx -s @var{système}
-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.
-
-@item --target=@var{triplet}
-@cindex compilation croisée
-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}).
-
-@item --compression=@var{outil}
-@itemx -C @var{outil}
-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.
-
-@item --symlink=@var{spec}
-@itemx -S @var{spec}
-Ajouter les liens symboliques spécifiés par @var{spec} dans le pack.  Cette
-option peut apparaître plusieurs fois.
-
-@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.
-
-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.
-
-@item --localstatedir
-@itemx --profile-name=@var{nom}
-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}.
-
-@file{/var/guix} contient la base de données du dépôt (@pxref{Le dépôt})
-ainsi que les racines du ramasse-miettes (@pxref{Invoquer 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.
-
-Un cas d'utilisation est l'archive binaire indépendante de Guix
-(@pxref{Installation binaire}).
-
-@item --bootstrap
-Utiliser les programmes d'amorçage pour construire le pack.  Cette option
-n'est utile que pour les développeurs de Guix.
-@end table
-
-En plus, @command{guix pack} supporte toutes les options de construction
-communes (@pxref{Options de construction communes}) et toutes les options de
-transformation de paquets (@pxref{Options de transformation de paquets}).
-
-
-@c *********************************************************************
-@node Interface de programmation
-@chapter Interface de programmation
-
-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.
-
-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.
-
-@cindex dérivation
-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}.
-
-Ce chapitre décrit toutes ces API tour à tour, à partir des définitions de
-paquets à haut-niveau.
-
-@menu
-* Modules de paquets::       Les paquets du point de vu du programmeur.
-* Définition des paquets::  Définir de nouveaux paquets.
-* Systèmes de construction::  Spécifier comment construire les paquets.
-* Le dépôt::               Manipuler le dépôt de paquets.
-* Dérivations::             Interface de bas-niveau avec les dérivations 
-                               de paquets.
-* La monade du dépôt::     Interface purement fonctionnelle avec le 
-                               dépôt.
-* G-Expressions::            Manipuler les expressions de construction.
-* Invoquer guix repl::       S'amuser avec Guix de manière interactive.
-@end menu
-
-@node Modules de paquets
-@section Modules de paquets
-
-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{Définition des paquets}).
-
-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 package -i 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)}.
-
-@cindex personnalisation, des paquets
-@cindex chemin de recherche des modules de paquets
-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 :
-
-@enumerate
-@item
-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{Options de construction communes}) ou en indiquant la variable
-d'environnement @code{GUIX_PACKAGE_PATH} décrite plus bas.
-
-@item
-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{Canaux}, pour plus d'informations sur comment
-définir et utiliser des canaux.
-@end enumerate
-
-@code{GUIX_PACKAGE_PATH} fonctionne comme les autres variables de chemins de
-recherche :
-
-@defvr {Variable d'environnement} GUIX_PACKAGE_PATH
-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.
-@end defvr
-
-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}.
-
-@node Définition des paquets
-@section Définition des paquets
-
-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 :
-
-@example
-(define-module (gnu packages hello)
-  #:use-module (guix packages)
-  #:use-module (guix download)
-  #:use-module (guix build-system gnu)
-  #:use-module (guix licenses)
-  #:use-module (gnu packages gawk))
-
-(define-public hello
-  (package
-    (name "hello")
-    (version "2.10")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://gnu/hello/hello-" version
-                                  ".tar.gz"))
-              (sha256
-               (base32
-                "0ssi1wpaf7plaswqqjwigppsg5fyh99vdlb9kzl7c9lng89ndq1i"))))
-    (build-system gnu-build-system)
-    (arguments '(#:configure-flags '("--enable-silent-rules")))
-    (inputs `(("gawk" ,gawk)))
-    (synopsis "Hello, GNU world: An example GNU package")
-    (description "Guess what GNU Hello prints!")
-    (home-page "http://www.gnu.org/software/hello/")
-    (license gpl3+)))
-@end example
-
-@noindent
-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"}.
-
-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{Invoquer guix import}).
-
-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{Modules de paquets}).
-
-Il y a quelques points à remarquer dans la définition de paquet précédente :
-
-@itemize
-@item
-Le champ @code{source} du paquet est un objet @code{<origin>} (@pxref{Référence d'origine}, 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.
-
-Le préfixe @code{mirror://gnu} demande à @code{url-fetch} d'utiliser l'un
-des miroirs GNU définis dans @code{(guix download)}.
-
-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{Invoquer guix download}) et @code{guix hash}
-(@pxref{Invoquer guix hash}).
-
-@cindex correctifs
-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.
-
-@item
-@cindex Système de construction GNU
-Le champ @code{build-system} spécifie la procédure pour construire le paquet
-(@pxref{Systèmes de construction}).  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.
-
-@item
-Le champ @code{arguments} spécifie des options pour le système de
-construction (@pxref{Systèmes de construction}).  Ici il est interprété par
-@var{gnu-build-system} comme une demande de lancer @file{configure} avec le
-drapeau @code{--enable-silent-rules}.
-
-@cindex quote
-@cindex quoting
-@findex '
-@findex quote
-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}).
-
-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}).
-
-@item
-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>}.
-
-@cindex accent grave (quasiquote)
-@findex `
-@findex quasiquote
-@cindex virgule (unquote)
-@findex ,
-@findex unquote
-@findex ,@@
-@findex unquote-splicing
-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}).
-
-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{Systèmes de construction}).
-
-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.
-@end itemize
-
-@xref{Référence de paquet}, pour une description complète des champs
-possibles.
-
-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{Invoquer guix build}), pour résoudre les échecs de construction que
-vous pourriez rencontrer (@pxref{Débogage des échecs de construction}).  Vous pouvez
-aisément revenir à la définition du paquet avec la commande @command{guix
-edit} (@pxref{Invoquer guix edit}).  @xref{Consignes d'empaquetage}, pour plus
-d'informations sur la manière de tester des définitions de paquets et
-@ref{Invoquer guix lint}, pour des informations sur la manière de vérifier
-que la définition respecte les conventions de style.
-@vindex GUIX_PACKAGE_PATH
-Enfin, @pxref{Canaux} pour des informations sur la manière d'étendre la
-distribution en ajoutant vos propres définitions de paquets dans un « canal
-».
-
-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{Invoquer guix refresh}).
-
-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{Le dépôt}).
-
-@deffn {Procédure Scheme} package-derivation @var{store} @var{package} [@var{system}]
-Renvoie l'objet @code{<derivation>} du @var{paquet} pour le @var{système}
-(@pxref{Dérivations}).
-
-@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{Le dépôt}).
-@end deffn
-
-@noindent
-@cindex compilation croisée
-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 :
-
-@deffn {Procédure Scheme} package-cross-derivation @var{store} @
-            @var{paquet} @var{cible} [@var{système}] renvoie l'objet @code{<derivation>}
-du @var{paquet} construit depuis @var{système} pour @var{cible}.
-
-@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{Configuration Names, GNU configuration triplets,, configure, GNU
-Configure and Build System}).
-@end deffn
-
-@cindex transformations de paquets
-@cindex réécriture d'entrées
-@cindex réécriture de l'arbre des dépendances
-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 :
-
-@deffn {Procédure Scheme} package-input-rewriting @var{replacements} @
-           [@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.
-
-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.
-@end deffn
-
-@noindent
-Regardez cet exemple :
-
-@example
-(define libressl-instead-of-openssl
-  ;; Cette procédure remplace OPENSSL par LIBRESSL,
-  ;; récursivement.
-  (package-input-rewriting `((,openssl . ,libressl))))
-
-(define git-with-libressl
-  (libressl-instead-of-openssl git))
-@end example
-
-@noindent
-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{Options de transformation de paquets,
-@option{--with-input}}).
-
-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.
-
-@deffn {Procédure Scheme} package-mapping @var{proc} [@var{cut?}]
-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é.
-@end deffn
-
-@menu
-* Référence de paquet::    Le type de donnée des paquets.
-* Référence d'origine::    Le type de données d'origine.
-@end menu
-
-
-@node Référence de paquet
-@subsection Référence de @code{package}
-
-Cette section résume toutes les options disponibles dans les déclarations
-@code{package}  (@pxref{Définition des paquets}).
-
-@deftp {Type de données} package
-C'est le type de donnée représentant une recette de paquets
-
-@table @asis
-@item @code{name}
-Le nom du paquet, comme une chaîne de caractères.
-
-@item @code{version}
-La version du paquet, comme une chaîne de caractères.
-
-@item @code{source}
-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{Référence d'origine}).  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}}).
-
-@item @code{build-system}
-Le système de construction qui devrait être utilisé pour construire le
-paquet (@pxref{Systèmes de construction}).
-
-@item @code{arguments} (par défaut : @code{'()})
-Les arguments à passer au système de construction.  C'est une liste qui
-contient typiquement une séquence de paires de clefs-valeurs.
-
-@item @code{inputs} (par défaut : @code{'()})
-@itemx @code{native-inputs} (par défaut : @code{'()})
-@itemx @code{propagated-inputs} (par défaut : @code{'()})
-@cindex entrées, des paquets
-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{Des paquets avec plusieurs résultats}, pour
-plus d'informations sur les sorties des paquets).  Par exemple, la liste
-suivante spécifie trois entrées :
-
-@example
-`(("libffi" ,libffi)
-  ("libunistring" ,libunistring)
-  ("glib:bin" ,glib "bin"))  ;la sortie "bin" de Glib
-@end example
-
-@cindex compilation croisée, dépendances des paquets
-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}.
-
-@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{Invoquer guix lint}).
-
-@anchor{package-propagated-inputs}
-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).
-
-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}.
-
-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}.
-
-@item @code{self-native-input?} (par défaut : @code{#f})
-C'est un champ booléen qui indique si le paquet devrait s'utiliser lui-même
-comme entrée native lors de la compilation croisée.
-
-@item @code{outputs} (par défaut : @code{'("out")})
-La liste des noms de sorties du paquet.  @xref{Des paquets avec plusieurs résultats}, pour des exemples typiques d'utilisation de sorties
-supplémentaires.
-
-@item @code{native-search-paths} (par défaut : @code{'()})
-@itemx @code{search-paths} (par défaut : @code{'()})
-Une liste d'objets @code{search-path-specification} décrivant les variables
-d'environnement de recherche de chemins que ce paquet utilise.
-
-@item @code{replacement} (par défaut : @code{#f})
-Ce champ doit être soit @code{#f} soit un objet de paquet qui sera utilisé
-comme @dfn{remplaçant} de ce paquet.  @xref{Mises à jour de sécurité, grafts}, pour
-plus de détails.
-
-@item @code{synopsis}
-Une description sur une ligne du paquet.
-
-@item @code{description}
-Une description plus détaillée du paquet.
-
-@item @code{license}
-@cindex licence, des paquets
-La licence du paquet ; une valeur tirée de @code{(guix licenses)} ou une
-liste de ces valeurs.
-
-@item @code{home-page}
-L'URL de la page d'accueil du paquet, en tant que chaîne de caractères.
-
-@item @code{supported-systems} (par défaut : @var{%supported-systems})
-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"}.
-
-@item @code{maintainers} (par défaut : @code{'()})
-La liste des mainteneurs du paquet, comme des objets @code{maintainer}.
-
-@item @code{location} (par défaut : emplacement de la source de la forme @code{package})
-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é.
-@end table
-@end deftp
-
-
-@node Référence d'origine
-@subsection Référence de @code{origin}
-
-Cette section résume toutes les options disponibles dans le déclarations
-@code{origin} (@pxref{Définition des paquets}).
-
-@deftp {Type de données} origin
-C'est le type de donnée qui représente l'origine d'un code source.
-
-@table @asis
-@item @code{uri}
-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.
-
-@item @code{method}
-Un procédure qui gère l'URI.
-
-Quelques exemples :
-
-@table @asis
-@item @var{url-fetch} de @code{(guix download)}
-télécharge un fichier depuis l'URL HTTP, HTTPS ou FTP spécifiée dans le
-champ @code{uri} ;
-
-@vindex git-fetch
-@item @var{git-fetch} de @code{(guix git-download)}
-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 :
-
-@example
-(git-reference
-  (url "git://git.debian.org/git/pkg-shadow/shadow")
-  (commit "v4.1.5.1"))
-@end example
-@end table
-
-@item @code{sha256}
-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.
-
-Vous pouvez obtenir cette information avec @code{guix download}
-(@pxref{Invoquer guix download}) ou @code{guix hash} (@pxref{Invoquer guix hash}).
-
-@item @code{file-name} (par défaut : @code{#f})
-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.
-
-@item @code{patches} (par défaut : @code{'()})
-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.
-
-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}.
-
-@item @code{snippet} (par défaut : @code{#f})
-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.
-
-@item @code{patch-flags} (par défaut : @code{'("-p1")})
-Une liste de drapeaux à passer à la commande @code{patch}.
-
-@item @code{patch-inputs} (par défaut : @code{#f})
-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.
-
-@item @code{modules} (par défaut : @code{'()})
-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}.
-
-@item @code{patch-guile} (par défaut : @code{#f})
-Le paquet Guile à utiliser dans le processus de correction.  Lorsqu'elle est
-à @code{#f}, une valeur par défaut raisonnable est utilisée.
-@end table
-@end deftp
-
-
-@node Systèmes de construction
-@section Systèmes de construction
-
-@cindex système de construction
-Chaque définition de paquet définie un @dfn{système de construction} et des
-arguments pour ce système de construction (@pxref{Définition des paquets}).  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.
-
-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.
-
-@cindex sac (représentation à bas-niveau des paquets)
-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{Dérivations}).
-
-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{Définition des paquets}).  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{Dérivations}).
-
-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)}.
-
-@defvr {Variable Scheme} gnu-build-system
-@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}).
-
-@cindex phases de construction
-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.}:
-
-@table @code
-@item unpack
-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.
-
-@item patch-source-shebangs
-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}.
-
-@item configure
-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}.
-
-@item build
-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}.
-
-@item check
-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}.
-
-@item install
-Lance @code{make install} avec les drapeaux listés dans @code{#:make-flags}.
-
-@item patch-shebangs
-Corrige les shebangs des fichiers exécutables installés.
-
-@item strip
-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{Installer les fichiers de débogage}).
-@end table
-
-@vindex %standard-phases
-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.
-
-La liste des phases utilisées par un paquet particulier peut être modifiée
-avec le paramètre @code{#:phases}.  Par exemple, en passant :
-
-@example
-#:phases (modify-phases %standard-phases (delete 'configure))
-@end example
-
-signifie que toutes les procédures décrites plus haut seront utilisées, sauf
-la phase @code{configure}.
-
-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.
-@end defvr
-
-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.
-
-@defvr {Variable Scheme} ant-build-system
-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{http://ant.apache.org/, l'outil de construction
-Ant}.
-
-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.
-
-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 ».
-
-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.
-
-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.
-
-@end defvr
-
-@defvr {Variable Scheme} android-ndk-build-system
-@cindex Distribution android
-@cindex système de construction Android NDK
-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.
-
-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 ».
-
-Il est aussi supposé que l'union de toutes les dépendances d'un paquet n'a
-pas de fichiers en conflit.
-
-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.
-
-@end defvr
-
-@defvr {Variable Scheme} asdf-build-system/source
-@defvrx {Variable Scheme} asdf-build-system/sbcl
-@defvrx {Variable Scheme} asdf-build-system/ecl
-
-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.
-
-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.
-
-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}.
-
-En plus, le paquet source correspondant devrait étiquetté avec la même
-convention que les paquets python (voir @ref{Modules python}), avec le
-préfixe @code{cl-}.
-
-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.
-
-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}.
-
-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.
-
-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.
-
-@end defvr
-
-@defvr {Variable Scheme} cargo-build-system
-@cindex Langage de programmation Rust
-@cindex Cargo (système de construction Rust)
-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}.
-
-Dans sa phase @code{configure}, ce système de construction remplace les
-dépendances spécifiées dans le fichier @file{Cargo.toml} par des paquets
-Guix.  La phase @code{install} installe les binaires et installe aussi le
-code source et le fichier @file{Cargo.toml}.
-@end defvr
-
-@cindex Clojure (langage de programmation)
-@cindex système de construction Clojure simple
-@defvr {Variable Scheme} clojure-build-system
-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.
-
-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}.
-
-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.
-
-Ce système de construction est une extension de @var{ant-build-system}, mais
-avec les phases suivantes modifiées :
-
-@table @code
-
-@item build
-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.
-
-@item check
-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.
-
-@item install
-Cette phase installe tous les fichiers jar précédemment construits.
-@end table
-
-En dehors de cela, le système de construction contient aussi la phase
-suivante :
-
-@table @code
-
-@item install-doc
-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.
-@end table
-@end defvr
-
-@defvr {Variable Scheme} cmake-build-system
-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{http://www.cmake.org, outil de construction CMake}.
-
-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}.
-
-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.
-@end defvr
-
-@defvr {Scheme Variable} dune-build-system
-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.
-
-It automatically adds the @code{dune} package to the set of inputs.  Which
-package is used can be specified with the @code{#:dune} parameter.
-
-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.
-
-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}.
-@end defvr
-
-@defvr {Variable Scheme} go-build-system
-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.
-
-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à.
-
-Les paquets qui fournissent des bibliothèques Go devraient être installées
-avec leur code source.  La clef @code{#:install-soruce?}, 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.
-@end defvr
-
-@defvr {Variable Scheme} glib-or-gtk-build-system
-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+.
-
-Ce système de construction ajoute les deux phases suivantes à celles
-définies par @var{gnu-build-system} :
-
-@table @code
-@item glib-or-gtk-wrap
-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}.
-
-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+.
-
-@item glib-or-gtk-compile-schemas
-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}.
-@end table
-
-Ces deux phases sont exécutées après la phase @code{install}.
-@end defvr
-
-@defvr {Variable Scheme} guile-build-system
-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.
-
-Ce système de construction supporte la compilation croisée en utilisant
-l'option @code{--target} de @command{guild compile}.
-
-Les paquets construits avec @code{guile-build-system} doivent fournir un
-paquet Guile dans leur champ @code{native-inputs}.
-@end defvr
-
-@defvr {Variable Scheme} minify-build-system
-Cette variable est exportée par @code{(guix build-system minify)}.  Elle
-implémente une procédure de minification pour des paquets JavaScript
-simples.
-
-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.
-
-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.
-@end defvr
-
-@defvr {Variable Scheme} ocaml-build-system
-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.
-
-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.
-
-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}.
-
-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}.
-
-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.
-
-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.
-@end defvr
-
-@defvr {Variable Scheme} python-build-system
-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{}}.
-
-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.
-
-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.
-
-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}.
-@end defvr
-
-@defvr {Variable Scheme} perl-build-system
-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?}.
-
-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.
-
-Le paquet Perl utilisé peut être spécifié avec @code{#:perl}.
-@end defvr
-
-@defvr {Variable Scheme} r-build-system
-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{http://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}.
-@end defvr
-
-@defvr {Variable Scheme} texlive-build-system
-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.
-
-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.
-
-Le paramètre @code{#:tex-directory} dit au système de construction où
-installer les fichiers construit dans l'arbre texmf.
-@end defvr
-
-@defvr {Variable Scheme} ruby-build-system
-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}.
-
-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 développeurs Ruby quand ils 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.
-
-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}.
-@end defvr
-
-@defvr {Variable Scheme} waf-build-system
-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}.
-
-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}.
-@end defvr
-
-@defvr {Variable Scheme} scons-build-system
-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.
-
-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}.
-@end defvr
-
-@defvr {Variable Scheme} haskell-build-system
-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.
-
-Le compilateur Haskell utilisé peut être spécifié avec le paramètre
-@code{#:haskell} qui a pour valeur par défaut @code{ghc}.
-@end defvr
-
-@defvr {Variable Scheme} dub-build-system
-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.
-
-Le compilateur D utilisé peut être spécifié avec le paramètre @code{#:ldc}
-qui vaut par défaut @code{ldc}.
-@end defvr
-
-@defvr {Variable Scheme} emacs-build-system
-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}).
-
-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}.
-@end defvr
-
-@defvr {Variable Scheme} font-build-system
-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.
-@end defvr
-
-@defvr {Variable Scheme} meson-build-system
-Cette variable est exportée par @code{(guix build-system meson)}.  Elle
-implémente la procédure de construction des paquets qui utilisent
-@url{http://mesonbuild.com, Meson} comme système de construction.
-
-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.
-
-Ce système de construction est une extension de @var{gnu-build-system}, mais
-avec les phases suivantes modifiées pour Meson :
-
-@table @code
-
-@item configure
-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}.
-
-@item build
-La phase lance @code{ninja} pour construire le paquet en parallèle par
-défaut, mais cela peut être changé avec @code{#:parallel-build?}.
-
-@item check
-La phase lance @code{ninja} avec la cible spécifiée dans
-@code{#:test-target}, qui est @code{"test"} par défaut.
-
-@item install
-La phase lance @code{ninja install} et ne peut pas être changée.
-@end table
-
-En dehors de cela, le système de construction ajoute aussi la phase suivante
-:
-
-@table @code
-
-@item fix-runpath
-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.
-
-@item glib-or-gtk-wrap
-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?}.
-
-@item glib-or-gtk-compile-schemas
-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?}.
-@end table
-@end defvr
-
-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.
-
-@defvr {Variable Scheme} trivial-build-system
-Cette variable est exportée par @code{(guix build-system trivial)}.
-
-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{Dérivations,
-@code{build-expression->derivation}}).
-@end defvr
-
-@node Le dépôt
-@section Le dépôt
-
-@cindex dépôt
-@cindex éléments du dépôt
-@cindex chemins dans le dépôt
-
-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}.
-
-C'est @emph{toujours} le démon qui accède au dépôt pour le compte de ses
-clients (@pxref{Invoquer 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.
-
-@quotation Remarque
-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}).
-
-@xref{Invoquer 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.
-@end quotation
-
-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}.
-
-@defvr {Variable d'environnement} GUIX_DAEMON_SOCKET
-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 :
-
-@table @code
-@item file
-@itemx unix
-Pour les sockets Unix-domain.  @code{file:///var/guix/daemon-socket/socket}
-est équivalent à @file{/var/guix/daemon-socket/socket}.
-
-@item guix
-@cindex démon, accès distant
-@cindex accès distant au démon
-@cindex démon, paramètres de grappes
-@cindex grappes, paramètres du démon
-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) :
-
-@example
-guix://master.guix.example.org:1234
-@end example
-
-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}.
-
-L'option @code{--listen} de @command{guix-daemon} peut être utilisé pour lui
-dire d'écouter des connexions TCP (@pxref{Invoquer guix-daemon,
-@code{--listen}}).
-
-@item ssh
-@cindex accès SSH au démon de construction
-Ces URI vous permettent de vous connecter au démon à distance à travers
-SSH@footnote{Cette fonctionnalité requiert Guile-SSH
-(@pxref{Prérequis}).}.
-
-@example
-ssh://charlie@@guix.example.org:22
-@end example
-
-Comme pour @command{guix copy}, les fichiers de configuration du client
-OpenSSH sont respectés (@pxref{Invoquer guix copy}).
-@end table
-
-Des schémas d'URI supplémentaires pourraient être supportés dans le futur.
-
-@c XXX: Remove this note when the protocol incurs fewer round trips
-@c and when (guix derivations) no longer relies on file system access.
-@quotation Remarque
-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{Contribuer}).
-@end quotation
-@end defvr
-
-@deffn {Procédure Scheme} open-connection [@var{uri}] [#:reserve-space? #t]
-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.
-
-@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}.
-@end deffn
-
-@deffn {Procédure Scheme} close-connection @var{server}
-Ferme la connexion au @var{serveur}.
-@end deffn
-
-@defvr {Variable Scheme} current-build-output-port
-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.
-@end defvr
-
-Les procédures qui font des RPC prennent toutes un objet serveur comme
-premier argument.
-
-@deffn {Procédure Scheme} valid-path? @var{server} @var{path}
-@cindex éléments du dépôt invalides
-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).
-
-A @code{&store-protocol-error} condition is raised if @var{path} is not
-prefixed by the store directory (@file{/gnu/store}).
-@end deffn
-
-@deffn {Procédure Scheme} add-text-to-store @var{server} @var{name} @var{text} [@var{references}]
-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.
-@end deffn
-
-@deffn {Procédure Scheme} build-derivations @var{server} @var{derivations}
-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.
-@end deffn
-
-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{La monade du dépôt}).
-
-@c FIXME
-@i{Cette section est actuellement incomplète.}
-
-@node Dérivations
-@section Dérivations
-
-@cindex dérivations
-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 :
-
-@itemize
-@item
-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.
-
-@item
-Les entrées de la dérivation, qui peuvent être d'autres dérivations ou des
-fichiers dans le dépôt (correctifs, scripts de construction, etc).
-
-@item
-Le type de système ciblé par la dérivation — p.ex.@: @code{x86_64-linux}.
-
-@item
-Le nom de fichier d'un script de construction dans le dépôt avec les
-arguments à lui passer.
-
-@item
-Une liste de variables d'environnement à définir.
-
-@end itemize
-
-@cindex chemin de dérivation
-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{Le dépôt}).
-
-@cindex dérivations à sortie fixe
-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.
-
-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} :
-
-@deffn {Procédure Scheme} derivation @var{store} @var{name} @var{builder} @
-  @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 '()]
-Construit une dérivation avec les arguments donnés et renvoie l'objet
-@code{<derivation>} obtenu.
-
-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.
-
-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.
-
-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.
-
-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.
-
-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{Réglages du délestage du démon}).  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.
-
-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.
-
-@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.
-@end deffn
-
-@noindent
-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 :
-
-@lisp
-(use-modules (guix utils)
-             (guix store)
-             (guix derivations))
-
-(let ((builder   ; ajoute le script Bash au dépôt
-        (add-text-to-store store "my-builder.sh"
-                           "echo hello world > $out\n" '())))
-  (derivation store "foo"
-              bash `("-e" ,builder)
-              #:inputs `((,bash) (,builder))
-              #:env-vars '(("HOME" . "/homeless"))))
-@result{} #<derivation /gnu/store/@dots{}-foo.drv => /gnu/store/@dots{}-foo>
-@end lisp
-
-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}.
-
-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.
-
-@deffn {Procédure Scheme} build-expression->derivation @var{store} @
-       @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]
-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))}.
-
-@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.
-
-@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.
-
-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?}.
-@end deffn
-
-@noindent
-Voici un exemple de dérivation à sortie unique qui crée un répertoire avec
-un fichier :
-
-@lisp
-(let ((builder '(let ((out (assoc-ref %outputs "out")))
-                  (mkdir out)    ; create /gnu/store/@dots{}-goo
-                  (call-with-output-file (string-append out "/test")
-                    (lambda (p)
-                      (display '(hello guix) p))))))
-  (build-expression->derivation store "goo" builder))
-
-@result{} #<derivation /gnu/store/@dots{}-goo.drv => @dots{}>
-@end lisp
-
-
-@node La monade du dépôt
-@section La monade du dépôt
-
-@cindex monad
-
-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.
-
-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.
-
-@cindex valeurs monadiques
-@cindex fonctions monadiques
-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}.
-
-Considérez cette procédure « normale » :
-
-@example
-(define (sh-symlink store)
-  ;; Renvoie une dérivation qui crée un lien symbolique vers l'exécutable « bash ».
-  (let* ((drv (package-derivation store bash))
-         (out (derivation->output-path drv))
-         (sh  (string-append out "/bin/bash")))
-    (build-expression->derivation store "sh"
-                                  `(symlink ,sh %output))))
-@end example
-
-En utilisant @code{(guix monads)} et @code{(guix gexp)}, on peut la réécrire
-en une fonction monadique :
-
-@example
-(define (sh-symlink)
-  ;; Pareil, mais renvoie une valeur monadique.
-  (mlet %store-monad ((drv (package->derivation bash)))
-    (gexp->derivation "sh"
-                      #~(symlink (string-append #$drv "/bin/bash")
-                                 #$output))))
-@end example
-
-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}.
-
-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}) :
-
-@example
-(define (sh-symlink)
-  (gexp->derivation "sh"
-                    #~(symlink (string-append #$bash "/bin/bash")
-                               #$output)))
-@end example
-
-@c See
-@c <https://syntaxexclamation.wordpress.com/2014/06/26/escaping-continuations/>
-@c for the funny quote.
-L'appel à la procédure monadique @code{sh-symlink} n'a aucun effet.  En
-anglais on pourrait dire « you exit a monad like you exit a building on
-fire: by running »@footnote{NdT : « on sort d'une monade comme d'un immeuble
-en flamme, en courant ».  Le jeu de mot est perdu à la traduction : courir
-et lancer utilisent le même verbe @i{run} en anglais.}. Donc, pour sortir de
-la monade et obtenir l'effet escompté, on doit utiliser
-@code{run-with-store}.
-
-@example
-(run-with-store (open-connection) (sh-symlink))
-@result{} /gnu/store/...-sh-symlink
-@end example
-
-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 :
-
-@example
-scheme@@(guile-user)> ,run-in-store (package->derivation hello)
-$1 = #<derivation /gnu/store/@dots{}-hello-2.9.drv => @dots{}>
-@end example
-
-La deuxième entre dans une console récursive, où toutes les valeurs de
-retour sont automatiquement lancées à travers le dépôt :
-
-@example
-scheme@@(guile-user)> ,enter-store-monad
-store-monad@@(guile-user) [1]> (package->derivation hello)
-$2 = #<derivation /gnu/store/@dots{}-hello-2.9.drv => @dots{}>
-store-monad@@(guile-user) [1]> (text-file "foo" "Hello!")
-$3 = "/gnu/store/@dots{}-foo"
-store-monad@@(guile-user) [1]> ,q
-scheme@@(guile-user)>
-@end example
-
-@noindent
-Remarquez qu'on ne peut pas renvoyer de valeur non monadique dans la console
-@code{store-monad}.
-
-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.
-
-@deffn {Syntaxe Scheme} with-monad @var{monad} @var{body} ...
-Évalue n'importe quelle forme @code{>>=} ou @code{return} dans @var{body}
-comme une @var{monad}.
-@end deffn
-
-@deffn {Syntaxe Scheme} return @var{val}
-Renvoie une valeur monadique qui encapsule @var{val}.
-@end deffn
-
-@deffn {Syntaxe Scheme} >>= @var{mval} @var{mproc} ...
-@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 :
-
-@example
-(run-with-state
-    (with-monad %state-monad
-      (>>= (return 1)
-           (lambda (x) (return (+ 1 x)))
-           (lambda (x) (return (* 2 x)))))
-  'some-state)
-
-@result{} 4
-@result{} some-state
-@end example
-@end deffn
-
-@deffn {Syntaxe Scheme} mlet @var{monad} ((@var{var} @var{mval}) ...) @
-       @var{body} ...
-@deffnx {Syntaxe Scheme} mlet* @var{monad} ((@var{var} @var{mval}) ...) @
-       @var{body} ...
-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}.
-
-@code{mlet*} est à @code{mlet} ce que @code{let*} est à @code{let}
-(@pxref{Local Bindings,,, guile, GNU Guile Reference Manual}).
-@end deffn
-
-@deffn {Système Scheme} mbegin @var{monad} @var{mexp} ...
-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.
-
-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.
-@end deffn
-
-@deffn {Système Scheme} mwhen @var{condition} @var{mexp0} @var{mexp*} ...
-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.
-@end deffn
-
-@deffn {Système Scheme} munless @var{condition} @var{mexp0} @var{mexp*} ...
-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.
-@end deffn
-
-@cindex monade d'état
-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.
-
-@defvr {Variable Scheme} %state-monad
-La monade d'état.  les procédure dans la monade d'état peuvent accéder et
-modifier l'état qui est enfilé.
-
-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 :
-
-@example
-(define (square x)
-  (mlet %state-monad ((count (current-state)))
-    (mbegin %state-monad
-      (set-current-state (+ 1 count))
-      (return (* x x)))))
-
-(run-with-state (sequence %state-monad (map square (iota 3))) 0)
-@result{} (0 1 4)
-@result{} 3
-@end example
-
-Lorsqu'on la lance à travers @var{%state-monad}, on obtient cet valeur
-d'état supplémentaire, qui est le nombre d'appels à @code{square}.
-@end defvr
-
-@deffn {Procédure monadique} current-state
-Renvoie l'état actuel dans une valeur monadique.
-@end deffn
-
-@deffn {Procédure monadique} set-current-state @var{value}
-Initialise l'état actuel à @var{value} et renvoie l'état précédent dans une
-valeur monadique.
-@end deffn
-
-@deffn {Procédure monadique} state-push @var{value}
-Pousse @var{value} sur l'état actuel, qui est supposé être une liste, et
-renvoie l'état précédent dans une valeur monadique.
-@end deffn
-
-@deffn {Procédure monadique} state-pop
-Récupère (pop) une valeur dans l'état actuel et la renvoie comme une valeur
-monadique.  L'état est supposé être une liste.
-@end deffn
-
-@deffn {Procédure Scheme} run-with-state @var{mval} [@var{state}]
-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.
-@end deffn
-
-L'interface principale avec la monade du dépôt, fournit par le module
-@code{(guix store)}, est la suivante.
-
-@defvr {Variable Scheme} %store-monad
-La monade du dépôt — un alias pour @var{%state-monad}.
-
-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).
-@end defvr
-
-@deffn {Procédure Scheme} run-with-store @var{store} @var{mval} [#:guile-for-build] [#:system (%current-system)]
-Lance @var{mval}, une valeur monadique dans la monade du dépôt, dans
-@var{store}, une connexion ouvert au dépôt.
-@end deffn
-
-@deffn {Procédure monadique} text-file @var{name} @var{text} [@var{references}]
-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.
-@end deffn
-
-@deffn {Procédure monadique} binary-file @var{name} @var{data} [@var{references}]
-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.
-@end deffn
-
-@deffn {Procédure monadique} interned-file @var{file} [@var{name}] @
-         [#:recursive? #t] [#:select? (const #t)]
-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.
-
-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.
-
-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.
-
-L'exemple ci-dessous ajoute un fichier au dépôt, sous deux noms différents :
-
-@example
-(run-with-store (open-connection)
-  (mlet %store-monad ((a (interned-file "README"))
-                      (b (interned-file "README" "LEGU-MIN")))
-    (return (list a b))))
-
-@result{} ("/gnu/store/rwm@dots{}-README" "/gnu/store/44i@dots{}-LEGU-MIN")
-@end example
-
-@end deffn
-
-Le module @code{(guix packages)} exporte les procédures monadiques liées aux
-paquets suivantes :
-
-@deffn {Procédure monadique} package-file @var{package} [@var{file}] @
-       [#:system (%current-system)] [#:target #f] @
-[#:output "out"]
-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.
-@end deffn
-
-@deffn {Procédure monadique} package->derivation @var{package} [@var{system}]
-@deffnx {Procédure monadique} package->cross-derivation @var{package} @
-          @var{target} [@var{system}]
-Version monadique de @code{package-derivation} et
-@code{package-cross-derivation} (@pxref{Définition des paquets}).
-@end deffn
-
-
-@node G-Expressions
-@section G-Expressions
-
-@cindex G-expression
-@cindex quoting du code de construction
-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{Dérivations}).  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{Invoquer guix-daemon}).
-
-@cindex strate de code
-Ç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éfini 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.
-
-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.
-
-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 :
-
-@itemize
-@item
-Les Gexps sont conçues pour être écrites dans un fichier et être lancées ou
-manipulées par d'autres processus.
-
-@item
-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.
-
-@item
-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.
-@end itemize
-
-@cindex abaissement, des objets haut-niveau dans les gepxs
-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).
-
-Pour illustrer cette idée, voici un exemple de gexp :
-
-@example
-(define build-exp
-  #~(begin
-      (mkdir #$output)
-      (chdir #$output)
-      (symlink (string-append #$coreutils "/bin/ls")
-               "list-files")))
-@end example
-
-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} :
-
-@example
-(gexp->derivation "the-thing" build-exp)
-@end example
-
-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.
-
-@cindex compilation croisée
-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 :
-
-@example
-(gexp->derivation "vi"
-   #~(begin
-       (mkdir #$output)
-       (system* (string-append #+coreutils "/bin/ln")
-                "-s"
-                (string-append #$emacs "/bin/emacs")
-                (string-append #$output "/bin/vi")))
-   #:target "mips64el-linux-gnu")
-@end example
-
-@noindent
-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.
-
-@cindex modules importés, pour les gexps
-@findex with-imported-modules
-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 :
-
-@example
-(let ((build (with-imported-modules '((guix build utils))
-               #~(begin
-                   (use-modules (guix build utils))
-                   (mkdir-p (string-append #$output "/bin"))))))
-  (gexp->derivation "empty-dir"
-                    #~(begin
-                        #$build
-                        (display "success!\n")
-                        #t)))
-@end example
-
-@noindent
-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.
-
-@cindex closure de module
-@findex source-module-closure
-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 :
-
-@example
-(use-modules (guix modules))   ;pour 'source-module-closure'
-
-(with-imported-modules (source-module-closure
-                         '((guix build utils)
-                           (gnu build vm)))
-  (gexp->derivation "something-with-vms"
-                    #~(begin
-                        (use-modules (guix build utils)
-                                     (gnu build vm))
-                        @dots{})))
-@end example
-
-@cindex extensions, des gexps
-@findex with-extensions
-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 :
-
-@example
-(use-modules (gnu packages guile))  ;pour 'guile-json'
-
-(with-extensions (list guile-json)
-  (gexp->derivation "something-with-json"
-                    #~(begin
-                        (use-modules (json))
-                        @dots{})))
-@end example
-
-La forme syntaxique pour construire des gexps est résumée ci-dessous.
-
-@deffn {Syntaxe Scheme} #~@var{exp}
-@deffnx {Syntaxe Scheme} (gexp @var{exp})
-Renvoie une G-expression contenant @var{exp}.  @var{exp} peut contenir une
-ou plusieurs de ces formes :
-
-@table @code
-@item #$@var{obj}
-@itemx (ungexp @var{obj})
-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}.
-
-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.
-
-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.
-
-Si @var{obj} est un autre type d'objet, il est inséré tel quel.
-
-@item #$@var{obj}:@var{output}
-@itemx (ungexp @var{obj} @var{output})
-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{Des paquets avec plusieurs résultats}).
-
-@item #+@var{obj}
-@itemx #+@var{obj}:output
-@itemx (ungexp-native @var{obj})
-@itemx (ungexp-native @var{obj} @var{output})
-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.
-
-@item #$output[:@var{output}]
-@itemx (ungexp output [@var{output}])
-Insère une référence à la sortie @var{output} de la dérivation, ou à la
-sortie principale lorsque @var{output} est omis.
-
-Cela ne fait du sens que pour les gexps passées à @code{gexp->derivation}.
-
-@item #$@@@var{lst}
-@itemx (ungexp-splicing @var{lst})
-Comme au dessus, mais recolle (@i{splice}) le contenu de @var{lst} dans la
-liste qui la contient.
-
-@item #+@@@var{lst}
-@itemx (ungexp-native-splicing @var{lst})
-Comme au dessus, mais se réfère à la construction native des objets listés
-dans @var{lst}.
-
-@end table
-
-Les G-expressions crées par @code{gexp} ou @code{#~} sont des objets à
-l'exécution du type @code{gexp?} (voir plus bas).
-@end deffn
-
-@deffn {Syntaxe Scheme} with-imported-modules @var{modules} @var{body}@dots{}
-Marque les gexps définies dans @var{body}@dots{} comme requérant
-@var{modules} dans leur environnement d'exécution.
-
-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 :
-
-@example
-`((guix build utils)
-  (guix gcrypt)
-  ((guix config) => ,(scheme-file "config.scm"
-                                  #~(define-module @dots{}))))
-@end example
-
-@noindent
-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.
-
-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{}.
-@end deffn
-
-@deffn {Syntaxe Scheme} with-extensions @var{extensions} @var{body}@dots{}
-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)}.
-
-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{}.
-@end deffn
-
-@deffn {Procédure Scheme} gexp? @var{obj}
-Renvoie @code{#t} si @var{obj} est une G-expression.
-@end deffn
-
-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{La monade du dépôt}, pour plus d'information sur les monads).
-
-@deffn {Procédure monadique} gexp->derivation @var{name} @var{exp} @
-       [#: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]
-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}.
-
-@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))}.
-
-@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"}.
-
-@var{graft?} détermine si les paquets référencés par @var{exp} devraient
-être greffés si possible.
-
-Lorsque @var{references-graphs} est vrai, il doit s'agir d'une liste de
-tuples de la forme suivante :
-
-@example
-(@var{file-name} @var{package})
-(@var{file-name} @var{package} @var{output})
-(@var{file-name} @var{derivation})
-(@var{file-name} @var{derivation} @var{output})
-(@var{file-name} @var{store-item})
-@end example
-
-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.
-
-@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.
-
-@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}.
-
-Les autres arguments sont les mêmes que pour @code{derivation}
-(@pxref{Dérivations}).
-@end deffn
-
-@cindex objets simili-fichiers
-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 :
-
-@example
-#~(system* #$(file-append glibc "/sbin/nscd") "-f"
-           #$(local-file "/tmp/my-nscd.conf"))
-@end example
-
-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.
-
-@deffn {Procédure Scheme} local-file @var{file} [@var{name}] @
-   [#:recursive? #f] [#:select? (const #t)]
-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}.
-
-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.
-
-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.
-
-C'est la version déclarative de la procédure monadique @code{interned-file}
-(@pxref{La monade du dépôt, @code{interned-file}}).
-@end deffn
-
-@deffn {Procédure Scheme} plain-file @var{name} @var{content}
-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.
-
-C'est la version déclarative de @code{text-file}.
-@end deffn
-
-@deffn {Procédure Scheme} computed-file @var{name} @var{gexp} @
-          [#:options '(#:local-build? #t)]
-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}.
-
-C'est la version déclarative de @code{gexp->derivation}.
-@end deffn
-
-@deffn {Procédure monadique} gexp->script @var{name} @var{exp} @
-  [#:guile (default-guile)] [#:module-path %load-path]
-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}.
-
-L'exemple ci-dessous construit un script qui invoque simplement la commande
-@command{ls} :
-
-@example
-(use-modules (guix gexp) (gnu packages base))
-
-(gexp->script "list-files"
-              #~(execl #$(file-append coreutils "/bin/ls")
-                       "ls"))
-@end example
-
-Lorsqu'elle est « lancée » à travers le dépôt (@pxref{La monade du dépôt,
-@code{run-with-store}}), on obtient une dérivation qui produit une fichier
-exécutable @file{/gnu/store/@dots{}-list-files} qui ressemble à :
-
-@example
-#!/gnu/store/@dots{}-guile-2.0.11/bin/guile -ds
-!#
-(execl "/gnu/store/@dots{}-coreutils-8.22"/bin/ls" "ls")
-@end example
-@end deffn
-
-@deffn {Procédure Scheme} program-file @var{name} @var{exp} @
-          [#:guile #f] [#:module-path %load-path]
-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}.
-
-C'est la version déclarative de @code{gexp->script}.
-@end deffn
-
-@deffn {Procédure monadique} gexp->file @var{name} @var{exp} @
-            [#:set-load-path? #t] [#:module-path %load-path] @
-[#:splice? #f] @
-[#:guile (default-guile)]
-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.
-
-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}.
-
-Le fichier qui en résulte retient les références à toutes les dépendances de
-@var{exp} ou un sous-ensemble.
-@end deffn
-
-@deffn {Procédure Scheme} scheme-file @var{name} @var{exp} [#:splice? #f]
-Renvoie un objet représentant le fichier Scheme @var{name} qui contient
-@var{exp}.
-
-C'est la version déclarative de @code{gexp->file}.
-@end deffn
-
-@deffn {Procédure monadique} text-file* @var{name} @var{text} @dots{}
-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.
-
-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 :
-
-@example
-(define (profile.sh)
-  ;; Renvoie le nom d'un script shell dans le dépôt qui initialise
-  ;; la variable d'environnement « PATH ».
-  (text-file* "profile.sh"
-              "export PATH=" coreutils "/bin:"
-              grep "/bin:" sed "/bin\n"))
-@end example
-
-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.
-@end deffn
-
-@deffn {Procédure Scheme} mixed-text-file @var{name} @var{text} @dots{}
-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 :
-
-@example
-(mixed-text-file "profile"
-                 "export PATH=" coreutils "/bin:" grep "/bin")
-@end example
-
-C'est la version déclarative de @code{text-file*}.
-@end deffn
-
-@deffn {Procédure Scheme} file-union @var{name} @var{files}
-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 :
-
-@example
-(file-union "etc"
-            `(("hosts" ,(plain-file "hosts"
-                                    "127.0.0.1 localhost"))
-              ("bashrc" ,(plain-file "bashrc"
-                                     "alias ls='ls --color=auto'"))))
-@end example
-
-Cela crée un répertoire @code{etc} contenant ces deux fichiers.
-@end deffn
-
-@deffn {Procédure Scheme} directory-union @var{name} @var{things}
-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
-:
-
-@example
-(directory-union "guile+emacs" (list guile emacs))
-@end example
-
-crée un répertoire qui est l'union des paquets @code{guile} et @code{emacs}.
-@end deffn
-
-@deffn {Procédure Scheme} file-append @var{obj} @var{suffix} @dots{}
-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.
-
-Par exemple, considérez cette gexp :
-
-@example
-(gexp->script "run-uname"
-              #~(system* #$(file-append coreutils
-                                        "/bin/uname")))
-@end example
-
-On peut obtenir le même effet avec :
-
-@example
-(gexp->script "run-uname"
-              #~(system* (string-append #$coreutils
-                                        "/bin/uname")))
-@end example
-
-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}.
-@end deffn
-
-
-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{})}.
-
-@cindex abaissement, des objets haut-niveau dans les gepxs
-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}.
-
-@deffn {Procédure monadique} lower-object @var{obj} [@var{system}] @
-           [#:target #f]
-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>}.
-@end deffn
-
-@node Invoquer guix repl
-@section Invoquer @command{guix repl}
-
-@cindex REPL, read-eval-print loop
-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 :
-
-@example
-$ guix repl
-scheme@@(guile-user)> ,use (gnu packages base)
-scheme@@(guile-user)> coreutils
-$1 = #<package coreutils@@8.29 gnu/packages/base.scm:327 3e28300>
-@end example
-
-@cindex inférieurs
-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.
-
-Les options disponibles sont les suivante :
-
-@table @code
-@item --type=@var{type}
-@itemx -t @var{type}
-Démarrer un REPL du @var{type} donné, qui peut être l'un de ces types :
-
-@table @code
-@item guile
-C'est la valeur par défaut.  Elle démarre un REPL Guile standard
-fonctionnel.
-@item machine
-Démarre un REPL qui utilise le protocole lisible par machine.  C'est le
-protocole que parle le module @code{(guix inferior)}.
-@end table
-
-@item --listen=@var{extrémité}
-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 :
-
-@table @code
-@item --listen=tcp:37146
-Accepte les connexions sur localhost, sur le port 31.
-
-@item --listen=unix:/tmp/socket
-Accepte les connexions sur le socket Unix-domain @file{/tmp/socket}.
-@end table
-@end table
-
-@c *********************************************************************
-@node Utilitaires
-@chapter Utilitaires
-
-cette section décrit les utilitaires en ligne de commande de Guix.  certains
-sont surtout faits pour les développeurs 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.
-
-@menu
-* Invoquer guix build::      Construire des paquets depuis la ligne de 
-                               commande.
-* Invoquer guix edit::       Modifier les définitions de paquets.
-* Invoquer guix download::   Télécharger un fichier et afficher son hash.
-* Invoquer guix hash::       Calculer le hash cryptographique d'un fichier.
-* Invoquer guix import::     Importer des définitions de paquets.
-* Invoquer guix refresh::    Mettre à jour les définitions de paquets.
-* Invoquer guix lint::       Trouver des erreurs dans les définitions de 
-                               paquets.
-* Invoquer guix size::       Profiler l'utilisation du disque.
-* Invoquer guix graph::      Visualiser le graphe des paquets.
-* Invoquer guix publish::    Partager des substituts.
-* Invoquer guix challenge::  Défier les serveurs de substituts.
-* Invoquer guix copy::       Copier vers et depuis un dépôt distant.
-* Invoquer guix container::  Isolation de processus.
-* Invoquer guix weather::    Mesurer la disponibilité des substituts.
-* Invoquer guix processes::  Lister les processus clients.
-@end menu
-
-@node Invoquer guix build
-@section Invoquer @command{guix build}
-
-@cindex construction de paquets
-@cindex @command{guix build}
-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{Invoquer guix package}).  Ainsi,
-elle est surtout utile pour les développeurs de la distribution.
-
-La syntaxe générale est :
-
-@example
-guix build @var{options} @var{package-or-derivation}@dots{}
-@end example
-
-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 :
-
-@example
-guix build emacs guile
-@end example
-
-De même, la commande suivante construit tous les paquets disponibles :
-
-@example
-guix build --quiet --keep-going \
-  `guix package -A | cut -f1,2 --output-delimiter=@@`
-@end example
-
-@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{Modules de paquets}).
-
-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.
-
-Il peut y avoir aucune, une ou plusieurs @var{options}.  Les options
-disponibles sont décrites dans les sous-sections ci-dessous.
-
-@menu
-* Options de construction communes::  Options de construction pour la 
-                                        plupart des commandes.
-* Options de transformation de paquets::  Créer des variantes de paquets.
-* Options de construction supplémentaires::  Options spécifiques à « 
-                                                guix build ».
-* Débogage des échecs de construction::  La vie d'un empaqueteur.
-@end menu
-
-@node Options de construction communes
-@subsection Options de construction communes
-
-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 :
-
-@table @code
-
-@item --load-path=@var{répertoire}
-@itemx -L @var{répertoire}
-Ajoute @var{répertoire} au début du chemin de recherche de module de paquets
-(@pxref{Modules de paquets}).
-
-Cela permet à des utilisateurs de définir leur propres paquets et les rendre
-disponibles aux outils en ligne de commande.
-
-@item --keep-failed
-@itemx -K
-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{Débogage des échecs de construction}, pour des astuces sur la manière de déboguer
-des problèmes de construction.
-
-Cette option n'a pas d'effet lors de la connexion à un démon distant avec
-l'URI @code{guix://} (@pxref{Le dépôt, la variable
-@code{GUIX_DAEMON_SOCKET}}).
-
-@item --keep-going
-@itemx -k
-Continue lorsque certaines dérivations échouent ; ne s'arrête que lorsque
-toutes les constructions ont soit réussies, soit échouées.
-
-Le comportement par défaut est de s'arrêter dès qu'une des dérivations
-spécifiées échoue.
-
-@item --dry-run
-@itemx -n
-Ne pas construire les dérivations.
-
-@anchor{option de repli}
-@item --fallback
-Lorsque la substitution d'un binaire pré-compilé échoue, construit les
-paquets localement à la place (@pxref{Échec de substitution}).
-
-@item --substitute-urls=@var{urls}
-@anchor{client-substitute-urls}
-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}).
-
-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}).
-
-Lorsque @var{urls} est la chaîne vide, cela a pour effet de désactiver la
-substitution.
-
-@item --no-substitutes
-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}).
-
-@item --no-grafts
-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{Mises à jour de sécurité}, pour plus d'information sur les greffes.
-
-@item --rounds=@var{n}
-Construit chaque dérivation @var{n} fois d'affilé, et renvoie une erreur si
-les constructions consécutives ne sont pas identiques bit-à-bit.
-
-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{Invoquer guix challenge}, pour plus d'informations.
-
-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{Invoquer guix archive}),
-puis en reconstruisant, et enfin en comparant les deux résultats.
-
-@item --no-build-hook
-N'essaye pas de décharger les constructions via le « crochet de construction
-» du démon (@pxref{Réglages du délestage du démon}).  C'est-à-dire que tout sera
-construit localement plutôt que de décharger les constructions à une machine
-distante.
-
-@item --max-silent-time=@var{secondes}
-Lorsque le processus de construction ou de substitution restent silencieux
-pendant plus de @var{secondes}, le terminer et rapporter une erreur de
-construction.
-
-Par défaut, les paramètres du démon sont pris en compte (@pxref{Invoquer guix-daemon, @code{--max-silent-time}}).
-
-@item --timeout=@var{secondes}
-De même, lorsque le processus de construction ou de substitution dure plus
-de @var{secondes}, le terminer et rapporter une erreur de construction.
-
-Par défaut, les paramètres du démon sont pris en compte (@pxref{Invoquer guix-daemon, @code{--timeout}}).
-
-@c Note: This option is actually not part of %standard-build-options but
-@c most programs honor it.
-@cindex verbosity, of the command-line tools
-@cindex build logs, verbosity
-@item -v @var{level}
-@itemx --verbosity=@var{level}
-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.
-
-@item --cores=@var{n}
-@itemx -c @var{n}
-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.
-
-@item --max-jobs=@var{n}
-@itemx -M @var{n}
-Permet au plus @var{n} travaux de construction en parallèle.  @xref{Invoquer guix-daemon, @code{--max-jobs}}, pour plus de détails sur cette option et
-l'option équivalente pour @command{guix-daemon}.
-
-@item --debug=@var{level}
-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.
-
-@end table
-
-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)}.
-
-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}.
-
-@defvr {Variable d'environnement} GUIX_BUILD_OPTIONS
-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 :
-
-@example
-$ export GUIX_BUILD_OPTIONS="--no-substitutes -c 2 -L /foo/bar"
-@end example
-
-Ces options sont analysées indépendamment, et le résultat est ajouté aux
-options de la ligne de commande analysées.
-@end defvr
-
-
-@node Options de transformation de paquets
-@subsection Options de transformation de paquets
-
-@cindex variantes de paquets
-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{Définition des paquets}).
-
-@table @code
-
-@item --with-source=@var{source}
-@itemx --with-source=@var{paquet}=@var{source}
-@itemx --with-source=@var{paquet}@@@var{version}=@var{source}
-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{Invoquer guix download}).
-
-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}.
-
-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}.
-
-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} :
-
-@example
-guix build ed --with-source=mirror://gnu/ed/ed-1.7.tar.gz
-@end example
-
-En tant que développeur, @code{--with-source} permet de tester facilement
-des version bêta :
-
-@example
-guix build guile --with-source=../guile-2.0.9.219-e1bb7.tar.xz
-@end example
-
-@dots{} ou pour construire un dépôt de gestion de version dans un
-environnement vierge :
-
-@example
-$ git clone git://git.sv.gnu.org/guix.git
-$ guix build guix --with-source=guix@@1.0=./guix
-@end example
-
-@item --with-input=@var{paquet}=@var{remplaçant}
-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}.
-
-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} :
-
-@example
-guix build --with-input=guile=guile@@2.0 guix
-@end example
-
-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}.
-
-Cette option est implémentée avec la procédure Scheme
-@code{package-input-rewriting} (@pxref{Définition des paquets,
-@code{package-input-rewriting}}).
-
-@item --with-graft=@var{paquet}=@var{remplaçant}
-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{Mises à jour de sécurité}, pour plus
-d'information sur les greffes.
-
-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 :
-
-@example
-guix build --with-graft=gnutls=gnutls@@3.5.4 wget
-@end example
-
-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 !
-
-@item --with-branch=@var{package}=@var{branch}
-@cindex Git, using the latest commit
-@cindex latest commit, building
-Build @var{package} from the latest commit of @var{branch}.  The
-@code{source} field of @var{package} must be an origin with the
-@code{git-fetch} method (@pxref{Référence d'origine}) or a @code{git-checkout}
-object; the repository URL is taken from that @code{source}.  Git
-sub-modules of the repository are fetched, recursively.
-
-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:
-
-@example
-guix build --with-branch=guile-sqlite3=master cuirass
-@end example
-
-@cindex intégration continue
-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).
-
-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.
-
-@item --with-commit=@var{package}=@var{commit}
-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.
-@end table
-
-@node Options de construction supplémentaires
-@subsection Options de construction supplémentaires
-
-Les options de la ligne de commande ci-dessous sont spécifiques à
-@command{guix build}.
-
-@table @code
-
-@item --quiet
-@itemx -q
-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.
-
-@item --file=@var{fichier}
-@itemx -f @var{fichier}
-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}).
-
-Par exemple, @var{file} peut contenir une définition de paquet comme ceci
-(@pxref{Définition des paquets}) :
-
-@example
-@verbatiminclude package-hello.scm
-@end example
-
-@item --expression=@var{expr}
-@itemx -e @var{expr}
-Construit le paquet ou la dérivation en lequel @var{expr} s'évalue.
-
-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.
-
-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}).
-
-Enfin, @var{expr} peut se référer à une procédure monadique à au moins un
-argument (@pxref{La monade du dépôt}).  La procédure doit renvoyer une
-dérivation comme une valeur monadique, qui est ensuite lancée à travers
-@code{run-with-store}.
-
-@item --source
-@itemx -S
-Construit les dérivation source des paquets, plutôt que des paquets
-eux-mêmes.
-
-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.
-
-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{Définition des paquets}).
-
-@item --sources
-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 :
-
-@table @code
-@item package
-Cette valeur fait que l'option @code{--sources} se comporte comme l'option
-@code{--source}.
-
-@item all
-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.
-
-@example
-$ guix build --sources tzdata
-The following derivations will be built:
-   /gnu/store/@dots{}-tzdata2015b.tar.gz.drv
-   /gnu/store/@dots{}-tzcode2015b.tar.gz.drv
-@end example
-
-@item transitive
-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.
-
-@example
-$ guix build --sources=transitive tzdata
-The following derivations will be built:
-   /gnu/store/@dots{}-tzcode2015b.tar.gz.drv
-   /gnu/store/@dots{}-findutils-4.4.2.tar.xz.drv
-   /gnu/store/@dots{}-grep-2.21.tar.xz.drv
-   /gnu/store/@dots{}-coreutils-8.23.tar.xz.drv
-   /gnu/store/@dots{}-make-4.1.tar.xz.drv
-   /gnu/store/@dots{}-bash-4.3.tar.xz.drv
-@dots{}
-@end example
-
-@end table
-
-@item --system=@var{système}
-@itemx -s @var{système}
-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.
-
-@quotation Remarque
-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.
-@end quotation
-
-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.
-
-@quotation Remarque
-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.
-@end quotation
-
-De même, lorsque l'émulation transparente avec QEMU et @code{binfnmt_misc}
-est activée (@pxref{Services de virtualisation,
-@code{qemu-binfmt-service-type}}), vous pouvez construire pour n'importe
-quel système pour lequel un gestionnaire QEMU @code{binfmt_misc} est
-installé.
-
-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{Réglages du délestage du démon}, pour plus d'information sur le
-déchargement.
-
-@item --target=@var{triplet}
-@cindex compilation croisée
-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}).
-
-@anchor{vérification de la construction}
-@item --check
-@cindex déterminisme, vérification
-@cindex reproductibilité, vérification
-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.
-
-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{Invoquer guix challenge}
-pour plus d'informations et pour les outils.
-
-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.
-
-@item --repair
-@cindex réparer les éléments du dépôt
-@cindex corruption, récupérer de
-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.
-
-Cette opération n'est pas atomique et donc restreinte à l'utilisateur
-@code{root}
-
-@item --derivations
-@itemx -d
-Renvoie les chemins de dérivation, et non les chemins de sortie, des paquets
-donnés.
-
-@item --root=@var{fichier}
-@itemx -r @var{fichier}
-@cindex racines du GC, ajout
-@cindex ajout de racines au ramasse-miettes
-Fait de @var{fichier} un lien symbolique vers le résultat, et l'enregistre
-en tant que racine du ramasse-miettes.
-
-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.
-
-@item --log-file
-@cindex journaux de construction, accès
-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.
-
-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 :
-
-@example
-guix build --log-file `guix build -d guile`
-guix build --log-file `guix build guile`
-guix build --log-file guile
-guix build --log-file -e '(@@ (gnu packages guile) guile-2.0)'
-@end example
-
-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}.)
-
-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} :
-
-@example
-$ guix build --log-file gdb -s mips64el-linux
-https://@value{SUBSTITUTE-SERVER}/log/@dots{}-gdb-7.10
-@end example
-
-Vous pouvez accéder librement à un vaste bibliothèque de journaux de
-construction !
-@end table
-
-@node Débogage des échecs de construction
-@subsection Débogage des échecs de construction
-
-@cindex échecs de construction, débogage
-Lors de la définition d'un nouveau paquet (@pxref{Définition des paquets}), 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.
-
-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{Invoquer guix build, @code{--keep-failed}}).
-
-À 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 :
-
-@example
-$ guix build foo -K
-@dots{} @i{build fails}
-$ cd /tmp/guix-build-foo.drv-0
-$ source ./environment-variables
-$ cd foo-1.2
-@end example
-
-Maintenant, vous pouvez invoquer les commandes comme si vous étiez le démon
-(presque) et corriger le processus de construction.
-
-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{Réglages de l'environnement de construction}).
-
-Dans ce cas, vous pourriez avoir besoin de lancer le processus de
-construction dans un conteneur similaire à celui que le démon crée :
-
-@example
-$ guix build -K foo
-@dots{}
-$ cd /tmp/guix-build-foo.drv-0
-$ guix environment --no-grafts -C foo --ad-hoc strace gdb
-[env]# source ./environment-variables
-[env]# cd foo-1.2
-@end example
-
-Ici, @command{guix environment -C} crée un conteneur et démarre un nouveau
-shell dedans (@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 obtient le même
-environnement, avec des paquets non greffés (@pxref{Mises à jour de sécurité}, pour
-plus d'informations sur les greffes).
-
-Pour obtenir un conteneur plus proche de ce qui serait utilisé par le démon
-de construction, on peut enlever @file{/bin/sh} :
-
-@example
-[env]# rm /bin/sh
-@end example
-
-Ne vous inquiétez pas, c'est sans danger : tout cela se passe dans un
-conteneur jetable créé par @command{guix environment}.
-
-La commande @command{strace} n'est probablement pas dans le chemin de
-recherche, mais on peut lancer :
-
-@example
-[env]# $GUIX_ENVIRONMENT/bin/strace -f -o log make check
-@end example
-
-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.
-
-
-@node Invoquer guix edit
-@section Invoquer @command{guix edit}
-
-@cindex @command{guix edit}
-@cindex définition de paquets, modification
-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 :
-
-@example
-guix edit gcc@@4.9 vim
-@end example
-
-@noindent
-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.
-
-Si vous utilisez une copie du dépôt Git de Guix (@pxref{Construire depuis Git}),
-ou que vous avez créé vos propres paquets dans @code{GUIX_PACKAGE_PATH}
-(@pxref{Modules de paquets}), vous pourrez modifier les recettes des paquets.
-Sinon, vous pourrez examiner les recettes en lecture-seule des paquets
-actuellement dans le dépôt.
-
-
-@node Invoquer guix download
-@section Invoquer @command{guix download}
-
-@cindex @command{guix download}
-@cindex télécharger les sources des paquets
-En écrivant des définitions de paquets, les développeurs ont 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{Définition des paquets}).
-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.
-
-Le fait que le fichier téléchargé soit ajouté au dépôt préserve la bande
-passante : lorsque les développeurs finissent par construire le paquet
-nouvellement défini avec @command{guix build}, l'archive des sources n'aura
-pas besoin d'être téléchargée de nouveau puisqu'elle se trouvera 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{Invoquer guix gc}).
-
-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.
-
-@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{Certificats X.509}), à moins que @option{--no-check-certificate} ne soit utilisé.
-
-Les options suivantes sont disponibles :
-
-@table @code
-@item --format=@var{fmt}
-@itemx -f @var{fmt}
-Écrit le hash dans le format spécifié par @var{fmt}.  Pour plus
-d'informations sur les valeurs valides pour @var{fmt}, @pxref{Invoquer guix hash}.
-
-@item --no-check-certificate
-Ne pas valider les certificats HTTPS des serveurs.
-
-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 ».
-
-@item --output=@var{fichier}
-@itemx -o @var{fichier}
-Enregistre le fichier téléchargé dans @var{fichier} plutôt que de l'ajouter
-au dépôt.
-@end table
-
-@node Invoquer guix hash
-@section Invoquer @command{guix hash}
-
-@cindex @command{guix hash}
-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{Définition des paquets}).
-
-La syntaxe générale est :
-
-@example
-guix hash @var{option} @var{fichier}
-@end example
-
-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 :
-
-@table @code
-
-@item --format=@var{fmt}
-@itemx -f @var{fmt}
-Écrit le hash dans le format spécifié par @var{fmt}.
-
-Les formats supportés sont : @code{nix-base32}, @code{base32}, @code{base16}
-(@code{hex} et @code{hexadecimal} peuvent aussi être utilisés).
-
-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.
-
-@item --recursive
-@itemx -r
-Calcule le hash sur @var{fichier} récursivement.
-
-@c FIXME: Replace xref above with xref to an ``Archive'' section when
-@c it exists.
-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{Invoquer guix archive}).
-
-@item --exclude-vcs
-@itemx -x
-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).
-
-@vindex git-fetch
-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{Référence d'origine}) :
-
-@example
-$ git clone http://example.org/foo.git
-$ cd foo
-$ guix hash -rx .
-@end example
-@end table
-
-@node Invoquer guix import
-@section Invoquer @command{guix import}
-
-@cindex importer des paquets
-@cindex paquets importés
-@cindex conversion de paquets
-@cindex Invoquer @command{guix import}
-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{Définition des paquets}).
-
-La syntaxe générale est :
-
-@example
-guix import @var{importer} @var{options}@dots{}
-@end example
-
-@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 :
-
-@table @code
-@item gnu
-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.
-
-Les informations supplémentaires comme les dépendances du paquet et sa
-licence doivent être renseignées manuellement.
-
-Par exemple, la commande suivante renvoie une définition de paquets pour
-GNU@tie{}Hello :
-
-@example
-guix import gnu hello
-@end example
-
-Les options spécifiques sont :
-
-@table @code
-@item --key-download=@var{politique}
-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{Invoquer guix refresh, @code{--key-download}}.
-@end table
-
-@item pypi
-@cindex pypi
-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.
-
-La commande ci-dessous importe les métadonnées du paquet Python
-@code{itsdangerous} :
-
-@example
-guix import pypi itsdangerous
-@end example
-
-@table @code
-@item --recursive
-@itemx -r
-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.
-@end table
-
-@item gem
-@cindex gem
-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.
-
-La commande ci-dessous importe les métadonnées pour le paquet Ruby
-@code{rails} :
-
-@example
-guix import gem rails
-@end example
-
-@table @code
-@item --recursive
-@itemx -r
-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.
-@end table
-
-@item cpan
-@cindex CPAN
-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.
-
-La commande ci-dessous importe les métadonnées du module Perl
-@code{Acme::Boolean} :
-
-@example
-guix import cpan Acme::Boolean
-@end example
-
-@item cran
-@cindex CRAN
-@cindex Bioconductor
-Importe des métadonnées de @uref{https://cran.r-project.org/, CRAN}, le
-dépôt central de @uref{http://r-project.org, l'environnement statistique et
-graphique GUN@tie{}R}.
-
-Les informations sont extraites du fichier @file{DESCRIPTION} du paquet.
-
-La commande ci-dessous importe les métadonnées du paquet R @code{Cairo} :
-
-@example
-guix import cran Cairo
-@end example
-
-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.
-
-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.
-
-Les informations sont extraites du fichier @file{DESCRIPTION} d'un paquet
-publié sur l'interface web du dépôt SVN de Bioconductor.
-
-La commande ci-dessous importe les métadonnées du paquet R
-@code{GenomicRanges} :
-
-@example
-guix import cran --archive=bioconductor GenomicRanges
-@end example
-
-@item texlive
-@cindex TeX Live
-@cindex CTAN
-Importe les métadonnées de @uref{http://www.ctan.org/, CTAN}, l'archive TeX
-réseau complète pour les paquets TeX qui font partie de la
-@uref{https://www.tug.org/texlive/, distribution TeX Live}.
-
-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.
-
-La commande ci-dessous importe les métadonnées du paquet TeX @code{fontspec}
-:
-
-@example
-guix import texlive fontspec
-@end example
-
-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.
-
-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} :
-
-@example
-guix import texlive --archive=generic ifxetex
-@end example
-
-@item json
-@cindex JSON, import
-Import package metadata from a local JSON file.  Consider the following
-example package definition in JSON format:
-
-@example
-@{
-  "name": "hello",
-  "version": "2.10",
-  "source": "mirror://gnu/hello/hello-2.10.tar.gz",
-  "build-system": "gnu",
-  "home-page": "https://www.gnu.org/software/hello/",
-  "synopsis": "Hello, GNU world: An example GNU package",
-  "description": "GNU Hello prints a greeting.",
-  "license": "GPL-3.0+",
-  "native-inputs": ["gcc@@6"]
-@}
-@end example
-
-Les noms des champs sont les mêmes que pour les enregistrements de
-@code{<package>} (@xref{Définition des paquets}).  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}.
-
-L'importateur supporte aussi une définition plus explicite des sources avec
-les champs habituels pour les enregistrements @code{<origin>} :
-
-@example
-@{
-  @dots{}
-  "source": @{
-    "method": "url-fetch",
-    "uri": "mirror://gnu/hello/hello-2.10.tar.gz",
-    "sha256": @{
-      "base32": "0ssi1wpaf7plaswqqjwigppsg5fyh99vdlb9kzl7c9lng89ndq1i"
-    @}
-  @}
-  @dots{}
-@}
-@end example
-
-La commande ci-dessous lit les métadonnées du fichier JSON @code{hello.json}
-et renvoie une expression de paquet :
-
-@example
-guix import json hello.json
-@end example
-
-@item nix
-Importe les métadonnées d'une copie locale des source de
-@uref{http://nixos.org/nixpkgs/, la distribution Nixpkgs}@footnote{Cela
-repose sur la commande @command{nix-instantiate} de
-@uref{http://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.
-
-Lorsque vous importez un paquet GNU, le synopsis et la description sont
-replacés par la version canonique en amont.
-
-Normalement, vous devrez d'abord faire :
-
-@example
-export NIX_REMOTE=daemon
-@end example
-
-@noindent
-pour que @command{nix-instantiate} n'essaye pas d'ouvrir la base de données
-de Nix.
-
-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}) :
-
-@example
-guix import nix ~/path/to/nixpkgs libreoffice
-@end example
-
-@item hackage
-@cindex hackage
-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.
-
-Les options spécifiques sont :
-
-@table @code
-@item --stdin
-@itemx -s
-Lit un fichier Cabal depuis l'entrée standard.
-@item --no-test-dependencies
-@itemx -t
-N'inclut pas les dépendances requises uniquement par les suites de tests.
-@item --cabal-environment=@var{alist}
-@itemx -e @var{alist}
-@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}.
-@item --recursive
-@itemx -r
-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.
-@end table
-
-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}
-:
-
-@example
-guix import hackage -t -e "'((\"network-uri\" . false))" HTTP
-@end example
-
-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 :
-
-@example
-guix import hackage mtl@@2.1.3.1
-@end example
-
-@item stackage
-@cindex stackage
-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.
-
-Les options spécifiques sont :
-
-@table @code
-@item --no-test-dependencies
-@itemx -t
-N'inclut pas les dépendances requises uniquement par les suites de tests.
-@item --lts-version=@var{version}
-@itemx -l @var{version}
-@var{version} est la version LTS désirée.  Si elle est omise, la dernière
-version est utilisée.
-@item --recursive
-@itemx -r
-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.
-@end table
-
-La commande ci-dessous importe les métadonnées du paquet Haskell @code{HTTP}
-inclus dans la version LTS 7.18 de Stackage :
-
-@example
-guix import stackage --lts-version=7.18 HTTP
-@end example
-
-@item elpa
-@cindex elpa
-Importe les métadonnées du dépôt de paquets ELPA (Emacs Lisp Package
-Archive) (@pxref{Packages,,, emacs, The GNU Emacs Manual}).
-
-Les options spécifiques sont :
-
-@table @code
-@item --archive=@var{repo}
-@itemx -a @var{repo}
-@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
-:
-@itemize -
-@item
-@uref{http://elpa.gnu.org/packages, GNU}, qu'on peut choisir avec
-l'identifiant @code{gnu}.  C'est la valeur par défaut.
-
-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}).
-
-@item
-@uref{http://stable.melpa.org/packages, MELPA-Stable}, qu'on peut
-sélectionner avec l'identifiant @code{melpa-stable}.
-
-@item
-@uref{http://melpa.org/packages, MELPA}, qu'on peut sélectionner avec
-l'identifiant @code{melpa}.
-@end itemize
-
-@item --recursive
-@itemx -r
-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.
-@end table
-
-@item crate
-@cindex crate
-Importe les métadonnées du répertoire des paquets Rust
-@uref{https://crates.io, crates.io}.
-
-@item opam
-@cindex OPAM
-@cindex OCaml
-Importe les métadonnées du répertoire de paquets
-@uref{https://opam.ocaml.org/, OPAM} utilisé par la communauté OCaml
-@end table
-
-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{Contribuer}).
-
-@node Invoquer guix refresh
-@section Invoquer @command{guix refresh}
-
-@cindex @command{guix refresh}
-L'audience première de la commande @command{guix refresh} est l'ensemble des
-développeurs de 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 :
-
-@example
-$ guix refresh
-gnu/packages/gettext.scm:29:13: gettext serait mis à jour de 0.18.1.1 à 0.18.2.1
-gnu/packages/glib.scm:77:12: glib serait mis à jour de 2.34.3 à 2.37.0
-@end example
-
-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é :
-
-@example
-$ guix refresh coreutils guile guile-ssh
-gnu/packages/ssh.scm:205:2 : avertissement : aucun gestionnaire de mise à jour pour guile-ssh
-gnu/packages/guile.scm:136:12 : guile serait mis à jour de 2.0.12 à 2.0.13
-@end example
-
-@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 !
-
-@table @code
-
-@item --recursive
-Consider the packages specified, and all the packages upon which they
-depend.
-
-@example
-$ guix refresh --recursive coreutils
-gnu/packages/acl.scm:35:2: warning: no updater for acl
-gnu/packages/m4.scm:30:12: info: 1.4.18 is already the latest version of m4
-gnu/packages/xml.scm:68:2: warning: no updater for expat
-gnu/packages/multiprecision.scm:40:12: info: 6.1.2 is already the latest version of gmp
-@dots{}
-@end example
-
-@end table
-
-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 :
-
-@example
-(define-public network-manager
-  (package
-    (name "network-manager")
-    ;; @dots{}
-    (properties '((upstream-name . "NetworkManager")))))
-@end example
-
-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{Définition des paquets}).
-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.
-
-Les options suivantes sont supportées :
-
-@table @code
-
-@item --expression=@var{expr}
-@itemx -e @var{expr}
-Considérer le paquet évalué par @var{expr}.
-
-C'est utile pour précisément se référer à un paquet, comme dans cet exemple
-:
-
-@example
-guix refresh -l -e '(@@@@ (gnu packages commencement) glibc-final)'
-@end example
-
-Cette commande liste les paquets qui dépendent de la libc « finale » (en
-gros tous les paquets).
-
-@item --update
-@itemx -u
-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{Lancer Guix avant qu'il ne soit installé}) :
-
-@example
-$ ./pre-inst-env guix refresh -s non-core -u
-@end example
-
-@xref{Définition des paquets}, pour plus d'information sur les définitions des
-paquets.
-
-@item --select=[@var{subset}]
-@itemx -s @var{subset}
-Choisi tous les paquets dans @var{subset}, entre @code{core} et
-@code{non-core}.
-
-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.
-
-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.
-
-@item --manifest=@var{fichier}
-@itemx -m @var{fichier}
-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.
-
-@item --type=@var{updater}
-@itemx -t @var{updater}
-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
-:
-
-@table @code
-@item gnu
-le gestionnaire de mise à jour pour les paquets GNU ;
-@item gnome
-le gestionnaire de mise à jour pour les paquets GNOME ;
-@item kde
-le gestionnaire de mise à jour pour les paquets KDE ;
-@item xorg
-le gestionnaire de mise à jour pour les paquets X.org ;
-@item kernel.org
-le gestionnaire de mise à jour pour les paquets hébergés sur kernel.org ;
-@item elpa
-le gestionnaire de mise à jour pour les paquets @uref{http://elpa.gnu.org/,
-ELPA} ;
-@item cran
-le gestionnaire de mise à jour pour les paquets
-@uref{https://cran.r-project.org/, CRAN} ;
-@item bioconductor
-le gestionnaire de mise à jour pour les paquets
-@uref{https://www.bioconductor.org/, Bioconductor} ;
-@item cpan
-le gestionnaire de mise à jour pour les paquets @uref{http://www.cpan.org/,
-CPAN} ;
-@item pypi
-le gestionnaire de mise à jour pour les paquets
-@uref{https://pypi.python.org, PyPI} ;
-@item gem
-le gestionnaire de mise à jour pour les paquets @uref{https://rubygems.org,
-RubyGems} ;
-@item github
-le gestionnaire de mise à jour pour les paquets @uref{https://github.com,
-GitHub} ;
-@item hackage
-le gestionnaire de mise à jour pour les paquets
-@uref{https://hackage.haskell.org, Hackage} ;
-@item stackage
-le gestionnaire de mise à jour pour les paquets
-@uref{https://www.stackage.org, Stackage} ;
-@item crate
-le gestionnaire de mise à jour pour les paquets @uref{https://crates.io,
-Crates} ;
-@end table
-
-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 :
-
-@example
-$ guix refresh --type=elpa,cran
-gnu/packages/statistics.scm:819:13 : r-testthat serait mis à jour de 0.10.0 à 0.11.0
-gnu/packages/emacs.scm:856:13 : emacs-auctex serait mis à jour de 11.88.6 à 11.88.9
-@end example
-
-@end table
-
-En plus, on peut passer à @command{guix refresh} un ou plusieurs noms de
-paquets, comme dans cet exemple :
-
-@example
-$ ./pre-inst-env guix refresh -u emacs idutils gcc@@4.8
-@end example
-
-@noindent
-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.
-
-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} :
-
-@table @code
-
-@item --list-updaters
-@itemx -L
-Liste les gestionnaires de mise à jour et quitte (voir l'option
-@option{--type} plus haut).
-
-Pour chaque gestionnaire, affiche le pourcentage de paquets qu'il couvre ; à
-la fin, affiche le pourcentage de paquets couverts par tous les
-gestionnaires.
-
-@item --list-dependent
-@itemx -l
-Liste les paquets de plus haut-niveau qui devraient être reconstruits après
-la mise à jour d'un ou plusieurs paquets.
-
-@xref{Invoquer 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.
-
-@end table
-
-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.
-
-@example
-$ guix refresh --list-dependent flex
-Building the following 120 packages would ensure 213 dependent packages are rebuilt:
-hop@@2.4.0 geiser@@0.4 notmuch@@0.18 mu@@0.9.9.5 cflow@@1.4 idutils@@4.6 @dots{}
-@end example
-
-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}.
-
-@table @code
-
-@item --list-transitive
-List all the packages which one or more packages depend upon.
-
-@example
-$ guix refresh --list-transitive flex
-flex@@2.6.4 depends on the following 25 packages: perl@@5.28.0 help2man@@1.47.6
-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{}
-@end example
-
-@end table
-
-The command above lists a set of packages which, when changed, would cause
-@code{flex} to be rebuilt.
-
-Les options suivante peuvent être utilisées pour personnaliser les
-opérations avec GnuPG :
-
-@table @code
-
-@item --gpg=@var{commande}
-Utilise @var{commande} comme la commande de GnuPG 2.x.  @var{commande} est
-recherchée dans @code{PATH}.
-
-@item --keyring=@var{fichier}
-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).
-
-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).
-
-Vous pouvez exporter les clefs de votre porte-clefs GPG par défaut dans un
-fichier keybox avec une commande telle que :
-
-@example
-gpg --export rms@@gnu.org | kbxutil --import-openpgp >> mykeyring.kbx
-@end example
-
-De même, vous pouvez récupérer des clefs dans un fichier keybox spécifique
-comme ceci :
-
-@example
-gpg --no-default-keyring --keyring mykeyring.kbx \
-  --recv-keys @value{OPENPGP-SIGNING-KEY-ID}
-@end example
-
-@ref{GPG Configuration Options, @option{--keyring},, gnupg, Using the GNU
-Privacy Guard} pour plus d'informations sur l'option @option{--keyring} de
-GPG.
-
-@item --key-download=@var{politique}
-Gère les clefs OpenPGP manquantes d'après la @var{politique}, qui peut être
-l'une des suivantes :
-
-@table @code
-@item always
-Toujours télécharger les clefs manquantes depuis un serveur de clefs et les
-ajouter au porte-clefs de l'utilisateur.
-
-@item never
-Ne jamais essayer de télécharger les clefs OpenPGP manquante.  Quitter à la
-place.
-
-@item interactive
-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.
-@end table
-
-@item --key-server=@var{host}
-Utiliser @var{host} comme serveur de clefs OpenPGP lors de l'importe d'une
-clef publique.
-
-@end table
-
-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.
-
-
-@node Invoquer guix lint
-@section Invoquer @command{guix lint}
-
-@cindex @command{guix lint}
-@cindex paquets, chercher des erreurs
-La commande @command{guix lint} est conçue pour aider les développeurs à
-éviter des erreurs commune 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) :
-
-@table @code
-@item synopsis
-@itemx description
-Vérifie certaines règles typographiques et stylistiques dans les
-descriptions et les synopsis.
-
-@item inputs-should-be-native
-Identifie les entrées qui devraient sans doute plutôt être des entrées
-natives.
-
-@item source
-@itemx home-page
-@itemx mirror-url
-@itemx github-url
-@itemx source-file-name
-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{Référence d'origine}).
-
-@item source-unstable-tarball
-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.
-
-@item cve
-@cindex vulnérabilités
-@cindex CVE, Common Vulnerabilities and Exposures
-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}.
-
-Pour voir les informations sur une vulnérabilité en particulier, visitez les
-pages :
-
-@itemize
-@item
-@indicateurl{https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-ANNÉE-ABCD}
-@item
-@indicateurl{https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-ANNÉE-ABCD}
-@end itemize
-
-@noindent
-où @code{CVE-ANNÉE-ABCD} est l'identifiant CVE — p.@: ex.@:
-@code{CVE-2015-7554}.
-
-Les développeurs de paquets peuvent 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 :
-
-@example
-(package
-  (name "grub")
-  ;; @dots{}
-  ;; CPE calls this package "grub2".
-  (properties '((cpe-name . "grub2")
-                (cpe-version . "2.3")))
-@end example
-
-@c See <http://www.openwall.com/lists/oss-security/2017/03/15/3>.
-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éveloppeurs qui trouvent des alertes CVE et ont vérifiés
-qu'elles peuvent être ignorées peuvent les déclarer comme dans cet exemple :
-
-@example
-(package
-  (name "t1lib")
-  ;; @dots{}
-  ;; Ces CVE ne s'appliquent plus et peuvent être ignorée sans problème.
-  (properties `((lint-hidden-cve . ("CVE-2011-0433"
-                                    "CVE-2011-1553"
-                                    "CVE-2011-1554"
-                                    "CVE-2011-5244")))))
-@end example
-
-@item formatting
-Avertit le développeurs lorsqu'il y a des problèmes de formatage du code
-source évident : des espaces en fin de ligne, des tabulations, etc.
-@end table
-
-La syntaxe générale est :
-
-@example
-guix lint @var{options} @var{package}@dots{}
-@end example
-
-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 :
-
-@table @code
-@item --list-checkers
-@itemx -l
-Liste et décrit tous les vérificateurs disponibles qui seront lancés sur les
-paquets puis quitte.
-
-@item --checkers
-@itemx -c
-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}.
-
-@end table
-
-@node Invoquer guix size
-@section Invoquer @command{guix size}
-
-@cindex taille
-@cindex paquet, taille
-@cindex closure
-@cindex @command{guix size}
-La commande @command{guix size} aide les développeurs à dresser un profil de
-l'utilisation du disque que font les paquets.  C'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{Des paquets avec plusieurs résultats}).  Ce sont les
-problèmes que @command{guix size} peut typiquement mettre en valeur.
-
-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 :
-
-@example
-$ guix size coreutils
-store item                               total    self
-/gnu/store/@dots{}-gcc-5.5.0-lib           60.4    30.1  38.1%
-/gnu/store/@dots{}-glibc-2.27              30.3    28.8  36.6%
-/gnu/store/@dots{}-coreutils-8.28          78.9    15.0  19.0%
-/gnu/store/@dots{}-gmp-6.1.2               63.1     2.7   3.4%
-/gnu/store/@dots{}-bash-static-4.4.12       1.5     1.5   1.9%
-/gnu/store/@dots{}-acl-2.2.52              61.1     0.4   0.5%
-/gnu/store/@dots{}-attr-2.4.47             60.6     0.2   0.3%
-/gnu/store/@dots{}-libcap-2.25             60.5     0.2   0.2%
-total: 78.9 MiB
-@end example
-
-@cindex closure
-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 :
-
-@example
-$ guix gc -R /gnu/store/@dots{}-coreutils-8.23
-@end example
-
-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.
-
-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).
-
-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{Mises à jour de sécurité} 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}).
-
-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.
-
-Vous pouvez aussi spécifier plusieurs noms de paquets :
-
-@example
-$ guix size coreutils grep sed bash
-store item                               total    self
-/gnu/store/@dots{}-coreutils-8.24          77.8    13.8  13.4%
-/gnu/store/@dots{}-grep-2.22               73.1     0.8   0.8%
-/gnu/store/@dots{}-bash-4.3.42             72.3     4.7   4.6%
-/gnu/store/@dots{}-readline-6.3            67.6     1.2   1.2%
-@dots{}
-total: 102.3 MiB
-@end example
-
-@noindent
-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.
-
-Les options disponibles sont :
-
-@table @option
-
-@item --substitute-urls=@var{urls}
-Utilise les informations de substituts de @var{urls}.
-@xref{client-substitute-urls, the same option for @code{guix build}}.
-
-@item --sort=@var{clef}
-Trie les lignes en fonction de la @var{clef}, l'une des options suivantes :
-
-@table @code
-@item self
-la taille de chaque élément (par défaut) ;
-@item closure
-la taille totale de la clôture de l'élément.
-@end table
-
-@item --map-file=@var{fichier} 
-Écrit un schéma de l'utilisation du disque au format PNG dans @var{fichier}.
-
-Pour l'exemple au-dessus, le schéma ressemble à ceci :
-
-@image{images/coreutils-size-map,5in,, schéma de l'utilisation du disque de
-Coreutils produit par @command{guix size}}
-
-Cette option requiert l'installation de
-@uref{http://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.
-
-@item --system=@var{système}
-@itemx -s @var{système}
-Considère les paquets pour @var{système} — p.@: ex.@: @code{x86_64-linux}.
-
-@end table
-
-@node Invoquer guix graph
-@section Invoque @command{guix graph}
-
-@cindex DAG
-@cindex @command{guix graph}
-@cindex dépendances des paquets
-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{http://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{http://www.opencypher.org/, openCypher}.  La
-syntaxe générale est :
-
-@example
-guix graph @var{options} @var{paquet}@dots{}
-@end example
-
-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 :
-
-@example
-guix graph coreutils | dot -Tpdf > dag.pdf
-@end example
-
-La sortie ressemble à ceci :
-
-@image{images/coreutils-graph,2in,,Graphe de dépendance de GNU Coreutils}
-
-Joli petit graphe, non ?
-
-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 :
-
-@table @code
-@item package
-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.
-
-@item reverse-package
-Cela montre le DAG @emph{inversé} des paquets.  Par exemple :
-
-@example
-guix graph --type=reverse-package ocaml
-@end example
-
-...@: yields the graph of packages that depend on OCaml.
-
-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{Invoquer guix refresh,
-@option{--list-dependent}}).
-
-@item bag-emerged
-C'est le DAG du paquet, @emph{avec} les entrées implicites.
-
-Par exemple, la commande suivante :
-
-@example
-guix graph --type=bag-emerged coreutils | dot -Tpdf > dag.pdf
-@end example
-
-...@: yields this bigger graph:
-
-@image{images/coreutils-bag-graph,,5in,Graphe des dépendances détaillé de
-GNU Coreutils}
-
-En bas du graphe, on voit toutes les entrées implicites de
-@var{gnu-build-system} (@pxref{Systèmes de construction, @code{gnu-build-system}}).
-
-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.
-
-@item bag
-Comme @code{bag-emerged} mais cette fois inclus toutes les dépendances de
-bootstrap.
-
-@item bag-with-origins
-Comme @code{bag}, mais montre aussi les origines et leurs dépendances.
-
-@item dérivation
-C'est la représentation lu plus détaillée : elle montre le DAG des
-dérivations (@pxref{Dérivations}) 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.
-
-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 :
-
-@example
-guix graph -t derivation `guix system build -d my-config.scm`
-@end example
-
-@item module
-C'est le graphe des @dfn{modules de paquets} (@pxref{Modules de paquets}).  Par
-exemple, la commande suivante montre le graphe des modules de paquets qui
-définissent le paquet @code{guile} :
-
-@example
-guix graph -t module guile | dot -Tpdf > module-graph.pdf
-@end example
-@end table
-
-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} :
-
-@table @code
-@item references
-C'est le graphe des @dfn{references} d'une sortie d'un paquet, telles que
-renvoyées par @command{guix gc --references} (@pxref{Invoquer guix gc}).
-
-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.
-
-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 !) :
-
-@example
-guix graph -t references `readlink -f ~/.guix-profile`
-@end example
-
-@item referrers
-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{Invoquer guix gc}).
-
-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.
-
-Cela peut aider à déterminer ce qui empêche un élément du dépôt d'être
-glané.
-
-@end table
-
-Les options disponibles sont les suivante :
-
-@table @option
-@item --type=@var{type}
-@itemx -t @var{type}
-Produit un graphe en sortie de type @var{type} où @var{type} doit être l'un
-des types au-dessus.
-
-@item --list-types
-Liste les types de graphes supportés.
-
-@item --backend=@var{moteur}
-@itemx -b @var{moteur}
-Produit un graphe avec le @var{moteur} choisi.
-
-@item --list-backends
-Liste les moteurs de graphes supportés.
-
-Actuellement les moteurs disponibles sont Graphviz et d3.js.
-
-@item --expression=@var{expr}
-@itemx -e @var{expr}
-Considérer le paquet évalué par @var{expr}.
-
-C'est utile pour précisément se référer à un paquet, comme dans cet exemple
-:
-
-@example
-guix graph -e '(@@@@ (gnu packages commencement) gnu-make-final)'
-@end example
-
-@item --system=@var{système}
-@itemx -s @var{système}
-Affiche le graphe pour @var{système} — p.@: ex.@: @code{i686-linux}.
-
-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.
-@end table
-
-
-
-@node Invoquer guix publish
-@section Invoquer @command{guix publish}
-
-@cindex @command{guix publish}
-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}).
-
-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.
-
-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.
-
-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{Invoquer guix archive}).
-
-La syntaxe générale est :
-
-@example
-guix publish @var{options}@dots{}
-@end example
-
-Lancer @command{guix publish} sans arguments supplémentaires lancera un
-serveur HTTP sur le port 8080 :
-
-@example
-guix publish
-@end example
-
-Une fois qu'un serveur de publication a été autorisé (@pxref{Invoquer guix archive}), le démon peut télécharger des substituts à partir de lui :
-
-@example
-guix-daemon --substitute-urls=http://example.org:8080
-@end example
-
-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{Invoquer guix weather}).
-
-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{Référence d'origine}).  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{Invoquer guix hash}) :
-
-@example
-http://example.org/file/hello-2.10.tar.gz/sha256/0ssi1@dots{}ndq1i
-@end example
-
-Évidemment, ces URL ne fonctionnent que pour des fichiers dans le dépôt ;
-dans les autres cas, elles renvoie une erreur 404 (« Introuvable »).
-
-@cindex journaux de construction, publication
-Les journaux de construction sont disponibles à partir des URL @code{/log}
-comme ceci :
-
-@example
-http://example.org/log/gwspk@dots{}-guile-2.2.3
-@end example
-
-@noindent
-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 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.
-
-Les options suivantes sont disponibles :
-
-@table @code
-@item --port=@var{port}
-@itemx -p @var{port}
-Écoute les requêtes HTTP sur le @var{port}
-
-@item --listen=@var{hôte}
-Écoute sur l'interface réseau de @var{hôte}.  Par défaut, la commande
-accepte les connexions de n'importe quelle interface.
-
-@item --user=@var{utilisateur}
-@itemx -u @var{utilisateur}
-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.
-
-@item --compression[=@var{niveau}]
-@itemx -C [@var{niveau}]
-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.
-
-À 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.
-
-@item --cache=@var{répertoire}
-@itemx -c @var{répertoire}
-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.
-
-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.
-
-À 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.
-
-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.
-
-Lorsque l'option @option{--ttl} est utilisée, les entrées cachées sont
-automatiquement supprimées lorsqu'elles expirent.
-
-@item --workers=@var{N}
-Lorsque @option{--cache} est utilisée, demande l'allocation de @var{N}
-thread de travail pour créer les archives.
-
-@item --ttl=@var{ttl}
-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.
-
-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}.
-
-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.
-
-@item --nar-path=@var{chemin}
-Utilise @var{chemin} comme préfixe des URL de fichier « nar »
-(@pxref{Invoquer guix archive, normalized archives}).
-
-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}.
-
-@item --public-key=@var{fichier}
-@itemx --private-key=@var{fichier}
-Utilise les @var{fichier}s spécifiques comme pair de clefs utilisées pour
-signer les éléments avant de les publier.
-
-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{Invoquer guix archive}).  Par défaut,
-@file{/etc/guix/signing-key.pub} et @file{/etc/guix/signing-key.sec} sont
-utilisés.
-
-@item --repl[=@var{port}]
-@itemx -r [@var{port}]
-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.
-@end table
-
-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}}).
-
-Si vous avez installé Guix sur une « distro extérieure », suivez ces
-instructions :
-
-@itemize
-@item
-Si votre distro hôte utilise le système d'init systemd :
-
-@example
-# ln -s ~root/.guix-profile/lib/systemd/system/guix-publish.service \
-        /etc/systemd/system/
-# systemctl start guix-publish && systemctl enable guix-publish
-@end example
-
-@item
-Si votre distribution hôte utilise le système d'initialisation Upstart :
-
-@example
-# ln -s ~root/.guix-profile/lib/upstart/system/guix-publish.conf /etc/init/
-# start guix-publish
-@end example
-
-@item
-Sinon, procédez de manière similaire avec votre système d'init de votre
-distro.
-@end itemize
-
-@node Invoquer guix challenge
-@section Invoquer @command{guix challenge}
-
-@cindex constructions reproductibles
-@cindex constructions vérifiables
-@cindex @command{guix challenge}
-@cindex défi
-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.
-
-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.
-
-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é.
-
-La sortie de la commande ressemble à :
-
-@smallexample
-$ guix challenge --substitute-urls="https://@value{SUBSTITUTE-SERVER} https://guix.example.org"
-updating list of substitutes from 'https://@value{SUBSTITUTE-SERVER}'... 100.0%
-updating list of substitutes from 'https://guix.example.org'... 100.0%
-/gnu/store/@dots{}-openssl-1.0.2d contents differ:
-  local hash: 0725l22r5jnzazaacncwsvp9kgf42266ayyp814v7djxs7nk963q
-  https://@value{SUBSTITUTE-SERVER}/nar/@dots{}-openssl-1.0.2d: 0725l22r5jnzazaacncwsvp9kgf42266ayyp814v7djxs7nk963q
-  https://guix.example.org/nar/@dots{}-openssl-1.0.2d: 1zy4fmaaqcnjrzzajkdn3f5gmjk754b43qkq47llbyak9z0qjyim
-/gnu/store/@dots{}-git-2.5.0 contents differ:
-  local hash: 00p3bmryhjxrhpn2gxs2fy0a15lnip05l97205pgbk5ra395hyha
-  https://@value{SUBSTITUTE-SERVER}/nar/@dots{}-git-2.5.0: 069nb85bv4d4a6slrwjdy8v1cn4cwspm3kdbmyb81d6zckj3nq9f
-  https://guix.example.org/nar/@dots{}-git-2.5.0: 0mdqa9w1p6cmli6976v4wi0sw9r4p5prkj7lzfd1877wk11c9c73
-/gnu/store/@dots{}-pius-2.1.1 contents differ:
-  local hash: 0k4v3m9z1zp8xzzizb7d8kjj72f9172xv078sq4wl73vnq9ig3ax
-  https://@value{SUBSTITUTE-SERVER}/nar/@dots{}-pius-2.1.1: 0k4v3m9z1zp8xzzizb7d8kjj72f9172xv078sq4wl73vnq9ig3ax
-  https://guix.example.org/nar/@dots{}-pius-2.1.1: 1cy25x1a4fzq5rk0pmvc8xhwyffnqz95h2bpvqsz2mpvlbccy0gs
-
-@dots{}
-
-6,406 éléments du dépôt ont été analysés :
-  - 4,749 (74.1%) étaient identiques
-  - 525 (8.2%) étaient différents
-  - 1,132 (17.7%) étaient impossibles à évaluer
-@end smallexample
-
-@noindent
-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.
-
-@cindex non-déterminisme, dans les constructions des paquets
-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{Fonctionnalités}).  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.
-
-Pour trouver ce qui ne va pas avec le binaire de Git, on peut faire quelque
-chose comme cela (@pxref{Invoquer guix archive}) :
-
-@example
-$ wget -q -O - https://@value{SUBSTITUTE-SERVER}/nar/@dots{}-git-2.5.0 \
-   | guix archive -x /tmp/git
-$ diff -ur --no-dereference /gnu/store/@dots{}-git.2.5.0 /tmp/git
-@end example
-
-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.
-
-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.
-
-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:
-
-@example
-$ guix challenge @var{paquet}
-@end example
-
-@noindent
-où @var{paquet} est une spécification de paquet comme @code{guile@@2.0} ou
-@code{glibc:debug}.
-
-La syntaxe générale est :
-
-@example
-guix challenge @var{options} [@var{paquets}@dots{}]
-@end example
-
-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).
-
-L'option qui compte est :
-
-@table @code
-
-@item --substitute-urls=@var{urls}
-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.
-
-@item --verbose
-@itemx -v
-Montre des détails sur les correspondances (contenu identique) en plus des
-informations sur différences.
-
-@end table
-
-@node Invoquer guix copy
-@section Invoquer @command{guix copy}
-
-@cindex copier des éléments du dépôt par SSH
-@cindex SSH, copie d'éléments du dépôt
-@cindex partager des éléments du dépôt entre plusieurs machines
-@cindex transférer des éléments du dépôt entre plusieurs machines
-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{Prérequis},
-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} :
-
-@example
-guix copy --to=@var{utilisateur}@@@var{hôte} \
-          coreutils `readlink -f ~/.guix-profile`
-@end example
-
-Si certains éléments à copier sont déjà présents sur @var{hôte}, ils ne sont
-pas envoyés.
-
-La commande ci-dessous récupère @code{libreoffice} et @code{gimp} depuis
-@var{hôte}, en supposant qu'ils y sont présents :
-
-@example
-guix copy --from=@var{hôte} libreoffice gimp
-@end example
-
-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.
-
-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{Invoquer guix archive}, pour plus d'informations sur
-l'authentification des éléments du dépôt.
-
-La syntaxe générale est :
-
-@example
-guix copy [--to=@var{spec}|--from=@var{spec}] @var{items}@dots{}
-@end example
-
-Vous devez toujours spécifier l'une des options suivantes :
-
-@table @code
-@item --to=@var{spec}
-@itemx --from=@var{spec}
-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}.
-@end table
-
-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}.
-
-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{Options de construction communes}).
-
-
-@node Invoquer guix container
-@section Invoquer @command{guix container}
-@cindex conteneur
-@cindex @command{guix container}
-@quotation Remarque
-À la version @value{VERSION}, cet outil est toujours expérimental.
-L'interface est sujette à changement radicaux dans le futur.
-@end quotation
-
-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{Invoquer guix environment}) et @command{guix system container}
-(@pxref{Invoquer guix system}).
-
-La syntaxe générale est :
-
-@example
-guix container @var{action} @var{options}@dots{}
-@end example
-
-@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.
-
-Les actions suivantes sont disponibles :
-
-@table @code
-@item exec
-Exécute une commande dans le contexte d'un conteneur lancé.
-
-La syntaxe est :
-
-@example
-guix container exec @var{pid} @var{programme} @var{arguments}@dots{}
-@end example
-
-@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}.
-
-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:
-
-@example
-guix container exec 9001 /run/current-system/profile/bin/bash --login
-@end example
-
-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.
-
-@end table
-
-@node Invoquer guix weather
-@section Invoquer @command{guix weather}
-
-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{Invoquer guix publish}).
-
-@cindex statistiques sur les substituts
-@cindex disponibilité des substituts
-@cindex substituts, disponibilité
-@cindex weather, disponibilité des substituts
-Voici un exemple :
-
-@example
-$ guix weather --substitute-urls=https://guix.example.org
-calcul de 5,872 dérivations de paquets pour x86_64-linux…
-recherche de 6,128 éléments du dépôt sur https://guix.example.org…
-mise à jour de la liste des substituts depuis 'https://guix.example.org'... 100.0%
-https://guix.example.org
-  43.4% substituts disponibles (2,658 sur 6,128)
-  7,032.5 Mo de fichiers nar (compressés)
-  19,824.2 Mo sur le disque (décompressés)
-  0.030 secondes par requêtes (182.9 secondes au total)
-  33.5 requêtes par seconde
-
-  9.8% (342 sur 3,470) des éléments manquants sont dans la queue
-  867 constructions dans la queue
-      x86_64-linux : 518 (59.7%)
-      i686-linux : 221 (25.5%)
-      aarch64-linux : 128 (14.8%)
-  vitesse de construction : 23.41 constructions par heure
-      x86_64-linux : 11.16 constructions par heure
-      i686-linux : 6.03 constructions par heure
-      aarch64-linux : 6.41 constructions par heure
-@end example
-
-@cindex intégration continue, statistiques
-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).
-
-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.
-
-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.
-
-@table @code
-@item --substitute-urls=@var{urls}
-@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é.
-
-@item --system=@var{système}
-@itemx -s @var{système}
-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.
-
-@item --manifest=@var{fichier}
-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{Invoquer guix package}).
-
-@item --coverage[=@var{count}]
-@itemx -c [@var{count}]
-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:
-
-@example
-$ guix weather --substitute-urls=https://ci.guix.fr.info -c 10
-computing 8,983 package derivations for x86_64-linux...
-looking for 9,343 store items on https://ci.guix.fr.info...
-updating substitutes from 'https://ci.guix.fr.info'... 100.0%
-https://ci.guix.fr.info
-  64.7% substitutes available (6,047 out of 9,343)
-@dots{}
-2502 packages are missing from 'https://ci.guix.fr.info' for 'x86_64-linux', among which:
-    58  kcoreaddons@@5.49.0      /gnu/store/@dots{}-kcoreaddons-5.49.0
-    46  qgpgme@@1.11.1           /gnu/store/@dots{}-qgpgme-1.11.1
-    37  perl-http-cookiejar@@0.008  /gnu/store/@dots{}-perl-http-cookiejar-0.008
-    @dots{}
-@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.fr.info};
-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 fail to build.
-@end table
-
-@node Invoquer guix processes
-@section Invoquer @command{guix processes}
-
-La commande @command{guix processes} peut être utile pour les développeurs
-et les administrateurs systèmes, surtout sur des machines multi-utilisateurs
-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 :
-
-@example
-$ sudo guix processes
-SessionPID: 19002
-ClientPID: 19090
-ClientCommand: guix environment --ad-hoc python
-
-SessionPID: 19402
-ClientPID: 19367
-ClientCommand: guix publish -u guix-publish -p 3000 -C 9 @dots{}
-
-SessionPID: 19444
-ClientPID: 19419
-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
-@end example
-
-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.
-
-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{Réglages du délestage du démon}).
-
-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 :
-
-@example
-$ sudo guix processes | \
-    recsel -p ClientPID,ClientCommand -e 'LockHeld ~ "perl"'
-ClientPID: 19419
-ClientCommand: cuirass --cache-directory /var/cache/cuirass @dots{}
-@end example
-
-
-@node Configuration système
-@chapter Configuration système
-
-@cindex configuration du système
-La distribution système Guix 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, des fuseaux horaires, des paramètres linguistiques, 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.
-
-@c Yes, we're talking of Puppet, Chef, & co. here.  ↑
-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{Fonctionnalités}).  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.
-
-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.
-
-@menu
-* Utiliser le système de configuration::  Personnaliser votre système 
-                                             GNU@.
-* Référence de système d'exploitation::  Détail sur la déclaration de 
-                                              système d'exploitation.
-* Systèmes de fichiers::    Configurer les montages de systèmes de 
-                               fichiers.
-* Périphériques mappés::  Gestion des périphériques de bloc.
-* Comptes utilisateurs::     Spécifier des comptes utilisateurs.
-* Régionalisation::         Paramétrer la langue et les conventions 
-                               culturelles.
-* Services::                 Spécifier les services du système.
-* Programmes setuid::        Programmes tournant avec les privilèges root.
-* Certificats X.509::        Authentifier les serveurs HTTPS@.
-* Name Service Switch::      Configurer le « name service switch » de la 
-                               libc.
-* Disque de RAM initial::    Démarrage de Linux-Libre.
-* Configuration du chargeur d'amorçage::  Configurer le chargeur 
-                                             d'amorçage.
-* Invoquer guix system::     Instantier une configuration du système.
-* Running Guix in a VM::     How to run Guix System in a virtual machine.
-* Définir des services::    Ajouter de nouvelles définitions de services.
-@end menu
-
-@node Utiliser le système de configuration
-@section Utiliser le système de configuration
-
-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{Invoquer 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
-:
-
-@findex operating-system
-@lisp
-@include os-config-bare-bones.texi
-@end lisp
-
-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.
-
-Ci-dessous nous discutons des effets de certains des champs les plus
-importants (@pxref{Référence de système d'exploitation}, pour des détails sur tous
-les champs disponibles) et comment @dfn{instancier} le système
-d'exploitation avec @command{guix system}.
-
-@unnumberedsubsec Bootloader
-
-@cindex ancien système de démarrage, sur les machines Intel
-@cindex démarrage BIOS, sur les machines Intel
-@cindex démarrage UEFI
-@cindex démarrage EFI
-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 :
-
-@example
-(bootloader-configuration
-  (bootloader grub-efi-bootloader)
-  (target "/boot/efi"))
-@end example
-
-@xref{Configuration du chargeur d'amorçage}, pour plus d'informations sur les options de
-configuration disponibles.
-
-@unnumberedsubsec Paquets visibles sur tout le système
-
-@vindex %base-packages
-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{Invoquer 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{Modules de paquets}).  Vous pouvez utiliser la syntaxe
-@code{(list paquet sortie)} pour ajouter une sortie spécifique d'un paquet :
-
-@lisp
-(use-modules (gnu packages))
-(use-modules (gnu packages dns))
-
-(operating-system
-  ;; ...
-  (packages (cons (list bind "utils")
-                  %base-packages)))
-@end lisp
-
-@findex specification->package
-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 :
-
-@lisp
-(use-modules (gnu packages))
-
-(operating-system
-  ;; ...
-  (packages (append (map specification->package
-                         '("tcpdump" "htop" "gnupg@@2.0"))
-                    %base-packages)))
-@end lisp
-
-@unnumberedsubsec Services systèmes
-
-@cindex services
-@vindex %base-services
-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{Services réseau, @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{Définir des services}).
-
-@cindex personnalisation des services
-@findex modify-services
-Parfois, plutôt que d'utiliser les services de base tels-quels, on peut
-vouloir les personnaliser.  Pour cela, utilisez  @code{modify-services}
-(@pxref{Référence de service, @code{modify-services}}) pour modifier la liste.
-
-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{Services de base, @code{%base-services}}).  Pour
-cela, vous pouvez écrire ce qui suit dans votre déclaration de système
-d'exploitation :
-
-@lisp
-(define %my-services
-  ;; Ma propre liste de services.
-  (modify-services %base-services
-    (guix-service-type config =>
-                       (guix-configuration
-                        (inherit config)
-                        (use-substitutes? #f)
-                        (extra-options '("--gc-keep-derivations"))))
-    (mingetty-service-type config =>
-                           (mingetty-configuration
-                            (inherit config)))))
-(operating-system
-  ;; @dots{}
-  (services %my-services))
-@end lisp
-
-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.
-
-@cindex chiffrement du disque
-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 :
-
-@lisp
-@include os-config-desktop.texi
-@end lisp
-
-Un système graphique avec un choix de gestionnaires de fenêtres légers
-plutôt que des environnement de bureaux complets ressemblerait à cela :
-
-@lisp
-@include os-config-lightweight-desktop.texi
-@end lisp
-
-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}.
-
-@xref{Services de bureaux}, pour la liste exacte des services fournis par
-@var{%desktop-services}.  @xref{Certificats X.509}, pour des informations
-sur le paquet @code{nss-certs} utilisé ici.
-
-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 :
-
-@example
-(remove (lambda (service)
-          (eq? (service-kind service) avahi-service-type))
-        %desktop-services)
-@end example
-
-@unnumberedsubsec Instancier le système
-
-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{Invoquer guix system}).
-
-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.
-
-@cindex revenir en arrière dans la configuration du système
-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}.
-
-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{Invoquer guix system}).
-
-@unnumberedsubsec L'interface de programmation
-
-Au niveau Scheme, la grosse déclaration @code{operating-system} est
-instanciée avec la procédure monadique suivante (@pxref{La monade du dépôt}) :
-
-@deffn {Procédure monadique} operating-system-derivation os
-Renvoie une dérivation qui construit @var{os}, un objet
-@code{operating-system} (@pxref{Dérivations}).
-
-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}.
-@end deffn
-
-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!
-
-
-@node Référence de système d'exploitation
-@section Référence de @code{operating-system}
-
-Cette section résume toutes les options disponibles dans les déclarations
-@code{operating-system} (@pxref{Utiliser le système de configuration}).
-
-@deftp {Type de données} operating-system
-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{Utiliser le système de configuration}).
-
-@table @asis
-@item @code{kernel} (par défaut : @var{linux-libre})
-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.}.
-
-@item @code{kernel-arguments} (par défaut : @code{'()})
-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")}.
-
-@item @code{bootloader}
-L'objet de configuration du chargeur d'amorçage.  @xref{Configuration du chargeur d'amorçage}.
-
-@item @code{initrd-modules} (par défaut : @code{%base-initrd-modules})
-@cindex initrd
-@cindex disque de RAM initial
-La liste des modules du noyau linux requis dans l'image disque de RAM
-initiale.  @xref{Disque de RAM initial}.
-
-@item @code{initrd} (par défaut : @code{base-initrd})
-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{Disque de RAM initial}.
-
-@item @code{firmware} (par défaut : @var{%base-firmware})
-@cindex firmware
-Liste les paquets de microgiciels chargeables pour le noyau de système
-d'exploitation.
-
-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{Considérations matérielles}, pour plus
-d'info sur les périphériques supportés.
-
-@item @code{host-name}
-Le nom d'hôte.
-
-@item @code{hosts-file}
-@cindex fichier hosts
-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}.
-
-@item @code{mapped-devices} (par défaut : @code{'()})
-Une liste de périphériques mappés.  @xref{Périphériques mappés}.
-
-@item @code{file-systems}
-Une liste de systèmes de fichiers.  @xref{Systèmes de fichiers}.
-
-@item @code{swap-devices} (par défaut : @code{'()})
-@cindex espaces d'échange
-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{Périphériques mappés} et @ref{Systèmes de fichiers}.
-
-@item @code{users} (par défaut : @code{%base-user-accounts})
-@itemx @code{groups} (par défaut : @var{%base-groups})
-Liste les comptes utilisateurs et les groupes.  @xref{Comptes utilisateurs}.
-
-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é.
-
-@item @code{skeletons} (par défaut : @code{(default-skeletons)})
-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.
-
-Par exemple, un valeur valide ressemblerait à cela :
-
-@example
-`((".bashrc" ,(plain-file "bashrc" "echo Hello\n"))
-  (".guile" ,(plain-file "guile"
-                         "(use-modules (ice-9 readline))
-                          (activate-readline)")))
-@end example
-
-@item @code{issue} (par défaut : @var{%default-issue})
-Une chaîne qui dénote le contenu du fichier @file{/etc/issue} qui est
-affiché lorsqu'un utilisateur se connecte sur la console.
-
-@item @code{packages} (par défaut : @var{%base-packages})
-L'ensemble des paquets installés dans le profil global, qui est accessible à
-partir de @file{/run/current-system/profile}.
-
-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{Invoquer guix package}).
-
-@item @code{timezone}
-Une chaîne identifiant un fuseau horaire — p.@: ex.@: @code{"Europe/Paris"}.
-
-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.
-
-@item @code{locale} (par défaut : @code{"en_US.utf8"})
-Le nom du paramètre régional par défaut (@pxref{Locale Names,,, libc, The
-GNU C Library Reference Manual}).  @xref{Régionalisation}, pour plus d'informations.
-
-@item @code{locale-definitions} (par défaut : @var{%default-locale-definitions})
-La liste des définitions de locales à compiler et qui devraient être
-utilisées à l'exécution.  @xref{Régionalisation}.
-
-@item @code{locale-libcs} (par défaut : @code{(list @var{glibc})})
-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{Régionalisation}, pour des considérations sur la compatibilité
-qui justifient cette option.
-
-@item @code{name-service-switch} (par défaut : @var{%default-nss})
-La configuration de NSS de la libc (name service switch) — un objet
-@code{<name-service-switch>}.  @xref{Name Service Switch}, pour des détails.
-
-@item @code{services} (par défaut : @var{%base-services})
-Une liste d'objets services qui dénotent les services du système.
-@xref{Services}.
-
-@item @code{pam-services} (par défaut : @code{(base-pam-services)})
-@cindex PAM
-@cindex pluggable authentication modules
-@c FIXME: Add xref to PAM services section.
-Services PAM (@dfn{pluggable authentication module}) Linux.
-
-@item @code{setuid-programs} (par défaut : @var{%setuid-programs})
-Liste de G-expressions qui s'évaluent en chaînes de caractères qui dénotent
-les programmes setuid.  @xref{Programmes setuid}.
-
-@item @code{sudoers-file} (par défaut : @var{%sudoers-specification})
-@cindex fichier sudoers
-Le contenu du fichier @file{/etc/sudoers} comme un objet simili-fichier
-(@pxref{G-Expressions, @code{local-file} et @code{plain-file}}).
-
-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}.
-
-@end table
-@end deftp
-
-@node Systèmes de fichiers
-@section Systèmes de fichiers
-
-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{Utiliser le système de configuration}).  Chaque système de fichier est
-déclaré avec la forme @code{file-system}, comme ceci :
-
-@example
-(file-system
-  (mount-point "/home")
-  (device "/dev/sda3")
-  (type "ext4"))
-@end example
-
-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.
-
-@deftp {Type de données} file-system
-Les objets de ce type représentent des systèmes de fichiers à monter.  Ils
-contiennent les membres suivants :
-
-@table @asis
-@item @code{type}
-C'est une chaîne de caractères spécifiant le type du système de fichier —
-p.@: ex.@: @code{"ext4"}.
-
-@item @code{mount-point}
-Désigne l'emplacement où le système de fichier sera monté.
-
-@item @code{device}
-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.}.
-
-@findex file-system-label
-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} :
-
-@example
-(file-system
-  (mount-point "/home")
-  (type "ext4")
-  (device (file-system-label "my-home")))
-@end example
-
-@findex uuid
-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 :
-
-@example
-(file-system
-  (mount-point "/home")
-  (type "ext4")
-  (device (uuid "4dab5feb-d176-45de-b287-9b0a6e4c01cb")))
-@end example
-
-Lorsque la source d'un système de fichiers est un périphérique mappé
-(@pxref{Périphériques mappés}), 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.
-
-@item @code{flags} (par défaut : @code{'()})
-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) et @code{no-exec} (interdit l'exécution de programmes).
-
-@item @code{options} (par défaut : @code{#f})
-C'est soit @code{#f} soit une chaîne de caractères dénotant des options de
-montage.
-
-@item @code{mount?} (par défaut : @code{#t})
-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.
-
-@item @code{needed-for-boot?} (par défaut : @code{#f})
-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.
-
-@item @code{check?} (par défaut : @code{#t})
-Cette valeur booléenne indique si le système de fichier doit être vérifié
-avant de le monter.
-
-@item @code{create-mount-point?} (par défaut : @code{#f})
-Lorsque cette valeur est vraie, le point de montage est créé s'il n'existe
-pas déjà.
-
-@item @code{dependencies} (par défaut : @code{'()})
-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.
-
-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}.
-
-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{Périphériques mappés}).
-@end table
-@end deftp
-
-Le module @code{(gnu system file-systems)} exporte les variables utiles
-suivantes.
-
-@defvr {Variable Scheme} %base-file-systems
-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.
-@end defvr
-
-@defvr {Variable Scheme} %pseudo-terminal-file-system
-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}.
-@end defvr
-
-@defvr {Variable Scheme} %shared-memory-file-system
-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}).
-@end defvr
-
-@defvr {Variable Scheme} %immutable-store
-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.
-
-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 ».
-@end defvr
-
-@defvr {Variable Scheme} %binary-format-file-system
-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é.
-@end defvr
-
-@defvr {Variable Scheme} %fuse-control-file-system
-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é.
-@end defvr
-
-@node Périphériques mappés
-@section Périphériques mappés
-
-@cindex mappage de périphériques
-@cindex périphériques mappés
-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.
-
-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.
-
-@deftp {Type de données} mapped-device
-Les objets de ce type représentent des mappages de périphériques qui seront
-effectués au démarrage du système.
-
-@table @code
-@item source
-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.
-
-@item target
-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"}.
-
-@item type
-Ce doit être un objets @code{mapped-device-kind}, qui spécifie comment
-@var{source} est mappés sur @var{target}.
-@end table
-@end deftp
-
-@defvr {Variable Scheme} luks-device-mapping
-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}.
-@end defvr
-
-@defvr {Variable Scheme} raid-device-mapping
-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.
-@end defvr
-
-@cindex chiffrement du disque
-@cindex LUKS
-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{Systèmes de fichiers}).
-
-@example
-(mapped-device
-  (source "/dev/sda3")
-  (target "home")
-  (type luks-device-mapping))
-@end example
-
-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 :
-
-@example
-cryptsetup luksUUID /dev/sda3
-@end example
-
-et l'utiliser ainsi :
-
-@example
-(mapped-device
-  (source (uuid "cb67fc72-0d54-4c88-9d4b-b225f30b0f44"))
-  (target "home")
-  (type luks-device-mapping))
-@end example
-
-@cindex chiffrement de l'espace d'échange
-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{Préparer l'installation,,Disk Partitioning}, pour un exemple.
-
-Un périphérique RAID formé des partitions @file{/dev/sda1} et
-@file{/dev/sdb1} peut être déclaré ainsi :
-
-@example
-(mapped-device
-  (source (list "/dev/sda1" "/dev/sdb1"))
-  (target "/dev/md0")
-  (type raid-device-mapping))
-@end example
-
-Le périphérique @file{/dev/md0} peut ensuite être utilisé comme
-@code{device} d'une déclaration @code{file-system} (@pxref{Systèmes de fichiers}).
-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.
-
-
-@node Comptes utilisateurs
-@section Comptes utilisateurs
-
-@cindex utilisateurs
-@cindex comptes
-@cindex comptes utilisateurs
-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} :
-
-@example
-(user-account
-  (name "alice")
-  (group "users")
-  (supplementary-groups '("wheel"   ;permet d'utiliser sudo, etc.
-                          "audio"   ;carte son
-                          "video"   ;périphériques réseaux comme les webcams
-                          "cdrom")) ;le bon vieux CD-ROM
-  (comment "Bob's sister")
-  (home-directory "/home/alice"))
-@end example
-
-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é.
-
-@deftp {Type de données} user-account
-Les objets de se type représentent les comptes utilisateurs.  Les membres
-suivants peuvent être spécifiés :
-
-@table @asis
-@item @code{name}
-Le nom du compte utilisateur.
-
-@item @code{group}
-@cindex groupes
-C'est le nom (une chaîne) ou un identifiant (un nombre) du groupe
-utilisateur auquel ce compte appartient.
-
-@item @code{supplementary-groups} (par défaut : @code{'()})
-Éventuellement, cela peut être définie comme une liste de noms de groupes
-auxquels ce compte appartient.
-
-@item @code{uid} (par défaut : @code{#f})
-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.
-
-@item @code{comment} (par défaut : @code{""})
-Un commentaire à propos du compte, comme le nom complet de l'utilisateur.
-
-@item @code{home-directory}
-C'est le nom du répertoire personnel du compte.
-
-@item @code{create-home-directory?} (par défaut : @code{#t})
-Indique si le répertoire personnel du compte devrait être créé s'il n'existe
-pas déjà.
-
-@item @code{shell} (par défaut : Bash)
-C'est une G-expression qui dénote un nom de fichier d'un programme utilisé
-comme shell (@pxref{G-Expressions}).
-
-@item @code{system?} (par défaut : @code{#f})
-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.
-
-@anchor{user-account-password}
-@item @code{password} (par défaut : @code{#f})
-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.
-
-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.  @xref{crypt,,, 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.
-
-@end table
-@end deftp
-
-@cindex groupes
-Les déclarations de groupes sont encore plus simple :
-
-@example
-(user-group (name "students"))
-@end example
-
-@deftp {Type de données} user-group
-C'est le type pour, hé bien, les comptes utilisateurs.  Il n'y a que
-quelques champs :
-
-@table @asis
-@item @code{name}
-Le nom du groupe.
-
-@item @code{id} (par défaut : @code{#f})
-L'identifiant du groupe (un nombre).  S'il est @code{#f}, un nouveau nombre
-est alloué automatiquement lorsque le groupe est créé.
-
-@item @code{system?} (par défaut : @code{#f})
-Cette valeur booléenne indique si le groupe est un groupe « système ».  les
-groupes systèmes ont un numéro d'ID bas.
-
-@item @code{password} (par défaut : @code{#f})
-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.
-
-@end table
-@end deftp
-
-Par simplicité, une variable liste les groupes utilisateurs de base auxquels
-on pourrait s'attendre :
-
-@defvr {Variable Scheme} %base-groups
-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 ».
-@end defvr
-
-@defvr {Variable Scheme} %base-user-accounts
-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 ».
-
-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.
-@end defvr
-
-@node Régionalisation
-@section Régionalisation
-
-@cindex paramètres linguistiques
-Un @dfn{paramètre linguistique} définie les conventions culturelles d'une
-langue et d'une région particulières (@pxref{Régionalisation,,, 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.
-
-@cindex définition des paramètres linguistiques
-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{Référence de système d'exploitation, @code{locale}}).
-
-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.
-
-Par exemple, pour ajouter les paramètres pour le frison septentrional en
-Allemagne, la valeur de ce champ serait :
-
-@example
-(cons (locale-definition
-        (name "fy_DE.utf8") (source "fy_DE"))
-      %default-locale-definitions)
-@end example
-
-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 :
-
-@example
-(list (locale-definition
-        (name "ja_JP.eucjp") (source "ja_JP")
-        (charset "EUC-JP")))
-@end example
-
-@vindex LOCPATH
-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}).
-
-La forme @code{locale-definition} est fournie par le module @code{(gnu
-system locale)}.  Des détails sont disponibles plus bas.
-
-@deftp {Type de données} locale-definition
-C'est le type de données d'une définition de paramètres linguistiques.
-
-@table @asis
-
-@item @code{name}
-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.
-
-@item @code{source}
-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.
-
-@item @code{charset} (par défaut : @code{"UTF-8"})
-Le « jeu de caractères » d'un paramètre linguistique,
-@uref{http://www.iana.org/assignments/character-sets, défini par l'IANA}.
-
-@end table
-@end deftp
-
-@defvr {Variable Scheme} %default-locale-definitions
-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}.
-
-@cindex nom de paramètre linguistique
-@cindex jeu de caractère normalisé dans les noms de paramètres linguistiques
-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}.
-@end defvr
-
-@subsection Considérations sur la compatibilité des données linguistiques
-
-@cindex incompatibilité, des données linguistiques
-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{Référence de système d'exploitation}).  « 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.
-
-@c See <https://sourceware.org/ml/libc-alpha/2015-09/msg00575.html>
-@c and <https://lists.gnu.org/archive/html/guix-devel/2015-08/msg00737.html>.
-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.
-
-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.
-
-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}).
-
-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} :
-
-@example
-(use-package-modules base)
-
-(operating-system
-  ;; @dots{}
-  (locale-libcs (list glibc-2.21 (canonical-package glibc))))
-@end example
-
-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}.
-
-
-@node Services
-@section Services
-
-@cindex services systèmes
-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{Utiliser le système de configuration}).  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.
-
-Guix has a broad definition of ``service'' (@pxref{Composition de services}),
-but many services are managed by the GNU@tie{}Shepherd (@pxref{Services Shepherd}).  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:
-
-@example
-# herd status
-@end example
-
-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 :
-
-@example
-# herd doc nscd
-Run libc's name service cache daemon (nscd).
-
-# herd doc nscd action invalidate
-invalidate: Invalidate the given cache--e.g., 'hosts' for host name lookups.
-@end example
-
-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 :
-
-@example
-# herd stop nscd
-Service nscd has been stopped.
-# herd restart xorg-server
-Service xorg-server has been stopped.
-Service xorg-server has been started.
-@end example
-
-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}.
-
-@menu
-* Services de base::         Services systèmes essentiels.
-* Exécution de tâches planifiées::  Le service mcron.
-* Rotation des journaux::    Le service rottlog.
-* Services réseau::         Paramètres réseau, démon SSH, etc.
-* Système de fenêtrage X::  Affichage graphique.
-* Services d'impression::    Support pour les imprimantes locales et 
-                               distantes.
-* Services de bureaux::      D-Bus et les services de bureaux.
-* Services de son::          Services ALSA et Pulseaudio.
-* Services de bases de données::  Bases SQL, clefs-valeurs, etc.
-* Services de courriels::    IMAP, POP3, SMTP, et tout ça.
-* Services de messagerie::   Services de messagerie.
-* Services de téléphonie::  Services de téléphonie.
-* Services de surveillance::  Services de surveillance.
-* Services Kerberos::        Services Kerberos.
-* Services web::             Services web.
-* Services de certificats::  Certificats TLS via Let's Encrypt.
-* Services DNS::             Démons DNS@.
-* Services VPN::             Démons VPN
-* Système de fichiers en réseau::  Services liés à NFS@.
-* Intégration continue::    Le service Cuirass.
-* Services de gestion de l'énergie::  Augmenter la durée de vie de la 
-                                         batterie.
-* Services audio::           MPD@.
-* Services de virtualisation::  Services de virtualisation.
-* Services de contrôle de version::  Fournit des accès distants à des 
-                                        dépôts Git.
-* Services de jeu::          Serveurs de jeu.
-* Services divers::          D'autres services.
-@end menu
-
-@node Services de base
-@subsection Services de base
-
-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.
-
-@defvr {Variable Scheme} %base-services
-Cette variable contient une liste de services de base (@pxref{Types service et 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.
-
-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 :
-
-@example
-(append (list (service avahi-service-type)
-              (service openssh-service-type))
-        %base-services)
-@end example
-@end defvr
-
-@defvr {Variable Scheme} special-files-service-type
-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}.
-
-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 :
-
-@cindex @file{/bin/sh}
-@cindex @file{sh}, dans @file{/bin}
-@example
-`(("/bin/sh" ,(file-append @var{bash} "/bin/sh")))
-@end example
-
-@cindex @file{/usr/bin/env}
-@cindex @file{env}, dans @file{/usr/bin}
-Si vous voulez ajouter, disons, @code{/usr/bin/env} à votre système, vous
-pouvez changer cela en :
-
-@example
-`(("/bin/sh" ,(file-append @var{bash} "/bin/sh"))
-  ("/usr/bin/env" ,(file-append @var{coreutils} "/bin/env")))
-@end example
-
-Comme il fait parti de @code{%base-services}, vous pouvez utiliser
-@code{modify-services} pour personnaliser l'ensemble des fichiers spéciaux
-(@pxref{Référence de service, @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).
-@end defvr
-
-@deffn {Procédure Scheme} extra-special-file @var{file} @var{target}
-Utilise @var{target} comme « fichier spécial » @var{file}.
-
-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} :
-
-@example
-(extra-special-file "/usr/bin/env"
-                    (file-append coreutils "/bin/env"))
-@end example
-@end deffn
-
-@deffn {Procédure Scheme} host-name-service @var{name}
-Renvoie un service qui paramètre le nom d'hôte à @var{name}.
-@end deffn
-
-@deffn {Procédure Scheme} login-service @var{config}
-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.
-@end deffn
-
-@deftp {Type de données} login-configuration
-Le type de données qui représente la configuration de login.
-
-@table @asis
-
-@item @code{motd}
-@cindex message du jour
-Un objet simili-fichier contenant le « message du jour ».
-
-@item @code{allow-empty-passwords?} (par défaut : @code{#t})
-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.
-
-@end table
-@end deftp
-
-@deffn {Procédure Scheme} mingetty-service @var{config}
-Renvoie un service qui lance mingetty en suivant @var{config}, un objet
-@code{<mingetty-configuration>}, qui spécifie le tty à lancer entre autres
-choses.
-@end deffn
-
-@deftp {Type de données} mingetty-configuration
-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.
-
-@table @asis
-
-@item @code{tty}
-Le nom de la console sur laquelle tourne ce Mingetty, p.@: ex.@:
-@code{"tty1"}.
-
-@item @code{auto-login} (par défaut : @code{#f})
-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.
-
-@item @code{login-program} (par défaut : @code{#f})
-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.
-
-@item @code{login-pause?} (par défaut : @code{#f})
-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é.
-
-@item @code{mingetty} (par défaut : @var{mingetty})
-Le paquet Mingetty à utiliser.
-
-@end table
-@end deftp
-
-@deffn {Procédure Scheme} agetty-service @var{config}
-Renvoie un service pour lancer agetty en suivant @var{config}, un objet
-@code{<agetty-configuration>}, qui spécifie le tty à lancer, entre autres
-choses.
-@end deffn
-
-@deftp {Type de données} agetty-configuration
-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.
-
-@table @asis
-
-@item @code{tty}
-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.
-
-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.
-
-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.
-
-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.
-
-@item @code{baud-rate} (par défaut : @code{#f})
-Une chaîne qui contient une liste d'un ou plusieurs taux de baud séparés par
-des virgules, en ordre décroissant.
-
-@item @code{term} (par défaut : @code{#f})
-Une chaîne contenant la valeur utilisée pour la variable d'environnement
-@code{TERM}.
-
-@item @code{eight-bits?} (par défaut : @code{#f})
-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.
-
-@item @code{auto-login} (par défaut : @code{#f})
-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.
-
-@item @code{no-reset?} (par défaut : @code{#f})
-Lorsque la valeur est @code{#t}, ne vide pas les cflags du terminal (modes
-de contrôle).
-
-@item @code{host} (par défaut : @code{#f})
-Cette option accepte une chaîne contenant le « login_host », qui sera écrit
-dans le fichier @file{/var/run/utmpx}.
-
-@item @code{remote?} (par défaut : @code{#f})
-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}.
-
-@item @code{flow-control?} (par défaut : @code{#f})
-Lorsque la valeur est @code{#t}, active le contrôle de flux matériel
-(RTS/CTS).
-
-@item @code{no-issue?} (par défaut : @code{#f})
-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.
-
-@item @code{init-string} (par défaut : @code{#f})
-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.
-
-@item @code{no-clear?} (par défaut : @code{#f})
-Lorsque la valeur est @code{#t}, agetty ne nettoiera pas l'écran avant de
-montrer l'écran de connexion.
-
-@item @code{login-program} (par défaut : (file-append shadow "/bin/login"))
-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.
-
-@item @code{local-line} (par défaut : @code{#f})
-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}…
-
-@item @code{extract-baud?} (par défaut : @code{#f})
-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.
-
-@item @code{skip-login?} (par défaut : @code{#f})
-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.
-
-@item @code{no-newline?} (par défaut : @code{#f})
-Lorsque la valeur est @code{#t}, n'affiche pas de retour à la ligne avant
-d'afficher le fichier @file{/etc/issue}.
-
-@c Is this dangerous only when used with login-program, or always?
-@item @code{login-options} (par défaut : @code{#f})
-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.
-
-@item @code{login-pause} (par défaut : @code{#f})
-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.
-
-@item @code{chroot} (par défaut : @code{#f})
-Change de racine dans le répertoire donné.  Cette option accepte un chemin
-en tant que chaîne de caractères.
-
-@item @code{hangup?} (par défaut : @code{#f})
-Utilise l'appel système Linux @code{vhangup} pour raccrocher virtuellement
-le terminal spécifié.
-
-@item @code{keep-baud?} (par défaut : @code{#f})
-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}.
-
-@item @code{timeout} (par défaut : @code{#f})
-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.
-
-@item @code{detect-case?} (par défaut : @code{#f})
-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.
-
-@item @code{wait-cr?} (par défaut : @code{#f})
-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}.
-
-@item @code{no-hints?} (par défaut : @code{#f})
-Lorsque la valeur est @code{#t}, n'affiche par les astuces à propos des
-verrouillages numériques, majuscule et défilement.
-
-@item @code{no-hostname?} (par défaut : @code{#f})
-Par défaut, le nom d'hôte est affiché.  Lorsque la valeur est @code{#t},
-aucun nom d'hôte ne sera affiché.
-
-@item @code{long-hostname?} (par défaut : @code{#f})
-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é.
-
-@item @code{erase-characters} (par défaut : @code{#f})
-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.
-
-@item @code{kill-characters} (par défaut : @code{#f})
-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.
-
-@item @code{chdir} (par défaut : @code{#f})
-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.
-
-@item @code{delay} (par défaut : @code{#f})
-Cette option accepte, en tant qu'entier, le nombre de secondes à attendre
-avant d'ouvrir le tty et afficher l'écran de connexion.
-
-@item @code{nice} (par défaut : @code{#f})
-Cette option accepte, en tant qu'entier, la valeur « nice » avec laquelle le
-programme @command{login} tourne.
-
-@item @code{extra-options} (par défaut : @code{'()})
-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.
-
-@end table
-@end deftp
-
-@deffn {Procédure Scheme} kmscon-service-type @var{config}
-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.
-@end deffn
-
-@deftp {Type de données} kmscon-configuration
-C'est le type de données représentant la configuration de Kscon, qui
-implémente l'écran de chargement de la console virtuelle.
-
-@table @asis
-
-@item @code{virtual-terminal}
-Le nom de la console sur laquelle Kmscon tourne, p.@: ex.@: @code{"tty1"}.
-
-@item @code{login-program} (par défaut : @code{#~(string-append #$shadow "/bin/login")})
-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.
-
-@item @code{login-arguments} (par défaut : @code{'("-p")})
-Une liste d'arguments à passer à @command{login}.
-
-@item @code{auto-login} (par défaut : @code{#f})
-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.
-
-@item @code{hardware-acceleration?} (par défaut : #f)
-S'il faut utiliser l'accélération matérielle.
-
-@item @code{kmscon} (par défaut : @var{kmscon})
-Le paquet Kmscon à utiliser.
-
-@end table
-@end deftp
-
-@cindex name service cache daemon
-@cindex nscd
-@deffn {Procédure Scheme} nscd-service [@var{config}] [#:glibc glibc] @
-                [#:name-services '()]
-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.
-
-Parce que c'est pratique, le service du Shepherd pour nscd fournit les
-actions suivantes :
-
-@table @code
-@item invalidate
-@cindex invalidation du cache, nscd
-@cindex nscd, invalidation du cache
-Cela invalide le cache donné.  Par exemple, en laçant :
-
-@example
-herd invalidate nscd hosts
-@end example
-
-@noindent
-on invalide le cache de noms d'hôtes de nscd.
-
-@item statistiques
-Lancer @command{herd statistics nscd} affiche des informations sur
-l'utilisation de nscd et des caches.
-@end table
-
-@end deffn
-
-@defvr {Variable Scheme} %nscd-default-configuration
-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.
-@end defvr
-
-@deftp {Type de données} nscd-configuration
-C'est le type de données qui représente la configuration du démon de cache
-de services de noms (nscd).
-
-@table @asis
-
-@item @code{name-services} (par défaut : @code{'()})
-Liste des paquets dénotant des @dfn{services de noms} qui doivent être
-visible pour nscd, p.@: ex.@: @code{(list @var{nss-mdns})}.
-
-@item @code{glibc} (par défaut : @var{glibc})
-Objet de paquet qui dénote la Bibliothèque C de GNU qui fournit la commande
-@command{nscd}.
-
-@item @code{log-file} (par défaut : @code{"/var/log/nscd.log"})
-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.
-
-@item @code{debug-level} (par défaut : @code{0})
-Entier qui dénote le niveau de débogage.  Les entiers les plus grands
-signifient plus de sortie de débogage.
-
-@item @code{caches} (par défaut : @var{%nscd-default-caches})
-Liste d'objets @code{<nscd-cache>} qui dénotent des choses à mettre en cache
-; voir plus bas.
-
-@end table
-@end deftp
-
-@deftp {Type de données} nscd-cache
-Type de données représentant une base de données de cache de nscd et ses
-paramètres.
-
-@table @asis
-
-@item @code{database}
-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}).
-
-@item @code{positive-time-to-live}
-@itemx @code{negative-time-to-live} (par défaut : @code{20})
-Un entier qui représente le nombre de secondes pendant lesquelles un
-résultat positif ou négatif reste en cache.
-
-@item @code{check-files?} (par défaut : @code{#t})
-Indique s'il faut vérifier des mises à jours dans les fichiers correspondant
-à @var{database}.
-
-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.
-
-@item @code{persistent?} (par défaut : @code{#t})
-Indique si le cache devrait être stocké de manière persistante sur le
-disque.
-
-@item @code{shared?} (par défaut : @code{#t})
-Indique si le cache devrait être partagé entre les utilisateurs.
-
-@item @code{max-database-size} (par défaut : 32@tie{}MiB)
-Taille maximale en octets de la base de données en cache.
-
-@c XXX: 'suggested-size' and 'auto-propagate?' seem to be expert
-@c settings, so leave them out.
-
-@end table
-@end deftp
-
-@defvr {Variable Scheme} %nscd-default-caches
-Liste d'objets @code{<nscd-cache>} utilisés par défaut par
-@code{nscd-configuration} (voir plus haut).
-
-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.
-@end defvr
-
-@anchor{syslog-configuration-type}
-@cindex syslog
-@cindex logging
-@deftp {Type de données} syslog-configuration
-Ce type de données représente la configuration du démon syslog.
-
-@table @asis
-@item @code{syslogd} (par défaut : @code{#~(string-append #$inetutils "/libexec/syslogd")})
-Le démon syslog à utiliser.
-
-@item @code{config-file} (par défaut : @code{%default-syslog.conf})
-Le fichier de configuration de syslog à utiliser.
-
-@end table
-@end deftp
-
-@anchor{syslog-service}
-@cindex syslog
-@deffn {Procédure Scheme} syslog-service @var{config}
-Renvoie un service qui lance un démon syslog en suivant @var{config}.
-
-@xref{syslogd invocation,,, inetutils, GNU Inetutils}, pour plus
-d'informations sur la syntaxe du fichier de configuration.
-@end deffn
-
-@defvr {Variable Scheme} guix-service-type
-C'est le type de service qui lance le démon de construction,
-@command{guix-daemon} (@pxref{Invoquer guix-daemon}).  Sa valeur doit être
-un enregistrement @code{guix-configuration} décrit plus bas.
-@end defvr
-
-@anchor{guix-configuration-type}
-@deftp {Type de données} guix-configuration
-Ce type de données représente la configuration du démon de construction de
-Guix.  @xref{Invoquer guix-daemon} pour plus d'informations.
-
-@table @asis
-@item @code{guix} (par défaut : @var{guix})
-Le paquet Guix à utiliser.
-
-@item @code{build-group} (par défaut : @code{"guixbuild"})
-Nom du groupe des comptes utilisateurs de construction.
-
-@item @code{build-accounts} (par défaut : @code{10})
-Nombre de comptes utilisateurs de construction à créer.
-
-@item @code{authorize-key?} (par défaut : @code{#t})
-@cindex substituts, autorisations
-Whether to authorize the substitute keys listed in
-@code{authorized-keys}---by default that of @code{@value{SUBSTITUTE-SERVER}}
-(@pxref{Substituts}).
-
-@vindex %default-authorized-guix-keys
-@item @code{authorized-keys} (par défaut : @var{%default-authorized-guix-keys})
-The list of authorized key files for archive imports, as a list of
-string-valued gexps (@pxref{Invoquer guix archive}).  By default, it
-contains that of @code{@value{SUBSTITUTE-SERVER}} (@pxref{Substituts}).
-
-@item @code{use-substitutes?} (par défaut : @code{#t})
-S'il faut utiliser les substituts.
-
-@item @code{substitute-urls} (par défaut : @var{%default-substitute-urls})
-La liste des URL où trouver des substituts par défaut.
-
-@item @code{max-silent-time} (par défaut : @code{0})
-@itemx @code{timeout} (par défaut : @code{0})
-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.
-
-@item @code{log-compression} (par défaut : @code{'bzip2})
-Le type de compression utilisé par les journaux de construction — parmi
-@code{gzip}, @code{bzip2} et @code{none}.
-
-@item @code{extra-options} (par défaut : @code{'()})
-Liste d'options supplémentaires de la ligne de commande pour
-@command{guix-daemon}.
-
-@item @code{log-file} (par défaut : @code{"/var/log/guix-daemon.log"})
-Le fichier où les sorties standard et d'erreur de @command{guix-daemon} sont
-écrites.
-
-@item @code{http-proxy} (par défaut : @code{#f})
-Le serveur mandataire HTTP à utiliser pour télécharger les dérivations à
-sortie fixe et les substituts.
-
-@item @code{tmpdir} (par défaut : @code{#f})
-Un répertoire où @command{guix-daemon} effectuera ses constructions.
-
-@end table
-@end deftp
-
-@deffn {Procédure Scheme} udev-service [#:udev @var{eudev} #:rules @code{'()}]
-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 @var{udev-rule} et @var{file->udev-rule} de
-@code{(gnu services base)} simplifient la création de ces fichiers de règle.
-@end deffn
-
-@deffn {Procédure Scheme} udev-rule [@var{file-name} @var{contents}]
-Renvoie un fichier de règle udev nommé @var{file-name} contenant les règles
-définie par le littéral @var{contents}.
-
-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é.
-
-@example
-(define %example-udev-rule
-  (udev-rule
-    "90-usb-thing.rules"
-    (string-append "ACTION==\"add\", SUBSYSTEM==\"usb\", "
-                   "ATTR@{product@}==\"Example\", "
-                   "RUN+=\"/path/to/script\"")))
-@end example
-
-The @command{herd rules udev} command, as root, returns the name of the
-directory containing all the active udev rules.
-@end deffn
-
-Ici on montre comment le service @var{udev-service} par défaut peut être
-étendu avec cette règle.
-
-@example
-(operating-system
- ;; @dots{}
- (services
- (modify-services %desktop-services
-   (udev-service-type config =>
-     (udev-configuration (inherit config)
-      (rules (append (udev-configuration-rules config)
-                     (list %example-udev-rule))))))))
-@end example
-
-@deffn {Procédure Scheme} file->udev-rule [@var{file-name} @var{file}]
-Renvoie un fichier udev nommé @var{file-name} contenant les règles définies
-dans @var{file}, un objet simili-fichier.
-
-L'exemple suivant montre comment utiliser un fichier de règles existant.
-
-@example
-(use-modules (guix download)     ;pour url-fetch
-             (guix packages)     ;pour origin
-             ;; @dots{})
-
-(define %android-udev-rules
-  (file->udev-rule
-    "51-android-udev.rules"
-    (let ((version "20170910"))
-      (origin
-       (method url-fetch)
-       (uri (string-append "https://raw.githubusercontent.com/M0Rf30/"
-                           "android-udev-rules/" version "/51-android.rules"))
-       (sha256
-        (base32 "0lmmagpyb6xsq6zcr2w1cyx9qmjqmajkvrdbhjx32gqf1d9is003"))))))
-@end example
-@end deffn
-
-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)}.
-
-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}.
-
-@example
-(use-modules (gnu packages android)  ;for android-udev-rules
-             (gnu system shadow)     ;for user-group
-             ;; @dots{})
-
-(operating-system
-  ;; @dots{}
-  (users (cons (user-acount
-                ;; @dots{}
-                (supplementary-groups
-                 '("adbusers"   ;for adb
-                   "wheel" "netdev" "audio" "video"))
-                ;; @dots{})))
-
-  (groups (cons (user-group (system? #t) (name "adbusers"))
-                %base-groups))
-
-  ;; @dots{}
-
-  (services
-   (modify-services %desktop-services
-     (udev-service-type
-      config =>
-      (udev-configuration (inherit config)
-                          (rules (cons android-udev-rules
-                                       (udev-configuration-rules config))))))))
-@end example
-
-@defvr {Variable Scheme} urandom-seed-service-type
-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.
-@end defvr
-
-@defvr {Variable Scheme} %random-seed-file
-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}.
-@end defvr
-
-@cindex disposition clavier
-@cindex clavier
-@deffn {Procédure Scheme} console-keymap-service @var{files} ...
-@cindex disposition du clavier
-Renvoie un service qui charge les dispositions claviers de @var{files} avec
-la commande @command{loadkeys}.  Vraisemblablement, vous voudrez charger une
-disposition par défaut, ce qui se fait ainsi :
-
-@example
-(console-keymap-service "dvorak")
-@end example
-
-Ou par exemple pour un clavier suédois, vous pourriez avoir besoin de
-combiner les dispositions suivantes :
-@example
-(console-keymap-service "se-lat6" "se-fi-lat6")
-@end example
-
-Vous pouvez aussi spécifier le nom de fichier (ou les noms de fichiers)
-complets de vos dispositions.  Voir @code{man loadkeys} pour des détails.
-
-@end deffn
-
-@cindex souris
-@cindex gpm
-@defvr {Variable Scheme} gpm-service-type
-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.
-
-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}.
-@end defvr
-
-@deftp {Type de données} gpm-configuration
-Type de données représentant la configuration de GPM.
-
-@table @asis
-@item @code{options} (par défaut : @code{%default-gpm-options})
-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.
-
-@item @code{gpm} (par défaut : @code{gpm})
-Le paquet GPM à utiliser.
-
-@end table
-@end deftp
-
-@anchor{guix-publish-service-type}
-@deffn {Variable Scheme} guix-publish-service-type
-C'est le type de service pour @command{guix publish} (@pxref{Invoquer guix publish}).  Sa valeur doit être un objet @code{guix-configuration} décrit
-plus bas.
-
-Ce service suppose que @file{/etc/guix} contient déjà une paire de clefs
-créée par @command{guix archive --generate-key} (@pxref{Invoquer guix archive}).  Si ce n'est pas le cas, le service ne démarrera pas.
-@end deffn
-
-@deftp {Type de données} guix-publish-configuration
-Le type de données représentant la configuration du service @code{guix
-publish}.
-
-@table @asis
-@item @code{guix} (par défaut : @code{guix})
-Le paquet Guix à utiliser.
-
-@item @code{port} (par défaut : @code{80})
-Le port TCP sur lequel écouter les connexions.
-
-@item @code{host} (par défaut : @code{"localhost"})
-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.
-
-@item @code{compression-level} (par défaut : @code{3})
-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.
-
-@item @code{nar-path} (par défaut : @code{"nar"})
-Le chemin d'URL où les « nars » se trouvent.  @xref{Invoquer guix publish,
-@code{--nar-path}}, pour des détails.
-
-@item @code{cache} (par défaut : @code{#f})
-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{Invoquer guix publish, @option{--cache}}, pour plus d'informations sur les compromis
-impliqués.
-
-@item @code{workers} (par défaut : @code{#f})
-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{Invoquer guix publish, @option{--workers}},
-pour plus d'informations.
-
-@item @code{ttl} (par défaut : @code{#f})
-Lorsque la valeur est un entier, il dénote la @dfn{durée de vie} en secondes
-des archives publiées.  @xref{Invoquer guix publish, @option{--ttl}}, pour
-plus d'informations.
-@end table
-@end deftp
-
-@anchor{rngd-service}
-@deffn {Procédure Scheme} rngd-service [#:rng-tools @var{rng-tools}] @
-            [#:device "/dev/hwrng"]
-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.
-@end deffn
-
-@anchor{pam-limits-service}
-@cindex limites de session
-@cindex ulimit
-@cindex priorités
-@cindex temps réel
-@cindex jackd
-@deffn {Procédure Scheme} pam-limits-service [#:limits @code{'()}]
-
-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.
-
-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} :
-
-@example
-(pam-limits-service
- (list
-  (pam-limits-entry "@@realtime" 'both 'rtprio 99)
-  (pam-limits-entry "@@realtime" 'both 'memlock 'unlimited)))
-@end example
-
-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.
-@end deffn
-
-@node Exécution de tâches planifiées
-@subsection Exécution de tâches planifiées
-
-@cindex cron
-@cindex mcron
-@cindex tâches planifiées
-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.
-
-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{Invoquer 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}).
-
-@lisp
-(use-modules (guix) (gnu) (gnu services mcron))
-(use-package-modules base idutils)
-
-(define updatedb-job
-  ;; Lance « updatedb » à 3h du matin chaque jour.  Ici nous spécifions
-  ;; l'action de la tâche comme une procédure Scheme.
-  #~(job '(next-hour '(3))
-         (lambda ()
-           (execl (string-append #$findutils "/bin/updatedb")
-                  "updatedb"
-                  "--prunepaths=/tmp /var/tmp /gnu/store"))))
-
-(define garbage-collector-job
-  ;; Lance le ramasse-miettes tous les jours à minuit cinq.
-  ;; L'action de la tâche est une commande shell.
-  #~(job "5 0 * * *"            ;Vixie cron syntax
-         "guix gc -F 1G"))
-
-(define idutils-job
-  ;; Met à jour la base de données d'index en tant que « charlie » à 12h15
-  ;; et 19h15.  La commande est lancée depuis le répertoire personnel de l'utilisateur.
-  #~(job '(next-minute-from (next-hour '(12 19)) '(15))
-         (string-append #$idutils "/bin/mkid src")
-         #:user "charlie"))
-
-(operating-system
-  ;; @dots{}
-  (services (cons (service mcron-service-type
-                           (mcron-configuration
-                            (jobs (list garbage-collector-job
-                                        updatedb-job
-                                        idutils-job))))
-                  %base-services)))
-@end lisp
-
-@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.
-
-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 :
-
-@example
-# herd schedule mcron
-@end example
-
-@noindent
-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 :
-
-@example
-# herd schedule mcron 10
-@end example
-
-@defvr {Variable Scheme} mcron-service-type
-C'est le type du service @code{mcron}, dont la valeur est un objet
-@code{mcron-configuration}
-
-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{Composition de services}).  En d'autres termes, il est possible de définir des services
-qui fournissent des tâches mcron à lancer.
-@end defvr
-
-@deftp {Type de données} mcron-configuration
-Type données qui représente la configuration de mcron.
-
-@table @asis
-@item @code{mcron} (par défaut : @var{mcron})
-Le paquet mcron à utiliser.
-
-@item @code{jobs}
-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}).
-@end table
-@end deftp
-
-
-@node Rotation des journaux
-@subsection Rotation des journaux
-
-@cindex rottlog
-@cindex journaux, rotation
-@cindex logging
-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}).
-
-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.
-
-@lisp
-(use-modules (guix) (gnu))
-(use-service-modules admin mcron)
-(use-package-modules base idutils)
-
-(operating-system
-  ;; @dots{}
-  (services (cons (service rottlog-service-type)
-                  %base-services)))
-@end lisp
-
-@defvr {Variable Scheme} rottlog-service-type
-C'est le type du service Rotlog, dont la valeur est un objet
-@code{rottlog-configuration}.
-
-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.
-
-Ce type de service peut définir des taches (@pxref{Exécution de tâches planifiées})
-pour lancer le service rottlog.
-@end defvr
-
-@deftp {Type de données} rottlog-configuration
-Type de données représentant la configuration de rottlog.
-
-@table @asis
-@item @code{rottlog} (par défaut : @code{rottlog})
-Le paquet Rottlog à utiliser.
-
-@item @code{rc-file} (par défaut : @code{(file-append rottlog "/etc/rc")})
-Le fichier de configuration Rottlog à utiliser (@pxref{Mandatory RC
-Variables,,, rottlog, GNU Rot[t]log Manual}).
-
-@item @code{rotations} (par défaut : @code{%default-rotations})
-Une liste d'objets @code{log-rotation} définis plus bas.
-
-@item @code{jobs}
-C'est une liste de gexps où chaque gexp correspond à une spécification de
-tache de mcron (@pxref{Exécution de tâches planifiées}).
-@end table
-@end deftp
-
-@deftp {Type de données} log-rotation
-Type de données représentant la rotation d'un groupe de fichiers journaux.
-
-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 :
-
-@example
-(log-rotation
-  (frequency 'daily)
-  (files '("/var/log/apache/*"))
-  (options '("storedir apache-archives"
-             "rotate 6"
-             "notifempty"
-             "nocompress")))
-@end example
-
-La liste des champs est la suivante :
-
-@table @asis
-@item @code{frequency} (par défaut : @code{'weekly})
-La fréquence de rotation, un symbole.
-
-@item @code{files}
-La liste des fichiers ou des motifs de noms de fichiers à faire tourner.
-
-@item @code{options} (par défaut : @code{'()})
-La liste des options de rottlog pour cette rotation (@pxref{Configuration
-parameters,,, rottlog, GNU Rot[t]lg Manual}).
-
-@item @code{post-rotate} (par défaut : @code{#f})
-Soit @code{#f}, soit une gexp à exécuter une fois la rotation terminée.
-@end table
-@end deftp
-
-@defvr {Variable Scheme} %default-rotations
-Spécifie la rotation hebdomadaire de @var{%rotated-files} et de quelques
-autres fichiers.
-@end defvr
-
-@defvr {Variable Scheme} %rotated-files
-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")}
-@end defvr
-
-@node Services réseau
-@subsection Services réseau
-
-Le module @code{(gnu services networking)} fournit des services pour
-configurer les interfaces réseaux.
-
-@cindex DHCP, service réseau
-@defvr {Variable Scheme} dhcp-client-service-type
-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.
-@end defvr
-
-@deffn {Procédure Scheme} dhcpd-service-type
-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 :
-
-@example
-(service dhcpd-service-type
-         (dhcpd-configuration
-          (config-file (local-file "my-dhcpd.conf"))
-          (interfaces '("enp0s25"))))
-@end example
-@end deffn
-
-@deftp {Type de données} dhcpd-configuration
-@table @asis
-@item @code{package} (par défaut : @code{isc-dhcp})
-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{http://www.isc.org/products/DHCP, serveur DHCP d'ISC}
-@item @code{config-file} (par défaut : @code{#f})
-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.
-@item @code{version} (par défaut : @code{"4"})
-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.
-@item @code{run-directory} (par défaut : @code{"/run/dhcpd"})
-Le répertoire d'exécution à utiliser.  Au moment de l'activation du service,
-ce répertoire sera créé s'il n'existe pas.
-@item @code{pid-file} (par défaut : @code{"/run/dhcpd/dhcpd.pid"})
-Le fichier de PID à utiliser.  Cela correspond à l'option @code{-pf} de
-@code{dhcpd}.  Voir @code{man dhcpd} pour plus de détails.
-@item @code{interfaces} (par défaut : @code{'()})
-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.
-@end table
-@end deftp
-
-@defvr {Variable Scheme} static-networking-service-type
-@c TODO Document <static-networking> data structures.
-C'est le type des interfaces réseaux configurés statiquement.
-@end defvr
-
-@deffn {Procédure Scheme} static-networking-service @var{interface} @var{ip} @
-       [#:netmask #f] [#:gateway #f] [#:name-servers @code{'()}] @
-[#:requirement @code{'(udev)}]
-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.
-
-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.
-
-Par exemple :
-
-@example
-(static-networking-service "eno1" "192.168.1.82"
-                           #:gateway "192.168.1.2"
-                           #:name-servers '("192.168.1.2"))
-@end example
-@end deffn
-
-@cindex wicd
-@cindex sans-fil
-@cindex WiFi
-@cindex gestion du réseau
-@deffn {Procédure Scheme} wicd-service [#:wicd @var{wicd}]
-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.
-
-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}.
-@end deffn
-
-@cindex ModemManager
-
-@defvr {Variable Scheme} modem-manager-service-type
-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}.
-
-Ce service fait partie de @code{%desktop-services} (@pxref{Services de bureaux}).
-@end defvr
-
-@deftp {Type de données} modem-manager-configuration
-Type de donnée représentant la configuration de ModemManager.
-
-@table @asis
-@item @code{modem-manager} (par défaut : @code{modem-manager})
-Le paquet ModemManager à utiliser.
-
-@end table
-@end deftp
-
-@cindex NetworkManager
-
-@defvr {Variable Scheme} network-manager-service-type
-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}.
-
-Ce service fait partie de @code{%desktop-services} (@pxref{Services de bureaux}).
-@end defvr
-
-@deftp {Type de données} network-manager-configuration
-Type de données représentant la configuration de NetworkManager.
-
-@table @asis
-@item @code{network-manager} (par défaut : @code{network-manager})
-Le paquet NetworkManager à utiliser.
-
-@item @code{dns} (par défaut : @code{"default"})
-Mode de gestion pour le DNS, qui affecte la manière dont NetworkManager
-utilise le fichier de configuration @code{resolv.conf}
-
-@table @samp
-@item default
-NetworkManager mettra à jour @code{resolv.conf} pour refléter les serveurs
-de noms fournis par les connexions actives.
-
-@item dnsmasq
-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.
-
-@item none
-NetworkManager ne modifiera pas @code{resolv.conf}.
-@end table
-
-@item @code{vpn-plugins} (par défaut : @code{'()})
-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.
-
-@end table
-@end deftp
-
-@cindex Connman
-@deffn {Variable Scheme} connman-service-type
-C'est le type de service pour lancer @url{https://01.org/connman,Connman},
-un gestionnaire de connexions réseaux.
-
-Sa valeur doit être un enregistrement @code{connman-configuration} comme
-dans cet exemple :
-
-@example
-(service connman-service-type
-         (connman-configuration
-           (disable-vpn? #t)))
-@end example
-
-Voir plus bas pour des détails sur @code{connman-configuration}.
-@end deffn
-
-@deftp {Type de données} connman-configuration
-Type de données représentant la configuration de connman.
-
-@table @asis
-@item @code{connman} (par défaut : @var{connman})
-Le paquet connman à utiliser.
-
-@item @code{disable-vpn?} (par défaut : @code{#f})
-Lorsque la valeur est vraie, désactive le greffon vpn de connman.
-@end table
-@end deftp
-
-@cindex WPA Supplicant
-@defvr {Variable Scheme} wpa-supplicant-service-type
-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.
-@end defvr
-
-@deftp {Type de données} wpa-supplicant-configuration
-Type données qui représente la configuration de WPA Supplicant.
-
-Il prend les paramètres suivants :
-
-@table @asis
-@item @code{wpa-supplicant} (par défaut : @code{wpa-supplicant})
-Le paquet WPA Supplicant à utiliser.
-
-@item @code{dbus?} (par défaut : @code{#t})
-Indique s'il faut écouter les requêtes sur D-Bus.
-
-@item @code{pid-file} (par défaut : @code{"/var/run/wpa_supplicant.pid"})
-Où stocker votre fichier de PID.
-
-@item @code{interface} (par défaut : @code{#f})
-Si une valeur est indiquée, elle doit spécifier le nom d'une interface
-réseau que WPA supplicant contrôlera.
-
-@item @code{config-file} (par défaut : @code{#f})
-Fichier de configuration facultatif à utiliser.
-
-@item @code{extra-options} (par défaut : @code{'()})
-Liste d'arguments de la ligne de commande supplémentaires à passer au démon.
-@end table
-@end deftp
-
-@cindex iptables
-@defvr {Variable Scheme} iptables-service-type
-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.
-
-@lisp
-(service iptables-service-type
-         (iptables-configuration
-          (ipv4-rules (plain-file "iptables.rules" "*filter
-:INPUT ACCEPT
-:FORWARD ACCEPT
-:OUTPUT ACCEPT
--A INPUT -p tcp --dport 22 -j ACCEPT
--A INPUT -j REJECT --reject-with icmp-port-unreachable
-COMMIT
-"))
-          (ipv6-rules (plain-file "ip6tables.rules" "*filter
-:INPUT ACCEPT
-:FORWARD ACCEPT
-:OUTPUT ACCEPT
--A INPUT -p tcp --dport 22 -j ACCEPT
--A INPUT -j REJECT --reject-with icmp6-port-unreachable
-COMMIT
-"))))
-@end lisp
-@end defvr
-
-@deftp {Type de données} iptables-configuration
-Type de données représentant la configuration d'iptables.
-
-@table @asis
-@item @code{iptables} (par défaut : @code{iptables})
-Le paquet iptables qui fournit @code{iptables-restore} et
-@code{ip6tables-restore}.
-@item @code{ipv4-rules} (par défaut : @code{%iptables-accept-all-rules})
-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}).
-@item @code{ipv6-rules} (par défaut : @code{%iptables-accept-all-rules})
-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}).
-@end table
-@end deftp
-
-@cindex NTP (Network Time Protocol), service
-@cindex horloge
-@defvr {Variable Scheme} ntp-service-type
-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.
-
-La valeur de ce service est un objet @code{ntpd-configuration}, décrit
-ci-dessous.
-@end defvr
-
-@deftp {Type de données} ntp-configuration
-C'est le type de données représentant la configuration du service NTP.
-
-@table @asis
-@item @code{servers} (par défaut : @code{%ntp-servers})
-C'est la liste des serveurs (noms d'hôtes) avec lesquels @command{ntpd} sera
-synchronisé.
-
-@item @code{allow-large-adjustment?} (par défaut : @code{#f})
-Détermine si @code{ntpd} peut faire un ajustement initial de plus de
-1@tie{}000 secondes.
-
-@item @code{ntp} (par défaut : @code{ntp})
-Le paquet NTP à utiliser.
-@end table
-@end deftp
-
-@defvr {Variable Scheme} %ntp-servers
-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}
-@end defvr
-
-@cindex OpenNTPD
-@deffn {Procédure Scheme} openntpd-service-type
-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.
-
-@example
-(service
- openntpd-service-type
- (openntpd-configuration
-  (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)))
-
-@end example
-@end deffn
-
-@deftp {Type de données} openntpd-configuration
-@table @asis
-@item @code{openntpd} (par défaut : @code{(file-append openntpd "/sbin/ntpd")})
-L'exécutable openntpd à utiliser.
-@item @code{listen-on} (par défaut : @code{'("127.0.0.1" "::1")})
-Une liste d'adresses IP locales ou de noms d'hôtes que devrait écouter le
-démon ntpd.
-@item @code{query-from} (par défaut : @code{'()})
-Une liste d'adresses IP que le démon devrait utiliser pour les requêtes
-sortantes.
-@item @code{sensor} (par défaut : @code{'()})
-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.
-@item @code{server} (par défaut : @var{%ntp-servers})
-Spécifie une liste d'adresses IP ou de noms d'hôtes de serveurs NTP avec
-lesquels se synchroniser.
-@item @code{servers} (par défaut : @code{'()})
-Spécifie une liste d'adresses IP ou de noms d'hôtes de banques de serveurs
-NTP avec lesquelles se synchroniser.
-@item @code{constraint-from} (par défaut : @code{'()})
-@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.
-@item @code{constraints-from} (par défaut : @code{'()})
-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.
-@item @code{allow-large-adjustment?} (par défaut : @code{#f})
-Détermine si @code{ntpd} peut faire un ajustement initial de plus de 180
-secondes.
-@end table
-@end deftp
-
-@cindex inetd
-@deffn {Variable Scheme} inetd-service-type
-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.
-
-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}
-:
-
-@example
-(service
- inetd-service-type
- (inetd-configuration
-  (entries (list
-            (inetd-entry
-             (name "echo")
-             (socket-type 'stream)
-             (protocol "tcp")
-             (wait? #f)
-             (user "root"))
-            (inetd-entry
-             (node "127.0.0.1")
-             (name "smtp")
-             (socket-type 'stream)
-             (protocol "tcp")
-             (wait? #f)
-             (user "root")
-             (program (file-append openssh "/bin/ssh"))
-             (arguments
-              '("ssh" "-qT" "-i" "/path/to/ssh_key"
-                "-W" "smtp-server:25" "user@@hostname")))))
-@end example
-
-Voir plus bas pour plus de détails sur @code{inetd-configuration}.
-@end deffn
-
-@deftp {Type de données} inetd-configuration
-Type de données représentant la configuration de @command{inetd}.
-
-@table @asis
-@item @code{program} (par défaut : @code{(file-append inetutils "/libexec/inetd")})
-L'exécutable @command{inetd} à utiliser.
-
-@item @code{entries} (par défaut : @code{'()})
-Une liste d'entrées de services @command{inetd}.  Chaque entrée devrait être
-crée avec le constructeur @code{inetd-entry}.
-@end table
-@end deftp
-
-@deftp {Type de données} inetd-entry
-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.
-
-@table @asis
-@item @code{node} (par défaut : @code{#f})
-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.
-@item @code{name}
-Une chaîne de caractères dont le nom doit correspondre à une entrée de
-@code{/etc/services}.
-@item @code{socket-type}
-Un symbole parmi @code{'stream}, @code{'dgram}, @code{'raw}, @code{'rdm} ou
-@code{'seqpacket}.
-@item @code{protocol}
-Une chaîne de caractères qui doit correspondre à une entrée dans
-@code{/etc/protocols}.
-@item @code{wait?} (par défaut : @code{#t})
-Indique si @command{inetd} devrait attendre que le serveur ait quitté avant
-d'écouter de nouvelles demandes de service.
-@item @code{user}
-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"}.
-@item @code{program} (par défaut : @code{"internal"})
-Le programme du serveur qui servira les requêtes, ou @code{"internal"} si
-@command{inetd} devrait utiliser un service inclus.
-@item @code{arguments} (par défaut : @code{'()})
-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")}.
-@end table
-
-@xref{Configuration file,,, inetutils, GNU Inetutils} pour trouver une
-discussion plus détaillée de chaque champ de configuration.
-@end deftp
-
-@cindex Tor
-@defvr {Variable Scheme} tor-service-type
-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}.
-
-@end defvr
-
-@deftp {Type de données} tor-configuration
-@table @asis
-@item @code{tor} (par défaut : @code{tor})
-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}.
-
-@item @code{config-file} (par défaut : @code{(plain-file "empty" "")})
-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.
-
-@item @code{hidden-services} (par défaut : @code{'()})
-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.
-
-@item @code{socks-socket-type} (par défaut : @code{'tcp})
-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}.
-
-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}.
-@end table
-@end deftp
-
-@cindex service caché
-@deffn {Procédure Scheme} tor-hidden-service @var{name} @var{mapping}
-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 :
-
-@example
- '((22 "127.0.0.1:22")
-   (80 "127.0.0.1:8080"))
-@end example
-
-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.
-
-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é.
-
-Voir @uref{https://www.torproject.org/docs/tor-hidden-service.html.en, the
-Tor project's documentation} pour trouver plus d'information.
-@end deffn
-
-Le module @code{(gnu services rsync)} fournit les services suivant :
-
-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.
-
-@deffn {Variable Scheme} rsync-service-type
-C'est le type pour le démon @uref{https://rsync.samba.org, rsync}, qui prend
-un enregistrement @command{rsync-configuration} comme dans cet exemple :
-
-@example
-(service rsync-service-type)
-@end example
-
-Voir plus pas pour trouver des détails à propos de
-@code{rsync-configuration}.
-@end deffn
-
-@deftp {Type de données} rsync-configuration
-Type de données représentant la configuration de @code{rsync-service}.
-
-@table @asis
-@item @code{package} (par défaut : @var{rsync})
-Le paquet @code{rsync} à utiliser.
-
-@item @code{port-number} (par défaut : @code{873})
-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}.
-
-@item @code{pid-file} (par défaut : @code{"/var/run/rsyncd/rsyncd.pid"})
-Nom du fichier où @command{rsync} écrit son PID.
-
-@item @code{lock-file} (par défaut : @code{"/var/run/rsyncd/rsyncd.lock"})
-Nom du fichier où @command{rsync} écrit son fichier de verrouillage.
-
-@item @code{log-file} (par défaut : @code{"/var/log/rsyncd.log"})
-Nom du fichier où @command{rsync} écrit son fichier de journal.
-
-@item @code{use-chroot?} (par défaut : @var{#t})
-S'il faut utiliser un chroot pour le répertoire partagé de @command{rsync}.
-
-@item @code{share-path} (par défaut : @file{/srv/rsync})
-Emplacement du répertoire partagé de @command{rsync}.
-
-@item @code{share-comment} (par défaut : @code{"Rsync share"})
-Commentaire du répertoire partagé de @command{rsync}.
-
-@item @code{read-only?} (par défaut : @var{#f})
-Permission en écriture sur le répertoire partagé.
-
-@item @code{timeout} (par défaut : @code{300})
-Délai d'attente d'entrée-sortie en secondes.
-
-@item @code{user} (par défaut : @var{"root"})
-Propriétaire du processus @code{rsync}.
-
-@item @code{group} (par défaut : @var{"root"})
-Groupe du processus @code{rsync}.
-
-@item @code{uid} (par défaut : @var{"rsyncd"})
-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}.
-
-@item @code{gid} (par défaut : @var{"rsyncd"})
-Nom du groupe ou ID du groupe qui sera utilisé lors de l'accès au module.
-
-@end table
-@end deftp
-
-En plus, @code{(gnu services ssh)} fournit les services suivant.
-@cindex SSH
-@cindex serveur SSH
-
-@deffn {Procédure Scheme} lsh-service [#:host-key "/etc/lsh/host-key"] @
-       [#: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]
-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.
-
-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}.
-
-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.
-
-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}).
-
-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.
-
-@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.
-
-Les autres options devraient être évidentes.
-@end deffn
-
-@cindex SSH
-@cindex serveur SSH
-@deffn {Variable Scheme} openssh-service-type
-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 :
-
-@example
-(service openssh-service-type
-         (openssh-configuration
-           (x11-forwarding? #t)
-           (permit-root-login 'without-password)
-           (authorized-keys
-             `(("alice" ,(local-file "alice.pub"))
-               ("bob" ,(local-file "bob.pub"))))))
-@end example
-
-Voir plus bas pour trouver des détails sur @code{openssh-configuration}.
-
-Ce service peut être étendu avec des clefs autorisées supplémentaires, comme
-dans cet exemple :
-
-@example
-(service-extension openssh-service-type
-                   (const `(("charlie"
-                             ,(local-file "charlie.pub")))))
-@end example
-@end deffn
-
-@deftp {Type de données} openssh-configuration
-C'est l'enregistrement de la configuration de la commande @command{sshd}
-d'OpenSSH.
-
-@table @asis
-@item @code{pid-file} (par défaut : @code{"/var/run/sshd.pid"})
-Nom du fichier où @command{sshd} écrit son PID.
-
-@item @code{port-number} (par défaut : @code{22})
-Port TCP sur lequel @command{sshd} écoute les connexions entrantes.
-
-@item @code{permit-root-login} (par défaut : @code{#f})
-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.
-
-@item @code{allow-empty-passwords?} (par défaut : @code{#f})
-Lorsque la valeur est vraie, les utilisateurs avec un mot de passe vide
-peuvent se connecter.  Sinon, ils ne peuvent pas.
-
-@item @code{password-authentication?} (par défaut : @code{#t})
-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.
-
-@item @code{public-key-authentication?} (par défaut : @code{#t})
-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.
-
-Les clefs publiques autorisées sont stockées dans
-@file{~/.ssh/authorized_keys}.  Ce n'est utilisé que par le protocole
-version 2.
-
-@item @code{x11-forwarding?} (par défaut : @code{#f})
-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.
-
-@item @code{allow-agent-forwarding?} (par défaut : @code{#t})
-Indique s'il faut autoriser la redirection d'agent.
-
-@item @code{allow-tcp-forwarding?} (par défaut : @code{#t})
-Indique s'il faut autoriser la redirection TCP.
-
-@item @code{gateway-ports?} (par défaut : @code{#f})
-Indique s'il faut autoriser les ports de passerelle.
-
-@item @code{challenge-response-authentication?} (par défaut : @code{#f})
-Specifies whether challenge response authentication is allowed (e.g.@: via
-PAM).
-
-@item @code{use-pam?} (par défaut : @code{#t})
-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.
-
-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?}.
-
-@item @code{print-last-log?} (par défaut : @code{#t})
-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.
-
-@item @code{subsystems} (par défaut : @code{'(("sftp" "internal-sftp"))})
-Configures external subsystems (e.g.@: file transfer daemon).
-
-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.
-
-La commande @command{internal-sftp} implémente un serveur SFTP dans le
-processus.  Autrement, on peut spécifier la commande @command{sftp-server} :
-@example
-(service openssh-service-type
-         (openssh-configuration
-          (subsystems
-           `(("sftp" ,(file-append openssh "/libexec/sftp-server"))))))
-@end example
-
-@item @code{accepted-environment} (par défaut : @code{'()})
-Liste de chaînes de caractères qui décrivent les variables d'environnement
-qui peuvent être exportées.
-
-Chaque chaîne a sa propre ligne.  Voir l'option @code{AcceptEnv} dans
-@code{man sshd_config}.
-
-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.
-
-@example
-(service openssh-service-type
-         (openssh-configuration
-           (accepted-environment '("COLORTERM"))))
-@end example
-
-@item @code{authorized-keys} (par défaut : @code{'()})
-@cindex clefs autorisées, SSH
-@cindex SSH, clefs autorisées
-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 :
-
-@example
-(openssh-configuration
-  (authorized-keys
-    `(("rekado" ,(local-file "rekado.pub"))
-      ("chris" ,(local-file "chris.pub"))
-      ("root" ,(local-file "rekado.pub") ,(local-file "chris.pub")))))
-@end example
-
-@noindent
-enregistre les clefs publiques spécifiées pour les comptes @code{rekado},
-@code{chris} et @code{root}.
-
-Des clefs autorisées supplémentaires peuvent être spécifiées via
-@code{service-extension}.
-
-Remarquez que cela n'interfère @emph{pas} avec l'utilisation de
-@file{~/.ssh/authorized_keys}.
-
-@item @code{log-level} (par défaut : @code{'info})
-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.
-
-@item @code{extra-content} (par défaut : @code{""})
-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:
-
-@example
-(openssh-configuration
-  (extra-content "\
-Match Address 192.168.0.1
-  PermitRootLogin yes"))
-@end example
-
-@end table
-@end deftp
-
-@deffn {Procédure Scheme} dropbear-service [@var{config}]
-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>}.
-
-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 :
-
-@example
-(dropbear-service (dropbear-configuration
-                    (port-number 1234)))
-@end example
-@end deffn
-
-@deftp {Type de données} dropbear-configuration
-Ce type de données représente la configuration d'un démon SSH Dropbear.
-
-@table @asis
-@item @code{dropbear} (par défaut : @var{dropbear})
-Le paquet Dropbear à utiliser.
-
-@item @code{port-number} (par défaut : 22)
-Le port TCP sur lequel le démon attend des connexions entrantes.
-
-@item @code{syslog-output?} (par défaut : @code{#t})
-Indique s'il faut activer la sortie vers syslog.
-
-@item @code{pid-file} (par défaut : @code{"/var/run/dropbear.pid"})
-Nom du fichier de PID du démon.
-
-@item @code{root-login?} (par défaut : @code{#f})
-Indique s'il faut autoriser les connexions en @code{root}.
-
-@item @code{allow-empty-passwords?} (par défaut : @code{#f})
-Indique s'il faut autoriser les mots de passes vides.
-
-@item @code{password-authentication?} (par défaut : @code{#t})
-Indique s'il faut autoriser l'authentification par mot de passe.
-@end table
-@end deftp
-
-@defvr {Variable Scheme} %facebook-host-aliases
-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}.
-
-Cette variable est typiquement utilisée dans le champ @code{hosts-file}
-d'une déclaration @code{operating-system} (@pxref{Référence de système d'exploitation, @file{/etc/hosts}}) :
-
-@example
-(use-modules (gnu) (guix))
-
-(operating-system
-  (host-name "mamachine")
-  ;; ...
-  (hosts-file
-    ;; Crée un fichier /etc/hosts avec des alias pour « localhost »
-    ;; et « mamachine », ainsi que pour les serveurs de Facebook.
-    (plain-file "hosts"
-                (string-append (local-host-aliases host-name)
-                               %facebook-host-aliases))))
-@end example
-
-Ce mécanisme peut éviter que des programmes qui tournent localement, comme
-des navigateurs Web, ne se connectent à Facebook.
-@end defvr
-
-Le module @code{(gnu services avahi)} fourni la définition suivante.
-
-@defvr {Scheme Variable} avahi-service-type
-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{http://avahi.org/}).
-Its value must be a @code{zero-configuration} record---see below.
-
-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.
-
-Additionally, add the @var{avahi} package to the system profile so that
-commands such as @command{avahi-browse} are directly usable.
-@end defvr
-
-@deftp {Data Type} avahi-configuration
-Data type representation the configuration for Avahi.
-
-@table @asis
-
-@item @code{host-name} (default: @code{#f})
-If different from @code{#f}, use that as the host name to publish for this
-machine; otherwise, use the machine's actual host name.
-
-@item @code{publish?} (default: @code{#t})
-When true, allow host names and services to be published (broadcast) over
-the network.
-
-@item @code{publish-workstation?} (default: @code{#t})
-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:
-
-@example
-avahi-browse _workstation._tcp
-@end example
-
-@item @code{wide-area?} (default: @code{#f})
-When true, DNS-SD over unicast DNS is enabled.
-
-@item @code{ipv4?} (default: @code{#t})
-@itemx @code{ipv6?} (default: @code{#t})
-These fields determine whether to use IPv4/IPv6 sockets.
-
-@item @code{domains-to-browse} (default: @code{'()})
-This is a list of domains to browse.
-@end table
-@end deftp
-
-@deffn {Variable Scheme} openvswitch-service-type
-C'est le type du service @uref{http://www.openvswitch.org, Open vSwitch},
-dont la valeur devrait être un objet @code{openvswitch-configuration}.
-@end deffn
-
-@deftp {Type de données} openvswitch-configuration
-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.
-
-@table @asis
-@item @code{package} (par défaut : @var{openvswitch})
-Objet de paquet de Open vSwitch.
-
-@end table
-@end deftp
-
-@node Système de fenêtrage X
-@subsection Système de fenêtrage X
-
-@cindex X11
-@cindex Système de fenêtrage X
-@cindex gestionnaire de connexion
-Le support pour le 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 SLiM.
-
-@cindex gestionnaire de fenêtre
-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{Référence de système d'exploitation, system-wide
-packages}).
-
-@defvr {Variable Scheme} slim-service-type
-C'est de type pour le gestionnaire de connexion graphique SLiM pour X11.
-
-@cindex types de sessions (X11)
-@cindex X11, types de sessions
-SLiM 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
-avec @kbd{F1}.  Les paquets comme @code{xfce}, @code{sawfish} et
-@code{ratpoison} fournissent des fichiers @file{.desktop} ; les ajouter à
-l'ensemble des paquets du système les rendra automatiquement disponibles sur
-l'écran de connexion.
-
-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.
-@end defvr
-
-@deftp {Type de données} slim-configuration
-Type de données représentant la configuration de @code{slim-service-type}.
-
-@table @asis
-@item @code{allow-empty-passwords?} (par défaut : @code{#t})
-S'il faut autoriser les connexions avec un mot de passe vide.
-
-@item @code{auto-login?} (par défaut : @code{#f})
-@itemx @code{default-user} (par défaut : @code{""})
-Lorsque @code{auto-login?} est faux, SLiM présent un écran de connexion.
-
-Lorsque @code{auto-login?} est vrai, SLiM se connecte directement en tant
-que @code{default-user}.
-
-@item @code{theme} (par défaut : @code{%default-slim-theme})
-@itemx @code{theme-name} (par défaut : @code{%default-slim-theme-name})
-Le thème graphique à utiliser et son nom.
-
-@item @code{auto-login-session} (par défaut : @code{#f})
-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")}.
-
-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.
-
-@quotation Remarque
-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.
-@end quotation
-
-@item @code{startx} (par défaut : @code{(xorg-start-command)})
-La commande utilisée pour démarrer le serveur graphique X11.
-
-@item @code{xauth} (par défaut : @code{xauth})
-Le paquet XAuth à utiliser.
-
-@item @code{shepherd} (par défaut : @code{shepherd})
-Le paquet Shepherd à utiliser pour invoquer @command{halt} et
-@command{reboot}.
-
-@item @code{sessreg} (par défaut : @code{sessreg})
-Le paquet sessreg à utiliser pour enregistrer la session.
-
-@item @code{slim} (par défaut : @code{slim})
-Le paquet SLiM à utiliser.
-@end table
-@end deftp
-
-@defvr {Variable Scheme} %default-theme
-@defvrx {Variable Scheme} %default-theme-name
-Le thème SLiM par défaut et son nom.
-@end defvr
-
-
-@deftp {Type de données} sddm-configuration
-C'est le type de données représentant la configuration du service sddm.
-
-@table @asis
-@item @code{display-server} (par défaut : "x11")
-Choisit le serveur d'affichage à utiliser pour l'écran d'accueil.  Les
-valeurs valides sont « x11 » et « wayland ».
-
-@item @code{numlock} (par défaut : "on")
-Les valeurs valides sont « on », « off » ou « none ».
-
-@item @code{halt-command} (par défaut : @code{#~(string-apppend #$shepherd "/sbin/halt")})
-La commande à lancer à l'arrêt du système.
-
-@item @code{reboot-command} (par défaut : @code{#~(string-append #$shepherd "/sbin/reboot")})
-La commande à lancer lors du redémarrage du système.
-
-@item @code{theme} (par défaut : "maldives")
-Le thème à utiliser.  Les thèmes par défaut fournis par SDDM sont « elarun »
-et « maldives ».
-
-@item @code{themes-directory} (par défaut : "/run/current-system/profile/share/sddm/themes")
-Le répertoire où se trouvent les thèmes.
-
-@item @code{faces-directory} (par défaut : "/run/current-system/profile/share/sddm/faces")
-Répertoire où se trouvent les avatars.
-
-@item @code{default-path} (par défaut : "/run/current-system/profile/bin")
-Le PATH par défaut à utiliser.
-
-@item @code{minimum-uid} (par défaut : 1000)
-UID minimum pour être affiché dans SDDM.
-
-@item @code{maximum-uid} (par défaut : 2000)
-UID maximum pour être affiché dans SDDM.
-
-@item @code{remember-last-user?} (par défaut : #t)
-S'il faut se rappeler le dernier utilisateur connecté.
-
-@item @code{remember-last-session?} (par défaut : #t)
-S'il faut se rappeler la dernière session.
-
-@item @code{hide-users} (par défaut : "")
-Les noms d'utilisateurs à cacher sur l'écran d'accueil de SDDM.
-
-@item @code{hide-shells} (par défaut : @code{#~(string-append #$shadow "/sbin/nologin")})
-Les utilisateurs avec les shells listés seront cachés sur l'écran d'accueil
-de SDDM.
-
-@item @code{session-command} (par défaut : @code{#~(string-append #$sddm "/share/sddm/scripts/wayland-session")})
-Le script à lancer avant de démarrer une session wayland.
-
-@item @code{sessions-directory} (par défaut : "/run/current-system/profile/share/wayland-sessions")
-Le répertoire où trouver les fichiers .desktop qui démarrent des sessions
-wayland.
-
-@item @code{xorg-server-path} (par défaut : @code{xorg-start-command})
-Chemin vers xorg-server.
-
-@item @code{xauth-path} (par défaut : @code{#~(string-append #$xauth "/bin/xauth")})
-Chemin vers xauth.
-
-@item @code{xephyr-path} (par défaut : @code{#~(string-append #$xorg-server "/bin/Xephyr")})
-Chemin vers Xephyr.
-
-@item @code{xdisplay-start} (par défaut : @code{#~(string-append #$sddm "/share/sddm/scripts/Xsetup")})
-Le script à lancer après avoir démarré xorg-server.
-
-@item @code{xdisplay-stop} (par défaut : @code{#~(string-append #$sddm "/share/sddm/scripts/Xstop")})
-Le script à lancer avant d'arrêter xorg-server.
-
-@item @code{xsession-command} (par défaut : @code{xinitrc})
-Le script à lancer avant de démarrer une session X.
-
-@item @code{xsessions-directory} (par défaut : "/run/current-system/profile/share/xsessions")
-Répertoire où trouver les fichiers .desktop pour les sessions X.
-
-@item @code{minimum-vt} (par défaut : 7)
-VT minimal à utiliser.
-
-@item @code{xserver-arguments} (par défaut : "-nolisten tcp")
-Arguments à passer à xorg-server.
-
-@item @code{auto-login-user} (par défaut : "")
-Utilisateur à utiliser pour la connexion automatique.
-
-@item @code{auto-login-session} (par défaut : "")
-Le fichier desktop à utiliser pour la connexion automatique.
-
-@item @code{relogin?} (par défaut : #f)
-S'il faut se reconnecter après la déconnexion.
-
-@end table
-@end deftp
-
-@cindex gestionnaire de connexion
-@cindex connexion X11
-@deffn {Procédure Scheme} sddm-service config
-Renvoie un service qui démarre le gestionnaire de connexion graphique SDDM
-avec une configuration de type @code{<sddm-configuration>}.
-
-@example
-  (sddm-service (sddm-configuration
-                 (auto-login-user "Alice")
-                 (auto-login-session "xfce.desktop")))
-@end example
-@end deffn
-
-@deffn {Procédure Scheme} xorg-start-command [#:guile] @
-  [#:modules %default-xorg-modules] @ [#:fonts %default-xorg-fonts] @
-[#:configuration-file (xorg-configuration-file @dots{})] @ [#:xorg-server
-@var{xorg-server}] [#:xserver-arguments '("-nolisten" "tcp")] Return a
-@code{startx} script in which @var{modules}, a list of X module packages,
-and @var{fonts}, a list of X font directories, are available.  See
-@code{xorg-wrapper} for more details on the arguments.  The result should be
-used in place of @code{startx}.
-
-Habituellement le serveur X est démarré par un gestionnaire de connexion.
-@end deffn
-
-@cindex @code{-listen tcp}, for X11.
-This procedure is useful to override command line options for the X server,
-such as having it listen to over TCP:
-
-@example
-(operating-system
-  ...
-  (services
-    (modify-services %desktop-services
-      (slim-service-type config =>
-        (slim-configuration
-          (inherit config)
-          (startx (xorg-start-command
-                   #:xserver-arguments '("-listen" "tcp"))))))))
-@end example
-
-@deffn {Procédure Scheme} xorg-configuration-file @
-  [#:modules %default-xorg-modules] @
-[#:fonts %default-xorg-fonts] @
-[#:drivers '()] [#:resolutions '()] [#:extra-config '()]
-Renvoie un fichier de configuration pour le serveur Xorg qui contient des
-chemins de recherche pour tous les pilotes communs.
-
-@var{modules} doit être une liste de @dfn{paquets de modules} chargés par le
-serveur Xorg — p.@: ex.@: @code{xf86-video-vesa}, @code{xf86-input-keyboard}
-etc.  @var{fonts} doit être une liste de répertoires de polices à ajouter au
-@dfn{chemin de polices} du serveur.
-
-@var{drivers} doit être soit la liste vide, auquel cas Xorg choisis un
-pilote graphique automatiquement, soit une liste de noms de pilotes qui
-seront essayés dans cet ordre — p.@: ex.@: @code{("modesetting" "vesa")}.
-
-De même, lorsque @var{resolutions} est la liste vide, Xorg choisis une
-résolution d'écran appropriée ; autrement, ce doit être une liste de
-résolutions — p.@: ex.@: @code{((1024 768) (640 480))}.
-
-Enfin, @var{extra-config} est une liste de chaînes de caractères ou d'objets
-ajoutés au fichier de configuration.  Elle est utilisée pour passer du texte
-supplémentaire à être ajouté directement au fichier de configuration.
-
-@cindex disposition clavier
-@cindex disposition du clavier
-Cette procédure est particulièrement utile pour configurer une disposition
-de clavier différente de la disposition US par défaut.  Par exemple, pour
-utiliser la disposition « bépo » par défaut sur le gestionnaire d'affichage
-:
-
-@example
-(define bepo-evdev
-  "Section \"InputClass\"
-        Identifier \"evdev keyboard catchall\"
-        Driver \"evdev\"
-        MatchIsKeyboard \"on\"
-        Option \"xkb_layout\" \"fr\"
-        Option \"xkb_variant\" \"bepo\"
-EndSection")
-
-(operating-system
-  ...
-  (services
-    (modify-services %desktop-services
-      (slim-service-type config =>
-        (slim-configuration
-          (inherit config)
-          (startx (xorg-start-command
-                   #:configuration-file
-                   (xorg-configuration-file
-                     #:extra-config
-                     (list bepo-evdev)))))))))
-@end example
-
-La ligne @code{MatchIsKeyboard} spécifie que nous n'appliquons la
-configuration qu'aux claviers.  Sans cette ligne, d'autres périphériques
-comme les pavés tactiles ne fonctionneront pas correctement parce qu'ils
-seront associés au mauvais pilote.  Dans cet exemple, l'utilisateur
-utiliserait typiquement @code{setxkbmap fr bepo} pour utiliser sa
-disposition de clavier préférée une fois connecté.  Le premier argument
-correspond à la disposition, tandis que le second argument correspond à la
-variante.  La ligne @code{xkb_variant} peut être omise pour choisir la
-variante par défaut.
-@end deffn
-
-@deffn {Procédure Scheme} screen-locker-service @var{package} [@var{program}]
-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 :
-
-@lisp
-(screen-locker-service xlockmore "xlock")
-@end lisp
-
-rend utilisable le bon vieux XlockMore.
-@end deffn
-
-
-@node Services d'impression
-@subsection Services d'impression
-
-@cindex support des imprimantes avec CUPS
-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:
-
-@deffn {Variable Scheme} cups-service-type
-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 :
-@example
-(service cups-service-type)
-@end example
-@end deffn
-
-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.
-
-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)}) :
-
-@example
-(service cups-service-type
-         (cups-configuration
-           (web-interface? #t)
-           (extensions
-             (list cups-filters escpr hplip-minimal))))
-@end example
-
-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.
-
-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.
-
-@c The following documentation was initially generated by
-@c (generate-documentation) in (gnu services cups).  Manually maintained
-@c documentation is better, so we shouldn't hesitate to edit below as
-@c needed.  However if the change you want to make to this documentation
-@c can be done in an automated way, it's probably easier to change
-@c (generate-documentation) than to make it below and have to deal with
-@c the churn as CUPS updates.
-
-
-Les champs de @code{cups-configuration} disponibles sont :
-
-@deftypevr {paramètre de @code{cups-configuration}} package cups
-Le paquet CUPS.
-@end deftypevr
-
-@deftypevr {paramètre de @code{cups-configuration}} package-list extensions
-Pilotes et autres extensions du paquet CUPS.
-@end deftypevr
-
-@deftypevr {paramètre de @code{cups-configuration}} files-configuration files-configuration
-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.
-
-Les champs @code{files-configuration} disponibles sont :
-
-@deftypevr {paramètre de @code{files-configuration}} log-location access-log
-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}.
-
-La valeur par défaut est @samp{"/var/log/cups/access_log"}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{files-configuration}} file-name cache-dir
-L'emplacement où CUPS devrait mettre les données en cache.
-
-La valeur par défaut est @samp{"/var/cache/cups"}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{files-configuration}} string config-file-perm
-Spécifie les permissions pour tous les fichiers de configuration que
-l'ordonnanceur écrit.
-
-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é.
-
-La valeur par défaut est @samp{"0640"}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{files-configuration}} log-location error-log
-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 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-error_log}.
-
-La valeur par défaut est @samp{"/var/log/cups/error_log"}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{files-configuration}} string fatal-errors
-Spécifie quelles erreurs sont fatales, qui font terminer l'ordonnanceur.
-Les types de chaînes sont :
-
-@table @code
-@item none
-Aucune erreur n'est fatale.
-
-@item all
-Toutes les erreurs ci-dessous sont fatales.
-
-@item browse
-Les erreurs d'initialisation de la navigation sont fatales, par exemple les
-connexion échouées au démon DNS-SD.
-
-@item config
-Les erreurs de syntaxe du fichier de configuration sont fatale.
-
-@item listen
-Les erreurs d'écoute ou de port sont fatales, sauf pour les erreurs d'IPv6
-sur la boucle locale ou les adresses @code{any}.
-
-@item log
-Les erreurs de création ou d'écriture des fichiers de journal sont fatales.
-
-@item permissions
-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.
-@end table
-
-La valeur par défaut est @samp{"all -browse"}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{files-configuration}} boolean file-device?
-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.
-
-La valeur par défaut est @samp{#f}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{files-configuration}} string group
-Spécifie le nom ou l'ID du groupe qui sera utilisé lors de l'exécution de
-programmes externes.
-
-La valeur par défaut est @samp{"lp"}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{files-configuration}} string log-file-perm
-Spécifie les permissions pour tous les fichiers de journal que
-l'ordonnanceur écrit.
-
-La valeur par défaut est @samp{"0644"}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{files-configuration}} log-location page-log
-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}.
-
-La valeur par défaut est @samp{"/var/log/cups/page_log"}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{files-configuration}} string remote-root
-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}.
-
-La valeur par défaut est @samp{"remroot"}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{files-configuration}} file-name request-root
-Spécifie le répertoire qui contient les travaux d'impression et d'autres
-données des requêtes HTTP.
-
-La valeur par défaut est @samp{"/var/spool/cups"}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{files-configuration}} sandboxing sandboxing
-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.
-
-La valeur par défaut est @samp{strict}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{files-configuration}} file-name server-keychain
-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.
-
-La valeur par défaut est @samp{"/etc/cups/ssl"}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{files-configuration}} file-name server-root
-Spécifie le répertoire contenant les fichiers de configuration du serveur.
-
-La valeur par défaut est @samp{"/etc/cups"}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{files-configuration}} boolean sync-on-close?
-Spécifie si l'ordonnanceur appelle fsync(2) après avoir écrit la
-configuration ou les fichiers d'état.
-
-La valeur par défaut est @samp{#f}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{files-configuration}} space-separated-string-list system-group
-Spécifie le groupe ou les groupes à utiliser pour l'authentification du
-groupe @code{@@SYSTEM}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{files-configuration}} file-name temp-dir
-Spécifie le répertoire où les fichiers temporaires sont stockés.
-
-La valeur par défaut est @samp{"/var/spool/cups/tmp"}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{files-configuration}} string user
-Spécifie le nom d'utilisateur ou l'ID utilisé pour lancer des programmes
-externes.
-
-La valeur par défaut est @samp{"lp"}.
-@end deftypevr
-@end deftypevr
-
-@deftypevr {paramètre de @code{cups-configuration}} access-log-level access-log-level
-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.
-
-La valeur par défaut est @samp{actions}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{cups-configuration}} boolean auto-purge-jobs?
-Spécifie s'il faut vider l'historique des travaux automatiquement lorsqu'il
-n'est plus nécessaire pour les quotas.
-
-La valeur par défaut est @samp{#f}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{cups-configuration}} browse-local-protocols browse-local-protocols
-Spécifie les protocoles à utiliser pour partager les imprimantes sur le
-réseau local.
-
-La valeur par défaut est @samp{dnssd}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{cups-configuration}} boolean browse-web-if?
-Spécifie si l'interface web de CUPS est publiée.
-
-La valeur par défaut est @samp{#f}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{cups-configuration}} boolean browsing?
-Spécifie si les imprimantes partagées sont publiées.
-
-La valeur par défaut est @samp{#f}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{cups-configuration}} string classification
-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.
-
-La valeur par défaut est @samp{""}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{cups-configuration}} boolean classify-override?
-Spécifie si les utilisateurs peuvent remplacer la classification (page de
-couverture) des travaux d'impression individuels avec l'option
-@code{job-sheets}.
-
-La valeur par défaut est @samp{#f}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{cups-configuration}} default-auth-type default-auth-type
-Spécifie le type d'authentification par défaut à utiliser.
-
-La valeur par défaut est @samp{Basic}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{cups-configuration}} default-encryption default-encryption
-Spécifie si le chiffrement sera utilisé pour les requêtes authentifiées.
-
-La valeur par défaut est @samp{Required}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{cups-configuration}} string default-language
-Spécifie la langue par défaut à utiliser pour le contenu textuel et web.
-
-La valeur par défaut est @samp{"en"}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{cups-configuration}} string default-paper-size
-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"}.
-
-La valeur par défaut est @samp{"Auto"}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{cups-configuration}} string default-policy
-Spécifie la politique d'accès par défaut à utiliser.
-
-La valeur par défaut est @samp{"default"}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{cups-configuration}} boolean default-shared?
-Spécifie si les imprimantes locales sont partagées par défaut.
-
-La valeur par défaut est @samp{#t}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{cups-configuration}} non-negative-integer dirty-clean-interval
-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.
-
-La valeur par défaut est @samp{30}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{cups-configuration}} error-policy error-policy
-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.
-
-La valeur par défaut est @samp{stop-printer}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{cups-configuration}} non-negative-integer filter-limit
-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.
-
-La valeur par défaut est @samp{0}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{cups-configuration}} non-negative-integer filter-nice
-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é.
-
-La valeur par défaut est @samp{0}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{cups-configuration}} host-name-lookups host-name-lookups
-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.
-
-La valeur par défaut est @samp{#f}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{cups-configuration}} non-negative-integer job-kill-delay
-Spécifie le nombre de secondes à attendre avant de tuer les filtres et les
-moteurs associés avec un travail annulé ou suspendu.
-
-La valeur par défaut est @samp{30}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{cups-configuration}} non-negative-integer job-retry-interval
-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}.
-
-La valeur par défaut est @samp{30}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{cups-configuration}} non-negative-integer job-retry-limit
-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}.
-
-La valeur par défaut est @samp{5}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{cups-configuration}} boolean keep-alive?
-Spécifie s'il faut supporter les connexion HTTP keep-alive.
-
-La valeur par défaut est @samp{#t}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{cups-configuration}} non-negative-integer keep-alive-timeout
-Spécifie combien de temps les connexions inactives avec les clients restent
-ouvertes, en secondes.
-
-La valeur par défaut est @samp{30}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{cups-configuration}} non-negative-integer limit-request-body
-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.
-
-La valeur par défaut est @samp{0}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{cups-configuration}} multiline-string-list listen
-É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.
-@end deftypevr
-
-@deftypevr {paramètre de @code{cups-configuration}} non-negative-integer listen-back-log
-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.
-
-La valeur par défaut est @samp{128}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{cups-configuration}} location-access-control-list location-access-controls
-Spécifie un ensemble de contrôles d'accès supplémentaires.
-
-Les champs de @code{location-access-controls} disponibles sont :
-
-@deftypevr {paramètre de @code{location-access-controls}} file-name path
-Spécifie le chemin d'URI auquel les contrôles d'accès s'appliquent.
-@end deftypevr
-
-@deftypevr {paramètre de @code{location-access-controls}} access-control-list access-controls
-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}.
-
-La valeur par défaut est @samp{()}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{location-access-controls}} method-access-control-list method-access-controls
-Contrôles d'accès pour les accès spécifiques à la méthode à ce chemin.
-
-La valeur par défaut est @samp{()}.
-
-Les champs de @code{method-access-controls} disponibles sont :
-
-@deftypevr {paramètre de @code{method-access-controls}} boolean reverse?
-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.
-
-La valeur par défaut est @samp{#f}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{method-access-controls}} method-list methods
-Les méthodes auxquelles ce contrôle d'accès s'applique.
-
-La valeur par défaut est @samp{()}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{method-access-controls}} access-control-list access-controls
-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 ».
-
-La valeur par défaut est @samp{()}.
-@end deftypevr
-@end deftypevr
-@end deftypevr
-
-@deftypevr {paramètre de @code{cups-configuration}} non-negative-integer log-debug-history
-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.
-
-La valeur par défaut est @samp{100}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{cups-configuration}} log-level log-level
-Spécifie le niveau de journalisation du fichier ErrorLog.  La valeur
-@code{none} arrête toute journalisation alors que que @code{debug2}
-enregistre tout.
-
-La valeur par défaut est @samp{info}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{cups-configuration}} log-time-format log-time-format
-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.
-
-La valeur par défaut est @samp{standard}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{cups-configuration}} non-negative-integer max-clients
-Spécifie le nombre maximum de clients simultanés qui sont autorisés par
-l'ordonnanceur.
-
-La valeur par défaut est @samp{100}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{cups-configuration}} non-negative-integer max-clients-per-host
-Spécifie le nombre maximum de clients simultanés permis depuis une même
-adresse.
-
-La valeur par défaut est @samp{100}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{cups-configuration}} non-negative-integer max-copies
-Spécifie le nombre maximum de copies qu'un utilisateur peut imprimer pour
-chaque travail.
-
-La valeur par défaut est @samp{9999}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{cups-configuration}} non-negative-integer max-hold-time
-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.
-
-La valeur par défaut est @samp{0}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{cups-configuration}} non-negative-integer max-jobs
-Spécifie le nombre maximum de travaux simultanés autorisés.  La valeur 0
-permet un nombre illimité de travaux.
-
-La valeur par défaut est @samp{500}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{cups-configuration}} non-negative-integer max-jobs-per-printer
-Spécifie le nombre maximum de travaux simultanés autorisés par imprimante.
-La valeur 0 permet au plus MaxJobs travaux par imprimante.
-
-La valeur par défaut est @samp{0}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{cups-configuration}} non-negative-integer max-jobs-per-user
-Spécifie le nombre maximum de travaux simultanés permis par utilisateur.  La
-valeur 0 permet au plus MaxJobs travaux par utilisateur.
-
-La valeur par défaut est @samp{0}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{cups-configuration}} non-negative-integer max-job-time
-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 ».
-
-La valeur par défaut est @samp{10800}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{cups-configuration}} non-negative-integer max-log-size
-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.
-
-La valeur par défaut est @samp{1048576}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{cups-configuration}} non-negative-integer multiple-operation-timeout
-Spécifie la durée maximale à permettre entre les fichiers d'un travail en
-contenant plusieurs, en secondes.
-
-La valeur par défaut est @samp{300}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{cups-configuration}} string page-log-format
-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 :
-
-@table @samp
-@item %%
-insère un seul caractères pourcent
-
-@item %@{name@}
-insère la valeur de l'attribut IPP spécifié
-
-@item %C
-insère le nombre de copies pour la page actuelle
-
-@item %P
-insère le numéro de page actuelle
-
-@item %T
-insère la date et l'heure actuelle dans un format de journal commun
-
-@item %j
-insère l'ID du travail
-
-@item %p
-insère le nom de l'imprimante
-
-@item %u
-insère le nom d'utilisateur
-@end table
-
-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.
-
-La valeur par défaut est @samp{""}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{cups-configuration}} environment-variables environment-variables
-Passe les variables d'environnement spécifiées aux processus fils ; une
-liste de chaînes de caractères.
-
-La valeur par défaut est @samp{()}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{cups-configuration}} policy-configuration-list policies
-Spécifie des politiques de contrôle d'accès nommées.
-
-Les champs de @code{policy-configuration} disponibles sont :
-
-@deftypevr {paramètre de @code{policy-configuration}} string name
-Nom de la politique.
-@end deftypevr
-
-@deftypevr {paramètre de @code{policy-configuration}} string job-private-access
-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}.
-
-La valeur par défaut est @samp{"@@OWNER @@SYSTEM"}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{policy-configuration}} string job-private-values
-Spécifie la liste des valeurs de travaux à rendre privée, ou @code{all},
-@code{default}, ou @code{none}.
-
-La valeur par défaut est @samp{"job-name job-originating-host-name
-job-originating-user-name phone"}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{policy-configuration}} string subscription-private-access
-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}.
-
-La valeur par défaut est @samp{"@@OWNER @@SYSTEM"}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{policy-configuration}} string subscription-private-values
-Spécifie la liste des valeurs de travaux à rendre privée, ou @code{all},
-@code{default}, ou @code{none}.
-
-La valeur par défaut est @samp{"notify-events notify-pull-method
-notify-recipient-uri notify-subscriber-user-name notify-user-data"}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{policy-configuration}} operation-access-control-list access-controls
-Contrôle d'accès par les actions IPP.
-
-La valeur par défaut est @samp{()}.
-@end deftypevr
-@end deftypevr
-
-@deftypevr {paramètre de @code{cups-configuration}} boolean-or-non-negative-integer preserve-job-files
-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.
-
-La valeur par défaut est @samp{86400}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{cups-configuration}} boolean-or-non-negative-integer preserve-job-history
-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.
-
-La valeur par défaut est @samp{#t}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{cups-configuration}} non-negative-integer reload-timeout
-Spécifie la durée d'attente pour la fin des travaux avant de redémarrer
-l'ordonnanceur.
-
-La valeur par défaut est @samp{30}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{cups-configuration}} string rip-cache
-Spécifie la quantité de mémoire maximale à utiliser pour convertir des
-documents en bitmaps pour l'imprimante.
-
-La valeur par défaut est @samp{"128m"}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{cups-configuration}} string server-admin
-Spécifie l'adresse de courriel de l'administrateur système.
-
-La valeur par défaut est @samp{"root@@localhost.localdomain"}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{cups-configuration}} host-name-list-or-* server-alias
-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{*}.
-
-La valeur par défaut est @samp{*}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{cups-configuration}} string server-name
-Spécifie le nom d'hôte pleinement qualifié du serveur.
-
-La valeur par défaut est @samp{"localhost"}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{cups-configuration}} server-tokens server-tokens
-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}.
-
-La valeur par défaut est @samp{Minimal}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{cups-configuration}} string set-env
-Indique que la variable d'environnement spécifiée doit être passée aux
-processus fils.
-
-La valeur par défaut est @samp{"variable value"}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{cups-configuration}} multiline-string-list ssl-listen
-É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.
-
-La valeur par défaut est @samp{()}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{cups-configuration}} ssl-options ssl-options
-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.
-
-La valeur par défaut est @samp{()}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{cups-configuration}} boolean strict-conformance?
-Spécifie si l'ordonnanceur demande aux clients d'adhérer aux spécifications
-IPP.
-
-La valeur par défaut est @samp{#f}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{cups-configuration}} non-negative-integer timeout
-Spécifie le délai d'attente des requêtes HTTP, en secondes.
-
-La valeur par défaut est @samp{300}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{cups-configuration}} boolean web-interface?
-Spécifie si l'interface web est activée.
-
-La valeur par défaut est @samp{#f}.
-@end deftypevr
-
-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}.
-
-Les champs de @code{opaque-cups-configuration} disponibles sont :
-
-@deftypevr {paramètre de @code{opaque-cups-configuration}} package cups
-Le paquet CUPS.
-@end deftypevr
-
-@deftypevr {paramètre de @code{opaque-cups-configuration}} string cupsd.conf
-Le contenu de @code{cupsd.conf}, en tant que chaîne de caractères.
-@end deftypevr
-
-@deftypevr {paramètre de @code{opaque-cups-configuration}} string cups-files.conf
-Le contenu du fichier @code{cups-files.conf}, en tant que chaîne de
-caractères.
-@end deftypevr
-
-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 :
-
-@example
-(service cups-service-type
-         (opaque-cups-configuration
-           (cupsd.conf cupsd.conf)
-           (cups-files.conf cups-files.conf)))
-@end example
-
-
-@node Services de bureaux
-@subsection Services de bureaux
-
-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.
-
-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 :
-
-@defvr {Variable Scheme} %desktop-services
-C'est la liste des services qui étend @var{%base-services} en ajoutant ou en
-ajustant des services pour une configuration « de bureau » typique.
-
-En particulier, il ajoute un gestionnaire de connexion graphique (@pxref{Système de fenêtrage X, @code{slim-service}}), des verrouilleurs d'écran, un outil de
-gestion réseau (@pxref{Services réseau,
-@code{network-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 leur
-mot de passe, un client NTP (@pxref{Services réseau}), le démon Avahi,
-et le service name service switch est configuré pour pouvoir utiliser
-@code{nss-mdns} (@pxref{Name Service Switch, mDNS}).
-@end defvr
-
-La variable @var{%desktop-services} peut être utilisée comme champ
-@code{services} d'une déclaration @code{operating-system}
-(@pxref{Référence de système d'exploitation, @code{services}}).
-
-En plus, les procédures @code{gnome-desktop-service},
-@code{xfce-desktop-service}, @code{mate-desktop-service} 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} ajoute le métapaquet GNOME au profil du
-système.  de même, ajouter le service XFCE ajoute 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.  « 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.
-
-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
-@code{slim-service} 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.
-
-@deffn {Procédure Scheme} gnome-desktop-service
-Renvoie un service qui ajoute le paquet @code{gnome} au profil système et
-étend polkit avec des actions de @code{gnome-settings-daemon}.
-@end deffn
-
-@deffn {Procédure Scheme} xfce-desktop-service
-Renvoie un service qui ajoute le paquet @code{xfce} au profil du système et
-étend polkit avec la capacité pour @code{thunar} de manipuler le système de
-fichier en tant que root depuis une session utilisateur, après que
-l'utilisateur s'est authentifié avec le mot de passe administrateur.
-@end deffn
-
-@deffn {Procédure Scheme} mate-desktop-service
-Renvoie un service qui ajoute le paquet @code{mate} au profil du système et
-étend polkit avec les actions de @code{mate-settings-daemon}.
-@end deffn
-
-@deffn {Procédure Scheme} enlightenment-desktop-service-type
-Renvoie un service qui ajoute le paquet @code{enlightenment} et étend dbus
-avec les actions de @code{efl}
-@end deffn
-
-@deftp {Type de données} enlightenment-desktop-service-configuration
-@table @asis
-@item @code{enlightenment} (par défaut : @code{enlightenment})
-Le paquet enlightenment à utiliser.
-@end table
-@end deftp
-
-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}.
-
-@example
-(use-modules (gnu))
-(use-service-modules desktop)
-(operating-system
-  ...
-  ;; cons* ajoute les élément à la liste donnée en dernier argument
-  (services (cons* (gnome-desktop-service)
-                   (xfce-desktop-service)
-                   %desktop-services))
-  ...)
-@end example
-
-Ces environnements de bureau seront alors disponibles comme une option dans
-la fenêtre de connexion graphique.
-
-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.
-
-@deffn {Procédure Scheme} dbus-service [#:dbus @var{dbus}] [#:services '()]
-Renvoie un service qui lance le « bus système », @var{dbus}, avec le support
-de @var{services}.
-
-@uref{http://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.
-
-@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)}.
-@end deffn
-
-@deffn {Procédure Scheme} elogind-service [#:config @var{config}]
-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.
-
-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é.
-
-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 :
-
-@table @code
-@item kill-user-processes?
-@code{#f}
-@item kill-only-users
-@code{()}
-@item kill-exclude-users
-@code{("root")}
-@item inhibit-delay-max-seconds
-@code{5}
-@item handle-power-key
-@code{poweroff}
-@item handle-suspend-key
-@code{suspend}
-@item handle-hibernate-key
-@code{hibernate}
-@item handle-lid-switch
-@code{suspend}
-@item handle-lid-switch-docked
-@code{ignore}
-@item power-key-ignore-inhibited?
-@code{#f}
-@item suspend-key-ignore-inhibited?
-@code{#f}
-@item hibernate-key-ignore-inhibited?
-@code{#f}
-@item lid-switch-ignore-inhibited?
-@code{#t}
-@item holdoff-timeout-seconds
-@code{30}
-@item idle-action
-@code{ignore}
-@item idle-action-seconds
-@code{(* 30 60)}
-@item runtime-directory-size-percent
-@code{10}
-@item runtime-directory-size
-@code{#f}
-@item remove-ipc?
-@code{#t}
-@item suspend-state
-@code{("mem" "standby" "freeze")}
-@item suspend-mode
-@code{()}
-@item hibernate-state
-@code{("disk")}
-@item hibernate-mode
-@code{("platform" "shutdown")}
-@item hybrid-sleep-state
-@code{("disk")}
-@item hybrid-sleep-mode
-@code{("suspend" "platform" "shutdown")}
-@end table
-@end deffn
-
-@deffn {Procédure Scheme} accountsservice-service @
-       [#:accountsservice @var{accountsservice}]
-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.
-
-L'argument @var{accountsservice} est le paquet @code{accountsservice} à
-exposer comme un service.
-@end deffn
-
-@deffn {Procédure Scheme} polkit-service @
-                         [#:polkit @var{polkit}]
-Renvoie un service qui lance le
-@uref{http://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.
-@end deffn
-
-@defvr {Scheme Variable} upower-service-type
-Service that runs @uref{http://upower.freedesktop.org/, @command{upowerd}},
-a system-wide monitor for power consumption and battery levels, with the
-given configuration settings.
-
-It implements the @code{org.freedesktop.UPower} D-Bus interface, and is
-notably used by GNOME.
-@end defvr
-
-@deftp {Data Type} upower-configuration
-Data type representation the configuration for UPower.
-
-@table @asis
-
-@item @code{upower} (default: @var{upower})
-Package to use for @code{upower}.
-
-@item @code{watts-up-pro?} (default: @code{#f})
-Enable the Watts Up Pro device.
-
-@item @code{poll-batteries?} (default: @code{#t})
-Enable polling the kernel for battery level changes.
-
-@item @code{ignore-lid?} (default: @code{#f})
-Ignore the lid state, this can be useful if it's incorrect on a device.
-
-@item @code{use-percentage-for-policy?} (default: @code{#f})
-Whether battery percentage based policy should be used.  The default is to
-use the time left, change to @code{#t} to use the percentage.
-
-@item @code{percentage-low} (default: @code{10})
-When @code{use-percentage-for-policy?} is @code{#t}, this sets the
-percentage at which the battery is considered low.
-
-@item @code{percentage-critical} (default: @code{3})
-When @code{use-percentage-for-policy?} is @code{#t}, this sets the
-percentage at which the battery is considered critical.
-
-@item @code{percentage-action} (default: @code{2})
-When @code{use-percentage-for-policy?} is @code{#t}, this sets the
-percentage at which action will be taken.
-
-@item @code{time-low} (default: @code{1200})
-When @code{use-time-for-policy?} is @code{#f}, this sets the time remaining
-in seconds at which the battery is considered low.
-
-@item @code{time-critical} (default: @code{300})
-When @code{use-time-for-policy?} is @code{#f}, this sets the time remaining
-in seconds at which the battery is considered critical.
-
-@item @code{time-action} (default: @code{120})
-When @code{use-time-for-policy?} is @code{#f}, this sets the time remaining
-in seconds at which action will be taken.
-
-@item @code{critical-power-action} (default: @code{'hybrid-sleep})
-The action taken when @code{percentage-action} or @code{time-action} is
-reached (depending on the configuration of
-@code{use-percentage-for-policy?}).
-
-Possible values are:
-
-@itemize @bullet
-@item
-@code{'power-off}
-
-@item
-@code{'hibernate}
-
-@item
-@code{'hybrid-sleep}.
-@end itemize
-
-@end table
-@end deftp
-
-@deffn {Procédure Scheme} udisks-service [#:udisks @var{udisks}]
-Renvoie un service pour @uref{http://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.
-@end deffn
-
-@deffn {Procédure Scheme} colord-service [#:colord @var{colord}]
-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{http://www.freedesktop.org/software/colord/, le site web de colord}
-pour plus d'informations.
-@end deffn
-
-@deffn {Procédure Scheme} geoclue-application name [#:allowed? #t] [#:system? #f] [#:users '()]
-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.
-@end deffn
-
-@defvr {Variable Scheme} %standard-geoclue-applications
-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.
-@end defvr
-
-@deffn {Procédure Scheme} geoclue-service [#:colord @var{colord}] @
-                         [#: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]
-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.
-@end deffn
-
-@deffn {Procédure Scheme} bluetooth-service [#:bluez @var{bluez}] @
-       [@w{#:auto-enable? #f}]
-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.
-
-Les utilisateurs doivent être dans le groupe @code{lp} pour accéder au
-service D-Bus.
-@end deffn
-
-@node Services de son
-@subsection Services de son
-
-@cindex support du son
-@cindex ALSA
-@cindex PulseAudio, support du son
-
-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.
-
-@deffn {Variable Scheme} alsa-service-type
-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 :
-
-@example
-(service alsa-service-type)
-@end example
-
-Voir plus bas pour des détails sur @code{alsa-configuration}.
-@end deffn
-
-@deftp {Type de données} alsa-configuration
-Type de données représentant la configuration pour @code{alsa-service}.
-
-@table @asis
-@item @code{alsa-plugins} (par défaut : @var{alsa-plugins})
-Le paquet @code{alsa-plugins} à utiliser.
-
-@item @code{pulseaudio?} (par défaut : @var{#t})
-Indique si les applications ALSA devraient utiliser le serveur de son
-@uref{http://www.pulseaudio.org/, PulseAudio} de manière transparente pour
-elles.
-
-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.
-
-@item @code{extra-options} (par défaut : @var{""})
-Chaîne à ajouter au fichier @file{/etc/asound.conf}.
-
-@end table
-@end deftp
-
-Les utilisateurs individuels qui veulent modifier la configuration système
-d'ALSA peuvent le faire avec le fichier @file{~/.asoundrc} :
-
-@example
-# Dans guix, il faut spécifier le chemin absolu des greffons.
-pcm_type.jack @{
-  lib "/home/alice/.guix-profile/lib/alsa-lib/libasound_module_pcm_jack.so"
-@}
-
-# Faire passer ALSA par Jack :
-# <http://jackaudio.org/faq/routing_alsa.html>.
-pcm.rawjack @{
-  type jack
-  playback_ports @{
-    0 system:playback_1
-    1 system:playback_2
-  @}
-
-  capture_ports @{
-    0 system:capture_1
-    1 system:capture_2
-  @}
-@}
-
-pcm.!default @{
-  type plug
-  slave @{
-    pcm "rawjack"
-  @}
-@}
-@end example
-
-Voir @uref{https://www.alsa-project.org/main/index.php/Asoundrc} pour les
-détails.
-
-
-@node Services de bases de données
-@subsection Services de bases de données
-
-@cindex database
-@cindex SQL
-Le module @code{(gnu services databases)} fournit les services suivants.
-
-@deffn {Procédure Scheme} 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.
-
-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}.
-
-@cindex postgresql extension-packages
-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:
-
-@cindex postgis
-@example
-(use-package-modules databases geo)
-
-(operating-system
-  ...
-  ;; postgresql is required to run `psql' but postgis is not required for
-  ;; proper operation.
-  (packages (cons* postgresql %base-packages))
-  (services
-    (cons*
-      (postgresql-service #:extension-packages (list postgis))
-      %base-services)))
-@end example
-
-Then the extension becomes visible and you can initialise an empty
-geographic database in this way:
-
-@example
-psql -U postgres
-> create database postgistest;
-> \connect postgistest;
-> create extension postgis;
-> create extension postgis_topology;
-@end example
-
-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 {Procédure Scheme} mysql-service [#:config (mysql-configuration)]
-Renvoie un service qui lance @command{mysqld}, le service de bases de
-données MySQL ou MariaDB.
-
-L'argument @var{config} facultatif spécifie la configuration de
-@command{mysqld}, qui devrait être un objet @code{<mysql-configuration>}.
-@end deffn
-
-@deftp {Type de données} mysql-configuration
-Type de données représentant la configuration de @var{mysql-service}.
-
-@table @asis
-@item @code{mysql} (par défaut : @var{mariadb})
-Objet paquet du serveur de base de données MySQL, qui peut être soit
-@var{mariadb}, soit @var{mysql}.
-
-Pour MySQL, un mot de passe root temporaire sera affiché à l'activation.
-Pour MariaDB, le mot de passe root est vide.
-
-@item @code{port} (par défaut : @code{3306})
-Port TCP sur lequel le serveur de base de données écoute les connexions
-entrantes.
-@end table
-@end deftp
-
-@defvr {Variable Scheme} memcached-service-type
-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}.
-@end defvr
-
-@example
-(service memcached-service-type)
-@end example
-
-@deftp {Type de données} memcached-configuration
-Type de données représentant la configuration de memcached.
-
-@table @asis
-@item @code{memcached} (par défaut : @code{memcached})
-Le paquet Memcached à utiliser.
-
-@item @code{interfaces} (par défaut : @code{'("0.0.0.0")})
-Les interfaces réseaux sur lesquelles écouter.
-
-@item @code{tcp-port} (par défaut : @code{11211})
-Port sur lequel accepter les connexions.
-
-@item @code{udp-port} (par défaut : @code{11211})
-Port sur lequel accepter les connexions UDP, une valeur de 0 désactive
-l'écoute en UDP.
-
-@item @code{additional-options} (par défaut : @code{'()})
-Options de la ligne de commande supplémentaires à passer à @code{memcached}.
-@end table
-@end deftp
-
-@defvr {Variable Scheme} mongodb-service-type
-C'est le type de service pour @uref{https://www.mongodb.com/, MongoDB}.  La
-valeur de ce service est un objet @code{mongodb-configuration}.
-@end defvr
-
-@example
-(service mongodb-service-type)
-@end example
-
-@deftp {Type de données} mongodb-configuration
-Type de données représentant la configuration de mongodb.
-
-@table @asis
-@item @code{mongodb} (par défaut : @code{mongodb})
-Le paquet MongoDB à utiliser.
-
-@item @code{config-file} (par défaut : @code{%default-mongodb-configuration-file})
-Le fichier de configuration pour MongoDB.
-
-@item @code{data-directory} (par défaut : @code{"/var/lib/mongodb"})
-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.
-@end table
-@end deftp
-
-@defvr {Variable Scheme} redis-service-type
-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}.
-@end defvr
-
-@deftp {Type de données} redis-configuration
-Type de données représentant la configuration de redis.
-
-@table @asis
-@item @code{redis} (par défaut : @code{redis})
-Le paquet Redis à utiliser.
-
-@item @code{bind} (par défaut : @code{"127.0.0.1"})
-Interface réseau sur laquelle écouter.
-
-@item @code{port} (par défaut : @code{6379})
-Port sur lequel accepter les connexions, une valeur de 0 désactive l'écoute
-sur un socket TCP.
-
-@item @code{working-directory} (par défaut : @code{"/var/lib/redis"})
-Répertoire dans lequel stocker la base de données et les fichiers liés.
-@end table
-@end deftp
-
-@node Services de courriels
-@subsection Services de courriels
-
-@cindex courriel
-@cindex email
-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.
-
-@subsubheading Service Dovecot
-
-@deffn {Procédure Scheme} dovecot-service [#:config (dovecot-configuration)]
-Renvoie un service qui lance le serveur de courriel IMAP/POP3/LMTP Dovecot.
-@end deffn
-
-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.
-
-Par exemple, pour spécifier que les courriels se trouvent dans
-@code{maildir~/.mail}, on peut instancier Dovecot de cette manière :
-
-@example
-(dovecot-service #:config
-                 (dovecot-configuration
-                  (mail-location "maildir:~/.mail")))
-@end example
-
-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.
-
-@c The following documentation was initially generated by
-@c (generate-documentation) in (gnu services mail).  Manually maintained
-@c documentation is better, so we shouldn't hesitate to edit below as
-@c needed.  However if the change you want to make to this documentation
-@c can be done in an automated way, it's probably easier to change
-@c (generate-documentation) than to make it below and have to deal with
-@c the churn as dovecot updates.
-
-Les champs de @code{dovecot-configuration} disponibles sont :
-
-@deftypevr {paramètre de @code{dovecot-configuration}} package dovecot
-Le paquet dovecot
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} comma-separated-string-list listen
-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.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} protocol-configuration-list protocols
-Liste des protocoles que vous voulez servir.  Les protocoles disponibles
-comprennent @samp{imap}, @samp{pop3} et @samp{lmtp}.
-
-Les champs @code{protocol-configuration} disponibles sont :
-
-@deftypevr {paramètre de @code{protocol-configuration}} string name
-Le nom du protocole.
-@end deftypevr
-
-@deftypevr {paramètre de @code{protocol-configuration}} string auth-socket-path
-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"}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{protocol-configuration}} space-separated-string-list mail-plugins
-Liste de greffons à charger séparés par des espaces.
-@end deftypevr
-
-@deftypevr {paramètre de @code{protocol-configuration}} non-negative-integer mail-max-userip-connections
-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}.
-@end deftypevr
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} service-configuration-list services
-Liste des services à activer.  Les services disponibles comprennent
-@samp{imap}, @samp{imap-login}, @samp{pop3}, @samp{pop3-login}, @samp{auth}
-et @samp{lmtp}.
-
-Les champs de @code{service-configuration} disponibles sont :
-
-@deftypevr {paramètre de @code{service-configuration}} string kind
-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.
-@end deftypevr
-
-@deftypevr {paramètre de @code{service-configuration}} listener-configuration-list listeners
-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{()}.
-
-Les champs de @code{unix-listener-configuration} disponibles sont :
-
-@deftypevr {paramètre de @code{unix-listener-configuration}} string path
-Chemin vers le fichier, relativement au champ @code{base-dir}.  C'est aussi
-utilisé comme nom de section.
-@end deftypevr
-
-@deftypevr {paramètre de @code{unix-listener-configuration}} string mode
-Le mode d'accès pour le socket.  La valeur par défaut est @samp{"0600"}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{unix-listener-configuration}} string user
-L'utilisateur à qui appartient le socket.  La valeur par défaut est
-@samp{""}
-@end deftypevr
-
-@deftypevr {paramètre de @code{unix-listener-configuration}} string group
-Le groupe auquel appartient le socket.  La valeur par défaut est @samp{""}.
-@end deftypevr
-
-
-Les champs de @code{fifo-listener-configuration} disponibles sont :
-
-@deftypevr {paramètre de @code{fifo-listener-configuration}} string path
-Chemin vers le fichier, relativement au champ @code{base-dir}.  C'est aussi
-utilisé comme nom de section.
-@end deftypevr
-
-@deftypevr {paramètre de @code{fifo-listener-configuration}} string mode
-Le mode d'accès pour le socket.  La valeur par défaut est @samp{"0600"}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{fifo-listener-configuration}} string user
-L'utilisateur à qui appartient le socket.  La valeur par défaut est
-@samp{""}
-@end deftypevr
-
-@deftypevr {paramètre de @code{fifo-listener-configuration}} string group
-Le groupe auquel appartient le socket.  La valeur par défaut est @samp{""}.
-@end deftypevr
-
-
-Les champs de @code{inet-listener-configuration} disponibles sont :
-
-@deftypevr {paramètre de @code{inet-listener-configuration}} string protocol
-Le protocole à écouter.
-@end deftypevr
-
-@deftypevr {paramètre de @code{inet-listener-configuration}} string address
-L'adresse sur laquelle écouter, ou la chaîne vide pour toutes les adresses.
-La valeur par défaut est @samp{""}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{inet-listener-configuration}} non-negative-integer port
-Le port sur lequel écouter.
-@end deftypevr
-
-@deftypevr {paramètre de @code{inet-listener-configuration}} boolean ssl?
-S'il faut utiliser SSL pour ce service ; @samp{yes}, @samp{no} ou
-@samp{required}.  La valeur par défaut est @samp{#t}.
-@end deftypevr
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{service-configuration}} non-negative-integer client-limit
-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.
-
-La valeur par défaut est @samp{0}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{service-configuration}} non-negative-integer service-count
-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}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{service-configuration}} non-negative-integer process-limit
-Nombre de processus maximum qui peut exister pour ce service.  Si la valeur
-est 0, @code{default-process-limit} est utilisé à la place.
-
-La valeur par défaut est @samp{0}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{service-configuration}} non-negative-integer process-min-avail
-Nombre de processus à toujours garder en attente de connexions.  La valeur
-par défaut est @samp{0}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{service-configuration}} non-negative-integer vsz-limit
-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}.
-@end deftypevr
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} dict-configuration dict
-Configuration du dictionnaire, créé par le constructeur
-@code{dict-configuration}.
-
-Les champs de @code{dict-configuration} disponibles sont :
-
-@deftypevr {paramètre de @code{dict-configuration}} free-form-fields entries
-Une liste de paires de clefs-valeurs que ce dictionnaire contient.  La
-valeur par défaut est @samp{()}.
-@end deftypevr
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} passdb-configuration-list passdbs
-Une liste de configurations passdb, chacune créée par le constructeur
-@code{passdb-configuration}.
-
-Les champs de @code{passdb-configuration} disponibles sont :
-
-@deftypevr {paramètre de @code{passdb-configuration}} string driver
-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"}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{passdb-configuration}} space-separated-string-list args
-Liste d'arguments pour le pilote passdb séparés par des espaces.  La valeur
-par défaut est @samp{""}.
-@end deftypevr
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} userdb-configuration-list userdbs
-Liste des configurations userdb, chacune créée par le constructeur
-@code{userdb-configuration}.
-
-Les champs de @code{userdb-configuration} disponibles sont :
-
-@deftypevr {paramètre de @code{userdb-configuration}} string driver
-Le pilote que userdb devrait utiliser.  Les valeurs valides comprennent
-@samp{passwd} et @samp{static}.  La valeur par défaut est @samp{"passwd"}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{userdb-configuration}} space-separated-string-list args
-Liste des arguments du pilote userdb séparés par des espaces.  La valeur par
-défaut est @samp{""}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{userdb-configuration}} free-form-args override-fields
-Remplace des champs de passwd.  La valeur par défaut est @samp{()}.
-@end deftypevr
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} plugin-configuration plugin-configuration
-Configuration du greffon, créé par le constructeur
-@code{plugin-configuration}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} list-of-namespace-configuration namespaces
-Liste d'espaces de noms.  Chaque élément de la liste est créé par le
-constructeur @code{namespace-configuration}.
-
-Les champs de @code{namespace-configuration} disponibles sont :
-
-@deftypevr {paramètre de @code{namespace-configuration}} string name
-Nom de cet espace de nom.
-@end deftypevr
-
-@deftypevr {paramètre de @code{namespace-configuration}} string type
-Type d'espace de nom : @samp{private}, @samp{shared} ou @samp{public}.  La
-valeur par défaut est @samp{"private"}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{namespace-configuration}} string separator
-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{""}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{namespace-configuration}} string prefix
-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{""}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{namespace-configuration}} string location
-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{""}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{namespace-configuration}} boolean inbox?
-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}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{namespace-configuration}} boolean hidden?
-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}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{namespace-configuration}} boolean list?
-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}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{namespace-configuration}} boolean subscriptions?
-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}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{namespace-configuration}} mailbox-configuration-list mailboxes
-Liste des boîtes aux lettres prédéfinies dans cet espace de nom.  La valeur
-par défaut est @samp{()}.
-
-Les champs de @code{mailbox-configuration} disponibles sont :
-
-@deftypevr {paramètre de @code{mailbox-configuration}} string name
-Nom de cette boîte aux lettres.
-@end deftypevr
-
-@deftypevr {paramètre de @code{mailbox-configuration}} string auto
-@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"}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{mailbox-configuration}} space-separated-string-list special-use
-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{()}.
-@end deftypevr
-
-@end deftypevr
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} file-name base-dir
-Répertoire de base où stocker les données d'exécution.  La valeur par défaut
-est @samp{"/var/run/dovecot/"}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} string login-greeting
-Message d'accueil pour les clients.  La valeur par défaut est @samp{"Dovecot
-ready."}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} space-separated-string-list login-trusted-networks
-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{()}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} space-separated-string-list login-access-sockets
-List of login access check sockets (e.g.@: tcpwrap).  Defaults to @samp{()}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} boolean verbose-proctitle?
-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}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} boolean shutdown-clients?
-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}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} non-negative-integer doveadm-worker-count
-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}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} string doveadm-socket-path
-Socket UNIX ou hôte:port utilisé pour se connecter au serveur doveadm.  La
-valeur par défaut est @samp{"doveadm-server"}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} space-separated-string-list import-environment
-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.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} boolean disable-plaintext-auth?
-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}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} non-negative-integer auth-cache-size
-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}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} string auth-cache-ttl
-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"}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} string auth-cache-negative-ttl
-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"}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} space-separated-string-list auth-realms
-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{()}
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} string auth-default-realm
-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{""}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} string auth-username-chars
-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.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} string auth-username-translation
-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{""}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} string auth-username-format
-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"}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} string auth-master-user-separator
-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{""}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} string auth-anonymous-username
-Nom d'utilisateur à utiliser pour les utilisateurs qui se connectent avec le
-mécanisme SASL ANONYMOUS.  La valeur par défaut est @samp{"anonymous"}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} non-negative-integer auth-worker-max-count
-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}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} string auth-gssapi-hostname
-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{""}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} string auth-krb5-keytab
-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{""}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} boolean auth-use-winbind?
-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}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} file-name auth-winbind-helper-path
-Chemin du binaire @samp{ntlm-auth} de samba.  La valeur par défaut est
-@samp{"/usr/bin/ntlm_auth"}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} string auth-failure-delay
-Durée d'attente avant de répondre à des authentifications échouées.  La
-valeur par défaut est @samp{"2 secs"}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} boolean auth-ssl-require-client-cert?
-Requiert un certification client SSL valide ou l'authentification échoue.
-La valeur par défaut est @samp{#f}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} boolean auth-ssl-username-from-cert?
-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}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} space-separated-string-list auth-mechanisms
-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}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} space-separated-string-list director-servers
-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{()}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} space-separated-string-list director-mail-servers
-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{()}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} string director-user-expire
-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"}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} string director-username-hash
-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"}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} string log-path
-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"}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} string info-log-path
-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{""}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} string debug-log-path
-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{""}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} string syslog-facility
-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"}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} boolean auth-verbose?
-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}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} boolean auth-verbose-passwords?
-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{#f}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} boolean auth-debug?
-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}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} boolean auth-debug-passwords?
-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}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} boolean mail-debug?
-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}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} boolean verbose-ssl?
-Indique s'il faut montrer les erreurs au niveau SSL.  La valeur par défaut
-est  @samp{#f}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} string log-timestamp
-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 \""}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} space-separated-string-list login-log-format-elements
-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.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} string login-log-format
-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"}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} string mail-log-prefix
-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@}>: \""}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} string deliver-log-format
-Format à utiliser pour enregistrer les livraisons de courriels.  Vous pouvez
-utiliser ces variables :
-@table @code
-@item %$
-Delivery status message (e.g.@: @samp{saved to INBOX})
-@item %m
-Message-ID
-@item %s
-Objet
-@item %f
-Adresse « de »
-@item %p
-Taille physique
-@item %w
-Taille virtuelle.
-@end table
-La valeur par défaut est @samp{"msgid=%m: %$"}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} string mail-location
-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.
-
-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.
-
-Il y a quelques variables spéciales que vous pouvez utiliser :
-
-@table @samp
-@item %u
-nom d'utilisateur
-@item %n
-la partie « utilisateur » dans « utilisateur@@domaine », comme %u s'il n'y a
-pas de domaine.
-@item %d
-la partie « domaine » dans « utilisateur@@domaine », vide s'il n'y a pas de
-domaine
-@item %h
-répertoire personnel
-@end table
-
-Voir doc/wiki/Variables.txt pour la liste complète.  Quelques exemple :
-@table @samp
-@item maildir:~/Maildir
-@item mbox:~/mail:INBOX=/var/mail/%u
-@item mbox:/var/mail/%d/%1n/%n:INDEX=/var/indexes/%d/%1n/%
-@end table
-La valeur par défaut est @samp{""}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} string mail-uid
-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{""}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} string mail-gid
-
-La valeur par défaut est @samp{""}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} string mail-privileged-group
-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{""}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} string mail-access-groups
-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{""}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} 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 works with
-both maildir and mboxes, allowing you to prefix mailboxes names with e.g.@:
-/path/ or ~user/.  Defaults to @samp{#f}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} boolean mmap-disable?
-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}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} boolean dotlock-use-excl?
-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}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} string mail-fsync
-Quand utiliser les appels à fsync() ou fdatasync() :
-@table @code
-@item optimized
-Lorsque cela est nécessaire pour éviter de perdre des données importantes
-@item always
-Useful with e.g.@: NFS when write()s are delayed
-@item never
-Ne l'utilisez pas (ça a de meilleures performances, mais les crashs font
-perdre toutes les données).
-@end table
-La valeur par défaut est @samp{"optimized"}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} boolean mail-nfs-storage?
-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}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} boolean mail-nfs-index?
-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}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} string lock-method
-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"}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} file-name mail-temp-dir
-Le répertoire dans lequel LDA/LMTP stockent temporairement les courriels de
-plus de 128 Ko.  La valeur par défaut est @samp{"/tmp"}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} non-negative-integer first-valid-uid
-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}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} non-negative-integer last-valid-uid
-
-La valeur par défaut est @samp{0}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} non-negative-integer first-valid-gid
-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}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} non-negative-integer last-valid-gid
-
-La valeur par défaut est @samp{0}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} non-negative-integer mail-max-keyword-length
-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}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} colon-separated-file-name-list valid-chroot-dirs
-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{()}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} string mail-chroot
-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{""}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} file-name auth-socket-path
-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"}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} file-name mail-plugin-dir
-Répertoire où trouver les greffons.  La valeur par défaut est
-@samp{"/usr/lib/dovecot"}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} space-separated-string-list mail-plugins
-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{()}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} non-negative-integer mail-cache-min-mail-count
-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}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} string mailbox-idle-check-interval
-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"}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} boolean mail-save-crlf?
-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}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} boolean maildir-stat-dirs?
-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}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} boolean maildir-copy-with-hardlinks?
-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.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} boolean maildir-very-dirty-syncs?
-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}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} space-separated-string-list mbox-read-locks
-La méthode de verrouillage à utiliser pour verrouiller le boîtes aux lettres
-mbox.  Il y en a quatre :
-
-@table @code
-@item dotlock
-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.
-@item dotlock-try
-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.
-@item fcntl
-Utilisez cette méthode si possible.  Elle fonctionne aussi avec NFS si vous
-utilisez lockd.
-@item flock
-Peut ne pas exister sur tous les systèmes.  Ne fonctionne pas avec NFS.
-@item lockf
-Peut ne pas exister sur tous les systèmes.  Ne fonctionne pas avec NFS.
-@end table
-
-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.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} space-separated-string-list mbox-write-locks
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} string mbox-lock-timeout
-Temps d'attente maximal pour un verrou (tous les verrous) avant
-d'abandonner.  La valeur par défaut est @samp{"5 mins"}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} string mbox-dotlock-change-timeout
-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"}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} boolean mbox-dirty-syncs?
-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}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} boolean mbox-very-dirty-syncs?
-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}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} boolean mbox-lazy-writes?
-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}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} non-negative-integer mbox-min-index-size
-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}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} non-negative-integer mdbox-rotate-size
-Taille du fichier dbox maximale avant rotation.  La valeur par défaut est
-@samp{10000000}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} string mdbox-rotate-interval
-Â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"}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} boolean mdbox-preallocate-space?
-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}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} string mail-attachment-dir
-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.
-
-ATTENTION : Cette fonctionnalité n'a pas été beaucoup testée.  Utilisez-la à
-vos risques et périls.
-
-Racine du répertoire où stocker les pièces-jointes.  Désactivé si vide.  La
-valeur par défaut est @samp{""}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} non-negative-integer mail-attachment-min-size
-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}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} string mail-attachment-fs
-Moteur du système de fichier à utiliser pour sauvegarder les pièces-jointes
-:
-@table @code
-@item posix
-Pas de SiS (single instance storage) par Dovecot (mais cela peut aider la
-déduplication du système de fichier)
-@item sis posix
-SiS avec comparaison bit-à-bit immédiate pendant la sauvegarde
-@item sis-queue posix
-SiS avec déduplication et comparaison différées
-@end table
-La valeur par défaut est @samp{"sis posix"}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} string mail-attachment-hash
-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@}"}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} non-negative-integer default-process-limit
-
-La valeur par défaut est @samp{100}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} non-negative-integer default-client-limit
-
-La valeur par défaut est @samp{1000}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} non-negative-integer default-vsz-limit
-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}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} string default-login-user
-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"}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} string default-internal-user
-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"}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} string ssl?
-Support SSL/TLS : yes, no, required.  <doc/wiki/SSL.txt>.  La valeur par
-défaut est @samp{"required"}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} string ssl-cert
-Certificat SSL/TLS X.509 encodé en PEM (clef publique).  La valeur par
-défaut est @samp{"</etc/dovecot/default.pem"}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} string ssl-key
-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"}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} string ssl-key-password
-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{""}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} string ssl-ca
-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{""}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} boolean ssl-require-crl?
-Indique si les certificats clients doivent réussir la vérification du CRL.
-La valeur par défaut est @samp{#t}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} boolean ssl-verify-client-cert?
-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}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} string ssl-cert-username-field
-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"}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} string ssl-min-protocol
-Version minimale de SSL à accepter.  La valeur par défaut est
-@samp{"TLSv1"}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} string ssl-cipher-list
-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"}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} string ssl-crypto-device
-Moteur cryptographique SSL à utiliser.  Pour les valeur valides, lancez «
-openssl engine ».  La valeur par défaut est @samp{""}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} string postmaster-address
-Adresse à utiliser pour envoyer les courriels de rejet.  %d correspond au
-domaine du destinataire.  La valeur par défaut est @samp{"postmaster@@%d"}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} string hostname
-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{""}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} boolean quota-full-tempfail?
-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}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} file-name sendmail-path
-Binaire à utiliser pour envoyer des courriels.  La valeur par défaut est
-@samp{"/usr/sbin/sendmail"}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} string submission-host
-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{""}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} string rejection-subject
-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"}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} string rejection-reason
-Message d'erreur pour les humains dans les courriels de rejet.  Vous pouvez
-utiliser ces variables :
-
-@table @code
-@item %n
-CRLF
-@item %r
-raison
-@item %s
-objet du courriel de départ
-@item %t
-destinataire
-@end table
-La valeur par défaut est @samp{"Your message to <%t> was automatically
-rejected:%n%r"}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} string recipient-delimiter
-Caractère de délimitation entre la partie locale et le détail des adresses
-de courriel.  La valeur par défaut est @samp{"+"}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} string lda-original-recipient-header
-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{""}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} boolean lda-mailbox-autocreate?
-Sauvegarder un courriel dans un fichier qui n'existe pas devrait-il le créer
-?  La valeur par défaut est @samp{#f}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} boolean lda-mailbox-autosubscribe?
-Devrait-on aussi se souscrire aux boîtes aux lettres nouvellement créées ?
-La valeur par défaut est @samp{#f}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} non-negative-integer imap-max-line-length
-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}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} string imap-logout-format
-Format de la chaîne de déconnexion IMAP :
-@table @code
-@item %i
-nombre d'octets lus par le client
-@item %o
-nombre total d'octets envoyés au client.
-@end table
-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@}"}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} string imap-capability
-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{""}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} string imap-idle-notify-interval
-Temps d'attente entre les notifications « OK Still here » lorsque le client
-est en IDLE.  La valeur par défaut est @samp{"2 mins"}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} string imap-id-send
-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{""}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} string imap-id-log
-Champs ID envoyés par le client à enregistrer.  « * » signifie tout.  La
-valeur par défaut est @samp{""}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} space-separated-string-list imap-client-workarounds
-Contournements pour divers bogues de certains client :
-
-@table @code
-@item delay-newmail
-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 ».
-
-@item tb-extra-mailbox-sep
-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.
-
-@item tb-lsub-flags
-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.
-@end table
-La valeur par défaut est @samp{()}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{dovecot-configuration}} string imap-urlauth-host
-Hôte autorisé dans les URL URLAUTH envoyés par les clients.  « * » les
-autorise tous.  La valeur par défaut est @samp{""}.
-@end deftypevr
-
-
-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.
-
-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.
-
-Les champs de @code{opaque-dovecot-configuration} disponibles sont :
-
-@deftypevr {paramètre de @code{opaque-dovecot-configuration}} package dovecot
-Le paquet dovecot
-@end deftypevr
-
-@deftypevr {paramètre de @code{opaque-dovecot-configuration}} string string
-Le contenu de @code{dovecot.conf}, en tant que chaîne de caractères.
-@end deftypevr
-
-Par exemple, si votre @code{dovecot.conf} est simplement la chaîne vide,
-vous pouvez instancier un service dovecot comme cela :
-
-@example
-(dovecot-service #:config
-                 (opaque-dovecot-configuration
-                  (string "")))
-@end example
-
-@subsubheading Service OpenSMTPD
-
-@deffn {Variable Scheme} opensmtpd-service-type
-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 :
-
-@example
-(service opensmtpd-service-type
-         (opensmtpd-configuration
-           (config-file (local-file "./my-smtpd.conf"))))
-@end example
-@end deffn
-
-@deftp {Type de données} opensmtpd-configuration
-Type de données représentant la configuration de opensmtpd.
-
-@table @asis
-@item @code{package} (par défaut : @var{opensmtpd})
-Objet de paquet du serveur SMTP OpenSMTPD.
-
-@item @code{config-file} (par défaut : @var{%default-opensmtpd-file})
-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.
-
-@end table
-@end deftp
-
-@subsubheading Service Exim
-
-@cindex agent de transfert de courriel (MTA)
-@cindex MTA (agent de transfert de courriel)
-@cindex SMTP
-
-@deffn {Variable Scheme} exim-service-type
-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 :
-
-@example
-(service exim-service-type
-         (exim-configuration
-           (config-file (local-file "./my-exim.conf"))))
-@end example
-@end deffn
-
-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).
-
-@deftp {Type de données} exim-configuration
-Type de données représentant la configuration d'exim.
-
-@table @asis
-@item @code{package} (par défaut : @var{exim})
-Objet de paquet du serveur Exim.
-
-@item @code{config-file} (par défaut : @code{#f})
-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}.
-
-@end table
-@end deftp
-
-@subsubheading Service d'alias de courriel
-
-@cindex alias de courriel
-@cindex alias, pour les adresses de courriel
-
-@deffn {Variable Scheme} mail-aliases-service-type
-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.
-
-@example
-(service mail-aliases-service-type
-         '(("postmaster" "bob")
-           ("bob" "bob@@example.com" "bob@@example2.com")))
-@end example
-@end deffn
-
-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.
-
-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}).
-
-@node Services de messagerie
-@subsection Services de messagerie
-
-@cindex messagerie instantanée
-@cindex jabber
-@cindex XMPP
-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é.
-
-@subsubheading Service Prosody
-
-@deffn {Variable Scheme} prosody-service-type
-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 :
-
-@example
-(service prosody-service-type
-         (prosody-configuration
-          (modules-enabled (cons "groups" "mam" %default-modules-enabled))
-          (int-components
-           (list
-            (int-component-configuration
-             (hostname "conference.example.net")
-             (plugin "muc")
-             (mod-muc (mod-muc-configuration)))))
-          (virtualhosts
-           (list
-            (virtualhost-configuration
-             (domain "example.net"))))))
-@end example
-
-Voir plus bas pour des détails sur @code{prosody-configuration}.
-
-@end deffn
-
-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.
-
-Vous pouvez effectuer plusieurs vérifications de la configuration générée
-avec la commande @code{prosodyctl check}.
-
-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}.
-
-@example
-prosodyctl --root cert import /etc/letsencrypt/live
-@end example
-
-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}.
-
-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.
-
-Le type @code{file-object} désigne soit un objet simili-fichier
-(@pxref{G-Expressions, file-like objects}), soit un nom de fichier.
-
-@c The following documentation was initially generated by
-@c (generate-documentation) in (gnu services messaging).  Manually maintained
-@c documentation is better, so we shouldn't hesitate to edit below as
-@c needed.  However if the change you want to make to this documentation
-@c can be done in an automated way, it's probably easier to change
-@c (generate-documentation) than to make it below and have to deal with
-@c the churn as Prosody updates.
-
-Les champs de @code{prosody-configuration} disponibles sont :
-
-@deftypevr {paramètre de @code{prosody-configuration}} package prosody
-Le paquet Prosody.
-@end deftypevr
-
-@deftypevr {paramètre de @code{prosody-configuration}} file-name data-path
-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"}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{prosody-configuration}} file-object-list plugin-paths
-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{()}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{prosody-configuration}} file-name certificates
-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"}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{prosody-configuration}} string-list admins
-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{()}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{prosody-configuration}} boolean use-libevent?
-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}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{prosody-configuration}} module-list modules-enabled
-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")}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{prosody-configuration}} string-list modules-disabled
-@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{()}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{prosody-configuration}} file-object groups-file
-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"}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{prosody-configuration}} boolean allow-registration?
-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}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{prosody-configuration}} maybe-ssl-configuration ssl
-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}.
-
-Les champs de @code{ssl-configuration} disponibles sont :
-
-@deftypevr {paramètre de @code{ssl-configuration}} maybe-string protocol
-Cela détermine la poignée de main à utiliser.
-@end deftypevr
-
-@deftypevr {paramètre de @code{ssl-configuration}} maybe-file-name key
-Chemin vers votre fichier de clef privée.
-@end deftypevr
-
-@deftypevr {paramètre de @code{ssl-configuration}} maybe-file-name certificate
-Chemin vers votre fichier de certificat.
-@end deftypevr
-
-@deftypevr {paramètre de @code{ssl-configuration}} file-object capath
-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"}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{ssl-configuration}} maybe-file-object cafile
-Chemin vers un fichier contenant les certificats racines auxquels Prosody
-devra faire confiance.  Comme @code{capath} mais avec les certificats
-concaténés ensemble.
-@end deftypevr
-
-@deftypevr {paramètre de @code{ssl-configuration}} maybe-string-list verify
-Une liste d'options de vérification (qui correspondent globalement aux
-drapeaux @code{set_verify()} d'OpenSSL).
-@end deftypevr
-
-@deftypevr {paramètre de @code{ssl-configuration}} maybe-string-list options
-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.
-@end deftypevr
-
-@deftypevr {paramètre de @code{ssl-configuration}} maybe-non-negative-integer depth
-Longueur maximale d'une chaîne d'autorités de certifications avant la
-racine.
-@end deftypevr
-
-@deftypevr {paramètre de @code{ssl-configuration}} maybe-string ciphers
-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.
-@end deftypevr
-
-@deftypevr {paramètre de @code{ssl-configuration}} maybe-file-name dhparam
-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}
-@end deftypevr
-
-@deftypevr {paramètre de @code{ssl-configuration}} maybe-string curve
-Courbe pour Diffie-Hellman sur courbe elliptique.  La valeur par défaut de
-Prosody est @samp{"secp384r1"}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{ssl-configuration}} maybe-string-list verifyext
-Une liste d'options de vérification « supplémentaires ».
-@end deftypevr
-
-@deftypevr {paramètre de @code{ssl-configuration}} maybe-string password
-Mot de passe pour les clefs privées chiffrées.
-@end deftypevr
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{prosody-configuration}} boolean c2s-require-encryption?
-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}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{prosody-configuration}} string-list disable-sasl-mechanisms
-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")}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{prosody-configuration}} boolean s2s-require-encryption?
-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}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{prosody-configuration}} boolean s2s-secure-auth?
-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}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{prosody-configuration}} string-list s2s-insecure-domains
-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{()}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{prosody-configuration}} string-list s2s-secure-domains
-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{()}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{prosody-configuration}} string authentication
-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"}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{prosody-configuration}} maybe-string log
-Set logging options.  Advanced logging configuration is not yet supported by
-the Guix Prosody Service.  See @url{https://prosody.im/doc/logging}.
-Defaults to @samp{"*syslog"}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{prosody-configuration}} file-name pidfile
-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"}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{prosody-configuration}} maybe-non-negative-integer http-max-content-size
-Taille maximum autorisée pour le corps HTTP (en octets).
-@end deftypevr
-
-@deftypevr {paramètre de @code{prosody-configuration}} maybe-string http-external-url
-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}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{prosody-configuration}} virtualhost-configuration-list virtualhosts
-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.
-
-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.
-
-Voir @url{https://prosody.im/doc/configure#virtual_host_settings}.
-
-Les champs de @code{virtualhost-configuration} disponibles sont :
-
-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 :
-@deftypevr {paramètre de @code{virtualhost-configuration}} string domain
-Domaine que vous souhaitez que Prosody serve.
-@end deftypevr
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{prosody-configuration}} int-component-configuration-list int-components
-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.
-
-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.
-
-Voir @url{https://prosody.im/doc/components}.  La valeur par défaut est
-@samp{()}.
-
-Les champs de @code{int-component-configuration} disponibles sont :
-
-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 :
-@deftypevr {paramètre de @code{int-component-configuration}} string hostname
-Nom d'hôte du composant.
-@end deftypevr
-
-@deftypevr {paramètre de @code{int-component-configuration}} string plugin
-Greffon que vous voulez utiliser pour ce composant.
-@end deftypevr
-
-@deftypevr {paramètre de @code{int-component-configuration}} maybe-mod-muc-configuration mod-muc
-Le chat multi-utilisateur (MUC) est le modules de Prosody qui vous permet de
-créer des chatrooms/conférences pour les utilisateurs XMPP.
-
-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.
-
-Voir aussi @url{https://prosody.im/doc/modules/mod_muc}.
-
-Les champs de @code{mod-muc-configuration} disponibles sont :
-
-@deftypevr {paramètre de @code{mod-muc-configuration}} string name
-Le nom à renvoyer dans les réponses de découverte de services.  La valeur
-par défaut est @samp{"Prosody Chatrooms"}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{mod-muc-configuration}} string-or-boolean restrict-room-creation
-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}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{mod-muc-configuration}} non-negative-integer max-history-messages
-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}.
-@end deftypevr
-
-@end deftypevr
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{prosody-configuration}} ext-component-configuration-list ext-components
-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{()}.
-
-Les champs de @code{ext-component-configuration} disponibles sont :
-
-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 :
-@deftypevr {paramètre de @code{ext-component-configuration}} string component-secret
-Mot de passe que le composant utilisera pour s'authentifier.
-@end deftypevr
-
-@deftypevr {paramètre de @code{ext-component-configuration}} string hostname
-Nom d'hôte du composant.
-@end deftypevr
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{prosody-configuration}} non-negative-integer-list component-ports
-Ports sur lesquels Prosody écoutera les connexions des composants.  La
-valeur par défaut est @samp{(5347)}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{prosody-configuration}} string component-interface
-Interface sur laquelle Prosody écoutera les connexions des composants.  La
-valeur par défaut est @samp{"127.0.0.1"}.
-@end deftypevr
-
-@deftypevr {paramètre de @code{prosody-configuration}} maybe-raw-content raw-content
-Contenu brut qui sera ajouté au fichier de configuration.
-@end deftypevr
-
-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 :
-
-@deftypevr {paramètre de @code{opaque-prosody-configuration}} package prosody
-Le paquet prosody.
-@end deftypevr
-
-@deftypevr {paramètre de @code{opaque-prosody-configuration}} string prosody.cfg.lua
-Le contenu de @code{prosody.cfg.lua} à utiliser.
-@end deftypevr
-
-Par exemple, si votre @code{prosody.cfg.lua} est juste la chaîne vide, vous
-pouvez instancier un service prosody comme ceci :
-
-@example
-(service prosody-service-type
-         (opaque-prosody-configuration
-          (prosody.cfg.lua "")))
-@end example
-
-@c end of Prosody auto-generated documentation
-
-@subsubheading Service BitlBee
-
-@cindex IRC (Internet Relay Chat)
-@cindex passerelle IRC
-@url{http://bitlbee.org,BitlBee} est une passerelle qui fournit une
-interface IRC vers une variété de protocoles de messagerie instantanée comme
-XMPP.
-
-@defvr {Variable Scheme} bitlbee-service-type
-C'est le type de service pour le démon de passerelle IRC
-@url{http://bitlbee.org,BitlBee}.  Sa valeur est un
-@code{bitlbee-configuration} (voir plus bas).
-
-Pour que BitlBee écoute sur le port 6667 sur localhost, ajoutez cette ligne
-à vos services :
-
-@example
-(service bitlbee-service-type)
-@end example
-@end defvr
-
-@deftp {Type de données} bitlbee-configuration
-C'est la configuration de BitlBee, avec les champs suivants :
-
-@table @asis
-@item @code{interface} (par défaut : @code{"127.0.0.1"})
-@itemx @code{port} (par défaut : @code{6667})
-Écoute sur l'interface réseau correspondant à l'adresse IP dans
-@var{interface}, sur @var{port}.
-
-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.
-
-@item @code{package} (par défaut : @code{bitlbee})
-Le paquet BitlBee à utiliser.
-
-@item @code{plugins} (par défaut : @code{'()})
-Liste des paquets de greffons à utiliser — p.@: ex.@:
-@code{bitlbee-discord}.
-
-@item @code{extra-settings} (par défaut : @code{""})
-Partie de configuration ajoutée telle-quelle au fichier de configuration de
-BitlBee.
-@end table
-@end deftp
-
-@subsubheading Quassel Service
-
-@cindex IRC (Internet Relay Chat)
-@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.
-
-@defvr {Scheme Variable} quassel-service-type
-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).
-@end defvr
-
-@deftp {Data Type} quassel-configuration
-This is the configuration for Quassel, with the following fields:
-
-@table @asis
-@item @code{quassel} (default: @code{quassel})
-The Quassel package to use.
-
-@item @code{interface} (default: @code{"::,0.0.0.0"})
-@item @code{port} (default: @code{4242})
-Listen on the network interface(s) corresponding to the IPv4 or IPv6
-interfaces specified in the comma delimited @var{interface}, on @var{port}.
-
-@item @code{loglevel} (default: @code{"Info"})
-The level of logging desired.  Accepted values are Debug, Info, Warning and
-Error.
-@end table
-@end deftp
-
-@node Services de téléphonie
-@subsection Services de téléphonie
-
-@cindex Murmur (serveur VoIP)
-@cindex serveur VoIP
-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}.
-
-@deftp {Type de données} murmur-configuration
-Le type de service pour le serveur Murmur.  Voici un exemple de
-configuration :
-
-@example
-(service murmur-service-type
-         (murmur-configuration
-          (welcome-text
-            "Welcome to this Mumble server running on Guix!")
-          (cert-required? #t) ;disallow text password logins
-          (ssl-cert "/etc/letsencrypt/live/mumble.example.com/fullchain.pem")
-          (ssl-key "/etc/letsencrypt/live/mumble.example.com/privkey.pem")))
-@end example
-
-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.
-
-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.
-
-Les champs de @code{murmur-configuration} disponibles sont :
-
-@table @asis
-@item @code{package} (par défaut : @code{mumble})
-Paquet qui contient @code{bin/murmurd}.
-
-@item @code{user} (par défaut : @code{"murmur"})
-Utilisateur qui lancera le serveur Murmur.
-
-@item @code{group} (par défaut : @code{"murmur"})
-Groupe de l'utilisateur qui lancera le serveur Murmur.
-
-@item @code{port} (par défaut : @code{64738})
-Port sur lequel le serveur écoutera.
-
-@item @code{welcome-text} (par défaut : @code{""})
-Texte de bienvenue envoyé aux clients lors de leur connexion.
-
-@item @code{server-password} (par défaut : @code{""})
-Mot de passe que les clients devront entrer pour se connecter.
-
-@item @code{max-users} (par défaut : @code{100})
-Nombre maximum d'utilisateurs qui peuvent se connecter à ce serveur en même
-temps.
-
-@item @code{max-user-bandwidth} (par défaut : @code{#f})
-Trafic de voix maximum qu'un utilisateur peut envoyer par seconde.
-
-@item @code{database-file} (par défaut : @code{"/var/lib/murmur/db.sqlite"})
-Nom de fichier de la base de données sqlite.  L'utilisateur du service
-deviendra propriétaire du répertoire.
-
-@item @code{log-file} (par défaut : @code{"/var/log/murmur/murmur.log"})
-Nom du fichier de journal.  L'utilisateur du service deviendra propriétaire
-du répertoire.
-
-@item @code{autoban-attempts} (par défaut : @code{10})
-Nombre maximum de connexions qu'un utilisateur peut faire pendant
-@code{autoban-timeframe} sans être banni automatiquement pour
-@code{autoban-time}.
-
-@item @code{autoban-timeframe} (par défaut : @code{120})
-Durée du temps pendant lequel le nombre de connexions est compté.
-
-@item @code{autoban-time} (par défaut : @code{300})
-Durée du bannissement automatique en secondes.
-
-@item @code{opus-threshold} (par défaut : @code{100})
-Pourcentage des clients qui doivent supporter opus avant de passer sur le
-codec audio opus.
-
-@item @code{channel-nesting-limit} (par défaut : @code{10})
-Profondeur maximum des canaux.
-
-@item @code{channelname-regex} (par défaut : @code{#f})
-Une chaîne de la forme d'une expression régulière Qt que les noms de canaux
-doivent respecter.
-
-@item @code{username-regex} (par défaut : @code{#f})
-Une chaîne de la forme d'une expression régulière Qt que les noms
-d'utilisateurs doivent respecter.
-
-@item @code{text-message-length} (par défaut : @code{5000})
-Taille maximum en octets qu'un utilisateur peut envoyer en un seul message
-textuel.
-
-@item @code{image-message-length} (par défaut : @code{(* 128 1024)})
-Taille maximum en octets qu'un utilisateur peut envoyer en une seule image.
-
-@item @code{cert-required?} (par défaut : @code{#f})
-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.
-
-@item @code{remember-channel?} (paramètre de : @code{#f})
-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.
-
-@item @code{allow-html?} (par défaut : @code{#f})
-Indique si le html est autorisé dans les messages textuels, les commentaires
-utilisateurs et les descriptions des canaux.
-
-@item @code{allow-ping?} (par défaut : @code{#f})
-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.
-
-Désactiver ce paramètre empêchera le serveur d'être publiquement listé.
-
-@item @code{bonjour?} (par défaut : @code{#f})
-Indique si le serveur se présente sur le réseau local à travers le protocole
-bonjour.
-
-@item @code{send-version?} (par défaut : @code{#f})
-Indique si la version du serveur murmur doit être exposée dans les requêtes
-ping.
-
-@item @code{log-days} (par défaut : @code{31})
-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.
-
-@item @code{obfuscate-ips?} (par défaut : @code{#t})
-Indique si les IP enregistrées doivent être cachées pour protéger la vie
-privée des utilisateurs.
-
-@item @code{ssl-cert} (par défaut : @code{#f})
-Nom de fichier du certificat SSL/TLS utilisé pour les connexions chiffrées.
-
-@example
-(ssl-cert "/etc/letsencrypt/live/example.com/fullchain.pem")
-@end example
-@item @code{ssl-key} (par défaut : @code{#f})
-Chemin de fichier vers la clef privée ssl pour les connexions chiffrées.
-@example
-(ssl-key "/etc/letsencrypt/live/example.com/privkey.pem")
-@end example
-
-@item @code{ssl-dh-params} (par défaut : @code{#f})
-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.
-
-@item @code{ssl-ciphers} (par défaut : @code{#f})
-L'option @code{ssl-ciphers} permet de choisir les suites de chiffrement
-disponibles pour SSL/TLS.
-
-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}
-
-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.
-
-Remarque : modifier cette option peut impacter la rétrocompatibilité de
-votre serveur Murmur, et peut empêcher que des clients Mumble anciens se
-connectent.
-
-@item @code{public-registration} (par défaut : @code{#f})
-Doit être un enregistrement
-@code{<murmur-public-registration-configuration>} ou @code{#f}.
-
-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}.
-
-Cela peut prendre quelques heures avant d'arriver sur la liste publique.
-
-@item @code{file} (par défaut : @code{#f})
-Version alternative de cette configuration : si vous indiquez quelque chose,
-le reste est ignoré.
-@end table
-@end deftp
-
-@deftp {Type de données} murmur-public-registration-configuration
-Configuration pour l'enregistrement public du service murmur.
-
-@table @asis
-@item @code{name}
-C'est le nom d'affichage de votre serveur.  Ne pas le confondre avec le nom
-d'hôte.
-
-@item @code{password}
-Un mot de passe pour identifier votre enregistrement.  Les mises à jours
-suivantes devront utiliser le même mot de passe.  Ne le perdez pas.
-
-@item @code{url}
-Cela devrait être le lien @code{http://} ou @code{https://} vers votre site
-web.
-
-@item @code{hostname} (par défaut : @code{#f})
-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.
-@end table
-@end deftp
-
-
-
-@node Services de surveillance
-@subsection Services de surveillance
-
-@subsubheading Service Tailon
-
-@uref{https://tailon.readthedocs.io/, Tailon} est une application web pour
-visualiser et chercher des fichiers de journaux.
-
-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}).
-
-@example
-(service tailon-service-type)
-@end example
-
-L'exemple suivant personnalise un peu plus la configuration de Tailon, en
-ajoutant @command{sed} à la liste des commandes autorisées.
-
-@example
-(service tailon-service-type
-         (tailon-configuration
-           (config-file
-             (tailon-configuration-file
-               (allowed-commands '("tail" "grep" "awk" "sed"))))))
-@end example
-
-
-@deftp {Type de données} tailon-configuration
-Type de données représentant la configuration de Tailon.  Ce type a les
-paramètres suivants :
-
-@table @asis
-@item @code{config-file} (par défaut : @code{(tailon-configuration-file)})
-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}).
-
-Par exemple, pour utiliser un fichier local à la place, on peut utiliser la
-fonction @code{local-file} :
-
-@example
-(service tailon-service-type
-         (tailon-configuration
-           (config-file (local-file "./my-tailon.conf"))))
-@end example
-
-@item @code{package} (par défaut : @code{tailon})
-Le paquet tailon à utiliser.
-
-@end table
-@end deftp
-
-@deftp {Type de données} tailon-configuration-file
-Type de données représentant les options de configuration de Tailon.  Ce
-type a les paramètres suivants :
-
-@table @asis
-@item @code{files} (par défaut : @code{(list "/var/log")})
-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.
-
-@item @code{bind} (par défaut : @code{"localhost:8080"})
-Adresse et port sur lesquels Tailon écoute.
-
-@item @code{relative-root} (par défaut : @code{#f})
-Chemin de l'URL à utiliser pour Tailon, ou @code{#f} pour ne pas utiliser de
-chemin.
-
-@item @code{allow-transfers?} (par défaut : @code{#t})
-Permet de télécharger les journaux dans l'interface web.
-
-@item @code{follow-names?} (par défaut : @code{#t})
-Permet de surveiller des fichiers qui n'existent pas encore.
-
-@item @code{tail-lines} (par défaut : @code{200})
-Nombre de lignes à lire initialement dans chaque fichier.
-
-@item @code{allowed-commands} (par défaut : @code{(list "tail" "grep" "awk")})
-Commandes autorisées.  Par défaut, @code{sed} est désactivé.
-
-@item @code{debug?} (par défaut : @code{#f})
-Configurez @code{debug?} à @code{#t} pour montrer les messages de débogage.
-
-@item @code{wrap-lines} (par défaut : @code{#t})
-É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.
-
-@item @code{http-auth} (par défaut : @code{#f})
-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"}.
-
-@item @code{users} (par défaut : @code{#f})
-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.
-
-@example
-(tailon-configuration-file
-  (http-auth "basic")
-  (users     '(("user1" . "password1")
-               ("user2" . "password2"))))
-@end example
-
-@end table
-@end deftp
-
-
-@subsubheading Service Darkstat
-@cindex darkstat
-Darkstat est un « renifleur de paquets » qui capture le trafic réseau,
-calcul des statistiques sur l'utilisation et sert des rapport sur HTTP.
-
-@defvar {Variable Scheme} darkstat-service-type
-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 :
-
-@example
-(service darkstat-service-type
-         (darkstat-configuration
-           (interface "eno1")))
-@end example
-@end defvar
-
-@deftp {Type de données} darkstat-configuration
-Type de données représentant la configuration de @command{darkstat}.
-
-@table @asis
-@item @code{package} (par défaut : @code{darkstat})
-Le paquet darkstat à utiliser.
-
-@item @code{interface}
-Capture le trafic sur l'interface réseau spécifiée.
-
-@item @code{port} (par défaut : @code{"667"})
-Lie l'interface web sur le port spécifié.
-
-@item @code{bind-address} (par défaut : @code{"127.0.0.1"})
-Lie l'interface web sur l'adresse spécifiée.
-
-@item @code{base} (par défaut : @code{"/"})
-Spécifie le chemin de base des URL.  C'est utile si on accède à
-@command{darkstat} à travers un proxy inverse.
-
-@end table
-@end deftp
-
-@subsubheading Service d'export de nœud de Prometheus
-
-@cindex prometheus-node-exporter
-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.
-
-@defvar {Variable Scheme} prometheus-node-exporter-service-type
-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 :
-
-@example
-(service prometheus-node-exporter-service-type
-         (prometheus-node-exporter-configuration
-           (web-listen-address ":9100")))
-@end example
-@end defvar
-
-@deftp {Type de données} prometheus-node-exporter-configuration
-Type de données représentant la configuration de @command{node_exporter}
-
-@table @asis
-@item @code{package} (par défaut : @code{go-github-com-prometheus-node-exporter})
-Le paquet prometheus-node-exporter à utiliser.
-
-@item @code{web-listen-address} (par défaut : @code{":9100"})
-Lie l'interface web sur l'adresse spécifiée.
-
-@end table
-@end deftp
-
-@subsubheading Zabbix server
-@cindex zabbix zabbix-server
-Zabbix provides monitoring metrics, among others network utilization, CPU
-load and disk space consumption:
-
-@itemize
-@item High performance, high capacity (able to monitor hundreds of thousands of devices).
-@item Auto-discovery of servers and network devices and interfaces.
-@item Low-level discovery, allows to automatically start monitoring new items, file systems or network interfaces among others.
-@item Distributed monitoring with centralized web administration.
-@item Native high performance agents.
-@item SLA, and ITIL KPI metrics on reporting.
-@item High-level (business) view of monitored resources through user-defined visual console screens and dashboards.
-@item Remote command execution through Zabbix proxies.
-@end itemize
-
-@c %start of fragment
-
-Available @code{zabbix-server-configuration} fields are:
-
-@deftypevr {@code{zabbix-server-configuration} parameter} package zabbix-server
-The zabbix-server package.
-
-@end deftypevr
-
-@deftypevr {@code{zabbix-server-configuration} parameter} string user
-User who will run the Zabbix server.
-
-Defaults to @samp{"zabbix"}.
-
-@end deftypevr
-
-@deftypevr {@code{zabbix-server-configuration} parameter} group group
-Group who will run the Zabbix server.
-
-Defaults to @samp{"zabbix"}.
-
-@end deftypevr
-
-@deftypevr {@code{zabbix-server-configuration} parameter} string db-host
-Database host name.
-
-Defaults to @samp{"127.0.0.1"}.
-
-@end deftypevr
-
-@deftypevr {@code{zabbix-server-configuration} parameter} string db-name
-Database name.
-
-Defaults to @samp{"zabbix"}.
-
-@end deftypevr
-
-@deftypevr {@code{zabbix-server-configuration} parameter} string db-user
-Database user.
-
-Defaults to @samp{"zabbix"}.
-
-@end deftypevr
-
-@deftypevr {@code{zabbix-server-configuration} parameter} string db-password
-Database password.  Please, use @code{include-files} with
-@code{DBPassword=SECRET} inside a specified file instead.
-
-La valeur par défaut est @samp{""}.
-
-@end deftypevr
-
-@deftypevr {@code{zabbix-server-configuration} parameter} number db-port
-Database port.
-
-Defaults to @samp{5432}.
-
-@end deftypevr
-
-@deftypevr {@code{zabbix-server-configuration} parameter} string log-type
-Specifies where log messages are written to:
-
-@itemize @bullet
-@item
-@code{system} - syslog.
-
-@item
-@code{file} - file specified with @code{log-file} parameter.
-
-@item
-@code{console} - standard output.
-
-@end itemize
-
-La valeur par défaut est @samp{""}.
-
-@end deftypevr
-
-@deftypevr {@code{zabbix-server-configuration} parameter} string log-file
-Log file name for @code{log-type} @code{file} parameter.
-
-Defaults to @samp{"/var/log/zabbix/server.log"}.
-
-@end deftypevr
-
-@deftypevr {@code{zabbix-server-configuration} parameter} string pid-file
-Name of PID file.
-
-Defaults to @samp{"/var/run/zabbix/zabbix_server.pid"}.
-
-@end deftypevr
-
-@deftypevr {@code{zabbix-server-configuration} parameter} string ssl-ca-location
-The location of certificate authority (CA) files for SSL server certificate
-verification.
-
-Defaults to @samp{"/etc/ssl/certs/ca-certificates.crt"}.
-
-@end deftypevr
-
-@deftypevr {@code{zabbix-server-configuration} parameter} string ssl-cert-location
-Location of SSL client certificates.
-
-Defaults to @samp{"/etc/ssl/certs"}.
-
-@end deftypevr
-
-@deftypevr {@code{zabbix-server-configuration} parameter} string extra-options
-Extra options will be appended to Zabbix server configuration file.
-
-La valeur par défaut est @samp{""}.
-
-@end deftypevr
-
-@deftypevr {@code{zabbix-server-configuration} parameter} include-files include-files
-You may include individual files or all files in a directory in the
-configuration file.
-
-La valeur par défaut est @samp{()}.
-
-@end deftypevr
-
-@c %end of fragment
-
-@subsubheading Zabbix agent
-@cindex zabbix zabbix-agent
-
-Zabbix agent gathers information for Zabbix server.
-
-@c %start of fragment
-
-Available @code{zabbix-agent-configuration} fields are:
-
-@deftypevr {@code{zabbix-agent-configuration} parameter} package zabbix-agent
-The zabbix-agent package.
-
-@end deftypevr
-
-@deftypevr {@code{zabbix-agent-configuration} parameter} string user
-User who will run the Zabbix agent.
-
-Defaults to @samp{"zabbix"}.
-
-@end deftypevr
-
-@deftypevr {@code{zabbix-agent-configuration} parameter} group group
-Group who will run the Zabbix agent.
-
-Defaults to @samp{"zabbix"}.
-
-@end deftypevr
-
-@deftypevr {@code{zabbix-agent-configuration} parameter} string hostname
-Unique, case sensitive hostname which is required for active checks and must
-match hostname as configured on the server.
-
-Defaults to @samp{"Zabbix server"}.
-
-@end deftypevr
-
-@deftypevr {@code{zabbix-agent-configuration} parameter} string log-type
-Specifies where log messages are written to:
-
-@itemize @bullet
-@item
-@code{system} - syslog.
-
-@item
-@code{file} - file specified with @code{log-file} parameter.
-
-@item
-@code{console} - standard output.
-
-@end itemize
-
-La valeur par défaut est @samp{""}.
-
-@end deftypevr
-
-@deftypevr {@code{zabbix-agent-configuration} parameter} string log-file
-Log file name for @code{log-type} @code{file} parameter.
-
-Defaults to @samp{"/var/log/zabbix/agent.log"}.
-
-@end deftypevr
-
-@deftypevr {@code{zabbix-agent-configuration} parameter} string pid-file
-Name of PID file.
-
-Defaults to @samp{"/var/run/zabbix/zabbix_agent.pid"}.
-
-@end deftypevr
-
-@deftypevr {@code{zabbix-agent-configuration} parameter} list server
-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.
-
-Defaults to @samp{("127.0.0.1")}.
-
-@end deftypevr
-
-@deftypevr {@code{zabbix-agent-configuration} parameter} list server-active
-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.
-
-Defaults to @samp{("127.0.0.1")}.
-
-@end deftypevr
-
-@deftypevr {@code{zabbix-agent-configuration} parameter} string extra-options
-Extra options will be appended to Zabbix server configuration file.
-
-La valeur par défaut est @samp{""}.
-
-@end deftypevr
-
-@deftypevr {@code{zabbix-agent-configuration} parameter} include-files include-files
-You may include individual files or all files in a directory in the
-configuration file.
-
-La valeur par défaut est @samp{()}.
-
-@end deftypevr
-
-@c %end of fragment
-
-@subsubheading Zabbix front-end
-@cindex zabbix zabbix-front-end
-
-This service provides a WEB interface to Zabbix server.
-
-@c %start of fragment
-
-Available @code{zabbix-front-end-configuration} fields are:
-
-@deftypevr {@code{zabbix-front-end-configuration} parameter} nginx-server-configuration-list nginx
-Configuration Nginx.
-
-@end deftypevr
-
-@deftypevr {@code{zabbix-front-end-configuration} parameter} string db-host
-Database host name.
-
-La valeur par défaut est @samp{"localhost"}.
-
-@end deftypevr
-
-@deftypevr {@code{zabbix-front-end-configuration} parameter} number db-port
-Database port.
-
-Defaults to @samp{5432}.
-
-@end deftypevr
-
-@deftypevr {@code{zabbix-front-end-configuration} parameter} string db-name
-Database name.
-
-Defaults to @samp{"zabbix"}.
-
-@end deftypevr
-
-@deftypevr {@code{zabbix-front-end-configuration} parameter} string db-user
-Database user.
-
-Defaults to @samp{"zabbix"}.
-
-@end deftypevr
-
-@deftypevr {@code{zabbix-front-end-configuration} parameter} string db-password
-Database password.  Please, use @code{db-secret-file} instead.
-
-La valeur par défaut est @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.
-
-La valeur par défaut est @samp{""}.
-
-@end deftypevr
-
-@deftypevr {@code{zabbix-front-end-configuration} parameter} string zabbix-host
-Zabbix server hostname.
-
-La valeur par défaut est @samp{"localhost"}.
-
-@end deftypevr
-
-@deftypevr {@code{zabbix-front-end-configuration} parameter} number zabbix-port
-Zabbix server port.
-
-Defaults to @samp{10051}.
-
-@end deftypevr
-
-
-@c %end of fragment
-
-@node Services Kerberos
-@subsection Services Kerberos
-@cindex Kerberos
-
-Le module @code{(gnu services kerberos)} fournit des services liés au
-protocole d'authentification @dfn{Kerberos}.
-
-@subsubheading Service Krb5
-
-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.
-
-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.
-
-@defvr {Variable Scheme} krb5-service-type
-Un type de service pour les clients Kerberos 5.
-@end defvr
-
-@noindent
-Voici un exemple d'utilisation :
-@lisp
-(service krb5-service-type
-         (krb5-configuration
-          (default-realm "EXAMPLE.COM")
-          (allow-weak-crypto? #t)
-          (realms (list
-                   (krb5-realm
-                    (name "EXAMPLE.COM")
-                    (admin-server "groucho.example.com")
-                    (kdc "karl.example.com"))
-                   (krb5-realm
-                    (name "ARGRX.EDU")
-                    (admin-server "kerb-admin.argrx.edu")
-                    (kdc "keys.argrx.edu"))))))
-@end lisp
-
-@noindent
-Cet exemple fournit une configuration cliente Kerberos@tie{}5 qui :
-@itemize
-@item Reconnais deux domaines : « EXAMPLE.COM » et « ARGREX.EDU », tous deux
-aillant des serveurs d'administration et des centres de distribution de
-clefs distincts ;
-@item Utilisera le domaine « EXAMPLE.COM » pr défaut si le domaine n'est pas spécifié
-explicitement par les clients ;
-@item Acceptera les services qui ne supportent que des types de chiffrements connus pour être faibles.
-@end itemize
-
-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{http://web.mit.edu/kerberos/krb5-devel/doc/admin/conf_files/krb5_conf.html,,krb5.conf}.
-
-
-@deftp {Type de données} krb5-realm
-@cindex domaine, kerberos
-@table @asis
-@item @code{name}
-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.
-
-@item @code{admin-server}
-Ce champ est une chaîne identifiant l'hôte où le serveur d'administration
-tourne.
-
-@item @code{kdc}
-Ce champ est une chaîne identifiant le centre de distribution de clefs pour
-ce domaine.
-@end table
-@end deftp
-
-@deftp {Type de données} krb5-configuration
-
-@table @asis
-@item @code{allow-weak-crypto?} (par défaut : @code{#f})
-Si ce drapeau est @code{#t} les services qui n'offrent que des algorithmes
-de chiffrement faibles seront acceptés.
-
-@item @code{default-realm} (par défaut : @code{#f})
-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}.
-
-@item @code{realms}
-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}.
-@end table
-@end deftp
-
-
-@subsubheading Service PAM krb5
-@cindex pam-krb5
-
-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.
-
-@defvr {Variable Scheme} pam-krb5-service-type
-Un type de service pour le module PAM Kerberos 5.
-@end defvr
-
-@deftp {Type de données} pam-krb5-configuration
-Type de données représentant la configuration du module PAM Kerberos 5.  Ce
-type a les paramètres suivants :
-@table @asis
-@item @code{pam-krb5} (par défaut : @code{pam-krb5})
-Le paquet pam-krb5 à utiliser.
-
-@item @code{minimum-uid} (par défaut : @code{1000})
-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.
-@end table
-@end deftp
-
-
-@node Services web
-@subsection Services web
-
-@cindex web
-@cindex www
-@cindex HTTP
-Le module @code{(gnu services web)} fournit le serveur Apache HTTP, le
-serveur web nginx et aussi un démon fastcgi.
-
-@subsubheading Serveur Apache HTTP
-
-@deffn {Variable Scheme} httpd-service-type
-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}.
-
-Un exemple de configuration simple est donné ci-dessous.
-
-@example
-(service httpd-service-type
-         (httpd-configuration
-           (config
-             (httpd-config-file
-               (server-name "www.example.com")
-               (document-root "/srv/http/www.example.com")))))
-@end example
-
-D'autres services peuvent aussi étendre @code{httpd-service-type} pour être
-ajouté à la configuration.
-
-@example
-(simple-service 'my-extra-server httpd-service-type
-                (list
-                  (httpd-virtualhost
-                    "*:80"
-                    (list (string-append
-                           "ServerName "www.example.com
-                            DocumentRoot \"/srv/http/www.example.com\"")))))
-@end example
-@end deffn
-
-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.
-
-@deffn {Type de données} httpd-configuration
-Ce type de données représente la configuration du service httpd.
-
-@table @asis
-@item @code{package} (par défaut : @code{httpd})
-Le paquet httpd à utiliser.
-
-@item @code{pid-file} (par défaut : @code{"/var/run/httpd"})
-Le fichier de pid utilisé par le service shepherd.
-
-@item @code{config} (par défaut : @code{(httpd-config-file)})
-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.
-
-@end table
-@end deffn
-
-@deffn {Type de données} httpd-module
-Ce type de données représente un module pour le service httpd.
-
-@table @asis
-@item @code{name}
-Le nom du module.
-
-@item @code{file}
-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")}.
-
-@end table
-@end deffn
-
-@defvr {Variable Scheme} %default-httpd-modules
-Une liste par défaut des objets @code{httpd-module}.
-@end defvr
-
-@deffn {Type de données} httpd-config-file
-Ce type de données représente un fichier de configuration pour le service
-httpd.
-
-@table @asis
-@item @code{modules} (par défaut : @code{%default-httpd-modules})
-Les modules à charger.  Les modules supplémentaires peuvent être ajoutés ici
-ou chargés par des configuration supplémentaires.
-
-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} :
-
-@example
-(service httpd-service-type
-         (httpd-configuration
-          (config
-           (httpd-config-file
-            (modules (cons*
-                      (httpd-module
-                       (name "proxy_module")
-                       (file "modules/mod_proxy.so"))
-                      (httpd-module
-                       (name "proxy_fcgi_module")
-                       (file "modules/mod_proxy_fcgi.so"))
-                      %default-httpd-modules))
-            (extra-config (list "\
-<FilesMatch \\.php$>
-    SetHandler \"proxy:unix:/var/run/php-fpm.sock|fcgi://localhost/\"
-</FilesMatch>"))))))
-(service php-fpm-service-type
-         (php-fpm-configuration
-          (socket "/var/run/php-fpm.sock")
-          (socket-group "httpd")))
-@end example
-
-@item @code{server-root} (par défaut : @code{httpd})
-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.
-
-@item @code{server-name} (par défaut : @code{#f})
-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.
-
-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}.
-
-@item @code{document-root} (par défaut : @code{"/srv/http"})
-Le @code{DocumentRoot} depuis lequel les fichiers seront servis.
-
-@item @code{listen} (par défaut : @code{'("80")})
-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.
-
-@item @code{pid-file} (par défaut : @code{"/var/run/httpd"})
-Le @code{PidFile} à utiliser.  Cela devrait correspondre à @code{pid-file}
-indiqué dans @code{httpd-configuration} pour que le service Shepherd soit
-correctement configuré.
-
-@item @code{error-log} (par défaut : @code{"/var/log/httpd/error_log"})
-Le @code{ErrorLog} où le serveur écrit les journaux d'erreurs.
-
-@item @code{user} (par défaut : @code{"httpd"})
-Le @code{User} en tant que lequel le serveur répondra aux requêtes.
-
-@item @code{group} (par défaut : @code{"httpd"})
-Le @code{Group} que le serveur utilisera pour répondre aux requêtes.
-
-@item @code{extra-config} (par défaut : @code{(list "TypesConfig etc/httpd/mime.types")})
-Une liste plate de chaînes et de G-expressions qui seront ajoutées à la fin
-du fichier de configuration.
-
-N'importe quelle valeur avec laquelle le service est étendu sera ajouté à
-cette liste.
-
-@end table
-@end deffn
-
-@deffn {Type de données} httpd-virtualhost
-Ce type de données représente la configuration d'un hôte virtuel pour le
-service httpd.
-
-Ils devraient être ajoutés à extra-config dans httpd-service.
-
-@example
-(simple-service 'my-extra-server httpd-service-type
-                (list
-                  (httpd-virtualhost
-                    "*:80"
-                    (list (string-append
-                           "ServerName "www.example.com
-                            DocumentRoot \"/srv/http/www.example.com\"")))))
-@end example
-
-@table @asis
-@item @code{addresses-and-ports}
-L'adresse et le port pour la directive @code{VirtualHost}.
-
-@item @code{contents}
-Le contenu de la directive @code{VirtualHost}, cela devrait être une liste
-de chaîne et de G-expressions.
-
-@end table
-@end deffn
-
-@subsubheading NGINX
-
-@deffn {Variable Scheme} nginx-service-type
-Type de service pour le serveur web @uref{https://nginx.org/,NGinx}.  La
-valeur de ce service est un enregistrement @code{<nginx-configuration>}.
-
-Un exemple de configuration simple est donné ci-dessous.
-
-@example
-(service nginx-service-type
-         (nginx-configuration
-           (server-blocks
-             (list (nginx-server-configuration
-                     (server-name '("www.example.com"))
-                     (root "/srv/http/www.example.com"))))))
-@end example
-
-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 :
-
-@example
-(simple-service 'my-extra-server nginx-service-type
-                (list (nginx-server-configuration
-                        (root "/srv/http/extra-website")
-                        (try-files (list "$uri" "$uri/index.html")))))
-@end example
-@end deffn
-
-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}.
-
-@deffn {Type de données} nginx-configuration
-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.
-
-@table @asis
-@item @code{nginx} (par défaut : @code{nginx})
-Le paquet nginx à utiliser.
-
-@item @code{log-directory} (par défaut : @code{"/var/log/nginx"})
-Le répertoire dans lequel NGinx écrira ses fichiers journaux.
-
-@item @code{run-directory} (par défaut : @code{"/var/run/nginx"})
-Le répertoire dans lequel NGinx créera un fichier de pid et écrira des
-fichiers temporaires.
-
-@item @code{server-blocks} (par défaut : @code{'()})
-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>}.
-
-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.
-@example
-(service nginx-service-type
-         (nginx-configuration
-           (server-blocks
-             (list (nginx-server-configuration
-                     (server-name '("www.example.com"))
-                     (root "/srv/http/www.example.com"))))))
-@end example
-
-@item @code{upstream-blocks} (par défaut : @code{'()})
-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>}.
-
-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.
-
-@example
-(service
-  nginx-service-type
-  (nginx-configuration
-    (server-blocks
-      (list (nginx-server-configuration
-              (server-name '("www.example.com"))
-              (root "/srv/http/www.example.com")
-              (locations
-                (list
-                  (nginx-location-configuration
-                  (uri "/path1")
-                  (body '("proxy_pass http://server-proxy;"))))))))
-    (upstream-blocks
-      (list (nginx-upstream-configuration
-              (name "server-proxy")
-              (servers (list "server1.example.com"
-                             "server2.example.com")))))))
-@end example
-
-@item @code{file} (par défaut : @code{#f})
-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é.
-
-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.
-
-@item @code{server-names-hash-bucket-size} (par défaut : @code{#f})
-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.
-
-@item @code{server-names-hash-bucket-max-size} (par défaut : @code{#f})
-Taille maximum des seaux pour les tables de hashage des serveurs de noms.
-
-@item @code{extra-content} (par défaut : @code{""})
-Contenu supplémentaire du bloc @code{http}.  Cela devrait être une chaîne ou
-un G-expression.
-
-@end table
-@end deffn
-
-@deftp {Type de données} nginx-server-configuration
-Type de données représentant la configuration d'un bloc serveur de nginx.
-Ce type a les paramètres suivants :
-
-@table @asis
-@item @code{listen} (par défaut : @code{'("80" "443 ssl")})
-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 :
-
-@example
-'("127.0.0.1:8000" "127.0.0.1" "8000" "*:8000" "localhost:8000")
-@end example
-
-@item @code{server-name} (par défaut : @code{(list 'default)})
-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.
-
-@item @code{root} (par défaut : @code{"/srv/http"})
-Racine du site web que sert nginx.
-
-@item @code{locations} (par défaut : @code{'()})
-Une liste d'enregistrements @dfn{nginx-location-configuration} ou
-@dfn{nginx-named-location-configuration} à utiliser dans ce bloc serveur.
-
-@item @code{index} (par défaut : @code{(list "index.html")})
-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.
-
-@item @code{try-files} (par défaut : @code{'()})
-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.
-
-@item @code{ssl-certificate} (par défaut : @code{#f})
-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.
-
-@item @code{ssl-certificate-key} (par défaut : @code{#f})
-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.
-
-@item @code{server-tokens?} (par défaut : @code{#f})
-Indique si le serveur devrait ajouter sa configuration dans les réponses.
-
-@item @code{raw-content} (par défaut : @code{'()})
-Une liste de lignes brutes à ajouter dans le bloc serveur.
-
-@end table
-@end deftp
-
-@deftp {Type de données} nginx-upstream-configuration
-Type de données représentant la configuration d'un bloc @code{upstream}
-nginx.  Ce type a les paramètres suivants :
-
-@table @asis
-@item @code{name}
-Nome de ces groupe de serveurs.
-
-@item @code{serveurs}
-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.
-
-@end table
-@end deftp
-
-@deftp {Type de données} nginx-location-configuration
-Type de données représentant la configuration d'un bloc @code{location}
-nginx.  Ce type a les paramètres suivants :
-
-@table @asis
-@item @code{uri}
-URI qui correspond à ce bloc.
-
-@anchor{nginx-location-configuration body}
-@item @code{body}
-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;")}.
-
-@end table
-@end deftp
-
-@deftp {Type de données} nginx-named-location-configuration
-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 :
-
-@table @asis
-@item @code{name}
-Nom pour identifier ce bloc location.
-
-@item @code{body}
-@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.
-
-@end table
-@end deftp
-
-@subsubheading Cache Varnish
-@cindex Varnish
-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.
-
-@defvr {Variable Scheme} varnish-service-type
-Type de service pour le démon Varnish.
-@end defvr
-
-@deftp {Type de données} varnish-configuration
-Type de données représentant la configuration du service @code{varnish}.  Ce
-type a les paramètres suivants :
-
-@table @asis
-@item @code{package} (par défaut : @code{varnish})
-Le paquet Varnish à utiliser.
-
-@item @code{name} (par défaut : @code{"default"})
-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.
-
-Pass the @code{-n} argument to other Varnish programs to connect to the
-named instance, e.g.@: @command{varnishncsa -n default}.
-
-@item @code{backend} (par défaut : @code{"localhost:8080"})
-Le moteur à utiliser.  Cette option n'a pas d'effet si @code{vcl} est vrai.
-
-@item @code{vcl} (par défaut : #f)
-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.
-
-@c Varnish does not support HTTPS, so keep this URL to avoid confusion.
-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 :
-
-@example
-(define %gnu-mirror
-  (plain-file
-   "gnu.vcl"
-   "vcl 4.1;
-backend gnu @{ .host = "www.gnu.org"; @}"))
-
-(operating-system
-  ...
-  (services (cons (service varnish-service-type
-                           (varnish-configuration
-                            (listen '(":80"))
-                            (vcl %gnu-mirror)))
-                  %base-services)))
-@end example
-
-On peut inspecter la configuration d'une instance Varnish actuellement
-lancée en utilisant le programme @command{varnishadm}.
-
-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.
-
-@item @code{listen} (par défaut : @code{'("localhost:80")})
-Liste des adresses sur lesquelles écoute Varnish.
-
-@item @code{storage} (par défaut : @code{'("malloc,128m")})
-Liste de moteurs de stockage qui seront disponibles en VCL.
-
-@item @code{parameters} (par défaut : @code{'()})
-Liste des paramètres à l'exécution de la forme @code{'(("parameter"
-. "value"))}.
-
-@item @code{extra-options} (par défaut : @code{'()})
-Arguments supplémentaires à passer au processus @command{varnishd}.
-
-@end table
-@end deftp
-
-@subsubheading FastCGI
-@cindex fastcgi
-@cindex fcgiwrap
-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.
-
-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}.
-
-@defvr {Variable Scheme} fcgiwrap-service-type
-Un type de service pour le mandataire FastCGI @code{fcgiwrap}.
-@end defvr
-
-@deftp {Type de données} fcgiwrap-configuration
-Data type representing the configuration of the @code{fcgiwrap} service.
-This type has the following parameters:
-@table @asis
-@item @code{package} (par défaut : @code{fcgiwrap})
-Le paquet fcgiwrap à utiliser.
-
-@item @code{socket} (par défaut : @code{tcp:127.0.0.1:9000})
-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}.
-
-@item @code{user} (par défaut : @code{fcgiwrap})
-@itemx @code{group} (par défaut : @code{fcgiwrap})
-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.
-
-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.
-@end table
-@end deftp
-
-@cindex php-fpm
-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.
-
-Ces fonctionnalités comprennent :
-@itemize @bullet
-@item La création de processus adaptative
-@item Des statistiques de base (comme le mod_status d'Apache)
-@item La gestion des processus avancée avec arrêt et démarrage sans heurts
-@item La possibilité de démarrer des processus de travail avec différents uid/gid/chroot/environnement
-et différents php.ini (à la place de safe_mode)
-@item L'enregistrement des journaux sur stdout et stderr
-@item Le redémarrage d'urgence dans le cas de la destruction accidentelle du cache des opcodes
-@item Le support des téléversements accélérés
-@item Le support de « showlog »
-@item Des améliorations à FastCGI, comme fastcgi_finish_request() -
-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…).
-@end itemize
-...@: and much more.
-
-@defvr {Variable Scheme} php-fpm-service-type
-Un type de service pour @code{php-fpm}.
-@end defvr
-
-@deftp {Type de données} php-fpm-configuration
-Type de données pour la configuration du service php-fpm.
-@table @asis
-@item @code{php} (par défaut : @code{php})
-Le paquet php à utiliser.
-@item @code{socket} (par défaut : @code{(string-append "/var/run/php" (version-major (package-version php)) "-fpm.sock")})
-L'adresse sur laquelle accepter les requêtes FastCGI.  Les syntaxes valides
-sont :
-@table @asis
-@item @code{"ip.add.re.ss:port"}
-Écoute sur un socket TCP sur l'adresse spécifiée sur un port spécifié.
-@item @code{"port"}
-Écoute sur un socket TCP sur toutes les adresse sur un port spécifique.
-@item @code{"/path/to/unix/socket"}
-Écoute sur un socket unix.
-@end table
-
-@item @code{user} (par défaut : @code{php-fpm})
-Utilisateur à qui appartiendra le processus de travail de php.
-@item @code{group} (par défaut : @code{php-fpm})
-Groupe du processus de travail.
-@item @code{socket-user} (par défaut : @code{php-fpm})
-Utilisateur qui peut parler au socket php-fpm.
-@item @code{socket-group} (par défaut : @code{php-fpm})
-Groupe qui peut parler au socket php-fpm.
-@item @code{pid-file} (par défaut : @code{(string-append "/var/run/php" (version-major (package-version php)) "-fpm.pid")})
-Le pid de php-fpm est écrit dans ce fichier une fois que le service a
-démarré.
-@item @code{log-file} (par défaut : @code{(string-append "/var/log/php" (version-major (package-version php)) "-fpm.log")})
-Fichier de journal pour le processus maître de php-fpm.
-@item @code{process-manager} (par défaut : @code{(php-fpm-dynamic-process-manager-configuration)})
-Configuration détaillée pour le gestionnaire de processus de php-fpm.  Il
-doit s'agir soit de :
-@table @asis
-@item @code{<php-fpm-dynamic-process-manager-configuration>,}
-@item @code{<php-fpm-static-process-manager-configuration> ou}
-@item @code{<php-fpm-on-demand-process-manager-configuration>}
-@end table
-@item @code{display-errors} (par défaut : @code{#f})
-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.
-@item @code{timezone} (default @code{#f})
-Specifies @code{php_admin_value[date.timezone]} parameter.
-@item @code{workers-logfile} (par défaut : @code{(string-append "/var/log/php" (version-major (package-version php)) "-fpm.www.log")})
-Ce fichier enregistrera la sortie @code{stderr} des processus de travail de
-php.  On peut indiquer @code{#f} pour désactiver la journalisation.
-@item @code{file} (par défaut : @code{#f})
-Une version alternative de la configuration complète.  Vous pouvez utiliser
-la fonction @code{mixed-text-file} ou un chemin de fichier absolu.
-@end table
-@end deftp
-
-@deftp {Type de données} php-fpm-dynamic-process-manager-configuration
-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.
-@table @asis
-@item @code{max-children} (par défaut : @code{5})
-Nombre maximum de processus de travail.
-@item @code{start-servers} (par défaut : @code{2})
-Nombre de processus de travail au démarrage.
-@item @code{min-spare-servers} (par défaut : @code{1})
-Nombre de processus de travail de secours minimum qui doivent rester à
-disposition.
-@item @code{max-spare-servers} (par défaut : @code{3})
-Nombre maximum de processus de travail de secours qui peuvent rester à
-disposition.
-@end table
-@end deftp
-
-@deftp {Type de données} php-fpm-static-process-manager-configuration
-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éé.
-@table @asis
-@item @code{max-children} (par défaut : @code{5})
-Nombre maximum de processus de travail.
-@end table
-@end deftp
-
-@deftp {Type de données} php-fpm-on-demand-process-manager-configuration
-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.
-@table @asis
-@item @code{max-children} (par défaut : @code{5})
-Nombre maximum de processus de travail.
-@item @code{process-idle-timeout} (par défaut : @code{10})
-La durée en secondes après laquelle un processus sans requête sera tué.
-@end table
-@end deftp
-
-
-@deffn {Procédure Scheme} nginx-php-fpm-location @
-       [#:nginx-package nginx] @
-[socket (string-append "/var/run/php" @
-(version-major (package-version php)) @
-"-fpm.sock")]
-Une fonction d'aide pour ajouter rapidement php à un
-@code{nginx-server-configuration}.
-@end deffn
-
-Une configuration simple de services pour php ressemble à ceci :
-@example
-(services (cons* (service dhcp-client-service-type)
-                 (service php-fpm-service-type)
-                 (service nginx-service-type
-                          (nginx-server-configuration
-                           (server-name '("example.com"))
-                           (root "/srv/http/")
-                           (locations
-                            (list (nginx-php-location)))
-                           (listen '("80"))
-                           (ssl-certificate #f)
-                           (ssl-certificate-key #f)))
-                 %base-services))
-@end example
-
-@cindex cat-avatar-generator
-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.
-
-@deffn {Scheme Procedure} cat-avatar-generator-service @
-       [#:cache-dir "/var/cache/cat-avatar-generator"] @
-[#:package cat-avatar-generator] @
-[#:configuration (nginx-server-configuration)]
-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.
-@end deffn
-
-Une configuration simple de cat-avatar-generator ressemble à ceci :
-@example
-(services (cons* (cat-avatar-generator-service
-                  #:configuration
-                  (nginx-server-configuration
-                    (server-name '("example.com"))))
-                 ...
-                 %base-services))
-@end example
-
-@subsubheading Hpcguix-web
-
-@cindex hpcguix-web
-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).
-
-@defvr {Variable Scheme} hpcguix-web-service-type
-Le type de service pour @code{hpcguix-web}.
-@end defvr
-
-@deftp {Type de données} hpcguix-web-configuration
-Type de données pour la configuration du service hpcguix-web.
-
-@table @asis
-@item @code{specs}
-Une gexp (@pxref{G-Expressions}) spécifiant la configuration du service
-hpcguix-web.  Les éléments principaux disponibles dans cette spec sont :
-
-@table @asis
-@item @code{title-prefix} (par défaut : @code{"hpcguix | "})
-Le préfixe du titre des pages.
-
-@item @code{guix-command} (par défaut : @code{"guix"})
-La commande @command{guix}
-
-@item @code{package-filter-proc} (par défaut : @code{(const #t)})
-Une procédure qui spécifie comment filtrer les paquets qui seront affichés.
-
-@item @code{package-page-extension-proc} (par défaut : @code{(const '())})
-Paquet d'extensions pour @code{hpcguix-web}.
-
-@item @code{menu} (par défaut : @code{'()})
-Entrée supplémentaire dans la page @code{menu}.
-
-@item @code{channels} (par défaut : @code{%default-channels})
-Liste des canaux depuis lesquels la liste des paquets est construite
-(@pxref{Canaux}).
-
-@item @code{package-list-expiration} (par défaut : @code{(* 12 3600)})
-Le temps d'expiration, en secondes, après lequel la liste des paquets est
-reconstruite depuis les dernières instance des canaux donnés.
-@end table
-
-Voir le dépôt hpcguix-web pour un
-@uref{https://github.com/UMCUGenetics/hpcguix-web/blob/master/hpcweb-configuration.scm,
-exemple complet}
-
-@item @code{package} (par défaut : @code{hpcguix-web})
-Le paquet hpcguix-web à utiliser.
-@end table
-@end deftp
-
-Une déclaration de service hpcguix-web typique ressemble à cela :
-
-@example
-(service hpcguix-web-service-type
-         (hpcguix-web-configuration
-          (specs
-           #~(define site-config
-               (hpcweb-configuration
-                (title-prefix "Guix-HPC - ")
-                (menu '(("/about" "ABOUT"))))))))
-@end example
-
-@quotation Remarque
-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.
-
-Ainsi, assurez-vous d'ajouter @code{nss-certs} ou un autre paquet de
-certificats dans le champ @code{packages} de votre configuration.
-@ref{Certificats X.509} pour plus d'informations sur les certificats X.509.
-@end quotation
-
-@node Services de certificats
-@subsection Services de certificats
-
-@cindex Web
-@cindex HTTP, HTTPS
-@cindex Let's Encrypt
-@cindex certificats TLS
-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.
-
-@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.
-
-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).
-
-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.
-
-En utilisant ce service, vous acceptez le document « ACME Subscriber
-Agreement », qu'on peut trouver ici :
-@url{https://acme-v01.api.letsencrypt.org/directory}.
-
-@defvr {Variable Scheme} certbot-service-type
-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 :
-
-@example
-(define %nginx-deploy-hook
-  (program-file
-   "nginx-deploy-hook"
-   #~(let ((pid (call-with-input-file "/var/run/nginx/pid" read)))
-       (kill pid SIGHUP))))
-
-(service certbot-service-type
-         (certbot-configuration
-          (email "foo@@example.net")
-          (certificates
-           (list
-            (certificate-configuration
-             (domains '("example.net" "www.example.net"))
-             (deploy-hook %nginx-deploy-hook))
-            (certificate-configuration
-             (domains '("bar.example.net")))))))
-@end example
-
-Voir plus bas pour des détails sur @code{certbot-configuration}.
-@end defvr
-
-@deftp {Type de données} certbot-configuration
-Type données représentant la configuration du service @code{certbot}.  Ce
-type a les paramètres suivants :
-
-@table @asis
-@item @code{package} (par défaut : @code{certbot})
-Le paquet certbot à utiliser.
-
-@item @code{webroot} (par défaut : @code{/var/www})
-Le répertoire depuis lequel servir les fichiers du défi/réponse de Let's
-Encrypt.
-
-@item @code{certificates} (par défaut : @code{()})
-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}.
-
-@item @code{email}
-Courriel obligatoire utilisé pour la création de compte, le contact en cas
-de problème et des notifications importantes sur le compte.
-
-@item @code{rsa-key-size} (par défaut : @code{2048})
-Taille de la clef RSA.
-
-@item @code{default-location} (par défaut : @i{voir plus bas})
-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{Services web}
-pour plus d'information sur les types de données de la configuration de
-nginx.
-
-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}.
-
-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}.
-
-Passez @code{#f} pour ne pas utiliser de location par défaut.
-@end table
-@end deftp
-
-@deftp {Type de données} certificate-configuration
-Type de données représentant la configuration d'un certificat.  Ce type a
-les paramètres suivants :
-
-@table @asis
-@item @code{name} (par défaut : @i{voir plus bas})
-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}.
-
-Sa valeur par défaut est le premier domaine spécifié.
-
-@item @code{domains} (par défaut : @code{()})
-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.
-
-@item @code{deploy-hook} (par défaut : @code{#f})
-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"}).
-
-@end table
-@end deftp
-
-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}.
-@node Services DNS
-@subsection Services DNS
-@cindex DNS (domain name system)
-@cindex domain name system (DNS)
-
-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}.
-
-@subsubheading Service Knot
-
-Voici un exemple de configuration pour un serveur faisant autorité sur deux
-zone, un maître et un esclave :
-
-@lisp
-(define-zone-entries example.org.zone
-;; Name TTL Class Type Data
-  ("@@"  ""  "IN"  "A"  "127.0.0.1")
-  ("@@"  ""  "IN"  "NS" "ns")
-  ("ns" ""  "IN"  "A"  "127.0.0.1"))
-
-(define master-zone
-  (knot-zone-configuration
-    (domain "example.org")
-    (zone (zone-file
-            (origin "example.org")
-            (entries example.org.zone)))))
-
-(define slave-zone
-  (knot-zone-configuration
-    (domain "plop.org")
-    (dnssec-policy "default")
-    (master (list "plop-master"))))
-
-(define plop-master
-  (knot-remote-configuration
-    (id "plop-master")
-    (address (list "208.76.58.171"))))
-
-(operating-system
-  ;; ...
-  (services (cons* (service knot-service-type
-                     (knot-configuration
-                       (remotes (list plop-master))
-                       (zones (list master-zone slave-zone))))
-                   ;; ...
-                   %base-services)))
-@end lisp
-
-@deffn {Variable Scheme} knot-service-type
-C'est le type pour le serveur DNS Knot.
-
-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}}.
-
-Les types de données suivants sont utilisés pour configurer le serveur DNS
-Knot :
-@end deffn
-
-@deftp {Type de données} knot-key-configuration
-Type de données représentant une clef.  Ce type a les paramètres suivants :
-
-@table @asis
-@item @code{id} (par défaut : @code{""})
-Un identifiant pour d'autres champs de configuration qui se réfèrent à cette
-clef.  Les ID doivent être uniques et non vides.
-
-@item @code{algorithm} (par défaut : @code{#f})
-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}.
-
-@item @code{secret} (par défaut : @code{""})
-La clef secrète elle-même.
-
-@end table
-@end deftp
-
-@deftp {Type de données} knot-acl-configuration
-Type de données représentant une configuration de liste de contrôle d'accès
-(ACL).  Ce type a les paramètres suivants :
-
-@table @asis
-@item @code{id} (par défaut : @code{""})
-Un identifiant pour d'autres champs de configuration qui se réfèrent à cette
-clef.  Les ID doivent être uniques et non vides.
-
-@item @code{address} (par défaut : @code{'()})
-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.
-
-@item @code{key} (par défaut : @code{'()})
-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.
-
-@item @code{action} (par défaut : @code{'()})
-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}.
-
-@item @code{deny?} (par défaut : @code{#f})
-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.
-
-@end table
-@end deftp
-
-@deftp {Type de données} zone-entry
-Type de données représentant une entrée dans un fichier de zone.  Ce type a
-les paramètres suivants :
-
-@table @asis
-@item @code{name} (par défaut : @code{"@@"})
-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}.
-
-@item @code{ttl} (par défaut : @code{""})
-La durée de vie (TTL) de cet enregistrement.  S'il n'est pas indiqué, le TTL
-par défaut est utilisé.
-
-@item @code{class} (par défaut : @code{"IN"})
-La classe de l'enregistrement.  Knot ne supporte actuellement que
-@code{"IN"} et partiellement @code{"CH"}.
-
-@item @code{type} (par défaut : @code{"A"})
-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.
-
-@item @code{data} (par défaut : @code{""})
-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.
-
-@end table
-@end deftp
-
-@deftp {Type de données} zone-file
-Type données représentant le contenu d'un fichier de zone.  Ce type a les
-paramètres suivants :
-
-@table @asis
-@item @code{entries} (par défaut : @code{'()})
-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}.
-
-@item @code{origin} (par défaut : @code{""})
-Le nom de votre zone.  Ce paramètre ne peut pas être vide.
-
-@item @code{ns} (par défaut : @code{"ns"})
-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.
-
-@item @code{mail} (par défaut : @code{"hostmaster"})
-Une adresse de courriel pour vous contacter en tant que propriétaire de la
-zone.  Cela se transforme en @code{<mail>@@<origin>}.
-
-@item @code{serial} (par défaut : @code{1})
-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.
-
-@item @code{refresh} (par défaut : @code{(* 2 24 3600)})
-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)}.
-
-@item @code{retry} (par défaut : @code{(* 15 60)})
-La période après laquelle un esclave essaiera de contacter son maître
-lorsqu'il échoue à le faire la première fois.
-
-@item @code{expiry} (par défaut : @code{(* 14 24 3600)})
-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.
-
-@item @code{nx} (par défaut : @code{3600})
-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.
-
-@end table
-@end deftp
-
-@deftp {Type de données} knot-remote-configuration
-Type de données représentant une configuration de serveurs distants.  Ce
-type a les paramètres suivants :
-
-@table @asis
-@item @code{id} (par défaut : @code{""})
-Un identifiant pour que les autres champs de configuration se réfèrent à ce
-serveur distant.  les ID doivent être uniques et non vides.
-
-@item @code{address} (par défaut : @code{'()})
-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.
-
-@item @code{via} (par défaut : @code{'()})
-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.
-
-@item @code{key} (par défaut : @code{#f})
-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}.
-
-@end table
-@end deftp
-
-@deftp {Type de données} knot-keystore-configuration
-Type de données représentant une base de clefs pour garder les clefs
-dnssec.  Ce type a les paramètres suivants :
-
-@table @asis
-@item @code{id} (par défaut : @code{""})
-L'id de cette base de clefs.  Il ne doit pas être vide.
-
-@item @code{backend} (par défaut : @code{'pem})
-Le moteur de stockage des clefs.  Cela peut être @code{'pem} ou
-@code{'pkcs11}.
-
-@item @code{config} (par défaut : @code{"/var/lib/knot/keys/keys"})
-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.
-
-@end table
-@end deftp
-
-@deftp {Type de données} knot-policy-configuration
-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.
-
-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.
-
-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.
-
-Ce type a les paramètres suivants :
-
-@table @asis
-@item @code{id} (par défaut : @code{""})
-L'id de la politique.  Il ne doit pas être vide.
-
-@item @code{keystore} (par défaut : @code{"default"})
-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).
-
-@item @code{manual?} (par défaut : @code{#f})
-Indique si la clef est gérée manuellement ou automatiquement.
-
-@item @code{single-type-signing?} (par défaut : @code{#f})
-Lorsque la valeur est @code{#t}, utilise le schéma de signature Single-Type
-
-@item @code{algorithm} (par défaut : @code{"ecdsap256sha256"})
-Un algorithme de clef de signature et de signatures.
-
-@item @code{ksk-size} (par défaut : @code{256})
-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.
-
-@item @code{zsk-size} (par défaut : @code{256})
-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.
-
-@item @code{dnskey-ttl} (par défaut : @code{'default})
-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.
-
-@item @code{zsk-lifetime} (par défaut : @code{(* 30 24 3600)})
-La période entre la publication d'une ZSK et l'initialisation d'un nouveau
-changement.
-
-@item @code{propagation-delay} (par défaut : @code{(* 24 3600)})
-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.
-
-@item @code{rrsig-lifetime} (par défaut : @code{(* 14 24 3600)})
-Une période de validité des nouvelles signatures.
-
-@item @code{rrsig-refresh} (par défaut : @code{(* 7 24 3600)})
-Une période qui indique combien de temps avant l'expiration d'une signature
-elle sera rafraîchie.
-
-@item @code{nsec3?} (par défaut : @code{#f})
-Lorsque la valeur est @code{#t}, on utilisera NSEC3 au lien de NSEC.
-
-@item @code{nsec3-iterations} (par défaut : @code{5})
-Le nombre de fois supplémentaires que le hash est effectué.
-
-@item @code{nsec3-salt-length} (par défaut : @code{8})
-La longueur du champ de sel en octets, ajouté au nom du propriétaire avant
-de hasher.
-
-@item @code{nsec3-salt-lifetime} (par défaut : @code{(* 30 24 3600)})
-La période de validité des nouveaux champs sel.
-
-@end table
-@end deftp
-
-@deftp {Type de données} knot-zone-configuration
-Type de données représentant la zone servie par Knot.  ce type a les
-paramètres suivants :
-
-@table @asis
-@item @code{domain} (par défaut : @code{""})
-Le domaine servi par cette configuration.  Il ne doit pas être vide.
-
-@item @code{file} (par défaut : @code{""})
-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.
-
-@item @code{zone} (par défaut : @code{(zone-file)})
-Le contenu du fichier de zone.  Ce paramètre est ignoré par les zones
-esclaves.  Il doit contenir un enregistrement zone-file.
-
-@item @code{master} (par défaut : @code{'()})
-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.
-
-@item @code{ddns-master} (par défaut : @code{#f})
-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.
-
-@item @code{notify} (par défaut : @code{'()})
-Une liste d'identifiants de groupe de serveurs esclaves.
-
-@item @code{acl} (par défaut : @code{'()})
-Une liste d'identifiants d'ACL.
-
-@item @code{semantic-checks?} (par défaut : @code{#f})
-Lorsque la valeur est indiquée, cela ajoute plus de vérifications
-sémantiques à la zone.
-
-@item @code{disable-any?} (par défaut : @code{#f})
-Lorsque la valeur est vraie, cela interdit les requêtes de type ANY.
-
-@item @code{zonefile-sync} (par défaut : @code{0})
-Le délai entre une modification en mémoire et sur le disque.  0 signifie une
-synchronisation immédiate.
-
-@item @code{serial-policy} (par défaut : @code{'increment})
-Une politique entre @code{'increment} et @code{'unixtime}.
-
-@end table
-@end deftp
-
-@deftp {Type de données} knot-configuration
-Type de données représentant la configuration de Knot.  Ce type a les
-paramètres suivants :
-
-@table @asis
-@item @code{knot} (par défaut : @code{knot})
-Le paquet Knot.
-
-@item @code{run-directory} (par défaut : @code{"/var/run/knot"})
-Le répertoire de travail.  Ce répertoire sera utilisé pour le fichier pid et
-les sockets.
-
-@item @code{listen-v4} (par défaut : @code{"0.0.0.0"})
-Une adresse IP sur laquelle écouter.
-
-@item @code{listen-v6} (par défaut : @code{"::"})
-Une adresse IP sur laquelle écouter.
-
-@item @code{listen-port} (par défaut : @code{53})
-Un port sur lequel écouter.
-
-@item @code{keys} (par défaut : @code{'()})
-La liste des knot-key-configuration utilisés par cette configuration.
-
-@item @code{acls} (par défaut : @code{'()})
-La liste des knot-acl-configuration utilisés par cette configuration.
-
-@item @code{remotes} (par défaut : @code{'()})
-La liste des knot-remote-configuration utilisés par cette configuration.
-
-@item @code{zones} (par défaut : @code{'()})
-La liste des knot-zone-configuration utilisés par cette configuration.
-
-@end table
-@end deftp
-
-@subsubheading Services Dnsmasq
-
-@deffn {Variable Scheme} dnsmasq-service-type
-C'est le type du service dnsmasq, dont la valeur devrait être un objet
-@code{dnsmasq-configuration} comme dans cet exemple :
-
-@example
-(service dnsmasq-service-type
-         (dnsmasq-configuration
-           (no-resolv? #t)
-           (servers '("192.168.1.1"))))
-@end example
-@end deffn
-
-@deftp {Type de données} dnsmasq-configuration
-Type de données qui représente la configuration de dnsmasq.
-
-@table @asis
-@item @code{package} (par défaut : @var{dnsmasq})
-L'objet de paquet du serveur dnsmasq.
-
-@item @code{no-hosts?} (par défaut : @code{#f})
-Lorsque la valeur est vraie, ne pas lire les noms d'hôte dans /etc/hosts.
-
-@item @code{port} (par défaut : @code{53})
-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.
-
-@item @code{local-service?} (par défaut : @code{#t})
-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.
-
-@item @code{listen-addresses} (par défaut : @code{'()})
-Écoute sur le adresses IP données.
-
-@item @code{resolv-file} (par défaut : @code{"/etc/resolv.conf"})
-Le fichier où lire l'adresse IP des serveurs de noms en amont.
-
-@item @code{no-resolv?} (par défaut : @code{#f})
-Lorsque la valeur est vraie, ne pas lire @var{resolv-file}.
-
-@item @code{servers} (par défaut : @code{'()})
-Spécifiez l'adresse IP des serveurs en amont directement.
-
-@item @code{cache-size} (par défaut : @code{150})
-Indique la taille du cache de dnsmasq.  Indiquer 0 désactive le cache.
-
-@item @code{negative-cache?} (par défaut : @code{#t})
-Lorsque la valeur est fausse, désactive le cache des réponses négatives.
-
-@end table
-@end deftp
-
-@subsubheading Service ddclient
-
-@cindex ddclient
-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}.
-
-L'exemple suivant montre comment instantier le service avec sa configuration
-par défaut :
-
-@example
-(service ddclient-service-type)
-@end example
-
-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}.
-
-@c %start of fragment
-
-Les champs de @code{ddclient-configuration} disponibles sont :
-
-@deftypevr {paramètre de @code{ddclient-configuration}} package ddclient
-Le paquet ddclient.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{ddclient-configuration}} integer daemon
-La période après laquelle ddclient réessaiera de vérifier l'IP et le nom de
-domaine.
-
-La valeur par défaut est @samp{300}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{ddclient-configuration}} boolean syslog
-Utiliser syslog pour la sortie.
-
-La valeur par défaut est @samp{#t}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{ddclient-configuration}} string mail
-Courriel de l'utilisateur.
-
-La valeur par défaut est @samp{"root"}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{ddclient-configuration}} string mail-failure
-Courriel de l'utilisateur pour les échecs.
-
-La valeur par défaut est @samp{"root"}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{ddclient-configuration}} string pid
-Le fichier de PID de ddclient.
-
-La valeur par défaut est @samp{"/var/run/ddclient/ddclient.pid"}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{ddclient-configuration}} boolean ssl
-Activer le support de SSL.
-
-La valeur par défaut est @samp{#t}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{ddclient-configuration}} string user
-Spécifie le nm d'utilisateur ou l'ID qui est utilisé pour lancer le
-programme ddclient.
-
-La valeur par défaut est @samp{"ddclient"}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{ddclient-configuration}} string group
-Groupe de l'utilisateur qui lancera le programme ddclient.
-
-La valeur par défaut est @samp{"ddclient"}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{ddclient-configuration}} string secret-file
-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.
-
-La valeur par défaut est @samp{"/etc/ddclient/secrets.conf"}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{ddclient-configuration}} list extra-options
-Options supplémentaires qui seront ajoutées au fichier @file{ddclient.conf}.
-
-La valeur par défaut est @samp{()}.
-
-@end deftypevr
-
-
-@c %end of fragment
-
-
-@node Services VPN
-@subsection Services VPN
-@cindex VPN (réseau privé virtuel)
-@cindex réseau privé virtuel (VPN)
-
-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}.
-
-@deffn {Procédure Scheme} openvpn-client-service @
-       [#:config (openvpn-client-configuration)]
-
-Renvoie un service qui lance @command{openvpn}, un démon VPN, en tant que
-client.
-@end deffn
-
-@deffn {Procédure Scheme} openvpn-server-service @
-       [#:config (openvpn-server-configuration)]
-
-Renvoie un service qui lance @command{openvpn}, un démon VPN, en tant que
-serveur.
-
-Les deux services peuvent être lancés en même temps.
-@end deffn
-
-@c %automatically generated documentation
-
-Les champs de @code{openvpn-client-configuration} disponibles sont :
-
-@deftypevr {paramètre de @code{openvpn-client-configuration}} package openvpn
-Le paquet OpenVPN.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{openvpn-client-configuration}} string pid-file
-Le fichier de PID d'OpenVPN.
-
-La valeur par défaut est @samp{"/var/run/openvpn/openvpn.pid"}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{openvpn-client-configuration}} proto proto
-Le protocole (UDP ou TCP) utilisé pour ouvrir un canal entre les clients et
-les serveurs.
-
-La valeur par défaut est @samp{udp}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{openvpn-client-configuration}} dev dev
-Le périphérique utilisé pour représenter la connexion VPN.
-
-La valeur par défaut est @samp{tun}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{openvpn-client-configuration}} string ca
-L'autorité de certification qui sert à vérifier les connexions.
-
-La valeur par défaut est @samp{"/etc/openvpn/ca.crt"}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{openvpn-client-configuration}} string cert
-Le certificat de la machine sur laquelle tourne le démon.  Il devrait être
-signé par l'autorité indiquée dans @code{ca}.
-
-La valeur par défaut est @samp{"/etc/openvpn/client.crt"}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{openvpn-client-configuration}} string key
-La clef de la machine sur laquelle tourne le démon.  Elle doit être la clef
-dont le certificat est donné dans @code{cert}.
-
-La valeur par défaut est @samp{"/etc/openvpn/client.key"}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{openvpn-client-configuration}} boolean comp-lzo?
-Indique s'il faut utiliser l'algorithme de compression lzo.
-
-La valeur par défaut est @samp{#t}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{openvpn-client-configuration}} boolean persist-key?
-Ne pas relire les fichiers de clefs entre les SIGUSR1 et les --ping-restart.
-
-La valeur par défaut est @samp{#t}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{openvpn-client-configuration}} boolean persist-tun?
-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.
-
-La valeur par défaut est @samp{#t}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{openvpn-client-configuration}} number verbosity
-Niveau de verbosité.
-
-La valeur par défaut est @samp{3}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{openvpn-client-configuration}} tls-auth-client tls-auth
-Ajoute une couche d'authentification HMAC supplémentaire au dessus du canal
-de contrôle TLS pour se protéger contre les attaques DoS.
-
-La valeur par défaut est @samp{#f}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{openvpn-client-configuration}} key-usage verify-key-usage?
-Indique s'il faut vérifier que le certificat du serveur a l'extension
-d'utilisation.
-
-La valeur par défaut est @samp{#t}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{openvpn-client-configuration}} bind bind?
-Se lier à un port spécifique.
-
-La valeur par défaut est @samp{#f}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{openvpn-client-configuration}} resolv-retry resolv-retry?
-Réessayer de résoudre l'adresse du serveur.
-
-La valeur par défaut est @samp{#t}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{openvpn-client-configuration}} openvpn-remote-list remote
-Une liste de serveurs distants sur lesquels se connecter.
-
-La valeur par défaut est @samp{()}.
-
-Les champs de @code{openvpn-remote-configuration} disponibles sont :
-
-@deftypevr {paramètre de @code{openvpn-remote-configuration}} string name
-Nom du serveur.
-
-La valeur par défaut est @samp{"my-server"}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{openvpn-remote-configuration}} number port
-Numéro de port sur lequel écoute le serveur.
-
-La valeur par défaut est @samp{1194}.
-
-@end deftypevr
-
-@end deftypevr
-@c %end of automatic openvpn-client documentation
-
-@c %automatically generated documentation
-
-Les champs de @code{openvpn-server-configuration} disponibles sont :
-
-@deftypevr {paramètre de @code{openvpn-server-configuration}} package openvpn
-Le paquet OpenVPN.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{openvpn-server-configuration}} string pid-file
-Le fichier de PID d'OpenVPN.
-
-La valeur par défaut est @samp{"/var/run/openvpn/openvpn.pid"}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{openvpn-server-configuration}} proto proto
-Le protocole (UDP ou TCP) utilisé pour ouvrir un canal entre les clients et
-les serveurs.
-
-La valeur par défaut est @samp{udp}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{openvpn-server-configuration}} dev dev
-Le périphérique utilisé pour représenter la connexion VPN.
-
-La valeur par défaut est @samp{tun}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{openvpn-server-configuration}} string ca
-L'autorité de certification qui sert à vérifier les connexions.
-
-La valeur par défaut est @samp{"/etc/openvpn/ca.crt"}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{openvpn-server-configuration}} string cert
-Le certificat de la machine sur laquelle tourne le démon.  Il devrait être
-signé par l'autorité indiquée dans @code{ca}.
-
-La valeur par défaut est @samp{"/etc/openvpn/client.crt"}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{openvpn-server-configuration}} string key
-La clef de la machine sur laquelle tourne le démon.  Elle doit être la clef
-dont le certificat est donné dans @code{cert}.
-
-La valeur par défaut est @samp{"/etc/openvpn/client.key"}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{openvpn-server-configuration}} boolean comp-lzo?
-Indique s'il faut utiliser l'algorithme de compression lzo.
-
-La valeur par défaut est @samp{#t}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{openvpn-server-configuration}} boolean persist-key?
-Ne pas relire les fichiers de clefs entre les SIGUSR1 et les --ping-restart.
-
-La valeur par défaut est @samp{#t}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{openvpn-server-configuration}} boolean persist-tun?
-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.
-
-La valeur par défaut est @samp{#t}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{openvpn-server-configuration}} number verbosity
-Niveau de verbosité.
-
-La valeur par défaut est @samp{3}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{openvpn-server-configuration}} tls-auth-server tls-auth
-Ajoute une couche d'authentification HMAC supplémentaire au dessus du canal
-de contrôle TLS pour se protéger contre les attaques DoS.
-
-La valeur par défaut est @samp{#f}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{openvpn-server-configuration}} number port
-Spécifie le numéro de port sur lequel les serveurs écoutent.
-
-La valeur par défaut est @samp{1194}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{openvpn-server-configuration}} ip-mask server
-Une ip et un masque de sous-réseau spécifiant le sous-réseau dans le réseau
-virtuel.
-
-La valeur par défaut est @samp{"10.8.0.0 255.255.255.0"}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{openvpn-server-configuration}} cidr6 server-ipv6
-Une notation CIDR pour spécifier le sous-réseau IPv6 dans le réseau virtuel.
-
-La valeur par défaut est @samp{#f}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{openvpn-server-configuration}} string dh
-Le fichier de paramètres Diffie-Hellman.
-
-La valeur par défaut est @samp{"/etc/openvpn/dh2048.pem"}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{openvpn-server-configuration}} string ifconfig-pool-persist
-Le fichier qui enregistre les IP des clients.
-
-La valeur par défaut est @samp{"/etc/openvpn/ipp.txt"}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{openvpn-server-configuration}} gateway redirect-gateway?
-Lorsque la valeur est vraie, le serveur agira comme une passerelle pour ses
-clients.
-
-La valeur par défaut est @samp{#f}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{openvpn-server-configuration}} boolean client-to-client?
-Lorsque la valeur est vraie, les clients sont autorisés à se parler entre
-eux dans le VPN.
-
-La valeur par défaut est @samp{#f}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{openvpn-server-configuration}} keepalive keepalive
-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.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{openvpn-server-configuration}} number max-clients
-Le nombre maximum de clients.
-
-La valeur par défaut est @samp{100}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{openvpn-server-configuration}} string status
-Le fichier de statut.  Ce fichier montre un court rapport sur les connexions
-actuelles.  Il est tronqué et réécrit toutes les minutes.
-
-La valeur par défaut est @samp{"/var/run/openvpn/status"}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{openvpn-server-configuration}} openvpn-ccd-list client-config-dir
-La liste des configuration pour certains clients.
-
-La valeur par défaut est @samp{()}.
-
-Les champs de @code{openvpn-ccd-configuration} disponibles sont :
-
-@deftypevr {paramètre de @code{openvpn-ccd-configuration}} string name
-Nom du client.
-
-La valeur par défaut est @samp{"client"}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{openvpn-ccd-configuration}} ip-mask iroute
-Le réseau du client.
-
-La valeur par défaut est @samp{#f}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{openvpn-ccd-configuration}} ip-mask ifconfig-push
-IP du client sur le VPN.
-
-La valeur par défaut est @samp{#f}.
-
-@end deftypevr
-
-@end deftypevr
-
-
-@c %end of automatic openvpn-server documentation
-
-
-@node Système de fichiers en réseau
-@subsection Système de fichiers en réseau
-@cindex NFS
-
-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).
-
-@subsubheading Service RPC Bind
-@cindex rpcbind
-
-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é.
-
-@defvr {Variable Scheme} rpcbind-service-type
-Un type de service pour le démon RPC portmapper.
-@end defvr
-
-
-@deftp {Type de données} rpcbind-configuration
-Type données représentant la configuration du service RPC Bind.  Ce type a
-les paramètres suivants :
-@table @asis
-@item @code{rpcbind} (par défaut : @code{rpcbind})
-Le paquet rpcbind à utiliser.
-
-@item @code{warm-start?} (par défaut : @code{#t})
-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.
-@end table
-@end deftp
-
-
-@subsubheading Pseudo-système de fichiers Pipefs
-@cindex pipefs
-@cindex rpc_pipefs
-
-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.
-
-@defvr {Variable Scheme} pipefs-service-type
-Un type de service pour le pseudo-système de fichiers pipefs.
-@end defvr
-
-@deftp {Type de données} pipefs-configuration
-Type de données représentant la configuration du service du pseudo-système
-de fichiers pipefs.  Ce type a les paramètres suivants :
-@table @asis
-@item @code{mount-point} (par défaut : @code{"/var/lib/nfs/rpc_pipefs"})
-Le répertoire dans lequel le système de fichiers est attaché.
-@end table
-@end deftp
-
-
-@subsubheading Service de démon GSS
-@cindex GSSD
-@cindex GSS
-@cindex système de sécurité global
-
-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{Services Kerberos}).
-
-@defvr {Variable Scheme} gss-service-type
-Un type de service pour le démon du système de sécurité global (GSS).
-@end defvr
-
-@deftp {Type de données} gss-configuration
-Type de données représentant la configuration du service du démon GSS.  Ce
-type a les paramètres suivants :
-@table @asis
-@item @code{nfs-utils} (par défaut : @code{nfs-utils})
-Le paquet dans lequel la commande @command{rpc.gssd} se trouve.
-
-@item @code{pipefs-directory} (par défaut : @code{"/var/lib/nfs/rpc_pipefs"})
-Le répertoire où le système de fichier pipefs doit être monté.
-
-@end table
-@end deftp
-
-
-@subsubheading Service de démon IDMAP
-@cindex idmapd
-@cindex correspondance de nom
-
-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.
-
-@defvr {Variable Scheme} idmap-service-type
-Un type de service pour le démon de correspondance d'identité (IDMAP).
-@end defvr
-
-@deftp {Type de données} idmap-configuration
-Type de données représentant la configuration du service du démon IDMAP.  Ce
-type a les paramètres suivants :
-@table @asis
-@item @code{nfs-utils} (par défaut : @code{nfs-utils})
-Le paquet dans lequel se trouve la commande @command{rpc.idmapd}.
-
-@item @code{pipefs-directory} (par défaut : @code{"/var/lib/nfs/rpc_pipefs"})
-Le répertoire où le système de fichier pipefs doit être monté.
-
-@item @code{domain} (par défaut : @code{#f})
-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.
-
-@end table
-@end deftp
-
-@node Intégration continue
-@subsection Intégration continue
-
-@cindex intégration continue
-@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}).
-
-Le module @code{(gnu services cuirass)} fournit le service suivant.
-
-@defvr {Procédure Scheme} cuirass-service-type
-Le type du service Cuirass.  Sa valeur doit être un objet
-@code{cuirass-configuration}, décrit ci-dessous.
-@end defvr
-
-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}.
-
-@example
-(define %cuirass-specs
-  #~(list
-     '((#:name . "my-manifest")
-       (#:load-path-inputs . ("guix"))
-       (#:package-path-inputs . ("custom-packages"))
-       (#:proc-input . "guix")
-       (#:proc-file . "build-aux/cuirass/gnu-system.scm")
-       (#:proc . cuirass-jobs)
-       (#:proc-args . ((subset . "manifests")
-                       (systems . ("x86_64-linux"))
-                       (manifests . (("config" . "guix/manifest.scm")))))
-       (#:inputs . (((#:name . "guix")
-                     (#:url . "git://git.savannah.gnu.org/guix.git")
-                     (#:load-path . ".")
-                     (#:branch . "master")
-                     (#:no-compile? . #t))
-                    ((#:name . "config")
-                     (#:url . "git://git.example.org/config.git")
-                     (#:load-path . ".")
-                     (#:branch . "master")
-                     (#:no-compile? . #t))
-                    ((#:name . "custom-packages")
-                     (#:url . "git://git.example.org/custom-packages.git")
-                     (#:load-path . ".")
-                     (#:branch . "master")
-                     (#:no-compile? . #t)))))))
-
-(service cuirass-service-type
-         (cuirass-configuration
-          (specifications %cuirass-specs)))
-@end example
-
-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}.
-
-@deftp {Type de données} cuirass-configuration
-Type de données représentant la configuration de Cuirass.
-
-@table @asis
-@item @code{log-file} (par défaut : @code{"/var/log/cuirass.log"})
-Emplacement du fichier de journal.
-
-@item @code{cache-directory} (par défaut : @code{"/var/cache/cuirass"})
-Emplacement du cache du dépôt.
-
-@item @code{user} (par défaut : @code{"cuirass"})
-Propriétaire du processus @code{cuirass}.
-
-@item @code{group} (par défaut : @code{"cuirass"})
-Groupe du propriétaire du processus @code{cuirass}.
-
-@item @code{interval} (par défaut : @code{60})
-Nombre de secondes entre les mises à jour du dépôt suivis des travaux de
-Cuirass.
-
-@item @code{database} (par défaut : @code{"/var/lib/cuirass/cuirass.db"})
-Emplacement de la base de données sqlite qui contient les résultats de
-construction et les spécifications précédemment ajoutées.
-
-@item @code{ttl} (par défaut : @code{(* 30 24 3600)})
-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.
-
-@item @code{port} (par défaut : @code{8081})
-Numéro de port utilisé pour le serveur HTTP.
-
-@item --listen=@var{hôte}
-Écoute sur l'interface réseau de @var{host}.  La valeur par défaut est
-d'accepter les connexions depuis localhost.
-
-@item @code{specifications} (par défaut : @code{#~'()})
-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.
-
-@item @code{use-substitutes?} (par défaut : @code{#f})
-Cela permet d'utiliser des substituts pour éviter de construire toutes les
-dépendance d'un travail depuis les sources.
-
-@item @code{one-shot?} (par défaut : @code{#f})
-N'évaluer les spécification et construire les dérivations qu'une seule fois.
-
-@item @code{fallback?} (par défaut : @code{#f})
-Lorsque la substitution d'un binaire pré-construit échoue, revenir à la
-construction locale du paquet.
-
-@item @code{cuirass} (par défaut : @code{cuirass})
-Le paquet Cuirass à utiliser.
-@end table
-@end deftp
-
-@node Services de gestion de l'énergie
-@subsection Services de gestion de l'énergie
-
-@cindex tlp
-@cindex gestion de l'énergie avec TLP
-@subsubheading démon TLP
-
-Le module @code{(gnu services pm)} fournit une définition de service Guix
-pour l'outil de gestion d'énergie Linux TLP.
-
-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{http://linrunner.de/en/tlp/tlp.html, la page
-d'accueil de TLP}.
-
-@deffn {Variable Scheme} tlp-service-type
-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 :
-@example
-(service tlp-service-type)
-@end example
-@end deffn
-
-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}.
-
-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}.
-
-@c The following documentation was initially generated by
-@c (generate-tlp-documentation) in (gnu services pm).  Manually maintained
-@c documentation is better, so we shouldn't hesitate to edit below as
-@c needed.  However if the change you want to make to this documentation
-@c can be done in an automated way, it's probably easier to change
-@c (generate-documentation) than to make it below and have to deal with
-@c the churn as TLP updates.
-
-Les champs de @code{tlp-configuration} disponibles sont :
-
-@deftypevr {paramètre de @code{tlp-configuration}} package tlp
-Le paquet TLP.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{tlp-configuration}} boolean tlp-enable?
-Indiquez vrai si vous souhaitez activer TLP.
-
-La valeur par défaut est @samp{#t}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{tlp-configuration}} string tlp-default-mode
-Mode par défaut lorsqu'aucune source d'énergie ne peut être détectée.  Les
-possibilités sont AC et BAT.
-
-La valeur par défaut est @samp{"AC"}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{tlp-configuration}} non-negative-integer disk-idle-secs-on-ac
-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.
-
-La valeur par défaut est @samp{0}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{tlp-configuration}} non-negative-integer disk-idle-secs-on-bat
-Comme @code{disk-idle-ac} mais en mode batterie.
-
-La valeur par défaut est @samp{2}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{tlp-configuration}} non-negative-integer max-lost-work-secs-on-ac
-Périodicité du nettoyage des pages invalidées, en secondes.
-
-La valeur par défaut est @samp{15}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{tlp-configuration}} non-negative-integer max-lost-work-secs-on-bat
-Comme @code{max-lost-work-secs-on-ac} mais en mode batterie.
-
-La valeur par défaut est @samp{60}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{tlp-configuration}} maybe-space-separated-string-list cpu-scaling-governor-on-ac
-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.
-
-La valeur par défaut est @samp{disabled}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{tlp-configuration}} maybe-space-separated-string-list cpu-scaling-governor-on-bat
-Comme @code{cpu-scaling-governor-on-ac} mais en mode batterie.
-
-La valeur par défaut est @samp{disabled}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{tlp-configuration}} maybe-non-negative-integer cpu-scaling-min-freq-on-ac
-Indique la fréquence d'horloge minimale pour le gouverneur sur secteur.
-
-La valeur par défaut est @samp{disabled}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{tlp-configuration}} maybe-non-negative-integer cpu-scaling-max-freq-on-ac
-Indique la fréquence d'horloge maximale pour le gouverneur sur secteur.
-
-La valeur par défaut est @samp{disabled}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{tlp-configuration}} maybe-non-negative-integer cpu-scaling-min-freq-on-bat
-Indique la fréquence d'horloge minimale pour le gouverneur sur batterie.
-
-La valeur par défaut est @samp{disabled}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{tlp-configuration}} maybe-non-negative-integer cpu-scaling-max-freq-on-bat
-Indique la fréquence d'horloge maximale pour le gouverneur sur batterie.
-
-La valeur par défaut est @samp{disabled}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{tlp-configuration}} maybe-non-negative-integer cpu-min-perf-on-ac
-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.
-
-La valeur par défaut est @samp{disabled}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{tlp-configuration}} maybe-non-negative-integer cpu-max-perf-on-ac
-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.
-
-La valeur par défaut est @samp{disabled}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{tlp-configuration}} maybe-non-negative-integer cpu-min-perf-on-bat
-Comme @code{cpu-min-perf-on-ac} mais en mode batterie.
-
-La valeur par défaut est @samp{disabled}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{tlp-configuration}} maybe-non-negative-integer cpu-max-perf-on-bat
-Comme @code{cpu-max-perf-on-ac} mais en mode batterie.
-
-La valeur par défaut est @samp{disabled}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{tlp-configuration}} maybe-boolean cpu-boost-on-ac?
-Active la fonctionnalité turbo boost du CPU sur secteur.
-
-La valeur par défaut est @samp{disabled}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{tlp-configuration}} maybe-boolean cpu-boost-on-bat?
-Comme @code{cpu-boost-on-ac?} mais en mode batterie.
-
-La valeur par défaut est @samp{disabled}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{tlp-configuration}} boolean sched-powersave-on-ac?
-Permet au noyau Linux de minimiser le nombre de cœurs/hyper-threads CPU
-utilisés lorsque la charge est faible.
-
-La valeur par défaut est @samp{#f}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{tlp-configuration}} boolean sched-powersave-on-bat?
-Comme @code{sched-powersave-on-ac?} mais en mode batterie.
-
-La valeur par défaut est @samp{#t}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{tlp-configuration}} boolean nmi-watchdog?
-Active le chien de garde NMI du noyau Linux.
-
-La valeur par défaut est @samp{#f}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{tlp-configuration}} maybe-string phc-controls
-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"}.
-
-La valeur par défaut est @samp{disabled}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{tlp-configuration}} string energy-perf-policy-on-ac
-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.
-
-La valeur par défaut est @samp{"performance"}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{tlp-configuration}} string energy-perf-policy-on-bat
-Comme @code{energy-perf-policy-ac} mais en mode batterie.
-
-La valeur par défaut est @samp{"powersave"}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{tlp-configuration}} space-separated-string-list disks-devices
-Périphériques de disque dur.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{tlp-configuration}} space-separated-string-list disk-apm-level-on-ac
-Niveau de gestion de l'énergie avancé des disques durs.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{tlp-configuration}} space-separated-string-list disk-apm-level-on-bat
-Comme @code{disk-apm-bat} mais en mode batterie.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{tlp-configuration}} maybe-space-separated-string-list disk-spindown-timeout-on-ac
-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é.
-
-La valeur par défaut est @samp{disabled}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{tlp-configuration}} maybe-space-separated-string-list disk-spindown-timeout-on-bat
-Comme @code{disk-spindown-timeout-on-ac} mais en mode batterie.
-
-La valeur par défaut est @samp{disabled}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{tlp-configuration}} maybe-space-separated-string-list disk-iosched
-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.
-
-La valeur par défaut est @samp{disabled}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{tlp-configuration}} string sata-linkpwr-on-ac
-Niveau de gestion de l'énergie des lien SATA aggressive (ALPM).  Les
-possibilités sont min_power, medium_power et max_performance.
-
-La valeur par défaut est @samp{"max_performance"}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{tlp-configuration}} string sata-linkpwr-on-bat
-Comme @code{sata-linkpwr-ac} mais en mode batterie.
-
-La valeur par défaut est @samp{"min_power"}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{tlp-configuration}} maybe-string sata-linkpwr-blacklist
-Exclu les périphériques SATA spécifiés de la gestion de l'énergie des liens.
-
-La valeur par défaut est @samp{disabled}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{tlp-configuration}} maybe-on-off-boolean ahci-runtime-pm-on-ac?
-Active la gestion de l'énergie à l'exécution pour les contrôleurs AHCI et
-les disques, sur secteur
-
-La valeur par défaut est @samp{disabled}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{tlp-configuration}} maybe-on-off-boolean ahci-runtime-pm-on-bat?
-Comme @code{ahci-runtime-pm-on-ac} mais en mode batterie.
-
-La valeur par défaut est @samp{disabled}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{tlp-configuration}} non-negative-integer ahci-runtime-pm-timeout
-Secondes d'inactivités avant de suspendre les disques.
-
-La valeur par défaut est @samp{15}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{tlp-configuration}} string pcie-aspm-on-ac
-Niveau de gestion de l'énergie des états actifs de PCI Express.  Les
-possibilités sont default, performance et powersave.
-
-La valeur par défaut est @samp{"performance"}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{tlp-configuration}} string pcie-aspm-on-bat
-Comme @code{pcie-aspm-ac} mais en mode batterie.
-
-La valeur par défaut est @samp{"powersave"}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{tlp-configuration}} string radeon-power-profile-on-ac
-Niveau de vitesse de l'horloge des cartes graphiques Radeon.  Les
-possibilités sont low, mid, high, auto et default.
-
-La valeur par défaut est @samp{"high"}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{tlp-configuration}} string radeon-power-profile-on-bat
-Comme @code{radeon-power-ac} mais en mode batterie.
-
-La valeur par défaut est @samp{"low"}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{tlp-configuration}} string radeon-dpm-state-on-ac
-Méthode de gestion de l'énergie dynamique de Radeon (DPM).  Les possibilités
-sont battery et performance.
-
-La valeur par défaut est @samp{"performance"}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{tlp-configuration}} string radeon-dpm-state-on-bat
-Comme @code{radeon-dpm-state-ac} mais en mode batterie.
-
-La valeur par défaut est @samp{"battery"}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{tlp-configuration}} string radeon-dpm-perf-level-on-ac
-Niveau de performance de DPM.  Les possibilités sont auto, low et high.
-
-La valeur par défaut est @samp{"auto"}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{tlp-configuration}} string radeon-dpm-perf-level-on-bat
-Comme @code{radeon-dpm-perf-ac} mais en mode batterie.
-
-La valeur par défaut est @samp{"auto"}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{tlp-configuration}} on-off-boolean wifi-pwr-on-ac?
-Mode de gestion de l'énergie wifi.
-
-La valeur par défaut est @samp{#f}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{tlp-configuration}} on-off-boolean wifi-pwr-on-bat?
-Comme @code{wifi-power-ac?} mais en mode batterie.
-
-La valeur par défaut est @samp{#t}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{tlp-configuration}} y-n-boolean wol-disable?
-Désactive wake on LAN.
-
-La valeur par défaut est @samp{#t}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{tlp-configuration}} non-negative-integer sound-power-save-on-ac
-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.
-
-La valeur par défaut est @samp{0}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{tlp-configuration}} non-negative-integer sound-power-save-on-bat
-Comme @code{sound-powersave-ac} mais en mode batterie.
-
-La valeur par défaut est @samp{1}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{tlp-configuration}} y-n-boolean sound-power-save-controller?
-Désactive le contrôleur en mode de gestion de l'énergie sur les
-périphériques Intel HDA.
-
-La valeur par défaut est @samp{#t}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{tlp-configuration}} boolean bay-poweroff-on-bat?
-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.
-
-La valeur par défaut est @samp{#f}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{tlp-configuration}} string bay-device
-Nom du périphérique optique à éteindre.
-
-La valeur par défaut est @samp{"sr0"}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{tlp-configuration}} string runtime-pm-on-ac
-Gestion de l'énergie à l'exécution sur les bus PCI(e).  Les possibilités
-sont on et auto.
-
-La valeur par défaut est @samp{"on"}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{tlp-configuration}} string runtime-pm-on-bat
-Comme @code{runtime-pm-ac} mais en mode batterie.
-
-La valeur par défaut est @samp{"auto"}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{tlp-configuration}} boolean runtime-pm-all?
-Gestion de l'énergie à l'exécution pour tous les bus PCI(e), sauf ceux en
-liste noire.
-
-La valeur par défaut est @samp{#t}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{tlp-configuration}} maybe-space-separated-string-list runtime-pm-blacklist
-Exclue les adresses des périphériques PCI(e) spécifiés de la gestion de
-l'énergie à l'exécution.
-
-La valeur par défaut est @samp{disabled}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{tlp-configuration}} space-separated-string-list runtime-pm-driver-blacklist
-Exclue les périphériques PCI(e) assignés aux pilotes spécifiés de la gestion
-de l'énergie à l'exécution.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{tlp-configuration}} boolean usb-autosuspend?
-Active la fonctionnalité de mise en veille automatique de l'USB.
-
-La valeur par défaut est @samp{#t}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{tlp-configuration}} maybe-string usb-blacklist
-Exclue les périphériques spécifiés de la mise en veille automatique de
-l'USB.
-
-La valeur par défaut est @samp{disabled}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{tlp-configuration}} boolean usb-blacklist-wwan?
-Exclue les périphériques WWAN de la mise en veille automatique de l'USB.
-
-La valeur par défaut est @samp{#t}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{tlp-configuration}} maybe-string usb-whitelist
-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?}.
-
-La valeur par défaut est @samp{disabled}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{tlp-configuration}} maybe-boolean usb-autosuspend-disable-on-shutdown?
-Active la mise en veille de l'USB avant l'arrêt.
-
-La valeur par défaut est @samp{disabled}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{tlp-configuration}} boolean restore-device-state-on-startup?
-Restaure l'état des périphériques radio (bluetooth, wifi, wwan) du dernier
-arrêt au démarrage du système.
-
-La valeur par défaut est @samp{#f}.
-
-@end deftypevr
-
-@cindex thermald
-@cindex gestion de la fréquence du CPU avec thermald
-@subsubheading démon Thermald
-
-Le module @code{(gnu services pm)} fournit une interface pour thermald, un
-service de gestion de l'horloge CPU qui aide à éviter la surchauffe.
-
-@defvr {Variable Scheme} thermald-service-type
-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.
-@end defvr
-
-@deftp {Type de données} thermald-configuration
-Type de données représentant la configuration de
-@code{thermald-service-type}.
-
-@table @asis
-@item @code{ignore-cpuid-check?} (par défaut : @code{#f})
-Ignore la vérification des modèles CPU supportés avec cpuid.
-
-@item @code{thermald} (par défaut : @var{thermald})
-Objet du paquet de thermald.
-
-@end table
-@end deftp
-
-@node Services audio
-@subsection Services audio
-
-Le module @code{(gnu services audio)} fournit un service qui lance MPD (le
-démon de lecture de musique).
-
-@cindex mpd
-@subsubheading Music Player Daemon
-
-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.
-
-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.
-
-@example
-(service mpd-service-type
-         (mpd-configuration
-          (user "bob")
-          (port "6666")))
-@end example
-
-@defvr {Variable Scheme} mpd-service-type
-Le type de service pour @command{mpd}.
-@end defvr
-
-@deftp {Type de données} mpd-configuration
-Type de données représentant la configuration de @command{mpd}.
-
-@table @asis
-@item @code{user} (par défaut : @code{"mpd"})
-L'utilisateur qui lance mpd.
-
-@item @code{music-dir} (par défaut : @code{"~/Music"})
-Le répertoire à scanner pour trouver les fichiers de musique.
-
-@item @code{playlist-dir} (par défaut : @code{"~/.mpd/playlists"})
-Le répertoire où stocker les playlists.
-
-@item @code{port} (par défaut : @code{"6600"})
-Le port sur lequel lancer mpd.
-
-@item @code{address} (par défaut : @code{"any"})
-L'adresse sur laquelle se lie mpd.  Pour utiliser un socket Unix domain, un
-chemin absolu peut être spécifié ici.
-
-@end table
-@end deftp
-
-@node Services de virtualisation
-@subsection services de virtualisation
-
-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.
-
-@subsubheading démon libvirt
-@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.
-
-@deffn {Variable Scheme} libvirt-service-type
-C'est le type du @uref{https://libvirt.org, démon libvirt}.  Sa valeur doit
-être un @code{libvirt-configuration}.
-
-@example
-(service libvirt-service-type
-         (libvirt-configuration
-          (unix-sock-group "libvirt")
-          (tls-port "16555")))
-@end example
-@end deffn
-
-@c Auto-generated with (generate-libvirt-documentation)
-Les champs de @code{libvirt-configuration} disponibles sont :
-
-@deftypevr {paramètre de @code{libvirt-configuration}} package libvirt
-Paquet libvirt.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{libvirt-configuration}} boolean listen-tls?
-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.
-
-Il est nécessaire de mettre en place une CA et de créer un certificat
-serveur avant d'utiliser cette fonctionnalité.
-
-La valeur par défaut est @samp{#t}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{libvirt-configuration}} boolean listen-tcp?
-É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.
-
-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).
-
-La valeur par défaut est @samp{#f}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{libvirt-configuration}} string tls-port
-Pour pour accepter les connexions TLS sécurisées.  Il peut s'agir d'un
-numéro de port ou d'un nom de service.
-
-La valeur par défaut est @samp{"16514"}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{libvirt-configuration}} string tcp-port
-Pour sur lequel accepter les connexions TCP non sécurisées.  Cela peut être
-un numéro de port ou un nom de service.
-
-La valeur par défaut est @samp{"16509"}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{libvirt-configuration}} string listen-addr
-Adresse IP ou nom d'hôte utilisé pour les connexions des clients.
-
-La valeur par défaut est @samp{"0.0.0.0"}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{libvirt-configuration}} boolean mdns-adv?
-Indique s'il faut publier le service libvirt en mDNS.
-
-Autrement, vous pouvez désactiver cela pour tous les services en stoppant le
-démon Avahi.
-
-La valeur par défaut est @samp{#f}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{libvirt-configuration}} string mdns-name
-Nom publié par défaut sur mDNS.  Cela doit être unique sur le réseau local.
-
-La valeur par défaut est @samp{"Virtualization Host <hostname>"}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{libvirt-configuration}} string unix-sock-group
-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.
-
-La valeur par défaut est @samp{"root"}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{libvirt-configuration}} string unix-sock-ro-perms
-Permission Unix pour le socket en lecture seule.  Il est utilisé pour
-surveiller le statut des VM uniquement.
-
-La valeur par défaut est @samp{"0777"}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{libvirt-configuration}} string unix-sock-rw-perms
-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).
-
-La valeur par défaut est @samp{"0770"}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{libvirt-configuration}} string unix-sock-admin-perms
-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.
-
-La valeur par défaut est @samp{"0777"}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{libvirt-configuration}} string unix-sock-dir
-Le répertoire dans lequel les sockets sont créés.
-
-La valeur par défaut est @samp{"/var/run/libvirt"}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{libvirt-configuration}} string auth-unix-ro
-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.
-
-La valeur par défaut est @samp{"polkit"}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{libvirt-configuration}} string auth-unix-rw
-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 ».
-
-La valeur par défaut est @samp{"polkit"}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{libvirt-configuration}} string auth-tcp
-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.
-
-La valeur par défaut est @samp{"sasl"}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{libvirt-configuration}} string auth-tls
-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.
-
-Il est possible d'utiliser de n'importe quel mécanisme d'authentification
-SASL en utilisant « sasl » pour cette option.
-
-La valeur par défaut est @samp{"none"}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{libvirt-configuration}} optional-list access-drivers
-Schéma de contrôle d'accès à l'API.
-
-Par défaut un utilisateur authentifié peut accéder à toutes les API.  Les
-pilotes d'accès peuvent placer des restrictions là-dessus.
-
-La valeur par défaut est @samp{()}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{libvirt-configuration}} string key-file
-Chemin de fichier de la clef du serveur.  Si la valeur est une chaîne vide,
-aucune clef privée n'est chargée.
-
-La valeur par défaut est @samp{""}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{libvirt-configuration}} string cert-file
-Chemin de fichier de la clef du serveur.  Si la chaîne est vide, aucun
-certificat n'est chargé.
-
-La valeur par défaut est @samp{""}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{libvirt-configuration}} string ca-file
-Chemin de fichier de la clef du serveur.  Si la chaîne est vide, aucun
-certificat de CA n'est chargé.
-
-La valeur par défaut est @samp{""}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{libvirt-configuration}} string crl-file
-Chemin de la liste de révocation des certificats.  Si la chaîne est vide,
-aucun CRL n'est chargé.
-
-La valeur par défaut est @samp{""}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{libvirt-configuration}} boolean tls-no-sanity-cert
-Désactive la vérification de nos propres certificats serveurs.
-
-Lorsque libvirtd démarre il effectue des vérifications de routine sur ses
-propres certificats.
-
-La valeur par défaut est @samp{#f}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{libvirt-configuration}} boolean tls-no-verify-cert
-Désactive la vérification des certificats clients.
-
-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é.
-
-La valeur par défaut est @samp{#f}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{libvirt-configuration}} optional-list tls-allowed-dn-list
-Liste blanche des Distinguished Name x509 autorisés.
-
-La valeur par défaut est @samp{()}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{libvirt-configuration}} optional-list sasl-allowed-usernames
-Liste blanche des noms d'utilisateur SASL permis.  Le format des noms
-d'utilisateurs dépend du mécanisme d'authentification SASL.
-
-La valeur par défaut est @samp{()}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{libvirt-configuration}} string tls-priority
-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.
-
-La valeur par défaut est @samp{"NORMAL"}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{libvirt-configuration}} integer max-clients
-Nombre maximum de connexions clientes en même temps sur tous les sockets.
-
-La valeur par défaut est @samp{5000}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{libvirt-configuration}} integer max-queued-clients
-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.
-
-La valeur par défaut est @samp{1000}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{libvirt-configuration}} integer max-anonymous-clients
-Longueur maximum de la queue des clients acceptés mais pas authentifiés.
-Indiquez zéro pour désactiver ce paramètre.
-
-La valeur par défaut est @samp{20}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{libvirt-configuration}} integer min-workers
-Nombre de processus de travail démarrés initialement.
-
-La valeur par défaut est @samp{5}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{libvirt-configuration}} integer max-workers
-Nombre maximum de threads de travail.
-
-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.
-
-La valeur par défaut est @samp{20}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{libvirt-configuration}} integer prio-workers
-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.
-
-La valeur par défaut est @samp{5}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{libvirt-configuration}} integer max-requests
-Limite globale totale sur les appels RPC concurrents.
-
-La valeur par défaut est @samp{20}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{libvirt-configuration}} integer max-client-requests
-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.
-
-La valeur par défaut est @samp{5}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{libvirt-configuration}} integer admin-min-workers
-Comme @code{min-workers} mais pour l'interface d'administration.
-
-La valeur par défaut est @samp{1}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{libvirt-configuration}} integer admin-max-workers
-Comme @code{max-workers} mais pour l'interface d'administration.
-
-La valeur par défaut est @samp{5}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{libvirt-configuration}} integer admin-max-clients
-Comme @code{max-clients} mais pour l'interface d'administration.
-
-La valeur par défaut est @samp{5}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{libvirt-configuration}} integer admin-max-queued-clients
-Comme @code{max-queued-clients} mais pour l'interface d'administration.
-
-La valeur par défaut est @samp{5}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{libvirt-configuration}} integer admin-max-client-requests
-Comme @code{max-client-requests} mais pour l'interface d'administration.
-
-La valeur par défaut est @samp{5}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{libvirt-configuration}} integer log-level
-Niveau de journalisation.  4 : erreurs, 3 : avertissements, 2 : information,
-1 : débogage.
-
-La valeur par défaut est @samp{3}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{libvirt-configuration}} string log-filters
-Filtres de journalisation.
-
-Un filtre qui permet de sélectionner plusieurs niveaux de journalisation
-pour une catégorie donnée.  Le format d'un filtre est :
-
-@itemize @bullet
-@item
-x:nom
-
-@item
-x:+nom
-
-@end itemize
-
-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 :
-
-@itemize @bullet
-@item
-1 : DEBUG
-
-@item
-2 : INFO
-
-@item
-3 : WARNING
-
-@item
-4 : ERROR
-
-@end itemize
-
-On peut définir plusieurs filtres dans une seule déclaration de filtres, ils
-doivent juste être séparés par des espaces.
-
-La valeur par défaut est @samp{"3:remote 4:event"}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{libvirt-configuration}} string log-outputs
-Sorties de débogage.
-
-Une sortie est l'un des endroits où les journaux sont enregistrés.  Le
-format d'une sortie peut être :
-
-@table @code
-@item x:stderr
-la sortie va vers stderr
-
-@item x:syslog:nom
-utilise syslog comme sortie et utilise le nom donné comme identifiant
-
-@item x:file:chemin_fichier
-la sortie va vers un fichier, avec le chemin donné
-
-@item x:journald
-la sortie va vers le système de journalisation journald
-
-@end table
-
-Dans tous les cas, le préfixe x est le niveau minimal, qui agit comme un
-filtre
-
-@itemize @bullet
-@item
-1 : DEBUG
-
-@item
-2 : INFO
-
-@item
-3 : WARNING
-
-@item
-4 : ERROR
-
-@end itemize
-
-Plusieurs sorties peuvent être définies, elles doivent juste être séparées
-par des espaces.
-
-La valeur par défaut est @samp{"3:stderr"}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{libvirt-configuration}} integer audit-level
-Permet de modifier l'utilisation du sous-système d'audit.
-
-@itemize @bullet
-@item
-0 : désactive tout audit
-
-@item
-1 : active l'audit, seulement s'il est activé sur l'hôte
-
-@item
-2 : active l'audit, et quitte s'il est désactivé sur l'hôte.
-
-@end itemize
-
-La valeur par défaut est @samp{1}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{libvirt-configuration}} boolean audit-logging
-Envoie les messages d'audit via l'infrastructure de journalisation de
-libvirt
-
-La valeur par défaut est @samp{#f}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{libvirt-configuration}} optional-string host-uuid
-UUID de l'hôte.  L'UUID ne doit pas avoir tous ses nombres identiques.
-
-La valeur par défaut est @samp{""}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{libvirt-configuration}} string host-uuid-source
-Source où lire l'UUID de l'hôte.
-
-@itemize @bullet
-@item
-@code{smbios} : récupère l'UUID à partir de @code{dmidecode -s system-uuid}
-
-@item
-@code{machine-id} : récupère l'UUID à partir de @code{/etc/machine-id}
-
-@end itemize
-
-Si @code{dmidecode} ne fournit pas un UUID valide, un UUID temporaire sera
-généré.
-
-La valeur par défaut est @samp{"smbios"}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{libvirt-configuration}} integer keepalive-interval
-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.
-
-La valeur par défaut est @samp{5}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{libvirt-configuration}} integer keepalive-count
-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.
-
-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.
-
-La valeur par défaut est @samp{5}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{libvirt-configuration}} integer admin-keepalive-interval
-Comme précédemment, mais pour l'interface d'administration.
-
-La valeur par défaut est @samp{5}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{libvirt-configuration}} integer admin-keepalive-count
-Comme précédemment, mais pour l'interface d'administration.
-
-La valeur par défaut est @samp{5}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{libvirt-configuration}} integer ovs-timeout
-Délai d'attente pour les appels Open vSwitch.
-
-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.
-
-La valeur par défaut est @samp{5}.
-
-@end deftypevr
-
-@c %end of autogenerated docs
-
-@subsubheading démon Virrlog
-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.
-
-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.
-
-@deffn {Variable Scheme} virtlog-service-type
-Le type de service pour le démon virtlogd.  Sa valeur doit être un
-@code{virtlog-configuration}.
-
-@example
-(service virtlog-service-type
-         (virtlog-configuration
-          (max-clients 1000)))
-@end example
-@end deffn
-
-@deftypevr {paramètre de @code{virtlog-configuration}} integer log-level
-Niveau de journalisation.  4 : erreurs, 3 : avertissements, 2 : information,
-1 : débogage.
-
-La valeur par défaut est @samp{3}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{virtlog-configuration}} string log-filters
-Filtres de journalisation.
-
-Un filtre qui permet de sélectionner plusieurs niveaux de journalisation
-pour une catégorie donnée.  Le format d'un filtre est :
-
-@itemize @bullet
-@item
-x:nom
-
-@item
-x:+nom
-
-@end itemize
-
-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 :
-
-@itemize @bullet
-@item
-1 : DEBUG
-
-@item
-2 : INFO
-
-@item
-3 : WARNING
-
-@item
-4 : ERROR
-
-@end itemize
-
-On peut définir plusieurs filtres dans une seule déclaration de filtres, ils
-doivent juste être séparés par des espaces.
-
-La valeur par défaut est @samp{"3:remote 4:event"}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{virtlog-configuration}} string log-outputs
-Sorties de débogage.
-
-Une sortie est l'un des endroits où les journaux sont enregistrés.  Le
-format d'une sortie peut être :
-
-@table @code
-@item x:stderr
-la sortie va vers stderr
-
-@item x:syslog:nom
-utilise syslog comme sortie et utilise le nom donné comme identifiant
-
-@item x:file:chemin_fichier
-la sortie va vers un fichier, avec le chemin donné
-
-@item x:journald
-la sortie va vers le système de journalisation journald
-
-@end table
-
-Dans tous les cas, le préfixe x est le niveau minimal, qui agit comme un
-filtre
-
-@itemize @bullet
-@item
-1 : DEBUG
-
-@item
-2 : INFO
-
-@item
-3 : WARNING
-
-@item
-4 : ERROR
-
-@end itemize
-
-Plusieurs sorties peuvent être définies, elles doivent juste être séparées
-par des espaces.
-
-La valeur par défaut est @samp{"3:stderr"}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{virtlog-configuration}} integer max-clients
-Nombre maximum de connexions clientes en même temps sur tous les sockets.
-
-La valeur par défaut est @samp{1024}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{virtlog-configuration}} integer max-size
-Taille de fichier maximale avant roulement.
-
-La valeur par défaut est @samp{2MB}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{virtlog-configuration}} integer max-backups
-Nombre maximal de fichiers de sauvegardes à garder.
-
-La valeur par défaut est @samp{3}.
-
-@end deftypevr
-
-@subsubheading Émulation transparente avec QEMU
-
-@cindex émulation
-@cindex @code{binfmt_misc}
-@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.
-
-@defvr {Variable Scheme} qemu-binfmt-service-type
-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 :
-
-@example
-(service qemu-binfmt-service-type
-         (qemu-binfmt-configuration
-           (platforms (lookup-qemu-platforms "arm" "aarch64" "ppc"))))
-@end example
-
-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}).
-@end defvr
-
-@deftp {Type de données} qemu-binfmt-configuration
-La configuration du service @code{qemu-binfmt}.
-
-@table @asis
-@item @code{platforms} (par défaut : @code{'()})
-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).
-
-@item @code{guix-support?} (par défaut : @code{#f})
-Lorsque la valeur est vraie, QEMU et toutes ses dépendances sont ajoutés à
-l'environnement de construction de @command{guix-daemon} (@pxref{Invoquer 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.
-
-Par exemple, supposons que vous soyez sur une machine x86_64 et que vous
-avez ce services :
-
-@example
-(service qemu-binfmt-service-type
-         (qemu-binfmt-configuration
-           (platforms (lookup-qemu-platforms "arm"))
-           (guix-support? #t)))
-@end example
-
-Vous pouvez lancer :
-
-@example
-guix build -s armhf-linux inkscape
-@end example
-
-@noindent
-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 !
-
-@item @code{qemu} (par défaut : @code{qemu})
-Le paquet QEMU à utiliser.
-@end table
-@end deftp
-
-@deffn {Procédure Scheme} lookup-qemu-platforms @var{platforms}@dots{}
-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.
-@end deffn
-
-@deffn {Procédure Scheme} qemu-platform? @var{obj}
-Renvoie vrai s i@var{obj} est un objet de plate-forme.
-@end deffn
-
-@deffn {Procédure Scheme} qemu-platform-name @var{platform}
-Renvoie le nom de @var{platform} — une chaîne comme @code{"arm"}.
-@end deffn
-
-@node Services de contrôle de version
-@subsection Services de contrôle de version
-
-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}.
-
-@deffn {Procédure Scheme} git-daemon-service [#:config (git-daemon-configuration)]
-
-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.
-
-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}.
-
-@end deffn
-
-@deftp {Type de données} git-daemon-configuration
-Type de données représentnt la configuration de @code{git-daemon-service}.
-
-@table @asis
-@item @code{package} (par défaut : @var{git})
-Objet de paquet du système de contrôle de version distribué Git.
-
-@item @code{export-all?} (par défaut : @var{#f})
-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}.
-
-@item @code{base-path} (par défaut : @file{/srv/git})
-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}.
-
-@item @code{user-path} (par défaut : @var{#f})
-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}.
-
-@item @code{listen} (par défaut : @var{'()})
-Indique s'il faut écouter sur des adresses IP ou des noms d'hôtes
-particuliers, par défaut tous.
-
-@item @code{port} (par défaut : @var{#f})
-Indique s'il faut écouter sur un port particulier, par défaut le 9418.
-
-@item @code{whitelist} (par défaut : @var{'()})
-Si la liste n'est pas vide, n'autoriser l'accès qu'aux dossiers spécifiés.
-
-@item @code{extra-options} (par défaut : @var{'()})
-Options supplémentaires qui seront passées à @code{git daemon}, lancez
-@command{man git-daemon} pour plus d'informations.
-
-@end table
-@end deftp
-
-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{Services web} pour plus
-d'informations sur la manière de lancer le démon @code{fcgiwrap} nécessaire.
-
-Guix a un type de données de configuration séparé pour servir des dépôts Git
-par HTTP.
-
-@deftp {Type de données} git-http-configuration
-Type de données représentant la configuration de @code{git-http-service}.
-
-@table @asis
-@item @code{package} (par défaut : @var{git})
-Objet de paquet du système de contrôle de version distribué Git.
-
-@item @code{git-root} (par défaut : @file{/srv/git})
-Répertoire contenant les dépôts Git à exposer au monde.
-
-@item @code{export-all?} (par défaut : @var{#f})
-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}.
-
-@item @code{uri-path} (par défaut : @file{/git/})
-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.
-
-@item @code{fcgiwrap-socket} (par défaut : @code{127.0.0.1:9000})
-Le socket sur lequel le démon @code{fcgiwrap} écoute.  @xref{Services web}.
-@end table
-@end deftp
-
-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.
-
-@deffn {Procédure Scheme} git-http-nginx-location-configuration @
-       [config=(git-http-configuration)]
-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 :
-
-@example
-(service nginx-service-type
-         (nginx-configuration
-          (server-blocks
-           (list
-            (nginx-server-configuration
-             (listen '("443 ssl"))
-             (server-name "git.my-host.org")
-             (ssl-certificate
-              "/etc/letsencrypt/live/git.my-host.org/fullchain.pem")
-             (ssl-certificate-key
-              "/etc/letsencrypt/live/git.my-host.org/privkey.pem")
-             (locations
-              (list
-               (git-http-nginx-location-configuration
-                (git-http-configuration (uri-path "/"))))))))))
-@end example
-
-Ce exemple suppose que vous utilisez Let's Encrypt pour récupérer votre
-certificat TLS.  @xref{Services de certificats}.  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{Services web}.
-@end deffn
-
-@subsubheading Service Cgit
-
-@cindex service cgit
-@cindex git, interface web
-@uref{https://git.zx2c4.com/cgit/, Cgit} est une interface web pour des
-dépôts Git écrite en C.
-
-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}).
-
-@example
-(service cgit-service-type)
-@end example
-
-Le type @code{file-object} désigne soit un objet simili-fichier
-(@pxref{G-Expressions, file-like objects}), soit une chaîne.
-
-@c %start of fragment
-
-Les champs de @code{cgit-configuration} disponibles sont :
-
-@deftypevr {paramètre de @code{cgit-configuration}} package package
-Le paquet cgit.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{cgit-configuration}} nginx-server-configuration-list nginx
-Configuration Nginx.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{cgit-configuration}} file-object about-filter
-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).
-
-La valeur par défaut est @samp{""}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{cgit-configuration}} string agefile
-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.
-
-La valeur par défaut est @samp{""}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{cgit-configuration}} file-object auth-filter
-Spécifie une commande qui sera invoquée pour authentifier l'accès au dépôt.
-
-La valeur par défaut est @samp{""}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{cgit-configuration}} string branch-sort
-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}.
-
-La valeur par défaut est @samp{"name"}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{cgit-configuration}} string cache-root
-Chemin utilisé pour stocker les entrées de cache de cgit.
-
-La valeur par défaut est @samp{"/var/cache/cgit"}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{cgit-configuration}} integer cache-static-ttl
-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.
-
-La valeur par défaut est @samp{-1}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{cgit-configuration}} integer cache-dynamic-ttl
-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.
-
-La valeur par défaut est @samp{5}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{cgit-configuration}} integer cache-repo-ttl
-Nombre qui spécifie le temps de vie, en minute, des version en cache de la
-page de résumé du dépôt.
-
-La valeur par défaut est @samp{5}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{cgit-configuration}} integer cache-root-ttl
-Nombre qui spécifie le temps de vie, en minutes, de la version en cache de
-la page d'index du dépôt.
-
-La valeur par défaut est @samp{5}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{cgit-configuration}} integer cache-scanrc-ttl
-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.
-
-La valeur par défaut est @samp{15}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{cgit-configuration}} integer cache-about-ttl
-Nombre qui spécifie le temps de vie, en minutes, de la version en cache de
-la page « à propos » du dépôt.
-
-La valeur par défaut est @samp{15}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{cgit-configuration}} integer cache-snapshot-ttl
-Nombre qui spécifie le temps de vie, en minutes, de la version en cache des
-archives.
-
-La valeur par défaut est @samp{5}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{cgit-configuration}} integer cache-size
-Le nombre maximum d'entrées dans le cache de cgit.  Lorsque la valeur est
-@samp{0}, le cache est désactivé.
-
-La valeur par défaut est @samp{0}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{cgit-configuration}} boolean case-sensitive-sort?
-Indique si le tri des éléments est sensible à la casse.
-
-La valeur par défaut est @samp{#t}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{cgit-configuration}} list clone-prefix
-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.
-
-La valeur par défaut est @samp{()}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{cgit-configuration}} list clone-url
-Liste des modèles @code{clone-url}
-
-La valeur par défaut est @samp{()}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{cgit-configuration}} file-object commit-filter
-Commande qui sera invoquée pour formater les messages de commit.
-
-La valeur par défaut est @samp{""}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{cgit-configuration}} string commit-sort
-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}.
-
-La valeur par défaut est @samp{"git log"}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{cgit-configuration}} file-object css
-URL qui spécifie le document css à inclure dans les pages cgit.
-
-La valeur par défaut est @samp{"/share/cgit/cgit.css"}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{cgit-configuration}} file-object email-filter
-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.
-
-La valeur par défaut est @samp{""}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{cgit-configuration}} boolean embedded?
-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.
-
-La valeur par défaut est @samp{#f}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{cgit-configuration}} boolean enable-commit-graph?
-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.
-
-La valeur par défaut est @samp{#f}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{cgit-configuration}} boolean enable-filter-overrides?
-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.
-
-La valeur par défaut est @samp{#f}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{cgit-configuration}} boolean enable-follow-links?
-Drapeau qui, s'il vaut @samp{#t}, permet aux utilisateurs de suivre un
-fichier dans la vue « log ».
-
-La valeur par défaut est @samp{#f}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{cgit-configuration}} boolean enable-http-clone?
-Si la valeur est @samp{#t}, cgit agira comme un point d'accès HTTP idiot
-pour les clones Git.
-
-La valeur par défaut est @samp{#t}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{cgit-configuration}} boolean enable-index-links?
-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.
-
-La valeur par défaut est @samp{#f}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{cgit-configuration}} boolean enable-index-owner?
-Drapeau qui, s'il vaut @samp{#t}, fera afficher le propriétaire de chaque
-dépôt dans l'index des dépôts.
-
-La valeur par défaut est @samp{#t}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{cgit-configuration}} boolean enable-log-filecount?
-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.
-
-La valeur par défaut est @samp{#f}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{cgit-configuration}} boolean enable-log-linecount?
-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.
-
-La valeur par défaut est @samp{#f}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{cgit-configuration}} boolean enable-remote-branches?
-Drapeau qui, s'il vaut @samp{#t}, fera afficher les branches distantes dans
-les vues du résumé et des références.
-
-La valeur par défaut est @samp{#f}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{cgit-configuration}} boolean enable-subject-links?
-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.
-
-La valeur par défaut est @samp{#f}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{cgit-configuration}} boolean enable-html-serving?
-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.
-
-La valeur par défaut est @samp{#f}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{cgit-configuration}} boolean enable-tree-linenumbers?
-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.
-
-La valeur par défaut est @samp{#t}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{cgit-configuration}} boolean enable-git-config?
-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.
-
-La valeur par défaut est @samp{#f}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{cgit-configuration}} file-object favicon
-URL utilisée comme lien vers un icône pour cgit.
-
-La valeur par défaut est @samp{"/favicon.ico"}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{cgit-configuration}} string footer
-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).
-
-La valeur par défaut est @samp{""}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{cgit-configuration}} string head-include
-Le contenu du fichier spécifié dans cette option sera inclus directement
-dans la section HEAD HTML de toutes les pages.
-
-La valeur par défaut est @samp{""}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{cgit-configuration}} string header
-Le contenu du fichier spécifié avec cette option sera inclus directement au
-début de toutes les pages.
-
-La valeur par défaut est @samp{""}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{cgit-configuration}} file-object include
-Nom d'un fichier de configuration à inclure avant que le reste du fichier de
-configuration actuel ne soit analysé.
-
-La valeur par défaut est @samp{""}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{cgit-configuration}} string index-header
-Le contenu du fichier spécifié avec cette option sera inclus directement au
-dessus de l'index des dépôts.
-
-La valeur par défaut est @samp{""}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{cgit-configuration}} string index-info
-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.
-
-La valeur par défaut est @samp{""}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{cgit-configuration}} boolean local-time?
-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.
-
-La valeur par défaut est @samp{#f}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{cgit-configuration}} file-object logo
-URL qui spécifie la source d'une image utilisé comme logo sur toutes les
-pages cgit.
-
-La valeur par défaut est @samp{"/share/cgit/cgit.png"}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{cgit-configuration}} string logo-link
-URL chargée lors du clic sur l'image du logo de cgit.
-
-La valeur par défaut est @samp{""}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{cgit-configuration}} file-object owner-filter
-Commande qui sera invoquée pour formater la colonne propriétaire sur la page
-principale.
-
-La valeur par défaut est @samp{""}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{cgit-configuration}} integer max-atom-items
-Nombre d'éléments à afficher dans la vue des flux atom.
-
-La valeur par défaut est @samp{10}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{cgit-configuration}} integer max-commit-count
-Nombre d'éléments à lister par page dans la vue « log ».
-
-La valeur par défaut est @samp{50}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{cgit-configuration}} integer max-message-length
-Nombre caractères de messages de commit à afficher dans la vue « log ».
-
-La valeur par défaut est @samp{80}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{cgit-configuration}} integer max-repo-count
-Spécifie le nombre d'éléments à lister par page sur la page de l'index des
-dépôts.
-
-La valeur par défaut est @samp{50}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{cgit-configuration}} integer max-repodesc-length
-Spécifie le nombre maximum de caractères de description de dépôts à afficher
-sur la page d'index des dépôts.
-
-La valeur par défaut est @samp{80}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{cgit-configuration}} integer max-blob-size
-Spécifie la taille maximale d'un blob pour lequel afficher du HTML en
-kilo-octets.
-
-La valeur par défaut est @samp{0}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{cgit-configuration}} string max-stats
-Période de statistiques maximale.  Les valeurs valides sont @samp{week},
-@samp{month}, @samp{quarter} et @samp{year}.
-
-La valeur par défaut est @samp{""}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{cgit-configuration}} mimetype-alist mimetype
-Type mime pour l'extension de fichier spécifiée.
-
-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"))}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{cgit-configuration}} file-object mimetype-file
-Spécifie le fichier à utiliser pour la recherche automatique de type mime.
-
-La valeur par défaut est @samp{""}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{cgit-configuration}} string module-link
-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.
-
-La valeur par défaut est @samp{""}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{cgit-configuration}} boolean nocache?
-Si la valeur est @samp{#t}, le cache est désactivé.
-
-La valeur par défaut est @samp{#f}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{cgit-configuration}} boolean noplainemail?
-Si la valeur est @samp{#t}, l'affichage des adresse de courriel des auteurs
-sera désactivé.
-
-La valeur par défaut est @samp{#f}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{cgit-configuration}} boolean noheader?
-Drapeau qui, s'il vaut @samp{#t}, fera omettre à cgit l'en-tête standard sur
-toutes les pages.
-
-La valeur par défaut est @samp{#f}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{cgit-configuration}} project-list project-list
-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.
-
-La valeur par défaut est @samp{()}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{cgit-configuration}} file-object readme
-Texte utilisé comme valeur par défaut pour @code{cgit-repo-readme}.
-
-La valeur par défaut est @samp{""}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{cgit-configuration}} boolean remove-suffix?
-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.
-
-La valeur par défaut est @samp{#f}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{cgit-configuration}} integer renamelimit
-Nombre maximum de fichiers à considérer lors de la détection des renommages.
-
-La valeur par défaut est @samp{-1}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{cgit-configuration}} string repository-sort
-La manière dont les dépôt de chaque section sont rangés.
-
-La valeur par défaut est @samp{""}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{cgit-configuration}} robots-list robots
-Texte utilisé comme contenu du méta-attribut @code{robots}.
-
-La valeur par défaut est @samp{("noindex" "nofollow")}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{cgit-configuration}} string root-desc
-Texte affiché en dessous de l'en-tête de la page d'index des dépôts.
-
-La valeur par défaut est @samp{"a fast webinterface for the git dscm"}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{cgit-configuration}} string root-readme
-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.
-
-La valeur par défaut est @samp{""}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{cgit-configuration}} string root-title
-Texte affiché sur la page d'index des dépôts.
-
-La valeur par défaut est @samp{""}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{cgit-configuration}} boolean scan-hidden-path
-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.
-
-La valeur par défaut est @samp{#f}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{cgit-configuration}} list snapshots
-Texte qui spécifie l'ensemble des formats d'archives par défaut pour
-lesquelles cgit générera un lien.
-
-La valeur par défaut est @samp{()}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{cgit-configuration}} repository-directory repository-directory
-Nom du répertoire à scanner pour trouver les dépôts (représente
-@code{scan-path}).
-
-La valeur par défaut est @samp{"/srv/git"}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{cgit-configuration}} string section
-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.
-
-La valeur par défaut est @samp{""}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{cgit-configuration}} string section-sort
-Drapeau qui, s'il vaut @samp{1}, triera les sections dans la liste des
-dépôts par nom.
-
-La valeur par défaut est @samp{""}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{cgit-configuration}} integer section-from-path
-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.
-
-La valeur par défaut est @samp{0}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{cgit-configuration}} boolean side-by-side-diffs?
-Si la valeur est @samp{#t}, afficher des diffs côte à côte au lieu des
-unidiffs par défaut.
-
-La valeur par défaut est @samp{#f}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{cgit-configuration}} file-object source-filter
-Spécifie une commande qui sera invoquée pour formater les blobs en texte
-brut dans la vue de l'arborescence.
-
-La valeur par défaut est @samp{""}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{cgit-configuration}} integer summary-branches
-Spécifie le nombre de branches à afficher dans la vue de résumé du dépôt.
-
-La valeur par défaut est @samp{10}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{cgit-configuration}} integer summary-log
-Spécifie le nombre d'élément du journal à afficher dans la vue résumé du
-dépôt.
-
-La valeur par défaut est @samp{10}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{cgit-configuration}} integer summary-tags
-Spécifie le nombre de tags à afficher dans la vue résumé du dépôt.
-
-La valeur par défaut est @samp{10}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{cgit-configuration}} string strict-export
-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.
-
-La valeur par défaut est @samp{""}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{cgit-configuration}} string virtual-root
-URL qui, si elle est spécifiée, sera utilisée comme racine pour tous les
-liens cgit.
-
-La valeur par défaut est @samp{"/"}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{cgit-configuration}} repository-cgit-configuration-list repositories
-Une liste d'enregistrements @dfn{cgit-repo} à utiliser avec config.
-
-La valeur par défaut est @samp{()}.
-
-Les champs de @code{repository-cgit-configuration} disponibles sont :
-
-@deftypevr {paramètre de @code{repository-cgit-configuration}} repo-list snapshots
-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.
-
-La valeur par défaut est @samp{()}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{repository-cgit-configuration}} repo-file-object source-filter
-Modifie le @code{source-filter} par défaut.
-
-La valeur par défaut est @samp{""}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{repository-cgit-configuration}} repo-string url
-URL relative utilisée pour accéder au dépôt.
-
-La valeur par défaut est @samp{""}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{repository-cgit-configuration}} repo-file-object about-filter
-Modifie le paramètre @code{about-filter} par défaut.
-
-La valeur par défaut est @samp{""}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{repository-cgit-configuration}} repo-string branch-sort
-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.
-
-La valeur par défaut est @samp{""}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{repository-cgit-configuration}} repo-list clone-url
-Un liste d'URL qui peuvent être utilisées pour cloner ce dépôt.
-
-La valeur par défaut est @samp{()}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{repository-cgit-configuration}} repo-file-object commit-filter
-Modifie le paramètre @code{commit-filter} par défaut.
-
-La valeur par défaut est @samp{""}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{repository-cgit-configuration}} repo-string commit-sort
-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}.
-
-La valeur par défaut est @samp{""}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{repository-cgit-configuration}} repo-string defbranch
-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.
-
-La valeur par défaut est @samp{""}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{repository-cgit-configuration}} repo-string desc
-La valeur à afficher comme description du dépôt.
-
-La valeur par défaut est @samp{""}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{repository-cgit-configuration}} repo-string homepage
-La valeur à afficher comme page d'accueil du dépôt.
-
-La valeur par défaut est @samp{""}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{repository-cgit-configuration}} repo-file-object email-filter
-Modifie le paramètre @code{email-filter} par défaut.
-
-La valeur par défaut est @samp{""}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{repository-cgit-configuration}} maybe-repo-boolean enable-commit-graph?
-Un drapeau qui peut être utilisé pour désactiver le paramètre
-@code{enable-commit-graph?} global.
-
-La valeur par défaut est @samp{disabled}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{repository-cgit-configuration}} maybe-repo-boolean enable-log-filecount?
-Un drapeau qui peut être utilisé pour désactiver le paramètre
-@code{enable-log-filecount?} global.
-
-La valeur par défaut est @samp{disabled}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{repository-cgit-configuration}} maybe-repo-boolean enable-log-linecount?
-Un drapeau qui peut être utilisé pour désactiver le paramètre
-@code{enable-log-linecount?} global.
-
-La valeur par défaut est @samp{disabled}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{repository-cgit-configuration}} maybe-repo-boolean enable-remote-branches?
-Drapeau qui, s'il vaut @samp{#t}, fera afficher les branches distantes dans
-les vues du résumé et des références.
-
-La valeur par défaut est @samp{disabled}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{repository-cgit-configuration}} maybe-repo-boolean enable-subject-links?
-Un drapeau qui peut être utilisé pour modifier le paramètre
-@code{enable-subject-links?} global.
-
-La valeur par défaut est @samp{disabled}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{repository-cgit-configuration}} maybe-repo-boolean enable-html-serving?
-Un drapeau qui peut être utilisé pour modifier le paramètre
-@code{enable-html-serving?} global.
-
-La valeur par défaut est @samp{disabled}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{repository-cgit-configuration}} repo-boolean hide?
-Drapeau qui, s'il vaut @code{#t}, cache le dépôt de l'index des dépôts.
-
-La valeur par défaut est @samp{#f}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{repository-cgit-configuration}} repo-boolean ignore?
-Drapeau qui, s'il vaut @code{#t},  ignore le dépôt.
-
-La valeur par défaut est @samp{#f}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{repository-cgit-configuration}} repo-file-object logo
-URL qui spécifie la source d'une image qui sera utilisée comme logo sur les
-pages de ce dépôt.
-
-La valeur par défaut est @samp{""}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{repository-cgit-configuration}} repo-string logo-link
-URL chargée lors du clic sur l'image du logo de cgit.
-
-La valeur par défaut est @samp{""}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{repository-cgit-configuration}} repo-file-object owner-filter
-Modifie le paramètre @code{owner-filter} par défaut.
-
-La valeur par défaut est @samp{""}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{repository-cgit-configuration}} repo-string module-link
-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.
-
-La valeur par défaut est @samp{""}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{repository-cgit-configuration}} module-link-path module-link-path
-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.
-
-La valeur par défaut est @samp{()}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{repository-cgit-configuration}} repo-string max-stats
-Modifie la période de statistique maximale par défaut.
-
-La valeur par défaut est @samp{""}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{repository-cgit-configuration}} repo-string name
-La valeur à afficher comme nom de dépôt.
-
-La valeur par défaut est @samp{""}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{repository-cgit-configuration}} repo-string owner
-Une valeur utilisée pour identifier le propriétaire du dépôt.
-
-La valeur par défaut est @samp{""}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{repository-cgit-configuration}} repo-string path
-Un chemin absolu vers le répertoire du dépôt.
-
-La valeur par défaut est @samp{""}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{repository-cgit-configuration}} repo-string readme
-Un chemin (relatif au dépôt) qui spécifie un fichier à inclure directement
-comme page « À propos » pour ce dépôt.
-
-La valeur par défaut est @samp{""}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{repository-cgit-configuration}} repo-string section
-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.
-
-La valeur par défaut est @samp{""}.
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{repository-cgit-configuration}} repo-list extra-options
-Options supplémentaires ajoutées à la fin du fichier cgitrc.
-
-La valeur par défaut est @samp{()}.
-
-@end deftypevr
-
-@end deftypevr
-
-@deftypevr {paramètre de @code{cgit-configuration}} list extra-options
-Options supplémentaires ajoutées à la fin du fichier cgitrc.
-
-La valeur par défaut est @samp{()}.
-
-@end deftypevr
-
-
-@c %end of fragment
-
-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.
-
-Les champs de @code{opaque-cgit-configuration} disponibles sont :
-
-@deftypevr {paramètre de @code{opaque-cgit-configuration}} package cgit
-Le paquet cgit.
-@end deftypevr
-
-@deftypevr {paramètre de @code{opaque-cgit-configuration}} string string
-Le contenu de @code{cgitrc}, en tant que chaîne de caractère.
-@end deftypevr
-
-Par exemple, si votre @code{cgitrc} est juste la chaîne vide, vous pouvez
-instancier un service cgit ainsi :
-
-@example
-(service cgit-service-type
-         (opaque-cgit-configuration
-          (cgitrc "")))
-@end example
-
-@subsubheading Service Gitolite
-
-@cindex service Gitolite
-@cindex Git, hébergement
-@uref{http://gitolite.com/gitolite/, Gitolite} est un outil pour héberger
-des dépôts Git sur un serveur central.
-
-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.
-
-L'exemple suivant configure Gitolite en utilisant l'utilisateur @code{git}
-par défaut et la clef SSH fournie.
-
-@example
-(service gitolite-service-type
-         (gitolite-configuration
-           (admin-pubkey (plain-file
-                           "yourname.pub"
-                           "ssh-rsa AAAA... guix@@example.com"))))
-@end example
-
-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 :
-
-@example
-git clone git@@example.com:gitolite-admin
-@end example
-
-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 ».
-
-@deftp {Type de données} gitolite-configuration
-Type de données représentant la configuration de
-@code{gitolite-service-type}.
-
-@table @asis
-@item @code{package} (par défaut : @var{gitolite})
-Le paquet Gitolite à utiliser.
-
-@item @code{user} (par défaut : @var{git})
-Utilisateur pour utiliser Gitolite.  Cela sera l'utilisateur à utiliser pour
-accéder à Gitolite par SSH.
-
-@item @code{group} (par défaut : @var{git})
-Groupe à utiliser pour Gitolite.
-
-@item @code{home-directory} (par défaut : @var{"/var/lib/gitolite"})
-Répertoire dans lequel stocker la configuration et les dépôts de Gitolite.
-
-@item @code{rc-file} (par défaut : @var{(gitolite-rc-file)})
-Un objet « simili-fichier » (@pxref{G-Expressions, file-like objects})
-représentant la configuration de Gitolite.
-
-@item @code{admin-pubkey} (par défaut : @var{#f})
-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.
-
-Pour spécifier la clef SSH comme chaîne de caractère, utilisez la fonction
-@code{plain-file}.
-
-@example
-(plain-file "yourname.pub" "ssh-rsa AAAA... guix@@example.com")
-@end example
-
-@end table
-@end deftp
-
-@deftp {Type de données} gitolite-rc-file
-Type de données représentant le fichier RC de Gitolite.
-
-@table @asis
-@item @code{umask} (par défaut : @code{#o0077})
-Cela contrôle les permissions que Gitolite propose sur les dépôts et leur
-contenu.
-
-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.
-
-@item @code{git-config-keys} (par défaut : @code{""})
-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.
-
-@item @code{roles} (par défaut : @code{'(("READERS" . 1) ("WRITERS" . ))})
-Indique les noms des rôles qui peuvent être utilisés par les utilisateurs
-avec la commande perms.
-
-@item @code{enable} (par défaut : @code{'("help" "desc" "info" "perms" "writable" "ssh-authkeys" "git-config" "daemon" "gitweb")})
-Ce paramètre contrôle les commandes et les fonctionnalités à activer dans
-Gitolite.
-
-@end table
-@end deftp
-
-
-@node Services de jeu
-@subsection Services de jeu
-
-@subsubheading Le service de la Bataille pour Wesnoth
-@cindex wesnothd
-@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).
-
-@defvar {Variable Scheme} wesnothd-service-type
-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 :
-
-@example
-(service wesnothd-service-type)
-@end example
-@end defvar
-
-@deftp {Type de données} wesnothd-configuration
-Type de donées représentant la configuration de @command{wesnothd}.
-
-@table @asis
-@item @code{package} (par défaut : @code{wesnoth-server})
-Le paquet de serveur de wesnoth à utiliser.
-
-@item @code{port} (par défaut : @code{15000})
-Le pour sur lequel lier le serveur.
-@end table
-@end deftp
-
-@node Services divers
-@subsection Services divers
-
-@cindex empreinte digitale
-@subsubheading Service d'empreintes digitales
-
-Le module @code{(gnu services fingerprint)} fournit un service DBus pour
-lire et identifier les empreintes digitales via un lecteur d'empreinte.
-
-@defvr {Variable Scheme} fprintd-service-type
-Le type de service pour @command{fprintd}, qui fournit des capacités de
-lecture d'empreinte.
-
-@example
-(service fprintd-service-type)
-@end example
-@end defvr
-
-@cindex sysctl
-@subsubheading Service de contrôle du système
-
-Le module @code{(gnu services sysctl)} fournit un service pour configurer
-les paramètres du noyau au démarrage.
-
-@defvr {Variable Scheme} sysctl-service-type
-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 :
-
-@example
-(service sysctl-service-type
-         (sysctl-configuration
-           (settings '(("net.ipv4.ip_forward" . "1")))))
-@end example
-@end defvr
-
-@deftp {Type de données} sysctl-configuration
-Le type de données représentant la configuration de @command{sysctl}.
-
-@table @asis
-@item @code{sysctl} (par défaut : @code{(file-append procps "/sbin/sysctl"})
-L'exécutable @command{sysctl} à utiliser.
-
-@item @code{settings} (par défaut : @code{'()})
-Une liste d'association spécifiant les paramètres du noyau et leur valeur.
-@end table
-@end deftp
-
-@cindex pcscd
-@subsubheading Service du démon PC/SC Smart Card
-
-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.
-
-@defvr {Variable Scheme} pcscd-service-type
-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 :
-
-@example
-(service pcscd-service-type)
-@end example
-@end defvr
-
-@deftp {Type de données} pcscd-configuration
-Type de données représentant la configuration de @command{pcscd}.
-
-@table @asis
-@item @code{pcsc-lite} (par défaut : @code{pcsc-lite})
-Le paquet pcsc-lite qui fournit pcscd.
-@item @code{usb-drivers} (par défaut : @code{(list ccid)})
-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.
-@end table
-@end deftp
-
-@cindex lirc
-@subsubheading Service Lirc
-
-Le module @code{(gnu services lirc)} fournit le service suivant.
-
-@deffn {Procédure Scheme} lirc-service [#:lirc lirc] @
-       [#:device #f] [#:driver #f] [#:config-file #f] @
-[#:extra-options '()]
-Renvoie un service qui lance @url{http://www.lirc.org,LIRC}, un démon qui
-décode les signaux infrarouges des télécommandes.
-
-É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.
-
-Enfin, @var{extra-options} est une liste d'options de la ligne de commande
-supplémentaires à passer à @command{lircd}.
-@end deffn
-
-@cindex spice
-@subsubheading Service Spice
-
-Le module @code{(gnu services spice)} fournit le service suivant.
-
-@deffn {Procédure Scheme} spice-vdagent-service [#:spice-vdagent]
-Renvoie un service qui lance @url{http://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.
-@end deffn
-
-@subsection Services de dictionnaires
-@cindex dictionnaire
-Le module @code{(gnu services dict)} fournit le service suivant :
-
-@deffn {Procédure Scheme} dicod-service [#:config (dicod-configuration)]
-Renvoie un service qui lance le démon @command{dicod}, une implémentation du
-serveur DICT (@pxref{Dicod,,, dico, GNU Dico Manual}).
-
-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.
-
-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}).
-@end deffn
-
-@deftp {Type de données} dicod-configuration
-Type de données représentant la configuration de dicod.
-
-@table @asis
-@item @code{dico} (par défaut : @var{dico})
-Objet de paquet du serveur de dictionnaire GNU Dico.
-
-@item @code{interfaces} (par défaut : @var{'("localhost")})
-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}).
-
-@item @code{handlers} (par défaut : @var{'()})
-Liste des objets @code{<dicod-handler>} qui définissent des gestionnaires
-(des instances de modules).
-
-@item @code{databases} (par défaut : @var{(list %dicod-database:gcide)})
-Liste d'objets @code{<dicod-database>} qui définissent des dictionnaires à
-servir.
-@end table
-@end deftp
-
-@deftp {Type de données} dicod-handler
-Type de données représentant un gestionnaire de dictionnaire (instance de
-module).
-
-@table @asis
-@item @code{name}
-Nom du gestionnaire (instance de module).
-
-@item @code{module} (par défaut : @var{#f})
-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}).
-
-@item @code{options}
-Liste de chaînes ou de gexps représentant les arguments pour le gestionnaire
-de module.
-@end table
-@end deftp
-
-@deftp {Type de données} dicod-database
-Type de données représentant une base de données de dictionnaire.
-
-@table @asis
-@item @code{name}
-Nom de la base de données, qui sera utilisée dans les commande DICT.
-
-@item @code{handler}
-Nom du gestionnaire dicod (instance de module) utilisé par cette base de
-données (@pxref{Handlers,,, dico, GNU Dico Manual}).
-
-@item @code{complex?} (par défaut : @var{#f})
-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.
-
-@item @code{options}
-Liste de chaînes ou de gexps représentant les arguments pour la base de
-données (@pxref{Databases,,, dico, GNU Dico Manual}).
-@end table
-@end deftp
-
-@defvr {Variable Scheme} %dicod-database:gcide
-Un objet @code{<dicod-database>} servant le dictionnaire international
-collaboratif en anglais via le paquet @code{gcide}.
-@end defvr
-
-Voici un exemple de configuration de @code{dicod-service}.
-
-@example
-(dicod-service #:config
-  (dicod-configuration
-   (handlers (list (dicod-handler
-                    (name "wordnet")
-                    (module "dictorg")
-                    (options
-                     (list #~(string-append "dbdir=" #$wordnet))))))
-   (databases (list (dicod-database
-                     (name "wordnet")
-                     (complex? #t)
-                     (handler "wordnet")
-                     (options '("database=wn")))
-                    %dicod-database:gcide))))
-@end example
-
-@cindex Docker
-@subsubheading Docker Service
-
-The @code{(gnu services docker)} module provides the following service.
-
-@defvr {Scheme Variable} docker-service-type
-
-This is the type of the service that runs
-@url{http://www.docker.com,Docker}, a daemon that can execute application
-bundles (sometimes referred to as ``containers'') in isolated environments.
-
-@end defvr
-
-@deftp {Data Type} docker-configuration
-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.
-
-@item @code{containerd} (default: @var{containerd})
-The Containerd package to use.
-
-@end table
-@end deftp
-
-@node Programmes setuid
-@section Programmes setuid
-
-@cindex programmes setuid
-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).
-
-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{Le dépôt}).  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.
-
-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{Utiliser le système de configuration}).  Par exemple,
-le programme @command{passwd}, qui fait partie du paquet Shadow, peut être
-désigné par cette G-expression (@pxref{G-Expressions}) :
-
-@example
-#~(string-append #$shadow "/bin/passwd")
-@end example
-
-Un ensemble de programmes par défaut est défini par la variable
-@code{%setuid-programs} du module @code{(gnu system)}.
-
-@defvr {Variable Scheme} %setuid-programs
-Une liste de G-expressions qui dénotent les programmes communément
-setuid-root.
-
-La liste inclus des commandes comme @command{passwd}, @command{ping},
-@command{su} et @command{sudo}.
-@end defvr
-
-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.
-
-@node Certificats X.509
-@section Certificats X.509
-
-@cindex HTTPS, certificats
-@cindex certificats X.509
-@cindex TLS
-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.
-
-Les navigateurs web comme GNU@tie{}IceCat incluent leur propre liste de
-certificats, pour qu'ils puissent vérifier les signatures des CA
-directement.
-
-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.
-
-@cindex @code{nss-certs}
-In Guix, this is done by adding a package that provides certificates to the
-@code{packages} field of the @code{operating-system} declaration
-(@pxref{Référence de système d'exploitation}).  Guix includes one such package,
-@code{nss-certs}, which is a set of CA certificates provided as part of
-Mozilla's Network Security Services.
-
-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.
-
-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 :
-
-@example
-$ guix package -i nss-certs
-$ export SSL_CERT_DIR="$HOME/.guix-profile/etc/ssl/certs"
-$ export SSL_CERT_FILE="$HOME/.guix-profile/etc/ssl/certs/ca-certificates.crt"
-$ export GIT_SSL_CAINFO="$SSL_CERT_FILE"
-@end example
-
-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 :
-
-@example
-$ guix package -i nss-certs
-$ export CURL_CA_BUNDLE="$HOME/.guix-profile/etc/ssl/certs/ca-certificates.crt"
-@end example
-
-Pour d'autres applications vous pourriez avoir besoin de chercher la
-variable d'environnement requise dans leur documentation.
-
-
-@node Name Service Switch
-@section Name Service Switch
-
-@cindex name service switch
-@cindex NSS
-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}).
-
-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{Référence de système d'exploitation, @code{name-service-switch}}).
-
-@cindex nss-mdns
-@cindex .local, résolution de nom d'hôte
-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} :
-
-@example
-(name-service-switch
-   (hosts (list %files    ;first, check /etc/hosts
-
-                ;; Si ce qui précède n'a pas fonctionné, essayer
-                ;; avec « mdns_minimal ».
-                (name-service
-                  (name "mdns_minimal")
-
-                  ;; « mdns_minimal » fait autorité pour
-                  ;; « .local ».  Lorsqu'il renvoie « pas trouvé »,
-                  ;; inutile d'essayer la méthode suivante.
-                  (reaction (lookup-specification
-                             (not-found => return))))
-
-                ;; Puis revenir sur DNS.
-                (name-service
-                  (name "dns"))
-
-                ;; Enfin, essayer avec « mdns complet ».
-                (name-service
-                  (name "mdns")))))
-@end example
-
-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.
-
-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{Services réseau,
-@code{avahi-service-type}}), or @var{%desktop-services}, which includes it
-(@pxref{Services de bureaux}).  Doing this makes @code{nss-mdns} accessible to
-the name service cache daemon (@pxref{Services de base, @code{nscd-service}}).
-
-Pour votre confort, les variables suivantes contiennent des configurations
-NSS typiques.
-
-@defvr {Variable Scheme} %default-nss
-C'est la configuration NSS par défaut, un objet @code{name-service-switch}.
-@end defvr
-
-@defvr {Variable Scheme} %mdns-host-lookup-nss
-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}.
-@end defvr
-
-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}.
-
-@deftp {Type de données} name-service-switch
-
-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.
-
-@table @code
-@item aliases
-@itemx ethers
-@itemx group
-@itemx gshadow
-@itemx hosts
-@itemx initgroups
-@itemx netgroup
-@itemx networks
-@itemx password
-@itemx public-key
-@itemx rpc
-@itemx services
-@itemx shadow
-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).
-@end table
-@end deftp
-
-@deftp {Type de données} name-service
-
-C'est le type de données représentant un service de noms et l'action de
-résolution associée.
-
-@table @code
-@item name
-Une chaîne dénotant le service de nom (@pxref{Services in the NSS
-configuration,,, libc, The GNU C Library Reference Manual}).
-
-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{Services de base, @code{nscd-service}}).
-
-@item reaction
-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 :
-
-@example
-(lookup-specification (unavailable => continue)
-                      (success => return))
-@end example
-@end table
-@end deftp
-
-@node Disque de RAM initial
-@section Disque de RAM initial
-
-@cindex initrd
-@cindex disque de RAM initial
-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.
-
-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 :
-
-@example
-(operating-system
-  ;; @dots{}
-  (initrd-modules (cons "megaraid_sas" %base-initrd-modules)))
-@end example
-
-@defvr {Variable Scheme} %base-initrd-modules
-C'est la liste des modules du noyau inclus dans l'initrd par défaut.
-@end defvr
-
-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.
-
-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 :
-
-@example
-(initrd (lambda (file-systems . rest)
-          ;; Crée un initrd standard mais paramètre le réseau
-          ;; avec les paramètres que QEMU attend par défaut.
-          (apply base-initrd file-systems
-                 #:qemu-networking? #t
-                 rest)))
-@end example
-
-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.
-
-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.
-
-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 :
-
-@table @code
-@item --load=@var{boot}
-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.
-
-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.
-
-@item --root=@var{root}
-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.
-
-@item --system=@var{système}
-S'assure que @file{/run/booted-system} et @file{/run/current-system}
-pointent vers @var{system}.
-
-@item modprobe.blacklist=@var{modules}@dots{}
-@cindex module, black-list
-@cindex black-list, des modules du noyau
-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}.
-
-@item --repl
-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.
-
-@end table
-
-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.
-
-@cindex initrd
-@cindex disque de RAM initial
-@deffn {Procédure Scheme} raw-initrd @var{file-systems} @
-       [#:linux-modules '()] [#:mapped-devices '()] @
-[#:helper-packages '()] [#:qemu-networking? #f] [#:volatile-root? #f]
-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{Périphériques mappés}).  @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.
-
-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.
-
-Lorsque @var{volatile-root?} est vrai, le système de fichier racine est
-inscriptible mais tous les changements seront perdus.
-@end deffn
-
-@deffn {Procédure Scheme} base-initrd @var{file-systems} @
-       [#:mapped-devices '()] [#:qemu-networking? #f] [#:volatile-root? #f] @
-[#:linux-modules '()]
-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}.
-
-@var{qemu-networking?} et @var{volatile-root?} se comportent comme pour
-@code{raw-initrd}.
-
-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.
-@end deffn
-
-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.
-
-@deffn {Procédure Scheme} expression->initrd @var{exp} @
-       [#:guile %guile-static-stripped] [#:name "guile-initrd"]
-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.
-@end deffn
-
-@node Configuration du chargeur d'amorçage
-@section Configuration du chargeur d'amorçage
-
-@cindex bootloader
-@cindex chargeur d'amorçage
-
-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.
-
-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}.
-
-@deftp {Type de données} bootloader-configuration
-Le type d'une déclaration de configuration de chargeur d'amorçage.
-
-@table @asis
-
-@item @code{bootloader}
-@cindex EFI, chargeur d'amorçage
-@cindex UEFI, chargeur d'amorçage
-@cindex BIOS, chargeur d'amorçage
-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.
-
-@vindex grub-efi-bootloader
-@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.
-
-@vindex grub-bootloader
-@code{grub-bootloader} vous permet de démarrer en particulier sur des
-machines Intel en mode BIOS « legacy ».
-
-@cindex ARM, chargeurs d'amorçage
-@cindex AArch64, chargeurs d'amorçage
-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{http://www.denx.de/wiki/U-Boot/, chargeur d'amorçage U-Boot}
-
-@item @code{target}
-C'est une chaîne qui dénote la cible sur laquelle installer le chargeur
-d'amorçage.
-
-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}.
-
-@item @code{menu-entries} (par défaut : @code{()})
-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.
-
-@item @code{default-entry} (par défaut : @code{0})
-L'index de l'entrée du menu de démarrage par défaut.  L'index 0 correspond
-au système actuel.
-
-@item @code{timeout} (par défaut : @code{5})
-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.
-
-@item @code{theme} (par défaut : @var{#f})
-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.
-
-@item @code{terminal-outputs} (par défaut : @code{'gfxterm})
-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}).
-
-@item @code{terminal-inputs} (par défaut : @code{'()})
-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}).
-
-@item @code{serial-unit} (par défaut : @code{#f})
-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}).
-
-@item @code{serial-speed} (par défaut : @code{#f})
-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}).
-@end table
-
-@end deftp
-
-@cindex dual boot
-@cindex menu de démarrage
-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 :
-
-@example
-(menu-entry
-  (label "L'autre distro")
-  (linux "/boot/old/vmlinux-2.6.32")
-  (linux-arguments '("root=/dev/sda2"))
-  (initrd "/boot/old/initrd"))
-@end example
-
-Les détails suivent.
-
-@deftp {Type de données} menu-entry
-Le type d'une entrée dans le menu du chargeur d'amorçage.
-
-@table @asis
-
-@item @code{label}
-L'étiquette à montrer dans le menu — p.@: ex.@: @code{"GNU"}.
-
-@item @code{linux}
-L'image du noyau Linux à démarrer, par exemple :
-
-@example
-(file-append linux-libre "/bzImage")
-@end example
-
-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 :
-
-@example
-"(hd0,msdos1)/boot/vmlinuz"
-@end example
-
-Si le périphérique est spécifié explicitement comme au-dessus, le champ
-@code{device} est complètement ignoré.
-
-@item @code{linux-arguments} (par défaut : @code{()})
-La liste des arguments de la ligne de commande du noyau supplémentaires —
-p.@: ex.@: @code{("console=ttyS0")}.
-
-@item @code{initrd}
-Une G-expression ou une chaîne dénotant le nom de fichier du disque de RAM
-initial à utiliser (@pxref{G-Expressions}).
-@item @code{device} (par défaut : @code{#f})
-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}).
-
-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{Systèmes de fichiers}) 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}.
-
-@end table
-@end deftp
-
-@c FIXME: Write documentation once it's stable.
-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.
-
-@defvr {Variable Scheme} %default-theme
-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}.
-
-Il contient une image de fond sympathique avec les logos de GNU et de Guix.
-@end defvr
-
-
-@node Invoquer guix system
-@section Invoquer @code{guix system}
-
-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 :
-
-@example
-guix system @var{options}@dots{} @var{action} @var{file}
-@end example
-
-@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 :
-
-@table @code
-@item search
-Affiche les définitions des types de services disponibles qui correspondent
-aux expressions régulières données, triées par pertinence.
-
-@example
-$ guix system search console font
-name: console-fonts
-location: gnu/services/base.scm:773:2
-extends: shepherd-root
-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
-+ de tty/police comme ceci :
-+ 
-+      '(("tty1" . "LatGrkCyr-8x16"))
-relevance: 16
-
-name: mingetty
-location: gnu/services/base.scm:1144:2
-extends: shepherd-root
-description: Fournit la connexion en console avec le programme `mingetty'.
-relevance: 4
-
-name: login
-location: gnu/services/base.scm:819:2
-extends: pam
-description: Fournit un service de connexion en console tel que spécifié par sa valeur de configuration, un objet `login-configuration'.
-relevance: 4
-
-@dots{}
-@end example
-
-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}).
-
-@item reconfigure
-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.}.
-
-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}).
-
-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{Invoquer guix package}).
-
-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.
-
-@quotation Remarque
-@c The paragraph below refers to the problem discussed at
-@c <http://lists.gnu.org/archive/html/guix-devel/2014-08/msg00057.html>.
-Il est grandement recommandé de lancer @command{guix pull} une fois avant de
-lancer @command{guix system reconfigure} pour la première fois
-(@pxref{Invoquer guix pull}).  Sans cela, vous verriez une version plus
-ancienne de Guix une fois @command{reconfigure} terminé.
-@end quotation
-
-@item switch-generation
-@cindex générations
-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.
-
-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.
-
-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 :
-
-@example
-guix system switch-generation 7
-@end example
-
-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 :
-
-@example
-guix system switch-generation -- -1
-@end example
-
-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.
-
-Cette action échouera si la génération spécifiée n'existe pas.
-
-@item roll-back
-@cindex revenir en arrière
-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}.
-
-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.
-
-@item delete-generations
-@cindex deleting system generations
-@cindex saving space
-Delete system generations, making them candidates for garbage collection
-(@pxref{Invoquer guix gc}, for information on how to run the ``garbage
-collector'').
-
-This works in the same way as @command{guix package --delete-generations}
-(@pxref{Invoquer guix package, @code{--delete-generations}}).  With no
-arguments, all system generations but the current one are deleted:
-
-@example
-guix system delete-generations
-@end example
-
-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:
-
-@example
-guix system delete-generations 2m
-@end example
-
-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.
-
-@item build
-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.
-
-@item init
-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:
-
-@example
-guix system init my-os-config.scm /mnt
-@end example
-
-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}.
-
-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.
-
-@item vm
-@cindex machine virtuelle
-@cindex VM
-@anchor{guix system vm}
-Build a virtual machine that contains the operating system declared in
-@var{file}, and return a script to run that virtual machine (VM).
-
-@quotation Remarque
-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{Réglages de l'environnement de construction}).
-@end quotation
-
-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:
-
-@example
-$ /gnu/store/@dots{}-run-vm.sh -m 1024 -net user
-@end example
-
-La VM partage sont dépôt avec le système hôte.
-
-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é.
-
-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 :
-
-@example
-guix system vm my-config.scm \
-   --expose=$HOME --share=$HOME/tmp=/exchange
-@end example
-
-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é.
-
-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.
-
-@cindex Images système, création en divers formats
-@cindex Créer des images systèmes sous différents formats
-@item vm-image
-@itemx disk-image
-@itemx docker-image
-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}.
-
-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}.
-
-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.
-
-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 :
-
-@example
-# dd if=$(guix system disk-image my-os.scm) of=/dev/sdc
-@end example
-
-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 :
-
-@example
-image_id="$(docker load < guixsd-docker-image.tar.gz)"
-docker run -e GUIX_NEW_SYSTEM=/var/guix/profiles/system \\
-    --entrypoint /var/guix/profiles/system/profile/bin/guile \\
-    $image_id /var/guix/profiles/system/boot
-@end example
-
-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}.
-
-@item conteneur
-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.
-
-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.
-
-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} :
-
-@example
-guix system container my-config.scm \
-   --expose=$HOME --share=$HOME/tmp=/exchange
-@end example
-
-@quotation Remarque
-Cette option requiert Linux-libre  ou supérieur.
-@end quotation
-
-@end table
-
-@var{options} peut contenir n'importe quelle option commune de construction
-(@pxref{Options de construction communes}).  En plus, @var{options} peut contenir l'une
-de ces options :
-
-@table @option
-@item --expression=@var{expr}
-@itemx -e @var{expr}
-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{Construire l'image d'installation}).
-
-@item --system=@var{système}
-@itemx -s @var{système}
-Essaye de construire pour @var{system} au lieu du type du système hôte.
-Cela fonction comme pour @command{guix build} (@pxref{Invoquer guix build}).
-
-@item --derivation
-@itemx -d
-Renvoie le nom du fichier de dérivation du système d'exploitation donné sans
-rien construire.
-
-@item --file-system-type=@var{type}
-@itemx -t @var{type}
-Pour l'action @code{disk-image}, crée un système de fichier du @var{type}
-donné sur l'image.
-
-Lorsque cette option est omise, @command{guix system} utilise @code{ext4}.
-
-@cindex format ISO-9660
-@cindex format d'image de CD
-@cindex format d'image de DVD
-@code{--file-system-type=iso9660} produit une image ISO-9660, qu'il est
-possible de graver sur un CD ou un DVD.
-
-@item --image-size=@var{size}
-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}).
-
-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}.
-
-@item --root=@var{fichier}
-@itemx -r @var{fichier}
-Fait de @var{fichier} un lien symbolique vers le résultat, et l'enregistre
-en tant que racine du ramasse-miettes.
-
-@item --skip-checks
-Passe les vérifications de sécurité avant l'installation.
-
-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{Systèmes de fichiers}) et que les modules de noyau Linux
-qui peuvent être requis au démarrage sont listés dans @code{initrd-modules}
-(@pxref{Disque de RAM initial}).  Passer cette option saute ces vérifications
-complètement.
-
-@cindex on-error
-@cindex on-error strategy
-@cindex error strategy
-@item --on-error=@var{strategy}
-Applique @var{strategy} lorsqu'une erreur arrive lors de la lecture de
-@var{file}.  @var{strategy} peut être l'une des valeurs suivantes :
-
-@table @code
-@item nothing-special
-Rapporte l'erreur de manière concise et quitte.  C'est la stratégie par
-défaut.
-
-@item backtrace
-Pareil, mais affiche aussi une trace de débogage.
-
-@item debug
-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.
-@end table
-@end table
-
-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:
-
-@table @code
-
-@item list-generations
-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{Invoquer guix package}).
-
-É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 :
-
-@example
-$ guix system list-generations 10d
-@end example
-
-@end table
-
-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 :
-
-@anchor{system-extension-graph}
-@table @code
-
-@item extension-graph
-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{Composition de services}, pour plus d'informations sur l'extension des
-services).
-
-La commande :
-
-@example
-$ guix system extension-graph @var{file} | dot -Tpdf > services.pdf
-@end example
-
-produit un fichier PDF montrant les relations d'extension entre les
-services.
-
-@anchor{system-shepherd-graph}
-@item shepherd-graph
-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{Services Shepherd}, pour plus d'informations et un exemple
-de graphe.
-
-@end table
-
-@node Running Guix in a VM
-@section Running Guix in a Virtual Machine
-
-@cindex machine virtuelle
-To run Guix in a virtual machine (VM), one can either use the pre-built Guix
-VM image distributed at
-@indicateurl{https://alpha.gnu.org/gnu/guix/guixsd-vm-image-@value{VERSION}.@var{system}.xz}
-, or build their own virtual machine image using @command{guix system
-vm-image} (@pxref{Invoquer guix system}).  The returned image is in qcow2
-format, which the @uref{http://qemu.org/, QEMU emulator} can efficiently
-use.
-
-@cindex QEMU
-Si vous construisez votre propre image, vous devez la copier en dehors du
-dépôt (@pxref{Le dépôt}) 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.
-
-@example
-$ qemu-system-x86_64 \
-   -net user -net nic,model=virtio \
-   -enable-kvm -m 256 /tmp/qemu-image
-@end example
-
-Voici la signification de ces options :
-
-@table @code
-@item qemu-system-x86_64
-Cela spécifie la plate-forme matérielle à émuler.  Elle doit correspondre à
-l'hôte.
-
-@item -net user
-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.
-
-@item -net nic,model=virtio
-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}.
-
-@item -enable-kvm
-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.
-
-@item -m 256
-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.
-
-@item /tmp/qemu-image
-Le nom de fichier de l'image qcow2.
-@end table
-
-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}.
-
-@subsection Se connecter par SSH
-
-@cindex SSH
-@cindex serveur SSH
-Pour activer SSH dans une VM vous devez ajouter un serveur SSH comme
-@code{(dropbear-service)} ou @code{(lsh-service)} à votre VM.  Le service
-@code{(lsh-service)} ne peut actuellement pas démarrer sans supervision.  Il
-a besoin que vous tapiez quelques caractères pour initialiser le générateur
-d'aléatoire.  En plus vous devez transférer le port 22, par défaut, à
-l'hôte.  Vous pouvez faire cela avec :
-
-@example
-`guix system vm config.scm` -net user,hostfwd=tcp::10022-:22
-@end example
-
-Pour vous connecter à la VM vous pouvez lancer
-
-@example
-ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -p 10022
-@end example
-
-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.
-
-@subsection Utiliser @command{virt-viewer} avec Spice
-
-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.
-
-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} :
-
-@example
--device virtio-serial-pci,id=virtio-serial0,max_ports=16,bus=pci.0,addr=0x5
--chardev spicevmc,name=vdagent,id=vdagent
--device virtserialport,nr=1,bus=virtio-serial0.0,chardev=vdagent,
-name=com.redhat.spice.0
-@end example
-
-Vous devrez aussi ajouter le @pxref{Services divers, Spice service}.
-
-@node Définir des services
-@section Définir des services
-
-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 ?
-
-@menu
-* Composition de services::  Le modèle de composition des services.
-* Types service et services::  Types et services.
-* Référence de service::   Référence de l'API@.
-* Services Shepherd::        Un type de service particulier.
-@end menu
-
-@node Composition de services
-@subsection Composition de services
-
-@cindex services
-@cindex démons
-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.
-
-@cindex extensions de service
-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{Services réseau,
-@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{Services de bureaux,
-@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{Services de base}).
-
-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 :
-
-@image{images/service-graph,,5in,Graphe d'extension des services typique.}
-
-@cindex service système
-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{Référence de service}, 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.
-
-@cindex types de services
-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.
-
-La section suivante décrit l'interface de programmation des types de
-services et des services.
-
-@node Types service et services
-@subsection Types service et services
-
-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{Invoquer guix-daemon}) :
-
-@example
-(define guix-service-type
-  (service-type
-   (name 'guix)
-   (extensions
-    (list (service-extension shepherd-root-service-type guix-shepherd-service)
-          (service-extension account-service-type guix-accounts)
-          (service-extension activation-service-type guix-activation)))
-   (default-value (guix-configuration))))
-@end example
-
-@noindent
-Il définit trois choses :
-
-@enumerate
-@item
-Un nom, dont le seul but de rendre l'inspection et le débogage plus faciles.
-
-@item
-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.
-
-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.
-
-@item
-Éventuellement, une valeur par défaut pour les instances de ce type.
-@end enumerate
-
-Dans cet exemple, @var{guix-service-type} étend trois services :
-
-@table @var
-@item shepherd-root-service-type
-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{Services Shepherd}).
-
-@item account-service-type
-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{Invoquer guix-daemon}).
-
-@item activation-service-type
-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é.
-@end table
-
-Un service de ce type est instancié de cette manière :
-
-@example
-(service guix-service-type
-         (guix-configuration
-           (build-accounts 5)
-           (use-substitutes? #f)))
-@end example
-
-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 :
-
-@example
-(service guix-service-type)
-@end example
-
-@var{guix-service-type} est très simple car il étend d'autres services mais
-ne peut pas être étendu.
-
-@c @subsubsubsection Extensible Service Types
-
-Le type de service pour un service @emph{extensible} ressemble à ceci :
-
-@example
-(define udev-service-type
-  (service-type (name 'udev)
-                (extensions
-                 (list (service-extension shepherd-root-service-type
-                                          udev-shepherd-service)))
-
-                (compose concatenate)       ; concatène la liste des règles
-                (extend (lambda (config rules)
-                          (match config
-                            (($ <udev-configuration> udev initial-rules)
-                             (udev-configuration
-                              (udev udev)   ; le paquet udev à utiliser
-                              (rules (append initial-rules rules)))))))))
-@end example
-
-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 :
-
-@table @code
-@item compose
-C'est la procédure pour @dfn{composer} la liste des extensions de services
-de ce type.
-
-Les services peuvent étendre le service udev en lui passant des listes de
-règles ; on compose ces extensions simplement en les concaténant.
-
-@item extend
-Cette procédure définie comme la valeur du service est @dfn{étendue} avec la
-composition des extensions.
-
-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à.
-
-@item description
-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{Invoquer guix system}).
-@end table
-
-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.
-
-Toujours ici ? La section suivante fournit une référence de l'interface de
-programmation des services.
-
-@node Référence de service
-@subsection Référence de service
-
-Nous avons vu un résumé des types de services (@pxref{Types service et 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)}.
-
-@deffn {Procédure Scheme} service @var{type} [@var{value}]
-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.
-
-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.
-
-Par exemple ceci :
-
-@example
-(service openssh-service-type)
-@end example
-
-@noindent
-est équivalent à ceci :
-
-@example
-(service openssh-service-type
-         (openssh-configuration))
-@end example
-
-Dans les deux cas le résultat est une instance de
-@code{openssh-service-type} avec la configuration par défaut.
-@end deffn
-
-@deffn {Procédure Scheme} service? @var{obj}
-Renvoie vrai si @var{obj} est un service.
-@end deffn
-
-@deffn {Procédure Scheme} service-kind @var{service}
-Renvoie le type de @var{service} — c.-à-d.@: un objet @code{<service-type>}.
-@end deffn
-
-@deffn {Procédure Scheme} service-value @var{service}
-Renvoie la valeur associée à @var{service}.  Elle représente ses paramètres.
-@end deffn
-
-Voici un exemple de la manière dont un service est créé et manipulé :
-
-@example
-(define s
-  (service nginx-service-type
-           (nginx-configuration
-            (nginx nginx)
-            (log-directory log-directory)
-            (run-directory run-directory)
-            (file config-file))))
-
-(service? s)
-@result{} #t
-
-(eq? (service-kind s) nginx-service-type)
-@result{} #t
-@end example
-
-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{Services de base, @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.
-
-@deffn {Syntaxe Scheme} modify-services @var{services} @
-  (@var{type} @var{variable} => @var{body}) @dots{}
-
-Modifie les services listés dans @var{services} en fonction des clauses
-données.  Chaque clause à la forme :
-
-@example
-(@var{type} @var{variable} => @var{body})
-@end example
-
-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}.
-
-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*}.
-
-@xref{Utiliser le système de configuration} pour des exemples d'utilisation.
-
-@end deffn
-
-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}.
-
-@deftp {Type de données} service-type
-@cindex type de service
-C'est la représentation d'un @dfn{type de service} (@pxref{Types service et services}).
-
-@table @asis
-@item @code{name}
-C'est un symbole, utilisé seulement pour simplifier l'inspection et le
-débogage.
-
-@item @code{extensions}
-Une liste non-vide d'objets @code{<service-extension>} (voir plus bas).
-
-@item @code{compose} (par défaut : @code{#f})
-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.
-
-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.
-
-@item @code{extend} (par défaut : @code{#f})
-Si la valeur est @code{#f}, les services de ce type ne peuvent pas être
-étendus.
-
-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.
-@end table
-
-@xref{Types service et services}, pour des exemples.
-@end deftp
-
-@deffn {Procédure Scheme} service-extension @var{target-type} @
-                              @var{compute}
-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.
-@end deffn
-
-@deffn {Procédure Scheme} service-extension? @var{obj}
-Renvoie vrai si @var{obj} est une extension de service.
-@end deffn
-
-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.
-
-@deffn {Procédure Scheme} simple-service @var{name} @var{target} @var{value}
-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.
-
-Par exemple, cela étend mcron (@pxref{Exécution de tâches planifiées}) avec une
-tâche supplémentaire :
-
-@example
-(simple-service 'my-mcron-job mcron-service-type
-                #~(job '(next-hour (3)) "guix gc -F 2G"))
-@end example
-@end deffn
-
-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{Invoquer 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.
-
-@deffn {Procédure Scheme} fold-services @var{services} @
-                            [#:target-type @var{system-service-type}]
-Replie @var{services} en propageant leurs extensions jusqu'à la racine de
-type @var{target-type} ; renvoie le service racine ajusté de cette manière.
-@end deffn
-
-Enfin, le module @code{(gnu services)} définie aussi divers types de
-services essentiels, dont certains sont listés ci-dessous.
-
-@defvr {Variable Scheme} system-service-type
-C'est la racine du graphe des services.  Il produit le répertoire du système
-renvoyé par la commande @command{guix system build}.
-@end defvr
-
-@defvr {Variable Scheme} boot-service-type
-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.
-@end defvr
-
-@defvr {Variable Scheme} etc-service-type
-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 :
-
-@example
-(list `("issue" ,(plain-file "issue" "Bienvenue !\n")))
-@end example
-
-Dans cet exemple, l'effet serait d'ajouter un fichier @file{/etc/issue}
-pointant vers le fichier donné.
-@end defvr
-
-@defvr {Variable Scheme} setuid-program-service-type
-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{Programmes setuid}).
-@end defvr
-
-@defvr {Variable Scheme} profile-service-type
-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.
-@end defvr
-
-
-@node Services Shepherd
-@subsection Services Shepherd
-
-@cindex services shepherd
-@cindex PID 1
-@cindex système d'init
-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}).
-
-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{Utiliser le système de configuration}) crée un graphe de service comme
-ceci :
-
-@image{images/shepherd-graph,,5in,Graphe de service typique du shepherd.}
-
-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}}).
-
-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>}.
-
-@deftp {Type de données} shepherd-service
-Le type de données représentant un service géré par le Shepherd.
-
-@table @asis
-@item @code{provision}
-C'est une liste de symboles dénotant ce que le service fournit.
-
-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.
-
-@item @code{requirements} (par défaut : @code{'()})
-Liste de symboles dénotant les services du Shepherd dont celui-ci dépend.
-
-@item @code{respawn?} (par défaut : @code{#t})
-Indique s'il faut redémarrer le service lorsqu'il s'arrête, par exemple si
-le processus sous-jacent meurt.
-
-@item @code{start}
-@itemx @code{stop} (par défaut : @code{#~(const #f)})
-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}).
-
-@item @code{actions} (par défaut : @code{'()})
-@cindex action, des services Shepherd
-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}.
-
-@example
-herd @var{action} @var{service} [@var{arguments}@dots{}]
-@end example
-
-@item @code{documentation}
-Une chaîne de documentation, montrée lorsqu'on lance :
-
-@example
-herd doc @var{service-name}
-@end example
-
-où @var{service-name} est l'un des symboles dans @var{provision}
-(@pxref{Invoking herd,,, shepherd, The GNU Shepherd Manual}).
-
-@item @code{modules} (par défaut : @var{%default-modules})
-C'est la liste des modules qui doivent être dans le contexte lorsque
-@code{start} et @code{stop} sont évalués.
-
-@end table
-@end deftp
-
-@deftp {Type de données} shepherd-action
-C'est le type de données qui définie des actions supplémentaires
-implémentées par un service Shepherd (voir au-dessus).
-
-@table @code
-@item name
-Symbole nommant l'action
-
-@item documentation
-C'est une chaîne de documentation pour l'action.  Elle peut être consultée
-avec :
-
-@example
-herd doc @var{service} action @var{action}
-@end example
-
-@item procedure
-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}).
-@end table
-
-L'exemple suivant définie une action nommée @code{dire-bonjour} qui salue
-amicalement l'utilisateur :
-
-@example
-(shepherd-action
-  (name 'dire-bonjour)
-  (documentation "Dit salut !")
-  (procedure #~(lambda (running . args)
-                 (format #t "Salut, l'ami ! arguments : ~s\n"
-                         args)
-                 #t)))
-@end example
-
-En supposant que cette action est ajoutée dans le service @code{example},
-vous pouvez écrire :
-
-@example
-# herd dire-bonjour example
-Salut, l'ami ! arguments : ()
-# herd dire-bonjour example a b c
-Salut, l'ami ! arguments : ("a" "b" "c")
-@end example
-
-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.
-@end deftp
-
-@defvr {Variable Scheme} shepherd-root-service-type
-Le type de service pour le « service racine » du Shepherd — c.-à-d.@: le
-PID@tie{}1.
-
-C'est le type de service que les extensions ciblent lorqu'elles veulent
-créer un service shepherd (@pxref{Types service et services}, pour un
-exemple).  Chaque extension doit passer une liste de
-@code{<shepherd-service>}.
-@end defvr
-
-@defvr {Variable Scheme} %shepherd-root-service
-Ce service représente le PID@tie{}1.
-@end defvr
-
-
-@node Documentation
-@chapter Documentation
-
-@cindex documentation, recherche
-@cindex chercher de la documentation
-@cindex Info, format de documentation
-@cindex man, pages de manuel
-@cindex pages de manuel
-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}.
-
-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 :
-
-@example
-$ info -k TLS
-"(emacs)Network Security" -- STARTTLS
-"(emacs)Network Security" -- TLS
-"(gnutls)Core TLS API" -- gnutls_certificate_set_verify_flags
-"(gnutls)Core TLS API" -- gnutls_certificate_set_verify_function
-@dots{}
-@end example
-
-@noindent
-La commande suivante recherche le même mot-clef dans les pages de man :
-
-@example
-$ man -k TLS
-SSL (7)              - OpenSSL SSL/TLS library
-certtool (1)         - GnuTLS certificate tool
-@dots {}
-@end example
-
-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.
-
-Une fois que vous avez ces résultats, vous pouvez visualiser la
-documentation appropriée avec, disons :
-
-@example
-$ info "(gnutls)Core TLS API"
-@end example
-
-@noindent
-ou :
-
-@example
-$ man certtool
-@end example
-
-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.
-
-@node Installer les fichiers de débogage
-@chapter Installer les fichiers de débogage
-
-@cindex fichiers de débogage
-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.
-
-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}).
-
-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}).
-
-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{Des paquets avec plusieurs résultats}).  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.
-
-@example
-guix package -i glibc:debug guile:debug
-@end example
-
-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}) :
-
-@example
-(gdb) set debug-file-directory ~/.guix-profile/lib/debug
-@end example
-
-À partir de maintenant, GDB récupérera les informations de débogage dans les
-fichiers @code{.debug} de @file{~/.guix-profile/lib/debug}.
-
-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{Invoquer 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}).
-
-@c XXX: keep me up-to-date
-Le mécanisme de la sortie @code{debug} dans Guix est implémenté par le
-@code{gnu-build-system} (@pxref{Systèmes de construction}).  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}).
-
-
-@node Mises à jour de sécurité
-@chapter Mises à jour de sécurité
-
-@cindex mises à jour de sécurité
-@cindex vulnérabilités
-Parfois, des vulnérabilités importantes sont découvertes dans les paquets
-logiciels et doivent être corrigées.  Les développeurs 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 les développeurs à trouver les versions
-vulnérables des paquets logiciels dans la distribution.
-
-@smallexample
-$ guix lint -c cve
-gnu/packages/base.scm:652:2: glibc@@2.21: probablement vulnérable à CVE-2015-1781, CVE-2015-7547
-gnu/packages/gcc.scm:334:2: gcc@@4.9.3: probablement vulnérable à CVE-2015-5276
-gnu/packages/image.scm:312:2: openjpeg@@2.1.0: probablement vulnérable à CVE-2016-1923, CVE-2016-1924
-@dots{}
-@end smallexample
-
-@xref{Invoquer guix lint}, pour plus d'informations.
-
-@quotation Remarque
-À la version @value{VERSION}, la fonctionnalité ci-dessous est considérée
-comme « bêta ».
-@end quotation
-
-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é.
-
-@cindex greffes
-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.
-
-@cindex remplacement de paquet, pour les greffes
-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{Définition des paquets}).  Ensuite, la définition originale du paquet est
-augmentée avec un champ @code{replacement} qui pointe vers le paquet
-contenant le correctif de sécurité :
-
-@example
-(define bash
-  (package
-    (name "bash")
-    ;; @dots{}
-    (replacement bash-fixed)))
-@end example
-
-À partir de maintenant, tout paquet dépendant directement ou indirectement
-de Bash — rapporté par @command{guix gc --requisites} (@pxref{Invoquer 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.
-
-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.
-
-L'option en ligne de commande @option{--no-grafts} vous permet d'éviter les
-greffes (@pxref{Options de construction communes, @option{--no-grafts}}).  Donc la
-commande :
-
-@example
-guix build bash --no-grafts
-@end example
-
-@noindent
-renvoie le nom de fichier dans les dépôt du Bash original, alors que :
-
-@example
-guix build bash
-@end example
-
-@noindent
-renvoie le nom de fichier du Bash « corrigé » de remplacement.  Cela vous
-permet de distinguer les deux variantes de Bash.
-
-Pour vérifier à quel Bash votre profil se réfère, vous pouvez lancer
-(@pxref{Invoquer guix gc}) :
-
-@example
-guix gc -R `readlink -f ~/.guix-profile` | grep bash
-@end example
-
-@noindent
-@dots{} and compare the store file names that you get with those above.
-Likewise for a complete Guix system generation:
-
-@example
-guix gc -R `guix system build my-config.scm` | grep bash
-@end example
-
-Enfin, pour vérifier quelles processus Bash lancés vous utilisez, vous
-pouvez utiliser la commande @command{lsof} :
-
-@example
-lsof | grep /gnu/store/.*bash
-@end example
-
-
-@node Bootstrapping
-@chapter Bootstrapping
-
-@c Adapted from the ELS 2013 paper.
-
-@cindex bootstrap
-
-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 ».
-
-@cindex binaires de bootstrap
-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{Dérivations}).  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}.
-
-Ces binaires de bootstrap sont pris comme des acquis, bien qu'on puisse les
-recréer (ça arrive plus tard).
-
-@unnumberedsec Se préparer à utiliser les binaires de bootstrap
-
-@c As of Emacs 24.3, Info-mode displays the image, but since it's a
-@c large image, it's hard to scroll.  Oh well.
-@image{images/bootstrap-graph,6in,,Graphe de dépendance des premières
-dérivations de bootstrap}
-
-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{Invoquer guix graph}),  de cette manière :
-
-@example
-guix graph -t derivation \
-  -e '(@@@@ (gnu packages bootstrap) %bootstrap-gcc)' \
-  | dot -Tps > t.ps
-@end example
-
-À 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{Le dépôt}).
-
-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.
-
-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{Dérivations}).
-
-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.
-
-
-@unnumberedsec Construire les outils de construction
-
-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)}.
-
-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 :
-
-@example
-guix graph -t bag \
-  -e '(@@@@ (gnu packages commencement)
-          glibc-final-with-bootstrap-bash)' | dot -Tps > t.ps
-@end example
-
-@noindent
-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 :
-
-@image{images/bootstrap-packages,6in,,Graphe de dépendance des premiers
-paquets}
-
-@c See <http://lists.gnu.org/archive/html/gnu-system-discuss/2012-10/msg00000.html>.
-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.
-
-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.
-
-À 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.
-
-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{Systèmes de construction, @code{gnu-build-system}}).
-
-
-@unnumberedsec Construire les binaires de bootstrap
-
-@cindex binaires de bootstrap
-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.
-
-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) :
-
-@example
-guix build bootstrap-tarballs
-@end example
-
-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.
-
-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.
-
-@unnumberedsec Réduire l'ensemble des binaires de bootstrap
-
-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}.
-
-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.
-
-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 !
-
-
-@node Porter
-@chapter Porter vers une nouvelle plateforme
-
-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.
-
-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 :
-
-@example
-guix build --target=armv5tel-linux-gnueabi bootstrap-tarballs
-@end example
-
-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)}.
-
-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.
-
-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.
-
-@c *********************************************************************
-@include contributing.fr.texi
-
-@c *********************************************************************
-@node Remerciements
-@chapter Remerciements
-
-Guix se base sur le @uref{http://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.
-
-Les distributions logicielles basées sur Nix, Nixpkgs et NixOS, ont aussi
-été une inspiration pour Guix.
-
-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 !
-
-
-@c *********************************************************************
-@node La licence GNU Free Documentation
-@appendix La licence GNU Free Documentation
-@cindex license, GNU Free Documentation License
-@include fdl-1.3.texi
-
-@c *********************************************************************
-@node Index des concepts
-@unnumbered Index des concepts
-@printindex cp
-
-@node Index de programmation
-@unnumbered Index de programmation
-@syncodeindex tp fn
-@syncodeindex vr fn
-@printindex fn
-
-@bye
-
-@c Local Variables:
-@c ispell-local-dictionary: "american";
-@c End:
diff --git a/doc/guix.texi b/doc/guix.texi
index 3afdccac75..9553a373e8 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -13,8 +13,12 @@
 @set OPENPGP-SIGNING-KEY-ID 3CE464558A84FDC69DB40CFB090B11993D9AEBB5
 @set KEY-SERVER pool.sks-keyservers.net
 
+@c Base URL for downloads.
+@set BASE-URL https://ftp.gnu.org/gnu/guix
+
 @c The official substitute server used by default.
 @set SUBSTITUTE-SERVER ci.guix.info
+@set SUBSTITUTE-URL https://@value{SUBSTITUTE-SERVER}
 
 @copying
 Copyright @copyright{} 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès@*
@@ -108,10 +112,11 @@ package management tool written for the GNU system.
 @c TRANSLATORS: You can replace the following paragraph with information on
 @c how to join your own translation team and how to report issues with the
 @c translation.
-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
+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}.
 
@@ -251,6 +256,7 @@ System Configuration
 * File Systems::                Configuring file system mounts.
 * Mapped Devices::              Block device extra processing.
 * User Accounts::               Specifying user accounts.
+* Keyboard Layout::             How the system interprets key strokes.
 * Locales::                     Language and cultural convention settings.
 * Services::                    Specifying system services.
 * Setuid Programs::             Programs running with root privileges.
@@ -513,13 +519,22 @@ 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.
 
+@c Note duplicated from the ``Installation'' node.
+@quotation Note
+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.
+@end quotation
+
 Installing goes along these lines:
 
 @enumerate
 @item
 @cindex downloading Guix binary
 Download the binary tarball from
-@indicateurl{https://alpha.gnu.org/gnu/guix/guix-binary-@value{VERSION}.@var{system}.tar.xz},
+@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.
 
@@ -528,7 +543,7 @@ Make sure to download the associated @file{.sig} file and to verify the
 authenticity of the tarball against it, along these lines:
 
 @example
-$ wget https://alpha.gnu.org/gnu/guix/guix-binary-@value{VERSION}.@var{system}.tar.xz.sig
+$ wget @value{BASE-URL}/guix-binary-@value{VERSION}.@var{system}.tar.xz.sig
 $ gpg --verify guix-binary-@value{VERSION}.@var{system}.tar.xz.sig
 @end example
 
@@ -675,15 +690,9 @@ You can confirm that Guix is working by installing a sample package into
 the root profile:
 
 @example
-# guix package -i hello
+# guix install hello
 @end example
 
-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}.
-
 The binary installation tarball can be (re)produced and verified simply
 by running the following command in the Guix source tree:
 
@@ -1569,7 +1578,7 @@ available with Guix and then define the @code{GUIX_LOCPATH} environment
 variable:
 
 @example
-$ guix package -i glibc-locales
+$ guix install glibc-locales
 $ export GUIX_LOCPATH=$HOME/.guix-profile/lib/locale
 @end example
 
@@ -1669,7 +1678,7 @@ Multiple Outputs}).  For instance, the following command installs fonts
 for Chinese languages:
 
 @example
-guix package -i font-adobe-source-han-sans:cn
+guix install font-adobe-source-han-sans:cn
 @end example
 
 @cindex @code{xterm}
@@ -1794,26 +1803,15 @@ available.
 @node Limitations
 @section Limitations
 
-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}).
+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.
 
-Before you proceed with the installation, be aware of the following
-noteworthy limitations applicable to version @value{VERSION}:
+Nevertheless, before you proceed with the installation, be aware of the
+following noteworthy limitations applicable to version @value{VERSION}:
 
 @itemize
 @item
-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.)
-
-@item
 Support for the Logical Volume Manager (LVM) is missing.
 
 @item
@@ -1821,18 +1819,14 @@ More and more system services are provided (@pxref{Services}), but some
 may be missing.
 
 @item
-More than 8,500 packages are available, but you might
-occasionally find that a useful package is missing.
-
-@item
 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.
+as well as a number of X11 window managers.  However, KDE is currently
+missing.
 @end itemize
 
-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.
+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.
 
 
 @node Hardware Considerations
@@ -1855,7 +1849,7 @@ devices.  WiFi devices known to work include those using Atheros chips
 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}
+out-of-the-box on Guix System, as part of @code{%base-firmware}
 (@pxref{operating-system Reference, @code{firmware}}).
 
 @cindex RYF, Respects Your Freedom
@@ -1875,7 +1869,7 @@ about their support in GNU/Linux.
 
 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},
+@indicateurl{@value{BASE-URL}/guix-system-install-@value{VERSION}.@var{system}.iso.xz},
 where @var{system} is one of:
 
 @table @code
@@ -1891,7 +1885,7 @@ Make sure to download the associated @file{.sig} file and to verify the
 authenticity of the image against it, along these lines:
 
 @example
-$ wget https://alpha.gnu.org/gnu/guix/guix-system-install-@value{VERSION}.@var{system}.iso.xz.sig
+$ wget @value{BASE-URL}/guix-system-install-@value{VERSION}.@var{system}.iso.xz.sig
 $ gpg --verify guix-system-install-@value{VERSION}.@var{system}.iso.xz.sig
 @end example
 
@@ -2499,7 +2493,7 @@ emacs-guix, The Emacs-Guix Reference Manual}), after installing
 with it):
 
 @example
-guix package -i emacs-guix
+guix install emacs-guix
 @end example
 
 @menu
@@ -2617,6 +2611,7 @@ is:
 @example
 guix package @var{options}
 @end example
+
 @cindex transactions
 Primarily, @var{options} specifies the operations to be performed during
 the transaction.  Upon completion, a new profile is created, but
@@ -2630,6 +2625,24 @@ For example, to remove @code{lua} and install @code{guile} and
 guix package -r lua -i guile guile-cairo
 @end example
 
+@cindex aliases, for @command{guix package}
+For your convenience, we also provide the following aliases:
+
+@itemize
+@item
+@command{guix search} is an alias for @command{guix package -s},
+@item
+@command{guix install} is an alias for @command{guix package -i},
+@item
+@command{guix remove} is an alias for @command{guix package -r},
+@item
+and @command{guix upgrade} is an alias for @command{guix package -u}.
+@end itemize
+
+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.
+
 @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
@@ -2642,7 +2655,7 @@ 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.
 @cindex search paths
-If you are not using the Guix System Distribution, consider adding the
+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:
@@ -2942,12 +2955,13 @@ name: gmp
 @dots{}
 @end example
 
-It is also possible to refine search results using several @code{-s}
-flags.  For example, the following command returns a list of board
-games:
+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):
 
 @example
-$ guix package -s '\<board\>' -s game | recsel -p name
+$ guix search '\<board\>' game | recsel -p name
 name: gnubg
 @dots{}
 @end example
@@ -2962,7 +2976,7 @@ for cryptographic libraries, filters out Haskell, Perl, Python, and Ruby
 libraries, and prints the name and synopsis of the matching packages:
 
 @example
-$ guix package -s crypto -s library | \
+$ guix search crypto library | \
     recsel -e '! (name ~ "^(ghc|perl|python|ruby)")' -p name,synopsis
 @end example
 
@@ -3129,7 +3143,7 @@ could use the information gathered to determine, for instance, whether
 your system has unpatched security vulnerabilities.
 
 Substitutes from the official build farm are enabled by default when
-using the Guix System Distribution (@pxref{GNU Distribution}).  However,
+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
@@ -3319,7 +3333,7 @@ like to discuss this project, join us on @email{guix-devel@@gnu.org}.
 
 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
+@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
@@ -3335,14 +3349,14 @@ separate output, called @code{doc}.  To install the main GLib output,
 which contains everything but the documentation, one would run:
 
 @example
-guix package -i glib
+guix install glib
 @end example
 
 @cindex documentation
 The command to install its documentation is:
 
 @example
-guix package -i glib:doc
+guix install glib:doc
 @end example
 
 Some packages install programs with different ``dependency footprints''.
@@ -3384,7 +3398,7 @@ 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}).
+guix build}).  The @command{guix gc --list-roots} command lists them.
 
 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
@@ -3437,8 +3451,22 @@ as @code{500MiB}, as described above.
 When @var{free} or more is already available in @file{/gnu/store}, do
 nothing and exit immediately.
 
+@item --delete-generations[=@var{duration}]
+@itemx -d [@var{duration}]
+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}.
+
+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:
+
+@example
+guix gc -d 2m -F 10G
+@end example
+
 @item --delete
-@itemx -d
+@itemx -D
 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.
@@ -3450,6 +3478,10 @@ This prints nothing unless the daemon was started with
 @option{--cache-failures} (@pxref{Invoking guix-daemon,
 @option{--cache-failures}}).
 
+@item --list-roots
+List the GC roots owned by the user; when run as root, list @emph{all} the GC
+roots.
+
 @item --clear-failures
 Remove the specified store items from the failed-build cache.
 
@@ -3620,7 +3652,7 @@ Generation 3	Jun 13 2018 23:31:07	(current)
   69 packages upgraded: borg@@1.1.6, cheese@@3.28.0, @dots{}
 @end example
 
-@ref{Invoking guix describe, @command{guix describe}}, for other ways to
+@xref{Invoking guix describe, @command{guix describe}}, for other ways to
 describe the current status of Guix.
 
 This @code{~/.config/guix/current} profile works like any other profile
@@ -3642,8 +3674,9 @@ but it supports the following options:
 @item --url=@var{url}
 @itemx --commit=@var{commit}
 @itemx --branch=@var{branch}
-Download code from the specified @var{url}, at the given @var{commit} (a valid
-Git commit ID represented as a hexadecimal string), or @var{branch}.
+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}.
 
 @cindex @file{channels.scm}, configuration file
 @cindex configuration file for channels
@@ -3658,6 +3691,14 @@ Read the list of channels from @var{file} instead of
 evaluates to a list of channel objects.  @xref{Channels}, for more
 information.
 
+@item --news
+@itemx -N
+Display the list of packages added or upgraded since the previous generation.
+
+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).
+
 @item --list-generations[=@var{pattern}]
 @itemx -l [@var{pattern}]
 List all the generations of @file{~/.config/guix/current} or, if @var{pattern}
@@ -3665,7 +3706,7 @@ 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}).
 
-@ref{Invoking guix describe}, for a way to display information about the
+@xref{Invoking guix describe}, for a way to display information about the
 current generation only.
 
 @item --profile=@var{profile}
@@ -4556,9 +4597,11 @@ 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.  The spawned process runs
-as the current user outside the container, but has root privileges in
-the context of the container.
+@file{/etc/passwd} is configured accordingly.
+
+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.)
 
 @item --network
 @itemx -N
@@ -4586,8 +4629,9 @@ the environment.
 @itemx -u @var{user}
 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/USER}; and no user GECOS data will be copied.  @var{user}
+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.
 
 Additionally, any shared or exposed path (see @code{--share} and
@@ -4963,7 +5007,7 @@ module exports a variable named @code{emacs}, which is bound to a
 
 The @code{(gnu packages @dots{})} module name space is
 automatically scanned for packages by the command-line tools.  For
-instance, when running @code{guix package -i emacs}, all the @code{(gnu
+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.
@@ -5360,10 +5404,6 @@ 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}.
 
-@item @code{self-native-input?} (default: @code{#f})
-This is a Boolean field telling whether the package should use itself as
-a native input when cross-compiling.
-
 @item @code{outputs} (default: @code{'("out")})
 The list of output names of the package.  @xref{Packages with Multiple
 Outputs}, for typical uses of additional outputs.
@@ -5406,6 +5446,27 @@ automatically corrected.
 @end table
 @end deftp
 
+@deffn {Scheme Syntax} this-package
+When used in the @emph{lexical scope} of a package field definition, this
+identifier resolves to the package being defined.
+
+The example below shows how to add a package as a native input of itself when
+cross-compiling:
+
+@example
+(package
+  (name "guile")
+  ;; ...
+
+  ;; When cross-compiled, Guile, for example, depends on
+  ;; a native version of itself.  Add it here.
+  (native-inputs (if (%current-target-system)
+                     `(("self" ,this-package))
+                     '())))
+@end example
+
+It is an error to refer to @code{this-package} outside a package definition.
+@end deffn
 
 @node origin Reference
 @subsection @code{origin} Reference
@@ -5816,6 +5877,11 @@ list of flags passed to the @code{dune} command during the build.
 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}.
+
+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}.
 @end defvr
 
 @defvr {Scheme Variable} go-build-system
@@ -6187,6 +6253,33 @@ is not enabled by default.  It can be enabled with @code{#:glib-or-gtk?}.
 @end table
 @end defvr
 
+@defvr {Scheme Variable} linux-module-build-system
+@var{linux-module-build-system} allows building Linux kernel modules.
+
+@cindex build phases
+This build system is an extension of @var{gnu-build-system}, but with the
+following phases changed:
+
+@table @code
+
+@item configure
+This phase configures the environment so that the Linux kernel's Makefile
+can be used to build the external kernel module.
+
+@item build
+This phase uses the Linux kernel's Makefile in order to build the external
+kernel module.
+
+@item install
+This phase uses the Linux kernel's Makefile in order to install the external
+kernel module.
+@end table
+
+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).
+@end defvr
+
 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,
@@ -7973,7 +8066,9 @@ The following derivations will be built:
 @item --system=@var{system}
 @itemx -s @var{system}
 Attempt to build for @var{system}---e.g., @code{i686-linux}---instead of
-the system type of the build host.
+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.
 
 @quotation Note
 The @code{--system} flag is for @emph{native} compilation and must not
@@ -10016,14 +10111,14 @@ 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:
 
 @example
-$ guix weather --substitute-urls=https://ci.guix.info -c 10
+$ guix weather --substitute-urls=@value{SUBSTITUTE-URL} -c 10
 computing 8,983 package derivations for x86_64-linux...
-looking for 9,343 store items on https://ci.guix.info...
-updating substitutes from 'https://ci.guix.info'... 100.0%
-https://ci.guix.info
+looking for 9,343 store items on @value{SUBSTITUTE-URL}...
+updating substitutes from '@value{SUBSTITUTE-URL}'... 100.0%
+@value{SUBSTITUTE-URL}
   64.7% substitutes available (6,047 out of 9,343)
 @dots{}
-2502 packages are missing from 'https://ci.guix.info' for 'x86_64-linux', among which:
+2502 packages are missing from '@value{SUBSTITUTE-URL}' for 'x86_64-linux', among which:
     58  kcoreaddons@@5.49.0      /gnu/store/@dots{}-kcoreaddons-5.49.0
     46  qgpgme@@1.11.1           /gnu/store/@dots{}-qgpgme-1.11.1
     37  perl-http-cookiejar@@0.008  /gnu/store/@dots{}-perl-http-cookiejar-0.008
@@ -10100,7 +10195,7 @@ ClientCommand: cuirass --cache-directory /var/cache/cuirass @dots{}
 @chapter System Configuration
 
 @cindex system configuration
-The Guix System Distribution supports a consistent whole-system configuration
+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
@@ -10127,6 +10222,7 @@ instance to support new system services.
 * File Systems::                Configuring file system mounts.
 * Mapped Devices::              Block device extra processing.
 * User Accounts::               Specifying user accounts.
+* Keyboard Layout::             How the system interprets key strokes.
 * Locales::                     Language and cultural convention settings.
 * Services::                    Specifying system services.
 * Setuid Programs::             Programs running with root privileges.
@@ -10393,13 +10489,35 @@ 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.}.
 
-@item @code{kernel-arguments} (default: @code{'()})
+@item @code{kernel-arguments} (default: @code{'("quiet")})
 List of strings or gexps representing additional arguments to pass on
 the command-line of the kernel---e.g., @code{("console=ttyS0")}.
 
 @item @code{bootloader}
 The system bootloader configuration object.  @xref{Bootloader Configuration}.
 
+@item @code{label}
+This is the label (a string) as it appears in the bootloader's menu entry.
+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.
+
+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}).
+
+@quotation Note
+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.
+@end quotation
+
 @item @code{initrd-modules} (default: @code{%base-initrd-modules})
 @cindex initrd
 @cindex initial RAM disk
@@ -10506,6 +10624,13 @@ details.
 @item @code{services} (default: @var{%base-services})
 A list of service objects denoting system services.  @xref{Services}.
 
+@cindex essential services
+@item @code{essential-services} (default: ...)
+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.
+
 @item @code{pam-services} (default: @code{(base-pam-services)})
 @cindex PAM
 @cindex pluggable authentication modules
@@ -10527,6 +10652,27 @@ is that only @code{root} and members of the @code{wheel} group may use
 @code{sudo}.
 
 @end table
+
+@deffn {Scheme Syntax} this-operating-system
+When used in the @emph{lexical scope} of an operating system field definition,
+this identifier resolves to the operating system being defined.
+
+The example below shows how to refer to the operating system being defined in
+the definition of the @code{label} field:
+
+@example
+(use-modules (gnu) (guix))
+
+(operating-system
+  ;; ...
+  (label (package-full-name
+          (operating-system-kernel this-operating-system))))
+@end example
+
+It is an error to refer to @code{this-operating-system} outside an operating
+system definition.
+@end deffn
+
 @end deftp
 
 @node File Systems
@@ -10610,10 +10756,15 @@ corresponding device mapping established.
 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), and @code{no-exec} (disallow program execution.)
+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.
 
 @item @code{options} (default: @code{#f})
-This is either @code{#f}, or a string denoting mount options.
+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.
 
 @item @code{mount?} (default: @code{#t})
 This value indicates whether to automatically mount the file system when
@@ -10902,7 +11053,6 @@ this field must contain the encrypted password, as a string.  You can use the
 @example
 (user-account
   (name "charlie")
-  (home-directory "/home/charlie")
   (group "users")
 
   ;; Specify a SHA-512-hashed initial password.
@@ -10969,6 +11119,138 @@ Note that the ``root'' account is not included here.  It is a
 special-case and is automatically added whether or not it is specified.
 @end defvr
 
+@node Keyboard Layout
+@section Keyboard Layout
+
+@cindex keyboard layout
+@cindex keymap
+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.
+
+@cindex keyboard layout, definition
+There are three components that will want to know about your keyboard layout:
+
+@itemize
+@item
+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.
+
+@item
+The @emph{operating system kernel}, Linux, will need that so that the console
+is properly configured (@pxref{operating-system Reference,
+@code{keyboard-layout}}).
+
+@item
+The @emph{graphical display server}, usually Xorg, also has its own idea of
+the keyboard layout (@pxref{X Window, @code{keyboard-layout}}).
+@end itemize
+
+Guix allows you to configure all three separately but, fortunately, it allows
+you to share the same keyboard layout for all three components.
+
+@cindex XKB, keyboard layouts
+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:
+
+@example
+;; The German QWERTZ layout.  Here we assume a standard
+;; "pc105" keyboard model.
+(keyboard-layout "de")
+
+;; The bépo variant of the French layout.
+(keyboard-layout "fr" "bepo")
+
+;; The Catalan layout.
+(keyboard-layout "es" "cat")
+
+;; The Latin American Spanish layout.  In addition, the
+;; "Caps Lock" key is used as an additional "Ctrl" key,
+;; and the "Menu" key is used as a "Compose" key to enter
+;; accented letters.
+(keyboard-layout "latam"
+                 #:options '("ctrl:nocaps" "compose:menu"))
+
+;; The Russian layout for a ThinkPad keyboard.
+(keyboard-layout "ru" #:model "thinkpad")
+
+;; The "US international" layout, which is the US layout plus
+;; dead keys to enter accented characters.  This is for an
+;; Apple MacBook keyboard.
+(keyboard-layout "us" "intl" #:model "macbook78")
+@end example
+
+See the @file{share/X11/xkb} directory of the @code{xkeyboard-config} package
+for a complete list of supported layouts, variants, and models.
+
+@cindex keyboard layout, configuration
+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:
+
+@findex set-xorg-configuration
+@lisp
+;; Using the Turkish layout for the bootloader, the console,
+;; and for Xorg.
+
+(operating-system
+  ;; ...
+  (keyboard-layout (keyboard-layout "tr"))  ;for the console
+  (bootloader (bootloader-configuration
+                (bootloader grub-efi-bootloader)
+                (target "/boot/efi")
+                (keyboard-layout keyboard-layout))) ;for GRUB
+  (services (cons (set-xorg-configuration
+                    (xorg-configuration             ;for Xorg
+                      (keyboard-layout keyboard-layout)))
+                  %desktop-services)))
+@end lisp
+
+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.
+
+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:
+
+@itemize
+@item
+If you're using GNOME, its settings panel has a ``Region & Language'' entry
+where you can select one or more keyboard layouts.
+
+@item
+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:
+
+@example
+setxkbmap us dvorak
+@end example
+
+@item
+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:
+
+@example
+loadkeys fr-bepo
+@end example
+@end itemize
+
 @node Locales
 @section Locales
 
@@ -11861,29 +12143,6 @@ This is the name of the file where some random bytes are saved by
 It defaults to @file{/var/lib/random-seed}.
 @end defvr
 
-@cindex keymap
-@cindex keyboard
-@deffn {Scheme Procedure} console-keymap-service @var{files} ...
-@cindex keyboard layout
-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:
-
-@example
-(console-keymap-service "dvorak")
-@end example
-
-Or, for example, for a Swedish keyboard, you may need to combine
-the following keymaps:
-@example
-(console-keymap-service "se-lat6" "se-fi-lat6")
-@end example
-
-Also you can specify a full file name (or file names) of your keymap(s).
-See @code{man loadkeys} for details.
-
-@end deffn
-
 @cindex mouse
 @cindex gpm
 @defvr {Scheme Variable} gpm-service-type
@@ -13161,7 +13420,13 @@ Package object of the Open vSwitch.
 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 SLiM.
+started by the @dfn{login manager}, by default the GNOME Display Manager (GDM).
+
+@cindex GDM
+@cindex GNOME, login manager
+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.
 
 @cindex window manager
 To use X11, you must install at least one @dfn{window manager}---for
@@ -13169,23 +13434,59 @@ 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}).
 
-@defvr {Scheme Variable} slim-service-type
-This is the type for the SLiM graphical login manager for X11.
+@defvr {Scheme Variable} gdm-service-type
+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.)
 
 @cindex session types (X11)
 @cindex X11 session types
-SLiM 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 using @kbd{F1}.  Packages such
-as @code{xfce}, @code{sawfish}, and @code{ratpoison} provide
-@file{.desktop} files; adding them to the system-wide set of packages
-automatically makes them available at the log-in screen.
+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.
 
 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.
 @end defvr
 
+@deftp {Data Type} gdm-configuration
+@table @asis
+@item @code{auto-login?} (default: @code{#f})
+@itemx @code{default-user} (default: @code{#f})
+When @code{auto-login?} is false, GDM presents a log-in screen.
+
+When @code{auto-login?} is true, GDM logs in directly as
+@code{default-user}.
+
+@item @code{gnome-shell-assets} (default: ...)
+List of GNOME Shell assets needed by GDM: icon theme, fonts, etc.
+
+@item @code{xorg-configuration} (default: @code{(xorg-configuration)})
+Configuration of the Xorg graphical server.
+
+@item @code{xsession} (default: @code{(xinitrc)})
+Script to run before starting a X session.
+
+@item @code{dbus-daemon} (default: @code{dbus-daemon-wrapper})
+File name of the @code{dbus-daemon} executable.
+
+@item @code{gdm} (default: @code{gdm})
+The GDM package to use.
+@end table
+@end deftp
+
+@defvr {Scheme Variable} slim-service-type
+This is the type for the SLiM graphical login manager for X11.
+
+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.
+@end defvr
+
 @deftp {Data Type} slim-configuration
 Data type representing the configuration of @code{slim-service-type}.
 
@@ -13218,8 +13519,8 @@ your user profile.  Failing to do that, if @code{auto-login-session} is
 false, you will be unable to log in.
 @end quotation
 
-@item @code{startx} (default: @code{(xorg-start-command)})
-The command used to start the X11 graphical server.
+@item @code{xorg-configuration} (default @code{(xorg-configuration)})
+Configuration of the Xorg graphical server.
 
 @item @code{xauth} (default: @code{xauth})
 The XAuth package to use.
@@ -13295,8 +13596,8 @@ Script to run before starting a wayland session.
 @item @code{sessions-directory} (default "/run/current-system/profile/share/wayland-sessions")
 Directory to look for desktop files starting wayland sessions.
 
-@item @code{xorg-server-path} (default @code{xorg-start-command})
-Path to xorg-server.
+@item @code{xorg-configuration} (default @code{(xorg-configuration)})
+Configuration of the Xorg graphical server.
 
 @item @code{xauth-path} (default @code{#~(string-append #$xauth "/bin/xauth")})
 Path to xauth.
@@ -13319,9 +13620,6 @@ Directory to look for desktop files starting X sessions.
 @item @code{minimum-vt} (default: 7)
 Minimum VT to use.
 
-@item @code{xserver-arguments} (default "-nolisten tcp")
-Arguments to pass to xorg-server.
-
 @item @code{auto-login-user} (default "")
 User to use for auto-login.
 
@@ -13347,99 +13645,73 @@ type @code{<sddm-configuration>}.
 @end example
 @end deffn
 
-@deffn {Scheme Procedure} xorg-start-command [#:guile] @
-  [#:modules %default-xorg-modules] @
-  [#:fonts %default-xorg-fonts] @
-  [#:configuration-file (xorg-configuration-file @dots{})] @
-  [#:xorg-server @var{xorg-server}]
-  [#:xserver-arguments '("-nolisten" "tcp")]
-Return a @code{startx} script in which @var{modules}, a list of X module
-packages, and @var{fonts}, a list of X font directories, are available.  See
-@code{xorg-wrapper} for more details on the arguments.  The result should be
-used in place of @code{startx}.
+@cindex Xorg, configuration
+@deftp {Data Type} xorg-configuration
+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.
 
-Usually the X server is started by a login manager.
-@end deffn
+@table @asis
+@item @code{modules} (default: @code{%default-xorg-modules})
+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.
 
-@cindex @code{-listen tcp}, for X11.
-This procedure is useful to override command line options for the X server,
-such as having it listen to over TCP:
+@item @code{fonts} (default: @code{%default-xorg-fonts})
+This is a list of font directories to add to the server's @dfn{font path}.
 
-@example
-(operating-system
-  ...
-  (services
-    (modify-services %desktop-services
-      (slim-service-type config =>
-        (slim-configuration
-          (inherit config)
-          (startx (xorg-start-command
-                   #:xserver-arguments '("-listen" "tcp"))))))))
-@end example
-
-@deffn {Scheme Procedure} xorg-configuration-file @
-  [#:modules %default-xorg-modules] @
-  [#:fonts %default-xorg-fonts] @
-  [#:drivers '()] [#:resolutions '()] [#:extra-config '()]
-Return a configuration file for the Xorg server containing search paths for
-all the common drivers.
-
-@var{modules} must be a list of @dfn{module packages} loaded by the Xorg
-server---e.g., @code{xf86-video-vesa}, @code{xf86-input-keyboard}, and so on.
-@var{fonts} must be a list of font directories to add to the server's
-@dfn{font path}.
+@item @code{drivers} (default: @code{'()})
+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")}.
 
-@var{drivers} 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")}.
+@item @code{resolutions} (default: @code{'()})
+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))}.
 
-Likewise, when @var{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))}.
+@cindex keyboard layout, for Xorg
+@cindex keymap, for Xorg
+@item @code{keyboard-layout} (default: @code{#f})
+If this is @code{#f}, Xorg uses the default keyboard layout---usually US
+English (``qwerty'') for a 105-key PC keyboard.
 
-Last, @var{extra-config} 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.
+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.
 
-@cindex keymap
-@cindex keyboard layout
-This procedure is especially useful to configure a different keyboard layout
-than the default US keymap.  For instance, to use the ``bépo'' keymap by
-default on the display manager:
+@item @code{extra-config} (default: @code{'()})
+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.
 
-@example
-(define bepo-evdev
-  "Section \"InputClass\"
-        Identifier \"evdev keyboard catchall\"
-        Driver \"evdev\"
-        MatchIsKeyboard \"on\"
-        Option \"xkb_layout\" \"fr\"
-        Option \"xkb_variant\" \"bepo\"
-EndSection")
+@item @code{server} (default: @code{xorg-server})
+This is the package providing the Xorg server.
 
-(operating-system
-  ...
-  (services
-    (modify-services %desktop-services
-      (slim-service-type config =>
-        (slim-configuration
-          (inherit config)
-          (startx (xorg-start-command
-                   #:configuration-file
-                   (xorg-configuration-file
-                     #:extra-config
-                     (list bepo-evdev)))))))))
-@end example
-
-The @code{MatchIsKeyboard} line specifies that we only apply the configuration
-to keyboards.  Without this line, other devices such as touchpad may not work
-correctly because they will be attached to the wrong driver.  In this example,
-the user typically used @code{setxkbmap fr bepo} to set their favorite keymap
-once logged in.  The first argument corresponds to the layout, while the second
-argument corresponds to the variant.  The @code{xkb_variant} line can be omitted
-to select the default variant.
+@item @code{server-arguments} (default: @code{%default-xorg-server-arguments})
+This is the list of command-line arguments to pass to the X server.  The
+default is @code{-nolisten tcp}.
+@end table
+@end deftp
+
+@deffn {Scheme Procedure} set-xorg-configuration @var{config} @
+  [@var{login-manager-service-type}]
+Tell the log-in manager (of type @var{login-manager-service-type}) to use
+@var{config}, an <xorg-configuration> record.
+
+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.
+@end deffn
+
+@deffn {Scheme Procedure} xorg-start-command [@var{config}]
+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}.
+
+Usually the X server is started by a login manager.
 @end deffn
 
+
 @deffn {Scheme Procedure} screen-locker-service @var{package} [@var{program}]
 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
@@ -14301,7 +14573,7 @@ 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.
+environments like GNOME, Xfce or MATE.
 
 To simplify things, the module defines a variable containing the set of
 services that users typically expect on a machine with a graphical
@@ -14312,7 +14584,7 @@ This is a list of services that builds upon @var{%base-services} and
 adds or adjusts services for a typical ``desktop'' setup.
 
 In particular, it adds a graphical login manager (@pxref{X Window,
-@code{slim-service}}), screen lockers, a network management tool
+@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
@@ -14326,16 +14598,16 @@ 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}}).
 
-Additionally, the @code{gnome-desktop-service},
+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
+@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} adds the GNOME
-metapackage to the system profile.  Likewise, adding the XFCE service
+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
@@ -14351,25 +14623,50 @@ functionality to work as expetected.
 
 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 the
-@code{slim-service} for the graphical login manager.  You should then
+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.
 
-@deffn {Scheme Procedure} gnome-desktop-service
-Return a service that adds the @code{gnome} package to the system
-profile, and extends polkit with the actions from
-@code{gnome-settings-daemon}.
-@end deffn
+@defvr {Scheme Variable} gnome-desktop-service-type
+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.)
 
-@deffn {Scheme Procedure} xfce-desktop-service
-Return a service that 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.
-@end deffn
+This service adds the @code{gnome} package to the system profile, and extends
+polkit with the actions from @code{gnome-settings-daemon}.
+@end defvr
+
+@deftp {Data Type} gnome-desktop-configuration
+Configuration record for the GNOME desktop environment.
+
+@table @asis
+@item @code{gnome} (default @code{gnome})
+The GNOME package to use.
+@end table
+@end deftp
+
+@defvr {Scheme Variable} xfce-desktop-service-type
+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.)
+
+This service that 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.
+@end defvr
+
+@deftp {Data Type} xfce-desktop-configuration
+Configuration record for the Xfce desktop environment.
+
+@table @asis
+@item @code{xfce} (default @code{xfce})
+The Xfce package to use.
+@end table
+@end deftp
 
 @deffn {Scheme Variable} mate-desktop-service-type
 This is the type of the service that runs the @uref{https://mate-desktop.org/,
@@ -14402,9 +14699,9 @@ The enlightenment package to use.
 @end table
 @end deftp
 
-Because the GNOME, XFCE and MATE desktop services pull in so many packages,
+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
+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}:
 
@@ -14414,8 +14711,8 @@ them by default.  To add GNOME, XFCE or MATE, just @code{cons} them onto
 (operating-system
   ...
   ;; cons* adds items to the list given as its last argument.
-  (services (cons* (gnome-desktop-service)
-                   (xfce-desktop-service)
+  (services (cons* (service gnome-desktop-service-type)
+                   (service xfce-desktop-service)
                    %desktop-services))
   ...)
 @end example
@@ -16382,6 +16679,36 @@ 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}).
 
+@subsubheading GNU Mailutils IMAP4 Daemon
+@cindex GNU Mailutils IMAP4 Daemon
+
+@deffn {Scheme Variable} imap4d-service-type
+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:
+
+@example
+(service imap4d-service-type
+         (imap4d-configuration
+           (config-file (local-file "imap4d.conf"))))
+@end example
+@end deffn
+
+@deftp {Data Type} imap4d-configuration
+Data type representing the configuration of @command{imap4d}.
+
+@table @asis
+@item @code{package} (default: @code{mailutils})
+The package that provides @command{imap4d}.
+
+@item @code{config-file} (default: @code{%default-imap4d-config-file})
+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.
+
+@end table
+@end deftp
+
 @node Messaging Services
 @subsection Messaging Services
 
@@ -19130,6 +19457,26 @@ Its default is the first provided domain.
 The first domain provided will be the subject CN of the certificate, and
 all domains will be Subject Alternative Names on the certificate.
 
+@item @code{challenge} (default: @code{#f})
+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}).
+
+@item @code{authentication-hook} (default: @code{#f})
+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.
+
+@item @code{cleanup-hook} (default: @code{#f})
+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.
+
 @item @code{deploy-hook} (default: @code{#f})
 Command to be run in a shell once for each successfully issued
 certificate.  For this command, the shell variable
@@ -19511,6 +19858,45 @@ When set, this forbids queries of the ANY type.
 The delay between a modification in memory and on disk.  0 means immediate
 synchronization.
 
+@item @code{zonefile-load} (default: @code{#f})
+The way the zone file contents are applied during zone load.  Possible values
+are:
+
+@itemize
+@item @code{#f} for using the default value from Knot,
+@item @code{'none} for not using the zone file at all,
+@item @code{'difference} for computing the difference between already available
+contents and zone contents and applying it to the current zone contents,
+@item @code{'difference-no-serial} for the same as @code{'difference}, but
+ignoring the SOA serial in the zone file, while the server takes care of it
+automatically.
+@item @code{'whole} for loading zone contents from the zone file.
+@end itemize
+
+@item @code{journal-content} (default: @code{#f})
+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.
+
+@item @code{max-journal-usage} (default: @code{#f})
+The maximum size for the journal on disk.  @code{#f} does not set this option,
+so the default value from Knot is used.
+
+@item @code{max-journal-depth} (default: @code{#f})
+The maximum size of the history.  @code{#f} does not set this option, so the
+default value from Knot is used.
+
+@item @code{max-zone-size} (default: @code{#f})
+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.
+
+@item @code{dnssec-policy} (default: @code{#f})
+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.
+
 @item @code{serial-policy} (default: @code{'increment})
 A policy between @code{'increment} and @code{'unixtime}.
 
@@ -19528,6 +19914,19 @@ The Knot package.
 @item @code{run-directory} (default: @code{"/var/run/knot"})
 The run directory.  This directory will be used for pid file and sockets.
 
+@item @code{includes} (default: @code{'()})
+A list of strings or file-like objects denoting other files that must be
+included at the top of the configuration file.
+
+@cindex secrets, Knot service
+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.
+
+It can also be used to add configuration not supported by this interface.
+
 @item @code{listen-v4} (default: @code{"0.0.0.0"})
 An ip address on which to listen.
 
@@ -21624,7 +22023,7 @@ emulated:
 @example
 (service qemu-binfmt-service-type
          (qemu-binfmt-configuration
-           (platforms (lookup-qemu-platforms "arm" "aarch64" "ppc"))))
+           (platforms (lookup-qemu-platforms "arm" "aarch64" "mips64el"))))
 @end example
 
 In this example, we enable transparent emulation for the ARM and aarch64
@@ -22915,7 +23314,7 @@ The port to bind the server to.
 @cindex fingerprint
 @subsubheading Fingerprint Service
 
-The @code{(gnu services fingerprint)} module provides a DBus service to
+The @code{(gnu services authentication)} module provides a DBus service to
 read and identify fingerprints via a fingerprint sensor.
 
 @defvr {Scheme Variable} fprintd-service-type
@@ -23261,7 +23660,7 @@ pointed to by the @code{GIT_SSL_CAINFO} environment variable.  Thus, you
 would typically run something like:
 
 @example
-$ guix package -i nss-certs
+$ guix install nss-certs
 $ export SSL_CERT_DIR="$HOME/.guix-profile/etc/ssl/certs"
 $ export SSL_CERT_FILE="$HOME/.guix-profile/etc/ssl/certs/ca-certificates.crt"
 $ export GIT_SSL_CAINFO="$SSL_CERT_FILE"
@@ -23272,7 +23671,7 @@ variable to point to a certificate bundle, so you would have to run
 something like this:
 
 @example
-$ guix package -i nss-certs
+$ guix install nss-certs
 $ export CURL_CA_BUNDLE="$HOME/.guix-profile/etc/ssl/certs/ca-certificates.crt"
 @end example
 
@@ -23528,6 +23927,7 @@ here is how to use it and customize it further.
 @cindex initial RAM disk
 @deffn {Scheme Procedure} raw-initrd @var{file-systems} @
        [#: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
@@ -23539,6 +23939,12 @@ the root file system specified on the kernel command line via @code{--root}.
 include @code{e2fsck/static} or other packages needed by the initrd to check
 the root file system.
 
+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.
+
 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.
@@ -23548,7 +23954,8 @@ to it are lost.
 @end deffn
 
 @deffn {Scheme Procedure} base-initrd @var{file-systems} @
-       [#:mapped-devices '()] [#:qemu-networking? #f] [#:volatile-root? #f]@
+       [#: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
@@ -23556,6 +23963,12 @@ 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.
 
+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.
+
 @var{qemu-networking?} and @var{volatile-root?} behaves as in @code{raw-initrd}.
 
 The initrd is automatically populated with all the kernel modules necessary
@@ -23649,6 +24062,19 @@ current system.
 The number of seconds to wait for keyboard input before booting.  Set to
 0 to boot immediately, and to -1 to wait indefinitely.
 
+@cindex keyboard layout, for the bootloader
+@item @code{keyboard-layout} (default: @code{#f})
+If this is @code{#f}, the bootloader's menu (if any) uses the default keyboard
+layout, usually US@tie{}English (``qwerty'').
+
+Otherwise, this must be a @code{keyboard-layout} object (@pxref{Keyboard
+Layout}).
+
+@quotation Note
+This option is currently ignored by bootloaders other than @code{grub} and
+@code{grub-efi}.
+@end quotation
+
 @item @code{theme} (default: @var{#f})
 The bootloader theme object describing the theme to use.  If no theme
 is provided, some bootloaders might use a default theme, that's true
@@ -23749,7 +24175,7 @@ must @emph{not} be an OS device name such as @file{/dev/sda1}.
 @end deftp
 
 @c FIXME: Write documentation once it's stable.
-Fow now only GRUB has theme support. GRUB themes are created using
+For now only GRUB has theme support. GRUB themes are created using
 the @code{grub-theme} form, which is not documented yet.
 
 @defvr {Scheme Variable} %default-theme
@@ -24221,13 +24647,23 @@ example graph.
 @section Running Guix in a Virtual Machine
 
 @cindex virtual machine
-To run Guix in a virtual machine (VM), one can either use the
-pre-built Guix VM image distributed at
-@indicateurl{https://alpha.gnu.org/gnu/guix/guix-system-vm-image-@value{VERSION}.@var{system}.xz}
-, or 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{http://qemu.org/, QEMU emulator} can
-efficiently use.
+To run Guix in a virtual machine (VM), one can use the pre-built Guix VM image
+distributed at
+@indicateurl{@value{BASE-URL}/guix-system-vm-image-@value{VERSION}.@var{system}.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).
+
+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}).
+
+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{http://qemu.org/, QEMU emulator} can efficiently use.
 
 @cindex QEMU
 If you built your own image, you must copy it out of the store
@@ -24240,7 +24676,9 @@ vm-image} on x86_64 hardware:
 @example
 $ qemu-system-x86_64 \
    -net user -net nic,model=virtio \
-   -enable-kvm -m 256 /tmp/qemu-image
+   -enable-kvm -m 512 \
+   -device virtio-blk,drive=myhd \
+   -drive if=none,file=/tmp/qemu-image,id=myhd
 @end example
 
 Here is what each of these options means:
@@ -24266,12 +24704,20 @@ If your system has hardware virtualization extensions, enabling the
 virtual machine support (KVM) of the Linux kernel will make things run
 faster.
 
-@item -m 256
+@c To run Xfce + 'guix pull', we need at least 1G of RAM.
+@item -m 1024
 RAM available to the guest OS, in mebibytes.  Defaults to 128@tie{}MiB,
 which may be insufficient for some operations.
 
-@item /tmp/qemu-image
-The file name of the qcow2 image.
+@item -device virtio-blk,drive=myhd
+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.
+
+@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.
 @end table
 
 The default @command{run-vm.sh} script that is returned by an invocation of
@@ -24287,11 +24733,10 @@ network connectivity, for example @command{guix download}.
 
 @cindex SSH
 @cindex SSH server
-To enable SSH inside a VM you need to add a SSH server like @code{(dropbear-service)}
-or @code{(lsh-service)} to your VM.  The @code{(lsh-service}) doesn't currently
-boot unsupervised.  It requires you to type some characters to initialize the
-randomness generator.  In addition you need to forward the SSH port, 22 by
-default, to the host.  You can do this with
+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
 
 @example
 `guix system vm config.scm` -net user,hostfwd=tcp::10022-:22
@@ -24435,23 +24880,23 @@ exception is the @dfn{boot service type}, which is the ultimate service.
 Optionally, a default value for instances of this type.
 @end enumerate
 
-In this example, @var{guix-service-type} extends three services:
+In this example, @code{guix-service-type} extends three services:
 
-@table @var
+@table @code
 @item shepherd-root-service-type
-The @var{guix-shepherd-service} procedure defines how the Shepherd
+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}).
 
 @item account-service-type
-This extension for this service is computed by @var{guix-accounts},
+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}).
 
 @item activation-service-type
-Here @var{guix-activation} is a procedure that returns a gexp, which is
+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.
 @end table
@@ -24476,7 +24921,7 @@ value is omitted, the default value specified by
 (service guix-service-type)
 @end example
 
-@var{guix-service-type} is quite simple because it extends other
+@code{guix-service-type} is quite simple because it extends other
 services but is not extensible itself.
 
 @c @subsubsubsection Extensible Service Types
@@ -24502,7 +24947,7 @@ The service type for an @emph{extensible} service looks like this:
 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 @var{shepherd-root-service-type}, we see two new fields:
+extension of @code{shepherd-root-service-type}, we see two new fields:
 
 @table @code
 @item compose
@@ -24529,7 +24974,7 @@ them (@pxref{Invoking guix system}).
 @end table
 
 There can be only one instance of an extensible service type such as
-@var{udev-service-type}.  If there were more, the
+@code{udev-service-type}.  If there were more, the
 @code{service-extension} specifications would be ambiguous.
 
 Still here?  The next section provides a reference of the programming
@@ -24603,7 +25048,7 @@ Here is an example of how a service is created and manipulated:
 
 The @code{modify-services} form provides a handy way to change the
 parameters of some of the services of a list such as
-@var{%base-services} (@pxref{Base Services, @code{%base-services}}).  It
+@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});
@@ -24784,8 +25229,8 @@ 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}}).
 
-The @var{%shepherd-root-service} is a service object representing
-PID@tie{}1, of type @var{shepherd-root-service-type}; it can be extended
+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.
 
 @deftp {Data Type} shepherd-service
@@ -24803,6 +25248,12 @@ shepherd, The GNU Shepherd Manual}).  @xref{Slots of services, the
 @item @code{requirements} (default: @code{'()})
 List of symbols denoting the Shepherd services this one depends on.
 
+@cindex one-shot services, for the Shepherd
+@item @code{one-shot?} (default: @code{#f})
+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.
+
 @item @code{respawn?} (default: @code{#t})
 Whether to restart the service when it stops, for instance when the
 underlying process dies.
@@ -24833,10 +25284,10 @@ A documentation string, as shown when running:
 herd doc @var{service-name}
 @end example
 
-where @var{service-name} is one of the symbols in @var{provision}
+where @var{service-name} is one of the symbols in @code{provision}
 (@pxref{Invoking herd,,, shepherd, The GNU Shepherd Manual}).
 
-@item @code{modules} (default: @var{%default-modules})
+@item @code{modules} (default: @code{%default-modules})
 This is the list of modules that must be in scope when @code{start} and
 @code{stop} are evaluated.
 
@@ -25002,7 +25453,7 @@ installs the debugging information for the GNU C Library and for GNU
 Guile:
 
 @example
-guix package -i glibc:debug guile:debug
+guix install glibc:debug guile:debug
 @end example
 
 GDB must then be told to look for debug files in the user's profile, by
@@ -25083,7 +25534,7 @@ order of magnitudes lower than a full rebuild of the dependency chain.
 @cindex replacements of packages, for grafts
 For instance, suppose a security update needs to be applied to Bash.
 Guix developers will provide a package definition for the ``fixed''
-Bash, say @var{bash-fixed}, in the usual way (@pxref{Defining
+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:
 
@@ -25098,14 +25549,14 @@ Packages}).  Then, the original package definition is augmented with a
 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
-@var{bash-fixed} instead of @var{bash}.  This grafting process takes
+@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.
 
 Currently, the length of the name and version of the graft and that of
-the package it replaces (@var{bash-fixed} and @var{bash} in the example
+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
diff --git a/doc/local.mk b/doc/local.mk
index 4ad19b5e37..204e1990a5 100644
--- a/doc/local.mk
+++ b/doc/local.mk
@@ -21,9 +21,11 @@
 # You should have received a copy of the GNU General Public License
 # along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 
-info_TEXINFOS = %D%/guix.texi \
-  %D%/guix.fr.texi \
-  %D%/guix.de.texi
+info_TEXINFOS = %D%/guix.texi			\
+  %D%/guix.es.texi				\
+  %D%/guix.fr.texi				\
+  %D%/guix.de.texi				\
+  %D%/guix.zh_CN.texi
 
 %C%_guix_TEXINFOS = \
   %D%/contributing.texi \
@@ -55,11 +57,15 @@ OS_CONFIG_EXAMPLES_TEXI =			\
   %D%/os-config-desktop.texi			\
   %D%/os-config-lightweight-desktop.texi
 
-TRANSLATED_INFO = \
-  %D%/guix.de.texi \
-  %D%/guix.fr.texi \
-  %D%/contributing.de.texi \
-  %D%/contributing.fr.texi
+TRANSLATED_INFO =				\
+  %D%/guix.de.texi				\
+  %D%/guix.es.texi				\
+  %D%/guix.fr.texi				\
+  %D%/guix.zh_CN.texi				\
+  %D%/contributing.de.texi			\
+  %D%/contributing.es.texi			\
+  %D%/contributing.fr.texi			\
+  %D%/contributing.zh_CN.texi
 
 # Bundle this file so that makeinfo finds it in out-of-source-tree builds.
 BUILT_SOURCES        += $(OS_CONFIG_EXAMPLES_TEXI) $(TRANSLATED_INFO)
diff --git a/etc/completion/bash/guix b/etc/completion/bash/guix
index 3d2b3ddda7..edfb627e87 100644
--- a/etc/completion/bash/guix
+++ b/etc/completion/bash/guix
@@ -1,5 +1,5 @@
 # GNU Guix --- Functional package management for GNU
-# Copyright © 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
+# Copyright © 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
 #
 # This file is part of GNU Guix.
 #
@@ -167,6 +167,15 @@ _guix_complete ()
 		else
 		    _guix_complete_available_package "$word_at_point"
 		fi
+	    elif _guix_is_command "install"
+	    then
+		_guix_complete_available_package "$word_at_point"
+	    elif _guix_is_command "remove"
+	    then
+		_guix_complete_installed_package "$word_at_point"
+	    elif _guix_is_command "upgrade"
+	    then
+		_guix_complete_installed_package "$word_at_point"
             elif _guix_is_command "build"
             then
                 if _guix_is_dash_L
diff --git a/etc/snippets/text-mode/guix-commit-message-rename-package b/etc/snippets/text-mode/guix-commit-message-rename-package
new file mode 100644
index 0000000000..9695ca1b3d
--- /dev/null
+++ b/etc/snippets/text-mode/guix-commit-message-rename-package
@@ -0,0 +1,20 @@
+# -*- mode: snippet -*-
+# name: guix-commit-message-rename-package
+# key: rename
+# condition: git-commit-mode
+# --
+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)))`}: Rename package to ${2:`(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)))`}.
+
+* `(car (magit-staged-files))` ($1): Define in terms of
+'deprecated-package'.
+($2): New variable, formerly known as "$1".
\ No newline at end of file
diff --git a/gnu.scm b/gnu.scm
index 3e7e7c0ebc..2c29b6dc3f 100644
--- a/gnu.scm
+++ b/gnu.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2014, 2015, 2016, 2017, 2019 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2015 Joshua S. Grant <jgrant@parenthetical.io>
 ;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
 ;;;
@@ -45,6 +45,7 @@
         (gnu system file-systems)
         (gnu bootloader)
         (gnu bootloader grub)
+        (gnu system keyboard)
         (gnu system pam)
         (gnu system shadow)                       ; 'user-account'
         (gnu system linux-initrd)
diff --git a/gnu/bootloader.scm b/gnu/bootloader.scm
index a32bf5ec67..a381f67145 100644
--- a/gnu/bootloader.scm
+++ b/gnu/bootloader.scm
@@ -47,6 +47,7 @@
             bootloader-configuration-menu-entries
             bootloader-configuration-default-entry
             bootloader-configuration-timeout
+            bootloader-configuration-keyboard-layout
             bootloader-configuration-theme
             bootloader-configuration-terminal-outputs
             bootloader-configuration-terminal-inputs
@@ -104,27 +105,27 @@
 (define-record-type* <bootloader-configuration>
   bootloader-configuration make-bootloader-configuration
   bootloader-configuration?
-  (bootloader                      bootloader-configuration-bootloader)    ; <bootloader>
-  (target                          bootloader-configuration-target         ; string
-                                   (default #f))
-  (menu-entries                    bootloader-configuration-menu-entries   ; list of <boot-parameters>
-                                   (default '()))
-  (default-entry                   bootloader-configuration-default-entry  ; integer
-                                   (default 0))
-  (timeout                         bootloader-configuration-timeout        ; seconds as integer
-                                   (default 5))
-  (theme                           bootloader-configuration-theme          ; bootloader-specific theme
-                                   (default #f))
-  (terminal-outputs                bootloader-configuration-terminal-outputs ; list of symbols
-                                   (default '(gfxterm)))
-  (terminal-inputs                 bootloader-configuration-terminal-inputs  ; list of symbols
-                                   (default '()))
-  (serial-unit                     bootloader-configuration-serial-unit      ; integer | #f
-                                   (default #f))
-  (serial-speed                    bootloader-configuration-serial-speed     ; integer | #f
-                                   (default #f))
-  (additional-configuration        bootloader-configuration-additional-configuration ; record
-                                   (default #f)))
+  (bootloader         bootloader-configuration-bootloader) ;<bootloader>
+  (target             bootloader-configuration-target      ;string
+                      (default #f))
+  (menu-entries       bootloader-configuration-menu-entries ;list of <boot-parameters>
+                      (default '()))
+  (default-entry      bootloader-configuration-default-entry ;integer
+                      (default 0))
+  (timeout            bootloader-configuration-timeout ;seconds as integer
+                      (default 5))
+  (keyboard-layout    bootloader-configuration-keyboard-layout ;<keyboard-layout> | #f
+                      (default #f))
+  (theme              bootloader-configuration-theme ;bootloader-specific theme
+                      (default #f))
+  (terminal-outputs   bootloader-configuration-terminal-outputs ;list of symbols
+                      (default '(gfxterm)))
+  (terminal-inputs    bootloader-configuration-terminal-inputs ;list of symbols
+                      (default '()))
+  (serial-unit        bootloader-configuration-serial-unit ;integer | #f
+                      (default #f))
+  (serial-speed       bootloader-configuration-serial-speed ;integer | #f
+                      (default #f)))
 
 
 ;;;
diff --git a/gnu/bootloader/depthcharge.scm b/gnu/bootloader/depthcharge.scm
new file mode 100644
index 0000000000..58cc3f3932
--- /dev/null
+++ b/gnu/bootloader/depthcharge.scm
@@ -0,0 +1,107 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2019 Timothy Sample <samplet@ngyro.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 bootloader depthcharge)
+  #:use-module (gnu bootloader extlinux)
+  #:use-module (gnu bootloader)
+  #:use-module (gnu packages bootloaders)
+  #:use-module (guix gexp)
+  #:use-module (guix utils)
+  #:use-module (ice-9 match)
+  #:export (depthcharge-bootloader))
+
+(define (signed-kernel kernel kernel-arguments initrd)
+  (define builder
+    (with-imported-modules '((guix build utils))
+      #~(begin
+          (use-modules (guix build utils)
+                       (ice-9 binary-ports)
+                       (rnrs bytevectors))
+          (set-path-environment-variable "PATH" '("bin") (list #$dtc))
+
+          ;; TODO: These files have to be writable, so we copy them.
+          ;; This can probably be fixed by using a ".its" file, just
+          ;; be careful not to break initrd loading.
+          (copy-file #$kernel "zImage")
+          (chmod "zImage" #o755)
+          (copy-file (string-append (dirname #$kernel) "/lib/dtbs/"
+                                    "rk3288-veyron-speedy.dtb")
+                     "rk3288-veyron-speedy.dtb")
+          (chmod "rk3288-veyron-speedy.dtb" #o644)
+          (copy-file #$initrd "initrd")
+          (chmod "initrd" #o644)
+
+          (invoke (string-append #$u-boot-tools "/bin/mkimage")
+                  "-D" "-I dts -O dtb -p 2048"
+		  "-f" "auto"
+                  "-A" "arm"
+                  "-O" "linux"
+                  "-T" "kernel"
+                  "-C" "None"
+                  "-d" "zImage"
+                  "-a" "0"
+                  "-b" "rk3288-veyron-speedy.dtb"
+                  "-i" "initrd"
+	          "image.itb")
+          (call-with-output-file "bootloader.bin"
+            (lambda (port)
+              (put-bytevector port (make-bytevector 512 0))))
+          (with-output-to-file "kernel-arguments"
+	    (lambda ()
+	      (display (string-join (list #$@kernel-arguments)))))
+          (invoke (string-append #$vboot-utils "/bin/vbutil_kernel")
+                  "--pack" #$output
+                  "--version" "1"
+                  "--vmlinuz" "image.itb"
+		  "--arch" "arm"
+		  "--keyblock" (string-append #$vboot-utils
+                                              "/share/vboot-utils/devkeys/"
+                                              "kernel.keyblock")
+		  "--signprivate" (string-append #$vboot-utils
+                                                 "/share/vboot-utils/devkeys/"
+                                                 "kernel_data_key.vbprivk")
+                  "--config" "kernel-arguments"
+                  "--bootloader" "bootloader.bin"))))
+  (computed-file "vmlinux.kpart" builder))
+
+(define* (depthcharge-configuration-file config entries
+                                         #:key
+                                         (system (%current-system))
+                                         (old-entries '()))
+  (match entries
+    ((entry)
+     (let ((kernel (menu-entry-linux entry))
+           (kernel-arguments (menu-entry-linux-arguments entry))
+           (initrd (menu-entry-initrd entry)))
+       ;; XXX: Make this a symlink.
+       (signed-kernel kernel kernel-arguments initrd)))
+    (_ (error "Too many bootloader menu entries!"))))
+
+(define install-depthcharge
+  #~(lambda (bootloader device mount-point)
+      (let ((kpart (string-append mount-point
+                                  "/boot/depthcharge/vmlinux.kpart")))
+        (write-file-on-device kpart (stat:size (stat kpart)) device 0))))
+
+(define depthcharge-bootloader
+  (bootloader
+   (name 'depthcharge)
+   (package #f)
+   (installer install-depthcharge)
+   (configuration-file "/boot/depthcharge/vmlinux.kpart")
+   (configuration-file-generator depthcharge-configuration-file)))
diff --git a/gnu/bootloader/grub.scm b/gnu/bootloader/grub.scm
index 14aede72c5..e97a17b3e2 100644
--- a/gnu/bootloader/grub.scm
+++ b/gnu/bootloader/grub.scm
@@ -27,8 +27,10 @@
   #:use-module (gnu bootloader)
   #:use-module (gnu system uuid)
   #:use-module (gnu system file-systems)
+  #:use-module (gnu system keyboard)
   #:autoload   (gnu packages bootloaders) (grub)
   #:autoload   (gnu packages gtk) (guile-cairo guile-rsvg)
+  #:autoload   (gnu packages xorg) (xkeyboard-config)
   #:use-module (ice-9 match)
   #:use-module (ice-9 regex)
   #:use-module (srfi srfi-1)
@@ -219,6 +221,26 @@ fi~%"
 ;;; Configuration file.
 ;;;
 
+(define* (keyboard-layout-file layout
+                               #:key
+                               (grub grub))
+  "Process the X keyboard layout description LAYOUT, a <keyboard-layout> record,
+and return a file in the format for GRUB keymaps.  LAYOUT must be present in
+the 'share/X11/xkb/symbols/' directory of 'xkeyboard-config'."
+  (define builder
+    (with-imported-modules '((guix build utils))
+      #~(begin
+          (use-modules (guix build utils))
+
+          ;; 'grub-kbdcomp' passes all its arguments but '-o' to 'ckbcomp'
+          ;; (from the 'console-setup' package).
+          (invoke #$(file-append grub "/bin/grub-mklayout")
+                  "-i" #+(keyboard-layout->console-keymap layout)
+                  "-o" #$output))))
+
+  (computed-file (string-append "grub-keymap." (keyboard-layout-name layout))
+                 builder))
+
 (define (grub-setup-io config)
   "Return GRUB commands to configure the input / output interfaces.  The result
 is a string that can be inserted in grub.cfg."
@@ -330,6 +352,18 @@ entries corresponding to old generations of the system."
                #:system system
                #:port #~port))
 
+  (define keyboard-layout-config
+    (let ((layout (bootloader-configuration-keyboard-layout config))
+          (grub   (bootloader-package
+                   (bootloader-configuration-bootloader config))))
+      #~(let ((keymap #$(and layout
+                             (keyboard-layout-file layout #:grub grub))))
+          (when keymap
+            (format port "\
+terminal_input at_keyboard
+insmod keylayouts
+keymap ~a~%" keymap)))))
+
   (define builder
     #~(call-with-output-file #$output
         (lambda (port)
@@ -338,6 +372,7 @@ entries corresponding to old generations of the system."
 # will be lost upon reconfiguration.
 ")
           #$sugar
+          #$keyboard-layout-config
           (format port "
 set default=~a
 set timeout=~a~%"
diff --git a/gnu/bootloader/u-boot.scm b/gnu/bootloader/u-boot.scm
index 1c6f322bc4..54abfe1c69 100644
--- a/gnu/bootloader/u-boot.scm
+++ b/gnu/bootloader/u-boot.scm
@@ -106,7 +106,7 @@
 (define u-boot-beaglebone-black-bootloader
   (bootloader
    (inherit u-boot-bootloader)
-   (package u-boot-beagle-bone-black)
+   (package u-boot-am335x-boneblack)
    (installer install-beaglebone-black-u-boot)))
 
 (define u-boot-allwinner-bootloader
diff --git a/gnu/build/accounts.scm b/gnu/build/accounts.scm
index 6b44ab610b..c43ce85b60 100644
--- a/gnu/build/accounts.scm
+++ b/gnu/build/accounts.scm
@@ -483,9 +483,12 @@ new UIDs."
                                (real-name (if previous
                                               (password-entry-real-name previous)
                                               real-name))
-                               (shell (if previous
-                                          (password-entry-shell previous)
-                                          shell)))
+
+                               ;; Do not reuse the shell of PREVIOUS since (1)
+                               ;; that could lead to confusion, and (2) the
+                               ;; shell might have been GC'd.  See
+                               ;; <https://lists.gnu.org/archive/html/guix-devel/2019-04/msg00478.html>.
+                               (shell shell))
                               result)
                         allocation))))
           '()
diff --git a/gnu/build/file-systems.scm b/gnu/build/file-systems.scm
index c468144170..8bb10d574d 100644
--- a/gnu/build/file-systems.scm
+++ b/gnu/build/file-systems.scm
@@ -575,6 +575,8 @@ corresponds to the symbols listed in FLAGS."
        (logior MS_NODEV (loop rest)))
       (('no-exec rest ...)
        (logior MS_NOEXEC (loop rest)))
+      (('no-atime rest ...)
+       (logior MS_NOATIME (loop rest)))
       (()
        0))))
 
diff --git a/gnu/build/linux-boot.scm b/gnu/build/linux-boot.scm
index 44b3506284..a35d18ad7c 100644
--- a/gnu/build/linux-boot.scm
+++ b/gnu/build/linux-boot.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -437,6 +437,7 @@ bailing out.~%root contents: ~s~%" (scandir "/"))
 (define* (boot-system #:key
                       (linux-modules '())
                       linux-module-directory
+                      keymap-file
                       qemu-guest-networking?
                       volatile-root?
                       pre-mount
@@ -444,7 +445,8 @@ bailing out.~%root contents: ~s~%" (scandir "/"))
                       (on-error 'debug))
   "This procedure is meant to be called from an initrd.  Boot a system by
 first loading LINUX-MODULES (a list of module names) from
-LINUX-MODULE-DIRECTORY, then setting up QEMU guest networking if
+LINUX-MODULE-DIRECTORY, then installing KEYMAP-FILE with 'loadkeys' (if
+KEYMAP-FILE is true), then setting up QEMU guest networking if
 QEMU-GUEST-NETWORKING? is true, calling PRE-MOUNT, mounting the file systems
 specified in MOUNTS, and finally booting into the new root if any.  The initrd
 supports kernel command-line options '--load', '--root', and '--repl'.
@@ -491,6 +493,15 @@ upon error."
                       #:lookup-module lookup-module)
                  (map lookup-module linux-modules))
 
+       (when keymap-file
+         (let ((status (system* "loadkeys" keymap-file)))
+           (unless (zero? status)
+             ;; Emit a warning rather than abort when we cannot load
+             ;; KEYMAP-FILE.
+             (format (current-error-port)
+                     "warning: 'loadkeys' exited with status ~a~%"
+                     status))))
+
        (when qemu-guest-networking?
          (unless (configure-qemu-networking)
            (display "network interface is DOWN\n")))
diff --git a/gnu/build/linux-container.scm b/gnu/build/linux-container.scm
index 65e1325577..3d7b52f098 100644
--- a/gnu/build/linux-container.scm
+++ b/gnu/build/linux-container.scm
@@ -1,6 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2015 David Thompson <davet@gnu.org>
-;;; Copyright © 2017, 2018 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -168,9 +168,12 @@ for the process."
     (umount "real-root" MNT_DETACH)
     (rmdir "real-root")))
 
-(define (initialize-user-namespace pid host-uids)
+(define* (initialize-user-namespace pid host-uids
+                                    #:key (guest-uid 0) (guest-gid 0))
   "Configure the user namespace for PID.  HOST-UIDS specifies the number of
-host user identifiers to map into the user namespace."
+host user identifiers to map into the user namespace.  GUEST-UID and GUEST-GID
+specify the first UID (respectively GID) that host UIDs (respectively GIDs)
+map to in the namespace."
   (define proc-dir
     (string-append "/proc/" (number->string pid)))
 
@@ -191,10 +194,10 @@ host user identifiers to map into the user namespace."
     ;; within the container.
     (call-with-output-file (scope "/uid_map")
       (lambda (port)
-        (format port "0 ~d ~d" uid host-uids)))
+        (format port "~d ~d ~d" guest-uid uid host-uids)))
     (call-with-output-file (scope "/gid_map")
       (lambda (port)
-        (format port "0 ~d ~d" gid host-uids)))))
+        (format port "~d ~d ~d" guest-gid gid host-uids)))))
 
 (define (namespaces->bit-mask namespaces)
   "Return the number suitable for the 'flags' argument of 'clone' that
@@ -210,13 +213,17 @@ corresponds to the symbols in NAMESPACES."
                ('net  CLONE_NEWNET))
               namespaces)))
 
-(define (run-container root mounts namespaces host-uids thunk)
+(define* (run-container root mounts namespaces host-uids thunk
+                        #:key (guest-uid 0) (guest-gid 0))
   "Run THUNK in a new container process and return its PID.  ROOT specifies
 the root directory for the container.  MOUNTS is a list of <file-system>
 objects that specify file systems to mount inside the container.  NAMESPACES
 is a list of symbols that correspond to the possible Linux namespaces: mnt,
-ipc, uts, user, and net.  HOST-UIDS specifies the number of
-host user identifiers to map into the user namespace."
+ipc, uts, user, and net.
+
+HOST-UIDS specifies the number of host user identifiers to map into the user
+namespace.  GUEST-UID and GUEST-GID specify the first UID (respectively GID)
+that host UIDs (respectively GIDs) map to in the namespace."
   ;; The parent process must initialize the user namespace for the child
   ;; before it can boot.  To negotiate this, a pipe is used such that the
   ;; child process blocks until the parent writes to it.
@@ -254,7 +261,9 @@ host user identifiers to map into the user namespace."
          (pid
           (close-port child)
           (when (memq 'user namespaces)
-            (initialize-user-namespace pid host-uids))
+            (initialize-user-namespace pid host-uids
+                                       #:guest-uid guest-uid
+                                       #:guest-gid guest-gid))
           ;; TODO: Initialize cgroups.
           (write 'ready parent)
           (newline parent)
@@ -271,23 +280,30 @@ host user identifiers to map into the user namespace."
                #f)))))))))
 
 (define* (call-with-container mounts thunk #:key (namespaces %namespaces)
-                              (host-uids 1))
+                              (host-uids 1) (guest-uid 0) (guest-gid 0))
   "Run THUNK in a new container process and return its exit status.
 MOUNTS is a list of <file-system> objects that specify file systems to mount
 inside the container.  NAMESPACES is a list of symbols corresponding to
 the identifiers for Linux namespaces: mnt, ipc, uts, pid, user, and net.  By
-default, all namespaces are used.  HOST-UIDS is the number of host user
-identifiers to map into the container's user namespace, if there is one.  By
-default, only a single uid/gid, that of the current user, is mapped into the
-container.  The host user that creates the container is the root user (uid/gid
-0) within the container.  Only root can map more than a single uid/gid.
+default, all namespaces are used.
+
+HOST-UIDS is the number of host user identifiers to map into the container's
+user namespace, if there is one.  By default, only a single uid/gid, that of
+the current user, is mapped into the container.  The host user that creates
+the container is the root user (uid/gid 0) within the container.  Only root
+can map more than a single uid/gid.
+
+GUEST-UID and GUEST-GID specify the first UID (respectively GID) that host
+UIDs (respectively GIDs) map to in the namespace.
 
 Note that if THUNK needs to load any additional Guile modules, the relevant
 module files must be present in one of the mappings in MOUNTS and the Guile
 load path must be adjusted as needed."
   (call-with-temporary-directory
    (lambda (root)
-     (let ((pid (run-container root mounts namespaces host-uids thunk)))
+     (let ((pid (run-container root mounts namespaces host-uids thunk
+                               #:guest-uid guest-uid
+                               #:guest-gid guest-gid)))
        ;; Catch SIGINT and kill the container process.
        (sigaction SIGINT
          (lambda (signum)
diff --git a/gnu/build/vm.scm b/gnu/build/vm.scm
index 6d6a0c4cb4..ac99d6b1a3 100644
--- a/gnu/build/vm.scm
+++ b/gnu/build/vm.scm
@@ -37,6 +37,7 @@
   #:use-module (ice-9 popen)
   #:use-module (srfi srfi-1)
   #:use-module (srfi srfi-9)
+  #:use-module (srfi srfi-19)
   #:use-module (srfi srfi-26)
   #:export (qemu-command
             load-in-linux-vm
@@ -144,6 +145,7 @@ the #:references-graphs parameter of 'derivation'."
     (_ #f))
 
   (apply invoke qemu "-nographic" "-no-reboot"
+         "-smp" (number->string (parallel-job-count))
          "-m" (number->string memory-size)
          "-object" "rng-random,filename=/dev/urandom,id=guixsd-vm-rng"
          "-device" "virtio-rng-pci,rng=guixsd-vm-rng"
@@ -458,6 +460,29 @@ GRUB configuration and OS-DRV as the stuff in it."
               closures)
     (register-bootcfg-root "/tmp/root" config-file))
 
+  ;; 'grub-mkrescue' calls out to mtools programs to create 'efi.img', a FAT
+  ;; file system image, and mtools honors SOURCE_DATE_EPOCH for the mtime of
+  ;; those files.  The epoch for FAT is Jan. 1st 1980, not 1970, so choose
+  ;; that.
+  (setenv "SOURCE_DATE_EPOCH"
+          (number->string
+           (time-second
+            (date->time-utc (make-date 0 0 0 0 1 1 1980 0)))))
+
+  ;; Our patched 'grub-mkrescue' honors this environment variable and passes
+  ;; it to 'mformat', which makes it the serial number of 'efi.img'.  This
+  ;; allows for deterministic builds.
+  (setenv "GRUB_FAT_SERIAL_NUMBER"
+          (number->string (if volume-uuid
+
+                              ;; On 32-bit systems the 2nd argument must be
+                              ;; lower than 2^32.
+                              (string-hash (iso9660-uuid->string volume-uuid)
+                                           (- (expt 2 32) 1))
+
+                              #x77777777)
+                          16))
+
   (let ((pipe
          (apply open-pipe* OPEN_WRITE
                 grub-mkrescue "-o" target
@@ -472,9 +497,8 @@ GRUB configuration and OS-DRV as the stuff in it."
                 "-path-list" "-"
                 "--"
 
-                ;; XXX: Add padding to avoid I/O errors on i686:
-                ;; <https://bugs.gnu.org/33639>.
-                "-padding" "10m"
+                ;; Set all timestamps to 1.
+                "-volume_date" "all_file_dates" "=1"
 
                 "-volid" (string-upcase volume-id)
                 (if volume-uuid
diff --git a/gnu/installer.scm b/gnu/installer.scm
index 479d940b4a..fe2841397e 100644
--- a/gnu/installer.scm
+++ b/gnu/installer.scm
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com>
+;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -42,13 +43,17 @@
   #:use-module (srfi srfi-1)
   #:export (installer-program))
 
-(define not-config?
-  ;; Select (guix …) and (gnu …) modules, except (guix config).
+(define module-to-import?
+  ;; Return true for modules that should be imported.  For (gnu system …) and
+  ;; (gnu packages …) modules, we simply add the whole 'guix' package via
+  ;; 'with-extensions' (to avoid having to rebuild it all), which is why these
+  ;; modules are excluded here.
   (match-lambda
     (('guix 'config) #f)
-    (('guix rest ...) #t)
-    (('gnu rest ...) #t)
-    (rest #f)))
+    (('gnu 'installer _ ...) #t)
+    (('gnu 'build _ ...) #t)
+    (('guix 'build _ ...) #t)
+    (_ #f)))
 
 (define* (build-compiled-file name locale-builder)
   "Return a file-like object that evalutes the gexp LOCALE-BUILDER and store
@@ -86,9 +91,17 @@ version of this file."
 
 (define apply-locale
   ;; Install the specified locale.
-  #~(lambda (locale-name)
-      (false-if-exception
-       (setlocale LC_ALL locale-name))))
+  (with-imported-modules (source-module-closure '((gnu services herd)))
+    #~(lambda (locale)
+        (false-if-exception
+         (setlocale LC_ALL locale))
+
+        ;; Restart the documentation viewer so it displays the manual in
+        ;; language that corresponds to LOCALE.
+        (with-error-to-port (%make-void-port "w")
+          (lambda ()
+            (stop-service 'term-tty2)
+            (start-service 'term-tty2 (list locale)))))))
 
 (define* (compute-locale-step #:key
                               locales-name
@@ -156,7 +169,8 @@ selected keymap."
                (lambda (models layouts)
                  ((installer-keymap-page current-installer)
                   layouts)))))
-        (#$apply-keymap result))))
+        (#$apply-keymap result)
+        result)))
 
 (define (installer-steps)
   (let ((locale-step (compute-locale-step
@@ -168,14 +182,6 @@ selected keymap."
                                         "/share/zoneinfo/zone.tab")))
     #~(lambda (current-installer)
         (list
-         ;; Welcome the user and ask him to choose between manual
-         ;; installation and graphical install.
-         (installer-step
-          (id 'welcome)
-          (compute (lambda _
-                     ((installer-welcome-page current-installer)
-                      #$(local-file "installer/aux-files/logo.txt")))))
-
          ;; Ask the user to choose a locale among those supported by
          ;; the glibc.  Install the selected locale right away, so that
          ;; the user may benefit from any available translation for the
@@ -187,6 +193,14 @@ selected keymap."
                      (#$locale-step current-installer)))
           (configuration-formatter locale->configuration))
 
+         ;; Welcome the user and ask them to choose between manual
+         ;; installation and graphical install.
+         (installer-step
+          (id 'welcome)
+          (compute (lambda _
+                     ((installer-welcome-page current-installer)
+                      #$(local-file "installer/aux-files/logo.txt")))))
+
          ;; Ask the user to select a timezone under glibc format.
          (installer-step
           (id 'timezone)
@@ -208,7 +222,8 @@ selected keymap."
           (id 'keymap)
           (description (G_ "Keyboard mapping selection"))
           (compute (lambda _
-                     (#$keymap-step current-installer))))
+                     (#$keymap-step current-installer)))
+          (configuration-formatter keyboard-layout->configuration))
 
          ;; Run a partitioning tool allowing the user to modify
          ;; partition tables, partitions and their mount points.
@@ -249,8 +264,7 @@ selected keymap."
           (description (G_ "Services"))
           (compute (lambda _
                      ((installer-services-page current-installer))))
-	  (configuration-formatter
-           desktop-environments->configuration))
+	  (configuration-formatter system-services->configuration))
 
 	 (installer-step
           (id 'final)
@@ -293,13 +307,16 @@ selected keymap."
      "gnu/installer"))
 
   (define installer-builder
+    ;; Note: Include GUIX as an extension to get all the (gnu system …), (gnu
+    ;; packages …), etc. modules.
     (with-extensions (list guile-gcrypt guile-newt
                            guile-parted guile-bytestructures
-                           guile-json)
+                           guile-json guile-git guix)
       (with-imported-modules `(,@(source-module-closure
                                   `(,@modules
+                                    (gnu services herd)
                                     (guix build utils))
-                                  #:select? not-config?)
+                                  #:select? module-to-import?)
                                ((guix config) => ,(make-config.scm)))
         #~(begin
             (use-modules (gnu installer record)
@@ -313,6 +330,9 @@ selected keymap."
                          (gnu installer timezone)
                          (gnu installer user)
                          (gnu installer newt)
+                         ((gnu installer newt keymap)
+                          #:select (keyboard-layout->configuration))
+                         (gnu services herd)
                          (guix i18n)
                          (guix build utils)
                          (ice-9 match))
@@ -324,16 +344,40 @@ selected keymap."
             ;; Add some binaries used by the installers to PATH.
             #$set-installer-path
 
+            ;; Arrange for language and territory name translations to be
+            ;; available.  We need them at run time, not just compile time,
+            ;; because some territories have several corresponding languages
+            ;; (e.g., "French" is always displayed as "français", but
+            ;; "Belgium" could be translated to Dutch, French, or German.)
+            (bindtextdomain "iso_639-3"           ;languages
+                            #+(file-append iso-codes "/share/locale"))
+            (bindtextdomain "iso_3166-1"          ;territories
+                            #+(file-append iso-codes "/share/locale"))
+
+            ;; Likewise for XKB keyboard layout names.
+            (bindtextdomain "xkeyboard-config"
+                            #+(file-append xkeyboard-config "/share/locale"))
+
             (let* ((current-installer newt-installer)
                    (steps (#$steps current-installer)))
               ((installer-init current-installer))
 
               (catch #t
                 (lambda ()
-                  (run-installer-steps
-                   #:rewind-strategy 'menu
-                   #:menu-proc (installer-menu-page current-installer)
-                   #:steps steps))
+                  (define results
+                    (run-installer-steps
+                     #:rewind-strategy 'menu
+                     #:menu-proc (installer-menu-page current-installer)
+                     #:steps steps))
+
+                  (match (result-step results 'final)
+                    ('success
+                     ;; We did it!  Let's reboot!
+                     (sync)
+                     (stop-service 'root))
+                    (_                            ;installation failed
+                     ;; TODO: Honor the result of 'run-install-failed-page'.
+                     #f)))
                 (const #f)
                 (lambda (key . args)
                   (let ((error-file "/tmp/last-installer-error"))
@@ -356,4 +400,5 @@ selected keymap."
        ;; some reason, unicode support is not correctly installed
        ;; when calling this in 'installer-builder'.
        (setenv "LANG" "en_US.UTF-8")
-       (system #$(program-file "installer-real" installer-builder)))))
+       (execl #$(program-file "installer-real" installer-builder)
+              "installer-real"))))
diff --git a/gnu/installer/final.scm b/gnu/installer/final.scm
index e1c62f5ce0..855b640030 100644
--- a/gnu/installer/final.scm
+++ b/gnu/installer/final.scm
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com>
+;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -20,17 +21,98 @@
   #:use-module (gnu installer newt page)
   #:use-module (gnu installer steps)
   #:use-module (gnu installer utils)
+  #:use-module (gnu installer user)
   #:use-module (gnu services herd)
   #:use-module (guix build utils)
+  #:use-module (gnu build accounts)
+  #:use-module ((gnu system shadow) #:prefix sys:)
+  #:use-module (rnrs io ports)
   #:export (install-system))
 
-(define (install-system)
-  "Start COW-STORE service on target directory and launch guix install command
-in a subshell."
+(define %seed
+  (seed->random-state
+   (logxor (getpid) (car (gettimeofday)))))
+
+(define (integer->alphanumeric-char n)
+  "Map N, an integer in the [0..62] range, to an alphanumeric character."
+  (cond ((< n 10)
+         (integer->char (+ (char->integer #\0) n)))
+        ((< n 36)
+         (integer->char (+ (char->integer #\A) (- n 10))))
+        ((< n 62)
+         (integer->char (+ (char->integer #\a) (- n 36))))
+        (else
+         (error "integer out of bounds" n))))
+
+(define (random-string len)
+  "Compute a random string of size LEN where each character is alphanumeric."
+  (let loop ((chars '())
+             (len len))
+    (if (zero? len)
+        (list->string chars)
+        (let ((n (random 62 %seed)))
+          (loop (cons (integer->alphanumeric-char n) chars)
+                (- len 1))))))
+
+(define (create-user-database users root)
+  "Create /etc/passwd, /etc/shadow, and /etc/group under ROOT for the given
+USERS."
+  (define etc
+    (string-append root "/etc"))
+
+  (define (salt)
+    ;; "$6" gives us a SHA512 password hash; the random string must be taken
+    ;; from the './0-9A-Za-z' alphabet (info "(libc) Passphrase Storage").
+    (string-append "$6$" (random-string 10)))
+
+  (define users*
+    (map (lambda (user)
+           (define root?
+             (string=? "root" (user-name user)))
+
+           (sys:user-account (name (user-name user))
+                             (comment (user-real-name user))
+                             (group "users")
+                             (uid (if root? 0 #f))
+                             (home-directory
+                              (user-home-directory user))
+                             (password (crypt (user-password user)
+                                              (salt)))
+
+                             ;; We need a string here, not a file-like, hence
+                             ;; this choice.
+                             (shell
+                              "/run/current-system/profile/bin/bash")))
+         users))
+
+  (define-values (group password shadow)
+    (user+group-databases users* sys:%base-groups
+                          #:current-passwd '()
+                          #:current-groups '()
+                          #:current-shadow '()))
+
+  (mkdir-p etc)
+  (write-group group (string-append etc "/group"))
+  (write-passwd password (string-append etc "/passwd"))
+  (write-shadow shadow (string-append etc "/shadow")))
+
+(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."
   (let ((install-command
          (format #f "guix system init ~a ~a"
                  (%installer-configuration-file)
                  (%installer-target-dir))))
     (mkdir-p (%installer-target-dir))
+
+    ;; We want to initialize user passwords but we don't want to store them in
+    ;; the config file since the password hashes would end up world-readable
+    ;; in the store.  Thus, create /etc/shadow & co. here such that, on the
+    ;; first boot, the activation snippet that creates accounts will reuse the
+    ;; passwords that we've put in there.
+    (create-user-database users (%installer-target-dir))
+
     (start-service 'cow-store (list (%installer-target-dir)))
-    (false-if-exception (run-shell-command install-command))))
+    (run-shell-command install-command #:locale locale)))
diff --git a/gnu/installer/keymap.scm b/gnu/installer/keymap.scm
index d66b376d9c..df9fc5e441 100644
--- a/gnu/installer/keymap.scm
+++ b/gnu/installer/keymap.scm
@@ -36,6 +36,7 @@
             make-x11-keymap-layout
             x11-keymap-layout?
             x11-keymap-layout-name
+            x11-keymap-layout-synopsis
             x11-keymap-layout-description
             x11-keymap-layout-variants
 
@@ -60,7 +61,8 @@
   x11-keymap-layout make-x11-keymap-layout
   x11-keymap-layout?
   (name            x11-keymap-layout-name) ;string
-  (description     x11-keymap-layout-description) ;string
+  (synopsis        x11-keymap-layout-synopsis)    ;string (e.g., "en")
+  (description     x11-keymap-layout-description) ;string (a whole phrase)
   (variants        x11-keymap-layout-variants)) ;list of <x11-keymap-variant>
 
 (define-record-type* <x11-keymap-variant>
@@ -117,6 +119,8 @@ Configuration Database, describing possible XKB configurations."
                   (variantList ,[variant -> v] ...))
                  (x11-keymap-layout
                   (name name)
+                  (synopsis (car
+                             (assoc-ref rest-layout 'shortDescription)))
                   (description (car
                                 (assoc-ref rest-layout 'description)))
                   (variants (list v ...)))]
@@ -126,6 +130,8 @@ Configuration Database, describing possible XKB configurations."
                    . ,rest-layout))
                  (x11-keymap-layout
                   (name name)
+                  (synopsis (car
+                             (assoc-ref rest-layout 'shortDescription)))
                   (description (car
                                 (assoc-ref rest-layout 'description)))
                   (variants '()))]))
diff --git a/gnu/installer/locale.scm b/gnu/installer/locale.scm
index 2b45b2200a..284062a6e7 100644
--- a/gnu/installer/locale.scm
+++ b/gnu/installer/locale.scm
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com>
+;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -69,6 +70,24 @@
       (codeset   . ,(match:substring matches 5))
       (modifier  . ,(match:substring matches 7)))))
 
+(define (normalize-codeset codeset)
+  "Compute the \"normalized\" variant of CODESET."
+  ;; info "(libc) Using gettextized software", for the algorithm used to
+  ;; compute the normalized codeset.
+  (letrec-syntax ((-> (syntax-rules ()
+                        ((_ proc value)
+                         (proc value))
+                        ((_ proc rest ...)
+                         (proc (-> rest ...))))))
+    (-> (lambda (str)
+          (if (string-every char-set:digit str)
+              (string-append "iso" str)
+              str))
+        string-downcase
+        (lambda (str)
+          (string-filter char-set:letter+digit str))
+        codeset)))
+
 (define (locale->locale-string locale)
   "Reverse operation of locale-string->locale."
   (let ((language (locale-language locale))
@@ -81,7 +100,7 @@
                    `("_" ,territory)
                    '())
              ,@(if codeset
-                   `("." ,codeset)
+                   `("." ,(normalize-codeset codeset))
                    '())
              ,@(if modifier
                    `("@" ,modifier)
diff --git a/gnu/installer/newt/final.scm b/gnu/installer/newt/final.scm
index 645c1e8689..e375282613 100644
--- a/gnu/installer/newt/final.scm
+++ b/gnu/installer/newt/final.scm
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com>
+;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -29,15 +30,24 @@
   #:use-module (newt)
   #:export (run-final-page))
 
+(define* (strip-prefix file #:optional (prefix (%installer-target-dir)))
+  "Strip PREFIX from FILE, if PREFIX actually is a prefix of FILE."
+  (if (string-prefix? prefix file)
+      (string-drop file (string-length prefix))
+      file))
+
 (define (run-config-display-page)
   (let ((width (%configuration-file-width))
         (height (nearest-exact-integer
                  (/ (screen-rows) 2))))
     (run-file-textbox-page
-     #:info-text (G_ "We're now ready to proceed with the installation! \
+     #:info-text (format #f (G_ "\
+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.")
+                         (strip-prefix (%installer-configuration-file)))
      #:title (G_ "Configuration file")
      #:file (%installer-configuration-file)
      #:info-textbox-width width
@@ -55,7 +65,10 @@ This will take a few minutes.")
    (G_ "Reboot")
    (G_ "Congratulations!  Installation is now complete.  \
 You may remove the device containing the installation image and \
-press the button to reboot.")))
+press the button to reboot."))
+
+  ;; Return success so that the installer happily reboots.
+  'success)
 
 (define (run-install-failed-page)
   (choice-window
@@ -65,22 +78,25 @@ press the button to reboot.")))
    (G_ "The final system installation step failed.  You can retry the \
 last step, or restart the installer.")))
 
-(define (run-install-shell)
+(define* (run-install-shell locale
+                            #:key (users '()))
   (clear-screen)
   (newt-suspend)
-  (let ((install-ok? (install-system)))
+  (let ((install-ok? (install-system locale #:users users)))
     (newt-resume)
     install-ok?))
 
 (define (run-final-page result prev-steps)
-  (let* ((configuration (format-configuration prev-steps result))
+  (let* ((configuration   (format-configuration prev-steps result))
          (user-partitions (result-step result 'partition))
+         (locale          (result-step result 'locale))
+         (users           (result-step result 'user))
          (install-ok?
           (with-mounted-partitions
            user-partitions
            (configuration->file configuration)
            (run-config-display-page)
-           (run-install-shell))))
+           (run-install-shell locale #:users users))))
     (if install-ok?
         (run-install-success-page)
         (run-install-failed-page))))
diff --git a/gnu/installer/newt/keymap.scm b/gnu/installer/newt/keymap.scm
index 3e765bfdd4..2908ba7f0e 100644
--- a/gnu/installer/newt/keymap.scm
+++ b/gnu/installer/newt/keymap.scm
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com>
+;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -27,7 +28,10 @@
   #:use-module (srfi srfi-26)
   #:use-module (srfi srfi-34)
   #:use-module (srfi srfi-35)
-  #:export (run-keymap-page))
+  #:use-module (ice-9 i18n)
+  #:use-module (ice-9 match)
+  #:export (run-keymap-page
+            keyboard-layout->configuration))
 
 (define (run-layout-page layouts layout->text)
   (let ((title (G_ "Layout")))
@@ -61,14 +65,29 @@
 
 (define (sort-layouts layouts)
   "Sort LAYOUTS list by putting the US layout ahead and return it."
+  (define (layout<? layout1 layout2)
+    (let ((text1 (x11-keymap-layout-description layout1))
+          (text2 (x11-keymap-layout-description layout2)))
+      ;; XXX: We're calling 'gettext' more than once per item.
+      (string-locale<? (gettext text1 "xkeyboard-config")
+                       (gettext text2 "xkeyboard-config"))))
+
+  (define preferred
+    ;; Two-letter language tag for the preferred keyboard layout.
+    (or (getenv "LANGUAGE") "us"))
+
   (call-with-values
       (lambda ()
         (partition
          (lambda (layout)
-           (let ((name (x11-keymap-layout-name layout)))
-             (string=? name "us")))
+           ;; The 'synopsis' field is usually a language code (e.g., "en")
+           ;; while the 'name' field is a country code (e.g., "us").
+           (or (string=? (x11-keymap-layout-name layout) preferred)
+               (string=? (x11-keymap-layout-synopsis layout) preferred)))
          layouts))
-    (cut append <> <>)))
+    (lambda (main others)
+      (append (sort main layout<?)
+              (sort others layout<?)))))
 
 (define (sort-variants variants)
   "Sort VARIANTS list by putting the international variant ahead and return it."
@@ -94,7 +113,8 @@ names of the selected keyboard layout and variant."
          (run-layout-page
           (sort-layouts layouts)
           (lambda (layout)
-            (x11-keymap-layout-description layout))))))
+            (gettext (x11-keymap-layout-description layout)
+                     "xkeyboard-config"))))))
      ;; Propose the user to select a variant among those supported by the
      ;; previously selected layout.
      (installer-step
@@ -108,15 +128,24 @@ names of the selected keyboard layout and variant."
                 (run-variant-page
                  (sort-variants variants)
                  (lambda (variant)
-                   (x11-keymap-variant-description
-                    variant))))))))))
+                   (gettext (x11-keymap-variant-description variant)
+                            "xkeyboard-config"))))))))))
 
   (define (format-result result)
     (let ((layout (x11-keymap-layout-name
                    (result-step result 'layout)))
           (variant (and=> (result-step result 'variant)
                           (lambda (variant)
-                            (x11-keymap-variant-name variant)))))
+                            (gettext (x11-keymap-variant-name variant)
+                                     "xkeyboard-config")))))
       (list layout (or variant ""))))
   (format-result
    (run-installer-steps #:steps keymap-steps)))
+
+(define (keyboard-layout->configuration keymap)
+  "Return the operating system configuration snippet to install KEYMAP."
+  (match keymap
+    ((name "")
+     `((keyboard-layout (keyboard-layout ,name))))
+    ((name variant)
+     `((keyboard-layout (keyboard-layout ,name ,variant))))))
diff --git a/gnu/installer/newt/locale.scm b/gnu/installer/newt/locale.scm
index 4fa07df81e..7108e2960b 100644
--- a/gnu/installer/newt/locale.scm
+++ b/gnu/installer/newt/locale.scm
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com>
+;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -30,17 +31,11 @@
   #:export (run-locale-page))
 
 (define (run-language-page languages language->text)
-  (let ((title (G_ "Locale language")))
+  (define result
     (run-listbox-selection-page
-     #:title title
-     #:info-text (G_ "Choose the locale's language to be used for the \
-installation process. A locale is a regional variant of your language \
-encompassing number, date and currency format, among other details.
-
-Based on the language you choose, you will possibly be asked to \
-select a locale's territory, codeset and modifier in the next \
-steps. The locale will also be used as the default one for the \
-installed system.")
+     #:title (G_ "Locale language")
+     #:info-text (G_ "Choose the language to use for the \
+installation process and for the installed system.")
      #:info-textbox-width 70
      #:listbox-items languages
      #:listbox-item->text language->text
@@ -50,14 +45,19 @@ installed system.")
      (lambda _
        (raise
         (condition
-         (&installer-step-abort)))))))
+         (&installer-step-abort))))))
+
+  ;; Immediately install the chosen language so that the territory page that
+  ;; comes after (optionally) is displayed in the chosen language.
+  (setenv "LANGUAGE" result)
+
+  result)
 
 (define (run-territory-page territories territory->text)
   (let ((title (G_ "Locale location")))
     (run-listbox-selection-page
      #:title title
-     #:info-text (G_ "Choose your locale's location. This is a shortlist of \
-locations based on the language you selected.")
+     #:info-text (G_ "Choose a territory for this language.")
      #:listbox-items territories
      #:listbox-item->text territory->text
      #:button-text (G_ "Back")
@@ -71,8 +71,7 @@ locations based on the language you selected.")
   (let ((title (G_ "Locale codeset")))
     (run-listbox-selection-page
      #:title title
-     #:info-text (G_ "Choose your locale's codeset. If UTF-8 is available, \
- it should be preferred.")
+     #:info-text (G_ "Choose the locale encoding.")
      #:listbox-items codesets
      #:listbox-item->text identity
      #:listbox-default-item "UTF-8"
@@ -163,7 +162,13 @@ glibc locale string and return it."
          (run-language-page
           (sort-languages
            (delete-duplicates (map locale-language supported-locales)))
-          (cut language-code->language-name iso639-languages <>)))))
+          (lambda (language)
+            (let ((english (language-code->language-name iso639-languages
+                                                         language)))
+              (setenv "LANGUAGE" language)
+              (let ((native (gettext english "iso_639-3")))
+                (unsetenv "LANGUAGE")
+                native)))))))
      (installer-step
       (id 'territory)
       (compute
@@ -177,10 +182,11 @@ glibc locale string and return it."
            ;; supported by the previously selected language.
            (run-territory-page
             (delete-duplicates (map locale-territory locales))
-            (lambda (territory-code)
-              (if territory-code
-                  (territory-code->territory-name iso3166-territories
-                                                  territory-code)
+            (lambda (territory)
+              (if territory
+                  (let ((english (territory-code->territory-name
+                                  iso3166-territories territory)))
+                    (gettext english "iso_3166-1"))
                   (G_ "No location"))))))))
      (installer-step
       (id 'codeset)
@@ -191,9 +197,11 @@ glibc locale string and return it."
            ;; narrow down the search of a locale.
            (break-on-locale-found locales)
 
-           ;; Otherwise, ask for a codeset.
-           (run-codeset-page
-            (delete-duplicates (map locale-codeset locales)))))))
+           ;; Otherwise, choose a codeset.
+           (let ((codesets (delete-duplicates (map locale-codeset locales))))
+             (if (member "UTF-8" codesets)
+                 "UTF-8"                          ;don't even ask
+                 (run-codeset-page codesets)))))))
      (installer-step
       (id 'modifier)
       (compute
diff --git a/gnu/installer/newt/network.scm b/gnu/installer/newt/network.scm
index f13176dc61..cf27a8cca2 100644
--- a/gnu/installer/newt/network.scm
+++ b/gnu/installer/newt/network.scm
@@ -59,7 +59,7 @@ Internet and return the selected technology. For now, only technologies with
                (G_ "Internet access")
                (G_ "Continue")
                (G_ "Exit")
-               (G_ "The install process requires an internet access, but no \
+               (G_ "The install process requires Internet access but no \
 network device were found. Do you want to continue anyway?"))
           ((1) (raise
                 (condition
@@ -68,7 +68,7 @@ network device were found. Do you want to continue anyway?"))
                 (condition
                  (&installer-step-abort)))))
         (run-listbox-selection-page
-         #:info-text (G_ "The install process requires an internet access.\
+         #:info-text (G_ "The install process requires Internet access.\
  Please select a network device.")
          #:title (G_ "Internet access")
          #:listbox-items items
@@ -93,7 +93,8 @@ network device were found. Do you want to continue anyway?"))
         (full-value 5))
     (run-scale-page
      #:title (G_ "Powering technology")
-     #:info-text (format #f "Waiting for technology ~a to be powered." name)
+     #:info-text (format #f (G_ "Waiting for technology ~a to be powered.")
+                         name)
      #:scale-full-value full-value
      #:scale-update-proc
      (lambda (value)
diff --git a/gnu/installer/newt/page.scm b/gnu/installer/newt/page.scm
index 23fbfcce76..3173d54737 100644
--- a/gnu/installer/newt/page.scm
+++ b/gnu/installer/newt/page.scm
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com>
+;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -20,6 +21,7 @@
   #:use-module (gnu installer utils)
   #:use-module (gnu installer newt utils)
   #:use-module (guix i18n)
+  #:use-module (ice-9 i18n)
   #:use-module (ice-9 match)
   #:use-module (ice-9 receive)
   #:use-module (srfi srfi-1)
@@ -29,6 +31,7 @@
             draw-connecting-page
             run-input-page
             run-error-page
+            run-confirmation-page
             run-listbox-selection-page
             run-scale-page
             run-checkbox-tree-page
@@ -72,17 +75,20 @@ this page to TITLE."
                          #:key
                          (allow-empty-input? #f)
                          (default-text #f)
-                         (input-field-width 40))
+                         (input-field-width 40)
+                         (input-flags 0))
   "Run a page to prompt user for an input. The given TEXT will be displayed
 above the input field. The page title is set to TITLE. Unless
 allow-empty-input? is set to #t, an error page will be displayed if the user
-enters an empty input."
+enters an empty input.  INPUT-FLAGS is a bitwise-or'd set of flags for the
+input box, such as FLAG-PASSWORD."
   (let* ((text-box
           (make-reflowed-textbox -1 -1 text
                                  input-field-width
                                  #:flags FLAG-BORDER))
          (grid (make-grid 1 3))
-         (input-entry (make-entry -1 -1 20))
+         (input-entry (make-entry -1 -1 20
+                                  #:flags input-flags))
          (ok-button (make-button -1 -1 (G_ "OK")))
          (form (make-form)))
 
@@ -141,6 +147,42 @@ of the page is set to TITLE."
     (newt-set-color COLORSET-ROOT "white" "blue")
     (destroy-form-and-pop form)))
 
+(define* (run-confirmation-page text title
+                                #:key (exit-button-procedure (const #f)))
+  "Run a page to inform the user of an error. The page contains the given TEXT
+to explain the error and an \"OK\" button to acknowledge the error. The title
+of the page is set to TITLE."
+  (let* ((text-box
+          (make-reflowed-textbox -1 -1 text 40
+                                 #:flags FLAG-BORDER))
+         (ok-button (make-button -1 -1 (G_ "Continue")))
+         (exit-button (make-button -1 -1 (G_ "Exit")))
+         (grid (vertically-stacked-grid
+                GRID-ELEMENT-COMPONENT text-box
+                GRID-ELEMENT-SUBGRID
+                (horizontal-stacked-grid
+                 GRID-ELEMENT-COMPONENT ok-button
+                 GRID-ELEMENT-COMPONENT exit-button)))
+         (form (make-form)))
+
+    (add-form-to-grid grid form #t)
+    (make-wrapped-grid-window grid title)
+
+    (receive (exit-reason argument)
+        (run-form form)
+      (dynamic-wind
+        (const #t)
+        (lambda ()
+          (case exit-reason
+            ((exit-component)
+             (cond
+              ((components=? argument ok-button)
+               #t)
+              ((components=? argument exit-button)
+               (exit-button-procedure))))))
+        (lambda ()
+          (destroy-form-and-pop form))))))
+
 (define* (run-listbox-selection-page #:key
                                      info-text
                                      title
@@ -185,7 +227,7 @@ be selected (using the <SPACE> key). It that case, a list containing the
 selected items will be returned.
 
 If SORT-LISTBOX-ITEMS? is set to #t, the listbox items are sorted using
-'string<=' procedure (after being converted to text).
+'string-locale<?' procedure (after being converted to text).
 
 If ALLOW-DELETE? is #t, the form will return if the <DELETE> key is pressed,
 otherwise nothing will happen.
@@ -211,7 +253,7 @@ ITEM was inserted into LISTBOX."
          items))
 
   (define (sort-listbox-items listbox-items)
-    "Return LISTBOX-ITEMS sorted using the 'string<=' procedure on the text
+    "Return LISTBOX-ITEMS sorted using the 'string-locale<?' procedure on the text
 corresponding to each item in the list."
     (let* ((items (map (lambda (item)
                          (cons item (listbox-item->text item)))
@@ -220,7 +262,7 @@ corresponding to each item in the list."
             (sort items (lambda (a b)
                           (let ((text-a (cdr a))
                                 (text-b (cdr b)))
-                            (string<= text-a text-b))))))
+                            (string-locale<? text-a text-b))))))
       (map car sorted-items)))
 
   ;; Store the last selected listbox item's key.
@@ -395,10 +437,14 @@ error is raised if the MAX-SCALE-UPDATE limit is reached."
       (lambda ()
         (destroy-form-and-pop form)))))
 
+(define %none-selected
+  (circular-list #f))
+
 (define* (run-checkbox-tree-page #:key
                                  info-text
                                  title
                                  items
+                                 (selection %none-selected)
                                  item->text
                                  (info-textbox-width 50)
                                  (checkbox-tree-height 10)
@@ -411,7 +457,8 @@ a checkbox list. The page contains vertically stacked from the top to the
 bottom, an informative text set to INFO-TEXT, the checkbox list and two
 buttons, 'Ok' and 'Exit'. The page title's is set to TITLE. ITEMS are
 converted to text using ITEM->TEXT before being displayed in the checkbox
-list.
+list.  SELECTION is a list of Booleans of the same length as ITEMS that
+specifies which items are initially checked.
 
 INFO-TEXTBOX-WIDTH is the width of the textbox where INFO-TEXT will be
 displayed. CHECKBOX-TREE-HEIGHT is the height of the checkbox list.
@@ -423,12 +470,15 @@ pressed.
 This procedure returns the list of checked items in the checkbox list among
 ITEMS when 'Ok' is pressed."
   (define (fill-checkbox-tree checkbox-tree items)
-    (map
-     (lambda (item)
-       (let* ((item-text (item->text item))
-              (key (add-entry-to-checkboxtree checkbox-tree item-text 0)))
-         (cons key item)))
-     items))
+    (map (lambda (item selected?)
+           (let* ((item-text (item->text item))
+                  (key (add-entry-to-checkboxtree checkbox-tree item-text
+                                                  (if selected?
+                                                      FLAG-SELECTED
+                                                      0))))
+             (cons key item)))
+         items
+         selection))
 
   (let* ((checkbox-tree
           (make-checkboxtree -1 -1
diff --git a/gnu/installer/newt/partition.scm b/gnu/installer/newt/partition.scm
index d4c91edc66..2b22ac85b4 100644
--- a/gnu/installer/newt/partition.scm
+++ b/gnu/installer/newt/partition.scm
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com>
+;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -41,8 +42,8 @@
 (define (run-scheme-page)
   "Run a page asking the user for a partitioning scheme."
   (let* ((items
-          '((root . "Everything is one partition")
-            (root-home . "Separate /home partition")))
+          `((root . ,(G_ "Everything is one partition"))
+            (root-home . ,(G_ "Separate /home partition"))))
          (result (run-listbox-selection-page
                   #:info-text (G_ "Please select a partitioning scheme.")
                   #:title (G_ "Partition scheme")
@@ -53,7 +54,12 @@
     (car result)))
 
 (define (draw-formatting-page)
-  "Draw a page to indicate partitions are being formated."
+  "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?")
+                         (G_ "Format disk?")
+                         #:exit-button-procedure button-exit-action)
   (draw-info-page
    (format #f (G_ "Partition formatting is in progress, please wait."))
    (G_ "Preparing partitions")))
@@ -146,6 +152,10 @@ USER-PARTITIONS list. Return this list with password fields filled-in."
                 (file-name (user-partition-file-name user-part))
                 (password-page
                  (lambda ()
+                   ;; Note: Don't use FLAG-PASSWORD here because this is the
+                   ;; first bit of text that the user types in, so it's
+                   ;; probably safer if they can see that the keyboard layout
+                   ;; they chose is in effect.
                    (run-input-page
                     (format #f (G_ "Please enter the password for the \
 encryption of partition ~a (label: ~a).") file-name crypt-label)
@@ -155,7 +165,8 @@ encryption of partition ~a (label: ~a).") file-name crypt-label)
                    (run-input-page
                     (format #f (G_ "Please confirm the password for the \
 encryption of partition ~a (label: ~a).") file-name crypt-label)
-                    (G_ "Password confirmation required")))))
+                    (G_ "Password confirmation required")
+                    #:input-flags FLAG-PASSWORD))))
            (if crypt-label
                (let loop ()
                  (let ((password (password-page))
@@ -418,10 +429,10 @@ partition. Leave this field empty if you don't want to set a mounting point.")
           (run-listbox-selection-page
            #:info-text
            (if creation?
-               (G_ (format #f "Creating ~a partition starting at ~a of ~a."
-                           type-str start file-name))
-               (G_ (format #f "You are currently editing partition ~a."
-                           number-str)))
+               (format #f (G_ "Creating ~a partition starting at ~a of ~a.")
+                       type-str start file-name)
+               (format #f (G_ "You are currently editing partition ~a.")
+                       number-str))
            #:title (if creation?
                        (G_ "Partition creation")
                        (G_ "Partition edit"))
@@ -662,7 +673,8 @@ by pressing the Exit button.~%~%")))
           #:title (if guided?
                       (G_ "Guided partitioning")
                       (G_ "Manual partitioning"))
-          #:info-textbox-width 70
+          #:info-textbox-width 76         ;we need a lot of room for INFO-TEXT
+          #:listbox-height 12
           #:listbox-items (disk-items)
           #:listbox-item->text cdr
           #:sort-listbox-items? #f
@@ -713,9 +725,9 @@ by pressing the Exit button.~%~%")))
   "Run a page asking the user for a partitioning method."
   (define (run-page devices)
     (let* ((items
-            '((entire . "Guided - using the entire disk")
-              (entire-encrypted . "Guided - using the entire disk with encryption")
-              (manual . "Manual")))
+            `((entire . ,(G_ "Guided - using the entire disk"))
+              (entire-encrypted . ,(G_ "Guided - using the entire disk with encryption"))
+              (manual . ,(G_ "Manual"))))
            (result (run-listbox-selection-page
                     #:info-text (G_ "Please select a partitioning method.")
                     #:title (G_ "Partitioning method")
diff --git a/gnu/installer/newt/services.scm b/gnu/installer/newt/services.scm
index 6bcb6244ae..4f32d9077b 100644
--- a/gnu/installer/newt/services.scm
+++ b/gnu/installer/newt/services.scm
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com>
+;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -30,19 +31,70 @@
 (define (run-desktop-environments-cbt-page)
   "Run a page allowing the user to choose between various desktop
 environments."
-  (run-checkbox-tree-page
-   #:info-text (G_ "Please select the desktop(s) environment(s) you wish to \
-install. If you select multiple desktops environments, we will be able to \
-choose the one to use on the log-in screen with F1.")
-   #:title (G_ "Desktop environment")
-   #:items %desktop-environments
-   #:item->text desktop-environment-name
-   #:checkbox-tree-height 5
-   #:exit-button-callback-procedure
-   (lambda ()
-     (raise
-      (condition
-       (&installer-step-abort))))))
+  (let ((items (filter desktop-system-service? %system-services)))
+    (run-checkbox-tree-page
+     #:info-text (G_ "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.")
+     #:title (G_ "Desktop environment")
+     #:items items
+     #:selection (map system-service-recommended? items)
+     #:item->text system-service-name             ;no i18n for DE names
+     #:checkbox-tree-height 8
+     #:exit-button-callback-procedure
+     (lambda ()
+       (raise
+        (condition
+         (&installer-step-abort)))))))
+
+(define (run-networking-cbt-page)
+  "Run a page allowing the user to select networking services."
+  (let ((items (filter (lambda (service)
+                         (eq? 'networking (system-service-type service)))
+                       %system-services)))
+    (run-checkbox-tree-page
+     #:info-text (G_ "You can now select networking services to run on your \
+system.")
+     #:title (G_ "Network service")
+     #:items items
+     #:selection (map system-service-recommended? items)
+     #:item->text (compose G_ system-service-name)
+     #:checkbox-tree-height 5
+     #:exit-button-callback-procedure
+     (lambda ()
+       (raise
+        (condition
+         (&installer-step-abort)))))))
+
+(define (run-network-management-page)
+  "Run a page to select among several network management methods."
+  (let ((title (G_ "Network management")))
+    (run-listbox-selection-page
+     #:title title
+     #:info-text (G_ "Choose the method to manage network connections.
+
+We recommend NetworkManager or Connman for a WiFi-capable laptop; the DHCP \
+client may be enough for a server.")
+     #:info-textbox-width 70
+     #:listbox-items (filter (lambda (service)
+                               (eq? 'network-management
+                                    (system-service-type service)))
+                             %system-services)
+     #:listbox-item->text (compose G_ system-service-name)
+     #:sort-listbox-items? #f
+     #:button-text (G_ "Exit")
+     #:button-callback-procedure
+     (lambda _
+       (raise
+        (condition
+         (&installer-step-abort)))))))
 
 (define (run-services-page)
-  (run-desktop-environments-cbt-page))
+  (let ((desktop (run-desktop-environments-cbt-page)))
+    ;; When the user did not select any desktop services, and thus didn't get
+    ;; '%desktop-services', offer network management services.
+    (append desktop
+            (run-networking-cbt-page)
+            (if (null? desktop)
+                (list (run-network-management-page))
+                '()))))
diff --git a/gnu/installer/newt/timezone.scm b/gnu/installer/newt/timezone.scm
index 63b44af729..67bf41ff84 100644
--- a/gnu/installer/newt/timezone.scm
+++ b/gnu/installer/newt/timezone.scm
@@ -50,12 +50,15 @@ returned."
 
   (define (run-page timezone-tree)
     (define (loop path)
+      ;; XXX: Translation of time zones isn't perfect here because the
+      ;; "iso_3166-1" domain contains translation for "territories" (like
+      ;; "Antarctic") but not for continents (like "Africa").
       (let ((timezones (locate-children timezone-tree path)))
         (run-listbox-selection-page
          #:title (G_ "Timezone")
          #:info-text (G_ "Please select a timezone.")
          #:listbox-items timezones
-         #:listbox-item->text identity
+         #:listbox-item->text (cut gettext <> "iso_3166-1")
          #:button-text (if (null? path)
                            (G_ "Exit")
                            (G_ "Back"))
diff --git a/gnu/installer/newt/user.scm b/gnu/installer/newt/user.scm
index 59b1913cfc..deab056e0c 100644
--- a/gnu/installer/newt/user.scm
+++ b/gnu/installer/newt/user.scm
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com>
+;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -28,18 +29,31 @@
   #:use-module (srfi srfi-26)
   #:export (run-user-page))
 
-(define (run-user-add-page)
+(define* (run-user-add-page #:key (name "") (real-name "")
+                            (home-directory ""))
+  "Run a form to enter the user name, home directory, and password.  Use NAME,
+REAL-NAME, and HOME-DIRECTORY as the initial values in the form."
   (define (pad-label label)
     (string-pad-right label 20))
 
   (let* ((label-name
           (make-label -1 -1 (pad-label (G_ "Name"))))
+         (label-real-name
+          (make-label -1 -1 (pad-label (G_ "Real name"))))
          (label-home-directory
           (make-label -1 -1 (pad-label (G_ "Home directory"))))
+         (label-password
+          (make-label -1 -1 (pad-label (G_ "Password"))))
          (entry-width 30)
-         (entry-name (make-entry -1 -1 entry-width))
-         (entry-home-directory (make-entry -1 -1 entry-width))
-         (entry-grid (make-grid 2 2))
+         (entry-name (make-entry -1 -1 entry-width
+                                 #:initial-value name))
+         (entry-real-name (make-entry -1 -1 entry-width
+                                      #:initial-value real-name))
+         (entry-home-directory (make-entry -1 -1 entry-width
+                                           #:initial-value home-directory))
+         (entry-password (make-entry -1 -1 entry-width
+                                     #:flags FLAG-PASSWORD))
+         (entry-grid (make-grid 2 5))
          (button-grid (make-grid 1 1))
          (ok-button (make-button -1 -1 (G_ "OK")))
          (grid (make-grid 1 2))
@@ -50,8 +64,12 @@
 
     (set-entry-grid-field 0 0 label-name)
     (set-entry-grid-field 1 0 entry-name)
-    (set-entry-grid-field 0 1 label-home-directory)
-    (set-entry-grid-field 1 1 entry-home-directory)
+    (set-entry-grid-field 0 1 label-real-name)
+    (set-entry-grid-field 1 1 entry-real-name)
+    (set-entry-grid-field 0 2 label-home-directory)
+    (set-entry-grid-field 1 2 entry-home-directory)
+    (set-entry-grid-field 0 3 label-password)
+    (set-entry-grid-field 1 3 entry-password)
 
     (set-grid-field button-grid 0 0 GRID-ELEMENT-COMPONENT ok-button)
 
@@ -59,11 +77,17 @@
      entry-name
      (lambda (component)
        (set-entry-text entry-home-directory
-                       (string-append "/home/" (entry-value entry-name)))))
+                       (string-append "/home/" (entry-value entry-name)))
+
+       (when (string-null? (entry-value entry-real-name))
+         (set-entry-text entry-real-name
+                         (string-titlecase (entry-value entry-name))))))
 
     (add-components-to-form form
-                            label-name label-home-directory
-                            entry-name entry-home-directory
+                            label-name label-real-name
+                            label-home-directory label-password
+                            entry-name entry-real-name
+                            entry-home-directory entry-password
                             ok-button)
 
     (make-wrapped-grid-window (vertically-stacked-grid
@@ -82,19 +106,57 @@
             (when (eq? exit-reason 'exit-component)
               (cond
                ((components=? argument ok-button)
-                (let ((name (entry-value entry-name))
-                      (home-directory (entry-value entry-home-directory)))
+                (let ((name           (entry-value entry-name))
+                      (real-name      (entry-value entry-real-name))
+                      (home-directory (entry-value entry-home-directory))
+                      (password       (entry-value entry-password)))
                   (if (or (string=? name "")
                           (string=? home-directory ""))
                       (begin
                         (error-page)
                         (run-user-add-page))
-                      (user
-                       (name name)
-                       (home-directory home-directory))))))))
+                      (let ((password (confirm-password password)))
+                        (if password
+                            (user
+                             (name name)
+                             (real-name real-name)
+                             (home-directory home-directory)
+                             (password password))
+                            (run-user-add-page #:name name
+                                               #:real-name real-name
+                                               #:home-directory
+                                               home-directory)))))))))
           (lambda ()
             (destroy-form-and-pop form)))))))
 
+(define* (confirm-password password #:optional (try-again (const #f)))
+  "Ask the user to confirm PASSWORD, a possibly empty string.  Call TRY-AGAIN,
+a thunk, if the confirmation doesn't match PASSWORD, and return its result."
+  (define confirmation
+    (run-input-page (G_ "Please confirm the password.")
+                    (G_ "Password confirmation required")
+                    #:allow-empty-input? #t
+                    #:input-flags FLAG-PASSWORD))
+
+  (if (string=? password confirmation)
+      password
+      (begin
+        (run-error-page
+         (G_ "Password mismatch, please try again.")
+         (G_ "Password error"))
+        (try-again))))
+
+(define (run-root-password-page)
+  ;; TRANSLATORS: Leave "root" untranslated: it refers to the name of the
+  ;; system administrator account.
+  (define password
+    (run-input-page (G_ "Please choose a password for the system \
+administrator (\"root\").")
+                    (G_ "System administrator password")
+                    #:input-flags FLAG-PASSWORD))
+
+  (confirm-password password run-root-password-page))
+
 (define (run-user-page)
   (define (run users)
     (let* ((listbox (make-listbox
@@ -169,7 +231,12 @@
                   (run-error-page (G_ "Please create at least one user.")
                                   (G_ "No user"))
                   (run users))
-                users))))
+                (reverse users)))))
           (lambda ()
             (destroy-form-and-pop form))))))
-  (run '()))
+
+  ;; Add a "root" user simply to convey the root password.
+  (cons (user (name "root")
+              (home-directory "/root")
+              (password (run-root-password-page)))
+        (run '())))
diff --git a/gnu/installer/newt/welcome.scm b/gnu/installer/newt/welcome.scm
index b0b5429c0f..aec3e7a612 100644
--- a/gnu/installer/newt/welcome.scm
+++ b/gnu/installer/newt/welcome.scm
@@ -95,9 +95,11 @@ installation and reboot."
    (G_ "GNU Guix install")
    (G_ "Welcome to GNU Guix system installer!
 
-Please note that the present graphical installer is still under heavy \
-development, so you might want to prefer using the shell based process. \
-The documentation is accessible at any time by pressing CTRL-ALT-F2.")
+You will be guided through a graphical installation program.
+
+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.")
    logo
    #:listbox-items
    `((,(G_ "Graphical install using a terminal based interface")
diff --git a/gnu/installer/newt/wifi.scm b/gnu/installer/newt/wifi.scm
index 4cf5c128e7..da2f0b56d0 100644
--- a/gnu/installer/newt/wifi.scm
+++ b/gnu/installer/newt/wifi.scm
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com>
+;;; Copyright © 2019 Meiyo Peng <meiyo@riseup.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -80,7 +81,7 @@ nmc_wifi_strength_bars."
                  (message (G_ "Unable to find a wifi technology"))))))))
 
 (define (draw-scanning-page)
-  "Draw a page to indicate a wifi scan in in progress."
+  "Draw a page to indicate a wifi scan in progress."
   (draw-info-page (G_ "Scanning wifi for available networks, please wait.")
                   (G_ "Scan in progress")))
 
diff --git a/gnu/installer/parted.scm b/gnu/installer/parted.scm
index 642b8c6d8a..7cc2217cbe 100644
--- a/gnu/installer/parted.scm
+++ b/gnu/installer/parted.scm
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2018, 2019 Mathieu Othacehe <m.othacehe@gmail.com>
+;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -24,6 +25,10 @@
   #:use-module ((gnu build file-systems)
                 #:select (read-partition-uuid
                           read-luks-partition-uuid))
+  #:use-module ((gnu build linux-modules)
+                #:select (missing-modules))
+  #:use-module ((gnu system linux-initrd)
+                #:select (%base-initrd-modules))
   #:use-module (guix build syscalls)
   #:use-module (guix build utils)
   #:use-module (guix records)
@@ -1243,22 +1248,51 @@ from (gnu system mapped-devices) and return it."
       (target ,label)
       (type luks-device-mapping))))
 
+(define (root-user-partition? partition)
+  "Return true if PARTITION is the root partition."
+  (let ((mount-point (user-partition-mount-point partition)))
+    (and mount-point
+         (string=? mount-point "/"))))
+
 (define (bootloader-configuration user-partitions)
   "Return the bootloader configuration field for USER-PARTITIONS."
-  (let* ((root-partition
-          (find (lambda (user-partition)
-                  (let ((mount-point
-                         (user-partition-mount-point user-partition)))
-                    (and mount-point
-                         (string=? mount-point "/"))))
-                user-partitions))
+  (let* ((root-partition (find root-user-partition?
+                               user-partitions))
          (root-partition-disk (user-partition-disk-file-name root-partition)))
     `((bootloader-configuration
        ,@(if (efi-installation?)
              `((bootloader grub-efi-bootloader)
                (target ,(default-esp-mount-point)))
              `((bootloader grub-bootloader)
-               (target ,root-partition-disk)))))))
+               (target ,root-partition-disk)))
+
+       ;; XXX: Assume we defined the 'keyboard-layout' field of
+       ;; <operating-system> right above.
+       (keyboard-layout keyboard-layout)))))
+
+(define (user-partition-missing-modules user-partitions)
+  "Return the list of kernel modules missing from the default set of kernel
+modules to access USER-PARTITIONS."
+  (let ((devices (filter user-partition-crypt-label user-partitions))
+        (root    (find root-user-partition? user-partitions)))
+    (delete-duplicates
+     (append-map (lambda (device)
+                   (catch 'system-error
+                     (lambda ()
+                       (missing-modules device %base-initrd-modules))
+                     (const '())))
+                 (delete-duplicates
+                  (map user-partition-file-name
+                       (cons root devices)))))))
+
+(define (initrd-configuration user-partitions)
+  "Return an 'initrd-modules' field with everything needed for
+USER-PARTITIONS, or return nothing."
+  (match (user-partition-missing-modules user-partitions)
+    (()
+     '())
+    ((modules ...)
+     `((initrd-modules ',modules)))))
 
 (define (user-partitions->configuration user-partitions)
   "Return the configuration field for USER-PARTITIONS."
@@ -1266,10 +1300,11 @@ from (gnu system mapped-devices) and return it."
          (swap-devices (map user-partition-file-name swap-user-partitions))
          (encrypted-partitions
           (filter user-partition-crypt-label user-partitions)))
-    `(,@(if (null? swap-devices)
+    `((bootloader ,@(bootloader-configuration user-partitions))
+      ,@(initrd-configuration user-partitions)
+      ,@(if (null? swap-devices)
             '()
             `((swap-devices (list ,@swap-devices))))
-      (bootloader ,@(bootloader-configuration user-partitions))
       ,@(if (null? encrypted-partitions)
             '()
             `((mapped-devices
diff --git a/gnu/installer/services.scm b/gnu/installer/services.scm
index ed44b87682..fbfcdac4e5 100644
--- a/gnu/installer/services.scm
+++ b/gnu/installer/services.scm
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com>
+;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -18,42 +19,129 @@
 
 (define-module (gnu installer services)
   #:use-module (guix records)
-  #:export (<desktop-environment>
-            desktop-environment
-            make-desktop-environment
-            desktop-environment-name
-            desktop-environment-snippet
+  #:use-module (srfi srfi-1)
+  #:export (system-service?
+            system-service-name
+            system-service-type
+            system-service-recommended?
+            system-service-snippet
+            system-service-packages
 
-            %desktop-environments
-            desktop-environments->configuration))
+            desktop-system-service?
+            networking-system-service?
 
-(define-record-type* <desktop-environment>
-  desktop-environment make-desktop-environment
-  desktop-environment?
-  (name            desktop-environment-name) ;string
-  (snippet         desktop-environment-snippet)) ;symbol
+            %system-services
+            system-services->configuration))
+
+(define-record-type* <system-service>
+  system-service make-system-service
+  system-service?
+  (name            system-service-name)           ;string
+  (type            system-service-type)           ;'desktop | 'networking
+  (recommended?    system-service-recommended?    ;Boolean
+                   (default #f))
+  (snippet         system-service-snippet         ;list of sexps
+                   (default '()))
+  (packages        system-service-packages        ;list of sexps
+                   (default '())))
 
 ;; This is the list of desktop environments supported as services.
-(define %desktop-environments
-  (list
-   (desktop-environment
-    (name "GNOME")
-    (snippet '(gnome-desktop-service)))
-   (desktop-environment
-    (name "Xfce")
-    (snippet '(xfce-desktop-service)))
-   (desktop-environment
-    (name "MATE")
-    (snippet '(mate-desktop-service)))
-   (desktop-environment
-    (name "Enlightenment")
-    (snippet '(service enlightenment-desktop-service-type)))))
-
-(define (desktop-environments->configuration desktop-environments)
-  "Return the configuration field for DESKTOP-ENVIRONMENTS."
-  (let ((snippets
-         (map desktop-environment-snippet desktop-environments)))
-    `(,@(if (null? snippets)
-            '()
-            `((services (cons* ,@snippets
-                               %desktop-services)))))))
+(define %system-services
+  (let-syntax ((desktop-environment (syntax-rules ()
+                                      ((_ fields ...)
+                                       (system-service
+                                        (type 'desktop)
+                                        fields ...))))
+               (G_ (syntax-rules ()               ;for xgettext
+                     ((_ str) str))))
+    (list
+     (desktop-environment
+      (name "GNOME")
+      (snippet '((service gnome-desktop-service-type))))
+     (desktop-environment
+      (name "Xfce")
+      (snippet '((service xfce-desktop-service-type))))
+     (desktop-environment
+      (name "MATE")
+      (snippet '((service mate-desktop-service-type))))
+     (desktop-environment
+      (name "Enlightenment")
+      (snippet '((service enlightenment-desktop-service-type))))
+     (desktop-environment
+      (name "Openbox")
+      (packages '((specification->package "openbox"))))
+     (desktop-environment
+      (name "awesome")
+      (packages '((specification->package "awesome"))))
+     (desktop-environment
+      (name "i3")
+      (packages '((specification->package "i3-wm"))))
+     (desktop-environment
+      (name "ratpoison")
+      (packages '((specification->package "ratpoison"))))
+
+     ;; Networking.
+     (system-service
+      (name (G_ "OpenSSH secure shell daemon (sshd)"))
+      (type 'networking)
+      (snippet '((service openssh-service-type))))
+     (system-service
+      (name (G_ "Tor anonymous network router"))
+      (type 'networking)
+      (snippet '((service tor-service-type))))
+     (system-service
+      (name (G_ "Mozilla NSS certificates, for HTTPS access"))
+      (type 'networking)
+      (packages '((specification->package "nss-certs")))
+      (recommended? #t))
+
+     ;; Network connectivity management.
+     (system-service
+      (name (G_ "NetworkManager network connection manager"))
+      (type 'network-management)
+      (snippet '((service network-manager-service-type)
+                 (service wpa-supplicant-service-type))))
+     (system-service
+      (name (G_ "Connman network connection manager"))
+      (type 'network-management)
+      (snippet '((service connman-service-type)
+                 (service wpa-supplicant-service-type))))
+     (system-service
+      (name (G_ "DHCP client (dynamic IP address assignment)"))
+      (type 'network-management)
+      (snippet '((service dhcp-client-service-type)))))))
+
+(define (desktop-system-service? service)
+  "Return true if SERVICE is a desktop environment service."
+  (eq? 'desktop (system-service-type service)))
+
+(define (networking-system-service? service)
+  "Return true if SERVICE is a desktop environment service."
+  (eq? 'networking (system-service-type service)))
+
+(define (system-services->configuration services)
+  "Return the configuration field for SERVICES."
+  (let* ((snippets (append-map system-service-snippet services))
+         (packages (append-map system-service-packages services))
+         (desktop? (find desktop-system-service? services))
+         (base     (if desktop?
+                       '%desktop-services
+                       '%base-services)))
+    (if (null? snippets)
+        `(,@(if (null? packages)
+                '()
+                `((packages (list ,@packages))))
+          (services ,base))
+        `(,@(if (null? packages)
+                '()
+                `((packages (list ,@packages))))
+          (services (append (list ,@snippets
+
+                                  ,@(if desktop?
+                                        ;; XXX: Assume 'keyboard-layout' is in
+                                        ;; scope.
+                                        '((set-xorg-configuration
+                                           (xorg-configuration
+                                            (keyboard-layout keyboard-layout))))
+                                        '()))
+                           ,base))))))
diff --git a/gnu/installer/steps.scm b/gnu/installer/steps.scm
index 3f0bdad4f7..039dd0ca10 100644
--- a/gnu/installer/steps.scm
+++ b/gnu/installer/steps.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com>
+;;; Copyright © 2018, 2019 Mathieu Othacehe <m.othacehe@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -113,16 +113,24 @@ return the accumalated result so far."
 
   (define* (skip-to-step step result
                          #:key todo-steps done-steps)
-    (match (list todo-steps done-steps)
-      (((todo . rest-todo) (prev-done ... last-done))
-       (if (eq? (installer-step-id todo)
-                (installer-step-id step))
+    (match todo-steps
+      ((todo . rest-todo)
+       (let ((found? (eq? (installer-step-id todo)
+                          (installer-step-id step))))
+         (cond
+          (found?
            (run result
                 #:todo-steps todo-steps
-                #:done-steps done-steps)
-           (skip-to-step step (pop-result result)
-                         #:todo-steps (cons last-done todo-steps)
-                         #:done-steps prev-done)))))
+                #:done-steps done-steps))
+          ((and (not found?)
+                (null? done-steps))
+           (error (format #f "Step ~a not found" (installer-step-id step))))
+          (else
+           (match done-steps
+             ((prev-done ... last-done)
+              (skip-to-step step (pop-result result)
+                            #:todo-steps (cons last-done todo-steps)
+                            #:done-steps prev-done)))))))))
 
   (define* (run result #:key todo-steps done-steps)
     (match todo-steps
@@ -215,7 +223,7 @@ found in RESULTS."
                   '())))
           steps))
         (modules '((use-modules (gnu))
-                   (use-service-modules desktop))))
+                   (use-service-modules desktop networking ssh xorg))))
     `(,@modules
       ()
       (operating-system ,@configuration))))
diff --git a/gnu/installer/user.scm b/gnu/installer/user.scm
index 1f8d40a011..4e701e64ce 100644
--- a/gnu/installer/user.scm
+++ b/gnu/installer/user.scm
@@ -18,12 +18,15 @@
 
 (define-module (gnu installer user)
   #:use-module (guix records)
+  #:use-module (srfi srfi-1)
   #:export (<user>
             user
             make-user
             user-name
+            user-real-name
             user-group
             user-home-directory
+            user-password
 
             users->configuration))
 
@@ -31,20 +34,28 @@
   user make-user
   user?
   (name            user-name)
+  (real-name       user-real-name
+                   (default ""))
   (group           user-group
                    (default "users"))
+  (password        user-password)
   (home-directory  user-home-directory))
 
 (define (users->configuration users)
   "Return the configuration field for USERS."
+  (define (user->sexp user)
+    `(user-account
+      (name ,(user-name user))
+      (comment ,(user-real-name user))
+      (group ,(user-group user))
+      (home-directory ,(user-home-directory user))
+      (supplementary-groups '("wheel" "netdev"
+                              "audio" "video"))))
+
   `((users (cons*
-             ,@(map (lambda (user)
-                      `(user-account
-                        (name ,(user-name user))
-                        (group ,(user-group user))
-                        (home-directory ,(user-home-directory user))
-                        (supplementary-groups
-                         (quote ("wheel" "netdev"
-                                 "audio" "video")))))
-                    users)
-             %base-user-accounts))))
+            ,@(filter-map (lambda (user)
+                            ;; Do not emit a 'user-account' form for "root".
+                            (and (not (string=? (user-name user) "root"))
+                                 (user->sexp user)))
+                          users)
+            %base-user-accounts))))
diff --git a/gnu/installer/utils.scm b/gnu/installer/utils.scm
index e91f90a84d..ddb96bc338 100644
--- a/gnu/installer/utils.scm
+++ b/gnu/installer/utils.scm
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com>
+;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -19,6 +20,8 @@
 (define-module (gnu installer utils)
   #:use-module (guix utils)
   #:use-module (guix build utils)
+  #:use-module (guix i18n)
+  #:use-module (srfi srfi-34)
   #:use-module (ice-9 rdelim)
   #:use-module (ice-9 regex)
   #:use-module (ice-9 textual-ports)
@@ -54,10 +57,37 @@ number. If no percentage is found, return #f"
     (and result
          (string->number (match:substring result 1)))))
 
-(define (run-shell-command command)
+(define* (run-shell-command command #:key locale)
+  "Run COMMAND, a string, with Bash, and in the given LOCALE.  Return true if
+COMMAND exited successfully, #f otherwise."
+  (define (pause)
+    (format #t (G_ "Press Enter to continue.~%"))
+    (read-line (current-input-port)))
+
   (call-with-temporary-output-file
    (lambda (file port)
-     (format port "~a~%" command)
-     ;; (format port "exit~%")
+     (when locale
+       (let ((supported? (false-if-exception
+                          (setlocale LC_ALL locale))))
+         ;; If LOCALE is not supported, then set LANGUAGE, which might at
+         ;; least give us translated messages.
+         (if supported?
+             (format port "export LC_ALL=\"~a\"~%" locale)
+             (format port "export LANGUAGE=\"~a\"~%"
+                     (string-take locale
+                                  (string-index locale #\_))))))
+
+     (format port "exec ~a~%" command)
      (close port)
-     (invoke "bash" "--init-file" file))))
+
+     (guard (c ((invoke-error? c)
+                (newline)
+                (format (current-error-port)
+                        (G_ "Command failed with exit code ~a.~%")
+                        (invoke-error-exit-status c))
+                (pause)
+                #f))
+       (invoke "bash" "--init-file" file)
+       (newline)
+       (pause)
+       #t))))
diff --git a/gnu/local.mk b/gnu/local.mk
index 41f42e588f..e6e32794b9 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -46,6 +46,7 @@ GNU_SYSTEM_MODULES =				\
   %D%/bootloader/grub.scm                       \
   %D%/bootloader/extlinux.scm                   \
   %D%/bootloader/u-boot.scm                     \
+  %D%/bootloader/depthcharge.scm                \
   %D%/ci.scm					\
   %D%/packages.scm				\
   %D%/packages/abduco.scm			\
@@ -230,6 +231,7 @@ GNU_SYSTEM_MODULES =				\
   %D%/packages/gxmessage.scm			\
   %D%/packages/hardware.scm			\
   %D%/packages/haskell.scm			\
+  %D%/packages/haskell-apps.scm			\
   %D%/packages/haskell-check.scm		\
   %D%/packages/haskell-crypto.scm		\
   %D%/packages/haskell-web.scm			\
@@ -341,6 +343,7 @@ GNU_SYSTEM_MODULES =				\
   %D%/packages/ninja.scm			\
   %D%/packages/node.scm				\
   %D%/packages/noweb.scm			\
+  %D%/packages/nss.scm				\
   %D%/packages/ntp.scm				\
   %D%/packages/nutrition.scm			\
   %D%/packages/nvi.scm				\
@@ -371,6 +374,7 @@ GNU_SYSTEM_MODULES =				\
   %D%/packages/php.scm				\
   %D%/packages/pkg-config.scm			\
   %D%/packages/plotutils.scm			\
+  %D%/packages/poedit.scm				\
   %D%/packages/polkit.scm			\
   %D%/packages/popt.scm				\
   %D%/packages/printers.scm			\
@@ -538,6 +542,7 @@ GNU_SYSTEM_MODULES =				\
   %D%/system/accounts.scm			\
   %D%/system/file-systems.scm			\
   %D%/system/install.scm			\
+  %D%/system/keyboard.scm			\
   %D%/system/linux-container.scm		\
   %D%/system/linux-initrd.scm			\
   %D%/system/locale.scm				\
@@ -582,9 +587,7 @@ GNU_SYSTEM_MODULES =				\
   %D%/tests/virtualization.scm			\
   %D%/tests/web.scm
 
-if ENABLE_INSTALLER
-
-GNU_SYSTEM_MODULES +=                           \
+INSTALLER_MODULES =                             \
   %D%/installer.scm      			\
   %D%/installer/connman.scm			\
   %D%/installer/final.scm			\
@@ -616,13 +619,19 @@ GNU_SYSTEM_MODULES +=                           \
   %D%/installer/newt/welcome.scm		\
   %D%/installer/newt/wifi.scm	
 
+# Always ship the installer modules but compile them only when
+# ENABLE_INSTALLER is true.
+if ENABLE_INSTALLER
+GNU_SYSTEM_MODULES += $(INSTALLER_MODULES)
+else !ENABLE_INSTALLER
+MODULES_NOT_COMPILED += $(INSTALLER_MODULES)
+endif
+
 installerdir = $(guilemoduledir)/%D%/installer
 dist_installer_DATA =				\
   %D%/installer/aux-files/logo.txt	        \
   %D%/installer/aux-files/SUPPORTED
 
-endif ENABLE_INSTALLER
-
 # Modules that do not need to be compiled.
 MODULES_NOT_COMPILED +=				\
   %D%/build/shepherd.scm			\
@@ -674,6 +683,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/beignet-correct-file-names.patch		\
   %D%/packages/patches/binutils-boot-2.20.1a.patch		\
   %D%/packages/patches/biber-fix-encoding-write.patch		\
+  %D%/packages/patches/bind-fix-unused-pk11-ecc-constants.patch	\
   %D%/packages/patches/binutils-loongson-workaround.patch	\
   %D%/packages/patches/blender-2.79-newer-ffmpeg.patch		\
   %D%/packages/patches/blender-2.79-python-3.7-fix.patch	\
@@ -728,6 +738,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/doc++-segfault-fix.patch			\
   %D%/packages/patches/docker-engine-test-noinstall.patch	\
   %D%/packages/patches/docker-fix-tests.patch			\
+  %D%/packages/patches/docker-use-fewer-modprobes.patch		\
   %D%/packages/patches/dovecot-trees-support-dovecot-2.3.patch	\
   %D%/packages/patches/doxygen-test.patch			\
   %D%/packages/patches/dvd+rw-tools-add-include.patch 		\
@@ -742,7 +753,9 @@ dist_patch_DATA =						\
   %D%/packages/patches/emacs-scheme-complete-scheme-r5rs-info.patch	\
   %D%/packages/patches/emacs-source-date-epoch.patch		\
   %D%/packages/patches/emacs-realgud-fix-configure-ac.patch	\
+  %D%/packages/patches/emacs-undohist-ignored.patch	\
   %D%/packages/patches/emacs-wordnut-require-adaptive-wrap.patch	\
+  %D%/packages/patches/emacs-zones-called-interactively.patch	\
   %D%/packages/patches/enlightenment-fix-setuid-path.patch	\
   %D%/packages/patches/erlang-man-path.patch			\
   %D%/packages/patches/eudev-rules-directory.patch		\
@@ -767,6 +780,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/findutils-localstatedir.patch		\
   %D%/packages/patches/findutils-makedev.patch			\
   %D%/packages/patches/findutils-test-xargs.patch		\
+  %D%/packages/patches/flac-CVE-2017-6888.patch		\
   %D%/packages/patches/flann-cmake-3.11.patch			\
   %D%/packages/patches/flint-ldconfig.patch			\
   %D%/packages/patches/foomatic-filters-CVE-2015-8327.patch	\
@@ -862,6 +876,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/groovy-add-exceptionutilsgenerator.patch	\
   %D%/packages/patches/grub-binutils-compat.patch		\
   %D%/packages/patches/grub-check-error-efibootmgr.patch	\
+  %D%/packages/patches/grub-efi-fat-serial-number.patch		\
   %D%/packages/patches/gsl-test-i686.patch			\
   %D%/packages/patches/gspell-dash-test.patch			\
   %D%/packages/patches/gst-plugins-good-libvpx-compat.patch	\
@@ -909,6 +924,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/icedtea-6-hotspot-gcc-segfault-workaround.patch  \
   %D%/packages/patches/icedtea-7-hotspot-gcc-segfault-workaround.patch  \
   %D%/packages/patches/id3lib-CVE-2007-4460.patch			\
+  %D%/packages/patches/idris-test-no-node.patch			\
   %D%/packages/patches/ilmbase-fix-tests.patch			\
   %D%/packages/patches/inkscape-poppler-compat3.patch		\
   %D%/packages/patches/intltool-perl-compatibility.patch	\
@@ -928,6 +944,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/kdbusaddons-kinit-file-name.patch	\
   %D%/packages/patches/khmer-use-libraries.patch                \
   %D%/packages/patches/libziparchive-add-includes.patch		\
+  %D%/packages/patches/localed-xorg-keyboard.patch		\
   %D%/packages/patches/kiki-level-selection-crash.patch		\
   %D%/packages/patches/kiki-makefile.patch			\
   %D%/packages/patches/kiki-missing-includes.patch		\
@@ -937,7 +954,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/kio-search-smbd-on-PATH.patch		\
   %D%/packages/patches/kmod-module-directory.patch		\
   %D%/packages/patches/kmscon-runtime-keymap-switch.patch	\
-  %D%/packages/patches/knot-include-system-lmdb-header.patch	\
   %D%/packages/patches/kpackage-allow-external-paths.patch	\
   %D%/packages/patches/kobodeluxe-paths.patch			\
   %D%/packages/patches/kobodeluxe-enemies-pipe-decl.patch	\
@@ -945,11 +961,12 @@ dist_patch_DATA =						\
   %D%/packages/patches/kobodeluxe-manpage-minus-not-hyphen.patch	\
   %D%/packages/patches/kobodeluxe-midicon-segmentation-fault.patch	\
   %D%/packages/patches/kobodeluxe-graphics-window-signed-char.patch	\
+  %D%/packages/patches/kodi-set-libcurl-ssl-parameters.patch		\
   %D%/packages/patches/kodi-skip-test-449.patch		\
   %D%/packages/patches/laby-make-install.patch			\
+  %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/ledger-fix-uninitialized.patch		\
   %D%/packages/patches/liba52-enable-pic.patch			\
   %D%/packages/patches/liba52-link-with-libm.patch		\
   %D%/packages/patches/liba52-set-soname.patch			\
@@ -982,8 +999,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/libffi-3.2.1-complex-alpha.patch		\
   %D%/packages/patches/libjxr-fix-function-signature.patch	\
   %D%/packages/patches/libjxr-fix-typos.patch			\
-  %D%/packages/patches/libopenshot-fixup-tests.patch		\
-  %D%/packages/patches/libopenshot-tests-with-system-libs.patch	\
   %D%/packages/patches/libotr-test-auth-fix.patch		\
   %D%/packages/patches/libmad-armv7-thumb-pt1.patch		\
   %D%/packages/patches/libmad-armv7-thumb-pt2.patch		\
@@ -1017,7 +1032,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/lierolibre-newer-libconfig.patch		\
   %D%/packages/patches/lierolibre-remove-arch-warning.patch	\
   %D%/packages/patches/lierolibre-try-building-other-arch.patch	\
-  %D%/packages/patches/linkchecker-mark-more-tests-that-require-the-network.patch	\
+  %D%/packages/patches/linkchecker-tests-require-network.patch	\
   %D%/packages/patches/linux-pam-no-setfsuid.patch		\
   %D%/packages/patches/lirc-localstatedir.patch			\
   %D%/packages/patches/lirc-reproducible-build.patch		\
@@ -1065,6 +1080,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/mozjs38-version-detection.patch		\
   %D%/packages/patches/mrrescue-support-love-11.patch		\
   %D%/packages/patches/mrustc-0.8.0-fix-variable-length-integer-receiving.patch \
+  %D%/packages/patches/mtools-mformat-uninitialized.patch	\
   %D%/packages/patches/mumble-1.2.19-abs.patch			\
   %D%/packages/patches/mumps-build-parallelism.patch		\
   %D%/packages/patches/mupen64plus-ui-console-notice.patch	\
@@ -1083,6 +1099,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/ngircd-handle-zombies.patch		\
   %D%/packages/patches/nss-increase-test-timeout.patch		\
   %D%/packages/patches/nss-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				\
@@ -1093,6 +1110,10 @@ dist_patch_DATA =						\
   %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	\
+  %D%/packages/patches/ocaml-dose3-add-unix-dependency.patch	\
+  %D%/packages/patches/ocaml-dose3-Fix-for-ocaml-4.06.patch	\
+  %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	\
@@ -1102,7 +1123,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/openjdk-10-idlj-reproducibility.patch	\
   %D%/packages/patches/openocd-nrf52.patch			\
   %D%/packages/patches/opensmtpd-fix-crash.patch		\
-  %D%/packages/patches/openssh-CVE-2018-20685.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		\
@@ -1181,6 +1201,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/python2-larch-coverage-4.0a6-compatibility.patch \
   %D%/packages/patches/python-configobj-setuptools.patch	\
   %D%/packages/patches/python-faker-fix-build-32bit.patch	\
+  %D%/packages/patches/python-pyfakefs-remove-bad-test.patch	\
   %D%/packages/patches/python-flint-includes.patch		\
   %D%/packages/patches/python-mox3-python3.6-compat.patch	\
   %D%/packages/patches/python-testtools.patch			\
@@ -1188,6 +1209,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/python-pycrypto-CVE-2013-7459.patch	\
   %D%/packages/patches/python2-pygobject-2-gi-info-type-error-domain.patch \
   %D%/packages/patches/python-pygpgme-fix-pinentry-tests.patch	\
+  %D%/packages/patches/python-robotframework-honor-source-date-epoch.patch \
   %D%/packages/patches/python2-subprocess32-disable-input-test.patch	\
   %D%/packages/patches/python-unittest2-python3-compat.patch	\
   %D%/packages/patches/python-unittest2-remove-argparse.patch	\
@@ -1201,9 +1223,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/qtscript-disable-tests.patch		\
   %D%/packages/patches/quagga-reproducible-build.patch          \
   %D%/packages/patches/quickswitch-fix-dmenu-check.patch	\
-  %D%/packages/patches/quilt-test-fix-regex.patch		\
-  %D%/packages/patches/quilt-getopt-nondigit-param.patch	\
-  %D%/packages/patches/quilt-getopt-second-separator.patch	\
   %D%/packages/patches/qtwebkit-pbutils-include.patch		\
   %D%/packages/patches/randomjungle-disable-static-build.patch	\
   %D%/packages/patches/rapicorn-isnan.patch			\
@@ -1215,7 +1234,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/readline-6.2-CVE-2014-2524.patch		\
   %D%/packages/patches/red-eclipse-remove-gamma-name-hack.patch	\
   %D%/packages/patches/reposurgeon-add-missing-docbook-files.patch	\
-  %D%/packages/patches/reptyr-fix-gcc-7.patch			\
   %D%/packages/patches/ripperx-missing-file.patch		\
   %D%/packages/patches/rpcbind-CVE-2017-8779.patch		\
   %D%/packages/patches/rtags-separate-rct.patch			\
@@ -1252,8 +1270,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/snappy-add-O2-flag-in-CmakeLists.txt.patch	\
   %D%/packages/patches/sooperlooper-build-with-wx-30.patch 	\
   %D%/packages/patches/soundconverter-remove-gconf-dependency.patch	\
-  %D%/packages/patches/soundtouch-CVE-2018-14044-14045.patch 	\
-  %D%/packages/patches/soundtouch-CVE-2018-1000223.patch 	\
   %D%/packages/patches/sssd-curl-compat.patch			\
   %D%/packages/patches/steghide-fixes.patch			\
   %D%/packages/patches/streamlink-update-test.patch		\
@@ -1263,7 +1279,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/swig-guile-gc.patch			\
   %D%/packages/patches/swish-e-search.patch			\
   %D%/packages/patches/swish-e-format-security.patch		\
-  %D%/packages/patches/synfigstudio-fix-ui-with-gtk3.patch 	\
   %D%/packages/patches/stumpwm-fix-broken-read-one-line.patch	\
   %D%/packages/patches/t1lib-CVE-2010-2642.patch		\
   %D%/packages/patches/t1lib-CVE-2011-0764.patch		\
@@ -1277,9 +1292,8 @@ dist_patch_DATA =						\
   %D%/packages/patches/teensy-loader-cli-help.patch		\
   %D%/packages/patches/teeworlds-use-latest-wavpack.patch	\
   %D%/packages/patches/texinfo-5-perl-compat.patch		\
+  %D%/packages/patches/texlive-bin-CVE-2018-17407.patch		\
   %D%/packages/patches/texlive-bin-luatex-poppler-compat.patch	\
-  %D%/packages/patches/texlive-bin-pdftex-poppler-compat.patch	\
-  %D%/packages/patches/texlive-bin-xetex-poppler-compat.patch	\
   %D%/packages/patches/telegram-purple-adjust-test.patch	\
   %D%/packages/patches/texi2html-document-encoding.patch	\
   %D%/packages/patches/texi2html-i18n.patch			\
@@ -1296,6 +1310,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/totem-meson-easy-codec.patch		\
   %D%/packages/patches/tuxpaint-stamps-path.patch		\
   %D%/packages/patches/twinkle-include-qregexpvalidator.patch	\
+  %D%/packages/patches/u-boot-fix-mkimage-header-verification.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		\
@@ -1329,6 +1344,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/wavpack-CVE-2018-6767.patch		\
   %D%/packages/patches/wavpack-CVE-2018-7253.patch		\
   %D%/packages/patches/wavpack-CVE-2018-7254.patch		\
+  %D%/packages/patches/webkitgtk-sse2.patch			\
   %D%/packages/patches/weechat-python.patch			\
   %D%/packages/patches/wicd-bitrate-none-fix.patch		\
   %D%/packages/patches/wicd-get-selected-profile-fix.patch	\
diff --git a/gnu/packages.scm b/gnu/packages.scm
index f9a35588b5..4742f49405 100644
--- a/gnu/packages.scm
+++ b/gnu/packages.scm
@@ -32,6 +32,7 @@
                           mkdir-p))
   #:autoload   (guix profiles) (packages->manifest)
   #:use-module (guix describe)
+  #:use-module (guix deprecation)
   #:use-module (ice-9 vlist)
   #:use-module (ice-9 match)
   #:autoload   (ice-9 binary-ports) (put-bytevector)
@@ -55,6 +56,7 @@
             fold-packages
             fold-available-packages
 
+            find-newest-available-packages
             find-packages-by-name
             find-package-locations
             find-best-packages-by-name
@@ -190,6 +192,29 @@ flags."
               directory))
         %load-path)))
 
+;; This procedure is used by Emacs-Guix up to 0.5.1.1, so keep it for now.
+;; See <https://github.com/alezost/guix.el/issues/30>.
+(define-deprecated find-newest-available-packages
+  find-packages-by-name
+  (mlambda ()
+    "Return a vhash keyed by package names, and with
+associated values of the form
+
+  (newest-version newest-package ...)
+
+where the preferred package is listed first."
+    (fold-packages (lambda (p r)
+                     (let ((name    (package-name p))
+                           (version (package-version p)))
+                       (match (vhash-assoc name r)
+                         ((_ newest-so-far . pkgs)
+                          (case (version-compare version newest-so-far)
+                            ((>) (vhash-cons name `(,version ,p) r))
+                            ((=) (vhash-cons name `(,version ,p ,@pkgs) r))
+                            ((<) r)))
+                         (#f (vhash-cons name `(,version ,p) r)))))
+                   vlist-null)))
+
 (define (fold-available-packages proc init)
   "Fold PROC over the list of available packages.  For each available package,
 PROC is called along these lines:
diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm
index 9ed2e32324..dfc3467bf8 100644
--- a/gnu/packages/admin.scm
+++ b/gnu/packages/admin.scm
@@ -181,14 +181,14 @@ and provides a \"top-like\" mode (monitoring).")
 (define-public shepherd
   (package
     (name "shepherd")
-    (version "0.5.0")
+    (version "0.6.0")
     (source (origin
               (method url-fetch)
-              (uri (string-append "https://alpha.gnu.org/gnu/shepherd/shepherd-"
+              (uri (string-append "mirror://gnu/shepherd/shepherd-"
                                   version ".tar.gz"))
               (sha256
                (base32
-                "1wmciqml9yplnx1s4ynn00giqyk06rbrcsgvpjj2df47sawk2jp8"))))
+                "1ys2w83vm62spr8bx38sccfdpy9fqmj7wfywm5k8ihsy2k61da2i"))))
     (build-system gnu-build-system)
     (arguments
      '(#:configure-flags '("--localstatedir=/var")))
@@ -211,8 +211,68 @@ the execution of system services, replacing similar functionality found in
 typical init systems.  It provides dependency-handling through a convenient
 interface and is based on GNU Guile.")
     (license license:gpl3+)
-    (home-page "https://www.gnu.org/software/shepherd/")
-    (properties '((ftp-server . "alpha.gnu.org")))))
+    (home-page "https://www.gnu.org/software/shepherd/")))
+
+(define-public cloud-utils
+  (package
+    (name "cloud-utils")
+    (version "0.31")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://launchpad.net/cloud-utils/trunk/"
+             version "/+download/cloud-utils-" version ".tar.gz"))
+       (sha256
+        (base32
+         "07fl3dlqwdzw4xx7mcxhpkks6dnmaxha80zgs9f6wmibgzni8z0r"))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:make-flags
+       (let ((out (assoc-ref %outputs "out")))
+         (list (string-append "BINDIR=" out "/bin")
+               (string-append "MANDIR=" out "/share/man/man1")
+               (string-append "DOCDIR=" out "/share/doc")))
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure)
+         (delete 'check)
+         (add-after 'install 'wrap
+           (lambda* (#:key outputs inputs #:allow-other-keys)
+             (let ((growpart (string-append (assoc-ref outputs "out")
+                                            "/bin/growpart")))
+               (wrap-program growpart
+                 `("PATH" ":" prefix (,(dirname (which "sfdisk"))
+                                      ,(dirname (which "readlink"))))))
+             #t)))))
+    (inputs
+     `(("python" ,python)
+       ("util-linux" ,util-linux))) ; contains sfdisk for growpart
+    (home-page "https://launchpad.net/cloud-utils")
+    (synopsis "Set of utilities for cloud computing environments")
+    (description
+     "This package contains a set of utilities for cloud computing
+environments:
+
+@itemize @bullet
+@item @command{cloud-localds} Create a disk for cloud-init to utilize nocloud
+@item @command{cloud-publish-image} Wrapper for cloud image publishing
+@item @command{cloud-publish-tarball} Wrapper for publishing cloud tarballs
+@item @command{cloud-publish-ubuntu} Import a Ubuntu cloud image
+@item @command{ec2metadata} Query and display @acronym{EC2,Amazon Elastic
+  Compute Cloud} metadata
+@item @command{growpart} Grow a partition to fill the device
+@item @command{mount-image-callback} Mount a file and run a command
+@item @command{resize-part-image} Resize a partition image to a new size
+@item @command{ubuntu-cloudimg-query} Get the latest Ubuntu
+  @acronym{AMI,Amazon Machine Image}
+@item @command{ubuntu-ec2-run} Run a @acronym{EC2,Amazon Elastic Compute
+  Cloud} instance using Ubuntu
+@item @command{vcs-run} Obtain a repository, and run a command
+@item @command{write-mime-multipart} Handle multipart
+  @acronym{MIME,Multipurpose Internet Mail Extensions} messages
+@end itemize")
+    (license license:gpl3)))
 
 (define-public daemontools
   (package
@@ -475,8 +535,8 @@ login, passwd, su, groupadd, and useradd.")
     (synopsis "Getty for the text console")
     (description
      "Small console getty that is started on the Linux text console,
-asks for a login name and then transfers over to 'login'.  It is extended to
-allow automatic login and starting any app.")
+asks for a login name and then transfers over to @code{login}.  It is extended
+to allow automatic login and starting any app.")
     (license license:gpl2+)))
 
 (define-public net-base
@@ -1140,7 +1200,8 @@ the client stations.  It implements key negotiation with a WPA Authenticator
 and it controls the roaming and IEEE 802.11 authentication/association of the
 WLAN driver.
 
-This package provides the 'wpa_supplicant' daemon and the 'wpa_cli' command.")
+This package provides the @code{wpa_supplicant} daemon and the @code{wpa_cli}
+command.")
 
     ;; In practice, this is linked against Readline, which makes it GPLv3+.
     (license license:bsd-3)
@@ -1286,7 +1347,7 @@ module slots, and the list of I/O ports (e.g. serial, parallel, USB).")
 (define-public acpica
   (package
     (name "acpica")
-    (version "20190215")
+    (version "20190405")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -1294,7 +1355,7 @@ module slots, and the list of I/O ports (e.g. serial, parallel, USB).")
                     version ".tar.gz"))
               (sha256
                (base32
-                "1iy2zwi8aicq0b5a0phfacvk1f9z1d89cx43adcf0qh82gb9m4wg"))))
+                "0hv6r65l8vk3f6i3by7i47vc1917qm47838bpq80lfn22784y53y"))))
     (build-system gnu-build-system)
     (native-inputs `(("flex" ,flex)
                      ("bison" ,bison)))
@@ -1598,13 +1659,13 @@ of supported upstream metrics systems simultaneously.")
 (define-public ansible
   (package
     (name "ansible")
-    (version "2.7.9")
+    (version "2.7.10")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "ansible" version))
        (sha256
-        (base32 "19vyf60zfmnv7frwm96bzqzvia69dysy9apk8bl84vr03ib9vrbf"))))
+        (base32 "15721d0bxymghxnlnknq43lszlxg3ybbcp2p5v424hhw6wg2v944"))))
     (build-system python-build-system)
     (native-inputs
      `(("python-bcrypt" ,python-bcrypt)
@@ -1735,18 +1796,18 @@ limits.")
 (define-public autojump
   (package
     (name "autojump")
-    (version "22.5.1")
+    (version "22.5.3")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/wting/autojump/archive/"
-                           "release-v" version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/wting/autojump.git")
+             (commit (string-append "release-v" version))))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "17z9j9936x0nizwrzf664bngh60x5qbvrrf1s5qdzd0f2gdanpvn"))))
+        (base32 "1rgpsh70manr2dydna9da4x7p8ahii7dgdgwir5fka340n1wrcws"))))
     (build-system gnu-build-system)
-    (native-inputs                      ;for tests
+    (native-inputs                      ; for tests
      `(("python-mock" ,python-mock)
        ("python-pytest" ,python-pytest)))
     (inputs
@@ -1754,6 +1815,11 @@ limits.")
     (arguments
      `(#:phases
        (modify-phases %standard-phases
+         (add-after 'unpack 'make-git-checkout-writable
+           ;; ‘install.py’ modifies files before installing them.
+           (lambda _
+             (for-each make-file-writable (find-files "."))
+             #t))
          (delete 'configure)
          (delete 'build)
          (replace 'check
@@ -2076,7 +2142,7 @@ a new command using the matched rule, and runs it.")
     (home-page "https://www.gentoo.com/di/")
     (synopsis "Advanced df like disk information utility")
     (description
-     "'di' is a disk information utility, displaying everything that your
+     "@code{di} is a disk information utility, displaying everything that your
 @code{df} command does and more.  It features the ability to display your disk
 usage in whatever format you prefer.  It is designed to be highly portable and
 produce uniform output across heterogeneous networks.")
@@ -2699,7 +2765,7 @@ Python loading in HPC environments.")
   (let ((real-name "inxi"))
     (package
       (name "inxi-minimal")
-      (version "3.0.32-1")
+      (version "3.0.33-1")
       (source
        (origin
          (method git-fetch)
@@ -2708,7 +2774,7 @@ Python loading in HPC environments.")
                (commit version)))
          (file-name (git-file-name real-name version))
          (sha256
-          (base32 "171xdip2alkp3g0k0sanaavvdcz6d0wlldj9lgj11xsdbhaaknnv"))))
+          (base32 "19bfdid4zp39irsdq3m6yyqf2336c30da35qgslrzcr2vh815g8c"))))
       (build-system trivial-build-system)
       (inputs
        `(("bash" ,bash-minimal)
@@ -2918,7 +2984,8 @@ Logitech Unifying Receiver.")
 (define-public lynis
   (package
     (name "lynis")
-    (version "2.7.2")
+    ;; Also update the ‘lynis-sdk’ input to the commit matching this release.
+    (version "2.7.4")
     (source
      (origin
        (method git-fetch)
@@ -2927,7 +2994,7 @@ Logitech Unifying Receiver.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0dbbfk47dpxx7zpb98n4w3ls3z5di57qnr2nsgxjvp49gk9j3f6k"))
+        (base32 "1jjk5hcxmp4f4ppsljiq95l2ln6b03azydap3b35lsvxkjybv88k"))
        (modules '((guix build utils)))
        (snippet
         '(begin
@@ -2944,11 +3011,10 @@ Logitech Unifying Receiver.")
            (method git-fetch)
            (uri (git-reference
                  (url "https://github.com/CISOfy/lynis-sdk")
-                 (commit "3310aef4f2b3dd97d166c96ad0253c89c4ad390d")))
+                 (commit "90f301e21c204792cf372f1cf05890a562f2e31b")))
            (file-name (git-file-name "lynis-sdk" version))
            (sha256
-            (base32
-             "0sqsrm5wal742yrwps8bqb8a8lxd93n4b93n3kkm1b30nbs25g7y"))))))
+            (base32 "1d0smr1fxrvbc3hl8lzy33im9ahzr0hgs3kk09r8g8xccjkcm52l"))))))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
diff --git a/gnu/packages/algebra.scm b/gnu/packages/algebra.scm
index e272cd990b..319a049d8a 100644
--- a/gnu/packages/algebra.scm
+++ b/gnu/packages/algebra.scm
@@ -5,7 +5,7 @@
 ;;; 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, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2017, 2019 Eric Bavier <bavier@member.fsf.org>
 ;;;
@@ -27,6 +27,7 @@
 (define-module (gnu packages algebra)
   #:use-module (gnu packages)
   #:use-module (gnu packages autotools)
+  #:use-module (gnu packages bison)
   #:use-module (gnu packages check)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages cpp)
@@ -42,6 +43,7 @@
   #:use-module (gnu packages mpi)
   #:use-module (gnu packages multiprecision)
   #:use-module (gnu packages perl)
+  #:use-module (gnu packages pulseaudio)
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages readline)
@@ -56,6 +58,7 @@
   #:use-module (guix build-system python)
   #:use-module (guix download)
   #:use-module (guix git-download)
+  #:use-module (guix hg-download)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
   #:use-module (guix utils))
@@ -245,10 +248,10 @@ precision.")
    (license license:gpl3+)
    (home-page "http://cmh.gforge.inria.fr/")))
 
-(define-public giac-xcas
+(define-public giac
   (package
-    (name "giac-xcas")
-    (version "1.5.0-43")
+    (name "giac")
+    (version "1.5.0-49")
     (source (origin
               (method url-fetch)
               ;; "~parisse/giac" is not used because the maintainer regularly
@@ -260,9 +263,8 @@ precision.")
                                   "source/giac_" version ".tar.gz"))
               (sha256
                (base32
-                "1j58cvpiddzxswfdh4ixyj1xsva7qwk8xjls29nqvryyykdfm4dp"))))
+                "0f4pkand9vmqfayw18jm5qxbhcwi1405qfd7ibzh9lwzz6amkm3l"))))
     (build-system gnu-build-system)
-    (outputs '("out" "doc"))            ;77MiB of documentation
     (arguments
      `(#:modules ((ice-9 ftw)
                   (guix build utils)
@@ -281,36 +283,36 @@ precision.")
              (substitute* "check/Makefile.in"
                (("chk_fhan11") ""))
              #t))
-         (add-after 'install 'install-doc
-           ;; Setting --docdir to "doc" output isn't sufficient as
-           ;; documentation and examples are scattered throughout the source.
+         (add-after 'install 'fix-doc
            (lambda* (#:key outputs #:allow-other-keys)
-             (let* ((out (assoc-ref outputs "out"))
-                    (doc (assoc-ref outputs "doc"))
-                    (docdir (string-append doc
-                                           "/share/doc/"
-                                           (string-append ,name "-" ,version))))
-               ;; For some reason, the install process moves
-               ;; "share/giac/examples" instead of "share/giac/doc" to
-               ;; "$(docdir)".  Clean up the mess and start over.
-               (delete-file-recursively (string-append doc "/share"))
-               (mkdir-p docdir)
-               (with-directory-excursion out
-                 (for-each (lambda (f)
-                             (unless (member f '("." ".."))
-                               (copy-recursively (string-append "share/giac/" f)
-                                                 (string-append docdir "/" f))))
-                           (scandir "share/giac"))
-                 (delete-file-recursively "share/giac")))
-             #t)))))
+             (let ((out (assoc-ref outputs "out")))
+               ;; Most French documentation has a non-commercial
+               ;; license, so we need to remove it.
+               (with-directory-excursion (string-append out "/share/giac/doc/fr")
+                 (for-each delete-file-recursively
+                           '("cascas" "casexo" "casgeo" "casrouge" "cassim"
+                             "castor")))
+               ;; Remove duplicate documentation in
+               ;; "%out/share/doc/giac/", where Xcas does not expect
+               ;; to find it.
+               (delete-file-recursively (string-append out "/share/doc/giac"))
+               #t)))
+         (add-after 'install 'remove-unnecessary-executable
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out")))
+               (delete-file (string-append out "/bin/xcasnew"))
+               #t))))))
     (inputs
+     ;;; TODO: Add libnauty.
      `(("fltk" ,fltk)
+       ("glpk" ,glpk)
        ("gmp" ,gmp)
        ("gsl" ,gsl)
        ("lapack" ,lapack)
        ("libao" ,ao)
        ("libjpeg" ,libjpeg)
        ("libpng" ,libpng)
+       ("libsamplerate" ,libsamplerate)
        ("libx11" ,libx11)
        ("libxinerama" ,libxinerama)
        ("libxft" ,libxft)
@@ -321,9 +323,12 @@ precision.")
        ("ntl" ,ntl)
        ("perl" ,perl)
        ("pari-gp" ,pari-gp)
-       ("tcsh" ,tcsh)
+       ("tcsh" ,tcsh)))
+    (native-inputs
+     `(("bison" ,bison)
+       ("flex" ,flex)
+       ("readline" ,readline)
        ("texlive" ,texlive-tiny)))
-    (native-inputs `(("readline" ,readline)))
     (home-page "https://www-fourier.ujf-grenoble.fr/~parisse/giac.html")
     (synopsis "Computer algebra system")
     (description
@@ -332,6 +337,9 @@ maple, mupad and the TI89.  It is available as a standalone program (graphic
 or text interfaces) or as a C++ library.")
     (license license:gpl3+)))
 
+(define-public giac-xcas
+  (deprecated-package "giac-xcas" giac))
+
 (define-public flint
   (package
    (name "flint")
@@ -498,7 +506,7 @@ matrices, and polynomials over the integers and over finite fields.")
 (define-public singular
   (package
    (name "singular")
-   (version "4.1.1p3")
+   (version "4.1.2p1")
    (source
     (origin
       (method url-fetch)
@@ -512,7 +520,7 @@ matrices, and polynomials over the integers and over finite fields.")
                         #\.) "-")
                       "/singular-" version ".tar.gz"))
              (sha256 (base32
-                      "1qqj9bm9pkzm0iyycpvm8x6s79wws3nq60lz25h8x1q61h3426sm"))))
+                      "0kvd55353fiqyq1msmi0kka66n5h0aqs7m3km60r01b1w2f8085m"))))
    (build-system gnu-build-system)
    (native-inputs
     `(("doxygen" ,doxygen)
@@ -857,6 +865,32 @@ features, and more.")
     ;; See 'COPYING.README' for details.
     (license license:mpl2.0)))
 
+(define-public eigen-for-tensorflow
+  (let ((changeset "fd6845384b86")
+        (revision "1"))
+    (package (inherit eigen)
+      (name "eigen-for-tensorflow")
+      (version (string-append "3.3.5-" revision "." changeset))
+      (source (origin
+                (method hg-fetch)
+                (uri (hg-reference
+                      (url "https://bitbucket.org/eigen/eigen")
+                      (changeset changeset)))
+                (sha256
+                 (base32
+                  "12cwgah63wqwb66xji048hcxc1z5zjg8a7701zlia5zbilnnk1n5"))
+                (file-name (string-append name "-" version "-checkout"))
+                (modules '((guix build utils)))
+                (snippet
+                 ;; There are 3 test failures in the "unsupported" directory,
+                 ;; but maintainers say it's a known issue and it's unsupported
+                 ;; anyway, so just skip them.
+                 '(begin
+                    (substitute* "unsupported/CMakeLists.txt"
+                      (("add_subdirectory\\(test.*")
+                       "# Do not build the tests for unsupported features.\n"))
+                    #t)))))))
+
 (define-public xtensor
   (package
     (name "xtensor")
diff --git a/gnu/packages/android.scm b/gnu/packages/android.scm
index 80eaab3e5c..7d5de08be9 100644
--- a/gnu/packages/android.scm
+++ b/gnu/packages/android.scm
@@ -538,7 +538,7 @@ that is safe to use for user space.  It also includes
     (native-inputs
      `(("android-core" ,(android-platform-system-core version))))
     (home-page "https://developer.android.com/")
-    (synopsis "Android ext4 filesystem utils")
+    (synopsis "Android ext4 file system utilities")
     (description "@code{android-ext4-utils} is a library in common use by the
 Android core.")
     (license license:asl2.0)))
diff --git a/gnu/packages/animation.scm b/gnu/packages/animation.scm
index 74a80ab046..b46382c035 100644
--- a/gnu/packages/animation.scm
+++ b/gnu/packages/animation.scm
@@ -41,18 +41,20 @@
   #:use-module (gnu packages qt)
   #:use-module (gnu packages video))
 
+;; ETL, synfig, and Synfig Studio are updated in tandem.
+(define synfig-version "1.2.2")
+
 (define-public etl
   (package
     (name "etl")
-    (version "0.04.22")
+    (version synfig-version)
     (source (origin
               (method url-fetch)
-              ;; Keep this synchronized with the synfig release version.
               (uri (string-append "mirror://sourceforge/synfig/releases/"
-                                  "1.2.0/source/ETL-" version ".tar.gz"))
+                                  version "/source/ETL-" version ".tar.gz"))
               (sha256
                (base32
-                "0ii73nsd3xzkhz6w1rnxwphl637j9w82xiy6apa9vin2isdynnmc"))))
+                "12sd8pz8l5xcxcmapkvih3brihdhdb6xmxisr9a415lydid9rh8d"))))
     (build-system gnu-build-system)
     (home-page "https://www.synfig.org")
     (synopsis "Extended C++ template library")
@@ -65,7 +67,7 @@ C++ @dfn{Standard Template Library} (STL).")
 (define-public synfig
   (package
     (name "synfig")
-    (version "1.2.0")
+    (version synfig-version)
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://sourceforge/synfig/releases/"
@@ -73,7 +75,7 @@ C++ @dfn{Standard Template Library} (STL).")
                                   ".tar.gz"))
               (sha256
                (base32
-                "1gqx4gn4c73rqwhsgzx0a460gr9hadmi28csp75rx30qavqsj7k1"))))
+                "1vy27kl68sbg41sfasa58k3p2nc1xfalvzk3k9gich9h90rpnpsz"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags
@@ -131,7 +133,8 @@ C++ @dfn{Standard Template Library} (STL).")
        ("openexr" ,openexr)
        ("pango" ,pango)))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     `(("intltool" ,intltool)
+       ("pkg-config" ,pkg-config)))
     (home-page "https://www.synfig.org")
     (synopsis "Vector-based 2D animation renderer")
     (description
@@ -143,7 +146,7 @@ for tweening, preventing the need to hand-draw each frame.")
 (define-public synfigstudio
   (package
     (name "synfigstudio")
-    (version "1.2.0")
+    (version synfig-version)
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://sourceforge/synfig/releases/"
@@ -151,16 +154,14 @@ for tweening, preventing the need to hand-draw each frame.")
                                   ".tar.gz"))
               (sha256
                (base32
-                "0fbckfbw8dzf0m2wv7vlmw492k1dqa3zf510z019d0as3zpnp6qm"))
+                "1ql92kh9z8w2j9yi3pr7hn7wh2r2j35xynwv9xlwyd7niackgykn"))
               (modules '((guix build utils)))
               (snippet
                '(begin
                   (substitute* "src/synfigapp/pluginmanager.cpp"
                     (("xmlpp::Node\\* n =")    "const xmlpp::Node* n =")
                     (("xmlpp::Node::NodeList") "xmlpp::Node::const_NodeList"))
-                  #t))
-              (patches
-               (search-patches "synfigstudio-fix-ui-with-gtk3.patch"))))
+                  #t))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases
diff --git a/gnu/packages/antivirus.scm b/gnu/packages/antivirus.scm
index 840b5410a6..5127ba1741 100644
--- a/gnu/packages/antivirus.scm
+++ b/gnu/packages/antivirus.scm
@@ -44,14 +44,14 @@
 (define-public clamav
   (package
     (name "clamav")
-    (version "0.101.1")
+    (version "0.101.2")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://www.clamav.net/downloads/production/"
                                   "clamav-" version ".tar.gz"))
               (sha256
                (base32
-                "01mq3z04fjbq5iq8wfwfim72iv3dn04d3ishc5lkhxpmnalqydps"))
+                "0d3n4y8i5q594h4cjglmvpk4jd73r9ajpp1bvq5lr9zpdzgyn4ha"))
               (modules '((guix build utils)))
               (snippet
                '(begin
diff --git a/gnu/packages/assembly.scm b/gnu/packages/assembly.scm
index 6cb23ce2a8..96662f0713 100644
--- a/gnu/packages/assembly.scm
+++ b/gnu/packages/assembly.scm
@@ -129,14 +129,14 @@ to the clients.")
 (define-public fasm
   (package
     (name "fasm")
-    (version "1.73.09")
+    (version "1.73.10")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://flatassembler.net/fasm-"
                            version ".tgz"))
        (sha256
-        (base32 "197bcj9aa5wpkvrlaafc1smxjss0fwdspq5fwhwgyy9cc7z5g0ym"))))
+        (base32 "1lk8vlr0vg7h8lhiav99paa5a1mi0r2m8agxjmczhhavqhx44c32"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f                      ; no tests exist
diff --git a/gnu/packages/astronomy.scm b/gnu/packages/astronomy.scm
index 2813062e95..ab5dcd92a7 100644
--- a/gnu/packages/astronomy.scm
+++ b/gnu/packages/astronomy.scm
@@ -1,7 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2016 John Darrington <jmd@gnu.org>
 ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
-;;; Copyright © 2018 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -23,6 +23,7 @@
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix download)
   #:use-module (guix utils)
+  #:use-module (gnu packages autotools)
   #:use-module (gnu packages image)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages gettext)
@@ -103,7 +104,7 @@ header.")
 (define-public gnuastro
   (package
     (name "gnuastro")
-    (version "0.8")
+    (version "0.9")
     (source
      (origin
        (method url-fetch)
@@ -111,7 +112,7 @@ header.")
                            version ".tar.lz"))
        (sha256
         (base32
-         "0gx6iar3z07k9sdvpa6kchsz6fpk94xn5vcvbcigssl2dwqmlnkb"))))
+         "1c1894ixz3l8p1nmzkysgl9lz8vpqbfw1dd404kh6lvrpml7jzig"))))
     (inputs
      `(("cfitsio" ,cfitsio)
        ("gsl" ,gsl)
@@ -120,7 +121,8 @@ header.")
        ("wcslib" ,wcslib)
        ("zlib" ,zlib)))
     (native-inputs
-     `(("lzip" ,lzip)))
+     `(("libtool" ,libtool)
+       ("lzip" ,lzip)))
     (build-system gnu-build-system)
     (home-page "https://www.gnu.org/software/gnuastro/")
     (synopsis "Astronomy utilities")
@@ -131,7 +133,7 @@ programs for the manipulation and analysis of astronomical data.")
 (define-public stellarium
   (package
     (name "stellarium")
-    (version "0.18.3")
+    (version "0.19.0")
     (source (origin
              (method url-fetch)
              (uri (string-append "https://github.com/Stellarium/" name
@@ -139,7 +141,7 @@ programs for the manipulation and analysis of astronomical data.")
                                  "/" name "-" version ".tar.gz"))
              (sha256
               (base32
-               "1mm8rjcb8j56m3kfigpix5vxviw1616kvl9ws2s3s5gdyngljrc3"))))
+               "1mjjqcpgm5a1022x0mpqj3v6qkvpm9wqm1hqyg0mlypc5681va8a"))))
     (build-system cmake-build-system)
     (inputs
      `(("qtbase" ,qtbase)
@@ -161,13 +163,6 @@ programs for the manipulation and analysis of astronomical data.")
                                 (assoc-ref %build-inputs "qtserialport")
                                 "/include/qt5"))
        #:phases (modify-phases %standard-phases
-                  ;; Skip a test that assumes Stellarium is "installed":
-                  ;; https://bugs.gentoo.org/674472
-                  (add-after 'unpack 'patch-tests
-                    (lambda _
-                      (substitute* "src/tests/testEphemeris.cpp"
-                        (("ifndef Q_OS_WIN") "if 0"))
-                      #t))
                   (add-before 'check 'set-offscreen-display
                     (lambda _
                       ;; make Qt render "offscreen", required for tests
diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index a38e77c996..49fcc511e6 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -4,7 +4,7 @@
 ;;; 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 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016, 2017 Alex Griffin <a@ajgrf.com>
 ;;; Copyright © 2016 ng0 <ng0@n0.is>
 ;;; Copyright © 2016 Lukas Gradl <lgradl@openmailbox.org>
@@ -547,14 +547,14 @@ plugins are provided.")
 (define-public calf
   (package
     (name "calf")
-    (version "0.90.1")
+    (version "0.90.2")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://calf-studio-gear.org/files/calf-"
                                   version ".tar.gz"))
               (sha256
                (base32
-                "0znwx5gidr5n503gya9n8gagr8cfym6cwlbiv2r6iksji7jc4fpb"))))
+                "0bn4j1klw2yfxz8clbmasaydifq25rdfsv0n6iisxrzcj1lx7sgh"))))
     (build-system gnu-build-system)
     (inputs
      `(("fluidsynth" ,fluidsynth)
@@ -713,7 +713,7 @@ emulation (valve, tape), bit fiddling (decimator, pointer-cast), etc.")
 (define-public csound
   (package
     (name "csound")
-    (version "6.12.0")
+    (version "6.12.2")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -722,7 +722,7 @@ emulation (valve, tape), bit fiddling (decimator, pointer-cast), etc.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0pv4s54cayvavdp6y30n3r1l5x83x9whyyd2v24y0dh224v3hbxi"))))
+                "01krxcf0alw9k7p5sv0s707600an4sl7lhw3bymbwgqrj0v2p9z2"))))
     (build-system cmake-build-system)
     (inputs
      `(("alsa-lib" ,alsa-lib)
@@ -943,7 +943,7 @@ gain controls.  There is also a global bypass switch and gain control.
 The 2nd order resonant filters are implemented using a Mitra-Regalia style
 lattice filter, which is stable even while parameters are being changed.
 
-All switches and controls are internally smoothed, so they can be used 'live'
+All switches and controls are internally smoothed, so they can be used @code{live}
 without any clicks or zipper noises.  This makes this plugin suitable for use
 in systems that allow automation of plugin control ports, such as Ardour, or
 for stage use.")
@@ -1104,7 +1104,7 @@ follower.")
 (define-public fluidsynth
   (package
     (name "fluidsynth")
-    (version "2.0.4")
+    (version "2.0.5")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -1113,7 +1113,7 @@ follower.")
               (file-name (string-append name "-" version "-checkout"))
               (sha256
                (base32
-                "1v2vji02fbrjgypwb4fw2r90hnfwfbfh3d24j8vjwlbqxhxp16s0"))))
+                "0rv0apxbj0cgm8f8sqf5xr6kdi4q58ph92ip6cg716ha0ca5lr8y"))))
     (build-system cmake-build-system)
     (arguments
      '(#:tests? #f                      ; no check target
@@ -1307,7 +1307,7 @@ patches that can be used with softsynths such as Timidity and WildMidi.")
 (define-public guitarix
   (package
     (name "guitarix")
-    (version "0.37.3")
+    (version "0.38.1")
     (source (origin
              (method url-fetch)
              (uri (string-append
@@ -1315,7 +1315,7 @@ patches that can be used with softsynths such as Timidity and WildMidi.")
                    version ".tar.xz"))
              (sha256
               (base32
-               "1wfm8wrwrnqpb4ihy75n7l9i6vml536jlq9pdx2pblbc4ba3paac"))))
+               "0bw7xnrx062nwb1bfj9x660h7069ncmz77szcs8icpqxrvhs7z80"))))
     (build-system waf-build-system)
     (arguments
      `(#:tests? #f ; no "check" target
@@ -2120,21 +2120,17 @@ different audio devices such as ALSA or PulseAudio.")
 (define-public qjackctl
   (package
     (name "qjackctl")
-    (version "0.5.6")
+    (version "0.5.7")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://sourceforge/qjackctl/qjackctl/"
                                   version "/qjackctl-" version ".tar.gz"))
               (sha256
                (base32
-                "0wlmbb9m7cf3wr7c2h2hji18592x2b119m7mx85wksjs6rjaq2mj"))))
+                "1g6a5j74p45yisl28bw4fcc9nr6b710ikk459p4mp6djh9gs8v95"))))
     (build-system gnu-build-system)
     (arguments
-     '(#:tests? #f                      ; no check target
-       ;; Disable xunique to prevent X hanging when starting qjackctl in
-       ;; tiling window managers such as StumpWM or i3
-       ;; (see https://github.com/rncbc/qjackctl/issues/13).
-       #:configure-flags '("--disable-xunique")))
+     '(#:tests? #f))                    ; no check target
     (inputs
      `(("jack" ,jack-1)
        ("alsa-lib" ,alsa-lib)
@@ -2320,7 +2316,7 @@ aimed at audio/musical applications.")
 (define-public rubberband
   (package
     (name "rubberband")
-    (version "1.8.1")
+    (version "1.8.2")
     (source (origin
               (method url-fetch)
               (uri
@@ -2330,9 +2326,19 @@ aimed at audio/musical applications.")
               (file-name (string-append name "-" version ".tar.bz2"))
               (sha256
                (base32
-                "05amrbrxx0da3w7m237q51799r8xgs4ffqabi2qv06hq8dpcj386"))))
+                "0462fmjnfqpv2qi0s6ny42drqarkr0xy9lw8frjmfgzyzl5n9294"))))
     (build-system gnu-build-system)
-    (arguments `(#:tests? #f)) ; no check target
+    (arguments
+     `(#:tests? #f                      ; no check target
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'skip-jni-installation
+           ;; ‘make install’ unconditionally installs librubberband-jni.so,
+           ;; which is never built by ‘make all’.  Skip it.
+           (lambda _
+             (substitute* "Makefile.in"
+               ((".*cp -f \\$\\(JNI_TARGET\\).*") ""))
+             #t)))))
     (inputs
      `(("ladspa" ,ladspa)
        ("libsamplerate" ,libsamplerate)
@@ -2685,18 +2691,16 @@ Tracker 3 S3M and Impulse Tracker IT files.")
 (define-public soundtouch
   (package
     (name "soundtouch")
-    (version "2.0.0")
+    (version "2.1.1")
     (source
      (origin
-       (method url-fetch)
-       (uri
-        (string-append
-         "http://www.surina.net/soundtouch/soundtouch-" version ".tar.gz"))
-       (patches (search-patches "soundtouch-CVE-2018-14044-14045.patch"
-                                "soundtouch-CVE-2018-1000223.patch"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://gitlab.com/soundtouch/soundtouch.git")
+             (commit version)))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "09cxr02mfyj2bg731bj0i9hh565x8l9p91aclxs8wpqv8b8zf96j"))))
+        (base32 "0p6jzgfgqw061702dmd2b6r4arz48ac3mmx2qkvvzf8s5jjzykdh"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("autoconf" ,autoconf)
@@ -2865,14 +2869,14 @@ interface.")
 (define-public qsynth
   (package
     (name "qsynth")
-    (version "0.5.5")
+    (version "0.5.6")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://sourceforge/qsynth/qsynth/" version
                            "/qsynth-" version ".tar.gz"))
        (sha256
-        (base32 "08x7znvbwi9miavcarymi7dsv8njmxzwzma20dbmz8j2aswm53w5"))))
+        (base32 "0h4hhja8qbyzd6v24flw9wr4mwl03nplryx1gyrppn7sg13l1sx6"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f                      ; no "check" phase
@@ -3379,14 +3383,14 @@ on the ALSA software PCM plugin.")
 (define-public snd
   (package
     (name "snd")
-    (version "19.2")
+    (version "19.3")
     (source (origin
               (method url-fetch)
               (uri (string-append "ftp://ccrma-ftp.stanford.edu/pub/Lisp/"
                                   "snd-" version ".tar.gz"))
               (sha256
                (base32
-                "1a6ls2hyvggss12idca22hq5vsq4jw2xkwrx22dx29i9926gdr6h"))))
+                "16j3fqyw361wdsr1076f0p3va2y7wdzq1lvr4ijz1ajmbxdlc723"))))
     (build-system glib-or-gtk-build-system)
     (arguments
      `(#:tests? #f                      ; no tests
@@ -3662,7 +3666,7 @@ surround).")
 (define-public libopenshot-audio
   (package
     (name "libopenshot-audio")
-    (version "0.1.7")
+    (version "0.1.8")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -3671,7 +3675,7 @@ surround).")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "08a8wbi28kwrdz4h0rs1b9vsr28ldfi8g75q54rj676y1vwg3qys"))))
+                "1fvp6nmf30xzkmcznakh8dv5vn9d7nq051pqcqv638hsfppkmcrl"))))
     (build-system cmake-build-system)
     (inputs
      `(("alsa-lib" ,alsa-lib)
@@ -3697,7 +3701,7 @@ library.")
 (define-public faudio
   (package
     (name "faudio")
-    (version "19.03")
+    (version "19.04")
     (source
      (origin
        (method git-fetch)
@@ -3706,7 +3710,7 @@ library.")
              (commit version)))
        (file-name (string-append name "-" version "-checkout"))
        (sha256
-        (base32 "0v5l67ixr5kd9jz5sza8xgzxamqnlgn3gs1q8gg6ir60g0jvzbd4"))))
+        (base32 "00lqf8bjcwm4k8yky9jmqghkxijcm2lxspb9zyl1270yqmj05kiw"))))
     (arguments
      '(#:tests? #f                      ; No tests.
        #:configure-flags '("-DFFMPEG=ON")))
diff --git a/gnu/packages/aux-files/linux-libre/5.0-arm-veyron.conf b/gnu/packages/aux-files/linux-libre/5.0-arm-veyron.conf
new file mode 100644
index 0000000000..8adef3294e
--- /dev/null
+++ b/gnu/packages/aux-files/linux-libre/5.0-arm-veyron.conf
@@ -0,0 +1,4574 @@
+#
+# Automatically generated file; DO NOT EDIT.
+# Linux/arm 5.0.3-gnu Kernel Configuration
+#
+
+#
+# Compiler: gcc (GCC) 7.4.0
+#
+CONFIG_CC_IS_GCC=y
+CONFIG_GCC_VERSION=70400
+CONFIG_CLANG_VERSION=0
+CONFIG_CC_HAS_ASM_GOTO=y
+CONFIG_IRQ_WORK=y
+CONFIG_BUILDTIME_EXTABLE_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_HOSTNAME="debsus"
+CONFIG_SWAP=y
+CONFIG_SYSVIPC=y
+CONFIG_SYSVIPC_SYSCTL=y
+CONFIG_POSIX_MQUEUE=y
+CONFIG_POSIX_MQUEUE_SYSCTL=y
+CONFIG_CROSS_MEMORY_ATTACH=y
+# CONFIG_USELIB is not set
+# CONFIG_AUDIT is not set
+CONFIG_HAVE_ARCH_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_HARDIRQS_SW_RESEND=y
+CONFIG_GENERIC_IRQ_CHIP=y
+CONFIG_IRQ_DOMAIN=y
+CONFIG_IRQ_DOMAIN_HIERARCHY=y
+CONFIG_HANDLE_DOMAIN_IRQ=y
+CONFIG_IRQ_FORCED_THREADING=y
+CONFIG_SPARSE_IRQ=y
+# CONFIG_GENERIC_IRQ_DEBUGFS is not set
+CONFIG_GENERIC_IRQ_MULTI_HANDLER=y
+CONFIG_ARCH_CLOCKSOURCE_DATA=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=y
+CONFIG_HIGH_RES_TIMERS=y
+# CONFIG_PREEMPT_NONE is not set
+# CONFIG_PREEMPT_VOLUNTARY is not set
+CONFIG_PREEMPT=y
+CONFIG_PREEMPT_COUNT=y
+
+#
+# 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 is not set
+# CONFIG_TASKSTATS is not set
+# CONFIG_PSI is not set
+CONFIG_CPU_ISOLATION=y
+
+#
+# RCU Subsystem
+#
+CONFIG_PREEMPT_RCU=y
+# CONFIG_RCU_EXPERT is not set
+CONFIG_SRCU=y
+CONFIG_TREE_SRCU=y
+CONFIG_TASKS_RCU=y
+CONFIG_RCU_STALL_COMMON=y
+CONFIG_RCU_NEED_SEGCBLIST=y
+# CONFIG_IKCONFIG 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
+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_DEBUG_BLK_CGROUP is not set
+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=y
+# CONFIG_CGROUP_DEBUG is not set
+CONFIG_SOCK_CGROUP_DATA=y
+CONFIG_NAMESPACES=y
+CONFIG_UTS_NS=y
+CONFIG_IPC_NS=y
+CONFIG_USER_NS=y
+CONFIG_PID_NS=y
+CONFIG_NET_NS=y
+# CONFIG_CHECKPOINT_RESTORE is not set
+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_CC_OPTIMIZE_FOR_PERFORMANCE is not set
+CONFIG_CC_OPTIMIZE_FOR_SIZE=y
+CONFIG_SYSCTL=y
+CONFIG_ANON_INODES=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=y
+# CONFIG_SYSCTL_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_ADVISE_SYSCALLS=y
+CONFIG_MEMBARRIER=y
+CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_ALL is not set
+CONFIG_KALLSYMS_BASE_RELATIVE=y
+CONFIG_BPF_SYSCALL=y
+# CONFIG_BPF_JIT_ALWAYS_ON is not set
+CONFIG_USERFAULTFD=y
+CONFIG_ARCH_HAS_MEMBARRIER_SYNC_CORE=y
+CONFIG_RSEQ=y
+# CONFIG_DEBUG_RSEQ is not set
+CONFIG_EMBEDDED=y
+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
+CONFIG_VM_EVENT_COUNTERS=y
+# CONFIG_SLUB_DEBUG is not set
+# 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 is not set
+# CONFIG_SLAB_FREELIST_HARDENED is not set
+CONFIG_SLUB_CPU_PARTIAL=y
+CONFIG_SYSTEM_DATA_VERIFICATION=y
+CONFIG_PROFILING=y
+CONFIG_TRACEPOINTS=y
+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_STACKTRACE_SUPPORT=y
+CONFIG_LOCKDEP_SUPPORT=y
+CONFIG_TRACE_IRQFLAGS_SUPPORT=y
+CONFIG_RWSEM_XCHGADD_ALGORITHM=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_ARM_PATCH_PHYS_VIRT=y
+CONFIG_GENERIC_BUG=y
+CONFIG_PGTABLE_LEVELS=3
+
+#
+# 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_NETX is not set
+# CONFIG_ARCH_IOP13XX is not set
+# CONFIG_ARCH_IOP32X is not set
+# CONFIG_ARCH_IOP33X is not set
+# CONFIG_ARCH_IXP4XX is not set
+# CONFIG_ARCH_DOVE is not set
+# CONFIG_ARCH_KS8695 is not set
+# CONFIG_ARCH_W90X900 is not set
+# CONFIG_ARCH_LPC32XX 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_DAVINCI 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
+# CONFIG_ARCH_VIRT is not set
+# CONFIG_ARCH_ACTIONS is not set
+# CONFIG_ARCH_ALPINE is not set
+# CONFIG_ARCH_ARTPEC is not set
+# CONFIG_ARCH_AT91 is not set
+# CONFIG_ARCH_AXXIA is not set
+# CONFIG_ARCH_BCM is not set
+# CONFIG_ARCH_BERLIN is not set
+# CONFIG_ARCH_DIGICOLOR is not set
+# CONFIG_ARCH_EXYNOS is not set
+# CONFIG_ARCH_HIGHBANK is not set
+# CONFIG_ARCH_HISI is not set
+# CONFIG_ARCH_MXC is not set
+# CONFIG_ARCH_KEYSTONE is not set
+# CONFIG_ARCH_MEDIATEK is not set
+# CONFIG_ARCH_MESON is not set
+# CONFIG_ARCH_MMP is not set
+# CONFIG_ARCH_MVEBU is not set
+# CONFIG_ARCH_NPCM is not set
+
+#
+# TI OMAP/AM/DM/DRA Family
+#
+# CONFIG_ARCH_OMAP3 is not set
+# CONFIG_ARCH_OMAP4 is not set
+# CONFIG_SOC_OMAP5 is not set
+# CONFIG_SOC_AM33XX is not set
+# CONFIG_SOC_AM43XX is not set
+# CONFIG_SOC_DRA7XX is not set
+# CONFIG_ARCH_SIRF is not set
+# CONFIG_ARCH_QCOM is not set
+# CONFIG_ARCH_RDA is not set
+# 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 is not set
+# CONFIG_PLAT_SPEAR is not set
+# CONFIG_ARCH_STI is not set
+# CONFIG_ARCH_STM32 is not set
+# CONFIG_ARCH_SUNXI is not set
+# CONFIG_ARCH_TANGO is not set
+# CONFIG_ARCH_TEGRA is not set
+# CONFIG_ARCH_UNIPHIER is not set
+# CONFIG_ARCH_U8500 is not set
+# CONFIG_ARCH_VEXPRESS is not set
+# CONFIG_ARCH_WM8850 is not set
+# CONFIG_ARCH_ZX is not set
+# CONFIG_ARCH_ZYNQ is not set
+
+#
+# Processor Type
+#
+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=y
+CONFIG_ARM_THUMB=y
+CONFIG_ARM_THUMBEE=y
+CONFIG_ARM_VIRT_EXT=y
+CONFIG_SWP_EMULATE=y
+# CONFIG_CPU_ICACHE_DISABLE 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_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_DEBUG_ALIGN_RODATA=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=y
+CONFIG_ARM_ERRATA_821420=y
+CONFIG_ARM_ERRATA_825619=y
+# CONFIG_ARM_ERRATA_852421 is not set
+CONFIG_ARM_ERRATA_852423=y
+
+#
+# Bus support
+#
+
+#
+# Kernel Features
+#
+CONFIG_HAVE_SMP=y
+CONFIG_SMP=y
+CONFIG_SMP_ON_UP=y
+CONFIG_ARM_CPU_TOPOLOGY=y
+CONFIG_SCHED_MC=y
+# CONFIG_SCHED_SMT is not set
+CONFIG_HAVE_ARM_SCU=y
+CONFIG_HAVE_ARM_ARCH_TIMER=y
+CONFIG_HAVE_ARM_TWD=y
+# CONFIG_MCPM is not set
+# CONFIG_BIG_LITTLE is not set
+CONFIG_VMSPLIT_3G=y
+# CONFIG_VMSPLIT_2G is not set
+# CONFIG_VMSPLIT_1G is not set
+CONFIG_PAGE_OFFSET=0xC0000000
+CONFIG_NR_CPUS=4
+CONFIG_HOTPLUG_CPU=y
+CONFIG_ARM_PSCI=y
+CONFIG_ARCH_NR_GPIO=288
+CONFIG_HZ_FIXED=0
+# CONFIG_HZ_100 is not set
+# CONFIG_HZ_200 is not set
+# CONFIG_HZ_250 is not set
+# CONFIG_HZ_300 is not set
+# CONFIG_HZ_500 is not set
+CONFIG_HZ_1000=y
+CONFIG_HZ=1000
+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_HAVE_ARCH_PFN_VALID=y
+CONFIG_HAVE_GENERIC_GUP=y
+CONFIG_HIGHMEM=y
+CONFIG_HIGHPTE=y
+CONFIG_HW_PERF_EVENTS=y
+CONFIG_SYS_SUPPORTS_HUGETLBFS=y
+CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=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_SECCOMP=y
+# CONFIG_PARAVIRT is not set
+# CONFIG_PARAVIRT_TIME_ACCOUNTING is not set
+# CONFIG_XEN is not set
+
+#
+# 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 is not set
+CONFIG_CMDLINE=""
+# CONFIG_KEXEC is not set
+# CONFIG_CRASH_DUMP is not set
+CONFIG_AUTO_ZRELADDR=y
+# CONFIG_EFI is not set
+
+#
+# CPU Power Management
+#
+
+#
+# CPU Frequency scaling
+#
+CONFIG_CPU_FREQ=y
+CONFIG_CPU_FREQ_GOV_ATTR_SET=y
+CONFIG_CPU_FREQ_GOV_COMMON=y
+CONFIG_CPU_FREQ_STAT=y
+# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
+CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y
+# 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 is not set
+# CONFIG_CPU_FREQ_GOV_USERSPACE is not set
+CONFIG_CPU_FREQ_GOV_ONDEMAND=y
+# CONFIG_CPU_FREQ_GOV_CONSERVATIVE is not set
+# CONFIG_CPU_FREQ_GOV_SCHEDUTIL is not set
+
+#
+# CPU frequency scaling drivers
+#
+CONFIG_CPUFREQ_DT=y
+CONFIG_CPUFREQ_DT_PLATDEV=y
+# CONFIG_ARM_BIG_LITTLE_CPUFREQ is not set
+# CONFIG_QORIQ_CPUFREQ is not set
+
+#
+# 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_DT_IDLE_STATES=y
+
+#
+# ARM CPU Idle Drivers
+#
+CONFIG_ARM_CPUIDLE=y
+# CONFIG_ARM_HIGHBANK_CPUIDLE is not set
+
+#
+# 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
+
+#
+# Power management options
+#
+CONFIG_SUSPEND=y
+CONFIG_SUSPEND_FREEZER=y
+# CONFIG_SUSPEND_SKIP_SYNC is not set
+# CONFIG_HIBERNATION is not set
+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 is not set
+CONFIG_ARCH_SUSPEND_POSSIBLE=y
+CONFIG_ARM_CPU_SUSPEND=y
+CONFIG_ARCH_HIBERNATION_POSSIBLE=y
+
+#
+# Firmware Drivers
+#
+CONFIG_ARM_PSCI_FW=y
+# CONFIG_ARM_PSCI_CHECKER is not set
+# CONFIG_ARM_SCMI_PROTOCOL is not set
+CONFIG_ARM_SCPI_PROTOCOL=y
+CONFIG_ARM_SCPI_POWER_DOMAIN=y
+# CONFIG_FIRMWARE_MEMMAP is not set
+# CONFIG_FW_CFG_SYSFS is not set
+# CONFIG_INTEL_STRATIX10_SERVICE is not set
+CONFIG_HAVE_ARM_SMCCC=y
+# CONFIG_GOOGLE_FIRMWARE is not set
+
+#
+# Tegra firmware driver
+#
+# CONFIG_ARM_CRYPTO is not set
+# CONFIG_VIRTUALIZATION is not set
+
+#
+# General architecture-dependent options
+#
+# CONFIG_OPROFILE is not set
+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_SET_MEMORY=y
+CONFIG_HAVE_ARCH_THREAD_STRUCT_WHITELIST=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
+CONFIG_HAVE_ARCH_JUMP_LABEL=y
+CONFIG_HAVE_RCU_TABLE_FREE=y
+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
+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_CLONE_BACKWARDS=y
+CONFIG_OLD_SIGSUSPEND3=y
+CONFIG_OLD_SIGACTION=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_REFCOUNT_FULL=y
+
+#
+# GCOV-based kernel profiling
+#
+# CONFIG_GCOV_KERNEL is not set
+CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y
+CONFIG_PLUGIN_HOSTCC="g++"
+CONFIG_HAVE_GCC_PLUGINS=y
+# CONFIG_GCC_PLUGINS is not set
+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=y
+# CONFIG_MODVERSIONS is not set
+# CONFIG_MODULE_SRCVERSION_ALL is not set
+# CONFIG_MODULE_SIG is not set
+# CONFIG_MODULE_COMPRESS is not set
+# CONFIG_TRIM_UNUSED_KSYMS is not set
+CONFIG_MODULES_TREE_LOOKUP=y
+CONFIG_BLOCK=y
+CONFIG_LBDAF=y
+CONFIG_BLK_SCSI_REQUEST=y
+CONFIG_BLK_DEV_BSG=y
+# CONFIG_BLK_DEV_BSGLIB is not set
+CONFIG_BLK_DEV_INTEGRITY=y
+# CONFIG_BLK_DEV_ZONED is not set
+# CONFIG_BLK_DEV_THROTTLING is not set
+# CONFIG_BLK_CMDLINE_PARSER is not set
+# CONFIG_BLK_WBT is not set
+# CONFIG_BLK_CGROUP_IOLATENCY is not set
+# CONFIG_BLK_DEBUG_FS is not set
+# CONFIG_BLK_SED_OPAL is not set
+
+#
+# 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 is not set
+CONFIG_EFI_PARTITION=y
+# CONFIG_SYSV68_PARTITION is not set
+# CONFIG_CMDLINE_PARTITION is not set
+CONFIG_BLK_MQ_PCI=y
+CONFIG_BLK_MQ_VIRTIO=y
+CONFIG_BLK_PM=y
+
+#
+# IO Schedulers
+#
+CONFIG_MQ_IOSCHED_DEADLINE=y
+CONFIG_MQ_IOSCHED_KYBER=y
+# CONFIG_IOSCHED_BFQ is not set
+CONFIG_ASN1=y
+CONFIG_UNINLINE_SPIN_UNLOCK=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_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_BINFMT_FLAT is not set
+CONFIG_BINFMT_MISC=m
+CONFIG_COREDUMP=y
+
+#
+# Memory Management options
+#
+CONFIG_FLATMEM=y
+CONFIG_FLAT_NODE_MEM_MAP=y
+CONFIG_MEMORY_ISOLATION=y
+CONFIG_SPLIT_PTLOCK_CPUS=4
+CONFIG_COMPACTION=y
+CONFIG_MIGRATION=y
+CONFIG_PHYS_ADDR_T_64BIT=y
+CONFIG_BOUNCE=y
+CONFIG_KSM=y
+CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
+CONFIG_TRANSPARENT_HUGEPAGE=y
+# CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS is not set
+CONFIG_TRANSPARENT_HUGEPAGE_MADVISE=y
+CONFIG_TRANSPARENT_HUGE_PAGECACHE=y
+# 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_ZPOOL=y
+CONFIG_ZBUD=y
+# CONFIG_Z3FOLD is not set
+CONFIG_ZSMALLOC=y
+# CONFIG_PGTABLE_MAPPING is not set
+# CONFIG_ZSMALLOC_STAT is not set
+CONFIG_GENERIC_EARLY_IOREMAP=y
+# CONFIG_IDLE_PAGE_TRACKING is not set
+# CONFIG_PERCPU_STATS is not set
+# CONFIG_GUP_BENCHMARK is not set
+CONFIG_ARCH_HAS_PTE_SPECIAL=y
+CONFIG_NET=y
+CONFIG_NET_INGRESS=y
+CONFIG_SKB_EXTENSIONS=y
+
+#
+# Networking options
+#
+CONFIG_PACKET=y
+CONFIG_PACKET_DIAG=y
+CONFIG_UNIX=y
+CONFIG_UNIX_DIAG=y
+# CONFIG_TLS is not set
+CONFIG_XFRM=y
+# CONFIG_XFRM_USER is not set
+# CONFIG_XFRM_INTERFACE is not set
+# CONFIG_XFRM_SUB_POLICY is not set
+# CONFIG_XFRM_MIGRATE is not set
+# CONFIG_XFRM_STATISTICS is not set
+# CONFIG_NET_KEY is not set
+# CONFIG_XDP_SOCKETS is not set
+CONFIG_INET=y
+CONFIG_IP_MULTICAST=y
+# CONFIG_IP_ADVANCED_ROUTER is not set
+# CONFIG_IP_PNP is not set
+# CONFIG_NET_IPIP is not set
+# CONFIG_NET_IPGRE_DEMUX is not set
+# CONFIG_IP_MROUTE is not set
+CONFIG_SYN_COOKIES=y
+# CONFIG_NET_FOU is not set
+# CONFIG_INET_AH is not set
+# CONFIG_INET_ESP is not set
+# CONFIG_INET_IPCOMP is not set
+# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
+# CONFIG_INET_XFRM_MODE_TUNNEL is not set
+# CONFIG_INET_XFRM_MODE_BEET is not set
+# CONFIG_INET_DIAG is not set
+# CONFIG_TCP_CONG_ADVANCED is not set
+CONFIG_TCP_CONG_CUBIC=y
+CONFIG_DEFAULT_TCP_CONG="cubic"
+# CONFIG_TCP_MD5SIG is not set
+CONFIG_IPV6=m
+CONFIG_IPV6_ROUTER_PREF=y
+CONFIG_IPV6_ROUTE_INFO=y
+CONFIG_IPV6_OPTIMISTIC_DAD=y
+# CONFIG_INET6_AH is not set
+# CONFIG_INET6_ESP is not set
+# CONFIG_INET6_IPCOMP is not set
+CONFIG_IPV6_MIP6=m
+# CONFIG_IPV6_ILA is not set
+# CONFIG_INET6_XFRM_MODE_TRANSPORT is not set
+# CONFIG_INET6_XFRM_MODE_TUNNEL is not set
+# CONFIG_INET6_XFRM_MODE_BEET is not set
+# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set
+# CONFIG_IPV6_SIT is not set
+# CONFIG_IPV6_TUNNEL is not set
+# CONFIG_IPV6_MULTIPLE_TABLES is not set
+# CONFIG_IPV6_MROUTE is not set
+# CONFIG_IPV6_SEG6_LWTUNNEL is not set
+# CONFIG_IPV6_SEG6_HMAC is not set
+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 is not set
+
+#
+# Core Netfilter Configuration
+#
+CONFIG_NETFILTER_INGRESS=y
+# CONFIG_NETFILTER_NETLINK_ACCT is not set
+# CONFIG_NETFILTER_NETLINK_QUEUE is not set
+# CONFIG_NETFILTER_NETLINK_LOG is not set
+# CONFIG_NETFILTER_NETLINK_OSF is not set
+CONFIG_NF_CONNTRACK=y
+# CONFIG_NF_LOG_NETDEV is not set
+CONFIG_NF_CONNTRACK_MARK=y
+CONFIG_NF_CONNTRACK_SECMARK=y
+# CONFIG_NF_CONNTRACK_ZONES is not set
+CONFIG_NF_CONNTRACK_PROCFS=y
+CONFIG_NF_CONNTRACK_EVENTS=y
+CONFIG_NF_CONNTRACK_TIMEOUT=y
+CONFIG_NF_CONNTRACK_TIMESTAMP=y
+# CONFIG_NF_CONNTRACK_LABELS is not set
+# CONFIG_NF_CT_PROTO_DCCP is not set
+# CONFIG_NF_CT_PROTO_SCTP is not set
+# CONFIG_NF_CT_PROTO_UDPLITE is not set
+# CONFIG_NF_CONNTRACK_AMANDA is not set
+# CONFIG_NF_CONNTRACK_FTP is not set
+# CONFIG_NF_CONNTRACK_H323 is not set
+# CONFIG_NF_CONNTRACK_IRC is not set
+# CONFIG_NF_CONNTRACK_NETBIOS_NS is not set
+# CONFIG_NF_CONNTRACK_SNMP is not set
+# CONFIG_NF_CONNTRACK_PPTP is not set
+# CONFIG_NF_CONNTRACK_SANE is not set
+# CONFIG_NF_CONNTRACK_SIP is not set
+# CONFIG_NF_CONNTRACK_TFTP is not set
+# CONFIG_NF_CT_NETLINK is not set
+# CONFIG_NF_CT_NETLINK_TIMEOUT is not set
+# CONFIG_NF_TABLES is not set
+CONFIG_NETFILTER_XTABLES=y
+
+#
+# Xtables combined modules
+#
+# CONFIG_NETFILTER_XT_MARK is not set
+# CONFIG_NETFILTER_XT_CONNMARK is not set
+
+#
+# Xtables targets
+#
+# CONFIG_NETFILTER_XT_TARGET_CLASSIFY is not set
+# CONFIG_NETFILTER_XT_TARGET_CONNMARK is not set
+# CONFIG_NETFILTER_XT_TARGET_CONNSECMARK is not set
+# CONFIG_NETFILTER_XT_TARGET_HMARK is not set
+# CONFIG_NETFILTER_XT_TARGET_IDLETIMER is not set
+# CONFIG_NETFILTER_XT_TARGET_LED is not set
+# CONFIG_NETFILTER_XT_TARGET_LOG is not set
+# CONFIG_NETFILTER_XT_TARGET_MARK is not set
+# CONFIG_NETFILTER_XT_TARGET_NFLOG is not set
+# CONFIG_NETFILTER_XT_TARGET_NFQUEUE is not set
+# CONFIG_NETFILTER_XT_TARGET_RATEEST is not set
+# CONFIG_NETFILTER_XT_TARGET_TEE is not set
+# CONFIG_NETFILTER_XT_TARGET_SECMARK is not set
+# CONFIG_NETFILTER_XT_TARGET_TCPMSS is not set
+
+#
+# Xtables matches
+#
+# CONFIG_NETFILTER_XT_MATCH_ADDRTYPE is not set
+# CONFIG_NETFILTER_XT_MATCH_BPF is not set
+CONFIG_NETFILTER_XT_MATCH_CGROUP=m
+# CONFIG_NETFILTER_XT_MATCH_CLUSTER is not set
+# CONFIG_NETFILTER_XT_MATCH_COMMENT is not set
+# CONFIG_NETFILTER_XT_MATCH_CONNBYTES is not set
+# CONFIG_NETFILTER_XT_MATCH_CONNLABEL is not set
+# CONFIG_NETFILTER_XT_MATCH_CONNLIMIT is not set
+# CONFIG_NETFILTER_XT_MATCH_CONNMARK is not set
+CONFIG_NETFILTER_XT_MATCH_CONNTRACK=y
+# CONFIG_NETFILTER_XT_MATCH_CPU is not set
+# CONFIG_NETFILTER_XT_MATCH_DCCP is not set
+# CONFIG_NETFILTER_XT_MATCH_DEVGROUP is not set
+# CONFIG_NETFILTER_XT_MATCH_DSCP is not set
+# CONFIG_NETFILTER_XT_MATCH_ECN is not set
+# CONFIG_NETFILTER_XT_MATCH_ESP is not set
+# CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set
+# CONFIG_NETFILTER_XT_MATCH_HELPER is not set
+# CONFIG_NETFILTER_XT_MATCH_HL is not set
+# CONFIG_NETFILTER_XT_MATCH_IPCOMP is not set
+# CONFIG_NETFILTER_XT_MATCH_IPRANGE is not set
+# CONFIG_NETFILTER_XT_MATCH_L2TP is not set
+# CONFIG_NETFILTER_XT_MATCH_LENGTH is not set
+# CONFIG_NETFILTER_XT_MATCH_LIMIT is not set
+# CONFIG_NETFILTER_XT_MATCH_MAC is not set
+# CONFIG_NETFILTER_XT_MATCH_MARK is not set
+# CONFIG_NETFILTER_XT_MATCH_MULTIPORT is not set
+# CONFIG_NETFILTER_XT_MATCH_NFACCT is not set
+# CONFIG_NETFILTER_XT_MATCH_OSF is not set
+# CONFIG_NETFILTER_XT_MATCH_OWNER is not set
+# CONFIG_NETFILTER_XT_MATCH_POLICY is not set
+# CONFIG_NETFILTER_XT_MATCH_PKTTYPE is not set
+# CONFIG_NETFILTER_XT_MATCH_QUOTA is not set
+# CONFIG_NETFILTER_XT_MATCH_RATEEST is not set
+# CONFIG_NETFILTER_XT_MATCH_REALM is not set
+# CONFIG_NETFILTER_XT_MATCH_RECENT is not set
+# CONFIG_NETFILTER_XT_MATCH_SCTP is not set
+# CONFIG_NETFILTER_XT_MATCH_SOCKET is not set
+# CONFIG_NETFILTER_XT_MATCH_STATE is not set
+# CONFIG_NETFILTER_XT_MATCH_STATISTIC is not set
+# CONFIG_NETFILTER_XT_MATCH_STRING is not set
+# CONFIG_NETFILTER_XT_MATCH_TCPMSS is not set
+# CONFIG_NETFILTER_XT_MATCH_TIME is not set
+# CONFIG_NETFILTER_XT_MATCH_U32 is not set
+# CONFIG_IP_SET is not set
+# CONFIG_IP_VS is not set
+
+#
+# IP: Netfilter Configuration
+#
+CONFIG_NF_DEFRAG_IPV4=y
+# CONFIG_NF_SOCKET_IPV4 is not set
+# CONFIG_NF_TPROXY_IPV4 is not set
+# CONFIG_NF_DUP_IPV4 is not set
+# CONFIG_NF_LOG_ARP is not set
+# CONFIG_NF_LOG_IPV4 is not set
+# CONFIG_NF_REJECT_IPV4 is not set
+# CONFIG_NF_NAT_IPV4 is not set
+CONFIG_IP_NF_IPTABLES=y
+# CONFIG_IP_NF_MATCH_AH is not set
+# CONFIG_IP_NF_MATCH_ECN is not set
+# CONFIG_IP_NF_MATCH_TTL is not set
+CONFIG_IP_NF_FILTER=y
+# CONFIG_IP_NF_TARGET_REJECT is not set
+# CONFIG_IP_NF_TARGET_SYNPROXY is not set
+# CONFIG_IP_NF_NAT is not set
+# CONFIG_IP_NF_MANGLE is not set
+# CONFIG_IP_NF_RAW is not set
+# CONFIG_IP_NF_ARPTABLES is not set
+
+#
+# IPv6: Netfilter Configuration
+#
+# CONFIG_NF_SOCKET_IPV6 is not set
+# CONFIG_NF_TPROXY_IPV6 is not set
+# CONFIG_NF_DUP_IPV6 is not set
+# CONFIG_NF_REJECT_IPV6 is not set
+# CONFIG_NF_LOG_IPV6 is not set
+# CONFIG_NF_NAT_IPV6 is not set
+# CONFIG_IP6_NF_IPTABLES is not set
+CONFIG_NF_DEFRAG_IPV6=y
+# CONFIG_BRIDGE_NF_EBTABLES is not set
+# CONFIG_BPFILTER is not set
+# CONFIG_IP_DCCP is not set
+# CONFIG_IP_SCTP is not set
+# CONFIG_RDS is not set
+# CONFIG_TIPC is not set
+# CONFIG_ATM is not set
+# CONFIG_L2TP is not set
+CONFIG_STP=m
+CONFIG_BRIDGE=m
+CONFIG_BRIDGE_IGMP_SNOOPING=y
+CONFIG_HAVE_NET_DSA=y
+# CONFIG_NET_DSA is not set
+# CONFIG_VLAN_8021Q is not set
+# CONFIG_DECNET is not set
+CONFIG_LLC=y
+# CONFIG_LLC2 is not set
+CONFIG_ATALK=y
+# CONFIG_DEV_APPLETALK is not set
+# CONFIG_X25 is not set
+# CONFIG_LAPB is not set
+# CONFIG_PHONET is not set
+# CONFIG_6LOWPAN is not set
+# CONFIG_IEEE802154 is not set
+# CONFIG_NET_SCHED is not set
+# CONFIG_DCB is not set
+# CONFIG_DNS_RESOLVER is not set
+# CONFIG_BATMAN_ADV is not set
+# CONFIG_OPENVSWITCH is not set
+# CONFIG_VSOCKETS is not set
+# CONFIG_NETLINK_DIAG is not set
+# CONFIG_MPLS is not set
+# CONFIG_NET_NSH is not set
+# CONFIG_HSR is not set
+# CONFIG_NET_SWITCHDEV is not set
+# CONFIG_NET_L3_MASTER_DEV is not set
+# 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 is not set
+# CONFIG_NET_DROP_MONITOR is not set
+# CONFIG_HAMRADIO is not set
+# CONFIG_CAN is not set
+CONFIG_BT=y
+CONFIG_BT_BREDR=y
+CONFIG_BT_RFCOMM=y
+# CONFIG_BT_RFCOMM_TTY is not set
+CONFIG_BT_BNEP=y
+# CONFIG_BT_BNEP_MC_FILTER is not set
+CONFIG_BT_BNEP_PROTO_FILTER=y
+CONFIG_BT_HIDP=y
+CONFIG_BT_HS=y
+CONFIG_BT_LE=y
+# CONFIG_BT_LEDS is not set
+# CONFIG_BT_SELFTEST is not set
+# CONFIG_BT_DEBUGFS is not set
+
+#
+# Bluetooth device drivers
+#
+CONFIG_BT_INTEL=y
+CONFIG_BT_HCIBTUSB=y
+# CONFIG_BT_HCIBTUSB_AUTOSUSPEND is not set
+# CONFIG_BT_HCIBTUSB_BCM is not set
+# CONFIG_BT_HCIBTUSB_RTL is not set
+# CONFIG_BT_HCIBTSDIO is not set
+# 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 is not set
+# CONFIG_BT_ATH3K is not set
+# CONFIG_AF_RXRPC is not set
+# CONFIG_AF_KCM is not set
+CONFIG_WIRELESS=y
+CONFIG_WEXT_CORE=y
+CONFIG_WEXT_PROC=y
+CONFIG_CFG80211=y
+# 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_MAC80211=y
+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 is not set
+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 is not set
+CONFIG_RFKILL=y
+CONFIG_RFKILL_LEDS=y
+# CONFIG_RFKILL_INPUT is not set
+# CONFIG_RFKILL_GPIO is not set
+CONFIG_NET_9P=m
+CONFIG_NET_9P_VIRTIO=m
+# CONFIG_NET_9P_DEBUG is not set
+# CONFIG_CAIF is not set
+# CONFIG_CEPH_LIB is not set
+# CONFIG_NFC is not set
+# CONFIG_PSAMPLE is not set
+# CONFIG_NET_IFE is not set
+# CONFIG_LWTUNNEL is not set
+CONFIG_GRO_CELLS=y
+# CONFIG_NET_DEVLINK is not set
+CONFIG_MAY_USE_DEVLINK=y
+CONFIG_FAILOVER=m
+CONFIG_HAVE_EBPF_JIT=y
+
+#
+# Device Drivers
+#
+CONFIG_ARM_AMBA=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 is not set
+# CONFIG_PCIE_ECRC is not set
+CONFIG_PCIEASPM=y
+# CONFIG_PCIEASPM_DEBUG is not set
+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 is not set
+# CONFIG_PCIE_PTM is not set
+# CONFIG_PCI_MSI is not set
+CONFIG_PCI_QUIRKS=y
+# CONFIG_PCI_DEBUG is not set
+# CONFIG_PCI_STUB is not set
+# CONFIG_PCI_IOV is not set
+# CONFIG_PCI_PRI is not set
+# CONFIG_PCI_PASID is not set
+# CONFIG_HOTPLUG_PCI is not set
+
+#
+# PCI controller drivers
+#
+
+#
+# Cadence PCIe controllers support
+#
+# CONFIG_PCIE_CADENCE_HOST is not set
+# CONFIG_PCI_FTPCI100 is not set
+# CONFIG_PCI_HOST_GENERIC is not set
+# CONFIG_PCIE_XILINX is not set
+# CONFIG_PCI_V3_SEMI is not set
+# CONFIG_PCIE_ALTERA is not set
+
+#
+# DesignWare PCI Core Support
+#
+
+#
+# PCI Endpoint
+#
+# CONFIG_PCI_ENDPOINT is not set
+
+#
+# PCI switch controller drivers
+#
+# CONFIG_PCI_SW_SWITCHTEC is not set
+# 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_EXTRA_FIRMWARE=""
+# CONFIG_FW_LOADER_USER_HELPER is not set
+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_GENERIC_CPU_AUTOPROBE=y
+CONFIG_REGMAP=y
+CONFIG_REGMAP_I2C=y
+CONFIG_REGMAP_SPI=y
+CONFIG_REGMAP_MMIO=y
+CONFIG_REGMAP_IRQ=y
+CONFIG_DMA_SHARED_BUFFER=y
+# CONFIG_DMA_FENCE_TRACE is not set
+CONFIG_DMA_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_GENERIC_ARCH_TOPOLOGY=y
+
+#
+# Bus devices
+#
+# CONFIG_BRCMSTB_GISB_ARB is not set
+# CONFIG_SIMPLE_PM_BUS is not set
+# CONFIG_VEXPRESS_CONFIG is not set
+CONFIG_CONNECTOR=m
+# CONFIG_GNSS is not set
+# CONFIG_MTD is not set
+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_MDIO=y
+CONFIG_OF_RESERVED_MEM=y
+CONFIG_OF_RESOLVE=y
+CONFIG_OF_OVERLAY=y
+CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y
+# CONFIG_PARPORT is not set
+CONFIG_BLK_DEV=y
+# CONFIG_BLK_DEV_NULL_BLK is not set
+CONFIG_CDROM=y
+# CONFIG_BLK_DEV_PCIESSD_MTIP32XX is not set
+CONFIG_ZRAM=y
+# CONFIG_ZRAM_WRITEBACK is not set
+# CONFIG_ZRAM_MEMORY_TRACKING is not set
+# CONFIG_BLK_DEV_UMEM is not set
+CONFIG_BLK_DEV_LOOP=y
+CONFIG_BLK_DEV_LOOP_MIN_COUNT=8
+# CONFIG_BLK_DEV_CRYPTOLOOP is not set
+# CONFIG_BLK_DEV_DRBD is not set
+# CONFIG_BLK_DEV_NBD is not set
+# CONFIG_BLK_DEV_SX8 is not set
+CONFIG_BLK_DEV_RAM=m
+CONFIG_BLK_DEV_RAM_COUNT=16
+CONFIG_BLK_DEV_RAM_SIZE=4096
+# CONFIG_CDROM_PKTCDVD is not set
+# CONFIG_ATA_OVER_ETH is not set
+CONFIG_VIRTIO_BLK=m
+# CONFIG_VIRTIO_BLK_SCSI is not set
+# CONFIG_BLK_DEV_RBD is not set
+# CONFIG_BLK_DEV_RSXX is not set
+
+#
+# NVME Support
+#
+# CONFIG_BLK_DEV_NVME is not set
+# CONFIG_NVME_FC is not set
+# CONFIG_NVME_TARGET is not set
+
+#
+# Misc devices
+#
+# CONFIG_AD525X_DPOT is not set
+# CONFIG_DUMMY_IRQ is not set
+# CONFIG_PHANTOM is not set
+# CONFIG_SGI_IOC4 is not set
+# CONFIG_TIFM_CORE is not set
+# CONFIG_ICS932S401 is not set
+# CONFIG_ENCLOSURE_SERVICES is not set
+# CONFIG_HP_ILO is not set
+# CONFIG_APDS9802ALS is not set
+# CONFIG_ISL29003 is not set
+# CONFIG_ISL29020 is not set
+# CONFIG_SENSORS_TSL2550 is not set
+# CONFIG_SENSORS_BH1770 is not set
+# CONFIG_SENSORS_APDS990X is not set
+# CONFIG_HMC6352 is not set
+# CONFIG_DS1682 is not set
+# CONFIG_USB_SWITCH_FSA9480 is not set
+# CONFIG_LATTICE_ECP3_CONFIG is not set
+CONFIG_SRAM=y
+CONFIG_SRAM_EXEC=y
+# CONFIG_PCI_ENDPOINT_TEST is not set
+CONFIG_MISC_RTSX=y
+# CONFIG_PVPANIC is not set
+# CONFIG_C2PORT is not set
+
+#
+# EEPROM support
+#
+# CONFIG_EEPROM_AT24 is not set
+# CONFIG_EEPROM_AT25 is not set
+# CONFIG_EEPROM_LEGACY is not set
+# CONFIG_EEPROM_MAX6875 is not set
+CONFIG_EEPROM_93CX6=m
+# CONFIG_EEPROM_93XX46 is not set
+# CONFIG_EEPROM_IDT_89HPESX is not set
+# CONFIG_EEPROM_EE1004 is not set
+# CONFIG_CB710_CORE is not set
+
+#
+# Texas Instruments shared transport line discipline
+#
+# CONFIG_TI_ST is not set
+# CONFIG_SENSORS_LIS3_SPI is not set
+# CONFIG_SENSORS_LIS3_I2C is not set
+# CONFIG_ALTERA_STAPL is not set
+
+#
+# Intel MIC & related support
+#
+
+#
+# Intel MIC Bus Driver
+#
+
+#
+# SCIF Bus Driver
+#
+
+#
+# VOP Bus Driver
+#
+
+#
+# Intel MIC Host Driver
+#
+
+#
+# Intel MIC Card Driver
+#
+
+#
+# SCIF Driver
+#
+
+#
+# Intel MIC Coprocessor State Management (COSM) Drivers
+#
+
+#
+# VOP Driver
+#
+# CONFIG_ECHO is not set
+# CONFIG_MISC_ALCOR_PCI is not set
+# CONFIG_MISC_RTSX_PCI is not set
+CONFIG_MISC_RTSX_USB=y
+CONFIG_HAVE_IDE=y
+# CONFIG_IDE is not set
+
+#
+# SCSI device support
+#
+CONFIG_SCSI_MOD=y
+# CONFIG_RAID_ATTRS is not set
+CONFIG_SCSI=y
+CONFIG_SCSI_DMA=y
+CONFIG_SCSI_PROC_FS=y
+
+#
+# SCSI support type (disk, tape, CD-ROM)
+#
+CONFIG_BLK_DEV_SD=y
+# CONFIG_CHR_DEV_ST is not set
+# CONFIG_CHR_DEV_OSST is not set
+CONFIG_BLK_DEV_SR=y
+# CONFIG_BLK_DEV_SR_VENDOR is not set
+# CONFIG_CHR_DEV_SG is not set
+# CONFIG_CHR_DEV_SCH is not set
+# CONFIG_SCSI_CONSTANTS is not set
+# CONFIG_SCSI_LOGGING is not set
+# CONFIG_SCSI_SCAN_ASYNC is not set
+
+#
+# SCSI Transports
+#
+CONFIG_SCSI_SPI_ATTRS=y
+# CONFIG_SCSI_FC_ATTRS is not set
+# CONFIG_SCSI_ISCSI_ATTRS is not set
+# CONFIG_SCSI_SAS_ATTRS is not set
+# CONFIG_SCSI_SAS_LIBSAS is not set
+# CONFIG_SCSI_SRP_ATTRS is not set
+CONFIG_SCSI_LOWLEVEL=y
+# CONFIG_ISCSI_TCP is not set
+# CONFIG_ISCSI_BOOT_SYSFS is not set
+# CONFIG_SCSI_CXGB3_ISCSI is not set
+# CONFIG_SCSI_BNX2_ISCSI is not set
+# CONFIG_BE2ISCSI is not set
+# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
+# CONFIG_SCSI_HPSA is not set
+# CONFIG_SCSI_3W_9XXX is not set
+# CONFIG_SCSI_3W_SAS is not set
+# CONFIG_SCSI_ACARD is not set
+# 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 is not set
+# CONFIG_SCSI_MVUMI is not set
+# CONFIG_SCSI_ADVANSYS is not set
+# CONFIG_SCSI_ARCMSR is not set
+# CONFIG_SCSI_ESAS2R is not set
+# CONFIG_MEGARAID_NEWGEN is not set
+# CONFIG_MEGARAID_LEGACY is not set
+# CONFIG_MEGARAID_SAS is not set
+# CONFIG_SCSI_MPT3SAS is not set
+# CONFIG_SCSI_MPT2SAS is not set
+# CONFIG_SCSI_SMARTPQI is not set
+# CONFIG_SCSI_UFSHCD is not set
+# CONFIG_SCSI_HPTIOP is not set
+# CONFIG_SCSI_MYRB is not set
+# CONFIG_SCSI_MYRS is not set
+# CONFIG_SCSI_SNIC is not set
+# CONFIG_SCSI_DMX3191D is not set
+# CONFIG_SCSI_IPS is not set
+# CONFIG_SCSI_INITIO is not set
+# CONFIG_SCSI_INIA100 is not set
+# CONFIG_SCSI_STEX is not set
+# CONFIG_SCSI_SYM53C8XX_2 is not set
+# CONFIG_SCSI_QLOGIC_1280 is not set
+# CONFIG_SCSI_QLA_ISCSI is not set
+# CONFIG_SCSI_DC395x is not set
+# CONFIG_SCSI_AM53C974 is not set
+# CONFIG_SCSI_NSP32 is not set
+# CONFIG_SCSI_WD719X is not set
+# CONFIG_SCSI_DEBUG is not set
+# CONFIG_SCSI_PMCRAID is not set
+# CONFIG_SCSI_PM8001 is not set
+# CONFIG_SCSI_VIRTIO is not set
+# CONFIG_SCSI_DH is not set
+# CONFIG_SCSI_OSD_INITIATOR is not set
+# CONFIG_ATA is not set
+CONFIG_MD=y
+CONFIG_BLK_DEV_MD=m
+# CONFIG_MD_LINEAR is not set
+CONFIG_MD_RAID0=m
+CONFIG_MD_RAID1=m
+CONFIG_MD_RAID10=m
+CONFIG_MD_RAID456=m
+# CONFIG_MD_MULTIPATH is not set
+# CONFIG_MD_FAULTY is not set
+# CONFIG_BCACHE 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_ERA=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_DELAY=m
+CONFIG_DM_UEVENT=y
+CONFIG_DM_FLAKEY=m
+CONFIG_DM_VERITY=m
+# 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 is not set
+# CONFIG_FUSION is not set
+
+#
+# IEEE 1394 (FireWire) support
+#
+# CONFIG_FIREWIRE is not set
+# CONFIG_FIREWIRE_NOSY is not set
+CONFIG_NETDEVICES=y
+CONFIG_MII=y
+CONFIG_NET_CORE=y
+# CONFIG_BONDING is not set
+# CONFIG_DUMMY is not set
+# CONFIG_EQUALIZER is not set
+# CONFIG_NET_FC is not set
+# CONFIG_NET_TEAM is not set
+# CONFIG_MACVLAN is not set
+# CONFIG_IPVLAN is not set
+# CONFIG_VXLAN is not set
+# CONFIG_GENEVE is not set
+# CONFIG_MACSEC is not set
+# CONFIG_NETCONSOLE is not set
+CONFIG_TUN=y
+# CONFIG_TUN_VNET_CROSS_LE is not set
+# CONFIG_VETH is not set
+CONFIG_VIRTIO_NET=m
+# CONFIG_NLMON is not set
+# CONFIG_ARCNET is not set
+
+#
+# CAIF transport drivers
+#
+
+#
+# Distributed Switch Architecture drivers
+#
+# CONFIG_ETHERNET is not set
+# CONFIG_FDDI is not set
+# CONFIG_HIPPI is not set
+CONFIG_MDIO_DEVICE=y
+CONFIG_MDIO_BUS=y
+# CONFIG_MDIO_BCM_UNIMAC is not set
+# CONFIG_MDIO_BITBANG is not set
+# CONFIG_MDIO_BUS_MUX_GPIO is not set
+# CONFIG_MDIO_BUS_MUX_MMIOREG is not set
+# CONFIG_MDIO_HISI_FEMAC is not set
+# CONFIG_MDIO_MSCC_MIIM is not set
+CONFIG_PHYLIB=y
+CONFIG_SWPHY=y
+# CONFIG_LED_TRIGGER_PHY is not set
+
+#
+# MII PHY device drivers
+#
+# CONFIG_AMD_PHY is not set
+# CONFIG_AQUANTIA_PHY is not set
+# CONFIG_ASIX_PHY is not set
+# CONFIG_AT803X_PHY is not set
+# CONFIG_BCM7XXX_PHY is not set
+# CONFIG_BCM87XX_PHY is not set
+# CONFIG_BROADCOM_PHY is not set
+# CONFIG_CICADA_PHY is not set
+# CONFIG_CORTINA_PHY is not set
+# CONFIG_DAVICOM_PHY is not set
+# CONFIG_DP83822_PHY is not set
+# CONFIG_DP83TC811_PHY is not set
+# CONFIG_DP83848_PHY is not set
+# CONFIG_DP83867_PHY is not set
+CONFIG_FIXED_PHY=y
+# CONFIG_ICPLUS_PHY is not set
+# CONFIG_INTEL_XWAY_PHY is not set
+# CONFIG_LSI_ET1011C_PHY is not set
+# CONFIG_LXT_PHY is not set
+# CONFIG_MARVELL_PHY is not set
+# CONFIG_MARVELL_10G_PHY is not set
+# CONFIG_MICREL_PHY is not set
+CONFIG_MICROCHIP_PHY=y
+# CONFIG_MICROCHIP_T1_PHY is not set
+# CONFIG_MICROSEMI_PHY is not set
+# CONFIG_NATIONAL_PHY is not set
+# CONFIG_QSEMI_PHY is not set
+# CONFIG_REALTEK_PHY is not set
+# CONFIG_RENESAS_PHY is not set
+# CONFIG_ROCKCHIP_PHY is not set
+# CONFIG_SMSC_PHY is not set
+# CONFIG_STE10XP is not set
+# CONFIG_TERANETICS_PHY is not set
+# CONFIG_VITESSE_PHY is not set
+# CONFIG_XILINX_GMII2RGMII is not set
+# CONFIG_MICREL_KS8995MA is not set
+# CONFIG_PPP is not set
+# CONFIG_SLIP is not set
+CONFIG_USB_NET_DRIVERS=y
+# CONFIG_USB_CATC is not set
+# CONFIG_USB_KAWETH is not set
+# CONFIG_USB_PEGASUS is not set
+CONFIG_USB_RTL8150=y
+CONFIG_USB_RTL8152=y
+CONFIG_USB_LAN78XX=y
+CONFIG_USB_USBNET=y
+CONFIG_USB_NET_AX8817X=y
+CONFIG_USB_NET_AX88179_178A=y
+CONFIG_USB_NET_CDCETHER=y
+CONFIG_USB_NET_CDC_EEM=y
+# CONFIG_USB_NET_CDC_NCM is not set
+# CONFIG_USB_NET_HUAWEI_CDC_NCM is not set
+# CONFIG_USB_NET_CDC_MBIM is not set
+# CONFIG_USB_NET_DM9601 is not set
+# CONFIG_USB_NET_SR9700 is not set
+# CONFIG_USB_NET_SR9800 is not set
+CONFIG_USB_NET_SMSC75XX=y
+CONFIG_USB_NET_SMSC95XX=y
+# CONFIG_USB_NET_GL620A is not set
+# CONFIG_USB_NET_NET1080 is not set
+# CONFIG_USB_NET_PLUSB is not set
+# CONFIG_USB_NET_MCS7830 is not set
+# CONFIG_USB_NET_RNDIS_HOST is not set
+CONFIG_USB_NET_CDC_SUBSET_ENABLE=y
+CONFIG_USB_NET_CDC_SUBSET=y
+# CONFIG_USB_ALI_M5632 is not set
+# CONFIG_USB_AN2720 is not set
+# CONFIG_USB_BELKIN is not set
+CONFIG_USB_ARMLINUX=y
+# CONFIG_USB_EPSON2888 is not set
+# CONFIG_USB_KC2190 is not set
+# CONFIG_USB_NET_ZAURUS is not set
+# CONFIG_USB_NET_CX82310_ETH is not set
+# CONFIG_USB_NET_KALMIA is not set
+# CONFIG_USB_NET_QMI_WWAN is not set
+# CONFIG_USB_HSO is not set
+# CONFIG_USB_NET_INT51X1 is not set
+# CONFIG_USB_IPHETH is not set
+# CONFIG_USB_SIERRA_NET is not set
+# CONFIG_USB_VL600 is not set
+# CONFIG_USB_NET_CH9200 is not set
+# CONFIG_USB_NET_AQC111 is not set
+CONFIG_WLAN=y
+# CONFIG_WIRELESS_WDS is not set
+# CONFIG_WLAN_VENDOR_ADMTEK is not set
+CONFIG_ATH_COMMON=m
+CONFIG_WLAN_VENDOR_ATH=y
+# CONFIG_ATH_DEBUG is not set
+# CONFIG_ATH5K is not set
+# CONFIG_ATH5K_PCI is not set
+CONFIG_ATH9K_HW=m
+CONFIG_ATH9K_COMMON=m
+CONFIG_ATH9K_BTCOEX_SUPPORT=y
+# CONFIG_ATH9K is not set
+CONFIG_ATH9K_HTC=m
+# CONFIG_ATH9K_HTC_DEBUGFS is not set
+# CONFIG_CARL9170 is not set
+# CONFIG_ATH6KL is not set
+# CONFIG_AR5523 is not set
+# CONFIG_WIL6210 is not set
+# CONFIG_ATH10K is not set
+# CONFIG_WCN36XX is not set
+# CONFIG_WLAN_VENDOR_ATMEL is not set
+# CONFIG_WLAN_VENDOR_BROADCOM is not set
+# CONFIG_WLAN_VENDOR_CISCO is not set
+# CONFIG_WLAN_VENDOR_INTEL is not set
+# CONFIG_WLAN_VENDOR_INTERSIL is not set
+# CONFIG_WLAN_VENDOR_MARVELL is not set
+# CONFIG_WLAN_VENDOR_MEDIATEK is not set
+# CONFIG_WLAN_VENDOR_RALINK is not set
+# CONFIG_WLAN_VENDOR_REALTEK is not set
+# CONFIG_WLAN_VENDOR_RSI is not set
+# CONFIG_WLAN_VENDOR_ST is not set
+# CONFIG_WLAN_VENDOR_TI is not set
+# CONFIG_WLAN_VENDOR_ZYDAS is not set
+# CONFIG_WLAN_VENDOR_QUANTENNA is not set
+# CONFIG_MAC80211_HWSIM is not set
+# CONFIG_USB_NET_RNDIS_WLAN is not set
+# CONFIG_VIRT_WIFI is not set
+
+#
+# Enable WiMAX (Networking options) to see the WiMAX drivers
+#
+# CONFIG_WAN is not set
+# CONFIG_VMXNET3 is not set
+# 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 is not set
+# CONFIG_INPUT_POLLDEV is not set
+# CONFIG_INPUT_SPARSEKMAP is not set
+CONFIG_INPUT_MATRIXKMAP=y
+
+#
+# Userland interfaces
+#
+# CONFIG_INPUT_MOUSEDEV is not set
+# CONFIG_INPUT_JOYDEV is not set
+CONFIG_INPUT_EVDEV=y
+# 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 is not set
+# CONFIG_KEYBOARD_ADP5589 is not set
+# CONFIG_KEYBOARD_ATKBD is not set
+# CONFIG_KEYBOARD_QT1070 is not set
+# CONFIG_KEYBOARD_QT2160 is not set
+# 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 is not set
+# CONFIG_KEYBOARD_LM8333 is not set
+# CONFIG_KEYBOARD_MAX7359 is not set
+# CONFIG_KEYBOARD_MCS is not set
+# CONFIG_KEYBOARD_MPR121 is not set
+# CONFIG_KEYBOARD_NEWTON is not set
+# CONFIG_KEYBOARD_OPENCORES is not set
+# CONFIG_KEYBOARD_SAMSUNG is not set
+# CONFIG_KEYBOARD_STOWAWAY is not set
+# CONFIG_KEYBOARD_SUNKBD is not set
+# CONFIG_KEYBOARD_OMAP4 is not set
+# CONFIG_KEYBOARD_TM2_TOUCHKEY is not set
+# CONFIG_KEYBOARD_TWL4030 is not set
+# CONFIG_KEYBOARD_XTKBD is not set
+CONFIG_KEYBOARD_CROS_EC=y
+# CONFIG_KEYBOARD_CAP11XX is not set
+# CONFIG_KEYBOARD_BCM is not set
+CONFIG_INPUT_MOUSE=y
+# CONFIG_MOUSE_PS2 is not set
+# 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=y
+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=y
+# CONFIG_MOUSE_SYNAPTICS_USB is not set
+# CONFIG_INPUT_JOYSTICK is not set
+# CONFIG_INPUT_TABLET is not set
+# CONFIG_INPUT_TOUCHSCREEN is not set
+# CONFIG_INPUT_MISC is not set
+# CONFIG_RMI4_CORE is not set
+
+#
+# Hardware I/O ports
+#
+# CONFIG_SERIO is not set
+# CONFIG_GAMEPORT is not set
+
+#
+# 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_SERIAL_NONSTANDARD is not set
+# CONFIG_NOZOMI is not set
+# CONFIG_N_GSM is not set
+# CONFIG_TRACE_SINK is not set
+CONFIG_DEVMEM=y
+# CONFIG_DEVKMEM is not set
+
+#
+# Serial drivers
+#
+CONFIG_SERIAL_EARLYCON=y
+CONFIG_SERIAL_8250=y
+CONFIG_SERIAL_8250_DEPRECATED_OPTIONS=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_FSL=y
+CONFIG_SERIAL_8250_DW=y
+# CONFIG_SERIAL_8250_EM is not set
+# CONFIG_SERIAL_8250_RT288X is not set
+# CONFIG_SERIAL_8250_MOXA is not set
+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_MAX3100 is not set
+# CONFIG_SERIAL_MAX310X is not set
+# CONFIG_SERIAL_UARTLITE is not set
+CONFIG_SERIAL_CORE=y
+CONFIG_SERIAL_CORE_CONSOLE=y
+# CONFIG_SERIAL_JSM 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 is not set
+# CONFIG_SERIAL_FSL_LPUART is not set
+# CONFIG_SERIAL_CONEXANT_DIGICOLOR is not set
+# CONFIG_SERIAL_ST_ASC is not set
+# CONFIG_SERIAL_DEV_BUS is not set
+# CONFIG_TTY_PRINTK is not set
+# CONFIG_HVC_DCC is not set
+# CONFIG_VIRTIO_CONSOLE is not set
+# CONFIG_IPMI_HANDLER is not set
+# CONFIG_HW_RANDOM is not set
+# CONFIG_R3964 is not set
+# CONFIG_APPLICOM is not set
+# CONFIG_RAW_DRIVER is not set
+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=y
+# CONFIG_TCG_TIS_I2C_NUVOTON is not set
+# CONFIG_TCG_ATMEL 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_DEVPORT=y
+# CONFIG_XILLYBUS is not set
+
+#
+# I2C support
+#
+CONFIG_I2C=y
+CONFIG_I2C_BOARDINFO=y
+# CONFIG_I2C_COMPAT is not set
+CONFIG_I2C_CHARDEV=y
+CONFIG_I2C_MUX=y
+
+#
+# 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
+CONFIG_I2C_HELPER_AUTO=y
+CONFIG_I2C_ALGOBIT=y
+
+#
+# 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 is not set
+# 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_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_GPIO=y
+# CONFIG_I2C_GPIO_FAULT_INJECTOR is not set
+# CONFIG_I2C_NOMADIK is not set
+# CONFIG_I2C_OCORES is not set
+# CONFIG_I2C_PCA_PLATFORM is not set
+CONFIG_I2C_RK3X=y
+# CONFIG_I2C_SIMTEC is not set
+# CONFIG_I2C_XILINX is not set
+
+#
+# External I2C/SMBus adapter drivers
+#
+# CONFIG_I2C_DIOLAN_U2C is not set
+# CONFIG_I2C_PARPORT_LIGHT is not set
+# CONFIG_I2C_ROBOTFUZZ_OSIF is not set
+# CONFIG_I2C_TAOS_EVM is not set
+# CONFIG_I2C_TINY_USB is not set
+
+#
+# Other I2C/SMBus bus drivers
+#
+CONFIG_I2C_CROS_EC_TUNNEL=y
+# 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
+# CONFIG_I3C is not set
+CONFIG_SPI=y
+# CONFIG_SPI_DEBUG is not set
+CONFIG_SPI_MASTER=y
+# CONFIG_SPI_MEM is not set
+
+#
+# SPI Master Controller Drivers
+#
+# CONFIG_SPI_ALTERA is not set
+# CONFIG_SPI_AXI_SPI_ENGINE is not set
+CONFIG_SPI_BITBANG=y
+# CONFIG_SPI_CADENCE is not set
+# CONFIG_SPI_DESIGNWARE is not set
+CONFIG_SPI_GPIO=y
+# CONFIG_SPI_FSL_SPI is not set
+# CONFIG_SPI_OC_TINY is not set
+# CONFIG_SPI_PL022 is not set
+# CONFIG_SPI_PXA2XX is not set
+CONFIG_SPI_ROCKCHIP=y
+# CONFIG_SPI_SC18IS602 is not set
+# CONFIG_SPI_MXIC is not set
+# CONFIG_SPI_XCOMM is not set
+# CONFIG_SPI_XILINX is not set
+# CONFIG_SPI_ZYNQMP_GQSPI is not set
+
+#
+# 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_SPMI is not set
+# 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 is not set
+# CONFIG_PPS_CLIENT_GPIO is not set
+
+#
+# PPS generators support
+#
+
+#
+# PTP clock support
+#
+CONFIG_PTP_1588_CLOCK=y
+
+#
+# Enable PHYLIB and NETWORK_PHY_TIMESTAMPING to see the additional clocks.
+#
+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 is not set
+# CONFIG_PINCTRL_AMD is not set
+# CONFIG_PINCTRL_MCP23S08 is not set
+CONFIG_PINCTRL_ROCKCHIP=y
+CONFIG_PINCTRL_SINGLE=y
+# CONFIG_PINCTRL_SX150X is not set
+CONFIG_PINCTRL_PALMAS=y
+# CONFIG_PINCTRL_RK805 is not set
+# CONFIG_PINCTRL_OCELOT is not set
+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_GENERIC=y
+
+#
+# Memory mapped GPIO drivers
+#
+# CONFIG_GPIO_74XX_MMIO is not set
+# CONFIG_GPIO_ALTERA is not set
+# CONFIG_GPIO_CADENCE is not set
+# 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_MB86S7X is not set
+# CONFIG_GPIO_MOCKUP is not set
+# CONFIG_GPIO_MPC8XXX is not set
+CONFIG_GPIO_PL061=y
+# CONFIG_GPIO_SAMA5D2_PIOBU is not set
+# CONFIG_GPIO_SYSCON is not set
+# CONFIG_GPIO_XILINX is not set
+# CONFIG_GPIO_ZEVIO is not set
+
+#
+# I2C GPIO expanders
+#
+# CONFIG_GPIO_ADP5588 is not set
+# CONFIG_GPIO_ADNP is not set
+# CONFIG_GPIO_MAX7300 is not set
+# CONFIG_GPIO_MAX732X is not set
+# CONFIG_GPIO_PCA953X is not set
+# CONFIG_GPIO_PCF857X is not set
+# CONFIG_GPIO_TPIC2810 is not set
+
+#
+# MFD GPIO expanders
+#
+# CONFIG_GPIO_DA9052 is not set
+# CONFIG_HTC_EGPIO is not set
+CONFIG_GPIO_PALMAS=y
+CONFIG_GPIO_TWL4030=y
+CONFIG_GPIO_TWL6040=y
+
+#
+# PCI GPIO expanders
+#
+# CONFIG_GPIO_BT8XX is not set
+# CONFIG_GPIO_PCI_IDIO_16 is not set
+# CONFIG_GPIO_PCIE_IDIO_24 is not set
+# CONFIG_GPIO_RDC321X is not set
+
+#
+# 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
+
+#
+# USB GPIO expanders
+#
+# CONFIG_W1 is not set
+CONFIG_POWER_AVS=y
+CONFIG_ROCKCHIP_IODOMAIN=y
+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_LTC2952 is not set
+CONFIG_POWER_RESET_RESTART=y
+# CONFIG_POWER_RESET_VERSATILE is not set
+CONFIG_POWER_RESET_SYSCON=y
+CONFIG_POWER_RESET_SYSCON_POWEROFF=y
+CONFIG_REBOOT_MODE=y
+CONFIG_SYSCON_REBOOT_MODE=y
+CONFIG_POWER_SUPPLY=y
+# CONFIG_POWER_SUPPLY_DEBUG is not set
+# 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 is not set
+# CONFIG_BATTERY_DS2780 is not set
+# CONFIG_BATTERY_DS2781 is not set
+# CONFIG_BATTERY_DS2782 is not set
+# CONFIG_BATTERY_LEGO_EV3 is not set
+CONFIG_BATTERY_SBS=y
+# CONFIG_CHARGER_SBS is not set
+# CONFIG_MANAGER_SBS is not set
+# CONFIG_BATTERY_BQ27XXX is not set
+# CONFIG_BATTERY_DA9052 is not set
+# CONFIG_AXP20X_POWER is not set
+# CONFIG_AXP288_FUEL_GAUGE is not set
+# CONFIG_BATTERY_MAX17040 is not set
+# CONFIG_BATTERY_MAX17042 is not set
+# CONFIG_CHARGER_ISP1704 is not set
+# CONFIG_CHARGER_MAX8903 is not set
+# CONFIG_CHARGER_TWL4030 is not set
+# CONFIG_CHARGER_LP8727 is not set
+CONFIG_CHARGER_GPIO=y
+# CONFIG_CHARGER_MANAGER is not set
+# CONFIG_CHARGER_LTC3651 is not set
+# CONFIG_CHARGER_DETECTOR_MAX14656 is not set
+# 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_BQ25890 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 is not set
+# CONFIG_HWMON is not set
+CONFIG_THERMAL=y
+# CONFIG_THERMAL_STATISTICS is not set
+CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0
+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_DEFAULT_GOV_POWER_ALLOCATOR 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_CLOCK_THERMAL is not set
+# CONFIG_THERMAL_EMULATION is not set
+# CONFIG_QORIQ_THERMAL is not set
+CONFIG_ROCKCHIP_THERMAL=y
+# CONFIG_GENERIC_ADC_THERMAL is not set
+CONFIG_WATCHDOG=y
+CONFIG_WATCHDOG_CORE=y
+# CONFIG_WATCHDOG_NOWAYOUT is not set
+CONFIG_WATCHDOG_HANDLE_BOOT_ENABLED=y
+# CONFIG_WATCHDOG_SYSFS is not set
+
+#
+# Watchdog Device Drivers
+#
+# CONFIG_SOFT_WATCHDOG is not set
+# CONFIG_DA9052_WATCHDOG is not set
+# CONFIG_GPIO_WATCHDOG is not set
+# CONFIG_XILINX_WATCHDOG is not set
+# CONFIG_ZIIRAVE_WATCHDOG is not set
+# CONFIG_ARM_SP805_WATCHDOG is not set
+# CONFIG_CADENCE_WATCHDOG is not set
+# CONFIG_FTWDT010_WATCHDOG is not set
+CONFIG_DW_WATCHDOG=y
+# CONFIG_TWL4030_WATCHDOG is not set
+# CONFIG_MAX63XX_WATCHDOG is not set
+# CONFIG_ALIM7101_WDT is not set
+# CONFIG_I6300ESB_WDT is not set
+# CONFIG_MEN_A21_WDT is not set
+
+#
+# PCI-based Watchdog Cards
+#
+# CONFIG_PCIPCWATCHDOG is not set
+# CONFIG_WDTPCI is not set
+
+#
+# USB-based Watchdog Cards
+#
+# CONFIG_USBPCWATCHDOG is not set
+
+#
+# Watchdog Pretimeout Governors
+#
+# CONFIG_WATCHDOG_PRETIMEOUT_GOV is not set
+CONFIG_SSB_POSSIBLE=y
+# CONFIG_SSB is not set
+CONFIG_BCMA_POSSIBLE=y
+# CONFIG_BCMA is not set
+
+#
+# Multifunction device drivers
+#
+CONFIG_MFD_CORE=y
+# CONFIG_MFD_ACT8945A 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 is not set
+CONFIG_MFD_AXP20X=y
+CONFIG_MFD_AXP20X_I2C=y
+CONFIG_MFD_CROS_EC=y
+CONFIG_MFD_CROS_EC_CHARDEV=y
+# CONFIG_MFD_MADERA 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_MC13XXX_SPI is not set
+# CONFIG_MFD_MC13XXX_I2C is not set
+# 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 is not set
+# 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_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_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 is not set
+# CONFIG_MFD_RETU is not set
+# CONFIG_MFD_PCF50633 is not set
+# CONFIG_MFD_PM8XXX is not set
+# CONFIG_MFD_RDC321X is not set
+# CONFIG_MFD_RT5033 is not set
+# CONFIG_MFD_RC5T583 is not set
+CONFIG_MFD_RK808=y
+# CONFIG_MFD_RN5T618 is not set
+CONFIG_MFD_SEC_CORE=y
+# CONFIG_MFD_SI476X_CORE is not set
+# CONFIG_MFD_SM501 is not set
+# CONFIG_MFD_SKY81452 is not set
+# CONFIG_MFD_SMSC is not set
+# CONFIG_ABX500_CORE is not set
+# CONFIG_MFD_STMPE is not set
+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=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_VX855 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 is not set
+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=y
+# CONFIG_REGULATOR_AD5398 is not set
+# CONFIG_REGULATOR_ANATOP is not set
+CONFIG_REGULATOR_AS3722=y
+# CONFIG_REGULATOR_AXP20X is not set
+# CONFIG_REGULATOR_DA9052 is not set
+# CONFIG_REGULATOR_DA9210 is not set
+# CONFIG_REGULATOR_DA9211 is not set
+CONFIG_REGULATOR_FAN53555=y
+# CONFIG_REGULATOR_GPIO is not set
+# 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 is not set
+# CONFIG_REGULATOR_MAX77802 is not set
+# CONFIG_REGULATOR_MCP16502 is not set
+# CONFIG_REGULATOR_MT6311 is not set
+CONFIG_REGULATOR_PALMAS=y
+# 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=y
+CONFIG_REGULATOR_RK808=y
+# CONFIG_REGULATOR_S2MPA01 is not set
+# CONFIG_REGULATOR_S2MPS11 is not set
+# CONFIG_REGULATOR_S5M8767 is not set
+# CONFIG_REGULATOR_SY8106A is not set
+# 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_RC_CORE is not set
+# CONFIG_MEDIA_SUPPORT is not set
+
+#
+# Graphics support
+#
+CONFIG_VGA_ARB=y
+CONFIG_VGA_ARB_MAX_GPUS=16
+# CONFIG_IMX_IPUV3_CORE is not set
+CONFIG_DRM=y
+CONFIG_DRM_MIPI_DSI=y
+# CONFIG_DRM_DP_AUX_CHARDEV is not set
+# CONFIG_DRM_DEBUG_MM is not set
+# CONFIG_DRM_DEBUG_SELFTEST is not set
+CONFIG_DRM_KMS_HELPER=y
+CONFIG_DRM_KMS_FB_HELPER=y
+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_GEM_CMA_HELPER=y
+
+#
+# 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
+# CONFIG_DRM_HDLCD is not set
+# CONFIG_DRM_MALI_DISPLAY is not set
+# CONFIG_DRM_RADEON is not set
+# CONFIG_DRM_AMDGPU is not set
+
+#
+# ACP (Audio CoProcessor) Configuration
+#
+
+#
+# AMD Library routines
+#
+# CONFIG_DRM_NOUVEAU is not set
+# CONFIG_DRM_VGEM is not set
+# CONFIG_DRM_VKMS is not set
+# CONFIG_DRM_EXYNOS is not set
+CONFIG_DRM_ROCKCHIP=y
+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_DRM_UDL is not set
+# CONFIG_DRM_AST is not set
+# CONFIG_DRM_MGAG200 is not set
+# CONFIG_DRM_CIRRUS_QEMU 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_OMAP is not set
+# CONFIG_DRM_TILCDC is not set
+# CONFIG_DRM_QXL is not set
+# CONFIG_DRM_BOCHS is not set
+# CONFIG_DRM_VIRTIO_GPU is not set
+# CONFIG_DRM_FSL_DCU is not set
+# CONFIG_DRM_STM is not set
+CONFIG_DRM_PANEL=y
+
+#
+# Display Panels
+#
+# CONFIG_DRM_PANEL_ARM_VERSATILE is not set
+# CONFIG_DRM_PANEL_LVDS is not set
+CONFIG_DRM_PANEL_SIMPLE=y
+# 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_SAMSUNG_LD9040 is not set
+# CONFIG_DRM_PANEL_LG_LG4573 is not set
+# CONFIG_DRM_PANEL_OLIMEX_LCD_OLINUXINO is not set
+# CONFIG_DRM_PANEL_ORISETECH_OTM8009A is not set
+# CONFIG_DRM_PANEL_PANASONIC_VVX10F034N00 is not set
+# CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN is not set
+# CONFIG_DRM_PANEL_RAYDIUM_RM68200 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_S6E8AA0 is not set
+# CONFIG_DRM_PANEL_SEIKO_43WVF1G is not set
+# CONFIG_DRM_PANEL_SHARP_LQ101R1SX01 is not set
+# CONFIG_DRM_PANEL_SHARP_LS043T1LE01 is not set
+# CONFIG_DRM_PANEL_SITRONIX_ST7789V is not set
+# CONFIG_DRM_PANEL_TRULY_NT35597_WQXGA is not set
+CONFIG_DRM_BRIDGE=y
+CONFIG_DRM_PANEL_BRIDGE=y
+
+#
+# Display Interface Bridges
+#
+# CONFIG_DRM_ANALOGIX_ANX78XX is not set
+# CONFIG_DRM_CDNS_DSI is not set
+# CONFIG_DRM_DUMB_VGA_DAC is not set
+# CONFIG_DRM_LVDS_ENCODER is not set
+# CONFIG_DRM_MEGACHIPS_STDPXXXX_GE_B850V3_FW is not set
+# CONFIG_DRM_NXP_PTN3460 is not set
+# CONFIG_DRM_PARADE_PS8622 is not set
+# CONFIG_DRM_SIL_SII8620 is not set
+# CONFIG_DRM_SII902X is not set
+# CONFIG_DRM_SII9234 is not set
+# CONFIG_DRM_THINE_THC63LVD1024 is not set
+# CONFIG_DRM_TOSHIBA_TC358764 is not set
+# CONFIG_DRM_TOSHIBA_TC358767 is not set
+# CONFIG_DRM_TI_TFP410 is not set
+# CONFIG_DRM_TI_SN65DSI86 is not set
+CONFIG_DRM_ANALOGIX_DP=y
+# CONFIG_DRM_I2C_ADV7511 is not set
+CONFIG_DRM_DW_HDMI=y
+# CONFIG_DRM_DW_HDMI_AHB_AUDIO is not set
+CONFIG_DRM_DW_HDMI_I2S_AUDIO=y
+# CONFIG_DRM_DW_HDMI_CEC is not set
+CONFIG_DRM_DW_MIPI_DSI=y
+# CONFIG_DRM_STI is not set
+# CONFIG_DRM_ARCPGU is not set
+# CONFIG_DRM_HISI_HIBMC is not set
+# CONFIG_DRM_MXSFB is not set
+# CONFIG_DRM_TINYDRM is not set
+# CONFIG_DRM_PL111 is not set
+# CONFIG_DRM_TVE200 is not set
+# 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_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_MODE_HELPERS=y
+# CONFIG_FB_TILEBLITTING is not set
+
+#
+# Frame buffer hardware drivers
+#
+# CONFIG_FB_CIRRUS is not set
+# CONFIG_FB_PM2 is not set
+# CONFIG_FB_ARMCLCD 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_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 is not set
+# 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 is not set
+# CONFIG_FB_VOODOO1 is not set
+# CONFIG_FB_VT8623 is not set
+# CONFIG_FB_TRIDENT is not set
+# CONFIG_FB_ARK is not set
+# CONFIG_FB_PM3 is not set
+# CONFIG_FB_CARMINE is not set
+# CONFIG_FB_SMSCUFX is not set
+# CONFIG_FB_UDL is not set
+# CONFIG_FB_IBM_GXT4500 is not set
+# CONFIG_FB_VIRTUAL is not set
+# CONFIG_FB_METRONOME is not set
+# CONFIG_FB_MB862XX is not set
+CONFIG_FB_SIMPLE=y
+# CONFIG_FB_SSD1307 is not set
+# CONFIG_FB_SM712 is not set
+CONFIG_BACKLIGHT_LCD_SUPPORT=y
+# CONFIG_LCD_CLASS_DEVICE is not set
+CONFIG_BACKLIGHT_CLASS_DEVICE=y
+CONFIG_BACKLIGHT_GENERIC=y
+CONFIG_BACKLIGHT_PWM=y
+# CONFIG_BACKLIGHT_DA9052 is not set
+# CONFIG_BACKLIGHT_PM8941_WLED is not set
+# 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 is not set
+# 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_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 is not set
+# CONFIG_FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER is not set
+# CONFIG_LOGO is not set
+CONFIG_SOUND=y
+CONFIG_SND=y
+CONFIG_SND_TIMER=y
+CONFIG_SND_PCM=y
+CONFIG_SND_PCM_ELD=y
+CONFIG_SND_PCM_IEC958=y
+CONFIG_SND_DMAENGINE_PCM=y
+CONFIG_SND_SEQ_DEVICE=y
+CONFIG_SND_JACK=y
+CONFIG_SND_JACK_INPUT_DEV=y
+# CONFIG_SND_OSSEMUL is not set
+CONFIG_SND_PCM_TIMER=y
+CONFIG_SND_HRTIMER=y
+CONFIG_SND_DYNAMIC_MINORS=y
+CONFIG_SND_MAX_CARDS=32
+# CONFIG_SND_SUPPORT_OLD_API is not set
+CONFIG_SND_PROC_FS=y
+# CONFIG_SND_VERBOSE_PROCFS is not set
+# CONFIG_SND_VERBOSE_PRINTK is not set
+# CONFIG_SND_DEBUG is not set
+CONFIG_SND_SEQUENCER=y
+# CONFIG_SND_SEQ_DUMMY is not set
+CONFIG_SND_SEQ_HRTIMER_DEFAULT=y
+# CONFIG_SND_DRIVERS is not set
+CONFIG_SND_PCI=y
+# CONFIG_SND_AD1889 is not set
+# CONFIG_SND_ALS300 is not set
+# CONFIG_SND_ALI5451 is not set
+# 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 is not set
+# CONFIG_SND_BT87X is not set
+# CONFIG_SND_CA0106 is not set
+# CONFIG_SND_CMIPCI is not set
+# CONFIG_SND_OXYGEN is not set
+# CONFIG_SND_CS4281 is not set
+# CONFIG_SND_CS46XX is not set
+# CONFIG_SND_CTXFI is not set
+# CONFIG_SND_DARLA20 is not set
+# CONFIG_SND_GINA20 is not set
+# CONFIG_SND_LAYLA20 is not set
+# CONFIG_SND_DARLA24 is not set
+# CONFIG_SND_GINA24 is not set
+# CONFIG_SND_LAYLA24 is not set
+# CONFIG_SND_MONA is not set
+# CONFIG_SND_MIA is not set
+# CONFIG_SND_ECHO3G is not set
+# CONFIG_SND_INDIGO is not set
+# CONFIG_SND_INDIGOIO is not set
+# CONFIG_SND_INDIGODJ is not set
+# CONFIG_SND_INDIGOIOX is not set
+# CONFIG_SND_INDIGODJX is not set
+# CONFIG_SND_EMU10K1 is not set
+# CONFIG_SND_EMU10K1X is not set
+# CONFIG_SND_ENS1370 is not set
+# CONFIG_SND_ENS1371 is not set
+# CONFIG_SND_ES1938 is not set
+# CONFIG_SND_ES1968 is not set
+# CONFIG_SND_FM801 is not set
+# CONFIG_SND_HDSP is not set
+# CONFIG_SND_HDSPM is not set
+# CONFIG_SND_ICE1712 is not set
+# 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 is not set
+# CONFIG_SND_LX6464ES is not set
+# CONFIG_SND_MAESTRO3 is not set
+# CONFIG_SND_MIXART is not set
+# CONFIG_SND_NM256 is not set
+# CONFIG_SND_PCXHR is not set
+# CONFIG_SND_RIPTIDE is not set
+# CONFIG_SND_RME32 is not set
+# CONFIG_SND_RME96 is not set
+# CONFIG_SND_RME9652 is not set
+# CONFIG_SND_SE6X is not set
+# CONFIG_SND_SONICVIBES is not set
+# CONFIG_SND_TRIDENT is not set
+# CONFIG_SND_VIA82XX is not set
+# CONFIG_SND_VIA82XX_MODEM is not set
+# CONFIG_SND_VIRTUOSO is not set
+# CONFIG_SND_VX222 is not set
+# CONFIG_SND_YMFPCI is not set
+
+#
+# HD-Audio
+#
+# CONFIG_SND_HDA_INTEL is not set
+CONFIG_SND_HDA_PREALLOC_SIZE=64
+# CONFIG_SND_ARM is not set
+# CONFIG_SND_SPI is not set
+# CONFIG_SND_USB is not set
+CONFIG_SND_SOC=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_DESIGNWARE_I2S=y
+# CONFIG_SND_DESIGNWARE_PCM 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 is not set
+# CONFIG_SND_SOC_FSL_SSI is not set
+# CONFIG_SND_SOC_FSL_SPDIF is not set
+# CONFIG_SND_SOC_FSL_ESAI is not set
+# CONFIG_SND_SOC_IMX_AUDMUX is not set
+# CONFIG_SND_I2S_HI6210_I2S is not set
+# CONFIG_SND_SOC_IMG is not set
+CONFIG_SND_SOC_ROCKCHIP=y
+CONFIG_SND_SOC_ROCKCHIP_I2S=y
+CONFIG_SND_SOC_ROCKCHIP_PDM=y
+CONFIG_SND_SOC_ROCKCHIP_SPDIF=y
+CONFIG_SND_SOC_ROCKCHIP_MAX98090=y
+CONFIG_SND_SOC_ROCKCHIP_RT5645=y
+CONFIG_SND_SOC_RK3288_HDMI_ANALOG=y
+# CONFIG_SND_SOC_RK3399_GRU_SOUND is not set
+
+#
+# STMicroelectronics STM32 SOC audio support
+#
+# CONFIG_SND_SOC_XILINX_I2S is not set
+# CONFIG_SND_SOC_XTFPGA_I2S is not set
+# CONFIG_ZX_TDM is not set
+CONFIG_SND_SOC_I2C_AND_SPI=y
+
+#
+# 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_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_BD28623 is not set
+# CONFIG_SND_SOC_BT_SCO is not set
+# 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_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_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_CS4349 is not set
+# CONFIG_SND_SOC_CS53L30 is not set
+# CONFIG_SND_SOC_DMIC is not set
+CONFIG_SND_SOC_HDMI_CODEC=y
+# 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=y
+CONFIG_SND_SOC_ES8328_I2C=y
+CONFIG_SND_SOC_ES8328_SPI=y
+# 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=y
+# 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_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_RL6231=y
+# CONFIG_SND_SOC_RT5616 is not set
+# CONFIG_SND_SOC_RT5631 is not set
+CONFIG_SND_SOC_RT5645=y
+# CONFIG_SND_SOC_SGTL5000 is not set
+# 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_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_I2C is not set
+# 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_TS3A227E=y
+# CONFIG_SND_SOC_TSCS42XX is not set
+# CONFIG_SND_SOC_TSCS454 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 is not set
+# 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 is not set
+# 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_ZX_AUD96P22 is not set
+# CONFIG_SND_SOC_MAX9759 is not set
+# CONFIG_SND_SOC_MT6351 is not set
+# CONFIG_SND_SOC_NAU8540 is not set
+# CONFIG_SND_SOC_NAU8810 is not set
+# CONFIG_SND_SOC_NAU8822 is not set
+# CONFIG_SND_SOC_NAU8824 is not set
+# CONFIG_SND_SOC_TPA6130A2 is not set
+# CONFIG_SND_SIMPLE_CARD is not set
+# CONFIG_SND_SIMPLE_SCU_CARD is not set
+# CONFIG_SND_AUDIO_GRAPH_CARD is not set
+# CONFIG_SND_AUDIO_GRAPH_SCU_CARD is not set
+
+#
+# HID support
+#
+CONFIG_HID=y
+# CONFIG_HID_BATTERY_STRENGTH is not set
+CONFIG_HIDRAW=y
+CONFIG_UHID=y
+CONFIG_HID_GENERIC=y
+
+#
+# Special HID drivers
+#
+# CONFIG_HID_A4TECH is not set
+# CONFIG_HID_ACCUTOUCH is not set
+# CONFIG_HID_ACRUX is not set
+# CONFIG_HID_APPLE is not set
+# CONFIG_HID_APPLEIR is not set
+# CONFIG_HID_ASUS is not set
+# CONFIG_HID_AUREAL is not set
+# CONFIG_HID_BELKIN is not set
+# CONFIG_HID_BETOP_FF is not set
+# CONFIG_HID_BIGBEN_FF is not set
+# CONFIG_HID_CHERRY is not set
+# CONFIG_HID_CHICONY is not set
+CONFIG_HID_CORSAIR=y
+# CONFIG_HID_COUGAR is not set
+# CONFIG_HID_PRODIKEYS is not set
+# CONFIG_HID_CMEDIA is not set
+# CONFIG_HID_CP2112 is not set
+# CONFIG_HID_CYPRESS is not set
+# CONFIG_HID_DRAGONRISE is not set
+# CONFIG_HID_EMS_FF is not set
+CONFIG_HID_ELAN=y
+# CONFIG_HID_ELECOM is not set
+# CONFIG_HID_ELO is not set
+# CONFIG_HID_EZKEY is not set
+# CONFIG_HID_GEMBIRD is not set
+# CONFIG_HID_GFRM is not set
+# CONFIG_HID_HOLTEK is not set
+# CONFIG_HID_GOOGLE_HAMMER is not set
+# CONFIG_HID_GT683R is not set
+# CONFIG_HID_KEYTOUCH is not set
+# CONFIG_HID_KYE is not set
+# CONFIG_HID_UCLOGIC is not set
+# CONFIG_HID_WALTOP is not set
+# CONFIG_HID_GYRATION is not set
+# CONFIG_HID_ICADE is not set
+# CONFIG_HID_ITE is not set
+# CONFIG_HID_JABRA is not set
+# CONFIG_HID_TWINHAN is not set
+# CONFIG_HID_KENSINGTON is not set
+# CONFIG_HID_LCPOWER is not set
+# CONFIG_HID_LED is not set
+# CONFIG_HID_LENOVO is not set
+# CONFIG_HID_LOGITECH is not set
+# CONFIG_HID_MAGICMOUSE is not set
+# CONFIG_HID_MAYFLASH is not set
+# CONFIG_HID_REDRAGON is not set
+# CONFIG_HID_MICROSOFT is not set
+# CONFIG_HID_MONTEREY is not set
+# CONFIG_HID_MULTITOUCH is not set
+# CONFIG_HID_NTI is not set
+# CONFIG_HID_NTRIG is not set
+# CONFIG_HID_ORTEK is not set
+# CONFIG_HID_PANTHERLORD is not set
+# CONFIG_HID_PENMOUNT is not set
+# CONFIG_HID_PETALYNX is not set
+# CONFIG_HID_PICOLCD is not set
+# CONFIG_HID_PLANTRONICS is not set
+# CONFIG_HID_PRIMAX is not set
+# CONFIG_HID_RETRODE is not set
+# CONFIG_HID_ROCCAT is not set
+# CONFIG_HID_SAITEK is not set
+# CONFIG_HID_SAMSUNG is not set
+# CONFIG_HID_SONY is not set
+# CONFIG_HID_SPEEDLINK is not set
+# CONFIG_HID_STEAM is not set
+# CONFIG_HID_STEELSERIES is not set
+# CONFIG_HID_SUNPLUS is not set
+# CONFIG_HID_RMI is not set
+# CONFIG_HID_GREENASIA is not set
+# CONFIG_HID_SMARTJOYPLUS is not set
+# CONFIG_HID_TIVO is not set
+# CONFIG_HID_TOPSEED is not set
+# CONFIG_HID_THINGM is not set
+# CONFIG_HID_THRUSTMASTER is not set
+# CONFIG_HID_UDRAW_PS3 is not set
+# CONFIG_HID_WACOM is not set
+# CONFIG_HID_WIIMOTE is not set
+# CONFIG_HID_XINMO is not set
+# CONFIG_HID_ZEROPLUS is not set
+# CONFIG_HID_ZYDACRON is not set
+# CONFIG_HID_SENSOR_HUB is not set
+# CONFIG_HID_ALPS is not set
+
+#
+# USB HID support
+#
+CONFIG_USB_HID=y
+CONFIG_HID_PID=y
+# CONFIG_USB_HIDDEV is not set
+
+#
+# I2C HID support
+#
+CONFIG_I2C_HID=y
+CONFIG_USB_OHCI_LITTLE_ENDIAN=y
+CONFIG_USB_SUPPORT=y
+CONFIG_USB_COMMON=y
+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_DYNAMIC_MINORS=y
+CONFIG_USB_OTG=y
+# CONFIG_USB_OTG_WHITELIST is not set
+# CONFIG_USB_OTG_BLACKLIST_HUB is not set
+# CONFIG_USB_OTG_FSM is not set
+# CONFIG_USB_LEDS_TRIGGER_USBPORT is not set
+CONFIG_USB_MON=y
+# CONFIG_USB_WUSB_CBAF is not set
+
+#
+# USB Host Controller Drivers
+#
+# CONFIG_USB_C67X00_HCD is not set
+CONFIG_USB_XHCI_HCD=y
+# CONFIG_USB_XHCI_DBGCAP is not set
+CONFIG_USB_XHCI_PCI=y
+CONFIG_USB_XHCI_PLATFORM=y
+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_HCD_PLATFORM=y
+# 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 is not set
+# CONFIG_USB_UHCI_HCD is not set
+# CONFIG_USB_SL811_HCD is not set
+# CONFIG_USB_R8A66597_HCD is not set
+# CONFIG_USB_HCD_TEST_MODE is not set
+
+#
+# USB Device Class drivers
+#
+# CONFIG_USB_ACM is not set
+CONFIG_USB_PRINTER=y
+# CONFIG_USB_WDM is not set
+# CONFIG_USB_TMC is not set
+
+#
+# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
+#
+
+#
+# also be needed; see USB_STORAGE Help for more info
+#
+CONFIG_USB_STORAGE=y
+# CONFIG_USB_STORAGE_DEBUG is not set
+CONFIG_USB_STORAGE_REALTEK=y
+CONFIG_REALTEK_AUTOPM=y
+CONFIG_USB_STORAGE_DATAFAB=y
+CONFIG_USB_STORAGE_FREECOM=y
+CONFIG_USB_STORAGE_ISD200=y
+CONFIG_USB_STORAGE_USBAT=y
+CONFIG_USB_STORAGE_SDDR09=y
+CONFIG_USB_STORAGE_SDDR55=y
+CONFIG_USB_STORAGE_JUMPSHOT=y
+CONFIG_USB_STORAGE_ALAUDA=y
+CONFIG_USB_STORAGE_ONETOUCH=y
+CONFIG_USB_STORAGE_KARMA=y
+CONFIG_USB_STORAGE_CYPRESS_ATACB=y
+CONFIG_USB_STORAGE_ENE_UB6250=y
+CONFIG_USB_UAS=y
+
+#
+# USB Imaging devices
+#
+# CONFIG_USB_MDC800 is not set
+# CONFIG_USB_MICROTEK is not set
+# CONFIG_USBIP_CORE is not set
+# CONFIG_USB_MUSB_HDRC is not set
+# CONFIG_USB_DWC3 is not set
+CONFIG_USB_DWC2=y
+CONFIG_USB_DWC2_HOST=y
+
+#
+# Gadget/Dual-role mode requires USB Gadget support to be enabled
+#
+# 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 is not set
+# CONFIG_USB_ISP1760 is not set
+
+#
+# USB port drivers
+#
+# CONFIG_USB_SERIAL is not set
+
+#
+# USB Miscellaneous drivers
+#
+# CONFIG_USB_EMI62 is not set
+# CONFIG_USB_EMI26 is not set
+# CONFIG_USB_ADUTUX is not set
+# CONFIG_USB_SEVSEG is not set
+# CONFIG_USB_RIO500 is not set
+# CONFIG_USB_LEGOTOWER is not set
+# CONFIG_USB_LCD is not set
+# CONFIG_USB_CYPRESS_CY7C63 is not set
+# CONFIG_USB_CYTHERM is not set
+# CONFIG_USB_IDMOUSE is not set
+# CONFIG_USB_FTDI_ELAN is not set
+# CONFIG_USB_APPLEDISPLAY is not set
+# CONFIG_USB_SISUSBVGA is not set
+# CONFIG_USB_LD is not set
+# CONFIG_USB_TRANCEVIBRATOR is not set
+# CONFIG_USB_IOWARRIOR is not set
+# CONFIG_USB_TEST is not set
+# CONFIG_USB_EHSET_TEST_FIXTURE is not set
+# CONFIG_USB_ISIGHTFW is not set
+# CONFIG_USB_YUREX is not set
+# CONFIG_USB_EZUSB_FX2 is not set
+# CONFIG_USB_HUB_USB251XB is not set
+# CONFIG_USB_HSIC_USB3503 is not set
+# CONFIG_USB_HSIC_USB4604 is not set
+# CONFIG_USB_LINK_LAYER_TEST is not set
+
+#
+# USB Physical Layer drivers
+#
+CONFIG_USB_PHY=y
+CONFIG_NOP_USB_XCEIV=y
+# CONFIG_AM335X_PHY_USB is not set
+CONFIG_USB_GPIO_VBUS=y
+# CONFIG_USB_ISP1301 is not set
+# CONFIG_USB_ULPI is not set
+# CONFIG_USB_GADGET is not set
+# CONFIG_TYPEC is not set
+# CONFIG_USB_ROLE_SWITCH is not set
+# CONFIG_USB_LED_TRIG is not set
+# CONFIG_USB_ULPI_BUS is not set
+# CONFIG_UWB is not set
+CONFIG_MMC=y
+CONFIG_PWRSEQ_EMMC=y
+CONFIG_PWRSEQ_SIMPLE=y
+CONFIG_MMC_BLOCK=y
+CONFIG_MMC_BLOCK_MINORS=16
+# CONFIG_SDIO_UART is not set
+# CONFIG_MMC_TEST is not set
+
+#
+# MMC/SD/SDIO Host Controller Drivers
+#
+# CONFIG_MMC_DEBUG is not set
+# CONFIG_MMC_ARMMMCI is not set
+CONFIG_MMC_SDHCI=y
+# CONFIG_MMC_SDHCI_PCI is not set
+CONFIG_MMC_SDHCI_PLTFM=y
+# CONFIG_MMC_SDHCI_OF_ARASAN is not set
+# CONFIG_MMC_SDHCI_OF_AT91 is not set
+# CONFIG_MMC_SDHCI_OF_DWCMSHC is not set
+CONFIG_MMC_SDHCI_CADENCE=y
+# CONFIG_MMC_SDHCI_F_SDH30 is not set
+# CONFIG_MMC_TIFM_SD is not set
+CONFIG_MMC_SPI=y
+# CONFIG_MMC_CB710 is not set
+# CONFIG_MMC_VIA_SDMMC is not set
+CONFIG_MMC_DW=y
+CONFIG_MMC_DW_PLTFM=y
+# 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 is not set
+# CONFIG_MMC_DW_PCI is not set
+CONFIG_MMC_DW_ROCKCHIP=y
+# CONFIG_MMC_VUB300 is not set
+CONFIG_MMC_USHC=y
+# CONFIG_MMC_USDHI6ROL0 is not set
+CONFIG_MMC_REALTEK_USB=y
+# CONFIG_MMC_CQHCI is not set
+# CONFIG_MMC_TOSHIBA_PCI is not set
+# CONFIG_MMC_MTK is not set
+# CONFIG_MMC_SDHCI_XENON is not set
+# CONFIG_MMC_SDHCI_OMAP is not set
+# CONFIG_MMC_SDHCI_AM654 is not set
+# CONFIG_MEMSTICK is not set
+CONFIG_NEW_LEDS=y
+CONFIG_LEDS_CLASS=y
+# CONFIG_LEDS_CLASS_FLASH is not set
+# CONFIG_LEDS_BRIGHTNESS_HW_CHANGED is not set
+
+#
+# LED drivers
+#
+# CONFIG_LEDS_AN30259A is not set
+# CONFIG_LEDS_BCM6328 is not set
+# CONFIG_LEDS_BCM6358 is not set
+# CONFIG_LEDS_CR0014114 is not set
+# CONFIG_LEDS_LM3530 is not set
+# CONFIG_LEDS_LM3642 is not set
+# CONFIG_LEDS_LM3692X is not set
+# CONFIG_LEDS_PCA9532 is not set
+# CONFIG_LEDS_GPIO is not set
+# CONFIG_LEDS_LP3944 is not set
+# CONFIG_LEDS_LP3952 is not set
+# 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 is not set
+# CONFIG_LEDS_PCA963X is not set
+# CONFIG_LEDS_DA9052 is not set
+# CONFIG_LEDS_DAC124S085 is not set
+# CONFIG_LEDS_PWM is not set
+# CONFIG_LEDS_REGULATOR is not set
+# CONFIG_LEDS_BD2802 is not set
+# CONFIG_LEDS_LT3593 is not set
+# 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
+
+#
+# LED Triggers
+#
+CONFIG_LEDS_TRIGGERS=y
+# CONFIG_LEDS_TRIGGER_TIMER is not set
+# CONFIG_LEDS_TRIGGER_ONESHOT is not set
+# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set
+# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
+CONFIG_LEDS_TRIGGER_CPU=y
+# CONFIG_LEDS_TRIGGER_ACTIVITY is not set
+# CONFIG_LEDS_TRIGGER_GPIO is not set
+# CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set
+
+#
+# iptables trigger is under Netfilter config (LED target)
+#
+# CONFIG_LEDS_TRIGGER_TRANSIENT is not set
+# CONFIG_LEDS_TRIGGER_CAMERA is not set
+# CONFIG_LEDS_TRIGGER_PANIC is not set
+# CONFIG_LEDS_TRIGGER_NETDEV is not set
+# CONFIG_LEDS_TRIGGER_PATTERN is not set
+# CONFIG_LEDS_TRIGGER_AUDIO is not set
+# CONFIG_ACCESSIBILITY is not set
+# CONFIG_INFINIBAND is not set
+CONFIG_EDAC_ATOMIC_SCRUB=y
+CONFIG_EDAC_SUPPORT=y
+# CONFIG_EDAC is not set
+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_ABX80X is not set
+# CONFIG_RTC_DRV_AS3722 is not set
+# CONFIG_RTC_DRV_DS1307 is not set
+# CONFIG_RTC_DRV_DS1374 is not set
+# CONFIG_RTC_DRV_DS1672 is not set
+CONFIG_RTC_DRV_HYM8563=y
+# CONFIG_RTC_DRV_MAX6900 is not set
+# CONFIG_RTC_DRV_MAX77686 is not set
+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 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_BQ32K is not set
+# CONFIG_RTC_DRV_TWL4030 is not set
+# CONFIG_RTC_DRV_PALMAS 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_RV8803 is not set
+# CONFIG_RTC_DRV_S5M 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 is not set
+# 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 is not set
+# 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=y
+
+#
+# on-CPU RTC drivers
+#
+# CONFIG_RTC_DRV_PL030 is not set
+# CONFIG_RTC_DRV_PL031 is not set
+# CONFIG_RTC_DRV_FTRTC010 is not set
+# CONFIG_RTC_DRV_SNVS is not set
+# 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_DMA_ENGINE=y
+CONFIG_DMA_VIRTUAL_CHANNELS=y
+CONFIG_DMA_OF=y
+# CONFIG_ALTERA_MSGDMA is not set
+CONFIG_AMBA_PL08X=y
+# CONFIG_DW_AXI_DMAC is not set
+# CONFIG_FSL_EDMA is not set
+# CONFIG_INTEL_IDMA64 is not set
+# CONFIG_NBPFAXI_DMA is not set
+CONFIG_PL330_DMA=y
+# 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
+
+#
+# DMA Clients
+#
+# CONFIG_ASYNC_TX_DMA is not set
+# CONFIG_DMATEST is not set
+
+#
+# DMABUF options
+#
+CONFIG_SYNC_FILE=y
+# CONFIG_SW_SYNC is not set
+# CONFIG_UDMABUF is not set
+# CONFIG_AUXDISPLAY is not set
+# CONFIG_UIO is not set
+# CONFIG_VFIO is not set
+# CONFIG_VIRT_DRIVERS is not set
+CONFIG_VIRTIO=y
+# CONFIG_VIRTIO_MENU is not set
+
+#
+# Microsoft Hyper-V guest support
+#
+# CONFIG_STAGING is not set
+# CONFIG_GOLDFISH is not set
+CONFIG_CHROME_PLATFORMS=y
+CONFIG_CROS_EC_CTL=y
+CONFIG_CROS_EC_I2C=y
+CONFIG_CROS_EC_SPI=y
+CONFIG_CROS_EC_PROTO=y
+# CONFIG_MELLANOX_PLATFORM is not set
+CONFIG_CLKDEV_LOOKUP=y
+CONFIG_HAVE_CLK_PREPARE=y
+CONFIG_COMMON_CLK=y
+
+#
+# Common Clock Framework
+#
+# CONFIG_CLK_HSDK is not set
+# CONFIG_COMMON_CLK_MAX77686 is not set
+# CONFIG_COMMON_CLK_MAX9485 is not set
+CONFIG_COMMON_CLK_RK808=y
+# CONFIG_COMMON_CLK_SCPI is not set
+# 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 is not set
+# CONFIG_CLK_TWL6040 is not set
+# CONFIG_CLK_QORIQ is not set
+# CONFIG_COMMON_CLK_PALMAS is not set
+# CONFIG_COMMON_CLK_PWM is not set
+# CONFIG_COMMON_CLK_VC5 is not set
+# CONFIG_HWSPINLOCK is not set
+
+#
+# Clock Source drivers
+#
+CONFIG_TIMER_OF=y
+CONFIG_TIMER_PROBE=y
+CONFIG_CLKSRC_MMIO=y
+CONFIG_DW_APB_TIMER=y
+CONFIG_DW_APB_TIMER_OF=y
+CONFIG_ROCKCHIP_TIMER=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_MAILBOX=y
+# CONFIG_ARM_MHU is not set
+# CONFIG_PLATFORM_MHU is not set
+CONFIG_PL320_MBOX=y
+CONFIG_ROCKCHIP_MBOX=y
+# CONFIG_ALTERA_MBOX is not set
+# CONFIG_MAILBOX_TEST is not set
+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
+# CONFIG_IOMMU_DEBUGFS is not set
+# CONFIG_IOMMU_DEFAULT_PASSTHROUGH is not set
+CONFIG_OF_IOMMU=y
+CONFIG_ROCKCHIP_IOMMU=y
+# CONFIG_ARM_SMMU is not set
+
+#
+# Remoteproc drivers
+#
+CONFIG_REMOTEPROC=y
+
+#
+# Rpmsg drivers
+#
+# CONFIG_RPMSG_QCOM_GLINK_RPM is not set
+# CONFIG_RPMSG_VIRTIO is not set
+# CONFIG_SOUNDWIRE is not set
+
+#
+# SOC (System On Chip) specific Drivers
+#
+
+#
+# Amlogic SoC drivers
+#
+
+#
+# Broadcom SoC drivers
+#
+# CONFIG_SOC_BRCMSTB is not set
+
+#
+# NXP/Freescale QorIQ SoC drivers
+#
+
+#
+# i.MX SoC drivers
+#
+
+#
+# Qualcomm SoC drivers
+#
+CONFIG_ROCKCHIP_GRF=y
+CONFIG_ROCKCHIP_PM_DOMAINS=y
+# CONFIG_SOC_TI is not set
+
+#
+# Xilinx SoC drivers
+#
+# CONFIG_XILINX_VCU is not set
+# CONFIG_PM_DEVFREQ is not set
+CONFIG_EXTCON=y
+
+#
+# Extcon Device Drivers
+#
+# CONFIG_EXTCON_ADC_JACK is not set
+# CONFIG_EXTCON_GPIO is not set
+# CONFIG_EXTCON_MAX3355 is not set
+# CONFIG_EXTCON_PALMAS is not set
+# CONFIG_EXTCON_RT8973A is not set
+# CONFIG_EXTCON_SM5502 is not set
+# CONFIG_EXTCON_USB_GPIO is not set
+# CONFIG_EXTCON_USBC_CROS_EC is not set
+# CONFIG_MEMORY is not set
+CONFIG_IIO=y
+CONFIG_IIO_BUFFER=y
+# CONFIG_IIO_BUFFER_CB is not set
+# CONFIG_IIO_BUFFER_HW_CONSUMER is not set
+CONFIG_IIO_KFIFO_BUF=y
+CONFIG_IIO_TRIGGERED_BUFFER=y
+# 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
+
+#
+# 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_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_IIO_CROS_EC_ACCEL_LEGACY is not set
+# 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
+
+#
+# Analog to digital converters
+#
+# CONFIG_AD7124 is not set
+# CONFIG_AD7266 is not set
+# CONFIG_AD7291 is not set
+# CONFIG_AD7298 is not set
+# CONFIG_AD7476 is not set
+# CONFIG_AD7766 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_AXP20X_ADC is not set
+# CONFIG_AXP288_ADC is not set
+# 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_LTC2471 is not set
+# CONFIG_LTC2485 is not set
+# CONFIG_LTC2497 is not set
+# CONFIG_MAX1027 is not set
+# CONFIG_MAX11100 is not set
+# CONFIG_MAX1118 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_NAU7802 is not set
+# CONFIG_PALMAS_GPADC is not set
+CONFIG_ROCKCHIP_SARADC=y
+CONFIG_SD_ADC_MODULATOR=y
+# 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_ADS8688 is not set
+# CONFIG_TI_TLC4541 is not set
+# CONFIG_TWL4030_MADC is not set
+# CONFIG_TWL6030_GPADC is not set
+# CONFIG_VF610_ADC is not set
+
+#
+# Analog Front Ends
+#
+# CONFIG_IIO_RESCALE is not set
+
+#
+# Amplifiers
+#
+# CONFIG_AD8366 is not set
+
+#
+# Chemical Sensors
+#
+# CONFIG_ATLAS_PH_SENSOR is not set
+# CONFIG_BME680 is not set
+# CONFIG_CCS811 is not set
+# CONFIG_IAQCORE is not set
+# CONFIG_VZ89X is not set
+# CONFIG_IIO_CROS_EC_SENSORS_CORE is not set
+
+#
+# Hid Sensor IIO Common
+#
+
+#
+# SSP Sensor Common
+#
+# CONFIG_IIO_SSP_SENSORHUB is not set
+
+#
+# Counters
+#
+
+#
+# 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_LTC1660 is not set
+# CONFIG_LTC2632 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_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_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_VF610_DAC is not set
+
+#
+# IIO dummy driver
+#
+
+#
+# Frequency Synthesizers DDS/PLL
+#
+
+#
+# Clock Generator/Distribution
+#
+# CONFIG_AD9523 is not set
+
+#
+# Phase-Locked Loop (PLL) frequency synthesizers
+#
+# CONFIG_ADF4350 is not set
+
+#
+# Digital gyroscope sensors
+#
+# CONFIG_ADIS16080 is not set
+# CONFIG_ADIS16130 is not set
+# CONFIG_ADIS16136 is not set
+# CONFIG_ADIS16260 is not set
+# CONFIG_ADXRS450 is not set
+# CONFIG_BMG160 is not set
+# CONFIG_MPU3050_I2C is not set
+# CONFIG_IIO_ST_GYRO_3AXIS is not set
+# CONFIG_ITG3200 is not set
+
+#
+# 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
+
+#
+# Humidity sensors
+#
+# CONFIG_AM2315 is not set
+# CONFIG_DHT11 is not set
+# CONFIG_HDC100X is not set
+# CONFIG_HTS221 is not set
+# CONFIG_HTU21 is not set
+# CONFIG_SI7005 is not set
+# CONFIG_SI7020 is not set
+
+#
+# Inertial measurement units
+#
+# CONFIG_ADIS16400 is not set
+# CONFIG_ADIS16480 is not set
+# CONFIG_BMI160_I2C is not set
+# CONFIG_BMI160_SPI is not set
+# CONFIG_KMX61 is not set
+# CONFIG_INV_MPU6050_I2C is not set
+# CONFIG_INV_MPU6050_SPI is not set
+# CONFIG_IIO_ST_LSM6DSX is not set
+
+#
+# Light sensors
+#
+# CONFIG_ADJD_S311 is not set
+# CONFIG_AL3320A is not set
+# CONFIG_APDS9300 is not set
+# CONFIG_APDS9960 is not set
+# CONFIG_BH1750 is not set
+# CONFIG_BH1780 is not set
+# 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_GP2AP020A00F is not set
+# CONFIG_SENSORS_ISL29018 is not set
+# CONFIG_SENSORS_ISL29028 is not set
+# CONFIG_ISL29125 is not set
+# 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_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_VEML6070 is not set
+# CONFIG_VL6180 is not set
+# CONFIG_ZOPT2201 is not set
+
+#
+# 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_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
+
+#
+# Multiplexers
+#
+# CONFIG_IIO_MUX is not set
+
+#
+# Inclinometer sensors
+#
+
+#
+# Triggers - standalone
+#
+# CONFIG_IIO_INTERRUPT_TRIGGER is not set
+CONFIG_IIO_SYSFS_TRIGGER=y
+
+#
+# Digital potentiometers
+#
+# CONFIG_AD5272 is not set
+# CONFIG_DS1803 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
+
+#
+# Digital potentiostats
+#
+# CONFIG_LMP91000 is not set
+
+#
+# Pressure sensors
+#
+# CONFIG_ABP060MG is not set
+# CONFIG_BMP280 is not set
+# CONFIG_HP03 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
+
+#
+# Lightning sensors
+#
+# CONFIG_AS3935 is not set
+
+#
+# Proximity and distance sensors
+#
+# CONFIG_ISL29501 is not set
+# CONFIG_LIDAR_LITE_V2 is not set
+# CONFIG_RFD77402 is not set
+# CONFIG_SRF04 is not set
+# CONFIG_SX9500 is not set
+# CONFIG_SRF08 is not set
+# CONFIG_VL53L0X_I2C is not set
+
+#
+# Resolver to digital converters
+#
+# CONFIG_AD2S90 is not set
+# CONFIG_AD2S1200 is not set
+
+#
+# Temperature sensors
+#
+# CONFIG_MAXIM_THERMOCOUPLE 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_NTB is not set
+# CONFIG_VME_BUS is not set
+CONFIG_PWM=y
+CONFIG_PWM_SYSFS=y
+CONFIG_PWM_CROS_EC=y
+# CONFIG_PWM_FSL_FTM is not set
+# CONFIG_PWM_PCA9685 is not set
+CONFIG_PWM_ROCKCHIP=y
+# CONFIG_PWM_TWL is not set
+# CONFIG_PWM_TWL_LED is not set
+
+#
+# IRQ chip support
+#
+CONFIG_IRQCHIP=y
+CONFIG_ARM_GIC=y
+CONFIG_ARM_GIC_MAX_NR=1
+# CONFIG_IPACK_BUS is not set
+CONFIG_ARCH_HAS_RESET_CONTROLLER=y
+CONFIG_RESET_CONTROLLER=y
+# CONFIG_RESET_TI_SYSCON is not set
+# CONFIG_FMC is not set
+
+#
+# PHY Subsystem
+#
+CONFIG_GENERIC_PHY=y
+# CONFIG_BCM_KONA_USB2_PHY is not set
+# CONFIG_PHY_CADENCE_DP is not set
+# CONFIG_PHY_CADENCE_SIERRA is not set
+# CONFIG_PHY_FSL_IMX8MQ_USB is not set
+# 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_ROCKCHIP_DP=y
+CONFIG_PHY_ROCKCHIP_EMMC=y
+# CONFIG_PHY_ROCKCHIP_INNO_HDMI is not set
+# CONFIG_PHY_ROCKCHIP_INNO_USB2 is not set
+# CONFIG_PHY_ROCKCHIP_PCIE is not set
+# CONFIG_PHY_ROCKCHIP_TYPEC is not set
+CONFIG_PHY_ROCKCHIP_USB=y
+# CONFIG_PHY_SAMSUNG_USB2 is not set
+# 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_RAS=y
+
+#
+# Android
+#
+# CONFIG_ANDROID is not set
+# CONFIG_LIBNVDIMM is not set
+# CONFIG_DAX is not set
+CONFIG_NVMEM=y
+CONFIG_ROCKCHIP_EFUSE=y
+
+#
+# HW tracing support
+#
+# CONFIG_STM is not set
+# CONFIG_INTEL_TH is not set
+# CONFIG_FPGA is not set
+# CONFIG_FSI is not set
+# CONFIG_TEE is not set
+CONFIG_PM_OPP=y
+# CONFIG_SIOX is not set
+# CONFIG_SLIMBUS is not set
+
+#
+# File systems
+#
+CONFIG_DCACHE_WORD_ACCESS=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_ENCRYPTION is not set
+# CONFIG_EXT4_DEBUG is not set
+CONFIG_JBD2=y
+# CONFIG_JBD2_DEBUG is not set
+CONFIG_FS_MBCACHE=y
+# CONFIG_REISERFS_FS is not set
+# CONFIG_JFS_FS is not set
+CONFIG_XFS_FS=m
+# CONFIG_XFS_QUOTA is not set
+# CONFIG_XFS_POSIX_ACL is not set
+# CONFIG_XFS_RT is not set
+# CONFIG_XFS_ONLINE_SCRUB is not set
+# CONFIG_XFS_WARN is not set
+# CONFIG_XFS_DEBUG is not set
+# CONFIG_GFS2_FS is not set
+# CONFIG_OCFS2_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 is not set
+# CONFIG_F2FS_FS is not set
+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_FSNOTIFY=y
+# CONFIG_DNOTIFY is not set
+CONFIG_INOTIFY_USER=y
+CONFIG_FANOTIFY=y
+# CONFIG_QUOTA is not set
+CONFIG_AUTOFS4_FS=m
+CONFIG_AUTOFS_FS=m
+CONFIG_FUSE_FS=m
+# CONFIG_CUSE is not set
+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=y
+# CONFIG_FSCACHE_STATS is not set
+# CONFIG_FSCACHE_HISTOGRAM is not set
+# CONFIG_FSCACHE_DEBUG is not set
+# CONFIG_FSCACHE_OBJECT_LIST is not set
+CONFIG_CACHEFILES=y
+# CONFIG_CACHEFILES_DEBUG is not set
+# CONFIG_CACHEFILES_HISTOGRAM is not set
+
+#
+# CD-ROM/DVD Filesystems
+#
+CONFIG_ISO9660_FS=m
+CONFIG_JOLIET=y
+CONFIG_ZISOFS=y
+CONFIG_UDF_FS=m
+
+#
+# DOS/FAT/NT Filesystems
+#
+CONFIG_FAT_FS=y
+# CONFIG_MSDOS_FS is not set
+CONFIG_VFAT_FS=y
+CONFIG_FAT_DEFAULT_CODEPAGE=850
+CONFIG_FAT_DEFAULT_IOCHARSET="utf8"
+CONFIG_FAT_DEFAULT_UTF8=y
+CONFIG_NTFS_FS=y
+# CONFIG_NTFS_DEBUG is not set
+CONFIG_NTFS_RW=y
+
+#
+# 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_HUGETLBFS is not set
+CONFIG_MEMFD_CREATE=y
+CONFIG_CONFIGFS_FS=y
+CONFIG_MISC_FILESYSTEMS=y
+# CONFIG_ORANGEFS_FS is not set
+# CONFIG_ADFS_FS is not set
+# CONFIG_AFFS_FS is not set
+CONFIG_ECRYPT_FS=y
+# CONFIG_ECRYPT_FS_MESSAGING is not set
+# CONFIG_HFS_FS is not set
+# CONFIG_HFSPLUS_FS is not set
+# CONFIG_BEFS_FS is not set
+# CONFIG_BFS_FS is not set
+# CONFIG_EFS_FS is not set
+# CONFIG_CRAMFS 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 is not set
+CONFIG_SQUASHFS_ZLIB=y
+# CONFIG_SQUASHFS_LZ4 is not set
+# CONFIG_SQUASHFS_LZO is not set
+# CONFIG_SQUASHFS_XZ is not set
+# 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 is not set
+# CONFIG_MINIX_FS is not set
+# CONFIG_OMFS_FS is not set
+# CONFIG_HPFS_FS is not set
+# CONFIG_QNX4FS_FS is not set
+# CONFIG_QNX6FS_FS is not set
+# CONFIG_ROMFS_FS is not set
+# CONFIG_PSTORE is not set
+# CONFIG_SYSV_FS is not set
+# CONFIG_UFS_FS is not set
+# CONFIG_NETWORK_FILESYSTEMS is not set
+CONFIG_NLS=y
+CONFIG_NLS_DEFAULT="utf8"
+CONFIG_NLS_CODEPAGE_437=y
+# CONFIG_NLS_CODEPAGE_737 is not set
+# CONFIG_NLS_CODEPAGE_775 is not set
+CONFIG_NLS_CODEPAGE_850=y
+# CONFIG_NLS_CODEPAGE_852 is not set
+# CONFIG_NLS_CODEPAGE_855 is not set
+# CONFIG_NLS_CODEPAGE_857 is not set
+# CONFIG_NLS_CODEPAGE_860 is not set
+# CONFIG_NLS_CODEPAGE_861 is not set
+# CONFIG_NLS_CODEPAGE_862 is not set
+# CONFIG_NLS_CODEPAGE_863 is not set
+# CONFIG_NLS_CODEPAGE_864 is not set
+# CONFIG_NLS_CODEPAGE_865 is not set
+# CONFIG_NLS_CODEPAGE_866 is not set
+# CONFIG_NLS_CODEPAGE_869 is not set
+# CONFIG_NLS_CODEPAGE_936 is not set
+# CONFIG_NLS_CODEPAGE_950 is not set
+# CONFIG_NLS_CODEPAGE_932 is not set
+# CONFIG_NLS_CODEPAGE_949 is not set
+# CONFIG_NLS_CODEPAGE_874 is not set
+# CONFIG_NLS_ISO8859_8 is not set
+# CONFIG_NLS_CODEPAGE_1250 is not set
+# CONFIG_NLS_CODEPAGE_1251 is not set
+# CONFIG_NLS_ASCII is not set
+# CONFIG_NLS_ISO8859_1 is not set
+# CONFIG_NLS_ISO8859_2 is not set
+# CONFIG_NLS_ISO8859_3 is not set
+# CONFIG_NLS_ISO8859_4 is not set
+# CONFIG_NLS_ISO8859_5 is not set
+# CONFIG_NLS_ISO8859_6 is not set
+# CONFIG_NLS_ISO8859_7 is not set
+# CONFIG_NLS_ISO8859_9 is not set
+# CONFIG_NLS_ISO8859_13 is not set
+# CONFIG_NLS_ISO8859_14 is not set
+# CONFIG_NLS_ISO8859_15 is not set
+# CONFIG_NLS_KOI8_R is not set
+# CONFIG_NLS_KOI8_U is not set
+# CONFIG_NLS_MAC_ROMAN is not set
+# CONFIG_NLS_MAC_CELTIC is not set
+# CONFIG_NLS_MAC_CENTEURO is not set
+# CONFIG_NLS_MAC_CROATIAN is not set
+# CONFIG_NLS_MAC_CYRILLIC is not set
+# CONFIG_NLS_MAC_GAELIC is not set
+# CONFIG_NLS_MAC_GREEK is not set
+# CONFIG_NLS_MAC_ICELAND is not set
+# CONFIG_NLS_MAC_INUIT is not set
+# CONFIG_NLS_MAC_ROMANIAN is not set
+# CONFIG_NLS_MAC_TURKISH is not set
+CONFIG_NLS_UTF8=y
+# CONFIG_DLM is not set
+
+#
+# Security options
+#
+CONFIG_KEYS=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_SECURITY_DMESG_RESTRICT is not set
+# CONFIG_SECURITY is not set
+CONFIG_SECURITYFS=y
+CONFIG_HAVE_HARDENED_USERCOPY_ALLOCATOR=y
+# CONFIG_HARDENED_USERCOPY is not set
+# CONFIG_FORTIFY_SOURCE is not set
+# CONFIG_STATIC_USERMODEHELPER is not set
+CONFIG_DEFAULT_SECURITY_DAC=y
+CONFIG_DEFAULT_SECURITY=""
+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_BLKCIPHER=y
+CONFIG_CRYPTO_BLKCIPHER2=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_RSA=y
+# CONFIG_CRYPTO_DH is not set
+CONFIG_CRYPTO_ECDH=y
+CONFIG_CRYPTO_MANAGER=y
+CONFIG_CRYPTO_MANAGER2=y
+# CONFIG_CRYPTO_USER is not set
+# CONFIG_CRYPTO_MANAGER_DISABLE_TESTS is not set
+CONFIG_CRYPTO_GF128MUL=y
+CONFIG_CRYPTO_NULL=y
+CONFIG_CRYPTO_NULL2=y
+# CONFIG_CRYPTO_PCRYPT is not set
+CONFIG_CRYPTO_WORKQUEUE=y
+# CONFIG_CRYPTO_CRYPTD is not set
+# CONFIG_CRYPTO_AUTHENC is not set
+# CONFIG_CRYPTO_TEST is not set
+CONFIG_CRYPTO_ENGINE=m
+
+#
+# Authenticated Encryption with Associated Data
+#
+CONFIG_CRYPTO_CCM=y
+CONFIG_CRYPTO_GCM=y
+# CONFIG_CRYPTO_CHACHA20POLY1305 is not set
+# CONFIG_CRYPTO_AEGIS128 is not set
+# CONFIG_CRYPTO_AEGIS128L is not set
+# CONFIG_CRYPTO_AEGIS256 is not set
+# CONFIG_CRYPTO_MORUS640 is not set
+# CONFIG_CRYPTO_MORUS1280 is not set
+CONFIG_CRYPTO_SEQIV=y
+# CONFIG_CRYPTO_ECHAINIV is not set
+
+#
+# Block modes
+#
+CONFIG_CRYPTO_CBC=y
+# CONFIG_CRYPTO_CFB is not set
+CONFIG_CRYPTO_CTR=y
+# CONFIG_CRYPTO_CTS is not set
+CONFIG_CRYPTO_ECB=y
+# CONFIG_CRYPTO_LRW is not set
+# CONFIG_CRYPTO_OFB is not set
+# CONFIG_CRYPTO_PCBC is not set
+CONFIG_CRYPTO_XTS=y
+# CONFIG_CRYPTO_KEYWRAP is not set
+# CONFIG_CRYPTO_ADIANTUM is not set
+
+#
+# Hash modes
+#
+CONFIG_CRYPTO_CMAC=y
+CONFIG_CRYPTO_HMAC=y
+# CONFIG_CRYPTO_XCBC is not set
+# CONFIG_CRYPTO_VMAC is not set
+
+#
+# Digest
+#
+CONFIG_CRYPTO_CRC32C=y
+# CONFIG_CRYPTO_CRC32 is not set
+CONFIG_CRYPTO_CRCT10DIF=y
+CONFIG_CRYPTO_GHASH=y
+# CONFIG_CRYPTO_POLY1305 is not set
+# CONFIG_CRYPTO_MD4 is not set
+CONFIG_CRYPTO_MD5=y
+# CONFIG_CRYPTO_MICHAEL_MIC is not set
+# CONFIG_CRYPTO_RMD128 is not set
+# CONFIG_CRYPTO_RMD160 is not set
+# CONFIG_CRYPTO_RMD256 is not set
+# CONFIG_CRYPTO_RMD320 is not set
+CONFIG_CRYPTO_SHA1=y
+CONFIG_CRYPTO_SHA256=y
+# CONFIG_CRYPTO_SHA512 is not set
+# CONFIG_CRYPTO_SHA3 is not set
+# CONFIG_CRYPTO_SM3 is not set
+# CONFIG_CRYPTO_STREEBOG is not set
+# CONFIG_CRYPTO_TGR192 is not set
+# CONFIG_CRYPTO_WP512 is not set
+
+#
+# Ciphers
+#
+CONFIG_CRYPTO_AES=y
+# CONFIG_CRYPTO_AES_TI is not set
+# CONFIG_CRYPTO_ANUBIS is not set
+CONFIG_CRYPTO_ARC4=y
+# CONFIG_CRYPTO_BLOWFISH is not set
+# CONFIG_CRYPTO_CAMELLIA is not set
+# CONFIG_CRYPTO_CAST5 is not set
+# CONFIG_CRYPTO_CAST6 is not set
+CONFIG_CRYPTO_DES=y
+# CONFIG_CRYPTO_FCRYPT is not set
+# CONFIG_CRYPTO_KHAZAD is not set
+# CONFIG_CRYPTO_SALSA20 is not set
+# CONFIG_CRYPTO_CHACHA20 is not set
+# CONFIG_CRYPTO_SEED is not set
+# CONFIG_CRYPTO_SERPENT is not set
+# CONFIG_CRYPTO_SM4 is not set
+# CONFIG_CRYPTO_TEA is not set
+# CONFIG_CRYPTO_TWOFISH is not set
+
+#
+# Compression
+#
+CONFIG_CRYPTO_DEFLATE=y
+CONFIG_CRYPTO_LZO=y
+# CONFIG_CRYPTO_842 is not set
+CONFIG_CRYPTO_LZ4=y
+# CONFIG_CRYPTO_LZ4HC is not set
+# CONFIG_CRYPTO_ZSTD is not set
+
+#
+# Random Number Generation
+#
+# CONFIG_CRYPTO_ANSI_CPRNG is not set
+CONFIG_CRYPTO_DRBG_MENU=y
+CONFIG_CRYPTO_DRBG_HMAC=y
+# CONFIG_CRYPTO_DRBG_HASH is not set
+# CONFIG_CRYPTO_DRBG_CTR is not set
+CONFIG_CRYPTO_DRBG=y
+CONFIG_CRYPTO_JITTERENTROPY=y
+# CONFIG_CRYPTO_USER_API_HASH is not set
+# CONFIG_CRYPTO_USER_API_SKCIPHER is not set
+# CONFIG_CRYPTO_USER_API_RNG is not set
+# CONFIG_CRYPTO_USER_API_AEAD is not set
+CONFIG_CRYPTO_HASH_INFO=y
+CONFIG_CRYPTO_HW=y
+CONFIG_CRYPTO_DEV_ROCKCHIP=y
+CONFIG_CRYPTO_DEV_VIRTIO=m
+# CONFIG_CRYPTO_DEV_CCREE is not set
+CONFIG_ASYMMETRIC_KEY_TYPE=y
+CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=y
+CONFIG_X509_CERTIFICATE_PARSER=y
+# CONFIG_PKCS8_PRIVATE_KEY_PARSER is not set
+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
+CONFIG_BINARY_PRINTF=y
+
+#
+# Library routines
+#
+CONFIG_RAID6_PQ=m
+CONFIG_RAID6_PQ_BENCHMARK=y
+CONFIG_BITREVERSE=y
+CONFIG_HAVE_ARCH_BITREVERSE=y
+CONFIG_RATIONAL=y
+CONFIG_GENERIC_STRNCPY_FROM_USER=y
+CONFIG_GENERIC_STRNLEN_USER=y
+CONFIG_GENERIC_NET_UTILS=y
+CONFIG_GENERIC_PCI_IOMAP=y
+CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y
+# CONFIG_CRC_CCITT is not set
+CONFIG_CRC16=y
+CONFIG_CRC_T10DIF=y
+CONFIG_CRC_ITU_T=y
+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 is not set
+# CONFIG_CRC4 is not set
+CONFIG_CRC7=y
+CONFIG_LIBCRC32C=y
+# CONFIG_CRC8 is not set
+CONFIG_XXHASH=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=y
+CONFIG_LZ4_DECOMPRESS=y
+CONFIG_ZSTD_COMPRESS=m
+CONFIG_ZSTD_DECOMPRESS=m
+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_GENERIC_ALLOCATOR=y
+CONFIG_XARRAY_MULTI=y
+CONFIG_ASSOCIATIVE_ARRAY=y
+CONFIG_HAS_IOMEM=y
+CONFIG_HAS_IOPORT_MAP=y
+CONFIG_HAS_DMA=y
+CONFIG_NEED_SG_DMA_LENGTH=y
+CONFIG_NEED_DMA_MAP_STATE=y
+CONFIG_ARCH_DMA_ADDR_T_64BIT=y
+CONFIG_HAVE_GENERIC_DMA_COHERENT=y
+CONFIG_DMA_REMAP=y
+CONFIG_SGL_ALLOC=y
+CONFIG_CPU_RMAP=y
+CONFIG_DQL=y
+CONFIG_GLOB=y
+# CONFIG_GLOB_SELFTEST is not set
+CONFIG_NLATTR=y
+CONFIG_CLZ_TAB=y
+# CONFIG_CORDIC is not set
+CONFIG_DDR=y
+CONFIG_IRQ_POLL=y
+CONFIG_MPILIB=y
+CONFIG_LIBFDT=y
+CONFIG_OID_REGISTRY=y
+CONFIG_FONT_SUPPORT=y
+# CONFIG_FONTS is not set
+CONFIG_FONT_8x8=y
+CONFIG_FONT_8x16=y
+CONFIG_SG_POOL=y
+CONFIG_SBITMAP=y
+# CONFIG_STRING_SELFTEST is not set
+
+#
+# Kernel hacking
+#
+
+#
+# printk and dmesg options
+#
+CONFIG_PRINTK_TIME=y
+CONFIG_CONSOLE_LOGLEVEL_DEFAULT=8
+CONFIG_CONSOLE_LOGLEVEL_QUIET=4
+CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4
+# CONFIG_BOOT_PRINTK_DELAY is not set
+CONFIG_DYNAMIC_DEBUG=y
+
+#
+# Compile-time checks and compiler options
+#
+CONFIG_DEBUG_INFO=y
+# CONFIG_DEBUG_INFO_REDUCED is not set
+# CONFIG_DEBUG_INFO_SPLIT is not set
+# CONFIG_DEBUG_INFO_DWARF4 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_UNUSED_SYMBOLS is not set
+# CONFIG_PAGE_OWNER is not set
+CONFIG_DEBUG_FS=y
+# CONFIG_HEADERS_CHECK is not set
+# CONFIG_DEBUG_SECTION_MISMATCH is not set
+# CONFIG_SECTION_MISMATCH_WARN_ONLY is not set
+CONFIG_ARCH_WANT_FRAME_POINTERS=y
+CONFIG_FRAME_POINTER=y
+# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
+CONFIG_MAGIC_SYSRQ=y
+CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x01b6
+# CONFIG_MAGIC_SYSRQ_SERIAL is not set
+CONFIG_DEBUG_KERNEL=y
+
+#
+# Memory Debugging
+#
+# CONFIG_PAGE_EXTENSION is not set
+# CONFIG_DEBUG_PAGEALLOC is not set
+# CONFIG_PAGE_POISONING is not set
+# CONFIG_DEBUG_PAGE_REF is not set
+# CONFIG_DEBUG_RODATA_TEST is not set
+# CONFIG_DEBUG_OBJECTS 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_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_CC_HAS_KASAN_GENERIC=y
+CONFIG_KASAN_STACK=1
+CONFIG_ARCH_HAS_KCOV=y
+CONFIG_CC_HAS_SANCOV_TRACE_PC=y
+# CONFIG_KCOV is not set
+# CONFIG_DEBUG_SHIRQ is not set
+
+#
+# Debug Lockups and Hangs
+#
+# CONFIG_SOFTLOCKUP_DETECTOR is not set
+CONFIG_DETECT_HUNG_TASK=y
+CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=300
+# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
+CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
+# CONFIG_WQ_WATCHDOG is not set
+# CONFIG_PANIC_ON_OOPS is not set
+CONFIG_PANIC_ON_OOPS_VALUE=0
+CONFIG_PANIC_TIMEOUT=0
+# CONFIG_SCHED_DEBUG is not set
+# CONFIG_SCHEDSTATS is not set
+CONFIG_SCHED_STACK_END_CHECK=y
+# CONFIG_DEBUG_TIMEKEEPING is not set
+# CONFIG_DEBUG_PREEMPT 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_STACKTRACE=y
+# CONFIG_WARN_ALL_UNSEEDED_RANDOM is not set
+# CONFIG_DEBUG_KOBJECT is not set
+CONFIG_DEBUG_BUGVERBOSE=y
+# CONFIG_DEBUG_LIST is not set
+# CONFIG_DEBUG_PI_LIST is not set
+# CONFIG_DEBUG_SG is not set
+# CONFIG_DEBUG_NOTIFIERS is not set
+# CONFIG_DEBUG_CREDENTIALS is not set
+
+#
+# RCU Debugging
+#
+# CONFIG_RCU_PERF_TEST is not set
+# CONFIG_RCU_TORTURE_TEST is not set
+CONFIG_RCU_CPU_STALL_TIMEOUT=21
+# CONFIG_RCU_TRACE is not set
+# CONFIG_RCU_EQS_DEBUG is not set
+# 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_NOTIFIER_ERROR_INJECTION is not set
+# CONFIG_FAULT_INJECTION 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_FUNCTION_TRACER=y
+CONFIG_FUNCTION_GRAPH_TRACER=y
+# CONFIG_PREEMPTIRQ_EVENTS is not set
+# CONFIG_IRQSOFF_TRACER is not set
+# CONFIG_PREEMPT_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_STACK_TRACER=y
+# CONFIG_BLK_DEV_IO_TRACE is not set
+# CONFIG_KPROBE_EVENTS is not set
+CONFIG_UPROBE_EVENTS=y
+CONFIG_BPF_EVENTS=y
+CONFIG_DYNAMIC_EVENTS=y
+CONFIG_PROBE_EVENTS=y
+CONFIG_DYNAMIC_FTRACE=y
+CONFIG_DYNAMIC_FTRACE_WITH_REGS=y
+# CONFIG_FUNCTION_PROFILER is not set
+CONFIG_FTRACE_MCOUNT_RECORD=y
+# CONFIG_FTRACE_STARTUP_TEST is not set
+# CONFIG_TRACEPOINT_BENCHMARK is not set
+# CONFIG_RING_BUFFER_BENCHMARK is not set
+# CONFIG_RING_BUFFER_STARTUP_TEST is not set
+# CONFIG_PREEMPTIRQ_DELAY_TEST is not set
+# CONFIG_TRACE_EVAL_MAP_FILE is not set
+CONFIG_TRACING_EVENTS_GPIO=y
+# CONFIG_DMA_API_DEBUG is not set
+# CONFIG_RUNTIME_TESTING_MENU is not set
+# CONFIG_MEMTEST is not set
+# CONFIG_BUG_ON_DATA_CORRUPTION is not set
+# CONFIG_SAMPLES is not set
+CONFIG_HAVE_ARCH_KGDB=y
+# CONFIG_KGDB is not set
+# CONFIG_UBSAN is not set
+CONFIG_ARCH_HAS_DEVMEM_IS_ALLOWED=y
+# CONFIG_STRICT_DEVMEM is not set
+# CONFIG_ARM_PTDUMP_DEBUGFS is not set
+# CONFIG_DEBUG_WX is not set
+CONFIG_UNWINDER_FRAME_POINTER=y
+# CONFIG_UNWINDER_ARM is not set
+# 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
diff --git a/gnu/packages/backup.scm b/gnu/packages/backup.scm
index 5e6af1fdb2..e7e614881a 100644
--- a/gnu/packages/backup.scm
+++ b/gnu/packages/backup.scm
@@ -73,7 +73,7 @@
 (define-public duplicity
   (package
     (name "duplicity")
-    (version "0.7.18.1")
+    (version "0.7.18.2")
     (source
      (origin
       (method url-fetch)
@@ -82,8 +82,7 @@
                           "-series/" version "/+download/duplicity-"
                           version ".tar.gz"))
       (sha256
-       (base32
-        "17c0203y5qz9w8iyhs26l44qf6a1vp26b5ykz1ypdr2kv6g02df9"))))
+       (base32 "0j37dgyji36hvb5dbzlmh5rj83jwhni02yq16g6rd3hj8f7qhdn2"))))
     (build-system python-build-system)
     (native-inputs
      `(("util-linux" ,util-linux)       ; setsid command, for the tests
@@ -980,14 +979,14 @@ precious backup space.
 (define-public burp
   (package
     (name "burp")
-    (version "2.3.2")
+    (version "2.3.4")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://sourceforge/burp/burp-" version
                                   "/burp-" version ".tar.bz2"))
               (sha256
                (base32
-                "1nkkn0nfydn39cl5rxd1wbmzizird6z05j9h2xr7xczdlhhjnaai"))))
+                "0r82mmfjm57yr4f34za3x3rkgc5z2c7nwbnsjjki16qfc9kjyai3"))))
     (build-system gnu-build-system)
     (inputs
      `(("librsync" ,librsync)
diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm
index 37be1ffeb7..8fe8f3d9a5 100644
--- a/gnu/packages/base.scm
+++ b/gnu/packages/base.scm
@@ -553,9 +553,9 @@ wrapper for the cross-linker for that target, called 'TARGET-ld'."
                        #t)))))
     (synopsis "The linker wrapper")
     (description
-     "The linker wrapper (or 'ld-wrapper') wraps the linker to add any
-missing '-rpath' flags, and to detect any misuse of libraries outside of the
-store.")
+     "The linker wrapper (or @code{ld-wrapper}) wraps the linker to add any
+missing @code{-rpath} flags, and to detect any misuse of libraries outside of
+the store.")
     (home-page "https://www.gnu.org/software/guix//")
     (license gpl3+)))
 
@@ -961,8 +961,8 @@ with the Linux kernel.")
     (synopsis "All the locales supported by the GNU C Library")
     (description
      "This package provides all the locales supported by the GNU C Library,
-more than 400 in total.  To use them set the 'LOCPATH' environment variable to
-the 'share/locale' sub-directory of this package.")
+more than 400 in total.  To use them set the @code{LOCPATH} environment variable
+to the @code{share/locale} sub-directory of this package.")
     (outputs '("out"))                            ;110+ MiB
     (native-search-paths '())
     (arguments
@@ -1099,7 +1099,7 @@ command.")
 (define-public tzdata
   (package
     (name "tzdata")
-    (version "2018i")
+    (version "2019a")
     (source (origin
              (method url-fetch)
              (uri (string-append
@@ -1107,7 +1107,7 @@ command.")
                    version ".tar.gz"))
              (sha256
               (base32
-               "1n80ih8agibagic401smqscz3xxqvs5bm5x3lk803g539kw5xi42"))))
+               "0wlpqm4asvi0waaz24xj20iq40gqfypmb4nldjhkfgm09bgnsdlh"))))
     (build-system gnu-build-system)
     (arguments
      '(#:tests? #f
@@ -1157,7 +1157,7 @@ command.")
                                 version ".tar.gz"))
                           (sha256
                            (base32
-                            "1p1jxlnryaxknj0l768h3dmlk2jpqz5n5d24w9c9vyx6dj3xpb5a"))))))
+                            "1x9z8fpgnhzlsnps0hamb54ymaskjab7ys9m4i4gpk9hpiig2fc7"))))))
     (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/bioconductor.scm b/gnu/packages/bioconductor.scm
index 710b9fd07a..deb179c4d9 100644
--- a/gnu/packages/bioconductor.scm
+++ b/gnu/packages/bioconductor.scm
@@ -29,7 +29,11 @@
   #:use-module (gnu packages compression)
   #:use-module (gnu packages gcc)
   #:use-module (gnu packages graph)
+  #:use-module (gnu packages haskell)
+  #:use-module (gnu packages image)
   #:use-module (gnu packages maths)
+  #:use-module (gnu packages netpbm)
+  #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages statistics)
   #:use-module (gnu packages web))
@@ -708,9 +712,96 @@ annotations.")
      "This is a manifest package for Illumina's EPIC methylation arrays.")
     (license license:artistic2.0)))
 
+(define-public r-do-db
+  (package
+    (name "r-do-db")
+    (version "2.9")
+    (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/"
+                                  "DO.db_" version ".tar.gz"))
+              (sha256
+               (base32
+                "10bqqa124l61ivzy4mdd3z3ar9a6537qbxw23pc4y9w8a6dwnavn"))))
+    (properties
+     `((upstream-name . "DO.db")))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-annotationdbi" ,r-annotationdbi)))
+    (home-page "https://www.bioconductor.org/packages/DO.db/")
+    (synopsis "Annotation maps describing the entire Disease Ontology")
+    (description
+     "This package provides a set of annotation maps describing the entire
+Disease Ontology.")
+    (license license:artistic2.0)))
+
 
 ;;; Experiment data
 
+(define-public r-abadata
+  (package
+    (name "r-abadata")
+    (version "1.12.0")
+    (source (origin
+              (method url-fetch)
+              ;; We cannot use bioconductor-uri here because this tarball is
+              ;; located under "data/experiment/" instead of "bioc/".
+              (uri (string-append "https://www.bioconductor.org/packages/"
+                                  "release/data/experiment/src/contrib/"
+                                  "ABAData_" version ".tar.gz"))
+              (sha256
+               (base32
+                "1bmj341xcymlrk02gss5vvrqc4ddas0rdw39lnpsj98hq6n11p5z"))))
+    (properties
+     `((upstream-name . "ABAData")))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-annotationdbi" ,r-annotationdbi)))
+    (home-page "https://www.bioconductor.org/packages/ABAData/")
+    (synopsis "Gene expression in human brain regions from Allen Brain Atlas")
+    (description
+     "This package provides the data for the gene expression enrichment
+analysis conducted in the package ABAEnrichment.  The package includes three
+datasets which are derived from the Allen Brain Atlas:
+
+@enumerate
+@item Gene expression data from Human Brain (adults) averaged across donors,
+@item Gene expression data from the Developing Human Brain pooled into five
+  age categories and averaged across donors, and
+@item a developmental effect score based on the Developing Human Brain
+  expression data.
+@end enumerate
+
+All datasets are restricted to protein coding genes.")
+    (license license:gpl2+)))
+
+(define-public r-arrmdata
+  (package
+    (name "r-arrmdata")
+    (version "1.18.0")
+    (source (origin
+              (method url-fetch)
+              ;; We cannot use bioconductor-uri here because this tarball is
+              ;; located under "data/experiment/" instead of "bioc/".
+              (uri (string-append "https://www.bioconductor.org/packages/"
+                                  "release/data/experiment/src/contrib/"
+                                  "ARRmData_" version ".tar.gz"))
+              (sha256
+               (base32
+                "0r1y3zn7ly4k3ngx55vfavn9s6aidbddlv2fbmj7hj3hvpslmyly"))))
+    (properties
+     `((upstream-name . "ARRmData")))
+    (build-system r-build-system)
+    (home-page "https://www.bioconductor.org/packages/ARRmData/")
+    (synopsis "Example dataset for normalization of Illumina 450k methylation data")
+    (description
+     "This package provides raw beta values from 36 samples across 3 groups
+from Illumina 450k methylation arrays.")
+    (license license:artistic2.0)))
+
 (define-public r-hsmmsinglecell
   (package
     (name "r-hsmmsinglecell")
@@ -1530,14 +1621,14 @@ genes or proteins in these datasets.")
 (define-public r-inspect
   (package
     (name "r-inspect")
-    (version "1.12.1")
+    (version "1.12.2")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "INSPEcT" version))
        (sha256
         (base32
-         "07q5msw9rnamx957mbiawnv3p9kr5ahwawzvv9xzla7d3lkk62xp"))))
+         "1ykkr15b4bc2carwppf9yxzpl2n6lqpc6z6i2qy37vc6xffzgdx4"))))
     (properties `((upstream-name . "INSPEcT")))
     (build-system r-build-system)
     (propagated-inputs
@@ -2521,3 +2612,1662 @@ summaries of the read-types produced, it provides a number of plots for
 visualising metrics relative to experiment run time or spatially over the
 surface of a flowcell.")
     (license license:expat)))
+
+;; This is a CRAN package, but it depends on packages from Bioconductor.
+(define-public r-gkmsvm
+  (package
+    (name "r-gkmsvm")
+    (version "0.79.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "gkmSVM" version))
+       (sha256
+        (base32
+         "04dakbgfvfalz4rm4fvvybp506dn5fbj5g86ybfhrc6wywjllsz3"))))
+    (properties `((upstream-name . "gkmSVM")))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-biocgenerics" ,r-biocgenerics)
+       ("r-biostrings" ,r-biostrings)
+       ("r-genomeinfodb" ,r-genomeinfodb)
+       ("r-genomicranges" ,r-genomicranges)
+       ("r-iranges" ,r-iranges)
+       ("r-kernlab" ,r-kernlab)
+       ("r-rcpp" ,r-rcpp)
+       ("r-rocr" ,r-rocr)
+       ("r-rtracklayer" ,r-rtracklayer)
+       ("r-s4vectors" ,r-s4vectors)
+       ("r-seqinr" ,r-seqinr)))
+    (home-page "https://cran.r-project.org/web/packages/gkmSVM")
+    (synopsis "Gapped-kmer support vector machine")
+    (description
+     "This R package provides tools for training gapped-kmer SVM classifiers
+for DNA and protein sequences.  This package supports several sequence
+kernels, including: gkmSVM, kmer-SVM, mismatch kernel and wildcard kernel.")
+    (license license:gpl2+)))
+
+(define-public r-triform
+  (package
+    (name "r-triform")
+    (version "1.24.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "triform" version))
+       (sha256
+        (base32
+         "12ca24pv1r5vbw3rq345jqg7x3prrbsxk6445zikpzfblwmw0b4s"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-biocgenerics" ,r-biocgenerics)
+       ("r-iranges" ,r-iranges)
+       ("r-yaml" ,r-yaml)))
+    (home-page "https://bioconductor.org/packages/triform/")
+    (synopsis "Find enriched regions in transcription factor ChIP-sequencing data")
+    (description
+     "The Triform algorithm uses model-free statistics to identify peak-like
+distributions of TF ChIP sequencing reads, taking advantage of an improved
+peak definition in combination with known profile characteristics.")
+    (license license:gpl2)))
+
+(define-public r-varianttools
+  (package
+    (name "r-varianttools")
+    (version "1.24.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "VariantTools" version))
+       (sha256
+        (base32
+         "1ml3pl7xnxvzr6zkypr80xzw6nffswk29gzxycn42473sc4ixn7j"))))
+    (properties `((upstream-name . "VariantTools")))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-biobase" ,r-biobase)
+       ("r-biocgenerics" ,r-biocgenerics)
+       ("r-biocparallel" ,r-biocparallel)
+       ("r-biostrings" ,r-biostrings)
+       ("r-bsgenome" ,r-bsgenome)
+       ("r-genomeinfodb" ,r-genomeinfodb)
+       ("r-genomicfeatures" ,r-genomicfeatures)
+       ("r-genomicranges" ,r-genomicranges)
+       ("r-iranges" ,r-iranges)
+       ("r-matrix" ,r-matrix)
+       ("r-rsamtools" ,r-rsamtools)
+       ("r-rtracklayer" ,r-rtracklayer)
+       ("r-s4vectors" ,r-s4vectors)
+       ("r-variantannotation" ,r-variantannotation)))
+    (home-page "https://bioconductor.org/packages/VariantTools/")
+    (synopsis "Tools for exploratory analysis of variant calls")
+    (description
+     "Explore, diagnose, and compare variant calls using filters.  The
+VariantTools package supports a workflow for loading data, calling single
+sample variants and tumor-specific somatic mutations or other sample-specific
+variant types (e.g., RNA editing).  Most of the functions operate on
+alignments (BAM files) or datasets of called variants.  The user is expected
+to have already aligned the reads with a separate tool, e.g., GSNAP via
+gmapR.")
+    (license license:artistic2.0)))
+
+(define-public r-heatplus
+  (package
+    (name "r-heatplus")
+    (version "2.28.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "Heatplus" version))
+       (sha256
+        (base32
+         "0drspjzgb23ra2kdvpxhsd8mdifsf97fcf668llyz2hr0r39fc48"))))
+    (properties `((upstream-name . "Heatplus")))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-rcolorbrewer" ,r-rcolorbrewer)))
+    (home-page "https://github.com/alexploner/Heatplus")
+    (synopsis "Heatmaps with row and/or column covariates and colored clusters")
+    (description
+     "This package provides tools to display a rectangular heatmap (intensity
+plot) of a data matrix.  By default, both samples (columns) and features (row)
+of the matrix are sorted according to a hierarchical clustering, and the
+corresponding dendrogram is plotted.  Optionally, panels with additional
+information about samples and features can be added to the plot.")
+    (license license:gpl2+)))
+
+(define-public r-gosemsim
+  (package
+    (name "r-gosemsim")
+    (version "2.8.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "GOSemSim" version))
+       (sha256
+        (base32
+         "0ckihpy8jmgn2np1avprz76v9z7i5hqm2gj514c6dmmq3csbc7ib"))))
+    (properties `((upstream-name . "GOSemSim")))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-annotationdbi" ,r-annotationdbi)
+       ("r-go-db" ,r-go-db)
+       ("r-rcpp" ,r-rcpp)))
+    (home-page "https://guangchuangyu.github.io/software/GOSemSim")
+    (synopsis "GO-terms semantic similarity measures")
+    (description
+     "The semantic comparisons of @dfn{Gene Ontology} (GO) annotations provide
+quantitative ways to compute similarities between genes and gene groups, and
+have became important basis for many bioinformatics analysis approaches.
+GOSemSim is an R package for semantic similarity computation among GO terms,
+sets of GO terms, gene products and gene clusters.")
+    (license license:artistic2.0)))
+
+(define-public r-anota
+  (package
+    (name "r-anota")
+    (version "1.30.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "anota" version))
+       (sha256
+        (base32
+         "182fp6dpws516y0igvwn6936higfqvy25haa0xs273f8aczr9cf0"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-multtest" ,r-multtest)
+       ("r-qvalue" ,r-qvalue)))
+    (home-page "https://bioconductor.org/packages/anota/")
+    (synopsis "Analysis of translational activity")
+    (description
+     "Genome wide studies of translational control is emerging as a tool to
+study verious biological conditions.  The output from such analysis is both
+the mRNA level (e.g. cytosolic mRNA level) and the levl 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
+actively translated mRNA levels that are independent of underlying differences
+in cytosolic mRNA levels.  This package allows for such analysis using partial
+variances and the random variance model.  As 10s of thousands of mRNAs are
+analyzed in parallell the library performs a number of tests to assure that
+the data set is suitable for such analysis.")
+    (license license:gpl3)))
+
+(define-public r-sigpathway
+  (package
+    (name "r-sigpathway")
+    (version "1.50.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (bioconductor-uri "sigPathway" version))
+        (sha256
+          (base32
+            "0pygrla2q2151981gshzv51jnj60h1df3vby5gsxqvxn2pdr4bv3"))))
+    (properties `((upstream-name . "sigPathway")))
+    (build-system r-build-system)
+    (home-page "https://www.pnas.org/cgi/doi/10.1073/pnas.0506577102")
+    (synopsis "Pathway analysis")
+    (description
+     "This package is used to conduct pathway analysis by calculating the NT_k
+and NE_k statistics in a statistical framework for determining whether a
+specified group of genes for a pathway has a coordinated association with a
+phenotype of interest.")
+    (license license:gpl2)))
+
+(define-public r-fgsea
+  (package
+    (name "r-fgsea")
+    (version "1.8.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "fgsea" version))
+       (sha256
+        (base32
+         "0cxxvlmg340l5l5fz4abbwppiri0ibg4navvq5k3wg511mz8ma2q"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-biocparallel" ,r-biocparallel)
+       ("r-data-table" ,r-data-table)
+       ("r-fastmatch" ,r-fastmatch)
+       ("r-ggplot2" ,r-ggplot2)
+       ("r-gridextra" ,r-gridextra)
+       ("r-matrix" ,r-matrix)
+       ("r-rcpp" ,r-rcpp)))
+    (home-page "https://github.com/ctlab/fgsea/")
+    (synopsis "Fast gene set enrichment analysis")
+    (description
+     "The package implements an algorithm for fast gene set enrichment
+analysis.  Using the fast algorithm allows to make more permutations and get
+more fine grained p-values, which allows to use accurate stantard approaches
+to multiple hypothesis correction.")
+    (license license:expat)))
+
+(define-public r-dose
+  (package
+    (name "r-dose")
+    (version "3.8.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "DOSE" version))
+       (sha256
+        (base32
+         "1gh7dhvfc71kawxcfx8xqlir7mwvg5mmz4lqrdrvw5knvi2h3mfa"))))
+    (properties `((upstream-name . "DOSE")))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-annotationdbi" ,r-annotationdbi)
+       ("r-biocparallel" ,r-biocparallel)
+       ("r-do-db" ,r-do-db)
+       ("r-fgsea" ,r-fgsea)
+       ("r-ggplot2" ,r-ggplot2)
+       ("r-gosemsim" ,r-gosemsim)
+       ("r-qvalue" ,r-qvalue)
+       ("r-reshape2" ,r-reshape2)
+       ("r-s4vectors" ,r-s4vectors)))
+    (home-page "https://guangchuangyu.github.io/software/DOSE/")
+    (synopsis "Disease ontology semantic and enrichment analysis")
+    (description
+     "This package implements five methods proposed by Resnik, Schlicker,
+Jiang, Lin and Wang, respectively, for measuring semantic similarities among
+@dfn{Disease ontology} (DO) terms and gene products.  Enrichment analyses
+including hypergeometric model and gene set enrichment analysis are also
+implemented for discovering disease associations of high-throughput biological
+data.")
+    (license license:artistic2.0)))
+
+(define-public r-enrichplot
+  (package
+    (name "r-enrichplot")
+    (version "1.2.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "enrichplot" version))
+       (sha256
+        (base32
+         "0cxqfpy6py4k3z3lnlkiwx89r4ymfpdc4hm25dfpazqgjflz5is7"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-annotationdbi" ,r-annotationdbi)
+       ("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-purrr" ,r-purrr)
+       ("r-rcolorbrewer" ,r-rcolorbrewer)
+       ("r-reshape2" ,r-reshape2)
+       ("r-upsetr" ,r-upsetr)))
+    (home-page "https://github.com/GuangchuangYu/enrichplot")
+    (synopsis "Visualization of functional enrichment result")
+    (description
+     "The enrichplot package implements several visualization methods for
+interpreting functional enrichment results obtained from ORA or GSEA analyses.
+All the visualization methods are developed based on ggplot2 graphics.")
+    (license license:artistic2.0)))
+
+(define-public r-clusterprofiler
+  (package
+    (name "r-clusterprofiler")
+    (version "3.10.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "clusterProfiler" version))
+       (sha256
+        (base32
+         "1v4fh8ll7zk8yhbaa0nq9xvqrb05kyvbpwkqpnjf07s873805rxm"))))
+    (properties
+     `((upstream-name . "clusterProfiler")))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-annotationdbi" ,r-annotationdbi)
+       ("r-dose" ,r-dose)
+       ("r-enrichplot" ,r-enrichplot)
+       ("r-ggplot2" ,r-ggplot2)
+       ("r-go-db" ,r-go-db)
+       ("r-gosemsim" ,r-gosemsim)
+       ("r-magrittr" ,r-magrittr)
+       ("r-plyr" ,r-plyr)
+       ("r-qvalue" ,r-qvalue)
+       ("r-rvcheck" ,r-rvcheck)
+       ("r-tidyr" ,r-tidyr)))
+    (home-page "https://guangchuangyu.github.io/software/clusterProfiler/")
+    (synopsis "Analysis and visualization of functional profiles for gene clusters")
+    (description
+     "This package implements methods to analyze and visualize functional
+profiles (GO and KEGG) of gene and gene clusters.")
+    (license license:artistic2.0)))
+
+(define-public r-mlinterfaces
+  (package
+    (name "r-mlinterfaces")
+    (version "1.62.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "MLInterfaces" version))
+       (sha256
+        (base32
+         "1h0x1p2h8x1h276wxx6kcnb4c4s5sglnmd58iigl81a224x8gxwp"))))
+    (properties `((upstream-name . "MLInterfaces")))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-annotate" ,r-annotate)
+       ("r-biobase" ,r-biobase)
+       ("r-biocgenerics" ,r-biocgenerics)
+       ("r-cluster" ,r-cluster)
+       ("r-fpc" ,r-fpc)
+       ("r-gbm" ,r-gbm)
+       ("r-gdata" ,r-gdata)
+       ("r-genefilter" ,r-genefilter)
+       ("r-ggvis" ,r-ggvis)
+       ("r-hwriter" ,r-hwriter)
+       ("r-mass" ,r-mass)
+       ("r-mlbench" ,r-mlbench)
+       ("r-pls" ,r-pls)
+       ("r-rcolorbrewer" ,r-rcolorbrewer)
+       ("r-rda" ,r-rda)
+       ("r-rpart" ,r-rpart)
+       ("r-sfsmisc" ,r-sfsmisc)
+       ("r-shiny" ,r-shiny)
+       ("r-threejs" ,r-threejs)))
+    (home-page "https://bioconductor.org/packages/MLInterfaces/")
+    (synopsis "Interfaces to R machine learning procedures")
+    (description
+     "This package provides uniform interfaces to machine learning code for
+data in R and Bioconductor containers.")
+    ;; Any version of the LGPL.
+    (license license:lgpl2.1+)))
+
+(define-public r-annaffy
+  (package
+    (name "r-annaffy")
+    (version "1.54.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "annaffy" version))
+       (sha256
+        (base32
+         "16c6allp4vlx0g3nffanrm0mkkf8s2n31dccw4bflnx2pr81bmd5"))))
+    (build-system r-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'remove-reference-to-non-free-data
+           (lambda _
+             (substitute* "DESCRIPTION"
+               ((", KEGG.db") ""))
+             #t)))))
+    (propagated-inputs
+     `(("r-annotationdbi" ,r-annotationdbi)
+       ("r-biobase" ,r-biobase)
+       ("r-dbi" ,r-dbi)
+       ("r-go-db" ,r-go-db)))
+    (home-page "https://bioconductor.org/packages/annaffy/")
+    (synopsis "Annotation tools for Affymetrix biological metadata")
+    (description
+     "This package provides functions for handling data from Bioconductor
+Affymetrix annotation data packages.  It produces compact HTML and text
+reports including experimental data and URL links to many online databases.
+It allows searching of biological metadata using various criteria.")
+    ;; Any version of the LGPL according to the DESCRIPTION file.  A copy of
+    ;; the LGPL 2.1 is included.
+    (license license:lgpl2.1+)))
+
+(define-public r-a4core
+  (package
+    (name "r-a4core")
+    (version "1.30.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "a4Core" version))
+       (sha256
+        (base32
+         "1d62afxkfp9zbp59ijcn4wd1gdynygw013av41wq8bfm3cx6f9zr"))))
+    (properties `((upstream-name . "a4Core")))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-biobase" ,r-biobase)
+       ("r-glmnet" ,r-glmnet)))
+    (home-page "https://bioconductor.org/packages/a4Core")
+    (synopsis "Automated Affymetrix array analysis core package")
+    (description
+     "This is the core package for the automated analysis of Affymetrix
+arrays.")
+    (license license:gpl3)))
+
+(define-public r-a4classif
+  (package
+    (name "r-a4classif")
+    (version "1.30.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "a4Classif" version))
+       (sha256
+        (base32
+         "02l77a59865ly3bydv74ff2l2wfb0x5s283g1nx6g1qrw3ly982j"))))
+    (properties `((upstream-name . "a4Classif")))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-a4core" ,r-a4core)
+       ("r-a4preproc" ,r-a4preproc)
+       ("r-glmnet" ,r-glmnet)
+       ("r-mlinterfaces" ,r-mlinterfaces)
+       ("r-pamr" ,r-pamr)
+       ("r-rocr" ,r-rocr)
+       ("r-varselrf" ,r-varselrf)))
+    (home-page "https://bioconductor.org/packages/a4Classif/")
+    (synopsis "Automated Affymetrix array analysis classification package")
+    (description
+     "This is the classification package for the automated analysis of
+Affymetrix arrays.")
+    (license license:gpl3)))
+
+(define-public r-a4preproc
+  (package
+    (name "r-a4preproc")
+    (version "1.30.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "a4Preproc" version))
+       (sha256
+        (base32
+         "1dd3fqcc7nr2zbi46k0mnqkh42mfxk894ixfpqg7i9np2523p5gp"))))
+    (properties `((upstream-name . "a4Preproc")))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-annotationdbi" ,r-annotationdbi)))
+    (home-page "https://bioconductor.org/packages/a4Preproc/")
+    (synopsis "Automated Affymetrix array analysis preprocessing package")
+    (description
+     "This is a package for the automated analysis of Affymetrix arrays.  It
+is used for preprocessing the arrays.")
+    (license license:gpl3)))
+
+(define-public r-a4reporting
+  (package
+    (name "r-a4reporting")
+    (version "1.30.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "a4Reporting" version))
+       (sha256
+        (base32
+         "124774z3bfdjgxx2ad40795h92aam21yfx0rw0n01nk2wf6k7xc4"))))
+    (properties `((upstream-name . "a4Reporting")))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-annaffy" ,r-annaffy)
+       ("r-xtable" ,r-xtable)))
+    (home-page "https://bioconductor.org/packages/a4Reporting/")
+    (synopsis "Automated Affymetrix array analysis reporting package")
+    (description
+     "This is a package for the automated analysis of Affymetrix arrays.  It
+provides reporting features.")
+    (license license:gpl3)))
+
+(define-public r-a4base
+  (package
+    (name "r-a4base")
+    (version "1.30.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "a4Base" version))
+       (sha256
+        (base32
+         "0k9k3bv99msbwf2y416cz316ssaha2dxvmaddbl7z9037p8mjr70"))))
+    (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)
+       ("r-gplots" ,r-gplots)
+       ("r-limma" ,r-limma)
+       ("r-mpm" ,r-mpm)
+       ("r-multtest" ,r-multtest)))
+    (home-page "https://bioconductor.org/packages/a4Base/")
+    (synopsis "Automated Affymetrix array analysis base package")
+    (description
+     "This package provides basic features for the automated analysis of
+Affymetrix arrays.")
+    (license license:gpl3)))
+
+(define-public r-a4
+  (package
+    (name "r-a4")
+    (version "1.30.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "a4" version))
+       (sha256
+        (base32
+         "1iqjy35rqx3m2y0dm2bk4cnzdm1qvbi608bfmrid88w6wmwz3qlk"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-a4base" ,r-a4base)
+       ("r-a4classif" ,r-a4classif)
+       ("r-a4core" ,r-a4core)
+       ("r-a4preproc" ,r-a4preproc)
+       ("r-a4reporting" ,r-a4reporting)))
+    (home-page "https://bioconductor.org/packages/a4/")
+    (synopsis "Automated Affymetrix array analysis umbrella package")
+    (description
+     "This package provides a software suite for the automated analysis of
+Affymetrix arrays.")
+    (license license:gpl3)))
+
+(define-public r-abseqr
+  (package
+    (name "r-abseqr")
+    (version "1.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "abseqR" version))
+       (sha256
+        (base32
+         "0w0ngxnilcrxlixsz7ls3zm99gyabxwn7w1r3r45n96d4aj075ry"))))
+    (properties `((upstream-name . "abseqR")))
+    (build-system r-build-system)
+    (inputs
+     `(("pandoc" ,ghc-pandoc)))
+    (propagated-inputs
+     `(("r-biocparallel" ,r-biocparallel)
+       ("r-biocstyle" ,r-biocstyle)
+       ("r-circlize" ,r-circlize)
+       ("r-flexdashboard" ,r-flexdashboard)
+       ("r-ggcorrplot" ,r-ggcorrplot)
+       ("r-ggdendro" ,r-ggdendro)
+       ("r-ggplot2" ,r-ggplot2)
+       ("r-gridextra" ,r-gridextra)
+       ("r-knitr" ,r-knitr)
+       ("r-plotly" ,r-plotly)
+       ("r-plyr" ,r-plyr)
+       ("r-png" ,r-png)
+       ("r-rcolorbrewer" ,r-rcolorbrewer)
+       ("r-reshape2" ,r-reshape2)
+       ("r-rmarkdown" ,r-rmarkdown)
+       ("r-stringr" ,r-stringr)
+       ("r-vegan" ,r-vegan)
+       ("r-venndiagram" ,r-venndiagram)))
+    (home-page "https://github.com/malhamdoosh/abseqR")
+    (synopsis "Reporting and data analysis for Rep-Seq datasets of antibody libraries")
+    (description
+     "AbSeq is a comprehensive bioinformatic pipeline for the analysis of
+sequencing datasets generated from antibody libraries and abseqR is one of its
+packages.  AbseqR empowers the users of abseqPy with plotting and reporting
+capabilities and allows them to generate interactive HTML reports for the
+convenience of viewing and sharing with other researchers.  Additionally,
+abseqR extends abseqPy to compare multiple repertoire analyses and perform
+further downstream analysis on its output.")
+    (license license:gpl3)))
+
+(define-public r-bacon
+  (package
+    (name "r-bacon")
+    (version "1.10.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "bacon" version))
+       (sha256
+        (base32
+         "1pd3p1cfggiy08458vplsy3s1zm5jqqcwrv4fks8ra2kf97j38df"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-biocparallel" ,r-biocparallel)
+       ("r-ellipse" ,r-ellipse)
+       ("r-ggplot2" ,r-ggplot2)))
+    (home-page "https://bioconductor.org/packages/bacon/")
+    (synopsis "Controlling bias and inflation in association studies")
+    (description
+     "Bacon can be used to remove inflation and bias often observed in
+epigenome- and transcriptome-wide association studies.  To this end bacon
+constructs an empirical null distribution using a Gibbs Sampling algorithm by
+fitting a three-component normal mixture on z-scores.")
+    (license license:gpl2+)))
+
+(define-public r-rgadem
+  (package
+    (name "r-rgadem")
+    (version "2.30.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "rGADEM" version))
+       (sha256
+        (base32
+         "1a3mvxabp7yb275cv1wr0rzyvjhnsaysk2hnmll4z4cci171z2j2"))))
+    (properties `((upstream-name . "rGADEM")))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-biostrings" ,r-biostrings)
+       ("r-bsgenome" ,r-bsgenome)
+       ("r-iranges" ,r-iranges)
+       ("r-seqlogo" ,r-seqlogo)))
+    (home-page "https://bioconductor.org/packages/rGADEM/")
+    (synopsis "De novo sequence motif discovery")
+    (description
+     "rGADEM is an efficient de novo motif discovery tool for large-scale
+genomic sequence data.")
+    (license license:artistic2.0)))
+
+(define-public r-motiv
+  (package
+    (name "r-motiv")
+    (version "1.38.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "MotIV" version))
+       (sha256
+        (base32
+         "1qrpydwc5bn8f0843qkyhw6920xk8kvq452ird0ij96g6faiv9a8"))))
+    (properties `((upstream-name . "MotIV")))
+    (build-system r-build-system)
+    (inputs
+     `(("gsl" ,gsl)))
+    (propagated-inputs
+     `(("r-biocgenerics" ,r-biocgenerics)
+       ("r-biostrings" ,r-biostrings)
+       ("r-iranges" ,r-iranges)
+       ("r-lattice" ,r-lattice)
+       ("r-rgadem" ,r-rgadem)
+       ("r-s4vectors" ,r-s4vectors)))
+    (home-page "https://bioconductor.org/packages/MotIV/")
+    (synopsis "Motif identification and validation")
+    (description
+     "This package is used for the identification and validation of sequence
+motifs.  It makes use of STAMP for comparing a set of motifs to a given
+database (e.g. JASPAR).  It can also be used to visualize motifs, motif
+distributions, modules and filter motifs.")
+    (license license:gpl2)))
+
+(define-public r-motifstack
+  (package
+    (name "r-motifstack")
+    (version "1.26.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "motifStack" version))
+       (sha256
+        (base32
+         "1c4w39ilc4ca4wgi1b6iypadkbxvqjw7k2br0d7q03niw9qjkhxf"))))
+    (properties `((upstream-name . "motifStack")))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-ade4" ,r-ade4)
+       ("r-biostrings" ,r-biostrings)
+       ("r-grimport" ,r-grimport)
+       ("r-htmlwidgets" ,r-htmlwidgets)
+       ("r-motiv" ,r-motiv)
+       ("r-scales" ,r-scales)
+       ("r-xml" ,r-xml)))
+    (home-page "https://bioconductor.org/packages/motifStack/")
+    (synopsis "Plot stacked logos for DNA, RNA and amino acid sequences")
+    (description
+     "The motifStack package is designed for graphic representation of
+multiple motifs with different similarity scores.  It works with both DNA/RNA
+sequence motifs and amino acid sequence motifs.  In addition, it provides the
+flexibility for users to customize the graphic parameters such as the font
+type and symbol colors.")
+    (license license:gpl2+)))
+
+(define-public r-genomicscores
+  (package
+    (name "r-genomicscores")
+    (version "1.6.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "GenomicScores" version))
+       (sha256
+        (base32
+         "0lrhkcblvnki6kncwpavs01gbcz22yza6ma8zvfmbrrkfaxqzh8n"))))
+    (properties `((upstream-name . "GenomicScores")))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-annotationhub" ,r-annotationhub)
+       ("r-biobase" ,r-biobase)
+       ("r-biocgenerics" ,r-biocgenerics)
+       ("r-biostrings" ,r-biostrings)
+       ("r-bsgenome" ,r-bsgenome)
+       ("r-genomeinfodb" ,r-genomeinfodb)
+       ("r-genomicranges" ,r-genomicranges)
+       ("r-iranges" ,r-iranges)
+       ("r-s4vectors" ,r-s4vectors)
+       ("r-xml" ,r-xml)))
+    (home-page "https://github.com/rcastelo/GenomicScores/")
+    (synopsis "Work with genome-wide position-specific scores")
+    (description
+     "This package provides infrastructure to store and access genome-wide
+position-specific scores within R and Bioconductor.")
+    (license license:artistic2.0)))
+
+(define-public r-atacseqqc
+  (package
+    (name "r-atacseqqc")
+    (version "1.6.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "ATACseqQC" version))
+       (sha256
+        (base32
+         "1rblvqar11fib6ip2hq0756vqi6qmncf90jw6i5p5lrgzmaxy8hn"))))
+    (properties `((upstream-name . "ATACseqQC")))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-biocgenerics" ,r-biocgenerics)
+       ("r-biostrings" ,r-biostrings)
+       ("r-bsgenome" ,r-bsgenome)
+       ("r-chippeakanno" ,r-chippeakanno)
+       ("r-genomeinfodb" ,r-genomeinfodb)
+       ("r-genomicalignments" ,r-genomicalignments)
+       ("r-genomicranges" ,r-genomicranges)
+       ("r-genomicscores" ,r-genomicscores)
+       ("r-iranges" ,r-iranges)
+       ("r-kernsmooth" ,r-kernsmooth)
+       ("r-limma" ,r-limma)
+       ("r-motifstack" ,r-motifstack)
+       ("r-preseqr" ,r-preseqr)
+       ("r-randomforest" ,r-randomforest)
+       ("r-rsamtools" ,r-rsamtools)
+       ("r-rtracklayer" ,r-rtracklayer)
+       ("r-s4vectors" ,r-s4vectors)))
+    (home-page "https://bioconductor.org/packages/ATACseqQC/")
+    (synopsis "ATAC-seq quality control")
+    (description
+     "ATAC-seq, an assay for Transposase-Accessible Chromatin using
+sequencing, is a rapid and sensitive method for chromatin accessibility
+analysis.  It was developed as an alternative method to MNase-seq, FAIRE-seq
+and DNAse-seq.  The ATACseqQC package was developed to help users to quickly
+assess whether their ATAC-seq experiment is successful.  It includes
+diagnostic plots of fragment size distribution, proportion of mitochondria
+reads, nucleosome positioning pattern, and CTCF or other Transcript Factor
+footprints.")
+    (license license:gpl2+)))
+
+(define-public r-gofuncr
+  (package
+    (name "r-gofuncr")
+    (version "1.2.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "GOfuncR" version))
+       (sha256
+        (base32
+         "021kgcbm8n2yalhzab11cyppwznlkglynnh45wsgy9i2vi2n2znk"))))
+    (properties `((upstream-name . "GOfuncR")))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-annotationdbi" ,r-annotationdbi)
+       ("r-genomicranges" ,r-genomicranges)
+       ("r-gtools" ,r-gtools)
+       ("r-iranges" ,r-iranges)
+       ("r-mapplots" ,r-mapplots)
+       ("r-rcpp" ,r-rcpp)
+       ("r-vioplot" ,r-vioplot)))
+    (home-page "https://bioconductor.org/packages/GOfuncR/")
+    (synopsis "Gene ontology enrichment using FUNC")
+    (description
+     "GOfuncR performs a gene ontology enrichment analysis based on the
+ontology enrichment software FUNC.  GO-annotations are obtained from
+OrganismDb or OrgDb packages (@code{Homo.sapiens} by default); the GO-graph is
+included in the package and updated regularly.  GOfuncR provides the standard
+candidate vs background enrichment analysis using the hypergeometric test, as
+well as three additional tests:
+
+@enumerate
+@item the Wilcoxon rank-sum test that is used when genes are ranked,
+@item a binomial test that is used when genes are associated with two counts,
+  and
+@item a Chi-square or Fisher's exact test that is used in cases when genes are
+associated with four counts.
+@end enumerate
+
+To correct for multiple testing and interdependency of the tests, family-wise
+error rates are computed based on random permutations of the gene-associated
+variables.  GOfuncR also provides tools for exploring the ontology graph and
+the annotations, and options to take gene-length or spatial clustering of
+genes into account.  It is also possible to provide custom gene coordinates,
+annotations and ontologies.")
+    (license license:gpl2+)))
+
+(define-public r-abaenrichment
+  (package
+    (name "r-abaenrichment")
+    (version "1.12.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "ABAEnrichment" version))
+       (sha256
+        (base32
+         "0bvanqmg1smyckh16m2qn7d68zq4j7n74sgsnbgms5jngbp9158v"))))
+    (properties `((upstream-name . "ABAEnrichment")))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-abadata" ,r-abadata)
+       ("r-data-table" ,r-data-table)
+       ("r-gofuncr" ,r-gofuncr)
+       ("r-gplots" ,r-gplots)
+       ("r-gtools" ,r-gtools)
+       ("r-rcpp" ,r-rcpp)))
+    (home-page "https://bioconductor.org/packages/ABAEnrichment/")
+    (synopsis "Gene expression enrichment in human brain regions")
+    (description
+     "The package ABAEnrichment is designed to test for enrichment of user
+defined candidate genes in the set of expressed genes in different human brain
+regions.  The core function @code{aba_enrich} integrates the expression of the
+candidate gene set (averaged across donors) and the structural information of
+the brain using an ontology, both provided by the Allen Brain Atlas project.")
+    (license license:gpl2+)))
+
+(define-public r-annotationfuncs
+  (package
+    (name "r-annotationfuncs")
+    (version "1.32.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "AnnotationFuncs" version))
+       (sha256
+        (base32
+         "1x11mfabh7kbp39y5rkmrpjkaawx7ab5anfmciamrmrcw1kddbss"))))
+    (properties
+     `((upstream-name . "AnnotationFuncs")))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-annotationdbi" ,r-annotationdbi)
+       ("r-dbi" ,r-dbi)))
+    (home-page "https://www.iysik.com/r/annotationfuncs")
+    (synopsis "Annotation translation functions")
+    (description
+     "This package provides functions for handling translating between
+different identifieres using the Biocore Data Team data-packages (e.g.
+@code{org.Bt.eg.db}).")
+    (license license:gpl2)))
+
+(define-public r-annotationtools
+  (package
+    (name "r-annotationtools")
+    (version "1.56.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "annotationTools" version))
+       (sha256
+        (base32
+         "0hqy0mq6pkn05p2dv4pw24p697yvikhdn351adf2ynldy6f3sl9z"))))
+    (properties
+     `((upstream-name . "annotationTools")))
+    (build-system r-build-system)
+    (propagated-inputs `(("r-biobase" ,r-biobase)))
+    (home-page "https://bioconductor.org/packages/annotationTools/")
+    (synopsis "Annotate microarrays and perform gene expression analyses")
+    (description
+     "This package provides functions to annotate microarrays, find orthologs,
+and integrate heterogeneous gene expression profiles using annotation and
+other molecular biology information available as flat file database (plain
+text files).")
+    ;; Any version of the GPL.
+    (license (list license:gpl2+))))
+
+(define-public r-allelicimbalance
+  (package
+    (name "r-allelicimbalance")
+    (version "1.20.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "AllelicImbalance" version))
+       (sha256
+        (base32
+         "03524lj6aw9cskbpxzjmi9g708x6p94mf26yz4j941g1d0mc3z91"))))
+    (properties
+     `((upstream-name . "AllelicImbalance")))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-annotationdbi" ,r-annotationdbi)
+       ("r-biocgenerics" ,r-biocgenerics)
+       ("r-biostrings" ,r-biostrings)
+       ("r-bsgenome" ,r-bsgenome)
+       ("r-genomeinfodb" ,r-genomeinfodb)
+       ("r-genomicalignments" ,r-genomicalignments)
+       ("r-genomicfeatures" ,r-genomicfeatures)
+       ("r-genomicranges" ,r-genomicranges)
+       ("r-gridextra" ,r-gridextra)
+       ("r-gviz" ,r-gviz)
+       ("r-iranges" ,r-iranges)
+       ("r-lattice" ,r-lattice)
+       ("r-latticeextra" ,r-latticeextra)
+       ("r-nlme" ,r-nlme)
+       ("r-rsamtools" ,r-rsamtools)
+       ("r-s4vectors" ,r-s4vectors)
+       ("r-seqinr" ,r-seqinr)
+       ("r-summarizedexperiment" ,r-summarizedexperiment)
+       ("r-variantannotation" ,r-variantannotation)))
+    (home-page "https://github.com/pappewaio/AllelicImbalance")
+    (synopsis "Investigate allele-specific expression")
+    (description
+     "This package provides a framework for allele-specific expression
+investigation using RNA-seq data.")
+    (license license:gpl3)))
+
+(define-public r-aucell
+  (package
+    (name "r-aucell")
+    (version "1.4.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "AUCell" version))
+       (sha256
+        (base32
+         "1kdrs0521cyb8wlc4i3idfprrcy2f9w6kl56hfa94n0brmx62ya9"))))
+    (properties `((upstream-name . "AUCell")))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-data-table" ,r-data-table)
+       ("r-gseabase" ,r-gseabase)
+       ("r-mixtools" ,r-mixtools)
+       ("r-r-utils" ,r-r-utils)
+       ("r-shiny" ,r-shiny)
+       ("r-summarizedexperiment" ,r-summarizedexperiment)))
+    (home-page "https://bioconductor.org/packages/AUCell/")
+    (synopsis "Analysis of gene set activity in single-cell RNA-seq data")
+    (description
+     "AUCell allows to identify cells with active gene sets (e.g. signatures,
+gene modules, etc) in single-cell RNA-seq data.  AUCell uses the @dfn{Area
+Under the Curve} (AUC) to calculate whether a critical subset of the input
+gene set is enriched within the expressed genes for each cell.  The
+distribution of AUC scores across all the cells allows exploring the relative
+expression of the signature.  Since the scoring method is ranking-based,
+AUCell is independent of the gene expression units and the normalization
+procedure.  In addition, since the cells are evaluated individually, it can
+easily be applied to bigger datasets, subsetting the expression matrix if
+needed.")
+    (license license:gpl3)))
+
+(define-public r-ebimage
+  (package
+    (name "r-ebimage")
+    (version "4.24.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "EBImage" version))
+       (sha256
+        (base32
+         "18v2zr7xh0d0xbs7mxa2b6xjqlqiml0hji27gq1351xp5bf2pxvx"))))
+    (properties `((upstream-name . "EBImage")))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-abind" ,r-abind)
+       ("r-biocgenerics" ,r-biocgenerics)
+       ("r-fftwtools" ,r-fftwtools)
+       ("r-htmltools" ,r-htmltools)
+       ("r-htmlwidgets" ,r-htmlwidgets)
+       ("r-jpeg" ,r-jpeg)
+       ("r-locfit" ,r-locfit)
+       ("r-png" ,r-png)
+       ("r-rcurl" ,r-rcurl)
+       ("r-tiff" ,r-tiff)))
+    (native-inputs
+     `(("r-knitr" ,r-knitr))) ; for vignettes
+    (home-page "https://github.com/aoles/EBImage")
+    (synopsis "Image processing and analysis toolbox for R")
+    (description
+     "EBImage provides general purpose functionality for image processing and
+analysis.  In the context of (high-throughput) microscopy-based cellular
+assays, EBImage offers tools to segment cells and extract quantitative
+cellular descriptors.  This allows the automation of such tasks using the R
+programming language and facilitates the use of other tools in the R
+environment for signal processing, statistical modeling, machine learning and
+visualization with image data.")
+    ;; Any version of the LGPL.
+    (license license:lgpl2.1+)))
+
+(define-public r-yamss
+  (package
+    (name "r-yamss")
+    (version "1.8.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "yamss" version))
+       (sha256
+        (base32
+         "13pln09j08fjsr7bj17apy4j0sr79n7jzshi8jbnz57jil7k6ia9"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-biocgenerics" ,r-biocgenerics)
+       ("r-data-table" ,r-data-table)
+       ("r-ebimage" ,r-ebimage)
+       ("r-iranges" ,r-iranges)
+       ("r-limma" ,r-limma)
+       ("r-matrix" ,r-matrix)
+       ("r-mzr" ,r-mzr)
+       ("r-s4vectors" ,r-s4vectors)
+       ("r-summarizedexperiment"
+        ,r-summarizedexperiment)))
+    (home-page "https://github.com/hansenlab/yamss")
+    (synopsis "Tools for high-throughput metabolomics")
+    (description
+     "This package provides tools to analyze and visualize high-throughput
+metabolomics data acquired using chromatography-mass spectrometry.  These tools
+preprocess data in a way that enables reliable and powerful differential
+analysis.")
+    (license license:artistic2.0)))
+
+(define-public r-gtrellis
+  (package
+    (name "r-gtrellis")
+    (version "1.14.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "gtrellis" version))
+       (sha256
+        (base32
+         "17c43vs6m6hj90x5is0pbcpcv59gg9z98c47hnvlypgcqch38h6v"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-circlize" ,r-circlize)
+       ("r-genomicranges" ,r-genomicranges)
+       ("r-getoptlong" ,r-getoptlong)
+       ("r-iranges" ,r-iranges)))
+    (home-page "https://github.com/jokergoo/gtrellis")
+    (synopsis "Genome level Trellis layout")
+    (description
+     "Genome level Trellis graph visualizes genomic data conditioned by
+genomic categories (e.g. chromosomes).  For each genomic category, multiple
+dimensional data which are represented as tracks describe different features
+from different aspects.  This package provides high flexibility to arrange
+genomic categories and to add self-defined graphics in the plot.")
+    (license license:expat)))
+
+(define-public r-somaticsignatures
+  (package
+    (name "r-somaticsignatures")
+    (version "2.18.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "SomaticSignatures" version))
+       (sha256
+        (base32
+         "013dslbyq55a41d3n842brjk2bq1kxw0r18mb6drgbxx2sflzc02"))))
+    (properties
+     `((upstream-name . "SomaticSignatures")))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-biobase" ,r-biobase)
+       ("r-biostrings" ,r-biostrings)
+       ("r-genomeinfodb" ,r-genomeinfodb)
+       ("r-genomicranges" ,r-genomicranges)
+       ("r-ggbio" ,r-ggbio)
+       ("r-ggplot2" ,r-ggplot2)
+       ("r-iranges" ,r-iranges)
+       ("r-nmf" ,r-nmf)
+       ("r-pcamethods" ,r-pcamethods)
+       ("r-proxy" ,r-proxy)
+       ("r-reshape2" ,r-reshape2)
+       ("r-s4vectors" ,r-s4vectors)
+       ("r-variantannotation" ,r-variantannotation)))
+    (home-page "https://github.com/juliangehring/SomaticSignatures")
+    (synopsis "Somatic signatures")
+    (description
+     "This package identifies mutational signatures of @dfn{single nucleotide
+variants} (SNVs).  It provides a infrastructure related to the methodology
+described in Nik-Zainal (2012, Cell), with flexibility in the matrix
+decomposition algorithms.")
+    (license license:expat)))
+
+(define-public r-yapsa
+  (package
+    (name "r-yapsa")
+    (version "1.8.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "YAPSA" version))
+       (sha256
+        (base32
+         "1agacimdd1m5yja2xbcsb83mns4svpxbjcsfrvm9ydqdj737i10j"))))
+    (properties `((upstream-name . "YAPSA")))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-circlize" ,r-circlize)
+       ("r-complexheatmap" ,r-complexheatmap)
+       ("r-corrplot" ,r-corrplot)
+       ("r-dendextend" ,r-dendextend)
+       ("r-genomeinfodb" ,r-genomeinfodb)
+       ("r-genomicranges" ,r-genomicranges)
+       ("r-getoptlong" ,r-getoptlong)
+       ("r-ggplot2" ,r-ggplot2)
+       ("r-gridextra" ,r-gridextra)
+       ("r-gtrellis" ,r-gtrellis)
+       ("r-keggrest" ,r-keggrest)
+       ("r-lsei" ,r-lsei)
+       ("r-pmcmr" ,r-pmcmr)
+       ("r-reshape2" ,r-reshape2)
+       ("r-somaticsignatures" ,r-somaticsignatures)
+       ("r-variantannotation" ,r-variantannotation)))
+    (home-page "https://bioconductor.org/packages/YAPSA/")
+    (synopsis "Yet another package for signature analysis")
+    (description
+     "This package provides functions and routines useful in the analysis of
+somatic signatures (cf. L. Alexandrov et al., Nature 2013).  In particular,
+functions to perform a signature analysis with known signatures and a
+signature analysis on @dfn{stratified mutational catalogue} (SMC) are
+provided.")
+    (license license:gpl3)))
+
+(define-public r-gcrma
+  (package
+    (name "r-gcrma")
+    (version "2.54.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "gcrma" version))
+       (sha256
+        (base32
+         "1v5fi98gdmj002ryq0rgsg2l4x3m3w5pz4h3bx4v8lk15azafgim"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-affy" ,r-affy)
+       ("r-affyio" ,r-affyio)
+       ("r-biobase" ,r-biobase)
+       ("r-biocmanager" ,r-biocmanager)
+       ("r-biostrings" ,r-biostrings)
+       ("r-xvector" ,r-xvector)))
+    (home-page "https://bioconductor.org/packages/gcrma/")
+    (synopsis "Background adjustment using sequence information")
+    (description
+     "Gcrma adjusts for background intensities in Affymetrix array data which
+include optical noise and @dfn{non-specific binding} (NSB).  The main function
+@code{gcrma} converts background adjusted probe intensities to expression
+measures using the same normalization and summarization methods as a
+@dfn{Robust Multiarray Average} (RMA).  Gcrma uses probe sequence information
+to estimate probe affinity to NSB.  The sequence information is summarized in
+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.")
+    ;; Any version of the LGPL
+    (license license:lgpl2.1+)))
+
+(define-public r-simpleaffy
+  (package
+    (name "r-simpleaffy")
+    (version "2.58.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "simpleaffy" version))
+       (sha256
+        (base32
+         "0bry0d2vw0w2rrpnmfm1kl5v4rdclypmy33jvs9l43vd6vx2ra9s"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-affy" ,r-affy)
+       ("r-biobase" ,r-biobase)
+       ("r-biocgenerics" ,r-biocgenerics)
+       ("r-gcrma" ,r-gcrma)
+       ("r-genefilter" ,r-genefilter)))
+    (home-page "https://bioconductor.org/packages/simpleaffy/")
+    (synopsis "Very simple high level analysis of Affymetrix data")
+    (description
+     "This package provides high level functions for reading Affy @file{.CEL}
+files, phenotypic data, and then computing simple things with it, such as
+t-tests, fold changes and the like.  It makes heavy use of the @code{affy}
+library.  It also has some basic scatter plot functions and mechanisms for
+generating high resolution journal figures.")
+    (license license:gpl2+)))
+
+(define-public r-yaqcaffy
+  (package
+    (name "r-yaqcaffy")
+    (version "1.42.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "yaqcaffy" version))
+       (sha256
+        (base32
+         "192n1zvd54nm9q71vyb6dcr7ia6givf4bjwf6542jjig085lwhxk"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-simpleaffy" ,r-simpleaffy)))
+    (home-page "https://bioconductor.org/packages/yaqcaffy/")
+    (synopsis "Affymetrix quality control and reproducibility analysis")
+    (description
+     "This is a package that can be used for quality control of Affymetrix
+GeneChip expression data and reproducibility analysis of human whole genome
+chips with the MAQC reference datasets.")
+    (license license:artistic2.0)))
+
+(define-public r-quantro
+  (package
+    (name "r-quantro")
+    (version "1.16.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "quantro" version))
+       (sha256
+        (base32
+         "1777gjgn855f04yv7hx70h9l8idmjzamkpazaq2cdr8qzhxwy2ib"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-biobase" ,r-biobase)
+       ("r-doparallel" ,r-doparallel)
+       ("r-foreach" ,r-foreach)
+       ("r-ggplot2" ,r-ggplot2)
+       ("r-iterators" ,r-iterators)
+       ("r-minfi" ,r-minfi)
+       ("r-rcolorbrewer" ,r-rcolorbrewer)))
+    (home-page "https://bioconductor.org/packages/quantro/")
+    (synopsis "Test for when to use quantile normalization")
+    (description
+     "This package provides a data-driven test for the assumptions of quantile
+normalization using raw data such as objects that inherit eSets (e.g.
+ExpressionSet, MethylSet).  Group level information about each sample (such as
+Tumor / Normal status) must also be provided because the test assesses if
+there are global differences in the distributions between the user-defined
+groups.")
+    (license license:gpl3+)))
+
+(define-public r-yarn
+  (package
+    (name "r-yarn")
+    (version "1.8.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "yarn" version))
+       (sha256
+        (base32
+         "0c84x1zq34hadpsyaa873r8kg0jcxp09c2z63377hlmhsll90l7s"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-biobase" ,r-biobase)
+       ("r-biomart" ,r-biomart)
+       ("r-downloader" ,r-downloader)
+       ("r-edger" ,r-edger)
+       ("r-gplots" ,r-gplots)
+       ("r-limma" ,r-limma)
+       ("r-matrixstats" ,r-matrixstats)
+       ("r-preprocesscore" ,r-preprocesscore)
+       ("r-quantro" ,r-quantro)
+       ("r-rcolorbrewer" ,r-rcolorbrewer)
+       ("r-readr" ,r-readr)))
+    (home-page "https://bioconductor.org/packages/yarn/")
+    (synopsis "Robust multi-condition RNA-Seq preprocessing and normalization")
+    (description
+     "Expedite large RNA-Seq analyses using a combination of previously
+developed tools.  YARN is meant to make it easier for the user in performing
+basic mis-annotation quality control, filtering, and condition-aware
+normalization.  YARN leverages many Bioconductor tools and statistical
+techniques to account for the large heterogeneity and sparsity found in very
+large RNA-seq experiments.")
+    (license license:artistic2.0)))
+
+(define-public r-roar
+  (package
+    (name "r-roar")
+    (version "1.18.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "roar" version))
+       (sha256
+        (base32
+         "15650s9vs7dvmqpvrs4xwn6j4kh14yqsx4daqyhhxxr68kn8mklw"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-biocgenerics" ,r-biocgenerics)
+       ("r-genomeinfodb" ,r-genomeinfodb)
+       ("r-genomicalignments" ,r-genomicalignments)
+       ("r-genomicranges" ,r-genomicranges)
+       ("r-iranges" ,r-iranges)
+       ("r-rtracklayer" ,r-rtracklayer)
+       ("r-s4vectors" ,r-s4vectors)
+       ("r-summarizedexperiment" ,r-summarizedexperiment)))
+    (home-page "https://github.com/vodkatad/roar/")
+    (synopsis "Identify differential APA usage from RNA-seq alignments")
+    (description
+     "This package provides tools for identifying preferential usage of APA
+sites, comparing two biological conditions, starting from known alternative
+sites and alignments obtained from standard RNA-seq experiments.")
+    (license license:gpl3)))
+
+(define-public r-xbseq
+  (package
+    (name "r-xbseq")
+    (version "1.14.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "XBSeq" version))
+       (sha256
+        (base32
+         "0na0jiqfy40bzl243gqc2214k4hibv6v4ndiqwq0c5f78cyr6lph"))))
+    (properties `((upstream-name . "XBSeq")))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-biobase" ,r-biobase)
+       ("r-deseq2" ,r-deseq2)
+       ("r-dplyr" ,r-dplyr)
+       ("r-ggplot2" ,r-ggplot2)
+       ("r-locfit" ,r-locfit)
+       ("r-magrittr" ,r-magrittr)
+       ("r-matrixstats" ,r-matrixstats)
+       ("r-pracma" ,r-pracma)
+       ("r-roar" ,r-roar)))
+    (home-page "https://github.com/Liuy12/XBSeq")
+    (synopsis "Test for differential expression for RNA-seq data")
+    (description
+     "XBSeq is a novel algorithm for testing RNA-seq @dfn{differential
+expression} (DE), where a statistical model was established based on the
+assumption that observed signals are the convolution of true expression
+signals and sequencing noises.  The mapped reads in non-exonic regions are
+considered as sequencing noises, which follows a Poisson distribution.  Given
+measurable observed signal and background noise from RNA-seq data, true
+expression signals, assuming governed by the negative binomial distribution,
+can be delineated and thus the accurate detection of differential expressed
+genes.")
+    (license license:gpl3+)))
+
+(define-public r-massspecwavelet
+  (package
+    (name "r-massspecwavelet")
+    (version "1.48.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "MassSpecWavelet" version))
+       (sha256
+        (base32
+         "1xcr568a36b570rldy27wq4a2jn7yf5f6fddlzgx6x944jdn3ckz"))))
+    (properties
+     `((upstream-name . "MassSpecWavelet")))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-waveslim" ,r-waveslim)))
+    (home-page "https://bioconductor.org/packages/MassSpecWavelet/")
+    (synopsis "Mass spectrum processing by wavelet-based algorithms")
+    (description
+     "The MassSpecWavelet package aims to process @dfn{Mass Spectrometry} (MS)
+data mainly through the use of wavelet transforms.  It supports peak detection
+based on @dfn{Continuous Wavelet Transform} (CWT).")
+    (license license:lgpl2.0+)))
+
+(define-public r-xcms
+  (package
+    (name "r-xcms")
+    (version "3.4.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "xcms" version))
+       (sha256
+        (base32
+         "073f25m7y8z4560k93d99fv72pr7nrgrp054zssi7jhas4l3ddww"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-biobase" ,r-biobase)
+       ("r-biocgenerics" ,r-biocgenerics)
+       ("r-biocparallel" ,r-biocparallel)
+       ("r-lattice" ,r-lattice)
+       ("r-massspecwavelet" ,r-massspecwavelet)
+       ("r-msnbase" ,r-msnbase)
+       ("r-multtest" ,r-multtest)
+       ("r-mzr" ,r-mzr)
+       ("r-plyr" ,r-plyr)
+       ("r-protgenerics" ,r-protgenerics)
+       ("r-rann" ,r-rann)
+       ("r-rcolorbrewer" ,r-rcolorbrewer)
+       ("r-robustbase" ,r-robustbase)
+       ("r-s4vectors" ,r-s4vectors)))
+    (home-page "https://bioconductor.org/packages/xcms/")
+    (synopsis "LC/MS and GC/MS mass spectrometry data analysis")
+    (description
+     "This package provides a framework for processing and visualization of
+chromatographically separated and single-spectra mass spectral data.  It
+imports from AIA/ANDI NetCDF, mzXML, mzData and mzML files.  It preprocesses
+data for high-throughput, untargeted analyte profiling.")
+    (license license:gpl2+)))
+
+(define-public r-wrench
+  (package
+    (name "r-wrench")
+    (version "1.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "Wrench" version))
+       (sha256
+        (base32
+         "12gfdj2p52pah67bimz14xcwmcb4c2snjwswj0fns7v3v1h9rlqg"))))
+    (properties `((upstream-name . "Wrench")))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-limma" ,r-limma)
+       ("r-locfit" ,r-locfit)
+       ("r-matrixstats" ,r-matrixstats)))
+    (home-page "https://github.com/HCBravoLab/Wrench")
+    (synopsis "Wrench normalization for sparse count data")
+    (description
+     "Wrench is a package for normalization sparse genomic count data, like
+that arising from 16s metagenomic surveys.")
+    (license license:artistic2.0)))
+
+(define-public r-wiggleplotr
+  (package
+    (name "r-wiggleplotr")
+    (version "1.6.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "wiggleplotr" version))
+       (sha256
+        (base32
+         "12fhbskkjwv4d9bdy3gab8n9pcf7qpwiwgx0248as445vfw8dil3"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-assertthat" ,r-assertthat)
+       ("r-cowplot" ,r-cowplot)
+       ("r-dplyr" ,r-dplyr)
+       ("r-genomeinfodb" ,r-genomeinfodb)
+       ("r-genomicranges" ,r-genomicranges)
+       ("r-ggplot2" ,r-ggplot2)
+       ("r-iranges" ,r-iranges)
+       ("r-purrr" ,r-purrr)
+       ("r-rtracklayer" ,r-rtracklayer)
+       ("r-s4vectors" ,r-s4vectors)))
+    (home-page "https://bioconductor.org/packages/wiggleplotr/")
+    (synopsis "Make read coverage plots from BigWig files")
+    (description
+     "This package provides tools to visualize read coverage from sequencing
+experiments together with genomic annotations (genes, transcripts, peaks).
+Introns of long transcripts can be rescaled to a fixed length for better
+visualization of exonic read coverage.")
+    (license license:asl2.0)))
+
+(define-public r-widgettools
+  (package
+    (name "r-widgettools")
+    (version "1.60.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "widgetTools" version))
+       (sha256
+        (base32
+         "0mz69pdr6q69avsvs6r5ncdkdmgwfislpil4v18dsflw4j454gwf"))))
+    (properties `((upstream-name . "widgetTools")))
+    (build-system r-build-system)
+    (home-page "https://bioconductor.org/packages/widgetTools/")
+    (synopsis "Tools for creating interactive tcltk widgets")
+    (description
+     "This packages contains tools to support the construction of tcltk
+widgets in R.")
+    ;; Any version of the LGPL.
+    (license license:lgpl3+)))
+
+(define-public r-webbioc
+  (package
+    (name "r-webbioc")
+    (version "1.54.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "webbioc" version))
+       (sha256
+        (base32
+         "16n6wc9q51wfpmh9y77p53sqdqdd8pn50c67vf6h4n7gv5wgnpwi"))))
+    (build-system r-build-system)
+    (inputs
+     `(("netpbm" ,netpbm)
+       ("perl" ,perl)))
+    (propagated-inputs
+     `(("r-affy" ,r-affy)
+       ("r-annaffy" ,r-annaffy)
+       ("r-biobase" ,r-biobase)
+       ("r-biocmanager" ,r-biocmanager)
+       ("r-gcrma" ,r-gcrma)
+       ("r-multtest" ,r-multtest)
+       ("r-qvalue" ,r-qvalue)
+       ("r-vsn" ,r-vsn)))
+    (home-page "https://www.bioconductor.org/")
+    (synopsis "Bioconductor web interface")
+    (description
+     "This package provides an integrated web interface for doing microarray
+analysis using several of the Bioconductor packages.  It is intended to be
+deployed as a centralized bioinformatics resource for use by many users.
+Currently only Affymetrix oligonucleotide analysis is supported.")
+    (license license:gpl2+)))
+
+(define-public r-zfpkm
+  (package
+    (name "r-zfpkm")
+    (version "1.4.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "zFPKM" version))
+       (sha256
+        (base32
+         "0rvfrjxxvfng9fxxn316gm96v4rahx62vlk3axr2bzjbi1r4s8v5"))))
+    (properties `((upstream-name . "zFPKM")))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-checkmate" ,r-checkmate)
+       ("r-dplyr" ,r-dplyr)
+       ("r-ggplot2" ,r-ggplot2)
+       ("r-summarizedexperiment" ,r-summarizedexperiment)
+       ("r-tidyr" ,r-tidyr)))
+    (home-page "https://github.com/ronammar/zFPKM/")
+    (synopsis "Functions to facilitate zFPKM transformations")
+    (description
+     "This is a package to perform the zFPKM transform on RNA-seq FPKM data.
+This algorithm is based on the publication by Hart et al., 2013 (Pubmed ID
+24215113).")
+    (license license:gpl3)))
+
+(define-public r-rbowtie2
+  (package
+    (name "r-rbowtie2")
+    (version "1.4.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "Rbowtie2" version))
+       (sha256
+        (base32
+         "045cmfwqzcj4zn6r16hkpmr5sd5y0mxvrs5yynf460fdz2p418cr"))))
+    (properties `((upstream-name . "Rbowtie2")))
+    (build-system r-build-system)
+    (inputs
+     `(("zlib" ,zlib)))
+    (home-page "https://bioconductor.org/packages/Rbowtie2/")
+    (synopsis "R wrapper for Bowtie2 and AdapterRemoval")
+    (description
+     "This package provides an R wrapper of the popular @code{bowtie2}
+sequencing reads aligner and @code{AdapterRemoval}, a convenient tool for
+rapid adapter trimming, identification, and read merging.")
+    (license license:gpl3+)))
+
+(define-public r-progeny
+  (package
+    (name "r-progeny")
+    (version "1.4.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "progeny" version))
+       (sha256
+        (base32
+         "02z09rbzi305jrwzai8zayxi82563lxcaldp4r9pw564qkbl7pk7"))))
+    (build-system r-build-system)
+    (propagated-inputs `(("r-biobase" ,r-biobase)))
+    (home-page "https://github.com/saezlab/progeny")
+    (synopsis "Pathway responsive gene activity inference")
+    (description
+     "This package provides a function to infer pathway activity from gene
+expression.  It contains the linear model inferred in the publication
+\"Perturbation-response genes reveal signaling footprints in cancer gene
+expression\".")
+    (license license:asl2.0)))
+
+(define-public r-arrmnormalization
+  (package
+    (name "r-arrmnormalization")
+    (version "1.22.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "ARRmNormalization" version))
+       (sha256
+        (base32
+         "09wfd4vqfvmkpqn9dwqly1dz4h1ckh621jbwj1dab6q4z0dfmzmd"))))
+    (properties
+     `((upstream-name . "ARRmNormalization")))
+    (build-system r-build-system)
+    (propagated-inputs `(("r-arrmdata" ,r-arrmdata)))
+    (home-page "https://bioconductor.org/packages/ARRmNormalization/")
+    (synopsis "Adaptive robust regression normalization for methylation data")
+    (description
+     "This is a package to perform the @dfn{Adaptive Robust Regression
+method} (ARRm) for the normalization of methylation data from the Illumina
+Infinium HumanMethylation 450k assay.")
+    (license license:artistic2.0)))
diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index 1836939970..8a49e1e350 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -2325,23 +2325,21 @@ files.  The code was previously part of the cutadapt tool.")
 (define-public cutadapt
   (package
     (name "cutadapt")
-    (version "1.18")
+    (version "2.1")
     (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                    (url "https://github.com/marcelm/cutadapt.git")
-                    (commit (string-append "v" version))))
-              (file-name (git-file-name name version))
+              (method url-fetch)
+              (uri (pypi-uri "cutadapt" version))
               (sha256
                (base32
-                "08bbfwyc0kvcd95jf2s95xiv9s3cbsxm39ydl0qck3fw3cviwxpg"))))
+                "1vqmsfkm6llxzmsz9wcfcvzx9a9f8iabvwik2rbyn7nc4wm25z89"))))
     (build-system python-build-system)
     (inputs
      `(("python-dnaio" ,python-dnaio)
        ("python-xopen" ,python-xopen)))
     (native-inputs
      `(("python-cython" ,python-cython)
-       ("python-pytest" ,python-pytest)))
+       ("python-pytest" ,python-pytest)
+       ("python-setuptools-scm" ,python-setuptools-scm)))
     (home-page "https://cutadapt.readthedocs.io/en/stable/")
     (synopsis "Remove adapter sequences from nucleotide sequencing reads")
     (description
@@ -6792,14 +6790,14 @@ databases.  Packages produced are intended to be used with AnnotationDbi.")
 (define-public r-rbgl
   (package
     (name "r-rbgl")
-    (version "1.58.1")
+    (version "1.58.2")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "RBGL" version))
        (sha256
         (base32
-         "1l5x2icv9di1lr3gqfi0vjnyd9xc3l77yc42ippqd4cadj3d1pzf"))))
+         "0vhnh47pswnp27c0zqcbnnsayfmq3cxcgrs9g860555ldqfl4cyl"))))
     (properties `((upstream-name . "RBGL")))
     (build-system r-build-system)
     (propagated-inputs `(("r-graph" ,r-graph)))
@@ -7014,29 +7012,6 @@ annotation infrastructure.")
      "This package provides a pipeline for the analysis of GRO-seq data.")
     (license license:gpl3+)))
 
-(define-public r-sparql
-  (package
-  (name "r-sparql")
-  (version "1.16")
-  (source (origin
-           (method url-fetch)
-           (uri (cran-uri "SPARQL" version))
-           (sha256
-            (base32
-             "0gak1q06yyhdmcxb2n3v0h9gr1vqd0viqji52wpw211qp6r6dcrc"))))
-  (properties `((upstream-name . "SPARQL")))
-  (build-system r-build-system)
-  (propagated-inputs
-   `(("r-rcurl" ,r-rcurl)
-     ("r-xml" ,r-xml)))
-  (home-page "https://cran.r-project.org/web/packages/SPARQL")
-  (synopsis "SPARQL client for R")
-  (description "This package provides an interface to use SPARQL to pose
-SELECT or UPDATE queries to an end-point.")
-  ;; The only license indication is found in the DESCRIPTION file,
-  ;; which states GPL-3.  So we cannot assume GPLv3+.
-  (license license:gpl3)))
-
 (define-public vsearch
   (package
     (name "vsearch")
@@ -7243,32 +7218,6 @@ 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 r-acsnminer
-  (package
-    (name "r-acsnminer")
-    (version "0.16.8.25")
-    (source (origin
-              (method url-fetch)
-              (uri (cran-uri "ACSNMineR" version))
-              (sha256
-               (base32
-                "0gh604s8qall6zfjlwcg2ilxjvz08dplf9k5g47idhv43scm748l"))))
-    (properties `((upstream-name . "ACSNMineR")))
-    (build-system r-build-system)
-    (propagated-inputs
-      `(("r-ggplot2" ,r-ggplot2)
-        ("r-gridextra" ,r-gridextra)))
-    (home-page "https://cran.r-project.org/web/packages/ACSNMineR")
-    (synopsis "Gene enrichment analysis")
-    (description
-     "This package provides tools to compute and represent gene set enrichment
-or depletion from your data based on pre-saved maps from the @dfn{Atlas of
-Cancer Signalling Networks} (ACSN) or user imported maps.  The gene set
-enrichment can be run with hypergeometric test or Fisher exact test, and can
-use multiple corrections.  Visualization of data can be done either by
-barplots or heatmaps.")
-    (license license:gpl2+)))
-
 (define-public r-biocinstaller
   (package
     (name "r-biocinstaller")
@@ -7315,30 +7264,6 @@ categorize packages in a Bioconductor package repository according to keywords,
 also known as views, in a controlled vocabulary.")
     (license license:artistic2.0)))
 
-(define-public r-bookdown
-  (package
-    (name "r-bookdown")
-    (version "0.9")
-    (source (origin
-              (method url-fetch)
-              (uri (cran-uri "bookdown" version))
-              (sha256
-               (base32
-                "0vg1s1w0l9pm95asqb21yf39mfk1nc9rdhmlys9xwr7p7i7rsz32"))))
-    (build-system r-build-system)
-    (propagated-inputs
-     `(("r-htmltools" ,r-htmltools)
-       ("r-knitr" ,r-knitr)
-       ("r-rmarkdown" ,r-rmarkdown)
-       ("r-tinytex" ,r-tinytex)
-       ("r-yaml" ,r-yaml)
-       ("r-xfun" ,r-xfun)))
-    (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
-authoring books and technical documents with R Markdown.")
-    (license license:gpl3)))
-
 (define-public r-biocstyle
   (package
     (name "r-biocstyle")
@@ -7412,29 +7337,6 @@ functionality.")
 checks on R packages that are to be submitted to the Bioconductor repository.")
     (license license:artistic2.0)))
 
-(define-public r-optparse
-  (package
-    (name "r-optparse")
-    (version "1.6.1")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (cran-uri "optparse" version))
-       (sha256
-        (base32
-         "04vyb6dhcga30mvghsg1p052jmf69xqxkvh3hzqz7dscyppy76w1"))))
-    (build-system r-build-system)
-    (propagated-inputs
-     `(("r-getopt" ,r-getopt)))
-    (home-page
-     "https://github.com/trevorld/optparse")
-    (synopsis "Command line option parser")
-    (description
-     "This package provides a command line parser inspired by Python's
-@code{optparse} library to be used with Rscript to write shebang scripts
-that accept short and long options.")
-    (license license:gpl2+)))
-
 (define-public r-s4vectors
   (package
     (name "r-s4vectors")
@@ -7462,31 +7364,6 @@ In addition, a few low-level concrete subclasses of general interest (e.g.
 S4Vectors package itself.")
     (license license:artistic2.0)))
 
-(define-public r-seqinr
-  (package
-    (name "r-seqinr")
-    (version "3.4-5")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (cran-uri "seqinr" version))
-        (sha256
-          (base32
-            "17zv0n5cji17izwmwg0jcbxbjl3w5rls91w15svcnlpxjms38ahn"))))
-    (build-system r-build-system)
-    (propagated-inputs
-     `(("r-ade4" ,r-ade4)
-       ("r-segmented" ,r-segmented)))
-    (inputs
-     `(("zlib" ,zlib)))
-    (home-page "http://seqinr.r-forge.r-project.org/")
-    (synopsis "Biological sequences retrieval and analysis")
-    (description
-     "This package provides tools for exploratory data analysis and data
-visualization of biological sequence (DNA and protein) data.  It also includes
-utilities for sequence data management under the ACNUC system.")
-    (license license:gpl2+)))
-
 (define-public r-iranges
   (package
     (name "r-iranges")
@@ -7888,10 +7765,10 @@ biological sequences or sets of sequences.")
     (home-page "https://bioconductor.org/packages/release/bioc/html/Rsamtools.html")
     (synopsis "Interface to samtools, bcftools, and tabix")
     (description
-     "This package provides an interface to the 'samtools', 'bcftools', and
-'tabix' utilities for manipulating SAM (Sequence Alignment / Map), FASTA,
-binary variant call (BCF) and compressed indexed tab-delimited (tabix)
-files.")
+     "This package provides an interface to the @code{samtools},
+@code{bcftools}, and @code{tabix} utilities for manipulating SAM (Sequence
+Alignment / Map), FASTA, binary variant call (BCF) and compressed indexed
+tab-delimited (tabix) files.")
     (license license:expat)))
 
 (define-public r-delayedarray
@@ -8039,13 +7916,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.34.6")
+    (version "1.34.8")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "GenomicFeatures" version))
               (sha256
                (base32
-                "1cz7qx324dmsrkzyhm956cfgr08gpily5rpym7hc8zz5kbl6i3ra"))))
+                "1sxp86hdsg32l2c85jgic65gy92d8kxsm01264hrx6yikdhicjax"))))
     (properties
      `((upstream-name . "GenomicFeatures")))
     (build-system r-build-system)
@@ -8413,6 +8290,9 @@ secondary structure and comparative analysis in R.")
          "13fv78sk5g0gqfl3ks3rps3zc1k66a4lzxvgn36r7ix43yxk7hnr"))))
     (properties `((upstream-name . "Rhtslib")))
     (build-system r-build-system)
+    ;; Without this a temporary directory ends up in the Rhtslib.so binary,
+    ;; which makes R abort the build.
+    (arguments '(#:configure-flags '("--no-staged-install")))
     (propagated-inputs
      `(("r-zlibbioc" ,r-zlibbioc)))
     (inputs
@@ -8467,6 +8347,7 @@ paired-end data.")
               (sha256
                (base32
                 "0ss5hcg2m7gjji6dd23zxa5bd5a7knwcnada4qs5q2l4clgk39ad"))))
+    (properties `((upstream-name . "RCAS")))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-annotationdbi" ,r-annotationdbi)
@@ -8587,45 +8468,6 @@ characterization and visualization of a wide range of mutational patterns
 in SNV base substitution data.")
     (license license:expat)))
 
-(define-public r-wgcna
-  (package
-    (name "r-wgcna")
-    (version "1.66")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (cran-uri "WGCNA" version))
-       (sha256
-        (base32
-         "0rhnyhzfn93yp24jz9v6dzrmyizwzdw070a7idm0k33w1cm8sjqv"))))
-    (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-robust" ,r-robust)
-       ("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-chipkernels
   (let ((commit "c9cfcacb626b1221094fb3490ea7bac0fd625372")
         (revision "1"))
@@ -8693,39 +8535,6 @@ bound and non bound genomic regions to accurately identify transcription
 factors bound at the specific regions.")
     (license license:gpl2+)))
 
-(define-public r-gkmsvm
-  (package
-    (name "r-gkmsvm")
-    (version "0.79.0")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (cran-uri "gkmSVM" version))
-       (sha256
-        (base32
-         "04dakbgfvfalz4rm4fvvybp506dn5fbj5g86ybfhrc6wywjllsz3"))))
-    (properties `((upstream-name . "gkmSVM")))
-    (build-system r-build-system)
-    (propagated-inputs
-     `(("r-biocgenerics" ,r-biocgenerics)
-       ("r-biostrings" ,r-biostrings)
-       ("r-genomeinfodb" ,r-genomeinfodb)
-       ("r-genomicranges" ,r-genomicranges)
-       ("r-iranges" ,r-iranges)
-       ("r-kernlab" ,r-kernlab)
-       ("r-rcpp" ,r-rcpp)
-       ("r-rocr" ,r-rocr)
-       ("r-rtracklayer" ,r-rtracklayer)
-       ("r-s4vectors" ,r-s4vectors)
-       ("r-seqinr" ,r-seqinr)))
-    (home-page "https://cran.r-project.org/web/packages/gkmSVM")
-    (synopsis "Gapped-kmer support vector machine")
-    (description
-     "This R package provides tools for training gapped-kmer SVM classifiers
-for DNA and protein sequences.  This package supports several sequence
-kernels, including: gkmSVM, kmer-SVM, mismatch kernel and wildcard kernel.")
-    (license license:gpl2+)))
-
 (define-public r-tximport
   (package
     (name "r-tximport")
@@ -9632,40 +9441,33 @@ and irregular enzymatic cleavages, mass measurement accuracy, etc.")
 (define-public r-seurat
   (package
     (name "r-seurat")
-    (version "2.3.4")
+    (version "3.0.0")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "Seurat" version))
               (sha256
                (base32
-                "0l8bv4i9nzz26mirnva10mq6pimibj24vk7vpvfypgn7xk4942hd"))))
+                "183lm2wk0i3g114jbdf7pb4ssizr48qzqv3cknbsiackr8kvpsvc"))))
     (properties `((upstream-name . "Seurat")))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-ape" ,r-ape)
        ("r-cluster" ,r-cluster)
        ("r-cowplot" ,r-cowplot)
-       ("r-dosnow" ,r-dosnow)
-       ("r-dplyr" ,r-dplyr)
-       ("r-dtw" ,r-dtw)
        ("r-fitdistrplus" ,r-fitdistrplus)
-       ("r-foreach" ,r-foreach)
-       ("r-fpc" ,r-fpc)
+       ("r-future" ,r-future)
+       ("r-future-apply" ,r-future-apply)
        ("r-ggplot2" ,r-ggplot2)
+       ("r-ggrepel" ,r-ggrepel)
        ("r-ggridges" ,r-ggridges)
-       ("r-gplots" ,r-gplots)
-       ("r-hdf5r" ,r-hdf5r)
-       ("r-hmisc" ,r-hmisc)
-       ("r-httr" ,r-httr)
        ("r-ica" ,r-ica)
        ("r-igraph" ,r-igraph)
        ("r-irlba" ,r-irlba)
-       ("r-lars" ,r-lars)
+       ("r-kernsmooth" ,r-kernsmooth)
        ("r-lmtest" ,r-lmtest)
        ("r-mass" ,r-mass)
        ("r-matrix" ,r-matrix)
        ("r-metap" ,r-metap)
-       ("r-mixtools" ,r-mixtools)
        ("r-pbapply" ,r-pbapply)
        ("r-plotly" ,r-plotly)
        ("r-png" ,r-png)
@@ -9674,12 +9476,14 @@ and irregular enzymatic cleavages, mass measurement accuracy, etc.")
        ("r-rcpp" ,r-rcpp)
        ("r-rcppeigen" ,r-rcppeigen)
        ("r-rcppprogress" ,r-rcppprogress)
-       ("r-reshape2" ,r-reshape2)
        ("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-sdmtools" ,r-sdmtools)
-       ("r-tidyr" ,r-tidyr)
        ("r-tsne" ,r-tsne)))
     (home-page "http://www.satijalab.org/seurat")
     (synopsis "Seurat is an R toolkit for single cell genomics")
@@ -10026,14 +9830,14 @@ originally made available by Holmes, Harris, and Quince, 2012, PLoS ONE 7(2):
 (define-public r-ensembldb
   (package
     (name "r-ensembldb")
-    (version "2.6.7")
+    (version "2.6.8")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "ensembldb" version))
        (sha256
         (base32
-         "1wqq0m1fgvgkzq5zr2s9cj2s7qkg9lx3dwwsqixzs5fn52p4dn7f"))))
+         "0gijx2l2y00h6gfj3gfr7rd4vva6qf2vkfdfy5gdmvqlxy84ka38"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-annotationdbi" ,r-annotationdbi)
@@ -10152,6 +9956,16 @@ effort and encourages consistency.")
         (base32
          "0wq49qqzkcn8s19xgaxf2s1j1a563d7pbhhvris6fhxfdjsz4934"))))
     (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)
@@ -10352,14 +10166,14 @@ by Ernst and Kellis.")
 (define-public r-ldblock
   (package
     (name "r-ldblock")
-    (version "1.12.0")
+    (version "1.12.1")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "ldblock" version))
        (sha256
         (base32
-         "0xbf4pmhrk5fnd1iz5wzjvdr75v114bwpznhcig4wiqmxc27sips"))))
+         "01lf74pby7si2g3kgc10qzr6lkcbigqcgqs2j3anc38vzxv0zhwv"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-biocgenerics" ,r-biocgenerics)
@@ -10384,14 +10198,14 @@ defining LD blocks.")
 (define-public r-gqtlstats
   (package
     (name "r-gqtlstats")
-    (version "1.14.0")
+    (version "1.14.1")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "gQTLstats" version))
        (sha256
         (base32
-         "1sg9kw59dlayj7qxql9pd93d4hmml504sa3kkfpzfh3xri7m5pxf"))))
+         "1rkbnb3h02fdksc4nacqvmq4jgbj9fz4hm7j51yr2ggcgcykwraa"))))
     (properties `((upstream-name . "gQTLstats")))
     (build-system r-build-system)
     (propagated-inputs
@@ -10625,14 +10439,14 @@ block processing.")
 (define-public r-rhdf5lib
   (package
     (name "r-rhdf5lib")
-    (version "1.4.2")
+    (version "1.4.3")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "Rhdf5lib" version))
        (sha256
         (base32
-         "06bxd3wz8lrvh2hzvmjpdv4lvzj5lz9353bw5b3zb98cb8w9r2j5"))
+         "0hjhjvg2kss71fkmxlbgnyyy1agwzgq57rxkgkm4riw82x2rvw7q"))
        (modules '((guix build utils)))
        (snippet
         '(begin
@@ -10861,14 +10675,14 @@ memory usage and processing time is minimized.")
 (define-public r-phangorn
   (package
     (name "r-phangorn")
-    (version "2.4.0")
+    (version "2.5.3")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "phangorn" version))
        (sha256
         (base32
-         "0xc8k552nxczy19jr0xjjagrzc8x6lafasgk2c099ls8bc1yml1i"))))
+         "1bv86yfk5r015s7ij6v4zz7bagwrw9m13yfs5853drxb19d5h1m3"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-ape" ,r-ape)
@@ -11075,23 +10889,31 @@ with narrow binding events such as transcription factor ChIP-seq.")
 (define-public trim-galore
   (package
     (name "trim-galore")
-    (version "0.4.5")
+    (version "0.6.1")
     (source
      (origin
        (method git-fetch)
        (uri (git-reference
              (url "https://github.com/FelixKrueger/TrimGalore.git")
              (commit version)))
-       (file-name (string-append name "-" version "-checkout"))
+       (file-name (git-file-name name version))
        (sha256
         (base32
-         "0x5892l48c816pf00wmnz5vq0zq6170d3xc8zrxncd4jcz7h1p71"))))
+         "1y31wbxwkm9xqzr5zv1pk5q418whnmlmgmfyxxpnl12h83m2i9iv"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f                      ; no tests
        #:phases
        (modify-phases %standard-phases
-         (delete 'configure)
+         (replace 'configure
+           (lambda _
+             ;; Trim Galore tries to figure out what version of Python
+             ;; cutadapt is using by looking at the shebang.  Of course that
+             ;; doesn't work, because cutadapt is wrapped in a shell script.
+             (substitute* "trim_galore"
+               (("my \\$python_return.*")
+                "my $python_return = \"Python 3.999\";\n"))
+             #t))
          (delete 'build)
          (add-after 'unpack 'hardcode-tool-references
            (lambda* (#:key inputs #:allow-other-keys)
@@ -11100,14 +10922,18 @@ with narrow binding events such as transcription factor ChIP-seq.")
                 (string-append "$path_to_cutadapt = '"
                                (assoc-ref inputs "cutadapt")
                                "/bin/cutadapt'"))
-               (("\\| gzip")
-                (string-append "| "
+               (("\\$compression_path = \"gzip\"")
+                (string-append "$compression_path = \""
                                (assoc-ref inputs "gzip")
-                               "/bin/gzip"))
+                               "/bin/gzip\""))
                (("\"gunzip")
                 (string-append "\""
                                (assoc-ref inputs "gzip")
-                               "/bin/gunzip")))
+                               "/bin/gunzip"))
+               (("\"pigz")
+                (string-append "\""
+                               (assoc-ref inputs "pigz")
+                               "/bin/pigz")))
              #t))
          (replace 'install
            (lambda* (#:key outputs #:allow-other-keys)
@@ -11119,6 +10945,7 @@ with narrow binding events such as transcription factor ChIP-seq.")
     (inputs
      `(("gzip" ,gzip)
        ("perl" ,perl)
+       ("pigz" ,pigz)
        ("cutadapt" ,cutadapt)))
     (native-inputs
      `(("unzip" ,unzip)))
@@ -12220,6 +12047,23 @@ graphs.  This library makes it easy to work with @file{.loom} files for
 single-cell RNA-seq data.")
     (license license:bsd-3)))
 
+;; pigx-scrnaseq does not work with the latest version of loompy.
+(define-public python-loompy-for-pigx-scrnaseq
+  (package (inherit python-loompy)
+    (name "python-loompy")
+    (version "2.0.3")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/linnarsson-lab/loompy.git")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0pjyl532pl8sbv71yci6h0agchn0naw2qjcwj50n6afrsahbsag3"))))
+    ;; There are none.
+    (arguments '(#:tests? #f))))
+
 ;; We cannot use the latest commit because it requires Java 9.
 (define-public java-forester
   (let ((commit "86b07efe302d5094b42deed9260f719a4c4ac2e6")
@@ -12833,7 +12677,7 @@ expression report comparing samples in an easily configurable manner.")
 (define-public pigx-chipseq
   (package
     (name "pigx-chipseq")
-    (version "0.0.31")
+    (version "0.0.40")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/BIMSBbioinfo/pigx_chipseq/"
@@ -12841,7 +12685,7 @@ expression report comparing samples in an easily configurable manner.")
                                   "/pigx_chipseq-" version ".tar.gz"))
               (sha256
                (base32
-                "0l3vd9xwqzap3mmyj8xwqp84kj7scbq308diqnwg2albphl75xqs"))))
+                "0y9x62cfwzhsp82imnawyamxp58bcb00yjxdy44spylqnjdlsaj8"))))
     (build-system gnu-build-system)
     ;; parts of the tests rely on access to the network
     (arguments '(#:tests? #f))
@@ -12990,7 +12834,7 @@ methylation and segmentation.")
        ("python-pandas" ,python-pandas)
        ("python-magic" ,python-magic)
        ("python-numpy" ,python-numpy)
-       ("python-loompy" ,python-loompy)
+       ("python-loompy" ,python-loompy-for-pigx-scrnaseq)
        ("ghc-pandoc" ,ghc-pandoc)
        ("ghc-pandoc-citeproc" ,ghc-pandoc-citeproc)
        ("samtools" ,samtools)
@@ -13461,31 +13305,57 @@ in RNA-seq data.")
 (define-public python-scanpy
   (package
     (name "python-scanpy")
-    (version "1.2.2")
+    (version "1.4")
+    ;; Fetch from git because the pypi tarball does not include tests.
     (source
      (origin
-       (method url-fetch)
-       (uri (pypi-uri "scanpy" version))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/theislab/scanpy.git")
+             (commit version)))
+       (file-name (git-file-name name version))
        (sha256
         (base32
-         "1ak7bxms5a0yvf65prppq2g38clkv7c7jnjbnfpkh3xxv7q512jz"))))
+         "0zn6x6c0cnm1a20i6isigwb51g3pr9zpjk8r1minjqnxi5yc9pm4"))))
     (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda* (#:key inputs #:allow-other-keys)
+             ;; These tests require Internet access.
+             (delete-file-recursively "scanpy/tests/notebooks")
+             (delete-file "scanpy/tests/test_clustering.py")
+
+             ;; TODO: I can't get the plotting tests to work, even with Xvfb.
+             (delete-file "scanpy/tests/test_plotting.py")
+             (delete-file "scanpy/tests/test_preprocessing.py")
+             (delete-file "scanpy/tests/test_read_10x.py")
+
+             (setenv "PYTHONPATH"
+                     (string-append (getcwd) ":"
+                                    (getenv "PYTHONPATH")))
+             (invoke "pytest")
+             #t)))))
     (propagated-inputs
      `(("python-anndata" ,python-anndata)
+       ("python-h5py" ,python-h5py)
        ("python-igraph" ,python-igraph)
-       ("python-numba" ,python-numba)
        ("python-joblib" ,python-joblib)
+       ("python-louvain" ,python-louvain)
+       ("python-matplotlib" ,python-matplotlib)
        ("python-natsort" ,python-natsort)
        ("python-networkx" ,python-networkx)
-       ("python-statsmodels" ,python-statsmodels)
-       ("python-scikit-learn" ,python-scikit-learn)
-       ("python-matplotlib" ,python-matplotlib)
+       ("python-numba" ,python-numba)
        ("python-pandas" ,python-pandas)
+       ("python-scikit-learn" ,python-scikit-learn)
        ("python-scipy" ,python-scipy)
        ("python-seaborn" ,python-seaborn)
-       ("python-h5py" ,python-h5py)
+       ("python-statsmodels" ,python-statsmodels)
        ("python-tables" ,python-tables)))
-    (home-page "http://github.com/theislab/scanpy")
+    (native-inputs
+     `(("python-pytest" ,python-pytest)))
+    (home-page "https://github.com/theislab/scanpy")
     (synopsis "Single-Cell Analysis in Python.")
     (description "Scanpy is a scalable toolkit for analyzing single-cell gene
 expression data.  It includes preprocessing, visualization, clustering,
@@ -13494,6 +13364,38 @@ Python-based implementation efficiently deals with datasets of more than one
 million cells.")
     (license license:bsd-3)))
 
+(define-public python-bbknn
+  (package
+    (name "python-bbknn")
+    (version "1.3.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "bbknn" version))
+       (sha256
+        (base32
+         "1qgdganvj3lyxj84v7alm23b9vqhwpn8z0115qndpnpy90qxynwz"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     `(("python-annoy" ,python-annoy)
+       ("python-cython" ,python-cython)
+       ("python-faiss" ,python-faiss)
+       ("python-numpy" ,python-numpy)
+       ("python-scanpy" ,python-scanpy)))
+    (home-page "https://github.com/Teichlab/bbknn")
+    (synopsis "Batch balanced KNN")
+    (description "BBKNN is a batch effect removal tool that can be directly
+used in the Scanpy workflow.  It serves as an alternative to
+@code{scanpy.api.pp.neighbors()}, with both functions creating a neighbour
+graph for subsequent use in clustering, pseudotime and UMAP visualisation.  If
+technical artifacts are present in the data, they will make it challenging to
+link corresponding cell types across different batches.  BBKNN actively
+combats this effect by splitting your data into batches and finding a smaller
+number of neighbours for each cell within each of the groups.  This helps
+create connections between analogous cells in different batches without
+altering the counts or PCA space.")
+    (license license:expat)))
+
 (define-public gffcompare
   (let ((commit "be56ef4349ea3966c12c6397f85e49e047361c41")
         (revision "1"))
@@ -14661,3 +14563,227 @@ overlapping paired-ended reads into (longer) consensus sequences.
 Additionally, the AdapterRemoval may be used to recover a consensus adapter
 sequence for paired-ended data, for which this information is not available.")
     (license license:gpl3+)))
+
+(define-public pplacer
+  (let ((commit "807f6f3"))
+    (package
+      (name "pplacer")
+      ;; The commit should be updated with each version change.
+      (version "1.1.alpha19")
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/matsen/pplacer.git")
+               (commit (string-append "v" version))))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "11ppbbbx20p2g9wj3ff64dhnarb12q79v7qh4rk0gj6lkbz4n7cn"))))
+      (build-system ocaml-build-system)
+      (arguments
+       `(#:modules ((guix build ocaml-build-system)
+                    (guix build utils)
+                    (ice-9 ftw))
+         #:phases
+         (modify-phases %standard-phases
+           (delete 'configure)
+           (add-after 'unpack 'fix-build-with-latest-ocaml
+             (lambda _
+               (substitute* "myocamlbuild.ml"
+                 (("dep \\[\"c_pam\"\\]" m)
+                  (string-append "flag [\"ocaml\"; \"compile\"] (A \"-unsafe-string\");\n"
+                                 m))
+                 (("let run_and_read" m)
+                  (string-append "
+let split s ch =
+  let x = ref [] in
+  let rec go s =
+    let pos = String.index s ch in
+    x := (String.before s pos)::!x;
+    go (String.after s (pos + 1))
+  in
+  try go s
+  with Not_found -> !x
+let split_nl s = split s '\\n'
+let before_space s =
+  try String.before s (String.index s ' ')
+  with Not_found -> s
+
+" m))
+                 (("run_and_read \"ocamlfind list \\| cut -d' ' -f1\"" m)
+                  (string-append "List.map before_space (split_nl & " m ")"))
+                 (("    blank_sep_strings &") "")
+                 (("      Lexing.from_string &") ""))
+               #t))
+           (add-after 'unpack 'replace-bundled-cddlib
+             (lambda* (#:key inputs #:allow-other-keys)
+               (let* ((cddlib-src (assoc-ref inputs "cddlib-src"))
+                      (local-dir "cddlib_guix"))
+                 (mkdir local-dir)
+                 (with-directory-excursion local-dir
+                   (invoke "tar" "xvf" cddlib-src))
+                 (let ((cddlib-src-folder
+                        (string-append local-dir "/"
+                                       (list-ref (scandir local-dir) 2)
+                                       "/lib-src")))
+                   (for-each make-file-writable (find-files "cdd_src" ".*"))
+                   (for-each
+                    (lambda (file)
+                      (copy-file file
+                                 (string-append "cdd_src/" (basename file))))
+                    (find-files cddlib-src-folder ".*[ch]$")))
+                 #t)))
+           (add-after 'unpack 'fix-makefile
+             (lambda _
+               ;; Remove system calls to 'git'.
+               (substitute* "Makefile"
+                 (("^DESCRIPT:=pplacer-.*")
+                  (string-append
+                   "DESCRIPT:=pplacer-$(shell uname)-v" ,version "\n")))
+               (substitute* "myocamlbuild.ml"
+                 (("git describe --tags --long .*\\\" with")
+                  (string-append
+                   "echo -n v" ,version "-" ,commit "\" with")))
+               #t))
+           (replace 'install
+             (lambda* (#:key outputs #:allow-other-keys)
+               (let* ((out (assoc-ref outputs "out"))
+                      (bin (string-append out "/bin")))
+                 (copy-recursively "bin" bin))
+               #t)))))
+      (inputs
+       `(("zlib" ,zlib "static")
+         ("gsl" ,gsl)
+         ("ocaml-ounit" ,ocaml-ounit)
+         ("ocaml-batteries" ,ocaml-batteries)
+         ("ocaml-camlzip" ,camlzip)
+         ("ocaml-csv" ,ocaml-csv)
+         ("ocaml-sqlite3" ,ocaml-sqlite3)
+         ("ocaml-xmlm" ,ocaml-xmlm)
+         ("ocaml-mcl" ,ocaml-mcl)
+         ("ocaml-gsl" ,ocaml-gsl-1)))
+      (native-inputs
+       `(("cddlib-src" ,(package-source cddlib))
+         ("ocamlbuild" ,ocamlbuild)
+         ("pkg-config" ,pkg-config)))
+      (propagated-inputs
+       `(("pplacer-scripts" ,pplacer-scripts)))
+      (synopsis "Phylogenetic placement of biological sequences")
+      (description
+       "Pplacer places query sequences on a fixed reference phylogenetic tree
+to maximize phylogenetic likelihood or posterior probability according to a
+reference alignment.  Pplacer is designed to be fast, to give useful
+information about uncertainty, and to offer advanced visualization and
+downstream analysis.")
+      (home-page "http://matsen.fhcrc.org/pplacer")
+      (license license:gpl3))))
+
+;; This package is installed alongside 'pplacer'.  It is a separate package so
+;; that it can use the python-build-system for the scripts that are
+;; distributed alongside the main OCaml binaries.
+(define pplacer-scripts
+  (package
+    (inherit pplacer)
+    (name "pplacer-scripts")
+    (build-system python-build-system)
+    (arguments
+     `(#:python ,python-2
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'enter-scripts-dir
+           (lambda _ (chdir "scripts") #t))
+         (replace 'check
+           (lambda _ (invoke "python" "-m" "unittest" "discover" "-v") #t))
+         (add-after 'install 'wrap-executables
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (bin (string-append out "/bin")))
+               (let ((path (string-append
+                            (assoc-ref inputs "hmmer") "/bin:"
+                            (assoc-ref inputs "infernal") "/bin")))
+                 (display path)
+                 (wrap-program (string-append bin "/refpkg_align.py")
+                   `("PATH" ":" prefix (,path))))
+               (let ((path (string-append
+                            (assoc-ref inputs "hmmer") "/bin")))
+                 (wrap-program (string-append bin "/hrefpkg_query.py")
+                   `("PATH" ":" prefix (,path)))))
+             #t)))))
+    (inputs
+     `(("infernal" ,infernal)
+       ("hmmer" ,hmmer)))
+    (propagated-inputs
+     `(("python-biopython" ,python2-biopython)
+       ("taxtastic" ,taxtastic)))
+    (synopsis "Pplacer Python scripts")))
+
+(define-public python2-checkm-genome
+  (package
+    (name "python2-checkm-genome")
+    (version "1.0.13")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "checkm-genome" version))
+       (sha256
+        (base32
+         "0bm8gpxjmzxsxxl8lzwqhgx8g1dlnmp6znz7wv3hgb0gdjbf9dzz"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:python ,python-2
+       #:tests? #f)) ; some tests are interactive
+    (propagated-inputs
+     `(("python-dendropy" ,python2-dendropy)
+       ("python-matplotlib" ,python2-matplotlib)
+       ("python-numpy" ,python2-numpy)
+       ("python-pysam" ,python2-pysam)
+       ("python-scipy" ,python2-scipy)))
+    (home-page "http://pypi.python.org/pypi/checkm/")
+    (synopsis "Assess the quality of putative genome bins")
+    (description
+     "CheckM provides a set of tools for assessing the quality of genomes
+recovered from isolates, single cells, or metagenomes.  It provides robust
+estimates of genome completeness and contamination by using collocated sets of
+genes that are ubiquitous and single-copy within a phylogenetic lineage.
+Assessment of genome quality can also be examined using plots depicting key
+genomic characteristics (e.g., GC, coding density) which highlight sequences
+outside the expected distributions of a typical genome.  CheckM also provides
+tools for identifying genome bins that are likely candidates for merging based
+on marker set compatibility, similarity in genomic characteristics, and
+proximity within a reference genome.")
+    (license license:gpl3+)))
+
+(define-public umi-tools
+  (package
+    (name "umi-tools")
+    (version "1.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "umi_tools" version))
+       (sha256
+        (base32
+         "08y3vz1vcx09whmbsn722lcs6jl9wyrh9i4p3k8j4cb1i32bij4a"))))
+    (build-system python-build-system)
+    (inputs
+     `(("python-setuptools" ,python-setuptools)
+       ("python-pandas" ,python-pandas)
+       ("python-future" ,python-future)
+       ("python-scipy" ,python-scipy)
+       ("python-matplotlib" ,python-matplotlib)
+       ("python-regex" ,python-regex)
+       ("python-pysam" ,python-pysam)))
+    (native-inputs
+     `(("python-setuptools" ,python-setuptools)
+       ("python-cython" ,python-cython)))
+    (home-page "https://github.com/CGATOxford/UMI-tools")
+    (synopsis "Tools for analyzing unique modular identifiers")
+    (description "This package provides tools for dealing with @dfn{Unique
+Molecular Identifiers} (UMIs) and @dfn{Random Molecular Tags} (RMTs) in
+genetic sequences.  There are six tools: the @code{extract} and
+@code{whitelist} commands are used to prepare a fastq containg UMIs @code{+/-}
+cell barcodes for alignment.  The remaining commands, @code{group},
+@code{dedup}, and @{count}/@code{count_tab}, are used to identify PCR
+duplicates using the UMIs and perform different levels of analysis depending
+on the needs of the user.")
+    (license license:expat)))
diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm
index d6ef7d52b5..6e6e69ff3b 100644
--- a/gnu/packages/bootloaders.scm
+++ b/gnu/packages/bootloaders.scm
@@ -90,7 +90,8 @@
               (base32
                "03vvdfhdmf16121v7xs8is2krwnv15wpkhkf16a4yf8nsfc3f2w1"))
              (patches (search-patches "grub-check-error-efibootmgr.patch"
-                                      "grub-binutils-compat.patch"))))
+                                      "grub-binutils-compat.patch"
+                                      "grub-efi-fat-serial-number.patch"))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases (modify-phases %standard-phases
@@ -378,7 +379,7 @@ tree binary files.  These are board description files used by Linux and BSD.")
 (define u-boot
   (package
     (name "u-boot")
-    (version "2019.01")
+    (version "2019.04")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -386,7 +387,10 @@ tree binary files.  These are board description files used by Linux and BSD.")
                     "u-boot-" version ".tar.bz2"))
               (sha256
                (base32
-                "08hwsmh5xsb1gcxsv8gvx00bai938dm5y3889n8jif3a8rd7xgah"))))
+                "1vwv4bgbl7fjcm073zrphn17hnz5h5h778f88ivdsgbb2lnpgdvn"))
+              (patches
+               (search-patches
+                "u-boot-fix-mkimage-header-verification.patch"))))
     (native-inputs
      `(("bc" ,bc)
        ("bison" ,bison)
@@ -441,6 +445,10 @@ also initializes the boards (RAM etc).")
               (("def test_ctrl_c")
                "@pytest.mark.skip(reason='Guix has problems with SIGINT')
 def test_ctrl_c"))
+             ;; Test against the tools being installed rather than tools built
+             ;; for "sandbox" target.
+             (substitute* "test/image/test-imagetools.sh"
+               (("BASEDIR=sandbox") "BASEDIR=."))
              (for-each (lambda (file)
                               (substitute* file
                                   ;; Disable signatures, due to GPL/Openssl
@@ -483,12 +491,19 @@ def test_ctrl_c"))
            (delete 'check)
            (add-after 'install 'check
              (lambda* (#:key make-flags test-target #:allow-other-keys)
-               (apply invoke "make" "mrproper" make-flags)
-               (setenv "SDL_VIDEODRIVER" "dummy")
-               (setenv "PAGER" "cat")
-               (apply invoke "make" test-target make-flags)
-               (symlink "build-sandbox_spl" "sandbox")
-               (invoke "test/image/test-imagetools.sh"))))))
+               (invoke "test/image/test-imagetools.sh")))
+           ;; Only run full test suite on x86_64 systems, as many tests
+           ;; assume x86_64.
+           ,@(if (string-match "^x86_64-linux"
+                               (or (%current-target-system)
+                                   (%current-system)))
+                 '((add-after 'check 'check-x86
+                     (lambda* (#:key make-flags test-target #:allow-other-keys)
+                       (apply invoke "make" "mrproper" make-flags)
+                       (setenv "SDL_VIDEODRIVER" "dummy")
+                       (setenv "PAGER" "cat")
+                       (apply invoke "make" test-target make-flags))))
+                 '()))))
     (description "U-Boot is a bootloader used mostly for ARM boards.  It
 also initializes the boards (RAM etc).  This package provides its
 board-independent tools.")))
@@ -577,8 +592,32 @@ board-independent tools.")))
 (define-public u-boot-malta
   (make-u-boot-package "malta" "mips64el-linux-gnuabi64"))
 
-(define-public u-boot-beagle-bone-black
-  (make-u-boot-package "am335x_boneblack" "arm-linux-gnueabihf"))
+(define-public u-boot-am335x-boneblack
+  (let ((base (make-u-boot-package "am335x_evm" "arm-linux-gnueabihf")))
+    (package
+      (inherit base)
+      (name "u-boot-am335x-boneblack")
+      (description "U-Boot is a bootloader used mostly for ARM boards. It
+also initializes the boards (RAM etc).
+
+This U-Boot is built for the BeagleBone Black, which was removed upstream,
+adjusted from the am335x_evm build with several device trees removed so that
+it fits within common partitioning schemes.")
+      (arguments
+       (substitute-keyword-arguments (package-arguments base)
+         ((#:phases phases)
+          `(modify-phases ,phases
+             (add-after 'unpack 'patch-defconfig
+               ;; Patch out other devicetrees to build image small enough to
+               ;; fit within typical partitioning schemes where the first
+               ;; partition begins at sector 2048.
+               (lambda _
+                 (substitute* "configs/am335x_evm_defconfig"
+                   (("CONFIG_OF_LIST=.*$") "CONFIG_OF_LIST=\"am335x-evm am335x-boneblack\"\n"))
+                 #t)))))))))
+
+(define-public u-boot-am335x-evm
+  (make-u-boot-package "am335x_evm" "arm-linux-gnueabihf"))
 
 (define-public (make-u-boot-sunxi64-package board triplet)
   (let ((base (make-u-boot-package board triplet)))
@@ -637,7 +676,7 @@ board-independent tools.")))
 also initializes the boards (RAM etc).
 
 This U-Boot is built for Novena.  Be advised that this version, contrary
-to Novena upstream, does not load u-boot.img from the first patition.")
+to Novena upstream, does not load u-boot.img from the first partition.")
       (arguments
        (substitute-keyword-arguments (package-arguments base)
          ((#:phases phases)
@@ -647,7 +686,7 @@ to Novena upstream, does not load u-boot.img from the first patition.")
                ;; allowing it to be installed at a device offset.
                (lambda _
                  (substitute* "configs/novena_defconfig"
-                   (("CONFIG_SPL_FAT_SUPPORT=y") "# CONFIG_SPL_FAT_SUPPORT is not set"))
+                   (("CONFIG_SPL_FS_FAT=y") "# CONFIG_SPL_FS_FAT is not set"))
                  #t)))))))))
 
 (define-public u-boot-cubieboard
diff --git a/gnu/packages/c.scm b/gnu/packages/c.scm
index 3b20e84a91..2629ebb6dd 100644
--- a/gnu/packages/c.scm
+++ b/gnu/packages/c.scm
@@ -1,6 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2016, 2018 Ludovic Courtès <ludo@gnu.org>
-;;; Copyright © 2016, 2017, 2018 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2016, 2017, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
 ;;; Copyright © 2019 Efraim Flashner <efraim@flashner.co.il>
@@ -38,7 +38,8 @@
   #:use-module (gnu packages python)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages gettext)
-  #:use-module (gnu packages pkg-config))
+  #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages xml))
 
 (define-public tcc
   (package
@@ -257,3 +258,32 @@ typing conventions?
 every project that needs to deal with sizes in bytes.  It is written in the C
 language with thin bindings for other languages.")
     (license license:lgpl2.1+)))
+
+(define-public udunits
+  (package
+    (name "udunits")
+    (version "2.2.26")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "ftp://ftp.unidata.ucar.edu/pub/udunits/"
+                                  "udunits-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0v9mqw4drnkzkm57331ail6yvs9485jmi37s40lhvmf7r5lli3rn"))))
+    (build-system gnu-build-system)
+    (inputs
+     `(("expat" ,expat)))
+    (home-page "https://www.unidata.ucar.edu/software/udunits/")
+    (synopsis "C library for units of physical quantities and value-conversion utils")
+    (description
+     "The UDUNITS-2 package provides support for units of physical quantities.
+Its three main components are:
+
+@enumerate
+@item @code{udunits2lib}, a C library for units of physical quantities;
+@item @code{udunits2prog}, a utility for obtaining the definition of a unit
+  and for converting numeric values between compatible units; and
+@item an extensive database of units.
+@end enumerate\n")
+    ;; Like the BSD-3 license but with an extra anti patent clause.
+    (license (license:non-copyleft "file://COPYRIGHT"))))
diff --git a/gnu/packages/calendar.scm b/gnu/packages/calendar.scm
index 226d8f57e2..2969228ee9 100644
--- a/gnu/packages/calendar.scm
+++ b/gnu/packages/calendar.scm
@@ -96,13 +96,13 @@ data units.")
 (define-public khal
   (package
     (name "khal")
-    (version "0.9.10")
+    (version "0.10.1")
     (source (origin
              (method url-fetch)
              (uri (pypi-uri "khal" version))
              (sha256
               (base32
-               "03h0j0d3xyqh98x5v2gv63wv3g91hip3vsaxvybsn5iz331d23h4"))))
+               "1r8bkgjwkh7i8ygvsv51h1cnax50sb183vafg66x5snxf3dgjl6l"))))
     (build-system python-build-system)
     (arguments
      `(#:phases (modify-phases %standard-phases
@@ -122,22 +122,14 @@ data units.")
             (setenv "TZ"
                     (string-append (assoc-ref inputs "tzdata")
                                    "/share/zoneinfo/Zulu"))
-            (invoke "py.test" "tests" "-k"
-                    (string-append
-                     ;; These tests are known to fail in when not
-                     ;; running in a TTY:
-                     ;; https://github.com/pimutils/khal/issues/683
-                     "not test_printics_read_from_stdin "
-                     "and not test_import_from_stdin "
-                     ;; https://github.com/pimutils/khal/issues/825
-                     "and not test_description_and_location_and_categories")))))))
+            (invoke "py.test" "tests"))))))
     (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)
+       ("tzdata" ,tzdata-for-tests)
        ("vdirsyncer" ,vdirsyncer)
        ;; Required to build manpage
        ("python-sphinxcontrib-newsfeed" ,python-sphinxcontrib-newsfeed)
@@ -154,7 +146,7 @@ data units.")
     (synopsis "Console calendar program")
     (description "Khal is a standards based console calendar program,
 able to synchronize with CalDAV servers through vdirsyncer.")
-    (home-page "http://lostpackets.de/khal/")
+    (home-page "https://lostpackets.de/khal/")
     (license license:expat)))
 
 (define-public remind
diff --git a/gnu/packages/cdrom.scm b/gnu/packages/cdrom.scm
index 50bf3abcb9..2193a94f86 100644
--- a/gnu/packages/cdrom.scm
+++ b/gnu/packages/cdrom.scm
@@ -8,7 +8,7 @@
 ;;; Copyright © 2016 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2017 John Darrington <jmd@gnu.org>
 ;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
-;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2017 ng0 <ng0@n0.is>
 ;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
 ;;; Copyright © 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
@@ -336,13 +336,15 @@ or @command{xorrisofs} to create ISO 9660 images.")
   (package
     (name "dvdisaster")
     (version "0.79.5")
-    (source (origin
-             (method url-fetch)
-             (uri (string-append "http://dvdisaster.net/downloads/dvdisaster-"
-                                 version ".tar.bz2"))
-             (sha256
-              (base32
-               "0f8gjnia2fxcbmhl8b3qkr5b7idl8m855dw7xw2fnmbqwvcm6k4w"))))
+    (source
+     (origin
+       (method url-fetch)
+       ;; Update this (and update HOME-PAGE) when/if one reappears.
+       (uri (string-append "https://web.archive.org/web/20180428070843/"
+                           "http://dvdisaster.net/downloads/dvdisaster-"
+                           version ".tar.bz2"))
+       (sha256
+        (base32 "0f8gjnia2fxcbmhl8b3qkr5b7idl8m855dw7xw2fnmbqwvcm6k4w"))))
     (build-system gnu-build-system)
     (inputs
      `(("gtk+" ,gtk+-2)))
@@ -384,7 +386,8 @@ or @command{xorrisofs} to create ISO 9660 images.")
                (copy-file "contrib/dvdisaster48.xpm"
                           (string-append datadir "/pixmaps/dvdisaster.xpm"))
                #t))))))
-    (home-page "http://dvdisaster.net/en/index.html")
+    (home-page (string-append "https://web.archive.org/web/20180428070843/"
+                              "http://dvdisaster.net/en/index.html"))
     (synopsis "Error correcting codes for optical media images")
     (description "Optical media (CD,DVD,BD) keep their data only for a
 finite time (typically for many years).  After that time, data loss develops
@@ -656,7 +659,7 @@ information is written to standard error.")
 (define-public asunder
   (package
     (name "asunder")
-    (version "2.8")
+    (version "2.9.3")
     (source (origin
               (method url-fetch)
               (uri
@@ -665,7 +668,7 @@ information is written to standard error.")
                               ".tar.bz2"))
               (sha256
                (base32
-                "1nq9kd4rd4k2kibf57gdbm0zw2gxa234vvvdhxkm8g5bhx5h3iyq"))))
+                "1630i1df06y840v3fgdf75jxw1s8kwbfn5bhi0686viah0scccw5"))))
     (build-system glib-or-gtk-build-system)
     (arguments
      '(#:out-of-source? #f
@@ -860,3 +863,108 @@ Supported extensions to ISO 9660 are Rock Ridge, Joliet, AAIP, zisofs.")
 blanking CD-RW media, creating ISO-9660 file system images, extracting audio
 CD data, and more.  It's mostly compatible with @code{cdrtools}.")
     (license gpl2+)))
+
+(define-public libmirage
+  (package
+    (name "libmirage")
+    (version "3.2.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "https://downloads.sourceforge.net/cdemu/libmirage-"
+                    version ".tar.bz2"))
+              (sha256
+               (base32
+                "1ydph33sfxplp4872dp8ghp574jk5d4qr8hqz61qnznq1b11cnbr"))))
+    (build-system cmake-build-system)
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("intltool" ,intltool)))
+    (inputs
+     `(("glib" ,glib)))
+    (arguments
+     ;; No tests.
+     '(#:tests? #f))
+    (home-page "https://cdemu.sourceforge.io/")
+    (synopsis "CD-ROM image access library")
+    (description "libMirage is a CD-ROM image access library.  It supports the
+following formats: B6T, C2D, CCD, CDI, CIF, CUE, ISO, MDS, MDX, NRG, TOC.  It
+is written in C and based on GLib.  Its aim is to provide uniform access to
+the data stored in various image formats.")
+    (license gpl2+)))
+
+(define-public cdemu-daemon
+  (package
+    (name "cdemu-daemon")
+    (version "3.2.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "https://downloads.sourceforge.net/cdemu/cdemu-daemon/cdemu-daemon-"
+                    version ".tar.bz2"))
+              (sha256
+               (base32
+                "171qqcziqgf6dd9n8xs9hc71krhjiyx9qr767s8znidyjj88hbc4"))))
+    (build-system cmake-build-system)
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("intltool" ,intltool)))
+    (inputs
+     `(("libmirage" ,libmirage)
+       ("glib" ,glib)
+       ("ao" ,ao)))
+    (arguments
+     ;; No tests.
+     '(#:tests? #f))
+    (home-page "https://cdemu.sourceforge.io/")
+    (synopsis "CD/DVD-ROM device emulator")
+    (description "CDemu is a software suite designed to emulate an optical
+drive and disc (including CD-ROMs and DVD-ROMs).")
+    (license gpl2+)))
+
+(define-public cdemu-client
+  (package
+    (name "cdemu-client")
+    (version "3.2.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "https://downloads.sourceforge.net/cdemu/cdemu-client-"
+                    version ".tar.bz2"))
+              (sha256
+               (base32
+                "1zwz987pb2pakfk9kz8a6xa9hq1ip48cn4ryl9z85dik8k2sizm9"))))
+    (build-system cmake-build-system)
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("intltool" ,intltool)))
+    (inputs
+     `(("python" ,python)
+       ("python-pygobject" ,python-pygobject)
+       ("cdemu-daemon" ,cdemu-daemon)))
+    (arguments
+     ;; No tests.
+     `(#:tests? #f
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'install 'patch-shebang
+           (lambda* (#:key outputs #:allow-other-keys)
+             (patch-shebang (string-append (assoc-ref outputs "out")
+                                           "/bin/cdemu"))
+             #t))
+         (add-after 'patch-shebang 'wrap-program
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((prog (string-append (assoc-ref outputs "out")
+                                        "/bin/cdemu")))
+               (wrap-program prog
+                 `("PYTHONPATH" = (,(getenv "PYTHONPATH"))))
+               #t))))))
+    (home-page "https://cdemu.sourceforge.io/")
+    (synopsis "Command-line client for controlling cdemu-daemon")
+    (description "CDEmu client is a simple command-line client for controlling
+CDEmu daemon.
+
+It provides a way to perform the key tasks related to controlling the CDEmu
+daemon, such as loading and unloading devices, displaying devices' status and
+retrieving/setting devices' debug masks.")
+    (license gpl2+)))
diff --git a/gnu/packages/check.scm b/gnu/packages/check.scm
index 186f4ba09a..6103f8e3f7 100644
--- a/gnu/packages/check.scm
+++ b/gnu/packages/check.scm
@@ -29,6 +29,7 @@
 ;;; Copyright © 2017, 2018 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2018 Fis Trivial <ybbs.daans@hotmail.com>
 ;;; Copyright © 2019 Pierre Langlois <pierre.langlois@gmx.com>
+;;; Copyright © 2019 Chris Marusich <cmmarusich@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -468,13 +469,14 @@ test coverage and has a web user interface that will refresh automatically.")
     (version "1.8.0")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/google/googletest/archive/"
-                           "release-" version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+              (url "https://github.com/google/googletest.git")
+              (commit (string-append "release-" version))))
+       (file-name (git-file-name name version))
        (sha256
         (base32
-         "1n5p1m2m3fjrjdj752lf92f9wq3pl5cbsfrb49jqbg52ghkz99jq"))))
+         "0bjlljmbf8glnd9qjabx73w6pd7ibv43yiyngqvmvgxsabzr8399"))))
     (build-system cmake-build-system)
     (arguments
      `(#:configure-flags '("-DBUILD_SHARED_LIBS=ON")))
@@ -2004,13 +2006,13 @@ create data based on random numbers and yet remain repeatable.")
 (define-public python-nose-timer
   (package
     (name "python-nose-timer")
-    (version "0.7.4")
+    (version "0.7.5")
     (source
       (origin
         (method url-fetch)
         (uri (pypi-uri "nose-timer" version))
         (sha256
-          (base32 "04inck7l1sgkjbiinhifxk45wk2b3czbwh1x2a390hi183fq1q12"))))
+          (base32 "05wzkc88vbzw62pqkvhl33211b90kns0lny70b7qw62rcg4flzk4"))))
     (build-system python-build-system)
     (propagated-inputs
      `(("python-nose" ,python-nose)
@@ -2246,3 +2248,52 @@ record the properties and behaviour of particular devices, and to run a
 program or test suite under a test bed with the previously recorded devices
 loaded.")
     (license license:lgpl2.1+)))
+
+(define-public python-pyfakefs
+  (package
+    (name "python-pyfakefs")
+    (version "3.5.8")
+    (source (origin
+              (method url-fetch)
+              ;; We use the PyPI URL because there is no proper release
+              ;; available from GitHub.  The GitHub project only provides
+              ;; autogenerated tarballs, which are known to change in place.
+              (uri (pypi-uri "pyfakefs" version))
+              (sha256
+               (base32
+                "0qb9jp0bqhc0dv0rn805fv99029fvx135f3bvka6scfkcl6jgllc"))
+              (patches (search-patches
+                        "python-pyfakefs-remove-bad-test.patch"))
+              (file-name (string-append name "-" version ".tar.gz"))))
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         ;; The default test suite does not run these extra tests.
+         (add-after 'check 'check-pytest-plugin
+           (lambda _
+             (invoke
+              "python" "-m" "pytest"
+              "pyfakefs/pytest_tests/pytest_plugin_test.py")
+             #t)))))
+    (native-inputs
+     `(("python-pytest" ,python-pytest)))
+    (build-system python-build-system)
+    ;; Guix lint doesn't like that this is a permanent redirect to the GitHub
+    ;; page, but the pyfakefs documentation asks us to use this specific URL
+    ;; when linking to the project.  Honor their request.
+    (home-page "http://pyfakefs.org/")
+    ;; TRANSLATORS: In the synopsis, "Mock" is a verb.
+    (synopsis "Mock file system interactions in tests")
+    (description
+     "This package provides a Python library intended for use in automated
+tests.  One difficulty when testing software is that the code under test might
+need to read or write to files in the local file system.  If the file system
+is not set up in just the right way, it might cause a spurious error during
+the test.  The pyfakefs library provides a solution to problems like this by
+mocking file system interactions.  In other words, it arranges for the code
+under test to interact with a fake file system instead of the real file
+system.  The code under test requires no modification to work with pyfakefs.")
+    (license license:asl2.0)))
+
+(define-public python2-pyfakefs
+  (package-with-python2 python-pyfakefs))
diff --git a/gnu/packages/chez.scm b/gnu/packages/chez.scm
index 7d0042872e..7e9f00f4c4 100644
--- a/gnu/packages/chez.scm
+++ b/gnu/packages/chez.scm
@@ -558,7 +558,7 @@ strings.")
     (synopsis "MIT/GNU Scheme compatibility library for Chez Scheme")
     (description "This package provides a set of MIT/GNU Scheme compatibility
 libraries for Chez Scheme.  The main goal was to provide the functionality
-required to port the program 'Scmutils' to Chez Scheme.")
+required to port the program @code{Scmutils} to Chez Scheme.")
     (license gpl3+)))
 
 (define-public chez-scmutils
diff --git a/gnu/packages/chromium.scm b/gnu/packages/chromium.scm
index 7d49b06ce3..41cc10a8bb 100644
--- a/gnu/packages/chromium.scm
+++ b/gnu/packages/chromium.scm
@@ -40,7 +40,6 @@
   #:use-module (gnu packages gl)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnome)
-  #:use-module (gnu packages gnuzilla)
   #:use-module (gnu packages gperf)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages icu4c)
@@ -51,6 +50,7 @@
   #:use-module (gnu packages kerberos)
   #:use-module (gnu packages ninja)
   #:use-module (gnu packages node)
+  #:use-module (gnu packages nss)
   #:use-module (gnu packages pciutils)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages pulseaudio)
@@ -80,11 +80,9 @@
     "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
-    "net/third_party/http2" ;BSD-3
     "net/third_party/mozilla_security_manager" ;MPL-1.1/GPL2+/LGPL2.1+
     "net/third_party/nss" ;MPL-2.0
     "net/third_party/quic" ;BSD-3
-    "net/third_party/spdy" ;BSD-3
     "net/third_party/uri_template" ;ASL2.0
     "third_party/abseil-cpp" ;ASL2.0
     "third_party/adobe/flash/flapper_version.h" ;no license, trivial
@@ -95,9 +93,6 @@
     "third_party/angle/src/third_party/compiler" ;BSD-2
     "third_party/angle/src/third_party/libXNVCtrl" ;Expat
     "third_party/angle/src/third_party/trace_event" ;BSD-3
-    "third_party/angle/third_party/glslang" ;BSD-3
-    "third_party/angle/third_party/spirv-headers" ;Expat
-    "third_party/angle/third_party/spirv-tools" ;Expat
     "third_party/angle/third_party/vulkan-headers" ;ASL2.0
     "third_party/angle/third_party/vulkan-loader" ;ASL2.0
     "third_party/angle/third_party/vulkan-tools" ;ASL2.0
@@ -125,9 +120,12 @@
     "third_party/crashpad/crashpad/third_party/zlib/zlib_crashpad.h" ;Zlib
     "third_party/crc32c" ;BSD-3
     "third_party/cros_system_api" ;BSD-3
+    "third_party/dav1d" ;BSD-2
     "third_party/dom_distiller_js" ;BSD-3
+    "third_party/emoji-segmenter" ;ASL2.0
     "third_party/fips181" ;BSD-3
     "third_party/flatbuffers" ;ASL2.0
+    "third_party/glslang" ;BSD-3, Expat, ASL2.0
     "third_party/google_input_tools" ;ASL2.0
     "third_party/google_input_tools/third_party/closure_library" ;ASL2.0
     "third_party/google_input_tools/third_party/closure_library/third_party/closure" ;Expat
@@ -206,6 +204,7 @@
     "third_party/yasm/run_yasm.py" ;BSD-2 or BSD-3
     "third_party/zlib/google" ;BSD-3
     "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
     "v8/src/third_party/valgrind" ;BSD-4
     "v8/third_party/inspector_protocol" ;BSD-3
@@ -224,8 +223,9 @@ from forcing GEXP-PROMISE."
                       #:system system
                       #:guile-for-build guile)))
 
-(define %chromium-version "72.0.3626.121")
-(define %ungoogled-revision "a80839c418de8843dfcd6c13a557f12d26a0a17a")
+(define %chromium-version "74.0.3729.131")
+(define %ungoogled-revision "9e33022f3ac7de2a12e3c7a7923799c9bbbf8194")
+(define %debian-revision "debian/74.0.3729.108-1")
 (define package-revision "0")
 
 (define %package-version (string-append %chromium-version "-"
@@ -233,29 +233,43 @@ from forcing GEXP-PROMISE."
                                         (string-take %ungoogled-revision 7)))
 
 ;; This is a "computed" origin that does the following:
-;; 1) Runs the Ungoogled scripts on a pristine Chromium tarball.
-;; 2) Prunes all third_party folders that are not explicitly preserved.
-;; 3) Adjusts "GN" build files such that system libraries are preferred.
+;; *) Runs the Ungoogled scripts on a pristine Chromium tarball.
+;; *) Applies Debians Chromium patches, for their unbundling and GCC work.
+;; *) Prunes all third_party directories that are not explicitly preserved.
+;; *) Adjusts "GN" build files such that system libraries are preferred.
 (define ungoogled-chromium-source
-  (let* ((chromium-source
-          (origin
-            (method url-fetch)
-            (uri (string-append "https://commondatastorage.googleapis.com"
-                                "/chromium-browser-official/chromium-"
-                                %chromium-version ".tar.xz"))
-            (sha256
-             (base32
-              "07xwmlvmzfga61nrimqmzl7s29jb4kc94nkzwwlb7sh6nr55a7jc"))))
-         (ungoogled-source
-          (origin
-            (method git-fetch)
-            (uri (git-reference (url "https://github.com/Eloston/ungoogled-chromium")
-                                (commit %ungoogled-revision)))
-            (file-name (git-file-name "ungoogled-chromium"
-                                      (string-take %ungoogled-revision 7)))
-            (sha256
-             (base32
-              "0rgirbxbgjdm3s2kzgj101rjq0clr7x2a7b37kfx2q629z4qlrpc")))))
+  (let ((chromium-source
+         (origin
+           (method url-fetch)
+           (uri (string-append "https://commondatastorage.googleapis.com"
+                               "/chromium-browser-official/chromium-"
+                               %chromium-version ".tar.xz"))
+           (sha256
+            (base32
+             "11m9mlzrqzmz7rhl0ff7lry2s4yjrdkfi36qfv48m1cg5y2cfy6i"))))
+        (ungoogled-source
+         (origin
+           (method git-fetch)
+           (uri (git-reference (url "https://github.com/Eloston/ungoogled-chromium")
+                               (commit %ungoogled-revision)))
+           (file-name (git-file-name "ungoogled-chromium"
+                                     (string-take %ungoogled-revision 7)))
+           (sha256
+            (base32
+             "08whx582p3a2nivkj7kwin09a8acybr00z6344smb9xjlxy9rkp4"))))
+        (debian-source
+         (origin
+           (method git-fetch)
+           (uri (git-reference
+                 (url "https://salsa.debian.org/chromium-team/chromium.git")
+                 (commit %debian-revision)))
+           (file-name (git-file-name "debian-chromium-packaging"
+                                     (if (string-prefix? "debian/" %debian-revision)
+                                         (cadr (string-split %debian-revision #\/))
+                                         (string-take %debian-revision 7))))
+           (sha256
+            (base32
+             "1bn0c86sxkkxgdz0i88y0zh4zr39l6379r2rhgk3b3qbvwz25s3j")))))
 
     (origin
       (method computed-origin-method)
@@ -265,7 +279,10 @@ from forcing GEXP-PROMISE."
        (delay
          (with-imported-modules '((guix build utils))
            #~(begin
-               (use-modules (guix build utils))
+               (use-modules (guix build utils)
+                            (ice-9 rdelim)
+                            (srfi srfi-1)
+                            (srfi srfi-26))
                (let ((chromium-dir    (string-append "chromium-" #$%chromium-version))
                      (preserved-files (list #$@%preserved-third-party-files)))
 
@@ -281,41 +298,62 @@ from forcing GEXP-PROMISE."
 
                  (with-directory-excursion "/tmp/ungoogled"
 
-                   ;; Create a custom "bundle" that inherits from linux_rooted
-                   ;; and adds an additional patch.
-                   (format #t "Creating Guix config bundle...~%")
-                   (force-output)
-                   (mkdir-p "config_bundles/guix")
-                   (call-with-output-file "config_bundles/guix/bundlemeta.ini"
-                     (lambda (port)
-                       (format port
-                               "[bundle]
-display_name = GNU Guix
-depends = linux_rooted\n")))
-                   (call-with-output-file "config_bundles/guix/patch_order.list"
-                     (lambda (port)
-                       (format port "debian_buster/system/openjpeg.patch\n")))
-
                    (format #t "Unpacking chromium tarball...~%")
                    (force-output)
                    (invoke "tar" "xf" #+chromium-source)
 
                    (format #t "Ungooglifying...~%")
                    (force-output)
-                   (invoke "python3" "run_buildkit_cli.py" "prune"
-                           "-b" "config_bundles/guix" chromium-dir)
-                   (invoke "python3" "run_buildkit_cli.py" "patches" "apply"
-                           "-b" "config_bundles/guix" chromium-dir)
-                   (invoke "python3" "run_buildkit_cli.py" "domains" "apply"
-                           "-b" "config_bundles/linux_rooted"
+                   (invoke "python3" "utils/prune_binaries.py" chromium-dir
+                           "pruning.list")
+                   (invoke "python3" "utils/patches.py" "apply"
+                           chromium-dir "patches")
+                   (invoke "python3" "utils/domain_substitution.py" "apply" "-r"
+                           "domain_regex.list" "-f" "domain_substitution.list"
                            "-c" "/tmp/domainscache.tar.gz" chromium-dir)
 
                    (with-directory-excursion chromium-dir
+
+                     (format #t "applying Debian patches...~%")
+                     (force-output)
+                     (let* ((debian  #+debian-source)
+                            (patches (string-append debian "/debian/patches"))
+                            (series  (string-append patches "/series"))
+                            (grep-q (lambda (query file)
+                                      (with-input-from-file file
+                                        (lambda ()
+                                          (let loop ((line (read-line))
+                                                     (match #f))
+                                            (if (or match (eof-object? line))
+                                                (if match #t #f)
+                                                (loop (read-line)
+                                                      (string-contains line query)))))))))
+                       (with-input-from-file series
+                         (lambda ()
+                           (let loop ((line (read-line)))
+                             (unless (eof-object? line)
+                               (when (and (> (string-length line) 1)
+                                          ;; Skip the Debian-specific ones.
+                                          (not (string-prefix? "debianization/" line))
+                                          (not (string-prefix? "gcc6/" line))
+                                          ;; And those that conflict with Ungoogled.
+                                          (not (any (cute string-suffix? <> line)
+                                                    '("widevine-buildflag.patch"
+                                                      "signin.patch"
+                                                      "third-party-cookies.patch")))
+                                          ;; Ungoogled includes a subset of the Debian
+                                          ;; patches.  Exclude those already present.
+                                          (not (grep-q line "../patches/series")))
+                                 (invoke "patch" "--force" "-p1" "--input"
+                                         (string-append patches "/" line)
+                                         "--no-backup-if-mismatch"))
+                               (loop (read-line)))))))
+
                      (format #t "Pruning third party files...~%")
                      (force-output)
                      (apply invoke "python"
-                             "build/linux/unbundle/remove_bundled_libraries.py"
-                             "--do-remove" preserved-files)
+                            "build/linux/unbundle/remove_bundled_libraries.py"
+                            "--do-remove" preserved-files)
 
                      (format #t "Replacing GN files...~%")
                      (force-output)
@@ -421,13 +459,19 @@ depends = linux_rooted\n")))
              "use_system_lcms2=true"
              "use_system_libdrm=true"
              "use_system_libjpeg=true"
+             "use_system_libopenjpeg2=true"
              "use_system_libpng=true"
              "use_system_zlib=true"
              "use_gnome_keyring=false"  ;deprecated by libsecret
              "use_openh264=true"
              "use_pulseaudio=true"
              "link_pulseaudio=true"
-             "use_vaapi=true"
+
+             ;; VA-API acceleration is currently only supported on x86_64-linux.
+             ,@(if (string-prefix? "x86_64" (or (%current-target-system)
+                                                (%current-system)))
+                   '("use_vaapi=true")
+                   '())
 
              ;; Don't arbitrarily restrict formats supported by system ffmpeg.
              "proprietary_codecs=true"
@@ -502,12 +546,13 @@ depends = linux_rooted\n")))
              (substitute* "third_party/webrtc/rtc_base/strings/json.h"
                (("#include \"third_party/jsoncpp/") "#include \"json/"))
 
-             (substitute* "media/base/decode_capabilities.cc"
-               (("third_party/libvpx/source/libvpx/") ""))
-
-             (substitute* "ui/gfx/skia_util.h"
+             (substitute* '("ui/gfx/skia_util.h"
+                            "components/viz/common/resources/resource_format_utils.h")
                (("third_party/vulkan/include/") ""))
 
+             (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
diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm
index a76867f426..c7a1645fd1 100644
--- a/gnu/packages/commencement.scm
+++ b/gnu/packages/commencement.scm
@@ -2449,7 +2449,7 @@ COREUTILS-FINAL vs. COREUTILS, etc."
     (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 'debug' output), and Binutils.")
+and binaries, plus debugging symbols in the @code{debug} output), and Binutils.")
     (home-page "https://gcc.gnu.org/")
     (outputs '("out" "debug" "static"))
 
diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm
index 7412b97aef..4324ac4d96 100644
--- a/gnu/packages/compression.scm
+++ b/gnu/packages/compression.scm
@@ -158,8 +158,8 @@ the @code{zlib} source.")
    (home-page "https://savannah.nongnu.org/projects/fastjar")
    (synopsis "Replacement for Sun's 'jar' utility")
    (description
-    "FastJar is an attempt to create a much faster replacement for Sun's 'jar'
-utility.  Instead of being written in Java, FastJar is written in C.")
+    "FastJar is an attempt to create a much faster replacement for Sun's
+@code{jar} utility.  Instead of being written in Java, FastJar is written in C.")
    (license license:gpl2+)))
 
 (define-public libtar
diff --git a/gnu/packages/conky.scm b/gnu/packages/conky.scm
index c3b72ea063..2b32bf8791 100644
--- a/gnu/packages/conky.scm
+++ b/gnu/packages/conky.scm
@@ -1,6 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2015 Siniša Biđin <sinisa@bidin.eu>
-;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -37,16 +37,16 @@
   (package
     (name "conky")
     (home-page "https://github.com/brndnmtthws/conky")
-    (version "1.11.2")
+    (version "1.11.3")
     (source
      (origin
        (method git-fetch)
        (uri (git-reference
              (url home-page)
              (commit (string-append "v" version))))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (file-name (git-file-name name version))
        (sha256
-        (base32 "0yalcpwx85smh6nnvxxsgqi344nk7jzlkkam7yjghm87df4v7xmx"))))
+        (base32 "0pdl31xvmy8niagzqx9sd2b6hc6lzwfiaz66m4djf1gz9bksc8qv"))))
     (build-system cmake-build-system)
     (arguments
      `(#:tests? #f ; there are no tests
diff --git a/gnu/packages/connman.scm b/gnu/packages/connman.scm
index 1290dd010d..39262b87da 100644
--- a/gnu/packages/connman.scm
+++ b/gnu/packages/connman.scm
@@ -3,7 +3,7 @@
 ;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
 ;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org>
 ;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
-;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -44,15 +44,14 @@
 (define-public connman
   (package
     (name "connman")
-    (version "1.36")
+    (version "1.37")
     (source
       (origin
         (method url-fetch)
         (uri (string-append "mirror://kernel.org/linux/network/connman/"
-                            name "-" version ".tar.xz"))
+                            "connman-" version ".tar.xz"))
     (sha256
-     (base32
-      "0x00dq5c2frz06md3g5y0jh5kbcj2hrfl5qjcqga8gs4ri0xp2f7"))))
+     (base32 "05kfjiqhqfmbbwc4snnyvi5hc4zxanac62f6gcwaf5mvn0z9pqkc"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags
@@ -63,8 +62,6 @@
              "--enable-vpnc"
              "--enable-pptp"
              "--enable-l2tp"
-             ;; location for daemon state files and internal configuration
-             ;; needs to be writeable
              "--localstatedir=/var"
              (string-append
               "--with-dbusconfdir=" (assoc-ref %outputs "out") "/etc")
diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm
index 4e8f12248f..e0af0dd1a9 100644
--- a/gnu/packages/cpp.scm
+++ b/gnu/packages/cpp.scm
@@ -72,16 +72,14 @@ operating system functions.")
 
 (define-public rct
   (let* ((commit "b3e6f41d9844ef64420e628e0c65ed98278a843a")
-         (revision "2")
-         (version (git-version "0.0.0" revision commit)))
+         (revision "2"))
     (package
       (name "rct")
-      (version version)
-      (home-page "https://github.com/Andersbakken/rct")
+      (version (git-version "0.0.0" revision commit))
       (source (origin
                 (method git-fetch)
                 (uri (git-reference
-                      (url home-page)
+                      (url "https://github.com/Andersbakken/rct")
                       (commit commit)))
                 (sha256
                  (base32
@@ -99,6 +97,7 @@ operating system functions.")
       (inputs
        `(("openssl" ,openssl)
          ("zlib" ,zlib)))
+      (home-page "https://github.com/Andersbakken/rct")
       (synopsis "C++ library providing Qt-like APIs on top of the STL")
       (description "Rct is a set of C++ tools that provide nicer (more Qt-like)
  APIs on top of Standard Template Library (@dfn{STL}) classes.")
diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm
index 5a3762fd7a..3942c2fb0c 100644
--- a/gnu/packages/cran.scm
+++ b/gnu/packages/cran.scm
@@ -40,19 +40,24 @@
   #:use-module (guix build-system r)
   #:use-module (gnu packages algebra)
   #:use-module (gnu packages base)
+  #:use-module (gnu packages bioinformatics)
+  #:use-module (gnu packages c)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages curl)
   #:use-module (gnu packages databases)
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages gcc)
+  #:use-module (gnu packages geo)
   #:use-module (gnu packages ghostscript)
   #:use-module (gnu packages gl)
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages graph)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages haskell)
+  #:use-module (gnu packages icu4c)
   #:use-module (gnu packages image)
   #:use-module (gnu packages imagemagick)
+  #:use-module (gnu packages java)
   #:use-module (gnu packages javascript)
   #:use-module (gnu packages lisp)
   #:use-module (gnu packages machine-learning)
@@ -60,6 +65,7 @@
   #:use-module (gnu packages mpi)
   #:use-module (gnu packages multiprecision)
   #:use-module (gnu packages networking)
+  #:use-module (gnu packages pcre)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
@@ -72,14 +78,14 @@
 (define-public r-clipr
   (package
     (name "r-clipr")
-    (version "0.5.0")
+    (version "0.6.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "clipr" version))
        (sha256
         (base32
-         "1grx0lyww1cxmdvsr44wmbhz9i6zmiwxbchb97gxrfi9gy5kyc7x"))))
+         "0k9kimkmmj9k7290sxiqn4kd1vvm4w7q9a44wp0w30b7yjpavx2m"))))
     (build-system r-build-system)
     (home-page "https://github.com/mdlincoln/clipr")
     (synopsis "Read and write from the system clipboard")
@@ -113,14 +119,14 @@ are not used.")
 (define-public r-sys
   (package
     (name "r-sys")
-    (version "3.1")
+    (version "3.2")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "sys" version))
        (sha256
         (base32
-         "0aj3wcyah3r7c9s3rbs0c8nifd4vqmkzg9fqkrb7f838ww0qw24q"))))
+         "1k5vk5q9wa5sin0n226i05nymg469s24f6lx64yyhb7yc624j698"))))
     (build-system r-build-system)
     (home-page "https://github.com/jeroen/sys")
     (synopsis "Powerful and reliable tools for running system commands in R")
@@ -236,14 +242,14 @@ single step.")
 (define-public r-rvest
   (package
     (name "r-rvest")
-    (version "0.3.2")
+    (version "0.3.3")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "rvest" version))
        (sha256
         (base32
-         "04mv99z8dixywx96kfy4215g6ib23s7qvd77hcf9pxqxzcvqhvhd"))))
+         "0vsm38w83zf0djcrc5ymb1ysg88hmgq2w937ql7pqgvk5px8f2mi"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-httr" ,r-httr)
@@ -394,13 +400,13 @@ into a pipeline of data manipulation and visualisation.")
 (define-public r-httpuv
   (package
     (name "r-httpuv")
-    (version "1.5.0")
+    (version "1.5.1")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "httpuv" version))
               (sha256
                (base32
-                "19m9514yj5sg0rz1zvi8w1z98srnrql4iirgr794fkaap6bs7i2f"))))
+                "042piypg4c8sqrlcdl3dwajkafkbglsky3x7d0jpjv8s5wxnpfxm"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-bh" ,r-bh)
@@ -786,14 +792,14 @@ application framework for R, making it easy to create attractive dashboards.")
 (define-public r-shinyfiles
   (package
     (name "r-shinyfiles")
-    (version "0.7.2")
+    (version "0.7.3")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "shinyFiles" version))
        (sha256
         (base32
-         "0dlcjrw96x72grg6j915070x8x98l7629pn86gf148iknflm7gd5"))))
+         "01as3l9ffj5dwac0vviais2x5l3027zxlj67kcvkdwxaj5hql33i"))))
     (properties `((upstream-name . "shinyFiles")))
     (build-system r-build-system)
     (propagated-inputs
@@ -889,14 +895,14 @@ work well on small screens.")
 (define-public r-feather
   (package
     (name "r-feather")
-    (version "0.3.2")
+    (version "0.3.3")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "feather" version))
        (sha256
         (base32
-         "138vnlwhkwayyim4rbx6rnf91kzhfij6v2f91ppx2174ky5611h6"))))
+         "0ls8lmygyjq60467s88h66d7fczjp1d3a2106rfq4dx9lyfvdfsa"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-hms" ,r-hms)
@@ -923,8 +929,8 @@ data store designed for maximum speed.")
     (home-page "https://cran.r-project.org/web/packages/maps")
     (synopsis "Draw geographical maps")
     (description "This package provides an R module for display of maps.
-Projection code and larger maps are in separate packages ('mapproj' and
-'mapdata').")
+Projection code and larger maps are in separate packages (@code{mapproj} and
+@code{mapdata}).")
     (license license:gpl2)))
 
 (define-public r-mapproj
@@ -1218,14 +1224,14 @@ error stream.")
 (define-public r-pls
   (package
     (name "r-pls")
-    (version "2.7-0")
+    (version "2.7-1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "pls" version))
        (sha256
         (base32
-         "0xaqqgmdvfh7g7v1m4bcwjqzph68b9cq3bn4kjisfsadl54i5p2x"))))
+         "0jw3zl5z06023zxr74phnvwax8m3i4a4i6lsqiq6j15aq9zq3zgq"))))
     (build-system r-build-system)
     (home-page "http://mevik.net/work/software/pls.html")
     (synopsis "Partial Least Squares and Principal Component Regression")
@@ -1345,9 +1351,9 @@ a seamless integration of R and C++.  Many R data types and objects can be
 mapped back and forth to C++ equivalents which facilitates both writing of new
 code as well as easier integration of third-party libraries.  Documentation
 about Rcpp is provided by several vignettes included in this package, via the
-'Rcpp Gallery' site at <http://gallery.rcpp.org>, the paper by Eddelbuettel
+@code{Rcpp Gallery} site at <http://gallery.rcpp.org>, the paper by Eddelbuettel
 and Francois (2011, JSS), and the book by Eddelbuettel (2013, Springer); see
-'citation(\"Rcpp\")' for details on these last two.")
+@code{citation(\"Rcpp\")} for details on these last two.")
     (license license:gpl2+)))
 
 (define-public r-bindr
@@ -1479,14 +1485,14 @@ validation and filtering on the values, making options invisible or private.")
 (define-public r-circlize
   (package
     (name "r-circlize")
-    (version "0.4.5")
+    (version "0.4.6")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "circlize" version))
        (sha256
         (base32
-         "0qhn9jzw7gd0jp9rmqrlbmy5ql6hjsa68pkp0acfz1h215dl8ah9"))))
+         "1yjnb88pnzk5c1p0vjxykc7cr3394ln5axviqcf12ajibvy8rj6f"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-colorspace" ,r-colorspace)
@@ -1899,14 +1905,14 @@ quantile mixture from L-moments and trimmed L-moments.")
 (define-public r-distillery
   (package
     (name "r-distillery")
-    (version "1.0-4")
+    (version "1.0-6")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "distillery" version))
        (sha256
         (base32
-         "1m0pgmlvk7bsb6q3kxagnq422babk61sf73naavac68v8x2q8fix"))))
+         "1mi3ig9jq0kd7yrwc5m37lmrw04p1b4lirnbsxi10z3n5yay4429"))))
     (build-system r-build-system)
     (home-page "http://www.ral.ucar.edu/staff/ericg")
     (synopsis "Functions for confidence intervals and object information")
@@ -1920,19 +1926,18 @@ SpatialVx.")
 (define-public r-extremes
   (package
     (name "r-extremes")
-    (version "2.0-9")
+    (version "2.0-10")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "extRemes" version))
        (sha256
         (base32
-         "0cpvcajk9xyy7662nqkyx333vrxpwsc5nmv0bfnhsbgijz5y0hvm"))))
+         "08fj72gpq2d6695hbm3cgwgal64z009ykrirby7g6r0akfcsx5ic"))))
     (properties `((upstream-name . "extRemes")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-car" ,r-car)
-       ("r-distillery" ,r-distillery)
+     `(("r-distillery" ,r-distillery)
        ("r-lmoments" ,r-lmoments)))
     (home-page "http://www.assessment.ucar.edu/toolkit/")
     (synopsis "Extreme value analysis")
@@ -1945,14 +1950,14 @@ or excesses over a high threshold.")
 (define-public r-lmtest
   (package
     (name "r-lmtest")
-    (version "0.9-36")
+    (version "0.9-37")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "lmtest" version))
        (sha256
         (base32
-         "0sym9sm1vl6bbgq01jhz1plxqmgh8hrgrn7rw0mwvsalcn6id7xy"))))
+         "02nasm0j2vwkhz11dxqixs23msy1s3yj0jps6949fmgh9gwjkjfx"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-zoo" ,r-zoo)))
@@ -2476,20 +2481,20 @@ to access PostgreSQL database systems.")
 (define-public r-geometry
   (package
     (name "r-geometry")
-    (version "0.4.0")
+    (version "0.4.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "geometry" version))
        (sha256
         (base32
-         "0lpih1a93jz021krdv78zf6fq95g8i0xw4r9aj5gq36a0vzc3i0y"))))
+         "0v3ivaw8vbjyxg08dd573qk3kqfyknj5hli9503dza6p6xz0dzmm"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-magic" ,r-magic)
        ("r-lpsolve" ,r-lpsolve)
        ("r-rcpp" ,r-rcpp)
-       ("r-cppprogress" ,r-rcppprogress)))
+       ("r-rcppprogress" ,r-rcppprogress)))
     (home-page "http://geometry.r-forge.r-project.org/")
     (synopsis "Mesh generation and surface tesselation")
     (description
@@ -2510,14 +2515,14 @@ Delaunay triangulation and convex hull computation.")
 (define-public r-ddalpha
   (package
     (name "r-ddalpha")
-    (version "1.3.8")
+    (version "1.3.9")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "ddalpha" version))
        (sha256
         (base32
-         "0gi0hl14ghgf65zxsvgzh9z6xx1nyi49cpx192lmwrwqn3dy7ba0"))))
+         "1vzs0cvl6xw3h9i00rg3hs02xwgxcnh8326y10kxmhs3qq4m7nb2"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-bh" ,r-bh)
@@ -2588,14 +2593,14 @@ provided.")
 (define-public r-ipred
   (package
     (name "r-ipred")
-    (version "0.9-8")
+    (version "0.9-9")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "ipred" version))
        (sha256
         (base32
-         "01xcg3c121ndfpz9dirqxszknh4yb1p222p7f1wbwwhdrg1i27cw"))))
+         "0vs1hqfx7yd0xdbmfsf2gim7spkni0845cj6gswn0nhdfdq7ma0d"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-class" ,r-class)
@@ -2669,14 +2674,14 @@ by base R methods related to model fitting.")
 (define-public r-broom
   (package
     (name "r-broom")
-    (version "0.5.1")
+    (version "0.5.2")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "broom" version))
        (sha256
         (base32
-         "0bmf38yvwalqf5j5yrr48nsk5k3n75s0gwcw621hp5lgrgvnp7ns"))))
+         "0qmclih5dm5sqzy4hplcfy677kr12pm9pnpv3r319g14dd27pbqn"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-backports" ,r-backports)
@@ -2862,14 +2867,14 @@ with the package @code{optim}.")
 (define-public r-ordinal
   (package
     (name "r-ordinal")
-    (version "2019.3-9")
+    (version "2019.4-25")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "ordinal" version))
        (sha256
         (base32
-         "0xsr2715ghh1q5hjnx7d8lyavzfvpi370blm1xdljn3p4kar8ldi"))))
+         "1pvrkly4x12w32n7w1qljdwzqnlkv7rfa7rx0nz5vbiw29xas4i8"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-mass" ,r-mass)
@@ -3045,14 +3050,14 @@ programming} (SQP) based solver).")
 (define-public r-hardyweinberg
   (package
     (name "r-hardyweinberg")
-    (version "1.6.1")
+    (version "1.6.2")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "HardyWeinberg" version))
        (sha256
         (base32
-         "16n8qanxx0p5ny5zqxafn8hwb1xv94y1wig1iql8as5a5qh8lwcz"))))
+         "15i7b444hikkfgqmx2ki827998xwra38k9v7a7kavwz6zmq5mmv9"))))
     (properties `((upstream-name . "HardyWeinberg")))
     (build-system r-build-system)
     (propagated-inputs
@@ -3312,14 +3317,14 @@ normalizations, minimum variance matching, and so on.")
 (define-public r-sdmtools
   (package
     (name "r-sdmtools")
-    (version "1.1-221")
+    (version "1.1-221.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "SDMTools" version))
        (sha256
         (base32
-         "1kacrpamshv7wz83yn45sfbw4m9c44xrrngzcklnwx8gcxx2knm6"))))
+         "1fsgnlc7glawimzijp11j53g5bnfp1mdq9wb0754idmxcdi8a99q"))))
     (properties `((upstream-name . "SDMTools")))
     (build-system r-build-system)
     (propagated-inputs `(("r-r-utils" ,r-r-utils)))
@@ -3612,14 +3617,14 @@ iVAT).")
 (define-public r-xfun
   (package
     (name "r-xfun")
-    (version "0.5")
+    (version "0.6")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "xfun" version))
        (sha256
         (base32
-         "1wkrapc490r9l9z6mz623zn9ijq64mckc17xg2s7n3s9yaxj98lb"))))
+         "123wmnykmlq9prqx1g9ij9vyqx25pib2jnqjrwy39rfmzbsypbx3"))))
     (build-system r-build-system)
     (home-page "https://github.com/yihui/xfun")
     (synopsis "Miscellaneous functions")
@@ -3696,14 +3701,14 @@ terminals.")
 (define-public r-tinytex
   (package
     (name "r-tinytex")
-    (version "0.11")
+    (version "0.12")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "tinytex" version))
        (sha256
         (base32
-         "017g0niwmx8qafsn9b01gp60j5fgwxch0dnkmjgpxxr1k4h1r64x"))))
+         "03ggxbd4y1ipcmjw5ixa6g6wg4ydargnln7g08bdrdi96zyyq1fh"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-xfun" ,r-xfun)))
@@ -3745,14 +3750,14 @@ published results; and a routine for graphical display.")
 (define-public r-network
   (package
     (name "r-network")
-    (version "1.14-377")
+    (version "1.15")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "network" version))
        (sha256
         (base32
-         "0iiy5n17kysrdfs20zr7qald4lwkvws0axi1qkr8f7vzv7w04g01"))))
+         "1cscw5978fyixhkicf06c4b2g1yf6gyi8vx86cz3dy75d41mrgjw"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-magrittr" ,r-magrittr)
@@ -3944,14 +3949,14 @@ Fisher's method), and Sidak correction.")
 (define-public r-quantmod
   (package
     (name "r-quantmod")
-    (version "0.4-13")
+    (version "0.4-14")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "quantmod" version))
        (sha256
         (base32
-         "16aldg96z7amp5mr90nb8127yy04gxsihfr26km5p3cx3j117yv0"))))
+         "1csljagnpkr1mmc18h70b64zbyj07kx972nip9dng39jfg7ilnyr"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-curl" ,r-curl)
@@ -5176,14 +5181,14 @@ obtain a better initial configuration in non-metric MDS.")
 (define-public r-reticulate
   (package
     (name "r-reticulate")
-    (version "1.11.1")
+    (version "1.12")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "reticulate" version))
        (sha256
         (base32
-         "1cyb92dvv9iibsk28i0gm5hm2xqbsn0y6d67id74c8rhai9y8i9v"))))
+         "0pqr1rcs8yg9nlh729mvlws93cqhpmv49j9bcgarh7vxzkwyv0kb"))))
     (build-system r-build-system)
     (inputs `(("python" ,python)))
     (propagated-inputs
@@ -5484,14 +5489,14 @@ results to the user.")
 (define-public r-hdf5r
   (package
     (name "r-hdf5r")
-    (version "1.0.1")
+    (version "1.2.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "hdf5r" version))
        (sha256
         (base32
-         "0h222q80li8rs3cv4c5lvv3g91ygd51w43ay6fwyk9q9d315vwrj"))))
+         "10gynjwaaxks8y9c2fl8k040j0nbwn372nil70009yfk9wrkx0aq"))))
     (build-system r-build-system)
     (inputs
      `(("hdf5" ,hdf5)
@@ -5534,14 +5539,14 @@ patterned after functions in the snow package.")
 (define-public r-polynom
   (package
     (name "r-polynom")
-    (version "1.3-9")
+    (version "1.4-0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "polynom" version))
        (sha256
         (base32
-         "1s4xxv5rvpigawknvq27v9vzvs83phfsj5h8mim2lmf5bj950nnk"))))
+         "1pflscwc0qzdf0y60j7s0dkglgmz18xajywfbn6s263idyr8idy5"))))
     (build-system r-build-system)
     (home-page "https://cran.r-project.org/web/packages/polynom/")
     (synopsis "Functions for univariate polynomial manipulations")
@@ -5600,14 +5605,14 @@ hierarchical models using Markov Chain Monte Carlo (MCMC) simulation.")
 (define-public r-rdpack
   (package
     (name "r-rdpack")
-    (version "0.10-1")
+    (version "0.11-0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "Rdpack" version))
        (sha256
         (base32
-         "0bbjnw88h54v40hzim00i8yd3p4rk9i84zfdmgcbnylscwvsf0av"))))
+         "11cd27s6zp5cxnwxcvz6rjf00y0r7aq8ywhzwpf1r4xy1z44kd4g"))))
     (properties `((upstream-name . "Rdpack")))
     (build-system r-build-system)
     (propagated-inputs
@@ -5627,14 +5632,14 @@ references and Rd files.")
 (define-public r-officer
   (package
     (name "r-officer")
-    (version "0.3.3")
+    (version "0.3.4")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "officer" version))
        (sha256
         (base32
-         "1ggdp8pbspn24sjshx1h48klivrx401vwk2df49j4wpwxh6dx26y"))))
+         "1m4b3mcn5j5q3nq0jp1nranh4rdb8vxcpabn6ryqk9m6709fvhjz"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-base64enc" ,r-base64enc)
@@ -5815,14 +5820,14 @@ other add-on packages.")
 (define-public r-insight
   (package
     (name "r-insight")
-    (version "0.1.2")
+    (version "0.2.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "insight" version))
        (sha256
         (base32
-         "0cy00j4m9r690hrjdmv8wzwn8mbnkjd3g527nvsmid64h9jgks5f"))))
+         "0fn9cd5qxqlpjv3d05mk66k5z5ll60x5la51mby5h7k4l6bqmsiz"))))
     (build-system r-build-system)
     (home-page "https://easystats.github.io/insight/")
     (synopsis "Easy access to model information for various model objects")
@@ -5947,21 +5952,21 @@ functions.")
 (define-public r-flextable
   (package
     (name "r-flextable")
-    (version "0.5.1")
+    (version "0.5.2")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "flextable" version))
        (sha256
         (base32
-         "0arxgal67ahsq8v0zbvc767qadn7lg3f7mmqa9gjjz6sri0y6gsx"))))
+         "0sabdvkdlx5i1nr7nz68cappwsibzsjxpmiz3yp948ckbfmkdb27"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-data-table" ,r-data-table)
+     `(("r-base64enc" ,r-base64enc)
+       ("r-data-table" ,r-data-table)
        ("r-gdtools" ,r-gdtools)
        ("r-htmltools" ,r-htmltools)
        ("r-knitr" ,r-knitr)
-       ("r-magick" ,r-magick)
        ("r-officer" ,r-officer)
        ("r-rlang" ,r-rlang)
        ("r-rmarkdown" ,r-rmarkdown)
@@ -6054,14 +6059,14 @@ Venn diagram, heatmap).")
 (define-public r-getopt
   (package
     (name "r-getopt")
-    (version "1.20.2")
+    (version "1.20.3")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "getopt" version))
        (sha256
         (base32
-         "13p35lbpy7i578752fa71sbfvcsqw5qfa9p6kf8b5m3c5p9i4v1x"))))
+         "0zzmzgwl9a4y3s34600vmih22d6y32294f9bvxrnmffnvkgmy7sk"))))
     (build-system r-build-system)
     (home-page "https://github.com/trevorld/getopt")
     (synopsis "Command-line option processor for R")
@@ -7188,6 +7193,26 @@ replicating the evaluation as many times as specified, and returning the results
 conveniently wrapped into a data frame.")
     (license license:gpl2+)))
 
+(define-public r-mitools
+  (package
+    (name "r-mitools")
+    (version "2.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "mitools" version))
+       (sha256
+        (base32
+         "0c2x2n1p53lcw0vx4vmy5j7m2f95i7g2iwbryl89imr99rvz617j"))))
+    (build-system r-build-system)
+    (propagated-inputs `(("r-dbi" ,r-dbi)))
+    (home-page "https://cran.r-project.org/web/packages/mitools/")
+    (synopsis "Tools for multiple imputation of missing data")
+    (description
+     "This package provides tools to perform analyses and combine results from
+multiple-imputation datasets.")
+    (license license:gpl2)))
+
 (define-public r-magick
   (package
     (name "r-magick")
@@ -7224,19 +7249,20 @@ console, resulting in an interactive editing environment.")
 (define-public r-survey
   (package
     (name "r-survey")
-    (version "3.35-1")
+    (version "3.36")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "survey" version))
        (sha256
         (base32
-         "1nv4sdfmidvyjgvp3zvn5iw35bb8w0v7095is2pdy8cckkgdvr8i"))))
+         "0xclsy4ram4k48vzh5m5bpmknnpwxnss85v73s4czsjj5ffjxwwh"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-lattice" ,r-lattice)
        ("r-matrix" ,r-matrix)
        ("r-minqa" ,r-minqa)
+       ("r-mitools" ,r-mitools)
        ("r-numderiv" ,r-numderiv)
        ("r-survival" ,r-survival)))
     (home-page "http://r-survey.r-forge.r-project.org/survey/")
@@ -7506,14 +7532,14 @@ observation.")
 (define-public r-sandwich
   (package
     (name "r-sandwich")
-    (version "2.5-0")
+    (version "2.5-1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "sandwich" version))
        (sha256
         (base32
-         "168kq5kk34xbhfsxsanard9zriyp6cw0s09ralzb57kk42pl9hbc"))))
+         "1mk685b9wq7k566pbml52rj96i5h6b3vf215k9picgmq296nzvyv"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-zoo" ,r-zoo)))
@@ -7579,14 +7605,14 @@ Hothorn, Westfall, 2010, CRC Press).")
 (define-public r-emmeans
   (package
     (name "r-emmeans")
-    (version "1.3.3")
+    (version "1.3.4")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "emmeans" version))
        (sha256
         (base32
-         "1hpal1vq6gryzvgfvv9f328idg0mgjvlfnhaj069dhb7zqfwhzlk"))))
+         "09gxphan34c615y4lhjdqkg5cz4ih9b1r3bb4chs3mwmiav1rxqn"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-estimability" ,r-estimability)
@@ -7804,6 +7830,58 @@ Laplace approximation.  Gradients are calculated using automatic
 differentiation.")
     (license license:agpl3+)))
 
+(define-public r-bayestestr
+  (package
+    (name "r-bayestestr")
+    (version "0.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "bayestestR" version))
+       (sha256
+        (base32
+         "1m6gj55z3shm3m3mgqj8nk73wij67y617sl04rbj400wz9qrhfva"))))
+    (properties `((upstream-name . "bayestestR")))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-insight" ,r-insight)))
+    (home-page "https://github.com/easystats/bayestestR")
+    (synopsis "Describe Bayesian models and posterior distributions")
+    (description
+     "This package provides utilities to understand and describe posterior
+distributions and Bayesian models.  It includes point-estimates such as
+@dfn{Maximum A Posteriori} (MAP), measures of dispersion such as @dfn{Highest
+Density Interval} (HDI), and indices used for null-hypothesis testing (such as
+ROPE percentage and pd).")
+    (license license:gpl3)))
+
+(define-public r-performance
+  (package
+    (name "r-performance")
+    (version "0.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "performance" version))
+       (sha256
+        (base32
+         "19lfx25hkavzbycrh6hq4v24a0dz4s60ryq6jyihjlxgrb9g7cnw"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-bayestestr" ,r-bayestestr)
+       ("r-insight" ,r-insight)))
+    (home-page "https://easystats.github.io/performance/")
+    (synopsis "Assessment of regression models performance")
+    (description
+     "This package provides utilities for computing measures to assess model
+quality, which are not directly provided by R's @code{base} or @code{stats}
+packages.  These include e.g. measures like r-squared, intraclass correlation
+coefficient, root mean squared error or functions to check models for
+overdispersion, singularity or zero-inflation and more.  Functions apply to a
+large variety of regression models, including generalized linear models, mixed
+effects models and Bayesian models.")
+    (license license:gpl3)))
+
 (define-public r-ggeffects
   (package
     (name "r-ggeffects")
@@ -7841,29 +7919,32 @@ results using @code{ggplot2}.")
 (define-public r-sjplot
   (package
     (name "r-sjplot")
-    (version "2.6.2")
+    (version "2.6.3")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "sjPlot" version))
        (sha256
         (base32
-         "0x9pbchmz4qf4c9bi52dhhgv1phfj03q1hnxic8vndl6xwib63cy"))))
+         "0h1mkmp5mrkbf7y3zh6m4cnm737cpg1m5si0lrmal7j2ixqicwjy"))))
     (properties `((upstream-name . "sjPlot")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-broom" ,r-broom)
+     `(("r-bayestestr" ,r-bayestestr)
+       ("r-broom" ,r-broom)
        ("r-dplyr" ,r-dplyr)
        ("r-forcats" ,r-forcats)
        ("r-ggeffects" ,r-ggeffects)
        ("r-ggplot2" ,r-ggplot2)
        ("r-glmmtmb" ,r-glmmtmb)
+       ("r-insight" ,r-insight)
        ("r-knitr" ,r-knitr)
        ("r-lme4" ,r-lme4)
        ("r-magrittr" ,r-magrittr)
        ("r-mass" ,r-mass)
        ("r-modelr" ,r-modelr)
        ("r-nlme" ,r-nlme)
+       ("r-performance" ,r-performance)
        ("r-psych" ,r-psych)
        ("r-purrr" ,r-purrr)
        ("r-rlang" ,r-rlang)
@@ -7974,14 +8055,14 @@ terminals that do not support Unicode.")
 (define-public r-usethis
   (package
     (name "r-usethis")
-    (version "1.4.0")
+    (version "1.5.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "usethis" version))
        (sha256
         (base32
-         "1gadckx3sxz9gxvpkprj9x7zcgg2nz5m4q0vi76ya9li1v03rwwn"))))
+         "0pn6ka3726psaqlx573g6nxi90apf0rn5m4k2lz1jr66xdc19sag"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-clipr" ,r-clipr)
@@ -7993,10 +8074,13 @@ terminals that do not support Unicode.")
        ("r-gh" ,r-gh)
        ("r-git2r" ,r-git2r)
        ("r-glue" ,r-glue)
+       ("r-purrr" ,r-purrr)
        ("r-rlang" ,r-rlang)
        ("r-rprojroot" ,r-rprojroot)
        ("r-rstudioapi" ,r-rstudioapi)
-       ("r-whisker" ,r-whisker)))
+       ("r-whisker" ,r-whisker)
+       ("r-withr" ,r-withr)
+       ("r-yaml" ,r-yaml)))
     (home-page "https://github.com/r-lib/usethis")
     (synopsis "Automate R package and project setup")
     (description
@@ -8032,14 +8116,14 @@ more information about packages, and where they were installed from.")
 (define-public r-remotes
   (package
     (name "r-remotes")
-    (version "2.0.2")
+    (version "2.0.4")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "remotes" version))
        (sha256
         (base32
-         "0rsjxmhwpr51ilsdjfqn06mj8yr2d7nckcn3arv1ljn23qfkpcxa"))))
+         "1jbn4kjimcr82zv5lnqxqa2487a96vn6jxf7wc6gnpxr6k06d61p"))))
     (build-system r-build-system)
     (home-page "https://github.com/r-lib/remotes#readme")
     (synopsis "R package installation from remote repositories")
@@ -8156,14 +8240,14 @@ ways.")
 (define-public r-summarytools
   (package
     (name "r-summarytools")
-    (version "0.9.2")
+    (version "0.9.3")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "summarytools" version))
        (sha256
         (base32
-         "1q83kii6prqf9z5v8cxj1q2944kx9x7dcxyqix3m883a94dmgivy"))))
+         "1wfbkgvicaic37zgpr6zcm4a58yx43p59h0sqggdj44ncqs7147f"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-checkmate" ,r-checkmate)
@@ -8176,6 +8260,7 @@ ways.")
        ("r-pryr" ,r-pryr)
        ("r-rapportools" ,r-rapportools)
        ("r-rcurl" ,r-rcurl)
+       ("r-tibble" ,r-tibble)
        ("r-tidyr" ,r-tidyr)))
     (home-page "https://github.com/dcomtois/summarytools")
     (synopsis "Tools to quickly and neatly summarize data")
@@ -8800,14 +8885,14 @@ parametrizations of Nolan.")
 (define-public r-gsl
   (package
     (name "r-gsl")
-    (version "2.1-5")
+    (version "2.1-6")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "gsl" version))
        (sha256
         (base32
-         "18kzgwmyfqg570gn2b33fm6mj87fiaa4a3bx954yrj8iq28im71v"))))
+         "0p4rh7npp6qbfc5sxjq86xjn7c9ivf3pd60qf1hldwckjqin7m7m"))))
     (build-system r-build-system)
     (inputs
      `(("gsl" ,gsl)))
@@ -9206,14 +9291,14 @@ definiteness of a matrix.")
 (define-public r-rspectra
   (package
     (name "r-rspectra")
-    (version "0.13-1")
+    (version "0.14-0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "RSpectra" version))
        (sha256
         (base32
-         "1sw80chwyyjzf5px278l6xmp94yhwrlj5xh8d3wlw3dnvdkycca7"))))
+         "12w5vnz39gyciza0fl7fw4f9i9kjw763h3mvk1sxd97c5dsn26jg"))))
     (properties `((upstream-name . "RSpectra")))
     (build-system r-build-system)
     (propagated-inputs
@@ -9302,14 +9387,14 @@ the first time as the statistic.")
 (define-public r-splitstackshape
   (package
     (name "r-splitstackshape")
-    (version "1.4.6")
+    (version "1.4.8")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "splitstackshape" version))
        (sha256
         (base32
-         "03w6h64ga4zqilffdway4l38l5cbman4yrspkzhbigds12aqz25r"))))
+         "0mpyf2kkfdl69pdc6brl1r6101vyc6pgr7z17s55ppg3y71k4q35"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-data-table" ,r-data-table)))
@@ -10258,14 +10343,14 @@ Differences with other sparse matrix packages are:
 (define-public r-fields
   (package
     (name "r-fields")
-    (version "9.6")
+    (version "9.7")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "fields" version))
        (sha256
         (base32
-         "1v7z48a8jmdcil28rj8c3455k6rssr5v9qi6dyhhpbb193bj8121"))))
+         "0hsr6r0zyv8zqkfyd9fmjk6v901m2r8pmswvsmps6w5zvpi0p5kw"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-maps" ,r-maps)
@@ -10613,14 +10698,14 @@ regression coefficients can be conducted via jackknifing.")
 (define-public r-huge
   (package
     (name "r-huge")
-    (version "1.3.1")
+    (version "1.3.2")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "huge" version))
        (sha256
         (base32
-         "06s22i2cdn6g2r8kq5csyspinayh8dxxg9gkwcf4sa1lmrgb0bf9"))))
+         "1j93gvi1jyq3ld9jhdqhrpm2is54rk3ilmf3yw7fx6gva0y6hjqd"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-igraph" ,r-igraph)
@@ -11586,19 +11671,20 @@ compatible with @code{rzmq} are also provided.")
 (define-public r-repr
   (package
     (name "r-repr")
-    (version "0.19.2")
+    (version "1.0.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "repr" version))
        (sha256
         (base32
-         "1mhhzakkagb8z568yx3p2ixs8fcifm7f8l2yq285zrz8jmnpckfx"))))
+         "0j8z4sl67fgnbywkhgg0bns68mbgf9iqnw4qiym2rjy1b08fpclq"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-base64enc" ,r-base64enc)
        ("r-htmltools" ,r-htmltools)
-       ("r-jsonlite" ,r-jsonlite)))
+       ("r-jsonlite" ,r-jsonlite)
+       ("r-pillar" ,r-pillar)))
     (home-page "https://cran.r-project.org/web/packages/repr/")
     (synopsis "Serializable representations")
     (description
@@ -11632,14 +11718,14 @@ running IRkernel session.")
 (define-public r-irkernel
   (package
     (name "r-irkernel")
-    (version "0.8.15")
+    (version "1.0.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "IRkernel" version))
        (sha256
         (base32
-         "1n0nc3paij8fgbp7l2b4405zk9k4y3gdi2bz6z8x6j0h5mi6k6a6"))))
+         "0i5gpis2g30zi96h9r9awbw4724xd6p4sv8y7shyfzgc4qccpizp"))))
     (properties `((upstream-name . "IRkernel")))
     (build-system r-build-system)
     (arguments
@@ -11801,14 +11887,14 @@ al. (2010).")
 (define-public r-reinforcelearn
   (package
     (name "r-reinforcelearn")
-    (version "0.2.0")
+    (version "0.2.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "reinforcelearn" version))
        (sha256
         (base32
-         "0naakmyb14d2cf7cy5ir52qh3bp51gvs6hyhfi3f72yl2jfnnpzg"))))
+         "176z2q69p24i29a8sh19xxn2zl3h1z2ixdssr5i6m4yvkvdrvv3b"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-checkmate" ,r-checkmate)
@@ -11823,3 +11909,2122 @@ algorithms as described in Sutton & Barto (1998).  The Q-Learning algorithm
 can be used with function approximation, eligibility traces (Singh & Sutton,
 1996) and experience replay (Mnih et al., 2013).")
     (license license:expat)))
+
+(define-public r-lemon
+  (package
+    (name "r-lemon")
+    (version "0.4.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "lemon" version))
+       (sha256
+        (base32
+         "0wsn5bfg10wq4dnrgpyraz2bzx9p19c7hf1pwj3h4zmpqfgsdbpw"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-ggplot2" ,r-ggplot2)
+       ("r-gridextra" ,r-gridextra)
+       ("r-gtable" ,r-gtable)
+       ("r-knitr" ,r-knitr)
+       ("r-lattice" ,r-lattice)
+       ("r-plyr" ,r-plyr)
+       ("r-scales" ,r-scales)))
+    (home-page "https://github.com/stefanedwards/lemon")
+    (synopsis "Freshen up your ggplot2 plots")
+    (description
+     "This package provides functions for working with legends and axis lines
+of ggplot2, facets that repeat axis lines on all panels, and some knitr
+extensions.")
+    (license license:gpl3)))
+
+(define-public r-wgaim
+  (package
+    (name "r-wgaim")
+    (version "1.4-11")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "wgaim" version))
+       (sha256
+        (base32
+         "1jjyp100dcjjczp61xlvhmy48ynniqcys535vzbgswhr7fvijymg"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-lattice" ,r-lattice)
+       ("r-qtl" ,r-qtl)))
+    (home-page "https://cran.r-project.org/web/packages/wgaim")
+    (synopsis "Whole genome average interval mapping for QTL detection")
+    (description
+     "This package integrates sophisticated mixed modelling methods with a
+whole genome approach to detecting significant QTL in linkage maps.")
+    (license license:gpl2+)))
+
+(define-public r-bedr
+  (package
+    (name "r-bedr")
+    (version "1.0.7")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "bedr" version))
+       (sha256
+        (base32
+         "0zpqvyjgwyqawxm8qrhcv8zq2b3yxgcqkkc87br29yrl7sjb8h6j"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-data-table" ,r-data-table)
+       ("r-r-utils" ,r-r-utils)
+       ("r-testthat" ,r-testthat)
+       ("r-venndiagram" ,r-venndiagram)
+       ("r-yaml" ,r-yaml)
+       ("bedops" ,bedops)
+       ("bedtools" ,bedtools)
+       ("htslib" ,htslib))) ; for tabix
+    (native-inputs
+     `(("r-knitr" ,r-knitr))) ; for vignettes
+    (home-page "https://cran.r-project.org/web/packages/bedr")
+    (synopsis "Genomic region processing")
+    (description
+     "This package is for genomic regions processing using command line tools
+such as BEDTools, BEDOPS and Tabix.  These tools offer scalable and efficient
+utilities to perform genome arithmetic e.g indexing, formatting and merging.
+The bedr package's API enhances access to these tools as well as offers
+additional utilities for genomic regions processing.")
+    (license license:gpl2)))
+
+(define-public r-partitions
+  (package
+    (name "r-partitions")
+    (version "1.9-19")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "partitions" version))
+       (sha256
+        (base32
+         "1pklfnjdc094c8nzkqcdvqzdh8v3p5n8jbg4pf9678iw648saiyx"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-gmp" ,r-gmp)
+       ("r-polynom" ,r-polynom)))
+    (home-page "https://cran.r-project.org/web/packages/partitions")
+    (synopsis "Additive partitions of integers")
+    (description
+     "This package provides tools to enumerates the partitions, unequal
+partitions, and restricted partitions of an integer; the three corresponding
+partition functions are also given.")
+    ;; Any version of the GPL
+    (license license:gpl2+)))
+
+(define-public r-brobdingnag
+  (package
+    (name "r-brobdingnag")
+    (version "1.2-6")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "Brobdingnag" version))
+       (sha256
+        (base32
+         "1m3ajvcksqfck5l5hj5xiflj4ry6d896ybv4f0xxks8chgnwmv0r"))))
+    (properties `((upstream-name . "Brobdingnag")))
+    (build-system r-build-system)
+    (home-page "https://github.com/RobinHankin/Brobdingnag.git")
+    (synopsis "Very large numbers in R")
+    (description
+     "This package handles very large numbers in R.  Real numbers are held
+using their natural logarithms, plus a logical flag indicating sign.  The
+package includes a vignette that gives a step-by-step introduction to using S4
+methods.")
+    ;; Any version of the GPL
+    (license license:gpl2+)))
+
+(define-public r-untb
+  (package
+    (name "r-untb")
+    (version "1.7-4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "untb" version))
+       (sha256
+        (base32
+         "1i7m4vfslsix98dwx4jlrsldm7fhhfp25gr7aapcxqxms7ryaby6"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-brobdingnag" ,r-brobdingnag)
+       ("r-partitions" ,r-partitions)
+       ("r-polynom" ,r-polynom)))
+    (home-page "https://github.com/RobinHankin/untb.git")
+    (synopsis "Ecological drift under the UNTB")
+    (description
+     "This package provides numerical simulations, and visualizations, of
+Hubbell's @dfn{Unified Neutral Theory of Biodiversity} (UNTB).")
+    (license license:gpl2+)))
+
+(define-public r-stepwise
+  (package
+    (name "r-stepwise")
+    (version "0.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "stepwise" version))
+       (sha256
+        (base32
+         "1lbx1bxwkf9dw6q46w40pp7h5nkxgghmx8rkpaymm6iybc7gyir2"))))
+    (build-system r-build-system)
+    (home-page "http://stat.sfu.ca/statgen/research/stepwise.html")
+    (synopsis "Stepwise detection of recombination breakpoints")
+    (description
+     "This package provides a stepwise approach to identifying recombination
+breakpoints in a genomic sequence alignment.")
+    (license license:gpl2+)))
+
+(define-public r-snpmaxsel
+  (package
+    (name "r-snpmaxsel")
+    (version "1.0-3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "SNPmaxsel" version))
+       (sha256
+        (base32
+         "0pjvixwqzjd3jwccc8yqq9c76afvbmfq0z1w0cwyj8bblrjpx13z"))))
+    (properties `((upstream-name . "SNPmaxsel")))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-combinat" ,r-combinat)
+       ("r-mvtnorm" ,r-mvtnorm)))
+    (home-page "https://cran.r-project.org/web/packages/SNPmaxsel/index.html")
+    (synopsis "Maximally selected statistics for SNP data")
+    (description
+     "This package implements asymptotic methods related to maximally selected
+statistics, with applications to @dfn{single-nucleotide polymorphism} (SNP)
+data.")
+    (license license:gpl2+)))
+
+(define-public r-acsnminer
+  (package
+    (name "r-acsnminer")
+    (version "0.16.8.25")
+    (source (origin
+              (method url-fetch)
+              (uri (cran-uri "ACSNMineR" version))
+              (sha256
+               (base32
+                "0gh604s8qall6zfjlwcg2ilxjvz08dplf9k5g47idhv43scm748l"))))
+    (properties `((upstream-name . "ACSNMineR")))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-ggplot2" ,r-ggplot2)
+       ("r-gridextra" ,r-gridextra)))
+    (home-page "https://cran.r-project.org/web/packages/ACSNMineR")
+    (synopsis "Gene enrichment analysis")
+    (description
+     "This package provides tools to compute and represent gene set enrichment
+or depletion from your data based on pre-saved maps from the @dfn{Atlas of
+Cancer Signalling Networks} (ACSN) or user imported maps.  The gene set
+enrichment can be run with hypergeometric test or Fisher exact test, and can
+use multiple corrections.  Visualization of data can be done either by
+barplots or heatmaps.")
+    (license license:gpl2+)))
+
+(define-public r-seqinr
+  (package
+    (name "r-seqinr")
+    (version "3.4-5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "seqinr" version))
+       (sha256
+        (base32
+         "17zv0n5cji17izwmwg0jcbxbjl3w5rls91w15svcnlpxjms38ahn"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-ade4" ,r-ade4)
+       ("r-segmented" ,r-segmented)))
+    (inputs
+     `(("zlib" ,zlib)))
+    (home-page "http://seqinr.r-forge.r-project.org/")
+    (synopsis "Biological sequences retrieval and analysis")
+    (description
+     "This package provides tools for exploratory data analysis and data
+visualization of biological sequence (DNA and protein) data.  It also includes
+utilities for sequence data management under the ACNUC system.")
+    (license license:gpl2+)))
+
+(define-public r-units
+  (package
+    (name "r-units")
+    (version "0.6-2")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (cran-uri "units" version))
+        (sha256
+          (base32
+            "0w7iwp8c66d5gj4rsb8c87vb0ja39hym6fmfnqaqwb3is1snfa2y"))))
+    (build-system r-build-system)
+    (inputs
+     `(("udunits" ,udunits)))
+    (propagated-inputs
+     `(("r-rcpp" ,r-rcpp)))
+    (home-page "https://github.com/r-quantities/units/")
+    (synopsis "Measurement Units for R Vectors")
+    (description
+      "This package provides support for measurement units in R vectors,
+matrices and arrays: automatic propagation, conversion, derivation and
+simplification of units; raising errors in case of unit incompatibility.  It
+is compatible with the @code{POSIXct}, @code{Date} and @code{difftime}
+classes.")
+    (license license:gpl2)))
+
+(define-public r-classint
+  (package
+    (name "r-classint")
+    (version "0.3-3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "classInt" version))
+       (sha256
+        (base32
+         "0c2z6shlxa928xa20yl956r06lx20mji3mwipdvmj3f4z5g6hgm9"))))
+    (properties `((upstream-name . "classInt")))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-class" ,r-class)
+       ("r-e1071" ,r-e1071)
+       ("r-kernsmooth" ,r-kernsmooth)))
+    (native-inputs `(("gfortran" ,gfortran)))
+    (home-page "https://github.com/r-spatial/classInt/")
+    (synopsis "Choose univariate class intervals")
+    (description
+     "This package provides selected commonly used methods for choosing
+univariate class intervals for mapping or other graphics purposes.")
+    (license license:gpl2+)))
+
+(define-public r-spdata
+  (package
+    (name "r-spdata")
+    (version "0.3.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "spData" version))
+       (sha256
+        (base32
+         "162cqb331ki43jx4r8lpkjpn2l712figd896rnawg9j1jmjyl96y"))))
+    (properties `((upstream-name . "spData")))
+    (build-system r-build-system)
+    (home-page "https://github.com/Nowosad/spData")
+    (synopsis "Datasets for spatial analysis")
+    (description
+     "This a package containing diverse spatial datasets for demonstrating,
+benchmarking and teaching spatial data analysis.  It includes R data of class
+@code{sf}, @code{Spatial}, and @code{nb}.  It also contains data stored in a
+range of file formats including GeoJSON, ESRI Shapefile and GeoPackage.  Some
+of the datasets are designed to illustrate specific analysis techniques.
+@code{cycle_hire()} and @code{cycle_hire_osm()}, for example, are designed to
+illustrate point pattern analysis techniques.")
+    (license license:cc0)))
+
+(define-public r-learnbayes
+  (package
+    (name "r-learnbayes")
+    (version "2.15.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "LearnBayes" version))
+       (sha256
+        (base32
+         "0ch54v2zz2yyyk0lvn5rfikdmyz1qh9j1wk3585wl8v58mc0h4cv"))))
+    (properties `((upstream-name . "LearnBayes")))
+    (build-system r-build-system)
+    (home-page "https://cran.r-project.org/web/packages/LearnBayes")
+    (synopsis "Functions for learning Bayesian inference")
+    (description
+     "This package provides a collection of functions helpful in learning the
+basic tenets of Bayesian statistical inference.  It contains functions for
+summarizing basic one and two parameter posterior distributions and predictive
+distributions.  It contains MCMC algorithms for summarizing posterior
+distributions defined by the user.  It also contains functions for regression
+models, hierarchical models, Bayesian tests, and illustrations of Gibbs
+sampling.")
+    (license license:gpl2+)))
+
+(define-public r-deldir
+  (package
+    (name "r-deldir")
+    (version "0.1-16")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "deldir" version))
+       (sha256
+        (base32
+         "0549kj0hlkdyvm5axsm3np30wg53fm2pxybijzw0avlgsd2y2n2q"))))
+    (build-system r-build-system)
+    (native-inputs `(("gfortran" ,gfortran)))
+    (home-page "https://cran.r-project.org/web/packages/deldir")
+    (synopsis "Delaunay triangulation and Dirichlet (Voronoi) tessellation")
+    (description
+     "This package provides tools for calculating the Delaunay triangulation
+and the Dirichlet or Voronoi tessellation (with respect to the entire plane)
+of a planar point set.  It plots triangulations and tessellations in various
+ways, clips tessellations to sub-windows, calculates perimeters of
+tessellations, and summarizes information about the tiles of the
+tessellation.")
+    (license license:gpl2+)))
+
+(define-public r-sf
+  (package
+    (name "r-sf")
+    (version "0.7-4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "sf" version))
+       (sha256
+        (base32
+         "0vnyr7xyfcl928kbrb1k8l4fkd0cjrfq486g6gxpvy5j0cc2h4i1"))))
+    (build-system r-build-system)
+    (inputs
+     `(("gdal" ,gdal)
+       ("geos" ,geos)
+       ("proj" ,proj.4)
+       ("zlib" ,zlib)))
+    (propagated-inputs
+     `(("r-classint" ,r-classint)
+       ("r-dbi" ,r-dbi)
+       ("r-magrittr" ,r-magrittr)
+       ("r-rcpp" ,r-rcpp)
+       ("r-units" ,r-units)))
+    (native-inputs `(("pkg-config" ,pkg-config)))
+    (home-page "https://github.com/r-spatial/sf/")
+    (synopsis "Simple features for R")
+    (description
+     "This package provides support for simple features, a standardized way to
+encode spatial vector data.  It binds to GDAL for reading and writing data, to
+GEOS for geometrical operations, and to PROJ for projection conversions and
+datum transformations.")
+    ;; Either of these licenses
+    (license (list license:gpl2 license:expat))))
+
+(define-public r-spdep
+  (package
+    (name "r-spdep")
+    (version "1.1-2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "spdep" version))
+       (sha256
+        (base32
+         "06mk81kc1ml2wjc8wwwgr0wasjcr4mwrxpfa8vfc373bmnha635s"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-boot" ,r-boot)
+       ("r-coda" ,r-coda)
+       ("r-deldir" ,r-deldir)
+       ("r-expm" ,r-expm)
+       ("r-gmodels" ,r-gmodels)
+       ("r-learnbayes" ,r-learnbayes)
+       ("r-mass" ,r-mass)
+       ("r-matrix" ,r-matrix)
+       ("r-nlme" ,r-nlme)
+       ("r-sf" ,r-sf)
+       ("r-sp" ,r-sp)
+       ("r-spdata" ,r-spdata)))
+    (home-page "https://github.com/r-spatial/spdep/")
+    (synopsis "Spatial dependence: weighting schemes, statistics and models")
+    (description
+     "This package provides a collection of functions to create spatial
+weights matrix objects from polygon contiguities, from point patterns by
+distance and tessellations, for summarizing these objects, and for permitting
+their use in spatial data analysis, including regional aggregation by minimum
+spanning tree.")
+    (license license:gpl2+)))
+
+(define-public r-adegenet
+  (package
+    (name "r-adegenet")
+    (version "2.1.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "adegenet" version))
+       (sha256
+        (base32
+         "0ynfblp0hbd3dp3k86fn1wyhqr28lk6hs2bg4q7gyf0sfdfzwhrh"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-ade4" ,r-ade4)
+       ("r-ape" ,r-ape)
+       ("r-boot" ,r-boot)
+       ("r-dplyr" ,r-dplyr)
+       ("r-ggplot2" ,r-ggplot2)
+       ("r-igraph" ,r-igraph)
+       ("r-mass" ,r-mass)
+       ("r-reshape2" ,r-reshape2)
+       ("r-seqinr" ,r-seqinr)
+       ("r-shiny" ,r-shiny)
+       ("r-spdep" ,r-spdep)
+       ("r-vegan" ,r-vegan)))
+    (home-page "https://github.com/thibautjombart/adegenet")
+    (synopsis "Exploratory analysis of genetic and genomic data")
+    (description
+     "This package provides a toolset for the exploration of genetic and
+genomic data.  Adegenet provides formal (S4) classes for storing and handling
+various genetic data, including genetic markers with varying ploidy and
+hierarchical population structure (@code{genind} class), alleles counts by
+populations (@code{genpop}), and genome-wide SNP data (@code{genlight}).  It
+also implements original multivariate methods (DAPC, sPCA), graphics,
+statistical tests, simulation tools, distance and similarity measures, and
+several spatial methods.  A range of both empirical and simulated datasets is
+also provided to illustrate various methods.")
+    (license license:gpl2+)))
+
+(define-public r-pegas
+  (package
+    (name "r-pegas")
+    (version "0.11")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "pegas" version))
+       (sha256
+        (base32
+         "0l21bapzbjcvblbvks3jh9rpy9hng1ccd7f0glhqw695lc737bpx"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-adegenet" ,r-adegenet)
+       ("r-ape" ,r-ape)))
+    (home-page "http://ape-package.ird.fr/pegas.html")
+    (synopsis "Population and evolutionary genetics analysis system")
+    (description
+     "This package provides functions for reading, writing, plotting,
+analysing, and manipulating allelic and haplotypic data, including from VCF
+files, and for the analysis of population nucleotide sequences and
+micro-satellites including coalescent analyses, linkage disequilibrium,
+population structure (Fst, Amova) and equilibrium (HWE), haplotype networks,
+minimum spanning tree and network, and median-joining networks.")
+    (license license:gpl2+)))
+
+(define-public r-rmetasim
+  (package
+    (name "r-rmetasim")
+    (version "3.1.7")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "rmetasim" version))
+       (sha256
+        (base32
+         "0sz4mdprdi6sgkfwfdvh2hr9nxiwq17sw0vggq3cvs7lzb0i6m9r"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-ade4" ,r-ade4)
+       ("r-adegenet" ,r-adegenet)
+       ("r-gtools" ,r-gtools)
+       ("r-pegas" ,r-pegas)))
+    (home-page "https://cran.r-project.org/web/packages/rmetasim")
+    (synopsis "Individual-based population genetic simulation environment")
+    (description
+     "This package provides an interface between R and the metasim simulation
+engine.  The simulation environment is documented in: Strand, A.(2002),
+Metasim 1.0: an individual-based environment for simulating population
+genetics of complex population dynamics.")
+    ;; Any GPL version
+    (license license:gpl2+)))
+
+(define-public r-genetics
+  (package
+    (name "r-genetics")
+    (version "1.3.8.1.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "genetics" version))
+       (sha256
+        (base32
+         "1v0ylnia6c44v356dsmnkx6054vcxazpzsrdh3yph5ch5vg6gjrh"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-combinat" ,r-combinat)
+       ("r-gdata" ,r-gdata)
+       ("r-gtools" ,r-gtools)
+       ("r-mass" ,r-mass)
+       ("r-mvtnorm" ,r-mvtnorm)))
+    (home-page "https://cran.r-project.org/web/packages/genetics/")
+    (synopsis "Population genetics")
+    (description
+     "This package provides classes and methods for handling genetic data.
+It includes classes to represent genotypes and haplotypes at single markers up
+to multiple markers on multiple chromosomes.  Function include allele
+frequencies, flagging homo/heterozygotes, flagging carriers of certain
+alleles, estimating and testing for Hardy-Weinberg disequilibrium, estimating
+and testing for linkage disequilibrium, ...")
+    ;; Any GPL version.
+    (license license:gpl2+)))
+
+(define-public r-snp-plotter
+  (package
+    (name "r-snp-plotter")
+    (version "0.5.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "snp.plotter" version))
+       (sha256
+        (base32
+         "16apsqvkah5l0d5qcwp3lq2jspkb6n62wzr0wskmj84jblx483vv"))))
+    (properties `((upstream-name . "snp.plotter")))
+    (build-system r-build-system)
+    (propagated-inputs `(("r-genetics" ,r-genetics)))
+    (home-page "https://cran.r-project.org/web/packages/snp.plotter/")
+    (synopsis "Plot p-values using single SNP and/or haplotype data")
+    (description
+     "This package helps you create plots of p-values using single SNP and/or
+haplotype data.  Main features of the package include options to display a
+@dfn{linkage disequilibrium} (LD) plot and the ability to plot multiple
+datasets simultaneously.  Plots can be created using global and/or individual
+haplotype p-values along with single SNP p-values.  Images are created as
+either PDF/EPS files.")
+    (license license:gpl2+)))
+
+(define-public r-polspline
+  (package
+    (name "r-polspline")
+    (version "1.1.14")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "polspline" version))
+       (sha256
+        (base32
+         "0g4s5nwi13yfs6b169yw8vrs48nvjyc014k2v7ybcxarl8z81va0"))))
+    (build-system r-build-system)
+    (native-inputs `(("gfortran" ,gfortran)))
+    (home-page "https://cran.r-project.org/web/packages/polspline/")
+    (synopsis "Polynomial spline routines")
+    (description
+     "This package provides routines for the polynomial spline fitting
+routines hazard regression, hazard estimation with flexible tails, logspline,
+lspec, polyclass, and polymars.")
+    (license license:gpl2+)))
+
+(define-public r-rms
+  (package
+    (name "r-rms")
+    (version "5.1-3.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "rms" version))
+       (sha256
+        (base32
+         "0drbr3g0x5pbxyzy50wnf92rbal8izizrcqslqhg0gsfg9adjih9"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-ggplot2" ,r-ggplot2)
+       ("r-hmisc" ,r-hmisc)
+       ("r-htmltable" ,r-htmltable)
+       ("r-htmltools" ,r-htmltools)
+       ("r-lattice" ,r-lattice)
+       ("r-multcomp" ,r-multcomp)
+       ("r-nlme" ,r-nlme)
+       ("r-polspline" ,r-polspline)
+       ("r-quantreg" ,r-quantreg)
+       ("r-rpart" ,r-rpart)
+       ("r-sparsem" ,r-sparsem)
+       ("r-survival" ,r-survival)))
+    (native-inputs `(("gfortran" ,gfortran)))
+    (home-page "http://biostat.mc.vanderbilt.edu/rms")
+    (synopsis "Regression modeling strategies")
+    (description
+     "This is a package for regression modeling, testing, estimation,
+validation, graphics, prediction, and typesetting by storing enhanced model
+design attributes in the fit.  The rms package is a collection of functions
+that assist with and streamline modeling.  It also contains functions for
+binary and ordinal logistic regression models, ordinal models for continuous Y
+with a variety of distribution families, and the Buckley-James multiple
+regression model for right-censored responses, and implements penalized
+maximum likelihood estimation for logistic and ordinary linear models.  The
+package works with almost any regression model, but it was especially written
+to work with binary or ordinal regression models, Cox regression, accelerated
+failure time models, ordinary linear models, the Buckley-James model,
+generalized least squares for serially or spatially correlated observations,
+generalized linear models, and quantile regression.")
+    (license license:gpl2+)))
+
+(define-public r-haplo-stats
+  (package
+    (name "r-haplo-stats")
+    (version "1.7.9")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "haplo.stats" version))
+       (sha256
+        (base32
+         "19kxascqq5qz0zdxx0w837ji207y1z2ggxkl4vmlbay03k2dw2mx"))))
+    (properties `((upstream-name . "haplo.stats")))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("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")
+    (synopsis "Analysis of haplotypes when linkage phase is ambiguous")
+    (description
+     "This package provides routines for the analysis of indirectly measured
+haplotypes.  The statistical methods assume that all subjects are unrelated
+and that haplotypes are ambiguous (due to unknown linkage phase of the genetic
+markers).  The main functions are: @code{haplo.em()}, @code{haplo.glm()},
+@code{haplo.score()}, and @code{haplo.power()}; all of which have detailed
+examples in the vignette.")
+    (license license:gpl2+)))
+
+(define-public r-bqtl
+  (package
+    (name "r-bqtl")
+    (version "1.0-32")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "bqtl" version))
+       (sha256
+        (base32
+         "0jjqgsm9fmvz5nkgz608xfljjpmaf4rs4f7kxvpqn4b1l9s5lhci"))))
+    (build-system r-build-system)
+    (native-inputs `(("gfortran" ,gfortran)))
+    (home-page "http://famprevmed.ucsd.edu/faculty/cberry/bqtl/")
+    (synopsis "Bayesian QTL mapping toolkit")
+    (description
+     "This is a QTL mapping toolkit for inbred crosses and recombinant inbred
+lines.  It includes maximum likelihood and Bayesian tools.")
+    (license license:gpl2+)))
+
+(define-public r-ibdreg
+  (package
+    (name "r-ibdreg")
+    (version "0.2.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "ibdreg" version))
+       (sha256
+        (base32
+         "1kaa5q1byi30wzr0mw4w2cv1ssxprzcwf91wrpqwkgcsdy7dkh2g"))))
+    (build-system r-build-system)
+    (home-page "https://www.mayo.edu/research/labs/\
+statistical-genetics-genetic-epidemiology/software")
+    (synopsis "Regression methods for IBD linkage with covariates")
+    (description
+     "This package provides a method to test genetic linkage with covariates
+by regression methods with response IBD sharing for relative pairs.  Account
+for correlations of IBD statistics and covariates for relative pairs within
+the same pedigree.")
+    (license license:gpl2+)))
+
+(define-public r-dlmap
+  (package
+    (name "r-dlmap")
+    (version "1.13")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "dlmap" version))
+       (sha256
+        (base32
+         "0s6wlkggkm3qndwyvw72xv1n0mcjb7ss3ajbq2ll6rv30splq0db"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-ibdreg" ,r-ibdreg)
+       ("r-mgcv" ,r-mgcv)
+       ("r-nlme" ,r-nlme)
+       ("r-qtl" ,r-qtl)
+       ("r-wgaim" ,r-wgaim)))
+    (home-page "https://cran.r-project.org/web/packages/dlmap/")
+    (synopsis "Detection localization mapping for QTL")
+    (description
+     "This is package for QTL mapping in a mixed model framework with separate
+detection and localization stages.  The first stage detects the number of QTL
+on each chromosome based on the genetic variation due to grouped markers on
+the chromosome; the second stage uses this information to determine the most
+likely QTL positions.  The mixed model can accommodate general fixed and
+random effects, including spatial effects in field trials and pedigree
+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-5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "LDheatmap" version))
+       (sha256
+        (base32
+         "0il3g3n3bzv74lz7dlhyiwc2x2417v6yhx2g47pahxdzqa09kf4s"))))
+    (properties `((upstream-name . "LDheatmap")))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-genetics" ,r-genetics)
+       ("r-snpstats" ,r-snpstats)))
+    (home-page "http://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")
+    (version "0.67")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "hwde" version))
+       (sha256
+        (base32
+         "0wb2f9i5qi7w77ygh8bvydfpr7j5x8dyvnnhdkajaz0wdcpkyaqy"))))
+    (build-system r-build-system)
+    (home-page "https://cran.r-project.org/web/packages/hwde/")
+    (synopsis "Models and tests for departure from Hardy-Weinberg equilibrium")
+    (description
+     "This package fits models for genotypic disequilibria, as described in
+Huttley and Wilson (2000), Weir (1996) and Weir and Wilson (1986).  Contrast
+terms are available that account for first order interactions between loci.
+It also implements, for a single locus in a single population, a conditional
+exact test for Hardy-Weinberg equilibrium.")
+    (license license:gpl2+)))
+
+(define-public r-tdthap
+  (package
+    (name "r-tdthap")
+    (version "1.1-9")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "tdthap" version))
+       (sha256
+        (base32
+         "0y01x0hcf0rw06cpn4pk17b0shf4v2c9was7vfs0zhsbq8qcwx7r"))))
+    (build-system r-build-system)
+    (home-page "https://cran.r-project.org/web/packages/tdthap/")
+    (synopsis "TDT tests for extended haplotypes")
+    (description
+     "Functions and examples are provided for transmission/disequilibrium
+tests for extended marker haplotypes, as in Clayton, D. and Jones, H. (1999)
+\"Transmission/disequilibrium tests for extended marker haplotypes\".")
+    (license license:artistic2.0)))
+
+(define-public r-sparql
+  (package
+    (name "r-sparql")
+    (version "1.16")
+    (source (origin
+              (method url-fetch)
+              (uri (cran-uri "SPARQL" version))
+              (sha256
+               (base32
+                "0gak1q06yyhdmcxb2n3v0h9gr1vqd0viqji52wpw211qp6r6dcrc"))))
+    (properties `((upstream-name . "SPARQL")))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-rcurl" ,r-rcurl)
+       ("r-xml" ,r-xml)))
+    (home-page "https://cran.r-project.org/web/packages/SPARQL")
+    (synopsis "SPARQL client for R")
+    (description "This package provides an interface to use SPARQL to pose
+SELECT or UPDATE queries to an end-point.")
+    ;; The only license indication is found in the DESCRIPTION file,
+    ;; which states GPL-3.  So we cannot assume GPLv3+.
+    (license license:gpl3)))
+
+(define-public r-bookdown
+  (package
+    (name "r-bookdown")
+    (version "0.9")
+    (source (origin
+              (method url-fetch)
+              (uri (cran-uri "bookdown" version))
+              (sha256
+               (base32
+                "0vg1s1w0l9pm95asqb21yf39mfk1nc9rdhmlys9xwr7p7i7rsz32"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-htmltools" ,r-htmltools)
+       ("r-knitr" ,r-knitr)
+       ("r-rmarkdown" ,r-rmarkdown)
+       ("r-tinytex" ,r-tinytex)
+       ("r-yaml" ,r-yaml)
+       ("r-xfun" ,r-xfun)))
+    (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
+authoring books and technical documents with R Markdown.")
+    (license license:gpl3)))
+
+(define-public r-optparse
+  (package
+    (name "r-optparse")
+    (version "1.6.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "optparse" version))
+       (sha256
+        (base32
+         "0zrp6jakjhawrwfri270ym83vj5a7nvjk0w6b41z41ahw2da99dm"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-getopt" ,r-getopt)))
+    (home-page "https://github.com/trevorld/optparse")
+    (synopsis "Command line option parser")
+    (description
+     "This package provides a command line parser inspired by Python's
+@code{optparse} library to be used with Rscript to write shebang scripts
+that accept short and long options.")
+    (license license:gpl2+)))
+
+(define-public r-wgcna
+  (package
+    (name "r-wgcna")
+    (version "1.67")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "WGCNA" version))
+       (sha256
+        (base32
+         "09387w85lxvwr8ax2i2h602b4dgfv4wbvsl9aj1q0b1vfs4rkk69"))))
+    (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-robust" ,r-robust)
+       ("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")
+    (version "0.9-27")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "kernlab" version))
+       (sha256
+        (base32
+         "1m0xqf6gyvwayz7w3c83y32ayvnlz0jicj8ijk808zq9sh7dbbgn"))))
+    (build-system r-build-system)
+    (home-page "https://cran.r-project.org/web/packages/kernlab")
+    (synopsis "Kernel-based machine learning tools")
+    (description
+     "This package provides kernel-based machine learning methods for
+classification, regression, clustering, novelty detection, quantile regression
+and dimensionality reduction.  Among other methods @code{kernlab} includes
+Support Vector Machines, Spectral Clustering, Kernel PCA, Gaussian Processes
+and a QP solver.")
+    (license license:gpl2)))
+
+(define-public r-hierfstat
+  (package
+    (name "r-hierfstat")
+    (version "0.04-22")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "hierfstat" version))
+       (sha256
+        (base32
+         "1fav2v2996v5kb1ffa6v5wxfm921syxg6as034vd3j4jfhdibyfx"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-ade4" ,r-ade4)
+       ("r-adegenet" ,r-adegenet)
+       ("r-gtools" ,r-gtools)))
+    (home-page "https://cran.r-project.org/web/packages/hierfstat/")
+    (synopsis "Estimation and tests of hierarchical F-statistics")
+    (description
+     "This package allows the estimation of hierarchical F-statistics from
+haploid or diploid genetic data with any numbers of levels in the hierarchy,
+following the algorithm of Yang (Evolution, 1998, 52(4):950-956).  Functions
+are also given to test via randomisations the significance of each F and
+variance components, using the likelihood-ratio statistics G.")
+    (license license:gpl2+)))
+
+(define-public r-hapassoc
+  (package
+    (name "r-hapassoc")
+    (version "1.2-8")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "hapassoc" version))
+       (sha256
+        (base32
+         "0qs5jl0snzfchgpp6pabncwywxcmi743g91jvjiyyzw0lw85yv4s"))))
+    (build-system r-build-system)
+    (home-page "http://stat.sfu.ca/statgen/research/hapassoc.html")
+    (synopsis "Inference of trait associations with SNP haplotypes")
+    (description
+     "Hapassoc performs likelihood inference of trait associations with
+haplotypes and other covariates in @dfn{generalized linear models} (GLMs). The
+functions are developed primarily for data collected in cohort or
+cross-sectional studies.  They can accommodate uncertain haplotype phase and
+handle missing genotypes at some SNPs.")
+    (license license:gpl2)))
+
+(define-public r-sampling
+  (package
+    (name "r-sampling")
+    (version "2.8")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "sampling" version))
+       (sha256
+        (base32
+         "06pj7dan0mknpsblmlnk7am78qrnwgnql5vvx7vmbfvib7rj6s9m"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-lpsolve" ,r-lpsolve)
+       ("r-mass" ,r-mass)))
+    (home-page "https://cran.r-project.org/web/packages/sampling/")
+    (synopsis "Survey sampling")
+    (description
+     "This package provides functions for drawing and calibrating samples.")
+    (license license:gpl2+)))
+
+(define-public r-r2html
+  (package
+    (name "r-r2html")
+    (version "2.3.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "R2HTML" version))
+       (sha256
+        (base32
+         "00kxny7hajs9r2kw63qk7d03ggdxx2j1g8vbrmzp806y8aczvik9"))))
+    (properties `((upstream-name . "R2HTML")))
+    (build-system r-build-system)
+    (home-page "https://github.com/nalimilan/R2HTML")
+    (synopsis "HTML export for R objects")
+    (description
+     "This package includes HTML functions and methods to write in an HTML
+file.  Thus, making HTML reports is easy.  It includes a function that allows
+redirection on the fly, which appears to be very useful for teaching purposes,
+as the student can keep a copy of the produced output to keep all that they
+did during the course.  The package comes with a vignette describing how to
+write HTML reports for statistical analysis.  Finally, a driver for Sweave
+allows to parse HTML flat files containing R code and to automatically write
+the corresponding outputs (tables and graphs).")
+    (license license:gpl2+)))
+
+(define-public r-rjava
+  (package
+    (name "r-rjava")
+    (version "0.9-11")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "rJava" version))
+       (sha256
+        (base32
+         "0s9cjy1wh7snmbqwznh8f1r4ipylr7mgda4a979z963a8lqy32n2"))))
+    (properties `((upstream-name . "rJava")))
+    (build-system r-build-system)
+    (arguments
+     `(#:modules ((guix build utils)
+                  (guix build r-build-system)
+                  (ice-9 match))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'set-JAVA_HOME
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let ((jdk (assoc-ref inputs "jdk")))
+               (setenv "JAVA_HOME" jdk)
+               (setenv "JAVA" (which "java"))
+               (setenv "JAR" (which "jar"))
+               (setenv "JAVAC" (which "javac"))
+               (setenv "JAVAH" (which "javah"))
+               (setenv "JAVA_CPPFLAGS"
+                       (string-append "-I" jdk "/include "
+                                      "-I" jdk "/include/linux"))
+               (match (find-files (string-append jdk "/jre/lib/") "libjvm.so")
+                 ((lib) (setenv "JAVA_LIBS" lib))
+                 (_ (error "Could not find libjvm.so"))))
+             #t)))))
+    (inputs
+     `(("icu4c" ,icu4c)
+       ("jdk" ,icedtea-8 "jdk")
+       ("pcre" ,pcre)
+       ("zlib" ,zlib)))
+    (home-page "http://www.rforge.net/rJava/")
+    (synopsis "Low-Level R to Java interface")
+    (description
+     "This package provides a low-level interface to the Java VM very much
+like .C/.Call and friends.  It allows the creation of objects, calling methods
+and accessing fields.")
+    (license license:gpl2)))
+
+(define-public r-svmisc
+  (package
+    (name "r-svmisc")
+    (version "1.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "svMisc" version))
+       (sha256
+        (base32
+         "01r2a73wx2sh1njky961fxabx5wgddqqjqba6vjg0f3h8r3abmn2"))))
+    (properties `((upstream-name . "svMisc")))
+    (build-system r-build-system)
+    (home-page "https://github.com/SciViews/svMisc")
+    (synopsis "Miscellaneous functions for SciViews")
+    (description
+     "This package provides miscellaneous functions for SciViews or general
+use, including tools to manage a temporary environment attached to the search
+path for temporary variables you do not want to @code{save()} or
+@code{load()}; test the current platform; showing progress bars, etc.")
+    (license license:gpl2)))
+
+(define-public r-xyz
+  (package
+    (name "r-xyz")
+    (version "0.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "xyz" version))
+       (sha256
+        (base32
+         "13w4sb4pvgciwr8wsz785dafj2k2kpx7znz46r5d32wx88vkycp4"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-rcpp" ,r-rcpp)))
+    (home-page "https://cran.r-project.org/web/packages/xyz/")
+    (synopsis "Algorithm for fast interaction search in high-dimensional data")
+    (description
+     "High dimensional interaction search by brute force requires a quadratic
+computational cost in the number of variables.  The xyz algorithm provably
+finds strong interactions in almost linear time.  For details of the algorithm
+see: G. Thanei, N. Meinshausen and R. Shah (2016).  The xyz algorithm for fast
+interaction search in high-dimensional data.")
+    ;; Any version of the GPL.
+    (license license:gpl2+)))
+
+(define-public r-rttf2pt1
+  (package
+    (name "r-rttf2pt1")
+    (version "1.3.7")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "Rttf2pt1" version))
+       (sha256
+        (base32
+         "12hf9r3mhjr9sawdvf7qhjf1zph2q64f77i81jwvy7awidbm0kja"))))
+    (properties `((upstream-name . "Rttf2pt1")))
+    (build-system r-build-system)
+    (home-page "https://github.com/wch/Rttf2pt1")
+    (synopsis "Font conversion utility")
+    (description
+     "This package contains the program @code{ttf2pt1}, for use with the
+@code{extrafont} package.")
+    ;; Most of the files are covered under the Expat license.  Some files are
+    ;; covered under BSD-3.  Deviations for individual files are recorded in
+    ;; the LICENSE file.
+    (license (list license:bsd-3 license:expat
+                   (license:non-copyleft "file://LICENSE")))))
+
+(define-public r-extrafontdb
+  (package
+    (name "r-extrafontdb")
+    (version "1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "extrafontdb" version))
+       (sha256
+        (base32
+         "115n42hfvv5h4nn4cfkfmkmn968py4lpy8zd0d6w5yylwpzbm8gs"))))
+    (build-system r-build-system)
+    (home-page "https://github.com/wch/extrafontdb")
+    (synopsis "Database for the extrafont package")
+    (description
+     "This package holds the database for the @code{extrafont} package.")
+    (license license:gpl2)))
+
+(define-public r-extrafont
+  (package
+    (name "r-extrafont")
+    (version "0.17")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "extrafont" version))
+       (sha256
+        (base32
+         "0b9k2n9sk23bh45hjgnkxpjyvpdrz1hx7kmxvmb4nhlhm1wpsv9g"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-extrafontdb" ,r-extrafontdb)
+       ("r-rttf2pt1" ,r-rttf2pt1)))
+    (home-page "https://github.com/wch/extrafont")
+    (synopsis "Tools for using fonts in R")
+    (description
+     "The extrafont package makes it easier to use fonts other than the basic
+PostScript fonts that R uses.  Fonts that are imported into extrafont can be
+used with PDF or PostScript output files.  There are two hurdles for using
+fonts in PDF (or Postscript) output files:
+
+@enumerate
+@item Making R aware of the font and the dimensions of the characters.
+@item Embedding the fonts in the PDF file so that the PDF can be displayed
+  properly on a device that doesn't have the font.  This is usually needed if
+  you want to print the PDF file or share it with others.
+@end enumerate
+
+The extrafont package makes both of these things easier.")
+    (license license:gpl2)))
+
+(define-public r-xkcd
+  (package
+    (name "r-xkcd")
+    (version "0.0.6")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "xkcd" version))
+       (sha256
+        (base32
+         "1z2y0ihn68ppay7xkglhw7djki5654g6z4bbpyy41if57z9q554f"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-extrafont" ,r-extrafont)
+       ("r-ggplot2" ,r-ggplot2)
+       ("r-hmisc" ,r-hmisc)))
+    (home-page "https://cran.r-project.org/web/packages/xkcd/")
+    (synopsis "Plot ggplot2 graphics in the XKCD style")
+    (description
+     "This package provides the means to plot ggplot2 graphs in the style of
+the XKCD web comic.")
+    (license license:gpl3)))
+
+(define-public r-msigdbr
+  (package
+    (name "r-msigdbr")
+    (version "6.2.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "msigdbr" version))
+       (sha256
+        (base32
+         "1264j1hs74kq7hyh68vfynadfi6mdpq46qm1hnwzkzzhmbzpb9cg"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-dplyr" ,r-dplyr)
+       ("r-magrittr" ,r-magrittr)
+       ("r-rlang" ,r-rlang)
+       ("r-tibble" ,r-tibble)))
+    (home-page "https://github.com/igordot/msigdbr")
+    (synopsis "MSigDB gene sets for multiple organisms")
+    (description
+     "This package provides the @dfn{Molecular Signatures Database} (MSigDB)
+gene sets typically used with the @dfn{Gene Set Enrichment Analysis} (GSEA)
+software in a standard R data frame with key-value pairs.  Included are the
+original human gene symbols and Entrez IDs as well as the equivalents for
+various frequently studied model organisms such as mouse, rat, pig, fly, and
+yeast.")
+    ;; The package is covered under the Expat license, but the upstream MSigDB
+    ;; files are made available under the Creative Commons Attribution 4.0
+    ;; International license.
+    (license (list license:expat license:cc-by4.0))))
+
+(define-public r-gridgraphics
+  (package
+    (name "r-gridgraphics")
+    (version "0.3-0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "gridGraphics" version))
+       (sha256
+        (base32
+         "1p94flvq5h3x817pl1m0aj3sim87x6zdbpv9xrgdnqw3rxfzwgqs"))))
+    (properties `((upstream-name . "gridGraphics")))
+    (build-system r-build-system)
+    (home-page "https://github.com/pmur002/gridgraphics")
+    (synopsis "Redraw base graphics using @code{grid} graphics")
+    (description
+     "This package provides functions to convert a page of plots drawn with
+the @code{graphics} package into identical output drawn with the @code{grid}
+package.  The result looks like the original @code{graphics}-based plot, but
+consists of @code{grid} grobs and viewports that can then be manipulated with
+@code{grid} functions (e.g., edit grobs and revisit viewports).")
+    (license license:gpl2+)))
+
+(define-public r-farver
+  (package
+    (name "r-farver")
+    (version "1.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "farver" version))
+       (sha256
+        (base32
+         "1dllgx121al374gyp9pjv1m8ip4imm8zhbgyh1970dsz2c4z71i0"))))
+    (build-system r-build-system)
+    (propagated-inputs `(("r-rcpp" ,r-rcpp)))
+    (home-page "https://github.com/thomasp85/farver")
+    (synopsis "Vectorized color conversion and comparison")
+    (description
+     "The encoding of color can be handled in many different ways, using
+different color spaces.  As different color spaces have different uses,
+efficient conversion between these representations are important.  This
+package provides a set of functions that gives access to very fast color space
+conversion and comparisons implemented in C++, and offers 100-fold speed
+improvements over the @code{convertColor} function in the @code{grDevices}
+package.")
+    (license license:expat)))
+
+(define-public r-ggplotify
+  (package
+    (name "r-ggplotify")
+    (version "0.0.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "ggplotify" version))
+       (sha256
+        (base32
+         "14hqlpvnaq5psz1ljcpw9isa06827rg3fm5c1dx159rsjfi56yby"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-ggplot2" ,r-ggplot2)
+       ("r-gridgraphics" ,r-gridgraphics)
+       ("r-rvcheck" ,r-rvcheck)))
+    (home-page "https://github.com/GuangchuangYu/ggplotify")
+    (synopsis "Convert plots to @code{grob} or @code{ggplot} object")
+    (description
+     "This package provides tools to convert plot function calls (using
+expression or formula) to @code{grob} or @code{ggplot} objects that are
+compatible with the @code{grid} and @code{ggplot2} environment.  With this
+package, we are able to e.g. use @code{cowplot} to align plots produced by
+@code{base} graphics, @code{grid}, @code{lattice}, @code{vcd} etc. by
+converting them to @code{ggplot} objects.")
+    (license license:artistic2.0)))
+
+(define-public r-triebeard
+  (package
+    (name "r-triebeard")
+    (version "0.3.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "triebeard" version))
+       (sha256
+        (base32
+         "1hqyz57gph02c9fdc07lxz113bbklif3g18sw8jan6pakhhdc7dz"))))
+    (build-system r-build-system)
+    (propagated-inputs `(("r-rcpp" ,r-rcpp)))
+    (home-page "https://github.com/Ironholds/triebeard/")
+    (synopsis "Radix trees in Rcpp")
+    (description
+     "Radix trees, or tries, are key-value data structures optimized for
+efficient lookups, similar in purpose to hash tables.  This package provides
+an implementation of radix trees for use in R programming and in developing
+packages with Rcpp.")
+    (license license:expat)))
+
+(define-public r-tweenr
+  (package
+    (name "r-tweenr")
+    (version "1.0.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "tweenr" version))
+       (sha256
+        (base32
+         "0sq90pbln6lkc2q3zflhkxxwpqdw5dd7igrxhdnlynkdrmi83mpg"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-farver" ,r-farver)
+       ("r-magrittr" ,r-magrittr)
+       ("r-rcpp" ,r-rcpp)
+       ("r-rlang" ,r-rlang)))
+    (home-page "https://github.com/thomasp85/tweenr")
+    (synopsis "Interpolate data for smooth animations")
+    (description
+     "In order to create smooth animation between states of data, tweening is
+necessary.  This package provides a range of functions for creating tweened
+data that can be used as basis for animation.  Furthermore it adds a number of
+vectorized interpolaters for common R data types such as numeric, date and
+color.")
+    (license license:expat)))
+
+(define-public r-polyclip
+  (package
+    (name "r-polyclip")
+    (version "1.10-0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "polyclip" version))
+       (sha256
+        (base32
+         "0jyk4maqiblvj095jd59dr76kbniyli3v3xvy0a72ljszq6vrnkl"))))
+    (build-system r-build-system)
+    (native-inputs `(("pkg-config" ,pkg-config)))
+    (home-page "http://www.angusj.com/delphi/clipper.php")
+    (synopsis "Polygon clipping")
+    (description
+     "This package provides an R port of the library Clipper.  It performs
+polygon clipping operations (intersection, union, set minus, set difference)
+for polygonal regions of arbitrary complexity, including holes.  It computes
+offset polygons (spatial buffer zones, morphological dilations, Minkowski
+dilations) for polygonal regions and polygonal lines.  It computes the
+Minkowski Sum of general polygons.  There is a function for removing
+self-intersections from polygon data.")
+    (license license:boost1.0)))
+
+(define-public r-urltools
+  (package
+    (name "r-urltools")
+    (version "1.7.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "urltools" version))
+       (sha256
+        (base32
+         "04x3my655dd287cbsszbnf75q0swmjlxxrblcsay7a8n3df3a830"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-rcpp" ,r-rcpp)
+       ("r-triebeard" ,r-triebeard)))
+    (home-page "https://github.com/Ironholds/urltools/")
+    (synopsis "Vectorized tools for URL handling and parsing")
+    (description
+     "This package provides a toolkit for all URL-handling needs, including
+encoding and decoding, parsing, parameter extraction and modification.  All
+functions are designed to be both fast and entirely vectorized.  It is
+intended to be useful for people dealing with web-related datasets, such as
+server-side logs, although may be useful for other situations involving large
+sets of URLs.")
+    (license license:expat)))
+
+(define-public r-ggforce
+  (package
+    (name "r-ggforce")
+    (version "0.2.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "ggforce" version))
+       (sha256
+        (base32
+         "0snxx9zhcccxa7pz9pf3bjqmcmv9mz4m47v81hklnhm25jj40xg2"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-ggplot2" ,r-ggplot2)
+       ("r-gtable" ,r-gtable)
+       ("r-mass" ,r-mass)
+       ("r-polyclip" ,r-polyclip)
+       ("r-rcpp" ,r-rcpp)
+       ("r-rcppeigen" ,r-rcppeigen)
+       ("r-rlang" ,r-rlang)
+       ("r-scales" ,r-scales)
+       ("r-tweenr" ,r-tweenr)))
+    (home-page "https://ggforce.data-imaginist.com")
+    (synopsis "Accelerating ggplot2")
+    (description
+     "The aim of the ggplot2 package is to aid in visual data investigations.
+This focus has led to a lack of facilities for composing specialized plots.
+Thi package aims to be a collection of mainly new statistics and geometries
+that fills this gap.")
+    (license license:expat)))
+
+(define-public r-europepmc
+  (package
+    (name "r-europepmc")
+    (version "0.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "europepmc" version))
+       (sha256
+        (base32
+         "1ngqs1sqzkbwv98dd5z4cxj8bnz41wyd0g060a2vpqi3s99s4i2h"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-dplyr" ,r-dplyr)
+       ("r-httr" ,r-httr)
+       ("r-jsonlite" ,r-jsonlite)
+       ("r-plyr" ,r-plyr)
+       ("r-progress" ,r-progress)
+       ("r-purrr" ,r-purrr)
+       ("r-urltools" ,r-urltools)
+       ("r-xml2" ,r-xml2)))
+    (home-page "https://github.com/ropensci/europepmc/")
+    (synopsis "R Interface to the Europe PubMed Central RESTful Web Service")
+    (description
+     "This package provides an R Client for the
+@url{https://europepmc.org/RestfulWebService,Europe PubMed Central RESTful Web
+Service}.  It gives access to both metadata on life science literature and
+open access full texts.  Europe PMC indexes all PubMed content and other
+literature sources including Agricola, a bibliographic database of citations
+to the agricultural literature, or Biological Patents.  In addition to
+bibliographic metadata, the client allows users to fetch citations and
+reference lists.  Links between life-science literature and other EBI
+databases, including ENA, PDB or ChEMBL are also accessible.")
+    (license license:gpl3)))
+
+(define-public r-ggraph
+  (package
+    (name "r-ggraph")
+    (version "1.0.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "ggraph" version))
+       (sha256
+        (base32
+         "0fpmp326mryd1k1qvacjadksrnhbla8h960i18lmrimzrag7692c"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-digest" ,r-digest)
+       ("r-dplyr" ,r-dplyr)
+       ("r-ggforce" ,r-ggforce)
+       ("r-ggplot2" ,r-ggplot2)
+       ("r-ggrepel" ,r-ggrepel)
+       ("r-gtable" ,r-gtable)
+       ("r-igraph" ,r-igraph)
+       ("r-mass" ,r-mass)
+       ("r-plyr" ,r-plyr)
+       ("r-rcpp" ,r-rcpp)
+       ("r-scales" ,r-scales)
+       ("r-viridis" ,r-viridis)))
+    (home-page "https://cran.r-project.org/web/packages/ggraph/")
+    (synopsis "Implementation of grammar of graphics for graphs and networks")
+    (description
+     "The grammar of graphics as implemented in ggplot2 is a poor fit for
+graph and network visualizations due to its reliance on tabular data input.
+The ggraph package is an extension of the ggplot2 API tailored to graph
+visualizations and provides the same flexible approach to building up plots
+layer by layer.")
+    (license license:gpl3)))
+
+(define-public r-varselrf
+  (package
+    (name "r-varselrf")
+    (version "0.7-8")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "varSelRF" version))
+       (sha256
+        (base32
+         "0h49rl1j13yfh97rsfsyh9s2c4wajny4rzms2qw77d0cavxqg53i"))))
+    (properties `((upstream-name . "varSelRF")))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-randomforest" ,r-randomforest)))
+    (home-page "http://ligarto.org/rdiaz/Software/Software.html")
+    (synopsis "Variable selection using random forests")
+    (description
+     "This package provides tools for the variable selection from random
+forests using both backwards variable elimination (for the selection of small
+sets of non-redundant variables) and selection based on the importance
+spectrum (somewhat similar to scree plots; for the selection of large,
+potentially highly-correlated variables).  The main applications are in
+high-dimensional data (e.g., microarray data, and other genomics and
+proteomics applications).")
+    (license license:gpl2+)))
+
+(define-public r-pamr
+  (package
+    (name "r-pamr")
+    (version "1.56.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "pamr" version))
+       (sha256
+        (base32
+         "0ycpgkk23y3zzkb42n2skcyl35ps1n7jmyzfj7pbxr3f6gr2grfh"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-cluster" ,r-cluster)
+       ("r-survival" ,r-survival)))
+    (native-inputs `(("gfortran" ,gfortran)))
+    (home-page "https://cran.r-project.org/web/packages/pamr/")
+    (synopsis "Prediction Analysis for Microarrays")
+    (description
+     "This package provides some functions for sample classification in
+microarrays.")
+    (license license:gpl2)))
+
+(define-public r-rda
+  (package
+    (name "r-rda")
+    (version "1.0.2-2.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "rda" version))
+       (sha256
+        (base32
+         "1y4fawslr3i6crjaxhsdb47kfsqkyszdx6avq3r5far5a4pvc639"))))
+    (build-system r-build-system)
+    (home-page "https://cran.r-project.org/web/packages/rda/")
+    (synopsis "Shrunken centroids regularized discriminant analysis")
+    (description
+     "This package provides tools for shrunken centroids regularized
+discriminant analysis for the purpose of classifying high dimensional data.")
+    (license license:gpl2+)))
+
+(define-public r-ggvis
+  (package
+    (name "r-ggvis")
+    (version "0.4.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "ggvis" version))
+       (sha256
+        (base32
+         "1bxggjr2313kfy895j0fvrv4bg7yh2z87907lk48i1kn5c9flchk"))))
+    (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-shiny" ,r-shiny)))
+    (home-page "https://ggvis.rstudio.com/")
+    (synopsis "Interactive grammar of graphics")
+    (description
+     "This package is a data visualization package for R providing an
+implementation of an interactive grammar of graphics, taking the best parts of
+ggplot2, combining them with the reactive framework of Shiny and drawing web
+graphics using Vega.")
+    (license license:gpl2)))
+
+(define-public r-gbm
+  (package
+    (name "r-gbm")
+    (version "2.1.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "gbm" version))
+       (sha256
+        (base32
+         "0vs6ljaqhwwpgr8wlbhmm4v147rd82kl16rpaijqiylxcc8dxyq6"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-gridextra" ,r-gridextra)
+       ("r-lattice" ,r-lattice)
+       ("r-survival" ,r-survival)))
+    (home-page "https://github.com/gbm-developers/gbm")
+    (synopsis "Generalized boosted regression models")
+    (description
+     "This package is an implementation of extensions to Freund and Schapire's
+AdaBoost algorithm and Friedman's gradient boosting machine.  It includes
+regression methods for least squares, absolute loss, t-distribution loss,
+quantile regression, logistic, multinomial logistic, Poisson, Cox proportional
+hazards partial likelihood, AdaBoost exponential loss, Huberized hinge loss,
+and Learning to Rank measures (LambdaMart).")
+    (license license:gpl2+)))
+
+(define-public r-threejs
+  (package
+    (name "r-threejs")
+    (version "0.3.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "threejs" version))
+       (sha256
+        (base32
+         "1s3rdlzy7man6177ycayg6xsh6k8y1r9rdj9yzn3b93j2rs0nxbi"))))
+    (build-system r-build-system)
+    (arguments
+     `(#:modules ((guix build utils)
+                  (guix build r-build-system)
+                  (srfi srfi-1)
+                  (ice-9 popen))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'process-javascript
+           (lambda* (#:key inputs #:allow-other-keys)
+             (with-directory-excursion "inst"
+               (call-with-values
+                   (lambda ()
+                     (unzip2
+                      `((,(assoc-ref inputs "js-jquery")
+                         "htmlwidgets/lib/jquery/jquery.min.js")
+                        (,(assoc-ref inputs "js-threejs-85")
+                         "htmlwidgets/lib/threejs-85/three.min.js"))))
+                 (lambda (sources targets)
+                   (for-each (lambda (source target)
+                               (format #t "Processing ~a --> ~a~%"
+                                       source target)
+                               (delete-file target)
+                               (let ((minified (open-pipe* OPEN_READ "uglify-js" source)))
+                                 (call-with-output-file target
+                                   (lambda (port)
+                                     (dump-port minified port)))))
+                             sources targets))))
+             #t)))))
+    (propagated-inputs
+     `(("r-base64enc" ,r-base64enc)
+       ("r-crosstalk" ,r-crosstalk)
+       ("r-htmlwidgets" ,r-htmlwidgets)
+       ("r-igraph" ,r-igraph)))
+    (native-inputs
+     `(("uglify-js" ,uglify-js)
+       ("js-jquery"
+        ,(origin
+           (method url-fetch)
+           (uri "https://code.jquery.com/jquery-3.3.1.js")
+           (sha256
+            (base32
+             "1b8zxrp6xwzpw25apn8j4qws0f6sr7qr7h2va5h1mjyfqvn29anq"))))
+       ("js-threejs-85"
+        ,(origin
+           (method url-fetch)
+           (uri "https://raw.githubusercontent.com/mrdoob/three.js/r85/build/three.js")
+           (sha256
+            (base32
+             "17khh3dmijdjw4qb9qih1rqhxgrmm3pc6w8lzdx6rf6a3mrc9xnl"))))))
+    (home-page "https://bwlewis.github.io/rthreejs")
+    (synopsis "Interactive 3D scatter plots, networks and globes")
+    (description
+     "Create interactive 3D scatter plots, network plots, and globes in R
+using the three.js visualization library.")
+    (license license:expat)))
+
+(define-public r-mlbench
+  (package
+    (name "r-mlbench")
+    (version "2.1-1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "mlbench" version))
+       (sha256
+        (base32
+         "1rp035qxfgh5ail92zjh9jh57dj0b8babw3wsg29v8ricpal30bl"))))
+    (build-system r-build-system)
+    (home-page "https://cran.r-project.org/web/packages/mlbench/")
+    (synopsis "Machine learning benchmark problems")
+    (description
+     "This package provides a collection of artificial and real-world machine
+learning benchmark problems, including, e.g., several data sets from the UCI
+repository.")
+    (license license:gpl2)))
+
+(define-public r-mpm
+  (package
+    (name "r-mpm")
+    (version "1.0-22")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "mpm" version))
+       (sha256
+        (base32
+         "0wijw8v0wmbfrda5564cmnp788qmlkk21yn5cp5qk8aprm9l1fnk"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-kernsmooth" ,r-kernsmooth)
+       ("r-mass" ,r-mass)))
+    (home-page "http://mpm.r-forge.r-project.org")
+    (synopsis "Multivariate projection methods")
+    (description
+     "This is a package for exploratory graphical analysis of multivariate
+data, specifically gene expression data with different projection methods:
+principal component analysis, correspondence analysis, spectral map
+analysis.")
+    (license license:gpl2+)))
+
+(define-public r-png
+  (package
+    (name "r-png")
+    (version "0.1-7")
+    (source (origin
+              (method url-fetch)
+              (uri (cran-uri "png" version))
+              (sha256
+               (base32
+                "0g2mcp55lvvpx4kd3mn225mpbxqcq73wy5qx8b4lyf04iybgysg2"))))
+    (build-system r-build-system)
+    (inputs
+     `(("libpng" ,libpng)
+       ("zlib" ,zlib)))
+    (home-page "http://www.rforge.net/png/")
+    (synopsis "Read and write PNG images")
+    (description
+     "This package provides an easy and simple way to read, write and display
+bitmap images stored in the PNG format.  It can read and write both files and
+in-memory raw vectors.")
+    ;; Any of these GPL versions.
+    (license (list license:gpl2 license:gpl3))))
+
+(define-public r-ggcorrplot
+  (package
+    (name "r-ggcorrplot")
+    (version "0.1.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "ggcorrplot" version))
+       (sha256
+        (base32
+         "12sxvd9kjgszpbk35m7fj1wv7x40bp79c0g0by1xax70r3495h93"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-ggplot2" ,r-ggplot2)
+       ("r-reshape2" ,r-reshape2)))
+    (home-page "http://www.sthda.com/english/wiki/ggcorrplot")
+    (synopsis "Visualization of a correlation matrix using ggplot2")
+    (description
+     "The ggcorrplot package can be used to visualize easily a correlation
+matrix using ggplot2.  It provides a solution for reordering the correlation
+matrix and displays the significance level on the plot.  It also includes a
+function for computing a matrix of correlation p-values.")
+    (license license:gpl2)))
+
+(define-public r-flexdashboard
+  (package
+    (name "r-flexdashboard")
+    (version "0.5.1.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "flexdashboard" version))
+       (sha256
+        (base32
+         "0fy3nbrr67zqgd44r2mc850s5sp0hzfcw3zqs15m8kxzj1aw067x"))))
+    (build-system r-build-system)
+    (arguments
+     `(#:modules ((guix build utils)
+                  (guix build r-build-system)
+                  (srfi srfi-1)
+                  (srfi srfi-26)
+                  (ice-9 popen)
+                  (ice-9 textual-ports))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'process-javascript
+           (lambda* (#:key inputs #:allow-other-keys)
+             (with-directory-excursion "inst"
+               ;; Concatenate all components of prism.js
+               (let ((contents (string-join
+                                (map (lambda (name)
+                                       (call-with-input-file
+                                           (assoc-ref inputs name)
+                                         get-string-all))
+                                     (list "js-prism"
+                                           "js-prism-r"
+                                           "js-prism-line-numbers"))
+                                "\n")))
+                 (call-with-output-file "prism-src.js"
+                   (cut display contents <>)))
+               (call-with-values
+                   (lambda ()
+                     (unzip2
+                      `(("www/stickytableheaders/jquery.stickytableheaders.js"
+                         "www/stickytableheaders/jquery.stickytableheaders.min.js")
+                        ("www/sly/sly.js"
+                         "www/sly/sly.min.js")
+                        ("prism-src.js"
+                         "www/prism/prism.js")
+                        (,(assoc-ref inputs "js-raphael")
+                         "htmlwidgets/lib/raphael/raphael-2.1.4.min.js")
+                        (,(assoc-ref inputs "js-featherlight")
+                         "www/featherlight/featherlight.min.js"))))
+                 (lambda (sources targets)
+                   (for-each (lambda (source target)
+                               (format #t "Processing ~a --> ~a~%"
+                                       source target)
+                               (delete-file target)
+                               (let ((minified (open-pipe* OPEN_READ "uglify-js" source)))
+                                 (call-with-output-file target
+                                   (lambda (port)
+                                     (dump-port minified port)))))
+                             sources targets))))
+             #t)))))
+    (propagated-inputs
+     `(("r-htmltools" ,r-htmltools)
+       ("r-htmlwidgets" ,r-htmlwidgets)
+       ("r-jsonlite" ,r-jsonlite)
+       ("r-knitr" ,r-knitr)
+       ("r-rmarkdown" ,r-rmarkdown)
+       ("r-shiny" ,r-shiny)))
+    (native-inputs
+     `(("uglify-js" ,uglify-js)
+       ("js-raphael"
+        ,(origin
+           (method url-fetch)
+           (uri "https://raw.githubusercontent.com/DmitryBaranovskiy/raphael/v2.1.4/raphael.js")
+           (sha256
+            (base32
+             "1h4c4akrgcj7wra9j1z1rv2406j0yf68y9c0wg8v7w9ibw2iwf1x"))))
+       ("js-prism"
+        ,(origin
+           (method url-fetch)
+           (uri "https://raw.githubusercontent.com/PrismJS/prism/v1.16.0/prism.js")
+           (sha256
+            (base32
+             "0gqa9irbp9k8p5r3d98cszajzhjnssnl43nrsc5aiy7ki52z500c"))))
+       ("js-prism-r"
+        ,(origin
+           (method url-fetch)
+           (uri "https://raw.githubusercontent.com/PrismJS/prism/v1.16.0/components/prism-r.js")
+           (sha256
+            (base32
+             "1x31glci7wdgr2305njy0bm2lncb0jyn0j1s2g72rqi29xid9aki"))))
+       ("js-prism-line-numbers"
+        ,(origin
+           (method url-fetch)
+           (uri "https://raw.githubusercontent.com/PrismJS/prism/v1.16.0/plugins/line-numbers/prism-line-numbers.js")
+           (sha256
+            (base32
+             "1543wgf3iynrilyb27jq8px3h5gvfz5xmdib5ik2ki400c1sl991"))))
+       ("js-featherlight"
+        ,(origin
+           (method url-fetch)
+           (uri "https://raw.githubusercontent.com/noelboss/featherlight/1.3.4/src/featherlight.js")
+           (sha256
+            (base32
+             "14kkhwzvp8rxq2mrck5i0xcm8v5rqwqhwnmncbng8h4qq42zx3sb"))))))
+    (home-page "https://rmarkdown.rstudio.com/flexdashboard")
+    (synopsis "R Markdown format for flexible dashboards")
+    (description
+     "This package provides an R Markdown format for converting an R Markdown
+document to a grid-oriented dashboard.  The dashboard flexibly adapts the size
+of its components to the containing web page.")
+    (license license:expat)))
+
+(define-public r-preseqr
+  (package
+    (name "r-preseqr")
+    (version "4.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "preseqR" version))
+       (sha256
+        (base32
+         "1g2rnnmi45649vpy6z45v5i3wxm54s138ajqrzwi3a5r7x3xnhq1"))))
+    (properties `((upstream-name . "preseqR")))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-polynom" ,r-polynom)))
+    (home-page "https://cran.r-project.org/web/packages/preseqR/")
+    (synopsis "Predicting species accumulation curves")
+    (description
+     "This package can be used to predict the r-species accumulation
+curve (r-SAC), which is the number of species represented at least r times as
+a function of the sampling effort.  When r = 1, the curve is known as the
+species accumulation curve, or the library complexity curve in high-throughput
+genomic sequencing.  The package includes both parametric and nonparametric
+methods, as described by Deng C, et al. (2018).")
+    (license license:gpl3)))
+
+(define-public r-mapplots
+  (package
+    (name "r-mapplots")
+    (version "1.5.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "mapplots" version))
+       (sha256
+        (base32
+         "18s2y66f8vi8g2r8a25zbgp2xm079r8v8qxv0w71h8krycs6vs9p"))))
+    (build-system r-build-system)
+    (home-page "https://cran.r-project.org/web/packages/mapplots/")
+    (synopsis "Data visualization on maps")
+    (description
+     "This package helps you create simple maps; add sub-plots like pie plots
+to a map or any other plot; format, plot and export gridded data.  The package
+was developed for displaying fisheries data but most functions can be used for
+more generic data visualisation.")
+    (license license:gpl2+)))
+
+(define-public r-pmcmr
+  (package
+    (name "r-pmcmr")
+    (version "4.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "PMCMR" version))
+       (sha256
+        (base32
+         "09bvdj2h1086r2cgy3myrhlylplxxlliv8nwx09c8kb1vn02i2ij"))))
+    (properties `((upstream-name . "PMCMR")))
+    (build-system r-build-system)
+    (home-page "https://cran.r-project.org/web/packages/PMCMR/")
+    (synopsis "Calculate pairwise multiple comparisons of mean rank sums")
+    (description
+     "This is a deprecated package for calculating pairwise multiple
+comparisons of mean rank sums.  This package is superseded by the novel
+PMCMRplus package.  The PMCMR package is no longer maintained, but kept for
+compatibility of reverse depending packages for some time.")
+    (license license:gpl3+)))
+
+(define-public r-downloader
+  (package
+    (name "r-downloader")
+    (version "0.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "downloader" version))
+       (sha256
+        (base32
+         "1axggnsc27zzgr7snf41j3zd1vp3nfpmq4zj4d01axc709dyg40q"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-digest" ,r-digest)))
+    (home-page "https://github.com/wch/downloader")
+    (synopsis "Download files over HTTP and HTTPS")
+    (description
+     "This package provides a wrapper for the @code{download.file} function,
+making it possible to download files over HTTPS across platforms.  The
+@code{RCurl} package provides this functionality (and much more) but has
+external dependencies.  This package has is implemented purely in R.")
+    (license license:gpl2)))
+
+(define-public r-rex
+  (package
+    (name "r-rex")
+    (version "1.1.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "rex" version))
+       (sha256
+        (base32
+         "0alsadgjgass3wr8y5d247j12qqzg454sc84vpskclrkmz778g5x"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-lazyeval" ,r-lazyeval)
+       ("r-magrittr" ,r-magrittr)))
+    (home-page "https://github.com/kevinushey/rex")
+    (synopsis "Friendly regular expressions")
+    (description
+     "This package provides a friendly interface for the construction of
+regular expressions.  Regular expressions are a very powerful feature, however
+they are often difficult to interpret.  Rex allows you to build complex
+regular expressions from human readable expressions")
+    (license license:expat)))
+
+(define-public r-sctransform
+  (package
+    (name "r-sctransform")
+    (version "0.2.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "sctransform" version))
+       (sha256
+        (base32
+         "1r5kiqqs318q59h2i8m7c6nhghp9w6q26ss2y5a390lkhsawgx6p"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-future" ,r-future)
+       ("r-future-apply" ,r-future-apply)
+       ("r-ggplot2" ,r-ggplot2)
+       ("r-gridextra" ,r-gridextra)
+       ("r-mass" ,r-mass)
+       ("r-matrix" ,r-matrix)
+       ("r-rcpp" ,r-rcpp)
+       ("r-rcppeigen" ,r-rcppeigen)
+       ("r-reshape2" ,r-reshape2)))
+    (home-page "https://github.com/ChristophH/sctransform")
+    (synopsis "Variance stabilizing transformations for Single Cell UMI Data")
+    (description
+     "This package provides a normalization method for single-cell UMI count
+data using a variance stabilizing transformation.  The transformation is based
+on a negative binomial regression model with regularized parameters.  As part
+of the same regression framework, this package also provides functions for
+batch correction, and data correction.")
+    (license license:gpl3)))
+
+(define-public r-styler
+  (package
+    (name "r-styler")
+    (version "1.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "styler" version))
+       (sha256
+        (base32
+         "1z24mi88snbz1avjw9phq0lzmigddvycc56s83nxzr9w9z85mh05"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-backports" ,r-backports)
+       ("r-cli" ,r-cli)
+       ("r-magrittr" ,r-magrittr)
+       ("r-purrr" ,r-purrr)
+       ("r-rematch2" ,r-rematch2)
+       ("r-rlang" ,r-rlang)
+       ("r-rprojroot" ,r-rprojroot)
+       ("r-tibble" ,r-tibble)
+       ("r-withr" ,r-withr)
+       ("r-xfun" ,r-xfun)))
+    (home-page "https://github.com/r-lib/styler")
+    (synopsis "Non-invasive pretty printing of R code")
+    (description
+     "This is a package for pretty-printing R code without changing the user's
+formatting intent.")
+    (license license:gpl3)))
diff --git a/gnu/packages/crypto.scm b/gnu/packages/crypto.scm
index 38e556469a..19870d9542 100644
--- a/gnu/packages/crypto.scm
+++ b/gnu/packages/crypto.scm
@@ -131,15 +131,16 @@ communication, encryption, decryption, signatures, etc.")
 (define-public signify
   (package
     (name "signify")
-    (version "24")
+    (version "25")
+    (home-page "https://github.com/aperezdc/signify")
     (source (origin
-              (method url-fetch)
-              (uri (string-append "https://github.com/aperezdc/signify/"
-                                  "archive/v" version ".tar.gz"))
-              (file-name (string-append name "-" version ".tar.gz"))
+              (method git-fetch)
+              (uri (git-reference (url home-page)
+                                  (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
               (sha256
                (base32
-                "0594vyvkq176xxzaz9xbq8qs0xdnr8s9gkd1prblwpdvnzmw0xvc"))))
+                "0zg0rffxwj2a71s1bllhrn491xsmirg9sshpq8f3vl25lv4c2cnq"))))
     (build-system gnu-build-system)
     ;; TODO Build with libwaive (described in README.md), to implement something
     ;; like OpenBSD's pledge().
@@ -159,7 +160,6 @@ communication, encryption, decryption, signatures, etc.")
     (description "The signify utility creates and verifies cryptographic
 signatures using the elliptic curve Ed25519.  This is a Linux port of the
 OpenBSD tool of the same name.")
-    (home-page "https://github.com/aperezdc/signify")
     ;; This package includes third-party code that was originally released under
     ;; various non-copyleft licenses. See the source files for clarification.
     (license (list license:bsd-3 license:bsd-4 license:expat license:isc
@@ -208,9 +208,9 @@ OpenBSD tool of the same name.")
          (add-after 'unpack 'unpack-googletest
            (lambda* (#:key inputs #:allow-other-keys)
              (mkdir-p "vendor/github.com/google/googletest")
-             (invoke "tar" "xvf" (assoc-ref inputs "googletest-source")
-                     "-C" "vendor/github.com/google/googletest"
-                     "--strip-components=1")))
+             (copy-recursively (assoc-ref inputs "googletest-source")
+                               "vendor/github.com/google/googletest")
+             #t))
          (add-before 'check 'make-unittests
            (lambda _
              (invoke "make" "unittests"))))))
diff --git a/gnu/packages/cups.scm b/gnu/packages/cups.scm
index d8458f98d5..748f67ba1e 100644
--- a/gnu/packages/cups.scm
+++ b/gnu/packages/cups.scm
@@ -57,7 +57,7 @@
 (define-public cups-filters
   (package
     (name "cups-filters")
-    (version "1.22.2")
+    (version "1.22.3")
     (source(origin
               (method url-fetch)
               (uri
@@ -65,7 +65,7 @@
                               "cups-filters-" version ".tar.xz"))
               (sha256
                (base32
-                "06gy3wv6p7kswz3mjn17f17mqpadvqj2riwc42kksnvp8x0h08cw"))
+                "11vilv80l3q7hz8vyhclvjcnlgk93r7p9dvg634186iddjzls0j3"))
               (modules '((guix build utils)))
               (snippet
                ;; install backends, banners and filters to cups-filters output
@@ -639,14 +639,14 @@ printer/driver specific, but spooler-independent PPD file.")
 (define-public foo2zjs
   (package
     (name "foo2zjs")
-    (version "20180910")
+    (version "20190413")
     (source (origin
               (method url-fetch)
               ;; XXX: This is an unversioned URL!
               (uri "http://foo2zjs.rkkda.com/foo2zjs.tar.gz")
               (sha256
                (base32
-                "1clddqy4y4vvws0lllv1v90dfiihihdc23bn93c544yb3fvmwmr6"))))
+                "00k22vmghxls7rk2hrbz9v17wi5z8vdk3fmsp2lrfghfcad8nhpx"))))
     (build-system gnu-build-system)
     (arguments
      '(#:phases (modify-phases %standard-phases
diff --git a/gnu/packages/curl.scm b/gnu/packages/curl.scm
index 276fe5c41b..c8c1b0ca0d 100644
--- a/gnu/packages/curl.scm
+++ b/gnu/packages/curl.scm
@@ -48,24 +48,6 @@
   #:use-module (gnu packages tls)
   #:use-module (gnu packages web))
 
-;; XXX A hidden special obsolete libssh2 for temporary use in the curl package.
-;; <https://bugs.gnu.org/34927>
-(define-public libssh2-1.8.0
-  (hidden-package
-    (package
-      (inherit libssh2)
-      (version "1.8.0")
-      (source (origin
-                (method url-fetch)
-                (uri (string-append
-                      "https://www.libssh2.org/download/libssh2-"
-                      version ".tar.gz"))
-                (sha256
-                 (base32
-                  "1m3n8spv79qhjq4yi0wgly5s5rc8783jb1pyra9bkx1md0plxwrr"))
-                (patches
-                 (search-patches "libssh2-fix-build-failure-with-gcrypt.patch")))))))
-
 (define-public curl
   (package
    (name "curl")
diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm
index 71e7c1b938..e77209d391 100644
--- a/gnu/packages/databases.scm
+++ b/gnu/packages/databases.scm
@@ -82,6 +82,7 @@
   #:use-module (gnu packages pcre)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages perl-check)
+  #:use-module (gnu packages perl-web)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages popt)
   #:use-module (gnu packages python)
@@ -239,32 +240,19 @@ ElasticSearch server")
 (define-public leveldb
   (package
     (name "leveldb")
-    (version "1.20")
+    (version "1.21")
     (source (origin
-              (method url-fetch)
-              (uri (string-append "https://github.com/google/leveldb"
-                                  "/archive/v" version ".tar.gz"))
-              (file-name (string-append name "-" version ".tar.gz"))
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/google/leveldb")
+                    (commit version)))
+              (file-name (git-file-name name version))
               (sha256
                (base32
-                "0r36bcrj6b2afsp4aw1gjai3jbs1c7734pxpc1jz7hh9nasyiazm"))))
-    (build-system gnu-build-system)
+                "00v0w6883z7a6204894j59nd5v6dazn3c8hvh3sbczv4wiabppw2"))))
+    (build-system cmake-build-system)
     (arguments
-     '(#:make-flags (list "CC=gcc")
-       #:phases
-       (modify-phases %standard-phases
-         (delete 'configure)
-         (replace 'install
-           ;; There is no install target, so we do it here.
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let* ((out (assoc-ref outputs "out"))
-                    (lib (string-append out "/lib"))
-                    (include (string-append out "/include")))
-               (for-each (lambda (file)
-                           (install-file file lib))
-                         (find-files "out-shared" "^libleveldb\\.so.*$"))
-               (copy-recursively "include" include)
-               #t))))))
+     `(#:configure-flags '("-DBUILD_SHARED_LIBS=ON" "-DLEVELDB_BUILD_TESTS=ON")))
     (inputs
      `(("snappy" ,snappy)))
     (home-page "http://leveldb.org/")
@@ -277,14 +265,14 @@ mapping from string keys to string values.")
 (define-public memcached
   (package
     (name "memcached")
-    (version "1.5.12")
+    (version "1.5.13")
     (source
      (origin
        (method url-fetch)
        (uri (string-append
              "https://memcached.org/files/memcached-" version ".tar.gz"))
        (sha256
-        (base32 "0aav15f0lh8k4i62aza2bdv4s8vv65j38pz2zc4v45snd3arfby0"))))
+        (base32 "0qsdkjrns4f02lmabq8c7mzl5n4382q2p6a0dvmsjdcpjisagqb1"))))
     (build-system gnu-build-system)
     (inputs
      `(("libevent" ,libevent)
@@ -987,7 +975,7 @@ data in a single database.  RocksDB is partially based on @code{LevelDB}.")
     (home-page "https://github.com/tialaramex/sparql-query/")
     (synopsis "Command-line tool for accessing SPARQL endpoints over HTTP")
     (description "Sparql-query is a command-line tool for accessing SPARQL
-endpoints over HTTP.  It has been intentionally designed to 'feel' similar to
+endpoints over HTTP.  It has been intentionally designed to @code{feel} similar to
 tools for interrogating SQL databases.  For example, you can enter a query over
 several lines, using a semi-colon at the end of a line to indicate the end of
 your query.  It also supports readline so that you can more easily recall and
@@ -997,6 +985,92 @@ for example from a shell script.")
     ;; others (like sparql-query.c) contain a GPLv2+ license header.
     (license (list license:gpl3+))))
 
+(define-public sqitch
+  (package
+    (name "sqitch")
+    (version "0.9999")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "mirror://cpan/authors/id/D/DW/DWHEELER/App-Sqitch-"
+             version
+             ".tar.gz"))
+       (sha256
+        (base32
+         "1cvj8grs3bzc4g7dw1zc26g4biv1frav18sq0fkvi2kk0q1aigzm"))))
+    (build-system perl-build-system)
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         (add-before 'check 'set-check-environment
+           (lambda _
+             (setenv "TZ" "UTC")
+             (setenv "HOME" "/tmp")
+             #t))
+         (add-after 'install 'wrap-program
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (path (getenv "PERL5LIB")))
+               (wrap-program (string-append out "/bin/sqitch")
+                 `("PERL5LIB" ":" prefix
+                   (,(string-append out "/lib/perl5/site_perl"
+                                    ":"
+                                    path)))))
+             #t)))))
+    (native-inputs
+     `(("perl-capture-tiny" ,perl-capture-tiny)
+       ("perl-io-pager" ,perl-io-pager)
+       ("perl-module-build" ,perl-module-build)
+       ("perl-module-runtime" ,perl-module-runtime)
+       ("perl-path-class" ,perl-path-class)
+       ("perl-test-deep" ,perl-test-deep)
+       ("perl-test-dir" ,perl-test-dir)
+       ("perl-test-exception" ,perl-test-exception)
+       ("perl-test-file" ,perl-test-file)
+       ("perl-test-file-contents" ,perl-test-file-contents)
+       ("perl-test-mockmodule" ,perl-test-mockmodule)
+       ("perl-test-nowarnings" ,perl-test-nowarnings)
+       ("perl-test-warn" ,perl-test-warn)))
+    (inputs
+     `(("perl-class-xsaccessor" ,perl-class-xsaccessor)
+       ("perl-clone" ,perl-clone)
+       ("perl-config-gitlike" ,perl-config-gitlike)
+       ("perl-datetime" ,perl-datetime)
+       ("perl-datetime-timezone" ,perl-datetime-timezone)
+       ("perl-dbd-pg" ,perl-dbd-pg)
+       ("perl-dbi" ,perl-dbi)
+       ("perl-devel-stacktrace" ,perl-devel-stacktrace)
+       ("perl-encode-locale" ,perl-encode-locale)
+       ("perl-file-homedir" ,perl-file-homedir)
+       ("perl-hash-merge" ,perl-hash-merge)
+       ("perl-ipc-run3" ,perl-ipc-run3)
+       ("perl-ipc-system-simple" ,perl-ipc-system-simple)
+       ("perl-libintl-perl" ,perl-libintl-perl)
+       ("perl-list-moreutils" ,perl-list-moreutils)
+       ("perl-moo" ,perl-moo)
+       ("perl-mysql-config" ,perl-mysql-config)
+       ("perl-namespace-autoclean" ,perl-namespace-autoclean)
+       ("perl-path-class" ,perl-path-class)
+       ("perl-perlio-utf8_strict" ,perl-perlio-utf8_strict)
+       ("perl-string-formatter" ,perl-string-formatter)
+       ("perl-string-shellquote" ,perl-string-shellquote)
+       ("perl-sub-exporter" ,perl-sub-exporter)
+       ("perl-template-tiny" ,perl-template-tiny)
+       ("perl-template-toolkit" ,perl-template-toolkit)
+       ("perl-throwable" ,perl-throwable)
+       ("perl-try-tiny" ,perl-try-tiny)
+       ("perl-type-tiny" ,perl-type-tiny)
+       ("perl-type-tiny-xs" ,perl-type-tiny-xs)
+       ("perl-uri" ,perl-uri)
+       ("perl-uri-db" ,perl-uri-db)))
+    (home-page "https://sqitch.org/")
+    (synopsis "Database change management tool")
+    (description
+     "Sqitch is a standalone change management system for database schemas,
+which uses SQL to describe changes.")
+    (license license:x11)))
+
 (define-public sqlcrush
   ;; Unfortunately, there is no proper upstream release and may never be.
   (let ((commit "b5f6868f189566a26eecc78d0f0659813c1aa98a")
@@ -1332,6 +1406,29 @@ module, and nothing else.")
     (license license:perl-license)
     (home-page "https://metacpan.org/release/DBD-SQLite")))
 
+(define-public perl-mysql-config
+  (package
+    (name "perl-mysql-config")
+    (version "1.04")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "mirror://cpan/authors/id/D/DA/DARREN/MySQL-Config-"
+             version
+             ".tar.gz"))
+       (sha256
+        (base32
+         "1svn7ccw2gc4cazvc58j84rxhnc9vs01zpird0l8460598j475qr"))))
+    (build-system perl-build-system)
+    (home-page "https://metacpan.org/release/MySQL-Config")
+    (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
+@code{Getopt::Long}.")
+    (license license:perl-license)))
+
 (define-public perl-sql-abstract
   (package
     (name "perl-sql-abstract")
@@ -1845,13 +1942,13 @@ for ODBC.")
 (define-public python-pyodbc
   (package
     (name "python-pyodbc")
-    (version "4.0.25")
+    (version "4.0.26")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "pyodbc" version))
        (sha256
-        (base32 "1bbwrb812w5i0x56jfn0l86mxc2ck904hl8y87mziay96znwia0f"))
+        (base32 "1qrxnf7ji5hml7z4y669k4wmk3iz2pcsr05bnn1n912asash09z5"))
        (file-name (string-append name "-" version ".tar.gz"))))
     (build-system python-build-system)
     (inputs
@@ -2092,13 +2189,13 @@ Database API 2.0T.")
 (define-public python-sqlalchemy
   (package
     (name "python-sqlalchemy")
-    (version "1.3.1")
+    (version "1.3.3")
     (source
      (origin
       (method url-fetch)
       (uri (pypi-uri "SQLAlchemy" version))
       (sha256
-       (base32 "12sr36646sipf9ac3n2xh8z0w5pz4d3dvw5qjv2kzvcls6wvf7vq"))))
+       (base32 "06c3lcv7nijsgqsjaaa4djrwlzgh9f910zlqxkmgq22h6jl4rici"))))
     (build-system python-build-system)
     (native-inputs
      `(("python-cython" ,python-cython) ; for C extensions
@@ -2474,15 +2571,15 @@ reasonable substitute.")
 (define-public python-redis
   (package
     (name "python-redis")
-    (version "3.2.0")
+    (version "3.2.1")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "redis" version))
        (sha256
-        (base32 "0m1b88wg1w6xdwg0siky5k86x8sh6smhbr42ixz41ra81lv34jbj"))))
+        (base32 "0wwj8il4c3aff15xwwcjfci367zxsakq05ps1a2il6yavp91i94c"))))
     (build-system python-build-system)
-    ;; Tests require a running Redis server
+    ;; Tests require a running Redis server.
     (arguments '(#:tests? #f))
     ;; As long as we are not running test, we do not need this input :-)
     ;;(native-inputs
diff --git a/gnu/packages/dc.scm b/gnu/packages/dc.scm
index 29d5e451d2..2ef118339f 100644
--- a/gnu/packages/dc.scm
+++ b/gnu/packages/dc.scm
@@ -1,6 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2014 Sree Harsha Totakura <sreeharsha@totakura.in>
-;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -33,14 +33,14 @@
 (define-public ncdc
   (package
     (name "ncdc")
-    (version "1.20")
+    (version "1.21")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "http://dev.yorhel.nl/download/ncdc-" version
                            ".tar.gz"))
        (sha256 (base32
-                "0ccn7dqbqpqsbglqyalz32c20rjvf1pw0zr88jyvd2b2vxbqi6ca"))))
+                "10hrk7pcvfl9cj6d0kr4qf3l068ikqhccbg7lf25pr2kln9lz412"))))
     (build-system gnu-build-system)
     (inputs
      `(("bzip2" ,bzip2)
diff --git a/gnu/packages/debug.scm b/gnu/packages/debug.scm
index 49e40ee9cd..b035951e26 100644
--- a/gnu/packages/debug.scm
+++ b/gnu/packages/debug.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2014, 2015, 2016, 2017 Eric Bavier <bavier@member.fsf.org>
+;;; Copyright © 2014, 2015, 2016, 2017, 2019 Eric Bavier <bavier@member.fsf.org>
 ;;; Copyright © 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018, 2019 Rutger Helling <rhelling@mykolab.com>
@@ -92,11 +92,10 @@ program to exhibit a bug.")
     ;; home-page pointing to a bsd-2 license.
     (license bsd-3)))
 
-;; Newer versions depend on LLVM and Clang >= 4, which have yet to be packaged.
 (define-public c-reduce
   (package
     (name "c-reduce")
-    (version "2.6.0")
+    (version "2.8.0")
     (source
      (origin
       (method url-fetch)
@@ -105,12 +104,12 @@ program to exhibit a bug.")
                            "creduce-" version ".tar.gz")))
       (sha256
        (base32
-        "0pf5q0n8vkdcr1wrkxn2jzxv0xkrir13bwmqfw3jpbm3dh2c3b6d"))))
+        "1vqx73ymfscvlyig03972a5m7ar3gx2yv6m8c6h2mibz792j5xkp"))))
     (build-system gnu-build-system)
     (inputs
      `(("astyle"          ,astyle)
-       ("llvm"            ,llvm-3.9.1)
-       ("clang"           ,clang-3.9.1)
+       ("llvm"            ,llvm-6)
+       ("clang"           ,clang-6)
        ("flex"            ,flex)
        ("indent"          ,indent)
        ("perl"            ,perl)
@@ -118,11 +117,16 @@ program to exhibit a bug.")
        ("file-which"      ,perl-file-which)
        ("getopt-tabular"  ,perl-getopt-tabular)
        ("regex-common"    ,perl-regexp-common)
-       ("sys-cpu"         ,perl-sys-cpu)
        ("term-readkey"    ,perl-term-readkey)))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
+         (replace 'check
+           (lambda _
+             (with-directory-excursion "tests"
+               ;; Running all tests can take a looong time, and tests 4 and 5
+               ;; require frama-c or kcc.  So run just one for sanity.
+               (invoke "./run_tests" "1"))))
          (add-after 'install 'set-load-paths
            (lambda* (#:key inputs outputs #:allow-other-keys)
              ;; Tell creduce where to find the perl modules it needs.
@@ -137,7 +141,7 @@ program to exhibit a bug.")
                                           ,(package-version perl)))
                          '("term-readkey"    "exporter-lite"
                            "file-which"      "getopt-tabular"
-                           "regex-common"    "sys-cpu")))))
+                           "regex-common")))))
              #t)))))
     (home-page "https://embed.cs.utah.edu/creduce")
     (synopsis "Reducer for interesting code")
diff --git a/gnu/packages/dictionaries.scm b/gnu/packages/dictionaries.scm
index e0cd7604b6..ee038ac8f5 100644
--- a/gnu/packages/dictionaries.scm
+++ b/gnu/packages/dictionaries.scm
@@ -3,7 +3,7 @@
 ;;; Copyright © 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016 Sou Bunnbu <iyzsong@gmail.com>
 ;;; Copyright © 2017, 2018 Nicolas Goaziou <mail@nicolasgoaziou.fr>
-;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Pierre-Antoine Rouby <contact@parouby.fr>
 ;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
 ;;;
@@ -218,15 +218,15 @@ It comes with a German-English dictionary with approximately 270,000 entries.")
 (define-public grammalecte
   (package
     (name "grammalecte")
-    (version "0.6.5")
+    (version "1.0.1")
     (source
      (origin
        (method url-fetch/zipbomb)
-       (uri (string-append "https://www.dicollecte.org/grammalecte/zip/"
+       (uri (string-append "https://grammalecte.net/grammalecte/zip/"
                            "Grammalecte-fr-v" version ".zip"))
        (sha256
         (base32
-         "11byjs3ggdhia5f4vyfqfvbbczsfqimll98h98g7hlsrm7vrifb0"))))
+         "0p005mqgmckkbif3syv3d90rr1zsm5n5vvac5b29nn8g4v8jjpfs"))))
     (build-system python-build-system)
     (home-page "https://grammalecte.net")
     (synopsis  "French spelling and grammar checker")
@@ -245,7 +245,7 @@ and a Python library.")
 (define-public translate-shell
   (package
     (name "translate-shell")
-    (version "0.9.6.9")
+    (version "0.9.6.10")
     (source
       (origin
         (method git-fetch)
@@ -254,13 +254,12 @@ and a Python library.")
                (commit (string-append "v" version))))
         (file-name (git-file-name name version))
         (sha256
-         (base32
-          "1xyf0vdxmbgqcgsr1gvgwh1q4fh080h68radkim6pfcwzffliszm"))))
+         (base32 "1dmh3flldfhnqfay3a6c5hanqcjwrmbly1bq8mlk022qfi1fv33y"))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases
        (modify-phases %standard-phases
-         (delete 'configure)            ; no configure phase
+         (delete 'configure)            ; no configure script
          (add-after 'unpack 'remove-unnecessary-file
            ;; This file gets generated during the build phase.
            (lambda _
diff --git a/gnu/packages/disk.scm b/gnu/packages/disk.scm
index 006a381e26..c8d2af88ca 100644
--- a/gnu/packages/disk.scm
+++ b/gnu/packages/disk.scm
@@ -46,11 +46,11 @@
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages gnupg)
-  #:use-module (gnu packages gnuzilla)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages guile)
   #: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)
   #:use-module (gnu packages popt)
@@ -808,9 +808,9 @@ LVM D-Bus API).")
        ("json-glib" ,json-glib)
        ("libblkid" ,util-linux)))
     (home-page "https://rmlint.rtfd.org")
-    (synopsis "Remove duplicates and other lint from the filesystem")
+    (synopsis "Remove duplicates and other lint from the file system")
     (description "@command{rmlint} finds space waste and other broken things
-on your filesystem and offers to remove it.  @command{rmlint} can find:
+on your file system and offers to remove it.  @command{rmlint} can find:
 
 @itemize
 @item duplicate files and duplicate directories,
diff --git a/gnu/packages/display-managers.scm b/gnu/packages/display-managers.scm
index 502cdde7da..15e7971b4f 100644
--- a/gnu/packages/display-managers.scm
+++ b/gnu/packages/display-managers.scm
@@ -49,92 +49,10 @@
   #:use-module (gnu packages xfce)
   #:use-module (gnu packages xorg))
 
-(define-public greenisland
-  (package
-    (name "greenisland")
-    (version "0.9.0.1")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "https://github.com/greenisland/greenisland"
-                    "/releases/download/v" version "/"
-                    "greenisland-" version ".tar.xz"))
-              (sha256
-               (base32
-                "1flmha31hmii6m2mdvmn1q5dc0fhnvgc4lp1b4wgkz20y7x4f1fm"))))
-    (build-system cmake-build-system)
-    (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("dbus" ,dbus)
-       ("glib:bin" ,glib "bin")
-       ("pkg-config" ,pkg-config)
-       ("xorg-server" ,xorg-server)))
-    (inputs
-     `(("elogind" ,elogind)
-       ("eudev" ,eudev)
-       ("fontconfig" ,fontconfig)
-       ("freetype" ,freetype)
-       ("glib" ,glib)
-       ("libdrm" ,libdrm)
-       ("libinput" ,libinput-minimal)
-       ("libxcursor" ,libxcursor)
-       ("libxkbcommon" ,libxkbcommon)
-       ("libx11" ,libx11)
-       ("mesa" ,mesa)
-       ("qtbase" ,qtbase)
-       ("qtdeclarative" ,qtdeclarative)
-       ("wayland" ,wayland)
-       ("wayland-protocols" ,wayland-protocols)
-       ("xcb-util-cursor" ,xcb-util-cursor)))
-    (arguments
-     `(#:configure-flags
-       (list (string-append "-DPLUGIN_INSTALL_DIR="
-                            (assoc-ref %outputs "out") "/plugins")
-             (string-append "-DQML_INSTALL_DIR="
-                            (assoc-ref %outputs "out") "/qml"))
-       #:modules ((guix build cmake-build-system)
-                  (guix build qt-utils)
-                  (guix build utils))
-       #:imported-modules (,@%cmake-build-system-modules
-                           (guix build qt-utils))
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'disable-udev-tests
-           (lambda _ ; FIXME: Build env doesn't contain /dev/sda
-             (substitute* "tests/auto/platform/tst_udev.cpp"
-               (("QVERIFY") "// QVERIFY")
-               (("QCOMPARE") "// QCOMPARE"))))
-         (replace 'check
-           (lambda _
-             (setenv "DBUS_FATAL_WARNINGS" "0")
-             (invoke "dbus-launch" "ctest" ".")))
-         (add-before 'check 'check-setup
-           (lambda _
-             (setenv "CTEST_OUTPUT_ON_FAILURE" "1") ; Enable debug output
-             ;; make Qt render "offscreen", required for tests
-             (setenv "QT_QPA_PLATFORM" "offscreen")
-             (setenv "XDG_RUNTIME_DIR" (getcwd))
-             #t))
-         (add-after 'install 'wrap-programs
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let ((out (assoc-ref outputs "out")))
-               (wrap-qt-program out "greenisland")
-               (wrap-qt-program out "greenisland-launcher")
-               (wrap-qt-program out "greenisland-screencaster")
-               (wrap-qt-program out "greenisland-wayland-scanner")
-               #t))))))
-    (synopsis "QtQuick Wayland compositor and shell for desktop and mobile")
-    (description "Green Island provides a full blown Wayland compositor for
-QtQuick as well as pluggable hardware abstraction, extensions, tools and a
-Qt-style API for Wayland clients.")
-    (home-page "http://hawaiios.org")
-    ;; Choice of license at the user's opinion.
-    (license (list license:gpl2 license:gpl3 license:lgpl2.1 license:lgpl3))))
-
 (define-public sddm
   (package
     (name "sddm")
-    (version "0.18.0")
+    (version "0.18.1")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -143,7 +61,7 @@ Qt-style API for Wayland clients.")
                     "sddm-" version ".tar.xz"))
               (sha256
                (base32
-                "0icyi9nqgbp2v6dwh3n3jzff9jv2xy8d4rbsz89hd65x7c3hrv87"))))
+                "0nilrhwlyvkngjgxfc08n73c16azgmw80pvx0a78xqww9y3hv4xh"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
diff --git a/gnu/packages/django.scm b/gnu/packages/django.scm
index 8fd29d533a..8ea9dca16a 100644
--- a/gnu/packages/django.scm
+++ b/gnu/packages/django.scm
@@ -519,9 +519,9 @@ project aims to bulk update given objects using one query over Django ORM.")
          (replace 'check
            (lambda _
              ;; the next version will need "make test"
-             (and (zero? (system* "flake8" "contact_form"))
-                  (zero? (system* "coverage" "run" "contact_form/runtests.py"))
-                  (zero? (system* "coverage" "report" "-m" "--fail-under" "0"))))))))
+             (invoke "flake8" "contact_form")
+             (invoke "coverage" "run" "contact_form/runtests.py")
+             (invoke "coverage" "report" "-m" "--fail-under" "0"))))))
     (native-inputs
      `(("python-coverage" ,python-coverage)
        ("python-flake8" ,python-flake8)))
@@ -577,8 +577,7 @@ entries, photos, book chapters, or anything else.")
      `(#:phases
        (modify-phases %standard-phases
          (replace 'check
-           (lambda _
-             (zero? (system* "./test_project/manage.py" "test")))))))
+           (lambda _ (invoke "./test_project/manage.py" "test"))))))
     (propagated-inputs
      `(("python-django" ,python-django)))
     (native-inputs
diff --git a/gnu/packages/dlang.scm b/gnu/packages/dlang.scm
index 2530b8a3c7..3b0c799dc3 100644
--- a/gnu/packages/dlang.scm
+++ b/gnu/packages/dlang.scm
@@ -3,7 +3,7 @@
 ;;; Copyright © 2015, 2018 Pjotr Prins <pjotr.guix@thebird.nl>
 ;;; Copyright © 2017 Frederick Muriithi <fredmanglis@gmail.com>
 ;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
-;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -81,15 +81,15 @@ and freshness without requiring additional information from the user.")
     (package
       (name "ldc")
       (version "0.17.4")
-      (source (origin
-                (method url-fetch)
-                (uri (string-append
-                      "https://github.com/ldc-developers/ldc/archive/v"
-                      version ".tar.gz"))
-                (file-name (string-append name "-" version ".tar.gz"))
-                (sha256
-                 (base32
-                  "1kw0j378k6bh0k66dvx99bjq8ilp8bb24w3jrmibn8rhmqv0d5q8"))))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/ldc-developers/ldc.git")
+               (commit (string-append "v" version))))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "0nnrjavfmpfp7bib04isqlxvyzh6mlvsdan0gxysdz96hlg4hcq8"))))
       (build-system cmake-build-system)
       (supported-systems '("x86_64-linux" "i686-linux" "armhf-linux"))
       (properties
@@ -101,14 +101,19 @@ and freshness without requiring additional information from the user.")
          (modify-phases %standard-phases
            (add-after 'unpack 'unpack-submodule-sources
              (lambda* (#:key inputs #:allow-other-keys)
-               (let ((unpack (lambda (source target)
-                               (with-directory-excursion target
-                                 (zero? (system* "tar" "xvf"
-                                                 (assoc-ref inputs source)
-                                                 "--strip-components=1"))))))
-                 (and (unpack "phobos-src" "runtime/phobos")
-                      (unpack "druntime-src" "runtime/druntime")
-                      (unpack "dmd-testsuite-src" "tests/d2/dmd-testsuite")))))
+               (let ((unpack (lambda (input target)
+                               (let ((source (assoc-ref inputs input)))
+                                 ;; Git checkouts are directories as long as
+                                 ;; there are no patches; tarballs otherwise.
+                                 (if (file-is-directory? source)
+                                     (copy-recursively source target)
+                                     (with-directory-excursion target
+                                       (invoke "tar" "xvf" source
+                                               "--strip-components=1")))))))
+                 (unpack "phobos-src" "runtime/phobos")
+                 (unpack "druntime-src" "runtime/druntime")
+                 (unpack "dmd-testsuite-src" "tests/d2/dmd-testsuite")
+                 #t)))
            (add-after 'unpack-submodule-sources 'patch-dmd2
              (lambda* (#:key inputs #:allow-other-keys)
                (substitute* "dmd2/root/port.c"
@@ -146,32 +151,32 @@ and freshness without requiring additional information from the user.")
          ("unzip" ,unzip)
          ("phobos-src"
           ,(origin
-             (method url-fetch)
-             (uri (string-append
-                   "https://github.com/ldc-developers/phobos/archive/ldc-v"
-                   version ".tar.gz"))
+             (method git-fetch)
+             (uri (git-reference
+                   (url "https://github.com/ldc-developers/phobos.git")
+                   (commit (string-append "ldc-v" version))))
+             (file-name (git-file-name "phobos" version))
              (sha256
-              (base32
-               "16x36kp46mqiihxx7jvr1d3mv3b96yfmhinb9lzinh2m4clr85wz"))
+              (base32 "0i7gh99w4mi0hdv16261jcdiqyv1nkjdcwy9prw32s0lvplx8fdy"))
              (patches (search-patches "ldc-bootstrap-disable-tests.patch"))))
          ("druntime-src"
           ,(origin
-             (method url-fetch)
-             (uri (string-append
-                   "https://github.com/ldc-developers/druntime/archive/ldc-v"
-                   version ".tar.gz"))
+             (method git-fetch)
+             (uri (git-reference
+                   (url "https://github.com/ldc-developers/druntime.git")
+                   (commit (string-append "ldc-v" version))))
+             (file-name (git-file-name "druntime" version))
              (sha256
-              (base32
-               "0iw2xxhcbsc5f1707dgdzhff528363l4faqdk513gaxs2dhfx8vx"))))
+              (base32 "0alabm3bbvs94msvxz5psiwk4f51cw9h82z1p5hhsnf8ja6d0am7"))))
          ("dmd-testsuite-src"
           ,(origin
-             (method url-fetch)
-             (uri (string-append
-                   "https://github.com/ldc-developers/dmd-testsuite/archive/ldc-v"
-                   version ".tar.gz"))
+             (method git-fetch)
+             (uri (git-reference
+                   (url "https://github.com/ldc-developers/dmd-testsuite.git")
+                   (commit (string-append "ldc-v" version))))
+             (file-name (git-file-name "dmd-testsuite" version))
              (sha256
-              (base32
-               "0z6ch930wjkg2vlnqkbliwxxxifad6ydsdpwdxwnajkb2kaxsjx4"))))))
+              (base32 "05qr4cgb4scfqzbw1l5pk72kil074mvj9d55b165ljyr51sgwgbl"))))))
       (home-page "http://wiki.dlang.org/LDC")
       (synopsis "LLVM-based compiler for the D programming language")
       (description
@@ -194,28 +199,33 @@ bootstrapping more recent compilers written in D.")
       (inherit ldc-bootstrap)
       (name "ldc")
       (version "1.10.0")
-      (source (origin
-                (method url-fetch)
-                (uri (string-append
-                      "https://github.com/ldc-developers/ldc/archive/v"
-                      version ".tar.gz"))
-                (file-name (string-append name "-" version ".tar.gz"))
-                (sha256
-                 (base32
-                  "16b1h9kwfggjw6ykc6sfs26ak6vypylsx9wmvp5m6x3cvi6g70yi"))))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/ldc-developers/ldc.git")
+               (commit (string-append "v" version))))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "0qcb2rn01wql7y8qp31blbv3hwmnh3zjgzi2n7k168cxr6rrdhlp"))))
       (arguments
        `(#:phases
          (modify-phases %standard-phases
            (add-after 'unpack 'unpack-submodule-sources
              (lambda* (#:key inputs #:allow-other-keys)
-               (let ((unpack (lambda (source target)
-                               (with-directory-excursion target
-                                 (zero? (system* "tar" "xvf"
-                                                 (assoc-ref inputs source)
-                                                 "--strip-components=1"))))))
-                 (and (unpack "phobos-src" "runtime/phobos")
-                      (unpack "druntime-src" "runtime/druntime")
-                      (unpack "dmd-testsuite-src" "tests/d2/dmd-testsuite")))))
+               (let ((unpack (lambda (input target)
+                               (let ((source (assoc-ref inputs input)))
+                                 ;; Git checkouts are directories as long as
+                                 ;; there are no patches; tarballs otherwise.
+                                 (if (file-is-directory? source)
+                                     (copy-recursively source target)
+                                     (with-directory-excursion target
+                                       (invoke "tar" "xvf" source
+                                               "--strip-components=1")))))))
+                 (unpack "phobos-src" "runtime/phobos")
+                 (unpack "druntime-src" "runtime/druntime")
+                 (unpack "dmd-testsuite-src" "tests/d2/dmd-testsuite")
+                 #t)))
            (add-after 'unpack-submodule-sources 'patch-phobos
              (lambda* (#:key inputs #:allow-other-keys)
                (substitute* '("runtime/phobos/std/process.d"
@@ -223,7 +233,7 @@ bootstrapping more recent compilers written in D.")
                  (("/bin/sh") (which "sh"))
                  (("echo") (which "echo")))
                (substitute* "tests/d2/dmd-testsuite/Makefile"
-                            (("/bin/bash") (which "bash")))
+                 (("/bin/bash") (which "bash")))
                ;; disable unittests in the following files. We are discussing with
                ;; upstream
                (substitute* '("runtime/phobos/std/net/curl.d"
@@ -240,14 +250,14 @@ bootstrapping more recent compilers written in D.")
                (delete-file "tests/plugins/addFuncEntryCall/testPlugin.d")
                ;; the following tests requires AVX instruction set in the CPU.
                (substitute* "tests/d2/dmd-testsuite/runnable/test_cdvecfill.d"
-                (("^// DISABLED: ") "^// DISABLED: linux64 "))
+                 (("^// DISABLED: ") "^// DISABLED: linux64 "))
                #t))
            (replace 'check
-                    (lambda* (#:key inputs outputs #:allow-other-keys)
-                      ;; some tests call into gdb binary which needs SHELL and CC set
-                      (setenv "SHELL" (which "sh"))
-                      (setenv "CC" (string-append (assoc-ref inputs "gcc") "/bin/gcc"))
-                      (invoke "make" "test" "-j" (number->string (parallel-job-count))))))))
+             (lambda* (#:key inputs outputs #:allow-other-keys)
+               ;; some tests call into gdb binary which needs SHELL and CC set
+               (setenv "SHELL" (which "sh"))
+               (setenv "CC" (string-append (assoc-ref inputs "gcc") "/bin/gcc"))
+               (invoke "make" "test" "-j" (number->string (parallel-job-count))))))))
       (native-inputs
        `(("llvm" ,llvm-6)
          ("clang" ,clang-6)
@@ -258,13 +268,13 @@ bootstrapping more recent compilers written in D.")
          ("gdb" ,gdb)
          ("phobos-src"
           ,(origin
-             (method url-fetch)
-             (uri (string-append
-                   "https://github.com/ldc-developers/phobos/archive/ldc-v"
-                   older-version ".tar.gz"))
+             (method git-fetch)
+             (uri (git-reference
+                   (url "https://github.com/ldc-developers/phobos.git")
+                   (commit (string-append "ldc-v" older-version))))
+             (file-name (git-file-name "phobos" older-version))
              (sha256
-              (base32
-               "0cpmrww00xf1qx38bcc22rr05qw41p00p45yb5fbwnfaccfwdn0s"))
+              (base32 "1gmlwnjdcf6s5aahadxsif9l5nyaj0rrn379g6fmhcvdk64kf509"))
              ;; This patch deactivates some tests that depend on network access
              ;; to pass.  It also deactivates some tests that have some reliance
              ;; on timezone.
@@ -277,36 +287,37 @@ bootstrapping more recent compilers written in D.")
              (patches (search-patches "ldc-disable-phobos-tests.patch"))))
          ("druntime-src"
           ,(origin
-             (method url-fetch)
-             (uri (string-append
-                   "https://github.com/ldc-developers/druntime/archive/ldc-v"
-                   older-version ".tar.gz"))
+             (method git-fetch)
+             (uri (git-reference
+                   (url "https://github.com/ldc-developers/druntime.git")
+                   (commit (string-append "ldc-v" older-version))))
+             (file-name (git-file-name "druntime" older-version))
              (sha256
-              (base32
-               "1akh2vdi98jih8642yjbvv2vavxzrmq24kz8i3kfidg5ndqyv222"))))
+              (base32 "0a3yyjcnpvm5fbdczf76fx08kl154w17w06hlxf0j3p1p4jc85aj"))))
          ("dmd-testsuite-src"
           ,(origin
-             (method url-fetch)
-             (uri (string-append
-                   "https://github.com/ldc-developers/dmd-testsuite/archive/ldc-v"
-                   older-version ".tar.gz"))
+             (method git-fetch)
+             (uri (git-reference
+                   (url "https://github.com/ldc-developers/dmd-testsuite.git")
+                   (commit (string-append "ldc-v" older-version))))
+             (file-name (git-file-name "dmd-testsuite" older-version))
              (sha256
-              (base32
-               "0z5x07qrbkpksshaymp11ir6jlmg9wjicxn6zhp8cya6i1ha9p99")))))))))
+              (base32 "0mm3rliki1nqiqfaha7ssvm156aa398vpvf4v6895m7nn1mz7rss")))))))))
 
 (define-public dub
   (package
     (name "dub")
     (version "1.7.2")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://github.com/dlang/dub/archive/"
-                                  "v" version ".tar.gz"))
-              (file-name (string-append name "-" version ".tar.gz"))
-              (sha256
-               (base32
-                "1jvr1mmq8j77wnsrsg7x2xv8yfljqd6x8gn6yy7dd6h6y3cf408q"))))
-   (build-system gnu-build-system)
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/dlang/dub.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "073ibvgm1gphcqs1yjrav9ryp677nh3b194nxmvicwgvdc0sb6w9"))))
+    (build-system gnu-build-system)
     (arguments
      `(#:tests? #f ; it would have tested itself by installing some packages (vibe etc)
        #:phases
diff --git a/gnu/packages/dns.scm b/gnu/packages/dns.scm
index 461d9f8c0c..ec10254c97 100644
--- a/gnu/packages/dns.scm
+++ b/gnu/packages/dns.scm
@@ -11,6 +11,7 @@
 ;;; Copyright © 2017 Gregor Giesen <giesen@zaehlwerk.net>
 ;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
 ;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com>
+;;; Copyright © 2019 Chris Marusich <cmmarusich@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -51,6 +52,7 @@
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages protobuf)
   #:use-module (gnu packages python)
+  #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages swig)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages web)
@@ -106,7 +108,7 @@ and BOOTP/TFTP for network booting of diskless machines.")
 (define-public isc-bind
   (package
     (name "bind")
-    (version "9.12.3-P4")
+    (version "9.12.4-P1")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -114,7 +116,9 @@ and BOOTP/TFTP for network booting of diskless machines.")
                     "/bind-" version ".tar.gz"))
               (sha256
                (base32
-                "01pj47z5582rd538dmbzf1msw4jc8j4zr0zx4ciy88r6qr9l80fi"))))
+                "1if7zc5gzrfd28csc63v9bjwrc0rgvm1x9yx058946hc5gp5lyp2"))
+              (patches
+               (search-patches "bind-fix-unused-pk11-ecc-constants.patch"))))
     (build-system gnu-build-system)
     (outputs `("out" "utils"))
     (inputs
@@ -122,7 +126,9 @@ and BOOTP/TFTP for network booting of diskless machines.")
      `(("libcap" ,libcap)
        ("libxml2" ,libxml2)
        ("openssl" ,openssl)
-       ("p11-kit" ,p11-kit)))
+       ("p11-kit" ,p11-kit)
+       ("python" ,python)
+       ("python-ply" ,python-ply)))
     (native-inputs `(("perl" ,perl)
                      ("net-tools" ,net-tools)))
     (arguments
@@ -294,14 +300,14 @@ asynchronous fashion.")
 (define-public nsd
   (package
     (name "nsd")
-    (version "4.1.26")
+    (version "4.1.27")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://www.nlnetlabs.nl/downloads/nsd/nsd-"
                            version ".tar.gz"))
        (sha256
-        (base32 "1x0mvj4872dzj1rr9adnchdm4dhn41xmc459p5j4s0r13m1l32lz"))))
+        (base32 "1sjfbwr4vq25304hr9vmd9j821g2vzv8lpy95hpsravc80q5zaqv"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags
@@ -569,23 +575,21 @@ Extensions} (DNSSEC).")
 (define-public knot
   (package
     (name "knot")
-    (version "2.8.0")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://secure.nic.cz/files/knot-dns/"
-                                  "knot-" version ".tar.xz"))
-              (sha256
-               (base32
-                "1vw7xx7bm440jwrpvdd04vrp6ccz2b11swcn9msvs62hf0kdjjj9"))
-              (patches
-               (search-patches "knot-include-system-lmdb-header.patch"))
-              (modules '((guix build utils)))
-              (snippet
-               '(begin
-                  ;; Delete bundled libraries.
-                  (with-directory-excursion "src/contrib"
-                    (delete-file-recursively "lmdb"))
-                  #t))))
+    (version "2.8.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://secure.nic.cz/files/knot-dns/"
+                           "knot-" version ".tar.xz"))
+       (sha256
+        (base32 "1im2wb8hl394mzni1wavmvfqd7il8s28kcz8w3s4v05nbhzg06xj"))
+       (modules '((guix build utils)))
+       (snippet
+        '(begin
+           ;; Delete bundled libraries.
+           (with-directory-excursion "src/contrib"
+             (delete-file-recursively "lmdb"))
+           #t))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)))
@@ -809,3 +813,53 @@ mDNS resolver as well as an announcer.  mDNS (Multicast Domain Name System) is
 a zero-config service that allows one to resolve host names to IP addresses in
 local networks.")
     (license license:lgpl2.1)))
+
+(define-public public-suffix-list
+  ;; Mozilla releases the official list here:
+  ;;
+  ;;   https://publicsuffix.org/list/public_suffix_list.dat
+  ;;
+  ;; However, Mozilla syncs that file from the GitHub repository periodically,
+  ;; so its contents will change over time.  If you update this commit, please
+  ;; make sure that the new commit refers to a list which is identical to the
+  ;; officially published list available from the URL above.
+  (let ((commit "9375b697baddb0827a5995c81bd3c75877a0b35d"))
+    (package
+      (name "public-suffix-list")
+      (version (git-version "0" "1" commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/publicsuffix/list.git")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "1sm7pni01rnl4ldzi8z8nc4cbgq8nxda9gwc68v0s3ij7jd1jmik"))))
+      (build-system trivial-build-system)
+      (arguments
+       `(#:modules ((guix build utils))
+         #:builder
+         (begin
+           (use-modules (guix build utils))
+           (let* ((out (assoc-ref %outputs "out"))
+                  ;; Install to /share because that is where "read-only
+                  ;; architecture-independent data files" should go (see:
+                  ;; (standards) Directory Variables).  Include the version in
+                  ;; the directory name so that if multiple versions are ever
+                  ;; installed in the same profile, they will not conflict.
+                  (destination (string-append
+                                out "/share/public-suffix-list-" ,version))
+                  (source (assoc-ref %build-inputs "source")))
+             (with-directory-excursion source
+             (install-file "public_suffix_list.dat" destination)
+             (install-file "LICENSE" destination))
+             #t))))
+      (home-page "https://publicsuffix.org/")
+      (synopsis "Database of current and historical DNS suffixes")
+      (description "This is the Public Suffix List maintained by Mozilla.  A
+\"public suffix\" is one under which Internet users can (or historically
+could) directly register names in the Domain Name System (DNS).  Some examples
+of public suffixes are .com, .co.uk and pvt.k12.ma.us.  This is a list of all
+known public suffixes.")
+      (license license:mpl2.0))))
diff --git a/gnu/packages/docker.scm b/gnu/packages/docker.scm
index 88fc7fc6ec..39e7e8108b 100644
--- a/gnu/packages/docker.scm
+++ b/gnu/packages/docker.scm
@@ -43,7 +43,7 @@
   #:use-module (gnu packages version-control)
   #:use-module (gnu packages virtualization))
 
-(define %docker-version "18.09.3")
+(define %docker-version "18.09.5")
 
 (define-public python-docker-py
   (package
@@ -227,6 +227,8 @@ network attachments.")
     (home-page "http://containerd.io/")
     (license license:asl2.0)))
 
+;; TODO: Patch out modprobes for ip_vs, nf_conntrack,
+;; brige, nf_conntrack_netlink, aufs.
 (define-public docker
   (package
     (name "docker")
@@ -239,10 +241,11 @@ network attachments.")
             (commit (string-append "v" version))))
       (file-name (git-file-name name version))
       (sha256
-       (base32 "06yr5xwr181lalh8z1lk07nxlp7hn38aq8cyqjk617dfy4lz0ixx"))
+       (base32 "0cirpd9l2qazp2jyanwzvrkx2m98nksjdvn43ff38p89w6133ipb"))
       (patches
        (search-patches "docker-engine-test-noinstall.patch"
-                       "docker-fix-tests.patch"))))
+                       "docker-fix-tests.patch"
+                       "docker-use-fewer-modprobes.patch"))))
     (build-system gnu-build-system)
     (arguments
      `(#:modules
@@ -484,7 +487,7 @@ provisioning etc.")
             (commit (string-append "v" version))))
       (file-name (git-file-name name version))
       (sha256
-       (base32 "09j1i668p330gjz5vw5pss8ghxh1mz7rl2q9ykp02q9p112zhy4j"))))
+       (base32 "0mxxjzkwdny8p2dmyjich7x1gn7hdlfppzjy2skk2k5bwv7nxpmi"))))
     (build-system go-build-system)
     (arguments
      `(#:import-path "github.com/docker/cli"
diff --git a/gnu/packages/dunst.scm b/gnu/packages/dunst.scm
index 7328e442cf..31b7f58758 100644
--- a/gnu/packages/dunst.scm
+++ b/gnu/packages/dunst.scm
@@ -73,6 +73,6 @@
     (synopsis "Customizable and lightweight notification daemon")
     (description
      "Dunst is a highly configurable and minimalistic notification daemon.
-It provides 'org.freedesktop.Notifications' D-Bus service, so it is
+It provides @code{org.freedesktop.Notifications} D-Bus service, so it is
 started automatically on the first call via D-Bus.")
     (license license:bsd-3)))
diff --git a/gnu/packages/elf.scm b/gnu/packages/elf.scm
index 1f8263b9c5..99f49eb7a7 100644
--- a/gnu/packages/elf.scm
+++ b/gnu/packages/elf.scm
@@ -96,14 +96,14 @@ Executable and Linkable Format (@dfn{ELF}).  This includes @command{ld},
   (package
     (name "libabigail")
     (home-page "https://sourceware.org/libabigail/")
-    (version "1.5")
+    (version "1.6")
     (source (origin
               (method url-fetch)
-              (uri (string-append "https://sourceware.org/pub/" name
-                                  "/" name "-" version ".tar.gz"))
+              (uri (string-append "https://sourceware.org/pub/libabigail/"
+                                  "libabigail-" version ".tar.gz"))
               (sha256
                (base32
-                "0srfnkbm386sl2n85686nl28da6ksbs7jgnfks9k0n61c772aas4"))))
+                "04j07lhvwbp6qp8pdwbf7iqnr7kgpabmqylsw4invpmzwnyp6g6g"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags '("--disable-static"
diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index 0f040b2b07..f2e815c630 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -44,6 +44,7 @@
 ;;; Copyright © 2018, 2019 Brett Gilio <brettg@posteo.net>
 ;;; Copyright © 2019 Dimakakos Dimos <bendersteed@teknik.io>
 ;;; Copyright © 2019 Brian Leung <bkleung89@gmail.com>
+;;; Copyright © 2019 mikadoZero <mikadozero@yandex.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -722,6 +723,29 @@ can take association lists, hash tables, and in some cases vectors (where the
 index is considered the key).")
     (license license:gpl3+)))
 
+(define-public emacs-ace-jump-mode
+  (package
+    (name "emacs-ace-jump-mode")
+    (version "2.0")
+    (home-page "https://github.com/winterTTr/ace-jump-mode")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url home-page)
+                    (commit (string-append "v" version))))
+              (sha256
+               (base32
+                "1bwvzh056ls2v7y26a0s4j5mj582dmds04lx4x6iqihs04ss74bb"))
+              (file-name (git-file-name name version))))
+    (build-system emacs-build-system)
+    (synopsis "Cursor location minor mode for fast navigation")
+    (description "Ace-jump-mode is a fast/direct cursor location minor
+mode.  It creates an N-Branch search tree internally and marks all
+the possible position with predefined keys in within the whole Emacs
+view.  This allows you to move to the character, word, or line almost
+directly.")
+    (license license:gpl3+)))
+
 (define-public emacs-anaphora
   (package
     (name "emacs-anaphora")
@@ -750,7 +774,7 @@ in certain cases.  It also enables recursion for anonymous functions.")
 (define-public emacs-xr
   (package
     (name "emacs-xr")
-    (version "1.9")
+    (version "1.10")
     (source
      (origin
        (method url-fetch)
@@ -758,7 +782,7 @@ in certain cases.  It also enables recursion for anonymous functions.")
              "https://elpa.gnu.org/packages/xr-" version ".tar"))
        (sha256
         (base32
-         "1mcild3034f4c1x8x05w9q0ps70i1nihvih22cmh3wj4cgllg5w0"))))
+         "16p68rj5h609pnbp7y0jiiq1zkbksh4qqi1q8yby3ldj5x9sfpwc"))))
     (build-system emacs-build-system)
     (home-page "http://elpa.gnu.org/packages/xr.html")
     (synopsis "Convert string regexp to rx notation")
@@ -777,6 +801,29 @@ skip set strings, which are arguments to @code{skip-chars-forward} and
 @code{skip-chars-backward}.")
     (license license:gpl3+)))
 
+(define-public emacs-relint
+  (package
+    (name "emacs-relint")
+    (version "1.6")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://elpa.gnu.org/packages/relint-" version ".el"))
+       (sha256
+        (base32
+         "17nyy3zqpqgs22lrrpdm0k56xnhj5l3y2y3lnmhcqw63xksgbsyk"))))
+    (build-system emacs-build-system)
+    (propagated-inputs `(("emacs-xr" ,emacs-xr)))
+    (home-page "https://github.com/mattiase/relint")
+    (synopsis "Elisp regexp mistake finder")
+    (description
+     "Relint (regular expression lint) scans Elisp files for mistakes in
+regexps, including deprecated syntax and bad practice.  It also checks the
+regexp-like arguments to @code{skip-chars-forward} and
+@code{skip-chars-backward}.")
+    (license license:gpl3+)))
+
 
 ;;;
 ;;; Web browsing.
@@ -1094,6 +1141,34 @@ within a specified width.  It is useful for displaying long track titles.")
 ;;; Miscellaneous.
 ;;;
 
+(define-public emacs-ace-link
+  (package
+    (name "emacs-ace-link")
+    (version "0.5.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/abo-abo/ace-link.git")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "147dz79vg4ym5wg3d544bw2khdb2j3hr73rw4qfm64wf0q2dj0vk"))))
+    (build-system emacs-build-system)
+    (propagated-inputs
+     `(("emacs-avy" ,emacs-avy)))
+    (home-page "https://github.com/abo-abo/ace-link")
+    (synopsis "Quickly follow links in Emacs")
+    (description
+     "Currently, to jump to a link in a @code{Info-mode}, @code{help-mode},
+@code{woman-mode}, @code{org-mode}, @code{eww-mode}, @code{compilation-mode},
+@code{goto-address-mode} buffer, you can tab through the links to select the
+one you want.  This is an O(N) operation, where the N is the amount of links.
+This package turns this into an O(1) operation.  It does so by assigning a
+letter to each link using avy.")
+    (license license:gpl3+)))
+
 (define-public emacs-bbdb
   (package
     (name "emacs-bbdb")
@@ -1158,19 +1233,45 @@ always indented.  It reindents after every change, making it more reliable
 than @code{electric-indent-mode}.")
     (license license:gpl2+)))
 
+(define-public emacs-link-hint
+  ;; Last release was in 2015.
+  (let ((commit "d74a483652486260c052941fedeadddb1ea71f88")
+        (revision "1"))
+    (package
+      (name "emacs-link-hint")
+      (version (git-version "0.1" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/noctuid/link-hint.el")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "0dghxd165fbds6czy9bfwpid3i4irgp3q08n9mg57sfifi0cmij0"))))
+      (build-system emacs-build-system)
+      (propagated-inputs
+       `(("emacs-avy" ,emacs-avy)))
+      (home-page "https://github.com/noctuid/link-hint.el")
+      (synopsis "Vimperator-style link-hinting in Emacs")
+      (description "This package provides commands for visiting and acting on
+links.")
+      (license license:gpl3+))))
+
 (define-public emacs-ag
   (package
     (name "emacs-ag")
     (version "0.47")
     (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "https://github.com/Wilfred/ag.el/archive/"
-                    version ".tar.gz"))
-              (file-name (string-append name "-" version ".tar.gz"))
+              (method git-fetch)
+              (uri (git-reference
+                     (url "https://github.com/Wilfred/ag.el.git")
+                     (commit version)))
+              (file-name (git-file-name name version))
               (sha256
                (base32
-                "1rlmp6wnyhqfg86dbz17r914msp58favn4kd4yrdwyia265a4lar"))))
+                "15kp99vwyi7hb1jkq3lwvqzw3v62ycixsq6y4pd1x0nn2v5p5m5r"))))
     (build-system emacs-build-system)
     (arguments
      `(#:phases
@@ -1262,13 +1363,14 @@ or XEmacs.")
     (version "0.2.2")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/sebastiansturm/autothemer/archive/"
-                           version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+              (url "https://github.com/sebastiansturm/autothemer.git")
+              (commit version)))
+       (file-name (git-file-name name version))
        (sha256
         (base32
-         "0rd28r9wfrbll212am4ih9hrvypx785aff76va2cbfxdwm9kixsa"))))
+         "0cd2pqh6k32sjidkcd8682y4l6mx52xw4a05f38kk8nsrk28m74k"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-dash" ,emacs-dash)))
@@ -1322,14 +1424,14 @@ searches.  Unlike code@{emacs-wiki.el}, it can be combined with any format.")
     (version "1.6")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append
-             "https://github.com/kiwanami/emacs-calfw/archive/v"
-             version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+              (url "https://github.com/kiwanami/emacs-calfw.git")
+              (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
        (sha256
         (base32
-         "1zr91xr0f1xfcv78yxka8vs5ximmq2ixmqf2pkb57kwwnxlypq4i"))))
+         "0r42cagvmvvib76kd15nd9ix55ys6i549vxnls4z16s864695zpa"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-howm" ,emacs-howm)))
@@ -1343,17 +1445,17 @@ Emacs buffer.")
 (define-public emacs-direnv
   (package
     (name "emacs-direnv")
-    (version "1.2.0")
+    (version "1.5.0")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append
-             "https://github.com/wbolster/emacs-direnv/archive/"
-             version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+              (url "https://github.com/wbolster/emacs-direnv.git")
+              (commit version)))
+       (file-name (git-file-name name version))
        (sha256
         (base32
-         "0m9nxawklhiiysyibzzhh2zkxgq1fskqvaqb06f7r8dnhabfy9fr"))))
+         "02blhinkkfh3iai6j1k5swplf5mkwijy3p7wy38rnd1gnyj2z4la"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("dash" ,emacs-dash)
@@ -1461,13 +1563,14 @@ written in the Go programming language.")
     (name "emacs-google-maps")
     (version "1.0.0")
     (source (origin
-              (method url-fetch)
-              (uri (string-append "https://github.com/jd/google-maps.el/"
-                                  "archive/" version ".tar.gz"))
-              (file-name (string-append name "-" version ".tar.gz"))
+              (method git-fetch)
+              (uri (git-reference
+                     (url "https://github.com/jd/google-maps.el.git")
+                     (commit version)))
+              (file-name (git-file-name name version))
               (sha256
                (base32
-                "014bxapm4d8vjxbzrfjdpsavxyfx981mlcb10aq5rmigr6il8ybs"))))
+                "183igr5lp20zcqi7rc01fk76sfxdhksd74i11v16gdsifdkjimd0"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/jd/google-maps.el")
     (synopsis "Access Google Maps from Emacs")
@@ -1487,7 +1590,7 @@ Maps directly inside Emacs.")
                 (uri (git-reference
                       (url "https://github.com/ppareit/graphviz-dot-mode.git")
                       (commit commit)))
-                (file-name (string-append name "-" version "-checkout"))
+                (file-name (git-file-name name version))
                 (sha256
                  (base32
                   "0j1r2rspaakw37b0mx7pwpvdsvixq9sw3xjbww5piihzpdxz58z1"))))
@@ -1527,24 +1630,18 @@ diagrams.")
 (define-public emacs-mmm-mode
   (package
     (name "emacs-mmm-mode")
-    (version "0.5.5")
+    (version "0.5.7")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append
-             "https://github.com/purcell/mmm-mode/archive/"
-             version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+              (url "https://github.com/purcell/mmm-mode.git")
+              (commit version)))
+       (file-name (git-file-name name version))
        (sha256
         (base32
-         "0c5ing3hcr74k78hqhrfwiv6m3n8hqfrw89j2x34vf60f4iyqzqc"))))
+         "0lxd55yhz0ag7v1ydff55bg4h8snq5lbk8cjwxqpyq6gh4v7md1h"))))
     (build-system gnu-build-system)
-    (arguments
-     '(#:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'autogen
-           (lambda _
-             (invoke "sh" "autogen.sh"))))))
     (native-inputs
      `(("autoconf" ,autoconf)
        ("automake" ,automake)
@@ -1562,14 +1659,14 @@ single buffer.")
     (name "emacs-tablist")
     (version "0.70")
     (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "https://github.com/politza/tablist/archive/v"
-                    version ".tar.gz"))
-              (file-name (string-append name "-" version ".tar.gz"))
+              (method git-fetch)
+              (uri (git-reference
+                     (url "https://github.com/politza/tablist.git")
+                     (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
               (sha256
                (base32
-                "177d6s7ym1mwz1nhnl09r14z3n093g9a2szm97xsaig0c204xz9c"))))
+                "0gy9hxm7bca0l1hfy2pzn86avpifrz3bs8xzpicj4kxw5wi4ygns"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/politza/tablist")
     (synopsis "Extension for @code{tabulated-list-mode}")
@@ -1684,7 +1781,7 @@ and stored in memory.")
               (uri (git-reference
                     (url "https://notabug.org/alezost/emacs-bui.git")
                     (commit (string-append "v" version))))
-              (file-name (string-append name "-" version "-checkout"))
+              (file-name (git-file-name name version))
               (sha256
                (base32
                 "0sszdl4kvqbihdh8d7mybpp0d8yw2p3gyiipjcxz9xhvvmw3ww4x"))))
@@ -1783,7 +1880,7 @@ management tasks from Emacs.  To begin with, run @code{M-x guix-about} or
               (uri (git-reference
                     (url "https://notabug.org/alezost/emacs-build-farm.git")
                     (commit (string-append "v" version))))
-              (file-name (string-append name "-" version "-checkout"))
+              (file-name (git-file-name name version))
               (sha256
                (base32
                 "0i0bwbav5861j2y15j9nd5m9rdqg9q97zgcbld8pivr9nyxy63lz"))))
@@ -1804,15 +1901,15 @@ evaluations.  The entry point is @code{M-x build-farm} command.")
   (package
     (name "emacs-d-mode")
     (version "2.0.9")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "https://github.com/Emacs-D-Mode-Maintainers/Emacs-D-Mode/"
-                    "archive/" version ".tar.gz"))
-              (file-name (string-append name "-" version ".tar.gz"))
-              (sha256
-               (base32
-                "127aa77ix3p7w4g339bx026df9y649dahlr3v359z0hs40zjz3kd"))))
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/Emacs-D-Mode-Maintainers/Emacs-D-Mode.git")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0fzplvi1sm8k2sabfdvrd7j2xypwqh0g9v1mxa75dajdmcd85zpj"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-undercover" ,emacs-undercover)))
@@ -1870,7 +1967,7 @@ in the center.")
               (uri (git-reference
                     (url "http://dr-qubit.org/git/undo-tree.git")
                     (commit (string-append "release/" version))))
-              (file-name (string-append name "-" version "-checkout"))
+              (file-name (git-file-name name version))
               (sha256
                (base32
                 "1hnh2mnmw179gr094r561w6cw1haid0lpvpqvkc24wpj82vphzpa"))))
@@ -1886,19 +1983,19 @@ allows easily move between them.")
   (package
     (name "emacs-s")
     (version "1.12.0")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "https://github.com/magnars/s.el/archive/"
-                    version ".tar.gz"))
-              (file-name (string-append name "-" version ".tar.gz"))
-              (sha256
-               (base32
-                "0xbl75863pcm806zg0x1lw7qznzjq2c8320k8js7apyag8q4srvh"))))
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/magnars/s.el.git")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1g8mqd13llj007al4nlxxx4z2lcsg3wk970mgjn0avwrhjjgdmmv"))))
     (build-system emacs-build-system)
     (arguments
      `(#:tests? #t
-       #:emacs ,emacs ; FIXME: tests fail with emacs-minimal
+       #:emacs ,emacs                   ; FIXME: tests fail with emacs-minimal
        #:test-command '("./run-tests.sh")))
     (home-page "https://github.com/magnars/s.el")
     (synopsis "Emacs string manipulation library")
@@ -1912,13 +2009,13 @@ strings.")
     (version "20160630")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/zk-phi/symon/archive/"
-                           version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/zk-phi/symon.git")
+             (commit version)))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "0h4jcgdnq98wc9rj72nwyazq8498yg55jfljiij5qwbn1xf1g5zz"))))
+        (base32 "1q7di9s8k710nx98wnqnbkkhdimrn0jf6z4xkm4c78l6s5idjwlz"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/zk-phi/symon")
     (synopsis "Tiny graphical system monitor")
@@ -1980,15 +2077,15 @@ files and directories.")
   (package
     (name "emacs-git-gutter")
     (version "0.90")
-    (source (origin
-             (method url-fetch)
-             (uri (string-append
-                   "https://github.com/syohex/" name "/archive/"
-                   version ".tar.gz"))
-             (file-name (string-append name "-" version ".tar.gz"))
-             (sha256
-              (base32
-               "1nmhvhpq1l56mj2yq3ag23rw3x4xgnsy8szp30s26l0yjnkhc4qg"))))
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/syohex/emacs-git-gutter.git")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1abagq0psip7cgsqbfjv72qy60ywsny0ibsfcn74ldj6a9v17mz5"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/syohex/emacs-git-gutter")
     (synopsis "See and manage hunks of text in a version control system")
@@ -2061,13 +2158,13 @@ This package also includes relevant snippets for yasnippet.")
     (version "1.25.1")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/rejeep/el-mock.el/"
-                           "archive/v" version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/rejeep/el-mock.el.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "16xw94n58xxn3zvgyj72bmzs0k5lkvswjmzs79ws9n7rzdivb38b"))))
+        (base32 "13mv1rhgkwiww2wh5w926jz7idppp492wir1vdl245c5x50dh4f7"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/rejeep/el-mock.el")
     (synopsis "Tiny mock and stub framework in Emacs Lisp")
@@ -2083,13 +2180,13 @@ Expectations, but it can be used in other contexts.")
     (version "0.3.3")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/ecukes/espuds/"
-                           "archive/v" version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/ecukes/espuds.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "0xv551376pbmh735a3zjwc9z4qdx6ngj1vpq3xqjpn0a1rwjyn4k"))))
+        (base32 "16r4j27j9yfdiy841w9q5ykkc6n3wrm7hvfacagb32mydk821ijg"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-s" ,emacs-s)
@@ -2130,15 +2227,15 @@ port of @code{cl-spark} to Emacs Lisp.")
   (package
     (name "emacs-es-mode")
     (version "4.3.0")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "https://github.com/dakrone/es-mode/archive/"
-                    version ".tar.gz"))
-              (file-name (string-append name "-" version ".tar.gz"))
-              (sha256
-               (base32
-                "0y86qdcb3g7fkcb4pzsjh3syzql6w3314hg1wqxq4a8bbk3y0cgr"))))
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/dakrone/es-mode.git")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1qhfnd5anp5qrmravv7ks5ix763xnki2f5jwcyj70qyxwr0l60cg"))))
     (build-system emacs-build-system)
     (propagated-inputs
      ;; The version of org in Emacs 24.5 is not sufficient, and causes tables
@@ -2162,13 +2259,13 @@ mode, which displays information about Elasticsearch clusters.")
     (version "0.11.0")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/magnars/expand-region.el"
-                           "/archive/" version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/magnars/expand-region.el.git")
+             (commit version)))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "08dy1f411sh9wwww53rjw80idcf3vpki6ba2arl4hl5jcw9651g0"))))
+        (base32 "0h40dhc3kn8fq86xnwi5lz7ql8my8737y7wkqr897p15y90swr35"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/magnars/expand-region.el")
     (synopsis "Increase selected region by semantic units")
@@ -2184,13 +2281,13 @@ keep pressing the key until it selects what you want.  There's also
     (version "1.89")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/alpaker/Fill-Column-Indicator"
-                           "/archive/v" version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/alpaker/Fill-Column-Indicator.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "09ab01np14bdcsr38xf95kpnvxzqr46mdjmphg3pigwnx39a3jvg"))))
+        (base32 "010kf8jsly74y7m6mmkn1h6y205kz23zphs50zgy2nag2p88rz9y"))))
     (build-system emacs-build-system)
     (home-page "https://www.emacswiki.org/emacs/FillColumnIndicator")
     (synopsis "Graphically indicate the fill column")
@@ -2203,15 +2300,15 @@ column by drawing a thin line down the length of the editing window.")
   (package
     (name "emacs-grep-a-lot")
     (version "1.0.7")
-    (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                    (url "https://github.com/ZungBang/emacs-grep-a-lot.git")
-                    (commit "9f9f645b9e308a0d887b66864ff97d0fca1ba4ad")))
-              (file-name (string-append name "-" version "-checkout"))
-              (sha256
-               (base32
-                "1f8262mrlinzgnn4m49hbj1hm3c1mvzza24py4b37sasn49546lw"))))
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/ZungBang/emacs-grep-a-lot.git")
+             (commit "9f9f645b9e308a0d887b66864ff97d0fca1ba4ad")))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1f8262mrlinzgnn4m49hbj1hm3c1mvzza24py4b37sasn49546lw"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/ZungBang/emacs-grep-a-lot")
     (synopsis "Enables multiple grep buffers in Emacs")
@@ -2225,13 +2322,13 @@ column by drawing a thin line down the length of the editing window.")
     (version "2.5.1")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/nonsequitur/inf-ruby/"
-                           "archive/" version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/nonsequitur/inf-ruby.git")
+             (commit version)))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "0m7323k649ckxql1grsdnf71bjhys7l4qb8wbpphb1mr1q8i4066"))))
+        (base32 "1r452h6cyypqlc59q8dx5smkwhck4qjcg1pf9qdw539cpva5q77z"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/nonsequitur/inf-ruby")
     (synopsis "Provides a REPL buffer connected to a Ruby subprocess in Emacs")
@@ -2268,13 +2365,13 @@ IRC bouncer with ERC.")
     (version "0.3.2")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/cask/shut-up/"
-                           "archive/v" version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/cask/shut-up.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "09kzrjdkb569iviyg7ydwq44yh84m3f9hkl7jizfrlk0w4gz67d1"))))
+        (base32 "103yvfgkj78i4bnv1fwk76izsa8h4wyj3vwj1vq7xggj607hkxzq"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/cask/shut-up")
     (synopsis "Silence Emacs")
@@ -2288,13 +2385,13 @@ Emacs shell script.")
     (version "0.6.0")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/sviridov/undercover.el/"
-                           "archive/v" version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/sviridov/undercover.el.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "0f48fi0xnbsqs382rgh85m9mq1wdnr0yib7as9xhwzvq0hsr5m0a"))))
+        (base32 "06qcvbp5rd0kh3ibrxj5p6r578lwsrgd7yj5c6slwmkdmna2fj33"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-dash" ,emacs-dash)
@@ -2312,13 +2409,13 @@ Lisp.")
     (version "1.0.0")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/tarsius/paren-face/archive/"
-                           version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/tarsius/paren-face.git")
+             (commit version)))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "0y4qrhxa9332vsvr999jg7qj1ymnfgwpf591yi4a4jgg90pm7qnn"))))
+        (base32 "0f128gqn170s6hl62n44i9asais75ns1mpvb4l8vzy1sc0v16c0k"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/tarsius/paren-face")
     (synopsis "Face for parentheses in lisp modes")
@@ -2337,13 +2434,13 @@ subconsciously blend out the parentheses.")
     (version "0.11")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/purcell/page-break-lines/"
-                           "archive/" version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/purcell/page-break-lines.git")
+             (commit version)))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "1zzhziq5kbrm9rxk30kx2glz455fp1blqxg8cpcf6l8xl3w8z4pg"))))
+        (base32 "1wp974716ih2cz9kdmdz7xwjy1qnnfzdzlfr9kchknagw8d9nn12"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/purcell/page-break-lines")
     (synopsis "Display page breaks as tidy horizontal lines")
@@ -2358,13 +2455,13 @@ as horizontal rules.")
     (version "1.4.6")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/skeeto/emacs-web-server/"
-                           "archive/" version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/skeeto/emacs-web-server.git")
+             (commit version)))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "01r7h3imnj4qx1m53a2wjafvbylcyz5f9r2rg2cs7ky3chlg220r"))))
+        (base32 "1qmkc0w28l53zzf5yd2grrk1sq222g5qnsm35ph25s1cfvc1qb2g"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/skeeto/emacs-http-server")
     (synopsis "HTTP server in pure Emacs Lisp")
@@ -2379,13 +2476,13 @@ serve files and directory listings.")
     (version "1.6.2")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/skeeto/skewer-mode/archive/"
-                           version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/skeeto/skewer-mode.git")
+             (commit version)))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "07jpz374j0j964szy3zznrkyja2kpdl3xa87wh7349mzxivqxdx0"))))
+        (base32 "05jndz0c26q60s416vqgvr66axdmxb7qsr2g70fvl5iqavnayhpv"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-simple-httpd" ,emacs-simple-httpd)
@@ -2409,7 +2506,7 @@ in Lisp modes.")
               (uri (git-reference
                     (url "https://github.com/akicho8/string-inflection")
                     (commit "a150e7bdda60b7824d3a936750ce23f73b0e4edd")))
-              (file-name (string-append name "-" version "-checkout"))
+              (file-name (git-file-name name version))
               (sha256
                (base32
                 "1k0sm552iawi49v4zis6dbb81d1rzgky9v0dpv7nj31gnb7bmy7k"))))
@@ -2440,13 +2537,13 @@ naming style of a symbol.  It supports different naming conventions such as:
     (version "0.2.5")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/sabof/stripe-buffer/"
-                           "archive/" version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/sabof/stripe-buffer.git")
+             (commit version)))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "1p515dq7raly5hw94kiwm3vzsfih0d8af622q4ipvvljsm98aiik"))))
+        (base32 "035ym1c1vzg6hjsnd258z4dkrfc11lj4c0y4gpgybhk54dq3w9dk"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/sabof/stripe-buffer/")
     (synopsis "Add stripes to list buffers")
@@ -2461,13 +2558,13 @@ tables.")
     (version "1.0.1")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/Malabarba/rich-minority/"
-                           "archive/" version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/Malabarba/rich-minority.git")
+             (commit version)))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "1l0cb0q7kyi88nwfqd542psnkgwnjklpzc5rx32gzd3lkwkrbr8v"))))
+        (base32 "11hwf9y5ax207w6rwrsmi3pmn7pn7ap6iys0z8hni2f5zzxjrmx3"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/Malabarba/rich-minority")
     (synopsis "Clean-up and beautify the list of minor modes")
@@ -2482,13 +2579,13 @@ mode-line.")
     (version "0.8.1")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/dgutov/robe/"
-                           "archive/" version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/dgutov/robe.git")
+             (commit version)))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "1vp45y99fwj88z04ah4yppz4z568qcib646az6m9az5ar0f203br"))))
+        (base32 "0ll7ivxqnglfb0i70ly6qq2yfw9cyi3vq3lmj4s6h6c1c7rm3gcq"))))
     (build-system emacs-build-system)
     (arguments
      '(#:include (cons "^lib\\/" %default-include)))
@@ -2503,19 +2600,44 @@ definitions, modules and classes, display method documentation and provide
 method and constant name completion.")
     (license license:gpl3+)))
 
+(define-public emacs-robot-mode
+  (let ((commit "32846e7e80ae3471b7c07f9709dcaa4f9b9ed4a0")
+        (revision "1"))
+    (package
+      (name "emacs-robot-mode")
+      (version (git-version "0.0.0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      ;; A better maintained fork of robot-mode.
+                      (url "https://github.com/jvalkeejarvi/robot-mode.git")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "1i8wf7m0gml8zvvmlgppjzv78b432686p1qdbzgclc7qfcvzag0d"))))
+      (build-system emacs-build-system)
+      (propagated-inputs `(("emacs-s" ,emacs-s)))
+      (home-page "https://github.com/jvalkeejarvi/robot-mode")
+      (synopsis "Emacs mode for Robot Framework")
+      (description "This major mode facilitates editing Robot Framework source
+files with features such as syntax highlighting, comments, finding keywords,
+completing keywords and smart indentation.")
+      (license license:gpl3+))))
+
 (define-public emacs-rspec
   (package
     (name "emacs-rspec")
     (version "1.11")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/pezra/rspec-mode/"
-                           "archive/v" version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/pezra/rspec-mode.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "1j0a7ms5516nlg60qfyn730pfxys6acm0rgyxh5xfkpi6jafgpvw"))))
+        (base32 "0hrn5n7aaymwimk511kjij44vqaxbmhly1gwmlmsrnbvvma7f2mp"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/pezra/rspec-mode")
     (synopsis "Provides a rspec mode for working with RSpec")
@@ -2534,13 +2656,13 @@ snippets for yasnippet.")
     (version "2.12.0")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/Malabarba/smart-mode-line/"
-                           "archive/" version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/Malabarba/smart-mode-line.git")
+             (commit version)))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "1hn8s6laijmg7w1bgwdfrki6h9vxkbgr8rmmssvd5yqyad5w2sba"))))
+        (base32 "1gs4ay9hdg8gmia4ir74qawk80pqwv99hp4yhy108kpfry5mrq6z"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-rich-minority" ,emacs-rich-minority)))
@@ -2583,13 +2705,13 @@ the speedbar window.")
     (version "1.0.1")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/DamienCassou/shell-switcher"
-                           "/archive/v" version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/DamienCassou/shell-switcher.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "1c23mfkdqz2g9rixd9smm323vzlvhzz3ng34ambcqjfq309qb2nz"))))
+        (base32 "0ia7sdip4hl27avckv3qpqgm3k4ynvp3xxq1cy53bqfzzx0gcria"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/DamienCassou/shell-switcher")
     (synopsis "Provide fast switching between shell buffers")
@@ -2606,7 +2728,7 @@ the speedbar window.")
               (uri (git-reference
                     (commit "880706469338ab59b5bb7dbe8460016f89755364")
                     (url "https://github.com/gregsexton/ob-ipython.git")))
-              (file-name (string-append name "-" version "-checkout"))
+              (file-name (git-file-name name version))
               (sha256
                (base32
                 "1scf25snbds9ymagpny30ijbsg479r3nm0ih01dy4m9d0g7qryb7"))))
@@ -2622,14 +2744,14 @@ source code using IPython.")
 (define-public emacs-debbugs
   (package
     (name "emacs-debbugs")
-    (version "0.16")
+    (version "0.17")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://elpa.gnu.org/packages/debbugs-"
                                   version ".tar"))
               (sha256
                (base32
-                "0y3bq803c7820h15g66d1648skxfhlfa2v6vincj6xk5ssp44s9p"))))
+                "0zclh2nxj5p10n214sxyxy3ca07l5s9p5spk0xp1smr6nzn0w7gb"))))
     (build-system emacs-build-system)
     (arguments '(#:include '("\\.el$" "\\.wsdl$" "\\.info$")))
     (propagated-inputs
@@ -2677,10 +2799,10 @@ framework for Emacs Lisp to be used with @code{ert}.")
               (uri (git-reference
                     (url home-page)
                     (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
               (sha256
                (base32
-                "0xy9zb6wwkgwhcxdnslqk52bq3z24chgk6prqi4ks0qcf2bwyh5h"))
-              (file-name (string-append name "-" version))))
+                "0xy9zb6wwkgwhcxdnslqk52bq3z24chgk6prqi4ks0qcf2bwyh5h"))))
     (build-system emacs-build-system)
     (arguments
      `(#:phases
@@ -2720,10 +2842,10 @@ for asynchronous tasks.")
               (uri (git-reference
                     (url home-page)
                     (commit version)))
+              (file-name (git-file-name name version))
               (sha256
                (base32
-                "1pii9dw4skq7nr4na6qxqasl36av8cwjp71bf1fgppqpcd9z8skj"))
-              (file-name (string-append name "-" version))))
+                "1pii9dw4skq7nr4na6qxqasl36av8cwjp71bf1fgppqpcd9z8skj"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-deferred" ,emacs-deferred)))
@@ -2742,13 +2864,13 @@ build jobs.")
     (version "0.9.7")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/company-mode/company-mode/archive/"
-                           version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/company-mode/company-mode.git")
+             (commit version)))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "19flv38f2qhxda8lbk2ckywvibd72vbzmn4hchqz6d8acsknh4sb"))))
+        (base32 "1gpapjxs4l6fmmj22q0q1pyhj1yd9j5iqfqnjf1abskkj69lqkpj"))))
     (build-system emacs-build-system)
     (arguments
      `(#:phases
@@ -2783,10 +2905,10 @@ These are distributed in separate files and can be used individually.")
               (uri (git-reference
                     (url (string-append home-page ".git"))
                     (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
               (sha256
                (base32
-                "0nhjrnlmss535jbshjjd30vydbr8py21vkx4p294w6d8vg2rssf8"))
-              (file-name (string-append name "-" version ".tar.gz"))))
+                "0nhjrnlmss535jbshjjd30vydbr8py21vkx4p294w6d8vg2rssf8"))))
     (build-system emacs-build-system)
     (inputs `(("server" ,emacs-irony-mode-server)))
     (arguments `(#:phases
@@ -2802,7 +2924,7 @@ These are distributed in separate files and can be used individually.")
     (description "Irony-mode provides Clang-assisted syntax checking and
 completion for C, C++, and ObjC in GNU Emacs.  Using @code{libclang} it can
 provide syntax checking and autocompletion on compiler level which is very
-resistent against false positives.  It also integrates well with other
+resistant against false positives.  It also integrates well with other
 packages like @code{eldoc-mode} and especially @code{company-mode} as
 described on the homepage.")
     (license license:gpl3+)))
@@ -2855,9 +2977,9 @@ with irony-mode using clang-tooling.")
               (uri (git-reference
                     (url "https://github.com/Sarcasm/flycheck-irony.git")
                     (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
               (sha256
-               (base32 "0qa5a8wzvzxwqql92ibc9s43k8sj3vwn7skz9hfr8av0skkhx996"))
-              (file-name (string-append name "-" version))))
+               (base32 "0qa5a8wzvzxwqql92ibc9s43k8sj3vwn7skz9hfr8av0skkhx996"))))
     (build-system emacs-build-system)
     (inputs
      `(("irony-mode" ,emacs-irony-mode)
@@ -2879,8 +3001,9 @@ irony-mode do the syntax checking.")
        (uri (git-reference
              (url "https://github.com/ikirill/irony-eldoc.git")
              (commit "0df5831eaae264a25422b061eb2792aadde8b3f2")))
-       (sha256 (base32 "1l5qpr66v1l12fb50yh73grb2rr85xxmbj19mm33b5rdrq2bqmmd"))
-       (file-name (string-append name "-" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1l5qpr66v1l12fb50yh73grb2rr85xxmbj19mm33b5rdrq2bqmmd"))))
     (build-system emacs-build-system)
     (inputs
      `(("irony-mode" ,emacs-irony-mode)))
@@ -2896,14 +3019,13 @@ for the current function or variable in the minibuffer.")
     (version "2.3.0")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append
-             "https://github.com/expez/company-quickhelp/archive/"
-             version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/expez/company-quickhelp.git")
+             (commit version)))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "0xrn2z1dgk5gmkmp2jkn9g83ckk39lqp5pyyv8rl7f6gqvib3qh0"))))
+        (base32 "08ccsfvwdpzpj0gai3xrdb2bv1nl6myjkxsc5774pbvlq9nkfdvr"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-pos-tip" ,emacs-pos-tip)
@@ -2920,13 +3042,13 @@ completion candidate when using the Company text completion framework.")
     (version "1.4.0")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/magnars/multiple-cursors.el/"
-                           "archive/" version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/magnars/multiple-cursors.el.git")
+             (commit version)))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "0hihihlvcvzayg5fnqzcg45fhvlmq6xlq58syy00rjwbry9w389k"))))
+        (base32 "1ijgvzv5r44xqvz751fd5drbvrspapw6xwv47582w255j363r6ss"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/magnars/multiple-cursors.el")
     (synopsis "Multiple cursors for Emacs")
@@ -2945,10 +3067,10 @@ simultaneous cursors.")
               (uri (git-reference
                     (url home-page)
                     (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
               (sha256
                (base32
-                "1jhd4grch5iz12gyxwfbsgh4dmz5hj4bg4gnvphccg8dsnni05k2"))
-              (file-name (string-append name "-" version))))
+                "1jhd4grch5iz12gyxwfbsgh4dmz5hj4bg4gnvphccg8dsnni05k2"))))
     (build-system emacs-build-system)
     (synopsis "Minor mode for typographic editing")
     (description
@@ -2959,6 +3081,34 @@ automatically inserts a Unicode opening or closing quotation mark, depending
 on context.")
     (license license:gpl3+)))
 
+(define-public emacs-company-lsp
+  (package
+    (name "emacs-company-lsp")
+    (version "2.1.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/tigersoldier/company-lsp.git")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1hy1x2w0yp5brm7714d1hziz3rpkywb5jp3yj78ibmi9ifny9vri"))))
+    (build-system emacs-build-system)
+    (propagated-inputs
+     `(("emacs-dash" ,emacs-dash)
+       ("emacs-lsp-mode" ,emacs-lsp-mode)
+       ("emacs-company" ,emacs-company)
+       ("emacs-s" ,emacs-s)
+       ("emacs-dash" ,emacs-dash)))
+    (home-page "https://github.com/tigersoldier/company-lsp")
+    (synopsis "Completion for @code{lsp-mode}")
+    (description
+     "This package provides completion features that are not possible with
+@code{lsp-mode} and @code{company-capf} alone, including support for trigger
+characters and asynchronous fetching of completion candidates.")
+    (license license:gpl3+)))
+
 (define-public emacs-scheme-complete
   (let ((commit "9b5cf224bf2a5994bc6d5b152ff487517f1a9bb5"))
     (package
@@ -2966,11 +3116,11 @@ on context.")
       (version (string-append "20151223." (string-take commit 8)))
       (source
        (origin
-         (file-name (string-append name "-" version))
          (method git-fetch)
          (uri (git-reference
                (url "https://github.com/ashinn/scheme-complete.git")
                (commit commit)))
+         (file-name (git-file-name name version))
          (sha256
           (base32
            "141wn9l0m33w0g3dqmx8nxbfdny1r5xbr6ak61rsz21bk0qafs7x"))
@@ -2999,7 +3149,7 @@ to a key in your preferred mode.")
          (uri (git-reference
                (url "https://github.com/supercollider/scel.git")
                (commit commit)))
-         (file-name (string-append name "-" version "-checkout"))
+         (file-name (git-file-name name version))
          (sha256
           (base32
            "0jvmzs1lsjyndqshhii2y4mnr3wghai26i3p75453zrpxpg0zvvw"))))
@@ -3037,6 +3187,33 @@ to a key in your preferred mode.")
 SuperCollider is a platform for audio synthesis and algorithmic composition.")
       (license license:gpl2+))))
 
+(define-public emacs-company-auctex
+  (let ((commit "48c42c58ce2f0e693301b0cb2d085055410c1b25")
+        (revision "1"))
+    (package
+      (name "emacs-company-auctex")
+      (version (git-version "0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/alexeyr/company-auctex")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "10qn7frn5wcmrlci3v6iliqzj7r9dls87h9zp3xkgrgn4bqprfp8"))))
+      (build-system emacs-build-system)
+      (propagated-inputs
+       `(("emacs-yasnippet" ,emacs-yasnippet)
+         ("emacs-auctex" ,emacs-auctex)
+         ("emacs-company" ,emacs-company)))
+      (home-page "https://github.com/alexeyr/company-auctex/")
+      (synopsis "Completion for @code{AUCTeX}")
+      (description
+       "This package provides a group of backends permitting auto-completion
+for @code{AUCTeX}.")
+      (license license:gpl3+))))
+
 (define-public emacs-mit-scheme-doc
   (package
     (name "emacs-mit-scheme-doc")
@@ -3086,13 +3263,13 @@ identifiers in the MIT-Scheme documentation.")
     (home-page "https://staff.fnwi.uva.nl/c.dominik/Tools/constants")
     (source
      (origin
-       (file-name (string-append name "-" version ".tar.gz"))
-       (method url-fetch)
-       (uri (string-append "https://github.com/fedeinthemix/emacs-constants"
-                           "/archive/v" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/fedeinthemix/emacs-constants.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "0pnrpmmxq8mh5h2hbrp5vcym0j0fh6dv3s7c5ccn18wllhzg9g7n"))))
+        (base32 "0f5sh6b45a8p9kancjp9jk44ws8ww6x50a0i6zgyyvr7dbvii1a0"))))
     (build-system emacs-build-system)
     (synopsis "Enter definition of constants into an Emacs buffer")
     (description
@@ -3106,13 +3283,13 @@ constants and units into an Emacs buffer.")
     (version "1.4.0")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/magnars/tagedit/"
-                           "archive/" version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/magnars/tagedit.git")
+             (commit version)))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "1apfnann4qklfdsmdi7icjsj18x7gwx8d83iqr4z25clszz95xfq"))))
+        (base32 "0kq40g46s8kgiafrhdq99h79rz9h5fvgz59k7ralmf86bl4sdmdb"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-s" ,emacs-s)
@@ -3130,14 +3307,13 @@ in @code{html-mode}.")
     (version "2.23")
     (source
      (origin
-       (file-name (string-append name "-" version ".tar.gz"))
-       (method url-fetch)
-       (uri (string-append
-             "https://github.com/slime/slime/archive/v"
-             version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/slime/slime.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "01gkrqfpifcx1vipwrbhns2r4s8izp3z1w4p41azc943s1a2d5nc"))))
+        (base32 "0i637n0ragpbj39hqx65nx5k99xf0464c4w6w1qpzykm6z42grky"))))
     (build-system emacs-build-system)
     (native-inputs
      `(("texinfo" ,texinfo)))
@@ -3147,6 +3323,10 @@ in @code{html-mode}.")
                    "^contrib/Makefile$" "^contrib/README.md$")
        #:phases
        (modify-phases %standard-phases
+         (add-after 'unpack 'make-git-checkout-writable
+           (lambda _
+             (for-each make-file-writable (find-files "."))
+             #t))
          (add-before 'install 'configure
            (lambda* _
              (emacs-substitute-variables "slime.el"
@@ -3190,15 +3370,15 @@ for compilation, debugging, documentation lookup, and so on.")
   (package
     (name "emacs-popup")
     (version "0.5.3")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "https://github.com/auto-complete/popup-el/archive/v"
-                    version ".tar.gz"))
-              (file-name (string-append name "-" version ".tar.gz"))
-              (sha256
-               (base32
-                "1yrgfj8y69xmcb6kwgplhq68ndm9410qwh7sd2knnd1gchpphdc0"))))
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/auto-complete/popup-el.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1y538siabcf1n00wr4iz5gbxfndw661kx2mn9w1g4lg7yi4n0h0h"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/auto-complete/popup-el")
     (synopsis "Visual Popup User Interface for Emacs")
@@ -3208,6 +3388,78 @@ This provides a basic API and common UI widgets such as popup tooltips
 and popup menus.")
     (license license:gpl3+)))
 
+(define-public emacs-python-environment
+  (package
+    (name "emacs-python-environment")
+    (version "0.0.2")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/tkf/emacs-python-environment/")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0q6bib9nr6xiq6npzbngyfcjk87yyvwzq1zirr3z1h5wadm34lsk"))))
+    (build-system emacs-build-system)
+    (propagated-inputs
+     `(("emacs-deferred" ,emacs-deferred)))
+    (home-page "https://github.com/tkf/emacs-python-environment")
+    (synopsis "Provides a @code{virtualenv} API in Emacs Lisp")
+    (description
+     "This package permits automated installation of tools written in Python.")
+    (license license:gpl3+)))
+
+(define-public emacs-jedi
+  (package
+    (name "emacs-jedi")
+    (version "0.2.7")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/tkf/emacs-jedi/")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0xbp9fcxgbf298w05hvf52z41kk7r52975ailgdn8sg60xc98fa7"))))
+    (build-system emacs-build-system)
+    (native-inputs
+     `(("emacs-mocker" ,emacs-mocker)))
+    (propagated-inputs
+     `(("emacs-auto-complete" ,emacs-auto-complete)
+       ("emacs-python-environment" ,emacs-python-environment)
+       ("emacs-epc" ,emacs-epc)))
+    (home-page "https://github.com/tkf/emacs-jedi")
+    (synopsis "Provides Python completion in Emacs")
+    (description
+     "This package provides completion in Python buffers and also helps find
+the locations of docstrings, arguments, and functions.")
+    (license license:gpl3+)))
+
+(define-public emacs-company-jedi
+  (package
+    (name "emacs-company-jedi")
+    (version "0.04")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/syohex/emacs-company-jedi")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1ihqapp4dv92794rsgyq0rmhwika60cmradqd4bn9b72ss6plxs1"))))
+    (build-system emacs-build-system)
+    (propagated-inputs
+     `(("emacs-jedi" ,emacs-jedi)
+       ("emacs-company" ,emacs-company)))
+    (home-page "https://github.com/syohex/emacs-company-jedi")
+    (synopsis "Provides Python completion in @code{company-mode}")
+    (description
+     "This package provides a Company backend for Python.")
+    (license license:gpl3+)))
+
 (define-public emacs-puppet-mode
   (let ((commit "b3ed5057166a4f49dfa9be638523a348b55a2fd2")
         (revision "1"))
@@ -3248,7 +3500,7 @@ linting of manifests and integration with Puppet Debugger.")
          (uri (git-reference
                (url "https://github.com/chrisdone/god-mode.git")
                (commit commit)))
-         (file-name (string-append name "-" version "-checkout"))
+         (file-name (git-file-name name version))
          (sha256
           (base32
            "1am415k4xxcva6y3vbvyvknzc6bma49pq3p85zmpjsdmsp18qdix"))))
@@ -3268,13 +3520,13 @@ insertion mode.  When enabled all keys are implicitly prefixed with
     (version "0.2")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/paradoxxxzero/jinja2-mode/"
-                           "archive/v" version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/paradoxxxzero/jinja2-mode.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "0cgxjab1kla2zc2fj7bzib6i7snp08zshandmp9kqcm85l262xpn"))))
+        (base32 "0l26wcy496k6xk7q5sf905xir0p73ziy6c44is77854lv3y0z381"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/paradoxxxzero/jinja2-mode")
     (synopsis "Major mode for jinja2")
@@ -3283,6 +3535,32 @@ insertion mode.  When enabled all keys are implicitly prefixed with
 sgml/html integration, and indentation (working with sgml).")
     (license license:gpl3+)))
 
+(define-public emacs-company-cabal
+  ;; The latest version is 0.3.0, but no release has been provided after 0.2.1.
+  (let ((commit "62112a7259e24bd6c08885629a185afe512b7d3d")
+        (revision "1"))
+    (package
+      (name "emacs-company-cabal")
+      (version (git-version "0.3.0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/iquiw/company-cabal/")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "1gf45xwjzdm8i4q6c6khk4dbg1mmp2r0awz2sjr4dcr2dbd1n7mg"))))
+      (build-system emacs-build-system)
+      (propagated-inputs
+       `(("emacs-company" ,emacs-company)))
+      (home-page "https://github.com/iquiw/company-cabal/")
+      (synopsis "Company completion for Haskell Cabal files")
+      (description
+       "This package allows for completion of field names, section names,
+field values, and more within @code{haskell-cabal-mode}.")
+      (license license:gpl3+))))
+
 (define-public emacs-rfcview
   (package
     (name "emacs-rfcview")
@@ -3337,13 +3615,13 @@ number.")
     (version "0.2.4")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/sabof/org-bullets/archive/"
-                           version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/sabof/org-bullets.git")
+             (commit version)))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "1dyxvpb73vj80v8br2q9rf255hfphrgaw91fbvwdcd735np9pcnh"))))
+        (base32 "10nr4sjffnqbllv6gmak6pviyynrb7pi5nvrq331h5alm3xcpq0w"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/sabof/org-bullets")
     (synopsis "Show bullets in org-mode as UTF-8 characters")
@@ -3358,14 +3636,13 @@ number.")
     (version "2.1.0")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append
-             "https://github.com/lolownia/org-pomodoro/archive/"
-             version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/lolownia/org-pomodoro.git")
+             (commit version)))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "1jalsggw3q5kvj353f84x4nl04a5vmq07h75ggppy1627lb31zm4"))))
+        (base32 "0r5shgikm34d66i2hblyknbblpg92lb2zc9x4bcb28xkh7m9d0xv"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-alert" ,emacs-alert)))
@@ -3385,15 +3662,15 @@ started with 20 minutes.  All values are customizable.")
   (package
     (name "emacs-org-trello")
     (version "0.8.0")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "https://github.com/org-trello/org-trello/archive/"
-                    version ".tar.gz"))
-              (file-name (string-append name "-" version ".tar.gz"))
-              (sha256
-               (base32
-                "0549mnf5cgwn8b8jbl38fljbaxmh1605sv9j8f3lsa95jhs1zpa0"))))
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/org-trello/org-trello.git")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0m5hyhb6211hdmyp1bq6f3fklfgw3957knd96bfdafj727vdnlzm"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-dash" ,emacs-dash)
@@ -3409,6 +3686,31 @@ started with 20 minutes.  All values are customizable.")
 organizer.")
     (license license:gpl3+)))
 
+(define-public emacs-company-flow
+  (let ((commit "76ef585c70d2a3206c2eadf24ba61e59124c3a16")
+        (revision "1"))
+    (package
+      (name "emacs-company-flow")
+      (version (git-version "0.1.0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/aaronjensen/company-flow/")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "0zs9cblnbkxa0dxw4lyllmybqizxcdx96gv8jlhx20nrjpi78piw"))))
+      (build-system emacs-build-system)
+      (propagated-inputs
+       `(("emacs-company" ,emacs-company)
+         ("emacs-dash" ,emacs-dash)))
+      (home-page "https://github.com/aaronjensen/company-flow/")
+      (synopsis "Flow backend for @code{company-mode}")
+      (description
+       "This package provides completion for JavaScript files utilizing Flow.")
+      (license license:gpl3+))))
+
 (define-public emacs-atom-one-dark-theme
   (let ((commit "1f1185bf667a38d3d0d180ce85fd4c131818aae2")
         (revision "0"))
@@ -3434,15 +3736,15 @@ organizer.")
   (package
     (name "emacs-zenburn-theme")
     (version "2.6")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "https://github.com/bbatsov/zenburn-emacs/archive/v"
-                    version ".tar.gz"))
-              (file-name (string-append name "-" version ".tar.gz"))
-              (sha256
-               (base32
-                "0qc9d1rwq55yzh8shbppyd6izy1grpyr8kqh5zdgm7c5jccngpr4"))))
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/bbatsov/zenburn-emacs.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1n87r5hs7h5r8dgfid66skpzcypl9hssr9m3npp916g6jfsi782f"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/bbatsov/zenburn-emacs")
     (synopsis "Low contrast color theme for Emacs")
@@ -3535,19 +3837,44 @@ of sixteen colors suitable for a wide range of applications.  Base16 is not a
 single theme but a set of guidelines with numerous implementations.")
     (license license:expat)))
 
-(define-public emacs-smartparens
+(define-public emacs-prescient
   (package
-    (name "emacs-smartparens")
-    (version "1.11.0")
+    (name "emacs-prescient")
+    (version "2.2.2")
     (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "https://github.com/Fuco1/smartparens/archive/"
-                    version ".tar.gz"))
-              (file-name (string-append name "-" version ".tar.gz"))
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/raxod502/prescient.el/")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
               (sha256
                (base32
-                "0q5as813xs8y29i3v2rm97phd6m7xsmmw6hwbvx57gwmi8i1c409"))))
+                "1ncplx5p3cffyzg9ygzqqxj0vpvwrz9rp2n4z6c375a78fyydrk0"))))
+    (build-system emacs-build-system)
+    (propagated-inputs
+     `(("emacs-company" ,emacs-company)
+       ("emacs-ivy" ,emacs-ivy)))
+    (home-page "https://github.com/raxod502/prescient.el/")
+    (synopsis "Library that sorts and filters lists of candidates")
+    (description
+     "This package provides a library for sorting and filtering, as well as
+extensions for @code{ivy-mode} and @code{company-mode} that make use of the
+library.")
+    (license license:gpl3+)))
+
+(define-public emacs-smartparens
+  (package
+    (name "emacs-smartparens")
+    (version "1.11.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/Fuco1/smartparens.git")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0zij2f2rjjym98w68jkp10n1ckpfprlkk217c3fg16hz5nq4vnm6"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-dash" ,emacs-dash)
@@ -3570,15 +3897,15 @@ well as completely new features.")
   (package
     (name "emacs-highlight-symbol")
     (version "1.3")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "https://github.com/nschum/highlight-symbol.el/archive/"
-                    version ".tar.gz"))
-              (file-name (string-append name "-" version ".tar.gz"))
-              (sha256
-               (base32
-                "1n7k1qns0fn0jsyc0hrjac5nzk21xw48yc30vyrhwvc51h0b9g90"))))
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/nschum/highlight-symbol.el.git")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "09z13kv2g21kjjkkm3iyaz93sdjmdy2d563r8n7r7ng94acrn7f6"))))
     (build-system emacs-build-system)
     (home-page "https://nschum.de/src/emacs/highlight-symbol")
     (synopsis "Automatic and manual symbol highlighting for Emacs")
@@ -3783,7 +4110,7 @@ parallel.")
               (uri (git-reference
                     (url "https://github.com/tkf/emacs-request.git")
                     (commit (string-append "v" version))))
-              (file-name (string-append name "-" version "-checkout"))
+              (file-name (git-file-name name version))
               (sha256
                (base32
                 "0wyxqbb35yqf6ci47531lk32d6fppamx9d8826kdz983vm87him7"))))
@@ -3859,7 +4186,7 @@ automatically.")
        (uri (git-reference
              (url "https://github.com/abo-abo/swiper.git")
              (commit version)))
-       (file-name (string-append name "-" version "-checkout"))
+       (file-name (git-file-name name version))
        (sha256
         (base32
          "009n8zjycs62cv4i1k9adbb284wz2w3r13xki2740sj34k683v13"))))
@@ -3926,13 +4253,13 @@ use it, call @code{M-x ivy-yasnippet} (but make sure you have enabled
     (version "0.1.0")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/Yevgnen/ivy-rich/archive/"
-                           version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/Yevgnen/ivy-rich.git")
+             (commit version)))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "14r3mx5rkd4wz0ls5pv5w6c7la3z9iy93d3jfind3xyg4kywy95c"))))
+        (base32 "0ayf3dwfhafcbqnckm65zy8nc1rv9ji939qfn53wbhxkrgqdicgz"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-ivy" ,emacs-ivy)))
@@ -3951,13 +4278,13 @@ show icons as well.")
     (version "0.4.0")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/abo-abo/avy/archive/"
-                           version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/abo-abo/avy.git")
+             (commit version)))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "1wdrq512h25ymzjbf2kbsdymvd2ryfwzb6bh5bc3yv7q203im796"))))
+        (base32 "0rq9ab264565z83cly743nbhrd9m967apmnlhqr1gy8dm4hcy7nm"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/abo-abo/avy")
     (synopsis "Tree-based completion for Emacs")
@@ -3980,13 +4307,13 @@ windows.")
     (version "0.9.0")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/abo-abo/ace-window/archive/"
-                           version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/abo-abo/ace-window.git")
+             (commit version)))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "1p2sgfl5dml4zbd6ldql6lm2m9vmd236ah996ni32x254s48j5pn"))))
+        (base32 "07mcdzjmgrqdvjs94f2n5bkrf5vrq2fwzz256wbm3wzqxqkfy1q6"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-avy" ,emacs-avy)))
@@ -4005,13 +4332,13 @@ highlighted.  Pressing that character will switch to that window.")
     (version "0.9.9.9")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/victorhge/iedit/archive/v"
-                           version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/victorhge/iedit.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "1hv8q6pr85ss9g3158l1fqv3m62vsq8rslsi86jicr2dcxyascr0"))))
+        (base32 "1pwkrm98vlpzsy5iwwfksdaz3zzyi7bvdf5fglhsn4ssf47p787g"))))
     (build-system emacs-build-system)
     (home-page "http://www.emacswiki.org/emacs/Iedit")
     (synopsis "Edit multiple regions in the same way simultaneously")
@@ -4110,15 +4437,15 @@ state and will work even without lispy being enabled.")
   (package
     (name "emacs-clojure-mode")
     (version "5.6.1")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "https://github.com/clojure-emacs/clojure-mode/archive/"
-                    version ".tar.gz"))
-              (file-name (string-append name "-" version ".tar.gz"))
-              (sha256
-               (base32
-                "1f4k1hncy5ygh4izn7mqfp744nnisrp9ywn2njknbjxx34ai1q88"))))
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/clojure-emacs/clojure-mode.git")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1qadymqzs5fn1sb347xzfw8lqq6s85vvkh4kzm35m61g5i2lm86y"))))
     (build-system emacs-build-system)
     (native-inputs
      `(("emacs-dash" ,emacs-dash)
@@ -4139,15 +4466,15 @@ It is recommended to use @code{clojure-mode} with paredit or smartparens.")
   (package
     (name "emacs-epl")
     (version "0.8")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "https://github.com/cask/epl/archive/"
-                    version ".tar.gz"))
-              (file-name (string-append name "-" version ".tar.gz"))
-              (sha256
-               (base32
-                "1511n3a3f5gvaf2b4nh018by61ciyzi3y3603fzqma7p9hrckarc"))))
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/cask/epl.git")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0sjxd5y5hxhrbgfkpwx6m724r3841b53hgc61a0g5zwispw5pmrr"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/cask/epl")
     (synopsis "Emacs Package Library")
@@ -4158,6 +4485,30 @@ 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-projectile
+  (package
+    (name "emacs-counsel-projectile")
+    (version "0.3.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/ericdanan/counsel-projectile")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1inc4ndl0ysfwvxk4avbgpj4qi9rc93da6476a5c81xmwpsv8wmq"))))
+    (build-system emacs-build-system)
+    (propagated-inputs
+     `(("emacs-ivy" ,emacs-ivy)
+       ("emacs-projectile" ,emacs-projectile)))
+    (home-page "https://github.com/ericdanan/counsel-projectile")
+    (synopsis "Enhance Projectile with Ivy")
+    (description
+     "This package uses Ivy to provide additional actions for Projectile
+commands and replacements for existing functions.")
+    (license license:gpl3+)))
+
 (define-public emacs-queue
   (package
     (name "emacs-queue")
@@ -4184,15 +4535,15 @@ be removed from the front.  This type of data structure is sometimes called an
   (package
     (name "emacs-pkg-info")
     (version "0.6")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "https://github.com/lunaryorn/pkg-info.el/archive/"
-                    version ".tar.gz"))
-              (file-name (string-append name "-" version ".tar.gz"))
-              (sha256
-               (base32
-                "1gy1jks5mmm02gg1c8gcyr4f8a9s5ggzhk56gv33b9mzjqzi5rd5"))))
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/lunaryorn/pkg-info.el.git")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0nk12dcppdyhav6m6yf7abpywyd7amxd4237zsfd32w4zxsx39k1"))))
     (build-system emacs-build-system)
     (propagated-inputs `(("emacs-epl" ,emacs-epl)))
     (home-page "https://github.com/lunaryorn/pkg-info.el")
@@ -4224,14 +4575,15 @@ ongoing operations.")
   (package
     (name "emacs-sparql-mode")
     (version "2.0.1")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://github.com/ljos/sparql-mode/archive/"
-                                  "v" version ".tar.gz"))
-              (file-name (string-append name "-" version ".tar.gz"))
-              (sha256
-               (base32
-                "1s93mkllxnhy7fw616cnnc2danacdlarys0g3cn89drh0llh53cv"))))
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/ljos/sparql-mode.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0ywhqk6n5k0l85zjwbnrivnvxjzqipqrggv06lify6yv18qmyl6s"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/ljos/sparql-mode")
     (synopsis "SPARQL mode for Emacs")
@@ -4263,6 +4615,31 @@ Emacs default configuration in uncontroversial ways that nearly everyone can
 agree upon.")
     (license license:gpl3+)))
 
+(define-public emacs-undohist-el
+  (let ((commit "d2239a5f736724ceb9e3b6bcaa86f4064805cda0")
+        (revision "1"))
+    (package
+      (name "emacs-undohist-el")
+      (version (git-version "0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/m2ym/undohist-el")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "1c0daw246ky7b1x5b8h55x79pl1pjqk1k348l487bdd8zdj4w9wx"))
+         (patches
+          (search-patches "emacs-undohist-ignored.patch"))))
+      (build-system emacs-build-system)
+      (home-page "https://github.com/m2ym/undohist-el")
+      (synopsis "Save undo history between sessions")
+      (description "This package allows persistent use of undo history for
+individual file buffers.")
+      (license license:gpl3+))))
+
 (define-public emacs-eprime
   (let ((commit "17a481af26496be91c07139a9bfc05cfe722506f"))
     (package
@@ -4299,7 +4676,7 @@ E-Prime forbids the use of the \"to be\" form to strengthen your writing.")
          (uri (git-reference
                (url "https://github.com/JuliaEditorSupport/julia-emacs.git")
                (commit commit)))
-         (file-name (string-append name "-" version "-checkout"))
+         (file-name (git-file-name name version))
          (sha256
           (base32
            "1is4dcv6blslpzbjcg8l2jpxi8xj96q4cm0nxjxsyswpm8bw8ki0"))))
@@ -4339,15 +4716,16 @@ to all the other commands, too.")
 (define-public emacs-js2-mode
   (package
     (name "emacs-js2-mode")
-    (version "20180301")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://github.com/mooz/js2-mode/archive/"
-                                  version ".tar.gz"))
-              (file-name (string-append name "-" version ".tar.gz"))
-              (sha256
-               (base32
-                "13aghgwaqrmbf3pbifcry52kya454wnh1gbdh5805n1n6xgjm5w3"))))
+    (version "20190219")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/mooz/js2-mode.git")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0766bbr4piia9vfr4ivd2gwi8dxah654adv6h28ylz4q8xmfzm1b"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/mooz/js2-mode/")
     (synopsis "Improved JavaScript editing mode for Emacs")
@@ -4524,14 +4902,15 @@ If you want to mark a folder manually as a project just create an empty
   (package
     (name "emacs-elfeed")
     (version "3.0.0")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://github.com/skeeto/elfeed/archive/"
-                                  version ".tar.gz"))
-              (file-name (string-append name "-" version ".tar.gz"))
-              (sha256
-               (base32
-                "1wkdrxr6zzqb48czqqv34l87bx8aqjk1739ddqg933aqh241kfvn"))))
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/skeeto/elfeed.git")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "01x4ww63lvn04c7f3ab5vx2s20xqisvv8213qwswz7vr9nxja5yi"))))
     (build-system emacs-build-system)
     (arguments
      `(#:tests? #t
@@ -4552,7 +4931,7 @@ and RSS, with a user interface inspired by notmuch.")
               (uri (git-reference
                     (url "https://github.com/sigma/el-x.git")
                     (commit (string-append "v" version))))
-              (file-name (string-append name "-" version "-checkout"))
+              (file-name (git-file-name name version))
               (sha256
                (base32
                 "1i6j44ssxm1xdg0mf91nh1lnprwsaxsx8vsrf720nan7mfr283h5"))))
@@ -4585,7 +4964,7 @@ provide the historic behavior of @code{flet}, as well as
               (uri (git-reference
                     (url "https://github.com/sigma/mocker.el.git")
                     (commit (string-append "v" version))))
-              (file-name (string-append name "-" version "-checkout"))
+              (file-name (git-file-name name version))
               (sha256
                (base32
                 "1lav7am41v63xgavq8pr88y828jmd1cxd4prjq7jlbxm6nvrwxh2"))))
@@ -4613,7 +4992,7 @@ maximizes flexibility (at the expense of conciseness).")
               (uri (git-reference
                     (url "https://github.com/technomancy/find-file-in-project.git")
                     (commit version)))
-              (file-name (string-append name "-" version "-checkout"))
+              (file-name (git-file-name name version))
               (sha256
                (base32
                 "1sdnyqv69mipbgs9yax88m9b6crsa59rjhwrih197pifl4089awr"))))
@@ -4646,7 +5025,7 @@ functions to assist in reviewing changes on files.")
               (uri (git-reference
                     (url "https://github.com/jorgenschaefer/pyvenv.git")
                     (commit (string-append "v" version))))
-              (file-name (string-append name "-" version "-checkout"))
+              (file-name (git-file-name name version))
               (sha256
                (base32
                 "1x052fsavb94x3scpqd6n9spqgzaahzbdxhg4qa5sy6hqsabn6zh"))))
@@ -4677,7 +5056,7 @@ environments (virtualenv) inside Emacs.")
               (uri (git-reference
                     (url "https://github.com/antonj/Highlight-Indentation-for-Emacs.git")
                     (commit (string-append "v" version))))
-              (file-name (string-append name "-" version "-checkout"))
+              (file-name (git-file-name name version))
               (sha256
                (base32
                 "00l54k75qk24a0znzl4ij3s3nrnr2wy9ha3za8apphzlm98m907k"))))
@@ -4701,7 +5080,7 @@ indentation (space indentation only).
               (uri (git-reference
                     (url "https://github.com/jorgenschaefer/elpy.git")
                     (commit version)))
-              (file-name (string-append name "-" version "-checkout"))
+              (file-name (git-file-name name version))
               (sha256
                (base32
                 "073bwxwjzcbmvpcz9q2xjwzx9x7hkvjni6fwvikh6yawzjp56jis"))))
@@ -4857,15 +5236,15 @@ window edge.")
   (package
     (name "emacs-writeroom")
     (version "3.7")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "https://github.com/joostkremers/writeroom-mode/archive/"
-                    version ".tar.gz"))
-              (file-name (string-append name "-" version ".tar.gz"))
-              (sha256
-               (base32
-                "0yqgp5h3kvvpgva4azakb2wnjl7gsyh45glf75crspv3xyq57f2r"))))
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/joostkremers/writeroom-mode.git")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "13nbls5qxz5z8firjxaip8m9vzfbbpxmwrmr01njbk4axpwrpj0z"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-visual-fill-column" ,emacs-visual-fill-column)))
@@ -4971,42 +5350,40 @@ Dust.js, React/JSX, Angularjs, ejs, etc.")
     (license license:gpl3+)))
 
 (define-public emacs-wgrep
-  (let ((commit "414be70bd313e482cd9f0b70fd2daad4ee23497c"))
-    ;; Late commit fixes compatibility issue with Emacs 26+.
-    (package
-      (name "emacs-wgrep")
-      (version (git-version "2.1.10" "1" commit))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "https://github.com/mhayashi1120/Emacs-wgrep")
-                      (commit commit)))
-                (file-name (git-file-name name version))
-                (sha256
-                 (base32
-                  "1sdhd587q3pg92lhiayph87azhalmf1gzrnsprkmqvnphv7mvks9"))))
-      (build-system emacs-build-system)
-      (home-page "https://github.com/mhayashi1120/Emacs-wgrep")
-      (synopsis "Edit a grep buffer and apply those changes to the files")
-      (description
-       "Emacs wgrep allows you to edit a grep buffer and apply those changes
-to the file buffer.  Several backends are supported beside the classic grep:
-ack, ag, helm and pt.")
-      (license license:gpl3+))))
-
-(define-public emacs-helm
   (package
-    (name "emacs-helm")
-    (version "3.1")
+    (name "emacs-wgrep")
+    (version "2.3.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
-                    "https://github.com/" name "/helm/archive/v"
+                    "https://github.com/mhayashi1120/Emacs-wgrep/archive/"
                     version ".tar.gz"))
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "0ymykcsbcgq2kskqc0ddigg0kfznxx3j02mkd5r3c3n8gn3kgz84"))))
+                "1cssqbg03fjb6xwf7idv1l3jjsh9r5r232ryi11czqlxfiv658bj"))))
+    (build-system emacs-build-system)
+    (home-page "https://github.com/mhayashi1120/Emacs-wgrep")
+    (synopsis "Edit a grep buffer and apply those changes to the files")
+    (description
+     "Emacs wgrep allows you to edit a grep buffer and apply those changes
+to the file buffer.  Several backends are supported beside the classic grep:
+ack, ag, helm and pt.")
+    (license license:gpl3+)))
+
+(define-public emacs-helm
+  (package
+    (name "emacs-helm")
+    (version "3.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/emacs-helm/helm.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1x3nv8zvp8vvl30bm2d83hd7zxb0ca64pc8kwb81ml9al6r3mm01"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-async" ,emacs-async)
@@ -5027,16 +5404,15 @@ not tied in the trap of backward compatibility.")
   (package
     (name "emacs-helm-swoop")
     (version "1.7.4")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "https://github.com/ShingoFukuyama/helm-swoop/archive/"
-                    version
-                    ".tar.gz"))
-              (file-name (string-append name "-" version ".tar.gz"))
-              (sha256
-               (base32
-                "1ssivsjzlnkg049cg993l8fp09l5nhpz6asj7w5c91zp5kpc6fh7"))))
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/ShingoFukuyama/helm-swoop.git")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0b23j1bkpg4pm310hqdhgnl4mxsj05gpl08b6kb2ja4fzrg6adsk"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-helm" ,emacs-helm)))
@@ -5051,16 +5427,15 @@ for search-based navigation of buffers.")
   (package
     (name "emacs-helm-projectile")
     (version "0.14.0")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "https://github.com/bbatsov/helm-projectile/archive/v"
-                    version
-                    ".tar.gz"))
-              (file-name (string-append name "-" version ".tar.gz"))
-              (sha256
-               (base32
-                "19cfmilqh8kbab3b2hmx6lyrj73q6vfmn3p730x95g23iz16mnd5"))))
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/bbatsov/helm-projectile.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0lph38p112fridighqcizpsyzjbv7qr3d8prbfj6w6q6gfl6cna4"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-dash" ,emacs-dash)
@@ -5084,7 +5459,7 @@ for search-based navigation of buffers.")
          (uri (git-reference
                (url "https://github.com/abo-abo/helm-make.git")
                (commit commit)))
-         (file-name (string-append name "-" version "-checkout"))
+         (file-name (git-file-name name version))
          (sha256
           (base32
            "1y2v77mmd1bfkkz51cnk1l0dg3lvvxc39wlamnm7wjns66dbvlam"))))
@@ -5102,7 +5477,7 @@ target will call @code{compile} on it.")
 (define-public emacs-cider
   (package
     (name "emacs-cider")
-    (version "0.20.0")
+    (version "0.21.0")
     (source
      (origin
        (method git-fetch)
@@ -5112,7 +5487,7 @@ target will call @code{compile} on it.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "0lfhzg9c931jbx27hpshk3l76gwbp6ggf668sqa77xrvymwdlsnw"))))
+         "0lbrwj67fnvynkdkzvnzp3p8vqlz0ldrcs317vg60bqfhx7hvqkj"))))
     (build-system emacs-build-system)
     (arguments
      '(#:exclude                        ; Don't exclude 'cider-test.el'.
@@ -5240,7 +5615,7 @@ news items, openrc and runscripts.")
        (uri (git-reference
              (url "https://github.com/emacs-evil/evil")
              (commit version)))
-       (file-name (string-append name "-" version "-checkout"))
+       (file-name (git-file-name name version))
        (sha256
         (base32
          "1833w397xhac5g3pp25szr2gyvclxy91aw27azvbmsx94pyk2a3q"))))
@@ -5267,7 +5642,7 @@ extensions.")
                 (uri (git-reference
                       (url "https://github.com/emacs-evil/evil-collection")
                       (commit commit)))
-                (file-name (string-append name "-" version "-checkout"))
+                (file-name (git-file-name name version))
                 (sha256
                  (base32
                   "09v97nk7qawphfijzqxzi2y63ydmfq7hsgpljjxwkykrc5h0kdlj"))))
@@ -5305,24 +5680,279 @@ go to the second most recent edit, etc.  Negative argument, @kbd{C-u -}, is
 used for reverse direction.")
     (license license:gpl2+)))
 
+(define-public emacs-janpath-evil-numbers
+  (let ((commit "d988041c1fe6e941dc8d591390750b237f71f524")
+        (version "0.5")
+        (revision "1"))
+    (package
+      (name "emacs-janpath-evil-numbers")
+      (version (git-version version revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/janpath/evil-numbers")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "16zixhxxcb83m82f2cfiardfn99j3w41v6vh1qk6j9pplrlfw70v"))))
+      (build-system emacs-build-system)
+      (propagated-inputs `(("emacs-evil" ,emacs-evil)))
+      (home-page "https://github.com/janpath/evil-numbers")
+      (synopsis "Increment and decrement numeric literals")
+      (description
+       "This package provides functionality to search for a number up to the
+end of a line and increment or decrement it.")
+      (license license:gpl3+))))
+
+(define-public emacs-evil-exchange
+  (let ((commit "47691537815150715e64e6f6ec79be7746c96120")
+        (version "0.41")
+        (revision "1"))
+    (package
+      (name "emacs-evil-exchange")
+      (version (git-version version revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/Dewdrops/evil-exchange")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "0bjpn4yqig17ddym6wqq5fm1b294q74hzcbj9a6gs97fqiwf88xa"))))
+      (build-system emacs-build-system)
+      (propagated-inputs `(("emacs-evil" ,emacs-evil)))
+      (home-page "https://github.com/Dewdrops/evil-exchange")
+      (synopsis "Exchange text easily within Evil")
+      (description
+       "This package, a port of @code{vim-exchange}, provides an Evil operator
+for exchanging text.")
+      (license license:gpl3+))))
+
+(define-public emacs-evil-replace-with-register
+  (let ((commit "91cc7bf21a94703c441cc9212214075b226b7f67")
+        (version "0.1")
+        (revision "1"))
+    (package
+      (name "emacs-evil-replace-with-register")
+      (version (git-version version revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/Dewdrops/evil-ReplaceWithRegister")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "14rpn76qrf287s3y2agmddcxi27r226i53ixjvd694ss039g0r11"))))
+      (build-system emacs-build-system)
+      (propagated-inputs `(("emacs-evil" ,emacs-evil)))
+      (home-page "https://github.com/Dewdrops/evil-ReplaceWithRegister")
+      (synopsis "Quickly replace text with the contents of a register")
+      (description
+       "This package provides an Evil operator for replacing text with the
+contents of a register.")
+      (license license:gpl3+))))
+
+(define-public emacs-evil-indent-plus
+  (let ((commit "0c7501e6efed661242c3a20e0a6c79a6455c2c40")
+        (version "1.0.0")
+        (revision "1"))
+    (package
+      (name "emacs-evil-indent-plus")
+      (version (git-version version revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/TheBB/evil-indent-plus")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "1g6r1ydscwjvmhh1zg4q3nap4avk8lb9msdqrh7dff6pla0r2qs6"))))
+      (build-system emacs-build-system)
+      (propagated-inputs `(("emacs-evil" ,emacs-evil)))
+      (home-page "https://github.com/TheBB/evil-indent-plus")
+      (synopsis "Text objects based on indentation")
+      (description
+       "This package adds new text objects for @code{evil-mode} based on
+blocks having the same or higher indentation, including or excluding
+surrounding lines.")
+      (license license:gpl2+))))
+
+(define-public emacs-evil-text-object-python
+  (let ((commit "9a064fe6475429145cbcc3b270fcc963b67adb15")
+        (version "1.0.1")
+        (revision "1"))
+    (package
+      (name "emacs-evil-text-object-python")
+      (version (git-version version revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/wbolster/evil-text-object-python")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "074zpm6mmr1wfl6d5xdf8jk1fs4ccpbzf4ahhkwga9g71xiplszv"))))
+      (build-system emacs-build-system)
+      (propagated-inputs `(("emacs-evil" ,emacs-evil)))
+      (home-page "https://github.com/wbolster/evil-text-object-python")
+      (synopsis "Text objects for Python")
+      (description
+       "This package provides @code{evil-mode} text objects for Python.")
+      (license license:gpl3+))))
+
+(define-public emacs-evil-lion
+  (let ((commit "6b03593f5dd6e7c9ca02207f9a73615cf94c93ab")
+        (version "0.0.2")
+        (revision "1"))
+    (package
+      (name "emacs-evil-lion")
+      (version (git-version version revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/edkolev/evil-lion")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "1a162hynp0jcsn50c1w5a02mrw9w3q05c7lkqzqd25px3d0p772q"))))
+      (build-system emacs-build-system)
+      (propagated-inputs `(("emacs-evil" ,emacs-evil)))
+      (home-page "https://github.com/edkolev/evil-lion")
+      (synopsis "Align operator for @code{evil-mode}")
+      (description
+       "This package, a port of @code{vim-lion}, provides an operator for
+aligning text objects based on separators.")
+      (license license:gpl3+))))
+
+(define-public emacs-evil-expat
+  (let ((commit "4c344ea19b789002d759a202ffbf594730d2c59a")
+        (version "0.0.1")
+        (revision "1"))
+    (package
+      (name "emacs-evil-expat")
+      (version (git-version version revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/edkolev/evil-expat")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "16v7fnldxag6l1lsnrnhdjkga9qi78lbdfbb82k6pmv04991mbkr"))))
+      (build-system emacs-build-system)
+      (propagated-inputs `(("emacs-evil" ,emacs-evil)))
+      (home-page "https://github.com/edkolev/evil-expat")
+      (synopsis "Extra @code{ex} commands for @code{evil-mode}")
+      (description
+       "This package provides additional commands for the @code{ex} command
+line, including functions for version control with Git and for copying and
+pasting into and from @code{tmux} paste buffers.")
+      (license license:gpl3+))))
+
+(define-public emacs-evil-nerd-commenter
+  (package
+    (name "emacs-evil-nerd-commenter")
+    (version "3.3.6")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/redguardtoo/evil-nerd-commenter")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "0074i9lvfs5hkbf63g1xh3n7dbmkax30bppkx2cd394c7zlsvzzk"))))
+    (build-system emacs-build-system)
+    (propagated-inputs `(("emacs-evil" ,emacs-evil)))
+    (home-page "https://github.com/redguardtoo/evil-nerd-commenter")
+    (synopsis "Comment and uncomment lines efficiently")
+    (description
+     "This package provides text objects and operators for comments within
+@code{evil-mode}.")
+    (license license:gpl3+)))
+
+(define-public emacs-evil-visual-replace
+  (package
+    (name "emacs-evil-visual-replace")
+    (version "0.0.5")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/troyp/evil-visual-replace")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "1gfyrq7xfzmzh3x8k5f08n027dlbwi0pkkxf9c39fkxp4jngibsz"))))
+    (build-system emacs-build-system)
+    (propagated-inputs `(("emacs-evil" ,emacs-evil)))
+    (home-page "https://github.com/troyp/evil-visual-replace")
+    (synopsis "Replacement commands for @code{evil-mode} visual blocks")
+    (description
+     "This package provides versions of @code{query-replace} and
+@code{replace-regexp} that work for @code{evil-mode} visual blocks.")
+    (license license:gpl2+)))
+
+(define-public emacs-evil-visualstar
+  (let ((commit "06c053d8f7381f91c53311b1234872ca96ced752")
+        (version "0.0.2")
+        (revision "1"))
+    (package
+      (name "emacs-evil-visualstar")
+      (version (git-version version revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/bling/evil-visualstar")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "0mkbzw12fav945icibc2293m5haxqr3hzkyli2cf4ssk6yvn0x4c"))))
+      (build-system emacs-build-system)
+      (propagated-inputs `(("emacs-evil" ,emacs-evil)))
+      (home-page "https://github.com/bling/evil-visualstar")
+      (synopsis "Instantly search using the visual selection")
+      (description
+       "This package provides @code{evil-mode} functions for using selected text
+to search.")
+      (license license:gpl3+))))
+
 (define-public emacs-monroe
   (package
     (name "emacs-monroe")
     (version "0.3.1")
     (source
-      (origin
-        (method url-fetch)
-        (uri (string-append "https://github.com/sanel/monroe/archive/"
-                            version ".tar.gz"))
-        (file-name (string-append name "-" version ".tar.gz"))
-        (sha256
-          (base32
-            "0icdx8shkd951phlnmcq1vqaxp1l667q5rjscskc5r22aylakh4w"))))
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/sanel/monroe.git")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "101lfrykdbv37spkbw7zihhx26bc1lhjyxbanrcp9880bxj04jiy"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/sanel/monroe")
     (synopsis "Clojure nREPL client for Emacs")
     (description
-      "Monroe is a nREPL client for Emacs, focused on simplicity and easy
+     "Monroe is a nREPL client for Emacs, focused on simplicity and easy
 distribution, primarily targeting Clojure users")
     (license license:gpl3+)))
 
@@ -5395,14 +6025,14 @@ passive voice.")
     (name "emacs-org")
     ;; emacs-org-contrib inherits from this package.  Please update its sha256
     ;; checksum as well.
-    (version "9.2.2")
+    (version "9.2.3")
     (source (origin
               (method url-fetch)
               (uri (string-append "http://elpa.gnu.org/packages/org-"
                                   version ".tar"))
               (sha256
                (base32
-                "02fq3x4haady2vagg9b363ynsrxzpijfp420qhciy7x8y7m89abw"))))
+                "0hqy4lns9q5p0l1ylgmlckqprn9sbasszhznanmv0rsh0gzhsbyw"))))
     (build-system emacs-build-system)
     (home-page "https://orgmode.org/")
     (synopsis "Outline-based notes management and organizer")
@@ -5416,14 +6046,14 @@ programming and reproducible research.")
   (package
     (inherit emacs-org)
     (name "emacs-org-contrib")
-    (version "20190311")
+    (version "20190402")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://orgmode.org/elpa/org-plus-contrib-"
                                   version ".tar"))
               (sha256
                (base32
-                "189p0f70j7z3hh72ay8cxa9n8xkcj06dlw765fwnqd2mm72vx0nb"))))
+                "0hbrhhq6sa0gz4ylzr54raxandqs4y953894b0hlr553b8sfl1wk"))))
     (arguments
      `(#:modules ((guix build emacs-build-system)
                   (guix build utils)
@@ -5517,7 +6147,7 @@ known loosely as deftheme.  Many mode-specific customizations are included.")
          (uri (git-reference
                (url home-page)
                (commit commit)))
-         (file-name (string-append name "-" version "-checkout"))
+         (file-name (git-file-name name version))
          (sha256
           (base32
            "0s6rbsb0y8i8m5b9xm4gw1p1cxsxdqnqxqqb638pygz9f76mbir1"))))
@@ -5545,7 +6175,7 @@ known loosely as deftheme.  Many mode-specific customizations are included.")
          (uri (git-reference
                (url "https://github.com/djcb/dream-theme")
                (commit commit)))
-         (file-name (string-append name "-" version "-checkout"))
+         (file-name (git-file-name name version))
          (sha256
           (base32
            "0za18nfkq4xqm35k6006vsixcbmvmxqgma4iw5sw37h8vmcsdylk"))))
@@ -5589,14 +6219,13 @@ extensibility.")
     (version "1.1.9")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append
-             "https://github.com/ajc/nginx-mode/archive/v"
-             version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/ajc/nginx-mode.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "0bzyrj6zz1hm67bkhw23bam7qc869s3zg7m1rb1c3aa4n0aw90cq"))))
+        (base32 "17dh5pr3gh6adrbqx588gimxbb2fr7iv2qrxv6r48w2727l344xs"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/ajc/nginx-mode")
     (synopsis "Emacs major mode for editing nginx config files")
@@ -5652,14 +6281,13 @@ procedures for emacs-lisp-mode.")
     (version "2.2")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append
-             "https://github.com/Wilfred/ht.el/archive/"
-             version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/Wilfred/ht.el.git")
+             (commit version)))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "0fsi27gdrh2dgwdbq43vnw5sz25war6shlxaclr60fl7krpxjkzf"))))
+        (base32 "1p3qa7g0wa0wbviv2f8bda39cjys3naayk5xjm3nxxmqsyy8papx"))))
     (build-system emacs-build-system)
     (propagated-inputs `(("emacs-dash" ,emacs-dash)))
     (home-page "https://github.com/Wilfred/ht.el")
@@ -5675,14 +6303,13 @@ provides functions to convert hash tables from and to alists and plists.")
     (version "0.3.0")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append
-             "https://github.com/aki2o/log4e/archive/v"
-             version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/aki2o/log4e.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "0nbdpbw353snda3v19l9hsm6gimppwnpxj18amm350bm81lyim2g"))))
+        (base32 "1l28n7a0v2zkknc70i1wn6qb5i21dkhfizzk8wcj28v44cgzk022"))))
     (build-system emacs-build-system)
     (arguments
      `(#:phases
@@ -5706,14 +6333,13 @@ you to deal with multiple log levels.")
     (version "0.1")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append
-             "https://github.com/tekai/gntp.el/archive/v"
-             version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/tekai/gntp.el.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "16c1dfkia9yhl206bdhjr3b8kfvqcqr38jl5lq8qsyrrzsnmghny"))))
+        (base32 "1nvyjjjydrimpxy4cpg90si7sr8lmldbhlcm2mx8npklp9pn5y3a"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/tekai/gntp.el")
     (synopsis "Growl Notification Protocol for Emacs")
@@ -5730,14 +6356,13 @@ notifications.")
     (version "1.2")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append
-             "https://github.com/jwiegley/alert/archive/v"
-             version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/jwiegley/alert.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "1693kck3k2iz5zhpmxwqyafxm68hr6gzs60lkxd3j1wlp2c9fwyr"))))
+        (base32 "1vpc3q40m6dcrslki4bg725j4kv6c6xfxwjjl1ilg7la49fwwf26"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-gntp" ,emacs-gntp)
@@ -5750,20 +6375,48 @@ interface and multiple, selectable \"styles\", whose use is fully
 customizable by the user.")
     (license license:gpl2+)))
 
+(define-public emacs-zones
+  (let ((commit "353fc38a6544eb59887bee045e373406f1d038a5")
+        (revision "1"))
+    (package
+      (name "emacs-zones")
+      (version (git-version "0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/emacsmirror/zones.git")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "0gwnw2giii2a14nlh62xp45f47cw6ikqphhzpmcw6c7mn9x5z2ar"))
+         (patches
+          (search-patches
+           "emacs-zones-called-interactively.patch"))))
+      (build-system emacs-build-system)
+      (home-page "https://www.emacswiki.org/emacs/Zones")
+      (synopsis "Define and act on multiple zones of buffer text")
+      (description "Library @file{zones.el} lets you easily define and
+subsequently act on multiple zones of buffer text.  You can think of this as
+enlarging the notion of region.  In effect, it can remove the requirement of
+target text being a contiguous sequence of characters.  A set of buffer zones
+is, in effect, a (typically) noncontiguous set of text.")
+      (license license:gpl3+))))
+
 (define-public emacs-mu4e-alert
   (package
     (name "emacs-mu4e-alert")
     (version "1.0")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append
-             "https://github.com/iqbalansari/mu4e-alert/archive/v"
-             version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/iqbalansari/mu4e-alert.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "07qc834qnxn8xi4bw5nawj8g91bmkzw0r0vahkgysp7r9xrf57gj"))))
+        (base32 "1nvsfbfsma59ilf7c3vjngnmx3aapwvvvaafdy5szm5r6lkicqvg"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-alert" ,emacs-alert)
@@ -5842,7 +6495,7 @@ abbreviation and automatically expand it into function templates.")
          (uri (git-reference
                (url "https://github.com/AndreaCrotti/yasnippet-snippets")
                (commit commit)))
-         (file-name (string-append name "-" version "-checkout"))
+         (file-name (git-file-name name version))
          (sha256
           (base32
            "1m935zgglw0iakzrixld5rcjz3wnj84f8wy2mvc3pggjri9l0qr9"))))
@@ -5888,7 +6541,7 @@ To make YASnippet aware of these snippets, add the above directory to
                 (uri (git-reference
                       (url "https://github.com/emacs-jp/helm-c-yasnippet")
                       (commit commit)))
-                (file-name (string-append name "-" version "-checkout"))
+                (file-name (git-file-name name version))
                 (sha256
                  (base32
                   "1cbafjqlzxbg19xfdqsinsh7afq58gkf44rsg1qxfgm8g6zhr7f8"))))
@@ -5950,14 +6603,13 @@ above over the network.")
     (version "1.1")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append
-             "https://github.com/skeeto/emacs-memoize/archive/"
-             version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/skeeto/emacs-memoize.git")
+             (commit version)))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "05ijgwi4ymxx31vpjm2pn356j85cykknajn14lrzz8pn5sh0vrg4"))))
+        (base32 "04qgnlg4x6va7x364dhj1wbjmz8p5iq2vk36mn9198k2vxmijwzk"))))
     (build-system emacs-build-system)
     (arguments
      `(#:tests? #t
@@ -5976,14 +6628,13 @@ memoizing functions.")
     (version "0.5")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append
-             "https://github.com/coldnew/linum-relative/archive/"
-             version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/coldnew/linum-relative.git")
+             (commit version)))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "0s4frvr27866lw1rn3jal9wj5rkz9fx4yiszqv7w06azsdgsqksv"))))
+        (base32 "11bjnqqwvr9zrvz5dlm8a0yw4zg9ysh3jdiq5a6iw09d3f0h1v2s"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/coldnew/linum-relative")
     (synopsis "Relative line numbering for Emacs")
@@ -5997,14 +6648,13 @@ number on the left margin in Emacs.")
     (version "1.1.3")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append
-             "https://github.com/nonsequitur/idle-highlight-mode/archive/"
-             version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/nonsequitur/idle-highlight-mode.git")
+             (commit version)))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "0kdv10hrgqpskjh0zvpnzwlkn5bccnqxas62gkws6njln57bf8nl"))))
+        (base32 "0x4w1ksrw7dicl84zpf4d4scg672dyan9g95jkn6zvri0lr8xciv"))))
     (build-system emacs-build-system)
     (home-page "https://www.emacswiki.org/emacs/IdleHighlight")
     (synopsis "Highlights all occurrences of the word the point is on")
@@ -6020,14 +6670,13 @@ number on the left margin in Emacs.")
     (version "1.1.1")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append
-             "https://github.com/marsmining/ox-twbs/archive/v"
-             version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/marsmining/ox-twbs.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "1zaq8dczq5wijjk36114k2x3hfrqig3lyx6djril6wyk67vczyqs"))))
+        (base32 "0kd45p8y7ykadmai4jn1x1pgpafyqggwb1ccbjzalxw4k9wmd45f"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/marsmining/ox-twbs")
     (synopsis "Export org-mode docs as HTML compatible with Twitter Bootstrap")
@@ -6044,14 +6693,13 @@ jQuery and Bootstrap resources included via osscdn.")
     (version "1.0")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append
-             "https://github.com/daimrod/highlight-sexp/archive/v"
-             version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/daimrod/highlight-sexp.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "0jwx87qkln1rg9wmv4qkgkml935fh2pkgrg5x4ca6n5dgb4q6rj1"))))
+        (base32 "12cyk2q5g6p4ac2hykw1cag7dp1prjjnck5f7nalwwaklmy62y79"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/daimrod/highlight-sexp")
     (synopsis "Minor mode that highlights the s-exp at the current position")
@@ -6071,7 +6719,7 @@ jQuery and Bootstrap resources included via osscdn.")
          (uri (git-reference
                (url "https://github.com/zk-phi/highlight-stages.git")
                (commit commit)))
-         (file-name (string-append name "-" version "-checkout"))
+         (file-name (git-file-name name version))
          (sha256
           (base32
            "0r6nbcrr0dqpgm8dir8ahzjy7rw4nrac48byamzrq96r7ajlxlv0"))
@@ -6218,14 +6866,13 @@ the hunks and revert them selectively.")
     (version "0.45")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append
-             "https://github.com/myrjola/diminish.el/archive/v"
-             version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/myrjola/diminish.el.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "0i3629sv5cfrrb00hcnmaqzgs8mk36yasc1ax3ry1ga09nr6rkj9"))))
+        (base32 "0qpgfgp8hrzz4vdifxq8h25n0a0jlzgf7aa1fpy6r0080v5rqbb6"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/myrjola/diminish.el")
     (synopsis "Diminish minor modes with no modeline display")
@@ -6274,7 +6921,7 @@ performance-oriented and tidy.")
                 (uri (git-reference
                       (url "https://github.com/pkmoore/strace-mode")
                       (commit commit)))
-                (file-name (string-append name "-" version "-checkout"))
+                (file-name (git-file-name name version))
                 (sha256
                  (base32
                   "1lbk2kzdznf2bkfazizfbimaxxzfzv00lrz1ran9dc2zqbc0bj9f"))))
@@ -6318,14 +6965,13 @@ source file, @file{jl-encrypt.el}.")
     (version "1.53")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append
-             "https://github.com/hniksic/emacs-htmlize/archive/release/"
-             version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/hniksic/emacs-htmlize.git")
+             (commit (string-append "release/" version))))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "1lzaf9m1qr9dhw4nn53g6wszk2vqw95gpsbrc3y85bams4cn24ga"))))
+        (base32 "0dr235c0z8is3pi5xdgqyqljg6px0b2aya6qb79zkyi477bmz4ip"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/hniksic/emacs-htmlize")
     (synopsis "Convert buffer text and decorations to HTML")
@@ -6340,14 +6986,13 @@ fonts is supported.")
     (version "0.5")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append
-             "https://github.com/philjackson/xmlgen/archive/"
-             version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/philjackson/xmlgen.git")
+             (commit version)))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "0zay490vjby3f7455r0vydmjg7q1gwc78hilpfb0rg4gwz224z8r"))))
+        (base32 "096i29v0badx0a6339h9ckdz78zj59gbjdp7vj7vhkq9d830392s"))))
     (build-system emacs-build-system)
     (arguments
      `(#:tests? #t
@@ -6367,14 +7012,13 @@ conversion for Emacs Lisp.")
     (version "4.7")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append
-             "https://github.com/cdominik/cdlatex/archive/"
-             version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/cdominik/cdlatex.git")
+             (commit version)))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "0pivapphmykc6vhvpx7hdyl55ls37vc4jcrxpvs4yk7jzcmwa9xp"))))
+        (base32 "1jj9vmhc4s3ych08bjm1c2xwi81z1p20rj7bvxrgvb5aga2ghi9d"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-auctex" ,emacs-auctex)))
@@ -6392,15 +7036,15 @@ constructs.")
   (package
     (name "emacs-cnfonts")
     (version "0.9.1")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "https://github.com/tumashu/cnfonts/archive/v"
-                    version ".tar.gz"))
-              (file-name (string-append name "-" version ".tar.gz"))
-              (sha256
-               (base32
-                "1l6cgcvc6md1zq97ccczankpyi0k4vjx6apflny6kjq3p33lyhf4"))))
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/tumashu/cnfonts.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "11d44lf0m0kbzq1mvyqkl4aprys0xqaarp08nij57xnynin1rynx"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/tumashu/cnfonts")
     (synopsis "Emacs Chinese fonts setup tool")
@@ -6435,15 +7079,15 @@ browser.")
   (package
     (name "emacs-pos-tip")
     (version "0.4.6")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "https://github.com/pitkali/pos-tip/archive/"
-                    version ".tar.gz"))
-              (file-name (string-append name "-" version ".tar.gz"))
-              (sha256
-               (base32
-                "12jqfy26vjk7lq0aa8yn8zqj8c85fkvx7y9prj0pcn4wqiz2ad2r"))))
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/pitkali/pos-tip.git")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0w8bnspnk871qndp18hs0wk4x9x31xr9rwbvf5dc8mcbnj29ch33"))))
     (build-system emacs-build-system)
     ;; The following functions and variables needed by emacs-pos-tip are
     ;; not included in emacs-minimal:
@@ -6461,15 +7105,15 @@ function to be used by other frontend programs.")
   (package
     (name "emacs-pyim-basedict")
     (version "0.3.1")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "https://github.com/tumashu/pyim-basedict/archive/v"
-                    version ".tar.gz"))
-              (file-name (string-append name "-" version ".tar.gz"))
-              (sha256
-               (base32
-                "0nfgxviavkgrpyfsw60xsws4fk51fcmgl8fp6zf4ibqjjbp53n3n"))))
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/tumashu/pyim-basedict.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0576r8ap9gp91ycjf1d47pn13kxp0f9fysn09zlq44hr0s1y2y5d"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/tumashu/pyim-basedict")
     (synopsis "Input method dictionary of pyim")
@@ -6529,15 +7173,15 @@ posframe is a child frame displayed within its root window's buffer.
   (package
     (name "emacs-el2org")
     (version "0.6.0")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "https://github.com/tumashu/el2org/archive/v"
-                    version ".tar.gz"))
-              (file-name (string-append name "-" version ".tar.gz"))
-              (sha256
-               (base32
-                "0gd3km1swwvg2w0kdi7370f54wgrflxn63gjgssfjc1iyc9sbqwq"))))
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/tumashu/el2org.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0mzddqny6wpg1fv99xrvlv7rxmaifvmy5bvj4in4pldhm4cx4q1b"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/tumashu/el2org")
     (synopsis "Convert Emacs-lisp file to org file")
@@ -6549,15 +7193,15 @@ to org file, you can use this tool to write orgify commentary.")
   (package
     (name "emacs-mustache")
     (version "0.23")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "https://github.com/Wilfred/mustache.el/archive/"
-                    version ".tar.gz"))
-              (file-name (string-append name "-" version ".tar.gz"))
-              (sha256
-               (base32
-                "0k9lcgil7kykkv1ylrgwy1g13ldjjmgi2cwmysgyb2vlj3jbwpdj"))))
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/Wilfred/mustache.el.git")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1n2ymd92qpvsby6ms0l3kjhdzzc47rri2aiscc6bs07hm4mjpr9q"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-dash" ,emacs-dash)
@@ -6576,15 +7220,15 @@ and lambdas.")
   (package
     (name "emacs-org2web")
     (version "0.9.1")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "https://github.com/tumashu/org2web/archive/v"
-                    version ".tar.gz"))
-              (file-name (string-append name "-" version ".tar.gz"))
-              (sha256
-               (base32
-                "1c0ixcphlhp4c4qdiwq40bc3yp1gp1llp8pxrk4s7ny9n68s52zp"))))
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/tumashu/org2web.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0wsvfn409a2ivbich8b8zqza78sprirg4bl7igx536ydqclmi0n7"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-dash" ,emacs-dash)
@@ -6679,7 +7323,7 @@ It should enable you to implement low-level X11 applications.")
                      Name=~a~@
                      Comment=~a~@
                      Exec=~a~@
-                     TryExec=~@*~a~@
+                     TryExec=~:*~a~@
                      Type=Application~%" ,name ,synopsis exwm-executable)))
                ;; Add a shell wrapper to bin
                (with-output-to-file exwm-executable
@@ -6801,14 +7445,13 @@ on mouse-control.")
     (version "0.7.0")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append
-             "https://github.com/bruceravel/gnuplot-mode/archive/"
-             version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/bruceravel/gnuplot-mode.git")
+             (commit version)))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "0glzymrn138lwig7p4cj17x4if5jisr6l4g6wcbxisqkqgc1h01i"))))
+        (base32 "0bwri3cvm2vr27kyqkrddm28fs08axnd4nm9amfgp54xp20bn4yn"))))
     (build-system gnu-build-system)
     (native-inputs `(("emacs" ,emacs-minimal)))
     (arguments
@@ -6883,14 +7526,13 @@ pressed simultaneously or a single key quickly pressed twice.")
     (version "1.0.0")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append
-             "https://github.com/timcharper/evil-surround/archive/v"
-             version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/timcharper/evil-surround.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "0p572jgic3q1ia1nz37kclir729ay6i2f4sa7wnaapyxly2lwb3r"))))
+        (base32 "1smv7sqhm1l2bi9fmispnlmjssidblwkmiiycj1n3ag54q27z031"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-evil" ,emacs-evil)))
@@ -6906,14 +7548,13 @@ addition of surrounding pairs, such as parantheses and quotes, in evil mode.")
     (version "2.1.1")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append
-             "https://github.com/linktohack/evil-commentary/archive/v"
-             version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/linktohack/evil-commentary.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "1jdya0i921nwskwrzdsj0vrr3m7gm49dy6f6pk9p5nxaarfxk230"))))
+        (base32 "0zjs9zyqfygnpxapvf0ymmiid40i06cxbhjzd81zw33nafgkf6r4"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-evil" ,emacs-evil)))
@@ -6932,13 +7573,13 @@ lines, and @code{gc} to comment out the target of a motion.")
     (version "0.4.1")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/rejeep/ansi.el/archive/v"
-                           version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/rejeep/ansi.el.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "13jj4vbi98j3p17hs99bmy7g21jd5h4v3wpxk4pkvhylm3bfwjw8"))))
+        (base32 "1hbddxarr40ygvaw4pwaivq2l4f0brszw73w1r50lkjlggb7bl3g"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-dash" ,emacs-dash)
@@ -6959,13 +7600,13 @@ as bold, underscore or italic.")
     (version "0.7.0")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/rejeep/commander.el/archive/v"
-                           version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/rejeep/commander.el.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "196s2i15z7gwxa97l1wkxvjnfmj5n38wwm6d3g4zz15l2vqggc2y"))))
+        (base32 "1j6hhyzww7wfwk6bllbb5mk4hw4qs8hsgfbfdifsam9c6i4spm45"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-dash" ,emacs-dash)
@@ -7042,14 +7683,13 @@ running tests easier.")
     (version "0.2")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append
-             "https://github.com/purcell/disable-mouse/archive/"
-             version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/purcell/disable-mouse.git")
+             (commit version)))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "0haqpq23r1wx04lsqrrg3p5visg9hx5i36dg55ab003wfsrlrzbc"))))
+        (base32 "1v1y5hf6k6ng7xsvgb27nh740d14m6l4krr0paccda8zgm4mw357"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/purcell/disable-mouse")
     (synopsis "Disable mouse commands globally")
@@ -7065,13 +7705,13 @@ running a customisable handler command (@code{ignore} by default). ")
     (version "0.0.6")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/gongo/json-reformat/archive/"
-                           version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/gongo/json-reformat.git")
+             (commit version)))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "11fbq4scrgr7m0iwnzcrn2g7xvqwm2gf82sa7zy1l0nil7265p28"))
+        (base32 "0qp4n2k6s69jj4gwwimkpadjv245y54wk3bxb1x96f034gkp81vs"))
        (patches (search-patches "emacs-json-reformat-fix-tests.patch"))))
     (build-system emacs-build-system)
     (propagated-inputs
@@ -7085,6 +7725,10 @@ running a customisable handler command (@code{ignore} by default). ")
        #:test-command '("ert-runner")
        #:phases
        (modify-phases %standard-phases
+         (add-before 'check 'make-tests-writable
+           (lambda _
+             (for-each make-file-writable (find-files "test"))
+             #t))
          (add-before 'check 'delete-json-objects-order-test
            (lambda _
              (emacs-batch-edit-file "test/json-reformat-test.el"
@@ -7107,13 +7751,13 @@ running a customisable handler command (@code{ignore} by default). ")
     (version "1.0.0")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/Sterlingg/json-snatcher/archive/"
-                           version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/Sterlingg/json-snatcher.git")
+             (commit version)))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "1nfiwsifpdiz0lbrqa77nl0crnfrv5h85ans9b0g5rggnmyshcfb"))))
+        (base32 "05zsgnk7grgw9jzwl80h5sxfpifxlr37b4mkbvx7mjq4z14xc2jw"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/sterlingg/json-snatcher")
     (synopsis "Grabs the path to JSON values in a JSON file")
@@ -7127,13 +7771,13 @@ a @url{http://json.org/, JSON} file.")
     (version "1.7.0")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/joshwnj/json-mode/archive/"
-                           "v" version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/joshwnj/json-mode.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "06h45p4cn767pk9sqi2zb1c65wy5gyyijqxzpglp80zwxhvajdz5"))))
+        (base32 "0i79lqzdg59vkqwjd3q092xxn9vhxspb1vn4pkis0vfvn46g01jy"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-json-reformat" ,emacs-json-reformat)
@@ -7212,7 +7856,7 @@ the actual transformations.")
       (license license:gpl2+))))
 
 (define-public emacs-dired-hacks
-  (let ((commit "eda68006ce73bbf6b9b995bfd70d08bec8cade36")
+  (let ((commit "2c1234592aee91dcd9401bcd67213e6a4a464fd9")
         (revision "1"))
     (package
       (name "emacs-dired-hacks")
@@ -7223,10 +7867,10 @@ the actual transformations.")
                 (uri (git-reference
                       (url "https://github.com/Fuco1/dired-hacks.git")
                       (commit commit)))
-                (file-name (string-append name "-" version "-checkout"))
+                (file-name (git-file-name name version))
                 (sha256
                  (base32
-                  "1w7ssl9zssn5rcha6apf4h8drkd02k4xgvs203bdbqyqp9wz9brx"))))
+                  "1g7mky41cahpryzj6frdgzdymknpqq7pidzfjj9304887kijmhj3"))))
       (build-system emacs-build-system)
       (propagated-inputs
        `(("emacs-dash" ,emacs-dash)
@@ -7264,6 +7908,7 @@ the actual transformations.")
       (source (origin
                 (method git-fetch)
                 (uri (git-reference (url home-page) (commit commit)))
+                (file-name (git-file-name name version))
                 (sha256
                  (base32
                   "0lvwvq6sl80sha9fq5m4568sg534dhmifyjqw75bqddcbf3by84x"))))
@@ -7282,14 +7927,13 @@ or @code{treemacs}, but leveraging @code{Dired} to do the job of display.")
     (version "3.3.1")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append
-             "https://github.com/justbur/emacs-which-key/archive/v"
-             version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/justbur/emacs-which-key.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "1g8k0js21bc8mlw6hvmg93zgfjhil77c30cv1hf85y4qb9ldvika"))
-       (file-name (string-append name "-" version ".tar.gz"))))
+        (base32 "1dh6kr00wmql46whjkvnl953zngiv5j99ypvr1b3cb2174623afb"))))
     (build-system emacs-build-system)
     (arguments
      `(#:tests? #t
@@ -7316,7 +7960,7 @@ settings).")
               (uri (git-reference
                     (url "https://github.com/lewang/ws-butler.git")
                     (commit "323b651dd70ee40a25accc940b8f80c3a3185205")))
-              (file-name (string-append name "-" version "-checkout"))
+              (file-name (git-file-name name version))
               (sha256
                (base32
                 "1a4b0lsmwq84qfx51c5xy4fryhb1ysld4fhgw2vr37izf53379sb"))))
@@ -7339,14 +7983,13 @@ characters from end of lines.")
     (version "0.8.0")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append
-             "https://github.com/et2010/org-edit-latex/archive/v"
-             version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/et2010/org-edit-latex.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "1y4h6wrs8286h9pbsv4d8fr67a885vz8b2k80qgv5qddipi2i78p"))))
+        (base32 "0zcllyhx9n9vcr5w87h0hfz25v52lvh5fi717cb7mf3jh89zh842"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-auctex" ,emacs-auctex)
@@ -7364,15 +8007,15 @@ src block.")
   (package
     (name "emacs-emamux")
     (version "0.14")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "https://github.com/syohex/emacs-emamux/archive/"
-                    version ".tar.gz"))
-              (file-name (string-append name "-" version ".tar.gz"))
-              (sha256
-               (base32
-                "0wlqg4icy037bj70b0qmhvwvmiwhagpnx6pnxhq6gzy1hvwlilkx"))))
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/syohex/emacs-emamux.git")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "19y69qw79miim9cz5ji54gwspjkcp9g2c1xr5s7jj2fiabnxax6b"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/syohex/emacs-emamux")
     (synopsis "Manipulate Tmux from Emacs")
@@ -7410,14 +8053,13 @@ editing RPM spec files.")
     (version "0.18")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append
-             "https://github.com/syohex/emacs-git-messenger/archive/"
-             version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/syohex/emacs-git-messenger.git")
+             (commit version)))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "17mqki6g0wx46fn7dcbcc2pjxik7vvrcb1j9jzxim8b9psbsbnp9"))))
+        (base32 "04fnby2nblk8l70gv09asxkmnn53fh1pdfs77ix44npp99fyw8ix"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-popup" ,emacs-popup)))
@@ -7439,13 +8081,13 @@ internally.")
     (version "0.5.0")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/tumashu/gitpatch/archive/"
-                           "v" version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/tumashu/gitpatch.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "1yj6pmic541lcnscjin300k380qp9xdfprs55xg1q57jrkq6f6k7"))))
+        (base32 "1jj12pjwza6cq8a3kr8nqnmm3vxs0wam8h983irry4xr4ifywsn4"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/tumashu/gitpatch")
     (synopsis "Mail git patch from Emacs")
@@ -7487,13 +8129,13 @@ the nick color and the background color
     (version "2.0.0")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/hrs/engine-mode/archive/"
-                           "v" version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/hrs/engine-mode.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "1vm4p7pcp1vnwwxvps1bhm7i7hkabqqxl898knxf2hqvxys76684"))))
+        (base32 "02xas46nl28mascqsyr1zcd4hn15bh0fjv2xlxv1kmrj0pis94ml"))))
     (build-system emacs-build-system)
     (synopsis "Minor mode for defining and querying search engines")
     (description "@code{engine-mode} is a global minor mode for Emacs.  It
@@ -7565,14 +8207,13 @@ Idris.")
     (version "0.10.0")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append
-             "https://github.com/rmuslimov/browse-at-remote/archive/"
-             version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/rmuslimov/browse-at-remote.git")
+             (commit version)))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "0ymslsp6i1naw25zckv25bf4aaq6qwkbkn95qyzlwg869l802686"))))
+        (base32 "0vhia7xmszcb3lxrb8wh93a3knjfzj48h8nhj4fh8zj1pjz6args"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-f" ,emacs-f)
@@ -7655,7 +8296,7 @@ well as Github-style emojis like @code{:smile:}.  It provides a minor mode
        (uri (git-reference
              (url "https://github.com/ahyatt/emacs-websocket.git")
              (commit version)))
-       (file-name (string-append name "-" version "-checkout"))
+       (file-name (git-file-name name version))
        (sha256
         (base32
          "1dgrf7na6r6mmkknphzshlbd5fnzisg0qn0j7vfpa38wgsymaq52"))))
@@ -7786,25 +8427,28 @@ messaging service.")
    (version "2.1.0")
    (source
     (origin
-      (method url-fetch)
-      (uri (string-append
-            "https://github.com/szermatt/emacs-bash-completion/archive/v"
-            version ".tar.gz"))
-      (file-name (string-append name "-" version ".tar.gz"))
+      (method git-fetch)
+      (uri (git-reference
+            (url "https://github.com/szermatt/emacs-bash-completion.git")
+            (commit version)))
+      (file-name (git-file-name name version))
       (sha256
-       (base32
-        "1z0qck3v3ra6ivacn8n04w1v33a4xn01xx860761q31qzsv3sksq"))))
+       (base32 "1a1wxcqzh0javjmxwi3lng5i99xiylm8lm04kv4q1lh9bli6vmv0"))))
    (inputs `(("bash" ,bash)))
    (build-system emacs-build-system)
    (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-before 'install 'configure
-           (lambda* (#:key inputs #:allow-other-keys)
-             (let ((bash (assoc-ref inputs "bash")))
-               (emacs-substitute-variables "bash-completion.el"
-                 ("bash-completion-prog" (string-append bash "/bin/bash"))))
-             #t)))))
+    `(#:phases
+      (modify-phases %standard-phases
+        (add-after 'unpack 'make-git-checkout-writable
+          (λ _
+            (for-each make-file-writable (find-files "."))
+            #t))
+        (add-before 'install 'configure
+          (lambda* (#:key inputs #:allow-other-keys)
+            (let ((bash (assoc-ref inputs "bash")))
+              (emacs-substitute-variables "bash-completion.el"
+                ("bash-completion-prog" (string-append bash "/bin/bash"))))
+            #t)))))
    (home-page "https://github.com/szermatt/emacs-bash-completion")
    (synopsis "Bash completion for the shell buffer")
    (description
@@ -7857,15 +8501,15 @@ in a generalized CSV (character-separated values) format.")
   (package
     (name "emacs-transmission")
     (version "0.12.1")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "https://github.com/holomorph/transmission/archive/"
-                    version ".tar.gz"))
-              (file-name (string-append name "-" version ".tar.gz"))
-              (sha256
-               (base32
-                "1rrlgn96gi1ljfwbwvlyyxbq75xzamlbdhq1bpyadxxmxcvlmk3n"))))
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/holomorph/transmission.git")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0kvg2gawsgy440x1fsl2c4pkxwp3zirq9rzixanklk0ryijhd3ry"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/holomorph/transmission")
     (synopsis "Emacs interface to a Transmission session")
@@ -7948,31 +8592,25 @@ for external literate programming tools for exporting, weaving and tangling.")
   (package
     (name "eless")
     (version "0.3")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "https://github.com/kaushalmodi/eless/archive/"
-                    "v" version ".tar.gz"))
-              (file-name (string-append name "-" version ".tar.gz"))
-              (sha256
-               (base32
-                "0gjnnhgw5xs1w3qfnkvwa2nv44gnxr8pkhx3c7qig45p8nh1461h"))))
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/kaushalmodi/eless.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0jr7vhh4vw69llhi0fh9ljscljkszkj0acdxl04da5hvqv6pnqbb"))))
     (build-system trivial-build-system)
     (inputs
      `(("bash" ,bash)))
-    (native-inputs
-     `(("tar" ,tar)
-       ("gzip" ,gzip)))
     (arguments
      `(#:modules ((guix build utils))
        #:builder
        (begin
          (use-modules (guix build utils))
-         (setenv "PATH" (string-append
-                         (assoc-ref %build-inputs "tar") "/bin" ":"
-                         (assoc-ref %build-inputs "gzip") "/bin"))
-         (invoke "tar" "xvf" (assoc-ref %build-inputs "source"))
-         (chdir (string-append "eless" "-" ,version))
+         (copy-recursively (assoc-ref %build-inputs "source") "source")
+         (chdir "source")
          (substitute* "eless" (("/usr/bin/env bash")
                                (string-append (assoc-ref %build-inputs "bash")
                                               "/bin/bash")))
@@ -8005,17 +8643,16 @@ Feautures:
 (define-public emacs-evil-matchit
   (package
     (name "emacs-evil-matchit")
-    (version "2.2.6")
+    (version "2.2.9")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append
-             "https://github.com/redguardtoo/evil-matchit/archive/"
-             version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/redguardtoo/evil-matchit.git")
+             (commit version)))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "1yp9sl6542317mn1060ri90zyf6bs6qylagndhqy02p368q31rhi"))))
+        (base32 "12if45pxfndy3d7r4gd3zx4d3jk4d64fdmwkhc3y5zhqq9h9iy4c"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-evil" ,emacs-evil)))
@@ -8032,14 +8669,13 @@ evil mode using @kbd{%}.  It is a port of @code{matchit} for Vim.")
     (version "0.4.0")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append
-             "https://github.com/expez/evil-smartparens/archive/"
-             version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/expez/evil-smartparens.git")
+             (commit version)))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "1bwzdd3054d407d5j4m3njsbvmc9r8zzp33m32pj3b3irxrl68q0"))))
+        (base32 "1di4qz5fbrlwbg16c2j0m7y8zqfxw027qd7zqmc3rwk9znbhg7wl"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-evil" ,emacs-evil)
@@ -8057,13 +8693,13 @@ emulates Vim features and provides Vim-like key bindings.")
     (version "0.1.4")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/blorbx/evil-quickscope/archive/v"
-                           version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/blorbx/evil-quickscope.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "1r26a412mmar7vbf89zcifswiwpdg30mjzj32xdyqss57aqi83ma"))))
+        (base32 "1ja9ggj70wf0nmma4xnc1zdzg2crq9h1cv3cj7cgwjmllflgkfq7"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-evil" ,emacs-evil)))
@@ -8086,14 +8722,13 @@ features and provides Vim-like key bindings.")
     (version "1.0")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append
-             "https://github.com/dbrock/bongo/archive/"
-             version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/dbrock/bongo.git")
+             (commit version)))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "1pcsyyrvj7djjjwpaswd1i782hvqvlvs39cy9ns0k795si6xd64d"))))
+        (base32 "1q3ws2vn062dh7ci6jn2k2bcn7szh3ap64sgwkzdd6f1pas37fnr"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/dbrock/bongo")
     (synopsis "Media player for Emacs")
@@ -8201,7 +8836,7 @@ formatting rules for that language.")
        (uri (git-reference
              (url "https://github.com/nicferrier/emacs-kv.git")
              (commit "721148475bce38a70e0b678ba8aa923652e8900e")))
-       (file-name (string-append name "-" version "-checkout"))
+       (file-name (git-file-name name version))
        (sha256
         (base32
          "0r0lz2s6gvy04fwnafai668jsf4546h4k6zd6isx5wpk0n33pj5m"))))
@@ -8317,40 +8952,34 @@ Features:
     (version "0.1.0")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/cute-jumper/epipe/archive/"
-                           version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/cute-jumper/epipe.git")
+             (commit version)))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "05a036852g4j63k1mhvyfrcsgkl9lczayi7x61570ysw3cli5wp5"))))
+        (base32 "0lkisi1s7sn12nx8zh58qmsxwnk1rjwryj18wcbr148xqz3swg57"))))
     (build-system trivial-build-system)
     (inputs
      `(("bash" ,bash)
        ("perl" ,perl)))
-    (native-inputs
-     `(("tar" ,tar)
-       ("gzip" ,gzip)))
     (arguments
      `(#:modules
        ((guix build utils))
        #:builder
        (begin
          (use-modules (guix build utils))
-         ;; Extract source
-         (setenv "PATH" (string-append
-                         (assoc-ref %build-inputs "tar") "/bin" ":"
-                         (assoc-ref %build-inputs "gzip") "/bin"))
-         (invoke "tar" "xvf" (assoc-ref %build-inputs "source"))
-         (chdir (string-append ,name "-" ,version))
-         ;; Patch shebangs
+         ;; Extract source.
+         (copy-recursively (assoc-ref %build-inputs "source") "source")
+         (chdir "source")
+         ;; Patch shebangs.
          (substitute* "epipe"
            (("/usr/bin/env bash")
             (string-append (assoc-ref %build-inputs "bash") "/bin/bash")))
          (patch-shebang "epipe.pl"
                         (list (string-append (assoc-ref %build-inputs "perl")
                                              "/bin")))
-         ;; Installation
+         ;; Install.
          (for-each (lambda (file)
                      (install-file file (string-append %output "/bin")))
                    '("epipe" "epipe.pl"))
@@ -8367,14 +8996,13 @@ the pipeline, featuring the support for running @code{emacsclient}.")
     (version "0.03")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append
-             "https://github.com/syohex/emacs-hcl-mode/archive/"
-             version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/syohex/emacs-hcl-mode.git")
+             (commit version)))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "0pvw74qpwh0znqzp6syp4wxjqs7dp1hbn5h7xfk97mff9l5d8k6x"))))
+        (base32 "0jqrgq15jz6pvx38pnwkizzfiih0d3nxqphyrc92nqpcyimg8b6g"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/syohex/emacs-hcl-mode")
     (synopsis "Major mode for the Hashicorp Configuration Language")
@@ -8390,14 +9018,13 @@ highlighting and indentation support.")
     (version "0.06")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append
-             "https://github.com/syohex/emacs-terraform-mode/archive/"
-             version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/syohex/emacs-terraform-mode.git")
+             (commit version)))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "0h9267ifdjmcin4sj8slxydbacx4bqicbvg8pa1qq2l72h9m5381"))))
+        (base32 "05hn8kskx9lcgn7bzgam99c629zlryir2pickwrqndacjrqpdykx"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-hcl-mode" ,emacs-hcl-mode)))
@@ -8460,13 +9087,13 @@ directories of plain text notes, inspired by Notational Velocity.")
     (version "0.62")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/syohex/emacs-anzu/archive/"
-                           version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/syohex/emacs-anzu.git")
+             (commit version)))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "16cg3897x5znbmgk7sdy0qyd0fbic9dmmz0dchq2vz5z29yhg4cz"))))
+        (base32 "1lzvc0ihcbplir4hqfyxfqpsd78arz15gk92kmq4f8ggbkl37fan"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/syohex/emacs-anzu")
     (synopsis "Show number of matches in mode-line while searching")
@@ -8481,13 +9108,14 @@ Anzu.zim.")
     (name "emacs-emmet-mode")
     (version "1.0.8")
     (source (origin
-	      (method url-fetch)
-	      (uri (string-append "https://github.com/smihica/emmet-mode"
-				  "/archive/" version ".tar.gz"))
-              (file-name (string-append name "-" version ".tar.gz"))
-	      (sha256
-	       (base32
-		"0g3p22yabfcp98cfv9dgl9il2m2pd53isq2q11vb3s7qyn31f7zj"))))
+              (method git-fetch)
+              (uri (git-reference
+                     (url "https://github.com/smihica/emmet-mode.git")
+                     (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1dsa85bk33j90h1ypaz1ylqh9yp2xvlga237h3kwa5y3sb0d5ydi"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/smihica/emmet-mode")
     (synopsis "Unofficial Emmet's support for Emacs")
@@ -8561,15 +9189,15 @@ standard Unix password manager\").")
   (package
     (name "emacs-pass")
     (version "1.8")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "https://github.com/NicolasPetton/pass/archive/"
-                    version ".tar.gz"))
-              (sha256
-               (base32
-                "0aiz90gklk0cb8n4v1s3l0mx6pp2b7f4k2c0fjpihwmga13yklwn"))
-              (file-name (string-append name "-" version ".tar.gz"))))
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/NicolasPetton/pass.git")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "05h4hacv3yygyjcjj004qbyqjpkl4pyhwgp25gsz8mw5c66l70cx"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-password-store" ,emacs-password-store)
@@ -8650,13 +9278,13 @@ match and total match information in the mode-line in various search modes.")
   (version "2.0.0")
   (source
     (origin
-      (method url-fetch)
-      (uri (string-append "https://github.com/skeeto/elisp-finalize/archive/"
-                          version ".tar.gz"))
-      (file-name (string-append name "-" version ".tar.gz"))
+      (method git-fetch)
+      (uri (git-reference
+            (url "https://github.com/skeeto/elisp-finalize.git")
+            (commit version)))
+      (file-name (git-file-name name version))
       (sha256
-        (base32
-         "077fycy3i5f0kjw5z3rhf4kld5lbk2idz690nkwhkz04vppk4q4x"))))
+        (base32 "1gvlm4i62af5jscwz0jccc8ra0grprxpg2rlq91d5nn8dn5lpy79"))))
   (build-system emacs-build-system)
   (propagated-inputs
     `(("emacs-cl-generic" ,emacs-cl-generic)))
@@ -8825,13 +9453,13 @@ Emacs.")
     (version "0.9")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/purcell/elisp-slime-nav/archive/"
-                           version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/purcell/elisp-slime-nav.git")
+             (commit version)))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "1vq7ym1q47p97gxrv45c9gm96d23xbp237vkmakikj6grngxjfb2"))))
+        (base32 "11vyy0bvzbs1h1kggikrvhd658j7c730w0pdp6qkm60rigvfi1ih"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/purcell/elisp-slime-nav")
     (synopsis "Make @code{M-.} and @code{M-,} work for elisp like they do in SLIME")
@@ -8845,16 +9473,15 @@ in @code{emacs-lisp-mode}, together with an elisp equivalent of
   (package
     (name "emacs-dedicated")
     (version "1.0.0")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "https://github.com/emacsorphanage/dedicated/archive/"
-                    version
-                    ".tar.gz"))
-              (sha256
-               (base32
-                "0nhbkp278cvcznb5rp3jp9ii3mjgb79zx8iwfrw7zfk3yg8688ni"))
-              (file-name (string-append name "-" version ".tar.gz"))))
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/emacsorphanage/dedicated.git")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0pba9s0h37sxyqh733vi6k5raa4cs7aradipf3826inw36jcw414"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/emacsorphanage/dedicated")
     (synopsis "Emacs minor mode for toggling a windows's \"dedicated\" flag")
@@ -8879,7 +9506,7 @@ the source file.")
                 (uri (git-reference
                       (url "https://github.com/paul-issartel/nnreddit.git")
                       (commit commit)))
-                (file-name (string-append name "-" version "-checkout"))
+                (file-name (git-file-name name version))
                 (sha256
                  (base32
                   "0j4h3bnga640250jdq8bwyja49r41ssrsjd6lba4gzzllqk02nbn"))))
@@ -8896,13 +9523,13 @@ newsreader.")
     (version "0.3")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/mickeynp/makey/archive/"
-                           version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/mickeynp/makey.git")
+             (commit version)))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "0kzl4q1wf2zhkx9nrymxa67n99iq0bj7zqhpaz4byksna1hsxfmv"))))
+        (base32 "1rr7vpm3xxzcaam3m8xni3ajy8ycyljix07n2jzczayri9sd8csy"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/mickeynp/makey")
     (synopsis "Emacs interactive command-line mode")
@@ -8967,13 +9594,13 @@ outline-mode), so there is no such thing like an outshine mode, only
     (version "2.3.1")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/joostkremers/parsebib/archive/"
-                           version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/joostkremers/parsebib.git")
+             (commit version)))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "0cxagnmc5ab6idmb26axpizhr4sqglkncc59768yavn3p04jyq63"))))
+        (base32 "1bnqnxkb9dnl0fjrrjx0xn9jsqki2h8ygw3d5dm4bl79smah3qkh"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/joostkremers/parsebib")
     (synopsis "Library for parsing bib files")
@@ -8987,13 +9614,13 @@ outline-mode), so there is no such thing like an outshine mode, only
     (version "0.2")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/cpitclaudel/biblio.el/archive/"
-                           version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/cpitclaudel/biblio.el.git")
+             (commit version)))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "0vwrljmab8m1z83048gxx5mryml9f5pb3h0jpwkvqcl0ra152lzx"))))
+        (base32 "1gxjind6r235az59dr8liv03d8994mqb8a7m28j3c12q7p70aziz"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-seq" ,emacs-seq)
@@ -9022,7 +9649,7 @@ automatically fetched from well-curated sources, and formatted as BibTeX.")
          (uri (git-reference
                (url "https://github.com/tmalsburg/helm-bibtex.git")
                (commit commit)))
-         (file-name (string-append name "-" version "-checkout"))
+         (file-name (git-file-name name version))
          (sha256
           (base32
            "14lyx0vbqr97p3anzrsp7m3q0kqclyjcdwplpraim403fcklzbnz"))))
@@ -9119,15 +9746,15 @@ and @code{erc-send-modify-hook} to download and show images.")
   (package
     (name "emacs-helm-gtags")
     (version "1.5.6")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "https://github.com/syohex/emacs-helm-gtags/archive/"
-                    version ".tar.gz"))
-              (file-name (string-append name "-" version ".tar.gz"))
-              (sha256
-               (base32
-                "1a10snhg6nnnan6w9a7mcziy26vxbsr3c35i0gcarnkdp2yqng36"))))
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/syohex/emacs-helm-gtags.git")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0zyspn9rqfs3hkq8qx0q1w5qiv30ignbmycyv0vn3a6q7a5fsnhx"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-helm" ,emacs-helm)))
@@ -9143,13 +9770,13 @@ and @code{erc-send-modify-hook} to download and show images.")
     (version "0.4.4")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/rolandwalker/list-utils/archive/"
-                           "v" version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/rolandwalker/list-utils.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "1xc1xh8c82h5gdjbgpdsdclgwxkxbb7h3x3a2bscpm41g8pnan4p"))))
+        (base32 "0ql159v7sxs33yh2l080kchrj52vk34knz50cvqi3ykpb7djg3sz"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/rolandwalker/list-utils")
     (synopsis "List-manipulation utility functions")
@@ -9162,13 +9789,13 @@ and @code{erc-send-modify-hook} to download and show images.")
     (version "2.0.8")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/emacsfodder/move-text/archive/"
-                           version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/emacsfodder/move-text.git")
+             (commit version)))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "1sjfja9r25692pgcldgnjzkapzy970m14jh9l4pajysiqcdk72g0"))))
+        (base32 "06jxk5g23822gfmwrxhc34zand3dr8p2wjh1zs3j61ibz6n0nmz1"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/emacsfodder/move-text")
     (synopsis "Move current line or region with M-up or M-down")
@@ -9225,14 +9852,13 @@ orient yourself in the code, and tell which statements are at a given level.")
     (version "0.7.0")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append
-             "https://github.com/DamienCassou/hierarchy/archive/"
-             "v" version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/DamienCassou/hierarchy.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "1a463v5zk6zis2p8cs4mads3iyxh266yahi6j6y0paggfl2yhkc8"))))
+        (base32 "1kykbb1sil5cycfa5aj8dhsxc5yrx1641i2np5kwdjid6ahdlz5r"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/DamienCassou/hierarchy")
     (synopsis "Library to create and display hierarchy structures")
@@ -9253,7 +9879,7 @@ navigate and display hierarchy structures.")
          (uri (git-reference
                (url "https://github.com/emacsorphanage/tree-mode.git")
                (commit commit)))
-         (file-name (string-append name "-" version "-checkout"))
+         (file-name (git-file-name name version))
          (sha256
           (base32
            "13bbdhdmqg4x9yghanhr8fsbsxbnypzxdxgicz31sjjm675kpnix"))))
@@ -9276,7 +9902,7 @@ navigate and display hierarchy structures.")
                 (uri (git-reference
                       (url "https://github.com/ahungry/md4rd.git")
                       (commit commit)))
-                (file-name (string-append name "-" version "-checkout"))
+                (file-name (git-file-name name version))
                 (sha256
                  (base32
                   "0mvv1mvsrpkrmikcpfqf2zbawnzgq33j6zjdrlv48mcw57xb2ak9"))))
@@ -9331,15 +9957,15 @@ navigate and display hierarchy structures.")
   (package
     (name "emacs-datetime")
     (version "0.3")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "https://github.com/doublep/datetime/archive/"
-                    version ".tar.gz"))
-              (file-name (string-append name "-" version ".tar.gz"))
-              (sha256
-               (base32
-                "12wqpj67rjij2ki7nmw38rz3k2bsq68pk6zswknlcn9qhp1zd9w9"))))
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/doublep/datetime.git")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0fdswqi53qx924lib7nd9dazn0916xf1ybrh3bcn3f8cn6b8ikg5"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/doublep/datetime/")
     (synopsis "Library to work with dates in Emacs")
@@ -9360,7 +9986,7 @@ timestamps and date-time format strings library for Emacs.")
          (uri (git-reference
                (url "https://github.com/theodorewiles/org-mind-map.git")
                (commit commit)))
-         (file-name (string-append name "-" version "-checkout"))
+         (file-name (git-file-name name version))
          (sha256
           (base32
            "0jgkkgq7g64zckrmjib0hvz0qy3ynz5vz13qbmlpf096l3bb65wn"))))
@@ -9379,13 +10005,13 @@ timestamps and date-time format strings library for Emacs.")
     (version "0.6.0")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/mojochao/npm-mode/archive/"
-                           version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/mojochao/npm-mode.git")
+             (commit version)))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "1kq1ww22dwf8c2i2b4z2ldbbmnihj65kb7n5vzvwkch9h4hxpqh5"))))
+        (base32 "1mh6nbffciw4yhv049kdhh796ysj1x21ndm3fwymhskb3dy0w1ss"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/mojochao/npm-mode")
     (synopsis "Minor mode for working with @code{npm} projects")
@@ -9424,7 +10050,7 @@ functions provided by @file{subr.el}.")
          (uri (git-reference
                (url "https://github.com/re5et/itail.git")
                (commit commit)))
-         (file-name (string-append name "-" version "-checkout"))
+         (file-name (git-file-name name version))
          (sha256
           (base32
            "044nzxh1hq41faxw3lix0wy78vfz304pjcaa5a11dqfz7q3gx5cv"))))
@@ -9443,13 +10069,13 @@ tramp.")
     (version "1.3")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/Wilfred/loop.el/archive/"
-                           version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/Wilfred/loop.el.git")
+             (commit version)))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "1z3rhh3zyjabz36410yz0lp4a0qwwj0387as662wvx3z9y54jia9"))))
+        (base32 "1gs95xnmnn8aa4794k7h8mw1sz1nfdh9v0caqj6yvnsdnwy74n5x"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/Wilfred/loop.el")
     (synopsis "Imperative loop structures for Emacs")
@@ -9464,13 +10090,13 @@ continue.")
     (version "1.3")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/Wilfred/elisp-refs/archive/"
-                           version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/Wilfred/elisp-refs.git")
+             (commit version)))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "02nzcn3v14n7mp7q32j5r4wdlpsw3zixzh6cf0cdyarfir6dly3p"))))
+        (base32 "0w7k91xf69zc0zkjrw8h8sjdjf9xq9qs5zhvajhd718lzf93564b"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-dash" ,emacs-dash)
@@ -9499,7 +10125,7 @@ confused by comments or @code{foo-bar} matching @code{foo}.")
          (uri (git-reference
                (url "https://github.com/bbatsov/crux.git")
                (commit commit)))
-         (file-name (string-append name "-" version "-checkout"))
+         (file-name (git-file-name name version))
          (sha256
           (base32
            "1fdxvv25cs01sg6fmvmzxpzvs50i6v8n2jya60lbavxqqhi0sbxd"))))
@@ -9516,13 +10142,13 @@ confused by comments or @code{foo-bar} matching @code{foo}.")
     (version "1.13")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/stsquad/emacs_chrome/archive/"
-                           "v" version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/stsquad/emacs_chrome.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "1r92kqggslqasza718z4ka883mqfbnibdm43f0j9gaipk0msm2wf"))))
+        (base32 "12dp1xj09jrp0kxp9xb6cak9dn6zkyis1wfn4fnhzmxxnrd8c5rn"))))
     (build-system emacs-build-system)
     (arguments
      `(#:phases
@@ -9598,7 +10224,7 @@ macro takes a first argument (whose value must be an alist) and a body.")
          (uri (git-reference
                (url "https://github.com/jschaf/esup.git")
                (commit commit)))
-         (file-name (string-append name "-" version "-checkout"))
+         (file-name (git-file-name name version))
          (sha256
           (base32
            "04lxmd0h7mfjjl0qghrycgff0vcv950j1wqv0dbkr61jxp64n5fv"))))
@@ -9616,13 +10242,13 @@ your Emacs.")
     (version "0.03")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/syohex/emacs-sourcemap/archive/"
-                           version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/syohex/emacs-sourcemap.git")
+             (commit version)))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "0bmd5l3cx2iyl7vxn84xdhs80b07kpdpfwki28lh5d0kmm5qs6m6"))))
+        (base32 "115g2mfpbfywp8xnag4gsb50klfvplqfh928a5mabb5s8v4a3582"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/syohex/emacs-sourcemap")
     (synopsis "Sourcemap parser")
@@ -9639,7 +10265,7 @@ your Emacs.")
                 (uri (git-reference
                       (url "https://github.com/joddie/macrostep.git")
                       (commit commit)))
-                (file-name (string-append name "-" version "-checkout"))
+                (file-name (git-file-name name version))
                 (sha256
                  (base32
                   "1fm40mxdn289cyzgw992223dgrjmwxn4q8svyyxfaxjrpb38jhjz"))))
@@ -9685,13 +10311,13 @@ until the top-level form is no longer a macro call.")
     (version "2.3")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/Fanael/parent-mode/archive/"
-                           version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/Fanael/parent-mode.git")
+             (commit version)))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "0gxbl5s1w96v6v55b7aaansgw4sxhzfx9nrsvpk3pfhsibs6yqjd"))))
+        (base32 "0i5bc7lyyrx6swqlrp9l5x72yzwi53qn6ldrfs99gh08b3yvsnni"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/Fanael/parent-mode")
     (synopsis "Get major mode's parent modes")
@@ -9773,13 +10399,13 @@ until the top-level form is no longer a macro call.")
     (version "2.0.0")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/DamienCassou/beginend/archive/"
-                           "v" version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/DamienCassou/beginend.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "0z4rbwffh9vxfvcrlvym4p73z7gf72q0b5iv33llbpcpbijknnrq"))))
+        (base32 "1jbhg73g1rrkbwql5vi2b0ys9avfazmwzwgd90gkzwavw0ch9cvl"))))
     ;; TODO: Run tests.
     (build-system emacs-build-system)
     (inputs
@@ -9805,7 +10431,7 @@ key again.")
          (uri (git-reference
                (url "https://github.com/dimitri/mbsync-el.git")
                (commit commit)))
-         (file-name (string-append name "-" version "-checkout"))
+         (file-name (git-file-name name version))
          (sha256
           (base32
            "0yj93y2mpxlir8x73znlg1slxlv4blm1vjv5h2w3j8lxg8bxvmn6"))))
@@ -9829,7 +10455,7 @@ within Emacs.")
          (uri (git-reference
                (url "https://github.com/purcell/ibuffer-projectile.git")
                (commit commit)))
-         (file-name (string-append name "-" version "-checkout"))
+         (file-name (git-file-name name version))
          (sha256
           (base32
            "1nd26cwwdpnwj0g4w393rd59klpyr6wqrnyr6scmwb5d06bsm44n"))))
@@ -9879,13 +10505,13 @@ documentation.")
     (version "1.0.3")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/hylang/hy-mode/archive/"
-                           "v" version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/hylang/hy-mode.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "0b4pvbr2hf77bq2vsyfsv653q0dab7qzq85wc7kdziw7687jdf2z"))))
+        (base32 "1jxximiznz7fw9ys5k6plw85zrbzvxidql7py1fdi425fdp4058z"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-dash" ,emacs-dash)
@@ -9901,13 +10527,13 @@ documentation.")
     (version "0.3.2")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/yasuyk/web-beautify/archive/"
-                           version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/yasuyk/web-beautify.git")
+             (commit version)))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "1j57hwid74id4swkx2g0iljfawx0k9c7qjrwqc0mv657x9p78hcs"))))
+        (base32 "0vms7zz3ym53wf1zdrkbf2ky2xjr1v134ngsd0jr8azyi8siw84d"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/yasuyk/web-beautify")
     (synopsis "Format HTML, CSS and JavaScript, JSON")
@@ -9986,7 +10612,7 @@ their meaning for the current Emacs major-mode.")
          (uri (git-reference
                (url "https://github.com/jkitchin/org-ref.git")
                (commit commit)))
-         (file-name (string-append name "-" version "-checkout"))
+         (file-name (git-file-name name version))
          (sha256
           (base32
            "1rxz0bjdsayk0slv23i07d9xhj2m7s4hsc81wc2d1cs52dkr5zmz"))))
@@ -10064,15 +10690,15 @@ files.")
   (package
     (name "emacs-add-hooks")
     (version "3.1.1")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "https://github.com/nickmccurdy/add-hooks/archive/"
-                    version ".tar.gz"))
-              (file-name (string-append name "-" version ".tar.gz"))
-              (sha256
-               (base32
-                "03a28gb3298g7pc2qji9hi44p4d99ljp5mpi9cmg42ldv8fl6549"))))
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/nickmccurdy/add-hooks.git")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1jv9fpcsm572zg0j1mbpbfkqgdlqapy89xhhj19pswkhjns1y2wl"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/nickmccurdy/add-hooks/")
     (synopsis "Emacs function for setting multiple hooks")
@@ -10086,13 +10712,13 @@ duplicate hook and function names further into a single declarative call.")
     (version "0.9.5")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/Malabarba/fancy-narrow/archive/"
-                           version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/Malabarba/fancy-narrow.git")
+             (commit version)))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "0rf2rnzg82pdqch041yyx3f9ddixffkk9s2ydzg8hwy66sg3385n"))))
+        (base32 "0vcr1gnqawvc1yclqs23jvxm6bqix8kpflf1c7znb0wzxmz9kx7y"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/Malabarba/fancy-narrow/releases")
     (synopsis "Imitate @code{narrow-to-region} with more eye candy")
@@ -10111,14 +10737,13 @@ buffer.")
     (version "0.5.0")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append
-             "https://github.com/for-GET/know-your-http-well/archive/"
-             "v" version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/for-GET/know-your-http-well.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "1y3kwz88awcgwaivlswq0q4g2i02762r23lpwg61bfqy5lrjjqnj"))))
+        (base32 "1lppggnii2r9fvlhh33gbdrwb50za8lnalavlq9s86ngndn4n94k"))))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -10178,7 +10803,7 @@ buffer.")
          (uri (git-reference
                (url "https://github.com/zk-phi/download-region.git")
                (commit commit)))
-         (file-name (string-append name "-" version "-checkout"))
+         (file-name (git-file-name name version))
          (sha256
           (base32
            "0v52djg39b6k2snizd9x0qc009ws5y0ywqsfwhqgcbs5ymzh7dsc"))))
@@ -10193,15 +10818,15 @@ downloading manager for Emacs.")
   (package
     (name "emacs-helpful")
     (version "0.15")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "https://github.com/Wilfred/helpful/archive/"
-                    version ".tar.gz"))
-              (file-name (string-append name "-" version ".tar.gz"))
-              (sha256
-               (base32
-                "1xmvhphzb4hbg647dz4lafy6hd19b7bk3lxni6irqrzdsrclhzn6"))))
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/Wilfred/helpful.git")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1rqnx7672175288yqaslw0d9vw04j6psw7mys8j9zcp2i72hlvkn"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-elisp-refs" ,emacs-elisp-refs)))
@@ -10232,15 +10857,15 @@ and doesn't require memorisation of commands.
   (package
     (name "emacs-logview")
     (version "0.9")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "https://github.com/doublep/logview/archive/"
-                    version ".tar.gz"))
-              (file-name (string-append name "-" version ".tar.gz"))
-              (sha256
-               (base32
-                "1vd11ppm46ldqsiwhqgw91p34gbjh1y82r9mxcn9r2gj65nvhxcp"))))
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/doublep/logview.git")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1qhzs75pxnaksbhczmpdcy2zmrqavlzkzss7ik5nv2wf9vs0sn02"))))
     (propagated-inputs
      `(("emacs-datetime" ,emacs-datetime)))
     (build-system emacs-build-system)
@@ -10282,15 +10907,15 @@ functions.")
   (package
     (name "emacs-benchmark-init")
     (version "1.0")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "https://github.com/dholm/benchmark-init-el/archive/"
-                    version ".tar.gz"))
-              (file-name (string-append name "-" version ".tar.gz"))
-              (sha256
-               (base32
-                "0szyqr4nncwz4vd5gww1vz31kf9r2lx25p4d0d09pm35974x53kz"))))
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/dholm/benchmark-init-el.git")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1kyn1izm5sbqbp9whnhk9dn3yc7zy8bz5san5w3ivi3rpx15fh94"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/dholm/benchmark-init-el")
     (synopsis "Benchmark Emacs @code{require} and @code{load} calls")
@@ -10362,13 +10987,13 @@ buffer with each of your todos.")
     (version "0.1")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/cosmicexplorer/f3/archive/"
-                           version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/cosmicexplorer/f3.git")
+             (commit version)))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "06b8i1jvklm5k3k90n65f197l1miq1xlxqkqpbppw4h3rhl4y98h"))))
+        (base32 "1qg48zbjdjqimw4516ymrsilz41zkib9321q0caf9474s9xyp2bi"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-helm" ,emacs-helm)))
@@ -10414,7 +11039,7 @@ buffer with each of your todos.")
          (uri (git-reference
                (url "https://github.com/nashamri/academic-phrases.git")
                (commit commit)))
-         (file-name (string-append name "-" version "-checkout"))
+         (file-name (git-file-name name version))
          (sha256
           (base32
            "0qfzsq8jh05w4zkr0cvq3i1hdn97bq344vcqjg46sib26x3wpz6r"))))
@@ -10447,7 +11072,7 @@ browse the phrases by the paper section and fill-in the blanks if required.")
                 (uri (git-reference
                       (url "https://github.com/abo-abo/auto-yasnippet.git")
                       (commit commit)))
-                (file-name (string-append name "-" version "-checkout"))
+                (file-name (git-file-name name version))
                 (sha256
                  (base32
                   "1i8k2qiyzd5rq0zplk4xb5nfa5mp0ibxbzwqj6c7877waq7244xk"))))
@@ -10478,14 +11103,13 @@ yasnippet fields and mirrors to be.")
     (version "0.2.3")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append
-             "https://github.com/Fanael/highlight-numbers/archive/"
-             version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/Fanael/highlight-numbers.git")
+             (commit version)))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "030v5p11d4n0581ncv499l1fqrmfziy756q6378x2bv22ixghqqp"))))
+        (base32 "1r07mpyr7rhd7bkg778hx6vbhb4n9ixgzkpszhgks7ri6ia38pj8"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-parent-mode" ,emacs-parent-mode)))
@@ -10558,7 +11182,7 @@ interactive behavior should be different.")
                 (uri (git-reference
                       (url "https://github.com/purcell/default-text-scale")
                       (commit commit)))
-                (file-name (string-append name "-" version "-checkout"))
+                (file-name (git-file-name name version))
                 (sha256
                  (base32
                   "0zds01c3q5yny6ab1fxfkzzgn1kgl3q23lxxap905f4qd70v922h"))))
@@ -10575,13 +11199,13 @@ decreasing the default font size in all GUI Emacs frames.")
     (version "1.1.1")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/benma/visual-regexp.el/archive/"
-                           "v" version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/benma/visual-regexp.el.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "1czmhvcivlcdyz7rfm0vd4a3xsgmy4qbvbl6yjxc217wrxqflr92"))))
+        (base32 "12zpmzwyp85dzsjpxd3279kpfi9yz3jwc1k9fnb3xv3pjiil5svg"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/benma/visual-regexp.el/")
     (synopsis "Regexp command with interactive visual feedback")
@@ -10602,7 +11226,7 @@ interactive visual feedback.")
          (uri (git-reference
                (url "https://github.com/Lindydancer/faceup.git")
                (commit commit)))
-         (file-name (string-append name "-" version "-checkout"))
+         (file-name (git-file-name name version))
          (sha256
           (base32
            "1yzmy7flrhrh0i10bdszx8idx6r8h6czm4vm4q0z6fp5fw94zwrx"))))
@@ -10627,7 +11251,7 @@ perform regression test for packages that provide font-lock rules.")
          (uri (git-reference
                (url "https://github.com/greghendershott/racket-mode")
                (commit commit)))
-         (file-name (string-append name "-" version "-checkout"))
+         (file-name (git-file-name name version))
          (sha256
           (base32
            "0vp4bbbplqvmnhjpl6ajrlydmrhqzil56cfbs18m5c5fddx0zlh7"))))
@@ -10659,7 +11283,7 @@ perform regression test for packages that provide font-lock rules.")
          (uri (git-reference
                (url "https://github.com/mkcms/grep-context.git")
                (commit commit)))
-         (file-name (string-append name "-" version "-checkout"))
+         (file-name (git-file-name name version))
          (sha256
           (base32
            "1nqfa6kjzjshww4hnwg1c0vcr90bdjihy3kmixq3c3jkvxg99b62"))))
@@ -10687,7 +11311,7 @@ compilation/grep buffers.  Works with @code{wgrep}, @code{ack}, @code{ag},
          (uri (git-reference
                (url "https://github.com/emacs-helm/helm-firefox.git")
                (commit commit)))
-         (file-name (string-append name "-" version "-checkout"))
+         (file-name (git-file-name name version))
          (sha256
           (base32
            "08mjsi2f9s29fkk35cj1rrparjnkm836qmbfdwdz7y51f9varjbs"))))
@@ -10745,14 +11369,13 @@ decrease the number at point.")
     (version "0.1.5")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append
-             "https://github.com/Fanael/highlight-defined/archive/"
-             version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/Fanael/highlight-defined.git")
+             (commit version)))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "1ryd66989b5byqdw8jmjrjf0c78iiz72wibld750skcnj5h5h506"))))
+        (base32 "08czwa165rnd5z0dwwdddn7zi5w63sdk31l47bj0598kbly01n7r"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/Fanael/highlight-defined")
     (synopsis "Syntax highlighting of known Elisp symbols")
@@ -10767,13 +11390,13 @@ macros, faces and variables.  To enable call @code{highlight-defined-mode}. ")
     (version "0.4.10")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/DogLooksGood/parinfer-mode/archive/"
-                           "v" version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/DogLooksGood/parinfer-mode.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "06ba9qi59sm9ih9m38fbr8kj4qkvrm58n0c0ngfjz60gnr9x9pcv"))))
+        (base32 "0v97ncb0w1slb0x8861l3yr1kqz6fgw1fwl1z9lz6hh8p2ih34sk"))))
     (propagated-inputs
      `(("emacs-dash" ,emacs-dash)
        ("emacs-rainbow-delimiters" ,emacs-rainbow-delimiters)
@@ -10795,7 +11418,7 @@ keep Parens and Indentation inline with one another.")
               (uri (git-reference
                     (url "https://github.com/emacs-helm/helm-eww.git")
                     (commit version)))
-              (file-name (string-append name "-" version "-checkout"))
+              (file-name (git-file-name name version))
               (sha256
                (base32
                 "0hpq1h0p69c9k6hkd2mjpprx213sc5475q7pr2zpmwrjdzgcv70z"))))
@@ -10820,7 +11443,7 @@ bookmarks and history.")
                 (uri (git-reference
                       (url "https://github.com/stumpwm/stumpwm-contrib.git")
                       (commit commit)))
-                (file-name (string-append name "-" version "-checkout"))
+                (file-name (git-file-name name version))
                 (sha256
                  (base32
                   "1dfwsvz1c8w6j4jp0kzaz78ml3f5dp0a5pvf090kwpbpg176r7iq"))))
@@ -10862,14 +11485,13 @@ bookmarks and history.")
     (version "0.1.6")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append
-             "https://github.com/creichert/ido-vertical-mode.el/archive/"
-             "v" version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/creichert/ido-vertical-mode.el.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "0dprdxq8wvqd45dinwj92k0kixr07c8xvspa6i613mjcpxgwjg53"))))
+        (base32 "1lv82q639xjnmvby56nwqn23ijh6f163bk675s33dkingm8csj8k"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/creichert/ido-vertical-mode.el")
     (synopsis "Makes ido-mode display vertically")
@@ -10882,13 +11504,13 @@ bookmarks and history.")
     (version "0.1.4")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/Fanael/wordgen.el/archive/"
-                           version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/Fanael/wordgen.el.git")
+             (commit version)))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "1h2iyixdm49h53pwj9ics9gb9h3g6wa4hainpnjg6mfarf49jkmg"))))
+        (base32 "06vbc9ycz1nbjwjkg99y3lj6jwb6lnwnmkqf09yr00jjrrfhfash"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/Fanael/wordgen.el")
     (synopsis "Random word generator")
@@ -10932,7 +11554,7 @@ the previously visible buffer part after each scroll.")
          (uri (git-reference
                (url "https://github.com/dgutov/highlight-escape-sequences.git")
                (commit commit)))
-         (file-name (string-append name "-" version "-checkout"))
+         (file-name (git-file-name name version))
          (sha256
           (base32
            "05mc3w1f8ykf80914a1yddw6j8cmh0h57llm07xh89s53821v2is"))))
@@ -10949,14 +11571,13 @@ Emacs minor mode to escape sequences in code.")
     (version "1.2.4")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append
-             "https://github.com/rakanalh/emacs-dashboard/archive/"
-             version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/rakanalh/emacs-dashboard.git")
+             (commit version)))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "1738lmbgq6gk24hcwic0qjyajr21l5xzhya4pv58dw1bhd6vxv9g"))))
+        (base32 "1hhh1kfsz87qfmh45wjf2r93rz79rq0vbyxlfrsl02092zjbl1zr"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-page-break-lines" ,emacs-page-break-lines)))
@@ -10973,13 +11594,13 @@ sections for bookmarks, projectil projects, org-agenda and more. ")
     (version "1.1")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/anwyn/slime-company/archive/"
-                           "v" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/anwyn/slime-company.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "1myl79pxj501xfr5qc5a24qddsn2l5iaamg7rf7fpny7mr9v70ar"))
-       (file-name (string-append name "-" version ".tar.gz"))))
+        (base32 "1hl1hqkc1pxga9k2k8k15d7dip7sfsmwf4wm4sh346m6nj606q8g"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-slime" ,emacs-slime)
@@ -11026,7 +11647,7 @@ interactive loop.")
          (uri (git-reference
                (url "https://github.com/xiongtx/eros.git")
                (commit commit)))
-         (file-name (string-append name "-" version "-checkout"))
+         (file-name (git-file-name name version))
          (sha256
           (base32
            "0whlsq90v13fz69k3wjrwcwb9gkpfxqjd75mg3nrp85j9nwhb5i4"))))
@@ -11048,7 +11669,7 @@ interactive loop.")
          (uri (git-reference
                (url "https://github.com/tuhdo/semantic-stickyfunc-enhance.git")
                (commit commit)))
-         (file-name (string-append name "-" version "-checkout"))
+         (file-name (git-file-name name version))
          (sha256
           (base32
            "16dxjsr5nj20blww4xpd4jzgjprzzh1nwvb810ggdmp9paf4iy0g"))))
@@ -11068,14 +11689,13 @@ scroll up to read the function name and then scroll down to original position.")
     (version "4.4.0")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append
-             "https://github.com/ryuslash/git-auto-commit-mode/archive/"
-             version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/ryuslash/git-auto-commit-mode.git")
+             (commit version)))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "04avxmalsl3b7zi2vipfw9rb4wrwysnipsbch96skviql9axk870"))))
+        (base32 "0psmr7749nzxln4b500sl3vrf24x3qijp12ir0i5z4x25k72hrlh"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/ryuslash/git-auto-commit-mode")
     (synopsis "Emacs Minor mode to automatically commit and push")
@@ -11092,14 +11712,13 @@ the current upstream.")
     (version "0.1.0")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append
-             "https://github.com/iquiw/company-restclient/archive/"
-             "v" version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/iquiw/company-restclient.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "1kr3f0wgqlk7r171bvb2kinv7fanwj2md01wdpx04qkgwcr1as00"))))
+        (base32 "0i1fh5lvqwlgn3g3fzh0xacxyljx6gkryipn133vfkv4jbns51n4"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-company" ,emacs-company)
@@ -11128,7 +11747,7 @@ It provides auto-completion for HTTP methods and headers in
          (uri (git-reference
                (url "https://github.com/nicferrier/emacs-noflet")
                (commit commit)))
-         (file-name (string-append name "-" version "-checkout"))
+         (file-name (git-file-name name version))
          (sha256
           (base32
            "0g70gnmfi8n24jzfci9nrj0n9bn1qig7b8f9f325rin8h7x32ypf"))))
@@ -11158,14 +11777,13 @@ through the symbol: @command{this-fn}.")
     (version "0.5.2")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append
-             "https://github.com/jacktasia/dumb-jump/archive/v"
-             version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/jacktasia/dumb-jump.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "07n0xjgpxjpf3vp9gxchkjpydyj0zm166930as0kwiwkhjlsirsf"))))
+        (base32 "00ph85vp8sa3k99qrdxfz4l8zx121q9xf47vvspzg26bk9l4nwin"))))
     (build-system emacs-build-system)
     (arguments
      `(#:tests? #f ; FIXME: Tests freeze when run.
@@ -11208,7 +11826,7 @@ Dumb Jump performs best with The Silver Searcher @command{ag} or ripgrep
          (uri (git-reference
                (url "https://github.com/bgamari/dts-mode.git")
                (commit commit)))
-         (file-name (string-append name "-" version "-checkout"))
+         (file-name (git-file-name name version))
          (sha256
           (base32
            "1k8lljdbc90nd29xrhdrsscxavzdq532wq2mg7ljc94krj7538b1"))))
@@ -11230,7 +11848,7 @@ device tree files.")
        (uri (git-reference
              (url "https://github.com/cbowdon/daemons.el")
              (commit version)))
-       (file-name (string-append name "-" version "-checkout"))
+       (file-name (git-file-name name version))
        (sha256
         (base32
          "00bkzfaw3bqykcks610vk9wlpa2z360xn32bpsrycacwfv29j7g4"))))
@@ -11323,7 +11941,7 @@ matching regexps.")
        (uri (git-reference
              (url "https://github.com/dieggsy/esh-autosuggest")
              (commit version)))
-       (file-name (string-append name "-" version "-checkout"))
+       (file-name (git-file-name name version))
        (sha256
         (base32
          "116pdjgpjy9b0psm5kzwkwy7dq8vn0p6dy75dl1zsy2xrjf1iqdw"))))
@@ -11353,7 +11971,7 @@ autosuggestions with:
          (uri (git-reference
                (url "https://gitlab.petton.fr/DamienCassou/desktop-environment")
                (commit commit)))
-         (file-name (string-append name "-" version "-checkout"))
+         (file-name (git-file-name name version))
          (sha256
           (base32
            "0x73x5hy7w55jrzy3xvqhk90rrsznmxjqvsvwhh21qznv5w269xz"))))
@@ -11398,14 +12016,13 @@ This code is still alpha.")
     (version "20180518")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append
-             "https://github.com/egh/zotxt-emacs/archive/"
-             "23a4a9f74a658222027d53a9a83cd4bcc583ca8b"
-             ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/egh/zotxt-emacs.git")
+             (commit "23a4a9f74a658222027d53a9a83cd4bcc583ca8b")))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "1qlibaciqgsva6fc7vv9krssjq00bi880396jk7llbi3c52q9n1y"))))
+        (base32 "09fq3w9yk9kn6bz7y9kgpiw612dvj3yzsdk734js6zgb0p8lfd2c"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-deferred" ,emacs-deferred)
@@ -11432,7 +12049,7 @@ Org-mode file, and citations of Zotero items in Pandoc Markdown files.")
          (uri (git-reference
                (url "https://github.com/emacs-evil/evil-magit")
                (commit commit)))
-         (file-name (string-append name "-" version "-checkout"))
+         (file-name (git-file-name name version))
          (sha256
           (base32
            "134v7s03jvbhm70mavwab85r09i68g2a5bvriirh0chz1av2y16v"))))
@@ -11464,7 +12081,7 @@ describing the key binding changes.")
        (uri (git-reference
              (url "https://github.com/hlissner/evil-multiedit")
              (commit (string-append "v" version))))
-       (file-name (string-append name "-" version "-checkout"))
+       (file-name (git-file-name name version))
        (sha256
         (base32
          "19h3kqylqzbjv4297wkzzxdmn9yxbg6z4ga4ssrqri90xs7m3rw3"))))
@@ -11493,7 +12110,7 @@ defaults.")
          (uri (git-reference
                (url "https://github.com/Somelauw/evil-org-mode")
                (commit commit)))
-         (file-name (string-append name "-" version "-checkout"))
+         (file-name (git-file-name name version))
          (sha256
           (base32
            "176hrw7y7nczffbyhsa167b8rvfacsmcafm2gpkrdjqlrikbmrhl"))))
@@ -11697,7 +12314,7 @@ on-line service.")
          (uri (git-reference
                (url "https://github.com/Sodel-the-Vociferous/helm-company")
                (commit commit)))
-         (file-name (string-append name "-" version "-checkout"))
+         (file-name (git-file-name name version))
          (sha256
           (base32
            "1ciirsanhajdqm5iwl8k9ywf4jha1wdv4sc4d9kslyrfr9zn4q6k"))))
@@ -11723,7 +12340,7 @@ framework.")
          (uri (git-reference
                (url "https://github.com/emacs-helm/helm-descbinds")
                (commit commit)))
-         (file-name (string-append name "-" version "-checkout"))
+         (file-name (git-file-name name version))
          (sha256
           (base32
            "1n89p56qwa243w1c85i5awnaf7piwjsvfi7nmnsrwm33hix5dknk"))))
@@ -11751,7 +12368,7 @@ you searched for and execute it, or view its documentation.")
          (uri (git-reference
                (url "https://github.com/emacs-helm/helm-emms")
                (commit commit)))
-         (file-name (string-append name "-" version "-checkout"))
+         (file-name (git-file-name name version))
          (sha256
           (base32
            "1595r09y3rmwd46nnhvjja3hb8j2ila295ijxv61cg52ws4wginh"))))
@@ -11773,14 +12390,12 @@ from @code{emms-source-file-default-directory}.")
       (version (git-version "20180703" "2" commit))
       (source
        (origin
-         (method url-fetch)
-         (uri (string-append
-               "https://github.com/emacs-helm/helm-exwm/archive/"
-               commit
-               ".tar.gz"))
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/emacs-helm/helm-exwm.git")
+               (commit commit)))
          (sha256
-          (base32
-           "0n7hdiajw5vxl8ha2r9r4cl4i7crza25348825wb6acwhhzijxcj"))))
+          (base32 "064ziinqa5sdv7rfjn0y278l12kld176fr88k4h78pgf2f2n7cd8"))))
       (build-system emacs-build-system)
       (propagated-inputs
        `(("emacs-helm" ,emacs-helm)
@@ -11806,7 +12421,7 @@ See @code{helm-exwm-switch-browser} for an example.")
          (uri (git-reference
                (url "https://github.com/yasuyk/helm-flycheck")
                (commit commit)))
-         (file-name (string-append name "-" version "-checkout"))
+         (file-name (git-file-name name version))
          (sha256
           (base32
            "1a2yfxhz04klwhcandqvfzysxp6b7bxyxx1xk1x3kds5hif5fkl4"))))
@@ -11832,7 +12447,7 @@ See @code{helm-exwm-switch-browser} for an example.")
          (uri (git-reference
                (url "https://github.com/emacs-helm/helm-ls-git")
                (commit commit)))
-         (file-name (string-append name "-" version "-checkout"))
+         (file-name (git-file-name name version))
          (sha256
           (base32
            "0vsq1n3xl3ghy5zik2scm7jrs501n4kybdqd6yw6j0cv4jxdqbr0"))))
@@ -11865,14 +12480,12 @@ projects unrelated to current-buffer.
       (version (git-version  "20180513" "1" commit))
       (source
        (origin
-         (method url-fetch)
-         (uri (string-append
-               "https://github.com/emacs-helm/helm-mu/archive/"
-               commit
-               ".tar.gz"))
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/emacs-helm/helm-mu.git")
+               (commit commit)))
          (sha256
-          (base32
-           "0qm4xi3i957scm50nar398pv4x8y03si10l77jb9ckjaviyq2hj9"))))
+          (base32 "1lh0ahxdc5b2z18m9p30gwg8sbg33sjwkjr38p7h5xsm5fm7i0fz"))))
       (build-system emacs-build-system)
       (propagated-inputs
        `(("emacs-helm" ,emacs-helm)
@@ -11899,6 +12512,7 @@ e.g: @code{from:Peter to:Anne flag:attach search term}.")
        (uri (git-reference
              (url "https://github.com/emacs-helm/helm-pass")
              (commit version)))
+       (file-name (git-file-name name version))
        (sha256
         (base32
          "0vglaknmir3yv4iwibwn8r40ran8d04gcyp99hx73ldmf3zqpnxv"))))
@@ -11930,7 +12544,7 @@ provided by other Emacs packages dealing with pass:
          (uri (git-reference
                (url "https://github.com/mhayashi1120/Emacs-imagex")
                (commit commit)))
-         (file-name (string-append name "-" version "-checkout"))
+         (file-name (git-file-name name version))
          (sha256
           (base32
            "0v66wk9nh0raih4jhrzmmyi5lbysjnmbv791vm2230ffi2hmwxnd"))))
@@ -11969,7 +12583,7 @@ image, rotate it, save modified images, and more.")
          (uri (git-reference
                (url "https://github.com/purcell/package-lint")
                (commit commit)))
-         (file-name (string-append name "-" version "-checkout"))
+         (file-name (git-file-name name version))
          (sha256
           (base32
            "1hfricsgmy3x9snnd2p4xq6vnnv94qdsxxnxp07b3hqc9bhw31rq"))))
@@ -12037,7 +12651,7 @@ file.")
                "https://gitlab.com/Ambrevar/mu4e-conversation/"
                "repository/archive.tar.gz?ref="
                commit))
-         (file-name (string-append name "-" version "-checkout"))
+         (file-name (git-file-name name version))
          (sha256
           (base32
            "0b52hf9rm2afba9pvgink9bwqm705sk0y5qikp0ff5sk53wqvy29"))))
@@ -12396,7 +13010,7 @@ few (like NOTE).")
          (uri (git-reference
                (url "https://github.com/jwiegley/git-annex-el")
                (commit commit)))
-         (file-name (string-append name "-" version "-checkout"))
+         (file-name (git-file-name name version))
          (sha256
           (base32
            "1mzv40gj7k10h7h5s43my8msgzjpj680qprqa9pp8nbyhl49v3wh"))))
@@ -12829,7 +13443,7 @@ Emacs.")
   (let ((commit "a0623667b07a4bf60980c97b078e9faed97ace79"))
     (package
       (name "emacs-matrix-client")
-      (version (git-version "0.0.0" "3" commit))
+      (version (git-version "0.0.0" "4" commit))
       (source (origin
                 (method git-fetch)
                 (uri (git-reference
@@ -12840,6 +13454,18 @@ Emacs.")
                  (base32
                   "1zya8id3y9wzjaj7nplq7br6nhm3lsskv0fkn1xr1y77fzcfgcdb"))))
       (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)
@@ -13209,13 +13835,13 @@ to open SQLite databases.")
     (version "1.2.2")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/NixOS/nix-mode/archive/v"
-                           version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/NixOS/nix-mode.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "06aqz0czznsj8835jqnk794sy2p6pa8kxfqwh0nl5d5vxivria6z"))))
+        (base32 "1vz3s2jx14nzy53f04d821n4f2s22ys5h9s7af6cnpynkwawyhhq"))))
     (build-system emacs-build-system)
     (inputs
      `(("emacs-company" ,emacs-company)
@@ -13262,7 +13888,7 @@ front end to mpc, a client for the @dfn{Music Player Daemon} (MPD).")
        (uri (git-reference
              (url "https://github.com/mkmcc/gnuplot-mode")
              (commit "601f6392986f0cba332c87678d31ae0d0a496ce7")))
-       (file-name (string-append name "-" version "-checkout"))
+       (file-name (git-file-name name version))
        (sha256
         (base32
          "14f0yh1rjqc3337j4sbqzfb7pjim2c8a7wk1a73xkrdkmjn82vgb"))))
@@ -13395,7 +14021,7 @@ opposed to character-based).")
 (define-public emacs-disk-usage
   (package
     (name "emacs-disk-usage")
-    (version "1.3.0")
+    (version "1.3.3")
     (home-page "https://gitlab.com/Ambrevar/emacs-disk-usage")
     (source
      (origin
@@ -13406,7 +14032,7 @@ opposed to character-based).")
              ".el"))
        (sha256
         (base32
-         "0ky6c34z7c6hd4yvcrcsidkfk2kvffkg63v02vch2i6hg1n6n028"))))
+         "0h1jwznd41gi0vg830ilfgm01q05zknikzahwasm9cizwm2wyizj"))))
     (build-system emacs-build-system)
     (synopsis "Sort and browse disk usage listings with Emacs")
     (description "Disk Usage is a file system analyzer: it offers a tabulated
@@ -13748,6 +14374,813 @@ command\", but because it always involves at least two commands (a prefix and
 a suffix) we prefer to call it just a \"transient\".")
       (license license:gpl3+))))
 
+(define-public emacs-undo-propose-el
+  (let ((commit "5f1fa99a04369a959aad01b476fe4f34229f28cd")
+        (version "1.0.0")
+        (revision "1"))
+    (package
+      (name "emacs-undo-propose-el")
+      (version (git-version version revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/jackkamm/undo-propose-el")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "1p9h1fqmva07mcs46rqrg9vqn537b615as84s9b7xh76k1r8h1c0"))))
+      (build-system emacs-build-system)
+      (home-page "https://github.com/jackkamm/undo-propose-el")
+      (synopsis "Simple and safe navigation of @code{undo} history")
+      (description "This package permits navigation of @code{undo} history in a
+temporary buffer, which is read-only save for @code{undo} commands, and
+subsequent committal of a chain of @code{undo} commands as a single edit in
+the @code{undo} history.")
+      (license license:gpl3+))))
+
+(define-public emacs-elisp-docstring-mode
+  (let ((commit "f512e509dd690f65133e55563ebbfd2dede5034f")
+        (version "0.0.1")
+        (revision "1"))
+    (package
+      (name "emacs-elisp-docstring-mode")
+      (version (git-version version revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/Fuco1/elisp-docstring-mode")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "0al8m75p359h4n82rf0dsl22qfdg9cwwywn5pn7x6gb96c7qrqaa"))))
+      (build-system emacs-build-system)
+      (home-page "https://github.com/Fuco1/elisp-docstring-mode")
+      (synopsis "Major mode for editing Emacs Lisp docstrings")
+      (description "This package provides font lock and automatic escaping and
+unescaping of quotes.")
+      (license license:gpl3+))))
+
+(define-public emacs-vimrc-mode
+  (let ((commit "13bc150a870d5d4a95f1111e4740e2b22813c30e")
+        (version "0.3.1")
+        (revision "1"))
+    (package
+      (name "emacs-vimrc-mode")
+      (version (git-version version revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/mcandre/vimrc-mode")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "0026dqs3hwygk2k2xfra90w5sfnxrfj7l69jz7sq5glavbf340pk"))))
+      (build-system emacs-build-system)
+      (home-page "https://github.com/mcandre/vimrc-mode")
+      (synopsis "Major mode for Vimscript")
+      (description "This package provides font lock and @code{beginning-} and
+@code{end-of-defun} functions for Vimscript files.")
+      (license license:gpl3+))))
+
+(define-public emacs-flycheck-haskell
+  (let ((commit "32ddff87165a7d3a35e7318bee997b5b4bd41278")
+        (version "0.8")
+        (revision "79"))
+    (package
+      (name "emacs-flycheck-haskell")
+      (version (git-version version revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/flycheck/flycheck-haskell")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "10pgsbagq6qj4mshq5sypv0q0khck92b30sc793b4g1pfpsxvgjn"))))
+      (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)))
+      (home-page "https://github.com/flycheck/flycheck-haskell")
+      (synopsis "Flycheck for Haskell")
+      (description "This package configures syntax-checking for Haskell
+buffers.")
+      (license license:gpl3+))))
+
+(define-public emacs-js2-refactor-el
+  (let ((commit "79124b3274c43ad1f9ec6205fa362576552db02f")
+        (version "0.9.0")
+        (revision "27"))
+    (package
+      (name "emacs-js2-refactor-el")
+      (version (git-version version revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/magnars/js2-refactor.el")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "1wswhlpbd3airrhyncb9vblqigwnqg9n96z0iis8jnz37q2whica"))))
+      (build-system emacs-build-system)
+      (propagated-inputs
+       `(("emacs-dash" ,emacs-dash)
+         ("emacs-s" ,emacs-s)
+         ("emacs-js2-mode" ,emacs-js2-mode)
+         ("emacs-yasnippet" ,emacs-yasnippet)
+         ("emacs-multiple-cursors" ,emacs-multiple-cursors)))
+      (native-inputs
+       `(("emacs-buttercup" ,emacs-buttercup)
+         ("emacs-espuds" ,emacs-espuds)))
+      (home-page "https://github.com/magnars/js2-refactor.el")
+      (synopsis "JavaScript refactoring in Emacs")
+      (description "This package provides various refactoring functions for
+JavaScript.")
+      (license license:gpl3+))))
+
+(define-public emacs-prettier
+  (let ((commit "e9b73e81d3e1642aec682195f127a42dfb0b5774")
+        (version "0.1.0")
+        (revision "1"))
+    (package
+      (name "emacs-prettier")
+      (version (git-version version revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/prettier/prettier-emacs")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "0hj4fv3fgc60i6jrsx4a81s5c9fsxxafhhs3q2q1dypsscjci9ph"))))
+      (build-system emacs-build-system)
+      (home-page "https://github.com/prettier/prettier-emacs")
+      (synopsis "Automatic formatting of JavaScript code")
+      (description "This package integrates Prettier with Emacs, and
+provides a minor mode that autoformats the buffer upon saving.")
+      (license license:expat))))
+
+(define-public emacs-fish-mode
+  (package
+    (name "emacs-fish-mode")
+    (version "0.1.4")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/wwwjfy/emacs-fish")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "0a74ghmjjrxfdhk4mvq6lar4w6l6lc4iilabs99smqr2fn5rsslq"))))
+    (build-system emacs-build-system)
+    (home-page "https://github.com/wwwjfy/emacs-fish")
+    (synopsis "Major mode for Fish shell scripts")
+    (description "This package provides syntax highlighting and indentation
+functions for Fish shell scripts.")
+    (license license:gpl3+)))
+
+(define-public emacs-eshell-up
+  (let ((commit "9c100bae5c3020e8d9307e4332d3b64e7dc28519")
+        (version "0.0.3")
+        (revision "12"))
+    (package
+      (name "emacs-eshell-up")
+      (version (git-version version revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/peterwvj/eshell-up")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "00zdbcncjabgj5mp47l1chymx5na18v2g4kj730dgmj3rnl3iz2q"))))
+      (build-system emacs-build-system)
+      (home-page "https://github.com/peterwvj/eshell-up")
+      (synopsis "Quickly go to a parent directory in @code{Eshell}")
+      (description "This package provides quick navigation to a specific
+parent directory using @code{Eshell}.")
+      (license license:gpl3+))))
+
+(define-public emacs-tco-el
+  (let ((commit "482db5313f090b17ed22ccd856f0e141dc75afe6")
+        (version "0.3")
+        (revision "1"))
+    (package
+      (name "emacs-tco-el")
+      (version (git-version version revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/Wilfred/tco.el")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "1z7xkbrqznk6ni687qqknp8labcyhl8y6576hjfri89fn21385y9"))))
+      (build-system emacs-build-system)
+      (propagated-inputs
+       `(("emacs-dash" ,emacs-dash)))
+      (home-page "https://github.com/Wilfred/tco.el")
+      (synopsis "Tail-call optimization for Emacs Lisp")
+      (description "This package provides tail-call optimization for Emacs
+Lisp functions that call themselves in tail position.")
+      (license license:gpl3+))))
+
+(define-public emacs-equake
+  (let ((commit "ed15fd55cd4f2276161a6f712ed0b83cd10a8cdc")
+        (version "0.85")
+        (revision "1"))
+    (package
+      (name "emacs-equake")
+      (version (git-version version revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://gitlab.com/emacsomancer/equake/")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "04kj88rlnn22gwmmv2gly2ibi6jka6l2cd4979pi6lhlvqqgjdnj"))))
+      (build-system emacs-build-system)
+      (propagated-inputs
+       `(("emacs-dash" ,emacs-dash)
+         ("emacs-tco-el" ,emacs-tco-el)))
+      (home-page "https://gitlab.com/emacsomancer/equake/")
+      (synopsis "Drop-down console for @code{Eshell} and terminal emulators")
+      (description "This package provides a Quake-style drop-down console
+compatible with Emacs' shell modes.")
+      (license license:gpl3+))))
+
+(define-public emacs-vdiff
+  (let ((commit "09e15fc932bfd2febe1d4a65780a532394562b07")
+        (version "0.2.3")
+        (revision "1"))
+    (package
+      (name "emacs-vdiff")
+      (version (git-version version revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/justbur/emacs-vdiff/")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "1gvqi5l4zs872nn4pmj603aza09d81qad2rgijzv268lif8z34db"))))
+      (build-system emacs-build-system)
+      (propagated-inputs
+       `(("emacs-hydra" ,emacs-hydra)))
+      (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.")
+      (license license:gpl3+))))
+
+(define-public emacs-vdiff-magit
+  ;; Need to use a more recent commit than the latest release version because
+  ;; of Magit and Transient
+  (let ((commit "b100d126c69e5c26a61ae05aa1778bcc4302b597")
+        (version "0.3.2")
+        (revision "8"))
+    (package
+      (name "emacs-vdiff-magit")
+      (version (git-version version revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/justbur/emacs-vdiff-magit/")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "16cjmrzflf2i1w01973sl944xrfanakba8sb4dpwi79d92xp03xy"))))
+      (build-system emacs-build-system)
+      (propagated-inputs
+       `(("emacs-vdiff" ,emacs-vdiff)
+         ("emacs-magit" ,emacs-magit)
+         ("emacs-transient" ,emacs-transient)))
+      (home-page "https://github.com/justbur/emacs-vdiff-magit/")
+      (synopsis "Frontend for diffing based on vimdiff")
+      (description "This package permits comparisons of two or three buffers
+based on diff output.")
+      (license license:gpl3+))))
+
+(define-public emacs-all-the-icons-dired
+  (let ((commit "980b7747d6c4a7992a1ec56afad908956db0a519")
+        (version "1.0")
+        (revision "1"))
+    (package
+      (name "emacs-all-the-icons-dired")
+      (version (git-version version revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/jtbm37/all-the-icons-dired/")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "1pvbgyxfj4j205nj1r02045f1y4wgavdsk7f45hxkkhms1rj8jyy"))))
+      (build-system emacs-build-system)
+      (propagated-inputs
+       `(("emacs-all-the-icons" ,emacs-all-the-icons)))
+      (home-page "https://github.com/jtbm37/all-the-icons-dired/")
+      (synopsis "Show icons for each file in @code{dired-mode}")
+      (description "This package allows icons from @file{all-the-icons.el} to
+be used in @code{dired-mode}.")
+      (license license:gpl3+))))
+
+(define-public emacs-exwm-edit
+  (let ((commit "961c0f3ea45766b888c73d7353da13d329538034")
+        (version "0.0.1")
+        (revision "1"))
+    (package
+      (name "emacs-exwm-edit")
+      (version (git-version version revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/agzam/exwm-edit/")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "087pk5ckx753qrn6xpka9khhlp7iqlz76w7861x90av2f5cgy6fw"))))
+      (build-system emacs-build-system)
+      (propagated-inputs
+       `(("emacs-exwm" ,emacs-exwm)))
+      (home-page "https://github.com/agzam/exwm-edit/")
+      (synopsis "Open temp buffers for editing text from EXWM buffers")
+      (description "This package facilitates editing text from EXWM buffers by
+generating a temp buffer in which any useful Emacs utilities and modes can be
+invoked.")
+      (license license:gpl3+))))
+
+(define-public emacs-ert-async
+  (package
+    (name "emacs-ert-async")
+    (version "0.1.2")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/rejeep/ert-async.el")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "0hn9i405nfhjd1h9vnwj43nxbbz00khrwkjq0acfyxjaz1shfac9"))))
+    (build-system emacs-build-system)
+    (home-page "https://github.com/rejeep/ert-async.el")
+    (synopsis "Async support for ERT")
+    (description "This package allows ERT to work with asynchronous tests.")
+    (license license:gpl3+)))
+
+(define-public emacs-prodigy-el
+  (let ((commit "701dccaa56de9e6a330c05bde33bce4f3b3d6a97")
+        (version "0.7.0")
+        (revision "28"))
+    (package
+      (name "emacs-prodigy-el")
+      (version (git-version version revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/rejeep/prodigy.el")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "1vyvxawlayp2nra0q83146q2nzv8qwn5a4nj0sx1jc90a0a83vgj"))))
+      (build-system emacs-build-system)
+      (propagated-inputs
+       `(("emacs-dash" ,emacs-dash)
+         ("emacs-s" ,emacs-s)
+         ("emacs-f" ,emacs-f)))
+      (native-inputs
+       `(("emacs-el-mock" ,emacs-el-mock)
+         ("emacs-ert-async" ,emacs-ert-async)))
+      (home-page "https://github.com/rejeep/prodigy.el")
+      (synopsis "Manage external services from within Emacs")
+      (description "This package provides a GUI for defining and monitoring services.")
+      (license license:gpl3+))))
+
+(define-public emacs-web-server
+  (let ((commit "cafa5b7582c57252a0884b2c33da9b18fb678713")
+        (version "0.1.1")
+        (revision "1"))
+    (package
+      (name "emacs-web-server")
+      (version (git-version version revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/eschulte/emacs-web-server/")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "1c0lfqmbs5hvz3fh3c8wgp6ipwmxrwx9xj264bjpj3phixd5419y"))))
+      (build-system emacs-build-system)
+      (home-page "https://github.com/eschulte/emacs-web-server/")
+      (synopsis "Web server with handlers in Emacs Lisp")
+      (description "This package supports HTTP GET and POST requests with
+url-encoded parameters, as well as web sockets.")
+      (license license:gpl3+))))
+
+(define-public emacs-markdown-preview-mode
+  (package
+    (name "emacs-markdown-preview-mode")
+    (version "0.9.2")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/ancane/markdown-preview-mode")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "1d1id99gagymvzdfa1mwqh8y3szm8ii47rpijkfi1qnifjg5jaq9"))))
+    (build-system emacs-build-system)
+    (propagated-inputs
+     `(("emacs-markdown-mode" ,emacs-markdown-mode)
+       ("emacs-websocket" ,emacs-websocket)
+       ("emacs-web-server" ,emacs-web-server)))
+    (arguments '(#:include '("\\.el$" "\\.html$")))
+    (home-page "https://github.com/ancane/markdown-preview-mode")
+    (synopsis "Live web development in Emacs")
+    (description "This package provides a minor mode for preview of Markdown
+files, and sends rendered Markdown to a web browser.")
+    (license license:gpl3+)))
+
+(define-public emacs-dotenv-mode
+  (package
+    (name "emacs-dotenv-mode")
+    (version "0.2.4")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/preetpalS/emacs-dotenv-mode")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "1fplkhxnsgdrg10iqsmw162zny2idz4vvv35spsb9j0hsk8imclc"))))
+    (build-system emacs-build-system)
+    (home-page "https://github.com/preetpalS/emacs-dotenv-mode")
+    (synopsis "Major mode for @file{.env} files")
+    (description "This package provides syntax highlighting for @file{.env}
+files.")
+    (license license:gpl3+)))
+
+(define-public emacs-add-node-modules-path
+  (let ((commit "f31e69ccb681f882aebb806ce6e9478e3ac39708")
+        (version "1.2.0")
+        (revision "10"))
+    (package
+      (name "emacs-add-node-modules-path")
+      (version (git-version version revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/codesuki/add-node-modules-path")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "0p106bqmvdr8by5iv02bshm339qbrjcch2d15mrm4h3nav03v306"))))
+      (build-system emacs-build-system)
+      (home-page "https://github.com/codesuki/add-node-modules-path")
+      (synopsis "Add @file{node_modules} to the buffer-local @file{exec-path}")
+      (description "This package searches the parent directories of the
+current file for the project's @file{node_modules/.bin/} directory, allowing
+Emacs to find project-specific installations of packages.")
+      (license license:expat))))
+
+(define-public emacs-flow-minor-mode
+  (let ((commit "d1b32a7dd0d33c6a00a106da5f4b2323602cbd3e")
+        (version "0.3")
+        (revision "4"))
+    (package
+      (name "emacs-flow-minor-mode")
+      (version (git-version version revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/an-sh/flow-minor-mode")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "169r4ib9qg9q6fm3p0p23qs1qx4pa9pg1qvyq4ysr85i7kwygppl"))))
+      (build-system emacs-build-system)
+      (home-page "https://github.com/an-sh/flow-minor-mode")
+      (synopsis "Minor mode for JavaScript Flow files")
+      (description "This package integrates Flow with Emacs, allowing for
+definition-jumping and type-checking on demand.")
+      (license license:bsd-3))))
+
+(define-public emacs-rjsx-mode
+  (let ((commit "03dd8d1683501e81b58674d64c3032b7b718402c")
+        (version "0.4.0")
+        (revision "35"))
+    (package
+      (name "emacs-rjsx-mode")
+      (version (git-version version revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/felipeochoa/rjsx-mode")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "1kc44g9f38klpjklmz9n50a28nqv7prz6ck6ghdr6bnj1s98pb8a"))))
+      (build-system emacs-build-system)
+      (propagated-inputs
+       `(("emacs-js2-mode" ,emacs-js2-mode)))
+      (home-page "https://github.com/felipeochoa/rjsx-mode")
+      (synopsis "Major mode for JSX files")
+      (description "This package extends the parser of @code{js2-mode} to
+support JSX syntax.")
+      (license license:expat))))
+
+(define-public emacs-origami-el
+  (let ((commit "1f38085c8f9af7842765ed63f7d6dfe4dab59366")
+        (version "1.0")
+        (revision "1"))
+    (package
+      (name "emacs-origami-el")
+      (version (git-version version revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/gregsexton/origami.el")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "0ha1qsz2p36pqa0sa2sp83lspbgx5lr7930qxnwd585liajzdd9x"))))
+      (build-system emacs-build-system)
+      (propagated-inputs
+       `(("emacs-dash" ,emacs-dash)
+         ("emacs-s" ,emacs-s)))
+      (home-page "https://github.com/gregsexton/origami.el")
+      (synopsis "Flexible text-folding")
+      (description "This package provides a minor mode for collapsing and
+expanding regions of text without modifying the actual contents.")
+      (license license:expat))))
+
+(define-public emacs-peep-dired
+  (let ((commit "c88a9a3050197840edfe145f11e0bb9488de32f4")
+        (version "0")
+        (revision "1"))
+    (package
+      (name "emacs-peep-dired")
+      (version (git-version version revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/asok/peep-dired")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "1wy5qpnfri1gha2cnl6q20qar8dbl2mimpb43bnhmm2g3wgjyad6"))))
+      (build-system emacs-build-system)
+      (home-page "https://github.com/asok/peep-dired")
+      (synopsis "Preview files in another window")
+      (description "This package provides a minor mode that allows files to be
+previewed by scrolling up and down within a @code{dired} buffer.")
+      (license license:gpl3+))))
+
+(define-public emacs-counsel-etags
+  (package
+    (name "emacs-counsel-etags")
+    (version "1.8.3")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/redguardtoo/counsel-etags")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "1d8nlrbsyza6q7yqm9248bxxsf49qf6hchg3zwv0l11acn3w8np5"))))
+    (build-system emacs-build-system)
+    (propagated-inputs
+     `(("emacs-ivy" ,emacs-ivy)))
+    (home-page "https://github.com/redguardtoo/counsel-etags")
+    (synopsis "Fast @code{Ctags}/@code{Etags} solution with @code{ivy-mode}")
+    (description "This package uses @code{ivy-mode} to facilitate navigating
+and searching through @code{Ctags} files.")
+    (license license:gpl3+)))
+
+(define-public emacs-helm-dash
+  (let ((commit "192b862185df661439a06de644791171e899348a")
+        (version "1.3.0")
+        (revision "18"))
+    (package
+      (name "emacs-helm-dash")
+      (version (git-version version revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/areina/helm-dash")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "06am5vnr4hsxkvh2b8q8kb80y5x1h3qyv7gwggswwhfa7w2vba3w"))))
+      (build-system emacs-build-system)
+      (propagated-inputs
+       `(("emacs-helm" ,emacs-helm)))
+      (home-page "https://github.com/areina/helm-dash")
+      (synopsis "Offline documentation browser for APIs using Dash docsets")
+      (description "This package uses Helm to install and navigate through
+Dash docsets.")
+      (license license:gpl3+))))
+
+(define-public emacs-counsel-dash
+  (let ((commit "07fa74a94ff4da5b6c8c4810f5e143e701b480d2")
+        (version "0.1.3")
+        (revision "3"))
+    (package
+      (name "emacs-counsel-dash")
+      (version (git-version version revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/nathankot/counsel-dash")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "17h2m9zsadq270mkq12kmdzmpbfjiwjbg8n1rg2apqnm1ndgcwf8"))))
+      (build-system emacs-build-system)
+      (propagated-inputs
+       `(("emacs-helm-dash" ,emacs-helm-dash)
+         ("emacs-dash" ,emacs-dash)
+         ("emacs-ivy" ,emacs-ivy)))
+      (home-page "https://github.com/nathankot/counsel-dash")
+      (synopsis "Offline documentation browser for APIs using Dash docsets")
+      (description "This package uses @code{ivy-mode} to install and navigate
+through Dash docsets.")
+      (license license:expat))))
+
+(define-public emacs-el-patch
+  (package
+    (name "emacs-el-patch")
+    (version "2.2.3")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/raxod502/el-patch")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "18djslz177q6q33y82zmg2v6n9236a76kiqfvxdk4vbqzjbq82f7"))))
+    (build-system emacs-build-system)
+    (home-page "https://github.com/raxod502/el-patch")
+    (synopsis "Future-proof your Emacs customizations")
+    (description "This package allows for an alternate definition of an Elisp
+function to be specified and for any differences from the original definition
+to be examined using Ediff.")
+    (license license:expat)))
+
+(define-public emacs-info-plus
+  (let ((commit "b837d710f7d58db586116cf6f75e75a9a074bc4b")
+        (version "5101")
+        (revision "55"))
+    (package
+      (name "emacs-info-plus")
+      (version (git-version version revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/emacsmirror/info-plus")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "1knyjkdm4rcs3qrc51jllw46ph7ycq5zxnvl70ydchzfwava43h6"))))
+      (build-system emacs-build-system)
+      (home-page "https://github.com/emacsmirror/info-plus")
+      (synopsis "Extensions to @file{info.el}")
+      (description "This package extends Emacs' @file{info.el} by allowing
+outline-enabled table of contents, additional metadata association for Info
+nodes, and more.")
+      (license license:gpl2+))))
+
+(define-public emacs-eval-sexp-fu-el
+  (package
+    (name "emacs-eval-sexp-fu-el")
+    (version "0.5.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/hchbaw/eval-sexp-fu.el")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "01mpnpgmlnfbi2yw9dxz5iw72mw3lk223bj172i4fnx3xdrrxbij"))))
+    (build-system emacs-build-system)
+    (home-page "https://github.com/hchbaw/eval-sexp-fu.el")
+    (synopsis "Enhancements for evaluating s-expressions")
+    (description "This package provides provides variants of
+@code{eval-last-sexp} that work on the containing list or s-expression, as
+well as an option for visually flashing evaluated s-expressions.")
+    (license license:gpl3+)))
+
+(define-public emacs-counsel-tramp
+  (package
+    (name "emacs-counsel-tramp")
+    (version "0.6.2")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/masasam/emacs-counsel-tramp")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "0nz0733x2b9b5nkwivvhv5c8747dng451na1sdfbkx5x9fjs5gc7"))))
+    (build-system emacs-build-system)
+    (propagated-inputs
+     `(("emacs-ivy" ,emacs-ivy)))
+    (home-page "https://github.com/masasam/emacs-counsel-tramp")
+    (synopsis "Ivy interface for TRAMP")
+    (description "This package allows @code{ivy-mode} to display and filter
+SSH servers.")
+    (license license:gpl3+)))
+
+(define-public emacs-eacl
+  (package
+    (name "emacs-eacl")
+    (version "2.0.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/redguardtoo/eacl")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "0ksn11sm3g1ja5lpjz3hrzzw8b480mfcb3q589m52qjgvvn5iyfv"))))
+    (build-system emacs-build-system)
+    (propagated-inputs
+     `(("emacs-ivy" ,emacs-ivy)))
+    (home-page "https://github.com/redguardtoo/eacl")
+    (synopsis "Auto-complete lines by using @code{grep} on a project")
+    (description "This package provides auto-completion cammands for single
+and multiple lines of code in a project.")
+    (license license:gpl3+)))
+
 (define-public emacs-semantic-refactor
   ;; The last release, 0.5, was made on 2015-07-26 and there have been 47
   ;; commits since then.
@@ -13852,3 +15285,52 @@ C-f} to advance by #xa4 characters.
        "This package provides an Emacs Helm interface for search suggestions
 and article extracts for Wikipedia.")
       (license license:gpl3+))))
+
+(define-public emacs-webfeeder
+  (package
+  (name "emacs-webfeeder")
+  (version "1.0.0")
+  (source
+    (origin
+      (method url-fetch)
+      (uri (string-append
+             "https://elpa.gnu.org/packages/webfeeder-"
+             version
+             ".tar"))
+      (sha256
+        (base32
+          "06y5vxw9m6pmbrzb8v2i3w9dnhgqxz06vyx1knmgi9cczlrj4a64"))))
+  (build-system emacs-build-system)
+  (home-page "https://gitlab.com/Ambrevar/emacs-webfeeder")
+  (synopsis "Build RSS and Atom webfeeds from HTML files")
+  (description
+    "Webfeeder is an Emacs library to generate RSS and Atom feeds from HTML
+files.  The various elements of the HTML input are parsed with customizable
+functions (e.g. @code{webfeeder-title-function}).")
+  (license license:gpl3+)))
+
+(define-public emacs-evil-numbers
+  (let ((commit "6ea1c8c3a9b37bed63d48f1128e9a4910e68187e"))
+    (package
+      (name "emacs-evil-numbers")
+      (version (git-version "0.4" "1" commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/dieggsy/evil-numbers")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "1aq95hj8x13py0pwsnc6wvd8cc5yv5qin8ym9js42y5966vwj4np"))))
+      (build-system emacs-build-system)
+      (home-page "https://github.com/dieggsy/evil-numbers")
+      (synopsis "Increment and decrement numbers in Emacs")
+      (description "This package increments and decrements binary, octal,
+decimal and hex literals.  It works like C-a/C-x in Vim, i.e. searches for
+number up to EOL and then increments or decrements and keeps zero padding up
+(unlike in Vim).  When a region is active, as in Evil's visual mode, all the
+numbers within that region will be incremented/decremented (unlike in Vim).
+
+It is a fork of https://github.com/cofi/evil-numbers, which is unmaintained.")
+      (license license:gpl3+))))
diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
index e00931c504..7c60cc6021 100644
--- a/gnu/packages/emacs.scm
+++ b/gnu/packages/emacs.scm
@@ -2,7 +2,7 @@
 ;;; Copyright © 2013, 2014, 2015, 2016, 2017 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 Mark H Weaver <mhw@netris.org>
+;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019 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>
@@ -68,14 +68,14 @@
 (define-public emacs
   (package
     (name "emacs")
-    (version "26.1")
+    (version "26.2")
     (source (origin
              (method url-fetch)
              (uri (string-append "mirror://gnu/emacs/emacs-"
                                  version ".tar.xz"))
              (sha256
               (base32
-               "0b6k1wq44rc8gkvxhi1bbjxbz3cwg29qbq8mklq2az6p1hjgrx0w"))
+               "13n5m60i47k96mpv5pp6km2ph9rv2m5lmbpzj929v02vpsfyc70m"))
              (patches (search-patches "emacs-exec-path.patch"
                                       "emacs-fix-scheme-indent-function.patch"
                                       "emacs-source-date-epoch.patch"))
diff --git a/gnu/packages/embedded.scm b/gnu/packages/embedded.scm
index 5ea2b17197..a65998c369 100644
--- a/gnu/packages/embedded.scm
+++ b/gnu/packages/embedded.scm
@@ -1013,6 +1013,8 @@ SPI, I2C, JTAG.")
                             "uptools/atcmd/atinterf.c")
                (("/opt/freecalypso/loadtools")
                 (string-append (assoc-ref outputs "out") "/lib/freecalypso/loadtools"))
+               (("\\$\\{INSTALL_PREFIX\\}/loadtools")
+                (string-append (assoc-ref outputs "out") "/lib/freecalypso/loadtools"))
                (("/opt/freecalypso")
                 (assoc-ref outputs "out")))
              #t)))))
diff --git a/gnu/packages/emulators.scm b/gnu/packages/emulators.scm
index b02e450f3e..bb5addd4a2 100644
--- a/gnu/packages/emulators.scm
+++ b/gnu/packages/emulators.scm
@@ -460,13 +460,13 @@ and Game Boy Color games.")
     (version "2.5")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append
-             "https://github.com/mupen64plus/mupen64plus-core/archive/"
-             version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/mupen64plus/mupen64plus-core.git")
+             (commit version)))
+       (file-name (git-file-name name version))
        (sha256
-        (base32 "0dg2hksm5qni2hcha93k7n4fqr92888p946f7phb0ndschzfh9kk"))))
+        (base32 "116fndl6652zrp1r6ag4xv3dzp1x52mlvadj8xwflq07fd5rhri1"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)
@@ -508,13 +508,13 @@ core library.")
     (version "2.5")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append
-             "https://github.com/mupen64plus/mupen64plus-audio-sdl/archive/"
-             version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/mupen64plus/mupen64plus-audio-sdl.git")
+             (commit version)))
+       (file-name (git-file-name name version))
        (sha256
-        (base32 "0ss6w92n2rpfnazhg9lbq0nvs3fqx93nliz3k3wjxdlx4dpi7h3a"))))
+        (base32 "0z19amfg9vr2pqjjri1ipc7hs681fzjcnb0f9y7bjhp5n8d7p6bb"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)
@@ -554,13 +554,13 @@ SDL audio plugin.")
     (version "2.5")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append
-             "https://github.com/mupen64plus/mupen64plus-input-sdl/archive/"
-             version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/mupen64plus/mupen64plus-input-sdl.git")
+             (commit version)))
+       (file-name (git-file-name name version))
        (sha256
-        (base32 "11sj5dbalp2nrlmki34vy7wy28vc175pnnkdk65p8599hnyq37ri"))))
+        (base32 "1dyazfbdjycdfslq8jixqiqhziw0rlkvach2r9dz91229jmkyc9c"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("which" ,which)))
@@ -599,13 +599,13 @@ SDL input plugin.")
     (version "2.5")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append
-             "https://github.com/mupen64plus/mupen64plus-rsp-hle/archive/"
-             version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/mupen64plus/mupen64plus-rsp-hle.git")
+             (commit version)))
+       (file-name (git-file-name name version))
        (sha256
-        (base32 "15h7mgz6xd2zjzm6l3f96sbs8kwr3xvbwzgikhnka79m6c69hsxv"))))
+        (base32 "0pi31qzjjp7aypdvvnz6ms18g09c4gqzxi6328zj8sji94b75gf0"))))
     (build-system gnu-build-system)
     (inputs
      `(("mupen64plus-core" ,mupen64plus-core)))
@@ -641,13 +641,13 @@ high-level emulation (HLE) RSP processor plugin.")
     (version "2.0.0")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append
-             "https://github.com/mupen64plus/mupen64plus-rsp-z64/archive/"
-             version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/mupen64plus/mupen64plus-rsp-z64.git")
+             (commit version)))
+       (file-name (git-file-name name version))
        (sha256
-        (base32 "10jz1w2dhx5slhyk4m8mdqlpsd6cshchslr1fckb2ayzb1ls3ghi"))))
+        (base32 "0nfyjns9k8xbg3aqs7593nfaxvlj72h3l8h467442xlk8ajfcylx"))))
     (build-system gnu-build-system)
     (inputs
      `(("mupen64plus-core" ,mupen64plus-core)))
@@ -683,13 +683,13 @@ Z64 RSP processor plugin.")
     (version "2.0.0")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append
-             "https://github.com/mupen64plus/mupen64plus-video-arachnoid/archive/"
-             version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/mupen64plus/mupen64plus-video-arachnoid.git")
+             (commit version)))
+       (file-name (git-file-name name version))
        (sha256
-        (base32 "0jjwf144rihznm4lnqbhgigxw664v3v32wy94adaa6imk8z6gslh"))))
+        (base32 "1v9fqwpb6pawr8z5cm2ki7bqkks4iyr5c4jy4v5khj6h8zcv55gc"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)
@@ -729,13 +729,13 @@ Arachnoid video plugin.")
     (version "2.0.0")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append
-             "https://github.com/mupen64plus/mupen64plus-video-glide64/archive/"
-             version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/mupen64plus/mupen64plus-video-glide64.git")
+             (commit version)))
+       (file-name (git-file-name name version))
        (sha256
-        (base32 "1rm55dbf6xgsq1blbzs6swa2ajv0qkn38acbljj346abnk6s3dla"))))
+        (base32 "0qn5za7g7796kh2ag3xpmhbqg0yf71g9liz6ks0rha8pz73lgs01"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)
@@ -783,13 +783,13 @@ Glide64 video plugin.")
     (version "2.5")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append
-             "https://github.com/mupen64plus/mupen64plus-video-glide64mk2/archive/"
-             version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/mupen64plus/mupen64plus-video-glide64mk2.git")
+             (commit version)))
+       (file-name (git-file-name name version))
        (sha256
-        (base32 "1ihl4q293d6svba26b4mhapjcdg12p90gibz79b4mx423jlcxxj9"))))
+        (base32 "08pm28a36dpr0cvr8pzw0n5ksdazp7jqvlmqfy2lwb4dm0cwhkqd"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)
@@ -833,13 +833,13 @@ Glide64MK2 video plugin.")
     (version "2.5")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append
-             "https://github.com/mupen64plus/mupen64plus-video-rice/archive/"
-             version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/mupen64plus/mupen64plus-video-rice.git")
+             (commit version)))
+       (file-name (git-file-name name version))
        (sha256
-        (base32 "0rd2scjmh285w61aj3mgx71whg5rqrjbry3cdgicczrnyvf8wdvk"))))
+        (base32 "0rpmbcq67gsj5h5jjis146378qc1mskskvx20y1ikx59yhbamh13"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)
@@ -881,13 +881,13 @@ Rice Video plugin.")
     (version "2.0.0")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append
-             "https://github.com/mupen64plus/mupen64plus-video-z64/archive/"
-             version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/mupen64plus/mupen64plus-video-z64.git")
+             (commit version)))
+       (file-name (git-file-name name version))
        (sha256
-        (base32 "1x7wsjs5gx2iwx20p4cjcbf696zsjlh31qxmghwv0ifrq8x58s1b"))
+        (base32 "04qa2fdd6dakpk2v0d4l80xh9b4h8gm71g80c0wyyxdhmhwk1r9c"))
        (patches (search-patches "mupen64plus-video-z64-glew-correct-path.patch"))))
     (build-system gnu-build-system)
     (native-inputs
@@ -936,13 +936,13 @@ Z64 video plugin.")
     (version "2.5")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append
-             "https://github.com/mupen64plus/mupen64plus-ui-console/archive/"
-             version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/mupen64plus/mupen64plus-ui-console.git")
+             (commit version)))
+       (file-name (git-file-name name version))
        (sha256
-        (base32 "04qkpd8ic7xsgnqz7spl00wxdygf79m7d1k8rabbygjk5lg6p8z2"))
+        (base32 "0vrf98qa6a0y3647kslsv644fag233dxh5dcr1yncjiiwickcr5a"))
        (patches (search-patches "mupen64plus-ui-console-notice.patch"))))
     (build-system gnu-build-system)
     (native-inputs
@@ -999,21 +999,21 @@ towards a working Mupen64Plus for casual users.")
   (package
     (name "nestopia-ue")
     (version "1.48")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "https://github.com/rdanbrook/nestopia/archive/"
-                    version ".tar.gz"))
-              (file-name (string-append name "-" version ".tar.gz"))
-              (sha256
-               (base32
-                "184y05z4k4a4m4022niy625kan0rklh8gcxyynxli1fss2sjjrpv"))
-              (modules '((guix build utils)))
-              (snippet
-               '(begin
-                  ;; We don't need libretro for the GNU/Linux build.
-                  (delete-file-recursively "libretro")
-                  #t))))
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/rdanbrook/nestopia.git")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "19c8vx5yxbysl0sszk5blfngwacshdgwbf44g1qaxvq8ywiyxmb4"))
+       (modules '((guix build utils)))
+       (snippet
+        '(begin
+           ;; We don't need libretro for the GNU/Linux build.
+           (delete-file-recursively "libretro")
+           #t))))
     (build-system cmake-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)))
@@ -1185,7 +1185,7 @@ play them on systems for which they were never designed!")
 (define-public mame
   (package
     (name "mame")
-    (version "0.206")
+    (version "0.209")
     (source
      (origin
        (method git-fetch)
@@ -1195,7 +1195,7 @@ play them on systems for which they were never designed!")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "0i01h5ars1yd96ndmzhk47931hf261m8frqz1ha7s2gy52f0q86y"))
+         "08qvwmx8wbfkqxiccmcff86dsrlq6wjxf6blnhhrsbzic1ji99bh"))
        (modules '((guix build utils)))
        (snippet
         ;; Remove bundled libraries.
@@ -1333,7 +1333,8 @@ play them on systems for which they were never designed!")
                #t))))))
     (native-inputs
      `(("pkg-config" ,pkg-config)
-       ("python-sphinx" ,python-sphinx)
+       ("sphinx" ,python-sphinx)
+       ("sphinxcontrib-svg2pdfconverter" ,python-sphinxcontrib-svg2pdfconverter)
        ("texinfo" ,texinfo)))
     (inputs
      `(("alsa-lib" ,alsa-lib)
diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm
index 4ac76e35b0..78a9930802 100644
--- a/gnu/packages/engineering.scm
+++ b/gnu/packages/engineering.scm
@@ -9,7 +9,7 @@
 ;;; Copyright © 2018, 2019 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 Arun Isaac <arunisaac@systemreboot.net>
+;;; Copyright © 2018, 2019 Arun Isaac <arunisaac@systemreboot.net>
 ;;; Copyright © 2019 Tim Stahel <swedneck@swedneck.xyz>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -85,6 +85,7 @@
   #:use-module (gnu packages texinfo)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages tex)
+  #:use-module (gnu packages version-control)
   #:use-module (gnu packages wxwidgets)
   #:use-module (gnu packages xorg))
 
@@ -554,43 +555,65 @@ multipole-accelerated algorithm.")
 (define-public fritzing
   (package
     (name "fritzing")
-    (version "0.9.2b")
+    (version "0.9.3b")
     (source (origin
-              (method url-fetch)
-              (uri (string-append "https://github.com/fritzing/"
-                                  "fritzing-app/archive/" version ".tar.gz"))
-              (file-name (string-append name "-" version ".tar.gz"))
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/fritzing/fritzing-app.git")
+                    (commit version)))
+              (file-name (git-file-name name version))
               (sha256
                (base32
-                "15rwjp4xdj9w1z9f709rz9p0k2mi9k9idma9hvzkj5j8p04mg7yd"))))
+                "0hpyc550xfhr6gmnc85nq60w00rm0ljm0y744dp0z88ikl04f4s3"))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases
        (modify-phases %standard-phases
          (replace 'configure
            (lambda* (#:key inputs outputs #:allow-other-keys)
-             (and (zero? (system* "tar"
-                                  "-xvf" (assoc-ref inputs "fritzing-parts-db")
-                                  "-C" "parts"))
-                  (zero? (system* "qmake"
-                                  (string-append "PREFIX="
-                                                 (assoc-ref outputs "out"))
-                                  "phoenix.pro"))))))))
+             (copy-recursively (assoc-ref inputs "fritzing-parts-db")
+                               "parts")
+             ;; Make compatible with libgit2 > 0.24
+             (substitute* "src/version/partschecker.cpp"
+               (("error = git_remote_connect\\(remote, GIT_DIRECTION_FETCH, &callbacks\\)")
+                "error = git_remote_connect(remote, GIT_DIRECTION_FETCH, &callbacks, NULL, NULL)"))
+
+             ;; Use system libgit2 and boost.
+             (substitute* "phoenix.pro"
+               (("^LIBGIT2INCLUDE =.*")
+                (string-append "LIBGIT2INCLUDE="
+                               (assoc-ref inputs "libgit2") "/include\n"))
+               (("^    LIBGIT2LIB =.*")
+                (string-append "    LIBGIT2LIB="
+                               (assoc-ref inputs "libgit2") "/lib\n")))
+             ;; This file checks for old versions of Boost, insisting on
+             ;; having us download the boost sources and placing them in the
+             ;; build directory.
+             (substitute* "pri/utils.pri"
+               (("error\\(") "message("))
+
+             (let ((out (assoc-ref outputs "out")))
+               (invoke "qmake"
+                       (string-append "QMAKE_LFLAGS_RPATH=-Wl,-rpath," out "/lib")
+                       (string-append "PREFIX=" out)
+                       "phoenix.pro")))))))
     (inputs
      `(("qtbase" ,qtbase)
        ("qtserialport" ,qtserialport)
        ("qtsvg" ,qtsvg)
+       ("libgit2" ,libgit2)
        ("boost" ,boost)
        ("zlib" ,zlib)
        ("fritzing-parts-db"
         ,(origin
-           (method url-fetch)
-           (uri (string-append "https://github.com/fritzing/"
-                               "fritzing-parts/archive/" version ".tar.gz"))
-           (file-name (string-append "fritzing-parts-" version ".tar.gz"))
+           (method git-fetch)
+           (uri (git-reference
+                 (url "https://github.com/fritzing/fritzing-parts.git")
+                 (commit version)))
+           (file-name (git-file-name "fritzing-parts" version))
            (sha256
             (base32
-             "0jqr8yjg7177f3pk1fcns584r0qavwpr280nggsi2ff3pwk5wpsz"))))))
+             "1d2v8k7p176j0lczx4vx9n9gbg3vw09n2c4b6w0wj5wqmifywhc1"))))))
     (home-page "http://fritzing.org")
     (synopsis "Electronic circuit design")
     (description
@@ -1916,15 +1939,15 @@ simulator backends @code{Qucsator}, @code{ngspice} and @code{Xyce}.")
 (define-public librepcb
   (package
     (name "librepcb")
-    (version "0.1.0")
+    (version "0.1.1")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "https://download.librepcb.org/releases/0.1.0/librepcb-"
-                           version "-source.zip"))
+       (uri (string-append "https://download.librepcb.org/releases/"
+                           version "/librepcb-" version "-source.zip"))
        (sha256
         (base32
-         "0affvwwgs1j2wx6bb3zfa2jbfxpckklr8cka2nkswca0p82wd3dv"))))
+         "08lm95kr5gqyqyy4hcii0micqa6ryhbv0harvdndmpvi4ix1ggi8"))))
     (build-system gnu-build-system)
     (inputs
      `(("qtbase" ,qtbase)
@@ -1985,3 +2008,57 @@ editors.")
 slicing software to x3g files for standalone 3D printing on common 3D
 printers.")
     (license license:gpl2+)))
+
+(define-public gnucap
+  (package
+    (name "gnucap")
+    (version "20171003")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://git.savannah.gnu.org/cgit/gnucap.git/snapshot/gnucap-"
+                           version ".tar.gz"))
+       (sha256
+        (base32
+         "16m09xa685qhj5fqq3bcgakrwnb74xhf5f7rpqkkf9fg8plzbb1g"))))
+    (build-system gnu-build-system)
+    (inputs
+     `(("readline" ,readline)))
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'configure
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out")))
+               ;; Set correct rpath so that gnucap finds libgnucap.so.
+               (substitute* (list "apps/configure" "lib/configure"
+                                  "main/configure" "modelgen/configure")
+                 (("LDFLAGS =")
+                  (string-append "LDFLAGS = -Wl,-rpath=" out "/lib")))
+               ;; gnucap uses a hand-written configure script that expects the
+               ;; --prefix argument to be the first argument passed to it.
+               (invoke "./configure" (string-append "--prefix=" out)))))
+         (replace 'check
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out"))
+                   (libpath "../lib/O:../apps/O"))
+               (with-directory-excursion "tests"
+                 ;; Make test return non-zero exit code when a test fails.
+                 (substitute* "test"
+                   (("/bin/sh") "/bin/sh -e")
+                   (("\\|\\| echo \"\\*\\*\\*\\* \\$ii fails \\*\\*\\*\\*\"") ""))
+                 ;; Fix expected plugin search path for test c_attach.1.gc
+                 (substitute* "==out/c_attach.1.gc.out"
+                   (("/usr/local/lib/gnucap")
+                    (string-append libpath ":" out "/lib/gnucap")))
+                 ;; Set library path so that gnucap can find libgnucap.so
+                 ;; while running the tests.
+                 (setenv "LD_LIBRARY_PATH" libpath)
+                 (invoke "./test" "../main/O/gnucap" "" "test-output" "==out"))))))))
+    (home-page "https://www.gnu.org/software/gnucap/")
+    (synopsis "Mixed analog and digital circuit simulator")
+    (description "GNUcap is a circuit analysis package.  It offers a general
+purpose circuit simulator and can perform DC and transient analyses, fourier
+analysis and AC analysis.  The engine is designed to do true mixed-mode
+simulation.")
+    (license license:gpl3+)))
diff --git a/gnu/packages/enlightenment.scm b/gnu/packages/enlightenment.scm
index d2853e62d6..790be1a59e 100644
--- a/gnu/packages/enlightenment.scm
+++ b/gnu/packages/enlightenment.scm
@@ -185,7 +185,7 @@ removable devices or support for multimedia.")
 (define-public terminology
   (package
     (name "terminology")
-    (version "1.3.2")
+    (version "1.4.0")
     (source (origin
               (method url-fetch)
               (uri
@@ -193,7 +193,7 @@ removable devices or support for multimedia.")
                               "terminology/terminology-" version ".tar.xz"))
               (sha256
                (base32
-                "1kclxzadmk272s9spa7n704pcb1c611ixxrq88w5zk22va0i25xm"))
+                "0q1y7fadj42n23aspx9y8hm4w4xlc316wc3415wnf75ibsx08ngd"))
               (modules '((guix build utils)))
               ;; Remove the bundled fonts.
               (snippet
@@ -204,11 +204,24 @@ removable devices or support for multimedia.")
                   #t))))
     (build-system meson-build-system)
     (arguments
-     '(#:phases
+     `(#:configure-flags '("-Dtests=true")
+       #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'set-home-directory
            ;; FATAL: Cannot create run dir '/homeless-shelter/.run' - errno=2
-           (lambda _ (setenv "HOME" "/tmp") #t)))))
+           (lambda _ (setenv "HOME" "/tmp") #t))
+         (replace 'check
+           (lambda _
+             (with-directory-excursion
+               (string-append "../" ,name "-" ,version "/tests")
+               (invoke "sh" "run_tests.sh" "--verbose"
+                       "-t" "../../build/src/bin/tytest"))))
+         (add-after 'install 'remove-test-binary
+           (lambda* (#:key outputs #:allow-other-keys)
+             ;; This file is not meant to be installed.
+             (delete-file (string-append (assoc-ref outputs "out")
+                                         "/bin/tytest"))
+             #t)))))
     (native-inputs
      `(("gettext" ,gettext-minimal)
        ("perl" ,perl)
diff --git a/gnu/packages/entr.scm b/gnu/packages/entr.scm
index 19667ce23f..d0111452df 100644
--- a/gnu/packages/entr.scm
+++ b/gnu/packages/entr.scm
@@ -2,6 +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>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -27,14 +28,14 @@
 (define-public entr
   (package
     (name "entr")
-    (version "4.1")
+    (version "4.2")
     (source (origin
               (method url-fetch)
               (uri (string-append "http://entrproject.org/code/entr-"
                                   version ".tar.gz"))
               (sha256
                (base32
-                "0y7gvyf0iykpf3gfw09m21hy51m6qn4cpkbrm4nnn7pwrwycj0y5"))))
+                "0w2xkf77jikcjh15fp9g7661ss30pz3jbnh261vqpaqavwah4c17"))))
     (build-system gnu-build-system)
     (arguments
      `(#:test-target "test"
diff --git a/gnu/packages/erlang.scm b/gnu/packages/erlang.scm
index 9c38b53581..4fba7ee0c8 100644
--- a/gnu/packages/erlang.scm
+++ b/gnu/packages/erlang.scm
@@ -23,6 +23,7 @@
 (define-module (gnu packages erlang)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix build-system gnu)
+  #:use-module (guix build-system emacs)
   #:use-module (guix download)
   #:use-module (guix git-download)
   #:use-module (guix packages)
@@ -212,3 +213,21 @@ built-in support for concurrency, distribution and fault tolerance.")
     ;; have other licenses. See 'system/COPYRIGHT' in the source distribution.
     (license (list license:asl2.0 license:bsd-2 license:bsd-3 license:expat
                    license:lgpl2.0+ license:tcl/tk license:zlib))))
+
+(define-public emacs-erlang
+  (package
+    (name "emacs-erlang")
+    (version (package-version erlang))
+    (source (package-source erlang))
+    (build-system emacs-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-before 'set-emacs-load-path 'change-working-directory
+           (lambda _ (chdir "lib/tools/emacs") #t)))))
+    (home-page "https://www.erlang.org/")
+    (synopsis "Erlang major mode for Emacs")
+    (description
+     "This package provides an Emacs major mode for editing Erlang source
+files.")
+    (license license:asl2.0)))
diff --git a/gnu/packages/file-systems.scm b/gnu/packages/file-systems.scm
index c778ebd21e..3a7e3284a9 100644
--- a/gnu/packages/file-systems.scm
+++ b/gnu/packages/file-systems.scm
@@ -322,7 +322,7 @@ network.  LIBNFS offers three different APIs, for different use :
        `(("bzip2" ,bzip2)
          ("fuse" ,fuse)
          ("zlib" ,zlib)))
-      (synopsis "Read-only FUSE driver for the APFS filesystem")
+      (synopsis "Read-only FUSE driver for the APFS file system")
       (description "APFS-FUSE is a read-only FUSE driver for the @dfn{Apple File
 System} (APFS).  It is currently in an experimental state — it may not be able
 to read all files, and it does not support all the compression methods in
diff --git a/gnu/packages/file.scm b/gnu/packages/file.scm
index 24ed37a9d2..9ba51d1b74 100644
--- a/gnu/packages/file.scm
+++ b/gnu/packages/file.scm
@@ -43,7 +43,9 @@
 
    ;; When cross-compiling, this package depends upon a native install of
    ;; itself.
-   (self-native-input? #t)
+   (native-inputs (if (%current-target-system)
+                      `(("self" ,this-package))
+                      '()))
 
    (synopsis "File type guesser")
    (description
diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm
index 4eb0d57a36..9a210b474f 100644
--- a/gnu/packages/finance.scm
+++ b/gnu/packages/finance.scm
@@ -6,7 +6,7 @@
 ;;; Copyright © 2017 Carlo Zancanaro <carlo@zancanaro.id.au>
 ;;; Copyright © 2017 Theodoros Foradis <theodoros@foradis.org>
 ;;; Copyright © 2017 Vasile Dumitrascu <va511e@yahoo.com>
-;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Eric Bavier <bavier@member.fsf.org>
 ;;; Copyright © 2018 Adriano Peluso <catonano@gmail.com>
 ;;; Copyright © 2018, 2019 Nicolas Goaziou <mail@nicolasgoaziou.fr>
@@ -139,7 +139,7 @@ line client and a client based on Qt.")
 (define-public ledger
   (package
     (name "ledger")
-    (version "3.1.2")
+    (version "3.1.3")
     (source
      (origin
        (method git-fetch)
@@ -148,8 +148,7 @@ line client and a client based on Qt.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0hwnipj2m9p95hhyv6kyq54m27g14r58gnsy2my883kxhpcyb2vc"))
-       (patches (search-patches "ledger-fix-uninitialized.patch"))))
+        (base32 "0bfnrqrd6wqgsngfpqi30xh6yy86pwl25iwzrqy44q31r0zl4mm3"))))
     (build-system cmake-build-system)
     (arguments
      `(#:configure-flags
@@ -242,6 +241,13 @@ in ability, and easy to use.")
          #:tests? #f ; there are none
          #:phases
          (modify-phases %standard-phases
+           (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")
@@ -261,6 +267,8 @@ in ability, and easy to use.")
                  (rename-file orig-dir dest-dir)
                  (emacs-generate-autoloads ,name dest-dir)
                  #t))))))
+      (inputs
+       `(("ledger" ,ledger)))
       (native-inputs
        `(("emacs-minimal" ,emacs-minimal)
          ("texinfo" ,texinfo)))
@@ -391,7 +399,7 @@ other machines/servers.  Electrum does not download the Bitcoin blockchain.")
   (package
     (inherit electrum)
     (name "electron-cash")
-    (version "3.3.6")
+    (version "4.0.1")
     (source
      (origin
        (method url-fetch)
@@ -402,7 +410,7 @@ other machines/servers.  Electrum does not download the Bitcoin blockchain.")
                            ".tar.gz"))
        (sha256
         (base32
-         "110apc376wm4yd9ghpffiipwdn8rzyr3z7ncpp2516wbz4mmyhxc"))
+         "16fi03f23yb5r9s64x1a9wrxnvivlbawvrbq4d486yclzl1r7y48"))
        (modules '((guix build utils)))
        (snippet
         '(begin
@@ -628,7 +636,7 @@ Monero GUI client.")
 (define-public python-trezor-agent
   (package
     (name "python-trezor-agent")
-    (version "0.13.0")
+    (version "0.13.1")
     (source
      (origin
        (method git-fetch)
@@ -637,7 +645,7 @@ Monero GUI client.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0i4igkxi8fwdlbhg6nx27lhnc9v9nmrw4j5fvpnc202n6yjlc7x7"))))
+        (base32 "0q99vbfd3h85s8rnjipnmldixabqmmlk5w9karv6f0rhyi54f4zv"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -734,14 +742,14 @@ Ledger Blue/Nano S.")
 (define-public python-trezor
   (package
     (name "python-trezor")
-    (version "0.11.1")
+    (version "0.11.2")
     (source
       (origin
         (method url-fetch)
         (uri (pypi-uri "trezor" version))
         (sha256
           (base32
-            "064yds8f4px0c6grkkanpdjx022g4q87ihzhkmdv9qanv0hz6hv0"))))
+            "1f0zfki12mnhidkfxpx2lpq1xim8f35i2d64bx9lf4m26xxv9x56"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -780,14 +788,14 @@ TREZOR Hardware Wallet.")
 (define-public python-keepkey
   (package
     (name "python-keepkey")
-    (version "6.0.2")
+    (version "6.0.3")
     (source
       (origin
         (method url-fetch)
         (uri (pypi-uri "keepkey" version))
         (sha256
           (base32
-            "16j8hnxj9r4b2w6kfncmny09pb1al8ppmn59qxzl3qmh1xhpy45g"))))
+            "0z3d0m6364v9dv0njs4cd5m5ai6j6v35xaaxfxl90m9vmyxy81vd"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -926,7 +934,7 @@ Luhn and family of ISO/IEC 7064 check digit algorithms. ")
 (define-public python-duniterpy
   (package
     (name "python-duniterpy")
-    (version "0.52.0")
+    (version "0.53.0")
     (source
      (origin
        (method git-fetch)
@@ -937,7 +945,7 @@ Luhn and family of ISO/IEC 7064 check digit algorithms. ")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "07liba2d21hb8m3n6yccfamq9yq0ryywh18vs9g2sgywfsnv82lh"))))
+         "1km585xlv6dm693s5x6apcnx3ixvz08g8yjfclszhy4jakhpv0ya"))))
     (build-system python-build-system)
     (arguments
      ;; Tests fail with "AttributeError: module 'attr' has no attribute 's'".
diff --git a/gnu/packages/firmware.scm b/gnu/packages/firmware.scm
index 0f3e1009ac..4df4b22843 100644
--- a/gnu/packages/firmware.scm
+++ b/gnu/packages/firmware.scm
@@ -377,7 +377,7 @@ Virtual Machines.  OVMF contains a sample UEFI firmware for QEMU and KVM.")
 (define* (make-arm-trusted-firmware platform #:optional (arch "aarch64"))
   (package
     (name (string-append "arm-trusted-firmware-" platform))
-    (version "1.5")
+    (version "2.1")
     (source
       (origin
         (method git-fetch)
@@ -388,7 +388,7 @@ Virtual Machines.  OVMF contains a sample UEFI firmware for QEMU and KVM.")
         (file-name (git-file-name "arm-trusted-firmware" version))
        (sha256
         (base32
-         "1gm0bn2llzfzz9bfsz11fhwxj5lxvyrq7bc13fjj033nljzxn7k8"))))
+         "1gy5qskrjy8n3kxdcm1dx8b45l5b75n0pm8pq80wl6xic1ycy24r"))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases
@@ -448,25 +448,10 @@ such as:
                    license:bsd-2)))) ; libfdt
 
 (define-public arm-trusted-firmware-sun50i-a64
-  (let ((base (make-arm-trusted-firmware "sun50i_a64"))
-        ;; Use unreleased version which enables additional features needed for
-        ;; LCD support
-        (commit "98aab97484b27e40aa74a93e5d1c1ac037a7e0b8")
-        (revision "2"))
+  (let ((base (make-arm-trusted-firmware "sun50i_a64")))
     (package
       (inherit base)
-      (name "arm-trusted-firmware-sun50i-a64")
-      (version (git-version "2.0" revision commit))
-      (source
-        (origin
-          (method git-fetch)
-          (uri (git-reference
-                 (url "https://github.com/ARM-software/arm-trusted-firmware.git")
-                 (commit commit)))
-          (file-name (git-file-name name version))
-          (sha256
-           (base32
-            "0z5si034vcn4m68zaixc5v8fs1c7vxbh7n4hggxs55p0jg01dan5")))))))
+      (name "arm-trusted-firmware-sun50i-a64"))))
 
 (define-public arm-trusted-firmware-puma-rk3399
   (let ((base (make-arm-trusted-firmware "rk3399"))
diff --git a/gnu/packages/flashing-tools.scm b/gnu/packages/flashing-tools.scm
index 20e14417e4..f0547a1a8a 100644
--- a/gnu/packages/flashing-tools.scm
+++ b/gnu/packages/flashing-tools.scm
@@ -48,16 +48,15 @@
 (define-public flashrom
   (package
     (name "flashrom")
-    ;; XXX: The CFLAGS=... line below can probably be removed when updating.
-    (version "1.0")
+    (version "1.0.1")
     (source (origin
               (method url-fetch)
               (uri (string-append
-                    "https://download.flashrom.org/releases/flashrom-"
+                    "https://download.flashrom.org/releases/flashrom-v"
                     version ".tar.bz2"))
               (sha256
                (base32
-                "0r7fkpfc8w51n8ffbhclj4wa3kwrk0ijv1acwpw5myx5bchzl0ip"))))
+                "0i6yrrl69hrqmwd7azj7x3j46m0qpvzmk3b5basym7mnlpfzhyfm"))))
     (build-system gnu-build-system)
     (inputs `(("dmidecode" ,dmidecode)
               ("pciutils" ,pciutils)
@@ -67,9 +66,6 @@
     (arguments
      '(#:make-flags
        (list "CC=gcc"
-             ;; The default includes ‘-Wall -Werror’, causing the build to fail
-             ;; with deprecation warnings against libusb versions >= 1.0.22.
-             "CFLAGS=-Os -Wshadow"
              (string-append "PREFIX=" %output)
              "CONFIG_ENABLE_LIBUSB0_PROGRAMMERS=no")
        #:tests? #f                      ; no 'check' target
@@ -131,15 +127,14 @@ brick your device.")
 (define-public avrdude
   (package
     (name "avrdude")
-    (version "6.1")
+    (version "6.3")
     (source
      (origin
       (method url-fetch)
       (uri (string-append "mirror://savannah/avrdude/avrdude-"
                           version ".tar.gz"))
       (sha256
-       (base32
-        "0frxg0q09nrm95z7ymzddx7ysl77ilfbdix1m81d9jjpiv5bm64y"))))
+       (base32 "15m1w1qad3dj7r8n5ng1qqcaiyx1gyd6hnc3p2apgjllccdp77qg"))))
     (build-system gnu-build-system)
     (inputs
      `(("libelf" ,libelf)
@@ -152,8 +147,8 @@ brick your device.")
     (synopsis "AVR downloader and uploader")
     (description
      "AVRDUDE is a utility to download/upload/manipulate the ROM and
-EEPROM contents of AVR microcontrollers using the in-system programming
-technique (ISP).")
+EEPROM contents of AVR microcontrollers using the @acronym{ISP, in-system
+programming} technique.")
     (license license:gpl2+)))
 
 (define-public dfu-programmer
diff --git a/gnu/packages/fltk.scm b/gnu/packages/fltk.scm
index a0d1f13931..40d5e7e513 100644
--- a/gnu/packages/fltk.scm
+++ b/gnu/packages/fltk.scm
@@ -42,7 +42,7 @@
 (define-public fltk
   (package
     (name "fltk")
-    (version "1.3.4-2")
+    (version "1.3.5")
     (source
      (origin
       (method url-fetch)
@@ -51,7 +51,7 @@
                           "/fltk-" version "-source.tar.gz"))
       (sha256
        (base32
-        "0459rm1gl5x3famiqma7ja7k6hvan8p5l8lgshvqfl4rik0lklr5"))))
+        "00jp24z1818k9n6nn6lx7qflqf2k13g4kxr0p8v1d37kanhb4ac7"))))
    (build-system gnu-build-system)
    (native-inputs
     `(("pkg-config" ,pkg-config)))
diff --git a/gnu/packages/fonts.scm b/gnu/packages/fonts.scm
index 6988443e94..6405ce42bb 100644
--- a/gnu/packages/fonts.scm
+++ b/gnu/packages/fonts.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013, 2014, 2015, 2016, 2018 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013, 2014, 2015, 2016, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2014, 2017 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2014 Joshua Grant <tadni@riseup.net>
 ;;; Copyright © 2014 Alex Kost <alezost@gmail.com>
@@ -384,14 +384,14 @@ for long periods of working with computers (8 or more hours per day).")
     (name "font-adobe-source-han-sans")
     (version "1.004")
     (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "https://github.com/adobe-fonts/source-han-sans/archive/"
-                    version "R.tar.gz"))
-              (file-name (string-append "source-han-sans-" version "R.tar.gz"))
+              (method git-fetch)
+              (uri (git-reference
+                     (url "https://github.com/adobe-fonts/source-han-sans.git")
+                     (commit (string-append version "R"))))
+              (file-name (git-file-name name version))
               (sha256
                (base32
-                "1ssx0fw90sy6mj8fv8fv4dgzszpqwbmwpjnlx16g4pvaqzdmybbz"))))
+                "0zm884d8fp5gvirq324050kqv7am9khyqhs9kk4r4rr3jzn61jpk"))))
     (outputs '("out"                 ; OpenType/CFF Collection (OTC), 121 MiB.
                "cn" "jp" "kr" "tw")) ; Region-specific Subset OpenType/CFF.
     (build-system trivial-build-system)
@@ -400,20 +400,12 @@ for long periods of working with computers (8 or more hours per day).")
        #:builder
        (begin
          (use-modules (guix build utils))
-         (let ((tar  (string-append (assoc-ref %build-inputs
-                                               "tar")
-                                    "/bin/tar"))
-               (PATH (string-append (assoc-ref %build-inputs
-                                               "gzip")
-                                    "/bin"))
-               (install-opentype-fonts
+         (let ((install-opentype-fonts
                 (lambda (fonts-dir out)
                   (copy-recursively fonts-dir
                                     (string-append (assoc-ref %outputs out)
                                                    "/share/fonts/opentype")))))
-           (setenv "PATH" PATH)
-           (invoke tar "xvf" (assoc-ref %build-inputs "source"))
-           (chdir (string-append "source-han-sans-" ,version "R"))
+           (chdir (assoc-ref %build-inputs "source"))
            (install-opentype-fonts "OTC" "out")
            (install-opentype-fonts "SubsetOTF/CN" "cn")
            (install-opentype-fonts "SubsetOTF/JP" "jp")
@@ -421,9 +413,6 @@ for long periods of working with computers (8 or more hours per day).")
            (install-opentype-fonts "SubsetOTF/TW" "tw")
            (for-each delete-file (find-files %output "\\.zip$"))
            #t))))
-    (native-inputs
-     `(("gzip" ,gzip)
-       ("tar" ,tar)))
     (home-page "https://github.com/adobe-fonts/source-han-sans")
     (synopsis "Pan-CJK fonts")
     (description
@@ -933,13 +922,14 @@ Sans Pro family.")
     (name "font-fira-sans")
     (version "4.202")
     (source (origin
-              (method url-fetch)
-              (uri (string-append "https://github.com/mozilla/Fira/archive/"
-                                  version ".tar.gz"))
-              (file-name (string-append name "-" version ".tar.gz"))
+              (method git-fetch)
+              (uri (git-reference
+                     (url "https://github.com/mozilla/Fira.git")
+                     (commit version)))
+              (file-name (git-file-name name version))
               (sha256
                (base32
-                "1r6zdnqqp4bgq5nmgqbj0vvj7x1h9w912851ggbl9wc7fdjnjqnq"))))
+                "116j26gdj5g1r124b4669372f7490vfjqw7apiwp2ggl0am5xd0w"))))
     (build-system font-build-system)
     (home-page "https://mozilla.github.io/Fira/")
     (synopsis "Mozilla's Fira Sans Font")
@@ -997,13 +987,14 @@ vector graphics.")
     (version "1.11.4")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/sunaku/tamzen-font/archive/"
-                           "Tamzen-" version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+              (url "https://github.com/sunaku/tamzen-font.git")
+              (commit (string-append "Tamzen-" version))))
+       (file-name (git-file-name name version))
        (sha256
         (base32
-         "1ryd7gp6qiwaqw73jqbmh4kwlriyd8xykh4j7z90z8xp9fm7lrys"))))
+         "17kgmvg6q32mqhx9g44hjvzv0si0mnpprga4z7na930g2zdd8846"))))
     (build-system trivial-build-system)
     (arguments
      `(#:modules ((guix build utils))
@@ -1011,30 +1002,19 @@ vector graphics.")
        (begin
          (use-modules (guix build utils))
 
-         (let ((tar      (string-append (assoc-ref %build-inputs "tar")
-                                        "/bin/tar"))
-               (PATH     (string-append (assoc-ref %build-inputs "gzip")
-                                        "/bin"))
-               (font-dir (string-append %output "/share/fonts/misc"))
-               (psf-dir (string-append %output "/share/kbd/consolefonts"))
-               (src-pcf-dir (string-append "tamzen-font-Tamzen-"
-                                            ,version "/pcf")))
-           (setenv "PATH" PATH)
-           (invoke tar "xvf" (assoc-ref %build-inputs "source"))
+         (let* ((out      (assoc-ref %outputs "out"))
+                (font-dir (string-append out "/share/fonts/misc"))
+                (psf-dir  (string-append out "/share/kbd/consolefonts")))
+           (chdir (assoc-ref %build-inputs "source"))
            (mkdir-p font-dir)
            (mkdir-p psf-dir)
-           (chdir src-pcf-dir)
            (for-each (lambda (pcf)
                        (install-file pcf font-dir))
-                     (find-files "." "\\.pcf$"))
-           (chdir "../psf")
+                     (find-files "pcf" "\\.pcf$"))
            (for-each (lambda (psf)
                        (install-file psf psf-dir))
-                     (find-files "." "\\.psf$"))
+                     (find-files "psf" "\\.psf$"))
            #t))))
-    (native-inputs
-     `(("tar" ,tar)
-       ("gzip" ,gzip)))
     (home-page "https://github.com/sunaku/tamzen-font")
     (synopsis "Monospaced bitmap font for console and X11")
     (description
@@ -1106,15 +1086,15 @@ typeface, by mimicking Comic Sans while fixing its most obvious shortcomings.")
 (define-public font-iosevka
   (package
     (name "font-iosevka")
-    (version "1.12.5")
-    (source (origin
-              (method url-fetch/zipbomb)
-              (uri (string-append
-                    "https://github.com/be5invis/Iosevka/releases/download/v"
-                    version "/iosevka-pack-" version ".zip"))
-              (sha256
-               (base32
-                "0s3g6mk0ngwsrw9h9dqinb50cd9i8zhqdcmmh93fhyf4d87yfwyi"))))
+    (version "2.2.0")
+    (source
+     (origin
+       (method url-fetch/zipbomb)
+       (uri (string-append "https://github.com/be5invis/Iosevka"
+                           "/releases/download/v" version
+                           "/ttc-iosevka-" version ".zip"))
+       (sha256
+        (base32 "14jfv6pkh1w44m89z2fn44kgmmqaf0057lk71advwfbm3q313y0x"))))
     (build-system font-build-system)
     (home-page "https://be5invis.github.io/Iosevka/")
     (synopsis "Coders' typeface, built from code")
@@ -1125,6 +1105,20 @@ programming.  Iosevka is completely generated from its source code.")
     (license (list license:silofl1.1 ; build artifacts (i.e. the fonts)
                    license:bsd-3)))) ; supporting code
 
+(define-public font-iosevka-slab
+  (package
+    (inherit font-iosevka)
+    (name "font-iosevka-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-slab-" version ".zip"))
+       (sha256
+        (base32 "186d0pl13znysll3hvzm1ixn7ad616g6dhla55sbh6ki2j04b8ml"))))))
+
 (define-public font-go
   (let ((commit "f03a046406d4d7fbfd4ed29f554da8f6114049fc")
         (revision "1"))
@@ -1162,14 +1156,14 @@ monospace, slab-serif fonts.")
     (name "font-google-material-design-icons")
     (version "3.0.1")
     (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "https://github.com/google/material-design-icons/archive/"
-                    version ".tar.gz"))
+              (method git-fetch)
+              (uri (git-reference
+                     (url "https://github.com/google/material-design-icons.git")
+                     (commit version)))
+              (file-name (git-file-name name version))
               (sha256
                (base32
-                "018i3za9r6kf6svci33z09lc5pr5yz4164m8gzzwjzzqcrng0p5j"))
-              (file-name (string-append name "-" version ".tar.gz"))))
+                "17q5brcqyyc8gbjdgpv38p89s60cwxjlwy2ljnrvas5cj0s62np0"))))
     (build-system font-build-system)
     (home-page "http://google.github.io/material-design-icons")
     (synopsis "Icon font of Google Material Design icons")
@@ -1188,13 +1182,14 @@ resolutions.")
     (version "20160623")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/antijingoist/open-dyslexic/"
-                           "archive/" version "-Stable.tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+              (url "https://github.com/antijingoist/open-dyslexic.git")
+              (commit (string-append version "-Stable"))))
+       (file-name (git-file-name name version))
        (sha256
         (base32
-         "0al0j9kb32kfavcpq1kigsd36yzvf5yhzqhds0jkh7ngbxyxwkx4"))))
+         "0nr7s92nk1kbr459154idnib977ixc70z6g9mbra3lp73nyrmyvz"))))
     (build-system font-build-system)
     (home-page "https://opendyslexic.org")
     (synopsis "Font for dyslexics and high readability")
@@ -1402,3 +1397,30 @@ files (TTF).")
 formatting.")
     (home-page "https://madmalik.github.io/mononoki/")
     (license license:silofl1.1)))
+
+(define-public font-public-sans
+  (package
+    (name "font-public-sans")
+    (version "1.0.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/uswds/public-sans.git")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "12ccj7ph3pg962d52d3slbvd44gwfm6bb2846dxyf1xc5h2iwhdv"))
+              (modules '((guix build utils)))
+              (snippet
+               '(begin
+                  ;; remove versions of predecessor font
+                  (delete-file-recursively "fonts/_archive")
+                  #t))))
+    (build-system font-build-system)
+    (home-page "https://public-sans.digital.gov/")
+    (synopsis "Neutral typeface for interfaces, text, and headings")
+    (description
+     "Public Sans is a strong, neutral, sans-serif typeface for text or
+display based on Libre Franklin.")
+    (license license:silofl1.1)))
diff --git a/gnu/packages/fpga.scm b/gnu/packages/fpga.scm
index 24a1219ce5..83854ef9c6 100644
--- a/gnu/packages/fpga.scm
+++ b/gnu/packages/fpga.scm
@@ -301,14 +301,14 @@ Includes the actual FTDI connector.")
 (define-public gtkwave
   (package
     (name "gtkwave")
-    (version "3.3.99")
+    (version "3.3.100")
     (source (origin
               (method url-fetch)
               (uri (string-append "http://gtkwave.sourceforge.net/"
-                                  name "-" version ".tar.gz"))
+                                  "gtkwave-" version ".tar.gz"))
               (sha256
                (base32
-                "0lc4y2vizrbxldjk5yw2i4y7pyprjdjqx3iafzjfnin694zp2630"))))
+                "1z60i5nh8dz8j9ii63fwaw7k0p3x0scp91478cxmdv4xhp4njlxa"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("gperf" ,gperf)
diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm
index 0c27cd69a4..fa8bb3cad1 100644
--- a/gnu/packages/freedesktop.scm
+++ b/gnu/packages/freedesktop.scm
@@ -2,7 +2,7 @@
 ;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com>
 ;;; Copyright © 2015, 2017 Andy Wingo <wingo@pobox.com>
-;;; Copyright © 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2015, 2016, 2017, 2019 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2015, 2017, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2015 David Hashe <david.hashe@dhashe.com>
 ;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
@@ -54,18 +54,20 @@
   #:use-module (gnu packages docbook)
   #:use-module (gnu packages documentation)
   #:use-module (gnu packages gettext)
+  #:use-module (gnu packages ghostscript)
   #:use-module (gnu packages gl)
   #:use-module (gnu packages glib)                ;intltool
   #:use-module (gnu packages gnome)
-  #:use-module (gnu packages gnuzilla)
   #:use-module (gnu packages gperf)
   #:use-module (gnu packages graphviz)
   #:use-module (gnu packages gtk)
+  #:use-module (gnu packages image)
   #:use-module (gnu packages libffi)
   #:use-module (gnu packages libunwind)
   #:use-module (gnu packages libusb)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages m4)
+  #:use-module (gnu packages nss)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages perl-check)
   #:use-module (gnu packages pkg-config)
@@ -74,6 +76,7 @@
   #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages sqlite)
   #:use-module (gnu packages valgrind)
+  #:use-module (gnu packages video)
   #:use-module (gnu packages w3m)
   #:use-module (gnu packages web)
   #:use-module (gnu packages xdisorg)
@@ -149,31 +152,30 @@ freedesktop.org project.")
 (define-public libinput
   (package
     (name "libinput")
-    (version "1.12.6")
+    (version "1.13.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://freedesktop.org/software/libinput/"
                                   "libinput-" version ".tar.xz"))
               (sha256
                (base32
-                "0pgla0mc6mvyr1ljy10mcqvfz8i5z6yp7dbx2bcd70y67wx05d0j"))))
+                "0vb11fzd06xbagrnha2bbzmlfg04bbgb5w5rjrxrrz686mfwj9zb"))))
     (build-system meson-build-system)
     (arguments
      `(#:configure-flags '("-Ddocumentation=false")))
     (native-inputs
      `(("check" ,check)
-       ("pkg-config" ,pkg-config)
-       ("valgrind" ,valgrind)))
-    (propagated-inputs
-     `(;; In Requires.private of libinput.pc.
-       ("libevdev" ,libevdev)
-       ("libudev" ,eudev)
-       ("libwacom" ,libwacom)
-       ("mtdev" ,mtdev)))
+       ("pkg-config" ,pkg-config)))
     (inputs
      `(("cairo" ,cairo)
        ("glib" ,glib)
-       ("gtk+" ,gtk+)))
+       ("gtk+" ,gtk+)
+       ("libevdev" ,libevdev)
+       ("libwacom" ,libwacom)
+       ("mtdev" ,mtdev)))
+    (propagated-inputs
+     `(;; libinput.h requires <libudev.h>, so propagate it.
+       ("udev" ,eudev)))
     (home-page "https://www.freedesktop.org/wiki/Software/libinput/")
     (synopsis "Input devices handling library")
     (description
@@ -184,9 +186,9 @@ other applications that need to directly deal with input devices.")
 (define-public libinput-minimal
   (package (inherit libinput)
     (name "libinput-minimal")
-    (inputs '())
-    (propagated-inputs
-     (alist-delete "libwacom" (package-propagated-inputs libinput)))
+    (inputs
+     (fold alist-delete (package-inputs libinput)
+           '("cairo" "glib" "gtk+" "libwacom")))
     (arguments
      (substitute-keyword-arguments (package-arguments libinput)
       ((#:configure-flags flags ''())
@@ -230,7 +232,7 @@ the freedesktop.org XDG Base Directory specification.")
 (define-public elogind
   (package
     (name "elogind")
-    (version "241.1")
+    (version "241.3")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -239,7 +241,7 @@ the freedesktop.org XDG Base Directory specification.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0a4irq4ycps3xcizjjr0gz3j46dyqvcwa4ncinpqpqlasi8l18nk"))))
+                "0jpb55prqq5cm3w2gy9766cbaqknjvbrbniyshb8bz1q31vf4jlq"))))
     (build-system meson-build-system)
     (arguments
      `(#:configure-flags
@@ -307,6 +309,152 @@ the org.freedesktop.login1 interface over the system bus, allowing other parts
 of a the system to know what users are logged in, and where.")
     (license license:lgpl2.1+)))
 
+(define-public localed
+  ;; XXX: This package is extracted from systemd but we retain so little of it
+  ;; that it would make more sense to maintain a fork of the bits we need.
+  (package
+    (name "localed")
+    (version "241")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/systemd/systemd")
+                    (commit (string-append "v" version))))
+              (sha256
+               (base32
+                "0sy91flzbhpq58k7v0294pa2gxpr0bk27rcnxlbhk2fi6nc51d28"))
+              (file-name (git-file-name name version))
+              (modules '((guix build utils)))
+              (snippet
+               '(begin
+                  ;; Connect to the right location for our D-Bus daemon.
+                  (substitute* '("src/basic/def.h"
+                                 "src/libsystemd/sd-bus/sd-bus.c"
+                                 "src/stdio-bridge/stdio-bridge.c")
+                    (("/run/dbus/system_bus_socket")
+                     "/var/run/dbus/system_bus_socket"))
+
+                  ;; Don't insist on having systemd as PID 1 (otherwise
+                  ;; 'localectl' would exit without doing anything.)
+                  (substitute* "src/shared/bus-util.c"
+                    (("sd_booted\\(\\)")
+                     "(1)"))
+                  #t))
+              (patches (search-patches "localed-xorg-keyboard.patch"))))
+    (build-system meson-build-system)
+    (arguments
+     ;; Try to build as little as possible (list of components taken from the
+     ;; top-level 'meson.build' file.)
+     (let ((components '("utmp"
+                         "hibernate"
+                         "environment-d"
+                         "binfmt"
+                         "coredump"
+                         "resolve"
+                         "logind"
+                         "hostnamed"
+                         "localed"
+                         "machined"
+                         "portabled"
+                         "networkd"
+                         "timedated"
+                         "timesyncd"
+                         "firstboot"
+                         "randomseed"
+                         "backlight"
+                         "vconsole"
+                         "quotacheck"
+                         "sysusers"
+                         "tmpfiles"
+                         "hwdb"
+                         "rfkill"
+                         "ldconfig"
+                         "efi"
+                         "tpm"
+                         "ima"
+                         "smack"
+                         "gshadow"
+                         "idn"
+                         "nss-myhostname"
+                         "nss-systemd")))
+       `(#:configure-flags ',(map (lambda (component)
+                                    (string-append "-D" component "=false"))
+                                  (delete "localed" components))
+
+         ;; It doesn't make sense to test all of systemd.
+         #:tests? #f
+
+         #:phases (modify-phases %standard-phases
+                    (add-after 'unpack 'set-xkeyboard-config-file-name
+                      (lambda* (#:key inputs #:allow-other-keys)
+                        ;; Set the file name to xkeyboard-config and kbd.
+                        ;; This is used by 'localectl list-x11-keymap-layouts'
+                        ;; and similar functions.
+                        (let ((xkb (assoc-ref inputs "xkeyboard-config"))
+                              (kbd (assoc-ref inputs "kbd")))
+                          (substitute* "src/locale/localectl.c"
+                            (("/usr/share/X11/xkb/rules")
+                             (string-append xkb "/share/X11/xkb/rules")))
+                          (substitute* "src/basic/def.h"
+                            (("/usr/share/keymaps")
+                             (string-append kbd "/share/keymaps")))
+                          #t)))
+                    (replace 'install
+                      (lambda* (#:key outputs #:allow-other-keys)
+                        ;; Install 'localed', the D-Bus and polkit files, and
+                        ;; 'localectl'.
+                        (let* ((out (assoc-ref outputs "out"))
+                               (libexec (string-append out "/libexec/localed"))
+                               (bin     (string-append out "/bin"))
+                               (lib     (string-append out "/lib"))
+                               (dbus    (string-append out
+                                                       "/share/dbus-1/system-services"))
+                               (conf    (string-append out
+                                                       "/etc/dbus-1/system.d/"))
+                               (polkit  (string-append out
+                                                       "/share/polkit-1/actions"))
+                               (data    (string-append out "/share/systemd")))
+                          (define (source-file regexp)
+                            (car (find-files ".." regexp)))
+
+                          (mkdir-p libexec)
+                          (copy-file "systemd-localed"
+                                     (string-append libexec "/localed"))
+                          (install-file "localectl" bin)
+
+                          (let ((service-file (source-file
+                                               "\\.locale1\\.service$")))
+                            (substitute* service-file
+                              (("^Exec=.*$")
+                               (string-append "Exec=" libexec "/localed\n")))
+                            (install-file service-file dbus))
+                          (install-file (source-file "\\.locale1\\.policy$")
+                                        polkit)
+                          (install-file (source-file "\\.locale1\\.conf$")
+                                        conf)
+                          (for-each (lambda (file)
+                                      (install-file file lib))
+                                    (find-files "src/shared"
+                                                "libsystemd-shared.*\\.so"))
+
+                          (for-each (lambda (map)
+                                      (install-file map data))
+                                    (find-files ".." "^(kbd-model-map|language-fallback-map)$"))
+                          #t)))))))
+    (native-inputs (package-native-inputs elogind))
+    (inputs `(("libmount" ,util-linux)
+              ("xkeyboard-config" ,xkeyboard-config)
+              ("kbd" ,kbd)
+              ,@(package-inputs elogind)))
+    (home-page "https://www.freedesktop.org/wiki/Software/systemd/localed/")
+    (synopsis "Control the system locale and keyboard layout")
+    (description
+     "Localed is a tiny daemon that can be used to control the system locale
+and keyboard mapping from user programs.  It is used among other things by the
+GNOME Shell.  The @command{localectl} command-line tool allows you to interact
+with localed.  This package is extracted from the broader systemd package.")
+    (license license:lgpl2.1+)))
+
 (define-public packagekit
   (package
     (name "packagekit")
@@ -483,7 +631,7 @@ applications, X servers (rootless or fullscreen) or other display servers.")
 (define-public weston
   (package
     (name "weston")
-    (version "5.0.0")
+    (version "6.0.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -491,30 +639,40 @@ applications, X servers (rootless or fullscreen) or other display servers.")
                     "weston-" version ".tar.xz"))
               (sha256
                (base32
-                "1bsc9ry566mpk6fdwkqpvwq2j7m79d9cvh7d3lgf6igsphik98hm"))))
-    (build-system gnu-build-system)
+                "04p6hal5kalmdp5dxwh2h5qhkkb4dvbsk7l091zvvcq70slj6qsl"))))
+    (build-system meson-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)
        ("xorg-server" ,xorg-server)))
     (inputs
      `(("cairo" ,cairo-xcb)
+       ("colord" ,colord)
        ("dbus" ,dbus)
        ("elogind" ,elogind)
+       ("lcms" ,lcms)
+       ("libevdev" ,libevdev)
        ("libinput" ,libinput-minimal)
+       ("libjpeg" ,libjpeg)
        ("libunwind" ,libunwind)
+       ("libva" ,libva)
+       ("libwebp" ,libwebp)
        ("libxcursor" ,libxcursor)
        ("libxkbcommon" ,libxkbcommon)
+       ("libxml2" ,libxml2)
        ("mesa" ,mesa)
        ("mtdev" ,mtdev)
        ("linux-pam" ,linux-pam)
+       ("pango" ,pango)
        ("wayland" ,wayland)
        ("wayland-protocols" ,wayland-protocols)
        ("xorg-server-xwayland" ,xorg-server-xwayland)))
     (arguments
      `(#:configure-flags
-       (list "--disable-setuid-install"
-             "--enable-systemd-login"
-             (string-append "--with-xserver-path="
+       (list "-Dbackend-rdp=false" ; TODO: Enable.
+             "-Dremoting=false" ; TODO: Enable.
+             "-Dsimple-dmabuf-drm=auto"
+             "-Dsystemd=false"
+             (string-append "-Dxwayland-path="
                             (assoc-ref %build-inputs "xorg-server-xwayland")
                             "/bin/Xwayland"))
        #:parallel-tests? #f ; Parallel tests cause failures.
@@ -523,8 +681,8 @@ applications, X servers (rootless or fullscreen) or other display servers.")
          (add-before 'configure 'use-elogind
            (lambda _
              ;; Use elogind instead of systemd
-             (substitute* "configure"
-               (("libsystemd-login >= 198") "libelogind"))
+             (substitute* "libweston/meson.build"
+               (("libsystemd-login") "libelogind"))
              (substitute* '("libweston/launcher-logind.c"
                             "libweston/weston-launch.c")
                (("#include <systemd/sd-login.h>")
@@ -532,7 +690,8 @@ applications, X servers (rootless or fullscreen) or other display servers.")
              #t))
          (add-after 'configure 'patch-confdefs.h
            (lambda _
-             (system "echo \"#define HAVE_SYSTEMD_LOGIN_209 1\" >> confdefs.h")))
+             (system "echo \"#define HAVE_SYSTEMD_LOGIN_209 1\" >> confdefs.h")
+             #t))
          (add-before 'check 'setup
            (lambda _
              (setenv "HOME" (getcwd))
@@ -761,7 +920,7 @@ interfaces, based on the useradd, usermod and userdel commands.")
 (define-public libmbim
   (package
     (name "libmbim")
-    (version "1.18.0")
+    (version "1.18.2")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -769,7 +928,7 @@ interfaces, based on the useradd, usermod and userdel commands.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "10mjjy860aakfd3h1yaj9l1jw816amrpwmyqlx37j21xv0l03x3c"))))
+                "0s4jsfsydp2vykv7lnimalp9i680aas1qcx7zdpjiic64b5g48vp"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("glib:bin" ,glib "bin") ; for glib-mkenums
@@ -792,7 +951,7 @@ which speak the Mobile Interface Broadband Model (MBIM) protocol.")
 (define-public libqmi
   (package
     (name "libqmi")
-    (version "1.22.2")
+    (version "1.22.4")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -800,7 +959,7 @@ which speak the Mobile Interface Broadband Model (MBIM) protocol.")
                     "libqmi-" version ".tar.xz"))
               (sha256
                (base32
-                "09w20dsgr16bgbqw5ds7r6j2s6ihwyalh9zpbjhcn7cvm0afbwgi"))))
+                "1wgrrb9vb3myl8xgck8ik86876ycbg8crylybs3ssi21vrxqwnsc"))))
     (build-system gnu-build-system)
     (inputs
      `(("libgudev" ,libgudev)))
diff --git a/gnu/packages/ftp.scm b/gnu/packages/ftp.scm
index 3651b92e5d..96953d6fd5 100644
--- a/gnu/packages/ftp.scm
+++ b/gnu/packages/ftp.scm
@@ -134,9 +134,9 @@ reliability in mind.")
     (synopsis "Command-line File Transfer Protocol (FTP) client")
     (description
      "NcFTP Client (or just NcFTP) is a set of command-line programs to access
-File Transfer Protocol (FTP) servers.  This includes 'ncftp', an interactive
-FTP browser, as well as non-interactive commands such as 'ncftpput' and
-'ncftpget'.")
+File Transfer Protocol (FTP) servers.  This includes @code{ncftp}, an interactive
+FTP browser, as well as non-interactive commands such as @code{ncftpput} and
+@code{ncftpget}.")
     (license clarified-artistic)))
 
 
@@ -209,14 +209,14 @@ output.
 (define-public filezilla
   (package
     (name "filezilla")
-    (version "3.41.1")
+    (version "3.41.2")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://download.filezilla-project.org/client/"
                            "FileZilla_" version "_src.tar.bz2"))
        (sha256
-        (base32 "0mlv21054fk11rspbnig0q4gph1iqsqm4rpya3wl5is50p33vg5w"))))
+        (base32 "05zhvzvzkbns0cdxmlswvasfa6031y22dhfj9y5p85gi654f4fy2"))))
     (build-system gnu-build-system)
     (arguments
       ;; Don't let filezilla phone home to check for updates.
diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm
index 25935aafcc..5dd22215b8 100644
--- a/gnu/packages/game-development.scm
+++ b/gnu/packages/game-development.scm
@@ -6,14 +6,15 @@
 ;;; Copyright © 2015, 2016, 2017 David Thompson <davet@gnu.org>
 ;;; Copyright © 2016, 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016, 2017 Kei Kebreau <kkebreau@posteo.net>
-;;; Copyright © 2016, 2018 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2016, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2016, 2017, 2018 Julian Graham <joolean@gmail.com>
 ;;; Copyright © 2017, 2018, 2019 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>
-;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com>
+;;; Copyright © 2017, 2019 Rutger Helling <rhelling@mykolab.com>
 ;;; Copyright © 2018 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -35,6 +36,7 @@
   #: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 gnu)
@@ -431,7 +433,7 @@ support.")
 (define-public tiled
   (package
     (name "tiled")
-    (version "1.2.2")
+    (version "1.2.3")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -440,7 +442,7 @@ support.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0ay4x1b6h5xfax1cqry2fklcmqi6a16klgmci4gkhga7as66lnnn"))))
+                "1nfyigfkl10n9r82p1qxhpr09jn2kwalh9n5r209bcaj8dxspph8"))))
     (build-system gnu-build-system)
     (inputs
      `(("qtbase" ,qtbase)
@@ -567,7 +569,7 @@ sounds from presets such as \"explosion\" or \"powerup\".")
 (define-public physfs
   (package
     (name "physfs")
-    (version "3.0.1")
+    (version "3.0.2")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -576,7 +578,7 @@ sounds from presets such as \"explosion\" or \"powerup\".")
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "1wgj2zqpnfbnyyi1i7bq5pshcc9n5cvwlpzp8im67nb8662ryyxp"))))
+                "0qzqz4r88gvd8m7sh2z5hvqcr0jfr4wb2f77c19xycyn0rigfk9h"))))
     (build-system cmake-build-system)
     (arguments
      '(#:tests? #f                      ; no check target
@@ -1072,16 +1074,16 @@ of use.")
 (define-public openmw
   (package
     (name "openmw")
-    (version "0.44.0")
+    (version "0.45.0")
     (source
      (origin
        (method url-fetch)
        (uri
         (string-append "https://github.com/OpenMW/openmw/archive/"
-                       name "-" version ".tar.gz"))
+                       "openmw-" version ".tar.gz"))
        (sha256
         (base32
-         "03fgm2f2r7y0aqlgp038pdlnllgvm3jimrp968p4nhz1sffvjzcy"))))
+         "0r0wgvv1faan8z8lbply8lks4hcnppifjrcz04l5zvq6yiqzjg5n"))))
     (build-system cmake-build-system)
     (arguments
      `(#:tests? #f                      ; No test target
@@ -1329,3 +1331,106 @@ that parenthetically inclined game developers need to make 2D (and eventually
 @item REPL-driven development model
 @end enumerate\n")
     (license license:gpl3+)))
+
+(define-public bennu-game-development
+  (package
+    (name "bennu-game-development")
+    (version "348")
+    (source (origin
+              (method svn-fetch)
+              (uri (svn-reference
+                    (url "http://svn.code.sf.net/p/bennugd/code")
+                    (revision (string->number version))))
+              (file-name (string-append name "-" version))
+              (sha256
+               (base32
+                "0wpzsbh4zi3931493dnyl5ffmh1b7fj2sx3mzrq304z9zs4d6lqq"))
+              (modules '((guix build utils)))
+              (snippet
+               '(begin
+                  (delete-file-recursively "3rdparty") #t))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-configure-to-use-openssl
+           (lambda* (#:key outputs #:allow-other-keys)
+             (chdir "core")
+             (delete-file "configure")
+             (substitute* "configure.in"
+               (("i\\*86\\)")
+                "*)
+                COMMON_CFLAGS=\"$COMMON_CFLAGS -DUSE_OPENSSL\"
+                COMMON_LDFLAGS=\"$COMMON_LDFLAGS\"
+                LIBSSL=\"crypto\"
+                USE_OPENSSL=yes
+                ;;
+
+            i*86)"))
+               #t)))))
+    (inputs `(("openssl" ,openssl)
+              ("zlib" ,zlib)))
+    (native-inputs `(("pkg-config" ,pkg-config)
+                     ("autoconf" ,autoconf)
+                     ("automake" ,automake)
+                     ("libtool" ,libtool)))
+    (synopsis "Programming language to create games")
+    (description "Bennu Game Development, also known as bennudg, is a
+programming language tailored at game development.  It is the successor of
+Fenix.")
+    (home-page "https://sourceforge.net/projects/bennugd/")
+    (license license:zlib)))
+
+(define-public bennu-game-development-modules
+  (package
+    (inherit bennu-game-development)
+    (name "bennu-game-development-modules")
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-conflicting-definitions
+           (lambda _
+             (with-fluids ((%default-port-encoding #f))
+               (substitute* "core/include/fmath.h"
+                 (("extern fixed fmul\\( int x, int y \\);") "")
+                 (("extern fixed fdiv\\( int x, int y \\);") "")))
+             (chdir "modules"))))))
+    (inputs `(("zlib" ,zlib)
+              ("libpng" ,libpng)
+              ("openssl" ,openssl)
+              ("sdl-mixer" ,sdl-mixer)
+              ("bennu-game-development" ,bennu-game-development)))
+    (synopsis "Modules for the Bennu Game Development programming language")
+    (description "This package contains a collection of modules for the Bennu
+Game Development programming language, from CD handling through SDL to
+joystick support.")))
+
+(define-public plib
+  (package
+    (name "plib")
+    (version "1.8.5")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "http://plib.sourceforge.net/dist/"
+                                  "plib-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0cha71mflpa10vh2l7ipyqk67dq2y0k5xbafwdks03fwdyzj4ns8"))))
+    (build-system gnu-build-system)
+    (inputs
+     `(("mesa" ,mesa)
+       ("libxi" ,libxi)
+       ("libxmu" ,libxmu)))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (home-page "http://plib.sourceforge.net/")
+    (synopsis "Suite of portable game libraries")
+    (description "PLIB is a set of libraries that will permit programmers to
+write games and other realtime interactive applications that are 100% portable
+across a wide range of hardware and operating systems.  PLIB includes sound
+effects, music, a complete 3D engine, font rendering, a simple Windowing
+library, a game scripting language, a GUI, networking, 3D math library and a
+collection of handy utility functions.  All are 100% portable across nearly
+all modern computing platforms.  Each library component is fairly independent
+of the others")
+    (license license:lgpl2.0+)))
diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index eac0ae376f..6875acdcac 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -5,9 +5,9 @@
 ;;; Copyright © 2014, 2015, 2016, 2017, 2018 Eric Bavier <bavier@member.fsf.org>
 ;;; Copyright © 2014 Cyrill Schenkel <cyrill.schenkel@gmail.com>
 ;;; Copyright © 2014 Sylvain Beucler <beuc@beuc.net>
-;;; Copyright © 2014, 2015, 2018 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2014, 2015, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2014, 2015, 2016 Sou Bunnbu <iyzsong@gmail.com>
-;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
+;;; Copyright © 2014, 2015, 2019 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2015, 2016 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2015 David Hashe <david.hashe@dhashe.com>
 ;;; Copyright © 2015, 2017, 2018 Christopher Lemmer Webber <cwebber@dustycloud.org>
@@ -17,7 +17,7 @@
 ;;; Copyright © 2016, 2017 Rodger Fox <thylakoid@openmailbox.org>
 ;;; Copyright © 2016, 2017, 2018 ng0 <ng0@n0.is>
 ;;; Copyright © 2016 Albin Söderqvist <albin@fripost.org>
-;;; Copyright © 2016, 2017, 2018 Kei Kebreau <kkebreau@posteo.net>
+;;; Copyright © 2016, 2017, 2018, 2019 Kei Kebreau <kkebreau@posteo.net>
 ;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
 ;;; Copyright © 2016, 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
@@ -30,7 +30,7 @@
 ;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2017, 2018 Rutger Helling <rhelling@mykolab.com>
 ;;; Copyright © 2017 Roel Janssen <roel@gnu.org>
-;;; Copyright © 2017, 2018 Nicolas Goaziou <mail@nicolasgoaziou.fr>
+;;; Copyright © 2017, 2018, 2019 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>
@@ -38,6 +38,7 @@
 ;;; Copyright © 2018 Alex Vong <alexvong1995@gmail.com>
 ;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz>
 ;;; Copyright © 2019 Oleg Pykhalov <go.wigust@gmail.com>
+;;; Copyright © 2019 Pierre Langlois <pierre.langlois@gmx.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -104,6 +105,8 @@
   #:use-module (gnu packages gstreamer)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages guile)
+  #:use-module (gnu packages haskell)
+  #:use-module (gnu packages haskell-crypto)
   #:use-module (gnu packages icu4c)
   #:use-module (gnu packages image)
   #:use-module (gnu packages imagemagick)
@@ -112,8 +115,8 @@
   #:use-module (gnu packages libedit)
   #:use-module (gnu packages libunwind)
   #:use-module (gnu packages linux)
+  #:use-module (gnu packages llvm)
   #:use-module (gnu packages lua)
-  #:use-module (gnu packages haskell)
   #:use-module (gnu packages man)
   #:use-module (gnu packages maths)
   #:use-module (gnu packages mp3)
@@ -156,7 +159,6 @@
   #: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 haskell)
   #:use-module (guix build-system meson)
   #:use-module (guix build-system scons)
   #:use-module (guix build-system python)
@@ -165,14 +167,138 @@
   #:use-module ((srfi srfi-1) #:hide (zip))
   #:use-module (srfi srfi-26))
 
+;; Data package for adanaxisgpl.
+(define adanaxis-mush
+  (let ((version "1.1.0"))
+    (origin
+      (method url-fetch)
+      (uri (string-append "http://www.mushware.com/files/adanaxis-mush-"
+                          version ".tar.gz"))
+      (sha256
+       (base32 "0mk9ibis5nkdcalcg1lkgnsdxxbw4g5w2i3icjzy667hqirsng03")))))
+
+(define-public adanaxisgpl
+  (package
+    (name "adanaxisgpl")
+    (version "1.2.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "http://www.mushware.com/files/adanaxisgpl-"
+                           version ".tar.gz"))
+       (sha256
+        (base32 "0jkn637jaabvlhd6hpvzb57vvjph94l6fbf7qxbjlw9zpr19dw1f"))
+       (modules '((guix build utils)))
+       (snippet
+        '(begin
+           ;; Necessary for building with gcc >=4.7.
+           (substitute* "src/Mushcore/MushcoreSingleton.h"
+             (("SingletonPtrSet\\(new SingletonType\\);")
+              "MushcoreSingleton::SingletonPtrSet(new SingletonType);"))
+           ;; Avoid an "invalid conversion from const char* to char*" error.
+           (substitute* "src/Platform/X11/PlatformMiscUtils.cpp"
+             (("char \\*end, \\*result;")
+              (string-append "const char *end;"
+                             "\n"
+                             "char *result;")))
+           #t))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f ; no check target
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'install 'install-data
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let ((data (assoc-ref inputs "adanaxis-mush"))
+                   (share (string-append (assoc-ref outputs "out")
+                                         "/share/" ,name "-" ,version)))
+               (mkdir-p share)
+               (invoke "tar" "xvf" data "-C" share)))))))
+    (native-inputs
+     `(("adanaxis-mush" ,adanaxis-mush))) ; game data
+    (inputs
+     `(("expat" ,expat)
+       ("freeglut" ,freeglut)
+       ("glu" ,glu)
+       ("libjpeg" ,libjpeg)
+       ("libogg" ,libogg)
+       ("libtiff" ,libtiff)
+       ("libvorbis" ,libvorbis)
+       ("libx11" ,libx11)
+       ("libxext" ,libxext)
+       ("pcre" ,pcre)
+       ("sdl" ,sdl)
+       ("sdl-mixer" ,sdl-mixer)))
+    (home-page "https://www.mushware.com")
+    (synopsis "Action game in four spatial dimensions")
+    (description
+     "Adanaxis is a fast-moving first person shooter set in deep space, where
+the fundamentals of space itself are changed.  By adding another dimension to
+space this game provides an environment with movement in four directions and
+six planes of rotation.  Initially the game explains the 4D control system via
+a graphical sequence, before moving on to 30 levels of gameplay with numerous
+enemy, ally, weapon and mission types.  Features include simulated 4D texturing,
+mouse and joystick control, and original music.")
+    (license license:gpl2)))
+
+(define-public alex4
+  (package
+    (name "alex4")
+    (version "1.2-alpha")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://github.com/carstene1ns/alex4/archive/"
+                           version ".tar.gz"))
+       (sha256
+        (base32 "0jj1g3v1a6lyfwp5g2ly0n9z65ryqck8jxvzr01kaqjj3lsfkrhg"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f ; no check target
+       #:make-flags
+       (list "-Csrc"
+             "CC=gcc"
+             "CFLAGS=-D_FILE_OFFSET_BITS=64"
+             (string-append "DATADIR=" (assoc-ref %outputs "out")
+                            "/share/" ,name)
+             (string-append "PREFIX=" (assoc-ref %outputs "out")))
+       #:phases
+       (modify-phases %standard-phases
+         (replace 'configure
+           (lambda _
+             (substitute* '("src/main.c"
+                            "src/shooter.c")
+               (("fcos") "fixcos")
+               (("fmul") "fixmul")
+               (("fsin") "fixsin"))
+             #t))
+         (add-after 'install 'install-data
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((share (string-append (assoc-ref outputs "out")
+                                         "/share/" ,name)))
+               (install-file "alex4.ini" share)
+               #t))))))
+    (inputs
+     `(("allegro" ,allegro-4)
+       ("dumb" ,dumb-allegro4)))
+    (home-page "http://allegator.sourceforge.net/")
+    (synopsis "Retro platform game")
+    (description
+     "Guide Alex the Allegator through the jungle in order to save his
+girlfriend Lola from evil humans who want to make a pair of shoes out of her.
+Plenty of classic platforming in four nice colors guaranteed!
+
+The game includes a built-in editor so you can design and share your own maps.")
+    (license license:gpl2+)))
+
 (define-public armagetronad
   (package
     (name "armagetronad")
     (version "0.2.8.3.4")
     (source (origin
               (method url-fetch)
-              (uri (string-append "mirror://sourceforge/" name "/stable/"
-                                  version "/" name "-" version ".src.tar.gz"))
+              (uri (string-append "mirror://sourceforge/armagetronad/stable/"
+                                  version "/armagetronad-" version ".src.tar.gz"))
               (sha256
                (base32
                 "1pgy0r80z702qdv94aw3ywdn4ynnr4cdi86ml558pljfc5ygasj4"))))
@@ -186,14 +312,17 @@
        ("libjpeg-turbo" ,libjpeg-turbo)))
     (home-page "http://www.armagetronad.org")
     (synopsis "Tron clone in 3D")
-    (description "Armagetron is a multiplayer game in 3d that attempts to
-emulate and expand on the lightcycle sequence from the movie Tron.  It's
-an old school arcade game slung into the 21st century.  Highlights include
-a customizable playing arena, HUD, unique graphics, and AI bots.  For the
-more advanced player there are new game modes and a wide variety of physics
-settings to tweak as well.")
+    (description "Armagetron Advanced is a multiplayer game in 3d that
+attempts to emulate and expand on the lightcycle sequence from the movie Tron.
+It's an old school arcade game slung into the 21st century.  Highlights
+include a customizable playing arena, HUD, unique graphics, and AI bots.  For
+the more advanced player there are new game modes and a wide variety of
+physics settings to tweak as well.")
     (license license:gpl2+)))
 
+(define-public armagetron-advanced
+  (deprecated-package "armagetron-advanced" armagetronad))
+
 (define-public bastet
   (package
     (name "bastet")
@@ -313,15 +442,19 @@ canyons and wait for the long I-shaped block to clear four rows at a time.")
       (home-page "http://en.cataclysmdda.com/")
       (synopsis "Survival horror roguelike video game")
       (description
-       "Cataclysm: Dark Days Ahead is a roguelike set in a post-apocalyptic
-world.  Struggle to survive in a harsh, persistent, procedurally generated
-world.  Scavenge the remnants of a dead civilization for food, equipment, or,
-if you are lucky, a vehicle with a full tank of gas to get you out of Dodge.
-Fight to defeat or escape from a wide variety of powerful monstrosities, from
-zombies to giant insects to killer robots and things far stranger and deadlier,
-and against the others like yourself, that want what you have.")
+       "Cataclysm: Dark Days Ahead (or \"DDA\" for short) is a roguelike set
+in a post-apocalyptic world.  Struggle to survive in a harsh, persistent,
+procedurally generated world.  Scavenge the remnants of a dead civilization
+for food, equipment, or, if you are lucky, a vehicle with a full tank of gas
+to get you out of Dodge.  Fight to defeat or escape from a wide variety of
+powerful monstrosities, from zombies to giant insects to killer robots and
+things far stranger and deadlier, and against the others like yourself, that
+want what you have.")
       (license license:cc-by-sa3.0))))
 
+(define-public cataclysm-dark-days-ahead
+  (deprecated-package "cataclysm-dark-days-ahead" cataclysm-dda))
+
 (define-public cowsay
   (package
     (name "cowsay")
@@ -330,7 +463,7 @@ and against the others like yourself, that want what you have.")
               (method url-fetch)
               (uri (string-append "https://github.com/tnalpgge/"
                                   "rank-amateur-cowsay/archive/"
-                                  name "-" version ".tar.gz"))
+                                  "cowsay-" version ".tar.gz"))
               (sha256
                (base32
                 "12w7apbf6a9qffk92r32b16w22na2fjcqbl32rn0n7zw5hrp3f6q"))))
@@ -363,80 +496,82 @@ tired of cows, a variety of other ASCII-art messengers are available.")
 
 (define-public freedoom
   (package
-   (name "freedoom")
-   (version "0.11.3")
-   (source (origin
-            (method url-fetch)
-            (uri (string-append "https://github.com/" name "/" name
-                                "/archive/v" version ".tar.gz"))
-            (file-name (string-append name "-" version ".tar.gz"))
-            (sha256
-             (base32
-              "1bjijdfqhpazyifx1qda7scj7dry1azhjrnl8h8zn2vqfgdmlh0q"))))
-   (build-system gnu-build-system)
-   (arguments
-    '(#:make-flags `(,(string-append "prefix=" (assoc-ref %outputs "out")))
-      #:parallel-build? #f
-      #:tests? #f ; no check target
-      #:phases
-      (modify-phases %standard-phases
-        (delete 'bootstrap)
-        (replace 'configure
-                 (lambda* (#:key inputs outputs #:allow-other-keys)
-                   (let* ((dejavu (assoc-ref inputs "font-dejavu"))
-                          (freedoom (assoc-ref outputs "out"))
-                          (wad-dir (string-append freedoom "/share/games/doom")))
-                     ;; Replace the font-searching function in a shell
-                     ;; script with a direct path to the required font.
-                     ;; This is necessary because ImageMagick can only find the
-                     ;; most basic fonts while in the build environment.
-                     (substitute* "graphics/titlepic/create_caption"
-                       (("font=\\$\\(find_font.*$")
-                        (string-append
-                         "font=" dejavu
-                         "/share/fonts/truetype/DejaVuSansCondensed-Bold.ttf\n")))
-                     ;; Make icon creation reproducible.
-                     (substitute* "dist/Makefile"
-                       (("freedm.png")
-                        "-define png:exclude-chunks=date freedm.png")
-                       (("freedoom1.png")
-                        "-define png:exclude-chunks=date freedoom1.png")
-                       (("freedoom2.png")
-                        "-define png:exclude-chunks=date freedoom2.png"))
-                     ;; Make sure that the install scripts know where to find
-                     ;; the appropriate WAD files.
-                     (substitute* "dist/freedoom"
-                       (("IWAD=freedm.wad")
-                        (string-append "IWAD=" wad-dir "/freedm.wad"))
-                       (("IWAD=freedoom1.wad")
-                        (string-append "IWAD=" wad-dir "/freedoom1.wad"))
-                       (("IWAD=freedoom2.wad")
-                        (string-append "IWAD=" wad-dir "/freedoom2.wad")))
-                     #t))))))
-   (native-inputs
-    `(("asciidoc" ,asciidoc)
-      ("deutex" ,deutex)
-      ("font-dejavu" ,font-dejavu)
-      ("imagemagick" ,imagemagick)
-      ("python" ,python-2)))
-   (inputs
-    `(("prboom-plus" ,prboom-plus)))
-   (home-page "https://freedoom.github.io/")
-   (synopsis "Free content game based on the Doom engine")
-   (native-search-paths
-    (list (search-path-specification
-           (variable "DOOMWADDIR")
-           (files '("share/games/doom")))
-          (search-path-specification
-           (variable "DOOMWADPATH")
-           (files '("share/games/doom")))))
-   (description
-    "The Freedoom project aims to create a complete free content first person
+    (name "freedoom")
+    (version "0.11.3")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/freedoom/freedoom.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0k4dlgr82qk6i7dchp3nybq6awlfag2ivy3zzl1v6vhcrnbvssgl"))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:make-flags
+       (list (string-append "prefix=" (assoc-ref %outputs "out")))
+       #:parallel-build? #f
+       #:tests? #f                      ; no check target
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'bootstrap)
+         (replace 'configure
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let* ((dejavu (assoc-ref inputs "font-dejavu"))
+                    (freedoom (assoc-ref outputs "out"))
+                    (wad-dir (string-append freedoom "/share/games/doom")))
+               ;; Replace the font-searching function in a shell
+               ;; script with a direct path to the required font.
+               ;; This is necessary because ImageMagick can only find the
+               ;; most basic fonts while in the build environment.
+               (substitute* "graphics/titlepic/create_caption"
+                 (("font=\\$\\(find_font.*$")
+                  (string-append
+                   "font=" dejavu
+                   "/share/fonts/truetype/DejaVuSansCondensed-Bold.ttf\n")))
+               ;; Make icon creation reproducible.
+               (substitute* "dist/Makefile"
+                 (("freedm.png")
+                  "-define png:exclude-chunks=date freedm.png")
+                 (("freedoom1.png")
+                  "-define png:exclude-chunks=date freedoom1.png")
+                 (("freedoom2.png")
+                  "-define png:exclude-chunks=date freedoom2.png"))
+               ;; Make sure that the install scripts know where to find
+               ;; the appropriate WAD files.
+               (substitute* "dist/freedoom"
+                 (("IWAD=freedm.wad")
+                  (string-append "IWAD=" wad-dir "/freedm.wad"))
+                 (("IWAD=freedoom1.wad")
+                  (string-append "IWAD=" wad-dir "/freedoom1.wad"))
+                 (("IWAD=freedoom2.wad")
+                  (string-append "IWAD=" wad-dir "/freedoom2.wad")))
+               #t))))))
+    (native-inputs
+     `(("asciidoc" ,asciidoc)
+       ("deutex" ,deutex)
+       ("font-dejavu" ,font-dejavu)
+       ("imagemagick" ,imagemagick)
+       ("python" ,python-2)))
+    (inputs
+     `(("prboom-plus" ,prboom-plus)))
+    (home-page "https://freedoom.github.io/")
+    (synopsis "Free content game based on the Doom engine")
+    (native-search-paths
+     (list (search-path-specification
+            (variable "DOOMWADDIR")
+            (files '("share/games/doom")))
+           (search-path-specification
+            (variable "DOOMWADPATH")
+            (files '("share/games/doom")))))
+    (description
+     "The Freedoom project aims to create a complete free content first person
 shooter game.  Freedoom by itself is just the raw material for a game: it must
 be paired with a compatible game engine (such as @code{prboom-plus}) to be
 played.  Freedoom complements the Doom engine with free levels, artwork, sound
 effects and music to make a completely free game.")
-   (license license:bsd-3)))
+    (license license:bsd-3)))
 
 (define-public freedroidrpg
   (package
@@ -680,13 +815,16 @@ destroying an ancient book using a special wand.")
                      ("pkg-config" ,pkg-config)))
     (home-page "http://gnubg.org")
     (synopsis "Backgammon game")
-    (description "The GNU backgammon application can be used for playing,
-analyzing and teaching the game.  It has an advanced evaluation engine based on
-artificial neural networks suitable for both beginners and advanced players.  In
-addition to a command-line interface, it also features an attractive, 3D
-representation of the playing board.")
+    (description "The GNU backgammon application (also known as \"gnubg\") can
+be used for playing, analyzing and teaching the game.  It has an advanced
+evaluation engine based on artificial neural networks suitable for both
+beginners and advanced players.  In addition to a command-line interface, it
+also features an attractive, 3D representation of the playing board.")
     (license license:gpl3+)))
 
+(define-public gnubackgammon
+  (deprecated-package "gnubackgammon" gnubg))
+
 (define-public gnubik
   (package
     (name "gnubik")
@@ -746,7 +884,7 @@ Chess).  It is similar to standard chess but this variant is far more complicate
      (origin
        (method url-fetch)
        (uri (string-append "http://prdownloads.sourceforge.net/lgames/"
-                           name "-" version ".tar.gz"))
+                           "ltris-" version ".tar.gz"))
        (sha256
         (base32
          "1895wv1fqklrj4apkz47rnkcfhfav7zjknskw6p0886j35vrwslg"))))
@@ -786,8 +924,9 @@ watch your CPU playing while enjoying a cup of tea!")
     (source
       (origin
         (method url-fetch)
-        (uri (string-append "https://www.nethack.org/download/"
-                            version "/" name "-361-src.tgz"))
+        (uri
+         (string-append "https://www.nethack.org/download/" version "/nethack-"
+                        (string-join (string-split version #\.) "") "-src.tgz"))
         (sha256
           (base32 "1dha0ijvxhx7c9hr0452h93x81iiqsll8bc9msdnp7xdqcfbz32b"))))
     (inputs
@@ -912,10 +1051,9 @@ role, and your gender.")
      (origin
        (method url-fetch)
        (uri (string-append "http://downloads.sourceforge.net/pipewalker/"
-                           name "-" version ".tar.gz"))
+                           "pipewalker-" version ".tar.gz"))
        (sha256
-        (base32
-         "1x46wgk0s55562pd96cxagxkn6wpgglq779f9b64ff1k3xzp3myn"))))
+        (base32 "1x46wgk0s55562pd96cxagxkn6wpgglq779f9b64ff1k3xzp3myn"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags
@@ -950,11 +1088,10 @@ Every puzzle has a complete solution, although there may be more than one.")
    (version "2.5.1.4")
    (source (origin
             (method url-fetch)
-            (uri (string-append "mirror://sourceforge/" name "/" name "/"
-                                version "/" name "-" version ".tar.gz"))
+            (uri (string-append "mirror://sourceforge/prboom-plus/prboom-plus/"
+                                version "/prboom-plus-" version ".tar.gz"))
             (sha256
-             (base32
-              "151v6nign86m1a2vqz27krsccpc9m4d1jax4y43v2fa82wfj9qp0"))
+             (base32 "151v6nign86m1a2vqz27krsccpc9m4d1jax4y43v2fa82wfj9qp0"))
             (modules '((guix build utils)))
             (snippet
              '(begin
@@ -1184,13 +1321,13 @@ can be explored and changed freely.")
     (version "2.0.1")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/nevat/abbayedesmorts-gpl/"
-                           "archive/v" version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/nevat/abbayedesmorts-gpl.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "1a67b0hq6271dd7pvwndjq29cwn2n8gawwz17xafa3k1hrhf8vw3"))
+        (base32 "1pwqf7r9bqb2p3xrw9i7y8pgr1401fy3mnnqpb1qkhmdl3gqi9hb"))
        (modules '((guix build utils)))
        (snippet
         ;; Unbundle fonts.
@@ -1232,6 +1369,9 @@ them, called Jean Raymond, found an old church in which to hide, not knowing
 that beneath its ruins lay buried an ancient evil.")
     (license license:gpl3)))
 
+(define-public l-abbaye-des-morts
+  (deprecated-package "l-abbaye-des-morts" abbaye))
+
 (define-public angband
   (package
     (name "angband")
@@ -1667,7 +1807,7 @@ for common mesh file formats, and collision detection.")
                 (uri (git-reference
                       (url "https://github.com/thelaui/M.A.R.S..git")
                       (commit commit)))
-                (file-name (string-append name "-" version))
+                (file-name (git-file-name name version))
                 (sha256
                  (base32
                   "1r4c5gap1z2zsv4yjd34qriqkxaq4lb4rykapyzkkdf4g36lc3nh"))
@@ -1709,7 +1849,7 @@ match, cannon keep, and grave-itation pit.")
 (define minetest-data
   (package
     (name "minetest-data")
-    (version "5.0.0")
+    (version "5.0.1")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -1718,7 +1858,7 @@ match, cannon keep, and grave-itation pit.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "186i1pna2f3fwa2001y8mw5131h0sndhfdxzfqq2gnr1m83sjm0w"))))
+                "1hw3n7qqpasq6bivxhq01kr0d58w0gp46s0baxixp1fakd79p8a7"))))
     (build-system trivial-build-system)
     (native-inputs
      `(("source" ,source)))
@@ -1736,14 +1876,14 @@ match, cannon keep, and grave-itation pit.")
                      #t))))
     (synopsis "Main game data for the Minetest game engine")
     (description
-     "Game data for the Minetest infinite-world block sandox game.")
+     "Game data for the Minetest infinite-world block sandbox game.")
     (home-page "http://minetest.net")
     (license license:lgpl2.1+)))
 
 (define-public minetest
   (package
     (name "minetest")
-    (version "5.0.0")
+    (version "5.0.1")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -1752,7 +1892,7 @@ match, cannon keep, and grave-itation pit.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1b8n8nzlvmld1hl3zgs1xg4jbc1nsf1m2bn7fi794vdr06s6n911"))
+                "11i8fqjpdggqfdlx440k5758zy0nbf9phxan9r63mavc7mph88ay"))
               (modules '((guix build utils)))
               (snippet
                 '(begin
@@ -1779,7 +1919,7 @@ match, cannon keep, and grave-itation pit.")
      `(("pkg-config" ,pkg-config)))
     (inputs
      `(("curl" ,curl)
-       ("freetype" ,(@ (gnu packages fontutils) freetype))
+       ("freetype" ,freetype)
        ("gettext" ,gettext-minimal)
        ("gmp" ,gmp)
        ("irrlicht" ,irrlicht)
@@ -1892,7 +2032,7 @@ reference interpreter, using the Glk API.")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://fizmo.spellbreaker.org/source/"
-                                  name "-" version ".tar.gz"))
+                                  "fizmo-" version ".tar.gz"))
               (sha256
                (base32
                 "1amyc4n41jf08kxmdgkk30bzzx54miaxa97w28f417qwn8lrl98w"))))
@@ -1980,7 +2120,7 @@ This game is based on the GPL version of the famous game TuxRacer.")
 (define-public supertuxkart
   (package
     (name "supertuxkart")
-    (version "0.9.3")
+    (version "1.0")
     (source
      (origin
        (method url-fetch)
@@ -1988,55 +2128,36 @@ This game is based on the GPL version of the famous game TuxRacer.")
                            version "/supertuxkart-" version "-src.tar.xz"))
        (sha256
         (base32
-         "1c4w47ibj87lgwiqygq8qi7jiz6gklj4dwf5bs5zk15s0rqlw0fq"))
+         "106rlp99hq18b4q1kdri3pl06cc4v7iqfp1hp9k2f8751lzz923d"))
        (modules '((guix build utils)))
        (snippet
         ;; Delete bundled library sources
         '(begin
-           ;; FIXME: try to unbundle enet, and angelscript
+           ;; 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
            (for-each delete-file-recursively
                      '("lib/zlib"
                        "lib/libpng"
                        "lib/jpeglib"
                        "lib/glew"
-                       "lib/wiiuse"))
-           (substitute* "CMakeLists.txt"
-             ;; 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
-             (("add_subdirectory\\(.*/(glew|zlib)\"\\)") ""))
+                       "lib/wiiuse"
+                       "lib/enet"))
            #t))))
     (build-system cmake-build-system)
     (arguments
      `(#:tests? #f ; no check target
        #:configure-flags
        (list "-DUSE_WIIUSE=0"
-             ;; Do not use the bundled zlib
+             ;; Do not use the bundled zlib, glew and enet.
              "-DNO_IRR_COMPILE_WITH_ZLIB_=TRUE"
+             "-DUSE_SYSTEM_GLEW=TRUE"
+             "-DUSE_SYSTEM_ENET=TRUE"
              ;; FIXME: needs libopenglrecorder
              "-DBUILD_RECORDER=0"
              ;; Irrlicht returns an integer instead of a boolean
-             "-DCMAKE_C_FLAGS=-fpermissive")
-       #:phases
-       (modify-phases %standard-phases
-         ;; see https://github.com/supertuxkart/stk-code/issues/3557
-         (add-after 'unpack 'patch-for-mesa-18.3
-           (lambda _
-             (substitute* "src/graphics/gl_headers.hpp"
-               (("#if !defined\\(USE_GLES2\\)")
-                "#if !defined(USE_GLES2)\n#   define __gl_glext_h_"))
-             #t))
-         (add-after 'unpack 'unbundle
-           (lambda* (#:key inputs #:allow-other-keys)
-             (substitute* "CMakeLists.txt"
-               (("glew")
-                (string-append (assoc-ref inputs "glew")
-                               "/lib/libGLEW.a"))
-               (("include_directories\\(\"\\$\\{PROJECT_SOURCE_DIR\\}/lib/glew/include\"\\)")
-                (string-append "include_directories(\""
-                               (assoc-ref inputs "glew")
-                               "/include\")")))
-             #t)))))
+             "-DCMAKE_C_FLAGS=-fpermissive")))
     (inputs
      `(("glew" ,glew)
        ("zlib" ,zlib)
@@ -2050,7 +2171,9 @@ This game is based on the GPL version of the famous game TuxRacer.")
        ("curl" ,curl)
        ;; The following input is needed to build the bundled and modified
        ;; version of irrlicht.
-       ("libjpeg" ,libjpeg)))
+       ("libjpeg" ,libjpeg)
+       ("openssl" ,openssl)
+       ("enet" ,enet)))
     (native-inputs
      `(("pkg-config" ,pkg-config)))
     (home-page "https://supertuxkart.net/")
@@ -2135,6 +2258,9 @@ experience and advance levels, and are carried over from one scenario to the
 next campaign.")
     (license license:gpl2+)))
 
+(define-public the-battle-for-wesnoth
+  (deprecated-package "the-battle-for-wesnoth" wesnoth))
+
 (define-public wesnoth-server
   (package
     (inherit wesnoth)
@@ -2151,6 +2277,9 @@ next campaign.")
     (description "This package contains a dedicated server for @emph{The
 Battle for Wesnoth}.")))
 
+(define-public the-battle-for-wesnoth-server
+  (deprecated-package "the-battle-for-wesnoth-server" wesnoth-server))
+
 (define-public gamine
   (package
     (name "gamine")
@@ -2197,48 +2326,6 @@ on the screen and keyboard to display letters.")
     ;; Most files under gpl2+ or gpl3+, but eat.wav under gpl3
     (license license:gpl3)))
 
-(define-public raincat
-  (package
-    (name "raincat")
-    (version "1.2.1")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (string-append "http://hackage.haskell.org/package/Raincat/"
-                           "Raincat-" version ".tar.gz"))
-       (sha256
-        (base32
-         "10y9zi22m6hf13c9h8zd9vg7mljpwbw0r3djb6r80bna701fdf6c"))))
-    (build-system haskell-build-system)
-    (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-after 'install 'wrap-executable
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             (let ((out (assoc-ref outputs "out")))
-               (wrap-program (string-append out "/bin/raincat")
-                 `("LD_LIBRARY_PATH" ":" =
-                   (,(string-append (assoc-ref inputs "freeglut")
-                                    "/lib"))))
-               #t))))))
-    (inputs
-     `(("ghc-extensible-exceptions" ,ghc-extensible-exceptions)
-       ("ghc-random" ,ghc-random)
-       ("ghc-glut" ,ghc-glut)
-       ("freeglut" ,freeglut)
-       ("ghc-opengl" ,ghc-opengl)
-       ("ghc-sdl2" ,ghc-sdl2)
-       ("ghc-sdl2-image" ,ghc-sdl2-image)
-       ("ghc-sdl2-mixer" ,ghc-sdl2-mixer)))
-    (home-page "http://www.bysusanlin.com/raincat/")
-    (synopsis "Puzzle game with a cat in lead role")
-    (description "Project Raincat is a game developed by Carnegie Mellon
-students through GCS during the Fall 2008 semester.  Raincat features game
-play inspired from classics Lemmings and The Incredible Machine.  The project
-proved to be an excellent learning experience for the programmers.  Everything
-is programmed in Haskell.")
-    (license license:bsd-3)))
-
 (define-public manaplus
   (package
     (name "manaplus")
@@ -2599,12 +2686,13 @@ Transport Tycoon Deluxe.")
     (version "0.2.2")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/OpenRCT2/OpenRCT2/archive/v"
-                           version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/OpenRCT2/OpenRCT2.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
        (sha256
-        (base32 "0yxaphgfq85piaacnnfy6lrvmnqmfj1891rxlkl5ndngq0zh0ysb"))
-       (file-name (string-append name "-" version ".tar.gz"))))
+        (base32 "1bfqmb6cbmsjcvj77vppy5lw1m4lkvxd1w3f218ah4788xnkysq2"))))
     (build-system cmake-build-system)
     (arguments
      `(#:configure-flags (list "-DDOWNLOAD_OBJECTS=OFF"
@@ -2780,7 +2868,6 @@ is attributed to Albert Einstein.")
               (uri (string-append
                     "https://www.hoopajoo.net/static/projects/powwow-"
                     version ".tar.gz"))
-              (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
                 "1gf0jc1vfv05lxij51n3c1dqn3aiiy2kj1v6q14an3wm7yl7cllp"))))
@@ -2800,58 +2887,59 @@ http://lavachat.symlynx.com/unix/")
   (let ((release "1.6.0")
         (revision 0)
         (data-sources
-         '(("acerspyro" "07mzgdahnr3w3w7kf8nmy20r199rimfx9ryqxjdr793sw0vawqd3")
-           ("actors" "1hkgscfhg0kmwgym0mw56fhcckzbb2hh3nsvd45v4mdfyk0xnrm7")
-           ("appleflap" "1q4xs3x904mrrbxzv6lpr3lywm8p6i8339ijzy9j091s2wdl51ka")
-           ("blendbrush" "004md2haysr9w8fj6l7bj9wcfjqrq9wx1rrjf9dv16k5sbrkqza9")
-           ("caustics" "1qmmv8ds70j1ixy4rvli309vbcyjq1l5j1wri6nbnjay10f9fcgq")
-           ("crosshairs" "0q1vadg5cai9i6igl6y08774fd05gav0kinbgb2757n47ig50bns")
-           ("dziq" "1s9248ky2qqy24z9c2vgpisz500dvsaj249pv1fkrxgsypjm1z6v")
-           ("elyvisions" "15synpms05996v4c4kdl0h899spl4z7si9kl8c4m7rvc2yvin1ga")
-           ("fonts" "1l4727ai8mphi7n3wcjp2lh3p47nh6w82s5dpqbbjpqr9gilb69j")
-           ("freezurbern" "0hcdbzs02mvpsfhmahhqjv6pd8lbsag1bm6rpy61ns5qwmhg96ys")
-           ("john" "1whyvlx87mb83kfb7jhhnwz9s7lry4li8l3xar61vmlqgmsnz33d")
-           ("jojo" "02wxa93f5al4rlnsdjpd0hlnca0ympnj8481lgdxx70hny8zi3qi")
-           ("jwin" "1gb4l7lbhr150hml1y0wbyx7266q5nslh6n494wwrrsvp11s2qk8")
-           ("luckystrike" "0wy2spvhx5k233fsl283250ym5bqvkk8i6i19sw3zvzyxp2p4yq9")
-           ("maps" "1dmvp9mskval606z5srjd909jpm6qz4fdcpaszkkhfr5ajbj30vq")
-           ("mayhem" "0hkzzx0rxda70ixw9lfh9v1dpsbn2dj86jrr3zxjgasbgaxw37ax")
-           ("mikeplus64" "144fxhp4qjqjw3gvhf7ym6rnfxvxc0zvd3f54jg1jgnccc1hfyah")
-           ("misc" "0bpvibyc6vjhbzsf67xxn85yq2h97xs96icbskwzs2wsd860kq8c")
-           ("nieb" "0d72wsibk9sg9nhin3fwzz9zljiccyln0fn42y2q2xbd4my23b1k")
-           ("nobiax" "19lr36ys98cmpp739svjar1j942fbxz6r062gi7ygh89zh9yrgfy")
-           ("particles" "02pnq8ksl7f6kqxss3aza98jssdq2s41rhkhki71ynavp2a5akar")
-           ("philipk" "1xkrb7wa1pyhbs4xxx7vnnzsxrqzswk7gjbdac7i7rj0lwnfaij2")
-           ("projectiles" "1hra0f1ifiddh16fv4pqcr2amf046lf445v0653zkyri43zgrj5f")
-           ("props" "0ff6a8pz62f4nsk4c9cr50kirw108a661y5j6fvlsjickw3xjmyv")
-           ("skyboxes" "1lq58dhrdiivq7llkiyqwpi3bwa89r8hbi98p7zjhw7wdn34i6n2")
-           ("snipergoth" "0d5qf01bxd4dlffgxf8i91zq6mbyjmfd00dpyligpfj6fdbz87gc")
-           ("sounds" "0z6jmxsr3w735hrdnxypdb0gi399pwkaycv9grjpiqy43j3ic7gj")
-           ("textures" "0k5a47g2z99xn17vw7bqbp0w726gxmk33g5gwmqvfhxxxzzwimvi")
-           ("torley" "12x23l8xcv9ard5v76lb210lvp66whsns2p3k3xkd1sabp5ixbd5")
-           ("trak" "03kmwj47yb3dqzb6k9kilna9ja8c6jcnblvbs72x15767fl496pb")
-           ("ulukai" "0vvd016a7x981ixif6dnlg45s0ak7i89pgyrgwy2fpd94nl2am15")
-           ("unnamed" "18sxvdha41njp6g8wn56mjy6w9x778c793gh8fr0h9cnysb5gfmi")
-           ("vanities" "1p38mc2566bmb4vdyr9n9s6fkwmynp2xlpdq2a97gzgi4nmm0232")
-           ("vegetation" "0pf3qvqzabdcri5za61z6m89b5hq7sd3q0idkazmx88a62mcclkb")
-           ("weapons" "1jr05y9qhhx53plvir35srvv3cmn6wa065p3bskx6h1x6dcbx3c6")
-           ("wicked" "14b9f92h8hccp7a015z6rqgbs8236sdyxnwsq991ylnap7cbwvam"))))
+         '(("acerspyro" "12b0bngl7hlxw4iwdbn99jp081yl6z1ic0s788nm349drbr2pck8")
+           ("actors" "0x7qqx67679q6ark9zz02skwhzgabid69kwi6zmhfpfgicn4927r")
+           ("appleflap" "08xslwqfqz3j4m03pv5ry2gdzj5k2ns51z8n6sln3sa94i9x8qkm")
+           ("blendbrush" "18zf5i2ax4p14x4c9nhk9fq6l1xgbxw62gm72vx59vbfdpjrw3cg")
+           ("caustics" "172fxwx7kbz5nmbjq98kr52ips505wb99fibgnpg8cj02syrya8k")
+           ("crosshairs" "14w8ysqzdsx9bzpfbl700jzngbh14rdghhjdf6zd6jlkvrl6754r")
+           ("dziq" "056imqszvp90j7cgz52ly0f31px64gsrmvm9k2c78ldbx87jnhc3")
+           ("elyvisions" "1bsgr0gr7njydj8fqclh0a27lrsyic3xfd5a4vwggw7g54azpgk2")
+           ("fonts" "00ibisza1qci0ghf2rynyf28l6r3nqhfzjf80k6gg76q4v7p1myx")
+           ("freezurbern" "07l9ldk9b82f12c13wcg5xxdf15bw0yjxk3vvk8v3ygrl2mwksyr")
+           ("john" "1jdmwkrdi5b9pivkm22rxhmkk1db9dx6l54wzcc23cvdz04ij93k")
+           ("jojo" "0f7kjy43fbk9kw8fip6bbw4gn3pryh0fndlahjfkaysrx98krdj3")
+           ("jwin" "0nc8dndnpqk2ad6316a8k6kgzsrkpwvk8s4gyh7aqfi4axfclril")
+           ("luckystrike" "04jiipqahphmvz5cd74dygr62dlvv6l4iglb8hzh4pp8frhls8bq")
+           ("maps" "0an46ipjvw4h0nxvb6qvnzp1cdkzlkiinqz4zh9lmxy1ds0gclim")
+           ("mayhem" "15k10imm2wr6c6fq35n4r99k7kz7n9zdnjlw6dmdq6fba67i6sbc")
+           ("mikeplus64" "0v4wiiivm3829j4phlavy22n4c6k6ib9ixxpdz7r6ysg5cdkaw33")
+           ("misc" "13rfgwrlfhflz6inbkg3fypyf8im0m49sw112b17qrw2zgp8i1rz")
+           ("nieb" "0z0h9jdn2gkkjil3vsvwidb1p2k09pi5n3wjxza12hhvqmcs7q8f")
+           ("nobiax" "08bfp4q6gbfis18bp1h4d0hqssk79jc4fhyjxnv21dbam4v4mnkn")
+           ("particles" "1vsx3fgg19xggxfhz3vlrh6nqhmw7kl9kmxrvb2j84blp00vd6z2")
+           ("philipk" "14irscg80607i5k5l2ci0n9nwibvda2f3xsykgv96d0vldrp5n5a")
+           ("projectiles" "09bnfsrywirwgjm6d7ff5nicx6w6b7w9568x9pb5q0ncaps3l85s")
+           ("props" "1dlabbprlkif8af3daf9nbgcwgxiymvj0yiphqhlri8ylfy2vpz4")
+           ("skyboxes" "14bi3md5y47cvb9ybipdvksz40gqsqw2r0lh3zzqb4acq367w18y")
+           ("snipergoth" "0m8rvvy5n8n9pm0b5cqvzsxsw51mqk8m7s1h3qc849b38isliwq2")
+           ("sounds" "0ivf3w5bphz5pzzx6kwcb67vbly1l19cgv3s0cyp8n87afiqj5rd")
+           ("textures" "0qdmgx7zbcqnb9rrga2izr93p5inirczhddfxs504rsnv0v8vyxm")
+           ("torley" "05ppyhghq859cbbxzj3dnl9fcx3ghy04ds1pylypwg2hsxzbjwcd")
+           ("trak" "0g3vq86q91a3syli38lwc8ca4ychfwsmmqf85kqzfzyd627ybclm")
+           ("ulukai" "0asa5fz400impklcg6dy2f7jiaqfc1sn1c36fpg8jd01gw66lw93")
+           ("unnamed" "0rz5683j7sfwkcycfypbv4b0ihp0qwn9rzskfsabwc1s5g324917")
+           ("vanities" "13f18783rc8cjf22p61zr8m5g1migzlx05fzl8xnbjdkqq4cdyix")
+           ("vegetation" "1y5d97nfmvax7y4fr0y5v0c8zb1ajkqwx76kjd4qc9n4spdsi5sc")
+           ("weapons" "103g1dhxv5ffz4ddg2xcbshbgv9606chsbas3pzk6h9ybqsyjrqh")
+           ("wicked" "1884rk34a2dj83gz82rc4zh3ch0dyj5221hvsr0a5h60578i7yj6"))))
     (package
       (name "red-eclipse")
       (version (if (zero? revision)
                    release
                    (string-append release "-"
                                   (number->string revision))))
-      (source (origin
-                (method url-fetch)
-                (uri (string-append "https://github.com/red-eclipse/base"
-                                    "/archive/v" release ".tar.gz"))
-                (file-name (string-append name "-" version ".tar.gz"))
-                (sha256
-                 (base32
-                  "1vs9k6f5fgsiy1n72imlqm8khjwm8cryc08zwd4gr7yxlxv45bs0"))
-                (patches
-                 (search-patches "red-eclipse-remove-gamma-name-hack.patch"))))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/red-eclipse/base.git")
+               (commit (string-append "v" release))))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "0qy9kmq21wc4bdhwifasxc5dv1y5c53sn7dfmyc5y3zyz8wjyij4"))
+         (patches
+          (search-patches "red-eclipse-remove-gamma-name-hack.patch"))))
       (build-system gnu-build-system)
       (arguments
        `(#:tests? #f            ; no check target
@@ -2866,15 +2954,10 @@ http://lavachat.symlynx.com/unix/")
              (lambda* (#:key inputs #:allow-other-keys)
                (delete-file-recursively "data")
                (mkdir "data")
-               (for-each (lambda (name)
-                           (invoke "tar" "-xvf"
-                                   (assoc-ref inputs name)
-                                   "-Cdata"
-                                   "--transform"
-                                   (string-append "s/"
-                                                  name "-" ,release "/"
-                                                  name "/")))
-                         (list ,@(map car data-sources)))
+               (with-directory-excursion "data"
+                 (for-each (lambda (name)
+                             (copy-recursively (assoc-ref inputs name) name))
+                           (list ,@(map car data-sources))))
                #t))
            (add-after 'unpack-data 'add-store-data-package-path-as-default
              (lambda* (#:key outputs #:allow-other-keys)
@@ -2946,7 +3029,8 @@ exec -a \"$0\" ~a/.redeclipse_server_linux-real~%"
                    (chmod "redeclipse_linux" #o555)
                    (chmod "redeclipse_server_linux" #o555)))
                #t)))))
-      (native-inputs `(("pkg-config" ,pkg-config)))
+      (native-inputs
+       `(("pkg-config" ,pkg-config)))
       (inputs
        `(("curl" ,curl)
          ("glu" ,glu)
@@ -2958,13 +3042,14 @@ exec -a \"$0\" ~a/.redeclipse_server_linux-real~%"
                   ((name hash)
                    (list name
                          (origin
-                           (method url-fetch)
-                           (uri (string-append
-                                 "https://github.com/red-eclipse/"
-                                 name "/archive/v" release ".tar.gz"))
+                           (method git-fetch)
+                           (uri
+                            (git-reference
+                             (url (string-append "https://github.com/"
+                                                 "red-eclipse/" name ".git"))
+                             (commit (string-append "v" release))))
                            (sha256 (base32 hash))
-                           (file-name (string-append name "-" version
-                                                     ".tar.gz"))))))
+                           (file-name (git-file-name name version))))))
                 data-sources)))
       (home-page "http://redeclipse.net/")
       (synopsis "Arena shooter derived from the Cube 2 engine")
@@ -2986,7 +3071,7 @@ Red Eclipse provides fast paced and accessible gameplay.")
     (version "1.0")
     (source (origin
               (method url-fetch)
-              (uri (string-append "https://jxself.org/" name ".tar.gz"))
+              (uri (string-append "https://jxself.org/grue-hunter.tar.gz"))
               (sha256
                (base32
                 "1hjcpy5439qs3v2zykis7hsi0i17zjs62gks3zd8mnfw9ni4i2h3"))))
@@ -3103,14 +3188,15 @@ fullscreen, use F5 or Alt+Enter.")
   (package
     (name "warzone2100")
     (version "3.2.3")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://sourceforge/" name
-                                  "/releases/" version "/" name "-" version
-                                  ".tar.xz"))
-              (sha256
-               (base32
-                "10kmpr4cby95zwqsl1zwx95d9achli6khq7flv6xmrq30a39xazw"))))
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://sourceforge/warzone2100/archives/"
+                           "unsupported/Warzone2100-"
+                           (version-major+minor version) "/" version
+                           "/warzone2100-" version ".tar.xz"))
+       (sha256
+        (base32 "10kmpr4cby95zwqsl1zwx95d9achli6khq7flv6xmrq30a39xazw"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags '("--with-distributor=Guix")
@@ -3171,7 +3257,7 @@ tactics.")
               (uri (string-append
                     "mirror://savannah/starfighter/"
                     (version-major+minor version) "/"
-                    name "-" version "-src.tar.gz"))
+                    "starfighter-" version "-src.tar.gz"))
               (sha256
                (base32
                 "1646hpjq8bz2fkfkja1dah511hn7zd2r7da4w9c9blhad3p5732v"))))
@@ -3197,15 +3283,18 @@ in strikes against the evil corporation.")
                    license:cc0
                    license:public-domain))))
 
+(define-public project-starfighter
+  (deprecated-package "project-starfighter" starfighter))
+
 (define-public chromium-bsu
   (package
     (name "chromium-bsu")
     (version "0.9.16.1")
     (source (origin
               (method url-fetch)
-              (uri (string-append "mirror://sourceforge/" name
+              (uri (string-append "mirror://sourceforge/chromium-bsu"
                                   "/Chromium B.S.U. source code/"
-                                  name "-" version ".tar.gz"))
+                                  "chromium-bsu-" version ".tar.gz"))
               (sha256
                (base32
                 "0jk2w5b6s6nkzri585bbz16cif2fhqcnl5l1mq3rd98r9nil3hd1"))))
@@ -3476,7 +3565,7 @@ Linux / Mac OS X servers, and an auto mapper with a VT100 map display.")
      (origin (method url-fetch)
              (uri (string-append
                    "https://github.com/sgimenez/laby/archive/"
-                   name "-" version ".tar.gz"))
+                   "laby-" version ".tar.gz"))
              (sha256
               (base32
                "0gyrfa95l1qka7gbjf7l6mk7mbfvph00l0c995ia272qdw7rjhyf"))
@@ -3485,12 +3574,19 @@ Linux / Mac OS X servers, and an auto mapper with a VT100 map display.")
     (inputs
      `(("lablgtk" ,lablgtk)
        ("ocaml" ,ocaml)
-       ("ocaml-findlib" ,ocaml-findlib)))
+       ("ocaml-findlib" ,ocaml-findlib)
+       ("ocamlbuild" ,ocamlbuild)))
     (arguments
      '(#:phases
        (modify-phases %standard-phases
          (delete 'configure)
-         (add-before 'build 'setenv
+         (add-before 'build 'allow-unsafe-strings
+           ;; Fix a build failure with ocaml >=4.06.0.
+           ;; See <https://github.com/sgimenez/laby/issues/53>.
+           (lambda _
+             (setenv "OCAMLPARAM" "safe-string=0,_")
+             #t))
+         (add-before 'build 'set-library-path
            (lambda* (#:key inputs #:allow-other-keys)
              (let ((lablgtk (assoc-ref inputs "lablgtk")))
                (setenv "LD_LIBRARY_PATH"
@@ -3559,7 +3655,7 @@ colors, pictures, and sounds.")
               (method url-fetch)
               (uri (string-append
                     "https://github.com/SimonLarsen/mrrescue/releases/"
-                    "download/" version "/" name version ".love"))
+                    "download/" version "/mrrescue" version ".love"))
               (file-name (string-append name "-" version ".love"))
               (sha256
                (base32
@@ -3628,8 +3724,8 @@ throwing people around in pseudo-randomly generated buildings.")
     (source (origin
               (method url-fetch)
               (uri (string-append
-                    "https://www.roguetemple.com/z/hyper/"
-                    name (string-join (string-split version #\.) "")
+                    "https://www.roguetemple.com/z/hyper/hyperrogue"
+                    (string-join (string-split version #\.) "")
                     "-src.tgz"))
               (sha256
                (base32
@@ -3706,7 +3802,7 @@ throwing people around in pseudo-randomly generated buildings.")
            (method url-fetch)
            (uri
             (string-append
-             "https://www.roguetemple.com/z/hyper/" name
+             "https://www.roguetemple.com/z/hyper/hyperrogue"
              (string-join (string-split version #\.) "")
              "-win.zip"))
            (sha256
@@ -3814,13 +3910,13 @@ to the Space Age.")
     (version "0.3.3")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/bartobri/no-more-secrets/"
-                           "archive/v" version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/bartobri/no-more-secrets.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "1kpx1rirc3i7fb4lymp0hx5rqr0s2ay4za261rw3bcy6d23l1kyg"))))
+        (base32 "1zfv4qabikf8w9winsr4brxrdvs3f0d7xvydksyx8bydadsm2v2h"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f
@@ -4115,6 +4211,9 @@ small robot living in the nano world, repair its maker.")
     ;; for a statement from the author.
     (license license:public-domain)))
 
+(define-public kiki-the-nano-bot
+  (deprecated-package "kiki-the-nano-bot" kiki))
+
 (define-public teeworlds
   (package
     (name "teeworlds")
@@ -4404,10 +4503,13 @@ underwater realm quarrel among themselves or comment on the efforts of your
 fish.  The whole game is accompanied by quiet, comforting music.")
     (license license:gpl2+)))
 
+(define-public fish-fillets-ng
+  (deprecated-package "fish-fillets-ng" fillets-ng))
+
 (define-public crawl
   (package
     (name "crawl")
-    (version "0.23.1")
+    (version "0.23.2")
     (source
      (origin
        (method url-fetch)
@@ -4420,8 +4522,7 @@ fish.  The whole game is accompanied by quiet, comforting music.")
              (string-append "http://crawl.develz.org/release/stone_soup-"
                             version "-nodeps.tar.xz")))
        (sha256
-        (base32
-         "0c3mx49kpz6i2xvv2dwsaj9s7mm4mif1h2qdkfyi80lv2j1ay51h"))
+        (base32 "1hw10hqhh688mrqs9vxrl17y1dzfjzsmxz6izg1a9dzmjlhrc01a"))
        (patches (search-patches "crawl-upgrade-saves.patch"))))
     (build-system gnu-build-system)
     (inputs
@@ -4443,7 +4544,7 @@ fish.  The whole game is accompanied by quiet, comforting music.")
          (list (string-append "SQLITE_INCLUDE_DIR=" sqlite "/include")
                (string-append "prefix=" out)
                "SAVEDIR=~/.crawl"
-               ;; Don't compile with SSE on systems which don't use it
+               ;; Don't compile with SSE on systems which don't have it.
                ,@(match (%current-system)
                    ((or "i686-linux" "x86_64-linux")
                     '())
@@ -4472,9 +4573,9 @@ fish.  The whole game is accompanied by quiet, comforting music.")
                     ;; Force command line build for test cases.
                     (append make-flags '("GAME=crawl" "TILES="))))))))
     (synopsis "Roguelike dungeon crawler game")
-    (description "Dungeon Crawl Stone Soup is a roguelike adventure through
-dungeons filled with dangerous monsters in a quest to find the mystifyingly
-fabulous Orb of Zot.")
+    (description "Dungeon Crawl Stone Soup (also known as \"Crawl\" or DCSS
+for short) is a roguelike adventure through dungeons filled with dangerous
+monsters in a quest to find the mystifyingly fabulous Orb of Zot.")
     (home-page "https://crawl.develz.org")
     (license (list license:gpl2+
                    license:bsd-2
@@ -4484,6 +4585,9 @@ fabulous Orb of Zot.")
                    license:zlib
                    license:asl2.0))))
 
+(define-public dungeon-crawl-stone-soup
+  (deprecated-package "dungeon-crawl-stone-soup" crawl))
+
 ;; The linter here claims that patch file names should start with the package
 ;; name. But, in this case, the patches are inherited from crawl with the
 ;; "crawl-" prefix instead of "crawl-tiles-".
@@ -4520,6 +4624,9 @@ fabulous Orb of Zot.")
        ("which" ,which)))
     (synopsis "Graphical roguelike dungeon crawler game")))
 
+(define-public dungeon-crawl-stone-soup-tiles
+  (deprecated-package "dungeon-crawl-stone-soup-tiles" crawl-tiles))
+
 (define-public lugaru
   (package
     (name "lugaru")
@@ -4527,7 +4634,7 @@ fabulous Orb of Zot.")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://bitbucket.org/osslugaru/lugaru/downloads/"
-                                  name "-" version ".tar.xz"))
+                                  "lugaru-" version ".tar.xz"))
               (sha256
                (base32
                 "15zgcshy22q51rm72zi6y9z7qlgnz5iw3gczjdlir4bqmxy4gspk"))))
@@ -4678,11 +4785,11 @@ fight against their plot and save his fellow rabbits from slavery.")
                (setenv "JOBS" (string-append "-j" jobs))
                (setenv "CC" "gcc")
                (with-directory-excursion "build/workspaces"
-                 (zero? (system* "./update-workspaces.sh"
-                                 (string-append "--libdir=" lib)
-                                 (string-append "--datadir=" data)
-                                 ;; TODO: "--with-system-nvtt"
-                                 "--with-system-mozjs38"))))))
+                 (invoke "./update-workspaces.sh"
+                         (string-append "--libdir=" lib)
+                         (string-append "--datadir=" data)
+                         ;; TODO: "--with-system-nvtt"
+                         "--with-system-mozjs38")))))
          (delete 'check)
          (replace 'install
            (lambda* (#:key inputs outputs #:allow-other-keys)
@@ -4716,7 +4823,7 @@ fight against their plot and save his fellow rabbits from slavery.")
          (add-after 'install 'check
            (lambda _
              (with-directory-excursion "system"
-               (zero? (system* "./test"))))))))
+               (invoke "./test")))))))
     (home-page "https://play0ad.com")
     (synopsis "3D real-time strategy game of ancient warfare")
     (description "0 A.D. is a real-time strategy (RTS) game of ancient
@@ -4778,7 +4885,7 @@ at their peak of economic growth and military prowess.
                (substitute* "Makefile"
                  ((".adoc.6:" line)
                   (string-append line " advent.adoc")))
-               (zero? (system* "make" ".adoc.6"))))
+               (invoke "make" ".adoc.6")))
            ;; There is no install target
            (replace 'install
              (lambda* (#:key outputs #:allow-other-keys)
@@ -4925,6 +5032,9 @@ intuitive mouse control, streamlined mechanics and deep, challenging combat,
 Tales of Maj’Eyal offers engaging roguelike gameplay for the 21st century.")
     (license license:gpl3+)))
 
+(define-public tales-of-maj-eyal
+  (deprecated-package "tales-of-maj-eyal" tome4))
+
 (define-public quakespasm
   (package
     (name "quakespasm")
@@ -5307,22 +5417,22 @@ You can save humanity and get programming skills!")
 (define-public gzdoom
   (package
     (name "gzdoom")
-    (version "3.3.0")
+    (version "3.7.2")
     (source (origin
               (method url-fetch)
               (uri
-               (string-append "https://zdoom.org/files/gzdoom/src/gzdoom-g"
+               (string-append "https://zdoom.org/files/gzdoom/src/gzdoom-src-g"
                               version ".zip"))
               (sha256
                (base32
-                "09a4kx3ry8pc9r578m7yprwa7zsdqxjpn10lyc92r5g9sx4l1m1a"))
+                "0182f160m8d0c3nywjw3dxvnz93xjs4cn8akx7137cha4s05wdq7"))
               (patches (search-patches "gzdoom-search-in-installed-share.patch"))
               (modules '((guix build utils)))
               (snippet
                '(begin
                   (delete-file-recursively "bzip2")
                   (delete-file-recursively "game-music-emu")
-                  (delete-file-recursively "jpeg-6b")
+                  (delete-file-recursively "jpeg")
                   (delete-file-recursively "zlib")
                   #t))))
     (arguments
@@ -5386,6 +5496,8 @@ renderer.  It improves modding support with ZDoom's advanced mapping features
 and the new ZScript language.  In addition to Doom, it supports Heretic, Hexen,
 Strife, Chex Quest, and fan-created games like Harmony, Hacx and Freedoom.")
     (home-page "https://zdoom.org/index")
+    ;; The source uses x86 assembly
+    (supported-systems '("x86_64-linux" "i686-linux"))
     (license (list license:gpl3+         ; gzdoom game
                    license:lgpl3+        ; gzdoom renderer
                    license:expat         ; gdtoa
@@ -5393,6 +5505,34 @@ Strife, Chex Quest, and fan-created games like Harmony, Hacx and Freedoom.")
                     "file://dumb/licence.txt"
                     "Dumb license, explicitly GPL compatible.")))))
 
+(define-public odamex
+  (package
+    (name "odamex")
+    (version "0.8.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "mirror://sourceforge/odamex/Odamex/" version "/"
+             "odamex-src-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1sh6lqj7vsdmnqz17hw0b6vy7xx6dp41k2sdw99ympsfa2xd1d2j"))))
+    (build-system cmake-build-system)
+    (arguments `(#:tests? #f)) ; no tests.
+    (inputs
+     `(("sdl" ,sdl)
+       ("sdl-mixer" ,sdl-mixer)
+       ("zlib" ,zlib)
+       ("libpng" ,libpng)
+       ("alsa-lib" ,alsa-lib)))
+    (home-page "https://odamex.net/")
+    (synopsis "Multiplayer Doom port")
+    (description "Odamex is a modification of the Doom engine that
+allows players to easily join servers dedicated to playing Doom
+online.")
+    (license license:gpl2+)))
+
 (define-public fortune-mod
   (package
     (name "fortune-mod")
@@ -5402,7 +5542,7 @@ Strife, Chex Quest, and fan-created games like Harmony, Hacx and Freedoom.")
        (method git-fetch)
        (uri (git-reference
              (url "https://github.com/shlomif/fortune-mod")
-             (commit (string-append name "-" version))))
+             (commit (string-append "fortune-mod-" version))))
        (file-name (git-file-name name version))
        (sha256
         (base32
@@ -5711,10 +5851,10 @@ open-source FPS of its kind.")
               (method url-fetch)
               (uri (list (string-append
                           "http://www.ifarchive.org/if-archive/infocom/interpreters/"
-                          name "/" name "-" version ".tar.gz")
+                          "frotz/frotz-" version ".tar.gz")
                          (string-append
                           "ftp://ftp.ifarchive.org/if-archive/infocom/interpreters/"
-                          name "/" name "-" version ".tar.gz")))
+                          "frotz/frotz-" version ".tar.gz")))
               (sha256
                (base32
                 "1v735xr3blznac8fnwa27s1vhllx4jpz7kw7qdw1bsfj6kq21v3k"))))
@@ -5760,10 +5900,10 @@ ncurses for text display.")
               (method url-fetch)
               (uri (list (string-append
                           "http://www.ifarchive.org/if-archive/infocom/interpreters/"
-                          "frotz" "/" "frotz" "-" version ".tar.gz")
+                          "frotz/frotz-" version ".tar.gz")
                          (string-append
                           "ftp://ftp.ifarchive.org/if-archive/infocom/interpreters/"
-                          "frotz" "/" "frotz" "-" version ".tar.gz")))
+                          "frotz/frotz-" version ".tar.gz")))
               (sha256
                (base32
                 "1v735xr3blznac8fnwa27s1vhllx4jpz7kw7qdw1bsfj6kq21v3k"))))
@@ -5865,9 +6005,9 @@ when packaged in Blorb container files or optionally from individual files.")
     (version "0.2.2")
     (source (origin
               (method url-fetch)
-              (uri (string-append "mirror://gnome/sources/" name "/"
+              (uri (string-append "mirror://gnome/sources/libmanette/"
                                   (version-major+minor version) "/"
-                                  name "-" version ".tar.xz"))
+                                  "libmanette-" version ".tar.xz"))
               (sha256
                (base32
                 "1lpprk2qz1lsqf9xj6kj2ciyc1zmjhj5lwd584qkh7jgz2x9y6wb"))))
@@ -5894,9 +6034,9 @@ GameController.")
     (version "3.31.3")
     (source (origin
               (method url-fetch)
-              (uri (string-append "mirror://gnome/sources/" name "/"
+              (uri (string-append "mirror://gnome/sources/quadrapassel/"
                                   (version-major+minor version) "/"
-                                  name "-" version ".tar.xz"))
+                                  "quadrapassel-" version ".tar.xz"))
               (sha256
                (base32
                 "08i01nsgfb502xzzrrcxxbs7awb0j1h4c08vmj0j18ipa1sz8vb8"))))
@@ -6037,6 +6177,22 @@ civilized than your own.")
                             "/lib/glib-2.0/include"))
        #:phases
        (modify-phases %standard-phases
+         (add-after 'unpack 'ensure-application-files-can-be-found
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out")))
+               (substitute* "src/arch/LoadingWindow/LoadingWindow_Gtk.cpp"
+                 (("RageFileManagerUtil::sDirOfExecutable \\+ \"/\" \\+ \"GtkModule.so\"")
+                  (string-append "\"" out
+                                 "/share/stepmania/GtkModule.so\"")))
+               (substitute* "src/arch/ArchHooks/ArchHooks_Unix.cpp"
+                 (("Root = sDirOfExecutable")
+                  (string-append "Root = \"" out "/share/stepmania/\""))
+                 (("sDirOfExecutable \\+ \"/(Packages|Songs)\"" _ dir)
+                  (string-append "\"" out "/share/stepmania/" dir "\"")))
+               (substitute* "src/RageFileManager.cpp"
+                 (("RageFileManagerUtil::sDirOfExecutable \\+ \"/\"")
+                  (string-append "\"" out "/share/stepmania/\""))))
+             #t))
          (add-after 'unpack 'fix-install-subdir
            ;; Installation would be done in "%out/stepmania-X.Y", but we
            ;; prefer the more common layout "%out/share/stepmania".
@@ -6192,15 +6348,19 @@ to download and install them in @file{$HOME/.stepmania-X.Y/Songs} directory.")
        ("zip" ,zip)))
     (home-page "http://btanks.sourceforge.net")
     (synopsis "Multiplayer tank battle game")
-    (description "Battle Tanks is a funny battle game, where you can choose
-one of three vehicles and eliminate your enemy using the whole arsenal of
-weapons.  It has original cartoon-like graphics and cool music, it’s fun and
-dynamic, it has several network modes for deathmatch and cooperative.")
+    (description "Battle Tanks (also known as \"btanks\") is a funny battle
+game, where you can choose one of three vehicles and eliminate your enemy
+using the whole arsenal of weapons.  It has original cartoon-like graphics and
+cool music, it’s fun and dynamic, it has several network modes for deathmatch
+and cooperative.")
     ;; Some parts (e.g. mrt/b64.cpp) are LGPLv2.1+, but the whole package is
     ;; released under GPLv2 or later.  It comes with extra exceptions for the
     ;; developers.
     (license (list license:gpl2+ license:lgpl2.1+))))
 
+(define-public battle-tanks
+  (deprecated-package "battle-tanks" btanks))
+
 (define-public slingshot
   (package
     (name "slingshot")
@@ -6358,7 +6518,7 @@ the desired spell.")
 (define-public edgar
   (package
     (name "edgar")
-    (version "1.30")
+    (version "1.31")
     (source
      (origin
        (method url-fetch)
@@ -6366,10 +6526,9 @@ the desired spell.")
         (string-append "https://github.com/riksweeney/edgar/releases/download/"
                        version "/edgar-" version "-1.tar.gz"))
        (sha256
-        (base32
-         "0bhbs33dg0nb8wqlh6px1jj41j05f89ngdqwdkffabmjk7wq5isx"))))
+        (base32 "0i4851ci8a86ql4bhdq3xdfmf4b9z5zrd4xpc6vhi06697zgm13i"))))
     (build-system gnu-build-system)
-    (arguments '(#:tests? #f                    ; there are no tests
+    (arguments '(#:tests? #f            ; there are no tests
                  #:make-flags
                  (list "CC=gcc"
                        (string-append "PREFIX=" (assoc-ref %outputs "out"))
@@ -6379,14 +6538,13 @@ the desired spell.")
                    (delete 'configure)
                    (add-before 'build 'fix-env
                      (lambda* (#:key inputs #:allow-other-keys)
-                       (setenv "CPATH" (string-append (assoc-ref inputs "sdl")
-                                                      "/include/SDL/"))
+                       (setenv "CPATH"
+                               (string-append (assoc-ref inputs "sdl2-union")
+                                              "/include/SDL2"))
                        #t)))))
-    (inputs `(("sdl" ,sdl)
-              ("sdl-img" ,sdl-image)
-              ("sdl-mixer" ,sdl-mixer)
-              ("sdl-ttf" ,sdl-ttf)
-              ("zlib" ,zlib)))
+    (inputs
+     `(("sdl2-union" ,(sdl-union (list sdl2 sdl2-image sdl2-mixer sdl2-ttf)))
+       ("zlib" ,zlib)))
     (native-inputs
      `(("pkg-config" ,pkg-config)
        ("autoconf" ,autoconf)
@@ -6401,3 +6559,571 @@ Edgar fears the worst: he has been captured by the evil sorcerer who lives in
 a fortress beyond the forbidden swamp.")
     (home-page "https://www.parallelrealities.co.uk/games/edgar/")
     (license license:gpl2+)))
+
+(define-public the-legend-of-edgar
+  (deprecated-package "the-legend-of-edgar" edgar))
+
+(define-public openclonk
+  (package
+    (name "openclonk")
+    (version "8.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "https://www.openclonk.org/builds/release/" version "/"
+                    "openclonk-" version "-src.tar.bz2"))
+              (sha256
+               (base32
+                "0imkqjp8lww5p0cnqf4k4mb2v682mnsas63qmiz17rspakr7fxik"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:configure-flags '("-DAudio_TK=OpenAL")
+       #:test-target "tests"
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'prepare-gmock
+           (lambda* (#:key inputs #:allow-other-keys)
+             (mkdir "gmock")
+             (copy-recursively (assoc-ref inputs "googlemock") "gmock")
+             (substitute* "tests/CMakeLists.txt"
+               (("/usr/src/gmock")
+                (string-append (getcwd) "/gmock/googlemock"))
+               (("/usr/src/gtest")
+                (string-append (getcwd) "/gmock/googletest"))
+               (("PATH_SUFFIXES \"src\" \"gtest\"")
+                "PATH_SUFFIXES \"src\""))
+             #t))
+         (add-after 'unpack 'add-libiberty
+           ;; Build fails upon linking executables without this.
+           (lambda _
+             (substitute* "thirdparty/backward-cpp/BackwardConfig.cmake"
+               (("set\\(LIBBFD_LIBRARIES (.*?)\\)" _ libraries)
+                (string-append "set(LIBBFD_LIBRARIES " libraries " iberty)")))
+             #t))
+         (add-after 'add-libiberty 'lax-freealut-requirement
+           ;; TODO: We provide freealut 1.1.0, but pkg-config somehow detects
+           ;; it as 1.0.1.  Force minimal version.
+           (lambda _
+             (substitute* "cmake/FindAudio.cmake"
+               (("freealut>=1.1.0") "freealut>=1.0.1"))
+             #t))
+         (add-after 'lax-freealut-requirement 'fix-directories
+           ;; Prefer "$out/share/openclonk" over
+           ;; "$out/share/games/openclonk". Also install "openclonk"
+           ;; binary in "bin/", not "games/".
+           (lambda _
+             (substitute* "CMakeLists.txt"
+               (("share/games/openclonk") "share/openclonk")
+               (("TARGETS openclonk DESTINATION games")
+                "TARGETS openclonk DESTINATION bin"))
+             #t)))))
+    (native-inputs
+     `(("googlemock" ,(package-source googletest))
+       ("googletest" ,googletest)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("freealut" ,freealut)
+       ("freetype" ,freetype)
+       ("glew" ,glew)
+       ("libiberty" ,libiberty)
+       ("libjpeg" ,libjpeg-turbo)
+       ("libogg" ,libogg)
+       ("libpng" ,libpng)
+       ("libvorbis" ,libvorbis)
+       ("libxrandr" ,libxrandr)
+       ("mesa" ,mesa)
+       ("miniupnpc" ,miniupnpc)
+       ("openal" ,openal)
+       ("qtbase" ,qtbase)
+       ("readline" ,readline)
+       ("sdl" ,sdl2)
+       ("tinyxml" ,tinyxml)
+       ("zlib" ,zlib)))
+    (home-page "https://www.openclonk.org/")
+    (synopsis
+     "Multiplayer action game where you control small and nimble humanoids")
+    (description "OpenClonk is a multiplayer action/tactics/skill game.  It is
+often referred to as a mixture of The Settlers and Worms.  In a simple 2D
+antfarm-style landscape, the player controls his crew of Clonks, small but
+robust humanoid beings.  The game encourages free play but the normal goal is
+to either exploit valuable resources from the earth by building a mine or
+fight each other on an arena-like map.")
+    ;; Software as a whole is licensed under ISC, artwork under CC-BY.
+    (license (list license:isc license:cc-by3.0))))
+
+(define-public flare-engine
+  (package
+    (name "flare-engine")
+    (version "1.09.01")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/flareteam/flare-engine.git")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1117nxir0zwz4pipx7sxj64p68ig6gbz94lkkjbgrk44lhs0hz8p"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:tests? #f                      ;no test
+       #:configure-flags '("-DBINDIR=bin" "-DDATADIR=share/flare")))
+    (inputs
+     `(("hicolor-icon-theme" ,hicolor-icon-theme)
+       ("python" ,python-wrapper)
+       ("sdl" ,(sdl-union (list sdl2 sdl2-image sdl2-mixer sdl2-ttf)))))
+    (home-page "http://www.flarerpg.org/")
+    (synopsis "Action Roleplaying Engine")
+    (description "Flare (Free Libre Action Roleplaying Engine) is a simple
+game engine built to handle a very specific kind of game: single-player 2D
+action RPGs.")
+    (license license:gpl3+)))
+
+(define-public flare-game
+  (package
+    (name "flare-game")
+    (version "1.09.01")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/flareteam/flare-game.git")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1hn2cchqsbvvgzqc6zvblnl3qrr6sp5rqxpsrcvdmbjm7b37x37b"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:tests? #f                      ;no test
+       #:configure-flags '("-DDATADIR=share/flare")
+       #:phases
+       (modify-phases %standard-phases
+         ;; Flare expects the mods to be located in the same folder.
+         ;; Yet, "default" mod is in the engine, whereas the others
+         ;; are in the current package.  Merge everything here with
+         ;; a symlink.
+         (add-after 'install 'add-default-mod
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (mods (string-append out "/share/flare/mods")))
+               (with-directory-excursion mods
+                 (symlink (string-append (assoc-ref inputs "flare-engine")
+                                         "/share/flare/mods/default")
+                          "default")))
+             #t))
+         (add-after 'install 'install-executable
+           ;; The package only provides assets for the game, the
+           ;; executable coming from "flare-engine".  Since more than
+           ;; one game may use the engine, we create a new executable,
+           ;; "flare-game", which launches the engine with appropriate
+           ;; parameters.
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (bash (string-append (assoc-ref inputs "bash")
+                                         "/bin/bash"))
+                    (flare (string-append (assoc-ref inputs "flare-engine")
+                                          "/bin/flare"))
+                    (script (string-append out "/bin/flare-game")))
+               (mkdir-p (dirname script))
+               (call-with-output-file script
+                 (lambda (port)
+                   (format port
+                           "#!~a
+exec ~a --data-path=~a/share/flare --mods=empyrean_campaign~%"
+                           bash
+                           flare
+                           out)))
+               (chmod script #o755))
+             #t)))))
+    (inputs
+     `(("flare-engine" ,flare-engine)))
+    (home-page "http://www.flarerpg.org/")
+    (synopsis "Fantasy action RPG using the FLARE engine")
+    (description "Flare is a single-player 2D action RPG with
+fast-paced action and a dark fantasy style.")
+    (license license:cc-by-sa3.0)))
+
+(define-public meritous
+  (package
+    (name "meritous")
+    (version "1.5")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://gitlab.com/meritous/meritous.git")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0n5jm4g0arjllgqmd2crv8h02i6hs3hlh1zyc7ng7yfpg1mbd8p8"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f                      ;no test
+       #:make-flags
+       (list "CC=gcc"
+             (string-append "prefix=" (assoc-ref %outputs "out")))
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure)
+         (add-after 'unpack 'fix-sdl-path
+           ;; XXX: For some reason, `sdl-config' reports stand-alone SDL
+           ;; directory, not SDL-union provided as an input to the package.
+           ;; We force the latter with "--prefix=" option.
+           (lambda* (#:key inputs #:allow-other-keys)
+             (substitute* "Makefile"
+               (("sdl-config" command)
+                (string-append command " --prefix=" (assoc-ref inputs "sdl"))))
+             #t))
+         (add-after 'unpack 'fix-crash
+           ;; XXX: Songs are not present in the repository, due to licensing
+           ;; issues.  Yet, the game tries to load them, and, since it cannot
+           ;; find them, crashes.  Users cannot add them back, the store being
+           ;; read-only, so we turn off background music altogether.
+           (lambda _
+             (substitute* "src/audio.c"
+               (("PlayBackgroundMusic\\(new_track\\);" all)
+                (string-append "// " all)))
+             #t)))))
+    (native-inputs
+     `(("intltool" ,intltool)))
+    (inputs
+     `(("sdl" ,(sdl-union (list sdl sdl-image sdl-mixer)))
+       ("zlib" ,zlib)))
+    (home-page "https://gitlab.com/meritous/meritous")
+    (synopsis "Action-adventure dungeon crawl game")
+    (description "Far below the surface of the planet is a place of limitless
+power.  Those that seek to control such a utopia will soon bring an end to
+themselves.  Seeking an end to the troubles that plague him, PSI user Merit
+journeys into the hallowed Orcus Dome in search of answers.
+
+Meritous is a action-adventure game with simple controls but a challenge to
+find a balance of power versus recovery time during real-time battles.  Set in
+a procedurally generated world, the player can explore thousands of rooms in
+search of powerful artifacts, tools to help them, and to eventually free the
+Orcus Dome from evil.")
+    (license license:gpl3+)))
+
+(define-public marble-marcher
+  (let ((commit "e580460a0c3826f9b28ab404607942a8ecb625d7")
+        (revision "1"))
+    (package
+      (name "marble-marcher")
+      (version (git-version "0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/HackerPoet/MarbleMarcher.git")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "0jjv832hl1v170n6gryp2sr3lgqndi9ab841qvgqk68bks8701mx"))))
+      (build-system cmake-build-system)
+      (arguments
+       `(#:tests? #f  ; there are none
+         #:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'embed-asset-directory
+             (lambda* (#:key outputs #:allow-other-keys)
+               (let ((assets (string-append (assoc-ref outputs "out")
+                                            "/share/marble-marcher/assets/")))
+                 ;; Some of the files we're patching are
+                 ;; ISO-8859-1-encoded, so choose it as the default
+                 ;; encoding so the byte encoding is preserved.
+                 (with-fluids ((%default-port-encoding #f))
+                   (substitute* "src/Resource.rc"
+                     (("../assets/icon.ico")
+                      (string-append assets "icon.ico")))
+                   (substitute* "src/Res.h"
+                     (("assets/") assets))))
+               #t))
+           (replace 'install
+             (lambda* (#:key outputs #:allow-other-keys)
+               (let* ((out (assoc-ref outputs "out"))
+                      (assets (string-append out "/share/marble-marcher/assets"))
+                      (bin (string-append out "/bin/")))
+                 (mkdir-p bin)
+                 (mkdir-p assets)
+                 (copy-recursively "../source/assets" assets)
+                 (install-file "MarbleMarcher" bin))
+               #t)))))
+      (inputs
+       `(("eigen" ,eigen)
+         ("mesa" ,mesa)
+         ("sfml" ,sfml)))
+      (native-inputs
+       `(("pkg-config" ,pkg-config)))
+      (home-page "https://codeparade.itch.io/marblemarcher")
+      (synopsis "Guide a marble across fractal landscapes")
+      (description "Marble Marcher is a video game that uses a fractal physics
+engine and fully procedural rendering to produce beautiful and unique
+gameplay.  The game is played on the surface of evolving fractals.  The goal
+of the game is to get your marble to the flag as quickly as possible.  But be
+careful not to fall off the level or get crushed by the fractal!  There are 24
+levels to unlock.")
+      ;; Code is under GPLv2+, assets are under CC-BY-SA 3.0 and OFL 1.1.
+      (license (list license:gpl2+
+                     license:silofl1.1
+                     license:cc-by-sa3.0)))))
+
+;; This must be updated together with flightgear.
+(define simgear
+  (package
+    (name "simgear")
+    (version "2018.3.2")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://sourceforge/flightgear/release-"
+                                  (version-major+minor version) "/"
+                                  "simgear-" version ".tar.bz2"))
+              (sha256
+               (base32
+                "1941ay8rngz4vwsx37bbpxr48hpcvcbj3xw1hy264lq4qnl99c68"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda _
+             ;; Skip tests that require internet access.
+             (invoke "ctest" "-E" "(http|dns)"))))))
+    (inputs
+     `(("boost" ,boost-for-mysql) ; fails with 1.69
+       ("curl" ,curl)
+       ("expat" ,expat)
+       ("mesa" ,mesa)
+       ("openal" ,openal)
+       ("openscenegraph" ,openscenegraph-3.4)
+       ("zlib" ,zlib)))
+    (home-page "https://home.flightgear.org/")
+    (synopsis "Libraries for 3D simulations and games")
+    (description "SimGear is a set of libraries designed to be used as
+building blocks for quickly assembling 3D simulations, games, and
+visualization applications.  SimGear is developed by the FlightGear project
+and also provides the base for the FlightGear Flight Simulator.")
+    (license license:lgpl2.0+)))
+
+(define-public flightgear
+  (package
+    (name "flightgear")
+    (version (package-version simgear))
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://sourceforge/flightgear/release-"
+                                  (version-major+minor version) "/"
+                                  "flightgear-" version ".tar.bz2"))
+              (sha256
+               (base32
+                "0lzy524cjzs8vldcjcc750bgg5c4mq9fkymxxxzqf68ilc4d1jss"))
+              (modules '((guix build utils)))
+              (snippet
+               '(begin
+                  ;; There are some bundled libraries.
+                  (for-each delete-file-recursively
+                            '("3rdparty/sqlite3/"))
+                  #t))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:configure-flags
+       (list "-DSYSTEM_SQLITE=ON"
+             (string-append "-DFG_DATA_DIR="
+                            (assoc-ref %outputs "out")
+                            "/share/flightgear"))
+       ;; TODO: test cannot be run because the "run_test_suite" executable
+       ;; does not seem to be built.
+       #:tests? #f
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'install 'wrap-executable
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out")))
+               (wrap-program (string-append out "/bin/fgfs")
+                 `("QT_PLUGIN_PATH" ":" prefix
+                   ,(map (lambda (label)
+                           (string-append (assoc-ref inputs label)
+                                          "/lib/qt5/plugins"))
+                         '("qtbase" "qtdeclarative" "qtsvg")))
+                 `("QML2_IMPORT_PATH" ":" prefix
+                   ,(map (lambda (label)
+                           (string-append (assoc-ref inputs label)
+                                          "/lib/qt5/qml"))
+                         '("qtdeclarative" "qtsvg"))))
+               #t)))
+         (add-after 'install 'install-data
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let ((share (string-append (assoc-ref outputs "out") "/share/flightgear")))
+               (mkdir-p share)
+               (with-directory-excursion share
+                 (invoke "tar" "xf" (assoc-ref inputs "flightgear-data")
+                         "--strip-components=1")))
+             #t)))))
+    (inputs
+     `(("boost" ,boost-for-mysql)       ; same as simgear
+       ("dbus" ,dbus)
+       ("eudev" ,eudev)
+       ("freeglut" ,freeglut)
+       ("freetype" ,freetype)
+       ("glew" ,glew)
+       ("libpng" ,libpng)
+       ("openal" ,openal)
+       ("openscenegraph" ,openscenegraph-3.4)
+       ("plib" ,plib)
+       ("qtbase" ,qtbase)
+       ("qtdeclarative" ,qtdeclarative)
+       ("qtsvg" ,qtsvg)
+       ("simgear" ,simgear)
+       ("speexdsp" ,speexdsp)
+       ("sqlite" ,sqlite)
+       ("zlib" ,zlib)))
+    (native-inputs
+     `(("cppunit" ,cppunit)
+       ("pkg-config" ,pkg-config)
+       ("qttools" ,qttools)
+       ("flightgear-data"
+        ,(origin
+           (method url-fetch)
+           (uri (string-append "mirror://sourceforge/flightgear/release-"
+                               (version-major+minor version) "/"
+                               "FlightGear-" version "-data.tar.bz2"))
+           (sha256
+            (base32
+             "0h4npa7gqpf5fw6pv2bpw0wbwr7fa2vhia21cjbigfgd75x82zi7"))))))
+    (home-page "https://home.flightgear.org/")
+    (synopsis "Flight simulator")
+    (description "The goal of the FlightGear project is to create a
+sophisticated flight simulator framework for use in research or academic
+environments, pilot training, as an industry engineering tool, for DIY-ers to
+pursue their favorite interesting flight simulation idea, and last but
+certainly not least as a fun, realistic, and challenging desktop flight
+simulator.")
+    (license license:gpl2+)))
+
+(define-public jumpnbump
+  (package
+    (name "jumpnbump")
+    (version "1.60")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://gitlab.com/LibreGames/jumpnbump.git")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0gwi58ck4magvdim8wmxdqnsi0fqdpvqia9kcc7q73nqf34jjz3v"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:make-flags
+       (list "CC=gcc"
+             (string-append "PREFIX=" (assoc-ref %outputs "out")))
+       #:tests? #f                      ;no test
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure)            ;no configure script
+         (add-after 'unpack 'fix-sdl-path
+           ;; XXX: For some reason, `sdl2-config' reports stand-alone SDL
+           ;; directory, not SDL-union provided as an input to the package.
+           ;; We force the latter with "--prefix=" option.
+           (lambda* (#:key inputs #:allow-other-keys)
+             (substitute* "Makefile"
+               (("sdl2-config" command)
+                (string-append command " --prefix=" (assoc-ref inputs "sdl"))))
+             #t)))))
+    (inputs
+     `(("bzip2" ,bzip2)
+       ("sdl" ,(sdl-union (list sdl2 sdl2-mixer sdl2-net)))
+       ("zlib" ,zlib)))
+    (native-inputs
+     `(("gettext" ,gettext-minimal)))   ;for msgfmt
+    (home-page "https://gitlab.com/LibreGames/jumpnbump")
+    (synopsis "Multiplayer platform game with bunnies")
+    (description "You, as a bunny, have to jump on your opponents to make them
+explode.  It is a true multiplayer game; you cannot play this alone.  You can
+play with up to four players simultaneously.  It has network support.")
+    (license license:gpl2+)))
+
+(define-public hedgewars
+  (package
+    (name "hedgewars")
+    (version "0.9.25")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://www.hedgewars.org/download/releases/"
+                                  "hedgewars-src-" version ".tar.bz2"))
+              (sha256
+               (base32
+                "08x7fqpy0hpnbfq2k06g522xayi7s53bca819zfhalvqnqs76pdk"))))
+    (build-system cmake-build-system)
+    (arguments
+     ;; 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")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'remove-failing-test
+           ;; XXX: Remove single failing test.  Note: it is marked
+           ;; a "non-critical" test.
+           (lambda _
+             (delete-file-recursively "tests/lua_noncritical")
+             #t))
+         (add-after 'unpack 'fix-compiler
+           ;; XXX: Flag BUILD_ENGINE_C, as set above, implies using Clang to
+           ;; compile files.  However, using `clang' globally leads to the
+           ;; error: qtbase-5.11.3/include/qt5/QtCore/qglobal.h:45:12: fatal
+           ;; error: 'type_traits' file not found.
+           ;;
+           ;; Therefore, we make sure to use `c++' everywhere but in the
+           ;; engine.
+           (lambda _
+             (substitute* "project_files/hwc/CMakeLists.txt"
+               (("find_package\\(SDL2_ttf 2 REQUIRED\\)" all)
+                (string-append all "\n"
+                               "set(CMAKE_C_COMPILER ${CLANG_EXECUTABLE})\n"
+                               "set(CMAKE_CXX_COMPILER ${CLANG_EXECUTABLE})")))
+             (substitute* "CMakeLists.txt"
+               (("set\\(CMAKE_C(XX)?_COMPILER" all) (string-append "#" all)))
+             #t))
+         (replace 'check
+           (lambda _
+             (invoke "ctest"))))))
+    (inputs
+     `(("ffmpeg" ,ffmpeg)
+       ("freeglut" ,freeglut)
+       ("ghc-entropy" ,ghc-entropy)
+       ("ghc-hslogger" ,ghc-hslogger)
+       ("ghc-network" ,ghc-network)
+       ("ghc-random" ,ghc-random)
+       ("ghc-regex-tdfa" ,ghc-regex-tdfa)
+       ("ghc-sandi" ,ghc-sandi)
+       ("ghc-sha" ,ghc-sha)
+       ("ghc-utf8-string" ,ghc-utf8-string)
+       ("ghc-vector" ,ghc-vector)
+       ("ghc-zlib" ,ghc-zlib)
+       ("glew" ,glew)
+       ("libpng" ,libpng)
+       ("lua" ,lua-5.1)
+       ("physfs" ,physfs)
+       ("qtbase" ,qtbase)
+       ("sdl" ,(sdl-union
+                (list sdl2 sdl2-mixer sdl2-net sdl2-ttf sdl2-image)))))
+    (native-inputs
+     `(("clang" ,clang)
+       ("ghc" ,ghc)
+       ("pkg-config" ,pkg-config)
+       ("qttools" ,qttools)))
+    (home-page "https://hedgewars.org/")
+    (synopsis "Turn-based artillery game featuring fighting hedgehogs")
+    (description
+     "Hedgewars is a turn based strategy, artillery, action and comedy game,
+featuring the antics of pink hedgehogs with attitude as they battle from the
+depths of hell to the depths of space.
+
+As commander, it's your job to assemble your crack team of hedgehog soldiers
+and bring the war to your enemy.")
+    ;; Software as a whole is licensed under GPL-2 terms.  Artwork and
+    ;; scripts are distributed under various terms.
+    (license (list license:gpl2
+                   license:bsd-2 license:bsd-3 license:cc-by3.0 license:cc0
+                   license:expat license:fdl1.3+ license:public-domain
+                   license:zlib))))
diff --git a/gnu/packages/geo.scm b/gnu/packages/geo.scm
index 4761a277ae..0b95fbe613 100644
--- a/gnu/packages/geo.scm
+++ b/gnu/packages/geo.scm
@@ -746,14 +746,14 @@ to create databases that are optimized for rendering/tile/map-services.")
     (name "libosmium")
     (version "2.14.2")
     (source
-      (origin
-        (method url-fetch)
-        (uri (string-append "https://github.com/osmcode/libosmium/archive/v"
-                version ".tar.gz"))
-    (file-name (string-append name "-" version ".tar.gz"))
-        (sha256
-         (base32
-          "0d9b46qiw7zkw1h9lygjdwqxnbhm3c7v8kydzw9f9f778cyagc94"))))
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/osmcode/libosmium.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "123ri1l0a2b9fljgpwsl7z2w4i3kmgxz79d4ns9z4mwbp8sw0250"))))
     (build-system cmake-build-system)
     (propagated-inputs
      `(("boost" ,boost)
@@ -776,20 +776,21 @@ OpenStreetMap data.")
   (package
     (name "osm2pgsql")
     (version "0.96.0")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://github.com/openstreetmap/osm2pgsql/archive/"
-                                  version ".tar.gz"))
-              (file-name (string-append name "-" version ".tar.gz"))
-              (sha256
-               (base32
-                "08y7776r4l9v9177a4q6cfdri0lpirky96m6g699hwl7v1vhw0mn"))
-              (modules '((guix build utils)))
-              (snippet
-               '(begin
-                  (delete-file-recursively "contrib/protozero")
-                  (delete-file-recursively "contrib/libosmium")
-                  #t))))
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/openstreetmap/osm2pgsql.git")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "032cydh8ynaqfhdzmkvgbmqyjql668y6qln1l59l2s3ni9963bbl"))
+       (modules '((guix build utils)))
+       (snippet
+        '(begin
+           (delete-file-recursively "contrib/protozero")
+           (delete-file-recursively "contrib/libosmium")
+           #t))))
     (build-system cmake-build-system)
     (arguments
      `(#:tests? #f; tests fail because we need to setup a database
@@ -823,14 +824,15 @@ map, geocoding with Nominatim, or general analysis.")
   (package
     (name "tippecanoe")
     (version "1.31.5")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://github.com/mapbox/tippecanoe/archive/"
-                                  version ".tar.gz"))
-              (file-name (string-append name "-" version ".tar.gz"))
-              (sha256
-               (base32
-                "1057na1dkgjaryr7jr15lqkxpam111d3l5zdpdkqzzzpxmdjxqcf"))))
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/mapbox/tippecanoe.git")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1m0x931a945sr7axyhcvpwh798m58hx1zxh6ikgf9gsgqhdhmszz"))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases
diff --git a/gnu/packages/ghostscript.scm b/gnu/packages/ghostscript.scm
index d8c0050513..53a9b60fdb 100644
--- a/gnu/packages/ghostscript.scm
+++ b/gnu/packages/ghostscript.scm
@@ -4,7 +4,7 @@
 ;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2013, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2017 Alex Vong <alexvong1995@gmail.com>
-;;; Copyright © 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2017 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Marius Bakke <mbakke@fastmail.com>
@@ -47,6 +47,7 @@
 (define-public lcms
   (package
    (name "lcms")
+   (replacement lcms/fixed)
    (version "2.9")
    (source (origin
             (method url-fetch)
@@ -67,6 +68,14 @@ Consortium standard (ICC), approved as ISO 15076-1.")
    (home-page "http://www.littlecms.com/")
    (properties '((cpe-name . "little_cms_color_engine")))))
 
+(define lcms/fixed
+  (package
+    (inherit lcms)
+    (source
+      (origin
+        (inherit (package-source lcms))
+        (patches (search-patches "lcms-CVE-2018-16435.patch"))))))
+
 (define-public libpaper
   (package
    (name "libpaper")
diff --git a/gnu/packages/gimp.scm b/gnu/packages/gimp.scm
index 575666fdeb..3ead5b32a3 100644
--- a/gnu/packages/gimp.scm
+++ b/gnu/packages/gimp.scm
@@ -118,7 +118,7 @@ buffers.")
 (define-public gimp
   (package
     (name "gimp")
-    (version "2.10.8")
+    (version "2.10.10")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://download.gimp.org/pub/gimp/v"
@@ -126,7 +126,7 @@ buffers.")
                                   "/gimp-" version ".tar.bz2"))
               (sha256
                (base32
-                "16sb4kslwin2jbgdb4nhks78pd0af8mvj8g5hap3hj946p7w2jfq"))))
+                "0xwck5nbpb945s1cyij3kfqw1pchbhx8i5vf5hgywyjw4r1z5l8j"))))
     (build-system gnu-build-system)
     (outputs '("out"
                "doc"))                            ; 9 MiB of gtk-doc HTML
@@ -368,5 +368,5 @@ MyPaint.")
      "This package provides resynthesizer plugins for GIMP, which encompasses
 tools for healing selections (content-aware fill), enlarging the canvas and
 healing the border, increasing the resolution while adding detail, and
-transfering the style of an image.")
+transferring the style of an image.")
     (license license:gpl3+)))
diff --git a/gnu/packages/gl.scm b/gnu/packages/gl.scm
index 7ee267c9e2..72f450c5f7 100644
--- a/gnu/packages/gl.scm
+++ b/gnu/packages/gl.scm
@@ -120,7 +120,7 @@ as ASCII text.")
      "Freeglut is a completely Free/OpenSourced alternative to
 the OpenGL Utility Toolkit (GLUT) library.  GLUT was originally
 written by Mark Kilgard to support the sample programs in the
-second edition OpenGL 'RedBook'.  Since then, GLUT has been used
+second edition OpenGL @code{RedBook}.  Since then, GLUT has been used
 in a wide variety of practical applications because it is simple,
 widely available and highly portable.
 
@@ -158,6 +158,8 @@ the X-Consortium license.")
                (base32
                 "0nsn4s6vnv5xcgxcw6q031amvh2zfj2smy1r5mbnjj2548hxcn2l"))))
     (build-system gnu-build-system)
+    (arguments
+     `(#:configure-flags '("--disable-static")))
     ;; The pkg-config file lists "freetype2" as Requires.private.
     (propagated-inputs `(("freetype" ,freetype)))
     (inputs `(("libx11" ,libx11)
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index e8c5659a09..08ac1f1358 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -33,6 +33,7 @@
 ;;; Copyright © 2018 Vasile Dumitrascu <va511e@yahoo.com>
 ;;; Copyright © 2018 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
 ;;; Copyright © 2018, 2019 Timothy Sample <samplet@ngyro.com>
+;;; Copyright © 2019 Danny Milosavljevic <dannym@scratchpost.org>
 ;;; Copyright © 2019 Marius Bakke <mbakke@fastmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -112,6 +113,7 @@
   #:use-module (gnu packages nettle)
   #:use-module (gnu packages networking)
   #:use-module (gnu packages ninja)
+  #:use-module (gnu packages nss)
   #:use-module (gnu packages openldap)
   #:use-module (gnu packages password-utils)
   #:use-module (gnu packages pcre)
@@ -392,7 +394,7 @@ formats like PNG, SVG, PDF and EPS.")
        ("libsoup" ,libsoup)))
     (propagated-inputs
      `(("gcr" ,gcr)
-       ("gnome-online-accounts" ,gnome-online-accounts)
+       ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
        ("liboauth" ,liboauth)
        ("libxml2" ,libxml2)))
     (home-page "https://wiki.gnome.org/Projects/libgdata")
@@ -2322,7 +2324,7 @@ editors, IDEs, etc.")
   (package
     (inherit vte)
     (name "vte-ng")
-    (version "0.54.2.a")
+    (version "0.56.2.a")
     (home-page "https://github.com/thestinger/vte-ng")
     (source (origin
               (method git-fetch)
@@ -2330,10 +2332,11 @@ editors, IDEs, etc.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1r7d9m07cpdr4f7rw3yx33hmp4jmsk0dn5byq5wgksb2qjbc4ags"))))
+                "1lmba6i0abifmvvfb1q63ql6zh6d38148kp6skmkggiib2hi5dki"))))
     (native-inputs
      `(("gtk-doc" ,gtk-doc)
        ("gperf" ,gperf)
+       ("gcc" ,gcc-7)
        ("autoconf" ,autoconf)
        ("automake" ,automake)
        ("libtool" ,libtool)
@@ -2342,6 +2345,9 @@ editors, IDEs, etc.")
      `(#:phases (modify-phases %standard-phases
                   (replace 'bootstrap
                     (lambda _
+                      ;; Work around GCC7 problem: <https://bugs.gnu.org/30756>.
+                      (for-each unsetenv '("C_INCLUDE_PATH" "CPLUS_INCLUDE_PATH"))
+
                       (setenv "NOCONFIGURE" "true")
                       (invoke "sh" "autogen.sh"))))))
   (synopsis "Enhanced VTE terminal widget")
@@ -2665,7 +2671,7 @@ libxml to ease remote use of the RESTful API.")
 (define-public libsoup
   (package
     (name "libsoup")
-    (version "2.66.0")
+    (version "2.66.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/libsoup/"
@@ -2673,7 +2679,7 @@ libxml to ease remote use of the RESTful API.")
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "08c9kkdhzy504gv23pfdm4sq3dd3j20sikwz6gv0qrwcdjnw5bai"))))
+                "1zs3bhspwg7fggxd7x1rrggpkcf2j9ch6dhncq9syh252z0vcb2a"))))
     (build-system meson-build-system)
     (outputs '("out" "doc"))
     (arguments
@@ -4308,15 +4314,15 @@ work and the interface is well tested.")
 (define-public eolie
   (package
     (name "eolie")
-    (version "0.9.52")
+    (version "0.9.60")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://gitlab.gnome.org/World/eolie/"
-                                  "uploads/d95bf72958276c80dfaca8cce0e4e92c/"
+                                  "uploads/3b2ceb7eb15860587db6886bfdd8a91e/"
                                   "eolie-" version ".tar.xz"))
               (sha256
                (base32
-                "1s3b0rkm8sxmhzzi624snzqvz61i1rja5wxyzw6jg2kcdjcylwln"))))
+                "1s9gkzxa6457v6bh0q8n1ijq1chd2jwgvhk5kppsnya7kxvsx8qh"))))
     (build-system meson-build-system)
     (arguments
      `(#:glib-or-gtk? #t
@@ -4375,9 +4381,9 @@ a secret password store, an adblocker, and a modern UI.")
     (version "3.28.3.1")
     (source (origin
               (method url-fetch)
-              (uri (string-append "mirror://gnome/sources/" name "/"
+              (uri (string-append "mirror://gnome/sources/epiphany/"
                                   (version-major+minor version) "/"
-                                  name "-" version ".tar.xz"))
+                                  "epiphany-" version ".tar.xz"))
               (sha256
                (base32
                 "1xz6xl6b0iihvczyr0cs1z5ifvpai6anb4m0ng1caiph06klc1b9"))))
@@ -5061,7 +5067,23 @@ window manager.")
               (sha256
                (base32
                 "035lmm21imr7ddpzffqabv53g3ggjscmqvlzy3j1qkv00zrlxg47"))))
+    (outputs '("out" "lib"))
     (build-system glib-or-gtk-build-system)
+    (arguments
+     `(#:configure-flags
+       (list (string-append "--libdir=" (assoc-ref %outputs "out") "/lib"))
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'configure 'patch-libgoa-output
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((lib (assoc-ref outputs "lib")))
+               (substitute* '("src/goa/Makefile.in" "src/goa/goa-1.0.pc.in")
+                 (("@prefix@") lib)
+                 (("@exec_prefix@") lib)
+                 (("@libdir@") (string-append lib "/lib"))
+                 (("@includedir@") (string-append lib "/include"))
+                 (("@datadir@") (string-append lib "/share")))
+               #t))))))
     (native-inputs
      `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
        ("gobject-introspection" ,gobject-introspection)
@@ -5098,6 +5120,7 @@ Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.")
               (sha256
                (base32
                 "11sq795115vrcgxl9svscm6wg8isjj784c3d84qzb6z47zq92zj3"))))
+    (outputs '("out" "libedataserverui"))
     (build-system cmake-build-system)
     (arguments
      '(;; XXX FIXME: 11/85 tests are failing.
@@ -5138,7 +5161,28 @@ Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.")
                ;; CMakeLists.txt hard-codes runpath to just the libdir.
                ;; Remove it so the configure flag is respected.
                (("SET\\(CMAKE_INSTALL_RPATH .*") ""))
-             #t)))))
+             #t))
+         (add-after 'install 'split
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out"))
+                   (libedsui (assoc-ref outputs "libedataserverui")))
+               (for-each (lambda (file)
+                           (mkdir-p (dirname (string-append libedsui file)))
+                           (rename-file (string-append out file)
+                                        (string-append libedsui file)))
+                         '("/lib/pkgconfig/libedataserverui-1.2.pc"
+                           "/lib/libedataserverui-1.2.so"
+                           "/lib/libedataserverui-1.2.so.2"
+                           "/lib/libedataserverui-1.2.so.2.0.0"
+                           "/lib/girepository-1.0/EDataServerUI-1.2.typelib"
+                           "/include/evolution-data-server/libedataserverui"
+                           "/share/gir-1.0/EDataServerUI-1.2.gir"
+                           "/share/vala/vapi/libedataserverui-1.2.vapi"
+                           "/share/vala/vapi/libedataserverui-1.2.deps"))
+               (substitute* (string-append libedsui "/lib/pkgconfig/"
+                                           "libedataserverui-1.2.pc")
+                 ((out) libedsui))
+               #t))))))
     (native-inputs
      `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
        ("gobject-introspection" ,gobject-introspection)
@@ -5158,7 +5202,7 @@ Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.")
     (inputs
      `(("bdb" ,bdb)
        ("gcr" ,gcr)
-       ("gnome-online-accounts" ,gnome-online-accounts)
+       ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
        ("json-glib" ,json-glib)
        ("libgweather" ,libgweather)
        ("mit-krb5" ,mit-krb5)
@@ -5554,7 +5598,7 @@ libxml2.")
        (modify-phases %standard-phases
          (add-before
           'configure 'pre-configure
-          (lambda* (#:key inputs #:allow-other-keys)
+          (lambda* (#:key inputs outputs #:allow-other-keys)
             ;; We don't have <systemd/sd-daemon.h>.
             (substitute* '("common/gdm-log.c"
                            "daemon/gdm-server.c"
@@ -5622,7 +5666,40 @@ libxml2.")
               (("\"gnome-session\"")
                (string-append "\"" (assoc-ref inputs "gnome-session")
                               "/bin/gnome-session\"")))
+            ;; Do not automatically select the placeholder session.
+            (substitute* "daemon/gdm-session.c"
+              (("!g_str_has_suffix [(]base_name, \"\\.desktop\"[)]")
+               (string-append "!g_str_has_suffix (base_name, \".desktop\") || "
+                              "(g_strcmp0(search_dirs[i], \""
+                              (assoc-ref outputs "out") "/share/gdm/BuiltInSessions/"
+                              "\") == 0 && "
+                              "g_strcmp0(base_name, \"fail.desktop\") == 0)"))
+              (("g_error [(]\"GdmSession: no session desktop files installed, aborting\\.\\.\\.\"[)];")
+               "{ self->priv->fallback_session_name = g_strdup(\"fail\"); goto out; }"))
             #t))
+         ;; GDM requires that there be at least one desktop entry
+         ;; file.  This phase installs a hidden one that simply
+         ;; fails.  This enables users to use GDM with a
+         ;; '~/.xsession' script with no other desktop entry files.
+         ;; See <https://bugs.gnu.org/35068>.
+         (add-after 'install 'install-placeholder-desktop-entry
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (sessions (string-append out "/share/gdm/BuiltInSessions"))
+                    (fail (string-append sessions "/fail.desktop")))
+               (mkdir-p sessions)
+               (with-output-to-file fail
+                 (lambda ()
+                   (for-each
+                    display
+                    '("[Desktop Entry]\n"
+                      "Encoding=UTF-8\n"
+                      "Type=Application\n"
+                      "Name=Fail\n"
+                      "Comment=This session fails immediately.\n"
+                      "NoDisplay=true\n"
+                      "Exec=false\n"))))
+               #t)))
          ;; GDM needs GNOME Session to run these applications.  We link
          ;; their autostart files in `share/gdm/greeter/autostart'
          ;; because GDM explicitly tells GNOME Session to look there.
@@ -5774,6 +5851,7 @@ devices using the GNOME desktop.")
        ("gnome-bluetooth" ,gnome-bluetooth)
        ("gnome-desktop" ,gnome-desktop)
        ("gnome-online-accounts" ,gnome-online-accounts)
+       ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
        ("gnome-settings-daemon" ,gnome-settings-daemon)
        ("grilo" ,grilo)
        ("ibus" ,ibus)
@@ -5859,6 +5937,17 @@ properties, screen resolution, and other GNOME parameters.")
              ;; Convert the logo from SVG to PNG.
              (invoke "inkscape" "--export-png=data/theme/guix-logo.png"
                      "data/theme/guix-logo.svg")))
+         (add-before 'configure 'record-absolute-file-names
+           (lambda* (#:key inputs #:allow-other-keys)
+             (substitute* "js/misc/ibusManager.js"
+               (("'ibus-daemon'")
+                (string-append "'" (assoc-ref inputs "ibus")
+                               "/bin/ibus-daemon'")))
+             (substitute* "js/ui/status/keyboard.js"
+               (("'gkbd-keyboard-display'")
+                (string-append "'" (assoc-ref inputs "libgnomekbd")
+                               "/bin/gkbd-keyboard-display'")))
+             #t))
          (add-before 'check 'pre-check
            (lambda* (#:key inputs #:allow-other-keys)
              ;; Tests require a running X server.
@@ -5878,7 +5967,8 @@ properties, screen resolution, and other GNOME parameters.")
                  `("LD_LIBRARY_PATH" ":" prefix
                    ,(map (lambda (pkg)
                            (string-append (assoc-ref inputs pkg) "/lib"))
-                         '("gnome-bluetooth" "librsvg" "libgweather"))))
+                         '("gdk-pixbuf"
+                           "gnome-bluetooth" "librsvg" "libgweather"))))
                (for-each
                 (lambda (prog)
                   (wrap-program (string-append out "/bin/" prog)
@@ -5915,15 +6005,16 @@ properties, screen resolution, and other GNOME parameters.")
        ("evolution-data-server" ,evolution-data-server)
        ("gcr" ,gcr)
        ("gdm" ,gdm)
+       ("gdk-pixbuf" ,gdk-pixbuf+svg)
        ("gjs" ,gjs)
        ("gnome-bluetooth" ,gnome-bluetooth)
-       ("gnome-control-center" ,gnome-control-center)
        ("gnome-desktop" ,gnome-desktop)
        ("gnome-settings-daemon" ,gnome-settings-daemon)
        ("gst-plugins-base" ,gst-plugins-base)
        ("ibus" ,ibus)
        ("libcanberra" ,libcanberra)
        ("libcroco" ,libcroco)
+       ("libgnomekbd" ,libgnomekbd)               ;for gkbd-keyboard-display
        ("libgweather" ,libgweather)
        ("libsoup" ,libsoup)
        ("mesa-headers" ,mesa-headers)
@@ -6484,7 +6575,7 @@ library.")
        ("intltool" ,intltool)
        ("pkg-config" ,pkg-config)))
     (inputs
-     `(("gnome-online-accounts" ,gnome-online-accounts)
+     `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
        ("json-glib" ,json-glib)
        ("rest" ,rest)))
     (home-page "https://wiki.gnome.org/Projects/Zapojit")
@@ -6557,9 +6648,10 @@ desktop.  It supports world clock, stop watch, alarms, and count down timer.")
        ("pkg-config" ,pkg-config)))
     (inputs
      `(("evolution-data-server" ,evolution-data-server)
-       ("gnome-online-accounts" ,gnome-online-accounts)
+       ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
        ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
        ("libdazzle" ,libdazzle)
+       ("libedataserverui" ,evolution-data-server "libedataserverui")
        ("libgweather" ,libgweather)
        ("geoclue" ,geoclue)))
     (home-page "https://wiki.gnome.org/Apps/Calendar")
@@ -6607,11 +6699,12 @@ desktop.  It supports multiple calendars, month, week and year view.")
     (inputs
      `(("rest" ,rest)                   ; For Todoist plugin
        ("json-glib" ,json-glib)         ; For Todoist plugin
+       ("libedataserverui" ,evolution-data-server "libedataserverui")
        ("libical" ,libical)
        ("libpeas" ,libpeas)
        ("python-pygobject" ,python-pygobject)
        ("evolution-data-server" ,evolution-data-server)
-       ("gnome-online-accounts" ,gnome-online-accounts)
+       ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
        ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
     (home-page "https://wiki.gnome.org/Apps/Todo")
     (synopsis "GNOME's ToDo Application")
@@ -6940,7 +7033,7 @@ compiled.")
        ("gobject-introspection" ,gobject-introspection)))
     (inputs
      `(("json-glib" ,json-glib)
-       ("gnome-online-accounts" ,gnome-online-accounts)
+       ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
        ("rest" ,rest)))
     (synopsis "GLib/GObject wrapper for the Facebook API")
     (description "This library allows you to use the Facebook API from
@@ -7822,6 +7915,7 @@ generic enough to work for everyone.")
        ("gtkspell3" ,gtkspell3)
        ("highlight" ,highlight)
        ("libcanberra" ,libcanberra)
+       ("libedataserverui" ,evolution-data-server "libedataserverui")
        ("libgweather" ,libgweather)
        ("libnotify" ,libnotify)
        ("libsoup" ,libsoup)
diff --git a/gnu/packages/gnucash.scm b/gnu/packages/gnucash.scm
index 2207dd3fae..5b4da97e5d 100644
--- a/gnu/packages/gnucash.scm
+++ b/gnu/packages/gnucash.scm
@@ -104,8 +104,7 @@
          (add-after 'unpack 'unpack-gmock
            (lambda* (#:key inputs #:allow-other-keys)
              (mkdir "gmock")
-             (invoke "tar" "xf" (assoc-ref inputs "googlemock")
-                     "-C" "gmock" "--strip-components=1")
+             (copy-recursively (assoc-ref inputs "googlemock") "gmock")
              (setenv "GMOCK_ROOT" (string-append (getcwd) "/gmock/googlemock"))
              #t))
          (add-after 'unpack 'set-env-vars
@@ -165,14 +164,14 @@
                                         ,@(transitive-input-references
                                            'inputs
                                            (map (lambda (l)
-                                                  (assoc l (inputs)))
+                                                  (assoc l (package-inputs this-package)))
                                                 '("perl-finance-quote"
                                                   "perl-date-manip"))))
                                        (list
                                         ,@(transitive-input-references
                                            'inputs
                                            (map (lambda (l)
-                                                  (assoc l (inputs)))
+                                                  (assoc l (package-inputs this-package)))
                                                 '("perl-finance-quote")))))))))
                        '("gnucash"
                          "gnc-fq-check"
diff --git a/gnu/packages/gnunet.scm b/gnu/packages/gnunet.scm
index 19e99644dd..09fad6a268 100644
--- a/gnu/packages/gnunet.scm
+++ b/gnu/packages/gnunet.scm
@@ -1,7 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2013, 2014, 2015 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2014 Sree Harsha Totakura <sreeharsha@totakura.in>
-;;; Copyright © 2015, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2015, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2015, 2017, 2019 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2016 Mark H Weaver <mhw@netris.org>
@@ -35,7 +35,6 @@
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages gnupg)
-  #:use-module (gnu packages gnuzilla)
   #:use-module (gnu packages groff)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages guile)
@@ -48,6 +47,7 @@
   #:use-module (gnu packages multiprecision)
   #:use-module (gnu packages music)
   #:use-module (gnu packages ncurses)
+  #:use-module (gnu packages nss)
   #:use-module (gnu packages package-management)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages perl)
diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm
index 5f4badf4ef..47fcf5569d 100644
--- a/gnu/packages/gnupg.scm
+++ b/gnu/packages/gnupg.scm
@@ -223,14 +223,14 @@ compatible to GNU Pth.")
 (define-public gnupg
   (package
     (name "gnupg")
-    (version "2.2.14")
+    (version "2.2.15")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnupg/gnupg/gnupg-" version
                                   ".tar.bz2"))
               (sha256
                (base32
-                "0yzqrg24j9fc4f8ss5pclyvg70a9z53sv89vl77xii8yvi3fvy8v"))))
+                "0m6lyphbb20i84isdxzfhcbzyc682hdrdv4aqkzmhrdksycf536b"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)))
@@ -368,7 +368,7 @@ libskba (working with X.509 certificates and CMS data).")
 (define-public gpgme
   (package
     (name "gpgme")
-    (version "1.12.0")
+    (version "1.13.0")
     (source
      (origin
       (method url-fetch)
@@ -376,16 +376,7 @@ libskba (working with X.509 certificates and CMS data).")
                           ".tar.bz2"))
       (sha256
        (base32
-        "1n4c1q2ls7sqx1vpr3p5n8vbjkw6kqp8jxqa28p0x9j36wf9bp5l"))
-      ;; One test fails because the conflict keys have expired.  See
-      ;; https://dev.gnupg.org/T3815
-      (patches (list (origin
-                       (method url-fetch)
-                       (uri "https://dev.gnupg.org/rM66376f3e206a1aa791d712fb8577bb3490268f60?diff=1")
-                       (file-name "gpgme-fix-conflict-test-keys.patch")
-                       (sha256
-                        (base32
-                         "0j718iy5a9fhkrfs4gzrnm4ggi163prqf1i8lfmqczswvz88zfly")))))))
+        "0c6676g0yhfsmy32i1dgwh5cx0ja8vhcqf4k08zad177m53kxcnl"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("gnupg" ,gnupg)))
diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm
index 4260dfc15d..afebc82cf1 100644
--- a/gnu/packages/gnuzilla.scm
+++ b/gnu/packages/gnuzilla.scm
@@ -1,6 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2013, 2015 Andreas Enge <andreas@enge.fr>
-;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com>
 ;;; Copyright © 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
@@ -45,7 +45,6 @@
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages base)
   #:use-module (gnu packages bash)
-  #:use-module (gnu packages check)
   #:use-module (gnu packages databases)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gtk)
@@ -70,6 +69,7 @@
   #:use-module (gnu packages assembly)
   #:use-module (gnu packages rust)
   #:use-module (gnu packages llvm)
+  #:use-module (gnu packages nss)
   #:use-module (gnu packages icu4c)
   #:use-module (gnu packages video)
   #:use-module (gnu packages xiph)
@@ -190,7 +190,7 @@ in C/C++.")
     (source (origin
               (method url-fetch)
               (uri (string-append
-                    "https://people.mozilla.org/~sstangl/"
+                    "https://anduin.linuxfromscratch.org/BLFS/mozjs/"
                     name "-" version ".tar.bz2"))
               (sha256
                (base32
@@ -404,158 +404,6 @@ in C/C++.")
        ("pkg-config" ,pkg-config)
        ("python" ,python-2)))))
 
-(define-public nspr
-  (package
-    (name "nspr")
-    (version "4.21")
-    (source (origin
-             (method url-fetch)
-             (uri (string-append
-                   "https://ftp.mozilla.org/pub/mozilla.org/nspr/releases/v"
-                   version "/src/nspr-" version ".tar.gz"))
-             (sha256
-              (base32
-               "0nkbgk0x31nfm4xl8la0a3vrnpa8gzkh7g4k65p7n880n73k5shm"))))
-    (build-system gnu-build-system)
-    (native-inputs
-     `(("perl" ,perl)))
-    (arguments
-     `(#:tests? #f ; no check target
-       #:configure-flags (list "--enable-64bit"
-                               (string-append "LDFLAGS=-Wl,-rpath="
-                                              (assoc-ref %outputs "out")
-                                              "/lib"))
-       ;; Use fixed timestamps for reproducibility.
-       #:make-flags '("SH_DATE='1970-01-01 00:00:01'"
-                      ;; This is epoch 1 in microseconds.
-                      "SH_NOW=100000")
-       #:phases (modify-phases %standard-phases
-                  (add-before 'configure 'chdir
-                    (lambda _ (chdir "nspr") #t)))))
-    (home-page
-     "https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSPR")
-    (synopsis "Netscape API for system level and libc-like functions")
-    (description "Netscape Portable Runtime (@dfn{NSPR}) provides a
-platform-neutral API for system level and libc-like functions.  It is used
-in the Mozilla clients.")
-    (license license:mpl2.0)))
-
-(define-public nss
-  (package
-    (name "nss")
-    (version "3.43")
-    (source (origin
-              (method url-fetch)
-              (uri (let ((version-with-underscores
-                          (string-join (string-split version #\.) "_")))
-                     (string-append
-                      "https://ftp.mozilla.org/pub/mozilla.org/security/nss/"
-                      "releases/NSS_" version-with-underscores "_RTM/src/"
-                      "nss-" version ".tar.gz")))
-              (sha256
-               (base32
-                "1jp27w4w9nj5pkzrbc1zqj6pa09h2yy7vhzyx5fvg1q86fvw22zk"))
-              ;; Create nss.pc and nss-config.
-              (patches (search-patches "nss-pkgconfig.patch"
-                                       "nss-increase-test-timeout.patch"))))
-    (build-system gnu-build-system)
-    (outputs '("out" "bin"))
-    (arguments
-     `(#:parallel-build? #f ; not supported
-       #:make-flags
-       (let* ((out (assoc-ref %outputs "out"))
-              (nspr (string-append (assoc-ref %build-inputs "nspr")))
-              (rpath (string-append "-Wl,-rpath=" out "/lib/nss")))
-         (list "-C" "nss" (string-append "PREFIX=" out)
-               "NSDISTMODE=copy"
-               "NSS_USE_SYSTEM_SQLITE=1"
-               (string-append "NSPR_INCLUDE_DIR=" nspr "/include/nspr")
-               ;; Add $out/lib/nss to RPATH.
-               (string-append "RPATH=" rpath)
-               (string-append "LDFLAGS=" rpath)))
-       #:modules ((guix build gnu-build-system)
-                  (guix build utils)
-                  (ice-9 ftw)
-                  (ice-9 match)
-                  (srfi srfi-26))
-       #:phases
-       (modify-phases %standard-phases
-         (replace 'configure
-           (lambda _
-             (setenv "CC" "gcc")
-             ;; Tells NSS to build for the 64-bit ABI if we are 64-bit system.
-             ,@(match (%current-system)
-                 ((or "x86_64-linux" "aarch64-linux")
-                  `((setenv "USE_64" "1")))
-                 (_
-                  '()))
-             #t))
-         (replace 'check
-           (lambda _
-             ;; Use 127.0.0.1 instead of $HOST.$DOMSUF as HOSTADDR for testing.
-             ;; The later requires a working DNS or /etc/hosts.
-             (setenv "DOMSUF" "localdomain")
-             (setenv "USE_IP" "TRUE")
-             (setenv "IP_ADDRESS" "127.0.0.1")
-
-             ;; The "PayPalEE.cert" certificate expires every six months,
-             ;; 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" "2019-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))))))
-    (inputs
-     `(("sqlite" ,sqlite)
-       ("zlib" ,zlib)))
-    (propagated-inputs `(("nspr" ,nspr))) ; required by nss.pc.
-    (native-inputs `(("perl" ,perl)
-                     ("libfaketime" ,libfaketime))) ;for tests
-
-    ;; The NSS test suite takes around 48 hours on Loongson 3A (MIPS) when
-    ;; another build is happening concurrently on the same machine.
-    (properties '((timeout . 216000)))  ; 60 hours
-
-    (home-page
-     "https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS")
-    (synopsis "Network Security Services")
-    (description
-     "Network Security Services (@dfn{NSS}) is a set of libraries designed to
-support cross-platform development of security-enabled client and server
-applications.  Applications built with NSS can support SSL v2 and v3, TLS,
-PKCS #5, PKCS #7, PKCS #11, PKCS #12, S/MIME, X.509 v3 certificates, and other
-security standards.")
-    (license license:mpl2.0)))
-
 (define (mozilla-patch file-name changeset hash)
   "Return an origin for CHANGESET from the mozilla-esr60 repository."
   (origin
@@ -578,7 +426,7 @@ from forcing GEXP-PROMISE."
                       #:system system
                       #:guile-for-build guile)))
 
-(define %icecat-version "60.6.0-guix1")
+(define %icecat-version "60.6.1-guix1")
 
 ;; 'icecat-source' is a "computed" origin that generates an IceCat tarball
 ;; from the corresponding upstream Firefox ESR tarball, using the 'makeicecat'
@@ -600,7 +448,7 @@ from forcing GEXP-PROMISE."
                   "firefox-" upstream-firefox-version ".source.tar.xz"))
             (sha256
              (base32
-              "1mc57dhwyjr6qjm3q617wvj306wi72548wjx7lz1dxkz6hndi03w"))))
+              "1x8419a1yg6igsq5ij3ymf1zmnb2wpm9dqcdfkv5wy43xgf7y0wl"))))
 
          (upstream-icecat-base-version "60.3.0") ; maybe older than base-version
          (upstream-icecat-gnu-version "1")
diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index cc896405cb..5caf7a89f8 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -4,7 +4,7 @@
 ;;; Copyright © 2016 Andy Wingo <wingo@igalia.com>
 ;;; Copyright © 2016 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2016, 2017 Petter <petter@mykolab.ch>
-;;; Copyright © 2016, 2017 Leo Famulari <leo@famulari.name>
+;;; Copyright © 2016, 2017, 2019 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2017 Sergei Trofimovich <slyfox@inbox.ru>
 ;;; Copyright © 2017 Alex Vong <alexvong1995@gmail.com>
 ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
@@ -775,8 +775,8 @@ expressing configuration which is easy for both humans and machines to read.")
       (license license:mpl2.0))))
 
 (define-public go-golang-org-x-crypto-bcrypt
-  (let ((commit "0fcca4842a8d74bfddc2c96a073bd2a4d2a7a2e8")
-        (revision "2"))
+  (let ((commit "b7391e95e576cacdcdd422573063bc057239113d")
+        (revision "3"))
     (package
       (name "go-golang-org-x-crypto-bcrypt")
       (version (git-version "0.0.0" revision commit))
@@ -789,7 +789,7 @@ expressing configuration which is easy for both humans and machines to read.")
                                           version "-checkout"))
                 (sha256
                  (base32
-                  "033ghifvrxmqr54nm8gmgxz7qxlqgw9z7z976kp88yf1rmxm2kjr"))))
+                  "1jqfh81mhgwcc6b9l0bs6rb0707s01qpvn7896i5bsmig46lc7zm"))))
       (build-system go-build-system)
       (arguments
        `(#:import-path "golang.org/x/crypto/bcrypt"
@@ -801,186 +801,81 @@ password hashing function.")
       (license license:bsd-3))))
 
 (define-public go-golang-org-x-crypto-blowfish
-  (let ((commit "0fcca4842a8d74bfddc2c96a073bd2a4d2a7a2e8")
-        (revision "2"))
-    (package
-      (name "go-golang-org-x-crypto-blowfish")
-      (version (git-version "0.0.0" revision commit))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "https://go.googlesource.com/crypto")
-                      (commit commit)))
-                (file-name (string-append "go.googlesource.com-crypto-"
-                                          version "-checkout"))
-                (sha256
-                 (base32
-                  "033ghifvrxmqr54nm8gmgxz7qxlqgw9z7z976kp88yf1rmxm2kjr"))))
-      (build-system go-build-system)
-      (arguments
-       `(#:import-path "golang.org/x/crypto/blowfish"
-         #:unpack-path "golang.org/x/crypto"))
-      (synopsis "Blowfish in Go")
-      (description "This package provides a Go implementation of the Blowfish
-symmetric-key block cipher.")
-      (home-page "https://go.googlesource.com/crypto/")
-      (license license:bsd-3))))
+  (package
+    (inherit go-golang-org-x-crypto-bcrypt)
+    (name "go-golang-org-x-crypto-blowfish")
+    (arguments
+     `(#:import-path "golang.org/x/crypto/blowfish"
+       #:unpack-path "golang.org/x/crypto"))
+    (synopsis "Blowfish in Go")
+    (description "This package provides a Go implementation of the Blowfish
+symmetric-key block cipher.")))
 
 (define-public go-golang-org-x-crypto-pbkdf2
-  (let ((commit "0fcca4842a8d74bfddc2c96a073bd2a4d2a7a2e8")
-        (revision "2"))
-    (package
-      (name "go-golang-org-x-crypto-pbkdf2")
-      (version (git-version "0.0.0" revision commit))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "https://go.googlesource.com/crypto")
-                      (commit commit)))
-                (file-name (string-append "go.googlesource.com-crypto-"
-                                          version "-checkout"))
-                (sha256
-                 (base32
-                  "033ghifvrxmqr54nm8gmgxz7qxlqgw9z7z976kp88yf1rmxm2kjr"))))
-      (build-system go-build-system)
-      (arguments
-       `(#:import-path "golang.org/x/crypto/pbkdf2"
-         #:unpack-path "golang.org/x/crypto"))
-      (synopsis "PBKDF2 in Go")
-      (description "This package provides a Go implementation of the PBKDF2 key
-derivation function.")
-      (home-page "https://go.googlesource.com/crypto/")
-      (license license:bsd-3))))
+  (package
+    (inherit go-golang-org-x-crypto-bcrypt)
+    (name "go-golang-org-x-crypto-pbkdf2")
+    (arguments
+     `(#:import-path "golang.org/x/crypto/pbkdf2"
+       #:unpack-path "golang.org/x/crypto"))
+    (synopsis "PBKDF2 in Go")
+    (description "This package provides a Go implementation of the PBKDF2 key
+derivation function.")))
 
 (define-public go-golang-org-x-crypto-tea
-  (let ((commit "0fcca4842a8d74bfddc2c96a073bd2a4d2a7a2e8")
-        (revision "2"))
-    (package
-      (name "go-golang-org-x-crypto-tea")
-      (version (git-version "0.0.0" revision commit))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "https://go.googlesource.com/crypto")
-                      (commit commit)))
-                (file-name (string-append "go.googlesource.com-crypto-"
-                                          version "-checkout"))
-                (sha256
-                 (base32
-                  "033ghifvrxmqr54nm8gmgxz7qxlqgw9z7z976kp88yf1rmxm2kjr"))))
-      (build-system go-build-system)
-      (arguments
-       `(#:import-path "golang.org/x/crypto/tea"
-         #:unpack-path "golang.org/x/crypto"))
-      (synopsis "Tiny Encryption Algorithm (TEA) in Go")
-      (description "This packages a Go implementation of the Tiny Encryption
-Algorithm (TEA) block cipher.")
-      (home-page "https://go.googlesource.com/crypto/")
-      (license license:bsd-3))))
+  (package
+    (inherit go-golang-org-x-crypto-bcrypt)
+    (name "go-golang-org-x-crypto-tea")
+    (arguments
+     `(#:import-path "golang.org/x/crypto/tea"
+       #:unpack-path "golang.org/x/crypto"))
+    (synopsis "Tiny Encryption Algorithm (TEA) in Go")
+    (description "This packages a Go implementation of the Tiny Encryption
+Algorithm (TEA) block cipher.")))
 
 (define-public go-golang-org-x-crypto-salsa20
-  (let ((commit "0fcca4842a8d74bfddc2c96a073bd2a4d2a7a2e8")
-        (revision "2"))
-    (package
-      (name "go-golang-org-x-crypto-salsa20")
-      (version (git-version "0.0.0" revision commit))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "https://go.googlesource.com/crypto")
-                      (commit commit)))
-                (file-name (string-append "go.googlesource.com-crypto-"
-                                          version "-checkout"))
-                (sha256
-                 (base32
-                  "033ghifvrxmqr54nm8gmgxz7qxlqgw9z7z976kp88yf1rmxm2kjr"))))
-      (build-system go-build-system)
-      (arguments
-       `(#:import-path "golang.org/x/crypto/salsa20"
-         #:unpack-path "golang.org/x/crypto"))
-      (synopsis "Salsa20 in Go")
-      (description "This packages provides a Go implementation of the Salsa20
-stream cipher.")
-      (home-page "https://go.googlesource.com/crypto/")
-      (license license:bsd-3))))
+  (package
+    (inherit go-golang-org-x-crypto-bcrypt)
+    (name "go-golang-org-x-crypto-salsa20")
+    (arguments
+     `(#:import-path "golang.org/x/crypto/salsa20"
+       #:unpack-path "golang.org/x/crypto"))
+    (synopsis "Salsa20 in Go")
+    (description "This packages provides a Go implementation of the Salsa20
+stream cipher.")))
 
 (define-public go-golang-org-x-crypto-cast5
-  (let ((commit "0fcca4842a8d74bfddc2c96a073bd2a4d2a7a2e8")
-        (revision "2"))
-    (package
-      (name "go-golang-org-x-crypto-cast5")
-      (version (git-version "0.0.0" revision commit))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "https://go.googlesource.com/crypto")
-                      (commit commit)))
-                (file-name (string-append "go.googlesource.com-crypto-"
-                                          version "-checkout"))
-                (sha256
-                 (base32
-                  "033ghifvrxmqr54nm8gmgxz7qxlqgw9z7z976kp88yf1rmxm2kjr"))))
-      (build-system go-build-system)
-      (arguments
-       `(#:import-path "golang.org/x/crypto/cast5"
-         #:unpack-path "golang.org/x/crypto"))
-      (synopsis "Cast5 in Go")
-      (description "This packages provides a Go implementation of the Cast5
-symmetric-key block cipher.")
-      (home-page "https://go.googlesource.com/crypto/")
-      (license license:bsd-3))))
+  (package
+    (inherit go-golang-org-x-crypto-bcrypt)
+    (name "go-golang-org-x-crypto-cast5")
+    (arguments
+     `(#:import-path "golang.org/x/crypto/cast5"
+       #:unpack-path "golang.org/x/crypto"))
+    (synopsis "Cast5 in Go")
+    (description "This packages provides a Go implementation of the Cast5
+symmetric-key block cipher.")))
 
 (define-public go-golang-org-x-crypto-twofish
-  (let ((commit "0fcca4842a8d74bfddc2c96a073bd2a4d2a7a2e8")
-        (revision "2"))
-    (package
-      (name "go-golang-org-x-crypto-twofish")
-      (version (git-version "0.0.0" revision commit))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "https://go.googlesource.com/crypto")
-                      (commit commit)))
-                (file-name (string-append "go.googlesource.com-crypto-"
-                                          version "-checkout"))
-                (sha256
-                 (base32
-                  "033ghifvrxmqr54nm8gmgxz7qxlqgw9z7z976kp88yf1rmxm2kjr"))))
-      (build-system go-build-system)
-      (arguments
-       `(#:import-path "golang.org/x/crypto/twofish"
-         #:unpack-path "golang.org/x/crypto"))
-      (synopsis "Twofish in Go")
-      (description "This packages provides a Go implementation of the Twofish
-symmetric-key block cipher.")
-      (home-page "https://go.googlesource.com/crypto/")
-      (license license:bsd-3))))
+  (package
+    (inherit go-golang-org-x-crypto-bcrypt)
+    (name "go-golang-org-x-crypto-twofish")
+    (arguments
+     `(#:import-path "golang.org/x/crypto/twofish"
+       #:unpack-path "golang.org/x/crypto"))
+    (synopsis "Twofish in Go")
+    (description "This packages provides a Go implementation of the Twofish
+symmetric-key block cipher.")))
 
 (define-public go-golang-org-x-crypto-xtea
-  (let ((commit "0fcca4842a8d74bfddc2c96a073bd2a4d2a7a2e8")
-        (revision "2"))
-    (package
-      (name "go-golang-org-x-crypto-xtea")
-      (version (git-version "0.0.0" revision commit))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "https://go.googlesource.com/crypto")
-                      (commit commit)))
-                (file-name (string-append "go.googlesource.com-crypto-"
-                                          version "-checkout"))
-                (sha256
-                 (base32
-                  "033ghifvrxmqr54nm8gmgxz7qxlqgw9z7z976kp88yf1rmxm2kjr"))))
-      (build-system go-build-system)
-      (arguments
-       `(#:import-path "golang.org/x/crypto/xtea"
-         #:unpack-path "golang.org/x/crypto"))
-      (synopsis "eXtended Tiny Encryption Algorithm (XTEA) in Go")
-      (description "This package provides a Go implementation of the eXtended
-Tiny Encryption Algorithm (XTEA) block cipher.")
-      (home-page "https://go.googlesource.com/crypto/")
-      (license license:bsd-3))))
+  (package
+    (inherit go-golang-org-x-crypto-bcrypt)
+    (name "go-golang-org-x-crypto-xtea")
+    (arguments
+     `(#:import-path "golang.org/x/crypto/xtea"
+       #:unpack-path "golang.org/x/crypto"))
+    (synopsis "eXtended Tiny Encryption Algorithm (XTEA) in Go")
+    (description "This package provides a Go implementation of the eXtended
+Tiny Encryption Algorithm (XTEA) block cipher.")))
 
 (define-public go-golang-org-x-crypto-ed25519
   (package
@@ -1024,6 +919,8 @@ hash algorithm.")))
      (substitute-keyword-arguments (package-arguments go-golang-org-x-crypto-bcrypt)
        ((#:import-path _)
         "golang.org/x/crypto/blake2s")))
+    (propagated-inputs
+     `(("go-golang-org-x-sys-cpu" ,go-golang-org-x-sys-cpu)))
     (synopsis "BLAKE2s in Go")
     (description "This package provides a Go implementation of the BLAKE2s
 hash algorithm.")))
@@ -1272,6 +1169,17 @@ for low-level interaction with the operating system.")
       (home-page "https://go.googlesource.com/sys")
       (license license:bsd-3))))
 
+(define-public go-golang-org-x-sys-cpu
+  (package
+    (inherit go-golang-org-x-sys-unix)
+    (name "go-golang-org-x-sys-cpu")
+    (arguments
+     '(#:import-path "golang.org/x/sys/cpu"
+       #:unpack-path "golang.org/x/sys"))
+    (synopsis "CPU feature detection")
+    (description "Thi spackage provides @code{cpu}, which offers tools for CPU
+feature detection in Go.")))
+
 (define-public go-golang-org-x-text-transform
   (let ((commit "e19ae1496984b1c655b8044a65c0300a3c878dd3")
         (revision "1"))
@@ -1354,60 +1262,40 @@ limiting in Go.")
       (license license:bsd-3))))
 
 (define-public go-golang-org-x-crypto-ssh-terminal
-  (let ((commit "95a4943f35d008beabde8c11e5075a1b714e6419")
-        (revision "1"))
-    (package
-      (name "go-golang-org-x-crypto-ssh-terminal")
-      (version (git-version "0.0.0" revision commit))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "https://go.googlesource.com/crypto")
-                      (commit commit)))
-                (file-name (string-append "go.googlesource.com-crypto-"
-                                          version "-checkout"))
-                (sha256
-                 (base32
-                  "0bkm0jx9mxmi1liabb9c04kf765n7d0062zdp3zmvzyamsq00lcx"))))
-      (build-system go-build-system)
-      (inputs
-       `(("go-golang-org-x-sys-unix" ,go-golang-org-x-sys-unix)))
-      (arguments
-       `(#:import-path "golang.org/x/crypto/ssh/terminal"
-         #:unpack-path "golang.org/x/crypto"))
-      (synopsis "Terminal functions for Go")
-      (description "This package provides @{terminal}, which implements
-support functions for dealing with terminals, as commonly found on UNIX
-systems.")
-      (home-page "https://go.googlesource.com/crypto/")
-      (license license:bsd-3))))
+  (package
+    (inherit go-golang-org-x-crypto-bcrypt)
+    (name "go-golang-org-x-crypto-ssh-terminal")
+    (inputs
+     `(("go-golang-org-x-sys-unix" ,go-golang-org-x-sys-unix)))
+    (arguments
+     `(#:import-path "golang.org/x/crypto/ssh/terminal"
+       #:unpack-path "golang.org/x/crypto"))
+    (synopsis "Terminal functions for Go")
+    (description "This package provides @{terminal}, which implements support
+functions for dealing with terminals, as commonly found on UNIX systems.")))
 
 (define-public go-github-com-burntsushi-toml
-  (let ((commit
-         "a368813c5e648fee92e5f6c30e3944ff9d5e8895")
-        (revision "0"))
-    (package
-      (name "go-github-com-burntsushi-toml")
-      (version (git-version "0.0.0" revision commit))
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url "https://github.com/BurntSushi/toml.git")
-               (commit commit)))
-         (file-name (git-file-name name version))
-         (sha256
-          (base32
-           "1sjxs2lwc8jpln80s4rlzp7nprbcljhy5mz4rf9995gq93wqnym5"))))
-      (build-system go-build-system)
-      (arguments
-       '(#:import-path "github.com/BurntSushi/toml"))
-      (home-page "https://github.com/BurntSushi/toml")
-      (synopsis "Toml parser and encoder for Go")
-      (description "This package is toml parser and encoder for Go.  The
-interface is similar to Go's standard library @code{json} and @code{xml}
-package.")
-      (license license:expat))))
+  (package
+    (name "go-github-com-burntsushi-toml")
+    (version "0.3.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/BurntSushi/toml.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "1fjdwwfzyzllgiwydknf1pwjvy49qxfsczqx5gz3y0izs7as99j6"))))
+    (build-system go-build-system)
+    (arguments
+     '(#:import-path "github.com/BurntSushi/toml"))
+    (home-page "https://github.com/BurntSushi/toml")
+    (synopsis "Toml parser and encoder for Go")
+    (description "This package is toml parser and encoder for Go.  The interface
+is similar to Go's standard library @code{json} and @code{xml} package.")
+    (license license:expat)))
 
 (define-public go-github-com-getsentry-raven-go
   (let ((commit
@@ -3280,8 +3168,9 @@ have super fancy logs.")
       (arguments
        '(#:import-path "github.com/kr/fs"))
       (home-page "https://github.com/kr/fs")
-      (synopsis "Filesystem-related functions for Go")
-      (description "Package fs provides filesystem-related functions.")
+      (synopsis "File-system-related functions for Go")
+      (description
+       "The fs package provides file-system-related Go functions.")
       (license license:bsd-3))))
 
 (define-public go-github-com-direnv-go-dotenv
diff --git a/gnu/packages/gpodder.scm b/gnu/packages/gpodder.scm
index 5b872908a5..badb7f867f 100644
--- a/gnu/packages/gpodder.scm
+++ b/gnu/packages/gpodder.scm
@@ -18,15 +18,90 @@
 
 (define-module (gnu packages gpodder)
   #:use-module (guix download)
+  #:use-module (guix git-download)
   #:use-module (guix packages)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system python)
   #:use-module (gnu packages)
   #:use-module (gnu packages check)
+  #:use-module (gnu packages freedesktop)
+  #:use-module (gnu packages glib)
+  #:use-module (gnu packages gtk)
   #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages python-web)
+  #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages qt))
 
+(define-public gpodder
+  (package
+    (name "gpodder")
+    (version "3.10.7")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/gpodder/gpodder.git")
+             (commit version)))
+       (sha256
+        (base32
+         "0sx9rj6dpvd2xz7lak2yi0zlgr3lp2ng1fw23s39la9ly4g1835j"))
+       (file-name (git-file-name name version))))
+    (build-system python-build-system)
+    (native-inputs
+     `(("intltool" ,intltool)))
+    (inputs
+     `(("gtk+" ,gtk+)
+       ("python-pygobject" ,python-pygobject)
+       ("python-pycairo" ,python-pycairo)
+       ("python-dbus" ,python-dbus)
+       ("python-html5lib" ,python-html5lib)
+       ("python-mygpoclient" ,python-mygpoclient)
+       ("python-podcastparser" ,python-podcastparser)
+       ("xdg-utils" ,xdg-utils)))
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         ;; Avoid needing xdg-utils as a propagated input.
+         (add-after 'unpack 'patch-xdg-open
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let ((xdg-utils (assoc-ref inputs "xdg-utils")))
+               (substitute* "src/gpodder/util.py"
+                 (("xdg-open") (string-append xdg-utils "/bin/xdg-open")))
+               #t)))
+         ;; 'msgmerge' introduces non-determinism by resetting the
+         ;; POT-Creation-Date in .po files.
+         (add-before 'install 'do-not-run-msgmerge
+           (lambda _
+             (substitute* "makefile"
+               (("msgmerge") "true"))
+             #t))
+         (add-before 'install 'make-po-files-writable
+           (lambda _
+             (for-each
+               (lambda (f)
+                 (chmod f #o664))
+               (find-files "po"))))
+         (replace 'install
+           (lambda* (#:key outputs #:allow-other-keys)
+             (setenv "PREFIX" (assoc-ref outputs "out"))
+             (invoke "make" "install")
+             #t))
+         (add-after 'install 'wrap-gpodder
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out"))
+                   (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
+               (wrap-program (string-append out "/bin/gpodder")
+                 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path)))
+               #t))))))
+    (home-page "https://gpodder.github.io")
+    (synopsis "Simple podcast client")
+    (description "gPodder is a podcatcher, i.e. an application that allows
+podcast feeds (RSS, Atom, Youtube, Soundcloud, Vimeo and XSPF) to be
+subscribed to, checks for new episodes and allows the podcast to be saved
+locally for later listening.")
+    (license license:gpl3+)))
+
 (define-public libmygpo-qt
   (package
     (name "libmygpo-qt")
@@ -57,6 +132,36 @@
 and track podcasts.")
     (license license:lgpl2.1+)))
 
+(define-public python-mygpoclient
+  (package
+    (name "python-mygpoclient")
+    (version "1.8")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "mygpoclient" version))
+       (sha256
+        (base32
+         "1fi5x6k1mngr0iviw2s4n1f3y2x7pwqy5ivkcrjdprzvwr37f0mh"))))
+    (build-system python-build-system)
+    (native-inputs
+     `(("python-coverage" ,python-coverage)
+       ("python-minimock" ,python-minimock)
+       ("python-nose" ,python-nose)))
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda _
+             (invoke "make" "test"))))))
+    (home-page "https://mygpoclient.readthedocs.io")
+    (synopsis "Python library for the gPodder web service")
+    (description "@code{mygpoclient} provides an easy and structured way to
+access the @url{https://gpodder.net} web services.  In addition to
+subscription list synchronization and storage, the API supports uploading and
+downloading episode status changes.")
+    (license license:gpl3+)))
+
 (define-public python-podcastparser
   (package
     (name "python-podcastparser")
diff --git a/gnu/packages/graph.scm b/gnu/packages/graph.scm
index 7ed13d37c7..5bcc48dbe6 100644
--- a/gnu/packages/graph.scm
+++ b/gnu/packages/graph.scm
@@ -2,6 +2,7 @@
 ;;; Copyright © 2017, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2018 Joshua Sierles, Nextjournal <joshua@nextjournal.com>
 ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2019 Efraim Flashner <efraim@flashner.co.il>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -22,6 +23,8 @@
   #:use-module (guix download)
   #:use-module (guix git-download)
   #:use-module (guix packages)
+  #:use-module (guix utils)
+  #:use-module (guix build-system cmake)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system python)
   #:use-module (guix build-system r)
@@ -30,6 +33,7 @@
   #:use-module (gnu packages gcc)
   #:use-module (gnu packages bioconductor)
   #:use-module (gnu packages bioinformatics)
+  #:use-module (gnu packages check)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages cran)
   #:use-module (gnu packages graphviz)
@@ -40,6 +44,7 @@
   #:use-module (gnu packages python-web)
   #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages statistics)
+  #:use-module (gnu packages swig)
   #:use-module (gnu packages time)
   #:use-module (gnu packages xml))
 
@@ -100,14 +105,14 @@ more.")
 (define-public r-igraph
   (package
     (name "r-igraph")
-    (version "1.2.4")
+    (version "1.2.4.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "igraph" version))
        (sha256
         (base32
-         "1jwjjl0l4054w05bik17p2d6rj3lx68iv716phajhnbbmckfnj0h"))))
+         "1074y8mvprrqlkb4vwa2qc9l03r8d7p5vaaqacj4ljjs7dvcq6l9"))))
     (build-system r-build-system)
     (native-inputs
      `(("gfortran" ,gfortran)))
@@ -239,3 +244,174 @@ subplots, multiple-axes, polar charts, and bubble charts. ")
 
 (define-public python2-plotly
   (package-with-python2 python-plotly))
+
+(define-public python-louvain
+  (package
+    (name "python-louvain")
+    (version "0.6.1")
+    ;; The tarball on Pypi does not include the tests.
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/vtraag/louvain-igraph.git")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0w31537sifkf65sck1iaip5i6d8g64pa3wdwad83d6p9jwkck57k"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     `(("python-ddt" ,python-ddt)
+       ("python-igraph" ,python-igraph)))
+    (inputs
+     `(("igraph" ,igraph)))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("python-pytest" ,python-pytest)))
+    (home-page "https://github.com/vtraag/louvain-igraph")
+    (synopsis "Algorithm for methods of community detection in large networks")
+    (description
+     "This package provides an implementation of the Louvain algorithm for use
+with igraph.  Louvain is a general algorithm for methods of community
+detection in large networks.
+
+This package has been superseded by the @code{leidenalg} package and should
+not be used for new projects.")
+    (license license:gpl3+)))
+
+(define-public faiss
+  (package
+    (name "faiss")
+    (version "1.5.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/facebookresearch/faiss.git")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0pk15jfa775cy2pqmzq62nhd6zfjxmpvz5h731197c28aq3zw39w"))
+              (modules '((guix build utils)))
+              (snippet
+               '(begin
+                  (substitute* "utils.cpp"
+                    (("#include <immintrin.h>")
+                     "#ifdef __SSE__\n#include <immintrin.h>\n#endif"))
+                  #t))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:configure-flags
+       (list "-DBUILD_WITH_GPU=OFF"  ; thanks, but no thanks, CUDA.
+             "-DBUILD_TUTORIAL=OFF") ; we don't need those
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'prepare-build
+           (lambda _
+             (let ((features (list ,@(let ((system (or (%current-target-system)
+                                                       (%current-system))))
+                                       (cond
+                                        ((string-prefix? "x86_64" system)
+                                         '("-mavx" "-msse2" "-mpopcnt"))
+                                        ((string-prefix? "i686" system)
+                                         '("-msse2" "-mpopcnt"))
+                                        (else
+                                         '()))))))
+               (substitute* "CMakeLists.txt"
+                 (("-m64") "")
+                 (("-mpopcnt") "") ; only some architectures
+                 (("-msse4")
+                  (string-append
+                   (string-join features)
+                   " -I" (getcwd)))
+                 ;; Build also the shared library
+                 (("ARCHIVE DESTINATION lib")
+                  "LIBRARY DESTINATION lib")
+                 (("add_library.*" m)
+                  "\
+add_library(objlib OBJECT ${faiss_cpu_headers} ${faiss_cpu_cpp})
+set_property(TARGET objlib PROPERTY POSITION_INDEPENDENT_CODE 1)
+add_library(${faiss_lib}_static STATIC $<TARGET_OBJECTS:objlib>)
+add_library(${faiss_lib} SHARED $<TARGET_OBJECTS:objlib>)
+install(TARGETS ${faiss_lib}_static ARCHIVE DESTINATION lib)
+\n")))
+
+             ;; See https://github.com/facebookresearch/faiss/issues/520
+             (substitute* "IndexScalarQuantizer.cpp"
+               (("#define USE_AVX") ""))
+
+             ;; Make header files available for compiling tests.
+             (mkdir-p "faiss")
+             (for-each (lambda (file)
+                         (mkdir-p (string-append "faiss/" (dirname file)))
+                         (copy-file file (string-append "faiss/" file)))
+                       (find-files "." "\\.h$"))
+             #t))
+         (replace 'check
+           (lambda _
+             (invoke "make" "-C" "tests"
+                     (format #f "-j~a" (parallel-job-count)))))
+         (add-after 'install 'remove-tests
+           (lambda* (#:key outputs #:allow-other-keys)
+             (delete-file-recursively
+              (string-append (assoc-ref outputs "out")
+                             "/test"))
+             #t)))))
+    (inputs
+     `(("openblas" ,openblas)))
+    (native-inputs
+     `(("googletest" ,googletest)))
+    (home-page "https://github.com/facebookresearch/faiss")
+    (synopsis "Efficient similarity search and clustering of dense vectors")
+    (description "Faiss is a library for efficient similarity search and
+clustering of dense vectors.  It contains algorithms that search in sets of
+vectors of any size, up to ones that possibly do not fit in RAM.  It also
+contains supporting code for evaluation and parameter tuning.")
+    (license license:bsd-3)))
+
+(define-public python-faiss
+  (package (inherit faiss)
+    (name "python-faiss")
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'chdir
+           (lambda _ (chdir "python") #t))
+         (add-after 'chdir 'build-swig
+           (lambda* (#:key inputs #:allow-other-keys)
+             (with-output-to-file "../makefile.inc"
+               (lambda ()
+                 (let ((python-version ,(version-major+minor (package-version python))))
+                   (format #t "\
+PYTHONCFLAGS =-I~a/include/python~am/ -I~a/lib/python~a/site-packages/numpy/core/include
+LIBS = -lpython~am -lfaiss
+SHAREDFLAGS = -shared -fopenmp
+CXXFLAGS = -fpermissive -std=c++11 -fopenmp -fPIC
+CPUFLAGS = ~{~a ~}~%"
+                           (assoc-ref inputs "python*") python-version
+                           (assoc-ref inputs "python-numpy") python-version
+                           python-version
+                           (list ,@(let ((system (or (%current-target-system)
+                                                     (%current-system))))
+                                     (cond
+                                       ((string-prefix? "x86_64" system)
+                                        '("-mavx" "-msse2" "-mpopcnt"))
+                                       ((string-prefix? "i686" system)
+                                        '("-msse2" "-mpopcnt"))
+                                       (else
+                                         '()))))))))
+             (substitute* "Makefile"
+               (("../libfaiss.a") ""))
+             (invoke "make" "cpu"))))))
+    (inputs
+     `(("faiss" ,faiss)
+       ("openblas" ,openblas)
+       ("python*" ,python)
+       ("swig" ,swig)))
+    (propagated-inputs
+     `(("python-matplotlib" ,python-matplotlib)
+       ("python-numpy" ,python-numpy)))
+    (description "Faiss is a library for efficient similarity search and
+clustering of dense vectors.  This package provides Python bindings to the
+Faiss library.")))
diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm
index 11158bdfd1..f9baf49fe9 100644
--- a/gnu/packages/graphics.scm
+++ b/gnu/packages/graphics.scm
@@ -2,7 +2,7 @@
 ;;; Copyright © 2015, 2016 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2015 Tomáš Čech <sleep_walker@gnu.org>
 ;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
-;;; Copyright © 2016, 2017 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2016, 2017, 2019 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2016, 2018 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2017 Manolis Fragkiskos Ragkousis <manolis837@gmail.com>
@@ -354,33 +354,23 @@ exception-handling library.")
     (version "1.10.11")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/OGRECave/" name
-                           "/archive/v" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+              (url "https://github.com/OGRECave/ogre.git")
+              (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
        (sha256
         (base32
-         "13bdh9v4026qf8w8rbfln2rmwf0rby1a8fz55zpdvpy105i6cbpz"))
-       (file-name (string-append name "-" version ".tar.gz"))))
+         "072rzw9mxymbiypgkrbkk9h10rgly6gczik4dlmssk6xkpqckaqr"))))
     (build-system cmake-build-system)
     (arguments
      '(#:phases
        (modify-phases %standard-phases
          (add-before 'configure 'pre-configure
-           (lambda _
-             ;; It expects googletest source to be downloaded and
-             ;; be in a specific place.
-             (substitute* "Tests/CMakeLists.txt"
-               (("URL(.*)$" _ suffix)
-                (string-append "URL " suffix
-                               "\t\tURL_HASH "
-                               "MD5=16877098823401d1bf2ed7891d7dce36\n")))
-             #t))
-         (add-before 'build 'pre-build
            (lambda* (#:key inputs #:allow-other-keys)
-             (copy-file (assoc-ref inputs "googletest-source")
-                        (string-append (getcwd)
-                                       "/Tests/googletest-prefix/src/"
-                                       "release-1.8.0.tar.gz"))
+             (substitute* "Tests/CMakeLists.txt"
+               (("URL(.*)$")
+                (string-append "URL " (assoc-ref inputs "googletest-source"))))
              #t)))
        #:configure-flags
        (list "-DOGRE_BUILD_TESTS=TRUE"
@@ -548,6 +538,32 @@ virtual reality, scientific visualization and modeling.")
     ;; LGPL 2.1, but with 4 exceptions. This version is called OSGPL.
     (license license:lgpl2.1)))
 
+;; We need this for simgear
+(define-public openscenegraph-3.4
+  (package (inherit openscenegraph)
+    (name "openscenegraph")
+    (version "3.4.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/openscenegraph/OpenSceneGraph")
+             (commit (string-append "OpenSceneGraph-" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "1fbzg1ihjpxk6smlq80p3h3ggllbr16ihd2fxpfwzam8yr8yxip9"))))
+    (arguments
+     (substitute-keyword-arguments (package-arguments openscenegraph)
+       ((#:configure-flags flags)
+        `(cons
+          ;; The jpeg plugin requires conversion between integers and booleans
+          "-DCMAKE_CXX_FLAGS=-fpermissive"
+          ,flags))))
+    (inputs
+     `(("libjpeg" ,libjpeg)
+       ,@(package-inputs openscenegraph)))))
+
 (define-public povray
   (package
     (name "povray")
diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index f006795a16..0850c2bd5b 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -1,7 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
-;;; Copyright © 2014, 2015, 2017, 2018 Mark H Weaver <mhw@netris.org>
+;;; Copyright © 2014, 2015, 2017, 2018, 2019 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
 ;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
 ;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>
diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm
index d4f019c814..03fd63837e 100644
--- a/gnu/packages/guile-xyz.scm
+++ b/gnu/packages/guile-xyz.scm
@@ -17,7 +17,7 @@
 ;;; Copyright © 2017 ng0 <ng0@n0.is>
 ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Maxim Cournoyer <maxim.cournoyer@gmail.com>
-;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
+;;; Copyright © 2018, 2019 Arun Isaac <arunisaac@systemreboot.net>
 ;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr>
 ;;; Copyright © 2018 Eric Bavier <bavier@member.fsf.org>
 ;;; Copyright © 2019 swedebugia <swedebugia@riseup.net>
@@ -898,33 +898,30 @@ tracker's SOAP service, such as @url{https://bugs.gnu.org}.")
     (license license:gpl3+)))
 
 (define-public guile-email
-  (let ((commit "fa52eac55e5946db89621a6c583d2aa357864dee")
-        (revision "1"))
-    (package
-      (name "guile-email")
-      (version (git-version "0.1.0" 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
-           "1037mbz7qd9bzaqp8ysyhnl9ipd97fmj3b9jr8qfzx9179vvsj63"))))
-      (build-system gnu-build-system)
-      (native-inputs
-       `(("pkg-config" ,pkg-config)
-         ("autoconf" ,autoconf)
-         ("automake" ,automake)))
-      (inputs
-       `(("guile" ,guile-2.2)))
-      (home-page "https://git.systemreboot.net/guile-email")
-      (synopsis "Guile email parser")
-      (description "This package provides an email parser written in pure
+  (package
+    (name "guile-email")
+    (version "0.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://git.systemreboot.net/guile-email/snapshot/guile-email-"
+             version ".tar.xz"))
+       (sha256
+        (base32
+         "0p2v8q2kkz8m6vf2rsjvz3dj1mvnx7dxakjf72dwkndbgk3rp79f"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("autoconf" ,autoconf)
+       ("automake" ,automake)))
+    (inputs
+     `(("guile" ,guile-2.2)))
+    (home-page "https://git.systemreboot.net/guile-email")
+    (synopsis "Guile email parser")
+    (description "This package provides an email parser written in pure
 Guile.")
-      (license license:agpl3+))))
+    (license license:agpl3+)))
 
 (define-public guile-debbugs-next
   (let ((commit "75a331d561c8b6f8efcf16216dab961c17759efe")
@@ -951,40 +948,37 @@ Guile.")
        `(("guile" ,guile-2.2)
          ("guile-email" ,guile-email))))))
 
-;; There has not been any release yet.
 (define-public guile-newt
-  (let ((commit "80c1e9e71945f833386d1632b52573e59325804f")
-        (revision "4"))
-    (package
-      (name "guile-newt")
-      (version (string-append "0-" revision "." (string-take commit 9)))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "https://gitlab.com/mothacehe/guile-newt")
-                      (commit commit)))
-                (file-name (string-append name "-" version "-checkout"))
-                (sha256
-                 (base32
-                  "1w7qy4dw1f4bx622l6hw8mv49sf1ha8kch8j4nganyk8fj0wn695"))))
-      (build-system gnu-build-system)
-      (arguments
-       '(#:make-flags
-         '("GUILE_AUTO_COMPILE=0"))) ;to prevent guild warnings
-      (inputs
-       `(("guile" ,guile-2.2)
-         ("newt" ,newt)))
-      (native-inputs
-       `(("autoconf" ,autoconf)
-         ("automake" ,automake)
-         ("pkg-config" ,pkg-config)))
-      (synopsis "Guile bindings to Newt")
-      (description
-       "This package provides bindings for Newt, a programming library for
+  (package
+    (name "guile-newt")
+    (version "0.0.1")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://gitlab.com/mothacehe/guile-newt")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1w7qy4dw1f4bx622l6hw8mv49sf1ha8kch8j4nganyk8fj0wn695"))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:make-flags
+       '("GUILE_AUTO_COMPILE=0"))) ;to prevent guild warnings
+    (inputs
+     `(("guile" ,guile-2.2)
+       ("newt" ,newt)))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("pkg-config" ,pkg-config)))
+    (synopsis "Guile bindings to Newt")
+    (description
+     "This package provides bindings for Newt, a programming library for
 color text mode, widget based user interfaces.  The bindings are written in pure
 Scheme by using Guile’s foreign function interface.")
-      (home-page "https://gitlab.com/mothacehe/guile-newt")
-      (license license:gpl3+))))
+    (home-page "https://gitlab.com/mothacehe/guile-newt")
+    (license license:gpl3+)))
 
 (define-public guile-mastodon
   (package
@@ -1015,42 +1009,39 @@ Scheme by using Guile’s foreign function interface.")
 microblogging service.")
     (license license:gpl3+)))
 
-;; There has not been any release yet.
 (define-public guile-parted
-  (let ((commit "ea3f1a1f6844775fc59d3078d2a09c62ffb341b8")
-        (revision "0"))
-    (package
-      (name "guile-parted")
-      (version (string-append "0-" revision "." (string-take commit 9)))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "https://gitlab.com/mothacehe/guile-parted")
-                      (commit commit)))
-                (file-name (string-append name "-" version "-checkout"))
-                (sha256
-                 (base32
-                  "1q7425gpjlwi2wvhzq7kw046yyx7v6j6jyzkd1cr861iz34mjwiq"))))
-      (build-system gnu-build-system)
-      (arguments
-       '(#:make-flags
-         '("GUILE_AUTO_COMPILE=0"))) ;to prevent guild warnings
-      (inputs
-       `(("guile" ,guile-2.2)
-         ("parted" ,parted)))
-      (propagated-inputs
-       `(("guile-bytestructures" ,guile-bytestructures)))
-      (native-inputs
-       `(("autoconf" ,autoconf)
-         ("automake" ,automake)
-         ("pkg-config" ,pkg-config)))
-      (synopsis "Guile bindings to GNU Parted")
-      (description
-       "This package provides bindings for GNU Parted library, a C library
-allowing disk partition tables creation and manipulation. The bindings are
+  (package
+    (name "guile-parted")
+    (version "0.0.1")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://gitlab.com/mothacehe/guile-parted")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1q7425gpjlwi2wvhzq7kw046yyx7v6j6jyzkd1cr861iz34mjwiq"))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:make-flags
+       '("GUILE_AUTO_COMPILE=0"))) ;to prevent guild warnings
+    (inputs
+     `(("guile" ,guile-2.2)
+       ("parted" ,parted)))
+    (propagated-inputs
+     `(("guile-bytestructures" ,guile-bytestructures)))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("pkg-config" ,pkg-config)))
+    (synopsis "Guile bindings to GNU Parted")
+    (description
+     "This package provides bindings for GNU Parted library, a C library
+allowing disk partition tables creation and manipulation.  The bindings are
 written in pure Scheme by using Guile's foreign function interface.")
-      (home-page "https://gitlab.com/mothacehe/guile-parted")
-      (license license:gpl3+))))
+    (home-page "https://gitlab.com/mothacehe/guile-parted")
+    (license license:gpl3+)))
 
 (define-public guile-xosd
   (package
diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm
index daeadca610..d4dd10ba11 100644
--- a/gnu/packages/guile.scm
+++ b/gnu/packages/guile.scm
@@ -103,6 +103,12 @@
                       (substitute* "ice-9/popen.scm"
                         (("/bin/sh") (which "sh")))
                       #t)))))
+
+   ;; When cross-compiling, a native version of Guile itself is needed.
+   (native-inputs (if (%current-target-system)
+                      `(("self" ,this-package))
+                      '()))
+
    (inputs `(("gawk" ,gawk)
              ("readline" ,readline)))
 
@@ -111,9 +117,6 @@
    (propagated-inputs `(("gmp" ,gmp)
                         ("libltdl" ,libltdl)))
 
-   ;; When cross-compiling, a native version of Guile itself is needed.
-   (self-native-input? #t)
-
    (native-search-paths
     (list (search-path-specification
            (variable "GUILE_LOAD_PATH")
@@ -141,7 +144,12 @@ without requiring the source code to be rewritten.")
              (base32
               "10lxc6l5alf3lzbs3ihnbfy6dfcrsyf8667wa57f26vf4mk2ai78"))))
    (build-system gnu-build-system)
-   (native-inputs `(("pkgconfig" ,pkg-config)))
+
+   ;; When cross-compiling, a native version of Guile itself is needed.
+   (native-inputs `(,@(if (%current-target-system)
+                          `(("self" ,this-package))
+                          '())
+                    ("pkgconfig" ,pkg-config)))
    (inputs `(("libffi" ,libffi)
              ,@(libiconv-if-needed)
 
@@ -165,8 +173,6 @@ without requiring the source code to be rewritten.")
       ("bdw-gc" ,libgc)
       ("gmp" ,gmp)))
 
-   (self-native-input? #t)
-
    (outputs '("out" "debug"))
 
    (arguments
@@ -207,20 +213,6 @@ without requiring the source code to be rewritten.")
    (home-page "https://www.gnu.org/software/guile/")
    (license license:lgpl3+)))
 
-(define-public guile-2.0.13
-  ;; For testing a "minimal" Guix
-  (hidden-package
-   (package (inherit guile-2.0)
-     (name "guile")
-     (version "2.0.13")
-     (source (origin
-               (method url-fetch)
-               (uri (string-append "mirror://gnu/guile/guile-" version
-                                   ".tar.xz"))
-               (sha256
-                (base32
-                 "12yqkr974y91ylgw6jnmci2v90i90s7h9vxa4zk0sai8vjnz4i1p")))))))
-
 (define-public guile-2.2
   (package (inherit guile-2.0)
     (name "guile")
diff --git a/gnu/packages/hardware.scm b/gnu/packages/hardware.scm
index 006a61c086..a735ecb011 100644
--- a/gnu/packages/hardware.scm
+++ b/gnu/packages/hardware.scm
@@ -38,14 +38,14 @@
 (define-public ddcutil
   (package
     (name "ddcutil")
-    (version "0.9.4")
+    (version "0.9.5")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://www.ddcutil.com/tarballs/"
                            "ddcutil-" version ".tar.gz"))
        (sha256
-        (base32 "1jqfip43sx3dnx86znmpy8dj4ikkfpgf8npgq66s7hqwwa99i7zc"))))
+        (base32 "18brwj54dkjylvpx7c6ksf7fzhdjffi60avyg7qbs8vw9awnsxqz"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)))
diff --git a/gnu/packages/haskell-apps.scm b/gnu/packages/haskell-apps.scm
new file mode 100644
index 0000000000..d675863090
--- /dev/null
+++ b/gnu/packages/haskell-apps.scm
@@ -0,0 +1,400 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2015, 2017, 2018 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2016, 2017, 2018 ng0 <ng0@n0.is>
+;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018 Timothy Sample <samplet@ngyro.com>
+;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
+;;; Copyright © 2016, 2017 Leo Famulari <leo@famulari.name>
+;;; Copyright © 2015 Paul van der Walt <paul@denknerd.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 haskell-apps)
+  #:use-module (guix download)
+  #:use-module (guix packages)
+  #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (guix build-system haskell)
+  #:use-module (gnu packages base)
+  #:use-module (gnu packages curl)
+  #:use-module (gnu packages gl)
+  #:use-module (gnu packages haskell)
+  #:use-module (gnu packages haskell-check)
+  #:use-module (gnu packages haskell-crypto)
+  #:use-module (gnu packages haskell-web)
+  #:use-module (gnu packages ncurses)
+  #:use-module (gnu packages perl)
+  #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages rsync)
+  #:use-module (gnu packages sdl)
+  #:use-module (gnu packages version-control))
+
+;; Darcs has no https support: http://irclog.perlgeek.de/darcs/2016-09-17
+;; http://darcs.net/manual/Configuring_darcs.html#SECTION00440070000000000000
+;; and results of search engines will show that if the protocol is http, https
+;; is never mentioned.
+(define-public darcs
+  (package
+    (name "darcs")
+    (version "2.14.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://hackage.haskell.org/package/darcs/"
+                           "darcs-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0zm2486gyhiga1amclbg92cd09bvki6vgh0ll75hv5kl72j61lb5"))
+       (modules '((guix build utils)))
+       ;; Remove time-dependent code for reproducibility.
+       (snippet
+        '(begin
+           (substitute* "darcs/darcs.hs"
+             (("__DATE__") "\"1970-01-01\"")
+             (("__TIME__") "\"00:00:00\""))
+           #t))))
+    (build-system haskell-build-system)
+    (arguments
+     `(#:configure-flags '("-fpkgconfig" "-fcurl" "-flibiconv" "-fthreaded"
+                           "-fnetwork-uri" "-fhttp" "--flag=executable"
+                           "--flag=library")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'patch-source-shebangs 'patch-sh
+           (lambda _
+             (substitute* "tests/issue538.sh"
+               (("/bin/sh") (which "sh")))
+             #t)))))
+    (inputs
+     `(("ghc-cmdargs" ,ghc-cmdargs)
+       ("ghc-split" ,ghc-split)
+       ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)
+       ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
+       ("ghc-test-framework" ,ghc-test-framework)
+       ("ghc-quickcheck" ,ghc-quickcheck)
+       ("ghc-findbin" ,ghc-findbin)
+       ("ghc-hunit" ,ghc-hunit)
+       ("ghc-async" ,ghc-async)
+       ("ghc-attoparsec" ,ghc-attoparsec)
+       ("ghc-base16-bytestring" ,ghc-base16-bytestring)
+       ("ghc-bytestring-builder" ,ghc-bytestring-builder)
+       ("ghc-cryptohash" ,ghc-cryptohash)
+       ("ghc-data-ordlist" ,ghc-data-ordlist)
+       ("ghc-fgl" ,ghc-fgl)
+       ("ghc-system-filepath" ,ghc-system-filepath)
+       ("ghc-graphviz" ,ghc-graphviz)
+       ("ghc-hashable" ,ghc-hashable)
+       ("ghc-html" ,ghc-html)
+       ("ghc-mmap" ,ghc-mmap)
+       ("ghc-old-time" ,ghc-old-time)
+       ("ghc-parsec" ,ghc-parsec)
+       ("ghc-random" ,ghc-random)
+       ("ghc-regex-applicative" ,ghc-regex-applicative)
+       ("ghc-regex-compat-tdfa" ,ghc-regex-compat-tdfa)
+       ("ghc-sandi" ,ghc-sandi)
+       ("ghc-shelly" ,ghc-shelly)
+       ("ghc-tar" ,ghc-tar)
+       ("ghc-transformers-compat" ,ghc-transformers-compat)
+       ("ghc-unix-compat" ,ghc-unix-compat)
+       ("ghc-utf8-string" ,ghc-utf8-string)
+       ("ghc-vector" ,ghc-vector)
+       ("ghc-zip-archive" ,ghc-zip-archive)
+       ("ghc-zlib" ,ghc-zlib)
+       ("ghc-http" ,ghc-http)
+       ("curl" ,curl)
+       ("ghc" ,ghc)
+       ("ncurses" ,ncurses)
+       ("perl" ,perl)
+       ("libiconv" ,libiconv)
+       ("ghc-network" ,ghc-network)
+       ("ghc-network-uri" ,ghc-network-uri)))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (home-page "http://darcs.net")
+    (synopsis "Distributed Revision Control System")
+    (description
+     "Darcs is a revision control system.  It is:
+
+@enumerate
+@item Distributed: Every user has access to the full command set, removing boundaries
+between server and client or committer and non-committers.
+@item Interactive: Darcs is easy to learn and efficient to use because it asks you
+questions in response to simple commands, giving you choices in your work flow.
+You can choose to record one change in a file, while ignoring another.  As you update
+from upstream, you can review each patch name, even the full diff for interesting
+patches.
+@item Smart: Originally developed by physicist David Roundy, darcs is based on a
+unique algebra of patches called @url{http://darcs.net/Theory,Patchtheory}.
+@end enumerate")
+    (license license:gpl2)))
+
+(define-public git-annex
+  (package
+    (name "git-annex")
+    (version "6.20180926")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://hackage.haskell.org/package/"
+                           "git-annex/git-annex-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1251rj8h63y30sfqk0zh670yhz14p256y59n3590pg015pf3575d"))))
+    (build-system haskell-build-system)
+    (arguments
+     `(#:configure-flags
+       '("--flags=-Android -Assistant -Pairing -S3 -Webapp -WebDAV")
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'configure 'patch-shell
+           (lambda _
+             (substitute* "Utility/Shell.hs"
+               (("/bin/sh") (which "sh")))
+             #t))
+         (add-before 'configure 'factor-setup
+           (lambda _
+             ;; Factor out necessary build logic from the provided
+             ;; `Setup.hs' script.  The script as-is does not work because
+             ;; it cannot find its dependencies, and there is no obvious way
+             ;; to tell it where to look.  Note that we do not preserve the
+             ;; code that installs man pages here.
+             (call-with-output-file "PreConf.hs"
+               (lambda (out)
+                 (format out "import qualified Build.Configure as Configure~%")
+                 (format out "main = Configure.run Configure.tests~%")))
+             (call-with-output-file "Setup.hs"
+               (lambda (out)
+                 (format out "import Distribution.Simple~%")
+                 (format out "main = defaultMain~%")))
+             #t))
+         (add-before 'configure 'pre-configure
+           (lambda _
+             (invoke "runhaskell" "PreConf.hs")
+             #t))
+         (replace 'check
+           (lambda _
+             ;; We need to set the path so that Git recognizes
+             ;; `git annex' as a custom command.
+             (setenv "PATH" (string-append (getenv "PATH") ":"
+                                           (getcwd) "/dist/build/git-annex"))
+             (with-directory-excursion "dist/build/git-annex"
+               (symlink "git-annex" "git-annex-shell"))
+             (invoke "git-annex" "test")
+             #t))
+         (add-after 'install 'install-symlinks
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (bin (string-append out "/bin")))
+               (symlink (string-append bin "/git-annex")
+                        (string-append bin "/git-annex-shell"))
+               (symlink (string-append bin "/git-annex")
+                        (string-append bin "/git-remote-tor-annex"))
+               #t))))))
+    (inputs
+     `(("curl" ,curl)
+       ("ghc-aeson" ,ghc-aeson)
+       ("ghc-async" ,ghc-async)
+       ("ghc-bloomfilter" ,ghc-bloomfilter)
+       ("ghc-byteable" ,ghc-byteable)
+       ("ghc-case-insensitive" ,ghc-case-insensitive)
+       ("ghc-crypto-api" ,ghc-crypto-api)
+       ("ghc-cryptonite" ,ghc-cryptonite)
+       ("ghc-data-default" ,ghc-data-default)
+       ("ghc-disk-free-space" ,ghc-disk-free-space)
+       ("ghc-dlist" ,ghc-dlist)
+       ("ghc-edit-distance" ,ghc-edit-distance)
+       ("ghc-esqueleto" ,ghc-esqueleto)
+       ("ghc-exceptions" ,ghc-exceptions)
+       ("ghc-feed" ,ghc-feed)
+       ("ghc-free" ,ghc-free)
+       ("ghc-hslogger" ,ghc-hslogger)
+       ("ghc-http-client" ,ghc-http-client)
+       ("ghc-http-conduit" ,ghc-http-conduit)
+       ("ghc-http-types" ,ghc-http-types)
+       ("ghc-ifelse" ,ghc-ifelse)
+       ("ghc-memory" ,ghc-memory)
+       ("ghc-monad-control" ,ghc-monad-control)
+       ("ghc-monad-logger" ,ghc-monad-logger)
+       ("ghc-network" ,ghc-network)
+       ("ghc-old-locale" ,ghc-old-locale)
+       ("ghc-optparse-applicative" ,ghc-optparse-applicative)
+       ("ghc-persistent" ,ghc-persistent)
+       ("ghc-persistent-sqlite" ,ghc-persistent-sqlite)
+       ("ghc-persistent-template" ,ghc-persistent-template)
+       ("ghc-quickcheck" ,ghc-quickcheck)
+       ("ghc-random" ,ghc-random)
+       ("ghc-regex-tdfa" ,ghc-regex-tdfa)
+       ("ghc-resourcet" ,ghc-resourcet)
+       ("ghc-safesemaphore" ,ghc-safesemaphore)
+       ("ghc-sandi" ,ghc-sandi)
+       ("ghc-securemem" ,ghc-securemem)
+       ("ghc-socks" ,ghc-socks)
+       ("ghc-split" ,ghc-split)
+       ("ghc-stm" ,ghc-stm)
+       ("ghc-stm-chans" ,ghc-stm-chans)
+       ("ghc-tagsoup" ,ghc-tagsoup)
+       ("ghc-text" ,ghc-text)
+       ("ghc-unix-compat" ,ghc-unix-compat)
+       ("ghc-unordered-containers" ,ghc-unordered-containers)
+       ("ghc-utf8-string" ,ghc-utf8-string)
+       ("ghc-uuid" ,ghc-uuid)
+       ("git" ,git)
+       ("rsync" ,rsync)))
+    (native-inputs
+     `(("ghc-tasty" ,ghc-tasty)
+       ("ghc-tasty-hunit" ,ghc-tasty-hunit)
+       ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
+       ("ghc-tasty-rerun" ,ghc-tasty-rerun)))
+    (home-page "https://git-annex.branchable.com/")
+    (synopsis "Manage files with Git, without checking in their contents")
+    (description "This package allows managing files with Git, without
+checking the file contents into Git.  It can store files in many places,
+such as local hard drives and cloud storage services.  It can also be
+used to keep a folder in sync between computers.")
+    ;; The web app is released under the AGPLv3+.
+    (license (list license:gpl3+
+                   license:agpl3+))))
+
+(define-public ghc-sdl2
+  (package
+    (name "ghc-sdl2")
+    (version "2.4.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://hackage.haskell.org/package/"
+                           "sdl2/sdl2-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0p4b12fmxps0sbnkqdfy0qw19s355yrkw7fgw6xz53wzq706k991"))))
+    (build-system haskell-build-system)
+    (arguments '(#:tests? #f)) ; tests require graphical environment
+    (inputs
+     `(("ghc-exceptions" ,ghc-exceptions)
+       ("ghc-linear" ,ghc-linear)
+       ("ghc-statevar" ,ghc-statevar)
+       ("ghc-text" ,ghc-text)
+       ("ghc-vector" ,ghc-vector)
+       ("sdl2" ,sdl2)))
+    (native-inputs
+     `(("ghc-weigh" ,ghc-weigh)
+       ("pkg-config" ,pkg-config)))
+    (home-page "http://hackage.haskell.org/package/sdl2")
+    (synopsis "High- and low-level bindings to the SDL library")
+    (description
+     "This package contains bindings to the SDL 2 library, in both high- and
+low-level forms.  The @code{SDL} namespace contains high-level bindings, where
+enumerations are split into sum types, and we perform automatic
+error-checking.  The @code{SDL.Raw} namespace contains an almost 1-1
+translation of the C API into Haskell FFI calls.  As such, this does not
+contain sum types nor error checking.  Thus this namespace is suitable for
+building your own abstraction over SDL, but is not recommended for day-to-day
+programming.")
+    (license license:bsd-3)))
+
+(define-public ghc-sdl2-mixer
+  (package
+    (name "ghc-sdl2-mixer")
+    (version "1.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://hackage.haskell.org/package/sdl2-mixer/"
+                           "sdl2-mixer-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1k8avyccq5l9z7bwxigim312yaancxl1sr3q6a96bcm7pnhiak0g"))))
+    (build-system haskell-build-system)
+    (inputs
+     `(("ghc-data-default-class" ,ghc-data-default-class)
+       ("ghc-lifted-base" ,ghc-lifted-base)
+       ("ghc-monad-control" ,ghc-monad-control)
+       ("ghc-sdl2" ,ghc-sdl2)
+       ("ghc-vector" ,ghc-vector)
+       ("sdl2-mixer" ,sdl2-mixer)))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (home-page "http://hackage.haskell.org/package/sdl2-mixer")
+    (synopsis "Bindings to SDL2 mixer")
+    (description "This package provides Haskell bindings to
+@code{SDL2_mixer}.")
+    (license license:bsd-3)))
+
+(define-public ghc-sdl2-image
+  (package
+    (name "ghc-sdl2-image")
+    (version "2.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://hackage.haskell.org/package/sdl2-image/"
+                           "sdl2-image-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1pr6dkg73cy9z0w54lrkj9c5bhxj56nl92lxikjy8kz6nyr455rr"))))
+    (build-system haskell-build-system)
+    (inputs
+     `(("ghc-sdl2" ,ghc-sdl2)
+       ("ghc-text" ,ghc-text)
+       ("sdl2-image" ,sdl2-image)))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (home-page "http://hackage.haskell.org/package/sdl2-image")
+    (synopsis "Bindings to SDL2_image")
+    (description "This package provides Haskell bindings to
+@code{SDL2_image}.")
+    (license license:expat)))
+
+(define-public raincat
+  (package
+    (name "raincat")
+    (version "1.2.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "http://hackage.haskell.org/package/Raincat/"
+                           "Raincat-" version ".tar.gz"))
+       (sha256
+        (base32
+         "10y9zi22m6hf13c9h8zd9vg7mljpwbw0r3djb6r80bna701fdf6c"))))
+    (build-system haskell-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'install 'wrap-executable
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out")))
+               (wrap-program (string-append out "/bin/raincat")
+                 `("LD_LIBRARY_PATH" ":" =
+                   (,(string-append (assoc-ref inputs "freeglut")
+                                    "/lib"))))
+               #t))))))
+    (inputs
+     `(("ghc-extensible-exceptions" ,ghc-extensible-exceptions)
+       ("ghc-random" ,ghc-random)
+       ("ghc-glut" ,ghc-glut)
+       ("freeglut" ,freeglut)
+       ("ghc-opengl" ,ghc-opengl)
+       ("ghc-sdl2" ,ghc-sdl2)
+       ("ghc-sdl2-image" ,ghc-sdl2-image)
+       ("ghc-sdl2-mixer" ,ghc-sdl2-mixer)))
+    (home-page "http://www.bysusanlin.com/raincat/")
+    (synopsis "Puzzle game with a cat in lead role")
+    (description "Project Raincat is a game developed by Carnegie Mellon
+students through GCS during the Fall 2008 semester.  Raincat features game
+play inspired from classics Lemmings and The Incredible Machine.  The project
+proved to be an excellent learning experience for the programmers.  Everything
+is programmed in Haskell.")
+    (license license:bsd-3)))
diff --git a/gnu/packages/haskell-check.scm b/gnu/packages/haskell-check.scm
index 19eb40eaa4..fa2bd0d652 100644
--- a/gnu/packages/haskell-check.scm
+++ b/gnu/packages/haskell-check.scm
@@ -148,9 +148,9 @@ Haskell test framework.")
      "https://github.com/feuerbach/tasty-golden")
     (synopsis "Golden tests support for tasty")
     (description
-     "This package provides support for 'golden testing'.  A @dfn{golden test}
-is an IO action that writes its result to a file.  To pass the test, this
-output file should be identical to the corresponding 'golden' file, which
+     "This package provides support for @code{golden testing}.  A @dfn{golden
+test} is an IO action that writes its result to a file.  To pass the test, this
+output file should be identical to the corresponding @code{golden} file, which
 contains the correct result for the test.")
     (license license:expat)))
 
diff --git a/gnu/packages/haskell-crypto.scm b/gnu/packages/haskell-crypto.scm
index 8f216a379d..8d28a77fc1 100644
--- a/gnu/packages/haskell-crypto.scm
+++ b/gnu/packages/haskell-crypto.scm
@@ -733,3 +733,46 @@ It also includes support for detached signatures, and thorough
 documentation on the design and implementation, including usage
 guidelines.")
     (license license:expat)))
+
+(define-public ghc-tls
+  (package
+    (name "ghc-tls")
+    (version "1.4.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://hackage.haskell.org/package/"
+                                  "tls/tls-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1y083724mym28n6xfaz7pcc7zqxdhjpaxpbvzxfbs25qq2px3smv"))))
+    (build-system haskell-build-system)
+    (inputs
+     `(("ghc-cereal" ,ghc-cereal)
+       ("ghc-data-default-class" ,ghc-data-default-class)
+       ("ghc-memory" ,ghc-memory)
+       ("ghc-cryptonite" ,ghc-cryptonite)
+       ("ghc-asn1-types" ,ghc-asn1-types)
+       ("ghc-asn1-encoding" ,ghc-asn1-encoding)
+       ("ghc-x509" ,ghc-x509)
+       ("ghc-x509-store" ,ghc-x509-store)
+       ("ghc-x509-validation" ,ghc-x509-validation)
+       ("ghc-async" ,ghc-async)
+       ("ghc-network" ,ghc-network)
+       ("ghc-hourglass" ,ghc-hourglass)))
+    (native-inputs
+     `(("ghc-tasty" ,ghc-tasty)
+       ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
+       ("ghc-quickcheck" ,ghc-quickcheck)))
+    (home-page "https://github.com/vincenthz/hs-tls")
+    (synopsis
+     "TLS/SSL protocol native implementation (Server and Client)")
+    (description
+     "Native Haskell TLS and SSL protocol implementation for server and client.
+This provides a high-level implementation of a sensitive security protocol,
+eliminating a common set of security issues through the use of the advanced
+type system, high level constructions and common Haskell features.  Currently
+implement the SSL3.0, TLS1.0, TLS1.1 and TLS1.2 protocol, and support RSA and
+Ephemeral (Elliptic curve and regular) Diffie Hellman key exchanges, and many
+extensions.")
+    (license license:bsd-3)))
+
diff --git a/gnu/packages/haskell-web.scm b/gnu/packages/haskell-web.scm
index 2e404e2fcf..555fee12d4 100644
--- a/gnu/packages/haskell-web.scm
+++ b/gnu/packages/haskell-web.scm
@@ -1,6 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>
-;;; Copyright © 2015, 2016, 2018 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2015, 2016, 2017, 2018 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
 ;;; Copyright © 2016 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2017 rsiddharth <s@ricketyspace.net>
@@ -27,7 +27,6 @@
   #:use-module (gnu packages haskell)
   #:use-module (gnu packages haskell-check)
   #:use-module (gnu packages haskell-crypto)
-  #:use-module (gnu packages tls)
   #:use-module (guix build-system haskell)
   #:use-module (guix download)
   #:use-module ((guix licenses) #:prefix license:)
@@ -1244,3 +1243,108 @@ providing richtext field using Nic editor. ")
 Yesod related packages into one cohesive whole.  This is the version of Yesod,
 whereas most of the core code lives in @code{ghc-yesod-core}.")
     (license license:expat)))
+
+(define-public ghc-hxt-charproperties
+  (package
+    (name "ghc-hxt-charproperties")
+    (version "9.2.0.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://hackage.haskell.org/package/"
+                           "hxt-charproperties/hxt-charproperties-"
+                           version ".tar.gz"))
+       (sha256
+        (base32
+         "1mml8wglvagqq891rchgli6r8rnkwrqhgsxfl6kb5403pzb18rp4"))))
+    (build-system haskell-build-system)
+    (home-page "https://github.com/UweSchmidt/hxt")
+    (synopsis "Character properties and classes for XML and Unicode")
+    (description
+     "The modules provided by this package contain predicates for Unicode
+blocks and char properties and character predicates defined by XML.  The
+supported Unicode version is 7.0.0")
+    (license license:expat)))
+
+(define-public ghc-hxt-unicode
+  (package
+    (name "ghc-hxt-unicode")
+    (version "9.0.2.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://hackage.haskell.org/package/hxt-unicode/hxt-unicode-"
+             version
+             ".tar.gz"))
+       (sha256
+        (base32
+         "0rj48cy8z4fl3zpg5bpa458kqr83adav6jnqv4i71dclpprj6n3v"))))
+    (build-system haskell-build-system)
+    (inputs
+     `(("ghc-hxt-charproperties" ,ghc-hxt-charproperties)))
+    (home-page
+     "http://www.fh-wedel.de/~si/HXmlToolbox/index.html https://github.com/UweSchmidt/hxt")
+    (synopsis
+     "Unicode en-/decoding functions for utf8, iso-latin-* and other encodings")
+    (description
+     "This package provides Unicode encoding and decoding functions for
+encodings used in the Haskell XML Toolbox.  ISO Latin 1-16, utf8, utf16, ASCII
+are supported. Decoding is done with lazy functions, errors may be detected or
+ignored.")
+    (license license:expat)))
+
+(define-public ghc-hxt-regex-xmlschema
+  (package
+    (name "ghc-hxt-regex-xmlschema")
+    (version "9.2.0.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://hackage.haskell.org/package/"
+                           "hxt-regex-xmlschema/hxt-regex-xmlschema-"
+                           version ".tar.gz"))
+       (sha256
+        (base32
+         "1c4jr0439f5yc05h7iz53fa47g6l2wrvqp6gvwf01mlqajk3nx7l"))))
+    (build-system haskell-build-system)
+    (inputs
+     `(("ghc-hxt-charproperties" ,ghc-hxt-charproperties)
+       ("ghc-parsec" ,ghc-parsec)
+       ("ghc-text" ,ghc-text)
+       ("ghc-hunit" ,ghc-hunit)))
+    (home-page "http://www.haskell.org/haskellwiki/Regular_expressions_for_XML_Schema")
+    (synopsis "Regular expression library for W3C XML Schema regular expressions")
+    (description
+     "This library supports full W3C XML Schema regular expressions inclusive
+all Unicode character sets and blocks.  It is implemented by the technique of
+derivations of regular expressions.")
+    (license license:expat)))
+
+(define-public ghc-hxt
+  (package
+    (name "ghc-hxt")
+    (version "9.3.1.16")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://hackage.haskell.org/package/hxt/hxt-"
+             version
+             ".tar.gz"))
+       (sha256
+        (base32
+         "1qq3ykgn355rx242xjcbqqksgvwr6k2fdj5phw4iv28qqxff6m8d"))))
+    (build-system haskell-build-system)
+    (inputs
+     `(("ghc-parsec" ,ghc-parsec)
+       ("ghc-hxt-charproperties" ,ghc-hxt-charproperties)
+       ("ghc-hxt-unicode" ,ghc-hxt-unicode)
+       ("ghc-hxt-regex-xmlschema" ,ghc-hxt-regex-xmlschema)
+       ("ghc-network-uri" ,ghc-network-uri)))
+    (home-page "https://github.com/UweSchmidt/hxt")
+    (synopsis "Collection of tools for processing XML with Haskell")
+    (description
+     "The Haskell XML Toolbox bases on the ideas of HaXml and HXML, but
+introduces a more general approach for processing XML with Haskell.")
+    (license license:expat)))
diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index 2a5ba2a706..61c6119322 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -2,7 +2,7 @@
 ;;; Copyright © 2015, 2016 Federico Beffa <beffa@fbengineering.ch>
 ;;; Copyright © 2015 Siniša Biđin <sinisa@bidin.eu>
 ;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>
-;;; Copyright © 2015 Eric Bavier <bavier@member.fsf.org>
+;;; Copyright © 2015, 2019 Eric Bavier <bavier@member.fsf.org>
 ;;; Copyright © 2016, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2016, 2017 ng0 <ng0@n0.is>
 ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
@@ -12,7 +12,7 @@
 ;;; Copyright © 2017 Peter Mikkelsen <petermikkelsen10@gmail.com>
 ;;; Copyright © 2017, 2018 Alex Vong <alexvong1995@gmail.com>
 ;;; Copyright © 2017 rsiddharth <s@ricketyspace.net>
-;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; 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 Arun Isaac <arunisaac@systemreboot.net>
@@ -833,6 +833,28 @@ code pages on Windows.  On all other operating systems, the library does
 nothing.")
   (license license:bsd-3)))
 
+(define-public ghc-libffi
+  (package
+    (name "ghc-libffi")
+    (version "0.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://hackage.haskell.org/package/"
+                           "libffi/libffi-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0g7jnhng3j7z5517aaqga0144aamibsbpgm3yynwyfzkq1kp0f28"))))
+    (build-system haskell-build-system)
+    (native-inputs `(("pkg-config" ,pkg-config)))
+    (inputs `(("libffi" ,libffi)))
+    (home-page "http://hackage.haskell.org/package/libffi")
+    (synopsis "Haskell binding to libffi")
+    (description
+     "A binding to libffi, allowing C functions of types only known at runtime
+to be called from Haskell.")
+    (license license:bsd-3)))
+
 (define-public ghc-newtype-generics
   (package
     (name "ghc-newtype-generics")
@@ -1157,7 +1179,7 @@ them.")
     (synopsis
      "Support for manipulating Haskell source code")
     (description
-     "The 'haskell-src' package provides support for manipulating Haskell
+     "The @code{haskell-src} package provides support for manipulating Haskell
 source code.  The package provides a lexer, parser and pretty-printer, and a
 definition of a Haskell abstract syntax tree (AST).  Common uses of this
 package are to parse or generate Haskell 98 code.")
@@ -1313,7 +1335,7 @@ Happy works in a similar way to the yacc tool for C.")
 (define-public ghc-haskell-lexer
   (package
     (name "ghc-haskell-lexer")
-    (version "1.0.1")
+    (version "1.0.2")
     (source
      (origin
        (method url-fetch)
@@ -1321,8 +1343,7 @@ Happy works in a similar way to the yacc tool for C.")
              "https://hackage.haskell.org/package/haskell-lexer/haskell-lexer-"
              version ".tar.gz"))
        (sha256
-        (base32
-         "0rj3r1pk88hh3sk3mj61whp8czz5kpxhbc78xlr04bxwqjrjmm6p"))))
+        (base32 "1wyxd8x33x4v5vxyzkhm610pl86gbkc8y439092fr1735q9g7kfq"))))
     (build-system haskell-build-system)
     (home-page "http://hackage.haskell.org/package/haskell-lexer")
     (synopsis "Fully compliant Haskell 98 lexer")
@@ -2360,11 +2381,11 @@ literals.")
      "Compression and decompression in the gzip and zlib formats")
     (description
      "This package provides a pure interface for compressing and decompressing
-streams of data represented as lazy 'ByteString's.  It uses the zlib C library
-so it has high performance.  It supports the 'zlib', 'gzip' and 'raw'
-compression formats.  It provides a convenient high level API suitable for
-most tasks and for the few cases where more control is needed it provides
-access to the full zlib feature set.")
+streams of data represented as lazy @code{ByteString}s.  It uses the zlib C
+library so it has high performance.  It supports the @code{zlib}, @code{gzip}
+and @code{raw} compression formats.  It provides a convenient high level API
+suitable for most tasks and for the few cases where more control is needed it
+provides access to the full zlib feature set.")
     (license license:bsd-3)))
 
 (define-public ghc-stm
@@ -2467,7 +2488,7 @@ are not exception safe and can be broken by @code{killThread}.")
      "An efficient packed, immutable Unicode text type (both strict and
 lazy), with a powerful loop fusion optimization framework.
 
-The 'Text' type represents Unicode character strings, in a time and
+The @code{Text} type represents Unicode character strings, in a time and
 space-efficient manner.  This package provides text processing
 capabilities that are optimized for performance critical use, both
 in terms of large data quantities and high speed.")
@@ -3800,10 +3821,10 @@ writing to stdout and other handles.")
      "https://github.com/basvandijk/case-insensitive")
     (synopsis "Case insensitive string comparison")
     (description
-     "The module 'Data.CaseInsensitive' provides the 'CI' type constructor
-which can be parameterised by a string-like type like: 'String', 'ByteString',
-'Text', etc..  Comparisons of values of the resulting type will be insensitive
-to cases.")
+     "The module @code{Data.CaseInsensitive} provides the @code{CI} type
+constructor which can be parameterised by a string-like type like:
+@code{String}, @code{ByteString}, @code{Text}, etc.  Comparisons of values of
+the resulting type will be insensitive to cases.")
     (license license:bsd-3)))
 
 (define-public ghc-syb
@@ -3830,7 +3851,7 @@ to cases.")
     (description "This package contains the generics system described in the
 /Scrap Your Boilerplate/ papers (see
 @uref{http://www.cs.uu.nl/wiki/GenericProgramming/SYB, the website}).  It
-defines the 'Data' class of types permitting folding and unfolding of
+defines the @code{Data} class of types permitting folding and unfolding of
 constructor applications, instances of this class for primitive types, and a
 variety of traversals.")
     (license license:bsd-3)))
@@ -4323,8 +4344,8 @@ interface.")
      "https://github.com/haskell/network-uri")
     (synopsis "Library for URI manipulation")
     (description "This package provides an URI manipulation interface.  In
-'network-2.6' the 'Network.URI' module was split off from the 'network'
-package into this package.")
+@code{network-2.6} the @code{Network.URI} module was split off from the
+@code{network} package into this package.")
     (license license:bsd-3)))
 
 (define-public ghc-ansi-terminal
@@ -5724,7 +5745,7 @@ using a simple box model.")
     (description
      "This package provides a @code{GHC.Generics}-based
 @code{Control.DeepSeq.Generics.genericRnf} function which can be used for
-providing an 'rnf' implementation.")
+providing an @code{rnf} implementation.")
     (license license:bsd-3)))
 
 (define-public ghc-string-qq
@@ -8462,6 +8483,7 @@ JSON (JavaScript Object Notation) is a lightweight data-interchange format.")
          (uri (git-reference
                (url "https://github.com/bitemyapp/esqueleto")
                (commit commit)))
+         (file-name (git-file-name name version))
          (sha256
           (base32
            "0lz1qxms7cfg5p3j37inlych0r2fwhm8xbarcys3df9m7jy9nixa"))))
@@ -9430,7 +9452,7 @@ the community, with the missing features being added with pull-requests.")
      `(("ghc-rebase" ,ghc-rebase)))
     (home-page "https://github.com/nikita-volkov/rerebase")
     (synopsis "Reexports from ``base'' with many other standard libraries")
-    (description "A rich drop-in replacement for ``base''.  For details and
+    (description "A rich drop-in replacement for @code{base}.  For details and
 documentation please visit @uref{https://github.com/nikita-volkov/rerebase,
 the project's home page}.")
     (license license:expat)))
diff --git a/gnu/packages/ibus.scm b/gnu/packages/ibus.scm
index 77aecce9f2..f652cca1c2 100644
--- a/gnu/packages/ibus.scm
+++ b/gnu/packages/ibus.scm
@@ -57,7 +57,7 @@
 (define-public ibus
   (package
     (name "ibus")
-    (version "1.5.19")
+    (version "1.5.20")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/ibus/ibus/"
@@ -65,23 +65,15 @@
                                   version "/ibus-" version ".tar.gz"))
               (sha256
                (base32
-                "0a94bnpm24581317hdnihwr4cniriml10p4ffgxg14xhvaccfrjb"))))
+                "0d6hcbw6ai91jl87lqnyn8bxi5y5kba5i9nz7knknyh69g5fbwac"))))
     (build-system glib-or-gtk-build-system)
     (arguments
      `(#:tests? #f  ; tests fail because there's no connection to dbus
        #:configure-flags `("--disable-emoji-dict" ; cannot find emoji.json path
-                           "--disable-python2"
                            "--enable-python-library"
                            ,(string-append "--with-ucd-dir="
                                            (getcwd) "/ucd")
                            "--enable-wayland")
-       #:make-flags
-       (list "CC=gcc"
-             (string-append "pyoverridesdir="
-                            (assoc-ref %outputs "out")
-                            "/lib/python"
-                            ,(version-major+minor (package-version python))
-                            "/site-packages/gi/overrides/"))
        #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'prepare-ucd-dir
@@ -90,6 +82,18 @@
              (symlink (assoc-ref inputs "unicode-blocks") "../ucd/Blocks.txt")
              (symlink (assoc-ref inputs "unicode-nameslist") "../ucd/NamesList.txt")
              #t))
+         (add-after 'unpack 'patch-python-target-directories
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((root (string-append (assoc-ref outputs "out")
+                                        "/lib/python"
+                                        ,(version-major+minor (package-version python))
+                                        "/site-packages")))
+               (substitute* "configure"
+                 (("(py2?overridesdir)=.*" _ var)
+                  (string-append var "=" root "/gi/overrides/"))
+                 (("(pkgpython2dir=).*" _ var)
+                  (string-append var root "/ibus"))))
+             #t))
          (add-before 'configure 'disable-dconf-update
            (lambda _
              (substitute* "data/dconf/Makefile.in"
@@ -131,7 +135,7 @@
        ("gconf" ,gconf)
        ("gtk2" ,gtk+-2)
        ("gtk+" ,gtk+)
-       ("intltool" ,intltool)
+       ("gettext" ,gnu-gettext)
        ("json-glib" ,json-glib)
        ("libnotify" ,libnotify)
        ("libx11" ,libx11)
@@ -175,7 +179,7 @@ may also simplify input method development.")
 (define-public ibus-libpinyin
   (package
     (name "ibus-libpinyin")
-    (version "1.10.0")
+    (version "1.11.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/libpinyin/ibus-libpinyin/"
@@ -183,7 +187,7 @@ may also simplify input method development.")
                                   "/ibus-libpinyin-" version ".tar.gz"))
               (sha256
                (base32
-                "0yq8aw4lddiviag8cnik6fp52vvk8lxv6bym13a3xya84c6zii3c"))))
+                "1sypbr5n96sf7mgqhxrwbawdmszgb6yi28iqkmfmb8xr93pwq7fq"))))
     (build-system glib-or-gtk-build-system)
     (arguments
      `(#:phases
@@ -209,6 +213,7 @@ may also simplify input method development.")
        ("sqlite" ,sqlite)
        ("python" ,python)
        ("pyxdg" ,python-pyxdg)
+       ("pygobject2" ,python-pygobject)
        ("gtk+" ,gtk+)))
     (native-inputs
      `(("pkg-config" ,pkg-config)
@@ -224,15 +229,15 @@ ZhuYin (Bopomofo) input method based on libpinyin for IBus.")
 (define-public libpinyin
   (package
     (name "libpinyin")
-    (version "2.2.0")
+    (version "2.3.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/libpinyin/libpinyin/"
                                   "releases/download/" version
-                                  "/libpinyin-2.2.0.tar.gz"))
+                                  "/libpinyin-" version ".tar.gz"))
               (sha256
                (base32
-                "1c4wxvcvjxvk23mcwqvsfsv4nhimx4kpjhabxa28gx1ih10l88gj"))))
+                "14969v6w8n1aiqphl2386dws7dmsdwbzyqnlz4kr8ppm39m9rp5k"))))
     (build-system gnu-build-system)
     (inputs
      `(("glib" ,glib)
diff --git a/gnu/packages/idris.scm b/gnu/packages/idris.scm
index f80d6b3894..ec3eb15d63 100644
--- a/gnu/packages/idris.scm
+++ b/gnu/packages/idris.scm
@@ -2,6 +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>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -19,11 +20,14 @@
 ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 
 (define-module (gnu packages idris)
+  #:use-module (gnu packages)
   #:use-module (gnu packages haskell)
   #:use-module (gnu packages haskell-check)
   #:use-module (gnu packages haskell-web)
+  #:use-module (gnu packages libffi)
   #:use-module (gnu packages multiprecision)
   #:use-module (gnu packages ncurses)
+  #:use-module (gnu packages perl)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system haskell)
   #:use-module (guix download)
@@ -34,7 +38,7 @@
 (define-public idris
   (package
     (name "idris")
-    (version "1.3.0")
+    (version "1.3.1")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -42,8 +46,14 @@
                     "idris-" version "/idris-" version ".tar.gz"))
               (sha256
                (base32
-                "1w5i2z88li4niykwc6yrgxgfp25ll6ih95cip0ri7d8i7ik03c48"))))
+                "0fn9h58l592j72njwma1ia48h8h87wi2rjqfxs7j2lfmvgfv18fi"))
+              (patches (search-patches "idris-test-no-node.patch"))))
     (build-system haskell-build-system)
+    (native-inputs                      ;For tests
+     `(("perl" ,perl)
+       ("ghc-tasty" ,ghc-tasty)
+       ("ghc-tasty-golden" ,ghc-tasty-golden)
+       ("ghc-tasty-rerun" ,ghc-tasty-rerun)))
     (inputs
      `(("gmp" ,gmp)
        ("ncurses" ,ncurses)
@@ -60,6 +70,7 @@
        ("ghc-fingertree" ,ghc-fingertree)
        ("ghc-fsnotify" ,ghc-fsnotify)
        ("ghc-ieee754" ,ghc-ieee754)
+       ("ghc-libffi" ,ghc-libffi)
        ("ghc-megaparsec" ,ghc-megaparsec)
        ("ghc-network" ,ghc-network)
        ("ghc-optparse-applicative" ,ghc-optparse-applicative)
@@ -75,21 +86,16 @@
        ("ghc-vector-binary-instances" ,ghc-vector-binary-instances)
        ("ghc-zip-archive" ,ghc-zip-archive)))
     (arguments
-     `(#:tests? #f ; FIXME: Test suite doesn't run in a sandbox.
-       #:configure-flags
+     `(#:configure-flags
        (list (string-append "--datasubdir="
-                            (assoc-ref %outputs "out") "/lib/idris"))
+                            (assoc-ref %outputs "out") "/lib/idris")
+             "-fFFI" "-fGMP")
        #:phases
        (modify-phases %standard-phases
          (add-before 'configure 'set-cc-command
            (lambda _
              (setenv "CC" "gcc")
              #t))
-         (add-before 'configure 'update-constraints
-           (lambda _
-             (substitute* "idris.cabal"
-               (("aeson >= 0\\.6 && < 1\\.3")
-                "aeson >= 0.6 && < 1.4"))))
          (add-after 'install 'fix-libs-install-location
            (lambda* (#:key outputs #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out"))
@@ -99,7 +105,15 @@
                 (lambda (module)
                   (symlink (string-append modules "/" module)
                            (string-append lib "/" module)))
-                '("prelude" "base" "contrib" "effects" "pruviloj"))))))))
+                '("prelude" "base" "contrib" "effects" "pruviloj")))))
+         (delete 'check)                ;Run check later
+         (add-after 'install 'check
+           (lambda* (#:key outputs #:allow-other-keys #:rest args)
+             (let ((out (assoc-ref outputs "out")))
+               (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)))))))
     (native-search-paths
      (list (search-path-specification
             (variable "IDRIS_LIBRARY_PATH")
diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm
index 54ce2d3b40..08b4be5148 100644
--- a/gnu/packages/image.scm
+++ b/gnu/packages/image.scm
@@ -87,6 +87,7 @@
   (package
    (name "libpng")
    (version "1.6.36")
+   (replacement libpng-1.6.37)
    (source (origin
             (method url-fetch)
             (uri (list (string-append "mirror://sourceforge/libpng/libpng16/"
@@ -112,6 +113,25 @@ library.  It supports almost all PNG features and is extensible.")
    (license license:zlib)
    (home-page "http://www.libpng.org/pub/png/libpng.html")))
 
+;; This graft exists to fix CVE-2018-14048, CVE-2018-14550, and CVE-2019-7317.
+(define-public libpng-1.6.37
+  (package
+    (inherit libpng)
+    (version "1.6.37")
+    (source (origin
+              (method url-fetch)
+              (uri (list (string-append "mirror://sourceforge/libpng/libpng16/"
+                                        version "/libpng-" version ".tar.xz")
+                         (string-append
+                          "ftp://ftp.simplesystems.org/pub/libpng/png/src"
+                          "/libpng16/libpng-" version ".tar.xz")
+                         (string-append
+                          "ftp://ftp.simplesystems.org/pub/libpng/png/src/history"
+                          "/libpng16/libpng-" version ".tar.xz")))
+              (sha256
+               (base32
+                "1jl8in381z0128vgxnvn33nln6hzckl7l7j9nqvkaf1m9n1p0pjh"))))))
+
 ;; libpng-apng should be updated when the APNG patch is released:
 ;; <https://bugs.gnu.org/27556>
 (define-public libpng-apng
@@ -198,29 +218,6 @@ APNG patch provides APNG support to libpng.")
         (base32
          "1izw9ybm27llk8531w6h4jp4rk2rxy2s9vil16nwik5dp0amyqxl"))))))
 
-(define-public r-png
-  (package
-    (name "r-png")
-    (version "0.1-7")
-    (source (origin
-              (method url-fetch)
-              (uri (cran-uri "png" version))
-              (sha256
-               (base32
-                "0g2mcp55lvvpx4kd3mn225mpbxqcq73wy5qx8b4lyf04iybgysg2"))))
-    (build-system r-build-system)
-    (inputs
-     `(("libpng" ,libpng)
-       ("zlib" ,zlib)))
-    (home-page "http://www.rforge.net/png/")
-    (synopsis "Read and write PNG images")
-    (description
-     "This package provides an easy and simple way to read, write and display
-bitmap images stored in the PNG format.  It can read and write both files and
-in-memory raw vectors.")
-    ;; Any of these GPL versions.
-    (license (list license:gpl2 license:gpl3))))
-
 (define-public pngcrush
   (package
    (name "pngcrush")
@@ -568,7 +565,7 @@ arithmetic ops.")
     (arguments '(#:configure-flags '("--disable-static")))
     (synopsis "Decoder of the JBIG2 image compression format")
     (description
-      "JBIG2 is designed for lossy or lossless encoding of 'bilevel' (1-bit
+      "JBIG2 is designed for lossy or lossless encoding of @code{bilevel} (1-bit
 monochrome) images at moderately high resolution, and in particular scanned
 paper documents.  In this domain it is very efficient, offering compression
 ratios on the order of 100:1.
@@ -584,6 +581,7 @@ work.")
   (package
     (name "openjpeg")
     (version "2.3.0")
+    (replacement openjpeg-2.3.1)
     (source
       (origin
         (method url-fetch)
@@ -617,6 +615,20 @@ error-resilience, a Java-viewer for j2k-images, ...")
     (home-page "https://github.com/uclouvain/openjpeg")
     (license license:bsd-2)))
 
+(define-public openjpeg-2.3.1
+  (package
+    (inherit 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"))))))
+
 (define-public openjpeg-1
   (package (inherit openjpeg)
     (name "openjpeg")
@@ -1161,13 +1173,13 @@ the programmer.")
     (version "1.3")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/myint/perceptualdiff/archive/v"
-                           version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
-        (sha256
-         (base32
-          "0zl6xmp971fffg7fzcz2fbgxg5x2w7l8qa65c008i4kbkc9016ps"))))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/myint/perceptualdiff.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0yys55f9i9g3wjjg0j2m0p0k21zwnid8520a8lrr30khm4k5gibp"))))
     (build-system cmake-build-system)
     (inputs `(("freeimage" ,freeimage)))
     (arguments
@@ -1500,15 +1512,14 @@ in-memory raw vectors.")
 (define-public gifsicle
   (package
    (name "gifsicle")
-   (version "1.91")
+   (version "1.92")
    (source
      (origin
        (method url-fetch)
-       (uri (string-append "http://www.lcdf.org/gifsicle/gifsicle-"
+       (uri (string-append "https://www.lcdf.org/gifsicle/gifsicle-"
                            version ".tar.gz"))
        (sha256
-        (base32
-         "00586z1yz86qcblgmf16yly39n4lkjrscl52hvfxqk14m81fckha"))))
+        (base32 "0rffpzxcak19k6cngpxn73khvm3z1gswrqs90ycdzzb53p05ddas"))))
    (build-system gnu-build-system)
    (arguments
     '(#:phases
@@ -1523,9 +1534,9 @@ in-memory raw vectors.")
               (("/bin/rm")
                (which "rm")))
             #t)))))
-   (native-inputs `(("perl" ,perl))) ; Only for tests.
+   (native-inputs `(("perl" ,perl)))    ; only for tests
    (inputs `(("libx11" ,libx11)))
-   (home-page "http://www.lcdf.org/gifsicle/")
+   (home-page "https://www.lcdf.org/gifsicle/")
    (synopsis "Edit GIF images and animations")
    (description "Gifsicle is a command-line GIF image manipulation tool that:
 
diff --git a/gnu/packages/imagemagick.scm b/gnu/packages/imagemagick.scm
index 7f3fc408e0..f69f452ee2 100644
--- a/gnu/packages/imagemagick.scm
+++ b/gnu/packages/imagemagick.scm
@@ -48,14 +48,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.10-34")
+    (version "6.9.10-35")
     (source (origin
              (method url-fetch)
              (uri (string-append "mirror://imagemagick/ImageMagick-"
                                  version ".tar.xz"))
              (sha256
               (base32
-               "1pm1lvbfw67780nch7w80dsvx7v8wbrpj43v3c9217dpz0l89442"))))
+               "1mc7f1i29w27nqsc8gmlqxyid16ik4ys0razggwajzs7mhxy3g8g"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags '("--with-frozenpaths" "--without-gcc-arch")
diff --git a/gnu/packages/ipfs.scm b/gnu/packages/ipfs.scm
index 6b8afd5f53..4f61f2ba66 100644
--- a/gnu/packages/ipfs.scm
+++ b/gnu/packages/ipfs.scm
@@ -152,7 +152,7 @@ that are shared between @command{go-ipfs/commands} and its rewrite
     (home-page "https://github.com/whyrusleeping/gx")
     (synopsis "Package management tool using IPFS")
     (description "@command{gx} is a packaging tool built around the
-distributed, content addressed filesystem IPFS.  It aims to be flexible,
+distributed, content addressed file system IPFS.  It aims to be flexible,
 powerful and simple.")
     (license license:expat)))
 
@@ -244,7 +244,7 @@ written in Go.")
                         #t))))))
     (home-page "https://ipfs.io")
     (synopsis "Go implementation of IPFS, a peer-to-peer hypermedia protocol")
-    (description "IPFS is a global, versioned, peer-to-peer filesystem.  It
+    (description "IPFS is a global, versioned, peer-to-peer file system.  It
 combines good ideas from Git, BitTorrent, Kademlia, SFS, and the Web.  It is
 like a single bittorrent swarm, exchanging git objects.  IPFS provides an
 interface as simple as the HTTP web, but with permanence built in.  You can
diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index 47dc89d373..9664d749fb 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -52,7 +52,6 @@
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages gcc)
   #:use-module (gnu packages gl)
-  #:use-module (gnu packages gnuzilla) ;nss
   #:use-module (gnu packages ghostscript) ;lcms
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages groovy)
@@ -64,6 +63,7 @@
   #:use-module (gnu packages libffi)
   #:use-module (gnu packages linux) ;alsa
   #:use-module (gnu packages maths)
+  #:use-module (gnu packages nss)
   #:use-module (gnu packages onc-rpc)
   #:use-module (gnu packages web)
   #:use-module (gnu packages wget)
@@ -3225,7 +3225,7 @@ sharing common test data, and test runners for running tests.")
 (define-public java-plexus-utils
   (package
     (name "java-plexus-utils")
-    (version "3.0.24")
+    (version "3.2.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/codehaus-plexus/"
@@ -3233,7 +3233,7 @@ sharing common test data, and test runners for running tests.")
                                   version ".tar.gz"))
               (sha256
                (base32
-                "1mlwpc6fms24slygv5yvi6fi9hcha2fh0v73p5znpi78bg36i2js"))))
+                "1ihfigar20lvk4pinii7dq05i173xphhw4iyrk6gjfy04m01j2lz"))))
     (build-system ant-build-system)
     ;; FIXME: The default build.xml does not include a target to install
     ;; javadoc files.
@@ -3266,7 +3266,8 @@ cli/shell/BourneShell.java"
                (delete-file "cli/CommandlineTest.java"))
              #t)))))
     (native-inputs
-     `(("java-junit" ,java-junit)))
+     `(("java-hamcrest-core" ,java-hamcrest-core)
+       ("java-junit" ,java-junit)))
     (home-page "http://codehaus-plexus.github.io/plexus-utils/")
     (synopsis "Common utilities for the Plexus framework")
     (description "This package provides various Java utility classes for the
@@ -3415,14 +3416,14 @@ reusing it in maven.")
 (define-public java-plexus-archiver
   (package
     (name "java-plexus-archiver")
-    (version "3.5")
+    (version "4.1.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/codehaus-plexus/plexus-archiver"
                                   "/archive/plexus-archiver-" version ".tar.gz"))
               (sha256
                (base32
-                "0iv1j7khra6icqh3jndng3iipfmkc7l5jq2y802cm8r575v75pyv"))))
+                "0ry6i92gli0mvdmfih2vgs0lkf9yvx18h2ajxim66yg6yipnp0hg"))))
     (build-system ant-build-system)
     (arguments
      `(#:jar-name "plexus-archiver.jar"
@@ -3438,6 +3439,11 @@ reusing it in maven.")
              (delete-file
               "src/test/java/org/codehaus/plexus/archiver/DuplicateFilesTest.java")
              #t))
+         (add-before 'check 'fix-test-building
+           (lambda _
+             (substitute* "build.xml"
+               (("srcdir=\"src/test\"") "srcdir=\"src/test/java\""))
+             #t))
          (add-before 'build 'copy-resources
            (lambda _
              (mkdir-p "build/classes/META-INF/plexus")
@@ -3454,7 +3460,8 @@ reusing it in maven.")
        ("snappy" ,java-snappy)
        ("java-jsr305" ,java-jsr305)))
     (native-inputs
-     `(("junit" ,java-junit)
+     `(("java-hamcrest-core" ,java-hamcrest-core)
+       ("junit" ,java-junit)
        ("classworld" ,java-plexus-classworlds)
        ("xbean" ,java-geronimo-xbean-reflect)
        ("xz" ,java-tukaani-xz)
@@ -4027,16 +4034,18 @@ complex transformations and code analysis tools.")
   (package
     (name "java-cglib")
     (version "3.2.4")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "https://github.com/cglib/cglib/archive/RELEASE_"
-                    (string-map (lambda (c) (if (char=? c #\.) #\_ c)) version)
-                    ".tar.gz"))
-              (file-name (string-append "cglib-" version ".tar.gz"))
-              (sha256
-               (base32
-                "162dvd4fln76ai8prfharf66pn6r56p3sxx683j5vdyccrd5hi1q"))))
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/cglib/cglib.git")
+             (commit (string-append
+                      "RELEASE_"
+                      (string-map (lambda (c) (if (char=? c #\.) #\_ c))
+                                  version)))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "186451jms2zfp47yd8kxd77az2cqal1my2br7klgyp8fpl4qfg8v"))))
     (build-system ant-build-system)
     (arguments
      `(;; FIXME: tests fail because junit runs
@@ -10294,7 +10303,7 @@ authentication, HTTP state management, and HTTP connection management.")
        ("java-commons-net" ,java-commons-net)
        ("java-jsch" ,java-jsch)))
     (home-page "http://commons.apache.org/proper/commons-vfs/")
-    (synopsis "Java filesystem library")
+    (synopsis "Java file system library")
     (description "Commons VFS provides a single API for accessing various
 different file systems.  It presents a uniform view of the files from various
 different sources, such as the files on local disk, on an HTTP server, or
@@ -10970,3 +10979,78 @@ class/interface/method definitions from source files complete with JavaDoc
 @code{@@tags}.  It is designed to be used by active code generators or
 documentation tools.")
     (license license:asl2.0)))
+
+(define-public java-jgit
+  (package
+    (name "java-jgit")
+    (version "4.7.0.201704051617-r")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://repo1.maven.org/maven2/"
+                                  "org/eclipse/jgit/org.eclipse.jgit/"
+                                  version "/org.eclipse.jgit-"
+                                  version "-sources.jar"))
+              (sha256
+               (base32
+                "13ii4jn02ynzq6i7gsyi21k2i94jpc85wf6bcm31q4cyvzv0mk4k"))))
+    (build-system ant-build-system)
+    (arguments
+     `(#:tests? #f                      ; There are no tests to run.
+       #:jar-name "jgit.jar"
+       ;; JGit must be built with a JDK supporting Java 8.
+       #:jdk ,icedtea-8
+       ;; Target our older default JDK.
+       #:make-flags (list "-Dtarget=1.7")
+       #:phases
+       (modify-phases %standard-phases
+         ;; The jar file generated by the default build.xml does not include
+         ;; the text properties files, so we need to add them.
+         (add-after 'build 'add-properties
+           (lambda* (#:key jar-name #:allow-other-keys)
+             (with-directory-excursion "src"
+               (apply invoke "jar" "-uf"
+                      (string-append "../build/jar/" jar-name)
+                      (find-files "." "\\.properties$")))
+             #t)))))
+    (inputs
+     `(("java-classpathx-servletapi" ,java-classpathx-servletapi)
+       ("java-javaewah" ,java-javaewah)
+       ("java-jsch" ,java-jsch)
+       ("java-slf4j-api" ,java-slf4j-api)))
+    (home-page "https://eclipse.org/jgit/")
+    (synopsis "Java library implementing the Git version control system")
+    (description "JGit is a lightweight, pure Java library implementing the
+Git version control system, providing repository access routines, support for
+network protocols, and core version control algorithms.")
+    (license license:edl1.0)))
+
+;; For axoloti.  This package can still be built with icedtea-7, which is
+;; currently used as the default JDK.
+(define-public java-jgit-4.2
+  (package (inherit java-jgit)
+    (version "4.2.0.201601211800-r")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://repo1.maven.org/maven2/"
+                                  "org/eclipse/jgit/org.eclipse.jgit/"
+                                  version "/org.eclipse.jgit-"
+                                  version "-sources.jar"))
+              (sha256
+               (base32
+                "15gm537iivhnzlkjym4x3wn5jqdjdragsw9pdpzqqg21nrc817mm"))))
+    (build-system ant-build-system)
+    (arguments
+     (substitute-keyword-arguments (package-arguments java-jgit)
+       ;; Build for default JDK.
+       ((#:jdk _) icedtea-7)
+       ((#:phases phases)
+        `(modify-phases ,phases
+           (add-after 'unpack 'use-latest-javaewah-API
+             (lambda _
+               (substitute* "src/org/eclipse/jgit/internal/storage/file/BitmapIndexImpl.java"
+                 (("wordinbits") "WORD_IN_BITS"))
+               #t))))))
+    (inputs
+     `(("java-javaewah" ,java-javaewah)
+       ("java-jsch" ,java-jsch)
+       ("java-slf4j-api" ,java-slf4j-api)))))
diff --git a/gnu/packages/kde-frameworks.scm b/gnu/packages/kde-frameworks.scm
index 10a1dfe0d1..ec735d8903 100644
--- a/gnu/packages/kde-frameworks.scm
+++ b/gnu/packages/kde-frameworks.scm
@@ -418,7 +418,7 @@ documentation.")
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "Qt 5 addon providing access to numerous types of archives")
     (description "KArchive provides classes for easy reading, creation and
-manipulation of 'archive' formats like ZIP and TAR.
+manipulation of @code{archive} formats like ZIP and TAR.
 
 It also provides transparent compression and decompression of data, like the
 GZip format, via a subclass of QIODevice.")
@@ -2585,8 +2585,9 @@ in applications using the KDE Frameworks.")
     (synopsis "Library to speed up start of applications on KDE workspaces")
     (description "Kdeinit is a process launcher similar to init used for booting
 UNIX.  It launches processes by forking and then loading a dynamic library which
-contains a 'kdemain(...)' function.  Using kdeinit to launch KDE applications
-makes starting KDE applications faster and reduces memory consumption.")
+contains a @code{kdemain(@dots{})} function.  Using kdeinit to launch KDE
+applications makes starting KDE applications faster and reduces memory
+consumption.")
     ;; dual licensed
     (license (list license:lgpl2.0+ license:lgpl2.1+))))
 
diff --git a/gnu/packages/kde.scm b/gnu/packages/kde.scm
index 23078d00a0..2427d35ea1 100644
--- a/gnu/packages/kde.scm
+++ b/gnu/packages/kde.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2017, 2019 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016, 2017 Thomas Danckaert <post@thomasdanckaert.be>
 ;;; Copyright © 2017, 2018 Mark Meyer <mark@ofosos.org>
 ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
@@ -47,10 +47,12 @@
   #:use-module (gnu packages perl)
   #:use-module (gnu packages photo)
   #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages python)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages qt)
   #:use-module (gnu packages version-control)
   #:use-module (gnu packages video)
+  #:use-module (gnu packages xdisorg)
   #:use-module (gnu packages xorg))
 
 (define-public kdenlive
@@ -296,7 +298,7 @@ for some KDevelop language plugins (Ruby, PHP, CSS...).")
      `(#:phases
        (modify-phases %standard-phases
          (delete 'check)
-         (add-after 'install 'check ;; add-after 'install
+         (add-after 'install 'check
            (lambda* (#:key outputs #:allow-other-keys)
              (let ((out (assoc-ref outputs "out")))
                (setenv "CTEST_OUTPUT_ON_FAILURE" "1")
@@ -306,9 +308,8 @@ for some KDevelop language plugins (Ruby, PHP, CSS...).")
                (setenv "XDG_DATA_DIRS"
                        (string-append out "/share:"
                                       (getenv "XDG_DATA_DIRS")))
-               (zero?
-                (system* "ctest" "-R" ;; almost all tests require a display
-                         "filteringstrategy|kdevvarlengtharray|kdevhash"))))))))
+               (invoke "ctest" "-R" ; almost all tests require a display
+                       "filteringstrategy|kdevvarlengtharray|kdevhash")))))))
     (home-page "https://github.com/KDE/kdevplatform")
     (synopsis "Framework to build integrated development environments (IDEs)")
     (description "KDevPlatform is the basis of KDevelop and contains some
@@ -531,3 +532,79 @@ cards.")
 Using a plugin system it is possible to create notifications with many
 different notification systems.")
     (license license:lgpl3)))
+
+(define-public kdeconnect
+  (package
+    (name "kdeconnect")
+    (version "1.3.3")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append "mirror://kde/stable/kdeconnect/"
+                            version "/src/kdeconnect-kde-"
+                            version ".tar.xz"))
+        (sha256
+         (base32
+          "1vac0mw1myrswr61adv7lgif0c4wzw5wnsj0sqxj6msp4l4pfgsg"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:configure-flags '("-DBUILD_TESTING=ON")
+       #:tests? #f ; tests fail hard in our build environment
+       #:modules ((guix build cmake-build-system)
+                  (guix build qt-utils)
+                  (guix build utils))
+       #:imported-modules (,@%cmake-build-system-modules
+                            (guix build qt-utils))
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'check 'check-setup
+           (lambda _
+             (setenv "QT_QPA_PLATFORM" "offscreen")
+             #t))
+         (add-after 'install 'wrap-executable
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out")))
+               (setenv "QT_PLUGIN_PATH"
+                       (string-append out "/lib/qt5/plugins"
+                                      ":" (getenv "QT_PLUGIN_PATH")))
+               (wrap-qt-program out "../lib/libexec/kdeconnectd")
+               (wrap-qt-program out "kdeconnect-cli")
+               (wrap-qt-program out "kdeconnect-handler")
+               (wrap-qt-program out "kdeconnect-indicator"))
+             #t)))))
+    (native-inputs
+     `(("extra-cmake-modules" ,extra-cmake-modules)
+       ("kdoctools" ,kdoctools)
+       ("libxtst" ,libxtst)
+       ("pkg-config" ,pkg-config)
+       ("python" ,python-wrapper)))
+    (inputs
+     `(("kcmutils" ,kcmutils)
+       ("kconfigwidgets" ,kconfigwidgets)
+       ("kdbusaddons" ,kdbusaddons)
+       ("ki18n" ,ki18n)
+       ("kiconthemes" ,kiconthemes)
+       ("kio" ,kio)
+       ("knotifications" ,knotifications)
+       ("kwayland" ,kwayland)
+       ("libfakekey" ,libfakekey)
+       ("qca" ,qca)
+       ("qtbase" ,qtbase)
+       ("qtdeclarative" ,qtdeclarative)
+       ("qtx11extras" ,qtx11extras)))
+    (home-page "https://community.kde.org/KDEConnect")
+    (synopsis "Enable your devices to communicate with each other")
+    (description "KDE Connect is a project that enables all your devices to
+communicate with each other.  Here's a few things KDE Connect can do:
+@enumerate
+@item Receive your phone notifications on your desktop computer and reply to messages
+@item Control music playing on your desktop from your phone
+@item Use your phone as a remote control for your desktop
+@item Run predefined commands on your PC from connected devices
+@item Check your phones battery level from the desktop
+@item Ring your phone to help finding it
+@item Share files and links between devices
+@item Browse your phone from the desktop
+@item Control the desktop's volume from the phone
+@end enumerate")
+    (license (list license:gpl2 license:gpl3)))) ; dual licensed
diff --git a/gnu/packages/kodi.scm b/gnu/packages/kodi.scm
index 3929909d10..e885aaab39 100644
--- a/gnu/packages/kodi.scm
+++ b/gnu/packages/kodi.scm
@@ -271,7 +271,7 @@ alternatives. In compilers, this can reduce the cascade of secondary errors.")
 (define-public kodi
   (package
     (name "kodi")
-    (version "18.1")
+    (version "18.2")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -280,8 +280,9 @@ alternatives. In compilers, this can reduce the cascade of secondary errors.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1w26aqvzxv4c70gcd1vw1pldapsc2xcacwq9b7dqx5m44j0zx1dc"))
-              (patches (search-patches "kodi-skip-test-449.patch"))
+                "1yzi8171p1mnszyf80lqkl05ql25n73s5gn8pcgvv4jph4yvasnq"))
+              (patches (search-patches "kodi-skip-test-449.patch"
+                                       "kodi-set-libcurl-ssl-parameters.patch"))
               (snippet
                '(begin
                   (use-modules (guix build utils))
diff --git a/gnu/packages/libedit.scm b/gnu/packages/libedit.scm
index b5e20f30f8..7681677938 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 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2019 Gábor Boskovits <boskovits@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -29,15 +29,14 @@
 (define-public libedit
   (package
     (name "libedit")
-    (version "20181209-3.1")
+    (version "20190324-3.1")
     (source
      (origin
       (method url-fetch)
       (uri (string-append "http://thrysoee.dk/editline"
-                          "/" name "-" version ".tar.gz"))
+                          "/libedit-" version ".tar.gz"))
       (sha256
-       (base32
-        "0r0hc4lg71xnn0vrrk2g7is42i0k0dra7cbw3fljq3q01c6df498"))))
+       (base32 "1bhvp8xkkgrg89k4ci1k8vjl3nhb6szd4ghy9lp4jrfgq58hz3xc"))))
     (build-system gnu-build-system)
     (inputs
      `(("ncurses" ,ncurses)))
diff --git a/gnu/packages/libreoffice.scm b/gnu/packages/libreoffice.scm
index fa084794de..7fc2c1461b 100644
--- a/gnu/packages/libreoffice.scm
+++ b/gnu/packages/libreoffice.scm
@@ -6,7 +6,7 @@
 ;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
 ;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2017 Andy Wingo <wingo@igalia.com>
-;;; Copyright © 2017, 2018 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2017, 2018, 2019 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com>
 ;;; Copyright © 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
@@ -59,7 +59,6 @@
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages gperf)
   #:use-module (gnu packages gnupg)
-  #:use-module (gnu packages gnuzilla)
   #:use-module (gnu packages gstreamer)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages icu4c)
@@ -67,6 +66,7 @@
   #:use-module (gnu packages java)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages maths)
+  #:use-module (gnu packages nss)
   #:use-module (gnu packages openldap)
   #:use-module (gnu packages pdf)
   #:use-module (gnu packages perl)
@@ -558,8 +558,8 @@ Java.")
     (source
      (origin
       (method url-fetch)
-      (uri (string-append "https://dev-www.libreoffice.org/src/" name "/"
-                          name "-" version ".tar.xz"))
+      (uri (string-append "https://dev-www.libreoffice.org/src/libpagemaker/"
+                          "libpagemaker-" version ".tar.xz"))
       (sha256 (base32
                "17ai8ajffr0ixxmmcv3k5vgjlcsix38ldb4fw2arild70pbsrbb6"))))
     (build-system gnu-build-system)
@@ -587,8 +587,8 @@ created by PageMaker version 6.x and 7.")
     (source
      (origin
       (method url-fetch)
-      (uri (string-append "http://dev-www.libreoffice.org/src/" name "/"
-                          name "-" version ".tar.xz"))
+      (uri (string-append "http://dev-www.libreoffice.org/src/libvisio/"
+                          "libvisio-" version ".tar.xz"))
       (sha256 (base32
                "1yahpfl13qk6178irv8jn5ppxdn7isafqisyqsdw0lqxcz9h447y"))))
     (build-system gnu-build-system)
@@ -617,8 +617,8 @@ Microsoft Visio documents of all versions.")
     (source
      (origin
       (method url-fetch)
-      (uri (string-append "mirror://sourceforge/libwpd/" name "/"
-                          name "-" version "/" name "-" version ".tar.xz"))
+      (uri (string-append "mirror://sourceforge/libwpd/libodfgen/"
+                          "libodfgen-" version "/libodfgen-" version ".tar.xz"))
       (sha256 (base32
                "0cdq48wlpp8m0qmndybv64r0m4vh0qsqx69cn6ms533cjlgljgij"))))
     (build-system gnu-build-system)
@@ -644,14 +644,14 @@ text documents, vector drawings, presentations and spreadsheets.")
 (define-public libmwaw
   (package
     (name "libmwaw")
-    (version "0.3.14")
+    (version "0.3.15")
     (source
      (origin
       (method url-fetch)
-      (uri (string-append "mirror://sourceforge/" name "/" name "/" name "-"
-                          version "/" name "-" version ".tar.xz"))
+      (uri (string-append "mirror://sourceforge/libmwaw/libmwaw/libmwaw-"
+                          version "/libmwaw-" version ".tar.xz"))
       (sha256 (base32
-               "1s9wyf8pyh3fbazq2d2b6fgi7s7bid60viw2xbdkmn2ywlfbza5c"))))
+               "1cdhm9yhanyv3w4vr73zhgyynmkhhkp3dyld7m11jd2yy04vnh04"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("doxygen" ,doxygen)
diff --git a/gnu/packages/libusb.scm b/gnu/packages/libusb.scm
index 7965466435..fe3f57c876 100644
--- a/gnu/packages/libusb.scm
+++ b/gnu/packages/libusb.scm
@@ -380,9 +380,9 @@ connections from and to iOS devices by connecting to a socket provided by a
     (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
-the device's filesystem, retrieve information about the device and it's
+the device's file system, retrieve information about the device and its
 internals, backup/restore the device, manage installed applications, retrieve
-addressbook/calendars/notes and bookmarks and (using libgpod) synchronize
+address books, calendars, notes, and bookmarks, and (using libgpod) synchronize
 music and video to the device.")
     (license license:lgpl2.1+)))
 
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 5a681d9c64..b39f45338f 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -77,7 +77,6 @@
   #:use-module (gnu packages gcc)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages glib)
-  #:use-module (gnu packages gnuzilla)
   #:use-module (gnu packages gperf)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages libunwind)
@@ -90,6 +89,7 @@
   #:use-module (gnu packages nettle)
   #:use-module (gnu packages networking)
   #:use-module (gnu packages ninja)
+  #:use-module (gnu packages nss)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pciutils)
   #:use-module (gnu packages pkg-config)
@@ -118,6 +118,7 @@
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system python)
   #:use-module (guix build-system trivial)
+  #:use-module (guix build-system linux-module)
   #:use-module (guix download)
   #:use-module (guix git-download)
   #:use-module ((guix licenses) #:prefix license:)
@@ -254,10 +255,17 @@ for ARCH and optionally VARIANT, or #f if there is no such configuration."
          (file (string-append "linux-libre/" name)))
     (search-auxiliary-file file)))
 
+;; FIXME: merge into kernel-config
+(define* (kernel-config-veyron arch #:key variant)
+  "Return the absolute file name of the Linux-Libre build configuration file
+for ARCH and optionally VARIANT, or #f if there is no such configuration."
+  (let* ((name (string-append (if variant (string-append variant "-") "")
+                              (if (string=? "i386" arch) "i686" arch) "-veyron.conf"))
+         (file (string-append "linux-libre/" name)))
+    (search-auxiliary-file file)))
+
 (define %default-extra-linux-options
-  `(;; https://lists.gnu.org/archive/html/guix-devel/2014-04/msg00039.html
-    ("CONFIG_DEVPTS_MULTIPLE_INSTANCES" . #t)
-    ;; Modules required for initrd:
+  `(;; Modules required for initrd:
     ("CONFIG_NET_9P" . m)
     ("CONFIG_NET_9P_VIRTIO" . m)
     ("CONFIG_VIRTIO_BLK" . m)
@@ -383,7 +391,7 @@ for ARCH and optionally VARIANT, or #f if there is no such configuration."
                     (kmod   (assoc-ref (or native-inputs inputs) "kmod")))
                ;; Install kernel image, kernel configuration and link map.
                (for-each (lambda (file) (install-file file out))
-                         (find-files "." "^(\\.config|bzImage|zImage|Image|vmlinuz|System\\.map)$"))
+                         (find-files "." "^(\\.config|bzImage|zImage|Image|vmlinuz|System\\.map|Module\\.symvers)$"))
                ;; Install device tree files
                (unless (null? (find-files "." "\\.dtb$"))
                  (mkdir-p dtbdir)
@@ -406,8 +414,8 @@ for ARCH and optionally VARIANT, or #f if there is no such configuration."
 It has been modified to remove all non-free binary blobs.")
     (license license:gpl2)))
 
-(define %linux-libre-version "5.0.3")
-(define %linux-libre-hash "1ivdqr3y8r2hmv3a1g0a641cr2ckl3x4arapw0j6nwd0sbcyncam")
+(define %linux-libre-version "5.0.10")
+(define %linux-libre-hash "1lcwpxz5ival8nmnh19x4b1bn19bifhi3mlarx85d783jg47jc3h")
 
 (define %linux-libre-5.0-patches
   (list %boot-logo-patch
@@ -420,8 +428,30 @@ It has been modified to remove all non-free binary blobs.")
                     #:patches %linux-libre-5.0-patches
                     #:configuration-file kernel-config))
 
-(define %linux-libre-4.19-version "4.19.30")
-(define %linux-libre-4.19-hash "1i15cs7zb53hagllgga8jaz0j1p9b22j93iczwc2w587zzhzlvng")
+(define-public vhba-module
+  (package
+    (name "vhba-module")
+    (version "20170610")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "http://downloads.sourceforge.net/cdemu/vhba-module-"
+                    version ".tar.bz2"))
+              (sha256
+               (base32
+                "1v6r0bgx0a65vlh36b1l2965xybngbpga6rp54k4z74xk0zwjw3r"))))
+    (build-system linux-module-build-system)
+    (arguments
+     ;; TODO: No tests?
+     `(#:tests? #f))
+    (home-page "https://cdemu.sourceforge.io/")
+    (synopsis "Kernel module that emulates SCSI devices")
+    (description "VHBA module provides a Virtual (SCSI) HBA, which is the link
+between the CDemu userspace daemon and linux kernel.")
+    (license license:gpl2+)))
+
+(define %linux-libre-4.19-version "4.19.37")
+(define %linux-libre-4.19-hash "0cyw7sgvw0767pvnl2sg6j91az9x80m5pbpqmd1srzl06w2sff2j")
 
 (define %linux-libre-4.19-patches
   (list %boot-logo-patch
@@ -434,8 +464,8 @@ It has been modified to remove all non-free binary blobs.")
                     #:patches %linux-libre-4.19-patches
                     #:configuration-file kernel-config))
 
-(define %linux-libre-4.14-version "4.14.107")
-(define %linux-libre-4.14-hash "19i17b8sjjvi99vya1vncjalysdy027hp35rrla68gjs28dyas7r")
+(define %linux-libre-4.14-version "4.14.114")
+(define %linux-libre-4.14-hash "0hc6vk8wh6dlr8lbfd269n3drgbw2swfhlgqs9kl13104jrxqqv4")
 
 (define-public linux-libre-4.14
   (make-linux-libre %linux-libre-4.14-version
@@ -444,16 +474,22 @@ It has been modified to remove all non-free binary blobs.")
                     #:configuration-file kernel-config))
 
 (define-public linux-libre-4.9
-  (make-linux-libre "4.9.164"
-                    "06bbynvijqlk92bpppmnjijyfwr0sk01krqdw4hpgbrvlg3wdlbk"
+  (make-linux-libre "4.9.171"
+                    "10975y9q2yycc85synwmrqqfhq89f3fn66jxq7p2myv1n9m22fx5"
                     '("x86_64-linux" "i686-linux")
                     #:configuration-file kernel-config))
 
 (define-public linux-libre-4.4
-  (make-linux-libre "4.4.176"
-                    "0c300zqmsadahs2fpzxh6cn7q3h7jxq69msd17rh8v3wnvql8vzx"
+  (make-linux-libre "4.4.179"
+                    "025jl50sgi3bxj8hxlihqyfshmfphrg6z3cfi043qwkc8sbdy3af"
                     '("x86_64-linux" "i686-linux")
-                    #:configuration-file kernel-config))
+                    #:configuration-file kernel-config
+                    #:extra-options
+                    (append
+                     `(;; https://lists.gnu.org/archive/html/guix-devel/2014-04/msg00039.html
+                       ;; This option was removed upstream in version 4.7.
+                       ("CONFIG_DEVPTS_MULTIPLE_INSTANCES" . #t))
+                     %default-extra-linux-options)))
 
 (define-public linux-libre-arm-generic
   (make-linux-libre %linux-libre-version
@@ -463,6 +499,14 @@ It has been modified to remove all non-free binary blobs.")
                     #:defconfig "multi_v7_defconfig"
                     #:extra-version "arm-generic"))
 
+(define-public linux-libre-arm-veyron
+  (make-linux-libre %linux-libre-version
+                    %linux-libre-hash
+                    '("armhf-linux")
+                    #:patches %linux-libre-5.0-patches
+                    #:configuration-file kernel-config-veyron
+                    #:extra-version "arm-veyron"))
+
 (define-public linux-libre-arm-generic-4.19
   (make-linux-libre %linux-libre-4.19-version
                     %linux-libre-4.19-hash
@@ -1426,14 +1470,14 @@ Linux-based operating systems.")
 (define-public bridge-utils
   (package
     (name "bridge-utils")
-    (version "1.5")
-    (source (origin
-             (method url-fetch)
-             (uri (string-append "mirror://sourceforge/bridge/bridge/"
-                                 "bridge-utils-" version ".tar.gz"))
-             (sha256
-              (base32
-               "12367cwqmi0yqphi6j8rkx97q8hw52yq2fx4k0xfclkcizxybya2"))))
+    (version "1.6")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://www.kernel.org/pub/linux/utils/net/"
+                           "bridge-utils/bridge-utils-" version ".tar.xz"))
+       (sha256
+        (base32 "1j16kr44csyr4yqxly26l1yw2bh4nkiasgwvask2i2gvsnsyyryc"))))
     (build-system gnu-build-system)
 
     ;; The tarball lacks all the generated files.
@@ -1994,9 +2038,46 @@ system.")
     (description
      "This package contains keytable files and keyboard utilities compatible
 for systems using the Linux kernel.  This includes commands such as
-'loadkeys', 'setfont', 'kbdinfo', and 'chvt'.")
+@code{loadkeys}, @code{setfont}, @code{kbdinfo}, and @code{chvt}.")
     (license license:gpl2+)))
 
+(define-public loadkeys-static
+  (package
+    (inherit kbd)
+    (name "loadkeys-static")
+    (arguments
+     (substitute-keyword-arguments (package-arguments kbd)
+       ((#:configure-flags flags ''())
+        `(append '("LDFLAGS=-static" "--disable-shared" "--disable-nls"
+                   "--disable-vlock"              ;so we don't need libpam
+                   "--disable-libkeymap")
+                 ,flags))
+       ((#:make-flags flags ''())
+        `(cons "LDFLAGS=-all-static" ,flags))
+       ((#:phases phases '%standard-phases)
+        `(modify-phases ,phases
+           (replace 'install
+             (lambda* (#:key outputs #:allow-other-keys)
+               (let ((out (assoc-ref outputs "out")))
+                 ;; The binary keeps references to gzip, among other things,
+                 ;; which we don't need in the initrd, so strip references.
+                 (remove-store-references "src/loadkeys")
+
+                 (install-file "src/loadkeys"
+                               (string-append out "/bin"))
+                 #t)))
+           (delete 'post-install)))
+       ((#:strip-flags _ '())
+        ''("--strip-all"))
+       ((#:allowed-references _ '())
+        '())))
+
+    (synopsis "Statically-linked @command{loadkeys} program")
+
+    ;; This package is meant to be used internally in the initrd so don't
+    ;; expose it.
+    (properties '((hidden? . #t)))))
+
 (define-public inotify-tools
   (package
     (name "inotify-tools")
@@ -2263,7 +2344,7 @@ mapper.  Kernel components are part of Linux-libre.")
        #:tests? #f))
     (synopsis "Tools for manipulating Linux Wireless Extensions")
     (description "Wireless Tools are used to manipulate the now-deprecated
-Linux Wireless Extensions; consider using 'iw' instead.  The Wireless
+Linux Wireless Extensions; consider using @code{iw} instead.  The Wireless
 Extension was an interface allowing you to set Wireless LAN specific
 parameters and get the specific stats.  It is deprecated in favor the nl80211
 interface.")
@@ -2404,18 +2485,18 @@ country-specific regulations for the wireless spectrum.")
 (define-public lm-sensors
   (package
     (name "lm-sensors")
-    (version "3.4.0")
-    (source (origin
-              (method url-fetch)
-              (uri (list (string-append
-                           "https://github.com/groeck/lm-sensors/archive/V"
-                           (string-join (string-split version #\.) "-")
-                           ".tar.gz")))
-              (file-name (string-append name "-" version ".tar.gz"))
-              (sha256
-               (base32
-                "0knb09s9lvx0wzfsaizx3xq58q6kllqf7nkbwvir0wkgn31c2d73"))
-              (patches (search-patches "lm-sensors-hwmon-attrs.patch"))))
+    (version "3.5.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/groeck/lm-sensors.git")
+             (commit (string-append "V" (string-join
+                                         (string-split version #\.) "-")))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1mdrnb9r01z1xfdm6dpkywvf9yy9a4yzb59paih9sijwmigv19fj"))
+       (patches (search-patches "lm-sensors-hwmon-attrs.patch"))))
     (build-system gnu-build-system)
     (inputs `(("rrdtool" ,rrdtool)
               ("perl" ,perl)
@@ -2472,7 +2553,7 @@ country-specific regulations for the wireless spectrum.")
                 (string-append (assoc-ref inputs "coreutils")
                                "/bin/readlink -f")))
              #t)))))
-    (home-page "http://jdelvare.nerim.net/devel.html#lmsensors")
+    (home-page "https://hwmon.wiki.kernel.org/lm_sensors")
     (synopsis "Utilities to read temperature/voltage/fan sensors")
     (description
      "Lm-sensors is a hardware health monitoring package for Linux.  It allows
@@ -2621,7 +2702,7 @@ in a digital read-out.")
 with support in the Linux kernel.  perf can instrument CPU performance
 counters, tracepoints, kprobes, and uprobes (dynamic tracing).  It is capable
 of lightweight profiling.  This package contains the user-land tools and in
-particular the 'perf' command.")
+particular the @code{perf} command.")
     (license (package-license linux-libre))))
 
 (define-public pflask
@@ -3278,7 +3359,7 @@ write access to exFAT devices.")
     (home-page "https://sourceforge.net/projects/fuseiso/")
     (synopsis "Mount ISO file system images")
     (description
-     "FuseISO is a FUSE module to mount ISO filesystem images (.iso, .nrg,
+     "FuseISO is a FUSE module to mount ISO file system images (.iso, .nrg,
 .bin, .mdf and .img files).  It supports plain ISO9660 Level 1 and 2, Rock
 Ridge, Joliet, and zisofs.")
     (license license:gpl2)))
@@ -3585,6 +3666,7 @@ from userspace.")
               (method url-fetch)
               (uri (string-append "https://tuxera.com/opensource/"
                                   "ntfs-3g_ntfsprogs-" version ".tgz"))
+              (patches (search-patches "ntfs-3g-CVE-2019-9755.patch"))
               (sha256
                (base32
                 "1mb228p80hv97pgk3myyvgp975r9mxq56c6bdn1n24kngcfh4niy"))
@@ -3610,7 +3692,7 @@ from userspace.")
          ;; If users install ntfs-3g, they probably want to make it the
          ;; default driver as well, so we opt for sensible defaults and link
          ;; mount.ntfs to mount.ntfs-3g.  (libmount tries to run mount.ntfs to
-         ;; mount NTFS filesystems.)
+         ;; mount NTFS file systems.)
          (add-after 'install 'install-link
            (lambda* (#:key outputs #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out"))
@@ -3977,8 +4059,8 @@ the default @code{nsswitch} and the experimental @code{umich_ldap}.")
     (home-page "https://www.kernel.org/pub/linux/utils/kernel/module-init-tools/")
     (synopsis "Tools for loading and managing Linux kernel modules")
     (description
-     "Tools for loading and managing Linux kernel modules, such as `modprobe',
-`insmod', `lsmod', and more.")
+     "Tools for loading and managing Linux kernel modules, such as
+@code{modprobe}, @code{insmod}, @code{lsmod}, and more.")
     (license license:gpl2+)))
 
 (define-public mcelog
@@ -4057,7 +4139,7 @@ of flash storage.")
 (define-public libseccomp
   (package
     (name "libseccomp")
-    (version "2.4.0")
+    (version "2.4.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/seccomp/libseccomp/"
@@ -4065,7 +4147,7 @@ of flash storage.")
                                   "/libseccomp-" version ".tar.gz"))
               (sha256
                (base32
-                "0paj1szszpf8plykrd66jqg1x3kmqs395rbjskahld2bnplcfx1f"))))
+                "1s06h2cgk0xxwmhwj72z33bllafc1xqnxzk2yyra2rmg959778qw"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("which" ,which)))
@@ -4277,6 +4359,45 @@ set the screen to be pitch black at a vaĺue of 0 (or higher).
 Light is the successor of lightscript.")
     (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
+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))))
+
 (define-public tlp
   (package
     (name "tlp")
@@ -5129,9 +5250,9 @@ file systems.")
      `(("autoconf" ,autoconf)
        ("automake" ,automake)))
     (home-page "https://github.com/jeremie-koenig/genext2fs")
-    (synopsis "Generate ext2 filesystem as a normal user")
-    (description "This package provides a program to general an ext2
-filesystem as a normal (non-root) user.  It does not require you to mount
+    (synopsis "Generate ext2 file system as a normal user")
+    (description "This package provides a program to generate an ext2
+file system as a normal (non-root) user.  It does not require you to mount
 the image file to copy files on it, nor does it require that you become
 the superuser to make device nodes.")
     (license license:gpl2)))
diff --git a/gnu/packages/lirc.scm b/gnu/packages/lirc.scm
index 627c79f979..5e77f1ddc2 100644
--- a/gnu/packages/lirc.scm
+++ b/gnu/packages/lirc.scm
@@ -96,10 +96,10 @@
     (synopsis "Linux Infrared Remote Control")
     (description
      "LIRC allows computers to send and receive IR signals of many commonly
-used remote controls.  The most important part of LIRC is the 'lircd' daemon
-that decodes IR signals received by the device drivers.  The second daemon
-program 'lircmd' allows to translate IR signals to mouse movements.  The
-user space applications allow you to control your computer with a remote
+used remote controls.  The most important part of LIRC is the @code{lircd}
+daemon that decodes IR signals received by the device drivers.  The second
+daemon program @code{lircmd} allows to translate IR signals to mouse movements.
+The user space applications allow you to control your computer with a remote
 control: you can send X events to applications, start programs and much more
 on just one button press.")
     (license license:gpl2+)))
diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index 87dcf36372..4eeb801c70 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -12,6 +12,8 @@
 ;;; Copyright © 2018 Alex Vong <alexvong1995@gmail.com>
 ;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
 ;;; Copyright © 2018 Pierre Langlois <pierre.langlois@gmx.com>
+;;; Copyright © 2019 Katherine Cox-Buday <cox.katherine.e@gmail.com>
+;;; Copyright © 2019 Jesse Gildersleve <jessejohngildersleve@protonmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -65,6 +67,7 @@
   #:use-module (gnu packages sqlite)
   #:use-module (gnu packages tex)
   #:use-module (gnu packages texinfo)
+  #:use-module (gnu packages tls)
   #:use-module (gnu packages version-control)
   #:use-module (gnu packages xorg)
   #:use-module (gnu packages databases)
@@ -318,14 +321,14 @@ an interpreter, a compiler, a debugger, and much more.")
 (define-public sbcl
   (package
     (name "sbcl")
-    (version "1.4.16")
+    (version "1.5.1")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://sourceforge/sbcl/sbcl/" version "/sbcl-"
                            version "-source.tar.bz2"))
        (sha256
-        (base32 "1myg4wkxnbfn5nz38xy62r1jhjy07x3h0b04vg858n41chdsv4wd"))
+        (base32 "08z62qba0kmm15k93s2rq7ipi769895g8iwigcp20qjh6amwnwph"))
        (modules '((guix build utils)))
        (snippet
         ;; Add sbcl-bundle-systems to 'default-system-source-registry'.
@@ -689,13 +692,13 @@ portable between implementations.")
     (version "1.2")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append
-             "https://github.com/sionescu/fiveam/archive/v"
-             version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/sionescu/fiveam.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name "fiveam" version))
        (sha256
-        (base32 "0f48pcbhqs3wwwzjl5nk57d4hcbib4l9xblxc66b8c2fhvhmhxnv"))
-       (file-name (string-append "fiveam-" version ".tar.gz"))))
+        (base32 "1yx9716mk8pq9076q6cjx4c9lyax3amiccy37sh0913k2x8gsm4l"))))
     (inputs `(("alexandria" ,sbcl-alexandria)))
     (build-system asdf-build-system/sbcl)
     (synopsis "Common Lisp testing framework")
@@ -712,18 +715,18 @@ interactive development model in mind.")
   (sbcl-package->ecl-package sbcl-fiveam))
 
 (define-public sbcl-bordeaux-threads
-  (let ((commit "354abb0ae9f1d9324001e1a8abab3128d7420e0e")
+  (let ((commit "5dce49fbc829f4d136a734f5ef4f5d599660984f")
         (revision "1"))
     (package
       (name "sbcl-bordeaux-threads")
-      (version (git-version "0.8.5" revision commit))
+      (version (git-version "0.8.6" revision commit))
       (source (origin
                 (method git-fetch)
                 (uri (git-reference
                       (url "https://github.com/sionescu/bordeaux-threads.git")
                       (commit commit)))
                 (sha256
-                 (base32 "1hcfp21l6av1xj6z7r77sp6h4mwf9vvx4s745803sysq2qy2mwnq"))
+                 (base32 "1gkh9rz7zw57n3110ikcf4835950wr4hgp8l79id5ai6nd86x7wv"))
                 (file-name
                  (git-file-name "bordeaux-threads" version))))
       (inputs `(("alexandria" ,sbcl-alexandria)))
@@ -816,14 +819,21 @@ logical continuation of Stefil.  It focuses on interactive debugging.")
     (version "1.0.16")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append
-             "https://github.com/edicl/flexi-streams/archive/v"
-             version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/edicl/flexi-streams.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name "flexi-streams" version))
        (sha256
-        (base32 "1fb0jrwxr5c3i2lhy7kn30m1n0vggfzwjm1dacx6y5wf9wfsbamw"))
-       (file-name (string-append "flexi-streams-" version ".tar.gz"))))
+        (base32 "0gvykjlmja060zqq6nn6aqxlshh6r6ijahmmgf20q0d839rwpgxc"))))
     (build-system asdf-build-system/sbcl)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'make-git-checkout-writable
+           (lambda _
+             (for-each make-file-writable (find-files "."))
+             #t)))))
     (inputs `(("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
     (synopsis "Implementation of virtual bivalent streams for Common Lisp")
     (description "Flexi-streams is an implementation of \"virtual\" bivalent
@@ -846,13 +856,13 @@ streams which are similar to string streams.")
     (version "2.0.11")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append
-             "https://github.com/edicl/cl-ppcre/archive/v"
-             version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/edicl/cl-ppcre.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name "cl-ppcre" version))
        (sha256
-        (base32 "1i7daxf0wnydb0pgwiym7qh2wy70n14lxd6dyv28sy0naa8p31gd"))
-       (file-name (string-append "cl-ppcre-" version ".tar.gz"))))
+        (base32 "0q3iany07vgqm144lw6pj0af2d3vsikpbkwcxr30fci3kzsq4f49"))))
     (build-system asdf-build-system/sbcl)
     (native-inputs `(("flexi-streams" ,sbcl-flexi-streams)))
     (synopsis "Portable regular expression library for Common Lisp")
@@ -971,18 +981,19 @@ from other CLXes around the net.")
   (package
     (name "stumpwm")
     (version "18.11")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "https://github.com/stumpwm/stumpwm/archive/"
-                    version ".tar.gz"))
-              (sha256
-               (base32 "177gxfk4c127i9crghx6fmkipznhgylvzgnjb2pna38g21gg6s39"))
-              (file-name (string-append "stumpwm-" version ".tar.gz"))
-              (patches
-               ;; This patch is included in the post-18.11 git master tree
-               ;; and can be removed when we move to the next release.
-               (search-patches "stumpwm-fix-broken-read-one-line.patch"))))
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/stumpwm/stumpwm.git")
+             (commit version)))
+       (file-name (git-file-name "stumpwm" version))
+       (sha256
+        (base32 "003g1fmh7446ws49866kzny4lrk1wf034dq5fa4m9mq1nzc7cwv7"))
+       (patches
+        ;; This patch is included in the post-18.11 git master tree
+        ;; and can be removed when we move to the next release.
+        (search-patches "stumpwm-fix-broken-read-one-line.patch"))))
     (build-system asdf-build-system/sbcl)
     (native-inputs `(("fiasco" ,sbcl-fiasco)
                      ("texinfo" ,texinfo)))
@@ -1467,7 +1478,7 @@ compressor.  It works on data produced by @code{parse-js} to generate a
 @item reduce variable names (usually to single letters)
 @item join consecutive @code{var} statements
 @item resolve simple binary expressions
-@item group most consecutive statements using the ``sequence'' operator (comma)
+@item group most consecutive statements using the @code{sequence} operator (comma)
 @item remove unnecessary blocks
 @item convert @code{IF} expressions in various ways that result in smaller code
 @item remove some unreachable code
@@ -1602,13 +1613,13 @@ utilities that make it even easier to manipulate text in Common Lisp.  It has
     (version "0.8")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append
-             "https://github.com/trivial-features/trivial-features/archive/v"
-             version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/trivial-features/trivial-features.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name "trivial-features" version))
        (sha256
-        (base32 "0db1awn6jyhcfhyfvpjvfziprmq85cigf19mwbvaprhblydsag3c"))
-       (file-name (string-append "trivial-features-" version ".tar.gz"))))
+        (base32 "0ccv7dqyrk55xga78i5vzlic7mdwp28in3g1a8fqhlk6626scsq9"))))
     (build-system asdf-build-system/sbcl)
     (arguments '(#:tests? #f))
     (home-page "http://cliki.net/trivial-features")
@@ -1689,13 +1700,13 @@ with a focus on interactive development.")
     (version "0.5.0")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append
-             "https://github.com/cl-babel/babel/archive/v"
-             version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/cl-babel/babel.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name "babel" version))
        (sha256
-        (base32 "189kgbmslh36xx0d2i1g6a7mcvjryvjzkdlnhilqy5xs7hkyqirq"))
-       (file-name (string-append name "-" version ".tar.gz"))))
+        (base32 "139a8rn2gnhj082n8jg01gc8fyr63hkj57hgrnmb3d1r327yc77f"))))
     (build-system asdf-build-system/sbcl)
     (native-inputs
      `(("tests:cl-hu.dwim.stefil" ,sbcl-hu.dwim.stefil)))
@@ -2554,8 +2565,7 @@ which causes everything printed in the body to be displayed with the provided
 color.  It further provides functions which will print the argument with the
 named color.")
       (home-page "https://github.com/pnathan/cl-ansi-text")
-      ;; REVIEW: The actual license is LLGPL.  Should we add it to Guix?
-      (license license:lgpl3+))))
+      (license license:llgpl))))
 
 (define-public cl-ansi-text
   (sbcl-package->cl-source-package sbcl-cl-ansi-text))
@@ -2970,12 +2980,13 @@ non-consing thread safe queues and fibonacci priority queues.")
     (version "0.19.0")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/cffi/cffi/archive/v"
-                           version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/cffi/cffi.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name "cffi-bootstrap" version))
        (sha256
-        (base32 "07bc3c1fbfx17wgrvx6bh9byilfzfwv5n597cfdllm0vzwvbmiyk"))
-       (file-name (string-append name "-" version ".tar.gz"))))
+        (base32 "09sfgc6r7ihmbkwfpvkq5fxc7h45cabpvgbvs47i5cvnmv3k72xy"))))
     (build-system asdf-build-system/sbcl)
     (inputs
      `(("libffi" ,libffi)
@@ -3234,13 +3245,13 @@ precisely control behavior of the parser via Common Lisp restarts.")
     (version "0.21")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append
-             "https://github.com/trivial-garbage/trivial-garbage/archive/v"
-             version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/trivial-garbage/trivial-garbage.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name "trivial-garbage" version))
        (sha256
-        (base32 "0b244nlszkrqawsnp568clnx32xmvjmbbagbz7625w9n0yq7396y"))
-       (file-name (string-append "trivial-garbage-" version ".tar.gz"))))
+        (base32 "0122jicfg7pca1wxw8zak1n92h5friqy60988ns0ysksj3fphw9n"))))
     (build-system asdf-build-system/sbcl)
     (native-inputs
      `(("rt" ,sbcl-rt)))
@@ -3840,3 +3851,1440 @@ client and server.")
 
 (define-public ecl-trivial-clipboard
   (sbcl-package->ecl-package sbcl-trivial-clipboard))
+
+(define-public sbcl-trivial-backtrace
+  (let ((commit "ca81c011b86424a381a7563cea3b924f24e6fbeb")
+        (revision "1"))
+    (package
+     (name "sbcl-trivial-backtrace")
+     (version (git-version "0.0.0" revision commit))
+     (source
+      (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/gwkkwg/trivial-backtrace.git")
+             (commit commit)))
+       (file-name (git-file-name "trivial-backtrace" version))
+       (sha256
+        (base32 "10p41p43skj6cimdg8skjy7372s8v2xpkg8djjy0l8rm45i654k1"))))
+     (build-system asdf-build-system/sbcl)
+     (inputs
+      `(("sbcl-lift" ,sbcl-lift)))
+     (home-page "https://common-lisp.net/project/trivial-backtrace/")
+     (synopsis "Portable simple API to work with backtraces in Common Lisp")
+     (description
+      "On of the many things that didn't quite get into the Common Lisp
+standard was how to get a Lisp to output its call stack when something has
+gone wrong.  As such, each Lisp has developed its own notion of what to
+display, how to display it, and what sort of arguments can be used to
+customize it.  @code{trivial-backtrace} is a simple solution to generating a
+backtrace portably.")
+     (license license:expat))))
+
+(define-public cl-trivial-backtrace
+  (sbcl-package->cl-source-package sbcl-trivial-backtrace))
+
+(define-public sbcl-rfc2388
+  (let ((commit "591bcf7e77f2c222c43953a80f8c297751dc0c4e")
+        (revision "1"))
+    (package
+     (name "sbcl-rfc2388")
+     (version (git-version "0.0.0" revision commit))
+     (source
+      (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/jdz/rfc2388.git")
+             (commit commit)))
+       (file-name (git-file-name "rfc2388" version))
+       (sha256
+        (base32 "0phh5n3clhl9ji8jaxrajidn22d3f0aq87mlbfkkxlnx2pnw694k"))))
+     (build-system asdf-build-system/sbcl)
+     (home-page "https://github.com/jdz/rfc2388/")
+     (synopsis "An implementation of RFC 2388 in Common Lisp")
+     (description
+      "This package contains an implementation of RFC 2388, which is used to
+process form data posted with HTTP POST method using enctype
+\"multipart/form-data\".")
+     (license license:bsd-2))))
+
+(define-public cl-rfc2388
+  (sbcl-package->cl-source-package sbcl-rfc2388))
+
+(define-public sbcl-md5
+  (package
+    (name "sbcl-md5")
+    (version "2.0.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://github.com/pmai/md5/archive/release-" version ".tar.gz"))
+       (sha256
+        (base32 "19yl9n0pjdz5gw4qi711lka97xcd9f81ylg434hk7jwn9f2s6w11"))))
+    (build-system asdf-build-system/sbcl)
+    (home-page "https://github.com/pmai/md5")
+    (synopsis
+     "Common Lisp implementation of the MD5 Message-Digest Algorithm (RFC 1321)")
+    (description
+     "This package implements The MD5 Message-Digest Algorithm, as defined in
+RFC 1321 by R. Rivest, published April 1992.")
+    (license license:public-domain)))
+
+(define-public cl-md5
+  (sbcl-package->cl-source-package sbcl-md5))
+
+(define-public sbcl-cl+ssl
+  (let ((commit "b81c1135cf5700e870ce2573d5035d249e491788")
+        (revision "1"))
+    (package
+      (name "sbcl-cl+ssl")
+      (version (git-version "0.0.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/cl-plus-ssl/cl-plus-ssl.git")
+               (commit commit)))
+         (file-name (git-file-name "cl+ssl" version))
+         (sha256
+          (base32 "1845i1pafmqb6cdlr53yaqy67kjrhkvbx6c37ca15cw70vhdr3z9"))))
+      (build-system asdf-build-system/sbcl)
+      (arguments
+       '(#:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'fix-paths
+             (lambda* (#:key inputs #:allow-other-keys)
+               (substitute* "src/reload.lisp"
+                 (("libssl.so" all)
+                  (string-append
+                   (assoc-ref inputs "openssl") "/lib/" all))))))))
+      (inputs
+       `(("openssl" ,openssl)
+         ("sbcl-cffi" ,sbcl-cffi)
+         ("sbcl-trivial-gray-streams" ,sbcl-trivial-gray-streams)
+         ("sbcl-flexi-streams" ,sbcl-flexi-streams)
+         ("sbcl-bordeaux-threads" ,sbcl-bordeaux-threads)
+         ("sbcl-trivial-garbage" ,sbcl-trivial-garbage)))
+      (home-page "http://common-lisp.net/project/cl-plus-ssl/")
+      (synopsis "Common Lisp bindings to OpenSSL")
+      (description
+       "This library is a fork of SSL-CMUCL.  The original SSL-CMUCL source
+code was written by Eric Marsden and includes contributions by Jochen Schmidt.
+Development into CL+SSL was done by David Lichteblau.")
+      (license license:expat))))
+
+(define-public cl-cl+ssl
+  (sbcl-package->cl-source-package sbcl-cl+ssl))
+
+(define-public sbcl-kmrcl
+  (let ((version "1.109.0")
+        (commit "5260068b2eb735af6796740c2db4955afac21636")
+        (revision "1"))
+    (package
+      (name "sbcl-kmrcl")
+      (version (git-version version revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "http://git.kpe.io/kmrcl.git/")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "1va7xjgzfv674bpsli674i7zj3f7wg5kxic41kz18r6hh4n52dfv"))))
+      (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.")
+      (license license:llgpl))))
+
+(define-public cl-kmrcl
+  (sbcl-package->cl-source-package sbcl-kmrcl))
+
+(define-public sbcl-cl-base64
+  (let ((version "3.3.3"))
+    (package
+      (name "sbcl-cl-base64")
+      (version version)
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "http://git.kpe.io/cl-base64.git")
+               (commit (string-append "v" version))))
+         (file-name (git-file-name "cl-base64" version))
+         (sha256
+          (base32 "1dw6j7n6gsd2qa0p0rbsjxj00acxx3i9ca1qkgl0liy8lpnwkypl"))))
+      (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.
+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))))
+
+(define-public cl-base64
+  (sbcl-package->cl-source-package sbcl-cl-base64))
+
+(define-public sbcl-chunga
+  (package
+    (name "sbcl-chunga")
+    (version "1.1.7")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://github.com/edicl/chunga/archive/v" version ".tar.gz"))
+       (sha256
+        (base32 "0ra17kyc9l7qbaw003ly111r1cbn4zixbfq1ydr9cxw10v30q1n7"))))
+    (build-system asdf-build-system/sbcl)
+    (inputs
+     `(("sbcl-trivial-gray-streams" ,sbcl-trivial-gray-streams)))
+    (home-page "https://edicl.github.io/chunga/")
+    (synopsis "Portable chunked streams for Common Lisp")
+    (description
+     "Chunga implements streams capable of chunked encoding on demand as
+defined in RFC 2616.")
+    (license license:bsd-2)))
+
+(define-public cl-chunga
+  (sbcl-package->cl-source-package sbcl-chunga))
+
+(define-public sbcl-cl-who
+  (let ((version "1.1.4")
+        (commit "2c08caa4bafba720409af9171feeba3f32e86d32")
+        (revision "1"))
+    (package
+      (name "sbcl-cl-who")
+      (version (git-version version revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/edicl/cl-who.git")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "0yjb6sr3yazm288m318kqvj9xk8rm9n1lpimgf65ymqv0i5agxsb"))))
+      (build-system asdf-build-system/sbcl)
+      (native-inputs
+       `(("sbcl-flexi-streams" ,sbcl-flexi-streams)))
+      (home-page "https://edicl.github.io/cl-who/")
+      (synopsis "Yet another Lisp markup language")
+      (description
+       "There are plenty of Lisp Markup Languages out there - every Lisp
+programmer seems to write at least one during his career - and CL-WHO (where
+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
+  (sbcl-package->cl-source-package sbcl-cl-who))
+
+(define-public sbcl-chipz
+  (let ((version "0.8")
+        (commit "75dfbc660a5a28161c57f115adf74c8a926bfc4d")
+        (revision "1"))
+    (package
+      (name "sbcl-chipz")
+      (version (git-version version revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/froydnj/chipz.git")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "0plx4rs39zbs4gjk77h4a2q11zpy75fh9v8hnxrvsf8fnakajhwg"))))
+      (build-system asdf-build-system/sbcl)
+      (native-inputs
+       `(("sbcl-flexi-streams" ,sbcl-flexi-streams)))
+      (home-page "http://method-combination.net/lisp/chipz/")
+      (synopsis
+       "Common Lisp library for decompressing deflate, zlib, gzip, and bzip2
+data")
+      (description
+       "DEFLATE data, defined in RFC1951, forms the core of popular
+compression formats such as zlib (RFC 1950) and gzip (RFC 1952).  As such,
+Chipz also provides for decompressing data in those formats as well.  BZIP2 is
+the format used by the popular compression tool bzip2.")
+      ;; The author describes it as "MIT-like"
+      (license license:expat))))
+
+(define-public cl-chipz
+  (sbcl-package->cl-source-package sbcl-chipz))
+
+(define-public sbcl-drakma
+  (let ((version "2.0.4")
+        (commit "7647c0ae842ff2058624e53979c7f297760c97a7")
+        (revision "1"))
+    (package
+      (name "sbcl-drakma")
+      (version (git-version version revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/edicl/drakma.git")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "1c4i9wakhj5pxfyyykxshdmv3180sbkrx6fcyynikmc0jd0rh84r"))))
+      (build-system asdf-build-system/sbcl)
+      (inputs
+       `(("sbcl-puri" ,sbcl-puri)
+         ("sbcl-cl-base64" ,sbcl-cl-base64)
+         ("sbcl-chunga" ,sbcl-chunga)
+         ("sbcl-flexi-streams" ,sbcl-flexi-streams)
+         ("sbcl-cl-ppcre" ,sbcl-cl-ppcre)
+         ("sbcl-chipz" ,sbcl-chipz)
+         ("sbcl-usocket" ,sbcl-usocket)
+         ("sbcl-cl+ssl" ,sbcl-cl+ssl)))
+      (native-inputs
+       `(("sbcl-fiveam" ,sbcl-fiveam)))
+      (home-page "https://edicl.github.io/drakma/")
+      (synopsis "HTTP client written in Common Lisp")
+      (description
+       "Drakma is a full-featured HTTP client implemented in Common Lisp.  It
+knows how to handle HTTP/1.1 chunking, persistent connections, re-usable
+sockets, SSL, continuable uploads, file uploads, cookies, and more.")
+      (license license:bsd-2))))
+
+(define-public cl-drakma
+  (sbcl-package->cl-source-package sbcl-drakma))
+
+(define-public sbcl-hunchentoot
+  (package
+    (name "sbcl-hunchentoot")
+    (version "1.2.38")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/edicl/hunchentoot.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name "hunchentoot" version))
+       (sha256
+        (base32 "1anpcad7w045m4rsjs1f3xdhjwx5cppq1h0vlb3q7dz81fi3i6yq"))))
+    (build-system asdf-build-system/sbcl)
+    (native-inputs
+     `(("sbcl-cl-who" ,sbcl-cl-who)
+       ("sbcl-drakma" ,sbcl-drakma)))
+    (inputs
+     `(("sbcl-chunga" ,sbcl-chunga)
+       ("sbcl-cl-base64" ,sbcl-cl-base64)
+       ("sbcl-cl-fad" ,sbcl-cl-fad)
+       ("sbcl-cl-ppcre" ,sbcl-cl-ppcre)
+       ("sbcl-flexi-streams" ,sbcl-flexi-streams)
+       ("sbcl-cl+ssl" ,sbcl-cl+ssl)
+       ("sbcl-md5" ,sbcl-md5)
+       ("sbcl-rfc2388" ,sbcl-rfc2388)
+       ("sbcl-trivial-backtrace" ,sbcl-trivial-backtrace)
+       ("sbcl-usocket" ,sbcl-usocket)))
+    (home-page "https://edicl.github.io/hunchentoot/")
+    (synopsis "Web server written in Common Lisp")
+    (description
+     "Hunchentoot is a web server written in Common Lisp and at the same
+time a toolkit for building dynamic websites.  As a stand-alone web server,
+Hunchentoot is capable of HTTP/1.1 chunking (both directions), persistent
+connections (keep-alive), and SSL.")
+    (license license:bsd-2)))
+
+(define-public cl-hunchentoot
+  (sbcl-package->cl-source-package sbcl-hunchentoot))
+
+(define-public sbcl-trivial-types
+  (package
+    (name "sbcl-trivial-types")
+    (version "0.0.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/m2ym/trivial-types.git")
+             (commit "ee869f2b7504d8aa9a74403641a5b42b16f47d88")))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1s4cp9bdlbn8447q7w7f1wkgwrbvfzp20mgs307l5pxvdslin341"))))
+    (build-system asdf-build-system/sbcl)
+    (home-page "https://github.com/m2ym/trivial-types")
+    (synopsis "Trivial type definitions for Common Lisp")
+    (description
+     "TRIVIAL-TYPES provides missing but important type definitions such as
+PROPER-LIST, ASSOCIATION-LIST, PROPERTY-LIST and TUPLE.")
+    (license license:llgpl)))
+
+(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.git")
+             (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 sbcl-cl-annot
+  (let ((commit "c99e69c15d935eabc671b483349a406e0da9518d")
+        (revision "1"))
+    (package
+      (name "sbcl-cl-annot")
+      (version (git-version "0.0.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/m2ym/cl-annot.git")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (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")
+      (synopsis "Python-like Annotation Syntax for Common Lisp.")
+      (description
+       "@code{cl-annot} is an general annotation library for Common Lisp.")
+      (license license:llgpl))))
+
+(define-public cl-annot
+  (sbcl-package->cl-source-package sbcl-cl-annot))
+
+(define-public sbcl-cl-syntax-annot
+  (package
+    (name "sbcl-cl-syntax-annot")
+    (version "0.0.3")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/m2ym/cl-syntax.git")
+             (commit "03f0c329bbd55b8622c37161e6278366525e2ccc")))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "17ran8xp77asagl31xv8w819wafh6whwfc9p6dgx22ca537gyl4y"))))
+    (build-system asdf-build-system/sbcl)
+    (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)))
+    (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-annot
+  (sbcl-package->cl-source-package sbcl-cl-syntax-annot))
+
+(define-public sbcl-cl-utilities
+  (let ((commit "dce2d2f6387091ea90357a130fa6d13a6776884b")
+        (revision "1"))
+    (package
+      (name "sbcl-cl-utilities")
+      (version (git-version "0.0.0" revision commit))
+      (source
+       (origin
+         (method url-fetch)
+         (uri
+          (string-append
+           "https://gitlab.common-lisp.net/cl-utilities/cl-utilities/-/"
+           "archive/" commit "/cl-utilities-" commit ".tar.gz"))
+         (sha256
+          (base32 "1r46v730yf96nk2vb24qmagv9x96xvd08abqwhf02ghgydv1a7z2"))))
+      (build-system asdf-build-system/sbcl)
+      (arguments
+       '(#:asd-file "cl-utilities.asd"
+         #:asd-system-name "cl-utilities"
+         #:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'fix-paths
+             (lambda* (#:key inputs #:allow-other-keys)
+               (substitute* "rotate-byte.lisp"
+                 (("in-package :cl-utilities)" all)
+                  "in-package :cl-utilities)\n\n#+sbcl\n(require :sb-rotate-byte)")))))))
+      (home-page "http://common-lisp.net/project/cl-utilities")
+      (synopsis "A collection of semi-standard utilities")
+      (description
+       "On Cliki.net <http://www.cliki.net/Common%20Lisp%20Utilities>, there
+is a collection of Common Lisp Utilities, things that everybody writes since
+they're not part of the official standard.  There are some very useful things
+there; the only problems are that they aren't implemented as well as you'd
+like (some aren't implemented at all) and they aren't conveniently packaged
+and maintained.  It takes quite a bit of work to carefully implement utilities
+for common use, commented and documented, with error checking placed
+everywhere some dumb user might make a mistake.")
+      (license license:public-domain))))
+
+(define-public cl-utilities
+  (sbcl-package->cl-source-package sbcl-cl-utilities))
+
+(define-public sbcl-map-set
+  (let ((commit "7b4b545b68b8")
+        (revision "1"))
+    (package
+      (name "sbcl-map-set")
+      (version (git-version "0.0.0" revision commit))
+      (source
+       (origin
+         (method url-fetch)
+         (uri (string-append
+               "https://bitbucket.org/tarballs_are_good/map-set/get/"
+               commit ".tar.gz"))
+         (sha256
+          (base32 "1sx5j5qdsy5fklspfammwb16kjrhkggdavm922a9q86jm5l0b239"))))
+      (build-system asdf-build-system/sbcl)
+      (home-page "https://bitbucket.org/tarballs_are_good/map-set")
+      (synopsis "Set-like data structure")
+      (description
+       "Implementation of a set-like data structure with constant time
+addition, removal, and random selection.")
+      (license license:bsd-3))))
+
+(define-public cl-map-set
+  (sbcl-package->cl-source-package sbcl-map-set))
+
+(define-public sbcl-quri
+  (let ((commit "76b75103f21ead092c9f715512fa82441ef61185")
+        (revision "1"))
+    (package
+      (name "sbcl-quri")
+      (version (git-version "0.1.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/fukamachi/quri.git")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "1ccbxsgzdibmzq33mmbmmz9vwl6l03xh6nbpsh1hkdvdcl7q0a60"))))
+      (build-system asdf-build-system/sbcl)
+      (arguments
+       ;; 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)))
+      (inputs `(("sbcl-babel" ,sbcl-babel)
+                ("sbcl-split-sequence" ,sbcl-split-sequence)
+                ("sbcl-cl-utilities" ,sbcl-cl-utilities)
+                ("sbcl-alexandria" ,sbcl-alexandria)))
+      (home-page "https://github.com/fukamachi/quri")
+      (synopsis "Yet another URI library for Common Lisp")
+      (description
+       "QURI (pronounced \"Q-ree\") is yet another URI library for Common
+Lisp. It is intended to be a replacement of PURI.")
+      (license license:bsd-3))))
+
+(define-public cl-quri
+  (sbcl-package->cl-source-package sbcl-quri))
+
+(define-public sbcl-myway
+  (let ((commit "286230082a11f879c18b93f17ca571c5f676bfb7")
+        (revision "1"))
+    (package
+     (name "sbcl-myway")
+     (version (git-version "0.1.0" revision commit))
+     (source
+      (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/fukamachi/myway.git")
+             (commit commit)))
+       (file-name (git-file-name "myway" version))
+       (sha256
+        (base32 "0briia9bk3lbr0frnx39d1qg6i38dm4j6z9w3yga3d40k6df4a90"))))
+     (build-system asdf-build-system/sbcl)
+     (arguments
+      ;; Tests fail with: Component MYWAY-ASD::MYWAY-TEST not found, required
+      ;; by #<SYSTEM "myway">. Why?
+      '(#:tests? #f))
+     (native-inputs
+      `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
+        ("sbcl-prove" ,sbcl-prove)))
+     (inputs
+      `(("sbcl-cl-ppcre" ,sbcl-cl-ppcre)
+        ("sbcl-quri" ,sbcl-quri)
+        ("sbcl-map-set" ,sbcl-map-set)))
+     (home-page "https://github.com/fukamachi/myway")
+     (synopsis "Sinatra-compatible URL routing library for Common Lisp")
+     (description "My Way is a Sinatra-compatible URL routing library.")
+     (license license:llgpl))))
+
+(define-public cl-myway
+  (sbcl-package->cl-source-package sbcl-myway))
+
+(define-public sbcl-xsubseq
+  (let ((commit "5ce430b3da5cda3a73b9cf5cee4df2843034422b")
+        (revision "1"))
+    (package
+     (name "sbcl-xsubseq")
+     (version (git-version "0.0.1" revision commit))
+     (source
+      (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/fukamachi/xsubseq")
+             (commit commit)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1xz79q0p2mclf3sqjiwf6izdpb6xrsr350bv4mlmdlm6rg5r99px"))))
+     (build-system asdf-build-system/sbcl)
+     (arguments
+      ;; Tests fail with: Component XSUBSEQ-ASD::XSUBSEQ-TEST not found,
+      ;; required by #<SYSTEM "xsubseq">. Why?
+      '(#:tests? #f))
+     (native-inputs
+      `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
+        ("sbcl-prove" ,sbcl-prove)))
+     (home-page "https://github.com/fukamachi/xsubseq")
+     (synopsis "Efficient way to use \"subseq\"s in Common Lisp")
+     (description
+      "XSubseq provides functions to be able to handle \"subseq\"s more
+effieiently.")
+     (license license:bsd-2))))
+
+(define-public cl-xsubseq
+  (sbcl-package->cl-source-package sbcl-xsubseq))
+
+(define-public sbcl-smart-buffer
+  (let ((commit "09b9a9a0b3abaa37abe9a730f5aac2643dca4e62")
+        (revision "1"))
+    (package
+      (name "sbcl-smart-buffer")
+      (version (git-version "0.0.1" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/fukamachi/smart-buffer")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "0qz1zzxx0wm5ff7gpgsq550a59p0qj594zfmm2rglj97dahj54l7"))))
+      (build-system asdf-build-system/sbcl)
+      (arguments
+       ;; Tests fail with: Component SMART-BUFFER-ASD::SMART-BUFFER-TEST not
+       ;; found, required by #<SYSTEM "smart-buffer">. Why?
+       `(#:tests? #f))
+      (native-inputs
+       `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
+         ("sbcl-prove" ,sbcl-prove)))
+      (inputs
+       `(("sbcl-xsubseq" ,sbcl-xsubseq)
+         ("sbcl-flexi-streams" ,sbcl-flexi-streams)))
+      (home-page "https://github.com/fukamachi/smart-buffer")
+      (synopsis "Smart octets buffer")
+      (description
+       "Smart-buffer provides an output buffer which changes the destination
+depending on content size.")
+      (license license:bsd-3))))
+
+(define-public cl-smart-buffer
+  (sbcl-package->cl-source-package sbcl-smart-buffer))
+
+(define-public sbcl-fast-http
+  (let ((commit "f9e7597191bae380503e20724fd493a24d024935")
+        (revision "1"))
+    (package
+      (name "sbcl-fast-http")
+      (version (git-version "0.2.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/fukamachi/fast-http")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "0qdmwv2zm0sizxdb8nnclgwl0nfjcbjaimbakavikijw7lr9b4jp"))))
+      (build-system asdf-build-system/sbcl)
+      (arguments
+       ;; Tests fail with: Component FAST-HTTP-ASD::FAST-HTTP-TEST not found,
+       ;; required by #<SYSTEM "fast-http">. Why?
+       `(#:tests? #f))
+      (native-inputs
+       `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
+         ("sbcl-prove" ,sbcl-prove)))
+      (inputs
+       `(("sbcl-alexandria" ,sbcl-alexandria)
+         ("sbcl-proc-parse" ,sbcl-proc-parse)
+         ("sbcl-xsubseq" ,sbcl-xsubseq)
+         ("sbcl-smart-buffer" ,sbcl-smart-buffer)
+         ("sbcl-cl-utilities" ,sbcl-cl-utilities)))
+      (home-page "https://github.com/fukamachi/fast-http")
+      (synopsis "HTTP request/response parser for Common Lisp")
+      (description
+       "@code{fast-http} is a HTTP request/response protocol parser for Common
+Lisp.")
+      ;; Author specified the MIT license
+      (license license:expat))))
+
+(define-public cl-fast-http
+  (sbcl-package->cl-source-package sbcl-fast-http))
+
+(define-public sbcl-static-vectors
+  (let ((commit "0681eac1f49370cde03e64b077251e8abf47d702")
+        (revision "1"))
+    (package
+     (name "sbcl-static-vectors")
+     (version (git-version "1.8.3" revision commit))
+     (source
+      (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/sionescu/static-vectors.git")
+             (commit commit)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "138nlsq14hv8785ycjm6jw3i6ablhq8vcwys7q09y80arcgrg6r3"))))
+     (native-inputs
+      `(("sbcl-fiveam" ,sbcl-fiveam)))
+     (inputs
+      `(("sbcl-cffi-grovel" ,sbcl-cffi-grovel)
+        ("sbcl-cffi" ,sbcl-cffi)))
+     (build-system asdf-build-system/sbcl)
+     (home-page "http://common-lisp.net/projects/iolib/")
+     (synopsis "Allocate SIMPLE-ARRAYs in static memory")
+     (description
+      "With @code{static-vectors}, you can create vectors allocated in static
+memory.")
+     (license license:expat))))
+
+(define-public cl-static-vectors
+  (sbcl-package->cl-source-package sbcl-static-vectors))
+
+(define-public sbcl-marshal
+  (let ((commit "eff1b15f2b0af2f26f71ad6a4dd5c4beab9299ec")
+        (revision "1"))
+    (package
+     (name "sbcl-marshal")
+     (version (git-version "1.3.0" revision commit))
+     (source
+      (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/wlbr/cl-marshal.git")
+             (commit commit)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "08qs6fhk38xpkkjkpcj92mxx0lgy4ygrbbzrmnivdx281syr0gwh"))))
+     (build-system asdf-build-system/sbcl)
+     (home-page "https://github.com/wlbr/cl-marshal")
+     (synopsis "Simple (de)serialization of Lisp datastructures")
+     (description
+      "Simple and fast marshalling of Lisp datastructures.  Convert any object
+into a string representation, put it on a stream an revive it from there.
+Only minimal changes required to make your CLOS objects serializable.")
+     (license license:expat))))
+
+(define-public cl-marshal
+  (sbcl-package->cl-source-package sbcl-marshal))
+
+(define-public sbcl-checkl
+  (let ((commit "80328800d047fef9b6e32dfe6bdc98396aee3cc9")
+        (revision "1"))
+    (package
+      (name "sbcl-checkl")
+      (version (git-version "0.0.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/rpav/CheckL.git")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "0bpisihx1gay44xmyr1dmhlwh00j0zzi04rp9fy35i95l2r4xdlx"))))
+      (build-system asdf-build-system/sbcl)
+      (arguments
+       ;; Error while trying to load definition for system checkl-test from
+       ;; pathname [...]/checkl-test.asd: The function CHECKL:DEFINE-TEST-OP
+       ;; is undefined.
+       '(#:tests? #f))
+      (native-inputs
+       `(("sbcl-fiveam" ,sbcl-fiveam)))
+      (inputs
+       `(("sbcl-marshal" ,sbcl-marshal)))
+      (home-page "https://github.com/rpav/CheckL/")
+      (synopsis "Dynamic testing for Common Lisp")
+      (description
+       "CheckL lets you write tests dynamically, it checks resulting values
+against the last run.")
+      ;; The author specifies both LLGPL and "BSD", but the "BSD" license
+      ;; isn't specified anywhere, so I don't know which kind.  LLGPL is the
+      ;; stronger of the two and so I think only listing this should suffice.
+      (license license:llgpl))))
+
+(define-public cl-checkl
+  (sbcl-package->cl-source-package sbcl-checkl))
+
+(define-public sbcl-fast-io
+  (let ((commit "dc3a71db7e9b756a88781ae9c342fe9d4bbab51c")
+        (revision "1"))
+    (package
+     (name "sbcl-fast-io")
+     (version (git-version "1.0.0" revision commit))
+     (source
+      (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/rpav/fast-io.git")
+             (commit commit)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1jsp6xvi26ln6fdy5j5zi05xvan8jsqdhisv552dy6xg6ws8i1yq"))))
+     (build-system asdf-build-system/sbcl)
+     (arguments
+      ;; 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))
+     (native-inputs
+      `(("sbcl-fiveam" ,sbcl-fiveam)
+        ("sbcl-checkl" ,sbcl-checkl)))
+     (inputs
+      `(("sbcl-alexandria" ,sbcl-alexandria)
+        ("sbcl-trivial-gray-streams" ,sbcl-trivial-gray-streams)
+        ("sbcl-static-vectors" ,sbcl-static-vectors)))
+     (home-page "https://github.com/rpav/fast-io")
+     (synopsis "Fast octet-vector/stream I/O for Common Lisp")
+     (description
+      "Fast-io is about improving performance to octet-vectors and octet
+streams (though primarily the former, while wrapping the latter).")
+     ;; Author specifies this as NewBSD which is an alias
+     (license license:bsd-3))))
+
+(define-public cl-fast-io
+  (sbcl-package->cl-source-package sbcl-fast-io))
+
+(define-public sbcl-jonathan
+  (let ((commit "1f448b4f7ac8265e56e1c02b32ce383e65316300")
+        (revision "1"))
+    (package
+     (name "sbcl-jonathan")
+     (version (git-version "0.1.0" revision commit))
+     (source
+      (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/Rudolph-Miller/jonathan.git")
+             (commit commit)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "14x4iwz3mbag5jzzzr4sb6ai0m9r4q4kyypbq32jmsk2dx1hi807"))))
+     (build-system asdf-build-system/sbcl)
+     (arguments
+      ;; Tests fail with: Component JONATHAN-ASD::JONATHAN-TEST not found,
+      ;; required by #<SYSTEM "jonathan">. Why?
+      `(#:tests? #f))
+     (native-inputs
+      `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
+        ("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)))
+     (home-page "http://rudolph-miller.github.io/jonathan/overview.html")
+     (synopsis "JSON encoder and decoder")
+     (description
+      "High performance JSON encoder and decoder.  Currently support: SBCL,
+CCL.")
+     ;; Author specifies the MIT license
+     (license license:expat))))
+
+(define-public cl-jonathan
+  (sbcl-package->cl-source-package sbcl-jonathan))
+
+(define-public sbcl-http-body
+  (let ((commit "dd01dc4f5842e3d29728552e5163acce8386eb73")
+        (revision "1"))
+    (package
+     (name "sbcl-http-body")
+     (version (git-version "0.1.0" revision commit))
+     (source
+      (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/fukamachi/http-body")
+             (commit commit)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1jd06snjvxcprhapgfq8sx0y5lrldkvhf206ix6d5a23dd6zcmr0"))))
+     (build-system asdf-build-system/sbcl)
+     (arguments
+      ;; Tests fail with: Component HTTP-BODY-ASD::HTTP-BODY-TEST not
+      ;; found, required by #<SYSTEM "http-body">. Why?
+      `(#:tests? #f))
+     (native-inputs
+      `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
+        ("sbcl-prove" ,sbcl-prove)))
+     (inputs
+      `(("sbcl-fast-http" ,sbcl-fast-http)
+        ("sbcl-jonathan" ,sbcl-jonathan)
+        ("sbcl-quri" ,sbcl-quri)))
+     (home-page "https://github.com/fukamachi/http-body")
+     (synopsis "HTTP POST data parser")
+     (description
+      "HTTP-Body parses HTTP POST data and returns POST parameters.  It
+supports application/x-www-form-urlencoded, application/json, and
+multipart/form-data.")
+     (license license:bsd-2))))
+
+(define-public cl-http-body
+  (sbcl-package->cl-source-package sbcl-http-body))
+
+(define-public sbcl-circular-streams
+  (let ((commit "e770bade1919c5e8533dd2078c93c3d3bbeb38df")
+        (revision "1"))
+    (package
+     (name "sbcl-circular-streams")
+     (version (git-version "0.1.0" revision commit))
+     (source
+      (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/fukamachi/circular-streams")
+             (commit commit)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1wpw6d5cciyqcf92f7mvihak52pd5s47kk4qq6f0r2z2as68p5rs"))))
+     (build-system asdf-build-system/sbcl)
+     (arguments
+      ;; The tests depend on cl-test-more which is now prove. Prove
+      ;; tests aren't working for some reason.
+      `(#:tests? #f))
+     (inputs
+      `(("sbcl-fast-io" ,sbcl-fast-io)
+        ("sbcl-trivial-gray-streams" ,sbcl-trivial-gray-streams)))
+     (home-page "https://github.com/fukamachi/circular-streams")
+     (synopsis "Circularly readable streams for Common Lisp")
+     (description
+      "Circular-Streams allows you to read streams circularly by wrapping real
+streams. Once you reach end-of-file of a stream, it's file position will be
+reset to 0 and you're able to read it again.")
+     (license license:llgpl))))
+
+(define-public cl-circular-streams
+  (sbcl-package->cl-source-package sbcl-circular-streams))
+
+(define-public sbcl-lack-request
+  (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.git")
+             (commit commit)))
+       (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
+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-request
+  (sbcl-package->cl-source-package sbcl-lack-request))
+
+(define-public sbcl-local-time
+  (let ((commit "beac054eef428552b63d4ae7820c32ffef9a3015")
+        (revision "1"))
+    (package
+     (name "sbcl-local-time")
+     (version (git-version "1.0.6" revision commit))
+     (source
+      (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/dlowe-net/local-time.git")
+             (commit commit)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0xhkmgxh41dg2wwlsp0h2l41jp144xn4gpxhh0lna6kh0560w2cc"))))
+     (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)))
+     (home-page "https://common-lisp.net/project/local-time/")
+     (synopsis "Time manipulation library for Common Lisp")
+     (description
+      "The LOCAL-TIME library is a Common Lisp library for the manipulation of
+dates and times.  It is based almost entirely upon Erik Naggum's paper \"The
+Long Painful History of Time\".")
+     (license license:expat))))
+
+(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.git")
+             (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.git")
+             (commit commit)))
+       (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.git")
+             (commit commit)))
+       (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.git")
+             (commit commit)))
+       (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 sbcl-trivial-mimes
+  (let ((commit "303f8ac0aa6ca0bc139aa3c34822e623c3723fab")
+        (revision "1"))
+    (package
+      (name "sbcl-trivial-mimes")
+      (version (git-version "1.1.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/Shinmera/trivial-mimes.git")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "17jxgl47r695bvsb7wi3n2ws5rp1zzgvw0zii8cy5ggw4b4ayv6m"))))
+      (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/sbcl-source/trivial-mimes/mime.types\")")))))))))
+      (native-inputs
+       `(("stefil" ,sbcl-hu.dwim.stefil)))
+      (inputs
+       `(("sbcl-cl-fad" ,sbcl-cl-fad)))
+      (home-page "http://shinmera.github.io/trivial-mimes/")
+      (synopsis "Tiny Common Lisp library to detect mime types in files")
+      (description
+       "This is a teensy library that provides some functions to determine the
+mime-type of a file.")
+      (license license:artistic2.0))))
+
+(define-public cl-trivial-mimes
+  (sbcl-package->cl-source-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.git")
+             (commit commit)))
+       (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.git")
+             (commit commit)))
+       (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"))
+    (package
+      (name "sbcl-ningle")
+      (version (git-version "0.3.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/fukamachi/ningle.git")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "1bsl8cnxhacb8p92z9n89vhk1ikmij5zavk0m2zvmj7iqm79jzgw"))))
+      (build-system asdf-build-system/sbcl)
+      (arguments
+       ;; TODO: pull in clack-test
+       '(#:tests? #f
+         #:phases
+         (modify-phases %standard-phases
+           (delete 'cleanup-files)
+           (delete 'cleanup)
+           (add-before 'cleanup 'combine-fasls
+             (lambda* (#:key outputs #:allow-other-keys)
+               (let* ((out (assoc-ref outputs "out"))
+                      (lib (string-append out "/lib/sbcl"))
+                      (ningle-path (string-append lib "/ningle"))
+                      (fasl-files (find-files out "\\.fasl$")))
+                 (mkdir-p ningle-path)
+                 (let ((fasl-path (lambda (name)
+                                    (string-append ningle-path
+                                                   "/"
+                                                   (basename name)
+                                                   "--system.fasl"))))
+                   (for-each (lambda (file)
+                               (rename-file file
+                                            (fasl-path
+                                             (basename file ".fasl"))))
+                             fasl-files))
+                 fasl-files)
+               #t)))))
+      (native-inputs
+       `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
+         ("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-alexandria" ,sbcl-alexandria)
+         ("sbcl-babel" ,sbcl-babel)))
+      (home-page "http://8arrow.org/ningle/")
+      (synopsis "Super micro framework for Common Lisp")
+      (description
+       "Ningle is a lightweight web application framework for Common Lisp.")
+      (license license:llgpl))))
+
+(define-public cl-ningle
+  (sbcl-package->cl-source-package sbcl-ningle))
+
+(define-public sbcl-clack
+  (let ((commit "e3e032843bb1220ab96263c411aa7f2feb4746e0")
+        (revision "1"))
+    (package
+     (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.git")
+             (commit commit)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1ymzs6qyrwhlj6cgqsnpyn6g5cbp7a3s1vgxwna20y2q7y4iacy0"))))
+     (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))))
+
+(define-public cl-clack
+  (sbcl-package->cl-source-package sbcl-clack))
+
+(define-public sbcl-log4cl
+  (let ((commit "611e094458504b938d49de904eab141285328c7c")
+        (revision "1"))
+    (package
+      (name "sbcl-log4cl")
+      (build-system asdf-build-system/sbcl)
+      (version "1.1.2")
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/sharplispers/log4cl")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "08jly0s0g26b56hhpfizxsb4j0yvbh946sd205gr42dkzv8l7dsc"))))
+      ;; FIXME: tests require stefil, sbcl-hu.dwim.stefil wont work
+      (arguments
+       `(#:tests? #f))
+      (inputs `(("bordeaux-threads" ,sbcl-bordeaux-threads)))
+      (synopsis "Common Lisp logging framework, modeled after Log4J")
+      (home-page "https://github.com/7max/log4cl")
+      (description "This is a Common Lisp logging framework that can log at
+various levels and mix text with expressions.")
+      (license license:asl2.0))))
+
+(define-public cl-log4cl
+  (sbcl-package->cl-source-package sbcl-log4cl))
+
+(define-public ecl-log4cl
+  (sbcl-package->ecl-package sbcl-log4cl))
diff --git a/gnu/packages/llvm.scm b/gnu/packages/llvm.scm
index 3d46b02338..53884daf9b 100644
--- a/gnu/packages/llvm.scm
+++ b/gnu/packages/llvm.scm
@@ -40,7 +40,9 @@
   #:use-module (gnu packages bootstrap)           ;glibc-dynamic-linker
   #:use-module (gnu packages compression)
   #:use-module (gnu packages libffi)
+  #:use-module (gnu packages mpi)
   #:use-module (gnu packages perl)
+  #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
   #:use-module (gnu packages xml))
 
@@ -282,6 +284,43 @@ code analysis tools.")
 use with Clang, targeting C++11, C++14 and above.")
     (license license:expat)))
 
+(define-public libomp
+  (package
+    (name "libomp")
+    (version (package-version llvm))
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "http://releases.llvm.org/"
+                                  version  "/openmp-" version
+                                  ".src.tar.xz"))
+              (sha256
+               (base32
+                "030dkg5cypd7j9hq0mcqb5gs31lxwmzfq52j81l7v9ldcy5bf5mz"))
+              (file-name (string-append "libomp-" version ".tar.xz"))))
+    (build-system cmake-build-system)
+    ;; XXX: Note this gets built with GCC because building with Clang itself
+    ;; fails (missing <atomic>, even when libcxx is added as an input.)
+    (arguments
+     '(#:configure-flags '("-DLIBOMP_USE_HWLOC=ON"
+                           "-DOPENMP_TEST_C_COMPILER=clang"
+                           "-DOPENMP_TEST_CXX_COMPILER=clang++")
+       #:test-target "check-libomptarget"))
+    (native-inputs
+     `(("clang" ,clang)
+       ("llvm" ,llvm)
+       ("perl" ,perl)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("hwloc" ,hwloc "lib")))
+    (home-page "https://openmp.llvm.org")
+    (synopsis "OpenMP run-time support library")
+    (description
+     "This package provides the run-time support library developed by the LLVM
+project for the OpenMP multi-theaded programming extension.  This package
+notably provides @file{libgomp.so}, which is has a binary interface compatible
+with that of libgomp, the GNU Offloading and Multi Processing Library.")
+    (license license:expat)))
+
 (define-public clang-runtime
   (clang-runtime-from-llvm
    llvm
diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm
index 20b8bfa886..3e98ac45a3 100644
--- a/gnu/packages/machine-learning.scm
+++ b/gnu/packages/machine-learning.scm
@@ -3,7 +3,7 @@
 ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016, 2017 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com>
-;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Kei Kebreau <kkebreau@posteo.net>
 ;;; Copyright © 2018 Mark Meyer <mark@ofosos.org>
 ;;; Copyright © 2018 Ben Woodcroft <donttrustben@gmail.com>
@@ -49,6 +49,7 @@
   #:use-module (gnu packages check)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages cran)
+  #:use-module (gnu packages databases)
   #:use-module (gnu packages dejagnu)
   #:use-module (gnu packages gcc)
   #:use-module (gnu packages glib)
@@ -65,12 +66,15 @@
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-web)
   #:use-module (gnu packages python-xyz)
+  #:use-module (gnu packages serialization)
   #:use-module (gnu packages statistics)
+  #:use-module (gnu packages sqlite)
   #:use-module (gnu packages swig)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages web)
   #:use-module (gnu packages xml)
-  #:use-module (gnu packages xorg))
+  #:use-module (gnu packages xorg)
+  #:use-module (ice-9 match))
 
 (define-public fann
   ;; The last release is >100 commits behind, so we package from git.
@@ -107,18 +111,17 @@ connected and sparsely connected networks.")
 (define-public libsvm
   (package
     (name "libsvm")
-    (version "3.22")
+    (version "3.23")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://www.csie.ntu.edu.tw/~cjlin/libsvm/"
                            name "-" version ".tar.gz"))
        (sha256
-        (base32
-         "0zd7s19y5vb7agczl6456bn45cj1y64739sslaskw1qk7dywd0bd"))))
+        (base32 "0jpaq0rr92x38p4nk3gjan79ip67m6p80anb28z1d8601miysyi5"))))
     (build-system gnu-build-system)
     (arguments
-     `(#:tests? #f ;no "check" target
+     `(#:tests? #f                      ; no "check" target
        #:phases (modify-phases %standard-phases
                   (delete 'configure)
                   (replace
@@ -147,7 +150,7 @@ classification.")
     (name "python-libsvm")
     (build-system gnu-build-system)
     (arguments
-     `(#:tests? #f ;no "check" target
+     `(#:tests? #f                      ; no "check" target
        #:make-flags '("-C" "python")
        #:phases
        (modify-phases %standard-phases
@@ -304,28 +307,46 @@ networks) based on simulation of (stochastic) flow in graphs.")
     (version "12-068oasis4")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append
-             "https://github.com/fhcrc/mcl/archive/"
-             version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/fhcrc/mcl.git")
+             (commit version)))
+       (file-name (git-file-name name version))
        (sha256
         (base32
-         "1l5jbhwjpsj38x8b9698hfpkv75h8hn3kj0gihjhn8ym2cwwv110"))))
+         "0009dc3h2jp3qg5val452wngpqnbfyhbcxylghq0mrjqxx0jdq5p"))))
     (build-system ocaml-build-system)
     (arguments
-     `(#:ocaml ,ocaml-4.02
-       #:findlib ,ocaml4.02-findlib
-       #:phases
+     `(#:phases
        (modify-phases %standard-phases
          (add-before 'configure 'patch-paths
            (lambda _
              (substitute* "configure"
-               (("SHELL = /bin/sh") (string-append "SHELL = "(which "sh"))))
+               (("/bin/sh") (which "sh")))
              (substitute* "setup.ml"
                (("LDFLAGS=-fPIC")
-                (string-append "LDFLAGS=-fPIC\"; \"SHELL=" (which "sh"))))
+                (string-append "LDFLAGS=-fPIC\"; \"SHELL=" (which "sh")))
+               (("-std=c89") "-std=gnu99")
+
+               ;; This is a mutable string, which is no longer supported.  Use
+               ;; a byte buffer instead.
+               (("String.make \\(String.length s\\)")
+                "Bytes.make (String.length s)")
+
+               ;; These two belong together.
+               (("OASISString.replace_chars")
+                "Bytes.to_string (OASISString.replace_chars")
+               ((" s;")
+                " s);"))
+             (substitute* "myocamlbuild.ml"
+               (("std=c89") "std=gnu99"))
+             ;; Since we build with a more recent OCaml, we have to use C99 or
+             ;; later.  This causes problems with the old C code.
+             (substitute* "src/impala/matrix.c"
+               (("restrict") "restrict_"))
              #t)))))
+    (native-inputs
+     `(("ocamlbuild" ,ocamlbuild)))
     (home-page "https://github.com/fhcrc/mcl")
     (synopsis "OCaml wrappers around MCL")
     (description
@@ -385,14 +406,14 @@ sample proximities between pairs of cases.")
 (define-public openfst
   (package
     (name "openfst")
-    (version "1.7.1")
+    (version "1.7.2")
     (source (origin
               (method url-fetch)
               (uri (string-append "http://www.openfst.org/twiki/pub/FST/"
                                   "FstDownload/openfst-" version ".tar.gz"))
               (sha256
                (base32
-                "0x9wfcqd8hq4h349s7j77sr60h8xjdfshqw1m3a2n6z5bdr9qkm1"))))
+                "0fqgk8195kz21is09gwzwnrg7fr9526bi9mh4apyskapz27pbhr1"))))
     (build-system gnu-build-system)
     (home-page "http://www.openfst.org")
     (synopsis "Library for weighted finite-state transducers")
@@ -626,27 +647,62 @@ adaptive sparsity and the Wong algorithm for adaptively sparse gaussian
 geometric models.")
     (license license:lgpl3+)))
 
-(define-public r-kernlab
-  (package
-    (name "r-kernlab")
-    (version "0.9-27")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (cran-uri "kernlab" version))
-       (sha256
-        (base32
-         "1m0xqf6gyvwayz7w3c83y32ayvnlz0jicj8ijk808zq9sh7dbbgn"))))
-    (build-system r-build-system)
-    (home-page "https://cran.r-project.org/web/packages/kernlab")
-    (synopsis "Kernel-based machine learning tools")
-    (description
-     "This package provides kernel-based machine learning methods for
-classification, regression, clustering, novelty detection, quantile regression
-and dimensionality reduction.  Among other methods @code{kernlab} includes
-Support Vector Machines, Spectral Clustering, Kernel PCA, Gaussian Processes
-and a QP solver.")
-    (license license:gpl2)))
+(define-public gemmlowp-for-tensorflow
+  ;; The commit hash is taken from "tensorflow/workspace.bzl".
+  (let ((commit "38ebac7b059e84692f53e5938f97a9943c120d98")
+        (revision "2"))
+    (package
+      (name "gemmlowp")
+      (version (git-version "0" revision commit))
+      (source (origin
+                (method url-fetch)
+                (uri (string-append "https://mirror.bazel.build/"
+                                    "github.com/google/gemmlowp/archive/"
+                                    commit ".zip"))
+                (file-name (string-append "gemmlowp-" version ".zip"))
+                (sha256
+                 (base32
+                  "0n56s2g8hrssm4w8qj1v58gfm56a04n9v992ixkmvk6zjiralzxq"))))
+      (build-system cmake-build-system)
+      (arguments
+       `(#:configure-flags
+         (list ,@(match (%current-system)
+                   ((or "x86_64-linux" "i686-linux")
+                    '("-DCMAKE_CXX_FLAGS=-msse4.1"))
+                   (_ '())))
+         #:phases
+         (modify-phases %standard-phases
+           ;; This directory contains the CMakeLists.txt.
+           (add-after 'unpack 'chdir
+             (lambda _ (chdir "contrib") #t))
+           ;; There is no install target
+           (replace 'install
+             (lambda* (#:key outputs #:allow-other-keys)
+               (let* ((out (assoc-ref outputs "out"))
+                      (lib (string-append out "/lib/"))
+                      (inc (string-append out "/include/")))
+                 (install-file "../build/libeight_bit_int_gemm.so" lib)
+                 (for-each (lambda (dir)
+                             (let ((target (string-append inc "/" dir)))
+                               (mkdir-p target)
+                               (for-each (lambda (h)
+                                           (install-file h target))
+                                         (find-files (string-append "../" dir)
+                                                     "\\.h$"))))
+                           '("meta" "profiling" "public" "fixedpoint"
+                             "eight_bit_int_gemm" "internal"))
+                 #t))))))
+      (native-inputs
+       `(("unzip" ,unzip)))
+      (home-page "https://github.com/google/gemmlowp")
+      (synopsis "Small self-contained low-precision GEMM library")
+      (description
+       "This is a small self-contained low-precision @dfn{general matrix
+multiplication} (GEMM) library.  It is not a full linear algebra library.
+Low-precision means that the input and output matrix entries are integers on
+at most 8 bits.  To avoid overflow, results are internally accumulated on more
+than 8 bits, and at the end only some significant 8 bits are kept.")
+      (license license:asl2.0))))
 
 (define-public dlib
   (package
@@ -1249,3 +1305,451 @@ for load balancing, tracing, health checking and authentication.  It is also
 applicable in last mile of distributed computing to connect devices, mobile
 applications and browsers to backend services.")
     (license license:asl2.0)))
+
+;; Note that Tensorflow includes a "third_party" directory, which seems to not
+;; only contain modified subsets of upstream library source code, but also
+;; adapter headers provided by Google (such as the fft.h header, which is not
+;; part of the upstream project code).  The Tensorflow code includes headers
+;; from the "third_party" directory.  It does not look like we can replace
+;; these headers with unmodified upstream files, so we keep them.
+(define-public tensorflow
+  (package
+    (name "tensorflow")
+    (version "1.9.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/tensorflow/tensorflow.git")
+             (commit (string-append "v" version))))
+       (file-name (string-append "tensorflow-" version "-checkout"))
+       (sha256
+        (base32
+         "0a9kwha395g3wgxfwln5j8vn9nkspmd75xldrlqdq540w996g8xa"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:tests? #f                      ; no "check" target
+       #:build-type "Release"
+       #:configure-flags
+       (let ((protobuf (assoc-ref %build-inputs "protobuf"))
+             (protobuf:native (assoc-ref %build-inputs "protobuf:native"))
+             (jsoncpp (assoc-ref %build-inputs "jsoncpp"))
+             (snappy (assoc-ref %build-inputs "snappy"))
+             (sqlite (assoc-ref %build-inputs "sqlite")))
+         (list
+          ;; Use protobuf from Guix
+          (string-append "-Dprotobuf_STATIC_LIBRARIES="
+                         protobuf "/lib/libprotobuf.so")
+          (string-append "-DPROTOBUF_PROTOC_EXECUTABLE="
+                         protobuf:native "/bin/protoc")
+
+          ;; Use snappy from Guix
+          (string-append "-Dsnappy_STATIC_LIBRARIES="
+                         snappy "/lib/libsnappy.so")
+          ;; Yes, this is not actually the include directory but a prefix...
+          (string-append "-Dsnappy_INCLUDE_DIR=" snappy)
+
+          ;; Use jsoncpp from Guix
+          (string-append "-Djsoncpp_STATIC_LIBRARIES="
+                         jsoncpp "/lib/libjsoncpp.so")
+          ;; Yes, this is not actually the include directory but a prefix...
+          (string-append "-Djsoncpp_INCLUDE_DIR=" jsoncpp)
+
+          ;; Use sqlite from Guix
+          (string-append "-Dsqlite_STATIC_LIBRARIES="
+                         sqlite "/lib/libsqlite.a")
+
+          ;; Use system libraries wherever possible.  Currently, this
+          ;; only affects zlib.
+          "-Dsystemlib_ALL=ON"
+          "-Dtensorflow_ENABLE_POSITION_INDEPENDENT_CODE=ON"
+          "-Dtensorflow_BUILD_SHARED_LIB=ON"
+          "-Dtensorflow_OPTIMIZE_FOR_NATIVE_ARCH=OFF"
+          "-Dtensorflow_ENABLE_SSL_SUPPORT=OFF"
+          "-Dtensorflow_BUILD_CONTRIB_KERNELS=OFF"))
+       #:make-flags
+       (list "CC=gcc")
+       #:modules ((ice-9 ftw)
+                  (guix build utils)
+                  (guix build cmake-build-system))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'set-source-file-times-to-1980
+           ;; At the end of the tf_python_build_pip_package target, a ZIP
+           ;; archive should be generated via bdist_wheel, but it fails with
+           ;; "ZIP does not support timestamps before 1980".  Luckily,
+           ;; SOURCE_DATE_EPOCH is respected, which we set to some time in
+           ;; 1980.
+           (lambda _ (setenv "SOURCE_DATE_EPOCH" "315532800") #t))
+         ;; See https://github.com/tensorflow/tensorflow/issues/20517#issuecomment-406373913
+         (add-after 'unpack 'python3.7-compatibility
+           (lambda _
+             (substitute* '("tensorflow/python/eager/pywrap_tfe_src.cc"
+                            "tensorflow/python/lib/core/ndarray_tensor.cc"
+                            "tensorflow/python/lib/core/py_func.cc")
+               (("PyUnicode_AsUTF8") "(char *)PyUnicode_AsUTF8"))
+             (substitute* "tensorflow/c/eager/c_api.h"
+               (("unsigned char async")
+                "unsigned char is_async"))
+
+             ;; Remove dependency on tensorboard, a complicated but probably
+             ;; optional package.
+             (substitute* "tensorflow/tools/pip_package/setup.py"
+               ((".*'tensorboard >.*") ""))
+             #t))
+         (add-after 'python3.7-compatibility 'chdir
+           (lambda _ (chdir "tensorflow/contrib/cmake") #t))
+         (add-after 'chdir 'disable-downloads
+           (lambda* (#:key inputs #:allow-other-keys)
+             (substitute* (find-files "external" "\\.cmake$")
+               (("GIT_REPOSITORY.*") "")
+               (("GIT_TAG.*") "")
+               (("PREFIX ")
+                "DOWNLOAD_COMMAND \"\"\nPREFIX "))
+
+             ;; Use packages from Guix
+             (let ((grpc (assoc-ref inputs "grpc")))
+               (substitute* "CMakeLists.txt"
+                 ;; Sqlite
+                 (("include\\(sqlite\\)") "")
+                 (("\\$\\{sqlite_STATIC_LIBRARIES\\}")
+                  (string-append (assoc-ref inputs "sqlite")
+                                 "/lib/libsqlite3.so"))
+                 (("sqlite_copy_headers_to_destination") "")
+
+                 ;; PNG
+                 (("include\\(png\\)") "")
+                 (("\\$\\{png_STATIC_LIBRARIES\\}")
+                  (string-append (assoc-ref inputs "libpng")
+                                 "/lib/libpng16.so"))
+                 (("png_copy_headers_to_destination") "")
+
+                 ;; JPEG
+                 (("include\\(jpeg\\)") "")
+                 (("\\$\\{jpeg_STATIC_LIBRARIES\\}")
+                  (string-append (assoc-ref inputs "libjpeg")
+                                 "/lib/libjpeg.so"))
+                 (("jpeg_copy_headers_to_destination") "")
+
+                 ;; GIF
+                 (("include\\(gif\\)") "")
+                 (("\\$\\{gif_STATIC_LIBRARIES\\}")
+                  (string-append (assoc-ref inputs "giflib")
+                                 "/lib/libgif.so"))
+                 (("gif_copy_headers_to_destination") "")
+
+                 ;; lmdb
+                 (("include\\(lmdb\\)") "")
+                 (("\\$\\{lmdb_STATIC_LIBRARIES\\}")
+                  (string-append (assoc-ref inputs "lmdb")
+                                 "/lib/liblmdb.so"))
+                 (("lmdb_copy_headers_to_destination") "")
+
+                 ;; Protobuf
+                 (("include\\(protobuf\\)") "")
+                 (("protobuf_copy_headers_to_destination") "")
+                 (("^ +protobuf") "")
+
+                 ;; gRPC
+                 (("include\\(grpc\\)")
+                  "find_package(grpc REQUIRED NAMES gRPC)")
+                 (("list\\(APPEND tensorflow_EXTERNAL_DEPENDENCIES grpc\\)") "")
+
+                 ;; Eigen
+                 (("include\\(eigen\\)")
+                  (string-append "find_package(eigen REQUIRED NAMES Eigen3)
+set(eigen_INCLUDE_DIRS ${CMAKE_CURRENT_BINARY_DIR}/external/eigen_archive "
+                                 (assoc-ref inputs "eigen") "/include/eigen3)"))
+                 (("^ +eigen") "")
+
+                 ;; snappy
+                 (("include\\(snappy\\)")
+                  "add_definitions(-DTF_USE_SNAPPY)")
+                 (("list\\(APPEND tensorflow_EXTERNAL_DEPENDENCIES snappy\\)") "")
+
+                 ;; jsoncpp
+                 (("include\\(jsoncpp\\)") "")
+                 (("^ +jsoncpp") ""))
+
+               (substitute* "tf_core_framework.cmake"
+                 ((" grpc") "")
+                 (("\\$\\{GRPC_BUILD\\}/grpc_cpp_plugin")
+                  (which "grpc_cpp_plugin"))
+                 ;; Link with gRPC libraries
+                 (("add_library\\(tf_protos_cc.*" m)
+                  (string-append m
+                                 (format #f "\ntarget_link_libraries(tf_protos_cc PRIVATE \
+~a/lib/libgrpc++_unsecure.a \
+~a/lib/libgrpc_unsecure.a \
+~a/lib/libaddress_sorting.a \
+~a/lib/libgpr.a \
+~a//lib/libcares.so
+)\n"
+                                         grpc grpc grpc grpc
+                                         (assoc-ref inputs "c-ares"))))))
+             (substitute* "tf_tools.cmake"
+               (("add_dependencies\\(\\$\\{proto_text.*") ""))
+             ;; Remove dependency on bundled grpc
+             (substitute* "tf_core_distributed_runtime.cmake"
+               (("tf_core_cpu grpc") "tf_core_cpu"))
+
+             ;; This directory is a dependency of many targets.
+             (mkdir-p "protobuf")
+             #t))
+         (add-after 'configure 'unpack-third-party-sources
+           (lambda* (#:key inputs #:allow-other-keys)
+             ;; This is needed to configure bundled packages properly.
+             (setenv "CONFIG_SHELL" (which "bash"))
+             (for-each
+              (lambda (name)
+                (let* ((what  (assoc-ref inputs (string-append name "-src")))
+                       (name* (string-map (lambda (c)
+                                            (if (char=? c #\-)
+                                                #\_ c)) name))
+                       (where (string-append "../build/" name* "/src/" name*)))
+                  (cond
+                   ((string-suffix? ".zip" what)
+                    (mkdir-p where)
+                    (with-directory-excursion where
+                      (invoke "unzip" what)))
+                   ((string-suffix? ".tar.gz" what)
+                    (mkdir-p where)
+                    (invoke "tar" "xf" what
+                            "-C" where "--strip-components=1"))
+                   (else
+                    (let ((parent (dirname where)))
+                      (mkdir-p parent)
+                      (with-directory-excursion parent
+                        (when (file-exists? name*)
+                          (delete-file-recursively name*))
+                        (copy-recursively what name*)
+                        (map make-file-writable
+                             (find-files name* ".*"))))))))
+              (list "boringssl"
+                    "cub"
+                    "double-conversion"
+                    "farmhash"
+                    "fft2d"
+                    "highwayhash"
+                    "nsync"
+                    "re2"))
+
+             (rename-file "../build/cub/src/cub/cub-1.8.0/"
+                          "../build/cub/src/cub/cub/")
+             #t))
+         (add-after 'unpack 'fix-python-build
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (mkdir-p "protobuf-src")
+             (invoke "tar" "xf" (assoc-ref inputs "protobuf:src")
+                     "-C" "protobuf-src" "--strip-components=1")
+             (mkdir-p "eigen-src")
+             (invoke "tar" "xf" (assoc-ref inputs "eigen:src")
+                     "-C" "eigen-src" "--strip-components=1")
+
+             (substitute* "tensorflow/contrib/cmake/tf_python.cmake"
+               ;; Ensure that all Python dependencies can be found at build time.
+               (("PYTHONPATH=\\$\\{CMAKE_CURRENT_BINARY_DIR\\}/tf_python" m)
+                (string-append m ":" (getenv "PYTHONPATH")))
+               ;; Take protobuf source files from our source package.
+               (("\\$\\{CMAKE_CURRENT_BINARY_DIR\\}/protobuf/src/protobuf/src/google")
+                (string-append (getcwd) "/protobuf-src/src/google")))
+
+             (substitute* '("tensorflow/contrib/cmake/tf_shared_lib.cmake"
+                            "tensorflow/contrib/cmake/tf_python.cmake")
+               ;; Take Eigen source files from our source package.
+               (("\\$\\{CMAKE_CURRENT_BINARY_DIR\\}/eigen/src/eigen/")
+                (string-append (getcwd) "/eigen-src/"))
+               ;; Take Eigen headers from our own package.
+               (("\\$\\{CMAKE_CURRENT_BINARY_DIR\\}/external/eigen_archive")
+                (string-append (assoc-ref inputs "eigen") "/include/eigen3")))
+
+             ;; Correct the RUNPATH of ops libraries generated for Python.
+             ;; TODO: this doesn't work :(
+             ;; /gnu/store/...-tensorflow-1.9.0/lib/python3.7/site-packages/tensorflow/contrib/seq2seq/python/ops/lib_beam_search_ops.so:
+             ;; warning: RUNPATH contains bogus entries: ("/tmp/guix-build-tensorflow-1.9.0.drv-0/source/tensorflow/contrib/build")
+             ;; /gnu/store/...-tensorflow-1.9.0/lib/python3.7/site-packages/tensorflow/contrib/seq2seq/python/ops/lib_beam_search_ops.so:
+             ;; error: depends on 'libpywrap_tensorflow_internal.so', which
+             ;; cannot be found in RUNPATH ...
+             (substitute* "tensorflow/contrib/cmake/tf_cc_ops.cmake"
+               (("set_target_properties.*")
+                (string-append "set_target_properties(${_AT_TARGET} PROPERTIES \
+COMPILE_FLAGS ${target_compile_flags} \
+INSTALL_RPATH_USE_LINK_PATH TRUE \
+INSTALL_RPATH " (assoc-ref outputs "out") "/lib)\n")))
+             #t))
+         (add-after 'build 'build-pip-package
+           (lambda* (#:key outputs #:allow-other-keys)
+             (setenv "LDFLAGS"
+                     (string-append "-Wl,-rpath="
+                                    (assoc-ref outputs "out") "/lib"))
+             (invoke "make" "tf_python_build_pip_package")
+             #t))
+         (add-after 'build-pip-package 'install-python
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out"))
+                   (wheel (car (find-files "../build/tf_python/dist/" "\\.whl$"))))
+               (invoke "python" "-m" "pip" "install" wheel
+                       (string-append "--prefix=" out))
+
+               ;; XXX: broken RUNPATH, see fix-python-build phase.
+               (delete-file
+                (string-append
+                 out "/lib/python3.7/site-packages/tensorflow/contrib/"
+                 "seq2seq/python/ops/lib_beam_search_ops.so"))
+               #t))))))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("protobuf:native" ,protobuf-next) ; protoc
+       ("protobuf:src" ,(package-source protobuf-next))
+       ("eigen:src" ,(package-source eigen-for-tensorflow))
+       ;; The commit hashes and URLs for third-party source code are taken
+       ;; from "tensorflow/workspace.bzl".
+       ("boringssl-src"
+        ,(let ((commit "ee7aa02")
+               (revision "1"))
+           (origin
+             (method git-fetch)
+             (uri (git-reference
+                   (url "https://boringssl.googlesource.com/boringssl")
+                   (commit commit)))
+             (file-name (string-append "boringssl-0-" revision
+                                       (string-take commit 7)
+                                       "-checkout"))
+             (sha256
+              (base32
+               "1jf693q0nw0adsic6cgmbdx6g7wr4rj4vxa8j1hpn792fqhd8wgw")))))
+       ("cub-src"
+        ,(let ((version "1.8.0"))
+           (origin
+             (method url-fetch)
+             (uri (string-append "https://mirror.bazel.build/github.com/NVlabs/"
+                                 "cub/archive/" version ".zip"))
+             (file-name (string-append "cub-" version ".zip"))
+             (sha256
+              (base32
+               "1hsqikqridb90dkxkjr2918dcry6pfh46ccnwrzawl56aamhdykb")))))
+       ("double-conversion-src"
+        ,(let ((commit "5664746")
+               (revision "1"))
+           (origin
+             (method git-fetch)
+             (uri (git-reference
+                   (url "https://github.com/google/double-conversion.git")
+                   (commit commit)))
+             (file-name
+              (git-file-name "double-conversion"
+                             (string-append "0-" revision "."
+                                            (string-take commit 7))))
+             (sha256
+              (base32
+               "1h5lppqqxcvdg5jq42i5msgwx20ryij3apvmndflngrgdpc04gn1")))))
+       ("farmhash-src"
+        ,(let ((commit "816a4ae622e964763ca0862d9dbd19324a1eaf45"))
+           (origin
+             (method url-fetch)
+             (uri (string-append
+                   "https://mirror.bazel.build/github.com/google/farmhash/archive/"
+                   commit ".tar.gz"))
+             (file-name (string-append "farmhash-0-" (string-take commit 7)
+                                       ".tar.gz"))
+             (sha256
+              (base32
+               "185b2xdxl4d4cnsnv6abg8s22gxvx8673jq2yaq85bz4cdy58q35")))))
+       ;; The license notice on the home page at
+       ;; http://www.kurims.kyoto-u.ac.jp/~ooura/fft.html says:
+       ;;   Copyright Takuya OOURA, 1996-2001
+       ;;
+       ;;   You may use, copy, modify and distribute this code for any purpose
+       ;;   (include commercial use) and without fee. Please refer to this
+       ;;   package when you modify this code.
+       ;;
+       ;; We take the identical tarball from the Bazel mirror, because the URL
+       ;; at the home page is not versioned and might change.
+       ("fft2d-src"
+        ,(origin
+           (method url-fetch)
+           (uri "https://mirror.bazel.build/www.kurims.kyoto-u.ac.jp/~ooura/fft.tgz")
+           (file-name "fft2d.tar.gz")
+           (sha256
+            (base32
+             "15jjkfvhqvl2c0753d2di8hz0pyzn598g74wqy79awdrf1y67fsj"))))
+       ("highwayhash-src"
+        ,(let ((commit "be5edafc2e1a455768e260ccd68ae7317b6690ee")
+               (revision "1"))
+           (origin
+             (method git-fetch)
+             (uri (git-reference
+                   (url "https://github.com/google/highwayhash.git")
+                   (commit commit)))
+             (file-name (string-append "highwayhash-0-" revision
+                                       (string-take commit 7)
+                                       "-checkout"))
+             (sha256
+              (base32
+               "154jwf98cyy54hldr94pgjn85zynly3abpnc1avmb8a18lzwjyb6")))))
+       ("nsync-src"
+        ,(let ((version "0559ce013feac8db639ee1bf776aca0325d28777")
+               (revision "1"))
+           (origin
+             (method url-fetch)
+             (uri (string-append "https://mirror.bazel.build/"
+                                 "github.com/google/nsync/archive/"
+                                 version ".tar.gz"))
+             (file-name (string-append "nsync-0." revision
+                                       "-" (string-take version 7)
+                                       ".tar.gz"))
+             (sha256
+              (base32
+               "0qdkyqym34x739mmzv97ah5r7ph462v5xkxqxvidmcfqbi64b132")))))
+       ("re2-src"
+        ,(let ((commit "e7efc48")
+               (revision "1"))
+           (origin
+             (method git-fetch)
+             (uri (git-reference
+                   (url "https://github.com/google/re2")
+                   (commit commit)))
+             (file-name (string-append "re2-0-" revision
+                                       (string-take commit 7)
+                                       "-checkout"))
+             (sha256
+              (base32
+               "161g9841rjfsy5pn52fcis0s9hdr7rxvb06pad38j5rppfihvign")))))
+       ("googletest" ,googletest)
+       ("swig" ,swig)
+       ("unzip" ,unzip)))
+    (propagated-inputs
+     `(("python-absl-py" ,python-absl-py)
+       ("python-astor" ,python-astor)
+       ("python-gast" ,python-gast)
+       ("python-grpcio" ,python-grpcio)
+       ("python-numpy" ,python-numpy)
+       ("python-protobuf" ,python-protobuf-next)
+       ("python-six" ,python-six)
+       ("python-termcolo" ,python-termcolor)
+       ("python-wheel" ,python-wheel)))
+    (inputs
+     `(("c-ares" ,c-ares)
+       ("eigen" ,eigen-for-tensorflow)
+       ("gemmlowp" ,gemmlowp-for-tensorflow)
+       ("lmdb" ,lmdb)
+       ("libjpeg" ,libjpeg)
+       ("libpng" ,libpng)
+       ("giflib" ,giflib)
+       ("grpc" ,grpc)
+       ("jsoncpp" ,jsoncpp-for-tensorflow)
+       ("snappy" ,snappy)
+       ("sqlite" ,sqlite)
+       ("protobuf" ,protobuf-next)
+       ("python" ,python-wrapper)
+       ("zlib" ,zlib)))
+    (home-page "https://tensorflow.org")
+    (synopsis "Machine learning framework")
+    (description
+     "TensorFlow is a flexible platform for building and training machine
+learning models.  It provides a library for high performance numerical
+computation and includes high level Python APIs, including both a sequential
+API for beginners that allows users to build models quickly by plugging
+together building blocks and a subclassing API with an imperative style for
+advanced research.")
+    (license license:asl2.0)))
diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
index 9d09cade29..ddd01189fb 100644
--- a/gnu/packages/mail.scm
+++ b/gnu/packages/mail.scm
@@ -24,7 +24,7 @@
 ;;; Copyright © 2017 Kyle Meyer <kyle@kyleam.com>
 ;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2017, 2018 Rene Saavedra <pacoon@protonmail.com>
-;;; Copyright © 2018 Pierre Langlois <pierre.langlois@gmx.com>
+;;; Copyright © 2018, 2019 Pierre Langlois <pierre.langlois@gmx.com>
 ;;; Copyright © 2018 Alex Vong <alexvong1995@gmail.com>
 ;;; Copyright © 2018 Gábor Boskovits <boskovits@gmail.com>
 ;;; Copyright © 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
@@ -95,6 +95,7 @@
   #:use-module (gnu packages onc-rpc)
   #:use-module (gnu packages pcre)
   #:use-module (gnu packages perl)
+  #:use-module (gnu packages perl-web)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-web)
@@ -110,6 +111,7 @@
   #:use-module (gnu packages texinfo)
   #:use-module (gnu packages time)
   #:use-module (gnu packages tls)
+  #:use-module (gnu packages version-control)
   #:use-module (gnu packages w3m)
   #:use-module (gnu packages web)
   #:use-module (gnu packages webkit)
@@ -675,27 +677,27 @@ security functionality including PGP, S/MIME, SSH, and SSL.")
 (define-public mu
   (package
     (name "mu")
-    (version "1.0")
+    (version "1.2.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/djcb/mu/releases/"
-                                  "download/v" version "/mu-"
-                                  version ".tar.xz"))
+                                  "download/" (version-major+minor version) "/"
+                                  "mu-" version ".tar.xz"))
               (sha256
                (base32
-                "04x5azl19gszw2h7argq666gf9xs4hy9q7w9cbqxvy08n56xqsln"))))
+                "0fh5bxvhjqv1p9z783lym8y1k3p4jcc3wg6wf7zl8s6w8krcfd7n"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)
        ("glib" ,glib "bin")             ; for gtester
        ("emacs" ,emacs-minimal)
-       ("tzdata" ,tzdata-for-tests)))   ;for mu/test/test-mu-query.c
+       ("tzdata" ,tzdata-for-tests)))   ; for mu/test/test-mu-query.c
     ;; TODO: Add webkit and gtk to build the mug GUI.
     (inputs
      `(("xapian" ,xapian)
        ("guile" ,guile-2.2)
        ("glib" ,glib)
-       ("gmime" ,gmime-2.6)))
+       ("gmime" ,gmime)))
     (arguments
      `(#:modules ((guix build gnu-build-system)
                   (guix build utils)
@@ -917,51 +919,43 @@ ing, and tagging large collections of email messages.")
     (license gpl3+)))
 
 (define-public notmuch-addrlookup-c
-  ;; This commit includes a compatibility fix for notmuch-0.25, and is not
-  ;; currently part of any release.  Please update this package when
-  ;; notmuch-addrlookup-c-9 is released.
-  (let ((commit "88f156d04990a71c6ad6fc2757b537b44e3c4d00")
-        (revision "1"))          ;Guix package revision
-    (package
-      (name "notmuch-addrlookup-c")
-      (version (string-append "8-" revision "."
-                              (string-take commit 7)))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "https://github.com/aperezdc/notmuch-addrlookup-c.git")
-                      (commit commit)))
-                (file-name (string-append name "-" version "-checkout"))
-                (sha256
-                 (base32
-                  "0v0wzs7qzy4n1hbql8s10qrwgalcxdzbxf8pj6cii1pv2jwmkxbm"))))
-      (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)
-                    ;; Remove vim code completion config, it's not needed to
-                    ;; build (or be patched).
-                    (add-before 'patch-source-shebangs 'delete-ycm-file
-                                (lambda _ (delete-file ".ycm_extra_conf.py")))
-                    (replace 'install
-                             (lambda* (#:key outputs #:allow-other-keys)
-                               (let ((bin (string-append
-                                           (assoc-ref outputs "out") "/bin")))
-                                 (install-file "notmuch-addrlookup" bin)))))))
-      (native-inputs
-       `(("pkg-config" ,pkg-config)))
-      (inputs
-       `(("glib" ,glib)
-         ("notmuch" ,notmuch)))
-      (home-page "https://github.com/aperezdc/notmuch-addrlookup-c")
-      (synopsis "Address lookup tool for Notmuch")
-      (description "This is an address lookup tool using a Notmuch database,
+  (package
+    (name "notmuch-addrlookup-c")
+    (version (string-append "9"))
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/aperezdc/notmuch-addrlookup-c.git")
+                    (commit (string-append "v" version))))
+              (file-name (string-append name "-" version "-checkout"))
+              (sha256
+               (base32
+                "1j3zdx161i1x4w0nic14ix5i8hd501rb31daf8api0k8855sx4rc"))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:tests? #f ; no tests
+       #:make-flags (list "CC=gcc")
+       #:phases (modify-phases %standard-phases
+                  (delete 'configure)
+                  ;; Remove vim code completion config, it's not needed to
+                  ;; build (or be patched).
+                  (add-before 'patch-source-shebangs 'delete-ycm-file
+                    (lambda _ (delete-file ".ycm_extra_conf.py")))
+                  (replace 'install
+                    (lambda* (#:key outputs #:allow-other-keys)
+                      (let ((bin (string-append
+                                  (assoc-ref outputs "out") "/bin")))
+                        (install-file "notmuch-addrlookup" bin)))))))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("glib" ,glib)
+       ("notmuch" ,notmuch)))
+    (home-page "https://github.com/aperezdc/notmuch-addrlookup-c")
+    (synopsis "Address lookup tool for Notmuch")
+    (description "This is an address lookup tool using a Notmuch database,
 useful for email address completion.")
-      (license license:expat))))
+    (license license:expat)))
 
 (define-public python-notmuch
   (package
@@ -1154,7 +1148,7 @@ which can add many functionalities to the base client.")
 (define-public msmtp
   (package
     (name "msmtp")
-    (version "1.8.3")
+    (version "1.8.4")
     (source
      (origin
        (method url-fetch)
@@ -1162,7 +1156,7 @@ which can add many functionalities to the base client.")
                            "/msmtp-" version ".tar.xz"))
        (sha256
         (base32
-         "1d4jdgrx4czp66nnwdsy938lzr4llhwyy0715pwg0j6h6gyyxciw"))))
+         "1xr926lyy44baqdgv9q0sw5z6ll2cb4lx2g4lgpgbqn8bglpzpg5"))))
     (build-system gnu-build-system)
     (inputs
      `(("libsecret" ,libsecret)
@@ -1287,7 +1281,7 @@ facilities for checking incoming mail.")
 (define-public dovecot
   (package
     (name "dovecot")
-    (version "2.3.5")
+    (version "2.3.5.1")
     (source
      (origin
        (method url-fetch)
@@ -1295,7 +1289,8 @@ facilities for checking incoming mail.")
                            (version-major+minor version) "/"
                            "dovecot-" version ".tar.gz"))
        (sha256
-        (base32 "1zxa9banams9nmk99sf1rqahr11cdqxhwi7hyz3ddxqidpn15qdz"))))
+        (base32
+         "0gy3qzwbp6zsyn44pcfq8iiv9iy9q7z6py30h60alb1vkr3rv3yp"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)))
@@ -1388,7 +1383,7 @@ How it works:
 @item This password digest is used as a symmetric secret to decrypt a libsodium secretbox.
 @item Inside the secretbox is stored a Curve25519 private key.
 @item The Curve25519 private key is used to decrypt each individual message,
-using lidsodium sealed boxes.
+using libsodium sealed boxes.
 @item New mail is encrypted as it arrives using the Curve25519 public key.
 @end enumerate\n")
     (license agpl3)))
@@ -1503,6 +1498,28 @@ locates email addresses in strings and returns a list of Email::Address
 objects found.  Alternatively you may construct objects manually.")
     (license perl-license)))
 
+(define-public perl-email-address-xs
+  (package
+    (name "perl-email-address-xs")
+    (version "1.04")
+    (source
+    (origin
+      (method url-fetch)
+      (uri (string-append "mirror://cpan/authors/id/P/PA/PALI/"
+                          "Email-Address-XS-" version ".tar.gz"))
+      (sha256
+       (base32
+        "0gjrrl81z3sfwavgx5kwjd87gj44mlnbbqsm3dgdv1xllw26spwr"))))
+    (build-system perl-build-system)
+    (home-page "https://metacpan.org/release/Email-Address-XS")
+    (synopsis "Parse and format RFC 5322 email addresses and groups")
+    (description
+     "Email::Address::XS implements RFC 5322 parser and formatter of email
+addresses and groups.  Unlike Email::Address, this module does not use regular
+expressions for parsing but instead is implemented in XS and uses shared code
+from Dovecot IMAP server.")
+    (license perl-license)))
+
 (define-public perl-email-date-format
   (package
     (name "perl-email-date-format")
@@ -2865,3 +2882,79 @@ replacement for the @code{urlview} program.")
     (description "This package provides a TNEF stream reader library and
 related tools to process winmail.dat files.")
     (license gpl2+)))
+
+(define-public public-inbox
+  (let ((commit "3cf66514aea9e958999973b9f104473b6d800fbe")
+        (revision "0"))
+    (package
+     (name "public-inbox")
+     (version (git-version "1.0.0" revision commit))
+     (source
+      (origin (method git-fetch)
+              (uri (git-reference
+                    (url "https://public-inbox.org")
+                    (commit commit)))
+              (sha256
+               (base32
+                "1sxycwlm2n6p544gn9f0vf3xs6gz8vdswdhs2ha6fka8mgabvmdh"))
+              (file-name (git-file-name name version))))
+     (build-system perl-build-system)
+     (arguments
+      '(#:phases
+        (modify-phases %standard-phases
+          (add-before 'configure 'qualify-paths
+            (lambda _
+              ;; Use absolute paths for 'xapian-compact'.
+              (let ((xapian-compact (which "xapian-compact")))
+                (substitute* "script/public-inbox-compact"
+                  (("xapian-compact") xapian-compact)))
+              #t))
+          (add-before 'check 'pre-check
+            (lambda _
+              (substitute* "t/spawn.t"
+                (("\\['env'\\]") (string-append "['" (which "env") "']")))
+              #t))
+          (add-after 'install 'wrap-programs
+            (lambda* (#:key inputs outputs #:allow-other-keys)
+              (let ((out (assoc-ref outputs "out")))
+                (for-each
+                 (lambda (prog)
+                   (wrap-program prog
+                     ;; Let those scripts find their perl modules.
+                     `("PERL5LIB" ":" prefix
+                       (,(string-append out "/lib/perl5/site_perl")
+                        ,(getenv "PERL5LIB")))
+                     ;; 'git' is invoked in various files of the PublicInbox
+                     ;; perl module.
+                     `("PATH" ":" prefix
+                       (,(string-append (assoc-ref inputs "git") "/bin")))))
+                 (find-files (string-append out "/bin"))))
+              #t)))))
+     (native-inputs
+      `(("git" ,git)
+        ("xapian" ,xapian)))
+     (inputs
+      `(("perl-danga-socket" ,perl-danga-socket)
+        ("perl-dbd-sqlite" ,perl-dbd-sqlite)
+        ("perl-dbi" ,perl-dbi)
+        ("perl-email-address-xs" ,perl-email-address-xs)
+        ("perl-email-mime-contenttype" ,perl-email-mime-contenttype)
+        ("perl-email-mime" ,perl-email-mime)
+        ("perl-email-simple" ,perl-email-simple)
+        ("perl-filesys-notify-simple" ,perl-filesys-notify-simple)
+        ("perl-plack-middleware-deflater" ,perl-plack-middleware-deflater)
+        ("perl-plack-middleware-reverseproxy" ,perl-plack-middleware-reverseproxy)
+        ("perl-plack" ,perl-plack)
+        ("perl-search-xapian" ,perl-search-xapian)
+        ("perl-timedate" ,perl-timedate)
+        ("perl-uri-escape" ,perl-uri-escape)
+        ;; For testing.
+        ("perl-ipc-run" ,perl-ipc-run)
+        ("perl-xml-feed" ,perl-xml-feed)))
+     (home-page "https://public-inbox.org/README.html")
+     (synopsis "Archive mailing lists in git repositories")
+     (description
+      "public-inbox implements the sharing of an email inbox via git to
+complement or replace traditional mailing lists.  Readers may read via NNTP,
+Atom feeds or HTML archives.")
+     (license agpl3+))))
diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm
index 16e9148506..0b668b4224 100644
--- a/gnu/packages/mate.scm
+++ b/gnu/packages/mate.scm
@@ -3,6 +3,8 @@
 ;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2017 ng0 <ng0@n0.is>
 ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2019 Guy Fleury Iteriteka <hoonandon@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -46,7 +48,6 @@
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages gnupg)
-  #:use-module (gnu packages gnuzilla)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages image)
   #:use-module (gnu packages imagemagick)
@@ -56,6 +57,7 @@
   #:use-module (gnu packages linux)
   #:use-module (gnu packages messaging)
   #:use-module (gnu packages nettle)
+  #:use-module (gnu packages nss)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages pdf)
   #:use-module (gnu packages photo)
@@ -73,7 +75,7 @@
 (define-public mate-common
   (package
     (name "mate-common")
-    (version "1.18.0")
+    (version "1.22.0")
     (source
      (origin
        (method url-fetch)
@@ -82,7 +84,7 @@
                            name "-" version ".tar.xz"))
        (sha256
         (base32
-         "1005laf3z1h8qczm7pmwr40r842665cv6ykhjg7r93vldra48z6p"))))
+         "11lwckndizawbq993ws8lqp59vsc873zri0m8s1i5zyc4qx9f69z"))))
     (build-system gnu-build-system)
     (home-page "https://mate-desktop.org/")
     (synopsis "Common files for development of MATE packages")
@@ -91,10 +93,50 @@
 MATE applications.")
     (license license:gpl3+)))
 
+(define-public mate-power-manager
+  (package
+    (name "mate-power-manager")
+    (version "1.22.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://pub.mate-desktop.org/releases/"
+                           (version-major+minor version) "/"
+                           name "-" version ".tar.xz"))
+       (sha256
+        (base32
+         "03c09h41qfz83wmjfvwzkq4xqc54aswmki4h034qcxbgfnyfmk1i"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("intltool" ,intltool)
+       ("yelp-tools" ,yelp-tools)
+       ("glib" ,glib "bin") ; glib-gettextize
+       ("libtool" ,libtool)))
+    (inputs
+     `(("gtk+" ,gtk+)
+       ("glib" ,glib)
+       ("dbus-glib" ,dbus-glib)
+       ("libgnome-keyring" ,libgnome-keyring)
+       ("cairo" ,cairo)
+       ("dbus" ,dbus)
+       ("libnotify" ,libnotify)
+       ("mate-panel" ,mate-panel)
+       ("libxrandr" ,libxrandr)
+       ("libcanberra" ,libcanberra)
+       ("upower" ,upower)))
+    (home-page "https://mate-desktop.org/")
+    (synopsis "A Power Manager for MATE")
+    (description
+     "MATE Power Manager is a MATE session daemon that acts as a policy agent on
+top of UPower. It listens to system events and responds with user-configurable
+actions.")
+    (license license:gpl3+)))
+
 (define-public mate-icon-theme
   (package
     (name "mate-icon-theme")
-    (version "1.18.2")
+    (version "1.22.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://pub.mate-desktop.org/releases/"
@@ -102,7 +144,7 @@ MATE applications.")
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0si3li3kza7s45zhasjvqn5f85zpkn0x8i4kq1dlnqvjjqzkg4ch"))))
+                "090vfxpn1b1wwvkilv1j3cx4swdm4z0s7xyvhvqhdzj58zsf2000"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)
@@ -117,7 +159,7 @@ MATE applications.")
 (define-public mate-icon-theme-faenza
   (package
     (name "mate-icon-theme-faenza")
-    (version "1.18.1")
+    (version "1.20.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://pub.mate-desktop.org/releases/"
@@ -125,7 +167,7 @@ MATE applications.")
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0vc3wg9l5yrxm0xmligz4lw2g3nqj1dz8fwv90xvym8pbjds2849"))))
+                "000vr9cnbl2qlysf2gyg1lsjirqdzmwrnh6d3hyrsfc0r2vh4wna"))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases
@@ -155,7 +197,7 @@ from Mint-X-F and Faenza-Fresh icon packs.")
 (define-public mate-themes
   (package
     (name "mate-themes")
-    (version "3.22.16")
+    (version "3.22.19")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://pub.mate-desktop.org/releases/themes/"
@@ -163,7 +205,7 @@ from Mint-X-F and Faenza-Fresh icon packs.")
                                   version ".tar.xz"))
               (sha256
                (base32
-                "1k8qp2arjv4vj8kyjhjgyj5h46jy0darlfh48l5h25623z1firdj"))))
+                "1ycb8b8r0s8d1h1477135mynr53s5781gdb2ap8xlvj2g58492wq"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)
@@ -183,7 +225,7 @@ themes for both gtk+-2 and gtk+-3.")
 (define-public mate-desktop
   (package
     (name "mate-desktop")
-    (version "1.18.0")
+    (version "1.22.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://pub.mate-desktop.org/releases/"
@@ -191,7 +233,7 @@ themes for both gtk+-2 and gtk+-3.")
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "12iv2y4dan962fs7vkkxbjkp77pbvjnwfa43ggr0zkdsc3ydjbbg"))))
+                "09gn840p6qds21kxab4pidjd53g76s76i7178fdibrz462mda217"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)
@@ -203,6 +245,7 @@ themes for both gtk+-2 and gtk+-3.")
     (inputs
      `(("gtk+" ,gtk+)
        ("libxrandr" ,libxrandr)
+       ("iso-codes" ,iso-codes)
        ("startup-notification" ,startup-notification)))
     (propagated-inputs
      `(("dconf" ,dconf))) ; mate-desktop-2.0.pc
@@ -216,7 +259,7 @@ desktop and the mate-about program.")
 (define-public libmateweather
   (package
     (name "libmateweather")
-    (version "1.18.1")
+    (version "1.22.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://pub.mate-desktop.org/releases/"
@@ -224,7 +267,7 @@ desktop and the mate-about program.")
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0z6vfh42fv9rqjrraqfpf6h9nd9h662bxy3l3r48j19xvxrwmx3a"))))
+                "1ribgcwl4ncfbcf9bkcbxrgc7yzajdnxg12837psngymkqswlp6a"))))
     (build-system gnu-build-system)
     (arguments
      '(#:configure-flags
@@ -262,7 +305,7 @@ the MATE desktop environment.")
 (define-public mate-terminal
   (package
     (name "mate-terminal")
-    (version "1.18.1")
+    (version "1.22.0")
     (source
      (origin
        (method url-fetch)
@@ -271,7 +314,7 @@ the MATE desktop environment.")
                            name "-" version ".tar.xz"))
        (sha256
         (base32
-         "1zihm609d2d9cw53ry385whshjl1dnkifpk41g1ddm9f58hv4da1"))))
+         "16r492s34la2fs2cj1xr0r93wkjglwy77jyrc66i2ahs9gnivj4g"))))
     (build-system glib-or-gtk-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)
@@ -303,7 +346,7 @@ configurations (profiles).")
 (define-public mate-session-manager
   (package
     (name "mate-session-manager")
-    (version "1.18.1")
+    (version "1.22.0")
     (source
      (origin
        (method url-fetch)
@@ -312,7 +355,7 @@ configurations (profiles).")
                            name "-" version ".tar.xz"))
        (sha256
         (base32
-         "0i0xq6041x2qmb26x9bawx0qpfkgjn6x9w3phnm9s7rc4s0z20ll"))))
+         "1kpfmgay01gm74paaxccs3lim4jfb4hsm7i85jfdypr51985pwyj"))))
     (build-system glib-or-gtk-build-system)
     (arguments
      `(#:configure-flags (list "--enable-elogind"
@@ -336,7 +379,20 @@ configurations (profiles).")
                (("#ifdef HAVE_SYSTEMD") "#if 0"))
              (substitute* "mate-session/gsm-autostart-app.c"
                (("#ifdef HAVE_SYSTEMD") "#if 0"))
-             #t)))))
+             #t))
+         (add-after 'install 'update-xsession-dot-desktop
+           (lambda* (#:key outputs #:allow-other-keys)
+             ;; Record the absolute file name of 'mate-session' in the
+             ;; '.desktop' file.
+             (let* ((out (assoc-ref outputs "out"))
+                    (xsession (string-append
+                               out "/share/xsessions/mate.desktop")))
+               (substitute* xsession
+                 (("^Exec=.*$")
+                  (string-append "Exec=" out "/bin/mate-session\n"))
+                 (("^TryExec=.*$")
+                  (string-append "Exec=" out "/bin/mate-session\n")))
+               #t))))))
     (native-inputs
      `(("pkg-config" ,pkg-config)
        ("intltool" ,intltool)
@@ -358,7 +414,7 @@ configuration program to choose applications starting on login.")
 (define-public mate-settings-daemon
   (package
     (name "mate-settings-daemon")
-    (version "1.18.1")
+    (version "1.22.0")
     (source
      (origin
        (method url-fetch)
@@ -367,7 +423,7 @@ configuration program to choose applications starting on login.")
                            name "-" version ".tar.xz"))
        (sha256
         (base32
-         "07b2jkxqv07njdrgkdck93d872p6lch1lrvi7ydnpicspg3rfid6"))))
+         "0yr5v6b9hdk20j29smbw1k4fkyg82i5vlflmgly0vi5whgc74gym"))))
     (build-system glib-or-gtk-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)
@@ -401,7 +457,7 @@ configuration program to choose applications starting on login.")
 (define-public libmatemixer
   (package
     (name "libmatemixer")
-    (version "1.18.0")
+    (version "1.22.0")
     (source
      (origin
        (method url-fetch)
@@ -410,7 +466,7 @@ configuration program to choose applications starting on login.")
                            name "-" version ".tar.xz"))
        (sha256
         (base32
-         "09vyxnlnalws318gsafdfi5c6jwpp92pbafn1ddlqqds23ihk4mr"))))
+         "1v0gpr55gj4mj8hzxbhgzrmhaxvs2inxhsmirvjw39sc7iplvrh9"))))
     (build-system glib-or-gtk-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)
@@ -431,7 +487,7 @@ sound systems.")
 (define-public libmatekbd
   (package
     (name "libmatekbd")
-    (version "1.18.2")
+    (version "1.22.0")
     (source
      (origin
        (method url-fetch)
@@ -440,7 +496,7 @@ sound systems.")
                            name "-" version ".tar.xz"))
        (sha256
         (base32
-         "030bl18qbjm7l92bp1bhs7v82bp8j3mv7c1j1a4gd89iz4611pq3"))))
+         "1dsr7618c92mhwabwhgxqsfp7gnf9zrz2z790jc5g085dxhg13y8"))))
     (build-system glib-or-gtk-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)
@@ -463,7 +519,7 @@ MATE desktop environment.")
 (define-public mate-menus
   (package
     (name "mate-menus")
-    (version "1.18.0")
+    (version "1.22.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://pub.mate-desktop.org/releases/"
@@ -471,7 +527,7 @@ MATE desktop environment.")
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "05kyr37xqv6hm1rlvnqd5ng0x1n883brqynkirkk5drl56axnz7h"))))
+                "1lkakbf2f1815c146z4xp5f0h4lim6jzr02681wbvzalc6k97v5c"))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases
@@ -504,7 +560,7 @@ assorted menu related utility programs.")
 (define-public mate-applets
   (package
     (name "mate-applets")
-    (version "1.18.1")
+    (version "1.22.0")
     (source
      (origin
        (method url-fetch)
@@ -513,7 +569,7 @@ assorted menu related utility programs.")
                            name "-" version ".tar.xz"))
        (sha256
         (base32
-         "1nplr8i1mxbxd7pqhcy8j69v25nsp5dk9fq7ffrmjmp39lrf3fh5"))))
+         "0f5ym6z7awi0kw6i1sdkj2qly88sl692j5r1zhklihyz1z9a6j0h"))))
     (build-system glib-or-gtk-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)
@@ -578,7 +634,7 @@ Interactive Weather Information Network (IWIN).
 (define-public mate-media
   (package
     (name "mate-media")
-    (version "1.18.1")
+    (version "1.22.0")
     (source
      (origin
        (method url-fetch)
@@ -587,7 +643,7 @@ Interactive Weather Information Network (IWIN).
                            name "-" version ".tar.xz"))
        (sha256
         (base32
-         "1l0j71d07898wb6ily09sj1xczwrmcw13wyhxwns7sxw592nwi04"))))
+         "0jrxbz00vjas0yp3ixvyzfsdby2ac3p3bds9yd7q1437mmhf71mj"))))
     (build-system glib-or-gtk-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)
@@ -615,7 +671,7 @@ mate-volume-control, a MATE volume control application and applet.")
 (define-public mate-panel
   (package
     (name "mate-panel")
-    (version "1.18.4")
+    (version "1.22.0")
     (source
      (origin
        (method url-fetch)
@@ -624,7 +680,7 @@ mate-volume-control, a MATE volume control application and applet.")
                            name "-" version ".tar.xz"))
        (sha256
         (base32
-         "1n565ff1n7jrfx223i3cl3m69wjda506nvbn8gra7m1jwdfzpbw1"))))
+         "17l4ryy71bkszr6shm9dm31zcsd7m0digi1mmvdlib5hqzvc7li7"))))
     (build-system glib-or-gtk-build-system)
     (arguments
      `(#:configure-flags
@@ -689,7 +745,7 @@ infamous 'Wanda the Fish'.")
 (define-public atril
   (package
     (name "atril")
-    (version "1.18.1")
+    (version "1.22.0")
     (source
      (origin
        (method url-fetch)
@@ -698,13 +754,12 @@ infamous 'Wanda the Fish'.")
                            name "-" version ".tar.xz"))
        (sha256
         (base32
-         "1wl332v80c0nzz7nw36d1pfmbiibvl3l0i4d25ihg6mg9wbc0145"))))
+         "1xd49j4qwrlg2nh2zvspf91yk033dp8a58dy9azqg2yz4bcvywxb"))))
     (build-system glib-or-gtk-build-system)
     (arguments
      `(#:configure-flags (list (string-append "--with-openjpeg="
                                               (assoc-ref %build-inputs "openjpeg"))
                                "--enable-introspection"
-                               "--with-gtk=3.0"
                                "--disable-schemas-compile"
                                ;; FIXME: Enable build of Caja extensions.
                                "--disable-caja")
@@ -794,7 +849,7 @@ infamous 'Wanda the Fish'.")
 (define-public caja
   (package
     (name "caja")
-    (version "1.18.3")
+    (version "1.22.0")
     (source
      (origin
        (method url-fetch)
@@ -803,7 +858,7 @@ infamous 'Wanda the Fish'.")
                            name "-" version ".tar.xz"))
        (sha256
         (base32
-         "0mljqcx7k8p27854zm7qzzn8ca6hs7hva9p43hp4p507z52caqmm"))))
+         "14x9n9q7vip5zp4mdgccj1p1dm4xn429g0bjw2v8iz7zmjb7vcgl"))))
     (build-system glib-or-gtk-build-system)
     (arguments
      `(#:configure-flags '("--disable-update-mimedb")
@@ -853,7 +908,7 @@ icons on the MATE desktop.  It works on local and remote file systems.")
 (define-public caja-extensions
   (package
     (name "caja-extensions")
-    (version "1.18.1")
+    (version "1.22.0")
     (source
      (origin
        (method url-fetch)
@@ -862,7 +917,7 @@ icons on the MATE desktop.  It works on local and remote file systems.")
                            name "-" version ".tar.xz"))
        (sha256
         (base32
-         "0hgala7zkfsa60jflq3s4n9yd11dhfdcla40l83cmgc3r1az7cmw"))))
+         "1h866jmdd3qpjzi7wjj11krwiaadnlf21844g1zqfb4jgrzj773p"))))
     (build-system glib-or-gtk-build-system)
     (arguments
      `(#:configure-flags (list "--enable-sendto"
@@ -908,7 +963,7 @@ 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.18.2")
+    (version "1.22.0")
     (source
      (origin
        (method url-fetch)
@@ -917,7 +972,7 @@ icons on the MATE desktop.  It works on local and remote file systems.")
                            name "-" version ".tar.xz"))
        (sha256
         (base32
-         "0flnn0h8f5aqyccwrlv7qxchvr3kqmlfdga6wq28d55zkpv5m7dl"))))
+         "06wpfsxsiv7w3dl7p395r5vcxqbjlllydqbnvbr6yn0lrac15i71"))))
     (build-system glib-or-gtk-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)
@@ -968,7 +1023,7 @@ of various aspects of your desktop.")
 (define-public marco
   (package
     (name "marco")
-    (version "1.18.1")
+    (version "1.22.0")
     (source
      (origin
        (method url-fetch)
@@ -977,7 +1032,7 @@ of various aspects of your desktop.")
                            name "-" version ".tar.xz"))
        (sha256
         (base32
-         "0lwbp9wyd66hl5d7g272l8g3k1pb9s4s2p9fb04750a58w87d8k5"))))
+         "1i1pi1z9mrb6564mxcwb93jqpdppfv58c2viwmicsixis62hv5wx"))))
     (build-system glib-or-gtk-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)
@@ -1019,7 +1074,7 @@ for use with MATE or as a standalone window manager.")
 (define-public mate-user-guide
   (package
     (name "mate-user-guide")
-    (version "1.18.0")
+    (version "1.22.0")
     (source
      (origin
        (method url-fetch)
@@ -1028,7 +1083,7 @@ for use with MATE or as a standalone window manager.")
                            name "-" version ".tar.xz"))
        (sha256
         (base32
-         "0f3b46r9a3cywm7rpj08xlkfnlfr9db58xfcpix8i33qp50fxqmb"))))
+         "0ckn7h7l0qdgdx440dwx1h8i601s22sxlf5a7179hfirk9016j0z"))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases
@@ -1059,7 +1114,7 @@ sessions, panels, menus, file management, and preferences.")
 (define-public mate-calc
   (package
     (name "mate-calc")
-    (version "1.18.0")
+    (version "1.22.0")
     (source
      (origin
        (method url-fetch)
@@ -1068,7 +1123,7 @@ sessions, panels, menus, file management, and preferences.")
                            name "-" version ".tar.xz"))
        (sha256
         (base32
-         "0qfs6kx2nymbn6j3mnzgvk8p54ghc78jslsf4wjqsdq021qyl0ly"))))
+         "1njk6v7z3969ikvcrabr1lw5f5572vb14w064zm3mydj8cc5inlr"))))
     (build-system glib-or-gtk-build-system)
     (native-inputs
      `(("gettext" ,gettext-minimal)
@@ -1091,7 +1146,7 @@ sessions, panels, menus, file management, and preferences.")
 (define-public mate-backgrounds
   (package
     (name "mate-backgrounds")
-    (version "1.18.0")
+    (version "1.22.0")
     (source
      (origin
        (method url-fetch)
@@ -1100,7 +1155,7 @@ sessions, panels, menus, file management, and preferences.")
                            name "-" version ".tar.xz"))
        (sha256
         (base32
-         "06q8ksjisijps2wn959arywsimhzd3j35mqkr048c26ck24d60zi"))))
+         "1j9ch04qi2q4mdcvb92w667ra9hpfdf2bfpi1dpw0nbph7r6qvj9"))))
     (build-system glib-or-gtk-build-system)
     (native-inputs
      `(("intltool" ,intltool)))
@@ -1114,7 +1169,7 @@ can be used as backgrounds in the MATE Desktop environment.")
 (define-public mate-netbook
   (package
     (name "mate-netbook")
-    (version "1.18.1")
+    (version "1.22.0")
     (source
      (origin
        (method url-fetch)
@@ -1123,7 +1178,7 @@ can be used as backgrounds in the MATE Desktop environment.")
                            name "-" version ".tar.xz"))
        (sha256
         (base32
-         "0zj4x9qis8dw0irxzb4va1189k8bqbvymxq3h7phnjwvr1m983gf"))))
+         "17p1wv9bcr3kvlahnxmxj786vka86nysi90x5xci6ilwyjlaxh0l"))))
     (build-system glib-or-gtk-build-system)
     (native-inputs
      `(("gettext" ,gettext-minimal)
@@ -1148,7 +1203,7 @@ can be used as backgrounds in the MATE Desktop environment.")
 @item Allows you to set basic rules for a window type, such as maximise|undecorate
 @item Allows exceptions to the rules, based on string matching for window name
 and window class.
-@item Allows 'reversing' of rules when the user manually changes something:
+@item Allows @code{reversing} of rules when the user manually changes something:
 Re-decorates windows on un-maximise.
 @end enumerate\n")
     (license license:gpl3+)))
@@ -1156,7 +1211,7 @@ Re-decorates windows on un-maximise.
 (define-public mate-screensaver
   (package
     (name "mate-screensaver")
-    (version "1.18.1")
+    (version "1.22.0")
     (source
      (origin
        (method url-fetch)
@@ -1165,7 +1220,7 @@ Re-decorates windows on un-maximise.
                            name "-" version ".tar.xz"))
        (sha256
         (base32
-         "0dfi10faf1fnvrm7c7wnfqg35ygq09ws1vjyv8394jlf0nn39g9j"))))
+         "17fxyccsc410wbyxmds1sm7gjqbj6z46x5cjk1791hfzf0sh82sy"))))
     (build-system glib-or-gtk-build-system)
     (arguments
      `(#:configure-flags
@@ -1228,7 +1283,7 @@ can be used as backgrounds in the MATE Desktop environment.")
 (define-public mate-utils
   (package
     (name "mate-utils")
-    (version "1.18.2")
+    (version "1.22.0")
     (source
      (origin
        (method url-fetch)
@@ -1237,7 +1292,7 @@ can be used as backgrounds in the MATE Desktop environment.")
                            name "-" version ".tar.xz"))
        (sha256
         (base32
-         "0wr395dqfigj19ps0d76ycgwfljl9xxgs1a1g5wx6kcz5mvhzn5v"))))
+         "0kz95hicjksgkwaj83fdp2rnaygfgjbj0jsnwy4n0lj5q90j7r28"))))
     (build-system glib-or-gtk-build-system)
     (native-inputs
      `(("gettext" ,gettext-minimal)
@@ -1281,7 +1336,7 @@ can be used as backgrounds in the MATE Desktop environment.")
 (define-public eom
   (package
     (name "eom")
-    (version "1.18.2")
+    (version "1.22.0")
     (source
      (origin
        (method url-fetch)
@@ -1290,7 +1345,7 @@ can be used as backgrounds in the MATE Desktop environment.")
                            name "-" version ".tar.xz"))
        (sha256
         (base32
-         "00ns7g7qykakc89lijrw2vwy9x9ijqiyvmnd4sw0j6py90zs8m87"))))
+         "093vbip848bp9y603yasbrg1bcp68m64hma7zhi5m37x2r103r6l"))))
     (build-system glib-or-gtk-build-system)
     (native-inputs
      `(("gettext" ,gettext-minimal)
@@ -1332,7 +1387,7 @@ can be used as backgrounds in the MATE Desktop environment.")
 (define-public engrampa
   (package
     (name "engrampa")
-    (version "1.18.2")
+    (version "1.22.0")
     (source
      (origin
        (method url-fetch)
@@ -1341,7 +1396,7 @@ can be used as backgrounds in the MATE Desktop environment.")
                            name "-" version ".tar.xz"))
        (sha256
         (base32
-         "0d98zhqqc7qdnxcf0195kd04xmhijc0w2qrn6q61zd0daiswnv98"))))
+         "16yjplfl2sqa7n6404hjn0vwkh0xkdch73q7n5czynihmh3azc7p"))))
     (build-system glib-or-gtk-build-system)
     (arguments
      `(#:configure-flags (list "--disable-schemas-compile"
@@ -1386,7 +1441,7 @@ can be used as backgrounds in the MATE Desktop environment.")
 (define-public pluma
   (package
     (name "pluma")
-    (version "1.18.2")
+    (version "1.22.0")
     (source
      (origin
        (method url-fetch)
@@ -1395,7 +1450,7 @@ can be used as backgrounds in the MATE Desktop environment.")
                            name "-" version ".tar.xz"))
        (sha256
         (base32
-         "1z0938yiygxipj2a77n9dv8v4253snrc5gbbnarcnim9xba2j3zz"))))
+         "07rr5asdjr9slmaijp4m8v9vxscihvm36mfrwlp3lv12kry42a05"))))
     (build-system glib-or-gtk-build-system)
     (arguments
      `(; Tests can not succeed.
@@ -1437,7 +1492,7 @@ can be used as backgrounds in the MATE Desktop environment.")
 (define-public mate-system-monitor
   (package
     (name "mate-system-monitor")
-    (version "1.18.0")
+    (version "1.22.0")
     (source
      (origin
        (method url-fetch)
@@ -1446,7 +1501,7 @@ can be used as backgrounds in the MATE Desktop environment.")
                            name "-" version ".tar.xz"))
        (sha256
         (base32
-         "1wcvrl4lfnjkhywb311p29prf1qiab6iynb6q1fgfsl6za8hsz48"))))
+         "0rs0n5ivmvi355fp3ymcp1jj2sz9viw31475aw7zh7s1l7dn969x"))))
     (build-system glib-or-gtk-build-system)
     (native-inputs
      `(("autoconf" ,autoconf)
@@ -1478,7 +1533,7 @@ MATE Desktop to monitor your system resources and usage.")
 (define-public mate-polkit
   (package
     (name "mate-polkit")
-    (version "1.18.1")
+    (version "1.22.0")
     (source
      (origin
        (method url-fetch)
@@ -1487,7 +1542,7 @@ MATE Desktop to monitor your system resources and usage.")
                            name "-" version ".tar.xz"))
        (sha256
         (base32
-         "15vf2hnyjg8zsw3iiwjwi497yygkmvpnn6w1hik7dfw4a621w0gc"))))
+         "02r8n71xflhvw2hsf6g4svdahzyg3r4n6xamasyzqfhyn0mqmjy0"))))
     (build-system glib-or-gtk-build-system)
     (native-inputs
      `(("gettext" ,gettext-minimal)
@@ -1551,6 +1606,7 @@ used to bring up authentication dialogs.")
        ("mate-terminal"             ,mate-terminal)
        ("mate-themes"               ,mate-themes)
        ("mate-icon-theme"           ,mate-icon-theme)
+       ("mate-power-manager"        ,mate-power-manager)
        ("mate-menu"                 ,mate-menus)
        ("mate-panel"                ,mate-panel)
        ("mate-control-center"       ,mate-control-center)
diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index 5671b83c00..d59028599f 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -7,7 +7,7 @@
 ;;; Copyright © 2014 Mathieu Lirzin <mathieu.lirzin@openmailbox.org>
 ;;; Copyright © 2015, 2016, 2017, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com>
-;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
+;;; Copyright © 2015, 2018 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2015, 2016, 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2015 Fabian Harfert <fhmgufs@web.de>
 ;;; Copyright © 2016 Roel Janssen <roel@gnu.org>
@@ -606,8 +606,8 @@ problems in numerical linear algebra.")
 routines on parallel distributed memory machines.  ScaLAPACK solves dense and
 banded linear systems, least squares problems, eigenvalue problems, and
 singular value problems.")
-    (license (license:bsd-style "file://LICENSE"
-                                "See LICENSE in the distribution."))))
+    (license (license:non-copyleft "file://LICENSE"
+                                   "See LICENSE in the distribution."))))
 
 (define-public gnuplot
   (package
@@ -650,13 +650,13 @@ plotting engine by third-party applications like Octave.")
     (version "2.0.0")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/OkoSanto/GCTP/archive/v"
-                           version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/OkoSanto/GCTP.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "0l9aqnqynh9laicn5dxf3rsb1n14xiks79wbyqccirzmjqd1c1x4"))))
+        (base32 "11wqmd443b4nksdbzp1msdws3av948nmwq1xz80w6hka3ss2aigd"))))
     (native-inputs
      `(("fortran" ,gfortran)))
     (build-system gnu-build-system)
@@ -887,121 +887,130 @@ extremely large and complex data collections.")
 
 (define-public hdf-java
   (package
-   (name "hdf-java")
-   (version "3.3.2")
-   (source
-    (origin
-      (method url-fetch)
-      (uri (string-append
-            "http://www.hdfgroup.org/ftp/HDF5/releases/HDF-JAVA/hdfjni-"
-            version "/src/CMake-hdfjava-" version ".tar.gz"))
-      (sha256
-       (base32 "0m1gp2aspcblqzmpqbdpfp6giskws85ds6p5gz8sx7asyp7wznpr"))
-      (modules '((guix build utils)))
-      (snippet ; Make sure we don't use the bundled sources and binaries.
-       `(begin
-          (for-each delete-file
-                    (list "SZip.tar.gz" "ZLib.tar.gz" "JPEG8d.tar.gz"
-                          "HDF4.tar.gz" "HDF5.tar.gz"))
-          (delete-file-recursively ,(string-append "hdfjava-" version "/lib"))
-          #t))))
-   (build-system gnu-build-system)
-   (native-inputs
-    `(("jdk" ,icedtea "jdk")
-      ("automake" ,automake) ; For up to date 'config.guess' and 'config.sub'.
-      ;; For tests:
-      ("hamcrest-core" ,java-hamcrest-core)
-      ("junit" ,java-junit)
-      ("slf4j-simple" ,java-slf4j-simple)))
-   (inputs
-    `(("hdf4" ,hdf4)
-      ("hdf5" ,hdf5)
-      ("zlib" ,zlib)
-      ("libjpeg" ,libjpeg)
-      ("slf4j-api" ,java-slf4j-api)))
-   (arguments
-    `(#:configure-flags
-      (list (string-append "--target=" ,(or (%current-target-system) (%current-system)))
-            (string-append "--with-jdk=" (assoc-ref %build-inputs "jdk") "/include,"
-                           (assoc-ref %build-inputs "jdk") "/lib" )
-            (string-append "--with-hdf4=" (assoc-ref %build-inputs "hdf4") "/lib")
-            (string-append "--with-hdf5=" (assoc-ref %build-inputs "hdf5") "/lib"))
-
-      #:make-flags
-      (list (string-append "HDFLIB=" (assoc-ref %build-inputs "hdf4") "/lib")
-            (string-append "HDF5LIB=" (assoc-ref %build-inputs "hdf5") "/lib")
-            (string-append "ZLIB=" (assoc-ref %build-inputs "zlib") "/lib/libz.so")
-            (string-append "JPEGLIB="
-                           (assoc-ref %build-inputs "libjpeg") "/lib/libjpeg.so")
-            "LLEXT=so")
-
-      #:phases
-      (modify-phases %standard-phases
-        (add-before 'configure 'chdir-to-source
-          (lambda _ (chdir ,(string-append "hdfjava-" version))))
-        (add-before 'configure 'patch-build
-          (lambda* (#:key inputs outputs #:allow-other-keys)
-            (substitute* "configure"
-              (("COPT=\"") "COPT=\"-O2 ") ; CFLAGS is ignored in Makefiles
-              (("/bin/cat") (which "cat")))
-            ;; Set classpath for compilation
-            (substitute* '("hdf/hdf5lib/Makefile.in"
-                           "hdf/hdf5lib/exceptions/Makefile.in"
-                           "hdf/hdflib/Makefile.in")
-              (("\\$\\(TOP\\)/lib/slf4j-api-1\\.7\\.5\\.jar")
-               (string-append (assoc-ref inputs "slf4j-api")
-                              "/share/java/slf4j-api.jar")))
-            ;; Replace outdated config.sub and config.guess:
-            (with-directory-excursion "config"
-              (for-each (lambda (file)
-                          (copy-file
-                           (string-append (assoc-ref inputs "automake")
-                                          "/share/automake-1.15/" file) file))
-                        '("config.sub" "config.guess")))
-            (mkdir-p (string-append (assoc-ref outputs "out")))
-            ;; Set classpath for tests
-            (let* ((build-dir (getcwd))
-                   (lib (string-append build-dir "/lib"))
-                   (jhdf (string-append lib "/jhdf.jar"))
-                   (jhdf5 (string-append lib "/jhdf5.jar"))
-                   (testjars
-                    (map (lambda (i)
-                           (string-append (assoc-ref inputs i)
-                                          "/share/java/" i ".jar"))
-                         '("junit" "hamcrest-core" "slf4j-api" "slf4j-simple")))
-                   (class-path
-                    (string-join `("." ,build-dir ,jhdf ,jhdf5 ,@testjars) ":")))
-
-              (substitute* '("test/hdf5lib/Makefile.in"
-                             "test/hdf5lib/junit.sh.in"
-                             "examples/runExample.sh.in")
-                (("/usr/bin/test")
-                 (string-append (assoc-ref inputs "coreutils")
-                                "/bin/test"))
-                (("/usr/bin/uname")
-                 (string-append (assoc-ref inputs "coreutils")
-                                "/bin/uname"))
-                (("CLASSPATH=[^\n]*")
-                 (string-append "CLASSPATH=" class-path)))
-              (setenv "CLASSPATH" class-path))
-            #t))
-        (add-before 'check 'build-examples
-          (lambda _
-            (zero? (apply system* `("javac"
-                                    ,@(find-files "examples" ".*\\.java")))))))
+    (name "hdf-java")
+    (version "3.3.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "http://www.hdfgroup.org/ftp/HDF5/releases/HDF-JAVA/hdfjni-"
+             version "/src/CMake-hdfjava-" version ".tar.gz"))
+       (sha256
+        (base32 "0m1gp2aspcblqzmpqbdpfp6giskws85ds6p5gz8sx7asyp7wznpr"))
+       (modules '((guix build utils)))
+       (snippet     ; Make sure we don't use the bundled sources and binaries.
+        `(begin
+           (for-each delete-file
+                     (list "SZip.tar.gz" "ZLib.tar.gz" "JPEG8d.tar.gz"
+                           "HDF4.tar.gz" "HDF5.tar.gz"))
+           (delete-file-recursively ,(string-append "hdfjava-" version "/lib"))
+           #t))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("jdk" ,icedtea "jdk")
+       ("automake" ,automake) ; For up to date 'config.guess' and 'config.sub'.
+       ;; For tests:
+       ("hamcrest-core" ,java-hamcrest-core)
+       ("junit" ,java-junit)
+       ("slf4j-simple" ,java-slf4j-simple)))
+    (inputs
+     `(("hdf4" ,hdf4)
+       ("hdf5" ,hdf5)
+       ("zlib" ,zlib)
+       ("libjpeg" ,libjpeg)
+       ("slf4j-api" ,java-slf4j-api)))
+    (arguments
+     `(#:configure-flags
+       (list (string-append "--target=" ,(or (%current-target-system) (%current-system)))
+             (string-append "--with-jdk=" (assoc-ref %build-inputs "jdk") "/include,"
+                            (assoc-ref %build-inputs "jdk") "/lib" )
+             (string-append "--with-hdf4=" (assoc-ref %build-inputs "hdf4") "/lib")
+             (string-append "--with-hdf5=" (assoc-ref %build-inputs "hdf5") "/lib"))
 
-      #:parallel-build? #f
+       #:make-flags
+       (list (string-append "HDFLIB=" (assoc-ref %build-inputs "hdf4") "/lib")
+             (string-append "HDF5LIB=" (assoc-ref %build-inputs "hdf5") "/lib")
+             (string-append "ZLIB=" (assoc-ref %build-inputs "zlib") "/lib/libz.so")
+             (string-append "JPEGLIB="
+                            (assoc-ref %build-inputs "libjpeg") "/lib/libjpeg.so")
+             "LLEXT=so")
 
-      #:parallel-tests? #f ))
-   (home-page "https://support.hdfgroup.org/products/java")
-   (synopsis "Java interface for the HDF4 and HDF5 libraries")
-   (description "Java HDF Interface (JHI) and Java HDF5 Interface (JHI5) use
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'configure 'chdir-to-source
+           (lambda _ (chdir ,(string-append "hdfjava-" version)) #t))
+         (add-before 'configure 'patch-build
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (substitute* "configure"
+               (("COPT=\"") "COPT=\"-O2 ") ; CFLAGS is ignored in Makefiles
+               (("/bin/cat") (which "cat")))
+             ;; Set classpath for compilation
+             (substitute* '("hdf/hdf5lib/Makefile.in"
+                            "hdf/hdf5lib/exceptions/Makefile.in"
+                            "hdf/hdflib/Makefile.in")
+               (("\\$\\(TOP\\)/lib/slf4j-api-1\\.7\\.5\\.jar")
+                (string-append (assoc-ref inputs "slf4j-api")
+                               "/share/java/slf4j-api.jar")))
+             ;; Replace outdated config.sub and config.guess:
+             (with-directory-excursion "config"
+               (for-each (lambda (file)
+                           (install-file
+                            (string-append (assoc-ref inputs "automake")
+                                           "/share/automake-"
+                                           ,(version-major+minor (package-version automake))
+                                           "/" file) "."))
+                         '("config.sub" "config.guess")))
+
+             ;; Fix embedded version number
+             (let ((hdf5version (list ,@(string-split (package-version hdf5) #\.))))
+               (substitute* "hdf/hdf5lib/H5.java"
+                 (("1, 8, 19")
+                  (string-join hdf5version ", "))))
+
+             (mkdir-p (string-append (assoc-ref outputs "out")))
+             ;; Set classpath for tests
+             (let* ((build-dir (getcwd))
+                    (lib (string-append build-dir "/lib"))
+                    (jhdf (string-append lib "/jhdf.jar"))
+                    (jhdf5 (string-append lib "/jhdf5.jar"))
+                    (testjars
+                     (map (lambda (i)
+                            (string-append (assoc-ref inputs i)
+                                           "/share/java/" i ".jar"))
+                          '("junit" "hamcrest-core" "slf4j-api" "slf4j-simple")))
+                    (class-path
+                     (string-join `("." ,build-dir ,jhdf ,jhdf5 ,@testjars) ":")))
+
+               (substitute* '("test/hdf5lib/Makefile.in"
+                              "test/hdf5lib/junit.sh.in"
+                              "examples/runExample.sh.in")
+                 (("/usr/bin/test")
+                  (string-append (assoc-ref inputs "coreutils")
+                                 "/bin/test"))
+                 (("/usr/bin/uname")
+                  (string-append (assoc-ref inputs "coreutils")
+                                 "/bin/uname"))
+                 (("CLASSPATH=[^\n]*")
+                  (string-append "CLASSPATH=" class-path)))
+               (setenv "CLASSPATH" class-path))
+             #t))
+         (add-before 'check 'build-examples
+           (lambda _
+             (apply invoke `("javac"
+                             ,@(find-files "examples" ".*\\.java"))))))
+
+       #:parallel-build? #f
+
+       #:parallel-tests? #f ))
+    (home-page "https://support.hdfgroup.org/products/java")
+    (synopsis "Java interface for the HDF4 and HDF5 libraries")
+    (description "Java HDF Interface (JHI) and Java HDF5 Interface (JHI5) use
 the Java Native Interface to wrap the HDF4 and HDF5 libraries, which are
 implemented in C.")
 
-   ;; BSD-style license:
-   (license (license:x11-style
-             "https://support.hdfgroup.org/ftp/HDF5/hdf-java\
+    ;; BSD-style license:
+    (license (license:x11-style
+              "https://support.hdfgroup.org/ftp/HDF5/hdf-java\
 /current/src/unpacked/COPYING"))))
 
 (define-public hdf-eos2
@@ -1344,6 +1353,38 @@ large-scale nonlinear optimization.  It provides C++, C, and Fortran
 interfaces.")
     (license license:epl1.0)))
 
+(define-public clp
+  (package
+    (name "clp")
+    (version "1.17.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://www.coin-or.org/download/source/"
+                                  "Clp/Clp-" version ".tgz"))
+              (sha256
+               (base32
+                "1wdg820g3iikf9344ijwsc8sy6c0m6im42bzzizm6rlmkvnmxhk9"))
+              (modules '((guix build utils)))
+              (snippet
+               ;; Make sure we don't use the bundled software.
+               '(begin
+                  (delete-file-recursively "ThirdParty")
+                  #t))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("gfortran" ,gfortran)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("openblas" ,openblas)))
+    (home-page "https://www.coin-or.org")
+    (synopsis "Linear programming solver")
+    (description
+     "CLP is a high quality linear programming solver.  Its main strengths are
+its dual and primal Simplex algorithms.  It also has a barrier algorithm for
+linear and quadratic objectives.  There are limited facilities for nonlinear
+and quadratic objectives using the Simplex algorithm.")
+    (license license:epl1.0)))
+
 (define-public ceres
   (package
     (name "ceres-solver")
@@ -1514,15 +1555,14 @@ script files.")
     (version "0.17.2")
     (source
       (origin
-        (method url-fetch)
-        (uri (string-append
-               "https://github.com/tpaviot/oce/archive/OCE-"
-               version
-               ".tar.gz"))
+        (method git-fetch)
+        (uri (git-reference
+              (url "https://github.com/tpaviot/oce.git")
+              (commit (string-append "OCE-" version))))
+        (file-name (git-file-name name version))
         (patches (search-patches "opencascade-oce-glibc-2.26.patch"))
         (sha256
-          (base32
-            "0vpmnb0k5y2f7lpmwx9pg9yfq24zjvnsak5alzacncfm1hv9b6cd"))))
+          (base32 "0rg5wzkvfmzfl6v2amyryb8dnjad0nn9kyr607wy2gch6rciah69"))))
     (build-system cmake-build-system)
     (arguments
      '(#:configure-flags
@@ -2166,14 +2206,14 @@ sparse system of linear equations A x = b using Guassian elimination.")
 (define-public r-quadprog
   (package
     (name "r-quadprog")
-    (version "1.5-5")
+    (version "1.5-6")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "quadprog" version))
        (sha256
         (base32
-         "0jg3r6abmhp8r9vkbhpx9ldjfw6vyl1m4c5vwlyjhk1mi03656fr"))))
+         "1fnwaz70dhiq4av8apc4wr3yrrpwc2i6lksf8pfi6jw8vzzyahql"))))
     (build-system r-build-system)
     (native-inputs
      `(("gfortran" ,gfortran)))
@@ -2187,12 +2227,12 @@ programming problems.")
 (define-public r-pracma
   (package
     (name "r-pracma")
-    (version "2.2.2")
+    (version "2.2.5")
     (source (origin
       (method url-fetch)
       (uri (cran-uri "pracma" version))
       (sha256
-        (base32 "18zhni05gwnxbphl6bmjjxmsgg5wwnnkwlb4g971cqyw3dsd83ki"))))
+        (base32 "0isd3s0i4mzmva8lkh0j76hwjy1w50q7d1n9lhxsnnkgalx3xs1g"))))
     (build-system r-build-system)
     (home-page "https://cran.r-project.org/web/packages/pracma/")
     (synopsis "Practical numerical math functions")
@@ -2756,12 +2796,12 @@ to BMP, JPEG or PNG image formats.")
              ;; of Debian's Maxima package.
              ;; If Maxima can successfully run this, the binary to be installed
              ;; should be fine.
-             (zero?
-              (system
-               (string-append "./maxima-local "
-                              "--lisp=gcl "
-                              "--batch-string=\"run_testsuite();\" "
-                              "| grep -q \"No unexpected errors found\"")))))
+             (invoke "sh" "-c"
+                     (string-append
+                      "./maxima-local "
+                      "--lisp=gcl "
+                      "--batch-string=\"run_testsuite();\" "
+                      "| grep -q \"No unexpected errors found\""))))
          ;; Make sure the doc and emacs files are found in the
          ;; standard location.  Also configure maxima to find gnuplot
          ;; without having it on the PATH.
@@ -2809,7 +2849,7 @@ point numbers.")
 (define-public wxmaxima
   (package
     (name "wxmaxima")
-    (version "19.01.3")
+    (version "19.03.1")
     (source
      (origin
        (method git-fetch)
@@ -2819,7 +2859,7 @@ point numbers.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "1vwahx3zxkn3qlv4z0fm7v8wh0wspvs026alrh7ff7s0c2dcy95x"))))
+         "1qkf4jg86xnn3wk3782ffmfz12axb92dkjagcz3ffzw2wi1rclml"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("gettext" ,gettext-minimal)))
@@ -2911,13 +2951,13 @@ associated functions (eg. contiguous and non-contiguous submatrix views).")
       (version (string-append upstream-version "-" revision))
       (source
        (origin
-         (method url-fetch)
-         (uri (string-append "https://github.com/beltoforion/muparser/archive/v"
-                             upstream-version ".tar.gz"))
-         (file-name (string-append name "-" version ".tar.gz"))
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/beltoforion/muparser.git")
+               (commit (string-append "v" upstream-version))))
+         (file-name (git-file-name name version))
          (sha256
-          (base32
-           "0277qsi5l23jsck1vhn383bmvc2n9l4a1dl5r9bf7hvjv9ayyrh6"))))
+          (base32 "0f0g4995xngf1pp3zr4p6ai2f8v6f8bxwa0k8ayjjiv1l8h44m24"))))
       (build-system gnu-build-system)
       (arguments
        `(#:configure-flags '("--enable-samples=no")
@@ -3047,13 +3087,13 @@ underway to allow BLIS to select the right optimized kernels at run time:
                     (lambda* (#:key outputs #:allow-other-keys)
                       ;; This is a home-made 'configure' script.
                       (let ((out (assoc-ref outputs "out")))
-                        (zero? (system* "./configure" "-p" out
-                                        "-d" "opt"
-                                        "--disable-static"
-                                        "--enable-shared"
-                                        "--enable-threading=openmp"
+                        (invoke "./configure" "-p" out
+                                "-d" "opt"
+                                "--disable-static"
+                                "--enable-shared"
+                                "--enable-threading=openmp"
 
-                                        ,implementation)))))
+                                ,implementation))))
                   (add-before 'check 'show-test-output
                     (lambda _
                       ;; By default "make check" is silent.  Make it verbose.
@@ -3105,13 +3145,13 @@ access to BLIS implementations via traditional BLAS routine calls.")
     (version "0.6.0")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/JuliaLang/openlibm/archive/v"
-                           version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/JuliaLang/openlibm.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "0a5fpm8nra5ldhjk0cqd2rx1qh32wiarkxmcqcm5xl8z7l4kjm6l"))))
+        (base32 "08wfchmmr5200fvmn1kwq9byc1fhsq46hn0y5k8scdl74771c7gh"))))
     (build-system gnu-build-system)
     (arguments
      `(#:make-flags
@@ -3144,13 +3184,13 @@ environments.")
     (version "0.5.3")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/JuliaLang/openspecfun/archive/v"
-                           version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/JuliaLang/openspecfun.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "1rs1bv8jq751fv9vq79890wqf9xlbjc7lvz3ighzyfczbyjcf18m"))))
+        (base32 "0pfw6l3ch7isz403llx7inxlvavqh01jh1hb9dpidi86sjjx9kfh"))))
     (build-system gnu-build-system)
     (arguments
      '(#:tests? #f                      ; no "check" target
@@ -3260,7 +3300,6 @@ packages.")
        #:substitutable? #f
 
        #:modules ((srfi srfi-26)
-                  (srfi srfi-1)
                   (guix build gnu-build-system)
                   (guix build utils))
        #:configure-flags
@@ -3293,11 +3332,11 @@ packages.")
              (let ((doc (string-append (assoc-ref outputs "doc")
                                        "/share/doc/atlas")))
                (mkdir-p doc)
-               (fold (lambda (file previous)
-                       (and previous (zero? (system* "cp" file doc))))
-                     #t (find-files "../ATLAS/doc" ".*")))))
+               (for-each (cut install-file <> doc)
+                         (find-files "../ATLAS/doc" ".*"))
+               #t)))
          (add-after 'check 'check-pt
-           (lambda _ (zero? (system* "make" "ptcheck"))))
+           (lambda _ (invoke "make" "ptcheck")))
          ;; Fix files required to run configure.
          (add-before 'configure 'fix-/bin/sh
            (lambda _
@@ -3332,9 +3371,9 @@ packages.")
                (chdir "../build")
                (format #t "build directory: ~s~%" (getcwd))
                (format #t "configure flags: ~s~%" flags)
-               (zero? (apply system* bash
-                             (string-append srcdir "/configure")
-                             flags))))))))
+               (apply invoke bash
+                      (string-append srcdir "/configure")
+                      flags)))))))
     (synopsis "Automatically Tuned Linear Algebra Software")
     (description
      "ATLAS is an automatically tuned linear algebra software library
@@ -3357,7 +3396,7 @@ Failure to do so will result in a library with poor performance.")
 (define-public glm
   (package
     (name "glm")
-    (version "0.9.9.4")
+    (version "0.9.9.5")
     (source
      (origin
        (method url-fetch)
@@ -3365,7 +3404,7 @@ Failure to do so will result in a library with poor performance.")
                            version  "/glm-" version ".zip"))
        (sha256
         (base32
-         "17vxbqzy4pxciq5i39bgpxz54f7ifqqmcqwwq7m6xfgikwqqqawp"))))
+         "1vmg7hb4xvsa77zpbwiw6lqc7pyaj56dihx6xriny5b9rrh4iqsg"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("unzip" ,unzip)))
@@ -3641,31 +3680,32 @@ set.")
 (define-public hypre
   (package
     (name "hypre")
-    (version "2.14.0")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://github.com/LLNL/hypre/archive/"
-                                  "v" version ".tar.gz"))
-              (file-name (string-append name "-" version ".tar.gz"))
-              (sha256
-               (base32
-                "0v515i73bvaz378h5465b1dy9v2gf924zy2q94cpq4qqarawvkqh"))
-              (modules '((guix build utils)))
-              (snippet
-               '(begin
-                  ;; Remove use of __DATE__ and __TIME__ for reproducibility;
-                  ;; substitute the tarball creation time.
-                  (substitute* "src/utilities/HYPRE_utilities.h"
-                    (("Date Compiled: .*$")
-                     "Date Compiled: Apr 11 2018 16:24:59 +0000\"\n"))
-                  #t))))
+    (version "2.15.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/LLNL/hypre.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1lvh4ybqkriyqfg2zmic6mrg1981qv1i9vry1fdgsabn81hb71g4"))
+       (modules '((guix build utils)))
+       (snippet
+        '(begin
+           ;; Remove use of __DATE__ and __TIME__ for reproducibility;
+           ;; substitute the release date.
+           (substitute* "src/utilities/HYPRE_utilities.h"
+             (("Date Compiled: .*$")
+              "Date Compiled: Oct 19 2018 15:23:00 +0000\"\n"))
+           #t))))
     (build-system gnu-build-system)
-    (outputs '("out"                    ;6.1 MiB of headers and libraries
-               "doc"))                  ;4.8 MiB of documentation
+    (outputs '("out"                    ; 6.1 MiB of headers and libraries
+               "doc"))                  ; 4.8 MiB of documentation
     (native-inputs
      `(("doc++" ,doc++)
        ("netpbm" ,netpbm)
-       ("perl" ,perl)                   ;needed to run 'ppmquant' during tests
+       ("perl" ,perl)                   ; needed to run 'ppmquant' during tests
        ("texlive" ,(texlive-union (list texlive-generic-xypic
                                         texlive-fonts-xypic
                                         texlive-latex-hyperref
@@ -3711,16 +3751,14 @@ set.")
            (lambda _
              (setenv "LD_LIBRARY_PATH" (string-append (getcwd) "/hypre/lib"))
              (setenv "PATH" (string-append "." ":" (getenv "PATH")))
-             (and (system* "make" "check" "CHECKRUN=")
-                  (fold (lambda (filename result)
-                          (and result
-                               (let ((size (stat:size (stat filename))))
-                                 (when (not (zero? size))
-                                   (format #t "~a size ~d; error indication~%"
-                                           filename size))
-                                 (zero? size))))
-                        #t
-                        (find-files "test" ".*\\.err$")))))
+             (invoke "make" "check" "CHECKRUN=")
+             (for-each (lambda (filename)
+                         (let ((size (stat:size (stat filename))))
+                           (when (positive? size)
+                             (error (format #f "~a size ~d; error indication~%"
+                                            filename size)))))
+                       (find-files "test" ".*\\.err$"))
+             #t))
          (add-after 'install 'install-docs
            (lambda* (#:key outputs #:allow-other-keys)
              ;; Custom install because docs/Makefile doesn't honor ${docdir}.
@@ -3729,7 +3767,7 @@ set.")
                (with-directory-excursion "docs"
                  (for-each (lambda (base)
                              (install-file (string-append base ".pdf") docdir)
-                             (copy-recursively base docdir)) ;html docs
+                             (copy-recursively base docdir)) ; html docs
                            '("HYPRE_usr_manual"
                              "HYPRE_ref_manual")))
                #t))))))
@@ -3904,10 +3942,10 @@ Longest Commons Subsequence of a set of strings.")
                                 (assoc-ref outputs "out"))
                         (chmod wrapper #o555))))
          (replace 'configure
-                  (lambda* (#:key inputs outputs #:allow-other-keys)
-                    (zero? (system* "./configure"
-                                    (string-append "--prefix="
-                                                   (assoc-ref outputs "out")))))))))
+           (lambda* (#:key outputs #:allow-other-keys)
+             (invoke "./configure"
+                     (string-append "--prefix="
+                                    (assoc-ref outputs "out"))))))))
     (inputs `(("scm" ,scm)))
     (native-inputs `(("unzip" ,unzip)
                      ("texinfo" ,texinfo)))
@@ -3943,8 +3981,7 @@ as equations, scalars, vectors, and matrices.")
              #t))
          (add-before 'configure 'bootstrap
            (lambda _
-             (zero?
-              (system* "python" "scripts/mk_make.py"))))
+             (invoke "python" "scripts/mk_make.py")))
          ;; work around gnu-build-system's setting --enable-fast-install
          ;; (z3's `configure' is a wrapper around the above python file,
          ;; which fails when passed --enable-fast-install)
@@ -3959,12 +3996,12 @@ as equations, scalars, vectors, and matrices.")
          (add-before 'check 'make-test-z3
            (lambda _
              ;; Build the test suite executable.
-             (zero? (system* "make" "test-z3" "-j"
-                             (number->string (parallel-job-count))))))
+             (invoke "make" "test-z3" "-j"
+                     (number->string (parallel-job-count)))))
          (replace 'check
            (lambda _
              ;; Run all the tests that don't require arguments.
-             (zero? (system* "./test-z3" "/a")))))))
+             (invoke "./test-z3" "/a"))))))
     (native-inputs
      `(("which" ,which)
        ("python" ,python-wrapper)))
@@ -4820,3 +4857,54 @@ implemented as callable objects, and bases of finite element spaces.")
 built on top of DUNE, the Distributed and Unified Numerics Environment.")
     ;; Either GPL version 2 with "runtime exception" or LGPLv3+.
     (license (list license:lgpl3+ license:gpl2))))
+
+(define-public mlucas
+  (package
+    (name "mlucas")
+    (version "18")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://mersenneforum.org/mayer/src/C/mlucas_v" version ".txz"))
+       (sha256
+        (base32
+         "1ax12qj9lyvnx4vs3gx7l8r3wx5gjbsdswp5f00ik9z0wz7xf297"))))
+    (build-system gnu-build-system)
+    (inputs
+     `(("python2" ,python-2)))
+    (arguments
+     `(#:tests? #f ; no tests
+       #:phases
+       (modify-phases %standard-phases
+         (replace 'configure
+           (lambda _
+             (chdir "src")
+             (call-with-output-file "Makefile"
+               (lambda (port)
+                 (format port "CC = gcc
+CFLAGS = -O3 ~a -DUSE_THREADS
+LDLIBS = -lm -lpthread -lrt
+Mlucas: $(addsuffix .o,$(basename $(wildcard *.c)))
+"
+                         ,(let ((system (or (%current-target-system)
+                                            (%current-system))))
+                            (cond
+                             ((string-prefix? "x86_64" system) "-DUSE_SSE2")
+                             (else ""))))))
+             #t))
+         (replace 'install
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
+               (install-file "Mlucas" bin)
+               (install-file "primenet.py" bin))
+             #t)))))
+    (home-page "https://www.mersenne.org")
+    (synopsis "Great Internet Mersenne Prime Search (GIMPS) distributed computing client")
+    (description "Mlucas performs Lucas-Lehmer primality testing of Mersenne
+numbers in search of a world-record prime.  You may use it to test any
+suitable number as you wish, but it is preferable that you do so in a
+coordinated fashion, as part of the Great Internet Mersenne Prime
+Search (GIMPS).  Mlucas also includes a simple Python script for assignment
+management via the GIMPS project's Primenet server.")
+    (license license:gpl2+)))
diff --git a/gnu/packages/maven.scm b/gnu/packages/maven.scm
index 2d7d54dd9d..d383f16255 100644
--- a/gnu/packages/maven.scm
+++ b/gnu/packages/maven.scm
@@ -686,13 +686,13 @@ gets and puts artifacts through HTTP(S) using Apache HttpClient-4.x.")))
 (define-public maven-artifact
   (package
     (name "maven-artifact")
-    (version "3.6.0")
+    (version "3.6.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://archive.apache.org/dist/maven/"
                                   "maven-3/" version "/source/"
                                   "apache-maven-" version "-src.tar.gz"))
-              (sha256 (base32 "17jrqfqwn569jgnv8m4pqc27csssb0rf6mznpq61l5bnbd6hl75k"))
+              (sha256 (base32 "0grw9zp166ci53rd7qkyy2qmwmik37xhiz1z84jpm0msyvzj2n82"))
               (modules '((guix build utils)))
               (snippet
                '(begin
diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm
index 2a910c4bc6..94d4b0855c 100644
--- a/gnu/packages/messaging.scm
+++ b/gnu/packages/messaging.scm
@@ -492,14 +492,14 @@ compromised.")
 (define-public znc
   (package
     (name "znc")
-    (version "1.7.2")
+    (version "1.7.3")
     (source (origin
               (method url-fetch)
               (uri (string-append "http://znc.in/releases/archive/znc-"
                                   version ".tar.gz"))
               (sha256
                (base32
-                "1ac2csl5jr56vahnxdynlvrhwlvcc1gqxvyifckc6cn5aj7ygd30"))))
+                "0g8i5hsl4kinpz1wp0a2zniidv3w2sd6awq8676fds516wcc6k0y"))))
     ;; TODO: autotools support has been deprecated, and new features like i18n
     ;; are only supported when building with cmake.
     (build-system gnu-build-system)
@@ -553,14 +553,14 @@ simultaneously and therefore appear under the same nickname on IRC.")
 (define-public python-nbxmpp
   (package
     (name "python-nbxmpp")
-    (version "0.6.9")
+    (version "0.6.10")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "nbxmpp" version))
        (sha256
         (base32
-         "03f8dk4kb7ya0pg7v0a0kqms4c7f2bqan5wl4ig0mcwpdmppj3b6"))))
+         "1vq89nhamciblyi5579bppnm4sb0zk5cg5hdipfpz174fxvl2wyd"))))
     (build-system python-build-system)
     (arguments
      `(#:tests? #f))                    ; no tests
@@ -578,7 +578,7 @@ was initially a fork of xmpppy, but uses non-blocking sockets.")
 (define-public gajim
   (package
     (name "gajim")
-    (version "1.1.2")
+    (version "1.1.3")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://gajim.org/downloads/"
@@ -586,7 +586,7 @@ was initially a fork of xmpppy, but uses non-blocking sockets.")
                                   "/gajim-" version ".tar.bz2"))
               (sha256
                (base32
-                "1lx03cgi58z54xb7mhs6bc715lc00w5mpysf9n3q8zgn759fm0rj"))))
+                "0bzxwcpdd4ydh6d6mzpr0gxwhcb0x9ympk55fpvm1hcw9d28a716"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -1693,18 +1693,19 @@ building the IRC clients and bots.")
 (define-public toxic
   (package
     (name "toxic")
-    (version "0.8.2")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://github.com/JFreegman/toxic/archive/v"
-                                  version ".tar.gz"))
-              (sha256
-               (base32
-                "1dx6z7k0zpsd7dpysdy23f0hnm49qlikb0mq8fg0y01dsz9vxgak"))
-              (file-name (git-file-name name version))))
+    (version "0.8.3")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/JFreegman/toxic.git")
+             (commit (string-append "v" version))))
+       (sha256
+        (base32 "09l2j3lwvrq7bf3051vjsnml9w63790ly3iylgf26gkrmld6k31w"))
+       (file-name (git-file-name name version))))
     (build-system gnu-build-system)
     (arguments
-     `(#:tests? #f ; no tests
+     `(#:tests? #f                      ; no tests
        #:make-flags
        (list
         "CC=gcc"
@@ -1721,7 +1722,7 @@ building the IRC clients and bots.")
      `(("c-toxcore" ,c-toxcore)
        ("curl" ,curl)
        ("freealut" ,freealut)
-       ("gdk-pixbuf" ,gdk-pixbuf) ; for libnotify.pc
+       ("gdk-pixbuf" ,gdk-pixbuf)       ; for libnotify.pc
        ("libconfig" ,libconfig)
        ("libnotify" ,libnotify)
        ("libpng" ,libpng)
@@ -1819,13 +1820,13 @@ QMatrixClient project.")
 (define-public hangups
   (package
     (name "hangups")
-    (version "0.4.6")
+    (version "0.4.9")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "hangups" version))
        (sha256
-        (base32 "0mvpfd5dc3zgcvwfidcd2qyn59xl5biv728mxifw0ls5rzkc9chs"))))
+        (base32 "1jw4i58cd4j1ymsnhv9224xsi26w8y0qrj6z4nw50dnbl45b6aaa"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -1847,6 +1848,9 @@ QMatrixClient project.")
        ("python-reparser" ,python-reparser)
        ("python-requests" ,python-requests)
        ("python-urwid" ,python-urwid)))
+    (native-inputs
+     `(("python-httpretty" ,python-httpretty)
+       ("python-pytest" ,python-pytest)))
     (home-page "https://hangups.readthedocs.io/")
     (synopsis "Instant messaging client for Google Hangouts")
     (description
diff --git a/gnu/packages/microcom.scm b/gnu/packages/microcom.scm
index 67fd5fe355..3a1ec1d3cb 100644
--- a/gnu/packages/microcom.scm
+++ b/gnu/packages/microcom.scm
@@ -46,6 +46,6 @@
     (synopsis "Minimalistic serial line terminal program")
  (description "Microcom is a minimalistic terminal program for accessing
 devices via a serial connection.  It features connection via RS232 serial
-interfaces (including setting of transfer rates) as well as in `telnetmode'
+interfaces (including setting of transfer rates) as well as in @code{telnetmode}
 as specified in rfc2217 and a (Linux specific) CAN mode.")
     (license gpl2+)))
diff --git a/gnu/packages/monitoring.scm b/gnu/packages/monitoring.scm
index 4384406227..a34e002a8c 100644
--- a/gnu/packages/monitoring.scm
+++ b/gnu/packages/monitoring.scm
@@ -4,7 +4,7 @@
 ;;; Copyright © 2017, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Gábor Boskovits <boskovits@gmail.com>
-;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
+;;; Copyright © 2018, 2019 Oleg Pykhalov <go.wigust@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -152,7 +152,7 @@ etc. via a Web interface.  Features include:
 (define-public zabbix-agentd
   (package
     (name "zabbix-agentd")
-    (version "4.0.2")
+    (version "4.2.0")
     (source
      (origin
        (method url-fetch)
@@ -161,7 +161,7 @@ etc. via a Web interface.  Features include:
              "/zabbix-" version ".tar.gz"))
        (sha256
         (base32
-         "033qb4b9y02jp2ijj8ny0a0yk1mzj0a8ihxrv11h7ln8kpl55vqw"))))
+         "1b9wx6z15jfg8yakb7mlaqqri1ia9i12rgk58c3nparzsjdd9p2c"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags
@@ -427,16 +427,16 @@ written in Go with pluggable metric collectors.")
 (define-public fswatch
   (package
     (name "fswatch")
-    (version "1.13.0")
+    (version "1.14.0")
     (source (origin
               (method git-fetch)
               (uri (git-reference
                       (url "https://github.com/emcrisostomo/fswatch.git")
                       (commit version)))
-              (file-name (string-append name "-" version "-checkout"))
+              (file-name (git-file-name name version))
               (sha256
                (base32
-                "0r9m3rysqa1kdgghv2i6sv4zrd0v8idsbrp627ys642dl39svir3"))))
+                "1ihn7wp3y7ml2lm8drz2hc6fmgj8kygbygnw8mz7gjax88f9dbx7"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("autoconf" ,autoconf)
diff --git a/gnu/packages/mp3.scm b/gnu/packages/mp3.scm
index d408701814..99ca4f9007 100644
--- a/gnu/packages/mp3.scm
+++ b/gnu/packages/mp3.scm
@@ -5,7 +5,7 @@
 ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
 ;;; Copyright © 2017 Pierre Langlois <pierre.langlois@gmx.com>
-;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -471,16 +471,16 @@ compression format (.mpc files).")
 (define-public eyed3
   (package
     (name "eyed3")
-    (version "0.8.8")
-    (source (origin
-             (method url-fetch)
-             (uri (pypi-uri "eyeD3" version))
-             (sha256
-              (base32
-               "197lszkyzm377ym5r0ssryfsiz20yjx8y4rii3wc81n92d1qzlaq"))))
+    (version "0.8.10")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "eyeD3" version))
+       (sha256
+        (base32 "1jb22n1jczxgbpcnfiw12r8dcs74556g1d09mzms44f52kgs7lgc"))))
     (build-system python-build-system)
     (arguments
-     `(#:tests? #f)) ; the required test data contains copyrighted material.
+     `(#:tests? #f))    ; the required test data contains copyrighted material
     (propagated-inputs
      `(("python-grako" ,python-grako)
        ("python-magic" ,python-magic)
diff --git a/gnu/packages/mpd.scm b/gnu/packages/mpd.scm
index 5a9c438997..e479ccc34e 100644
--- a/gnu/packages/mpd.scm
+++ b/gnu/packages/mpd.scm
@@ -5,7 +5,7 @@
 ;;; Copyright © 2014 Ian Denhardt <ian@zenhack.net>
 ;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>
 ;;; Copyright © 2016, 2018, 2019 Leo Famulari <leo@famulari.name>
-;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -91,7 +91,7 @@ interfacing MPD in the C, C++ & Objective C languages.")
 (define-public mpd
   (package
     (name "mpd")
-    (version "0.21.6")
+    (version "0.21.8")
     (source (origin
               (method url-fetch)
               (uri
@@ -100,7 +100,7 @@ interfacing MPD in the C, C++ & Objective C languages.")
                               "/mpd-" version ".tar.xz"))
               (sha256
                (base32
-                "17z580gqwsr4xp3x124aapw96pl8hk91c43ld2x75606rim12kcd"))))
+                "0mwpkbjsljj1khlnnjanvw3pgxbhsdl0bh2k9bxnpijn2gqq7q13"))))
     (build-system meson-build-system)
     (arguments
      `(#:configure-flags '("-Ddocumentation=true"))) ;the default is 'false'...
@@ -182,7 +182,7 @@ player daemon.")
 (define-public ncmpc
   (package
     (name "ncmpc")
-    (version "0.33")
+    (version "0.34")
     (source (origin
               (method url-fetch)
               (uri
@@ -191,7 +191,7 @@ player daemon.")
                               "/ncmpc-" version ".tar.xz"))
               (sha256
                (base32
-                "19fp7xkpai4lq3vmpbppgh3ism7lg2sibv237c0sl5a0hls4mq4l"))))
+                "0mz8r6vc4zn5sa3hlq4ii74qcrkh01nbg784zcwahgz8g3fb3i8l"))))
     (build-system meson-build-system)
     (arguments
      `(#:configure-flags
diff --git a/gnu/packages/mpi.scm b/gnu/packages/mpi.scm
index 952edca66e..461296f66b 100644
--- a/gnu/packages/mpi.scm
+++ b/gnu/packages/mpi.scm
@@ -161,7 +161,7 @@ bind processes, and much more.")
 (define-public openmpi
   (package
     (name "openmpi")
-    (version "4.0.0")
+    (version "4.0.1")
     (source
      (origin
       (method url-fetch)
@@ -169,8 +169,7 @@ bind processes, and much more.")
                           (version-major+minor version)
                           "/downloads/openmpi-" version ".tar.bz2"))
       (sha256
-       (base32
-        "0srnjwzsmyhka9hhnmqm86qck4w3xwjm8g6sbns58wzbrwv8l2rg"))))
+       (base32 "02cpzcp113gj5hb0j2xc0cqma2fn04i2i0bzf80r71120p9bdryc"))))
     (build-system gnu-build-system)
     (inputs
      `(("hwloc" ,hwloc "lib")
diff --git a/gnu/packages/mtools.scm b/gnu/packages/mtools.scm
index 5be3da0137..b93d5789b9 100644
--- a/gnu/packages/mtools.scm
+++ b/gnu/packages/mtools.scm
@@ -1,6 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2013 John Darrington <jmd@gnu.org>
-;;; Copyright © 2015 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2015, 2019 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Efraim Flashner <efraim@flashner.co.il>
 ;;;
@@ -23,20 +23,22 @@
   #: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 (gnu packages))
 
 (define-public mtools
   (package
     (name "mtools")
     (version "4.0.23")
-    (source
-     (origin
-      (method url-fetch)
-      (uri (string-append "mirror://gnu/mtools/mtools-"
-                          version ".tar.bz2"))
-      (sha256
-       (base32
-        "1qwfxzr964fasxlzhllahk8mzh7c82s808wvly95dsqsflkdp27i"))))
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://gnu/mtools/mtools-"
+                                  version ".tar.bz2"))
+              (sha256
+               (base32
+                "1qwfxzr964fasxlzhllahk8mzh7c82s808wvly95dsqsflkdp27i"))
+              (patches
+               (search-patches "mtools-mformat-uninitialized.patch"))))
     (build-system gnu-build-system)
     (home-page "https://www.gnu.org/software/mtools/")
     (synopsis "Access MS-DOS disks without mounting")
diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
index 5a2358f19a..aafe420d04 100644
--- a/gnu/packages/music.scm
+++ b/gnu/packages/music.scm
@@ -5,7 +5,7 @@
 ;;; Copyright © 2016 Al McElrath <hello@yrns.org>
 ;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016, 2018 Leo Famulari <leo@famulari.name>
-;;; Copyright © 2016, 2017 Kei Kebreau <kkebreau@posteo.net>
+;;; Copyright © 2016, 2017, 2019 Kei Kebreau <kkebreau@posteo.net>
 ;;; Copyright © 2016 John J. Foerch <jjfoerch@earthlink.net>
 ;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
 ;;; Copyright © 2017 ng0 <ng0@n0.is>
@@ -54,6 +54,7 @@
   #:use-module (guix build-system trivial)
   #:use-module (guix build-system go)
   #:use-module (gnu packages)
+  #:use-module (gnu packages admin)
   #:use-module (gnu packages algebra)
   #:use-module (gnu packages apr)
   #:use-module (gnu packages audio)
@@ -81,6 +82,7 @@
   #:use-module (gnu packages fonts)
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages freedesktop)
+  #:use-module (gnu packages game-development)
   #:use-module (gnu packages gcc)
   #:use-module (gnu packages gnupg)
   #:use-module (gnu packages gettext)
@@ -93,6 +95,7 @@
   #:use-module (gnu packages gstreamer)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages guile)
+  #:use-module (gnu packages haskell)
   #:use-module (gnu packages image)
   #:use-module (gnu packages imagemagick)
   #:use-module (gnu packages java)
@@ -446,6 +449,51 @@ background while you work.")
     (home-page "http://www.denemo.org")
     (license license:gpl3+)))
 
+(define-public dumb
+  (package
+    (name "dumb")
+    (version "2.0.3")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/kode54/dumb.git")
+             (commit version)))
+       (sha256
+        (base32 "1cnq6rb14d4yllr0yi32p9jmcig8avs3f43bvdjrx4r1mpawspi6"))
+       (file-name (git-file-name name version))))
+    (build-system cmake-build-system)
+    (arguments
+     '(#:tests? #f ; no check target
+       #:configure-flags
+       (list "-DBUILD_SHARED_LIBS=ON"
+             "-DBUILD_EXAMPLES=OFF")))
+    (home-page "https://github.com/kode54/dumb")
+    (synopsis "Module audio renderer library")
+    (description
+     "DUMB is a tracker library with support for IT, XM, S3M and MOD files.  It
+targets maximum accuracy to the original formats, with low-pass resonant filters
+for the IT files, accurate timing and pitching, and three resampling quality
+settings (aliasing, linear interpolation and cubic interpolation).")
+    ;; The DUMB license is a bit peculiar.
+    ;; Clause 8 states that clauses 4, 5 and 6 are null and void, leaving only
+    ;; the first three clauses for genuine consideration.
+    ;; Clauses 1, 2 and 3 are analogous to clauses 1, 2 and 3 of the zlib
+    ;; license, a known free software license.
+    ;; Therefore, the DUMB license may be considered a free software license.
+    (license (license:fsf-free "file://LICENSE"))))
+
+(define-public dumb-allegro4
+  (package
+    (inherit dumb)
+    (name "dumb-allegro4")
+    (arguments
+     (substitute-keyword-arguments (package-arguments dumb)
+       ((#:configure-flags flags)
+        `(cons "-DBUILD_ALLEGRO4=ON" ,flags))))
+    (inputs
+     `(("allegro" ,allegro-4)))))
+
 (define-public hydrogen
   (package
     (name "hydrogen")
@@ -721,7 +769,16 @@ audio and video).")
     (arguments
      `(#:scons-flags (list (string-append "PREFIX=" %output))
        #:scons ,scons-python2
-       #:tests? #f)) ;no "check" target
+       #:tests? #f ; no "check" target
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'replace-removed-scons-syntax
+           (lambda _
+             (substitute* "SConstruct"
+               (("BoolOption") "BoolVariable")
+               (("PathOption") "PathVariable")
+               (("Options") "Variables"))
+             #t)))))
     (inputs
      `(("boost" ,boost)
        ("jack" ,jack-1)
@@ -1307,7 +1364,7 @@ users to select LV2 plugins and run them with jalv.")
 (define-public synthv1
   (package
     (name "synthv1")
-    (version "0.9.6")
+    (version "0.9.7")
     (source (origin
               (method url-fetch)
               (uri
@@ -1315,7 +1372,7 @@ users to select LV2 plugins and run them with jalv.")
                               "/synthv1-" version ".tar.gz"))
               (sha256
                (base32
-                "1hcngk7mxfrqf8v3r759x3wd0p02nc3q83j8m3k58p408y3mx7nr"))))
+                "0i70wm430fvksi3g985farrkhgb7mwhi7j06dl66cdj1n12jzzk7"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f                      ; there are no tests
@@ -1341,7 +1398,7 @@ oscillators and stereo effects.")
 (define-public drumkv1
   (package
     (name "drumkv1")
-    (version "0.9.6")
+    (version "0.9.7")
     (source (origin
               (method url-fetch)
               (uri
@@ -1349,7 +1406,7 @@ oscillators and stereo effects.")
                               "/drumkv1-" version ".tar.gz"))
               (sha256
                (base32
-                "0d0kskr9pzdckw7sz4djjkkkgz1fa83zrq5my6qlxn68wqdj6800"))))
+                "1361dqdasrc98q9hcjdwsjx6agfimwnay430887fryi3pslkyd81"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f                      ; there are no tests
@@ -1376,7 +1433,7 @@ effects.")
 (define-public samplv1
   (package
     (name "samplv1")
-    (version "0.9.6")
+    (version "0.9.7")
     (source (origin
               (method url-fetch)
               (uri
@@ -1384,7 +1441,7 @@ effects.")
                               "/samplv1-" version ".tar.gz"))
               (sha256
                (base32
-                "16a5xix9pn0gl3fr6bv6zl1l9vrzgvy1q7xd8yxzfr3vi5s8x4z9"))))
+                "1vgmcjccpgqqlmmwfg6m91nph81p2xaxydjx82n4l1yrr9lidn9h"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f                      ; there are no tests
@@ -1411,7 +1468,7 @@ effects.")
 (define-public padthv1
   (package
     (name "padthv1")
-    (version "0.9.6")
+    (version "0.9.7")
     (source (origin
               (method url-fetch)
               (uri
@@ -1419,7 +1476,7 @@ effects.")
                               "/padthv1-" version ".tar.gz"))
               (sha256
                (base32
-                "0ddvlpjlg6zr9ckanqhisw0sgm8rxibvj1aj5dxzs9xb2wlwd8rr"))))
+                "1jd4bf6a1ipvg4yhb3xf3maqg68bx97ic9l57djmkirlrkh2a3wp"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f                      ; there are no tests
@@ -1630,7 +1687,7 @@ mixing, FFT scopes, MIDI automation and full scriptability in Scheme.")
     (home-page "http://bristol.sourceforge.net/")
     (synopsis "Synthesizer emulator")
     (description
-     "Bristol is an emulation package for a number of different 'classic'
+     "Bristol is an emulation package for a number of different @code{classic}
 synthesizers including additive and subtractive and a few organs.  The
 application consists of the engine, which is called bristol, and its own GUI
 library called brighton that represents all the emulations.  There are
@@ -2002,7 +2059,7 @@ backends, including ALSA, OSS, Network and FluidSynth.")
 (define-public zynaddsubfx
   (package
     (name "zynaddsubfx")
-    (version "3.0.3")
+    (version "3.0.5")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -2010,7 +2067,7 @@ backends, including ALSA, OSS, Network and FluidSynth.")
                     version "/zynaddsubfx-" version ".tar.bz2"))
               (sha256
                (base32
-                "1hfpiqdm337gl4ynkmmp2qss2m5z8mzqzjrbiyg6w1v4js7l9phi"))))
+                "0qwzg14h043rmyf9jqdylxhyfy4sl0vsr0gjql51wjhid0i34ivl"))))
     (build-system cmake-build-system)
     (arguments
      `(#:phases
@@ -2222,14 +2279,14 @@ computer's keyboard.")
 (define-public aj-snapshot
   (package
     (name "aj-snapshot")
-    (version "0.9.8")
+    (version "0.9.9")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://sourceforge/aj-snapshot/"
                                   "aj-snapshot-" version ".tar.bz2"))
               (sha256
                (base32
-                "0wilky1g2mb88v2z0520s7sw1dsn10iwanc8id5p6z1xsnhg7b6p"))))
+                "0z8wd5yvxdmw1h1rj6km9h01xd4xmp4d86gczlix7hsc7zrf0wil"))))
     (build-system gnu-build-system)
     (inputs
      `(("minixml" ,minixml)
diff --git a/gnu/packages/musl.scm b/gnu/packages/musl.scm
index 8592db1373..1356b8d14d 100644
--- a/gnu/packages/musl.scm
+++ b/gnu/packages/musl.scm
@@ -28,14 +28,14 @@
 (define-public musl
   (package
     (name "musl")
-    (version "1.1.21")
+    (version "1.1.22")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://www.musl-libc.org/releases/"
                                   "musl-" version ".tar.gz"))
               (sha256
                (base32
-                "0i2z52zgc86af1n1gjiz43hgd85mxjgvgn345zsybja9dxpvchn7"))))
+                "1qr9xqdzziy5bsyyqlh6k8yz056ll55d5yvc0gbhz61ginj422cb"))))
     (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 057e8c3bd9..cb4ca996d4 100644
--- a/gnu/packages/nano.scm
+++ b/gnu/packages/nano.scm
@@ -1,6 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org>
-;;; Copyright © 2015, 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2015, 2016, 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016 Rene Saavedra <rennes@openmailbox.org>
 ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;;
@@ -30,7 +30,7 @@
 (define-public nano
   (package
     (name "nano")
-    (version "3.2")
+    (version "4.1")
     (source
      (origin
       (method url-fetch)
@@ -38,7 +38,7 @@
                           version ".tar.xz"))
       (sha256
        (base32
-        "0jb3zq0v84xb0chyynkcp2jhs9660wmpkic294p4p6c96npp69yi"))))
+        "1l11sa957g8njfz9v8q1f2m3w2xz1rf7i7dl37kgvmiql2bfbgc6"))))
     (build-system gnu-build-system)
     (inputs
      `(("gettext" ,gettext-minimal)
diff --git a/gnu/packages/ncurses.scm b/gnu/packages/ncurses.scm
index 9b5498688b..a35ff9b400 100644
--- a/gnu/packages/ncurses.scm
+++ b/gnu/packages/ncurses.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2012, 2013, 2014, 2015, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2012, 2013, 2014, 2015, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2014, 2016 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2015, 2017 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2016 ng0 <ng0@n0.is>
@@ -196,9 +196,11 @@
                       ,patch-makefile-phase)
                     (add-after 'unpack 'remove-unneeded-shebang
                       ,remove-shebang-phase)))))
-    (self-native-input? #t)           ; for `tic'
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     `(,@(if (%current-target-system)
+             `(("self" ,this-package))            ;for `tic'
+             '())
+       ("pkg-config" ,pkg-config)))
     (native-search-paths
      (list (search-path-specification
             (variable "TERMINFO_DIRS")
diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index 493c59148a..4fc9e52ec7 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -161,7 +161,7 @@ residing in IPv4-only networks, even when they are behind a NAT device.")
 (define-public socat
   (package
     (name "socat")
-    (version "1.7.3.2")
+    (version "1.7.3.3")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -169,7 +169,7 @@ residing in IPv4-only networks, even when they are behind a NAT device.")
                     version ".tar.bz2"))
               (sha256
                (base32
-                "0lcj6zpra33xhgvhmz9l3cqz10v8ybafb8dd1yqkwf1rhy01ymp3"))))
+                "0jnhjijyq74g3wa4ph0am83z6vq7qna7ac0xqjma8s4197z3zmhd"))))
     (build-system gnu-build-system)
     (arguments '(#:tests? #f))                    ;no 'check' phase
     (inputs `(("openssl" ,openssl)))
@@ -547,7 +547,7 @@ and up to 1 Mbit/s downstream.")
 (define-public whois
   (package
     (name "whois")
-    (version "5.4.1")
+    (version "5.4.2")
     (source
      (origin
        (method url-fetch)
@@ -555,7 +555,7 @@ and up to 1 Mbit/s downstream.")
                            name "_" version ".tar.xz"))
        (sha256
         (base32
-         "0l7chmlvsl22r5cfm6fpm999z2n3sjrnx3ha8f8kf42cn4gmkriy"))))
+         "0mqzs0g2qxd29ihammisg9qf4503sr7d4zas26zjz4an78xkmqzf"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f                      ; no test suite
@@ -590,15 +590,14 @@ of the same name.")
 (define-public wireshark
   (package
     (name "wireshark")
-    (version "3.0.0")
+    (version "3.0.1")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://www.wireshark.org/download/src/wireshark-"
                            version ".tar.xz"))
        (sha256
-        (base32
-         "17h0ixq7yr6scscjkidaj3dh5x6dfd3f97ggdxlklkz9nbsk0kxw"))))
+        (base32 "13605bpnnbqsdr8ybqnscbz9g422zmyymn4q5aci28vc1wylr1l6"))))
     (build-system cmake-build-system)
     (arguments
      `(#:phases
@@ -894,6 +893,30 @@ attacking, testing, and cracking.  All tools are command-line driven, which
 allows for heavy scripting.")
     (license (list license:gpl2+ license:bsd-3))))
 
+(define-public perl-danga-socket
+  (package
+    (name "perl-danga-socket")
+    (version "1.61")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://cpan/authors/id/B/BR/BRADFITZ/"
+                           "Danga-Socket-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0nciapvxnc922ms304af0vavz1kgyr45ard8wc659k9srqar4hwf"))))
+    (build-system perl-build-system)
+    (propagated-inputs
+     `(("perl-sys-syscall" ,perl-sys-syscall)))
+    (home-page "https://metacpan.org/release/Danga-Socket")
+    (synopsis "Event loop and event-driven async socket base class")
+    (description
+     "Danga::Socket is an abstract base class for objects backed by a socket
+which provides the basic framework for event-driven asynchronous IO, designed
+to be fast.  Danga::Socket is both a base class for objects, and an event
+loop.")
+    (license license:perl-license)))
+
 (define-public perl-data-validate-ip
   (package
     (name "perl-data-validate-ip")
@@ -924,7 +947,7 @@ private (reserved).")
 (define-public perl-net-dns
  (package
   (name "perl-net-dns")
-  (version "1.19")
+  (version "1.20")
   (source
     (origin
       (method url-fetch)
@@ -935,7 +958,7 @@ private (reserved).")
         (string-append "mirror://cpan/authors/id/N/NL/NLNETLABS/Net-DNS-"
                        version ".tar.gz")))
       (sha256
-       (base32 "1myc23vz0m42yyg8iw7bf1pdrmx9ql6fhl2vwk1vwf55v6yphqi0"))))
+       (base32 "06z09igd42s0kg2ps5k7vpypg77zswfryqzbyalbllvjd0mnknbz"))))
   (build-system perl-build-system)
   (inputs
     `(("perl-digest-hmac" ,perl-digest-hmac)))
@@ -1108,8 +1131,8 @@ offline emulation of DNS.")
   (home-page "https://metacpan.org/release/Geo-IP")
   (synopsis
     "Look up location and network information by IP Address in Perl")
-  (description "The Perl module 'Geo::IP'.  It looks up location and network
-information by IP Address.")
+  (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
@@ -2177,84 +2200,80 @@ Ethernet and TAP interfaces is supported.  Packet capture is also supported.")
     (license license:gpl3+)))
 
 (define-public hcxtools
-  (let* ((commit "2ecfc9a06c2028c47522ea566ccd82b2c1f94647"))
-    (package
-      (name "hcxtools")
-      (version (git-version "0.0.0" "1" commit))
-      (home-page "https://github.com/ZerBea/hcxtools")
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url home-page)
-                      (commit commit)))
-                (sha256
-                 (base32
-                  "1hzwrpmxjxl674if0pp5iq06mdi24k7ni7bh1h20isp4s40201n3"))
-                (file-name (git-file-name name version))))
-      (build-system gnu-build-system)
-      (inputs
-       `(("curl" ,curl)
-         ("libpcap" ,libpcap)
-         ("openssl" ,openssl)
-         ("zlib" ,zlib)))
-      (arguments
-       `(#:make-flags (list "CC=gcc"
-                            (string-append "INSTALLDIR=" (assoc-ref %outputs "out") "/bin"))
-         #:tests? #f                    ;no tests
-         #:phases
-         (modify-phases %standard-phases
-           (delete 'configure)
-           (add-after 'unpack 'set-environment
-             (lambda* (#:key inputs #:allow-other-keys)
-               (setenv "C_INCLUDE_PATH"
-                     (string-append (assoc-ref inputs "curl")
-                                    "/include:"
-                                    (assoc-ref inputs "libpcap")
-                                    "/include:"
-                                    (assoc-ref inputs "openssl")
-                                    "/include:"
-                                    (assoc-ref inputs "zlib")
-                                    "/include:"
+  (package
+    (name "hcxtools")
+    (version "5.1.4")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/ZerBea/hcxtools.git")
+             (commit version)))
+       (sha256
+        (base32 "1bkl0j6m5q091fas99s83aclcc5kfwacmkgmyg8565z2npvnj7nf"))
+       (file-name (git-file-name name version))))
+    (build-system gnu-build-system)
+    (inputs
+     `(("curl" ,curl)
+       ("libpcap" ,libpcap)
+       ("openssl" ,openssl)
+       ("zlib" ,zlib)))
+    (arguments
+     `(#:make-flags
+       (list "CC=gcc"
+             (string-append "INSTALLDIR=" (assoc-ref %outputs "out") "/bin"))
+       #:tests? #f                      ; no test suite
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure)
+         (add-after 'unpack 'set-environment
+           (lambda* (#:key inputs #:allow-other-keys)
+             (setenv "C_INCLUDE_PATH"
+                     (string-append (assoc-ref inputs "curl") "/include:"
+                                    (assoc-ref inputs "libpcap") "/include:"
+                                    (assoc-ref inputs "openssl") "/include:"
+                                    (assoc-ref inputs "zlib") "/include:"
                                     (getenv "C_INCLUDE_PATH")))
              #t)))))
-      (synopsis "Capture wlan traffic to hashcat and John the Ripper")
-      (description
-       "This package contains a small set of tools to capture and convert
+    (home-page "https://github.com/ZerBea/hcxtools")
+    (synopsis "Capture wlan traffic to hashcat and John the Ripper")
+    (description
+     "This package contains a small set of tools to capture and convert
 packets from wireless devices for use with hashcat or John the Ripper.")
-      (license license:expat))))
+    (license license:expat)))
 
 (define-public hcxdumptool
-  (let* ((commit "f4799b5da82c5b030a6d99b02d1c1b9dc838ad36"))
-    (package
-      (name "hcxdumptool")
-      (version (git-version "0.0.0" "1" commit))
-      (home-page "https://github.com/ZerBea/hcxdumptool")
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url home-page)
-                      (commit commit)))
-                (sha256
-                 (base32
-                  "0qlsin0rws9sshn12faq4spmd0ffzssal36s71vhv6gkhhga7abl"))
-                (file-name (git-file-name name version))))
-      (build-system gnu-build-system)
-      (arguments
-       `(#:make-flags (list "CC=gcc"
-                            (string-append "INSTALLDIR=" (assoc-ref %outputs "out") "/bin"))
-         #:tests? #f                    ;no tests
-         #:phases
-         (modify-phases %standard-phases
-           (delete 'configure))))
-      (synopsis "Small tool to capture packets from wlan devices")
-      (description
-       "Small tool to capture packets from WLAN devices.  After capturing,
+  (package
+    (name "hcxdumptool")
+    (version "5.1.4")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/ZerBea/hcxdumptool.git")
+             (commit version)))
+       (sha256
+        (base32 "0h2cc2dfpc83325hwqkxwn0p8qfq5gh1dg0yb1nr8bnffy0b4r4v"))
+       (file-name (git-file-name name version))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:make-flags
+       (list "CC=gcc"
+             (string-append "INSTALLDIR=" (assoc-ref %outputs "out") "/bin"))
+       #:tests? #f                      ; no test suite
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure))))
+    (home-page "https://github.com/ZerBea/hcxdumptool")
+    (synopsis "Small tool to capture packets from wlan devices")
+    (description
+     "Small tool to capture packets from WLAN devices.  After capturing,
 upload the \"uncleaned\" cap to @url{https://wpa-sec.stanev.org/?submit} to
 see if the access point or the client is vulnerable to a dictionary attack.
 Convert the cap file to hccapx format and/or to WPA-PMKID-PBKDF2
 hashline (16800) with @command{hcxpcaptool} from the @code{hcxtools} package
 and check if the WLAN key or the master key was transmitted unencrypted.")
-      (license license:expat))))
+    (license license:expat)))
 
 (define-public dante
   (package
diff --git a/gnu/packages/nss.scm b/gnu/packages/nss.scm
new file mode 100644
index 0000000000..480f64a046
--- /dev/null
+++ b/gnu/packages/nss.scm
@@ -0,0 +1,184 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019 Mark H Weaver <mhw@netris.org>
+;;; Copyright © 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2017, 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 nss)
+  #:use-module (guix packages)
+  #:use-module (guix download)
+  #:use-module (guix build-system gnu)
+  #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (gnu packages)
+  #:use-module (gnu packages check)
+  #:use-module (gnu packages compression)
+  #:use-module (gnu packages perl)
+  #:use-module (gnu packages sqlite)
+  #:use-module (ice-9 match))
+
+(define-public nspr
+  (package
+    (name "nspr")
+    (version "4.21")
+    (source (origin
+             (method url-fetch)
+             (uri (string-append
+                   "https://ftp.mozilla.org/pub/mozilla.org/nspr/releases/v"
+                   version "/src/nspr-" version ".tar.gz"))
+             (sha256
+              (base32
+               "0nkbgk0x31nfm4xl8la0a3vrnpa8gzkh7g4k65p7n880n73k5shm"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("perl" ,perl)))
+    (arguments
+     `(#:tests? #f ; no check target
+       #:configure-flags (list "--enable-64bit"
+                               (string-append "LDFLAGS=-Wl,-rpath="
+                                              (assoc-ref %outputs "out")
+                                              "/lib"))
+       ;; Use fixed timestamps for reproducibility.
+       #:make-flags '("SH_DATE='1970-01-01 00:00:01'"
+                      ;; This is epoch 1 in microseconds.
+                      "SH_NOW=100000")
+       #:phases (modify-phases %standard-phases
+                  (add-before 'configure 'chdir
+                    (lambda _ (chdir "nspr") #t)))))
+    (home-page
+     "https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSPR")
+    (synopsis "Netscape API for system level and libc-like functions")
+    (description "Netscape Portable Runtime (@dfn{NSPR}) provides a
+platform-neutral API for system level and libc-like functions.  It is used
+in the Mozilla clients.")
+    (license license:mpl2.0)))
+
+(define-public nss
+  (package
+    (name "nss")
+    (version "3.43")
+    (source (origin
+              (method url-fetch)
+              (uri (let ((version-with-underscores
+                          (string-join (string-split version #\.) "_")))
+                     (string-append
+                      "https://ftp.mozilla.org/pub/mozilla.org/security/nss/"
+                      "releases/NSS_" version-with-underscores "_RTM/src/"
+                      "nss-" version ".tar.gz")))
+              (sha256
+               (base32
+                "1jp27w4w9nj5pkzrbc1zqj6pa09h2yy7vhzyx5fvg1q86fvw22zk"))
+              ;; Create nss.pc and nss-config.
+              (patches (search-patches "nss-pkgconfig.patch"
+                                       "nss-increase-test-timeout.patch"))))
+    (build-system gnu-build-system)
+    (outputs '("out" "bin"))
+    (arguments
+     `(#:parallel-build? #f ; not supported
+       #:make-flags
+       (let* ((out (assoc-ref %outputs "out"))
+              (nspr (string-append (assoc-ref %build-inputs "nspr")))
+              (rpath (string-append "-Wl,-rpath=" out "/lib/nss")))
+         (list "-C" "nss" (string-append "PREFIX=" out)
+               "NSDISTMODE=copy"
+               "NSS_USE_SYSTEM_SQLITE=1"
+               (string-append "NSPR_INCLUDE_DIR=" nspr "/include/nspr")
+               ;; Add $out/lib/nss to RPATH.
+               (string-append "RPATH=" rpath)
+               (string-append "LDFLAGS=" rpath)))
+       #:modules ((guix build gnu-build-system)
+                  (guix build utils)
+                  (ice-9 ftw)
+                  (ice-9 match)
+                  (srfi srfi-26))
+       #:phases
+       (modify-phases %standard-phases
+         (replace 'configure
+           (lambda _
+             (setenv "CC" "gcc")
+             ;; Tells NSS to build for the 64-bit ABI if we are 64-bit system.
+             ,@(match (%current-system)
+                 ((or "x86_64-linux" "aarch64-linux")
+                  `((setenv "USE_64" "1")))
+                 (_
+                  '()))
+             #t))
+         (replace 'check
+           (lambda _
+             ;; Use 127.0.0.1 instead of $HOST.$DOMSUF as HOSTADDR for testing.
+             ;; The later requires a working DNS or /etc/hosts.
+             (setenv "DOMSUF" "localdomain")
+             (setenv "USE_IP" "TRUE")
+             (setenv "IP_ADDRESS" "127.0.0.1")
+
+             ;; The "PayPalEE.cert" certificate expires every six months,
+             ;; 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" "2019-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))))))
+    (inputs
+     `(("sqlite" ,sqlite)
+       ("zlib" ,zlib)))
+    (propagated-inputs `(("nspr" ,nspr))) ; required by nss.pc.
+    (native-inputs `(("perl" ,perl)
+                     ("libfaketime" ,libfaketime))) ;for tests
+
+    ;; The NSS test suite takes around 48 hours on Loongson 3A (MIPS) when
+    ;; another build is happening concurrently on the same machine.
+    (properties '((timeout . 216000)))  ; 60 hours
+
+    (home-page
+     "https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS")
+    (synopsis "Network Security Services")
+    (description
+     "Network Security Services (@dfn{NSS}) is a set of libraries designed to
+support cross-platform development of security-enabled client and server
+applications.  Applications built with NSS can support SSL v2 and v3, TLS,
+PKCS #5, PKCS #7, PKCS #11, PKCS #12, S/MIME, X.509 v3 certificates, and other
+security standards.")
+    (license license:mpl2.0)))
diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm
index 801611beb1..33acbbec4e 100644
--- a/gnu/packages/ocaml.scm
+++ b/gnu/packages/ocaml.scm
@@ -8,7 +8,7 @@
 ;;; Copyright © 2016, 2018 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016-2018 Julien Lepiller <julien@lepiller.eu>
 ;;; Copyright © 2017 Ben Woodcroft <donttrustben@gmail.com>
-;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Peter Kreye <kreyepr@gmail.com>
 ;;; Copyright © 2018, 2019 Gabriel Hondet <gabrielhondet@gmail.com>
 ;;; Copyright © 2018 Kei Kebreau <kkebreau@posteo.net>
@@ -57,6 +57,7 @@
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages protobuf)
   #:use-module (gnu packages python)
+  #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages sdl)
   #:use-module (gnu packages sqlite)
   #:use-module (gnu packages tex)
@@ -128,10 +129,10 @@
                          "/lib/ocaml/site-lib"))
     #:phases (modify-phases %standard-phases (delete 'configure))))
 
-(define-public ocaml-4.02
+(define-public ocaml-4.07
   (package
     (name "ocaml")
-    (version "4.02.3")
+    (version "4.07.1")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -140,12 +141,7 @@
                     "/ocaml-" version ".tar.xz"))
               (sha256
                (base32
-                "1qwwvy8nzd87hk8rd9sm667nppakiapnx4ypdwcrlnav2dz6kil3"))
-              (patches
-               (search-patches
-                "ocaml-CVE-2015-8869.patch"
-                "ocaml-Add-a-.file-directive.patch"
-                "ocaml-enable-ocamldoc-reproducibility.patch"))))
+                "1f07hgj5k45cylj1q3k5mk8yi02cwzx849b1fwnwia8xlcfqpr6z"))))
     (build-system gnu-build-system)
     (native-search-paths
      (list (search-path-specification
@@ -203,25 +199,7 @@ patch-/bin/sh-references: ~a: changing `\"/bin/sh\"' to `~a'~%"
          (add-after 'install 'check
            (lambda _
              (with-directory-excursion "testsuite"
-               (invoke "make" "all"))))
-         (add-before 'check 'prepare-socket-test
-           (lambda _
-             (format (current-error-port)
-                     "Spawning local test web server on port 8080~%")
-             (when (zero? (primitive-fork))
-               (run-server (lambda (request request-body)
-                             (values '((content-type . (text/plain)))
-                                     "Hello!"))
-                           'http '(#:port 8080)))
-             (let ((file "testsuite/tests/lib-threads/testsocket.ml"))
-               (format (current-error-port)
-                       "Patching ~a to use localhost port 8080~%"
-                       file)
-               (substitute* file
-                 (("caml.inria.fr") "localhost")
-                 (("80") "8080")
-                 (("HTTP1.0") "HTTP/1.0"))
-               #t))))))
+               (invoke "make" "all")))))))
     (home-page "https://ocaml.org/")
     (synopsis "The OCaml programming language")
     (description
@@ -234,44 +212,21 @@ functional, imperative and object-oriented styles of programming.")
     ;; distributed under lgpl2.0.
     (license (list license:qpl license:lgpl2.0))))
 
-(define-public ocaml-4.07
-  (package
-    (inherit ocaml-4.02)
-    (version "4.07.1")
-    (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
-                "1f07hgj5k45cylj1q3k5mk8yi02cwzx849b1fwnwia8xlcfqpr6z"))))
-    (arguments
-     (substitute-keyword-arguments (package-arguments ocaml-4.02)
-       ((#:phases phases)
-        `(modify-phases ,phases
-           (delete 'prepare-socket-test)
-           (replace 'check
-             (lambda _
-               (with-directory-excursion "testsuite"
-                 (invoke "make" "all"))
-               #t))))))))
-
 (define-public ocaml ocaml-4.07)
 
 (define-public ocamlbuild
   (package
     (name "ocamlbuild")
     (version "0.13.1")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://github.com/ocaml/ocamlbuild/archive/"
-                                  version ".tar.gz"))
-              (file-name (string-append name "-" version ".tar.gz"))
-              (sha256
-               (base32
-                "1320cfkixs1xlng5av04pa5qjb3ynvi2kl3k1ngqzg5fpi29b0vr"))))
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/ocaml/ocamlbuild.git")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0v37vjvdqw35yvj8ipmlzmwf1jhip0hbsmcbdcn9cnj12p3mr6k7"))))
     (build-system gnu-build-system)
     (arguments
      `(#:test-target "test"
@@ -302,33 +257,201 @@ functional, imperative and object-oriented styles of programming.")
 for building OCaml library and programs.")
     (license license:lgpl2.1+)))
 
+(define-public ocaml-extlib
+  (package
+    (name "ocaml-extlib")
+    (version "1.7.6")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://ygrek.org.ua/p/release/ocaml-extlib/"
+                                  "extlib-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0wfs20v1yj5apdbj7214wdsr17ayh0qqq7ihidndvc8nmmwfa1dz"))))
+    (build-system ocaml-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (delete 'configure))))
+    (native-inputs
+      `(("ocaml-cppo" ,ocaml-cppo)))
+    (home-page "https://github.com/ygrek/ocaml-extlib")
+    (synopsis "Complete and small extension for OCaml standard library")
+    (description "This library adds new functions to OCaml standard library
+modules, modifies some functions in order to get better performances or
+safety (tail-recursive) and also provides new modules which should be useful
+for day to day programming.")
+    ;; With static-linking exception
+    (license license:lgpl2.1+)))
+
+(define-public ocaml-cudf
+  (package
+    (name "ocaml-cudf")
+    (version "0.9")
+    (source
+      (origin
+        (method url-fetch)
+        (uri "https://gforge.inria.fr/frs/download.php/36602/cudf-0.9.tar.gz")
+        (sha256
+          (base32
+            "0771lwljqwwn3cryl0plny5a5dyyrj4z6bw66ha5n8yfbpcy8clr"))))
+    (build-system ocaml-build-system)
+    (propagated-inputs `(("ocaml-extlib" ,ocaml-extlib)))
+    (native-inputs
+      `(("perl" ,perl)
+        ("ocamlbuild" ,ocamlbuild)
+        ("ocaml-ounit" ,ocaml-ounit)))
+    (arguments
+     `(#:make-flags
+       (list
+         "all" "opt"
+         (string-append "BINDIR=" (assoc-ref %outputs "out")
+                        "/bin"))
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure))))
+    (home-page "http://www.mancoosi.org/cudf/")
+    (synopsis "CUDF library (part of the Mancoosi tools)")
+    (description "CUDF (for Common Upgradeability Description Format) is a
+format for describing upgrade scenarios in package-based Free and Open Source
+Software distribution.")
+    ;; With static-linking exception
+    (license license:lgpl2.1+)))
+
+(define-public ocaml-mccs
+  (package
+    (name "ocaml-mccs")
+    (version "1.1+9")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                     (url "https://github.com/AltGr/ocaml-mccs")
+                     (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1i0hhkrqi7rqlainlg5pc4hibbx6b5dp3x99gmav8c3sbfvlk9mc"))))
+    (build-system dune-build-system)
+    (propagated-inputs `(("ocaml-cudf" ,ocaml-cudf)))
+    (home-page "http://www.i3s.unice.fr/~cpjm/misc/")
+    (synopsis "Upgrade path problem solver")
+    (description "Mccs (Multi Criteria CUDF Solver) is a CUDF problem solver.
+Mccs take as input a CUDF problem and computes the best solution according to
+a set of criteria.  It relies on a Integer Programming solver or a
+Pseudo Boolean solver to achieve its task.  Mccs can use a wide set of
+underlying solvers like Cplex, Gurobi, Lpsolver, Glpk, CbC, SCIP or WBO.")
+    (license (list
+               license:bsd-3
+               license:gpl3+
+               ;; With static-linking exception
+               license:lgpl2.1+))))
+
+(define-public ocaml-dose3
+  (package
+    (name "ocaml-dose3")
+    (version "5.0.1")
+    (source (origin
+              (method url-fetch)
+              (uri "https://gforge.inria.fr/frs/download.php/file/36063/dose3-5.0.1.tar.gz")
+              (sha256
+               (base32
+                "00yvyfm4j423zqndvgc1ycnmiffaa2l9ab40cyg23pf51qmzk2jm"))
+              (patches
+               (search-patches
+                "ocaml-dose3-add-unix-dependency.patch"
+                "ocaml-dose3-Fix-for-ocaml-4.06.patch"
+                "ocaml-dose3-dont-make-printconf.patch"
+                "ocaml-dose3-Install-mli-cmx-etc.patch"))))
+    (build-system ocaml-build-system)
+    (arguments
+     `(#:configure-flags
+       (list (string-append "SHELL="
+                            (assoc-ref %build-inputs "bash")
+                            "/bin/sh"))
+       #:make-flags
+       (list (string-append "LIBDIR="
+                            (assoc-ref %outputs "out")
+                            "/lib/ocaml/site-lib"))))
+    (propagated-inputs
+      `(("ocaml-graph" ,ocaml-graph)
+        ("ocaml-cudf" ,ocaml-cudf)
+        ("ocaml-extlib" ,ocaml-extlib)
+        ("ocaml-re" ,ocaml-re)))
+    (native-inputs
+      `(("perl" ,perl)
+        ("python" ,python-2) ; for a test script
+        ("python2-pyyaml" ,python2-pyyaml) ; for a test script
+        ("ocaml-extlib" ,ocaml-extlib)
+        ("ocamlbuild" ,ocamlbuild)
+        ("ocaml-cppo" ,ocaml-cppo)))
+    (home-page "http://www.mancoosi.org/software/")
+    (synopsis "Package distribution management framework")
+    (description "Dose3 is a framework made of several OCaml libraries for
+managing distribution packages and their dependencies.  Though not tied to
+any particular distribution, dose3 constitutes a pool of libraries which
+enable analyzing packages coming from various distributions.  Besides basic
+functionalities for querying and setting package properties, dose3 also
+implements algorithms for solving more complex problems such as monitoring
+package evolutions, correct and complete dependency resolution and
+repository-wide uninstallability checks.")
+    ;; with static-linking exception
+    (license license:lgpl2.1+)))
+
+(define-public ocaml-opam-file-format
+  (package
+    (name "ocaml-opam-file-format")
+    (version "2.0.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                     (url "https://github.com/ocaml/opam-file-format")
+                     (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0fqb99asnair0043hhc8r158d6krv5nzvymd0xwycr5y72yrp0hv"))))
+    (build-system ocaml-build-system)
+    (arguments
+     `(#:tests? #f; No tests
+       #:make-flags (list (string-append "LIBDIR=" (assoc-ref %outputs "out")
+                                         "/lib/ocaml/site-lib"))
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure))))
+    (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.")
+    ;; With static-linking exception
+    (license license:lgpl2.1+)))
+
 (define-public opam
   (package
     (name "opam")
-    (version "2.0.3")
+    (version "2.0.4")
     (source (origin
-              (method url-fetch)
-              ;; Use the '-full' version, which includes all the dependencies.
-              (uri (string-append
-                    "https://github.com/ocaml/opam/releases/download/"
-                    version "/opam-full-" version ".tar.gz")
-               ;; (string-append "https://github.com/ocaml/opam/archive/"
-               ;;                    version ".tar.gz")
-               )
+              (method git-fetch)
+              (uri (git-reference
+                     (url "https://github.com/ocaml/opam")
+                     (commit version)))
+              (file-name (git-file-name name version))
               (sha256
                (base32
-                "1qphm1grxx5j8li7f9qfpih4ylrnjl08b4ym8ma4ln44l56xm285"))))
-    (build-system gnu-build-system)
+                "1yx5k8v5vnnc20fmz5zx8kqd242j48qcknlk6vmkr7rkq886ipq2"))))
+    (build-system ocaml-build-system)
     (arguments
-     '(;; Sometimes, 'make -jX' would fail right after ./configure with
-       ;; "Fatal error: exception End_of_file".
-       #:parallel-build? #f
+     `(#:configure-flags
+       (list (string-append "SHELL="
+                            (assoc-ref %build-inputs "bash")
+                            "/bin/sh"))
 
        ;; For some reason, 'ocp-build' needs $TERM to be set.
-       #:make-flags `("TERM=screen"
-                      ,(string-append "SHELL="
-                                      (assoc-ref %build-inputs "bash")
-                                      "/bin/sh"))
+       #:make-flags
+       (list "TERM=screen"
+             (string-append "SHELL="
+                            (assoc-ref %build-inputs "bash")
+                            "/bin/sh"))
+
        #:test-target "tests"
 
        ;; FIXME: There's an obscure test failure:
@@ -354,12 +477,10 @@ for building OCaml library and programs.")
                          ;; isolated environment when building with opam.
                          ;; This is necessary for packages to find external
                          ;; dependencies, such as a C compiler, make, etc...
-                         (("^add_mounts ro /usr")
-                          "add_mounts ro /gnu /run/current-system /usr"))
+                         (("^add_sys_mounts /usr")
+                          "add_sys_mounts /gnu /run/current-system /usr"))
                        (substitute* "src/client/opamInitDefaults.ml"
                          (("\"bwrap\"") (string-append "\"" bwrap "\"")))
-                       ;; Build dependencies
-                       (apply invoke "make" "lib-ext" make-flags)
                        #t)))
                  (add-before 'check 'pre-check
                    (lambda _
@@ -368,7 +489,9 @@ for building OCaml library and programs.")
                      (invoke "git" "config" "--global" "user.name" "Guix")
                      #t)))))
     (native-inputs
-     `(("git" ,git)                               ;for the tests
+     `(("dune" ,dune)
+       ("git" ,git)                               ;for the tests
+       ("ocaml-cppo" ,ocaml-cppo)
        ("python" ,python)                         ;for the tests
        ("camlp4" ,camlp4)))
     (inputs
@@ -376,6 +499,12 @@ for building OCaml library and programs.")
        ("ncurses" ,ncurses)
        ("curl" ,curl)
        ("bubblewrap" ,bubblewrap)))
+    (propagated-inputs
+     `(("ocaml-cmdliner" ,ocaml-cmdliner)
+       ("ocaml-dose3" ,ocaml-dose3)
+       ("ocaml-mccs" ,ocaml-mccs)
+       ("ocaml-opam-file-format" ,ocaml-opam-file-format)
+       ("ocaml-re" ,ocaml-re)))
     (home-page "http://opam.ocamlpro.com/")
     (synopsis "Package manager for OCaml")
     (description
@@ -386,22 +515,25 @@ Git-friendly development workflow.")
     ;; The 'LICENSE' file waives some requirements compared to LGPLv3.
     (license license:lgpl3)))
 
-(define-public camlp4-4.02
+(define-public camlp4-4.07
   (package
     (name "camlp4")
-    (version "4.02+6")
+    (version "4.07+1")
     (source (origin
-              (method url-fetch)
-              (uri (string-append "https://github.com/ocaml/camlp4/archive/"
-                                  version ".tar.gz"))
-              (sha256
-               (base32
-                "0icdfzhsbgf89925gc8gl3fm8z2xzszzlib0v9dj5wyzkyv3a342"))
-              (file-name (string-append name "-" version ".tar.gz"))))
+             (method git-fetch)
+             (uri (git-reference
+                   (url "https://github.com/ocaml/camlp4.git")
+                   (commit version)))
+             (file-name (git-file-name name version))
+             (sha256
+              (base32
+               "0cxl4hkqcvspvkx4f2k83217rh6051fll9i2yz7cw6m3bq57mdvl"))))
     (build-system gnu-build-system)
-    (native-inputs `(("ocaml" ,ocaml-4.02)
-                     ("which" ,which)))
-    (inputs `(("ocaml" ,ocaml-4.02)))
+    (native-inputs
+     `(("ocaml" ,ocaml-4.07)
+       ("ocamlbuild" ,ocamlbuild)
+       ("which" ,which)))
+    (inputs `(("ocaml" ,ocaml-4.07)))
     (arguments
      '(#:tests? #f                                ;no documented test target
        ;; a race-condition will lead byte and native targets to  mkdir _build
@@ -442,42 +574,21 @@ syntax of OCaml.")
     ;; against the library to be released under any terms.
     (license license:lgpl2.0)))
 
-(define-public camlp4-4.07
-  (package
-    (inherit camlp4-4.02)
-    (name "camlp4")
-    (version "4.07+1")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://github.com/ocaml/camlp4/archive/"
-                                  version ".tar.gz"))
-              (sha256
-               (base32
-                "143hhxv1i6aq413z0i1pynrjcfl2g5gnh5r3863v6h9z0riqknzc"))
-              (file-name (string-append name "-" version ".tar.gz"))))
-    (properties
-     `((ocaml4.02-variant . ,(delay camlp4-4.02))))
-    (native-inputs
-     `(("ocaml" ,ocaml-4.07)
-       ("ocamlbuild" ,ocamlbuild)
-       ("which" ,which)))
-    (inputs
-     `(("ocaml" ,ocaml-4.07)))))
-
 (define-public camlp4 camlp4-4.07)
 
 (define-public camlp5
   (package
     (name "camlp5")
     (version "7.07")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://github.com/camlp5/camlp5/archive/rel"
-                                  (string-delete #\. version) ".tar.gz"))
-              (file-name (string-append name "-" version ".tar.gz"))
-              (sha256
-               (base32
-                "148r6p93xlxi6v7kbsqv8i70r6av04cyn0109pwss5xj6fw97i52"))))
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/camlp5/camlp5.git")
+             (commit (string-append "rel" (string-delete #\. version)))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1c8v45553ccbqha2ypfranqlgw06rr5wjr2hlnrx5bf9jfq0h0dn"))))
     (build-system gnu-build-system)
     (inputs
      `(("ocaml" ,ocaml)))
@@ -556,14 +667,15 @@ written in Objective Caml.")
   (package
     (name "ocaml-num")
     (version "1.1")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://github.com/ocaml/num/archive/v"
-                                  version ".tar.gz"))
-              (file-name (string-append name "-" version ".tar.gz"))
-              (sha256
-               (base32
-                "1xlkd0svc0mgq5s7nrm2rjrsvg15i9wxqkc1kvwjp6sv8vv8bb04"))))
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/ocaml/num.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0a4mhxgs5hi81d227aygjx35696314swas0vzy3ig809jb7zq4h0"))))
     (build-system ocaml-build-system)
     (arguments
      `(#:phases
@@ -600,20 +712,25 @@ the OCaml core distribution.")
   (package
     (name "emacs-tuareg")
     (version "2.2.0")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://github.com/ocaml/tuareg/archive/"
-                                  version ".tar.gz"))
-              (file-name (string-append name "-" version ".tar.gz"))
-              (sha256
-               (base32
-                "1ynpfc170f9jqx49biji9npfkvfpflbm29xf24wc7fnxxayr49ig"))))
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/ocaml/tuareg.git")
+             (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)
@@ -663,8 +780,6 @@ Emacs.")
              (let ((out (assoc-ref outputs "out")))
                (setenv "PREFIX" out))
              #t)))))
-    (properties
-     `((ocaml4.02-variant . ,(delay ocaml4.02-menhir))))
     (home-page "http://gallium.inria.fr/~fpottier/menhir")
     (synopsis "Parser generator")
     (description "Menhir is a parser generator.  It turns high-level grammar
@@ -676,12 +791,27 @@ Knuth’s LR(1) parser construction technique.")
     ;; are QPL licensed.
     (license (list license:gpl2+ license:qpl))))
 
-(define-public ocaml4.02-menhir
+(define-public ocaml-bigarray-compat
   (package
-    (inherit ocaml-menhir)
-    (name "ocaml4.02-menhir")
-    (inputs `(("ocaml" ,ocaml-4.02)))
-    (native-inputs '())))
+    (name "ocaml-bigarray-compat")
+    (version "1.0.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                     (url "https://github.com/mirage/bigarray-compat")
+                     (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "06j1dwlpisxshdd0nab4n4x266gg1s1n8na16lpgw3fvcznwnimz"))))
+    (build-system dune-build-system)
+    (arguments
+     `(#:tests? #f)); no tests
+    (home-page "https://github.com/mirage/bigarray-compat")
+    (synopsis "OCaml compatibility library")
+    (description "This package contains a compatibility library for
+@code{Stdlib.Bigarray} in OCaml.")
+    (license license:isc)))
 
 (define-public lablgtk
   (package
@@ -694,8 +824,6 @@ Knuth’s LR(1) parser construction technique.")
                (base32
                 "1y38fdvswy6hmppm65qvgdk4pb3ghhnvz7n4ialf46340r1s5p2d"))))
     (build-system gnu-build-system)
-    (properties
-     `((ocaml4.02-variant . ,(delay ocaml4.02-lablgtk))))
     (native-inputs
      `(("camlp4" ,camlp4)
        ("ocaml" ,ocaml)
@@ -746,23 +874,6 @@ libglade (and it an generate OCaml code from .glade files),
 libpanel, librsvg and quartz.")
     (license license:lgpl2.1)))
 
-(define-public ocaml4.02-lablgtk
-  (package
-    (inherit lablgtk)
-    (name "ocaml4.02-lablgtk")
-    (version "2.18.5")
-    (source (origin
-              (method url-fetch)
-              (uri (ocaml-forge-uri name version 1627))
-              (sha256
-               (base32
-                "0cyj6sfdvzx8hw7553lhgwc0krlgvlza0ph3dk9gsxy047dm3wib"))))
-    (native-inputs
-     `(("camlp4" ,camlp4-4.02)
-       ("ocaml" ,ocaml-4.02)
-       ("findlib" ,ocaml4.02-findlib)
-       ("pkg-config" ,pkg-config)))))
-
 (define-public unison
   (package
     (name "unison")
@@ -905,15 +1016,6 @@ compilation and linkage, there are new frontends of the various OCaml
 compilers that can directly deal with packages.")
     (license license:x11)))
 
-(define-public ocaml4.02-findlib
-  (package
-    (inherit ocaml-findlib)
-    (name "ocaml4.02-findlib")
-    (native-inputs
-     `(("camlp4" ,camlp4-4.02)
-       ("m4" ,m4)
-       ("ocaml" ,ocaml-4.02)))))
-
 ;; note that some tests may hang for no obvious reason.
 (define-public ocaml-ounit
   (package
@@ -939,9 +1041,6 @@ compilers that can directly deal with packages.")
 other XUnit testing frameworks.")
     (license license:expat)))
 
-(define-public ocaml4.02-ounit
-  (package-with-ocaml4.02 ocaml-ounit))
-
 (define-public camlzip
   (package
     (name "camlzip")
@@ -984,9 +1083,6 @@ JAR format.  It provides functions for reading from and writing to compressed
 files in these formats.")
     (license license:lgpl2.1+)))
 
-(define-public ocaml4.02-camlzip
-  (package-with-ocaml4.02 camlzip))
-
 (define-public ocamlmod
   (package
     (name "ocamlmod")
@@ -1011,19 +1107,18 @@ files in these formats.")
     (description "Generate modules from OCaml source files.")
     (license license:lgpl2.1+))) ; with an exception
 
-(define-public ocaml4.02-ocamlmod
-  (package-with-ocaml4.02 ocamlmod))
-
 (define-public ocaml-zarith
   (package
     (name "ocaml-zarith")
-    (version "1.4.1")
+    (version "1.7")
     (source (origin
-              (method url-fetch)
-              (uri (ocaml-forge-uri "zarith" version 1574))
+              (method git-fetch)
+              (uri (git-reference
+                     (url "https://github.com/ocaml/Zarith")
+                     (commit (string-append "release-" version))))
               (sha256
                (base32
-                "0l36hzmfbvdai2kcgynh13vfdim5x2grnaw61fxqalyjm90c3di3"))))
+                "08x5xnamibhvxl50f1bb3jl9ym0hm6004hmc54xnrnrv7jxz9rvz"))))
     (build-system ocaml-build-system)
     (native-inputs
      `(("perl" ,perl)))
@@ -1043,25 +1138,23 @@ over big integers. Small integers are represented as Caml unboxed integers,
 for speed and space economy.")
     (license license:lgpl2.1+))) ; with an exception
 
-(define-public ocaml4.02-zarith
-  (package-with-ocaml4.02 ocaml-zarith))
-
 (define-public ocaml-frontc
   (package
     (name "ocaml-frontc")
-    (version "3.4")
+    (version "3.4.1")
     (source (origin
-              (method url-fetch)
-              (uri (string-append "https://www.irit.fr/recherches/ARCHI/MARCH/"
-                                  "frontc/Frontc-" version ".tgz"))
+              (method git-fetch)
+              (uri (git-reference
+                     (url "https://github.com/BinaryAnalysisPlatform/FrontC")
+                     (commit (string-append
+                               "V_" (string-join (string-split version #\.) "_")))))
+              (file-name (git-file-name name version))
               (sha256
                (base32
-                "16dz153s92dgbw1rrfwbhscy73did87kfmjwyh3qpvs748h1sc4g"))))
+                "1dq5nks0c9gsbr1m8k39m1bniawr5hqcy1r8x5px7naa95ch06ak"))))
     (build-system ocaml-build-system)
     (arguments
-     `(#:ocaml ,ocaml-4.02
-       #:findlib ,ocaml4.02-findlib
-       #:phases
+     `(#:phases
        (modify-phases %standard-phases
          (delete 'configure)
          (add-after 'install 'install-meta
@@ -1082,6 +1175,7 @@ archive(native) = \"frontc.cmxa\""))))
        #:make-flags (list (string-append "PREFIX="
                                          (assoc-ref %outputs "out"))
                           "OCAML_SITE=$(LIB_DIR)/ocaml/")))
+    (properties `((upstream-name . "FrontC")))
     (home-page "https://www.irit.fr/FrontC")
     (synopsis "C parser and lexer library")
     (description "FrontC is an OCAML library providing a C parser and lexer.
@@ -1093,18 +1187,22 @@ GNU CC attributes.  It provides also a C pretty printer as an example of use.")
 (define-public ocaml-qcheck
   (package
     (name "ocaml-qcheck")
-    (version "0.5.3.1")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://github.com/c-cube/qcheck/archive/"
-                                  version ".tar.gz"))
-              (file-name (string-append name "-" version ".tar.gz"))
-              (sha256
-               (base32
-                "1zs1pg5cb1iry554v3cdmmiglsrwmsqa9x8zxmzb118fnk5d3ha6"))))
-    (build-system ocaml-build-system)
+    (version "0.9")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/c-cube/qcheck.git")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0w83v9ylycsssyn47q8wnkfbvhn5vn10z6i35n5965i2m1r0mmcf"))))
+    (build-system dune-build-system)
+    (arguments
+     `(#:test-target "."))
     (native-inputs
-     `(("ounit" ,ocaml-ounit)
+     `(("ocaml-alcotest" ,ocaml-alcotest)
+       ("ocaml-ounit" ,ocaml-ounit)
        ("ocamlbuild" ,ocamlbuild)))
     (home-page "https://github.com/c-cube/qcheck")
     (synopsis "QuickCheck inspired property-based testing for OCaml")
@@ -1114,34 +1212,26 @@ generated instances of the type. It provides combinators for generating
 instances and printing them.")
     (license license:lgpl3+)))
 
-(define-public ocaml4.02-qcheck
-  (package-with-ocaml4.02 ocaml-qcheck))
-
 (define-public ocaml-qtest
   (package
     (name "ocaml-qtest")
-    (version "2.8")
+    (version "2.9")
     (source (origin
-              (method url-fetch)
-              (uri (string-append "https://github.com/vincent-hugot/qtest/"
-                                  "archive/" version ".tar.gz"))
-              (file-name (string-append name "-" version ".tar.gz"))
+              (method git-fetch)
+              (uri (git-reference
+                     (url "https://github.com/vincent-hugot/qtest/")
+                     (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
               (sha256
                (base32
-                "1ff4if64mc9c7wmhjdgnlnh6k6a713piqzr4043zzj4s5pw7smxk"))))
-    (build-system ocaml-build-system)
-    (native-inputs
-     `(("ocamlbuild" ,ocamlbuild)))
+                "1ifxc8jndwah82g5k8xaa7jskbv866j4zpd0w41f0pskg4y0z9g1"))))
+    (build-system dune-build-system)
+    (arguments
+     `(#:jbuild? #t
+       #:test-target "tests"))
     (propagated-inputs
      `(("ounit" ,ocaml-ounit)
        ("qcheck" ,ocaml-qcheck)))
-    (arguments
-     `(#:tests? #f ; No test target.
-       #:make-flags
-       (list (string-append "BIN=" (assoc-ref %outputs "out") "/bin"))
-       #:phases
-       (modify-phases %standard-phases
-         (delete 'configure))))
     (home-page "https://github.com/vincent-hugot/qtest")
     (synopsis "Inline (Unit) Tests for OCaml")
     (description "Qtest extracts inline unit tests written using a special
@@ -1150,22 +1240,22 @@ qcheck library.  The possibilities range from trivial tests -- extremely simple
 to use -- to sophisticated random generation of test cases.")
     (license license:lgpl3+)))
 
-(define-public ocaml4.02-qtest
-  (package-with-ocaml4.02 ocaml-qtest))
-
 (define-public ocaml-stringext
   (package
     (name "ocaml-stringext")
-    (version "1.4.3")
+    (version "1.5.0")
     (source (origin
-              (method url-fetch)
-              (uri (string-append "https://github.com/rgrinberg/stringext"
-                                  "/archive/v" version ".tar.gz"))
-              (file-name (string-append name "-" version ".tar.gz"))
+              (method git-fetch)
+              (uri (git-reference
+                     (url "https://github.com/rgrinberg/stringext")
+                     (commit version)))
+              (file-name (git-file-name name version))
               (sha256
                (base32
-                "19g6lfn03iki9f8h91hi0yiqn0b3wkxyq08b3y23wgv6jw6mssfh"))))
-    (build-system ocaml-build-system)
+                "0035pyakk0r7pfhkrayvqncpv9mk6lssr455j3prmdcirh6s50d7"))))
+    (build-system dune-build-system)
+    (arguments
+     `(#:test-target "."))
     (native-inputs
      `(("ocamlbuild" ,ocamlbuild)
        ("qtest" ,ocaml-qtest)))
@@ -1178,24 +1268,22 @@ full_split, cut, rcut, etc..")
     ;; where it says `mit'.
     (license license:expat)))
 
-(define-public ocaml4.02-stringext
-  (package-with-ocaml4.02 ocaml-stringext))
-
 (define-public ocaml-bisect
   (package
     (name "ocaml-bisect")
     (version "1.3.1")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://github.com/gasche/bisect/archive/"
-                                  version ".tar.gz"))
-              (file-name (string-append name "-" version ".tar.gz"))
-              (sha256
-               (base32
-                "0p67fppk5ifb63b00kxwrb1xg75hrqhknng3bsdyw3gxxqyjlpmx"))
-              (patches
-               (search-patches
-                "ocaml-bisect-fix-camlp4-in-another-directory.patch"))))
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/gasche/bisect.git")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0hm5za61qydda6ri3887b4zqqbqilh42x712xnclm1rr7ggga2nh"))
+       (patches
+        (search-patches
+         "ocaml-bisect-fix-camlp4-in-another-directory.patch"))))
     (build-system ocaml-build-system)
     (native-inputs
      `(("camlp4" ,camlp4)
@@ -1225,36 +1313,25 @@ a camlp4-based tool that allows to instrument your application before running
 tests.  After application execution, it is possible to generate a report in HTML
 format that is the replica of the application source code annotated with code
 coverage information.")
-    (properties
-     `((ocaml4.02-variant . ,(delay ocaml4.02-bisect))))
     (license license:gpl3+)))
 
-(define-public ocaml4.02-bisect
-  (let ((base (package-with-ocaml4.02 (strip-ocaml4.02-variant ocaml-bisect))))
-    (package
-      (inherit base)
-      (native-inputs
-       `(("camlp4" ,camlp4-4.02)
-         ("libxml2" ,libxml2)
-         ("which" ,which)))
-      (propagated-inputs
-       `(("camlp4" ,camlp4-4.02))))))
-
 (define-public dune
   (package
     (name "dune")
-    (version "1.6.3")
+    (version "1.9.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/ocaml/dune/releases/"
                                   "download/" version "/dune-" version ".tbz"))
               (sha256
                (base32
-                "0dmf0wbfmgdy5plz1bjiisc2hjgblvxsnrqjmw2c8y45v1h23mdz"))))
+                "0z4jnj0a5vxjqlwksplhag9b3s3iqdcpcpjjzfazv5jdl5cf58f9"))))
     (build-system ocaml-build-system)
     (arguments
      `(#:tests? #f; require odoc
-       #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
+       #:make-flags (list (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
@@ -1279,6 +1356,7 @@ following a very simple s-expression syntax.")
        (uri (git-reference
              (url (string-append home-page ".git"))
              (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
        (sha256
         (base32
          "16kas19iwm4afijv3yxd250s08absabmdcb4yj57wc8r4fmzv5dm"))))
@@ -1289,6 +1367,7 @@ following a very simple s-expression syntax.")
      `(("ocaml-ppx-derivers" ,ocaml-ppx-derivers)
        ("ocamlbuild" ,ocamlbuild)
        ("ocaml-result" ,ocaml-result)))
+    (properties `((upstream-name . "ocaml-migrate-parsetree")))
     (synopsis "OCaml parsetree convertor")
     (description "This library converts between parsetrees of different OCaml
 versions.  For each version, there is a snapshot of the parsetree and conversion
@@ -1313,6 +1392,7 @@ functions to the next and/or previous version.")
      `(#:test-target "."))
     (propagated-inputs
      `(("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree)))
+    (properties `((upstream-name . "ppx_tools_versioned")))
     (home-page "https://github.com/let-def/ppx_tools_versioned")
     (synopsis "Variant of ppx_tools")
     (description "This package is a variant of ppx_tools based on
@@ -1344,8 +1424,6 @@ ocaml-migrate-parsetree")
     (arguments
      `(#:tests? #f; Tests fail to build
        #:jbuild? #t))
-    (properties
-      `((ocaml4.02-variant . ,(delay ocaml4.02-bitstring))))
     (home-page "https://github.com/xguerin/bitstring")
     (synopsis "Bitstrings and bitstring matching for OCaml")
     (description "Adds Erlang-style bitstrings and matching over bitstrings as
@@ -1355,86 +1433,22 @@ as primitives to the language, making it exceptionally simple to use and very
 powerful.")
     (license license:isc)))
  
-(define-public ocaml4.02-bitstring
-  (let ((base (package-with-ocaml4.02 (strip-ocaml4.02-variant ocaml-bitstring))))
-    (package
-      (inherit base)
-      (version "2.1.1")
-      (source (origin
-                (method url-fetch)
-                (uri (string-append "https://github.com/xguerin/bitstring"
-                                    "/archive/v" version ".tar.gz"))
-                (file-name (string-append "ocaml-bitstring-" version ".tar.gz"))
-                (sha256
-                 (base32
-                  "0vy8ibrxccii1jbsk5q6yh1kxjigqvi7lhhcmizvd5gfhf7mfyc8"))
-                (patches (search-patches "ocaml-bitstring-fix-configure.patch"))))
-      (build-system ocaml-build-system)
-      (arguments
-       `(#:ocaml ,ocaml-4.02
-         #:findlib ,ocaml4.02-findlib
-         #:configure-flags
-         (list "CAMLP4OF=camlp4of" "--enable-coverage")
-         #:make-flags
-         (list (string-append "BISECTLIB="
-                              (assoc-ref %build-inputs "bisect")
-                              "/lib/ocaml/site-lib")
-               (string-append "OCAMLCFLAGS=-g -I "
-                              (assoc-ref %build-inputs "camlp4")
-                              "/lib/ocaml/site-lib/camlp4 -I "
-                              "$(BISECTLIB)/bisect")
-               (string-append "OCAMLOPTFLAGS=-g -I "
-                              (assoc-ref %build-inputs "camlp4")
-                              "/lib/ocaml/site-lib/camlp4 -I "
-                              "$(BISECTLIB)/bisect"))
-         #:phases
-         (modify-phases %standard-phases
-           (add-after 'install 'link-lib
-             (lambda* (#:key outputs #:allow-other-keys)
-               (let* ((out (assoc-ref outputs "out"))
-                      (stubs (string-append out
-                                            "/lib/ocaml/site-lib/stubslibs"))
-                      (lib (string-append out
-                                          "/lib/ocaml/site-lib/bitstring")))
-                 (mkdir-p stubs)
-                 (symlink (string-append lib "/dllbitstring.so")
-                          (string-append stubs "/dllbitstring.so")))
-               #t))
-           (add-before 'configure 'fix-configure
-             (lambda* (#:key inputs #:allow-other-keys)
-               (substitute* "Makefile.in"
-                 (("@abs_top_builddir@")
-                  (string-append "@abs_top_builddir@:" (getenv "LIBRARY_PATH"))))
-               (substitute* "configure"
-                 (("-/bin/sh") (string-append "-" (assoc-ref inputs "bash")
-                                              "/bin/sh"))))))))
-      (native-inputs
-       `(("camlp4" ,camlp4-4.02)
-         ("time" ,time)
-         ("autoconf" ,autoconf)
-         ("automake" ,automake)
-         ("bisect" ,ocaml4.02-bisect)))
-      (propagated-inputs
-       `(("camlp4" ,camlp4-4.02))))))
-
 (define-public ocaml-result
   (package
     (name "ocaml-result")
-    (version "1.2")
+    (version "1.3")
     (source (origin
-              (method url-fetch)
-              (uri (string-append "https://github.com/janestreet/result"
-                                  "/archive/" version ".tar.gz"))
-              (file-name (string-append name "-" version ".tar.gz"))
+              (method git-fetch)
+              (uri (git-reference
+                     (url "https://github.com/janestreet/result")
+                     (commit version)))
+              (file-name (git-file-name name version))
               (sha256
                (base32
-                "1pgpfsgvhxnh0i37fkvp9j8nadns9hz9iqgabj4dr519j2gr1xvw"))))
-    (build-system ocaml-build-system)
+                "081ayblszn9pj2rqcif40x6cz2zda48vi45gy49rc2qfc4gszry3"))))
+    (build-system dune-build-system)
     (arguments
-     `(#:tests? #f
-       #:phases
-       (modify-phases %standard-phases
-         (delete 'configure))))
+     `(#:test-target "."))
     (home-page "https://github.com/janestreet/result")
     (synopsis "Compatibility Result module")
     (description "Uses the new result type defined in OCaml >= 4.03 while
@@ -1442,20 +1456,17 @@ staying compatible with older version of OCaml should use the Result module
 defined in this library.")
     (license license:bsd-3)))
  
-(define-public ocaml4.02-result
-  (package-with-ocaml4.02 ocaml-result))
-
 (define-public ocaml-topkg
   (package
     (name "ocaml-topkg")
-    (version "0.8.1")
+    (version "1.0.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "http://erratique.ch/software/topkg/releases/"
                                   "topkg-" version ".tbz"))
               (sha256
                (base32
-                "18rrh6fmf708z7dd30amljmcgaypj3kk49jrmrj68r4wnw8004j8"))))
+                "1df61vw6v5bg2mys045682ggv058yqkqb67w7r2gz85crs04d5fw"))))
     (build-system ocaml-build-system)
     (native-inputs
      `(("opam" ,opam)
@@ -1476,9 +1487,6 @@ configuration and to specify information about the package's distribution,
 creation and publication procedures.")
     (license license:isc)))
  
-(define-public ocaml4.02-topkg
-  (package-with-ocaml4.02 ocaml-topkg))
-
 (define-public ocaml-rresult
   (package
     (name "ocaml-rresult")
@@ -1510,9 +1518,6 @@ to operate on the result type available from OCaml 4.03 in the standard
 library.")
     (license license:isc)))
 
-(define-public ocaml4.02-rresult
-  (package-with-ocaml4.02 ocaml-rresult))
-
 (define-public ocaml-sqlite3
   (package
     (name "ocaml-sqlite3")
@@ -1543,26 +1548,24 @@ coexistence with the old (version 2) SQLite and its OCaml wrapper
 @code{ocaml-sqlite}.")
     (license license:expat)))
 
-(define-public ocaml4.02-sqlite3
-  (package-with-ocaml4.02 ocaml-sqlite3))
-
 (define-public ocaml-csv
   (package
     (name "ocaml-csv")
-    (version "1.6")
+    (version "2.2")
     (source
      (origin
-       (method url-fetch)
-       (uri
-        (string-append
-         "https://github.com/Chris00/ocaml-csv/releases/download/"
-         version "/csv-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+              (url "https://github.com/Chris00/ocaml-csv")
+              (commit version)))
+       (file-name (git-file-name name version))
        (sha256
         (base32
-         "0rv7x843vn6scxj87hzl01yqrl26rc27lr8s7z6rp9vs745g05zj"))))
-    (build-system ocaml-build-system)
-    (native-inputs
-     `(("ocamlbuild" ,ocamlbuild)))
+         "07qdw8bbvprk78x96pnm807rhs82ks6sxis1cf5nyng8b5nvm2mv"))))
+    (build-system dune-build-system)
+    (arguments
+     `(#:package "csv"
+       #:test-target "."))
     (home-page "https://github.com/Chris00/ocaml-csv")
     (synopsis "Pure OCaml functions to read and write CSV")
     (description
@@ -1572,20 +1575,17 @@ read and write files in this format as well as some convenience functions to
 manipulate such data.")
     (license (package-license camlp4))))
 
-(define-public ocaml4.02-csv
-  (package-with-ocaml4.02 ocaml-csv))
-
 (define-public ocaml-mtime
   (package
     (name "ocaml-mtime")
-    (version "0.8.3")
+    (version "1.1.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "http://erratique.ch/software/mtime/releases/"
                                   "mtime-" version ".tbz"))
               (sha256
                (base32
-                "1hfx4ny2dkw6jf3jppz0640dafl5xgn8r2si9kpwzhmibal8qrah"))))
+                "1qb4ljwirrc3g8brh97s76rjky2cpmy7zm87y7iqd6pxix52ydk3"))))
     (build-system ocaml-build-system)
     (native-inputs
      `(("ocamlbuild" ,ocamlbuild)
@@ -1594,8 +1594,7 @@ manipulate such data.")
      `(("topkg" ,ocaml-topkg)))
     (arguments
      `(#:tests? #f
-       #:build-flags
-       '("native=true" "native-dynlink=true" "jsoo=false")
+       #:build-flags (list "build" "--with-js_of_ocaml" "false")
        #:phases
        (modify-phases %standard-phases
          (delete 'configure))))
@@ -1605,37 +1604,28 @@ manipulate such data.")
 spans without being subject to operating system calendar time adjustments.")
     (license license:isc)))
 
-(define-public ocaml4.02-mtime
-  (package-with-ocaml4.02 ocaml-mtime))
-
 (define-public ocaml-cmdliner
   (package
     (name "ocaml-cmdliner")
-    (version "1.0.2")
+    (version "1.0.3")
     (source (origin
               (method url-fetch)
               (uri (string-append "http://erratique.ch/software/cmdliner/releases/"
                                   "cmdliner-" version ".tbz"))
               (sha256
                (base32
-                "18jqphjiifljlh9jg8zpl6310p3iwyaqphdkmf89acyaix0s4kj1"))))
+                "0g3w4hvc1cx9x2yp5aqn6m2rl8lf9x1dn754hfq8m1sc1102lxna"))))
     (build-system ocaml-build-system)
     (inputs
      `(("ocaml-result" ,ocaml-result)))
     (native-inputs
-     `(("ocamlbuild" ,ocamlbuild)
-       ("opam" ,opam)))
+     `(("ocamlbuild" ,ocamlbuild)))
     (arguments
      `(#:tests? #f
-       #:build-flags '("native=true" "native-dynlink=true")
+       #:make-flags (list (string-append "LIBDIR=" (assoc-ref %outputs "out")
+                                         "/lib/ocaml/site-lib/cmdliner"))
        #:phases
        (modify-phases %standard-phases
-         (replace 'install
-           ;; The makefile says 'adjust on cli invocation'
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let ((out (assoc-ref outputs "out")))
-               (invoke "make" "install" (string-append "PREFIX=" out))
-               #t)))
          (delete 'configure))))
     (home-page "http://erratique.ch/software/cmdliner")
     (synopsis "Declarative definition of command line interfaces for OCaml")
@@ -1647,9 +1637,6 @@ generation. It supports programs with single or multiple commands and respects
 most of the POSIX and GNU conventions.")
     (license license:bsd-3)))
 
-(define-public ocaml4.02-cmdliner
-  (package-with-ocaml4.02 ocaml-cmdliner))
-
 (define-public ocaml-fmt
   (package
     (name "ocaml-fmt")
@@ -1682,9 +1669,6 @@ most of the POSIX and GNU conventions.")
 functions.")
     (license license:isc)))
 
-(define-public ocaml4.02-fmt
-  (package-with-ocaml4.02 ocaml-fmt))
-
 (define-public ocaml-astring
   (package
     (name "ocaml-astring")
@@ -1718,34 +1702,29 @@ adds a few missing functions and fully exploits OCaml's newfound string
 immutability.")
     (license license:isc)))
 
-(define-public ocaml4.02-astring
-  (package-with-ocaml4.02 ocaml-astring))
-
 (define-public ocaml-alcotest
   (package
     (name "ocaml-alcotest")
-    (version "0.7.2")
+    (version "0.8.5")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/mirage/alcotest/releases/"
                                   "download/" version "/alcotest-" version ".tbz"))
               (sha256
                 (base32
-                  "0g5lzk0gpfx4q8hyhr460gr4lab5wakfxsmhfwvb3yinxwzs95gc"))))
-    (build-system ocaml-build-system)
+                  "0szwjxvaahgynsx0apj81jxj3ki6yz4is9mh2wkcbx66qy7n6fvb"))))
+    (build-system dune-build-system)
     (arguments
-     `(#:tests? #f
-       #:build-flags (list "build")
-       #:phases
-       (modify-phases %standard-phases
-         (delete 'configure))))
+     `(#:package "alcotest"
+       #:test-target "."))
     (native-inputs
-     `(("ocamlbuild" ,ocamlbuild)
-       ("opam" ,opam)
-       ("topkg" ,ocaml-topkg)))
+     `(("ocamlbuild" ,ocamlbuild)))
     (propagated-inputs
-     `(("fmt" ,ocaml-fmt)
-       ("astring" ,ocaml-astring)))
+     `(("ocaml-astring" ,ocaml-astring)
+       ("ocaml-cmdliner" ,ocaml-cmdliner)
+       ("ocaml-fmt" ,ocaml-fmt)
+       ("ocaml-result" ,ocaml-result)
+       ("ocaml-uuidm" ,ocaml-uuidm)))
     (home-page "https://github.com/mirage/alcotest")
     (synopsis "Lightweight OCaml test framework")
     (description "Alcotest exposes simple interface to perform unit tests.  It
@@ -1756,62 +1735,48 @@ displayed at the end of the run (with the full logs ready to inspect), with a
 simple (yet expressive) query language to select the tests to run.")
     (license license:isc)))
 
-(define-public ocaml4.02-alcotest
-  (package-with-ocaml4.02 ocaml-alcotest))
-
 (define-public ocaml-ppx-tools
   (package
     (name "ocaml-ppx-tools")
     (version "5.1+4.06.0")
     (source
-      (origin
-        (method url-fetch)
-        (uri (string-append "https://github.com/alainfrisch/ppx_tools/archive/"
-                            version ".tar.gz"))
-        (sha256 (base32
-                  "0mncpy9v2mcjgnj7s2vqpp2b1ixv54djicfx66ic9wny9d202gj1"))))
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/alainfrisch/ppx_tools.git")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256 (base32
+                "1ww4cspdpgjjsgiv71s0im5yjkr3544x96wsq1vpdacq7dr7zwiw"))))
     (build-system ocaml-build-system)
     (arguments
      `(#:phases (modify-phases %standard-phases (delete 'configure))
        #:tests? #f))
-    (properties
-      `((ocaml4.02-variant . ,(delay ocaml4.02-ppx-tools))))
+    (properties `((upstream-name . "ppx_tools")))
     (home-page "https://github.com/alainfrisch/ppx_tools")
     (synopsis "Tools for authors of ppx rewriters and other syntactic tools")
     (description "Tools for authors of ppx rewriters and other syntactic tools.")
     (license license:expat)))
 
-(define-public ocaml4.02-ppx-tools
-  (let ((base (package-with-ocaml4.02 (strip-ocaml4.02-variant ocaml-ppx-tools))))
-    (package
-      (inherit base)
-      (version "5.0+4.02.0")
-      (source
-        (origin
-          (method url-fetch)
-          (uri (string-append "https://github.com/alainfrisch/ppx_tools/archive/"
-                              version ".tar.gz"))
-          (sha256 (base32
-                    "0rjg4rngi8k9873z4zq95zn9hj8qyw1vcrf11y15aqasfpqq16rc")))))))
-
 (define-public ocaml-react
   (package
     (name "ocaml-react")
-    (version "1.2.0")
+    (version "1.2.1")
     (source
       (origin
         (method url-fetch)
         (uri (string-append "http://erratique.ch/software/react/releases/react-"
                             version ".tbz"))
         (sha256 (base32
-                  "0knhgbngphv5sp1yskfd97crf169qhpc0igr6w7vqw0q36lswyl8"))))
+                  "1aj8w79gdd9xnrbz7s5p8glcb4pmimi8jp9f439dqnf6ih3mqb3v"))))
     (build-system ocaml-build-system)
     (native-inputs
      `(("ocamlbuild" ,ocamlbuild)
-       ("opam" ,opam)))
+       ("opam" ,opam)
+       ("ocaml-topkg" ,ocaml-topkg)))
     (arguments
      `(#:tests? #f
-       #:build-flags (list "native=true" "native-dynlink=true")
+       #:build-flags (list "build")
        #:phases
        (modify-phases %standard-phases
          (delete 'configure))))
@@ -1823,13 +1788,10 @@ events and signals.  React doesn't define any primitive event or signal, it
 lets the client choose the concrete timeline.")
     (license license:bsd-3)))
 
-(define-public ocaml4.02-react
-  (package-with-ocaml4.02 ocaml-react))
-
 (define-public ocaml-ssl
   (package
     (name "ocaml-ssl")
-    (version "0.5.5")
+    (version "0.5.7")
     (source
       (origin
         (method git-fetch)
@@ -1838,21 +1800,10 @@ lets the client choose the concrete timeline.")
               (commit version)))
         (file-name (git-file-name name version))
         (sha256 (base32
-                  "0fviq8xhp3qk7pmkl7knchywsipxgb7p0z489hj8qnf2sx8xzdmy"))))
-    (build-system ocaml-build-system)
+                  "06zxqnwqkvf7pmj5s44jflkknv01czgbi4nbaac0ys1p7rv99y3x"))))
+    (build-system dune-build-system)
     (arguments
-     `(#:tests? #f
-       #:make-flags (list "OCAMLFIND_LDCONF=ignore")
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'bootstrap
-           (lambda* (#:key #:allow-other-keys)
-             (system* "sh" "bootstrap")
-             (substitute* "src/OCamlMakefile"
-               (("/bin/sh") (which "bash")))
-             (substitute* "configure"
-               (("/bin/sh") (which "bash")))
-             #t)))))
+     `(#:test-target "."))
     (native-inputs
      `(("autoconf" ,autoconf)
        ("automake" ,automake)
@@ -1865,9 +1816,6 @@ lets the client choose the concrete timeline.")
 through Transport Layer Security (@dfn{TLS}) encrypted connections.")
     (license license:lgpl2.1)))
 
-(define-public ocaml4.02-ssl
-  (package-with-ocaml4.02 ocaml-ssl))
-
 (define-public ocaml-lwt
   (package
     (name "ocaml-lwt")
@@ -1910,9 +1858,6 @@ process.  Also, in many cases, Lwt threads can interact without the need for
 locks or other synchronization primitives.")
     (license license:lgpl2.1)))
 
-(define-public ocaml4.02-lwt
-  (package-with-ocaml4.02 ocaml-lwt))
-
 (define-public ocaml-lwt-log
   (package
     (name "ocaml-lwt-log")
@@ -1931,15 +1876,13 @@ locks or other synchronization primitives.")
        #:jbuild? #t))
     (propagated-inputs
      `(("lwt" ,ocaml-lwt)))
+    (properties `((upstream-name . "lwt_log")))
     (home-page "https://github.com/aantron/lwt_log")
     (synopsis "Logging library")
     (description "This package provides a deprecated logging component for
 ocaml lwt.")
     (license license:lgpl2.1)))
 
-(define-public ocaml4.02-lwt-log
-  (package-with-ocaml4.02 ocaml-lwt-log))
-
 (define-public ocaml-logs
   (package
     (name "ocaml-logs")
@@ -1975,20 +1918,17 @@ performed on sources whose reporting level can be set independently.  Log
 message report is decoupled from logging and is handled by a reporter.")
     (license license:isc)))
 
-(define-public ocaml4.02-logs
-  (package-with-ocaml4.02 ocaml-logs))
-
 (define-public ocaml-fpath
   (package
     (name "ocaml-fpath")
-    (version "0.7.1")
+    (version "0.7.2")
     (source (origin
               (method url-fetch)
               (uri (string-append "http://erratique.ch/software/fpath/releases/"
                                   "fpath-" version ".tbz"))
               (sha256
                 (base32
-                  "05134ij27xjl6gaqsc65yl19vfj6cjxq3mbm9bf4mija8grdpn6g"))))
+                  "1hr05d8bpqmqcfdavn4rjk9rxr7v2zl84866f5knjifrm60sxqic"))))
     (build-system ocaml-build-system)
     (arguments
      `(#:tests? #f
@@ -2009,20 +1949,17 @@ POSIX or Windows conventions.  Fpath processes paths without accessing the
 file system and is independent from any system library.")
     (license license:isc)))
 
-(define-public ocaml4.02-fpath
-  (package-with-ocaml4.02 ocaml-fpath))
-
 (define-public ocaml-bos
   (package
     (name "ocaml-bos")
-    (version "0.1.4")
+    (version "0.2.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "http://erratique.ch/software/bos/releases/"
                                   "bos-" version ".tbz"))
               (sha256
                 (base32
-                  "1ly66lysk4w6mdy4k1n3ynlpfpq7lw4wshcpzgx58v6x613w5s7q"))))
+                  "1s10iqx8rgnxr5n93lf4blwirjf8nlm272yg5sipr7lsr35v49wc"))))
     (build-system ocaml-build-system)
     (arguments
      `(#:tests? #f
@@ -2048,9 +1985,6 @@ environment, parse command line arguments, interact with the file system and
 run command line programs.")
     (license license:isc)))
 
-(define-public ocaml4.02-bos
-  (package-with-ocaml4.02 ocaml-bos))
-
 (define-public ocaml-xmlm
   (package
     (name "ocaml-xmlm")
@@ -2080,21 +2014,19 @@ format.  It can process XML documents without a complete in-memory
 representation of the data.")
     (license license:isc)))
 
-(define-public ocaml4.02-xmlm
-  (package-with-ocaml4.02 ocaml-xmlm))
-
 (define-public ocaml-ulex
   (package
     (name "ocaml-ulex")
     (version "1.2")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://github.com/whitequark/ulex/archive/v"
-                                  version ".tar.gz"))
-              (file-name (string-append name "-" version ".tar.gz"))
-              (sha256
-                (base32
-                  "16gnbhqs6y2v89vw4igzvxdf2g8ybh5643636824aldcv8sscac0"))))
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/whitequark/ulex.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "08yf2x9a52l2y4savjqfjd2xy4pjd1rpla2ylrr9qrz1drpfw4ic"))))
     (build-system ocaml-build-system)
     (arguments
      `(#:phases (modify-phases %standard-phases (delete 'configure))
@@ -2112,9 +2044,6 @@ representation of the data.")
     (description "Lexer generator for Unicode and OCaml.")
     (license license:expat)))
 
-(define-public ocaml4.02-ulex
-  (package-with-ocaml4.02 ocaml-ulex))
-
 (define-public ocaml-uchar
   (package
     (name "ocaml-uchar")
@@ -2142,9 +2071,6 @@ representation of the data.")
 `Uchar` module introduced in OCaml 4.03.")
     (license license:lgpl2.1)))
 
-(define-public ocaml4.02-uchar
-  (package-with-ocaml4.02 ocaml-uchar))
-
 (define-public ocaml-uutf
   (package
     (name "ocaml-uutf")
@@ -2181,9 +2107,6 @@ Functions are also provided to fold over the characters of UTF encoded OCaml
 string values and to directly encode characters in OCaml Buffer.t values.")
     (license license:isc)))
 
-(define-public ocaml4.02-uutf
-  (package-with-ocaml4.02 ocaml-uutf))
-
 (define-public ocaml-jsonm
   (package
     (name "ocaml-jsonm")
@@ -2216,9 +2139,6 @@ 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 ocaml4.02-jsonm
-  (package-with-ocaml4.02 ocaml-jsonm))
-
 (define-public ocaml-ocurl
   (package
     (name "ocaml-ocurl")
@@ -2247,9 +2167,6 @@ without a complete in-memory representation of the data.")
 multitude of other network protocols (FTP/SMTP/RTSP/etc).")
     (license license:isc)))
 
-(define-public ocaml4.02-ocurl
-  (package-with-ocaml4.02 ocaml-ocurl))
-
 (define-public ocaml-base64
   (package
     (name "ocaml-base64")
@@ -2283,27 +2200,28 @@ that represent binary data in an ASCII string format by translating it into a
 radix-64 representation.  It is specified in RFC 4648.")
     (license license:isc)))
 
-(define-public ocaml4.02-base64
-  (package-with-ocaml4.02 ocaml-base64))
-
 (define-public ocamlify
   (package
     (name "ocamlify")
-    (version "0.0.2")
+    (version "0.0.1")
     (source (origin
               (method url-fetch)
-              (uri (ocaml-forge-uri name version 1209))
+              (uri "https://download.ocamlcore.org/ocamlify/ocamlify/0.0.1/ocamlify-0.0.1.tar.gz")
               (sha256
                (base32
-                "1f0fghvlbfryf5h3j4as7vcqrgfjb4c8abl5y0y5h069vs4kp5ii"))))
+                "1j9nb3vjqbdsx3d6jazixgrh776051zkrc06nsc5q5ilp1jhrwkm"))))
     (build-system ocaml-build-system)
     ; tests are done during build
     (arguments
-     `(#:ocaml ,ocaml-4.02
-       #:findlib ,ocaml4.02-findlib
-       #:phases
+     `(#:phases
        (modify-phases %standard-phases
-         (delete 'check))))
+         (delete 'check)
+         (replace 'configure
+           (lambda* (#:key outputs #:allow-other-keys)
+             (invoke "ocaml" "setup.ml" "-configure" "--prefix"
+                     (assoc-ref outputs "out")))))))
+    (native-inputs
+     `(("ocamlbuild" ,ocamlbuild)))
     (home-page "https://forge.ocamlcore.org/projects/ocamlify")
     (synopsis "Include files in OCaml code")
     (description "OCamlify allows to create OCaml source code by including
@@ -2335,8 +2253,6 @@ OCaml code.")
                      (lambda* (#:key outputs #:allow-other-keys)
                        (substitute* "mk/osconfig_unix.mk"
                                     (("CC = cc") "CC = gcc")))))))
-    (properties
-      `((ocaml4.02-variant . ,(delay ocaml4.02-omake))))
     (native-inputs `(("hevea" ,hevea)))
     (home-page "http://projects.camlcity.org/projects/omake.html")
     (synopsis "Build system designed for scalability and portability")
@@ -2358,20 +2274,6 @@ many additional enhancements, including:
                    license:gpl2)))) ; OMake itself, with ocaml linking exception
                                     ; see LICENSE.OMake
 
-(define-public ocaml4.02-omake
-  (let ((base (package-with-ocaml4.02 (strip-ocaml4.02-variant omake))))
-    (package
-      (inherit base)
-      (version "0.10.2")
-      (source (origin
-                (method url-fetch)
-                (uri (string-append "http://download.camlcity.org/download/"
-                                    "omake-" version ".tar.gz"))
-                (sha256
-                 (base32
-                  "1znnlkpz89hk44byvnl1pr92ym6hwfyyw2qm9clq446r6l2z4m64"))
-                (patches (search-patches "omake-fix-non-determinism.patch")))))))
-
 (define-public ocaml-batteries
   (package
     (name "ocaml-batteries")
@@ -2415,8 +2317,6 @@ many additional enhancements, including:
              (copy-file "_build/build/mkconf.byte" "build/mkconf.byte")
              (invoke "make" "all")
              #t)))))
-    (properties
-      `((ocaml4.02-variant . ,(delay ocaml4.02-batteries))))
     (home-page "http://batteries.forge.ocamlcore.org/")
     (synopsis "Development platform for the OCaml programming language")
     (description "Define a standard set of libraries which may be expected on
@@ -2424,47 +2324,24 @@ every compliant installation of OCaml and organize these libraries into a
 hierarchy of modules.")
     (license license:lgpl2.1+)))
 
-(define-public ocaml4.02-batteries
-  (let ((base (package-with-ocaml4.02 (strip-ocaml4.02-variant ocaml-batteries))))
-    (package
-      (inherit base)
-      (version "2.5.3")
-      (source (origin
-                (method url-fetch)
-                (uri (ocaml-forge-uri "batteries" version 1650))
-                (sha256
-                 (base32
-                  "1a97w3x2l1jr5x9kj5gqm1x6b0q9fjqdcsvls7arnl3bvzgsia0n"))))
-      (propagated-inputs '()))))
-
 (define-public ocaml-pcre
   (package
     (name "ocaml-pcre")
-    (version "7.2.3")
+    (version "7.4.1")
     (source (origin
-              (method url-fetch)
-              (uri (string-append "https://github.com/mmottl/pcre-ocaml/archive"
-                                  "/v" version ".tar.gz"))
-              (file-name (string-append name "-" version ".tar.gz"))
+              (method git-fetch)
+              (uri (git-reference
+                     (url "https://github.com/mmottl/pcre-ocaml")
+                     (commit version)))
+              (file-name (git-file-name name version))
               (sha256
                (base32
-                "0rj6dw79px4sj2kq0iss2nzq3rnsn9wivvc0f44wa1mppr6njfb3"))))
-    (build-system ocaml-build-system)
+                "11sd8g668h48790lamz0riw9jgnfkaif5qdfa0akcndwa6aj07jf"))))
+    (build-system dune-build-system)
     (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-after 'install 'link-lib
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let* ((out (assoc-ref outputs "out"))
-                    (stubs (string-append out "/lib/ocaml/site-lib/stubslibs"))
-                    (lib (string-append out "/lib/ocaml/site-lib/pcre")))
-               (mkdir-p stubs)
-               (symlink (string-append lib "/dllpcre_stubs.so")
-                        (string-append stubs "/dllpcre_stubs.so")))
-             #t)))))
+     `(#:test-target "."))
     (native-inputs
-     `(("batteries" ,ocaml-batteries)
-       ("ocamlbuild" ,ocamlbuild)
+     `(("ocaml-base" ,ocaml-base)
        ("pcre:bin" ,pcre "bin")))
     (propagated-inputs `(("pcre" ,pcre)))
     (home-page "https://mmottl.github.io/pcre-ocaml")
@@ -2474,9 +2351,6 @@ matching and substitution, similar to the functionality offered by the Perl
 language.")
     (license license:lgpl2.1+))); with the OCaml link exception
 
-(define-public ocaml4.02-pcre
-  (package-with-ocaml4.02 ocaml-pcre))
-
 (define-public ocaml-expect
   (package
     (name "ocaml-expect")
@@ -2502,9 +2376,9 @@ language.")
 can match the question using a regular expression or a timeout.")
     (license license:lgpl2.1+))) ; with the OCaml static compilation exception
 
-(define-public ocaml4.02-fileutils
+(define-public ocaml-fileutils
   (package
-    (name "ocaml4.02-fileutils")
+    (name "ocaml-fileutils")
     (version "0.5.3")
     (source (origin
               (method url-fetch)
@@ -2513,11 +2387,9 @@ can match the question using a regular expression or a timeout.")
                (base32
                 "1rc4cqlvdhbs55i85zfbfhz938fsy4fj6kwlkfm3ra7bpwn8bmpd"))))
     (build-system ocaml-build-system)
-    (arguments
-     `(#:ocaml ,ocaml-4.02
-       #:findlib ,ocaml4.02-findlib))
     (native-inputs
-     `(("ounit" ,ocaml4.02-ounit)))
+     `(("ocamlbuild" ,ocamlbuild)
+       ("ounit" ,ocaml-ounit)))
     (home-page "http://ocaml-fileutils.forge.ocamlcore.org")
     (synopsis "Pure OCaml functions to manipulate real file and filename")
     (description "Library to provide pure OCaml functions to manipulate real
@@ -2563,9 +2435,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 ocaml4.02-oasis
-  (package-with-ocaml4.02 ocaml-oasis))
-
 (define-public ocaml-js-build-tools
   (package
     (name "ocaml-js-build-tools")
@@ -2589,137 +2458,6 @@ from the oasis build log
 @end enumerate")
     (license license:asl2.0)))
 
-(define-public ocaml4.02-js-build-tools
-  (package-with-ocaml4.02 ocaml-js-build-tools))
-
-(define-public ocaml4.02-bin-prot
-  (package
-    (name "ocaml4.02-bin-prot")
-    (version "113.33.03")
-    (source (janestreet-origin "bin_prot" version
-               "1ws8c017z8nbj3vw92ndvjk9011f71rmp3llncbv8r5fc76wqv3l"))
-    (build-system ocaml-build-system)
-    (native-inputs
-     `(("js-build-tools" ,ocaml4.02-js-build-tools)
-       ("opam" ,opam)))
-    (arguments
-      (ensure-keyword-arguments janestreet-arguments
-       `(#:ocaml ,ocaml-4.02
-         #:findlib ,ocaml4.02-findlib)))
-    (home-page "https://github.com/janestreet/bin_prot/")
-    (synopsis "Binary protocol generator")
-    (description "This library contains functionality for reading and writing
-OCaml-values in a type-safe binary protocol.  It is extremely efficient,
-typically supporting type-safe marshalling and unmarshalling of even highly
-structured values at speeds sufficient to saturate a gigabit connection.  The
-protocol is also heavily optimized for size, making it ideal for long-term
-storage of large amounts of data.")
-    (license license:asl2.0)))
-
-(define-public ocaml4.02-fieldslib
-  (package
-    (name "ocaml4.02-fieldslib")
-    (version "113.33.03")
-    (source (janestreet-origin "fieldslib" version
-               "1rm3bn54bzk2hlq8f3w067ak8s772w4a8f78i3yh79vxfzq8ncvv"))
-    (build-system ocaml-build-system)
-    (native-inputs
-     `(("js-build-tools" ,ocaml4.02-js-build-tools)
-       ("opam" ,opam)))
-    (arguments
-      (ensure-keyword-arguments janestreet-arguments
-       `(#:ocaml ,ocaml-4.02
-         #:findlib ,ocaml4.02-findlib)))
-    (home-page "https://github.com/janestreet/fieldslib/")
-    (synopsis "Syntax extension to record fields")
-    (description "Syntax extension to define first class values representing
-record fields, to get and set record fields, iterate and fold over all fields
-of a record and create new record values.")
-    (license license:asl2.0)))
-
-(define-public ocaml4.02-ppx-core
-  (package
-    (name "ocaml4.02-ppx-core")
-    (version "113.33.03")
-    (source (janestreet-origin "ppx_core" version
-               "0f69l4czhgssnhb5ds2j9dbqjyz8dp1y3i3x0i4h6pxnms20zbxa"))
-    (build-system ocaml-build-system)
-    (native-inputs
-     `(("js-build-tools" ,ocaml4.02-js-build-tools)
-       ("opam" ,opam)))
-    (inputs `(("ppx-tools" ,ocaml4.02-ppx-tools)))
-    (arguments
-      (ensure-keyword-arguments janestreet-arguments
-       `(#:ocaml ,ocaml-4.02
-         #:findlib ,ocaml4.02-findlib)))
-    (home-page "https://github.com/janestreet/ppx_core/")
-    (synopsis "Standard library for ppx rewriters")
-    (description "Ppx_core is a standard library for OCaml AST transformers.
-It contains:
-@enumerate
-@item various auto-generated AST traversal using an open recursion scheme
-@item helpers for building AST fragments
-@item helpers for matching AST fragments
-@item a framework for dealing with attributes and extension points.
-@end enumerate")
-    (license license:asl2.0)))
-
-(define-public ocaml4.02-ppx-optcomp
-  (package
-    (name "ocaml4.02-ppx-optcomp")
-    (version "113.33.03")
-    (source (janestreet-origin "ppx_optcomp" version
-               "13an8p2r7sd0d5lv54mlzrxdni47408bwqi3bjcx4m6005170q30"))
-    (build-system ocaml-build-system)
-    (native-inputs
-     `(("js-build-tools" ,ocaml4.02-js-build-tools)
-       ("opam" ,opam)))
-    (propagated-inputs
-     `(("ppx-tools" ,ocaml4.02-ppx-tools)
-       ("ppx-core" ,ocaml4.02-ppx-core)))
-    (arguments
-      (ensure-keyword-arguments janestreet-arguments
-       `(#:ocaml ,ocaml-4.02
-         #:findlib ,ocaml4.02-findlib)))
-    (home-page "https://github.com/janestreet/ppx_optcomp/")
-    (synopsis "Optional compilation for OCaml")
-    (description "Ppx_optcomp stands for Optional Compilation.  It is a tool
-used to handle optional compilations of pieces of code depending of the word
-size, the version of the compiler, ...")
-    (license license:asl2.0)))
-
-(define-public ocaml4.02-ppx-driver
-  (package
-    (name "ocaml4.02-ppx-driver")
-    (version "113.33.03")
-    (source (janestreet-origin "ppx_driver" version
-              "011zzr45897j49b7iiybb29k7pspcx36mlnp7nh6pxb8b0ga76fh"))
-    (build-system ocaml-build-system)
-    (native-inputs
-     `(("js-build-tools" ,ocaml4.02-js-build-tools)
-       ("opam" ,opam)
-       ("ppx-optcomp" ,ocaml4.02-ppx-optcomp)))
-    (propagated-inputs
-     `(("ppx-optcomp" ,ocaml4.02-ppx-optcomp)
-       ("ppx-core" ,ocaml4.02-ppx-core)))
-    (arguments
-      (ensure-keyword-arguments janestreet-arguments
-       `(#:ocaml ,ocaml-4.02
-         #:findlib ,ocaml4.02-findlib)))
-    (home-page "https://github.com/janestreet/ppx_driver/")
-    (synopsis "Feature-full driver for OCaml AST transformers")
-    (description "A driver is an executable created from a set of OCaml AST
-transformers linked together with a command line frontend.  The aim is to
-provide a tool that can be used to:
-@enumerate
-@item easily view the pre-processed version of a file, no need to construct a
-      complex command line: @command{ppx file.ml} will do
-@item use a single executable to run several transformations: no need to fork
-      many times just for pre-processing
-@item improved errors for misspelled/misplaced attributes and extension points.
-@end enumerate")
-    (license license:asl2.0)))
-
 (define-public ocaml-cppo
   (package
     (name "ocaml-cppo")
@@ -2750,579 +2488,19 @@ programs.  It allows the definition of simple macros and file inclusion.  Cpp oi
 @end enumerate")
     (license license:bsd-3)))
 
-(define-public ocaml4.02-cppo
-  (package-with-ocaml4.02 ocaml-cppo))
-
-;; this package is not reproducible. This is related to temporary filenames
-;; such as findlib_initxxxxx where xxxxx is random.
-(define-public ocaml4.02-ppx-deriving
-  (package
-    (name "ocaml4.02-ppx-deriving")
-    (version "4.1")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (string-append "https://github.com/whitequark/ppx_deriving//archive/v"
-                            version ".tar.gz"))
-        (sha256 (base32
-                  "1fr16g121j6zinwcprzlhx2py4271n9jzs2m9hq2f3qli2b1p0vl"))
-        (file-name (string-append name "-" version ".tar.gz"))))
-    (build-system ocaml-build-system)
-    (native-inputs
-     `(("js-build-tools" ,ocaml4.02-js-build-tools)
-       ("cppo" ,ocaml4.02-cppo)
-       ("ounit" ,ocaml4.02-ounit)
-       ("opam" ,opam)))
-    (propagated-inputs
-     `(("result" ,ocaml4.02-result)
-       ("ppx-tools" ,ocaml4.02-ppx-tools)))
-    (arguments
-     `(#:ocaml ,ocaml-4.02
-       #:findlib ,ocaml4.02-findlib
-       #:phases
-       (modify-phases %standard-phases
-         (delete 'configure)
-           (add-before 'install 'fix-environment
-             (lambda* (#:key outputs #:allow-other-keys)
-               ;; the installation procedures looks for the installed module
-               (setenv "OCAMLPATH"
-                       (string-append (getenv "OCAMLPATH") ":"
-                                      (getenv "OCAMLFIND_DESTDIR"))))))))
-    (home-page "https://github.com/whitequark/ppx_deriving/")
-    (synopsis "Type-driven code generation for OCaml >=4.02")
-    (description "Ppx_deriving provides common infrastructure for generating
-code based on type definitions, and a set of useful plugins for common tasks.")
-    (license license:expat)))
-
-(define-public ocaml4.02-ppx-type-conv
-  (package
-    (name "ocaml4.02-ppx-type-conv")
-    (version "113.33.03")
-    (source
-      (janestreet-origin "ppx_type_conv" version
-        "1sp602ads2f250nv4d4rgw54d14k7flyhb4w8ff084f657hhmxv2"))
-    (build-system ocaml-build-system)
-    (native-inputs
-     `(("js-build-tools" ,ocaml4.02-js-build-tools)
-       ("opam" ,opam)))
-    (propagated-inputs
-     `(("ppx-deriving" ,ocaml4.02-ppx-deriving)
-       ("ppx-core" ,ocaml4.02-ppx-core)
-       ("ppx-driver" ,ocaml4.02-ppx-driver)))
-    (arguments
-      (ensure-keyword-arguments janestreet-arguments
-       `(#:ocaml ,ocaml-4.02
-         #:findlib ,ocaml4.02-findlib)))
-    (home-page "https://github.com/janestreet/ppx_type_conv/")
-    (synopsis "Support Library for type-driven code generators")
-    (description "The type_conv library factors out functionality needed by
-different preprocessors that generate code from type specifications.")
-    (license license:asl2.0)))
-
-(define-public ocaml4.02-ppx-inline-test
-  (package
-    (name "ocaml4.02-ppx-inline-test")
-    (version "113.33.03")
-    (source (janestreet-origin "ppx_inline_test" version
-              "0859ni43fl39dd5g6cxfhq0prxmx59bd2bfq8jafp593ba4q0icq"))
-    (build-system ocaml-build-system)
-    (native-inputs
-     `(("js-build-tools" ,ocaml4.02-js-build-tools)
-       ("opam" ,opam)
-       ("ppx-core" ,ocaml4.02-ppx-core)))
-    (propagated-inputs
-      `(("ppx-driver" ,ocaml4.02-ppx-driver)
-        ("ppx-tools" ,ocaml4.02-ppx-tools)
-        ("ppx-core" ,ocaml4.02-ppx-core)))
-    (arguments
-      (ensure-keyword-arguments janestreet-arguments
-       `(#:ocaml ,ocaml-4.02
-         #:findlib ,ocaml4.02-findlib)))
-    (home-page "https://github.com/janestreet/ppx_inline_test/")
-    (synopsis "Syntax extension for writing in-line tests in ocaml code")
-    (description "Syntax extension for writing in-line tests in ocaml code.")
-    (license license:asl2.0)))
-
-(define-public ocaml4.02-ppx-bench
-  (package
-    (name "ocaml4.02-ppx-bench")
-    (version "113.33.03")
-    (source (janestreet-origin "ppx_bench" version
-                   "1hky3y17qpb925rymf97wv54di9gaqdmkix7wpkjw14qzl512b68"))
-    (build-system ocaml-build-system)
-    (native-inputs
-     `(("js-build-tools" ,ocaml4.02-js-build-tools)
-       ("opam" ,opam)
-       ("ppx-core" ,ocaml4.02-ppx-core)))
-    (propagated-inputs
-     `(("ppx-driver" ,ocaml4.02-ppx-driver)
-       ("ppx-tools" ,ocaml4.02-ppx-tools)
-       ("ppx-inline-test" ,ocaml4.02-ppx-inline-test)
-       ("ppx-core" ,ocaml4.02-ppx-core)))
-    (arguments
-      (ensure-keyword-arguments janestreet-arguments
-       `(#:ocaml ,ocaml-4.02
-         #:findlib ,ocaml4.02-findlib)))
-    (home-page "https://github.com/janestreet/ppx_bench/")
-    (synopsis "Syntax extension for writing in-line benchmarks in ocaml code")
-    (description "Syntax extension for writing in-line benchmarks in ocaml code.")
-    (license license:asl2.0)))
-
-(define-public ocaml4.02-ppx-compare
-  (package
-    (name "ocaml4.02-ppx-compare")
-    (version "113.33.03")
-    (source (janestreet-origin "ppx_compare" version
-              "0bfhi33kq9l4q6zzc6svki2csracz5j4731c3npcy6cs73jynn0z"))
-    (build-system ocaml-build-system)
-    (native-inputs
-     `(("js-build-tools" ,ocaml4.02-js-build-tools)
-       ("opam" ,opam)
-       ("ppx-core" ,ocaml4.02-ppx-core)))
-    (propagated-inputs
-     `(("ppx-driver" ,ocaml4.02-ppx-driver)
-       ("ppx-tools" ,ocaml4.02-ppx-tools)
-       ("ppx-core" ,ocaml4.02-ppx-core)
-       ("ppx-type-conv" ,ocaml4.02-ppx-type-conv)))
-    (arguments
-      (ensure-keyword-arguments janestreet-arguments
-       `(#:ocaml ,ocaml-4.02
-         #:findlib ,ocaml4.02-findlib)))
-    (home-page "https://github.com/janestreet/ppx_compare/")
-    (synopsis "Generation of comparison functions from types")
-    (description "Generation of fast comparison functions from type expressions
-and definitions.  Ppx_compare is a ppx rewriter that derives comparison functions
-from type representations.  The scaffolded functions are usually much faster
-than ocaml's Pervasives.compare.  Scaffolding functions also gives you more
-flexibility by allowing you to override them for a specific type and more safety
-by making sure that you only compare comparable values.")
-    (license license:asl2.0)))
-
-(define-public ocaml4.02-sexplib
-  (package
-    (name "ocaml4.02-sexplib")
-    (version "113.33.03")
-    (source (janestreet-origin "sexplib" version
-              "1ffjmj8if9lyv965cgn2ld1xv7g52qsr8mqflbm515ck1i8l2ima"))
-    (build-system ocaml-build-system)
-    (native-inputs
-     `(("js-build-tools" ,ocaml4.02-js-build-tools)
-       ("opam" ,opam)))
-    (arguments
-      (ensure-keyword-arguments janestreet-arguments
-       `(#:ocaml ,ocaml-4.02
-         #:findlib ,ocaml4.02-findlib)))
-    (home-page "https://github.com/janestreet/sexplib/")
-    (synopsis "Library for serializing OCaml values to and from S-expressions")
-    (description "Sexplib contains functionality for parsing and pretty-printing
-s-expressions.")
-    (license license:asl2.0)))
-
-(define-public ocaml4.02-typerep
-  (package
-    (name "ocaml4.02-typerep")
-    (version "113.33.03")
-    (source (janestreet-origin "typerep" version
-              "1b9v5bmi824a9d4sx0f40ixq0yfcbiqxafg4a1jx95xg9199zafy"))
-    (build-system ocaml-build-system)
-    (native-inputs
-     `(("js-build-tools" ,ocaml4.02-js-build-tools)
-       ("opam" ,opam)))
-    (arguments
-      (ensure-keyword-arguments janestreet-arguments
-       `(#:ocaml ,ocaml-4.02
-         #:findlib ,ocaml4.02-findlib)))
-    (home-page "https://github.com/janestreet/typerep/")
-    (synopsis "Typerep is a library for runtime types")
-    (description "Typerep is a library for runtime types.")
-    (license license:asl2.0)))
-
-(define-public ocaml4.02-variantslib
-  (package
-    (name "ocaml4.02-variantslib")
-    (version "113.33.03")
-    (source (janestreet-origin "variantslib" version
-              "05vp799vl38fvl98ga5miwbzh09cnnpapi6q6gdvwyqi6w7s919n"))
-    (build-system ocaml-build-system)
-    (native-inputs
-     `(("js-build-tools" ,ocaml4.02-js-build-tools)
-       ("opam" ,opam)))
-    (arguments
-      (ensure-keyword-arguments janestreet-arguments
-       `(#:ocaml ,ocaml-4.02
-         #:findlib ,ocaml4.02-findlib)))
-    (home-page "https://github.com/janestreet/variantslib")
-    (synopsis "OCaml variants as first class values")
-    (description "OCaml variants as first class values.")
-    (license license:asl2.0)))
-
-(define-public ocaml4.02-ppx-sexp-conv
-  (package
-    (name "ocaml4.02-ppx-sexp-conv")
-    (version "113.33.03")
-    (source (janestreet-origin "ppx_sexp_conv" version
-              "1rbj6d5dl625gdxih34xcrdvikci6h8i2dl9x3wraa4qrgishiw7"))
-    (build-system ocaml-build-system)
-    (native-inputs
-     `(("js-build-tools" ,ocaml4.02-js-build-tools)
-       ("opam" ,opam)
-       ("ppx-core" ,ocaml4.02-ppx-core)))
-    (propagated-inputs
-     `(("sexplib" ,ocaml4.02-sexplib)
-       ("ppx-core" ,ocaml4.02-ppx-core)
-       ("ppx-type-conv" ,ocaml4.02-ppx-type-conv)
-       ("ppx-tools" ,ocaml4.02-ppx-tools)))
-    (arguments
-      (ensure-keyword-arguments janestreet-arguments
-       `(#:ocaml ,ocaml-4.02
-         #:findlib ,ocaml4.02-findlib)))
-    (home-page "https://github.com/janestreet/ppx_sexp_conv")
-    (synopsis "Generation of S-expression conversion functions from type definitions")
-    (description "Generation of S-expression conversion functions from type
-definitions.")
-    (license license:asl2.0)))
-
-(define-public ocaml4.02-ppx-variants-conv
-  (package
-    (name "ocaml4.02-ppx-variants-conv")
-    (version "113.33.03")
-    (source (janestreet-origin "ppx_variants_conv" version
-              "0vnn2l1118cj72413d3f7frlw6yc09l8f64jlzkzbgb9bxpalx34"))
-    (build-system ocaml-build-system)
-    (native-inputs
-     `(("js-build-tools" ,ocaml4.02-js-build-tools)
-       ("opam" ,opam)))
-    (propagated-inputs
-     `(("ppx-core" ,ocaml4.02-ppx-core)
-       ("variantslib" ,ocaml4.02-variantslib)
-       ("ppx-tools" ,ocaml4.02-ppx-tools)
-       ("ppx-type-conv" ,ocaml4.02-ppx-type-conv)))
-    (arguments
-      (ensure-keyword-arguments janestreet-arguments
-       `(#:ocaml ,ocaml-4.02
-         #:findlib ,ocaml4.02-findlib)))
-    (home-page "https://github.com/janestreet/ppx_variants_conv")
-    (synopsis "Generation of accessor and iteration functions for ocaml variant
-types")
-    (description "Generation of accessor and iteration functions for ocaml
-variant types.")
-    (license license:asl2.0)))
-
-(define-public ocaml4.02-ppx-here
-  (package
-    (name "ocaml4.02-ppx-here")
-    (version "113.33.03")
-    (source (janestreet-origin "ppx_here" version
-              "1ay8lfxi0qg3ib2zkwh4h0vqk3gjmxaz572gzab0bbxyqn3z86v7"))
-    (build-system ocaml-build-system)
-    (native-inputs
-     `(("js-build-tools" ,ocaml4.02-js-build-tools)
-       ("opam" ,opam)))
-    (propagated-inputs
-     `(("ppx-driver" ,ocaml4.02-ppx-driver)
-       ("ppx-core" ,ocaml4.02-ppx-core)))
-    (arguments
-      (ensure-keyword-arguments janestreet-arguments
-       `(#:ocaml ,ocaml-4.02
-         #:findlib ,ocaml4.02-findlib)))
-    (home-page "https://github.com/janestreet/ppx_here")
-    (synopsis "Expands [%here] into its location")
-    (description "Expands [%here] into its location.")
-    (license license:asl2.0)))
-
-(define-public ocaml4.02-ppx-assert
-  (package
-    (name "ocaml4.02-ppx-assert")
-    (version "113.33.03")
-    (source (janestreet-origin "ppx_assert" version
-              "1k5kxmqkibp5fk25pgz81f3c1r4mgvb5byzf6bnmxd24y60wn46p"))
-    (build-system ocaml-build-system)
-    (native-inputs
-     `(("js-build-tools" ,ocaml4.02-js-build-tools)
-       ("opam" ,opam)))
-    (propagated-inputs
-     `(("ppx-compare" ,ocaml4.02-ppx-compare)
-       ("ppx-core" ,ocaml4.02-ppx-core)
-       ("ppx-driver" ,ocaml4.02-ppx-driver)
-       ("ppx-sexp-conv" ,ocaml4.02-ppx-sexp-conv)
-       ("ppx-tools" ,ocaml4.02-ppx-tools)
-       ("ppx-type-conv" ,ocaml4.02-ppx-type-conv)
-       ("ppx-sexplib" ,ocaml4.02-sexplib)
-       ("ppx-here" ,ocaml4.02-ppx-here)))
-    (arguments
-      (ensure-keyword-arguments janestreet-arguments
-       `(#:ocaml ,ocaml-4.02
-         #:findlib ,ocaml4.02-findlib)))
-    (home-page "https://github.com/janestreet/ppx_assert")
-    (synopsis "Assert-like extension nodes that raise useful errors on failure")
-    (description "Assert-like extension nodes that raise useful errors on failure.")
-    (license license:asl2.0)))
-
-(define-public ocaml4.02-ppx-enumerate
-  (package
-    (name "ocaml4.02-ppx-enumerate")
-    (version "113.33.03")
-    (source (janestreet-origin "ppx_enumerate" version
-              "15g7yfv9wg2h9r6k6q1zrhygmsl4xrfn25mrb0i4czjjivzmxjh4"))
-    (build-system ocaml-build-system)
-    (native-inputs
-     `(("js-build-tools" ,ocaml4.02-js-build-tools)
-       ("opam" ,opam)))
-    (propagated-inputs
-     `(("ppx-tools" ,ocaml4.02-ppx-tools)
-       ("ppx-type-conv" ,ocaml4.02-ppx-type-conv)
-       ("ppx-core" ,ocaml4.02-ppx-core)))
-    (arguments
-      (ensure-keyword-arguments janestreet-arguments
-       `(#:ocaml ,ocaml-4.02
-         #:findlib ,ocaml4.02-findlib)))
-    (home-page "https://github.com/janestreet/ppx_enumerate")
-    (synopsis "Generate a list containing all values of a finite type")
-    (description "Ppx_enumerate is a ppx rewriter which generates a definition
-for the list of all values of a type (for a type which only has finitely
-many values).")
-    (license license:asl2.0)))
-
-(define-public ocaml4.02-ppx-let
-  (package
-    (name "ocaml4.02-ppx-let")
-    (version "113.33.03")
-    (source (janestreet-origin "ppx_let" version
-              "0gd6d3gdaqfwjcs7gaw1qxc30i584q6a86ndaj1bx1q63xqd6yx9"))
-    (build-system ocaml-build-system)
-    (native-inputs
-     `(("js-build-tools" ,ocaml4.02-js-build-tools)
-       ("opam" ,opam)))
-    (propagated-inputs
-     `(("ppx-driver" ,ocaml4.02-ppx-driver)
-       ("ppx-core" ,ocaml4.02-ppx-core)))
-    (arguments
-      (ensure-keyword-arguments janestreet-arguments
-       `(#:ocaml ,ocaml-4.02
-         #:findlib ,ocaml4.02-findlib)))
-    (home-page "https://github.com/janestreet/ppx_let")
-    (synopsis "Monadic let-bindings")
-    (description "A ppx rewriter for monadic and applicative let bindings,
-match expressions, and if expressions.")
-    (license license:asl2.0)))
-
-(define-public ocaml4.02-ppx-typerep-conv
-  (package
-    (name "ocaml4.02-ppx-typerep-conv")
-    (version "113.33.03")
-    (source (janestreet-origin "ppx_typerep_conv" version
-              "0g0xqm9s1b2jjvxb8yp69281q2s3bwz6sibn10fvgcdawpa0rmrg"))
-    (build-system ocaml-build-system)
-    (native-inputs
-     `(("js-build-tools" ,ocaml4.02-js-build-tools)
-       ("opam" ,opam)))
-    (propagated-inputs
-     `(("ppx-tools" ,ocaml4.02-ppx-tools)
-       ("ppx-type-conv" ,ocaml4.02-ppx-type-conv)
-       ("ppx-core" ,ocaml4.02-ppx-core)
-       ("typerep" ,ocaml4.02-typerep)))
-    (arguments
-      (ensure-keyword-arguments janestreet-arguments
-       `(#:ocaml ,ocaml-4.02
-         #:findlib ,ocaml4.02-findlib)))
-    (home-page "https://github.com/janestreet/ppx_typerep_conv")
-    (synopsis "Generation of runtime types from type declarations")
-    (description "Automatic generation of runtime types from type definitions.")
-    (license license:asl2.0)))
-
-(define-public ocaml4.02-ppx-sexp-value
-  (package
-    (name "ocaml4.02-ppx-sexp-value")
-    (version "113.33.03")
-    (source (janestreet-origin "ppx_sexp_value" version
-              "0m3ag23mbqm0i2pv1dzilfks15ipa5q60mf57a0cd3p0pvarq10g"))
-    (build-system ocaml-build-system)
-    (native-inputs
-     `(("js-build-tools" ,ocaml4.02-js-build-tools)
-       ("opam" ,opam)))
-    (propagated-inputs
-     `(("ppx-driver" ,ocaml4.02-ppx-driver)
-       ("ppx-here" ,ocaml4.02-ppx-here)
-       ("ppx-sexp-conv" ,ocaml4.02-ppx-sexp-conv)
-       ("ppx-tools" ,ocaml4.02-ppx-tools)
-       ("ppx-core" ,ocaml4.02-ppx-core)))
-    (arguments
-      (ensure-keyword-arguments janestreet-arguments
-       `(#:ocaml ,ocaml-4.02
-         #:findlib ,ocaml4.02-findlib)))
-    (home-page "https://github.com/janestreet/ppx_sexp_value/")
-    (synopsis "Simplify building s-expressions from ocaml values")
-    (description "A ppx rewriter that simplifies building s-expressions from
-ocaml values.")
-    (license license:asl2.0)))
-
-(define-public ocaml4.02-ppx-pipebang
-  (package
-    (name "ocaml4.02-ppx-pipebang")
-    (version "113.33.03")
-    (source (janestreet-origin "ppx_pipebang" version
-              "1965c7hymp26ncmjs0pfxi2s5jlj60z2c9b194lgcwxqiav56pcw"))
-    (build-system ocaml-build-system)
-    (native-inputs
-     `(("js-build-tools" ,ocaml4.02-js-build-tools)
-       ("opam" ,opam)))
-    (propagated-inputs
-     `(("ppx-driver" ,ocaml4.02-ppx-driver)
-       ("ppx-tools" ,ocaml4.02-ppx-tools)
-       ("ppx-core" ,ocaml4.02-ppx-core)))
-    (arguments
-      (ensure-keyword-arguments janestreet-arguments
-       `(#:ocaml ,ocaml-4.02
-         #:findlib ,ocaml4.02-findlib)))
-    (home-page "https://github.com/janestreet/ppx_pipebang/")
-    (synopsis "Inline reverse application operators `|>` and `|!`")
-    (description "A ppx rewriter that inlines reverse application operators
-@code{|>} and @code{|!}.")
-    (license license:asl2.0)))
-
-(define-public ocaml4.02-ppx-bin-prot
-  (package
-    (name "ocaml4.02-ppx-bin-prot")
-    (version "113.33.03")
-    (source (janestreet-origin "ppx_bin_prot" version
-              "173kjv36giik11zgfvsbzwfbpr66dm2pcha9vf990jgzh8hqz39h"))
-    (build-system ocaml-build-system)
-    (native-inputs
-     `(("js-build-tools" ,ocaml4.02-js-build-tools)
-       ("opam" ,opam)))
-    (propagated-inputs
-     `(("bin-prot" ,ocaml4.02-bin-prot)
-       ("ppx-tools" ,ocaml4.02-ppx-tools)
-       ("ppx-type-conv" ,ocaml4.02-ppx-type-conv)
-       ("ppx-core" ,ocaml4.02-ppx-core)))
-    (arguments
-      (ensure-keyword-arguments janestreet-arguments
-       `(#:ocaml ,ocaml-4.02
-         #:findlib ,ocaml4.02-findlib)))
-    (home-page "https://github.com/janestreet/ppx_bin_prot/")
-    (synopsis "Generation of bin_prot readers and writers from types")
-    (description "Generation of binary serialization and deserialization
-functions from type definitions.")
-    (license license:asl2.0)))
-
-(define-public ocaml4.02-ppx-fail
-  (package
-    (name "ocaml4.02-ppx-fail")
-    (version "113.33.03")
-    (source (janestreet-origin "ppx_fail" version
-              "1dwgad0f05gqp5rnwf9dcasidpfi7q3mrpazsw3a2vijjblbhjgn"))
-    (build-system ocaml-build-system)
-    (native-inputs
-     `(("js-build-tools" ,ocaml4.02-js-build-tools)
-       ("opam" ,opam)))
-    (propagated-inputs
-     `(("ppx-driver" ,ocaml4.02-ppx-driver)
-       ("ppx-tools" ,ocaml4.02-ppx-tools)
-       ("ppx-here" ,ocaml4.02-ppx-here)
-       ("ppx-core" ,ocaml4.02-ppx-core)))
-    (arguments
-      (ensure-keyword-arguments janestreet-arguments
-       `(#:ocaml ,ocaml-4.02
-         #:findlib ,ocaml4.02-findlib)))
-    (home-page "https://github.com/janestreet/ppx_fail/")
-    (synopsis "Add location to calls to failwiths")
-    (description "Syntax extension that makes [failwiths] always include a
-position.")
-    (license license:asl2.0)))
-
-(define-public ocaml4.02-ppx-custom-printf
-  (package
-    (name "ocaml4.02-ppx-custom-printf")
-    (version "113.33.03")
-    (source (janestreet-origin "ppx_custom_printf" version
-              "11jlx0n87g2j1vyyp343dibx7lvvwig5j5q0nq0b80kbsq0k6yr8"))
-    (build-system ocaml-build-system)
-    (native-inputs
-     `(("js-build-tools" ,ocaml4.02-js-build-tools)
-       ("opam" ,opam)))
-    (propagated-inputs
-     `(("ppx-sexp-conv" ,ocaml4.02-ppx-sexp-conv)
-       ("ppx-tools" ,ocaml4.02-ppx-tools)
-       ("ppx-core" ,ocaml4.02-ppx-core)
-       ("ppx-driver" ,ocaml4.02-ppx-driver)))
-    (arguments
-      (ensure-keyword-arguments janestreet-arguments
-       `(#:ocaml ,ocaml-4.02
-         #:findlib ,ocaml4.02-findlib)))
-    (home-page "https://github.com/janestreet/ppx_custom_printf/")
-    (synopsis "Printf-style format-strings for user-defined string conversion")
-    (description "Extensions to printf-style format-strings for user-defined
-string conversion.")
-    (license license:asl2.0)))
-
-(define-public ocaml4.02-ppx-sexp-message
-  (package
-    (name "ocaml4.02-ppx-sexp-message")
-    (version "113.33.03")
-    (source (janestreet-origin "ppx_sexp_message" version
-              "084w1l3gnyw4ri9vbn7bv9b2xkw1520qczfxpxdarfivdrz8xr68"))
-    (build-system ocaml-build-system)
-    (native-inputs
-     `(("js-build-tools" ,ocaml4.02-js-build-tools)
-       ("opam" ,opam)))
-    (propagated-inputs
-     `(("ppx-driver" ,ocaml4.02-ppx-driver)
-       ("ppx-here" ,ocaml4.02-ppx-here)
-       ("ppx-sexp-conv" ,ocaml4.02-ppx-sexp-conv)
-       ("ppx-tools" ,ocaml4.02-ppx-tools)
-       ("ppx-core" ,ocaml4.02-ppx-core)))
-    (arguments
-      (ensure-keyword-arguments janestreet-arguments
-       `(#:ocaml ,ocaml-4.02
-         #:findlib ,ocaml4.02-findlib)))
-    (home-page "https://github.com/janestreet/ppx_sexp_message/")
-    (synopsis "A ppx rewriter for easy construction of s-expressions")
-    (description "Ppx_sexp_message aims to ease the creation of s-expressions
-in OCaml.  This is mainly motivated by writing error and debugging messages,
-where one needs to construct a s-expression based on various element of the
-context such as function arguments.")
-    (license license:asl2.0)))
-
-(define-public ocaml4.02-ppx-fields-conv
-  (package
-    (name "ocaml4.02-ppx-fields-conv")
-    (version "113.33.03")
-    (source (janestreet-origin "ppx_fields_conv" version
-              "1vzbdz27g5qhhfs7wx6rjf979q4xyssxqbmp6sc1sxknbghslbdv"))
-    (build-system ocaml-build-system)
-    (native-inputs
-     `(("js-build-tools" ,ocaml4.02-js-build-tools)
-       ("opam" ,opam)
-       ("ppx-core" ,ocaml4.02-ppx-core)))
-    (propagated-inputs
-     `(("fieldslib" ,ocaml4.02-fieldslib)
-       ("ppx-tools" ,ocaml4.02-ppx-tools)
-       ("ppx-core" ,ocaml4.02-ppx-core)
-       ("ppx-type-conv" ,ocaml4.02-ppx-type-conv)))
-    (arguments
-      (ensure-keyword-arguments janestreet-arguments
-       `(#:ocaml ,ocaml-4.02
-         #:findlib ,ocaml4.02-findlib)))
-    (home-page "https://github.com/janestreet/ppx_fields_conv/")
-    (synopsis "Generation of accessor and iteration functions for ocaml records")
-    (description "Ppx_fields_conv is a ppx rewriter that can be used to define
-first class values representing record fields, and additional routines, to get
-and set record fields, iterate and fold over all fields of a record and create
-new record values.")
-    (license license:asl2.0)))
-
 (define-public ocaml-seq
   (package
     (name "ocaml-seq")
     (version "0.1")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://github.com/c-cube/seq/archive/"
-                                  version ".tar.gz"))
-              (file-name (string-append name "-" version ".tar.gz"))
-              (sha256
-               (base32
-                "02lb2d9i12bxrz2ba5wygk2bycan316skqlyri0597q7j9210g8r"))))
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/c-cube/seq.git")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1cjpsc7q76yfgq9iyvswxgic4kfq2vcqdlmxjdjgd4lx87zvcwrv"))))
     (build-system ocaml-build-system)
     (arguments
      `(#:tests? #f
@@ -3341,37 +2519,26 @@ new record values.")
 version=\"[distributed with ocaml]\"
 description=\"dummy package for compatibility\"
 requires=\"\"")))
-             #t))))))
-    (properties
-      `((ocaml4.02-variant . ,(delay ocaml4.02-seq))))
+               #t))))))
     (home-page "https://github.com/c-cube/seq")
     (synopsis "OCaml's standard iterator type")
     (description "This package is a compatibility package for OCaml's
 standard iterator type starting from 4.07.")
     (license license:lgpl2.1+)))
 
-(define-public ocaml4.02-seq
-  (let ((base (package-with-ocaml4.02 (strip-ocaml4.02-variant ocaml-seq))))
-    (package
-      (inherit base)
-      (arguments
-       `(#:ocaml ,ocaml-4.02
-         #:findlib ,ocaml4.02-findlib
-         #:tests? #f; no tests
-         #:phases (modify-phases %standard-phases (delete 'configure)))))))
-
 (define-public ocaml-re
   (package
     (name "ocaml-re")
-    (version "1.8.0")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://github.com/ocaml/ocaml-re//archive/"
-                                  version ".tar.gz"))
-              (file-name (string-append name "-" version ".tar.gz"))
-              (sha256
-               (base32
-                "1pdb0mr6z5ax6szblr3f5lbdnqq9grm97cmsfjmdma60yrx2rqhd"))))
+    (version "1.9.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/ocaml/ocaml-re.git")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "07ycb103mr4mrkxfd63cwlsn023xvcjp0ra0k7n2gwrg0mwxmfss"))))
     (build-system dune-build-system)
     (arguments
      `(#:tests? #f
@@ -3392,265 +2559,6 @@ standard iterator type starting from 4.07.")
 @end enumerate")
     (license license:expat)))
 
-(define-public ocaml4.02-re
-  (package-with-ocaml4.02 ocaml-re))
-
-(define-public ocaml4.02-ppx-expect
-  (package
-    (name "ocaml4.02-ppx-expect")
-    (version "113.33.03")
-    (source (janestreet-origin "ppx_expect" version
-              "03sbs4s5i8l9syr45v25f5hzy7msd2b47k2a9wsq9m43d4imgkrc"))
-    (build-system ocaml-build-system)
-    (native-inputs
-     `(("js-build-tools" ,ocaml4.02-js-build-tools)
-       ("opam" ,opam)))
-    (propagated-inputs
-     `(("fieldslib" ,ocaml4.02-fieldslib)
-       ("ppx-tools" ,ocaml4.02-ppx-tools)
-       ("ppx-assert" ,ocaml4.02-ppx-assert)
-       ("ppx-compare" ,ocaml4.02-ppx-compare)
-       ("ppx-core" ,ocaml4.02-ppx-core)
-       ("ppx-custom-printf" ,ocaml4.02-ppx-custom-printf)
-       ("ppx-driver" ,ocaml4.02-ppx-driver)
-       ("ppx-fields-conv" ,ocaml4.02-ppx-fields-conv)
-       ("ppx-inline-test" ,ocaml4.02-ppx-inline-test)
-       ("ppx-sexp-conv" ,ocaml4.02-ppx-sexp-conv)
-       ("ppx-variants-conv" ,ocaml4.02-ppx-variants-conv)
-       ("re" ,ocaml4.02-re)
-       ("sexplib" ,ocaml4.02-sexplib)
-       ("variantslib" ,ocaml4.02-variantslib)))
-    (arguments
-      (ensure-keyword-arguments janestreet-arguments
-       `(#:ocaml ,ocaml-4.02
-         #:findlib ,ocaml4.02-findlib)))
-    (home-page "https://github.com/janestreet/ppx_expect/")
-    (synopsis "Cram like framework for OCaml")
-    (description "Expect-test is a framework for writing tests in OCaml, similar
-to Cram.  Expect-tests mimic the existing inline tests framework with the
-let%expect_test construct.  The body of an expect-test can contain
-output-generating code, interleaved with %expect extension expressions to denote
-the expected output.")
-    (license license:asl2.0)))
-
-(define-public ocaml4.02-ppx-jane
-  (package
-    (name "ocaml4.02-ppx-jane")
-    (version "113.33.03")
-    (source (janestreet-origin "ppx_jane" version
-              "0bjxkhmzgm6x9dcvjwybbccn34khbvyyjimcbaja30fp6qcqk5yl"))
-    (build-system ocaml-build-system)
-    (native-inputs
-     `(("js-build-tools" ,ocaml4.02-js-build-tools)
-       ("opam" ,opam)))
-    (propagated-inputs
-     `(("ppx-assert" ,ocaml4.02-ppx-assert)
-       ("ppx-bench" ,ocaml4.02-ppx-bench)
-       ("ppx-bin-prot" ,ocaml4.02-ppx-bin-prot)
-       ("ppx-compare" ,ocaml4.02-ppx-compare)
-       ("ppx-custom-printf" ,ocaml4.02-ppx-custom-printf)
-       ("ppx-deriving" ,ocaml4.02-ppx-deriving)
-       ("ppx-enumerate" ,ocaml4.02-ppx-enumerate)
-       ("ppx-expect" ,ocaml4.02-ppx-expect)
-       ("ppx-fail" ,ocaml4.02-ppx-fail)
-       ("ppx-fields-conv" ,ocaml4.02-ppx-fields-conv)
-       ("ppx-here" ,ocaml4.02-ppx-here)
-       ("ppx-inline-test" ,ocaml4.02-ppx-inline-test)
-       ("ppx-let" ,ocaml4.02-ppx-let)
-       ("ppx-pipebang" ,ocaml4.02-ppx-pipebang)
-       ("ppx-sexp-conv" ,ocaml4.02-ppx-sexp-conv)
-       ("ppx-sexp-message" ,ocaml4.02-ppx-sexp-message)
-       ("ppx-sexp-value" ,ocaml4.02-ppx-sexp-value)
-       ("ppx-typerep-conv" ,ocaml4.02-ppx-typerep-conv)
-       ("ppx-variants-conv" ,ocaml4.02-ppx-variants-conv)))
-    (arguments
-      (ensure-keyword-arguments janestreet-arguments
-       `(#:ocaml ,ocaml-4.02
-         #:findlib ,ocaml4.02-findlib)))
-    (home-page "https://github.com/janestreet/ppx_jane/")
-    (synopsis "Standard Jane Street ppx rewriters")
-    (description "Ppx_jane is a ppx_driver including all standard ppx rewriters.")
-    (license license:asl2.0)))
-
-(define-public ocaml4.02-core-kernel
-  (package
-    (name "ocaml4.02-core-kernel")
-    (version "113.33.03")
-    (source (janestreet-origin "core_kernel" version
-               "0fl23jrwivixawhxinbwaw9cabqnzn7fini7dxpxjjvkxdc8ip5y"))
-    (native-inputs
-     `(("js-build-tools" ,ocaml4.02-js-build-tools)
-       ("ppx-jane" ,ocaml4.02-ppx-jane)
-       ("opam" ,opam)))
-    (propagated-inputs
-     `(("bin_prot" ,ocaml4.02-bin-prot)
-       ("ppx-assert" ,ocaml4.02-ppx-assert)
-       ("ppx-bench" ,ocaml4.02-ppx-bench)
-       ("ppx-driver" ,ocaml4.02-ppx-driver)
-       ("ppx-expect" ,ocaml4.02-ppx-expect)
-       ("ppx-inline-test" ,ocaml4.02-ppx-inline-test)
-       ("typerep" ,ocaml4.02-typerep)
-       ("sexplib" ,ocaml4.02-sexplib)
-       ("variantslib" ,ocaml4.02-variantslib)
-       ("result" ,ocaml4.02-result)
-       ("fieldslib" ,ocaml4.02-fieldslib)))
-    (build-system ocaml-build-system)
-    (arguments
-      (ensure-keyword-arguments janestreet-arguments
-       `(#:ocaml ,ocaml-4.02
-         #:findlib ,ocaml4.02-findlib)))
-    (home-page "https://github.com/janestreet/core_kernel/")
-    (synopsis "Portable standard library for OCaml")
-    (description "Core is an alternative to the OCaml standard library.
-
-Core_kernel is the system-independent part of Core.  It is aimed for cases when
-the full Core is not available, such as in Javascript.")
-    (license license:asl2.0)))
-
-(define-public ocaml4.02-async-kernel
-  (package
-    (name "ocaml4.02-async-kernel")
-    (version "113.33.03")
-    (source (janestreet-origin "async_kernel" version
-              "04bjsaa23j831r09r38x6xx9nhryvp0z5ihickvhxqa4fb2snyvd"))
-    (native-inputs
-     `(("oasis" ,ocaml-oasis)
-       ("js-build-tools" ,ocaml4.02-js-build-tools)
-       ("ppx-jane" ,ocaml4.02-ppx-jane)
-       ("opam" ,opam)))
-    (propagated-inputs
-     `(("core-kernel" ,ocaml4.02-core-kernel)))
-    (build-system ocaml-build-system)
-    (arguments
-      (ensure-keyword-arguments janestreet-arguments
-       `(#:ocaml ,ocaml-4.02
-         #:findlib ,ocaml4.02-findlib)))
-    (home-page "https://github.com/janestreet/async_kernel/")
-    (synopsis "Monadic concurrency library")
-    (description "Async-kernel is a library for concurrent programming in OCaml.")
-    (license license:asl2.0)))
-
-(define-public ocaml4.02-async-rpc-kernel
-  (package
-    (name "ocaml4.02-async-rpc-kernel")
-    (version "113.33.03")
-    (source (janestreet-origin "async_rpc_kernel" version
-             "0y97h9pkb00v7jpf87m8cbb0ffkclj9g26ph6sq97q8dpisnkjwh"))
-    (native-inputs
-     `(("oasis" ,ocaml-oasis)
-       ("js-build-tools" ,ocaml4.02-js-build-tools)
-       ("ppx-jane" ,ocaml4.02-ppx-jane)
-       ("opam" ,opam)))
-    (propagated-inputs
-     `(("async-kernel" ,ocaml4.02-async-kernel)))
-    (build-system ocaml-build-system)
-    (arguments
-      (ensure-keyword-arguments janestreet-arguments
-       `(#:ocaml ,ocaml-4.02
-         #:findlib ,ocaml4.02-findlib)))
-    (home-page "https://github.com/janestreet/async_rpc_kernel/")
-    (synopsis "Platform-independent core of the Async RPC library")
-    (description "Async_rpc_kernel is the platform-independent core of
-the Async RPC library.")
-    (license license:asl2.0)))
-
-(define-public ocaml4.02-core
-  (package
-    (name "ocaml4.02-core")
-    (version "113.33.03")
-    (source (janestreet-origin "core" version
-              "1znll157qg56g9d3247fjibv1hxv3r9wxgr4nhy19j2vzdh6a268"))
-    (native-inputs
-     `(("oasis" ,ocaml-oasis)
-       ("js-build-tools" ,ocaml4.02-js-build-tools)
-       ("ppx-jane" ,ocaml4.02-ppx-jane)
-       ("opam" ,opam)))
-    (propagated-inputs
-     `(("core-kernel" ,ocaml4.02-core-kernel)))
-    (build-system ocaml-build-system)
-    (arguments
-      (ensure-keyword-arguments janestreet-arguments
-       `(#:ocaml ,ocaml-4.02
-         #:findlib ,ocaml4.02-findlib)))
-    (home-page "https://github.com/janestreet/core/")
-    (synopsis "Alternative to OCaml's standard library")
-    (description "The Core suite of libraries is an alternative to OCaml's
-standard library that was developed by Jane Street.")
-    (license license:asl2.0)))
-
-(define-public ocaml4.02-async-unix
-  (package
-    (name "ocaml4.02-async-unix")
-    (version "113.33.03")
-    (source (janestreet-origin "async_unix" version
-              "1fwl0lfrizllcfjk8hk8m7lsz9ha2jg6qgk4gssfyz377qvpcq4h"))
-    (native-inputs
-     `(("oasis" ,ocaml-oasis)
-       ("js-build-tools" ,ocaml4.02-js-build-tools)
-       ("ppx-jane" ,ocaml4.02-ppx-jane)
-       ("opam" ,opam)))
-    (propagated-inputs
-     `(("async-kernel" ,ocaml4.02-async-kernel)
-       ("core" ,ocaml4.02-core)))
-    (build-system ocaml-build-system)
-    (arguments
-      (ensure-keyword-arguments janestreet-arguments
-       `(#:ocaml ,ocaml-4.02
-         #:findlib ,ocaml4.02-findlib)))
-    (home-page "https://github.com/janestreet/async_unix")
-    (synopsis "Asynchronous execution library for Unix")
-    (description "Async_unix is an asynchronous execution library for Unix.")
-    (license license:asl2.0)))
-
-(define-public ocaml4.02-async-extra
-  (package
-    (name "ocaml4.02-async-extra")
-    (version "113.33.03")
-    (source (janestreet-origin "async_extra" version
-              "1si8jgiq5xh5sl9f2b7f9p17p7zx5h1pg557x2cxywi2x7pxqg4f"))
-    (native-inputs
-     `(("oasis" ,ocaml-oasis)
-       ("js-build-tools" ,ocaml4.02-js-build-tools)
-       ("ppx-jane" ,ocaml4.02-ppx-jane)
-       ("opam" ,opam)))
-    (propagated-inputs
-     `(("async-rpc-kernel" ,ocaml4.02-async-rpc-kernel)
-       ("async-unix" ,ocaml4.02-async-unix)
-       ("core" ,ocaml4.02-core)))
-    (build-system ocaml-build-system)
-    (arguments
-      (ensure-keyword-arguments janestreet-arguments
-       `(#:ocaml ,ocaml-4.02
-         #:findlib ,ocaml4.02-findlib)))
-    (home-page "https://github.com/janestreet/async_extra")
-    (synopsis "Extra functionnalities for the async library")
-    (description "Async_extra provides additional functionnalities for the
-async library.")
-    (license license:asl2.0)))
-
-(define-public ocaml4.02-async
-  (package
-    (name "ocaml4.02-async")
-    (version "113.33.03")
-    (source (janestreet-origin "async" version
-              "0210fyhcs12kpmmd26015bgivkfd2wqkyn3c5wd7688d0f872y25"))
-    (native-inputs
-     `(("oasis" ,ocaml-oasis)
-       ("js-build-tools" ,ocaml4.02-js-build-tools)
-       ("ppx-jane" ,ocaml4.02-ppx-jane)
-       ("opam" ,opam)))
-    (propagated-inputs
-     `(("async-extra" ,ocaml4.02-async-extra)))
-    (build-system ocaml-build-system)
-    (arguments
-      (ensure-keyword-arguments janestreet-arguments
-       `(#:ocaml ,ocaml-4.02
-         #:findlib ,ocaml4.02-findlib)))
-    (home-page "https://github.com/janestreet/async")
-    (synopsis "Monadic concurrency library")
-    (description "Async is a library for concurrent programming in OCaml.")
-    (license license:asl2.0)))
-
 (define-public ocaml-ocplib-endian
   (package
     (name "ocaml-ocplib-endian")
@@ -3676,46 +2584,24 @@ strings, bytes and bigstring (Bigarrys of chars), and provides submodules for
 big- and little-endian, with their unsafe counter-parts.")
     (license license:lgpl2.1)))
 
-(define-public ocaml4.02-ocplib-endian
-  (package-with-ocaml4.02 ocaml-ocplib-endian))
-
-(define-public ocaml4.02-cstruct
+(define-public ocaml-cstruct
   (package
-    (name "ocaml4.02-cstruct")
-    (version "2.3.1")
+    (name "ocaml-cstruct")
+    (version "4.0.0")
     (source (origin
-              (method url-fetch)
-              (uri (string-append "https://github.com/mirage/ocaml-cstruct/"
-                                  "archive/v" version ".tar.gz"))
+              (method git-fetch)
+              (uri (git-reference
+                     (url "https://github.com/mirage/ocaml-cstruct")
+                     (commit (string-append "v" version))))
               (sha256
                (base32
-                "15qpdc8421shq4pprdas9jznpva45229wkfqbwcxw9khaiiz7949"))
-              (file-name (string-append name "-" version ".tar.gz"))))
-    (build-system ocaml-build-system)
+                "0m4bz0digcsc8l2msfikwcbi1y371kccx6xnkwrz212mf5mp98bv"))))
+    (build-system dune-build-system)
     (arguments
-     `(#:ocaml ,ocaml-4.02
-       #:findlib ,ocaml4.02-findlib
-       #:configure-flags
-       (list "--enable-lwt" "--enable-async")
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'install 'link-stubs
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let* ((out (assoc-ref outputs "out"))
-                    (stubs (string-append out "/lib/ocaml/site-lib/stubslibs"))
-                    (lib (string-append out "/lib/ocaml/site-lib/cstruct")))
-               (mkdir-p stubs)
-               (symlink (string-append lib "/dllcstruct_stubs.so")
-                        (string-append stubs "/dllcstruct_stubs.so"))))))))
+     `(#:package "cstruct"
+       #:test-target "."))
     (native-inputs
-     `(("ounit" ,ocaml4.02-ounit)
-       ("ppx-tools" ,ocaml4.02-ppx-tools)
-       ("camlp4" ,camlp4-4.02)))
-    (propagated-inputs
-     `(("ocplib-endian" ,ocaml4.02-ocplib-endian)
-       ("lwt" ,ocaml4.02-lwt)
-       ("async" ,ocaml4.02-async)
-       ("sexplib" ,ocaml4.02-sexplib)))
+     `(("ocaml-alcotest" ,ocaml-alcotest)))
     (home-page "https://github.com/mirage/ocaml-cstruct")
     (synopsis "Access C structures via a camlp4 extension")
     (description "Cstruct is a library and syntax extension to make it easier
@@ -3723,53 +2609,53 @@ to access C-like structures directly from OCaml.  It supports both reading and
 writing to these structures, and they are accessed via the Bigarray module.")
     (license license:isc)))
 
-(define-public ocaml4.02-hex
+(define-public ocaml-hex
   (package
-    (name "ocaml4.02-hex")
-    (version "1.0.0")
+    (name "ocaml-hex")
+    (version "1.4.0")
     (source (origin
-              (method url-fetch)
-              (uri (string-append "https://github.com/mirage/ocaml-hex/"
-                                  "archive/" version ".tar.gz"))
+              (method git-fetch)
+              (uri (git-reference
+                     (url "https://github.com/mirage/ocaml-hex")
+                     (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
               (sha256
                (base32
-                "0s63g0b8gfv2xm6fv6xg7bva8h76b5pcjb0zw3f8cygs0lq9072v"))
-              (file-name (string-append name "-" version ".tar.gz"))))
-    (build-system ocaml-build-system)
+                "0c8nhibcwy0ykzca4jn3gqb8ylq21ff88y82gl60wyzijr64rn0q"))))
+    (build-system dune-build-system)
     (arguments
-     `(#:ocaml ,ocaml-4.02
-       #:findlib ,ocaml4.02-findlib))
+     `(#:test-target "."))
     (propagated-inputs
-     `(("cstruct" ,ocaml4.02-cstruct)))
+     `(("ocaml-bigarray-compat" ,ocaml-bigarray-compat)
+       ("cstruct" ,ocaml-cstruct)))
     (home-page "https://github.com/mirage/ocaml-hex/")
     (synopsis "Minimal library providing hexadecimal converters")
     (description "Hex is a minimal library providing hexadecimal converters.")
     (license license:isc)))
 
-(define-public ocaml4.02-ezjsonm
+(define-public ocaml-ezjsonm
   (package
-    (name "ocaml4.02-ezjsonm")
-    (version "0.4.3")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://github.com/mirage/ezjsonm/archive/"
-                                  version ".tar.gz"))
-              (sha256
-               (base32
-                "1kag0z2xlk4rw73a240dmkxh9rj6psxxcxkm7d7z0rrj6hzjajgq"))
-              (file-name (string-append name "-" version ".tar.gz"))))
-    (build-system ocaml-build-system)
+    (name "ocaml-ezjsonm")
+    (version "1.1.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/mirage/ezjsonm.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "064j9pzy01p3dv947khqyn7fkjbs3jmrqsg8limb4abnlaqxxs2s"))))
+    (build-system dune-build-system)
+    (arguments
+     `(#:package "ezjsonm"
+       #:test-target "."))
     (native-inputs
-     `(("alcotest" ,ocaml4.02-alcotest)))
+     `(("ocaml-alcotest" ,ocaml-alcotest)))
     (propagated-inputs
-     `(("hex" ,ocaml4.02-hex)
-       ("jsonm" ,ocaml4.02-jsonm)
-       ("lwt" ,ocaml4.02-lwt)
-       ("sexplib" ,ocaml4.02-sexplib)))
-    (arguments
-     `(#:configure-flags (list "--enable-lwt")
-       #:ocaml ,ocaml-4.02
-       #:findlib ,ocaml4.02-findlib))
+     `(("ocaml-hex" ,ocaml-hex)
+       ("ocaml-jsonm" ,ocaml-jsonm)
+       ("ocaml-sexplib" ,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
@@ -3778,30 +2664,35 @@ the need to write signal code, which is useful for quick scripts that manipulate
 JSON.")
     (license license:isc)))
 
-(define-public ocaml4.02-uri
+(define-public ocaml-uri
   (package
-    (name "ocaml4.02-uri")
-    (version "1.9.2")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://github.com/mirage/ocaml-uri/archive/v"
-                                  version ".tar.gz"))
-              (sha256
-               (base32
-                "02bzrag79prx261rxf9mlak749pwf4flpfl8p012x1xznv9m0clc"))
-              (file-name (string-append name "-" version ".tar.gz"))))
-    (build-system ocaml-build-system)
+    (name "ocaml-uri")
+    (version "2.2.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/mirage/ocaml-uri.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1ppbav41mszpjcl0zi3fyg958cxyfs57i7kvha4ds9ydn89bjmrh"))))
+    (build-system dune-build-system)
     (arguments
-     `(#:ocaml ,ocaml-4.02
-       #:findlib ,ocaml4.02-findlib))
+     `(#:test-target "."
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'build 'update-deprecated
+           (lambda _
+             (substitute* "lib/uri.ml"
+               (("Re.get") "Re.Group.get")))))))
     (native-inputs
-     `(("ounit" ,ocaml4.02-ounit)))
+     `(("ocaml-ounit" ,ocaml-ounit)
+       ("ocaml-ppx-sexp-conv" ,ocaml-ppx-sexp-conv)))
     (propagated-inputs
-     `(("ppx-sexp-conv" ,ocaml4.02-ppx-sexp-conv)
-       ("re" ,ocaml4.02-re)
-       ("ppx-deriving" ,ocaml4.02-ppx-deriving)
-       ("sexplib" ,ocaml4.02-sexplib)
-       ("stringext" ,ocaml4.02-stringext)))
+     `(("ocaml-re" ,ocaml-re)
+       ("ocaml-sexplib0" ,ocaml-sexplib0)
+       ("ocaml-stringext" ,ocaml-stringext)))
     (home-page "https://github.com/mirage/ocaml-uri")
     (synopsis "RFC3986 URI/URL parsing library")
     (description "OCaml-uri is a library for parsing URI/URL in the RFC3986 format.")
@@ -3810,70 +2701,38 @@ JSON.")
 (define-public ocaml-easy-format
   (package
     (name "ocaml-easy-format")
-    (version "1.2.0")
+    (version "1.3.1")
     (source (origin
-              (method url-fetch)
-              (uri (string-append "https://github.com/mjambon/easy-format/"
-                                  "archive/v" version ".tar.gz"))
+              (method git-fetch)
+              (uri (git-reference
+                     (url "https://github.com/mjambon/easy-format")
+                     (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
               (sha256
                (base32
-                "1zcz682y9figa84k7lgdjcab5qbzk3yy14ygfqp2dhhrvjygm252"))
-              (file-name (string-append name "-" version ".tar.gz"))))
-    (build-system ocaml-build-system)
+                "0jfncci15b8sf1y72yrxfjlsmhs9aavcd14vwz4d7kj8k9w9c4qk"))))
+    (build-system dune-build-system)
     (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (delete 'configure))))
+     `(#:jbuild? #t))
     (home-page "https://github.com/mjambon/easy-format")
     (synopsis "Interface to the Format module")
     (description "Easy-format is a high-level and functional interface to the
 Format module of the OCaml standard library.")
     (license license:bsd-3)))
 
-(define-public ocaml4.02-easy-format
-  (package-with-ocaml4.02 ocaml-easy-format))
-
-(define-public optcomp
-  (package
-    (name "optcomp")
-    (version "1.6")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://github.com/diml/optcomp/archive/"
-                                  version ".tar.gz"))
-              (sha256
-               (base32
-                "0hhhb2gisah1h22zlg5iszbgqxdd7x85cwd57bd4mfkx9l7dh8jh"))
-              (file-name (string-append name "-" version ".tar.gz"))))
-    (build-system ocaml-build-system)
-    (arguments
-     `(#:ocaml ,ocaml-4.02
-       #:findlib ,ocaml4.02-findlib
-       #:use-make? #t
-       #:make-flags
-       (list (string-append "BUILDFLAGS=\"-cflags -I,"
-                            (assoc-ref %build-inputs "camlp4")
-                            "/lib/ocaml/site-lib/camlp4/Camlp4Parsers\""))))
-    (native-inputs `(("camlp4" ,camlp4-4.02)))
-    (propagated-inputs `(("camlp4" ,camlp4-4.02)))
-    (home-page "https://github.com/diml/optcomp")
-    (synopsis "Optional compilation for OCaml")
-    (description "Optcomp provides an optional compilation facility with
-cpp-like directives.")
-    (license license:bsd-3)))
-
 (define-public ocaml-piqilib
   (package
     (name "ocaml-piqilib")
     (version "0.6.14")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://github.com/alavrik/piqi/archive/v"
-                                  version ".tar.gz"))
-              (sha256
-               (base32
-                "1ssccnwqzfyf7syfq2fv4zyhwayxwd75rhq9y28mvq1w6qbww4l7"))
-              (file-name (string-append name "-" version ".tar.gz"))))
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/alavrik/piqi.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0lyqllmfsxmwlg7qidy92kvxi9n39lvachmydcyi81f8p07ykd2d"))))
     (build-system ocaml-build-system)
     (arguments
      `(#:phases
@@ -3922,9 +2781,6 @@ cpp-like directives.")
 tool and piqi-ocaml.")
     (license license:asl2.0)))
 
-(define-public ocaml4.02-piqilib
-  (package-with-ocaml4.02 ocaml-piqilib))
-
 (define-public ocaml-uuidm
   (package
     (name "ocaml-uuidm")
@@ -3956,9 +2812,6 @@ unique identifiers (UUIDs) version 3, 5 (named based with MD5, SHA-1 hashing)
 and 4 (random based) according to RFC 4122.")
     (license license:isc)))
 
-(define-public ocaml4.02-uuidm
-  (package-with-ocaml4.02 ocaml-uuidm))
-
 (define-public ocaml-graph
   (package
     (name "ocaml-graph")
@@ -3987,9 +2840,6 @@ and 4 (random based) according to RFC 4122.")
     (description "OCamlgraph is a generic graph library for OCaml.")
     (license license:lgpl2.1)))
 
-(define-public ocaml4.02-graph
-  (package-with-ocaml4.02 ocaml-graph))
-
 (define-public ocaml-piqi
   (package
     (name "ocaml-piqi")
@@ -4018,8 +2868,6 @@ and 4 (random based) according to RFC 4122.")
     (propagated-inputs
      `(("num" ,ocaml-num)
        ("piqilib" ,ocaml-piqilib)))
-    (properties
-      `((ocaml4.02-variant . ,(delay ocaml4.02-piqi))))
     (home-page "https://github.com/alavrik/piqi-ocaml")
     (synopsis "Protocol serialization system for OCaml")
     (description "Piqi is a multi-format data serialization system for OCaml.
@@ -4027,60 +2875,55 @@ It provides a uniform interface for serializing OCaml data structures to JSON,
 XML and Protocol Buffers formats.")
     (license license:asl2.0)))
 
-(define-public ocaml4.02-piqi
-  (let ((base (package-with-ocaml4.02 (strip-ocaml4.02-variant ocaml-piqi))))
-    (package
-      (inherit base)
-      (propagated-inputs
-       `(("piqilib" ,ocaml4.02-piqilib))))))
-
 (define-public bap
   (package
     (name "bap")
-    (version "1.3.0")
+    (version "1.6.0")
     (home-page "https://github.com/BinaryAnalysisPlatform/bap")
     (source (origin
-              (method url-fetch)
-              (uri (string-append home-page "/archive/v" version ".tar.gz"))
+              (method git-fetch)
+              (uri (git-reference
+                     (url home-page)
+                     (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
               (sha256
                (base32
-                "0v95v9mp7mg8fj25ry0w7566zd9xp6cs8nnqj4l38q54fb1hfav9"))
-              (file-name (string-append name "-" version ".tar.gz"))))
+                "0ryf2xb37pj2f9mc3p5prqgqrylph9qgq7q9jnbx8b03nzzpa6h6"))))
    (build-system ocaml-build-system)
    (native-inputs
-    `(("oasis" ,ocaml4.02-oasis)
+    `(("ocaml-oasis" ,ocaml-oasis)
       ("clang" ,clang-3.8)
-      ("ounit" ,ocaml4.02-ounit)))
+      ("ocaml-ounit" ,ocaml-ounit)))
    (propagated-inputs
-    `(("core-kernel" ,ocaml4.02-core-kernel)
-      ("ppx-driver" ,ocaml4.02-ppx-driver)
-      ("bin-prot" ,ocaml4.02-bin-prot)
-      ("uri" ,ocaml4.02-uri)
-      ("llvm" ,llvm-3.8)
-      ("gmp" ,gmp)
-      ("clang-runtime" ,clang-runtime)
-      ("fileutils" ,ocaml4.02-fileutils)
-      ("cmdliner" ,ocaml4.02-cmdliner)
-      ("zarith" ,ocaml4.02-zarith)
-      ("uuidm" ,ocaml4.02-uuidm)
-      ("camlzip" ,ocaml4.02-camlzip)
-      ("frontc" ,ocaml-frontc)
-      ("ezjsonm" ,ocaml4.02-ezjsonm)
-      ("ocurl" ,ocaml4.02-ocurl)
-      ("piqi" ,ocaml4.02-piqi)
-      ("ocamlgraph" ,ocaml4.02-graph)
-      ("bitstring" ,ocaml4.02-bitstring)
-      ("ppx-jane" ,ocaml4.02-ppx-jane)
-      ("re" ,ocaml4.02-re)))
-   (inputs `(("llvm" ,llvm-3.8)))
+    `(("camlzip" ,camlzip)
+      ("ocaml-bitstring" ,ocaml-bitstring)
+      ("ocaml-cmdliner" ,ocaml-cmdliner)
+      ("ocaml-core-kernel" ,ocaml-core-kernel)
+      ("ocaml-ezjsonm" ,ocaml-ezjsonm)
+      ("ocaml-fileutils" ,ocaml-fileutils)
+      ("ocaml-frontc" ,ocaml-frontc)
+      ("ocaml-graph" ,ocaml-graph)
+      ("ocaml-ocurl" ,ocaml-ocurl)
+      ("ocaml-piqi" ,ocaml-piqi)
+      ("ocaml-ppx-jane" ,ocaml-ppx-jane)
+      ("ocaml-uuidm" ,ocaml-uuidm)
+      ("ocaml-uri" ,ocaml-uri)
+      ("ocaml-zarith" ,ocaml-zarith)))
+   (inputs
+    `(("llvm" ,llvm-3.8)
+      ("gmp" ,gmp)))
    (arguments
-    `(#:ocaml ,ocaml-4.02
-      #:findlib ,ocaml4.02-findlib
-      #:use-make? #t
+    `(#:use-make? #t
       #:phases
       (modify-phases %standard-phases
         (replace 'configure
           (lambda* (#:key outputs inputs #:allow-other-keys)
+            ;; add write for user, to prevent a failure in the install phase
+            (for-each
+              (lambda (file)
+                (let ((stat (stat file)))
+                  (chmod file (+ #o200 (stat:mode stat)))))
+              (find-files "." "."))
             (invoke "./configure" "--prefix"
                     (assoc-ref outputs "out")
                     "--libdir"
@@ -4089,11 +2932,7 @@ XML and Protocol Buffers formats.")
                       "/lib/ocaml/site-lib")
                     "--with-llvm-version=3.8"
                     "--with-llvm-config=llvm-config"
-                    "--enable-everything")
-            (substitute* "plugins/objdump/objdump_main.ml"
-              (("Re_perl") "Re.Perl"))
-            (substitute* "oasis/objdump"
-              (("re.pcre") "re.pcre, re.perl")))))))
+                    "--enable-everything"))))))
    (synopsis "Binary Analysis Platform")
    (description "Binary Analysis Platform is a framework for writing program
 analysis tools, that target binary files.  The framework consists of a plethora
@@ -4118,7 +2957,14 @@ the plugins facilitate extensibility, and the frontends serve as entry points.")
      `(("camlp4" ,camlp4)))
     (arguments
      `(#:build-flags (list "--profile" "realease")
-       #:tests? #f))
+       #:test-target "camomile-test"
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'build 'fix-usr-share
+           (lambda* (#:key outputs #:allow-other-keys)
+             (substitute* '("Camomile/jbuild" "configure.ml")
+               (("/usr/share") (string-append (assoc-ref outputs "out") "/share")))
+             #t)))))
     (synopsis "Comprehensive Unicode library")
     (description "Camomile is a Unicode library for OCaml.  Camomile provides
 Unicode character type, UTF-8, UTF-16, UTF-32 strings, conversion to/from about
@@ -4127,71 +2973,23 @@ library is currently designed for Unicode Standard 3.2.")
     ;; with an exception for linked libraries to use a different license
     (license license:lgpl2.0+)))
 
-(define-public ocaml4.02-camomile
-  (package-with-ocaml4.02 ocaml-camomile))
-
-(define-public ocaml-jbuilder
-  (package
-    (name "ocaml-jbuilder")
-    (version "1.0+beta16")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "https://github.com/janestreet/jbuilder/archive/"
-                    version ".tar.gz"))
-              (file-name (string-append name "-" version ".tar.gz"))
-              (sha256
-               (base32
-                "1cy07pwvbrlysszs938yd74yyvvbgkffpb82qrjph77zf0h2gdi7"))))
-    (build-system ocaml-build-system)
-    (arguments
-     `(#:ocaml ,ocaml-4.02
-       #:findlib ,ocaml4.02-findlib
-       #:phases
-       (modify-phases %standard-phases
-         (replace 'configure
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let ((out (assoc-ref outputs "out")))
-               (setenv "PREFIX" out))
-             #t)))))
-    (native-inputs
-     `(("menhir" ,ocaml4.02-menhir)))
-    (propagated-inputs
-     `(("opam" ,opam)))
-    (home-page "https://github.com/janestreet/jbuilder")
-    (synopsis "Composable build system for OCaml")
-    (description "Jbuilder is a build system designed for OCaml/Reason projects
-only.  It focuses on providing the user with a consistent experience and takes
-care of most of the low-level details of OCaml compilation.  All you have to do
-is provide a description of your project and Jbuilder will do the rest.")
-    (license license:asl2.0)))
-
 (define-public ocaml-zed
   (package
     (name "ocaml-zed")
     (version "1.6")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://github.com/diml/zed/archive/"
-                                  version ".tar.gz"))
-              (file-name (string-append name "-" version ".tar.gz"))
-              (sha256
-               (base32
-                "19m5vrj60vg1b63qfsv0aabdlzgn40cqmx65s3wafqi4fs9xp6jn"))))
-    (build-system ocaml-build-system)
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/diml/zed.git")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "00hhxcjf3bj3w2qm8nzs9x6vrqkadf4i0277s5whzy2rmiknj63v"))))
+    (build-system dune-build-system)
     (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (delete 'configure)
-         (replace 'build
-           (lambda _ (invoke "jbuilder" "build")))
-         (delete 'check)
-         (replace 'install
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let ((out (assoc-ref outputs "out")))
-               (invoke "jbuilder" "install" "--prefix" out)))))))
-    (native-inputs
-     `(("jbuilder" ,ocaml-jbuilder)))
+     `(#:jbuild? #t
+       #:test-target "."))
     (propagated-inputs
      `(("camomile" ,ocaml-camomile)
        ("react" ,ocaml-react)))
@@ -4202,21 +3000,19 @@ to write text editors, edition widgets, readlines, etc.  You just have to
 connect an engine to your inputs and rendering functions to get an editor.")
     (license license:bsd-3)))
 
-(define-public ocaml4.02-zed
-  (package-with-ocaml4.02 ocaml-zed))
-
 (define-public ocaml-lambda-term
   (package
     (name "ocaml-lambda-term")
     (version "1.13")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/diml/lambda-term/archive/"
-                           version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/diml/lambda-term.git")
+             (commit version)))
+       (file-name (git-file-name name version))
        (sha256
-        (base32 "1hy5ryagqclgdm9lzh1qil5mrynlypv7mn6qm858hdcnmz9zzn0l"))))
+        (base32 "0wwib20b2ir3h2g9zwhzn04cv160psb805skp8v23wqgyn5cnbh8"))))
     (build-system dune-build-system)
     (arguments
      `(#:build-flags (list "--profile" "release")
@@ -4235,42 +3031,27 @@ manipulation than, for example, ncurses, by providing a native OCaml interface
 instead of bindings to a C library.")
     (license license:bsd-3)))
 
-(define-public ocaml4.02-lambda-term
-  (package-with-ocaml4.02 ocaml-lambda-term))
-
 (define-public ocaml-utop
   (package
     (name "ocaml-utop")
-    (version "2.2.0")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://github.com/ocaml-community/utop/archive/"
-                                  version ".tar.gz"))
-              (file-name (string-append name "-" version ".tar.gz"))
-              (sha256
-               (base32
-                "1414snwmqaxs1x8wbpjf6fn3jsl01hq0phrr7639xmb5vh15mgd4"))))
-    (build-system gnu-build-system)
+    (version "2.3.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/ocaml-community/utop.git")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0xvibb97vzzh7yabr5ajhilriwz8cg4c506lxq0bd7ss3aci9han"))))
+    (build-system dune-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"))
-                    (libdir (string-append out "/lib/ocaml/site-lib")))
-               (mkdir-p libdir)
-               (invoke "jbuilder" "install"
-                       "--prefix" out
-                       "--libdir" libdir)))))))
+     `(#:jbuild? #t
+       #:test-target "."))
     (native-inputs
-     `(("ocaml" ,ocaml)
-       ("cppo" ,ocaml-cppo)
-       ("jbuilder" ,ocaml-jbuilder)))
+     `(("cppo" ,ocaml-cppo)))
     (propagated-inputs
-     `(("ocaml-findlib" ,ocaml-findlib)
-       ("lambda-term" ,ocaml-lambda-term)
+     `(("lambda-term" ,ocaml-lambda-term)
        ("lwt" ,ocaml-lwt)
        ("react" ,ocaml-react)
        ("camomile" ,ocaml-camomile)
@@ -4285,7 +3066,7 @@ sensitive completion, colors, and more.")
 (define-public ocaml-integers
   (package
     (name "ocaml-integers")
-    (version "0.2.2")
+    (version "0.3.0")
     (home-page "https://github.com/ocamllabs/ocaml-integers")
     (source (origin
               (method url-fetch)
@@ -4533,7 +3314,7 @@ syntax checking on dedukti files.")
 (define-public ocaml-ppx-inline-test
   (package
     (name "ocaml-ppx-inline-test")
-    (version "0.11.0")
+    (version "0.12.0")
     (home-page "https://github.com/janestreet/ppx_inline_test")
     (source
      (origin
@@ -4544,7 +3325,7 @@ syntax checking on dedukti files.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "11n94fz1asjf5vqdgriv0pvsa5lbfpqcyk525c7816w23vskcvq6"))))
+         "0nyz411zim94pzbxm2l2v2l9jishcxwvxhh142792g2s18r4vn50"))))
     (build-system dune-build-system)
     (arguments
      ;see home page README for further information
@@ -4556,6 +3337,7 @@ syntax checking on dedukti files.")
        ("ocaml-sexplib0" ,ocaml-sexplib0)
        ("ocaml-stdio" ,ocaml-stdio)
        ("ocaml-ppxlib" ,ocaml-ppxlib)))
+    (properties `((upstream-name . "ppx_inline_test")))
     (synopsis "Syntax extension for writing in-line tests in ocaml code")
     (description "This package contains a syntax extension for writing
 in-line tests in ocaml code.  It is part of Jane Street's PPX rewriters
@@ -4698,18 +3480,18 @@ than yojson), with 25-35% space savings.")
 (define-public ocaml-yojson
   (package
     (name "ocaml-yojson")
-    (version "1.4.1")
+    (version "1.7.0")
     (home-page "https://github.com/ocaml-community/yojson")
     (source
      (origin
        (method git-fetch)
        (uri (git-reference
              (url (string-append home-page ".git"))
-             (commit (string-append "v" version))))
+             (commit version)))
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "0nwsfkmqpyfab4rxq76q8ff7giyanghw08094jyrp275v99zdjr9"))))
+         "0zncsw8bgbkh1pfvfc7nh628hfj84lgx6jwhp9ashj3z1z0w3xjn"))))
     (build-system dune-build-system)
     (arguments
      `(#:test-target "."))
@@ -4717,7 +3499,8 @@ than yojson), with 25-35% space savings.")
      `(("ocaml-biniou" ,ocaml-biniou)
        ("ocaml-easy-format" ,ocaml-easy-format)))
     (native-inputs
-     `(("ocaml-cppo" ,ocaml-cppo)))
+     `(("ocaml-alcotest" ,ocaml-alcotest)
+       ("ocaml-cppo" ,ocaml-cppo)))
     (synopsis "Low-level JSON library for OCaml")
     (description "Yojson is an optimized parsing and printing library for the
 JSON format.  It addresses a few shortcomings of json-wheel including 2x
@@ -4779,7 +3562,8 @@ format}.  @code{craml} is released as a single binary (called @code{craml}).")
     (native-inputs
      `(("ocaml-findlib" ,ocaml-findlib)))
     (arguments
-     '(#:tests? #f)) ;; Errors in tests in version 3.2.2
+     '(#:jbuild? #t
+       #:tests? #f)) ;; Errors in tests in version 3.2.2
     (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.
@@ -4790,7 +3574,7 @@ Atom.")
 (define-public ocaml-gsl
   (package
     (name "ocaml-gsl")
-    (version "1.22.0")
+    (version "1.24.0")
     (source
      (origin
        (method url-fetch)
@@ -4800,10 +3584,22 @@ Atom.")
          version "/gsl-" version ".tbz"))
        (sha256
         (base32
-         "17vcswipliq1b2idbzx1z95kskn1a4q4s5v04igilg0f7lnkaarb"))))
-    (build-system ocaml-build-system)
+         "1l5zkkkg8sglsihrbf10ivq9s8xzl1y6ag89i4jqpnmi4m43fy34"))))
+    (build-system dune-build-system)
+    (arguments
+     `(#:test-target "."
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-gsl-directory
+           (lambda* (#:key inputs #:allow-other-keys)
+             (substitute* "src/config/discover.ml"
+               (("/usr") (assoc-ref inputs "gsl")))
+             #t)))))
     (inputs
      `(("gsl" ,gsl)))
+    (propagated-inputs
+     `(("ocaml-base" ,ocaml-base)
+       ("ocaml-stdio" ,ocaml-stdio)))
     (home-page "https://mmottl.github.io/gsl-ocaml")
     (synopsis "Bindings to the GNU Scientific Library")
     (description
@@ -4811,6 +3607,26 @@ Atom.")
 the OCaml language.")
     (license license:gpl3+)))
 
+(define-public ocaml-gsl-1
+  (package
+    (inherit ocaml-gsl)
+    (version "1.19.3")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://github.com/mmottl/gsl-ocaml"
+                                  "/releases/download/v"
+                                  version "/gsl-ocaml-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0nzp43hp8pbjqkrxnwp5lgjrabxayf61h18fjaydi0s5faq6f3xh"))))
+    (build-system ocaml-build-system)
+    (inputs
+     `(("gsl" ,gsl)))
+    (native-inputs
+     `(("ocamlbuild" ,ocamlbuild)))
+    (arguments '())
+    (propagated-inputs '())))
+
 (define-public cubicle
   (package
     (name "cubicle")
@@ -5024,6 +3840,7 @@ provided by companion libraries such as
     (build-system dune-build-system)
     (arguments
      '(#:tests? #f)) ;no tests
+    (properties `((upstream-name . "ocaml-compiler-libs")))
     (synopsis "Compiler libraries repackaged")
     (description "This packaeg simply repackages the OCaml compiler libraries
 so they don't expose everything at toplevel.  For instance, @code{Ast_helper}
@@ -5061,7 +3878,7 @@ a more consistent API.")
 (define-public ocaml-ppx-derivers
   (package
     (name "ocaml-ppx-derivers")
-    (version "1.2")
+    (version "1.2.1")
     (home-page
      "https://github.com/ocaml-ppx/ppx_derivers")
     (source
@@ -5073,7 +3890,7 @@ a more consistent API.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "0bnhihl1w31as5w2czly1v3d6pbir9inmgsjg2cj6aaj9v1dzd85"))))
+         "0yqvqw58hbx1a61wcpbnl9j30n495k23qmyy2xwczqs63mn2nkpn"))))
     (build-system dune-build-system)
     (arguments
      '(#:tests? #f)) ;no tests
@@ -5088,7 +3905,7 @@ as part of the same ocaml-migrate-parsetree driver.")
 (define-public ocaml-ppxlib
   (package
     (name "ocaml-ppxlib")
-    (version "0.4.0")
+    (version "0.6.0")
     (home-page "https://github.com/ocaml-ppx/ppxlib")
     (source
      (origin
@@ -5099,7 +3916,7 @@ as part of the same ocaml-migrate-parsetree driver.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "1nr4igf5m4prvigvv470dnhfdhdw0p6hz6zw8gnm5bzcv7s2lg5l"))))
+         "0my9x7sxb329h0lzshppdaawiyfbaw6g5f41yiy7bhl071rnlvbv"))))
     (build-system dune-build-system)
     (propagated-inputs
      `(("ocaml-base" ,ocaml-base)
@@ -5120,6 +3937,7 @@ as part of the same ocaml-migrate-parsetree driver.")
                     (findlib-libdir
                      (string-append findlib-path "/lib/ocaml/site-lib")))
                (substitute* '("test/base/test.ml"
+                              "test/code_path/test.ml"
                               "test/deriving/test.ml"
                               "test/driver/attributes/test.ml"
                               "test/driver/non-compressible-suffix/test.ml"
@@ -5372,7 +4190,7 @@ storage of large amounts of data.")
 (define-public ocaml-octavius
   (package
     (name "ocaml-octavius")
-    (version "1.2.0")
+    (version "1.2.1")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -5381,7 +4199,7 @@ storage of large amounts of data.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0gqfbwsh0zq4b9mvvlmg3zhpbfbvq8swqr31320aibbqydwf77hr"))))
+                "1ck6yj6z5rvqyl39rz87ca1bnk0f1dpgvlk115631hjh8bwpfvfq"))))
     (build-system dune-build-system)
     (properties `((upstream-name . "octavius")))
     (home-page "https://github.com/ocaml-doc/octavius")
@@ -5398,6 +4216,7 @@ storage of large amounts of data.")
               (uri (git-reference
                      (url "https://github.com/janestreet/ppx_hash.git")
                      (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
               (sha256
                (base32
                 "1p0ic6aijxlrdggpmycj12q3cy9xksbq2vq727215maz4snvlf5p"))))
@@ -5411,7 +4230,7 @@ storage of large amounts of data.")
     (properties `((upstream-name . "ppx_hash")))
     (home-page "https://github.com/janestreet/ppx_hash")
     (synopsis "Generation of hash functions from type expressions and definitions")
-    (description "This package is a collecton of ppx rewriters that generate
+    (description "This package is a collection of ppx rewriters that generate
 hash functions from type exrpessions and definitions.")
     (license license:asl2.0)))
 
@@ -5424,13 +4243,13 @@ hash functions from type exrpessions and definitions.")
               (uri (git-reference
                      (url "https://github.com/janestreet/ppx_enumerate.git")
                      (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
               (sha256
                (base32
                 "0spx9k1v7vjjb6sigbfs69yndgq76v114jhxvzjmffw7q989cyhr"))))
     (build-system dune-build-system)
     (arguments
-     ;; No tests
-     `(#:tests? #f))
+     `(#:tests? #f))                    ; no test suite
     (propagated-inputs
       `(("ocaml-base" ,ocaml-base)
         ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree)
@@ -5729,7 +4548,7 @@ useful errors on failure.")
 (define-public ocaml-ppx-expect
   (package
     (name "ocaml-ppx-expect")
-    (version "0.11.1")
+    (version "0.12.0")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -5738,7 +4557,7 @@ useful errors on failure.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0bnz3cpj3vwdw409r6f8raakl8n364q5l7wy4i6gckr34a4vla69"))))
+                "1wawsbjfkri4sw52n8xqrzihxc3xfpdicv3ahz83a1rsn4lb8j5q"))))
     (build-system dune-build-system)
     (arguments
      `(#:jbuild? #t))
@@ -5804,6 +4623,7 @@ packages.")
               (uri (git-reference
                      (url "https://github.com/janestreet/ppx_typerep_conv.git")
                      (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
               (sha256
                (base32
                 "0a13dpfrrg0rsm8qni1bh7pqcda30l70z8r6yzi5a64bmwk7g5ah"))))
@@ -6014,15 +4834,16 @@ Configurator allows one to:
 (define-public ocaml-spawn
   (package
     (name "ocaml-spawn")
-    (version "0.12.0")
+    (version "0.13.0")
     (source (origin
               (method git-fetch)
               (uri (git-reference
                      (url "https://github.com/janestreet/spawn.git")
                      (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
               (sha256
                (base32
-                "0amgj7g9sjlbjivn1mg7yjdmxd21hgp4a0ak2zrm95dmm4gi846i"))))
+                "1w003k1kw1lmyiqlk58gkxx8rac7dchiqlz6ah7aj7bh49b36ppf"))))
     (build-system dune-build-system)
     (arguments
      `(#:phases
@@ -6065,6 +4886,7 @@ thousands of times faster than fork.
               (uri (git-reference
                      (url "https://github.com/janestreet/core.git")
                      (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
               (sha256
                (base32
                 "0pzl8n09z4f3i7z2wq4cjxfqrr8mj6xcdp7rbg0nxap2zdhjgvrq"))))
diff --git a/gnu/packages/openldap.scm b/gnu/packages/openldap.scm
index e8d766e472..43f111cf40 100644
--- a/gnu/packages/openldap.scm
+++ b/gnu/packages/openldap.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013, 2014, 2015, 2019 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2017, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
@@ -29,13 +29,13 @@
   #:use-module (gnu packages documentation)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages gnupg)
-  #:use-module (gnu packages gnuzilla)
   #:use-module (gnu packages groff)
   #:use-module (gnu packages icu4c)
   #:use-module (gnu packages kerberos)
   #:use-module (gnu packages libevent)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages networking)
+  #:use-module (gnu packages nss)
   #:use-module (gnu packages password-utils)
   #:use-module (gnu packages pcre)
   #:use-module (gnu packages perl)
diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm
index 86e8fce1dc..697a04e098 100644
--- a/gnu/packages/package-management.scm
+++ b/gnu/packages/package-management.scm
@@ -50,7 +50,6 @@
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages gnupg)
-  #:use-module (gnu packages gnuzilla)
   #:use-module (gnu packages graphviz)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages guile)
@@ -59,6 +58,7 @@
   #:use-module (gnu packages lisp)
   #:use-module (gnu packages man)
   #:use-module (gnu packages nettle)
+  #:use-module (gnu packages nss)
   #:use-module (gnu packages patchutils)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages perl-check)
@@ -78,6 +78,7 @@
   #:use-module (gnu packages web)
   #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg)
+  #:use-module (guix build-system glib-or-gtk)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system meson)
   #:use-module (guix build-system python)
@@ -109,8 +110,8 @@
   ;; Note: the 'update-guix-package.scm' script expects this definition to
   ;; start precisely like this.
   (let ((version "0.16.0")
-        (commit "2637cfd7a4894ef2a2a7da3bb46d8815c43d7e75")
-        (revision 10))
+        (commit "0c329bf4b0c00abdc9a7d9c818d36d4d60b3005d")
+        (revision 14))
     (package
       (name "guix")
 
@@ -126,7 +127,7 @@
                       (commit commit)))
                 (sha256
                  (base32
-                  "1m734gm45x9czqspsagdfxfgw5wiiinyq1s6zc9gfv7d3b2w472k"))
+                  "1403vrazx46w9hcvqjyxa4ipwvqv0432f6rsn4981w1n3p1j4mf6"))
                 (file-name (string-append "guix-" version "-checkout"))))
       (build-system gnu-build-system)
       (arguments
@@ -136,9 +137,6 @@
                             (string-append "--with-bash-completion-dir="
                                            (assoc-ref %outputs "out")
                                            "/etc/bash_completion.d")
-                            (string-append "--with-libgcrypt-prefix="
-                                           (assoc-ref %build-inputs
-                                                      "libgcrypt"))
 
                             ;; Set 'DOT_USER_PROGRAM' to the empty string so
                             ;; we don't keep a reference to Graphviz, whose
@@ -409,10 +407,10 @@ generated file."
   (make-parameter #f))
 
 (define-public current-guix
-  (let* ((repository-root (canonicalize-path
-                           (string-append (current-source-directory)
-                                          "/../..")))
-         (select? (delay (or (git-predicate repository-root)
+  (let* ((repository-root (delay (canonicalize-path
+                                  (string-append (current-source-directory)
+                                                 "/../.."))))
+         (select? (delay (or (git-predicate (force repository-root))
                              source-file?))))
     (lambda ()
       "Return a package representing Guix built from the current source tree.
@@ -422,7 +420,7 @@ out) and returning a package that uses that as its 'source'."
           (package
             (inherit guix)
             (version (string-append (package-version guix) "+"))
-            (source (local-file repository-root "guix-current"
+            (source (local-file (force repository-root) "guix-current"
                                 #:recursive? #t
                                 #:select? (force select?))))))))
 
@@ -548,13 +546,13 @@ transactions from C or Python.")
 (define-public diffoscope
   (package
     (name "diffoscope")
-    (version "113")
+    (version "114")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri name version))
               (sha256
                (base32
-                "10wjri6vsqxf2nb7jjhsq38qlpf407b4qrdczrk696aa1v71i44w"))))
+                "07sma4izcqxdv0zi1s5fnsybvkc47c3vbpm372sg83q8l7rhizzp"))))
     (build-system python-build-system)
     (arguments
      `(#:phases (modify-phases %standard-phases
@@ -1002,14 +1000,14 @@ for packaging and deployment of cross-compiled Windows applications.")
     (description
      "@code{libostree} is both a shared library and suite of command line
 tools that combines a \"git-like\" model for committing and downloading
-bootable filesystem trees, along with a layer for deploying them and managing
-the bootloader configuration.")
+bootable file system trees, along with a layer for deploying them and managing
+the boot loader configuration.")
     (license license:lgpl2.0+)))
 
 (define-public flatpak
   (package
    (name "flatpak")
-   (version "1.2.3")
+   (version "1.2.4")
    (source
     (origin
      (method url-fetch)
@@ -1017,8 +1015,12 @@ the bootloader configuration.")
                          version "/flatpak-" version ".tar.xz"))
      (sha256
       (base32
-       "0i0dn3w3545lvmjlzqj3j70lk8yrq64r9frp1rk6a161gwq20ixv"))))
-   (build-system gnu-build-system)
+       "1qf3ys84fzv11z6f6li59rxjdjbyrv7cyi9539k73r9i9pckjr8v"))))
+
+   ;; Wrap 'flatpak' so that GIO_EXTRA_MODULES is set, thereby allowing GIO to
+   ;; find the TLS backend in glib-networking.
+   (build-system glib-or-gtk-build-system)
+
    (arguments
     '(#:tests? #f ;; Tests fail due to trying to create files where it can't.
       #:configure-flags (list
diff --git a/gnu/packages/parallel.scm b/gnu/packages/parallel.scm
index 167d03b954..8b64878553 100644
--- a/gnu/packages/parallel.scm
+++ b/gnu/packages/parallel.scm
@@ -48,14 +48,14 @@
 (define-public parallel
   (package
     (name "parallel")
-    (version "20190322")
+    (version "20190422")
     (source
      (origin
       (method url-fetch)
       (uri (string-append "mirror://gnu/parallel/parallel-"
                           version ".tar.bz2"))
       (sha256
-       (base32 "12q0ys0dp019wykx7jcqbrilz8798hgb66k97aj2s2m7xdpw41ym"))))
+       (base32 "0xdl5fnh1vpjp3zpmqsrbbgjixazlhl4d9awk42nz4snzynysjxl"))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases
@@ -136,7 +136,7 @@ and they are executed on lists of files, hosts, users or other items.")
    (build-system gnu-build-system)
    (arguments
     `(#:configure-flags
-      (list "--enable-pam"
+      (list "--enable-pam" "--sysconfdir=/etc/slurm"
             (string-append "--with-freeipmi=" (assoc-ref %build-inputs "freeipmi"))
             (string-append "--with-hwloc=" (assoc-ref %build-inputs "hwloc"))
             (string-append "--with-json=" (assoc-ref %build-inputs "json-c"))
diff --git a/gnu/packages/password-utils.scm b/gnu/packages/password-utils.scm
index ad89cee5a8..b238d39a70 100644
--- a/gnu/packages/password-utils.scm
+++ b/gnu/packages/password-utils.scm
@@ -6,7 +6,7 @@
 ;;; Copyright © 2016 Jessica Tallon <tsyesika@tsyesika.se>
 ;;; Copyright © 2016 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2016 Lukas Gradl <lgradl@openmailbox.org>
-;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
+;;; Copyright © 2016, 2019 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>
@@ -48,6 +48,7 @@
   #:use-module (gnu packages)
   #:use-module (gnu packages admin)
   #:use-module (gnu packages aidc)
+  #:use-module (gnu packages authentication)
   #:use-module (gnu packages base)
   #:use-module (gnu packages check)
   #:use-module (gnu packages compression)
@@ -58,7 +59,6 @@
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnupg)
-  #:use-module (gnu packages gnuzilla)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages guile)
   #:use-module (gnu packages kerberos)
@@ -67,6 +67,7 @@
   #:use-module (gnu packages man)
   #:use-module (gnu packages multiprecision)
   #:use-module (gnu packages ncurses)
+  #:use-module (gnu packages nss)
   #:use-module (gnu packages opencl)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
@@ -74,6 +75,7 @@
   #:use-module (gnu packages python-web)
   #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages suckless)
+  #:use-module (gnu packages tcl)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages qt)
   #:use-module (gnu packages version-control)
@@ -423,6 +425,19 @@ any X11 window.")
        (modify-phases %standard-phases
          (delete 'configure)
          (delete 'build)
+         (add-before 'install 'patch-system-extension-dir
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (extension-dir (string-append out "/lib/password-store/extensions")))
+               (substitute* "src/password-store.sh"
+                 (("^SYSTEM_EXTENSION_DIR=.*$")
+                  ;; lead with whitespace to prevent 'make install' from
+                  ;; overwriting it again
+                  (string-append " SYSTEM_EXTENSION_DIR=\""
+                                 "${PASSWORD_STORE_SYSTEM_EXTENSION_DIR:-"
+                                 extension-dir
+                                 "}\"\n"))))
+             #t))
          (add-before 'install 'patch-passmenu-path
            (lambda* (#:key inputs #:allow-other-keys)
              (substitute* "contrib/dmenu/passmenu"
@@ -461,6 +476,10 @@ any X11 window.")
        ;; timeout in some circumstances.
        #:parallel-tests? #f
        #:test-target "test"))
+    (native-search-paths
+     (list (search-path-specification
+            (variable "PASSWORD_STORE_SYSTEM_EXTENSION_DIR")
+            (files '("lib/password-store/extensions")))))
     (inputs
      `(("dmenu" ,dmenu)
        ("getopt" ,util-linux)
@@ -482,6 +501,55 @@ changes to your password database to a git repository that can be managed
 through the pass command.")
     (license license:gpl2+)))
 
+(define-public pass-otp
+  (package
+    (name "pass-otp")
+    (version "1.2.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "https://github.com/tadfisher/pass-otp/releases/"
+                       "download/v" version "/pass-otp-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0rrs3iazq80dn0wbl20xkh270428jd8l99m5gd7hl93s4r4sc82p"))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:make-flags
+       (let* ((out      (assoc-ref %outputs "out"))
+              (bashcomp (string-append out "/etc/bash_completion.d")))
+         (list (string-append "PREFIX=" %output)
+               (string-append "BASHCOMPDIR=" bashcomp)))
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure)
+         (add-after 'build 'patch-oath-path
+           (lambda* (#:key inputs #:allow-other-keys)
+             (substitute* "otp.bash"
+               (("^OATH=.*$")
+                (string-append
+                 "OATH="
+                 (assoc-ref inputs "oath-toolkit")
+                 "/bin/oathtool\n")))
+             #t)))
+       #:test-target "test"))
+    (inputs
+     `(("oath-toolkit" ,oath-toolkit)))
+    (native-inputs
+     `(("password-store" ,password-store)
+       ("expect" ,expect)
+       ("git" ,git)
+       ("gnupg" ,gnupg)
+       ("which" ,which)))
+    (home-page "https://github.com/tadfisher/pass-otp")
+    (synopsis "Pass extension for managing one-time-password (OTP) tokens")
+    (description
+     "Pass OTP is an extension for password-store that allows adding
+one-time-password (OTP) secrets, generating OTP codes, and displaying secret
+key URIs using the standard otpauth:// scheme.")
+    (license license:gpl3+)))
+
 (define-public argon2
   (package
     (name "argon2")
diff --git a/gnu/packages/patches/bind-fix-unused-pk11-ecc-constants.patch b/gnu/packages/patches/bind-fix-unused-pk11-ecc-constants.patch
new file mode 100644
index 0000000000..ab7cc83684
--- /dev/null
+++ b/gnu/packages/patches/bind-fix-unused-pk11-ecc-constants.patch
@@ -0,0 +1,43 @@
+From: Tobias Geerinckx-Rice <me@tobias.gr>
+Date: Thu, 25 Apr 2019 04:36:52 +0200
+Subject: [PATCH] gnu: bind: Fix unused PKCS#11 ECC constants.
+
+Without this patch, the build fails:
+
+  pkcs11-keygen.c: In function ‘main’:
+  pkcs11-keygen.c:424:32: error: ‘pk11_ecc_prime256v1’ undeclared (first use in this function)
+      public_template[4].pValue = pk11_ecc_prime256v1;
+                                  ^
+  pkcs11-keygen.c:424:32: note: each undeclared identifier is reported only once for each function it appears in
+  pkcs11-keygen.c:428:32: error: ‘pk11_ecc_secp384r1’ undeclared (first use in this function)
+      public_template[4].pValue = pk11_ecc_secp384r1;
+                                  ^
+  make[2]: *** [Makefile:217: pkcs11-keygen.o] Error 1
+
+Fix copied verbatim from upstream[0].
+
+[0]: https://gitlab.isc.org/isc-projects/bind9/issues/935
+
+---
+--- orig-bind-9.11.6/bin/pkcs11/pkcs11-keygen.c	2019-02-27 15:28:15.000000000 -0800
++++ bind-9.11.6/bin/pkcs11/pkcs11-keygen.c	2019-03-11 09:20:50.955257469 -0700
+@@ -403,6 +403,10 @@
+ 		public_template[RSA_PUBLIC_EXPONENT].ulValueLen = expsize;
+ 		break;
+ 	case key_ecc:
++#if !defined(HAVE_PKCS11_ECDSA)
++		fprintf(stderr, "prime256v1 and secp3841r1 is not supported\n");
++		usage();
++#else
+ 		op_type = OP_EC;
+ 		if (bits == 0)
+ 			bits = 256;
+@@ -429,7 +433,7 @@
+ 			public_template[4].ulValueLen =
+ 				sizeof(pk11_ecc_secp384r1);
+ 		}
+-
++#endif
+ 		break;
+ 	case key_ecx:
+ #if !defined(CKM_EDDSA_KEY_PAIR_GEN)
diff --git a/gnu/packages/patches/docker-use-fewer-modprobes.patch b/gnu/packages/patches/docker-use-fewer-modprobes.patch
new file mode 100644
index 0000000000..4e4a45b6ce
--- /dev/null
+++ b/gnu/packages/patches/docker-use-fewer-modprobes.patch
@@ -0,0 +1,137 @@
+This patch makes docker find out whether a filesystem type is supported
+by trying to mount a filesystem of that type rather than invoking "modprobe".
+
+See <https://github.com/moby/moby/pull/38930>.
+
+--- docker-18.09.0-checkout/daemon/graphdriver/overlay/overlay.go.orig	1970-01-01 01:00:00.000000000 +0100
++++ docker-18.09.0-checkout/daemon/graphdriver/overlay/overlay.go	2019-03-19 09:16:03.487087490 +0100
+@@ -8,7 +8,6 @@
+ 	"io"
+ 	"io/ioutil"
+ 	"os"
+-	"os/exec"
+ 	"path"
+ 	"path/filepath"
+ 	"strconv"
+@@ -201,9 +200,16 @@
+ }
+ 
+ func supportsOverlay() error {
+-	// We can try to modprobe overlay first before looking at
+-	// proc/filesystems for when overlay is supported
+-	exec.Command("modprobe", "overlay").Run()
++	// Access overlay filesystem so that Linux loads it (if possible).
++	mountTarget, err := ioutil.TempDir("", "supportsOverlay")
++	if err != nil {
++		logrus.WithField("storage-driver", "overlay2").Error("Could not create temporary directory, so assuming that 'overlay' is not supported.")
++		return graphdriver.ErrNotSupported
++	} else {
++		/* The mounting will fail--after the module has been loaded.*/
++		defer os.RemoveAll(mountTarget)
++		unix.Mount("overlay", mountTarget, "overlay", 0, "")
++	}
+ 
+ 	f, err := os.Open("/proc/filesystems")
+ 	if err != nil {
+--- docker-18.09.0-checkout/daemon/graphdriver/overlay2/overlay.go.orig	2019-03-18 23:42:23.728525231 +0100
++++ docker-18.09.0-checkout/daemon/graphdriver/overlay2/overlay.go	2019-03-19 08:54:31.411906113 +0100
+@@ -10,7 +10,6 @@
+ 	"io"
+ 	"io/ioutil"
+ 	"os"
+-	"os/exec"
+ 	"path"
+ 	"path/filepath"
+ 	"strconv"
+@@ -261,9 +260,16 @@
+ }
+ 
+ func supportsOverlay() error {
+-	// We can try to modprobe overlay first before looking at
+-	// proc/filesystems for when overlay is supported
+-	exec.Command("modprobe", "overlay").Run()
++	// Access overlay filesystem so that Linux loads it (if possible).
++	mountTarget, err := ioutil.TempDir("", "supportsOverlay2")
++	if err != nil {
++		logrus.WithField("storage-driver", "overlay2").Error("Could not create temporary directory, so assuming that 'overlay' is not supported.")
++		return graphdriver.ErrNotSupported
++	} else {
++		/* The mounting will fail--after the module has been loaded.*/
++		defer os.RemoveAll(mountTarget)
++		unix.Mount("overlay", mountTarget, "overlay", 0, "")
++	}
+ 
+ 	f, err := os.Open("/proc/filesystems")
+ 	if err != nil {
+--- docker-18.09.0-checkout/daemon/graphdriver/devmapper/deviceset.go.orig	2019-03-19 09:19:16.592844887 +0100
++++ docker-18.09.0-checkout/daemon/graphdriver/devmapper/deviceset.go	2019-03-19 09:21:18.019361761 +0100
+@@ -540,8 +539,14 @@
+ 		return err // error text is descriptive enough
+ 	}
+ 
+-	// Check if kernel supports xfs filesystem or not.
+-	exec.Command("modprobe", "xfs").Run()
++	mountTarget, err := ioutil.TempDir("", "supportsXFS")
++	if err != nil {
++		return errors.Wrapf(err, "error checking for xfs support")
++	} else {
++		/* The mounting will fail--after the module has been loaded.*/
++		defer os.RemoveAll(mountTarget)
++		unix.Mount("none", mountTarget, "xfs", 0, "")
++	}
+ 
+ 	f, err := os.Open("/proc/filesystems")
+ 	if err != nil {
+--- docker-18.09.0-checkout/vendor/github.com/docker/libnetwork/iptables/iptables.go.orig	2019-03-19 09:47:19.430111170 +0100
++++ docker-18.09.0-checkout/vendor/github.com/docker/libnetwork/iptables/iptables.go	2019-03-19 10:38:01.445136177 +0100
+@@ -72,11 +71,12 @@
+ }
+ 
+ func probe() {
+-	if out, err := exec.Command("modprobe", "-va", "nf_nat").CombinedOutput(); err != nil {
+-		logrus.Warnf("Running modprobe nf_nat failed with message: `%s`, error: %v", strings.TrimSpace(string(out)), err)
++	path, err := exec.LookPath("iptables")
++	if err != nil {
++		return
+ 	}
+-	if out, err := exec.Command("modprobe", "-va", "xt_conntrack").CombinedOutput(); err != nil {
+-		logrus.Warnf("Running modprobe xt_conntrack failed with message: `%s`, error: %v", strings.TrimSpace(string(out)), err)
++	if out, err := exec.Command(path, "--wait", "-t", "nat", "-L", "-n").CombinedOutput(); err != nil {
++		logrus.Warnf("Running iptables --wait -t nat -L -n failed with message: `%s`, error: %v", strings.TrimSpace(string(out)), err)
+ 	}
+ }
+ 
+--- docker-18.09.0-checkout/vendor/github.com/docker/libnetwork/ns/init_linux.go.orig	2019-03-19 11:23:20.738316699 +0100
++++ docker-18.09.0-checkout/vendor/github.com/docker/libnetwork/ns/init_linux.go	2019-03-19 11:27:57.149753073 +0100
+@@ -76,12 +76,8 @@ func NlHandle() *netlink.Handle {
+ func getSupportedNlFamilies() []int {
+ 	fams := []int{syscall.NETLINK_ROUTE}
+ 	// NETLINK_XFRM test
+-	if err := loadXfrmModules(); err != nil {
+-		if checkXfrmSocket() != nil {
+-			logrus.Warnf("Could not load necessary modules for IPSEC rules: %v", err)
+-		} else {
+-			fams = append(fams, syscall.NETLINK_XFRM)
+-		}
++	if err := checkXfrmSocket(); err != nil {
++		logrus.Warnf("Could not load necessary modules for IPSEC rules: %v", err)
+ 	} else {
+ 		fams = append(fams, syscall.NETLINK_XFRM)
+ 	}
+@@ -99,16 +95,6 @@ func getSupportedNlFamilies() []int {
+ 	return fams
+ }
+ 
+-func loadXfrmModules() error {
+-	if out, err := exec.Command("modprobe", "-va", "xfrm_user").CombinedOutput(); err != nil {
+-		return fmt.Errorf("Running modprobe xfrm_user failed with message: `%s`, error: %v", strings.TrimSpace(string(out)), err)
+-	}
+-	if out, err := exec.Command("modprobe", "-va", "xfrm_algo").CombinedOutput(); err != nil {
+-		return fmt.Errorf("Running modprobe xfrm_algo failed with message: `%s`, error: %v", strings.TrimSpace(string(out)), err)
+-	}
+-	return nil
+-}
+-
+ // API check on required xfrm modules (xfrm_user, xfrm_algo)
+ func checkXfrmSocket() error {
+ 	fd, err := syscall.Socket(syscall.AF_NETLINK, syscall.SOCK_RAW, syscall.NETLINK_XFRM)
diff --git a/gnu/packages/patches/emacs-undohist-ignored.patch b/gnu/packages/patches/emacs-undohist-ignored.patch
new file mode 100644
index 0000000000..c1ad827a26
--- /dev/null
+++ b/gnu/packages/patches/emacs-undohist-ignored.patch
@@ -0,0 +1,27 @@
+From 52bfd419bf9022726048f818d955b8ea10a16d5c Mon Sep 17 00:00:00 2001
+From: Patrick Mosby <info@schreiblogade.de>
+Date: Mon, 7 Sep 2015 09:05:56 +0200
+Subject: [PATCH] Don't save undo file for ignored files.
+
+This fixes #4.
+---
+ undohist.el | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/undohist.el b/undohist.el
+index b184a26..de60356 100644
+--- a/undohist.el
++++ b/undohist.el
+@@ -164,7 +164,8 @@ To use undohist, you just call this function."
+                 undohist-ignored-files)))
+ 
+ (defun undohist-save-1 ()
+-  (when (consp buffer-undo-list)
++  (when (and (consp buffer-undo-list)
++             (undohist-recover-file-p (buffer-file-name (current-buffer))))
+     (let ((file (make-undohist-file-name (buffer-file-name)))
+           (contents `((digest . ,(md5 (current-buffer)))
+                       (undo-list . ,(undohist-encode buffer-undo-list)))))
+-- 
+2.21.0
+
diff --git a/gnu/packages/patches/emacs-zones-called-interactively.patch b/gnu/packages/patches/emacs-zones-called-interactively.patch
new file mode 100644
index 0000000000..b60f390a7e
--- /dev/null
+++ b/gnu/packages/patches/emacs-zones-called-interactively.patch
@@ -0,0 +1,43 @@
+From fb56fbb706804215ef9af0cc575db97c373046c6 Mon Sep 17 00:00:00 2001
+From: Brian Leung <bkleung89@gmail.com>
+Date: Sun, 17 Mar 2019 01:32:04 +0100
+Subject: [PATCH] This patch silences the byte-compiler.
+
+---
+ zones.el | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/zones.el b/zones.el
+index 1bf94f0..94fa9a6 100644
+--- a/zones.el
++++ b/zones.el
+@@ -1031,7 +1031,7 @@ You can use `C-x n x' to widen to a previous buffer restriction.
+ 
+ This is a destructive operation. The list structure of the variable
+ value can be modified."
+-  (zz-narrow-advice (interactive-p)))
++  (zz-narrow-advice (called-interactively-p)))
+ 
+ (defadvice narrow-to-defun (after zz-add-zone--defun activate)
+   "Push the defun limits to the current `zz-izones-var'.
+@@ -1039,7 +1039,7 @@ You can use `C-x n x' to widen to a previous buffer restriction.
+ 
+ This is a destructive operation. The list structure of the variable
+ value can be modified."
+-  (zz-narrow-advice (interactive-p)))
++  (zz-narrow-advice (called-interactively-p)))
+ 
+ ;; Call `zz-add-zone' if interactive or `zz-add-zone-anyway-p'.
+ ;;
+@@ -1049,7 +1049,7 @@ You can use `C-x n x' to widen to a previous buffer restriction.
+ 
+ This is a destructive operation. The list structure of the variable
+ value can be modified."
+-  (zz-narrow-advice (interactive-p)))
++  (zz-narrow-advice (called-interactively-p)))
+ 
+ ;;(@* "General Commands")
+ 
+-- 
+2.21.0
+
diff --git a/gnu/packages/patches/flac-CVE-2017-6888.patch b/gnu/packages/patches/flac-CVE-2017-6888.patch
new file mode 100644
index 0000000000..d2583201b4
--- /dev/null
+++ b/gnu/packages/patches/flac-CVE-2017-6888.patch
@@ -0,0 +1,29 @@
+https://git.xiph.org/?p=flac.git;a=patch;h=4f47b63e9c971e6391590caf00a0f2a5ed612e67
+
+From 4f47b63e9c971e6391590caf00a0f2a5ed612e67 Mon Sep 17 00:00:00 2001
+From: Erik de Castro Lopo <erikd@mega-nerd.com>
+Date: Sat, 8 Apr 2017 18:34:49 +1000
+Subject: [PATCH] stream_decoder.c: Fix a memory leak
+
+Leak reported by Secunia Research.
+---
+ src/libFLAC/stream_decoder.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/src/libFLAC/stream_decoder.c b/src/libFLAC/stream_decoder.c
+index 14d5fe7f..a5527511 100644
+--- a/src/libFLAC/stream_decoder.c
++++ b/src/libFLAC/stream_decoder.c
+@@ -1753,6 +1753,9 @@ FLAC__bool read_metadata_vorbiscomment_(FLAC__StreamDecoder *decoder, FLAC__Stre
+ 					}
+ 					memset (obj->comments[i].entry, 0, obj->comments[i].length) ;
+ 					if (!FLAC__bitreader_read_byte_block_aligned_no_crc(decoder->private_->input, obj->comments[i].entry, obj->comments[i].length)) {
++						/* Current i-th entry is bad, so we delete it. */
++						free (obj->comments[i].entry) ;
++						obj->comments[i].entry = NULL ;
+ 						obj->num_comments = i;
+ 						goto skip;
+ 					}
+-- 
+2.11.0
+
diff --git a/gnu/packages/patches/grub-efi-fat-serial-number.patch b/gnu/packages/patches/grub-efi-fat-serial-number.patch
new file mode 100644
index 0000000000..ad92f9bc9e
--- /dev/null
+++ b/gnu/packages/patches/grub-efi-fat-serial-number.patch
@@ -0,0 +1,27 @@
+Change 'grub-mkrescue' to honor the 'GRUB_FAT_SERIAL_NUMBER'
+environment variable.  That way, the caller can specify a fixed
+serial number (instead of the randomly chosen one) to create EFI
+images (the 'efi.img' file) that are reproducible bit-for-bit.
+
+Patch by Ludovic Courtès <ludo@gnu.org>.
+
+--- grub-2.02/util/grub-mkrescue.c	2019-04-20 19:15:26.180242812 +0200
++++ grub-2.02/util/grub-mkrescue.c	2019-04-20 21:56:34.672370849 +0200
+@@ -788,8 +788,15 @@ main (int argc, char *argv[])
+ 
+       efiimgfat = grub_util_path_concat (2, iso9660_dir, "efi.img");
+       int rv;
+-      rv = grub_util_exec ((const char * []) { "mformat", "-C", "-f", "2880", "-L", "16", "-i",
+-	    efiimgfat, "::", NULL });
++
++      const char *fat_serial_number = getenv ("GRUB_FAT_SERIAL_NUMBER");
++      const char *mformat_args[] =
++	{ "mformat", "-C", "-f", "2880", "-L", "16",
++	  fat_serial_number != NULL ? "-N" : "-C",
++	  fat_serial_number != NULL ? fat_serial_number : "-C",
++	  "-i", efiimgfat, "::", NULL };
++
++      rv = grub_util_exec (mformat_args);
+       if (rv != 0)
+ 	grub_util_error ("`%s` invocation failed\n", "mformat");
+       rv = grub_util_exec ((const char * []) { "mcopy", "-s", "-i", efiimgfat, efidir_efi, "::/", NULL });
diff --git a/gnu/packages/patches/idris-test-no-node.patch b/gnu/packages/patches/idris-test-no-node.patch
new file mode 100644
index 0000000000..c04ad41a8e
--- /dev/null
+++ b/gnu/packages/patches/idris-test-no-node.patch
@@ -0,0 +1,61 @@
+From 6c52e1b902b869c25e2fe39cff6364143a04da61 Mon Sep 17 00:00:00 2001
+From: Niklas Larsson <niklas@mm.st>
+Date: Tue, 11 Dec 2018 19:56:22 +0100
+Subject: [PATCH] Only check for Node when required
+
+---
+ test/TestRun.hs | 34 ++++++++++++++++++++--------------
+ 1 file changed, 20 insertions(+), 14 deletions(-)
+
+diff --git a/test/TestRun.hs b/test/TestRun.hs
+index c7db9fdcd..4809911f3 100644
+--- a/test/TestRun.hs
++++ b/test/TestRun.hs
+@@ -11,6 +11,7 @@ import Data.Proxy
+ import Data.Typeable
+ import Options.Applicative
+ import System.Directory
++import System.Environment
+ import System.Exit
+ import System.FilePath ((</>))
+ import System.Info
+@@ -103,20 +104,25 @@ runTest path flags = do
+       normalise (x : xs) = x : normalise xs
+       normalise [] = []
+ 
++checkNode :: IO  ()
++checkNode = do
++    nodePath   <- findExecutable "node"
++    nodejsPath <- findExecutable "nodejs"
++    let node = nodePath <|> nodejsPath
++    case node of
++      Nothing -> do
++        putStrLn "For running the test suite against Node, node must be installed."
++        exitFailure
++      Just _  -> return ()
++
+ main :: IO ()
+ main = do
+-  nodePath   <- findExecutable "node"
+-  nodejsPath <- findExecutable "nodejs"
+-  let node = nodePath <|> nodejsPath
+-  case node of
+-    Nothing -> do
+-      putStrLn "For running the test suite against Node, node must be installed."
+-      exitFailure
+-    Just _  -> do
+-      defaultMainWithIngredients ingredients $
++    args <- getArgs
++    when ("--node" `elem` args) checkNode
++    defaultMainWithIngredients ingredients $
+         askOption $ \(NodeOpt node) ->
+-          let (codegen, flags) = if node then (JS, ["--codegen", "node"])
+-                                         else (C , [])
+-           in
+-            mkGoldenTests (testFamiliesForCodegen codegen)
+-                        (flags ++ idrisFlags)
++            let (codegen, flags) = if node then (JS, ["--codegen", "node"])
++                                           else (C , [])
++            in
++                mkGoldenTests (testFamiliesForCodegen codegen) (flags ++ idrisFlags)
++
diff --git a/gnu/packages/patches/knot-include-system-lmdb-header.patch b/gnu/packages/patches/knot-include-system-lmdb-header.patch
deleted file mode 100644
index 5c5c0beabc..0000000000
--- a/gnu/packages/patches/knot-include-system-lmdb-header.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From: Tobias Geerinckx-Rice <me@tobias.gr>
-Date: Wed, 20 Mar 2019 00:08:00 +0100
-Subject: [PATCH] gnu: knot: Include system <lmdb.h>.
-
-Copied verbatim from Knot master[0].
-
-[0]: https://gitlab.labs.nic.cz/knot/knot-dns/commit/b557430cffbb1c6b30617a394b02acc514e7e536
-
-From b557430cffbb1c6b30617a394b02acc514e7e536 Mon Sep 17 00:00:00 2001
-From: Daniel Salzman <daniel.salzman@nic.cz>
-Date: Wed, 6 Mar 2019 17:35:44 +0100
-Subject: [PATCH] journal: include proper header <lmdb.h>
-
-fixes #638
----
- src/knot/journal/knot_lmdb.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/knot/journal/knot_lmdb.h b/src/knot/journal/knot_lmdb.h
-index 35a88845c..b1d09cbb4 100644
---- a/src/knot/journal/knot_lmdb.h
-+++ b/src/knot/journal/knot_lmdb.h
-@@ -16,7 +16,7 @@
- 
- #pragma once
- 
--#include "contrib/lmdb/lmdb.h"
-+#include <lmdb.h>
- 
- #include <stdbool.h>
- #include <stdlib.h>
--- 
-2.18.1
-
diff --git a/gnu/packages/patches/kodi-set-libcurl-ssl-parameters.patch b/gnu/packages/patches/kodi-set-libcurl-ssl-parameters.patch
new file mode 100644
index 0000000000..2f60737e30
--- /dev/null
+++ b/gnu/packages/patches/kodi-set-libcurl-ssl-parameters.patch
@@ -0,0 +1,17 @@
+Kodi doesn't set the CAPATH and CAINFO parameters for libcurl. To make HTTPS
+connections work we can set them based on SSL_CERT_DIR and SSL_CERT_FILE.
+
+--- a/xbmc/filesystem/CurlFile.cpp
++++ b/xbmc/filesystem/CurlFile.cpp
+@@ -626,5 +626,9 @@
+   if (!m_cipherlist.empty())
+     g_curlInterface.easy_setopt(h, CURLOPT_SSL_CIPHER_LIST, m_cipherlist.c_str());
+ 
++  // Load certificate data from environment paths
++  g_curlInterface.easy_setopt(m_state->m_easyHandle, CURLOPT_CAPATH, getenv("SSL_CERT_DIR"));
++  g_curlInterface.easy_setopt(m_state->m_easyHandle, CURLOPT_CAINFO, getenv("SSL_CERT_FILE"));
++
+   // enable HTTP2 support. default: CURL_HTTP_VERSION_1_1. Curl >= 7.62.0 defaults to CURL_HTTP_VERSION_2TLS
+   g_curlInterface.easy_setopt(h, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_2_0);
+-
+ }
diff --git a/gnu/packages/patches/lcms-CVE-2018-16435.patch b/gnu/packages/patches/lcms-CVE-2018-16435.patch
new file mode 100644
index 0000000000..60228e73af
--- /dev/null
+++ b/gnu/packages/patches/lcms-CVE-2018-16435.patch
@@ -0,0 +1,171 @@
+https://github.com/mm2/Little-CMS/commit/768f70ca405cd3159d990e962d54456773bb8cf8.patch
+
+From 768f70ca405cd3159d990e962d54456773bb8cf8 Mon Sep 17 00:00:00 2001
+From: Marti Maria <info@littlecms.com>
+Date: Wed, 15 Aug 2018 20:07:56 +0200
+Subject: [PATCH] Upgrade Visual studio 2017 15.8
+
+- Upgrade to 15.8
+- Add check on CGATS memory allocation (thanks to Quang Nguyen for
+pointing out this)
+---
+ Projects/VC2017/jpegicc/jpegicc.vcxproj           |  1 +
+ Projects/VC2017/lcms2_DLL/lcms2_DLL.vcxproj       |  2 +-
+ Projects/VC2017/lcms2_static/lcms2_static.vcxproj |  2 +-
+ Projects/VC2017/linkicc/linkicc.vcxproj           |  2 +-
+ Projects/VC2017/psicc/psicc.vcxproj               |  2 +-
+ Projects/VC2017/testbed/testbed.vcxproj           |  2 +-
+ Projects/VC2017/tiffdiff/tiffdiff.vcxproj         |  2 +-
+ Projects/VC2017/tifficc/tifficc.vcxproj           |  2 +-
+ Projects/VC2017/transicc/transicc.vcxproj         |  1 +
+ src/cmscgats.c                                    | 14 ++++++++++----
+ 10 files changed, 19 insertions(+), 11 deletions(-)
+
+diff --git a/Projects/VC2017/jpegicc/jpegicc.vcxproj b/Projects/VC2017/jpegicc/jpegicc.vcxproj
+index ab26a53..39cfd00 100644
+--- a/Projects/VC2017/jpegicc/jpegicc.vcxproj
++++ b/Projects/VC2017/jpegicc/jpegicc.vcxproj
+@@ -22,6 +22,7 @@
+     <ProjectGuid>{62812507-F926-4968-96A9-17678460AD90}</ProjectGuid>
+     <RootNamespace>jpegicc</RootNamespace>
+     <Keyword>Win32Proj</Keyword>
++    <WindowsTargetPlatformVersion>10.0.17134.0</WindowsTargetPlatformVersion>
+   </PropertyGroup>
+   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+diff --git a/Projects/VC2017/lcms2_DLL/lcms2_DLL.vcxproj b/Projects/VC2017/lcms2_DLL/lcms2_DLL.vcxproj
+index 4c8aa3f..d1bf3eb 100644
+--- a/Projects/VC2017/lcms2_DLL/lcms2_DLL.vcxproj
++++ b/Projects/VC2017/lcms2_DLL/lcms2_DLL.vcxproj
+@@ -22,7 +22,7 @@
+     <ProjectGuid>{8C51BE48-ADB8-4089-A9EC-F6BF993A0548}</ProjectGuid>
+     <RootNamespace>lcms2_DLL</RootNamespace>
+     <Keyword>Win32Proj</Keyword>
+-    <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
++    <WindowsTargetPlatformVersion>10.0.17134.0</WindowsTargetPlatformVersion>
+   </PropertyGroup>
+   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+diff --git a/Projects/VC2017/lcms2_static/lcms2_static.vcxproj b/Projects/VC2017/lcms2_static/lcms2_static.vcxproj
+index 2a9988a..9fc05ce 100644
+--- a/Projects/VC2017/lcms2_static/lcms2_static.vcxproj
++++ b/Projects/VC2017/lcms2_static/lcms2_static.vcxproj
+@@ -22,7 +22,7 @@
+     <ProjectGuid>{71DEDE59-3F1E-486B-A899-4283000F76B5}</ProjectGuid>
+     <RootNamespace>lcms2_static</RootNamespace>
+     <Keyword>Win32Proj</Keyword>
+-    <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
++    <WindowsTargetPlatformVersion>10.0.17134.0</WindowsTargetPlatformVersion>
+   </PropertyGroup>
+   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+diff --git a/Projects/VC2017/linkicc/linkicc.vcxproj b/Projects/VC2017/linkicc/linkicc.vcxproj
+index 30c2b4e..51586dd 100644
+--- a/Projects/VC2017/linkicc/linkicc.vcxproj
++++ b/Projects/VC2017/linkicc/linkicc.vcxproj
+@@ -22,7 +22,7 @@
+     <ProjectGuid>{FBFBE1DC-DB84-4BA1-9552-B4780F457849}</ProjectGuid>
+     <RootNamespace>linkicc</RootNamespace>
+     <Keyword>Win32Proj</Keyword>
+-    <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
++    <WindowsTargetPlatformVersion>10.0.17134.0</WindowsTargetPlatformVersion>
+   </PropertyGroup>
+   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+diff --git a/Projects/VC2017/psicc/psicc.vcxproj b/Projects/VC2017/psicc/psicc.vcxproj
+index 9dcf89a..8f26e12 100644
+--- a/Projects/VC2017/psicc/psicc.vcxproj
++++ b/Projects/VC2017/psicc/psicc.vcxproj
+@@ -22,7 +22,7 @@
+     <ProjectGuid>{EF6A8851-65FE-46F5-B9EF-14F0B671F693}</ProjectGuid>
+     <RootNamespace>psicc</RootNamespace>
+     <Keyword>Win32Proj</Keyword>
+-    <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
++    <WindowsTargetPlatformVersion>10.0.17134.0</WindowsTargetPlatformVersion>
+   </PropertyGroup>
+   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+diff --git a/Projects/VC2017/testbed/testbed.vcxproj b/Projects/VC2017/testbed/testbed.vcxproj
+index 0af3762..3f6aea3 100644
+--- a/Projects/VC2017/testbed/testbed.vcxproj
++++ b/Projects/VC2017/testbed/testbed.vcxproj
+@@ -22,7 +22,7 @@
+     <ProjectGuid>{928A3A2B-46EF-4279-959C-513B3652FF0E}</ProjectGuid>
+     <RootNamespace>testbed</RootNamespace>
+     <Keyword>Win32Proj</Keyword>
+-    <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
++    <WindowsTargetPlatformVersion>10.0.17134.0</WindowsTargetPlatformVersion>
+   </PropertyGroup>
+   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+diff --git a/Projects/VC2017/tiffdiff/tiffdiff.vcxproj b/Projects/VC2017/tiffdiff/tiffdiff.vcxproj
+index 7edfe28..3a6d837 100644
+--- a/Projects/VC2017/tiffdiff/tiffdiff.vcxproj
++++ b/Projects/VC2017/tiffdiff/tiffdiff.vcxproj
+@@ -22,7 +22,7 @@
+     <ProjectGuid>{75B91835-CCD7-48BE-A606-A9C997D5DBEE}</ProjectGuid>
+     <RootNamespace>tiffdiff</RootNamespace>
+     <Keyword>Win32Proj</Keyword>
+-    <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
++    <WindowsTargetPlatformVersion>10.0.17134.0</WindowsTargetPlatformVersion>
+   </PropertyGroup>
+   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+diff --git a/Projects/VC2017/tifficc/tifficc.vcxproj b/Projects/VC2017/tifficc/tifficc.vcxproj
+index cd9f04c..5ef954f 100644
+--- a/Projects/VC2017/tifficc/tifficc.vcxproj
++++ b/Projects/VC2017/tifficc/tifficc.vcxproj
+@@ -22,7 +22,7 @@
+     <ProjectGuid>{2256DE16-ED92-4A6F-9C54-F65BB61E64A2}</ProjectGuid>
+     <RootNamespace>tifficc</RootNamespace>
+     <Keyword>Win32Proj</Keyword>
+-    <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
++    <WindowsTargetPlatformVersion>10.0.17134.0</WindowsTargetPlatformVersion>
+   </PropertyGroup>
+   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+diff --git a/Projects/VC2017/transicc/transicc.vcxproj b/Projects/VC2017/transicc/transicc.vcxproj
+index d9b77c6..b3173d8 100644
+--- a/Projects/VC2017/transicc/transicc.vcxproj
++++ b/Projects/VC2017/transicc/transicc.vcxproj
+@@ -22,6 +22,7 @@
+     <ProjectGuid>{9EE22D66-C849-474C-9ED5-C3E141DAB160}</ProjectGuid>
+     <RootNamespace>transicc</RootNamespace>
+     <Keyword>Win32Proj</Keyword>
++    <WindowsTargetPlatformVersion>10.0.17134.0</WindowsTargetPlatformVersion>
+   </PropertyGroup>
+   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+diff --git a/src/cmscgats.c b/src/cmscgats.c
+index 1a87613..8c3e96d 100644
+--- a/src/cmscgats.c
++++ b/src/cmscgats.c
+@@ -1,7 +1,7 @@
+ //---------------------------------------------------------------------------------
+ //
+ //  Little Color Management System
+-//  Copyright (c) 1998-2017 Marti Maria Saguer
++//  Copyright (c) 1998-2018 Marti Maria Saguer
+ //
+ // Permission is hereby granted, free of charge, to any person obtaining
+ // a copy of this software and associated documentation files (the "Software"),
+@@ -1506,10 +1506,16 @@ void AllocateDataSet(cmsIT8* it8)
+     t-> nSamples   = atoi(cmsIT8GetProperty(it8, "NUMBER_OF_FIELDS"));
+     t-> nPatches   = atoi(cmsIT8GetProperty(it8, "NUMBER_OF_SETS"));
+ 
+-    t-> Data = (char**)AllocChunk (it8, ((cmsUInt32Number) t->nSamples + 1) * ((cmsUInt32Number) t->nPatches + 1) *sizeof (char*));
+-    if (t->Data == NULL) {
++    if (t -> nSamples < 0 || t->nSamples > 0x7ffe || t->nPatches < 0 || t->nPatches > 0x7ffe)
++    {
++        SynError(it8, "AllocateDataSet: too much data");
++    }
++    else {
++        t->Data = (char**)AllocChunk(it8, ((cmsUInt32Number)t->nSamples + 1) * ((cmsUInt32Number)t->nPatches + 1) * sizeof(char*));
++        if (t->Data == NULL) {
+ 
+-        SynError(it8, "AllocateDataSet: Unable to allocate data array");
++            SynError(it8, "AllocateDataSet: Unable to allocate data array");
++        }
+     }
+ 
+ }
diff --git a/gnu/packages/patches/ledger-fix-uninitialized.patch b/gnu/packages/patches/ledger-fix-uninitialized.patch
deleted file mode 100644
index 128c90ec13..0000000000
--- a/gnu/packages/patches/ledger-fix-uninitialized.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-This fixes failures of tests "BaseLine_opt-datetime-format" and
-"BaseLine_opt-time-report", which were printing an unexpected trailing '*' on
-the last line of output, e.g.:
-
-  @@ -5,4 +5,4 @@
-     04/05/13 12:00 PM    04/05/13 01:30 PM       1.50h    Lunch
-     04/05/13 11:30 AM    04/05/13 12:00 PM       30.0m    Walk
-   --------------------------------------------------
-  -                                           
-  +                                          *
-
-Reported upstream at
-https://groups.google.com/d/msg/ledger-cli/EeJUrUk8YDc/pIR-LOTVEAAJ
-
-diff --git a/src/account.h b/src/account.h
-index 1b97463d..f2555593 100644
---- a/src/account.h
-+++ b/src/account.h
-@@ -187,7 +187,7 @@ public:
- 
-       datetime_t         earliest_checkin;
-       datetime_t         latest_checkout;
--      bool               latest_checkout_cleared;
-+      bool               latest_checkout_cleared = false;
- 
-       std::set<path>     filenames;
-       std::set<string>   accounts_referenced;
diff --git a/gnu/packages/patches/libopenshot-fixup-tests.patch b/gnu/packages/patches/libopenshot-fixup-tests.patch
deleted file mode 100644
index 9a0bcc5e8f..0000000000
--- a/gnu/packages/patches/libopenshot-fixup-tests.patch
+++ /dev/null
@@ -1,148 +0,0 @@
-From 691536f2f8a9ed7322fedb24d489db08c70705b9 Mon Sep 17 00:00:00 2001
-From: "Dr. Tobias Quathamer" <toddy@debian.org>
-Date: Sat, 18 Nov 2017 13:54:22 +0100
-Subject: [PATCH] This the combination of two patches:
- https://sources.debian.org/data/main/libo/libopenshot/0.2.2+dfsg1-1/debian/patches/0003-Fix-failing-tests-by-using-a-fault-tolerance.patch
- https://sources.debian.org/data/main/libo/libopenshot/0.2.2+dfsg1-1/debian/patches/0004-Add-some-more-fault-tolerance-for-arm64.patch
-
-Together they should fix the test suite on all architectures
----
- tests/FFmpegReader_Tests.cpp |  9 ++++-----
- tests/ImageWriter_Tests.cpp  |  8 ++++----
- tests/Timeline_Tests.cpp     | 28 ++++++++++++++--------------
- 3 files changed, 22 insertions(+), 23 deletions(-)
-
-diff --git a/tests/FFmpegReader_Tests.cpp b/tests/FFmpegReader_Tests.cpp
-index 53563ca..07fc41e 100644
---- a/tests/FFmpegReader_Tests.cpp
-+++ b/tests/FFmpegReader_Tests.cpp
-@@ -95,8 +95,8 @@ TEST(FFmpegReader_Check_Video_File)
- 	int pixel_index = 112 * 4; // pixel 112 (4 bytes per pixel)
- 
- 	// Check image properties on scanline 10, pixel 112
--	CHECK_EQUAL(21, (int)pixels[pixel_index]);
--	CHECK_EQUAL(191, (int)pixels[pixel_index + 1]);
-+	CHECK_CLOSE(21, (int)pixels[pixel_index], 1);
-+	CHECK_CLOSE(191, (int)pixels[pixel_index + 1], 2);
- 	CHECK_EQUAL(0, (int)pixels[pixel_index + 2]);
- 	CHECK_EQUAL(255, (int)pixels[pixel_index + 3]);
- 
-@@ -109,8 +109,8 @@ TEST(FFmpegReader_Check_Video_File)
- 
- 	// Check image properties on scanline 10, pixel 112
- 	CHECK_EQUAL(0, (int)pixels[pixel_index]);
--	CHECK_EQUAL(96, (int)pixels[pixel_index + 1]);
--	CHECK_EQUAL(188, (int)pixels[pixel_index + 2]);
-+	CHECK_CLOSE(96, (int)pixels[pixel_index + 1], 1);
-+	CHECK_CLOSE(188, (int)pixels[pixel_index + 2], 1);
- 	CHECK_EQUAL(255, (int)pixels[pixel_index + 3]);
- 
- 	// Close reader
-@@ -209,4 +209,3 @@ TEST(FFmpegReader_Multiple_Open_and_Close)
- 	// Close reader
- 	r.Close();
- }
--
-diff --git a/tests/ImageWriter_Tests.cpp b/tests/ImageWriter_Tests.cpp
-index 107ee39..d10c8bd 100644
---- a/tests/ImageWriter_Tests.cpp
-+++ b/tests/ImageWriter_Tests.cpp
-@@ -73,9 +73,9 @@ TEST(ImageWriter_Test_Gif)
- 	int pixel_index = 230 * 4; // pixel 230 (4 bytes per pixel)
- 
- 	// Check image properties
--	CHECK_EQUAL(20, (int)pixels[pixel_index]);
--	CHECK_EQUAL(18, (int)pixels[pixel_index + 1]);
--	CHECK_EQUAL(11, (int)pixels[pixel_index + 2]);
-+	CHECK_CLOSE(20, (int)pixels[pixel_index], 5);
-+	CHECK_CLOSE(18, (int)pixels[pixel_index + 1], 2);
-+	CHECK_CLOSE(11, (int)pixels[pixel_index + 2], 2);
- 	CHECK_EQUAL(255, (int)pixels[pixel_index + 3]);
- }
--#endif
-\ No newline at end of file
-+#endif
-diff --git a/tests/Timeline_Tests.cpp b/tests/Timeline_Tests.cpp
-index 8c81579..4d861a6 100644
---- a/tests/Timeline_Tests.cpp
-+++ b/tests/Timeline_Tests.cpp
-@@ -119,8 +119,8 @@ TEST(Timeline_Check_Two_Track_Video)
- 	int pixel_index = 230 * 4; // pixel 230 (4 bytes per pixel)
- 
- 	// Check image properties
--	CHECK_EQUAL(21, (int)f->GetPixels(pixel_row)[pixel_index]);
--	CHECK_EQUAL(191, (int)f->GetPixels(pixel_row)[pixel_index + 1]);
-+	CHECK_CLOSE(21, (int)f->GetPixels(pixel_row)[pixel_index], 2);
-+	CHECK_CLOSE(191, (int)f->GetPixels(pixel_row)[pixel_index + 1], 2);
- 	CHECK_EQUAL(0, (int)f->GetPixels(pixel_row)[pixel_index + 2]);
- 	CHECK_EQUAL(255, (int)f->GetPixels(pixel_row)[pixel_index + 3]);
- 
-@@ -128,17 +128,17 @@ TEST(Timeline_Check_Two_Track_Video)
- 	f = t.GetFrame(2);
- 
- 	// Check image properties
--	CHECK_EQUAL(176, (int)f->GetPixels(pixel_row)[pixel_index]);
-+	CHECK_CLOSE(176, (int)f->GetPixels(pixel_row)[pixel_index], 1);
- 	CHECK_EQUAL(0, (int)f->GetPixels(pixel_row)[pixel_index + 1]);
--	CHECK_EQUAL(186, (int)f->GetPixels(pixel_row)[pixel_index + 2]);
-+	CHECK_CLOSE(186, (int)f->GetPixels(pixel_row)[pixel_index + 2], 1);
- 	CHECK_EQUAL(255, (int)f->GetPixels(pixel_row)[pixel_index + 3]);
- 
- 	// Get frame
- 	f = t.GetFrame(3);
- 
- 	// Check image properties
--	CHECK_EQUAL(23, (int)f->GetPixels(pixel_row)[pixel_index]);
--	CHECK_EQUAL(190, (int)f->GetPixels(pixel_row)[pixel_index + 1]);
-+	CHECK_CLOSE(23, (int)f->GetPixels(pixel_row)[pixel_index], 1);
-+	CHECK_CLOSE(190, (int)f->GetPixels(pixel_row)[pixel_index + 1], 2);
- 	CHECK_EQUAL(0, (int)f->GetPixels(pixel_row)[pixel_index + 2]);
- 	CHECK_EQUAL(255, (int)f->GetPixels(pixel_row)[pixel_index + 3]);
- 
-@@ -146,8 +146,8 @@ TEST(Timeline_Check_Two_Track_Video)
- 	f = t.GetFrame(24);
- 
- 	// Check image properties
--	CHECK_EQUAL(186, (int)f->GetPixels(pixel_row)[pixel_index]);
--	CHECK_EQUAL(106, (int)f->GetPixels(pixel_row)[pixel_index + 1]);
-+	CHECK_CLOSE(186, (int)f->GetPixels(pixel_row)[pixel_index], 1);
-+	CHECK_CLOSE(106, (int)f->GetPixels(pixel_row)[pixel_index + 1], 1);
- 	CHECK_EQUAL(0, (int)f->GetPixels(pixel_row)[pixel_index + 2]);
- 	CHECK_EQUAL(255, (int)f->GetPixels(pixel_row)[pixel_index + 3]);
- 
-@@ -155,8 +155,8 @@ TEST(Timeline_Check_Two_Track_Video)
- 	f = t.GetFrame(5);
- 
- 	// Check image properties
--	CHECK_EQUAL(23, (int)f->GetPixels(pixel_row)[pixel_index]);
--	CHECK_EQUAL(190, (int)f->GetPixels(pixel_row)[pixel_index + 1]);
-+	CHECK_CLOSE(23, (int)f->GetPixels(pixel_row)[pixel_index], 1);
-+	CHECK_CLOSE(190, (int)f->GetPixels(pixel_row)[pixel_index + 1], 2);
- 	CHECK_EQUAL(0, (int)f->GetPixels(pixel_row)[pixel_index + 2]);
- 	CHECK_EQUAL(255, (int)f->GetPixels(pixel_row)[pixel_index + 3]);
- 
-@@ -165,17 +165,17 @@ TEST(Timeline_Check_Two_Track_Video)
- 
- 	// Check image properties
- 	CHECK_EQUAL(0, (int)f->GetPixels(pixel_row)[pixel_index]);
--	CHECK_EQUAL(94, (int)f->GetPixels(pixel_row)[pixel_index + 1]);
--	CHECK_EQUAL(186, (int)f->GetPixels(pixel_row)[pixel_index + 2]);
-+	CHECK_CLOSE(94, (int)f->GetPixels(pixel_row)[pixel_index + 1], 1);
-+	CHECK_CLOSE(186, (int)f->GetPixels(pixel_row)[pixel_index + 2], 1);
- 	CHECK_EQUAL(255, (int)f->GetPixels(pixel_row)[pixel_index + 3]);
- 
- 	// Get frame
- 	f = t.GetFrame(4);
- 
- 	// Check image properties
--	CHECK_EQUAL(176, (int)f->GetPixels(pixel_row)[pixel_index]);
-+	CHECK_CLOSE(176, (int)f->GetPixels(pixel_row)[pixel_index], 1);
- 	CHECK_EQUAL(0, (int)f->GetPixels(pixel_row)[pixel_index + 1]);
--	CHECK_EQUAL(186, (int)f->GetPixels(pixel_row)[pixel_index + 2]);
-+	CHECK_CLOSE(186, (int)f->GetPixels(pixel_row)[pixel_index + 2], 1);
- 	CHECK_EQUAL(255, (int)f->GetPixels(pixel_row)[pixel_index + 3]);
- 
- 	// Close reader
--- 
-2.21.0
-
diff --git a/gnu/packages/patches/libopenshot-tests-with-system-libs.patch b/gnu/packages/patches/libopenshot-tests-with-system-libs.patch
deleted file mode 100644
index a18c4b8bba..0000000000
--- a/gnu/packages/patches/libopenshot-tests-with-system-libs.patch
+++ /dev/null
@@ -1,95 +0,0 @@
-Combination of two patches that fix libopenshot tests when built with
-system-provided ffmpeg and jsoncpp.  See
-
-  https://github.com/OpenShot/libopenshot/pull/163
-
-From 0d7691ab53433e1583f6a66ea96683b0f7af8a57 Mon Sep 17 00:00:00 2001
-From: "FeRD (Frank Dana)" <ferdnyc@gmail.com>
-Date: Mon, 17 Sep 2018 14:04:40 -0400
-Subject: [PATCH] tests/CMakeFiles: Use FFMpeg like src/
-
----
- tests/CMakeLists.txt | 32 +++++++++++++++++++++++++++++++-
- 1 file changed, 31 insertions(+), 1 deletion(-)
-
-diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
-index 2c45550..4df8464 100644
---- a/tests/CMakeLists.txt
-+++ b/tests/CMakeLists.txt
-@@ -79,7 +79,37 @@ ENDIF (ImageMagick_FOUND)
- FIND_PACKAGE(FFmpeg REQUIRED)
- 
- # Include FFmpeg headers (needed for compile)
--include_directories(${FFMPEG_INCLUDE_DIR})
-+message('AVCODEC_FOUND: ${AVCODEC_FOUND}')
-+message('AVCODEC_INCLUDE_DIRS: ${AVCODEC_INCLUDE_DIRS}')
-+message('AVCODEC_LIBRARIES: ${AVCODEC_LIBRARIES}')
-+
-+IF (AVCODEC_FOUND)
-+	include_directories(${AVCODEC_INCLUDE_DIRS})
-+ENDIF (AVCODEC_FOUND)
-+IF (AVDEVICE_FOUND)
-+	include_directories(${AVDEVICE_INCLUDE_DIRS})
-+ENDIF (AVDEVICE_FOUND)
-+IF (AVFORMAT_FOUND)
-+	include_directories(${AVFORMAT_INCLUDE_DIRS})
-+ENDIF (AVFORMAT_FOUND)
-+IF (AVFILTER_FOUND)
-+	include_directories(${AVFILTER_INCLUDE_DIRS})
-+ENDIF (AVFILTER_FOUND)
-+IF (AVUTIL_FOUND)
-+	include_directories(${AVUTIL_INCLUDE_DIRS})
-+ENDIF (AVUTIL_FOUND)
-+IF (POSTPROC_FOUND)
-+	include_directories(${POSTPROC_INCLUDE_DIRS})
-+ENDIF (POSTPROC_FOUND)
-+IF (SWSCALE_FOUND)
-+	include_directories(${SWSCALE_INCLUDE_DIRS})
-+ENDIF (SWSCALE_FOUND)
-+IF (SWRESAMPLE_FOUND)
-+	include_directories(${SWRESAMPLE_INCLUDE_DIRS})
-+ENDIF (SWRESAMPLE_FOUND)
-+IF (AVRESAMPLE_FOUND)
-+	include_directories(${AVRESAMPLE_INCLUDE_DIRS})
-+ENDIF (AVRESAMPLE_FOUND)
- 
- ################# LIBOPENSHOT-AUDIO ###################
- # Find JUCE-based openshot Audio libraries
-
-
-From e9e85cdfd036587adb86341f7f81619dc69f102c Mon Sep 17 00:00:00 2001
-From: "FeRD (Frank Dana)" <ferdnyc@gmail.com>
-Date: Mon, 17 Sep 2018 19:23:25 -0400
-Subject: [PATCH] Use system jsoncpp in tests, too
-
-The tests/ build needs to use the same jsoncpp as the src/ build,
-or tests in Clip_Tests.cpp can fail.
----
- tests/CMakeLists.txt | 10 ++++++++--
- 1 file changed, 8 insertions(+), 2 deletions(-)
-
-diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
-index 4df8464..a1a0356 100644
---- a/tests/CMakeLists.txt
-+++ b/tests/CMakeLists.txt
-@@ -180,12 +180,18 @@ endif(OPENMP_FOUND)
- # Find ZeroMQ library (used for socket communication & logging)
- FIND_PACKAGE(ZMQ REQUIRED)
- 
--# Include FFmpeg headers (needed for compile)
-+# Include ZeroMQ headers (needed for compile)
- include_directories(${ZMQ_INCLUDE_DIRS})
- 
- ################### JSONCPP #####################
- # Include jsoncpp headers (needed for JSON parsing)
--include_directories("../thirdparty/jsoncpp/include")
-+if (USE_SYSTEM_JSONCPP)
-+	find_package(JsonCpp REQUIRED)
-+	include_directories(${JSONCPP_INCLUDE_DIRS})
-+else()
-+	message("Using embedded JsonCpp")
-+	include_directories("../thirdparty/jsoncpp/include")
-+endif(USE_SYSTEM_JSONCPP)
- 
- IF (NOT DISABLE_TESTS)
- 	###############  SET TEST SOURCE FILES  #################
diff --git a/gnu/packages/patches/linkchecker-mark-more-tests-that-require-the-network.patch b/gnu/packages/patches/linkchecker-tests-require-network.patch
index f3e488cec2..f3e488cec2 100644
--- a/gnu/packages/patches/linkchecker-mark-more-tests-that-require-the-network.patch
+++ b/gnu/packages/patches/linkchecker-tests-require-network.patch
diff --git a/gnu/packages/patches/localed-xorg-keyboard.patch b/gnu/packages/patches/localed-xorg-keyboard.patch
new file mode 100644
index 0000000000..9a9071ba0a
--- /dev/null
+++ b/gnu/packages/patches/localed-xorg-keyboard.patch
@@ -0,0 +1,322 @@
+Normally localed would do an approximate parsing of the Xorg config file
+to determine the XKB keyboard layout.  This doesn't make sense on Guix
+where there's no such file in /etc, and where the keyboard layout is
+known statically at configuration time.
+
+This patch removes the XOrg configuration parsing and expects to read the
+configuration from environment variables instead.  It also removes the
+stateful bits that would write configuration to /etc/vconsole.conf
+and /etc/X11, which are unused in Guix anyway.
+
+Patch by Ludovic Courtès <ludo@gnu.org>.
+
+diff --git a/src/locale/keymap-util.c b/src/locale/keymap-util.c
+index 6b6b32a591..46aab472b0 100644
+--- a/src/locale/keymap-util.c
++++ b/src/locale/keymap-util.c
+@@ -174,32 +174,16 @@ int vconsole_read_data(Context *c, sd_bus_message *m) {
+                 c->vc_cache = sd_bus_message_ref(m);
+         }
+ 
+-        if (stat("/etc/vconsole.conf", &st) < 0) {
+-                if (errno != ENOENT)
+-                        return -errno;
+-
+-                c->vc_mtime = USEC_INFINITY;
+-                context_free_vconsole(c);
+-                return 0;
+-        }
+-
+-        /* If mtime is not changed, then we do not need to re-read */
+-        t = timespec_load(&st.st_mtim);
+-        if (c->vc_mtime != USEC_INFINITY && t == c->vc_mtime)
+-                return 0;
+-
+-        c->vc_mtime = t;
++        c->vc_mtime = USEC_INFINITY;
+         context_free_vconsole(c);
+-
+-        r = parse_env_file(NULL, "/etc/vconsole.conf",
+-                           "KEYMAP",        &c->vc_keymap,
+-                           "KEYMAP_TOGGLE", &c->vc_keymap_toggle);
+-        if (r < 0)
+-                return r;
+-
+         return 0;
+ }
+ 
++static char *getenv_strdup(const char *variable) {
++        const char *value = getenv(variable);
++        return value == NULL ? NULL : strdup(value);
++}
++
+ int x11_read_data(Context *c, sd_bus_message *m) {
+         _cleanup_fclose_ FILE *f = NULL;
+         bool in_section = false;
+@@ -216,258 +200,27 @@ int x11_read_data(Context *c, sd_bus_message *m) {
+                 c->x11_cache = sd_bus_message_ref(m);
+         }
+ 
+-        if (stat("/etc/X11/xorg.conf.d/00-keyboard.conf", &st) < 0) {
+-                if (errno != ENOENT)
+-                        return -errno;
+-
+-                c->x11_mtime = USEC_INFINITY;
+-                context_free_x11(c);
+-                return 0;
+-        }
+-
+-        /* If mtime is not changed, then we do not need to re-read */
+-        t = timespec_load(&st.st_mtim);
+-        if (c->x11_mtime != USEC_INFINITY && t == c->x11_mtime)
+-                return 0;
+-
+-        c->x11_mtime = t;
++        c->x11_mtime = 0;
+         context_free_x11(c);
+ 
+-        f = fopen("/etc/X11/xorg.conf.d/00-keyboard.conf", "re");
+-        if (!f)
+-                return -errno;
+-
+-        for (;;) {
+-                _cleanup_free_ char *line = NULL;
+-                char *l;
+-
+-                r = read_line(f, LONG_LINE_MAX, &line);
+-                if (r < 0)
+-                        return r;
+-                if (r == 0)
+-                        break;
+-
+-                l = strstrip(line);
+-                if (IN_SET(l[0], 0, '#'))
+-                        continue;
+-
+-                if (in_section && first_word(l, "Option")) {
+-                        _cleanup_strv_free_ char **a = NULL;
+-
+-                        r = strv_split_extract(&a, l, WHITESPACE, EXTRACT_QUOTES);
+-                        if (r < 0)
+-                                return r;
+-
+-                        if (strv_length(a) == 3) {
+-                                char **p = NULL;
+-
+-                                if (streq(a[1], "XkbLayout"))
+-                                        p = &c->x11_layout;
+-                                else if (streq(a[1], "XkbModel"))
+-                                        p = &c->x11_model;
+-                                else if (streq(a[1], "XkbVariant"))
+-                                        p = &c->x11_variant;
+-                                else if (streq(a[1], "XkbOptions"))
+-                                        p = &c->x11_options;
+-
+-                                if (p) {
+-                                        free_and_replace(*p, a[2]);
+-                                }
+-                        }
+-
+-                } else if (!in_section && first_word(l, "Section")) {
+-                        _cleanup_strv_free_ char **a = NULL;
+-
+-                        r = strv_split_extract(&a, l, WHITESPACE, EXTRACT_QUOTES);
+-                        if (r < 0)
+-                                return -ENOMEM;
+-
+-                        if (strv_length(a) == 2 && streq(a[1], "InputClass"))
+-                                in_section = true;
+-
+-                } else if (in_section && first_word(l, "EndSection"))
+-                        in_section = false;
+-        }
++        c->x11_layout = getenv_strdup("GUIX_XKB_LAYOUT");
++        c->x11_model = getenv_strdup("GUIX_XKB_MODEL");
++        c->x11_variant = getenv_strdup("GUIX_XKB_VARIANT");
++        c->x11_options = getenv_strdup("GUIX_XKB_OPTIONS");
+ 
+         return 0;
+ }
+ 
+ int locale_write_data(Context *c, char ***settings) {
+-        _cleanup_strv_free_ char **l = NULL;
+-        struct stat st;
+-        int r, p;
+-
+-        /* Set values will be returned as strv in *settings on success. */
+-
+-        for (p = 0; p < _VARIABLE_LC_MAX; p++) {
+-                _cleanup_free_ char *t = NULL;
+-                char **u;
+-                const char *name;
+-
+-                name = locale_variable_to_string(p);
+-                assert(name);
+-
+-                if (isempty(c->locale[p]))
+-                        continue;
+-
+-                if (asprintf(&t, "%s=%s", name, c->locale[p]) < 0)
+-                        return -ENOMEM;
+-
+-                u = strv_env_set(l, t);
+-                if (!u)
+-                        return -ENOMEM;
+-
+-                strv_free_and_replace(l, u);
+-        }
+-
+-        if (strv_isempty(l)) {
+-                if (unlink("/etc/locale.conf") < 0)
+-                        return errno == ENOENT ? 0 : -errno;
+-
+-                c->locale_mtime = USEC_INFINITY;
+-                return 0;
+-        }
+-
+-        r = write_env_file_label("/etc/locale.conf", l);
+-        if (r < 0)
+-                return r;
+-
+-        *settings = TAKE_PTR(l);
+-
+-        if (stat("/etc/locale.conf", &st) >= 0)
+-                c->locale_mtime = timespec_load(&st.st_mtim);
+-
+-        return 0;
++        return -ENOSYS;
+ }
+ 
+ int vconsole_write_data(Context *c) {
+-        _cleanup_strv_free_ char **l = NULL;
+-        struct stat st;
+-        int r;
+-
+-        r = load_env_file(NULL, "/etc/vconsole.conf", &l);
+-        if (r < 0 && r != -ENOENT)
+-                return r;
+-
+-        if (isempty(c->vc_keymap))
+-                l = strv_env_unset(l, "KEYMAP");
+-        else {
+-                _cleanup_free_ char *s = NULL;
+-                char **u;
+-
+-                s = strappend("KEYMAP=", c->vc_keymap);
+-                if (!s)
+-                        return -ENOMEM;
+-
+-                u = strv_env_set(l, s);
+-                if (!u)
+-                        return -ENOMEM;
+-
+-                strv_free_and_replace(l, u);
+-        }
+-
+-        if (isempty(c->vc_keymap_toggle))
+-                l = strv_env_unset(l, "KEYMAP_TOGGLE");
+-        else  {
+-                _cleanup_free_ char *s = NULL;
+-                char **u;
+-
+-                s = strappend("KEYMAP_TOGGLE=", c->vc_keymap_toggle);
+-                if (!s)
+-                        return -ENOMEM;
+-
+-                u = strv_env_set(l, s);
+-                if (!u)
+-                        return -ENOMEM;
+-
+-                strv_free_and_replace(l, u);
+-        }
+-
+-        if (strv_isempty(l)) {
+-                if (unlink("/etc/vconsole.conf") < 0)
+-                        return errno == ENOENT ? 0 : -errno;
+-
+-                c->vc_mtime = USEC_INFINITY;
+-                return 0;
+-        }
+-
+-        r = write_env_file_label("/etc/vconsole.conf", l);
+-        if (r < 0)
+-                return r;
+-
+-        if (stat("/etc/vconsole.conf", &st) >= 0)
+-                c->vc_mtime = timespec_load(&st.st_mtim);
+-
+-        return 0;
++        return -ENOSYS;
+ }
+ 
+ int x11_write_data(Context *c) {
+-        _cleanup_fclose_ FILE *f = NULL;
+-        _cleanup_free_ char *temp_path = NULL;
+-        struct stat st;
+-        int r;
+-
+-        if (isempty(c->x11_layout) &&
+-            isempty(c->x11_model) &&
+-            isempty(c->x11_variant) &&
+-            isempty(c->x11_options)) {
+-
+-                if (unlink("/etc/X11/xorg.conf.d/00-keyboard.conf") < 0)
+-                        return errno == ENOENT ? 0 : -errno;
+-
+-                c->vc_mtime = USEC_INFINITY;
+-                return 0;
+-        }
+-
+-        mkdir_p_label("/etc/X11/xorg.conf.d", 0755);
+-
+-        r = fopen_temporary("/etc/X11/xorg.conf.d/00-keyboard.conf", &f, &temp_path);
+-        if (r < 0)
+-                return r;
+-
+-        (void) __fsetlocking(f, FSETLOCKING_BYCALLER);
+-        (void) fchmod(fileno(f), 0644);
+-
+-        fputs("# Written by systemd-localed(8), read by systemd-localed and Xorg. It's\n"
+-              "# probably wise not to edit this file manually. Use localectl(1) to\n"
+-              "# instruct systemd-localed to update it.\n"
+-              "Section \"InputClass\"\n"
+-              "        Identifier \"system-keyboard\"\n"
+-              "        MatchIsKeyboard \"on\"\n", f);
+-
+-        if (!isempty(c->x11_layout))
+-                fprintf(f, "        Option \"XkbLayout\" \"%s\"\n", c->x11_layout);
+-
+-        if (!isempty(c->x11_model))
+-                fprintf(f, "        Option \"XkbModel\" \"%s\"\n", c->x11_model);
+-
+-        if (!isempty(c->x11_variant))
+-                fprintf(f, "        Option \"XkbVariant\" \"%s\"\n", c->x11_variant);
+-
+-        if (!isempty(c->x11_options))
+-                fprintf(f, "        Option \"XkbOptions\" \"%s\"\n", c->x11_options);
+-
+-        fputs("EndSection\n", f);
+-
+-        r = fflush_sync_and_check(f);
+-        if (r < 0)
+-                goto fail;
+-
+-        if (rename(temp_path, "/etc/X11/xorg.conf.d/00-keyboard.conf") < 0) {
+-                r = -errno;
+-                goto fail;
+-        }
+-
+-        if (stat("/etc/X11/xorg.conf.d/00-keyboard.conf", &st) >= 0)
+-                c->x11_mtime = timespec_load(&st.st_mtim);
+-
+-        return 0;
+-
+-fail:
+-        if (temp_path)
+-                (void) unlink(temp_path);
+-
+-        return r;
++        return -ENOSYS;
+ }
+ 
+ static int read_next_mapping(const char* filename,
diff --git a/gnu/packages/patches/mtools-mformat-uninitialized.patch b/gnu/packages/patches/mtools-mformat-uninitialized.patch
new file mode 100644
index 0000000000..ae69d45c99
--- /dev/null
+++ b/gnu/packages/patches/mtools-mformat-uninitialized.patch
@@ -0,0 +1,20 @@
+Fix a bug whereby 'mformat' could end up passing uninitialized bytes
+to write(2).  This could be reproduced with:
+
+  mformat -C -f 1440 -L 16  -N 77777777 -i  /tmp/x ::
+
+where the output of /tmp/x would be non-deterministic.
+
+Patch by Ludovic Courtès <ludo@gnu.org>.
+
+--- mtools-4.0.23/mformat.c	2019-04-21 00:12:01.496116195 +0200
++++ mtools-4.0.23/mformat.c	2019-04-21 00:12:36.675967157 +0200
+@@ -927,6 +927,7 @@ void mformat(int argc, char **argv, int
+ 	
+ 	char *endptr;
+ 
++	memset(&boot.bytes, '\0', sizeof boot);
+ 	hs = hs_set = 0;
+ 	argtracks = 0;
+ 	argheads = 0;
+
diff --git a/gnu/packages/patches/ntfs-3g-CVE-2019-9755.patch b/gnu/packages/patches/ntfs-3g-CVE-2019-9755.patch
new file mode 100644
index 0000000000..a7794aed47
--- /dev/null
+++ b/gnu/packages/patches/ntfs-3g-CVE-2019-9755.patch
@@ -0,0 +1,72 @@
+Fix CVE-2019-9755:
+
+https://security-tracker.debian.org/tracker/CVE-2019-9755
+https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-9755
+
+Patch copied from upstream source repository:
+
+https://sourceforge.net/p/ntfs-3g/ntfs-3g/ci/85c1634a26faa572d3c558d4cf8aaaca5202d4e9/
+
+From 85c1634a26faa572d3c558d4cf8aaaca5202d4e9 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Jean-Pierre=20Andr=C3=A9?= <jean-pierre.andre@wanadoo.fr>
+Date: Wed, 19 Dec 2018 15:57:50 +0100
+Subject: [PATCH] Fixed reporting an error when failed to build the mountpoint
+
+The size check was inefficient because getcwd() uses an unsigned int
+argument.
+---
+ src/lowntfs-3g.c | 6 +++++-
+ src/ntfs-3g.c    | 6 +++++-
+ 2 files changed, 10 insertions(+), 2 deletions(-)
+
+diff --git a/src/lowntfs-3g.c b/src/lowntfs-3g.c
+index 993867fa..0660439b 100644
+--- a/src/lowntfs-3g.c
++++ b/src/lowntfs-3g.c
+@@ -4411,7 +4411,8 @@ int main(int argc, char *argv[])
+ 	else {
+ 		ctx->abs_mnt_point = (char*)ntfs_malloc(PATH_MAX);
+ 		if (ctx->abs_mnt_point) {
+-			if (getcwd(ctx->abs_mnt_point,
++			if ((strlen(opts.mnt_point) < PATH_MAX)
++			    && getcwd(ctx->abs_mnt_point,
+ 				     PATH_MAX - strlen(opts.mnt_point) - 1)) {
+ 				strcat(ctx->abs_mnt_point, "/");
+ 				strcat(ctx->abs_mnt_point, opts.mnt_point);
+@@ -4419,6 +4420,9 @@ int main(int argc, char *argv[])
+ 			/* Solaris also wants the absolute mount point */
+ 				opts.mnt_point = ctx->abs_mnt_point;
+ #endif /* defined(__sun) && defined (__SVR4) */
++			} else {
++				free(ctx->abs_mnt_point);
++				ctx->abs_mnt_point = (char*)NULL;
+ 			}
+ 		}
+ 	}
+diff --git a/src/ntfs-3g.c b/src/ntfs-3g.c
+index 6ce89fef..4e0912ae 100644
+--- a/src/ntfs-3g.c
++++ b/src/ntfs-3g.c
+@@ -4148,7 +4148,8 @@ int main(int argc, char *argv[])
+ 	else {
+ 		ctx->abs_mnt_point = (char*)ntfs_malloc(PATH_MAX);
+ 		if (ctx->abs_mnt_point) {
+-			if (getcwd(ctx->abs_mnt_point,
++			if ((strlen(opts.mnt_point) < PATH_MAX)
++			    && getcwd(ctx->abs_mnt_point,
+ 				     PATH_MAX - strlen(opts.mnt_point) - 1)) {
+ 				strcat(ctx->abs_mnt_point, "/");
+ 				strcat(ctx->abs_mnt_point, opts.mnt_point);
+@@ -4156,6 +4157,9 @@ int main(int argc, char *argv[])
+ 			/* Solaris also wants the absolute mount point */
+ 				opts.mnt_point = ctx->abs_mnt_point;
+ #endif /* defined(__sun) && defined (__SVR4) */
++			} else {
++				free(ctx->abs_mnt_point);
++				ctx->abs_mnt_point = (char*)NULL;
+ 			}
+ 		}
+ 	}
+-- 
+2.21.0
+
diff --git a/gnu/packages/patches/ocaml-dose3-Fix-for-ocaml-4.06.patch b/gnu/packages/patches/ocaml-dose3-Fix-for-ocaml-4.06.patch
new file mode 100644
index 0000000000..2c344af821
--- /dev/null
+++ b/gnu/packages/patches/ocaml-dose3-Fix-for-ocaml-4.06.patch
@@ -0,0 +1,52 @@
+From aeca7656f499d7f4595319858f242276920e31bb Mon Sep 17 00:00:00 2001
+From: Louis Gesbert <louis.gesbert@ocamlpro.com>
+Date: Sat, 2 Dec 2017 12:51:01 +0100
+Subject: [PATCH] Fix for ocaml 4.06
+
+---
+ common/criteria_lexer.mll | 8 ++++----
+ common/util.ml            | 2 +-
+ 2 files changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/common/criteria_lexer.mll b/common/criteria_lexer.mll
+index 71f9178..fc4eae3 100644
+--- a/common/criteria_lexer.mll
++++ b/common/criteria_lexer.mll
+@@ -18,7 +18,7 @@
+     let c = Lexing.lexeme_char lexbuf 2 in (* the delimiter can be any character *)
+     (* find the terminating delimiter *)
+     let endpos =
+-      try String.index_from lexbuf.lex_buffer (lexbuf.lex_start_pos + 3) c with
++      try Bytes.index_from lexbuf.lex_buffer (lexbuf.lex_start_pos + 3) c with
+       |Invalid_argument _ ->
+           raise (Format822.Syntax_error (
+             Format822.error lexbuf "String too short"))
+@@ -27,9 +27,9 @@
+             Format822.error lexbuf (Printf.sprintf "cannot find: %c" c)))
+     in
+     let len = endpos - (lexbuf.lex_start_pos + 3) in
+-    let s = String.sub lexbuf.lex_buffer (lexbuf.lex_start_pos + 3) len in
+-    lexbuf.Lexing.lex_curr_pos <- lexbuf.Lexing.lex_start_pos + ((String.length s)+4);
+-    s
++    let s = Bytes.sub lexbuf.lex_buffer (lexbuf.lex_start_pos + 3) len in
++    lexbuf.Lexing.lex_curr_pos <- lexbuf.Lexing.lex_start_pos + ((Bytes.length s)+4);
++    Bytes.to_string s
+ 
+ }
+ 
+diff --git a/common/util.ml b/common/util.ml
+index 598f266..36ca3d1 100644
+--- a/common/util.ml
++++ b/common/util.ml
+@@ -87,7 +87,7 @@ module MakeMessages(X : sig val label : string end) = struct
+   let clean label =
+     try 
+       let s = Filename.chop_extension (Filename.basename label) in
+-      String.capitalize s
++      String.capitalize_ascii s
+     with Invalid_argument _ -> label
+ 
+   let create ?(enabled=false) label =
+-- 
+2.11.0
+
diff --git a/gnu/packages/patches/ocaml-dose3-Install-mli-cmx-etc.patch b/gnu/packages/patches/ocaml-dose3-Install-mli-cmx-etc.patch
new file mode 100644
index 0000000000..41494e7b3c
--- /dev/null
+++ b/gnu/packages/patches/ocaml-dose3-Install-mli-cmx-etc.patch
@@ -0,0 +1,133 @@
+From b5314c20d8e3caf62fe0dc96ad937a2950158b23 Mon Sep 17 00:00:00 2001
+From: Louis Gesbert <louis.gesbert@ocamlpro.com>
+Date: Thu, 2 Mar 2017 12:19:56 +0100
+Subject: [PATCH] Install mli, cmx, etc.
+
+---
+ Makefile | 26 +++++++++++++-------------
+ 1 file changed, 13 insertions(+), 13 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index 09464ff..5044d7f 100644
+--- a/Makefile
++++ b/Makefile
+@@ -56,7 +56,7 @@ $(DOSELIBS)/cudf.%:
+ 	@for i in _build/cudf/cudf.*; do \
+ 	  if [ -e $$i ]; then \
+ 	  cp $$i $(DOSELIBS) ; \
+-	  rm -f $(DOSELIBS)/*.mlpack $(DOSELIBS)/*.cmx ; \
++	  rm -f $(DOSELIBS)/*.mlpack ; \
+ 	  fi ; \
+ 	done
+ 
+@@ -67,7 +67,7 @@ $(DOSELIBS)/common.%: common/*.ml common/*.mli
+ 	  if [ -e $$i ]; then \
+ 	  cp $$i $(DOSELIBS) ; \
+ 		rm $$i ;\
+-	  rm -f $(DOSELIBS)/*.mlpack $(DOSELIBS)/*.cmx ; \
++	  rm -f $(DOSELIBS)/*.mlpack ; \
+ 	  fi ; \
+ 	done
+ 
+@@ -78,7 +78,7 @@ $(DOSELIBS)/versioning.%: versioning/*.ml versioning/*.mli
+ 	  if [ -e $$i ]; then \
+ 	  cp $$i $(DOSELIBS) ; \
+ 		rm $$i ;\
+-	  rm -f $(DOSELIBS)/*.mlpack $(DOSELIBS)/*.cmx ; \
++	  rm -f $(DOSELIBS)/*.mlpack ; \
+ 	  fi ; \
+ 	done
+ 
+@@ -88,7 +88,7 @@ $(DOSELIBS)/algo.%: algo/*.ml algo/*.mli $(DOSELIBS)/common.%
+ 	  if [ -e $$i ]; then \
+ 	  cp $$i $(DOSELIBS) ; \
+ 		rm $$i ;\
+-	  rm -f $(DOSELIBS)/*.mlpack $(DOSELIBS)/*.cmx ; \
++	  rm -f $(DOSELIBS)/*.mlpack ; \
+ 	  fi ; \
+ 	done
+ 
+@@ -98,7 +98,7 @@ $(DOSELIBS)/debian.%: deb/*.ml deb/*.mli $(DOSELIBS)/pef.%
+ 	  if [ -e $$i ]; then \
+ 	  cp $$i $(DOSELIBS) ; \
+ 		rm $$i ;\
+-	  rm -f $(DOSELIBS)/*.mlpack $(DOSELIBS)/*.cmx ; \
++	  rm -f $(DOSELIBS)/*.mlpack ; \
+ 	  fi ; \
+ 	done
+ 
+@@ -108,7 +108,7 @@ $(DOSELIBS)/opam.%: opam/*.ml opam/*.mli $(DOSELIBS)/pef.%
+ 	  if [ -e $$i ]; then \
+ 	  cp $$i $(DOSELIBS) ; \
+ 		rm $$i ;\
+-	  rm -f $(DOSELIBS)/*.mlpack $(DOSELIBS)/*.cmx ; \
++	  rm -f $(DOSELIBS)/*.mlpack ; \
+ 	  fi ; \
+ 	done
+ 
+@@ -118,7 +118,7 @@ $(DOSELIBS)/npm.%: npm/*.ml npm/*.mli $(DOSELIBS)/versioning.% $(DOSELIBS)/pef.%
+ 	  if [ -e $$i ]; then \
+ 	  cp $$i $(DOSELIBS) ; \
+ 		rm $$i ;\
+-	  rm -f $(DOSELIBS)/*.mlpack $(DOSELIBS)/*.cmx ; \
++	  rm -f $(DOSELIBS)/*.mlpack ; \
+ 	  fi ; \
+ 	done
+ 
+@@ -128,7 +128,7 @@ $(DOSELIBS)/rpm.%: rpm/*.ml $(DOSELIBS)/algo.%
+ 	  if [ -e $$i ]; then \
+ 	  cp $$i $(DOSELIBS) ; \
+ 		rm $$i ;\
+-	  rm -f $(DOSELIBS)/*.mlpack $(DOSELIBS)/*.cmx ; \
++	  rm -f $(DOSELIBS)/*.mlpack ; \
+ 	  fi ; \
+ 	done
+ 
+@@ -138,7 +138,7 @@ $(DOSELIBS)/pef.%: pef/*.ml pef/*.mli
+ 	  if [ -e $$i ]; then \
+ 	  cp $$i $(DOSELIBS) ; \
+ 		rm $$i ;\
+-	  rm -f $(DOSELIBS)/*.mlpack $(DOSELIBS)/*.cmx ; \
++	  rm -f $(DOSELIBS)/*.mlpack ; \
+ 	  fi ; \
+ 	done
+ 
+@@ -148,7 +148,7 @@ $(DOSELIBS)/csw.%: opencsw/*.ml $(DOSELIBS)/versioning.%
+ 	  if [ -e $$i ]; then \
+ 	  cp $$i $(DOSELIBS) ; \
+ 		rm $$i ;\
+-	  rm -f $(DOSELIBS)/*.mlpack $(DOSELIBS)/*.cmx ; \
++	  rm -f $(DOSELIBS)/*.mlpack ; \
+ 	  fi ; \
+ 	done
+ 
+@@ -158,7 +158,7 @@ $(DOSELIBS)/doseparse.%: $(DOSELIBS)/pef.% $(DOSELIBS)/debian.%
+ 	  if [ -e $$i ]; then \
+ 	  cp $$i $(DOSELIBS) ; \
+ 		rm $$i ;\
+-	  rm -f $(DOSELIBS)/*.mlpack $(DOSELIBS)/*.cmx $(DOSELIBS)/*.ml ; \
++	  rm -f $(DOSELIBS)/*.mlpack $(DOSELIBS)/*.ml ; \
+ 	  fi ; \
+ 	done
+ 
+@@ -168,7 +168,7 @@ $(DOSELIBS)/doseparseNoRpm.%: $(DOSELIBS)/pef.% $(DOSELIBS)/debian.%
+ 	  if [ -e $$i ]; then \
+ 			cp $$i $(DOSELIBS) ;\
+ 			rm $$i ;\
+-			rm -f $(DOSELIBS)/*.mlpack $(DOSELIBS)/*.cmx ;\
++			rm -f $(DOSELIBS)/*.mlpack ;\
+ 	  fi ; \
+ 	done
+ 
+@@ -223,7 +223,7 @@ INSTALL_STUFF_ = META
+ INSTALL_STUFF_ += $(wildcard _build/doselibs/*.cma _build/doselibs/*.cmi)
+ INSTALL_STUFF_ += $(wildcard _build/doselibs/*.cmxa _build/doselibs/*.cmxs)
+ INSTALL_STUFF_ += $(wildcard _build/doselibs/*.a)
+-#INSTALL_STUFF_ += $(wildcard _build/*/*.mli)
++INSTALL_STUFF_ += $(wildcard _build/doselibs/*.mli) $(wildcard _build/doselibs/*.cmti) $(wildcard _build/doselibs/*.cmx)
+ INSTALL_STUFF_ += $(wildcard _build/rpm/*.so)
+ 
+ exclude_cudf = $(wildcard _build/doselibs/*cudf* _build/cudf/*)
+-- 
+2.11.0
+
diff --git a/gnu/packages/patches/ocaml-dose3-add-unix-dependency.patch b/gnu/packages/patches/ocaml-dose3-add-unix-dependency.patch
new file mode 100644
index 0000000000..d2cc44c784
--- /dev/null
+++ b/gnu/packages/patches/ocaml-dose3-add-unix-dependency.patch
@@ -0,0 +1,25 @@
+From b94cf24739818e5aff397e0a83b19ea32dc81f42 Mon Sep 17 00:00:00 2001
+From: Louis Gesbert <louis.gesbert@ocamlpro.com>
+Date: Tue, 6 Feb 2018 10:15:45 +0100
+Subject: [PATCH 3/3] Add "unix" as dependency to dose3.common in META.in
+
+---
+ META.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/META.in b/META.in
+index aa2cd8d..0f9d337 100644
+--- a/META.in
++++ b/META.in
+@@ -8,7 +8,7 @@ package "common" (
+ version = "@PACKAGE_VERSION@"
+ archive(byte) = "common.cma"
+ archive(native) = "common.cmxa"
+-requires = "extlib, re.pcre, cudf, @ZIP@, @BZ2@"
++requires = "extlib, re.pcre, cudf, unix, @ZIP@, @BZ2@"
+ )
+ 
+ package "algo" (
+-- 
+2.11.0
+
diff --git a/gnu/packages/patches/ocaml-dose3-dont-make-printconf.patch b/gnu/packages/patches/ocaml-dose3-dont-make-printconf.patch
new file mode 100644
index 0000000000..84b6a3b81b
--- /dev/null
+++ b/gnu/packages/patches/ocaml-dose3-dont-make-printconf.patch
@@ -0,0 +1,9 @@
+--- a/configure
++++ b/configure
+@@ -6552,6 +6552,3 @@ if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
+   { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
+ $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
+ fi
+-
+-
+-make printconf
diff --git a/gnu/packages/patches/openssh-CVE-2018-20685.patch b/gnu/packages/patches/openssh-CVE-2018-20685.patch
deleted file mode 100644
index 463c08a9d4..0000000000
--- a/gnu/packages/patches/openssh-CVE-2018-20685.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-Fix CVE-2018-20685:
-
-https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-20685
-
-Patch copied from upstream source repository:
-
-https://github.com/openssh/openssh-portable/commit/6010c0303a422a9c5fa8860c061bf7105eb7f8b2
-
-From 6010c0303a422a9c5fa8860c061bf7105eb7f8b2 Mon Sep 17 00:00:00 2001
-From: "djm@openbsd.org" <djm@openbsd.org>
-Date: Fri, 16 Nov 2018 03:03:10 +0000
-Subject: [PATCH] upstream: disallow empty incoming filename or ones that refer
- to the
-
-current directory; based on report/patch from Harry Sintonen
-
-OpenBSD-Commit-ID: f27651b30eaee2df49540ab68d030865c04f6de9
----
- scp.c | 5 +++--
- 1 file changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/scp.c b/scp.c
-index 60682c68..4f3fdcd3 100644
---- a/scp.c
-+++ b/scp.c
-#@@ -1,4 +1,4 @@
-#-/* $OpenBSD: scp.c,v 1.197 2018/06/01 04:31:48 dtucker Exp $ */
-#+/* $OpenBSD: scp.c,v 1.198 2018/11/16 03:03:10 djm Exp $ */
-# /*
-#  * scp - secure remote copy.  This is basically patched BSD rcp which
-#  * uses ssh to do the data transfer (instead of using rcmd).
-@@ -1106,7 +1106,8 @@ sink(int argc, char **argv)
- 			SCREWUP("size out of range");
- 		size = (off_t)ull;
- 
--		if ((strchr(cp, '/') != NULL) || (strcmp(cp, "..") == 0)) {
-+		if (*cp == '\0' || strchr(cp, '/') != NULL ||
-+		    strcmp(cp, ".") == 0 || strcmp(cp, "..") == 0) {
- 			run_err("error: unexpected filename: %s", cp);
- 			exit(1);
- 		}
--- 
-2.20.1
-
diff --git a/gnu/packages/patches/python-pyfakefs-remove-bad-test.patch b/gnu/packages/patches/python-pyfakefs-remove-bad-test.patch
new file mode 100644
index 0000000000..a9488bbe43
--- /dev/null
+++ b/gnu/packages/patches/python-pyfakefs-remove-bad-test.patch
@@ -0,0 +1,23 @@
+This test incorrectly assumes that the root user is always available.
+However, in the build environment, the root user is not available.
+Note that because the original file distributed in the release on PyPi
+has lines ending in CRLF, those are retained in the diff below.
+
+--- a/pyfakefs/tests/fake_filesystem_test.py	1969-12-31 16:00:00.000000000 -0800
++++ b/pyfakefs/tests/fake_filesystem_test.py	1969-12-31 16:00:00.000000000 -0800
+@@ -1021,15 +1021,6 @@
+             self.assertEqual(self.path.expanduser('~'),

+                              self.os.environ['HOME'].replace('/', '!'))

+ 

+-    @unittest.skipIf(TestCase.is_windows or TestCase.is_cygwin,

+-                     'only tested on unix systems')

+-    def test_expand_root(self):

+-        if sys.platform == 'darwin':

+-            roothome = '!var!root'

+-        else:

+-            roothome = '!root'

+-        self.assertEqual(self.path.expanduser('~root'), roothome)

+-

+     def test_getsize_path_nonexistent(self):

+         file_path = 'foo!bar!baz'

+         self.assertRaises(os.error, self.path.getsize, file_path)

diff --git a/gnu/packages/patches/python-robotframework-honor-source-date-epoch.patch b/gnu/packages/patches/python-robotframework-honor-source-date-epoch.patch
new file mode 100644
index 0000000000..ccd87911d8
--- /dev/null
+++ b/gnu/packages/patches/python-robotframework-honor-source-date-epoch.patch
@@ -0,0 +1,62 @@
+From 3cc41c05fad5601c0dd1832f64a6e9efca017727 Mon Sep 17 00:00:00 2001
+From: Maxim Cournoyer <maxim.cournoyer@gmail.com>
+Date: Mon, 1 Apr 2019 11:36:04 -0400
+Subject: [PATCH] robottime: Honor the SOURCE_DATE_EPOCH environment variable.
+
+Honoring the SOURCE_DATE_EPOCH environment variable allows building
+the documentation using libdoc reproducibly, by setting the generated
+timestamp to a fixed value.
+
+For more background on reproducible builds and the SOURCE_DATE_EPOCH
+environment variable, see:
+https://reproducible-builds.org/specs/source-date-epoch/.
+
+* src/robot/utils/robottime.py: import `os'.
+(TimestampCache._get_epoch): Retrieve date from SOURCE_DATE_EPOCH if
+it is defined, otherwise from time.time().
+* utest/output/test_logger.py (TestLogger.test_write_to_one_logger):
+Check for the existance of a timestamp attribute instead of checking
+for its content as the later is easy to break when using the
+SOURCE_DATE_EPOCH environment variable.
+---
+ src/robot/utils/robottime.py | 3 +++
+ utest/output/test_logger.py  | 2 +-
+ 2 files changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/src/robot/utils/robottime.py b/src/robot/utils/robottime.py
+index 06432a4a6..91526f826 100644
+--- a/src/robot/utils/robottime.py
++++ b/src/robot/utils/robottime.py
+@@ -14,6 +14,7 @@
+ #  limitations under the License.
+ 
+ import datetime
++import os
+ import time
+ import re
+ 
+@@ -395,6 +396,8 @@ class TimestampCache(object):
+ 
+     # Seam for mocking
+     def _get_epoch(self):
++        if os.getenv('SOURCE_DATE_EPOCH'):
++            return float(os.getenv('SOURCE_DATE_EPOCH'))
+         return time.time()
+ 
+     def _use_cache(self, secs, *separators):
+diff --git a/utest/output/test_logger.py b/utest/output/test_logger.py
+index 92fe6d77d..e980227aa 100644
+--- a/utest/output/test_logger.py
++++ b/utest/output/test_logger.py
+@@ -46,7 +46,7 @@ class TestLogger(unittest.TestCase):
+         logger = LoggerMock(('Hello, world!', 'INFO'))
+         self.logger.register_logger(logger)
+         self.logger.write('Hello, world!', 'INFO')
+-        assert_true(logger.msg.timestamp.startswith('20'))
++        assert_true(hasattr(logger.msg, 'timestamp'))
+ 
+     def test_write_to_one_logger_with_trace_level(self):
+         logger = LoggerMock(('expected message', 'TRACE'))
+-- 
+2.20.1
+
diff --git a/gnu/packages/patches/quilt-getopt-nondigit-param.patch b/gnu/packages/patches/quilt-getopt-nondigit-param.patch
deleted file mode 100644
index 6bbec67e75..0000000000
--- a/gnu/packages/patches/quilt-getopt-nondigit-param.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From: Jean Delvare <jdelvare@suse.de>
-Subject: compat/getopt: Allow non-digit parameter embedded in short option
-
-The compatibility getopt script allows only digit parameters to be
-embedded in short options. Util-linux's getopt implementation does
-not have such a restriction and allows any parameter to be embedded
-in short options. As a consequence, using the compatibility getopt
-script would choke for example on "-pab", which is a legal option
-of the "quilt refresh" command.
-
-Remove the limitation on digits so that the compatibility getopt
-script allows what util-linux allows. This fixes the second half
-of bug #54772:
-https://savannah.nongnu.org/bugs/index.php?54772
-
-As a side note, this feature of the compatibility script was broken
-anyway, as it would output the digits in reverse order.
-
-Signed-off-by: Jean Delvare <jdelvare@suse.de>
----
- compat/getopt.in |   13 ++++---------
- 1 file changed, 4 insertions(+), 9 deletions(-)
-
---- quilt.orig/compat/getopt.in	2018-10-03 16:05:56.818667040 +0200
-+++ quilt/compat/getopt.in	2018-10-03 16:12:17.624841732 +0200
-@@ -108,15 +108,10 @@ foreach my $word (@words) {
- 				if (scalar(@letters) == 0) {
- 					$need_param = $letter;
- 				} else {
--					# short options can have numerical args
--					# embedded in the short option list: -UO
--					die "unexpected character after option $letter"
--						if ($letters[$#letters] !~ /[0-9]/);
--					my @digits;
--					while (scalar(@letters) && ($letters[$#letters] =~ /[0-9]/)) {
--						push @digits, pop @letters;
--					}
--					push @options, quote_word(join('', reverse @digits));
-+					# short options can have args
-+					# embedded in the short option list
-+					push @options, quote_word(join('', reverse @letters));
-+					@letters = ();
- 				}
- 			}
- 		}
diff --git a/gnu/packages/patches/quilt-getopt-second-separator.patch b/gnu/packages/patches/quilt-getopt-second-separator.patch
deleted file mode 100644
index cde2c8d41c..0000000000
--- a/gnu/packages/patches/quilt-getopt-second-separator.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From: Jean Delvare <jdelvare@suse.de>
-Subject: compat/getopt: Handle a second separator
-
-getopt can be passed 2 '--' separators. The first one tells that
-getopt options are over and target program options start. The second
-one tells that the target program's options are over and following
-arguments should be treated as non-options even if they look like
-options.
-
-This second separator was not handled, causing the compatibility
-getopt script to treat the following arguments as options, eventually
-failing one way or another.
-
-Properly detect and handle the second separator. This fixes the first
-half of bug #54772:
-https://savannah.nongnu.org/bugs/index.php?54772
-
-Signed-off-by: Jean Delvare <jdelvare@suse.de>
----
- compat/getopt.in |   13 ++++++++++---
- 1 file changed, 10 insertions(+), 3 deletions(-)
-
---- quilt.orig/compat/getopt.in	2018-10-03 15:23:21.147620172 +0200
-+++ quilt/compat/getopt.in	2018-10-03 16:05:56.818667040 +0200
-@@ -8,12 +8,12 @@
- 
- use strict;
- 
--my $opts;
-+my $opts = '';
- my @words;
- my $found_sep = 0;
- 
- foreach my $arg (@ARGV) {
--  if ($arg eq '--') {
-+  if (!$found_sep && $arg eq '--') {
-     $found_sep = 1;
-   }
-   else {
-@@ -62,10 +62,17 @@ sub quote_word
- 	return "'$word'";
- }
- 
-+# there can be a second separator, to inhibit processing following arguments
-+# as options
-+$found_sep = 0;
- foreach my $word (@words) {
-+	if ($word eq '--') {
-+		$found_sep = 1;
-+		next;
-+	}
- 
- 	# allow '-' to be an option value
--	if (!$need_param && $word !~ /^-./) {
-+	if ($found_sep || (!$need_param && $word !~ /^-./)) {
- 		push @barewords, quote_word($word);
- 		next;
- 	}
diff --git a/gnu/packages/patches/quilt-test-fix-regex.patch b/gnu/packages/patches/quilt-test-fix-regex.patch
deleted file mode 100644
index 2e249ac55b..0000000000
--- a/gnu/packages/patches/quilt-test-fix-regex.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From 5193b137b5a9034ce79946edd40760df2f63a82a Mon Sep 17 00:00:00 2001
-From: Jean Delvare <jdelvare@suse.de>
-Date: Tue, 25 Apr 2017 15:17:53 +0200
-Subject: test: Escape curly braces in regex
-
-Curly braces in perl regex are supposed to be escaped, recent
-versions of perl complain when they aren't:
-
-Unescaped left brace in regex is deprecated, passed through in regex; marked by <-- HERE in m/%{ <-- HERE (\w+)}/ at ./run line 114.
-Unescaped left brace in regex is deprecated, passed through in regex; marked by <-- HERE in m/%{ <-- HERE \?}/ at ./run line 290.
-
-Signed-off-by: Jean Delvare <jdelvare@suse.de>
----
- test/run | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/test/run b/test/run
-index 942014e..03afc7a 100755
---- a/test/run
-+++ b/test/run
-@@ -112,7 +112,7 @@ sub flush_output()
- sub substitute_vars($)
- {
- 	my ($line) = @_;
--	$line =~ s[%{(\w+)}][defined $ENV{$1} ? $ENV{$1} : ""]eg;
-+	$line =~ s[%\{(\w+)\}][defined $ENV{$1} ? $ENV{$1} : ""]eg;
- 	return $line;
- }
- 
-@@ -288,7 +288,7 @@ while (defined(my $line = <SOURCE>)) {
- 	# Parse the next command
- 	if ($line =~ s/^\s*\$ ?//) {
- 		# Substitute %{?} with the last command's status
--		$line =~ s[%{\?}][$last_status]eg;
-+		$line =~ s[%\{\?\}][$last_status]eg;
- 
- 		chomp($prog = substitute_vars($line));
- 		$prog_line = $lineno;
--- 
-cgit v1.0-41-gc330
-
diff --git a/gnu/packages/patches/reptyr-fix-gcc-7.patch b/gnu/packages/patches/reptyr-fix-gcc-7.patch
deleted file mode 100644
index 5e0e581218..0000000000
--- a/gnu/packages/patches/reptyr-fix-gcc-7.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-This patch allows reptyr to build with gcc 7. It is taken from reptyr mainline patches
-fa0d63f and b45fd92.
-
-https://github.com/nelhage/reptyr/commit/fa0d63ff8c488be15976e5353580b565e85586a1
-https://github.com/nelhage/reptyr/commit/b45fd9238958fcf2d8f3d6fc23e6d491febea2ac
-
-Patch by Nelson Elhage <nelhage@nelhage.com>.
-
-diff --git a/attach.c b/attach.c
-index bd8ef8c..8d9cbf8 100644
---- a/attach.c
-+++ b/attach.c
-@@ -389,8 +389,11 @@ int setup_steal_socket(struct steal_pty_state *steal) {
-         return errno;
- 
-     steal->addr_un.sun_family = AF_UNIX;
--    snprintf(steal->addr_un.sun_path, sizeof(steal->addr_un.sun_path),
--             "%s/reptyr.sock", steal->tmpdir);
-+    if (snprintf(steal->addr_un.sun_path, sizeof(steal->addr_un.sun_path),
-+                 "%s/reptyr.sock", steal->tmpdir) >= sizeof(steal->addr_un.sun_path)) {
-+        error("tmpdir path too long!");
-+        return ENAMETOOLONG;
-+    }
- 
-     if ((steal->sockfd = socket(AF_UNIX, SOCK_DGRAM, 0)) < 0)
-         return errno;
-diff --git a/platform/linux/linux.h b/platform/linux/linux.h
-index 9e6b78a..3ec5a99 100644
---- a/platform/linux/linux.h
-+++ b/platform/linux/linux.h
-@@ -40,6 +40,7 @@
- #include <sys/ptrace.h>
- #include <asm/ptrace.h>
- #include <sys/types.h>
-+#include <sys/sysmacros.h>
- #include <sys/user.h>
- #include <unistd.h>
- #include <stdlib.h>
diff --git a/gnu/packages/patches/soundtouch-CVE-2018-1000223.patch b/gnu/packages/patches/soundtouch-CVE-2018-1000223.patch
deleted file mode 100644
index 961a183565..0000000000
--- a/gnu/packages/patches/soundtouch-CVE-2018-1000223.patch
+++ /dev/null
@@ -1,143 +0,0 @@
-Fix CVE-2018-1000223:
-
-https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-1000223
-https://gitlab.com/soundtouch/soundtouch/issues/6
-
-Patches copied from upstream source repository:
-
-https://gitlab.com/soundtouch/soundtouch/commit/9e02d9b04fda6c1f44336ff00bb5af1e2ffc039e
-https://gitlab.com/soundtouch/soundtouch/commit/e0240689056e4182fffdc2a16aa6e3425a15e275
-https://gitlab.com/soundtouch/soundtouch/commit/46531e5b92dd80dd9a7947463d6224fc7cb21967
-
-From 9e02d9b04fda6c1f44336ff00bb5af1e2ffc039e Mon Sep 17 00:00:00 2001
-From: oparviainen <oparviai@iki.fi>
-Date: Sun, 12 Aug 2018 20:24:37 +0300
-Subject: [PATCH] Added minimum size check for WAV header block lengh values
-
----
- source/SoundStretch/WavFile.cpp | 10 +++++++++-
- 1 file changed, 9 insertions(+), 1 deletion(-)
-
-diff --git a/source/SoundStretch/WavFile.cpp b/source/SoundStretch/WavFile.cpp
-index 7e7ade2..68818c9 100644
---- a/source/SoundStretch/WavFile.cpp
-+++ b/source/SoundStretch/WavFile.cpp
-@@ -530,7 +530,11 @@ int WavInFile::readHeaderBlock()
-         // read length of the format field

-         if (fread(&nLen, sizeof(int), 1, fptr) != 1) return -1;

-         // swap byte order if necessary

--        _swap32(nLen); // int format_len;

-+        _swap32(nLen);

-+

-+        // verify that header length isn't smaller than expected

-+        if (nLen < sizeof(header.format) - 8) return -1;

-+

-         header.format.format_len = nLen;

- 

-         // calculate how much length differs from expected

-@@ -572,6 +576,10 @@ int WavInFile::readHeaderBlock()
-         if (fread(&nLen, sizeof(int), 1, fptr) != 1) return -1;

-         // swap byte order if necessary

-         _swap32(nLen); // int fact_len;

-+

-+        // verify that fact length isn't smaller than expected

-+        if (nLen < sizeof(header.fact) - 8) return -1;

-+

-         header.fact.fact_len = nLen;

- 

-         // calculate how much length differs from expected

--- 
-2.18.0
-
-From e0240689056e4182fffdc2a16aa6e3425a15e275 Mon Sep 17 00:00:00 2001
-From: oparviainen <oparviai@iki.fi>
-Date: Mon, 13 Aug 2018 19:16:16 +0300
-Subject: [PATCH] Fixed WavFile header/fact not-too-small check
-
----
- source/SoundStretch/WavFile.cpp | 22 +++++++++++-----------
- 1 file changed, 11 insertions(+), 11 deletions(-)
-
-diff --git a/source/SoundStretch/WavFile.cpp b/source/SoundStretch/WavFile.cpp
-index 4af7a4c..3421bca 100644
---- a/source/SoundStretch/WavFile.cpp
-+++ b/source/SoundStretch/WavFile.cpp
-@@ -518,13 +518,13 @@ int WavInFile::readHeaderBlock()
-         // swap byte order if necessary

-         _swap32(nLen);

- 

--        // verify that header length isn't smaller than expected

--        if (nLen < sizeof(header.format) - 8) return -1;

-+        // calculate how much length differs from expected 

-+        nDump = nLen - ((int)sizeof(header.format) - 8);

- 

--        header.format.format_len = nLen;

-+        // verify that header length isn't smaller than expected structure

-+        if (nDump < 0) return -1;

- 

--        // calculate how much length differs from expected

--        nDump = nLen - ((int)sizeof(header.format) - 8);

-+        header.format.format_len = nLen;

- 

-         // if format_len is larger than expected, read only as much data as we've space for

-         if (nDump > 0)

-@@ -561,16 +561,16 @@ int WavInFile::readHeaderBlock()
-         // read length of the fact field

-         if (fread(&nLen, sizeof(int), 1, fptr) != 1) return -1;

-         // swap byte order if necessary

--        _swap32(nLen); // int fact_len;

--

--        // verify that fact length isn't smaller than expected

--        if (nLen < sizeof(header.fact) - 8) return -1;

--

--        header.fact.fact_len = nLen;

-+        _swap32(nLen);

- 

-         // calculate how much length differs from expected

-         nDump = nLen - ((int)sizeof(header.fact) - 8);

- 

-+        // verify that fact length isn't smaller than expected structure

-+        if (nDump < 0) return -1;

-+

-+        header.fact.fact_len = nLen;

-+

-         // if format_len is larger than expected, read only as much data as we've space for

-         if (nDump > 0)

-         {

--- 
-2.18.0
-
-From 46531e5b92dd80dd9a7947463d6224fc7cb21967 Mon Sep 17 00:00:00 2001
-From: olli <oparviai@iki.fi>
-Date: Mon, 13 Aug 2018 19:42:58 +0300
-Subject: [PATCH] Improved WavFile header/fact not-too-small check
-
----
- source/SoundStretch/WavFile.cpp | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/source/SoundStretch/WavFile.cpp b/source/SoundStretch/WavFile.cpp
-index 3421bca..9d90b8a 100644
---- a/source/SoundStretch/WavFile.cpp
-+++ b/source/SoundStretch/WavFile.cpp
-@@ -522,7 +522,7 @@ int WavInFile::readHeaderBlock()
-         nDump = nLen - ((int)sizeof(header.format) - 8);

- 

-         // verify that header length isn't smaller than expected structure

--        if (nDump < 0) return -1;

-+        if ((nLen < 0) || (nDump < 0)) return -1;

- 

-         header.format.format_len = nLen;

- 

-@@ -567,7 +567,7 @@ int WavInFile::readHeaderBlock()
-         nDump = nLen - ((int)sizeof(header.fact) - 8);

- 

-         // verify that fact length isn't smaller than expected structure

--        if (nDump < 0) return -1;

-+        if ((nLen < 0) || (nDump < 0)) return -1;

- 

-         header.fact.fact_len = nLen;

- 

--- 
-2.18.0
-
diff --git a/gnu/packages/patches/soundtouch-CVE-2018-14044-14045.patch b/gnu/packages/patches/soundtouch-CVE-2018-14044-14045.patch
deleted file mode 100644
index cc0282fc7b..0000000000
--- a/gnu/packages/patches/soundtouch-CVE-2018-14044-14045.patch
+++ /dev/null
@@ -1,138 +0,0 @@
-Fix CVE-2018-14044 and CVE-2018-14045:
-
-https://gitlab.com/soundtouch/soundtouch/issues/7
-https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-14044
-https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-14045
-
-Patch copied from upstream source repository:
-
-https://gitlab.com/soundtouch/soundtouch/commit/107f2c5d201a4dfea1b7f15c5957ff2ac9e5f260
-
-From 107f2c5d201a4dfea1b7f15c5957ff2ac9e5f260 Mon Sep 17 00:00:00 2001
-From: oparviainen <oparviai@iki.fi>
-Date: Sun, 12 Aug 2018 20:00:56 +0300
-Subject: [PATCH] Replaced illegal-number-of-channel assertions with run-time
- exception
-
----
- include/FIFOSamplePipe.h               | 12 ++++++++++++
- include/STTypes.h                      |  3 +++
- source/SoundTouch/FIFOSampleBuffer.cpp |  3 ++-
- source/SoundTouch/RateTransposer.cpp   |  5 ++---
- source/SoundTouch/SoundTouch.cpp       |  8 ++------
- source/SoundTouch/TDStretch.cpp        |  5 ++---
- 6 files changed, 23 insertions(+), 13 deletions(-)
-
-diff --git a/include/FIFOSamplePipe.h b/include/FIFOSamplePipe.h
-index 4ec9275..b08f836 100644
---- a/include/FIFOSamplePipe.h
-+++ b/include/FIFOSamplePipe.h
-@@ -51,6 +51,18 @@ namespace soundtouch
- /// Abstract base class for FIFO (first-in-first-out) sample processing classes.

- class FIFOSamplePipe

- {

-+protected:

-+

-+    bool verifyNumberOfChannels(int nChannels) const

-+    {

-+        if ((nChannels > 0) && (nChannels <= SOUNDTOUCH_MAX_CHANNELS))

-+        {

-+            return true;

-+        }

-+        ST_THROW_RT_ERROR("Error: Illegal number of channels");

-+        return false;

-+    }

-+

- public:

-     // virtual default destructor

-     virtual ~FIFOSamplePipe() {}

-diff --git a/include/STTypes.h b/include/STTypes.h
-index 03e7e07..862505e 100644
---- a/include/STTypes.h
-+++ b/include/STTypes.h
-@@ -56,6 +56,9 @@ typedef unsigned long   ulong;
- 

- namespace soundtouch

- {

-+    /// Max allowed number of channels

-+    #define SOUNDTOUCH_MAX_CHANNELS     16

-+

-     /// Activate these undef's to overrule the possible sampletype 

-     /// setting inherited from some other header file:

-     //#undef SOUNDTOUCH_INTEGER_SAMPLES

-diff --git a/source/SoundTouch/FIFOSampleBuffer.cpp b/source/SoundTouch/FIFOSampleBuffer.cpp
-index f0d5e42..706e869 100644
---- a/source/SoundTouch/FIFOSampleBuffer.cpp
-+++ b/source/SoundTouch/FIFOSampleBuffer.cpp
-@@ -73,7 +73,8 @@ void FIFOSampleBuffer::setChannels(int numChannels)
- {

-     uint usedBytes;

- 

--    assert(numChannels > 0);

-+    if (!verifyNumberOfChannels(numChannels)) return;

-+

-     usedBytes = channels * samplesInBuffer;

-     channels = (uint)numChannels;

-     samplesInBuffer = usedBytes / channels;

-diff --git a/source/SoundTouch/RateTransposer.cpp b/source/SoundTouch/RateTransposer.cpp
-index 8b66be3..d115a4c 100644
---- a/source/SoundTouch/RateTransposer.cpp
-+++ b/source/SoundTouch/RateTransposer.cpp
-@@ -179,11 +179,10 @@ void RateTransposer::processSamples(const SAMPLETYPE *src, uint nSamples)
- // Sets the number of channels, 1 = mono, 2 = stereo

- void RateTransposer::setChannels(int nChannels)

- {

--    assert(nChannels > 0);

-+    if (!verifyNumberOfChannels(nChannels) ||

-+        (pTransposer->numChannels == nChannels)) return;

- 

--    if (pTransposer->numChannels == nChannels) return;

-     pTransposer->setChannels(nChannels);

--

-     inputBuffer.setChannels(nChannels);

-     midBuffer.setChannels(nChannels);

-     outputBuffer.setChannels(nChannels);

-diff --git a/source/SoundTouch/SoundTouch.cpp b/source/SoundTouch/SoundTouch.cpp
-index 7b6756b..06bdd56 100644
---- a/source/SoundTouch/SoundTouch.cpp
-+++ b/source/SoundTouch/SoundTouch.cpp
-@@ -139,18 +139,14 @@ uint SoundTouch::getVersionId()
- // Sets the number of channels, 1 = mono, 2 = stereo

- void SoundTouch::setChannels(uint numChannels)

- {

--    /*if (numChannels != 1 && numChannels != 2) 

--    {

--        //ST_THROW_RT_ERROR("Illegal number of channels");

--        return;

--    }*/

-+    if (!verifyNumberOfChannels(numChannels)) return;

-+

-     channels = numChannels;

-     pRateTransposer->setChannels((int)numChannels);

-     pTDStretch->setChannels((int)numChannels);

- }

- 

- 

--

- // Sets new rate control value. Normal rate = 1.0, smaller values

- // represent slower rate, larger faster rates.

- void SoundTouch::setRate(double newRate)

-diff --git a/source/SoundTouch/TDStretch.cpp b/source/SoundTouch/TDStretch.cpp
-index 149cdb9..be2dc88 100644
---- a/source/SoundTouch/TDStretch.cpp
-+++ b/source/SoundTouch/TDStretch.cpp
-@@ -588,9 +588,8 @@ void TDStretch::setTempo(double newTempo)
- // Sets the number of channels, 1 = mono, 2 = stereo

- void TDStretch::setChannels(int numChannels)

- {

--    assert(numChannels > 0);

--    if (channels == numChannels) return;

--//    assert(numChannels == 1 || numChannels == 2);

-+    if (!verifyNumberOfChannels(numChannels) ||

-+        (channels == numChannels)) return;

- 

-     channels = numChannels;

-     inputBuffer.setChannels(channels);

--- 
-2.18.0
-
diff --git a/gnu/packages/patches/synfigstudio-fix-ui-with-gtk3.patch b/gnu/packages/patches/synfigstudio-fix-ui-with-gtk3.patch
deleted file mode 100644
index d7b3e92507..0000000000
--- a/gnu/packages/patches/synfigstudio-fix-ui-with-gtk3.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-Downloaded from
-https://github.com/synfig/synfig/commit/b9c3b73ee35b83c4d9183c800809040cef98b2f2.patch
-
-Without this patch the UI of Synfig Studio (when built with the latest version
-of GTK) displays very large buttons in the header of every frame.
-
-This patch can be removed with the next release.
-
-
-From b9c3b73ee35b83c4d9183c800809040cef98b2f2 Mon Sep 17 00:00:00 2001
-From: caryoscelus <caryoscelus@gmx.com>
-Date: Wed, 25 Jan 2017 18:34:39 +0300
-Subject: [PATCH] Fix dock drop area size
-
-Fixes #227
-
-By using Frame instead of Button we avoid intrusive Gtk themes
-from forcing huge drop area size.
----
- synfig-studio/src/gui/docks/dockdroparea.cpp | 15 ++++++++++-----
- 1 file changed, 10 insertions(+), 5 deletions(-)
-
-diff --git a/src/gui/docks/dockdroparea.cpp b/synfig-studio/src/gui/docks/dockdroparea.cpp
-index 0f8936fdb..e012282f0 100644
---- a/src/gui/docks/dockdroparea.cpp
-+++ b/src/gui/docks/dockdroparea.cpp
-@@ -35,7 +35,7 @@
- #include "app.h"
- #include "docks/dockdroparea.h"
- #include "docks/dockmanager.h"
--#include <gtkmm/button.h>
-+#include <gtkmm/frame.h>
- 
- #endif
- 
-@@ -61,10 +61,15 @@ DockDropArea::DockDropArea(Gtk::Widget *target):
- 	std::vector<Gtk::TargetEntry> listTargets;
- 	listTargets.push_back( Gtk::TargetEntry("SYNFIG_DOCK") );
- 
--	Gtk::Button *button_left   = manage(new Gtk::Button());
--	Gtk::Button *button_right  = manage(new Gtk::Button());
--	Gtk::Button *button_top    = manage(new Gtk::Button());
--	Gtk::Button *button_bottom = manage(new Gtk::Button());
-+	Gtk::Frame *button_left   = manage(new Gtk::Frame());
-+	Gtk::Frame *button_right  = manage(new Gtk::Frame());
-+	Gtk::Frame *button_top    = manage(new Gtk::Frame());
-+	Gtk::Frame *button_bottom = manage(new Gtk::Frame());
-+
-+	button_left->set_size_request(20, 10);
-+	button_right->set_size_request(20, 10);
-+	button_top->set_size_request(20, 10);
-+	button_bottom->set_size_request(20, 10);
- 
- 	button_left->drag_dest_set(listTargets);
- 	button_right->drag_dest_set(listTargets);
diff --git a/gnu/packages/patches/texlive-bin-CVE-2018-17407.patch b/gnu/packages/patches/texlive-bin-CVE-2018-17407.patch
new file mode 100644
index 0000000000..63646d420c
--- /dev/null
+++ b/gnu/packages/patches/texlive-bin-CVE-2018-17407.patch
@@ -0,0 +1,249 @@
+This patch adds support for newer versions of Poppler and some upstream
+TexLive fixes, including one for CVE-2018-17407.
+
+It is taken from Linux From Scratch:
+<http://www.linuxfromscratch.org/patches/blfs/svn/texlive-20180414-source-upstream_fixes-3.patch>.
+
+Submitted By: Ken Moffat <ken at linuxfromscratch dot org>
+Date: 2018-12-26
+Initial Package Version: 20180414
+Upstream Status: Applied
+Origin: Upstream
+Description: Two fixes, cherry-picked from svn plus a CVE fix.
+I have removed the partial fixes for various system versions of poppler.
+
+r47469 Fix segfault in dvipdfm-x (XeTeX) on 1/2/4-bit transparent indexed PNGs.
+
+r47477 Fix a ptex regression for discontinuous kinsoku table.
+
+Also, via fedora (I got lost in svn) a critical fix for CVE-2018-17407
+
+"A buffer overflow in the handling of Type 1 fonts allows arbitrary code
+execution when a malicious font is loaded by one of the vulnerable tools:
+pdflatex, pdftex, dvips, or luatex."
+
+diff -Naur a/texk/dvipdfm-x/pngimage.c b/texk/dvipdfm-x/pngimage.c
+--- a/texk/dvipdfm-x/pngimage.c	2018-02-17 08:41:35.000000000 +0000
++++ b/texk/dvipdfm-x/pngimage.c	2018-10-09 01:52:01.648670875 +0100
+@@ -964,12 +964,16 @@
+   png_bytep   trans;
+   int         num_trans;
+   png_uint_32 i;
++  png_byte    bpc, mask, shift;
+ 
+   if (!png_get_valid(png_ptr, info_ptr, PNG_INFO_tRNS) ||
+       !png_get_tRNS(png_ptr, info_ptr, &trans, &num_trans, NULL)) {
+     WARN("%s: PNG does not have valid tRNS chunk but tRNS is requested.", PNG_DEBUG_STR);
+     return NULL;
+   }
++  bpc   = png_get_bit_depth(png_ptr, info_ptr);
++  mask  = 0xff >> (8 - bpc);
++  shift = 8 - bpc;
+ 
+   smask = pdf_new_stream(STREAM_COMPRESS);
+   dict  = pdf_stream_dict(smask);
+@@ -981,7 +985,8 @@
+   pdf_add_dict(dict, pdf_new_name("ColorSpace"), pdf_new_name("DeviceGray"));
+   pdf_add_dict(dict, pdf_new_name("BitsPerComponent"), pdf_new_number(8));
+   for (i = 0; i < width*height; i++) {
+-    png_byte idx = image_data_ptr[i];
++    /* data is packed for 1/2/4 bpc formats, msb first */
++    png_byte idx = (image_data_ptr[bpc * i / 8] >> (shift - bpc * i % 8)) & mask;
+     smask_data_ptr[i] = (idx < num_trans) ? trans[idx] : 0xff;
+   }
+   pdf_add_stream(smask, (char *)smask_data_ptr, width*height);
+diff -Naur a/texk/dvipsk/writet1.c b/texk/dvipsk/writet1.c
+--- a/texk/dvipsk/writet1.c	2016-11-25 18:24:26.000000000 +0000
++++ b/texk/dvipsk/writet1.c	2018-10-09 01:52:01.648670875 +0100
+@@ -1449,7 +1449,9 @@
+         *(strend(t1_buf_array) - 1) = ' ';
+ 
+         t1_getline();
++        alloc_array(t1_buf, strlen(t1_line_array) + strlen(t1_buf_array) + 1, T1_BUF_SIZE);
+         strcat(t1_buf_array, t1_line_array);
++        alloc_array(t1_line, strlen(t1_buf_array) + 1, T1_BUF_SIZE);
+         strcpy(t1_line_array, t1_buf_array);
+         t1_line_ptr = eol(t1_line_array);
+     }
+diff -Naur a/texk/web2c/luatexdir/font/writet1.w b/texk/web2c/luatexdir/font/writet1.w
+--- a/texk/web2c/luatexdir/font/writet1.w	2016-11-25 18:24:34.000000000 +0000
++++ b/texk/web2c/luatexdir/font/writet1.w	2018-10-09 01:52:01.648670875 +0100
+@@ -1625,7 +1625,9 @@
+     if (sscanf(p, "%i", &i) != 1) {
+         strcpy(t1_buf_array, t1_line_array);
+         t1_getline();
++        alloc_array(t1_buf, strlen(t1_line_array) + strlen(t1_buf_array) + 1, T1_BUF_SIZE);
+         strcat(t1_buf_array, t1_line_array);
++        alloc_array(t1_line, strlen(t1_buf_array) + 1, T1_BUF_SIZE);
+         strcpy(t1_line_array, t1_buf_array);
+         t1_line_ptr = eol(t1_line_array);
+     }
+diff -Naur a/texk/web2c/luatexdir/image/pdftoepdf.w b/texk/web2c/luatexdir/image/pdftoepdf.w
+--- a/texk/web2c/luatexdir/image/pdftoepdf.w	2018-01-17 18:00:12.000000000 +0000
++++ b/texk/web2c/luatexdir/image/pdftoepdf.w	2018-10-09 01:52:01.648670875 +0100
+@@ -472,10 +472,10 @@
+         break;
+     */
+     case objString:
+-        copyString(pdf, obj->getString());
++        copyString(pdf, (GooString *)obj->getString());
+         break;
+     case objName:
+-        copyName(pdf, obj->getName());
++        copyName(pdf, (char *)obj->getName());
+         break;
+     case objNull:
+         pdf_add_null(pdf);
+diff -Naur a/texk/web2c/luatexdir/lua/lepdflib.cc b/texk/web2c/luatexdir/lua/lepdflib.cc
+--- a/texk/web2c/luatexdir/lua/lepdflib.cc	2018-02-14 14:44:38.000000000 +0000
++++ b/texk/web2c/luatexdir/lua/lepdflib.cc	2018-10-09 01:52:01.649670868 +0100
+@@ -674,7 +674,7 @@
+     uin = (udstruct *) luaL_checkudata(L, 1, M_##in);          \
+     if (uin->pd != NULL && uin->pd->pc != uin->pc)             \
+         pdfdoc_changed_error(L);                               \
+-    gs = ((in *) uin->d)->function();                          \
++    gs = (GooString *)((in *) uin->d)->function();             \
+     if (gs != NULL)                                            \
+         lua_pushlstring(L, gs->getCString(), gs->getLength()); \
+     else                                                       \
+@@ -1813,7 +1813,7 @@
+     if (uin->pd != NULL && uin->pd->pc != uin->pc)
+         pdfdoc_changed_error(L);
+     if (((Object *) uin->d)->isString()) {
+-        gs = ((Object *) uin->d)->getString();
++        gs = (GooString *)((Object *) uin->d)->getString();
+         lua_pushlstring(L, gs->getCString(), gs->getLength());
+     } else
+         lua_pushnil(L);
+diff -Naur a/texk/web2c/pdftexdir/writet1.c b/texk/web2c/pdftexdir/writet1.c
+--- a/texk/web2c/pdftexdir/writet1.c	2016-11-25 18:24:37.000000000 +0000
++++ b/texk/web2c/pdftexdir/writet1.c	2018-10-09 01:52:01.649670868 +0100
+@@ -1598,7 +1598,9 @@
+         *(strend(t1_buf_array) - 1) = ' ';
+ 
+         t1_getline();
++        alloc_array(t1_buf, strlen(t1_line_array) + strlen(t1_buf_array) + 1, T1_BUF_SIZE);
+         strcat(t1_buf_array, t1_line_array);
++        alloc_array(t1_line, strlen(t1_buf_array) + 1, T1_BUF_SIZE);
+         strcpy(t1_line_array, t1_buf_array);
+         t1_line_ptr = eol(t1_line_array);
+     }
+diff -Naur a/texk/web2c/ptexdir/ptex_version.h b/texk/web2c/ptexdir/ptex_version.h
+--- a/texk/web2c/ptexdir/ptex_version.h	2018-01-21 03:48:06.000000000 +0000
++++ b/texk/web2c/ptexdir/ptex_version.h	2018-10-09 01:52:01.649670868 +0100
+@@ -1 +1 @@
+-#define PTEX_VERSION "p3.8.0"
++#define PTEX_VERSION "p3.8.1"
+diff -Naur a/texk/web2c/ptexdir/tests/free_ixsp.tex b/texk/web2c/ptexdir/tests/free_ixsp.tex
+--- a/texk/web2c/ptexdir/tests/free_ixsp.tex	1970-01-01 01:00:00.000000000 +0100
++++ b/texk/web2c/ptexdir/tests/free_ixsp.tex	2018-10-09 01:52:01.649670868 +0100
+@@ -0,0 +1,53 @@
++%#!eptex -ini -etex
++\let\dump\relax
++\batchmode
++\input plain
++
++\errorstopmode
++\catcode`@=11
++\newcount\@tempcnta
++\newcount\@tempcntb
++\newcount\@tempcntc
++\mathchardef\LIM=256
++
++\def\MYCHAR#1{%
++  \@tempcntc=\numexpr7*#1+"101\relax
++  \@tempcnta=\@tempcntc\divide\@tempcnta 94
++  \@tempcntb=\numexpr\@tempcntc-94*\@tempcnta+1\relax
++  \ifnum\@tempcntb<0\advance\@tempcntb94 \advance\@tempcnta-1\fi
++  \advance\@tempcnta18 % 18区以降
++  \CNTA=\kuten\numexpr"100*\@tempcnta+\@tempcntb\relax
++}
++
++\newcount\CNT\newcount\CNTA
++\CNT=0
++\loop
++  \MYCHAR\CNT
++  \message{\the\CNT.}
++  \inhibitxspcode\CNTA=1\relax
++  \advance\CNT1\relax
++  \ifnum\CNT<\LIM
++\repeat
++
++\newcount\CNTB
++
++\loop
++  \MYCHAR\CNTB
++  \global\inhibitxspcode\CNTA=3
++{%
++\CNT=0
++\loop
++  \MYCHAR\CNT
++  \count@=\numexpr 1-\inhibitxspcode\CNTA\relax
++  \ifnum\count@=0\else\ifnum\CNTB=\CNT\else
++    \errmessage{<\the\CNTB, \the\CNT, \the\inhibitxspcode\CNTA>}\fi\fi
++  \advance\CNT1\relax
++  \ifnum\CNT<\LIM
++\repeat
++}
++  \MYCHAR\CNTB
++  \global\inhibitxspcode\CNTA=1\relax
++  \advance\CNTB1\relax
++  \ifnum\CNTB<\LIM
++\repeat
++\bye
+diff -Naur a/texk/web2c/ptexdir/tests/free_pena.tex b/texk/web2c/ptexdir/tests/free_pena.tex
+--- a/texk/web2c/ptexdir/tests/free_pena.tex	1970-01-01 01:00:00.000000000 +0100
++++ b/texk/web2c/ptexdir/tests/free_pena.tex	2018-10-09 01:52:01.649670868 +0100
+@@ -0,0 +1,52 @@
++%#!eptex -ini -etex
++\let\dump\relax
++\batchmode
++\input plain
++
++\errorstopmode
++\catcode`@=11
++\newcount\@tempcnta
++\newcount\@tempcntb
++\newcount\@tempcntc
++\mathchardef\LIM=256
++
++\def\MYCHAR#1{%
++  \@tempcntc=\numexpr7*#1+"101\relax
++  \@tempcnta=\@tempcntc\divide\@tempcnta 94
++  \@tempcntb=\numexpr\@tempcntc-94*\@tempcnta+1\relax
++  \ifnum\@tempcntb<0\advance\@tempcntb94 \advance\@tempcnta-1\fi
++  \advance\@tempcnta18 % 18区以降
++  \CNTA=\kuten\numexpr"100*\@tempcnta+\@tempcntb\relax
++}
++
++\newcount\CNT\newcount\CNTA
++\CNT=0
++\loop
++  \MYCHAR\CNT
++  \message{\the\CNT.}
++  \prebreakpenalty\CNTA=\numexpr\CNT+1\relax
++  \advance\CNT1\relax
++  \ifnum\CNT<\LIM
++\repeat
++
++\newcount\CNTB
++
++\loop
++  \MYCHAR\CNTB
++  \global\prebreakpenalty\CNTA=0
++{%
++\CNT=0
++\loop
++  \MYCHAR\CNT
++  \count@=\numexpr -\CNT-1+\prebreakpenalty\CNTA\relax
++  \ifnum\count@=0\else\ifnum\CNTB=\CNT\else\errmessage{<\the\CNTB, \the\CNT>}\fi\fi
++  \advance\CNT1\relax
++  \ifnum\CNT<\LIM
++\repeat
++}
++  \MYCHAR\CNTB
++  \global\prebreakpenalty\CNTA=\numexpr\CNTB+1\relax
++  \advance\CNTB1\relax
++  \ifnum\CNTB<\LIM
++\repeat
++\bye
diff --git a/gnu/packages/patches/texlive-bin-pdftex-poppler-compat.patch b/gnu/packages/patches/texlive-bin-pdftex-poppler-compat.patch
deleted file mode 100644
index eba4733f32..0000000000
--- a/gnu/packages/patches/texlive-bin-pdftex-poppler-compat.patch
+++ /dev/null
@@ -1,188 +0,0 @@
-Fix compatibility with Poppler 0.72.
-
-These files are taken from the upstream "poppler0.72.0.cc" variants and
-diffed against the "newpoppler" files from the 20180414 distribution.
-
-See revision 49336:
-https://tug.org/svn/texlive/trunk/Build/source/texk/web2c/pdftexdir/
-
---- a/texk/web2c/pdftexdir/pdftoepdf-newpoppler.cc	1970-01-01 01:00:00.000000000 +0100
-+++ b/texk/web2c/pdftexdir/pdftoepdf-newpoppler.cc	2018-12-09 21:14:58.479732695 +0100
-@@ -22,7 +22,7 @@
- https://git.archlinux.org/svntogit/packages.git/plain/texlive-bin/trunk
- by Arch Linux. A little modifications are made to avoid a crash for
- some kind of pdf images, such as figure_missing.pdf in gnuplot.
--The poppler should be 0.59.0 or newer versions.
-+The poppler should be 0.72.0 or newer versions.
- POPPLER_VERSION should be defined.
- */
- 
-@@ -120,7 +120,7 @@
- 
- static InObj *inObjList;
- static UsedEncoding *encodingList;
--static GBool isInit = gFalse;
-+static bool isInit = false;
- 
- // --------------------------------------------------------------------
- // Maintain list of open embedded PDF files
-@@ -317,7 +317,7 @@
-     pdf_puts("<<\n");
-     assert(r->type == objFont); // FontDescriptor is in fd_tree
-     for (i = 0, l = obj->dictGetLength(); i < l; ++i) {
--        key = obj->dictGetKey(i);
-+        key = (char *)obj->dictGetKey(i);
-         if (strncmp("FontDescriptor", key, strlen("FontDescriptor")) == 0
-             || strncmp("BaseFont", key, strlen("BaseFont")) == 0
-             || strncmp("Encoding", key, strlen("Encoding")) == 0)
-@@ -427,7 +427,7 @@
-         charset = fontdesc.dictLookup("CharSet");
-         if (!charset.isNull() &&
-             charset.isString() && is_subsetable(fontmap))
--            epdf_mark_glyphs(fd, (char *)charset.getString()->getCString());
-+            epdf_mark_glyphs(fd, (char *)charset.getString()->c_str());
-         else
-             embed_whole_font(fd);
-         addFontDesc(fontdescRef.getRef(), fd);
-@@ -454,7 +454,7 @@
-     for (i = 0, l = obj->dictGetLength(); i < l; ++i) {
-         fontRef = obj->dictGetValNF(i);
-         if (fontRef.isRef())
--            copyFont(obj->dictGetKey(i), &fontRef);
-+            copyFont((char *)obj->dictGetKey(i), &fontRef);
-         else if (fontRef.isDict()) {   // some programs generate pdf with embedded font object
-             copyName((char *)obj->dictGetKey(i));
-             pdf_puts(" ");
-@@ -566,7 +566,7 @@
-         pdf_printf("%s", convertNumToPDF(obj->getNum()));
-     } else if (obj->isString()) {
-         s = (GooString *)obj->getString();
--        p = s->getCString();
-+        p = (char *)s->c_str();
-         l = s->getLength();
-         if (strlen(p) == (unsigned int) l) {
-             pdf_puts("(");
-@@ -664,7 +664,7 @@
-                     ("PDF inclusion: CID fonts are not supported"
-                      " (try to disable font replacement to fix this)");
-             }
--            if ((s = ((Gfx8BitFont *) r->font)->getCharName(i)) != 0)
-+            if ((s = (char *)((Gfx8BitFont *) r->font)->getCharName(i)) != 0)
-                 glyphNames[i] = s;
-             else
-                 glyphNames[i] = notdef;
-@@ -683,7 +683,7 @@
- }
- 
- // get the pagebox according to the pagebox_spec
--static PDFRectangle *get_pagebox(Page * page, int pagebox_spec)
-+static const PDFRectangle *get_pagebox(Page * page, int pagebox_spec)
- {
-     if (pagebox_spec == pdfboxspecmedia)
-         return page->getMediaBox();
-@@ -715,7 +715,7 @@
- {
-     PdfDocument *pdf_doc;
-     Page *page;
--    PDFRectangle *pagebox;
-+    const PDFRectangle *pagebox;
- #ifdef POPPLER_VERSION
-     int pdf_major_version_found, pdf_minor_version_found;
- #else
-@@ -724,8 +724,8 @@
-     // initialize
-     if (!isInit) {
-         globalParams = new GlobalParams();
--        globalParams->setErrQuiet(gFalse);
--        isInit = gTrue;
-+        globalParams->setErrQuiet(false);
-+        isInit = true;
-     }
-     // open PDF file
-     pdf_doc = find_add_document(image_name);
-@@ -849,7 +849,7 @@
-     pageObj = xref->fetch(pageRef->num, pageRef->gen);
-     pageDict = pageObj.getDict();
-     rotate = page->getRotate();
--    PDFRectangle *pagebox;
-+    const PDFRectangle *pagebox;
-     // write the Page header
-     pdf_puts("/Type /XObject\n");
-     pdf_puts("/Subtype /Form\n");
-@@ -977,7 +977,7 @@
-             }
-             l = dic1.getLength();
-             for (i = 0; i < l; i++) {
--                groupDict.dictAdd(copyString(dic1.getKey(i)),
-+                groupDict.dictAdd((const char *)copyString(dic1.getKey(i)),
-                                   dic1.getValNF(i));
-             }
- // end modification
-@@ -1001,14 +1001,14 @@
-         pdf_puts("/Resources <<\n");
-         for (i = 0, l = obj1->dictGetLength(); i < l; ++i) {
-             obj2 = obj1->dictGetVal(i);
--            key = obj1->dictGetKey(i);
-+            key = (char *)obj1->dictGetKey(i);
-             if (strcmp("Font", key) == 0)
-                 copyFontResources(&obj2);
-             else if (strcmp("ProcSet", key) == 0)
-                 copyProcSet(&obj2);
-             else
--                copyOtherResources(&obj2, key);
-+                copyOtherResources(&obj2, (char *)key);
-         }
-         pdf_puts(">>\n");
-     }
-
---- a/texk/web2c/pdftexdir/pdftosrc-newpoppler.cc	1970-01-01 01:00:00.000000000 +0100
-+++ b/texk/web2c/pdftexdir/pdftosrc-newpoppler.cc	2018-12-09 21:14:58.479732695 +0100
-@@ -20,7 +20,7 @@
- /*
- This is based on the patch texlive-poppler-0.59.patch <2017-09-19> at
- https://git.archlinux.org/svntogit/packages.git/plain/texlive-bin/trunk
--by Arch Linux. The poppler should be 0.59.0 or newer versions.
-+by Arch Linux. The poppler should be 0.72.0 or newer versions.
- POPPLER_VERSION should be defined.
- */
- 
-@@ -109,7 +109,7 @@
-             fprintf(stderr, "No SourceName found\n");
-             exit(1);
-         }
--        outname = (char *)srcName.getString()->getCString();
-+        outname = (char *)srcName.getString()->c_str();
-         // We cannot free srcName, as objname shares its string.
-         // srcName.free();
-     } else if (objnum > 0) {
-@@ -118,7 +118,7 @@
-             fprintf(stderr, "Not a Stream object\n");
-             exit(1);
-         }
--        sprintf(buf, "%s", fileName->getCString());
-+        sprintf(buf, "%s", fileName->c_str());
-         if ((p = strrchr(buf, '.')) == 0)
-             p = strchr(buf, 0);
-         if (objgen == 0)
-@@ -128,7 +128,7 @@
-         outname = buf;
-     } else {                    // objnum < 0 means we are extracting the XRef table
-         extract_xref_table = true;
--        sprintf(buf, "%s", fileName->getCString());
-+        sprintf(buf, "%s", fileName->c_str());
-         if ((p = strrchr(buf, '.')) == 0)
-             p = strchr(buf, 0);
-         sprintf(p, ".xref");
-@@ -173,9 +173,9 @@
- 
-                 // parse the header: object numbers and offsets
-                 objStr.streamReset();
--                str = new EmbedStream(objStr.getStream(), Object(objNull), gTrue, first);
-+                str = new EmbedStream(objStr.getStream(), Object(objNull), true, first);
-                 lexer = new Lexer(xref, str);
--                parser = new Parser(xref, lexer, gFalse);
-+                parser = new Parser(xref, lexer, false);
-                 for (n = 0; n < nObjects; ++n) {
-                     obj1 = parser->getObj();
-                     obj2 = parser->getObj();
-
diff --git a/gnu/packages/patches/texlive-bin-xetex-poppler-compat.patch b/gnu/packages/patches/texlive-bin-xetex-poppler-compat.patch
deleted file mode 100644
index cac716cc59..0000000000
--- a/gnu/packages/patches/texlive-bin-xetex-poppler-compat.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-Fix compatibility with Poppler 0.72.
-
-Patch taken from upstream:
-https://tug.org/svn/texlive/trunk/Build/source/texk/web2c/xetexdir/pdfimage.cpp?r1=44964&r2=48969&diff_format=u
-
---- a/texk/web2c/xetexdir/pdfimage.cpp	2017/08/06 07:12:02	44964
-+++ b/texk/web2c/xetexdir/pdfimage.cpp	2018/10/22 04:01:42	48969
-@@ -82,19 +82,19 @@
- 	switch (pdf_box) {
- 		default:
- 		case pdfbox_crop:
--			r = page->getCropBox();
-+			r = (PDFRectangle *)page->getCropBox();
- 			break;
- 		case pdfbox_media:
--			r = page->getMediaBox();
-+			r = (PDFRectangle *)page->getMediaBox();
- 			break;
- 		case pdfbox_bleed:
--			r = page->getBleedBox();
-+			r = (PDFRectangle *)page->getBleedBox();
- 			break;
- 		case pdfbox_trim:
--			r = page->getTrimBox();
-+			r = (PDFRectangle *)page->getTrimBox();
- 			break;
- 		case pdfbox_art:
--			r = page->getArtBox();
-+			r = (PDFRectangle *)page->getArtBox();
- 			break;
- 	}
diff --git a/gnu/packages/patches/u-boot-fix-mkimage-header-verification.patch b/gnu/packages/patches/u-boot-fix-mkimage-header-verification.patch
new file mode 100644
index 0000000000..063677db4a
--- /dev/null
+++ b/gnu/packages/patches/u-boot-fix-mkimage-header-verification.patch
@@ -0,0 +1,57 @@
+From 48b52117235928cfd7ef1ec5c3f2cff5d7b03862 Mon Sep 17 00:00:00 2001
+From: Jordan Hand <jordanhand22@gmail.com>
+Date: Wed, 10 Apr 2019 09:46:32 -0700
+Subject: [PATCH,v2] fdt: Fix mkimage list to try every header type
+Origin: https://patchwork.ozlabs.org/patch/1083495/
+
+Image type is not supplied to `mkimage -l`. For this reason, we cannot
+use imagetool_verify_print_header_by_type. Instead, this patch uses
+imagetool_verify_print_header to look through all header types to find
+one where image validation succeeds.
+
+This patch fixes failures in test/image/test-imagetools.sh
+
+Signed-off-by: Jordan Hand <jorhand@microsoft.com>
+Tested-by: Alex Kiernan <alex.kiernan@gmail.com>
+Tested-by: Vagrant Cascadian <vagrant@debian.org>
+---
+ tools/mkimage.c | 23 +++++++++++++++--------
+ 1 file changed, 15 insertions(+), 8 deletions(-)
+
+diff --git a/tools/mkimage.c b/tools/mkimage.c
+index 2899adff81..76c3406d37 100644
+--- a/tools/mkimage.c
++++ b/tools/mkimage.c
+@@ -403,14 +403,21 @@ int main(int argc, char **argv)
+ 			exit (EXIT_FAILURE);
+ 		}
+ 
+-		/*
+-		 * scan through mkimage registry for all supported image types
+-		 * and verify the input image file header for match
+-		 * Print the image information for matched image type
+-		 * Returns the error code if not matched
+-		 */
+-		retval = imagetool_verify_print_header_by_type(ptr, &sbuf,
+-				tparams, &params);
++		if (params.fflag) {
++			/*
++			 * Verifies the header format based on the expected header for
++			 * image type in tparams
++			 */
++			retval = imagetool_verify_print_header_by_type(ptr, &sbuf,
++					tparams, &params);
++		} else {
++			/**
++			 * When listing the image, we are not given the image type. Simply check all
++			 * image types to find one that matches our header
++			 */
++			retval = imagetool_verify_print_header(ptr, &sbuf,
++					tparams, &params);
++		}
+ 
+ 		(void) munmap((void *)ptr, sbuf.st_size);
+ 		(void) close (ifd);
+-- 
+2.20.1
+
diff --git a/gnu/packages/patches/webkitgtk-sse2.patch b/gnu/packages/patches/webkitgtk-sse2.patch
new file mode 100644
index 0000000000..df70e38919
--- /dev/null
+++ b/gnu/packages/patches/webkitgtk-sse2.patch
@@ -0,0 +1,202 @@
+Fix build on i686.
+
+This patch is taken from upstream, with ChangeLog entries omitted.
+
+From 5048338c5f21605441c6833907d1136ac9640b35 Mon Sep 17 00:00:00 2001
+From: "mcatanzaro@igalia.com"
+ <mcatanzaro@igalia.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
+Date: Wed, 10 Apr 2019 18:27:25 +0000
+Subject: [PATCH] Unreviewed, rolling out r243989.
+
+Broke i686 builds
+
+Reverted changeset:
+
+"[CMake] Detect SSE2 at compile time"
+https://bugs.webkit.org/show_bug.cgi?id=196488
+https://trac.webkit.org/changeset/243989
+
+git-svn-id: http://svn.webkit.org/repository/webkit/trunk@244138 268f45cc-cd09-0410-ab3c-d52691b4dbfc
+---
+ CMakeLists.txt                                | 10 ---
+ ChangeLog                                     | 12 ++++
+ Source/JavaScriptCore/ChangeLog               | 12 ++++
+ .../assembler/MacroAssemblerX86Common.cpp     |  7 ++
+ .../assembler/MacroAssemblerX86Common.h       | 30 +++++++++
+ Source/cmake/FindSSE2.cmake                   | 65 -------------------
+ 6 files changed, 61 insertions(+), 75 deletions(-)
+ delete mode 100644 Source/cmake/FindSSE2.cmake
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index acd77f4b623..d3e8a23f9ff 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -114,16 +114,6 @@ else ()
+     set(WTF_CPU_UNKNOWN 1)
+ endif ()
+ 
+-#---------------------------
+-# Make sure SSE2 is present.
+-#---------------------------
+-if (WTF_CPU_X86)
+-    include(FindSSE2)
+-    if (NOT SSE2_SUPPORT_FOUND)
+-        message(FATAL_ERROR "SSE2 support is required to compile WebKit")
+-    endif ()
+-endif ()
+-
+ # -----------------------------------------------------------------------------
+ # Determine the operating system
+ # -----------------------------------------------------------------------------
+diff --git a/Source/JavaScriptCore/assembler/MacroAssemblerX86Common.cpp b/Source/JavaScriptCore/assembler/MacroAssemblerX86Common.cpp
+index 8c752c0d030..31753589df7 100644
+--- a/Source/JavaScriptCore/assembler/MacroAssemblerX86Common.cpp
++++ b/Source/JavaScriptCore/assembler/MacroAssemblerX86Common.cpp
+@@ -168,6 +168,11 @@ static_assert(PROBE_OFFSETOF_REG(cpu.fprs, X86Registers::xmm15) == PROBE_CPU_XMM
+ static_assert(sizeof(Probe::State) == PROBE_SIZE, "Probe::State::size's matches ctiMasmProbeTrampoline");
+ static_assert((PROBE_EXECUTOR_OFFSET + PTR_SIZE) <= (PROBE_SIZE + OUT_SIZE), "Must have room after ProbeContext to stash the probe handler");
+ 
++#if CPU(X86)
++// SSE2 is a hard requirement on x86.
++static_assert(isSSE2Present(), "SSE2 support is required in JavaScriptCore");
++#endif
++
+ #undef PROBE_OFFSETOF
+ 
+ #if CPU(X86)
+@@ -787,6 +792,7 @@ void MacroAssemblerX86Common::collectCPUFeatures()
+     std::call_once(onceKey, [] {
+         {
+             CPUID cpuid = getCPUID(0x1);
++            s_sse2CheckState = (cpuid[3] & (1 << 26)) ? CPUIDCheckState::Set : CPUIDCheckState::Clear;
+             s_sse4_1CheckState = (cpuid[2] & (1 << 19)) ? CPUIDCheckState::Set : CPUIDCheckState::Clear;
+             s_sse4_2CheckState = (cpuid[2] & (1 << 20)) ? CPUIDCheckState::Set : CPUIDCheckState::Clear;
+             s_popcntCheckState = (cpuid[2] & (1 << 23)) ? CPUIDCheckState::Set : CPUIDCheckState::Clear;
+@@ -803,6 +809,7 @@ void MacroAssemblerX86Common::collectCPUFeatures()
+     });
+ }
+ 
++MacroAssemblerX86Common::CPUIDCheckState MacroAssemblerX86Common::s_sse2CheckState = CPUIDCheckState::NotChecked;
+ MacroAssemblerX86Common::CPUIDCheckState MacroAssemblerX86Common::s_sse4_1CheckState = CPUIDCheckState::NotChecked;
+ MacroAssemblerX86Common::CPUIDCheckState MacroAssemblerX86Common::s_sse4_2CheckState = CPUIDCheckState::NotChecked;
+ MacroAssemblerX86Common::CPUIDCheckState MacroAssemblerX86Common::s_avxCheckState = CPUIDCheckState::NotChecked;
+diff --git a/Source/JavaScriptCore/assembler/MacroAssemblerX86Common.h b/Source/JavaScriptCore/assembler/MacroAssemblerX86Common.h
+index ff097290ef3..097bcb0bb86 100644
+--- a/Source/JavaScriptCore/assembler/MacroAssemblerX86Common.h
++++ b/Source/JavaScriptCore/assembler/MacroAssemblerX86Common.h
+@@ -4197,11 +4197,41 @@ private:
+     }
+ #endif
+ 
++#if CPU(X86)
++#if OS(MAC_OS_X)
++
++    // All X86 Macs are guaranteed to support at least SSE2,
++    static bool isSSE2Present()
++    {
++        return true;
++    }
++
++#else // OS(MAC_OS_X)
++    static bool isSSE2Present()
++    {
++        if (s_sse2CheckState == CPUIDCheckState::NotChecked)
++            collectCPUFeatures();
++        return s_sse2CheckState == CPUIDCheckState::Set;
++    }
++
++#endif // OS(MAC_OS_X)
++#elif !defined(NDEBUG) // CPU(X86)
++
++    // On x86-64 we should never be checking for SSE2 in a non-debug build,
++    // but non debug add this method to keep the asserts above happy.
++    static bool isSSE2Present()
++    {
++        return true;
++    }
++
++#endif
++
+     using CPUID = std::array<unsigned, 4>;
+     static CPUID getCPUID(unsigned level);
+     static CPUID getCPUIDEx(unsigned level, unsigned count);
+     JS_EXPORT_PRIVATE static void collectCPUFeatures();
+ 
++    JS_EXPORT_PRIVATE static CPUIDCheckState s_sse2CheckState;
+     JS_EXPORT_PRIVATE static CPUIDCheckState s_sse4_1CheckState;
+     JS_EXPORT_PRIVATE static CPUIDCheckState s_sse4_2CheckState;
+     JS_EXPORT_PRIVATE static CPUIDCheckState s_avxCheckState;
+diff --git a/Source/cmake/FindSSE2.cmake b/Source/cmake/FindSSE2.cmake
+deleted file mode 100644
+index 7a947feadd4..00000000000
+--- a/Source/cmake/FindSSE2.cmake
++++ /dev/null
+@@ -1,65 +0,0 @@
+-#################################
+-# Check for the presence of SSE2.
+-#
+-# Once done, this will define:
+-# - SSE2_SUPPORT_FOUND - the system supports (at least) SSE2.
+-#
+-# Copyright (c) 2014, Pablo Fernandez Alcantarilla, Jesus Nuevo
+-# Copyright (c) 2019, Igalia S.L.
+-#
+-# Redistribution and use in source and binary forms, with or without modification,
+-# are permitted provided that the following conditions are met:
+-#
+-#   * Redistributions of source code must retain the above copyright notice,
+-#     this list of conditions and the following disclaimer.
+-#
+-#   * 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.
+-#
+-#   * Neither the name of the copyright holders nor the names of its contributors
+-#     may be used to endorse or promote products derived from this software without
+-#     specific prior written permission.
+-#
+-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT HOLDER OR CONTRIBUTORS 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(SSE2_SUPPORT_FOUND FALSE)
+-
+-macro(CHECK_FOR_SSE2)
+-    include(CheckCXXSourceRuns)
+-
+-    check_cxx_source_runs("
+-        #include <emmintrin.h>
+-        int main ()
+-        {
+-            __m128d a, b;
+-            double vals[2] = {0};
+-            a = _mm_loadu_pd (vals);
+-            b = _mm_add_pd (a,a);
+-            _mm_storeu_pd (vals,b);
+-            return(0);
+-        }"
+-        HAVE_SSE2_EXTENSIONS)
+-
+-    if (CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX OR CMAKE_COMPILER_IS_CLANG)
+-        if (HAVE_SSE2_EXTENSIONS)
+-            set(SSE2_SUPPORT_FOUND TRUE)
+-        endif ()
+-    elseif (MSVC AND NOT CMAKE_CL_64)
+-        if (HAVE_SSE2_EXTENSIONS)
+-            set(SSE2_SUPPORT_FOUND TRUE)
+-            message(STATUS "Found SSE2 extensions.")
+-        endif (HAVE_SSE2_EXTENSIONS)
+-    endif ()
+-
+-endmacro(CHECK_FOR_SSE2)
+-
+-CHECK_FOR_SSE2()
+-- 
+2.21.0
+
diff --git a/gnu/packages/patchutils.scm b/gnu/packages/patchutils.scm
index 09f5afbb28..f6197b98ee 100644
--- a/gnu/packages/patchutils.scm
+++ b/gnu/packages/patchutils.scm
@@ -1,7 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2014, 2018 Eric Bavier <bavier@member.fsf.org>
 ;;; Copyright © 2015, 2018 Leo Famulari <leo@famulari.name>
-;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -98,18 +98,14 @@ listing the files modified by a patch.")
 (define-public quilt
   (package
     (name "quilt")
-    (version "0.65")
+    (version "0.66")
     (source
      (origin
-      (method url-fetch)
-      (uri (string-append "mirror://savannah/quilt/"
-                          name "-" version ".tar.gz"))
-      (sha256
-       (base32
-        "06b816m2gz9jfif7k9v2hrm7fz76zjg5pavf7hd3ifybwn4cgjzn"))
-      (patches (search-patches "quilt-test-fix-regex.patch"
-                               "quilt-getopt-second-separator.patch"
-                               "quilt-getopt-nondigit-param.patch"))))
+       (method url-fetch)
+       (uri (string-append "mirror://savannah/quilt/"
+                           "quilt-" version ".tar.gz"))
+       (sha256
+        (base32 "01vfvk4pqigahx82fhaaffg921ivd3k7rylz1yfvy4zbdyd32jri"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("gettext" ,gnu-gettext)))
@@ -216,7 +212,7 @@ refreshed, and more.")
          #:python ,python-2))                    ;not compatible with Python 3
       (synopsis "Patch tracking tool")
       (description
-       "'Patches' is a patch-tracking tool initially written for the QEMU
+       "@code{Patches} is a patch-tracking tool initially written for the QEMU
 project.  It provides commands that build a database of patches from a mailing
 list, and commands that can search that database.  It allows users to track
 the status of a patch, apply patches, and search for patches---all that from
@@ -248,7 +244,7 @@ GiB).")
 (define-public meld
   (package
     (name "meld")
-    (version "3.20.0")
+    (version "3.20.1")
     (source
      (origin
        (method url-fetch)
@@ -256,8 +252,7 @@ GiB).")
                            (version-major+minor version)
                            "/meld-" version ".tar.xz"))
        (sha256
-        (base32
-         "11khi1sg02k3b9qdag3r939cwi27cql4kjim7jhxf9ckfhpzwh6b"))))
+        (base32 "0jdj7kd6vj1mdc16gvrj1kar88b2j5875ajq18fx7cbc9ny46j55"))))
     (build-system python-build-system)
     (native-inputs
      `(("intltool" ,intltool)
diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm
index 8a78da854b..850e1db3e5 100644
--- a/gnu/packages/pdf.scm
+++ b/gnu/packages/pdf.scm
@@ -1034,7 +1034,7 @@ multiple files.")
 (define-public pdfpc
   (package
     (name "pdfpc")
-    (version "4.2.1")
+    (version "4.3.2")
     (source
      (origin
        (method git-fetch)
@@ -1043,8 +1043,7 @@ multiple files.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32
-         "1rmsrpf5vlqhnyyrhq8apndny88ld2qvfjx6258653pqbimv7mx5"))))
+        (base32 "15y6g92fp6x6dwwhrhkfny5z20w7pq9c8w19fh2vzff9aa6m2h9z"))))
     (build-system cmake-build-system)
     (arguments '(#:tests? #f))          ; no test target
     (inputs
diff --git a/gnu/packages/perl-check.scm b/gnu/packages/perl-check.scm
index aae83e5771..47e25083cd 100644
--- a/gnu/packages/perl-check.scm
+++ b/gnu/packages/perl-check.scm
@@ -142,6 +142,30 @@ framework base class.  It concentrates on offering reusable data driven
 patterns, so that you can write tests with a minimum of code.")
     (license perl-license)))
 
+(define-public perl-test-checkdeps
+  (package
+    (name "perl-test-checkdeps")
+    (version "0.010")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "mirror://cpan/authors/id/L/LE/LEONT/Test-CheckDeps-"
+             version
+             ".tar.gz"))
+       (sha256
+        (base32
+         "1vjinlixxdx6gfcw8y1dw2rla8bfhi8nmgcqr3nffc7kqskcrz36"))))
+    (build-system perl-build-system)
+    (propagated-inputs
+     `(("perl-cpan-meta-check" ,perl-cpan-meta-check)))
+    (home-page "https://metacpan.org/release/Test-CheckDeps")
+    (synopsis "Check for presence of dependencies")
+    (description
+     "This module provides a test that checks all dependencies have been
+installed properly.")
+    (license perl-license)))
+
 (define-public perl-test-class
   (package
     (name "perl-test-class")
@@ -361,6 +385,30 @@ functions.")
     ;; license, any version, ..."
     (license gpl3+)))
 
+(define-public perl-test-dir
+  (package
+    (name "perl-test-dir")
+    (version "1.16")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://cpan/authors/id/M/MT/MTHURN/"
+                           "Test-Dir-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1hpafgr93jjl6s8spskhdxhgich4cccmaiq99mla5diyj4iv6ckk"))))
+    (build-system perl-build-system)
+    (propagated-inputs
+     `(("perl-pod-coverage" ,perl-pod-coverage)
+       ("perl-test-pod" ,perl-test-pod)
+       ("perl-test-pod-coverage" ,perl-test-pod-coverage)))
+    (home-page "https://metacpan.org/release/Test-Dir")
+    (synopsis "Utilities for testing directory attributes")
+    (description
+     "This modules provides a collection of test utilities for directory
+attributes.")
+    (license perl-license)))
+
 (define-public perl-test-directory
   (package
     (name "perl-test-directory")
@@ -500,6 +548,58 @@ Test::Exception.  It does much less, but should allow greater flexibility in
 testing exception-throwing code with about the same amount of typing.")
     (license perl-license)))
 
+(define-public perl-test-file
+  (package
+    (name "perl-test-file")
+    (version "1.443")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "mirror://cpan/authors/id/B/BD/BDFOY/Test-File-"
+             version
+             ".tar.gz"))
+       (sha256
+        (base32
+         "1mdwb3x8d4l24wsymamsnq2c73a637v4q5kmb5xqqz31iymsdd31"))))
+    (build-system perl-build-system)
+    (native-inputs
+     `(("perl-test-utf8" ,perl-test-utf8)))
+    (home-page "https://metacpan.org/release/Test-File")
+    (synopsis "Utilities for testing file attributes")
+    (description
+     "@code{Test::File} provides a collection of test utilities for file
+attributes.")
+    (license perl-license)))
+
+(define-public perl-test-file-contents
+  (package
+    (name "perl-test-file-contents")
+    (version "0.23")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "mirror://cpan/authors/id/D/DW/DWHEELER/Test-File-Contents-"
+             version
+             ".tar.gz"))
+       (sha256
+        (base32
+         "0g8zgfyw84181snw7ghahnl9r4lrmlfj7zwi76sv8d0bj7xssvyd"))))
+    (build-system perl-build-system)
+    (native-inputs
+     `(("perl-module-build" ,perl-module-build)))
+    (propagated-inputs
+     `(("perl-test-pod" ,perl-test-pod)
+       ("perl-test-pod-coverage" ,perl-test-pod-coverage)
+       ("perl-text-diff" ,perl-text-diff)))
+    (home-page "https://metacpan.org/release/Test-File-Contents")
+    (synopsis "Test routines for examining the contents of files")
+    (description
+     "@{Test::File::Contents} provides functions for testing the contents of
+files.")
+    (license perl-license)))
+
 (define-public perl-test-file-sharedir-dist
   (package
     (name "perl-test-file-sharedir-dist")
@@ -801,9 +901,10 @@ to gmtime,time or localtime.")
     (home-page "https://metacpan.org/release/Test-More-UTF8")
     (synopsis "Enhance Test::More for UTF8-based projects")
     (description "@code{Test::More::UTF8} is a simple extension for the widely
-used @code{Test::More} module.  By default, it will do a @code{binmode ':utf8'}
-on all of @code{Test::Builder}'s output handles thus enabling the easy use
-flagged strings without warnings like \"Wide character in print @dots{}\"")
+used @code{Test::More} module.  By default, it will do a @code{binmode
+@code{:utf8}} on all of @code{Test::Builder}'s output handles thus enabling the
+easy use flagged strings without warnings like \"Wide character in print
+@dots{}\"")
     (license perl-license)))
 
 (define-public perl-test-most
@@ -1274,6 +1375,32 @@ check if a string is valid and not corrupt, whereas the characteristics tests
 will check that string has a given set of characteristics.")
     (license perl-license)))
 
+(define-public perl-test-version
+  (package
+    (name "perl-test-version")
+    (version "2.09")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "mirror://cpan/authors/id/P/PL/PLICEASE/Test-Version-"
+             version
+             ".tar.gz"))
+       (sha256
+        (base32
+         "1q1qradaf7r2rb3jhpv01wl8z3bxymkfqrl9gwdhxwx5jwldvqcw"))))
+    (build-system perl-build-system)
+    (native-inputs
+     `(("perl-test-exception" ,perl-test-exception)))
+    (propagated-inputs
+     `(("perl-file-find-rule-perl" ,perl-file-find-rule-perl)))
+    (home-page "https://metacpan.org/release/Test-Version")
+    (synopsis "Check versions in modules")
+    (description
+     "@code{Test::Version} checks to ensure that all modules have a version
+defined, and that the version is valid.")
+    (license artistic2.0)))
+
 (define-public perl-test-warn
   (package
     (name "perl-test-warn")
diff --git a/gnu/packages/perl-web.scm b/gnu/packages/perl-web.scm
index c1af1d2caf..77a66f71d0 100644
--- a/gnu/packages/perl-web.scm
+++ b/gnu/packages/perl-web.scm
@@ -21,9 +21,11 @@
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (gnu packages)
   #:use-module (guix packages)
+  #:use-module (gnu packages perl)
   #:use-module (gnu packages perl-check)
   #:use-module (guix download)
-  #:use-module (guix build-system perl))
+  #:use-module (guix build-system perl)
+  #:use-module (gnu packages web))
 
 (define-public perl-mojolicious
   (package
@@ -48,6 +50,33 @@ used are outdated now, the idea behind it is not.  Mojolicious is a new
 endeavor to implement this idea using modern technologies.")
     (license license:artistic2.0)))
 
+(define-public perl-uri-db
+  (package
+    (name "perl-uri-db")
+    (version "0.19")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "mirror://cpan/authors/id/D/DW/DWHEELER/URI-db-"
+             version
+             ".tar.gz"))
+       (sha256
+        (base32
+         "0n56xxlw7c39pfar0dxckr9mbmp6yrzk53ic0cb24raiykm9v6f4"))))
+    (build-system perl-build-system)
+    (native-inputs
+     `(("perl-module-build" ,perl-module-build)))
+    (propagated-inputs
+     `(("perl-uri" ,perl-uri)
+       ("perl-uri-nested" ,perl-uri-nested)))
+    (home-page "https://metacpan.org/release/URI-db")
+    (synopsis "Handle database URIs")
+    (description
+     "This module defines a format for database URIs, and provides a @{URI}
+class to handle these.")
+    (license license:perl-license)))
+
 (define-public perl-uri-escape
   (package
     (name "perl-uri-escape")
@@ -55,7 +84,7 @@ endeavor to implement this idea using modern technologies.")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "mirror://cpan/authors/id/E/ET/ETHER/URI-"
+       (uri (string-append "mirror://cpan/authors/id/O/OA/OALDERS/URI-"
                            version ".tar.gz"))
        (sha256
         (base32
@@ -70,3 +99,29 @@ percent-decode URI strings as defined by RFC 3986.  Percent-encoding URI's is
 informally called URI escaping.  This is the terminology used by this module,
 which predates the formalization of the terms by the RFC by several years.")
     (license license:perl-license)))
+
+(define-public perl-uri-nested
+  (package
+    (name "perl-uri-nested")
+    (version "0.10")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "mirror://cpan/authors/id/D/DW/DWHEELER/URI-Nested-"
+             version
+             ".tar.gz"))
+       (sha256
+        (base32
+         "1bzg6f11m8wfnmycflvp858rs99xknsx8hkip0xcdfjzlqwi75z1"))))
+    (build-system perl-build-system)
+    (native-inputs
+     `(("perl-module-build" ,perl-module-build)))
+    (propagated-inputs
+     `(("perl-uri" ,perl-uri)))
+    (home-page "https://metacpan.org/release/URI-Nested")
+    (synopsis "Nested URIs")
+    (description
+     "@code{URI::Nested} provides support for nested URIs, where the scheme is
+a prefix, and the remainder of the URI is another URI.")
+    (license license:perl-license)))
diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm
index 52f0b852ad..58d6da2d01 100644
--- a/gnu/packages/perl.scm
+++ b/gnu/packages/perl.scm
@@ -18,7 +18,7 @@
 ;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2017 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2017 Christopher Allan Webber <cwebber@dustycloud.org>
-;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
+;;; Copyright © 2018, 2019 Oleg Pykhalov <go.wigust@gmail.com>
 ;;; Copyright © 2018, 2019 Pierre Neidhardt <mail@ambrevar.xyz>
 ;;; Copyright © 2018 Kei Kebreau <kkebreau@posteo.net>
 ;;;
@@ -49,6 +49,7 @@
   #:use-module (gnu packages base)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages freedesktop)
+  #:use-module (gnu packages less)
   #:use-module (gnu packages perl-check)
   #:use-module (gnu packages perl-compression)
   #:use-module (gnu packages perl-web)
@@ -387,7 +388,7 @@ error when it would have happened.")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "mirror://cpan/authors/id/R/RG/RGARCIA/"
+       (uri (string-append "mirror://cpan/authors/id/R/RJ/RJBS/"
                            "base-" version ".tar.gz"))
        (sha256
         (base32 "1pjxcbbcpwlgzm0fzsbqd58zn8cj9vwril1wn3xfd7ws550mixa0"))))
@@ -733,7 +734,7 @@ to test the installed perl for compatibility with his modules.")
     (source (origin
               (method url-fetch)
               (uri (string-append
-                    "mirror://cpan/authors/id/R/RJ/RJBS/Carp-"
+                    "mirror://cpan/authors/id/X/XS/XSAWYERX/Carp-"
                     version ".tar.gz"))
               (sha256
                (base32
@@ -821,7 +822,7 @@ Perl.")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "mirror://cpan/authors/id/K/KE/KENTNL/"
+       (uri (string-append "mirror://cpan/authors/id/E/ET/ETHER/"
                            "Carp-Clan-" version ".tar.gz"))
        (sha256
         (base32
@@ -911,7 +912,7 @@ the same mk_accessors interface.")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "mirror://cpan/authors/id/R/RI/RIBASUSHI/"
+       (uri (string-append "mirror://cpan/authors/id/H/HA/HAARG/"
                            "Class-Accessor-Grouped-" version ".tar.gz"))
        (sha256
         (base32 "1fy48hx56n5kdn1gz66awg465qf34r0n5jam64x7zxh9zhzb1m9m"))))
@@ -981,7 +982,7 @@ supporting the same interface, but using Class::C3 to do the hard work.")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "mirror://cpan/authors/id/F/FR/FREW/"
+       (uri (string-append "mirror://cpan/authors/id/H/HA/HAARG/"
                            "Class-C3-Componentised-" version ".tar.gz"))
        (sha256
         (base32 "14wn1g45z3b5apqq7dcai5drk01hfyqydsd2m6hsxzhyvi3b2l9h"))))
@@ -1027,7 +1028,7 @@ subclasses and can be overridden.")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "mirror://cpan/authors/id/S/SZ/SZABGAB/"
+       (uri (string-append "mirror://cpan/authors/id/Y/YA/YANICK/"
                            "Class-Date-" version ".tar.gz"))
        (sha256
         (base32 "1h7dfjxkpqbfymrf1bn7699i4fx6pbv5wvvi5zszfr8sqqkax1yf"))))
@@ -1190,11 +1191,11 @@ write accessor methods for your objects that perform standard tasks.")
        ("perl-test-requires" ,perl-test-requires)))
     (home-page "https://metacpan.org/release/Class-Method-Modifiers")
     (synopsis "Moose-like method modifiers")
-    (description "Class::Method::Modifiers provides three modifiers: 'before',
-'around', and 'after'.  'before' and 'after' are run just before and after the
-method they modify, but can not really affect that original method.  'around'
-is run in place of the original method, with a hook to easily call that
-original method.")
+    (description "Class::Method::Modifiers provides three modifiers:
+@code{before}, @code{around}, and @code{after}.  @code{before} and @code{after}
+are run just before and after the method they modify, but can not really affect
+that original method.  @code{around} is run in place of the original method,
+with a hook to easily call that original method.")
     (license (package-license perl))))
 
 (define-public perl-class-singleton
@@ -1435,6 +1436,33 @@ some enhancements such as here-documents, C-style comments, and multiline
 options.")
     (license (package-license perl))))
 
+(define-public perl-config-gitlike
+  (package
+    (name "perl-config-gitlike")
+    (version "1.17")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "mirror://cpan/authors/id/A/AL/ALEXMV/Config-GitLike-"
+             version
+             ".tar.gz"))
+       (sha256
+        (base32
+         "0kp57na9mk6yni693h2fwap6l1ndbcj97l4860r9vkzx2jw0fjk7"))))
+    (build-system perl-build-system)
+    (native-inputs
+     `(("perl-test-exception" ,perl-test-exception)))
+    (propagated-inputs
+     `(("perl-moo" ,perl-moo)
+       ("perl-moox-types-mooselike" ,perl-moox-types-mooselike)))
+    (home-page "https://metacpan.org/release/Config-GitLike")
+    (synopsis "Parse Git style configuration files")
+    (description
+     "This module handles parsing, modifying and creating configuration files
+of the style used by the Git version control system.")
+    (license perl-license)))
+
 (define-public perl-config-ini
   (package
     (name "perl-config-ini")
@@ -1530,6 +1558,28 @@ data.")
 @file{Changes} files that conform to a common specification.")
     (license perl-license)))
 
+(define-public perl-cpan-distnameinfo
+  (package
+    (name "perl-cpan-distnameinfo")
+    (version "0.12")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "mirror://cpan/authors/id/G/GB/GBARR/CPAN-DistnameInfo-"
+             version
+             ".tar.gz"))
+       (sha256
+        (base32
+         "0d94kx596w7k328cvq4y96z1gz12hdhn3z1mklkbrb7fyzlzn91g"))))
+    (build-system perl-build-system)
+    (home-page "https://metacpan.org/release/CPAN-DistnameInfo")
+    (synopsis "Extract the name and version from a distribution filename")
+    (description
+     "@code{CPAN::DistnameInfo} uses heuristics to extract the distribution
+name and version from filenames.")
+    (license perl-license)))
+
 (define-public perl-cpan-meta-check
   (package
     (name "perl-cpan-meta-check")
@@ -2216,7 +2266,7 @@ time before its creation (in 1582).")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "mirror://cpan/authors/id/P/PI/PIJLL/"
+       (uri (string-append "mirror://cpan/authors/id/W/WY/WYANT/"
                            "DateTime-Calendar-Julian-" version ".tar.gz"))
        (sha256
         (base32 "0gbw7rh706qk5jlmmz3yzsm0ilzp39kyar28g4j6d57my8cwaipx"))))
@@ -2491,9 +2541,22 @@ the DateTime.pm class.")
         (base32
          "0kz5kz47awf2bhb85xx5rbajkr093ipm2d2vkhqs8lqq0f305r3a"))))
     (build-system perl-build-system)
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-tzdata
+           (lambda* (#:key inputs #:allow-other-keys)
+             (substitute* "lib/DateTime/TimeZone/Local/Unix.pm"
+               (("our \\$ZoneinfoDir = '\\/usr\\/share\\/zoneinfo';")
+                (string-append "our $ZoneinfoDir = '"
+                               (assoc-ref inputs "tzdata") "/share/zoneinfo"
+                               "';")))
+             #t)))))
     (native-inputs
      `(("perl-test-fatal" ,perl-test-fatal)
        ("perl-test-requires" ,perl-test-requires)))
+    (inputs
+     `(("tzdata" ,tzdata)))
     (propagated-inputs
      `(("perl-class-singleton" ,perl-class-singleton)
        ("perl-list-allutils" ,perl-list-allutils)
@@ -2738,6 +2801,26 @@ equivalent of \"$@{^GLOBAL_PHASE@} eq 'DESTRUCT'\" for older perls.")
 files/modules are installed or not).")
     (license (package-license perl))))
 
+(define-public perl-devel-leak
+  (package
+    (name "perl-devel-leak")
+    (version "0.03")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://cpan/authors/id/N/NI/NI-S/"
+                           "Devel-Leak-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0lkj2xwc3lhxv7scl43r8kfmls4am0b98sqf5vmf7d72257w6hkg"))))
+    (build-system perl-build-system)
+    (home-page "https://metacpan.org/release/Devel-Leak")
+    (synopsis "Utility for looking for perl objects that are not reclaimed")
+    (description
+     "This module provides a basic way to discover if a piece of perl code is
+allocating perl data and not releasing them again.")
+    (license perl-license)))
+
 (define-public perl-devel-lexalias
   (package
     (name "perl-devel-lexalias")
@@ -2938,7 +3021,7 @@ input a message of arbitrary length and produces as output a
     (build-system perl-build-system)
     (synopsis "Perl implementation of the SHA-1 message digest algorithm")
     (description
-     "This package provides 'Digest::SHA1', an implementation of the NIST
+     "This package provides @code{Digest::SHA1}, an implementation of the NIST
 SHA-1 message digest algorithm for use by Perl programs.")
     (home-page "https://metacpan.org/release/Digest-SHA1")
     (license (package-license perl))))
@@ -3481,7 +3564,7 @@ provide a quick dropin when such functionality is needed.")
     (home-page "https://metacpan.org/release/File-HomeDir")
     (synopsis "Find your home and other directories on any platform")
     (description "File::HomeDir is a module for locating the directories that
-are \"owned\" by a user (typically your user) and to solve the various issues
+are @code{owned} by a user (typically your user) and to solve the various issues
 that arise trying to find them consistently across a wide variety of
 platforms.")
     (license (package-license perl))))
@@ -3747,7 +3830,7 @@ slurping and spewing.  All functions are optionally exported.")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "mirror://cpan/authors/id/D/DA/DAGOLDEN/"
+       (uri (string-append "mirror://cpan/authors/id/E/ET/ETHER/"
                            "File-Temp-" version ".tar.gz"))
        (sha256
         (base32 "0pr3wrxrk93wy7dz9gsb1sgl77icrs8rh2mah6wms5cdi2ll5ch1"))))
@@ -3803,6 +3886,31 @@ functionality; it returns a list of file names that match the given pattern.
 For instance, it supports the @code{**/*.pm} form.")
     (license (package-license perl))))
 
+(define-public perl-filesys-notify-simple
+  (package
+    (name "perl-filesys-notify-simple")
+    (version "0.13")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://cpan/authors/id/M/MI/MIYAGAWA/"
+                           "Filesys-Notify-Simple-" version ".tar.gz"))
+       (sha256
+        (base32
+         "18jv96k1pf8wqf4vn2ahs7dv44lc9cyqj0bja9z17qici3dx7qxd"))))
+    (build-system perl-build-system)
+    (native-inputs
+     `(("perl-test-sharedfork" ,perl-test-sharedfork)))
+    (home-page "https://metacpan.org/release/Filesys-Notify-Simple")
+    (synopsis "Simple and dumb file system watcher")
+    (description
+     "@code{Filesys::Notify::Simple} is a simple but unified interface to get
+notifications of changes to a given file system path.  It uses inotify2 on
+Linux, fsevents on OS X, @code{kqueue} on FreeBSD, and
+@code{FindFirstChangeNotification} on Windows if they're installed, and falls
+back to a full directory scan if none of these are available.")
+    (license perl-license)))
+
 (define-public perl-getopt-long
   (package
     (name "perl-getopt-long")
@@ -4212,6 +4320,41 @@ easier to develop interactive applications: is_interactive(), interactive(),
 and busy().")
     (license (package-license perl))))
 
+(define-public perl-io-pager
+  (package
+    (name "perl-io-pager")
+    (version "0.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "mirror://cpan/authors/id/J/JP/JPIERCE/IO-Pager-"
+             version
+             "0.tgz"))
+       (sha256
+        (base32
+         "1vzdypsr7vkj8nnda9ccrksci6pqj5awwmi89l7x3mbpq36gad87"))))
+    (build-system perl-build-system)
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-less
+           (lambda _
+             (substitute* "lib/IO/Pager.pm"
+               (("/usr/local/bin/less', '/usr/bin/less")
+                (which "less")))
+             #t)))))
+    (propagated-inputs
+     `(("perl-file-which" ,perl-file-which)))
+    (inputs
+     `(("less" ,less)))
+    (home-page "https://metacpan.org/release/IO-Pager")
+    (synopsis "Select a pager and pipe text to it")
+    (description
+     "@code{IO::Pager} can be used to locate an available pager and use it to
+display output if a TTY is in use.")
+    (license (package-license perl))))
+
 (define-public perl-io-string
   (package
     (name "perl-io-string")
@@ -4266,8 +4409,8 @@ filehandles; in particular, IO::Scalar, IO::ScalarArray, and IO::Lines.")
     (home-page "https://metacpan.org/release/IO-Tty")
     (synopsis "Perl interface to pseudo ttys")
     (description
-     "This package provides the 'IO::Pty' and 'IO::Tty' Perl interfaces to
-pseudo ttys.")
+     "This package provides the @code{IO::Pty} and @code{IO::Tty} Perl
+interfaces to pseudo ttys.")
     (license (package-license perl))))
 
 (define-public perl-ipc-cmd
@@ -4515,7 +4658,7 @@ versa.")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "mirror://cpan/authors/id/D/DA/DAGOLDEN/Log-Any-"
+       (uri (string-append "mirror://cpan/authors/id/P/PR/PREACTION/Log-Any-"
                            version ".tar.gz"))
        (sha256
         (base32 "1wb55ib4gvk8h5pjb6hliqg7li1xjk420q3w5r33f9p1ps60ylbl"))))
@@ -4533,7 +4676,7 @@ application, in turn, may choose one or more logging mechanisms via
 
 @code{Log::Any} has a very tiny footprint and no dependencies beyond Perl
 itself, which makes it appropriate for even small CPAN modules to use.  It
-defaults to 'null' logging activity, so a module can safely log without
+defaults to @code{null} logging activity, so a module can safely log without
 worrying about whether the application has chosen (or will ever choose) a
 logging mechanism.")
     (license (package-license perl))))
@@ -4606,7 +4749,7 @@ widely popular (Java-based) Log4j logging package in pure Perl.")
      "This module allows libraries to have a dependency to a small module
 instead of the full Log-Report distribution.  The full power of
 @code{Log::Report} is only released when the main program uses that module.
-In that case, the module using the 'Optional' will also use the full
+In that case, the module using the @code{Optional} will also use the full
 @code{Log::Report}, otherwise the dressed-down @code{Log::Report::Minimal}
 version.")
     (license (package-license perl))))
@@ -5274,7 +5417,7 @@ examine the contents, and perform some simple tasks.  It can also load the
     (home-page "https://metacpan.org/release/Module-Pluggable")
     (synopsis "Give your Perl module the ability to have plugins")
     (description "This module provides a simple but extensible way of having
-'plugins' for your Perl module.")
+@code{plugins} for your Perl module.")
     (license (package-license perl))))
 
 (define-public perl-module-runtime
@@ -5516,7 +5659,7 @@ sentences.")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "mirror://cpan/authors/id/F/FL/FLORA/"
+       (uri (string-append "mirror://cpan/authors/id/H/HA/HAARG/"
                            "MooseX-Emulate-Class-Accessor-Fast-"
                            version ".tar.gz"))
        (sha256
@@ -6226,7 +6369,7 @@ fields in Moo-based classes.")
   (source (origin
             (method url-fetch)
             (uri (string-append
-                  "mirror://cpan/authors/id/S/SY/SYOHEX/Mouse-v"
+                  "mirror://cpan/authors/id/S/SK/SKAJI/Mouse-v"
                   version
                   ".tar.gz"))
             (sha256
@@ -6540,7 +6683,7 @@ number exists in a given range, and to be able to manipulate the range.")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "mirror://cpan/authors/id/A/AD/ADAMK/"
+       (uri (string-append "mirror://cpan/authors/id/E/ET/ETHER/"
                            "Object-Signature-" version ".tar.gz"))
        (sha256
         (base32 "12k90c19ly93ib1p6sm3k7sbnr2h5dbywkdmnff2ngm99p4m68c4"))))
@@ -6635,7 +6778,7 @@ one or more modules.")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "mirror://cpan/authors/id/D/DO/DOY/"
+       (uri (string-append "mirror://cpan/authors/id/E/ET/ETHER/"
                            "Package-Stash-" version ".tar.gz"))
        (sha256
         (base32 "0zrs4byhlpq5ybnl0fd3y6pfzair6i2dyvzn7f7a7pgj9n2fi3n5"))))
@@ -6663,7 +6806,7 @@ of that behind a simple API.")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "mirror://cpan/authors/id/D/DO/DOY/"
+       (uri (string-append "mirror://cpan/authors/id/E/ET/ETHER/"
                            "Package-Stash-XS-" version ".tar.gz"))
        (sha256
         (base32 "1akqk10qxwk798qppajqbczwmhy4cs9g0lg961m3vq218slnnryk"))))
@@ -7130,7 +7273,7 @@ of @code{ref}.")
     (build-system perl-build-system)
     (synopsis "Provide commonly requested regular expressions")
     (description
-     "This module exports a single hash (`%RE') that stores or generates
+     "This module exports a single hash (@code{%RE}) that stores or generates
 commonly needed regular expressions.  Patterns currently provided include:
 balanced parentheses and brackets, delimited text (with escapes), integers and
 floating-point numbers in any base (up to 36), comments in 44 languages,
@@ -7539,6 +7682,32 @@ expanding standard C/Unix-style backslash escapes like \n and \t, wrapping and
 removing double-quotes, and truncating to fit within a desired length.")
     (license (package-license perl))))
 
+(define-public perl-string-formatter
+  (package
+    (name "perl-string-formatter")
+    (version "0.102084")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "mirror://cpan/authors/id/R/RJ/RJBS/String-Formatter-"
+             version
+             ".tar.gz"))
+       (sha256
+        (base32
+         "0mlwm0rirv46gj4h072q8gdync5zxxsxy8p028gdyrhczl942dc3"))))
+    (build-system perl-build-system)
+    (propagated-inputs
+     `(("perl-params-util" ,perl-params-util)
+       ("perl-sub-exporter" ,perl-sub-exporter)))
+    (home-page "https://metacpan.org/release/String-Formatter")
+    (synopsis "Build your own sprintf-like functions")
+    (description
+     "@code{String::Formatter} is a tool for building sprintf-like formatting
+routines.  It supports named or positional formatting, custom conversions,
+fixed string interpolation, and simple width-matching.")
+    (license gpl2)))
+
 (define-public perl-string-rewriteprefix
   (package
     (name "perl-string-rewriteprefix")
@@ -7560,6 +7729,28 @@ removing double-quotes, and truncating to fit within a desired length.")
 known prefixes.")
     (license (package-license perl))))
 
+(define-public perl-string-shellquote
+  (package
+    (name "perl-string-shellquote")
+    (version "1.04")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "mirror://cpan/authors/id/R/RO/ROSCH/String-ShellQuote-"
+             version
+             ".tar.gz"))
+       (sha256
+        (base32
+         "0dfxhr6hxc2majkkrm0qbx3qcbykzpphbj2ms93dc86f7183c1p6"))))
+    (build-system perl-build-system)
+    (home-page "https://metacpan.org/release/String-ShellQuote")
+    (synopsis "Quote strings for passing through a shell")
+    (description
+     "@code{shell-quote} lets you pass arbitrary strings through the shell so
+that they won't be changed.")
+    (license (package-license perl))))
+
 (define-public perl-string-print
   (package
     (name "perl-string-print")
@@ -7790,7 +7981,7 @@ support for run-time mix-ins and roles.")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "mirror://cpan/authors/id/S/SZ/SZABGAB/SVG-"
+       (uri (string-append "mirror://cpan/authors/id/M/MA/MANWAR/SVG-"
                            version ".tar.gz"))
        (sha256
         (base32 "1br8dwh2363s6r0qgy7vv30gv5kj456vj5m6x83savx4wzfnsggc"))))
@@ -7893,6 +8084,28 @@ determining their type and clock speed.")
 of a system.")
     (license (package-license perl))))
 
+(define-public perl-sys-syscall
+  (package
+    (name "perl-sys-syscall")
+    (version "0.25")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://cpan/authors/id/B/BR/BRADFITZ/"
+                           "Sys-Syscall-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1r8k4q04dhs191zgdfgiagvbra770hx0bm6x24jsykxn0c6ghi8y"))))
+    (build-system perl-build-system)
+    (home-page "https://metacpan.org/release/Sys-Syscall")
+    (synopsis
+     "Access system calls that Perl doesn't normally provide access to")
+    (description
+     "Sys::Syscall allows one to use epoll and sendfile system calls from
+Perl.  Support is mostly Linux-only for now, but other syscalls/OSes are
+planned for the future.")
+    (license perl-license)))
+
 (define-public perl-task-weaken
   (package
     (name "perl-task-weaken")
@@ -7932,7 +8145,7 @@ error encouraging the user to seek support.")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "mirror://cpan/authors/id/A/AB/ABW/"
+       (uri (string-append "mirror://cpan/authors/id/A/AT/ATOOMIC/"
                            "Template-Toolkit-" version ".tar.gz"))
        (sha256
         (base32
@@ -7971,6 +8184,32 @@ documents: HTML, XML, POD, PostScript, LaTeX, and so on.")
 processing in Perl code.")
     (license (list gpl3 artistic2.0))))
 
+(define-public perl-template-tiny
+  (package
+    (name "perl-template-tiny")
+    (version "1.12")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "mirror://cpan/authors/id/A/AD/ADAMK/Template-Tiny-"
+             version
+             ".tar.gz"))
+       (sha256
+        (base32
+         "0jhadxbc8rzbk2v8qvjrbhnvfp0m56iqar6d4nvxyl8bccn0cgh7"))))
+    (build-system perl-build-system)
+    (home-page "https://metacpan.org/release/Template-Tiny")
+    (synopsis "Template Toolkit reimplemented in as little code as possible")
+    (description
+     "@code{Template::Tiny} is a reimplementation of a subset of the
+functionality from Template Toolkit in as few lines of code as possible.
+
+It is intended for use in light-usage, low-memory, or low-cpu templating
+situations, where you may need to upgrade to the full feature set in the
+future, or if you want the retain the familiarity of TT-style templates.")
+    (license perl-license)))
+
 (define-public perl-term-encoding
   (package
     (name "perl-term-encoding")
@@ -8195,7 +8434,7 @@ text sequences from strings.")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "mirror://cpan/authors/id/M/MA/MAKAMAKA/"
+       (uri (string-append "mirror://cpan/authors/id/I/IS/ISHIGAKI/"
                            "Text-CSV-" version ".tar.gz"))
        (sha256
         (base32 "1llccsl6sr11g9affh43m6q5r85qgnpi9n7idcs1vi9cn4ww0kp7"))))
@@ -8538,6 +8777,28 @@ can also be set to any arbitrary supplied order.  The familiar perl array
 operations can also be performed on the IxHash.")
   (license (package-license perl))))
 
+(define-public perl-tie-handle-offset
+  (package
+    (name "perl-tie-handle-offset")
+    (version "0.004")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "mirror://cpan/authors/id/D/DA/DAGOLDEN/Tie-Handle-Offset-"
+             version
+             ".tar.gz"))
+       (sha256
+        (base32
+         "17m8s8314wi4g0wasdxk15rf12vzsgzmcbr598jam5f6bl2kk7zf"))))
+    (build-system perl-build-system)
+    (home-page "https://metacpan.org/release/Tie-Handle-Offset")
+    (synopsis "Special file handle that hides the beginning of a file")
+    (description
+     "This modules provides a file handle that hides the beginning of a file,
+by modifying the @code{seek()} and @code{tell()} calls.")
+    (license asl2.0)))
+
 (define-public perl-tie-toobject
   (package
     (name "perl-tie-toobject")
@@ -8612,7 +8873,7 @@ duration strings like \"2 minutes\" and \"3 seconds\" to seconds.")
     (source (origin
               (method url-fetch)
               (uri (string-append
-                    "mirror://cpan/authors/id/J/JH/JHI/Time-HiRes-"
+                    "mirror://cpan/authors/id/A/AT/ATOOMIC/Time-HiRes-"
                     version ".tar.gz"))
               (sha256
                (base32
diff --git a/gnu/packages/perl6.scm b/gnu/packages/perl6.scm
index f227786e8d..33c1686088 100644
--- a/gnu/packages/perl6.scm
+++ b/gnu/packages/perl6.scm
@@ -331,11 +331,12 @@ deserializing JSON.")
     (synopsis "Provide simple serialisation/deserialisation of objects to/from JSON")
     (description "This is a simple role that provides methods to instantiate a
 class from a JSON string that (hopefully,) represents it, and to serialise an
-object of the class to a JSON string.  The JSON created from an instance should
-round trip to a new instance with the same values for the @quot{public
-attributes}.  @quot{Private} attributes (that is ones without accessors,) will
-be ignored for both serialisation and de-serialisation.  The exact behaviour
-depends on that of @code{JSON::Marshal} and @code{JSON::Unmarshal} respectively.")
+object of the class to a JSON string.  The JSON created from an instance
+should round trip to a new instance with the same values for the public
+attributes.  Private attributes (that is ones without accessors,) will be
+ignored for both serialisation and de-serialisation.  The exact behaviour
+depends on that of @code{JSON::Marshal} and @code{JSON::Unmarshal}
+respectively.")
     (license license:artistic2.0)))
 
 (define-public perl6-json-fast
@@ -492,13 +493,13 @@ licences therein.")
 specification - the META file data can be read, created, parsed and written in a
 manner that is conformant with the specification.
 
-Where they are known about it also makes allowance for @quot{customary} usage in
+Where they are known about it also makes allowance for customary usage in
 existing software (such as installers and so forth.)
 
-The intent of this is allow the generation and testing of META files for module
-authors, so it can provide meta-information whether the attributes are mandatory
-as per the spec and where known the places that @quot{customary} attributes are
-used.")
+The intent of this is allow the generation and testing of META files for
+module authors, so it can provide meta-information whether the attributes are
+mandatory as per the spec and where known the places that customary attributes
+are used.")
     (license license:artistic2.0)))
 
 (define-public perl6-mime-base64
diff --git a/gnu/packages/photo.scm b/gnu/packages/photo.scm
index f2cabec39a..328eddfbfa 100644
--- a/gnu/packages/photo.scm
+++ b/gnu/packages/photo.scm
@@ -163,14 +163,14 @@ from digital cameras.")
 (define-public gphoto2
   (package
     (name "gphoto2")
-    (version "2.5.17")
+    (version "2.5.20")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://sourceforge/gphoto/gphoto/" version
                                   "/gphoto2-" version ".tar.bz2"))
               (sha256
                (base32
-                "0kslwclyyzvnxjw3gdzhlagj7l5f8lba833ipr9s0s0c4hwi0mxa"))))
+                "1xj80abkzvqrd6g1j1q946lhbp03gyapyxdwbhc0y14g1ash6vx3"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)))
@@ -204,10 +204,13 @@ MTP, and much more.")
     ;; Files are typically under LGPLv2+, but 'COPYING' says GPLv2+.
     (license license:gpl2+)))
 
+;; Note: See <https://metacpan.org/pod/Image::ExifTool> for the latest
+;; release.  The versions at <https://www.sno.phy.queensu.ca/~phil/exiftool/>
+;; are not meant for production use according to the Changes file.
 (define-public perl-image-exiftool
   (package
     (name "perl-image-exiftool")
-    (version "11.31")
+    (version "11.30")
     (source
      (origin
        (method url-fetch)
@@ -218,7 +221,7 @@ MTP, and much more.")
              (string-append "https://www.sno.phy.queensu.ca/~phil/exiftool/"
                             "Image-ExifTool-" version ".tar.gz")))
        (sha256
-        (base32 "1kplb7hvhrhqxkr4ddc44q7a3fs0r8svv2jlh325nwkfi7aa5kz5"))))
+        (base32 "0vkjb2c1a3jdlq8rx1jywx4p3f1bmgjn7rzfwx6dxgij2lx76lrs"))))
     (build-system perl-build-system)
     (arguments
      '(#:phases
@@ -357,7 +360,7 @@ photographic equipment.")
 (define-public darktable
   (package
     (name "darktable")
-    (version "2.6.1")
+    (version "2.6.2")
     (source
      (origin
        (method url-fetch)
@@ -365,7 +368,7 @@ photographic equipment.")
              "https://github.com/darktable-org/darktable/releases/"
              "download/release-" version "/darktable-" version ".tar.xz"))
        (sha256
-        (base32 "09ihbj0602spgc5lfbskf9am38n03gam2r8v3kj4dyfgxqr37ib3"))))
+        (base32 "0igvgyd042j7hm4y8fcm6dc1qqjs4d1r7y6f0pzpa0x416xyzfcw"))))
     (build-system cmake-build-system)
     (arguments
      `(#:tests? #f                      ; there are no tests
@@ -496,28 +499,28 @@ a complete panorama and stitch any series of overlapping pictures.")
 (define-public rawtherapee
   (package
     (name "rawtherapee")
-    (version "5.5")
+    (version "5.6")
     (source (origin
               (method url-fetch)
               (uri (string-append "http://rawtherapee.com/shared/source/"
                                   "rawtherapee-" version ".tar.xz"))
               (sha256
                (base32
-                "1w28a2rnxnw8hs7s8x8zkccgi5z5y653602jg7g86lfx6zxwjsf1"))))
+                "0x0dcfp6f3j08gr11wq5ah4prp790xy4iadbgsm9kgc0jlalpspr"))))
     (build-system cmake-build-system)
     (arguments
-     '(#:tests? #f ; no test suite
+     '(#:tests? #f                      ; no test suite
        #:build-type "release"
        #:configure-flags
        (list (string-append "-DLENSFUNDBDIR="
                             (assoc-ref %build-inputs "lensfun")
                             "/share/lensfun")
-             ; Don't optimize the build for the host machine. See the file
-             ; 'ProcessorTargets.cmake' in the source distribution for more
-             ; information.
+             ;; Don't optimize the build for the host machine. See the file
+             ;; 'ProcessorTargets.cmake' in the source distribution for more
+             ;; information.
              "-DPROC_TARGET_NUMBER=1"
-             ; These flags are recommended by upstream for distributed packages.
-             ; See the file 'RELEASE_NOTES.txt' in the source distribution.
+             ;; These flags are recommended by upstream for distributed packages.
+             ;; See the file 'RELEASE_NOTES.txt' in the source distribution.
              "-O3"
              "-DCACHE_NAME_SUFFIX=\"\"")))
     (native-inputs
@@ -535,6 +538,7 @@ a complete panorama and stitch any series of overlapping pictures.")
        ("libiptcdata" ,libiptcdata)
        ("libjpeg" ,libjpeg)
        ("libpng" ,libpng)
+       ("librsvg" ,librsvg)
        ("libsigc++" ,libsigc++)
        ("libtiff" ,libtiff)
        ("zlib" ,zlib)))
diff --git a/gnu/packages/php.scm b/gnu/packages/php.scm
index 8d96e54c90..45dd2bdd3a 100644
--- a/gnu/packages/php.scm
+++ b/gnu/packages/php.scm
@@ -58,7 +58,7 @@
 (define-public php
   (package
     (name "php")
-    (version "7.3.3")
+    (version "7.3.4")
     (home-page "https://secure.php.net/")
     (source (origin
               (method url-fetch)
@@ -66,7 +66,7 @@
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1cxrpaz5cvx1qq9klwgvcyvcly865sxpn4bdk82wpl43l5wkxc3b"))
+                "10rvj9dn41213w0q2l123rn6sycr29syik88czprhpv5z2hrzrvg"))
               (modules '((guix build utils)))
               (snippet
                '(with-directory-excursion "ext"
@@ -86,7 +86,7 @@
                   #t))))
     (build-system gnu-build-system)
     (arguments
-     '(#:configure-flags
+     `(#:configure-flags
        (let-syntax ((with (syntax-rules ()
                             ((_ option input)
                              (string-append option "="
@@ -182,6 +182,20 @@
              (substitute* "ext/standard/tests/streams/bug60602.phpt"
                (("'ls'") (string-append "'" (which "ls") "'")))
 
+             ,@(if (string-prefix? "arm" (or (%current-system)
+                                             (%current-target-system)))
+                   ;; Drop tests known to fail on armhf.
+                   '((for-each delete-file
+                              (list
+                                "ext/calendar/tests/unixtojd_error1.phpt"
+                                ;; arm can be a lot slower, so a time-related test fails
+                                "ext/fileinfo/tests/cve-2014-3538-nojit.phpt"
+                                "ext/pcre/tests/bug76514.phpt"
+                                "ext/pcre/tests/preg_match_error3.phpt"
+                                "ext/standard/tests/general_functions/var_export-locale.phpt"
+                                "ext/standard/tests/general_functions/var_export_basic1.phpt")))
+                   '())
+
              ;; Drop tests that are known to fail.
              (for-each delete-file
                        '("ext/posix/tests/posix_getgrgid.phpt"    ; Requires /etc/group.
diff --git a/gnu/packages/plotutils.scm b/gnu/packages/plotutils.scm
index 22a62a0f5b..b4ea20e387 100644
--- a/gnu/packages/plotutils.scm
+++ b/gnu/packages/plotutils.scm
@@ -1,7 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2015 Eric Bavier <bavier@member.fsf.org>
-;;; Copyright © 2016, 2017 Nicolas Goaziou <mail@nicolasgoaziou.fr>
+;;; Copyright © 2016, 2017, 2019 Nicolas Goaziou <mail@nicolasgoaziou.fr>
 ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -93,7 +93,16 @@ scientific data.")
                                   "guile-charting-" version ".tar.gz"))
               (sha256
                (base32
-                "0w5qiyv9v0ip5li22x762bm48g8xnw281w66iyw094zdw611pb2m"))))
+                "0w5qiyv9v0ip5li22x762bm48g8xnw281w66iyw094zdw611pb2m"))
+              (modules '((guix build utils)))
+              (snippet
+               '(begin
+                  ;; By default, .go files would be installed to
+                  ;; $libdir/…/ccache instead of $libdir/…/site-ccache.  Fix
+                  ;; that.
+                  (substitute* (find-files "." "^Makefile\\.in$")
+                    (("/ccache") "/site-ccache"))
+                  #t))))
     (build-system gnu-build-system)
     (native-inputs `(("pkg-config" ,pkg-config)))
     (inputs `(("guile" ,guile-2.2)))
@@ -171,21 +180,23 @@ colors, styles, options and details.")
 (define-public asymptote
   (package
     (name "asymptote")
-    (version "2.47")
+    (version "2.49")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://sourceforge/asymptote/"
                                   version "/asymptote-" version ".src.tgz"))
               (sha256
                (base32
-                "0zc24n2vwzxdfmcppqfk3fkqlb4jmvswzi3bz232kxl7dyiyb971"))))
+                "1vljhq68gyc2503l9fj76rk1q4a4db9a1sp3fdfagqqmirnmybp5"))))
     (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
     ;; currently useful.
     (native-inputs
-     `(("gs" ,ghostscript)              ;For tests
-       ("texinfo" ,texinfo)             ;For generating documentation
+     `(("emacs" ,emacs-minimal)
+       ("gs" ,ghostscript)              ;For tests
+       ("perl" ,perl)
+       ("texinfo" ,texinfo)           ;For generating documentation
        ;; For the manual and the tests.
        ("texlive" ,(texlive-union (list texlive-fonts-amsfonts
                                         texlive-latex-amsfonts
@@ -193,15 +204,15 @@ colors, styles, options and details.")
                                         texlive-latex-graphics
                                         texlive-latex-oberdiek ; for ifluatex
                                         texlive-latex-parskip
-                                        texlive-tex-texinfo)))
-       ("emacs" ,emacs-minimal)
-       ("perl" ,perl)))
+                                        texlive-tex-texinfo)))))
     (inputs
      `(("fftw" ,fftw)
        ("freeglut" ,freeglut)
+       ("glew" ,glew)
+       ("glm" ,glm)
        ("gsl" ,gsl)
        ("libgc" ,libgc)
-       ("python" ,python-2)
+       ("python" ,python)
        ("readline" ,readline)
        ("zlib" ,zlib)))
     (arguments
@@ -221,6 +232,23 @@ colors, styles, options and details.")
                             "/share/texmf/tex/context/third"))
        #:phases
        (modify-phases %standard-phases
+         (add-after 'unpack 'fix-build
+           ;; XXX: Build process complains about missing "config.h"
+           ;; and "primitives.h" files.
+           (lambda _
+             (substitute* (find-files "." "\\.in$")
+               (("#include <primitives.h>") "#include \"primitives.h\""))
+             (invoke "touch" "prc/config.h")))
+         (add-after 'unpack 'move-info-location
+           ;; Build process install info file in the unusual
+           ;; "%out/share/info/asymptote/" location.  Move it to
+           ;; "%out/share/info/" so it appears in the top-level directory.
+           (lambda _
+             (substitute* "doc/png/Makefile.in"
+               (("(\\$\\(infodir\\))/asymptote" _ infodir) infodir))
+             (substitute* "doc/asymptote.texi"
+               (("asymptote/asymptote") "asymptote"))
+             #t))
          (add-before 'build 'patch-pdf-viewer
            (lambda _
              ;; Default to a free pdf viewer.
@@ -233,12 +261,6 @@ colors, styles, options and details.")
            ;; "failed to create directory /homeless-shelter/.asy" error.
            (lambda _
              (setenv "HOME" "/tmp")
-             ;; The "gs" test fails, complaining about an incompatible
-             ;; Ghostscript version.  Not sure what's going on...  Is this
-             ;; because I've just replaced texlive with texlive-union?
-             (substitute* "tests/Makefile"
-               (("^(TESTDIRS =.*) gs(.*)" begin end)
-                (string-append begin " " end)))
              #t))
          (add-after 'install 'install-Emacs-data
            (lambda* (#:key outputs #:allow-other-keys)
diff --git a/gnu/packages/poedit.scm b/gnu/packages/poedit.scm
new file mode 100644
index 0000000000..0b21a9eea7
--- /dev/null
+++ b/gnu/packages/poedit.scm
@@ -0,0 +1,80 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2019 Julien Lepiller <julien@lepiller.eu>
+;;;
+;;; 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 poedit)
+  #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (gnu packages)
+  #:use-module (guix packages)
+  #:use-module (guix git-download)
+  #:use-module (guix utils)
+  #:use-module (guix build-system gnu)
+  #:use-module (gnu packages autotools)
+  #:use-module (gnu packages boost)
+  #:use-module (gnu packages enchant)
+  #:use-module (gnu packages gettext)
+  #:use-module (gnu packages gtk)
+  #:use-module (gnu packages icu4c)
+  #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages rdf)
+  #:use-module (gnu packages wxwidgets)
+  #:use-module (gnu packages xml))
+
+(define-public poedit
+  (package
+    (name "poedit")
+    (version "2.2.1")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                     (url "https://github.com/vslavik/poedit")
+                     (commit (string-append "v" version "-oss"))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1fxzmry4b23l90j03jdyvd4jprdpy4xcnhw7xrmmfnlbh2abf9x7"))
+             (modules '((guix build utils)))
+             (snippet
+              '(begin
+                 (delete-file-recursively "deps")
+                 #t))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:configure-flags
+       (list (string-append "--with-boost-libdir="
+                            (assoc-ref %build-inputs "boost")
+                            "/lib"))))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("gettext-minimal" ,gettext-minimal)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("boost" ,boost)
+       ("enchant" ,enchant)
+       ("gtk+" ,gtk+)
+       ("gtkspell3" ,gtkspell3)
+       ("icu4c" ,icu4c)
+       ("lucene++" ,lucene++)
+       ("pugixml" ,pugixml)
+       ("wxwidgets" ,wxwidgets)))
+    (home-page "https://poedit.net/")
+    (synopsis "Gettext catalog editing tool")
+    (description "Poedit is a GUI frontend to the GNU gettext utilities and
+a catalog editor/source code parser.  It helps with translating applications
+into other languages.")
+    (license license:expat)))
diff --git a/gnu/packages/polkit.scm b/gnu/packages/polkit.scm
index ba74a5c905..ccb8ebf8f8 100644
--- a/gnu/packages/polkit.scm
+++ b/gnu/packages/polkit.scm
@@ -34,6 +34,7 @@
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages gnuzilla)
   #:use-module (gnu packages linux)
+  #:use-module (gnu packages nss)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages qt)
diff --git a/gnu/packages/pretty-print.scm b/gnu/packages/pretty-print.scm
index 34793db58b..405ad08ba4 100644
--- a/gnu/packages/pretty-print.scm
+++ b/gnu/packages/pretty-print.scm
@@ -3,7 +3,8 @@
 ;;; 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 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2019 Meiyo Peng <meiyo@riseup.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -162,7 +163,7 @@ different programming languages.")
 (define-public fmt
   (package
     (name "fmt")
-    (version "4.1.0")
+    (version "5.3.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -170,14 +171,10 @@ different programming languages.")
                     version "/fmt-" version ".zip"))
               (sha256
                (base32
-                "1swyqw3dn2vx5sw2yh5vk0vrvrkp7fv07cj4272yxl5rrq1byjcx"))))
+                "0p51nhmvjniqlffmmb9djhprnclvm448f2vkdxymvxw307hl21sc"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("unzip" ,unzip)))
-    (arguments
-     `(#:configure-flags
-       (list (string-append "-DCMAKE_INSTALL_LIBDIR="
-                            (assoc-ref %outputs "out") "/lib"))))
     (home-page "http://fmtlib.net/")
     (synopsis "Small and fast C++ formatting library")
     (description
@@ -244,14 +241,14 @@ seen in a terminal.")
 (define-public highlight
   (package
     (name "highlight")
-    (version "3.49")
+    (version "3.50")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "http://www.andre-simon.de/zip/highlight-"
                            version ".tar.bz2"))
        (sha256
-        (base32 "1zlhmlq5fnsxxmm04qfchhl4w2iw5fa6sn81c34q6k2m1m77g6aj"))))
+        (base32 "0frcq12zy3dqfhwwzylm10ydp7zp51w9jlijm23zvx09daslg1bl"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f                      ; no tests
diff --git a/gnu/packages/printers.scm b/gnu/packages/printers.scm
index dff9ed3010..2d608bf3cb 100644
--- a/gnu/packages/printers.scm
+++ b/gnu/packages/printers.scm
@@ -1,6 +1,7 @@
 ;;; 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.
 ;;;
@@ -20,9 +21,13 @@
 (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))
 
@@ -68,3 +73,54 @@
 with Graphtec and Sihouette plotting cutters using an SVG file as its input.")
     (home-page "http://robocut.org")
     (license license:gpl3+)))
+
+(define-public brlaser
+  (let ((commit "779f71e80fcc583f4537c844de141cf8e6a738fe")
+        (revision "1"))
+    (package
+      (name "brlaser")
+      (version (git-version "4" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/pdewacht/brlaser.git")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "0yrz9706660hdfi2y0ndp254r0vw9y665hwmxbbzfnz4ai13vj50"))))
+      (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
+@item Brother DCP-7030
+@item Brother DCP-7040
+@item Brother DCP-7055
+@item Brother DCP-7055W
+@item Brother DCP-7065DN
+@item Brother DCP-7080
+@item Brother HL-1200 series
+@item Brother HL-L2320D series
+@item Brother HL-L2360D series
+@item Brother MFC-7240
+@item Brother MFC-7360N
+@end enumerate
+
+It partially works with printers from the Brother HL-L2300D series.")
+      (license license:gpl2+))))
diff --git a/gnu/packages/protobuf.scm b/gnu/packages/protobuf.scm
index 73169216b4..b30461e153 100644
--- a/gnu/packages/protobuf.scm
+++ b/gnu/packages/protobuf.scm
@@ -2,7 +2,7 @@
 ;;; Copyright © 2014 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2016 Daniel Pimentel <d4n1@d4n1.org>
 ;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
-;;; Copyright © 2017, 2018 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2017, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -27,6 +27,7 @@
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system python)
+  #:use-module (guix build-system emacs)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages gcc)
@@ -208,3 +209,33 @@ mechanism for serializing structured data.")
 
 (define-public python2-protobuf
   (package-with-python2 python-protobuf))
+
+(define-public python-protobuf-next
+  (package (inherit python-protobuf)
+    (name "python-protobuf")
+    (version (package-version protobuf-next) )
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "protobuf" version))
+       (sha256
+        (base32
+         "04bqb12smlckzmgkj6vgmpbr3cby0n6726cmz33bqr7kn1vb728l"))))))
+
+(define-public emacs-protobuf-mode
+  (package
+    (name "emacs-protobuf-mode")
+    (version (package-version protobuf))
+    (source (package-source protobuf))
+    (build-system emacs-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-before 'set-emacs-load-path 'change-working-directory
+           (lambda _ (chdir "editors") #t)))))
+    (home-page "https://github.com/protocolbuffers/protobuf")
+    (synopsis "Protocol buffers major mode for Emacs")
+    (description
+     "This package provides an Emacs major mode for editing Protocol Buffer
+source files.")
+    (license license:bsd-3)))
diff --git a/gnu/packages/python-crypto.scm b/gnu/packages/python-crypto.scm
index 08f1e4d399..6248be0c9b 100644
--- a/gnu/packages/python-crypto.scm
+++ b/gnu/packages/python-crypto.scm
@@ -336,13 +336,13 @@ password storage.")
 (define-public python-certifi
   (package
     (name "python-certifi")
-    (version "2018.11.29")
+    (version "2019.3.9")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "certifi" version))
               (sha256
                (base32
-                "1dvccavd2fzq4j37w0sznylp92ps14zi6gvlxzm23in0yhzciya7"))))
+                "1bnpw7hrf9i1l9gfxjnzi45hkrvzz0pyn9ia8m4mw7sxhgb08qdj"))))
     (build-system python-build-system)
     (home-page "https://certifi.io/")
     (synopsis "Python CA certificate bundle")
@@ -970,14 +970,14 @@ derivation function.")
 (define-public python-service-identity
   (package
     (name "python-service-identity")
-    (version "17.0.0")
+    (version "18.1.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "service_identity" version))
        (sha256
         (base32
-         "1aq24cn3nnsjr9g797dayhx4g653h6bd41ksqhidzq0rvarzn0a0"))))
+         "0b9f5qiqjy8ralzgwjgkhx82h6h8sa7532psmb8mkd65md5aan08"))))
     (build-system python-build-system)
     (propagated-inputs
      `(("python-attrs" ,python-attrs)
diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm
index fa634c2ecd..1c9ccefa6b 100644
--- a/gnu/packages/python-web.scm
+++ b/gnu/packages/python-web.scm
@@ -2959,14 +2959,14 @@ ecosystem.")
 (define-public python-hyperlink
   (package
     (name "python-hyperlink")
-    (version "18.0.0")
+    (version "19.0.0")
     (source
       (origin
         (method url-fetch)
         (uri (pypi-uri "hyperlink" version))
         (sha256
          (base32
-          "01m3y19arfqljksngy8grc966zdb4larysralb8cajzi8kvly6zh"))))
+          "0m2nhi0j8wmgfscf974wd5v1xfq8mah286hil6npy1ys0m3y7222"))))
     (build-system python-build-system)
     (propagated-inputs
      `(("python-idna" ,python-idna)))
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 71727ad1da..e6d84932a6 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -51,7 +51,7 @@
 ;;; 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 Nicolas Goaziou <mail@nicolasgoaziou.fr>
+;;; Copyright © 2018, 2019 Nicolas Goaziou <mail@nicolasgoaziou.fr>
 ;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
 ;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org>
 ;;; Copyright © 2018, 2019 Maxim Cournoyer <maxim.cournoyer@gmail.com>
@@ -483,6 +483,8 @@ concepts.")
        (modify-phases %standard-phases
          (replace 'check
            (lambda _
+             ;; XXX: A Python 2 test fails when HOME=/homeless-shelter.
+             (setenv "HOME" "/tmp")
              (invoke "python" "sh.py" "test"))))))
     (native-inputs
      `(("python-coverage" ,python-coverage)))
@@ -622,24 +624,27 @@ version identifier.")
 (define-public python-serpent
   (package
     (name "python-serpent")
-    (version "1.27")
+    (version "1.28")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "serpent" version))
        (sha256
-        (base32
-         "04p9dsrm5pv8vhk3flvih55kgvlzpi38hlaykdiakddmgwqw93bg"))))
+        (base32 "1arnckykpkvv2qrp49l1k7q5mr5pisswl0rvdx98x8wsl1n361pk"))))
     (build-system python-build-system)
+    (native-inputs
+     `(("python-attrs" ,python-attrs)
+       ("python-pytz" ,python-pytz)))
     (home-page "https://github.com/irmen/Serpent")
     (synopsis "Serializer for literal Python expressions")
     (description
-     "Serpent provides ast.literal_eval() compatible object tree
-serialization.  It serializes an object tree into bytes (utf-8 encoded string)
-that can be decoded and then passed as-is to ast.literal_eval() to rebuild it
-as the original object tree.  As such it is safe to send serpent data to other
-machines over the network for instance (because only safe literals are
-encoded).")
+     "Serpent provides @code{ast.literal_eval()}-compatible object tree
+serialization.  It serializes an object tree into bytes (an utf-8 encoded
+string) that can be decoded and then passed as-is to @code{ast.literal_eval()}
+to rebuild the original object tree.
+
+Because only safe literals are encoded, it is safe to send serpent data to
+other machines, such as over the network.")
     (license license:expat)))
 
 (define-public python-setuptools
@@ -896,7 +901,7 @@ of @code{xmlfile}.")
 (define-public python-openpyxl
   (package
     (name "python-openpyxl")
-    (version "2.6.0")
+    (version "2.6.2")
     (source
      (origin
        ;; We use the upstream repository, as the tests are not included in the
@@ -907,8 +912,7 @@ of @code{xmlfile}.")
              (changeset version)))
        (file-name (string-append name "-" version "-checkout"))
        (sha256
-        (base32
-         "1x47ngn7ybaqdbvg90c8h2x0j6yfdfj25gjfinp2w5rf62gsany7"))))
+        (base32 "1qhij6kcvdxqjy4g6193nsv4q7fy8n4fwyd3c2z047idlm6s3j4w"))))
     (build-system python-build-system)
     (arguments
      `(#:phases (modify-phases %standard-phases
@@ -1729,6 +1733,37 @@ from git information.
 (define-public python2-pbr
   (package-with-python2 python-pbr))
 
+(define-public python-pyrsistent
+  (package
+    (name "python-pyrsistent")
+    (version "0.14.11")
+    (home-page "https://github.com/tobgu/pyrsistent")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "pyrsistent" version))
+              (sha256
+               (base32
+                "1qkh74bm296mp5g3r11lgsksr6bh4w1bf8pji4nmxdlfj542ga1w"))))
+    (build-system python-build-system)
+    (native-inputs
+     `(("python-hypothesis" ,python-hypothesis)
+       ("python-pytest" ,python-pytest)
+       ("python-pytest-runner" ,python-pytest-runner)))
+    (propagated-inputs
+     `(("python-six" ,python-six)))
+    (synopsis "Persistent data structures for Python")
+    (description
+     "Pyrsistent is a number of persistent collections (by some referred to as
+functional data structures).  Persistent in the sense that they are immutable.
+
+All methods on a data structure that would normally mutate it instead return a
+new copy of the structure containing the requested updates.  The original
+structure is left untouched.")
+    (license license:expat)))
+
+(define-public python2-pyrsistent
+  (package-with-python2 python-pyrsistent))
+
 (define-public python-exif-read
   (package
     (name "python-exif-read")
@@ -1899,21 +1934,28 @@ between Julian dates and Gregorian dates.")
 (define-public python-jsonschema
   (package
     (name "python-jsonschema")
-    (version "2.6.0")
+    (version "3.0.1")
     (source (origin
              (method url-fetch)
              (uri (pypi-uri "jsonschema" version))
              (sha256
               (base32
-               "00kf3zmpp9ya4sydffpifn0j0mzm342a2vzh82p6r0vh10cg7xbg"))))
+               "03g20i1xfg4qdlk4475pl4pp7y0h37g1fbgs5qhy678q9xb822hc"))))
     (build-system python-build-system)
     (arguments
      '(#:phases
        (modify-phases %standard-phases
-         (replace 'check (lambda _ (invoke "nosetests"))))))
+         (replace 'check
+           (lambda _
+             (setenv "PYTHONPATH" (string-append ".:" (getenv "PYTHONPATH")))
+             (invoke "trial" "jsonschema"))))))
     (native-inputs
-     `(("python-nose" ,python-nose)
-       ("python-vcversioner" ,python-vcversioner)))
+     `(("python-setuptools_scm" ,python-setuptools-scm)
+       ("python-twisted" ,python-twisted)))
+    (propagated-inputs
+     `(("python-attrs" ,python-attrs)
+       ("python-pyrsistent" ,python-pyrsistent)
+       ("python-six" ,python-six)))
     (home-page "https://github.com/Julian/jsonschema")
     (synopsis "Implementation of JSON Schema for Python")
     (description
@@ -1925,11 +1967,9 @@ between Julian dates and Gregorian dates.")
   (let ((jsonschema (package-with-python2
                      (strip-python2-variant python-jsonschema))))
     (package (inherit jsonschema)
-             (native-inputs
-              `(("python2-mock" ,python2-mock)
-                ,@(package-native-inputs jsonschema)))
              (propagated-inputs
-              `(("python2-functools32" ,python2-functools32))))))
+              `(("python2-functools32" ,python2-functools32)
+                ,@(package-propagated-inputs jsonschema))))))
 
 (define-public python-schema
   (package
@@ -2638,6 +2678,292 @@ and several other projects.")
 (define-public python2-guzzle-sphinx-theme
   (package-with-python2 python-guzzle-sphinx-theme))
 
+(define-public python-bumpversion
+  (package
+    (name "python-bumpversion")
+    (version "0.5.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "bumpversion" version))
+       (sha256
+        (base32
+         "0zn7694yfipxg35ikkfh7kvgl2fissha3dnqad2c5bvsvmrwhi37"))))
+    (build-system python-build-system)
+    (home-page "https://github.com/peritus/bumpversion")
+    (synopsis "Tool to bump software version")
+    (description "This tool provides a command-line interface (CLI) to bump a
+software version simply.")
+    (license license:expat)))
+
+(define-public python-deprecated
+  (package
+    (name "python-deprecated")
+    (version "1.2.5")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/tantale/deprecated.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "14909glxxwwc4b9qpz2b9jdriwzi5n65ichw85xqppap5f79wcwz"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases (modify-phases %standard-phases
+                  (replace 'check
+                    (lambda _
+                      (invoke "pytest"))))))
+    (propagated-inputs
+     `(("python-wrapt" ,python-wrapt)))
+    (native-inputs
+     `(("python-bumpversion" ,python-bumpversion)
+       ("python-pytest" ,python-pytest)
+       ("python-pytest-cov" ,python-pytest-cov)
+       ("python-sphinx" ,python-sphinx)
+       ("python-tox" ,python-tox)))
+    (home-page "https://github.com/tantale/deprecated")
+    (synopsis "Python decorator to deprecate classes, functions or methods")
+    (description "The @code{deprecated} decorator provides a convenient way to deprecate
+to deprecate classes, functions or methods.")
+    (license license:expat)))
+
+(define-public python-pygithub
+  (package
+    (name "python-pygithub")
+    (version "1.43.7")
+    (source
+     ;; We fetch from the Git repo because there are no tests in the PyPI
+     ;; archive.
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/PyGithub/PyGithub.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "0ww92zz0ja9w6rw83vphmn8rwmcn6abg16j4q7zxjc0rrg2cfj9i"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases (modify-phases %standard-phases
+                  ;; Some tests rely on the network.
+                  (add-after 'unpack 'disable-failing-tests
+                    (lambda _
+                      (substitute* "tests/Issue142.py"
+                        (("testDecodeJson") "disabled_testDecodeJson"))
+                      #t))
+                  (add-before 'check 'prepare-for-tests
+                    (lambda _
+                      (for-each (lambda (f)
+                                  (chmod f #o666))
+                                (find-files "./tests"))
+                      (system* "python" "-m" "lib2to3" "-w" "-n" "tests")
+                      (setenv "PYTHONPATH"
+                              (string-append "./tests:" (getenv "PYTHONPATH")))
+                      #t)))))
+    (propagated-inputs
+     `(("python-deprecated" ,python-deprecated)
+       ("python-pyjwt" ,python-pyjwt)
+       ("python-requests" ,python-requests)))
+    (native-inputs `(("python-httpretty" ,python-httpretty)))
+    (home-page "https://pygithub.readthedocs.io/en/latest/")
+    (synopsis "Python library for the GitHub API")
+    (description "This library allows managing GitHub resources such as
+repositories, user profiles, and organizations in your Python applications,
+using version 3 of the GitHub application programming interface (API).")
+    (license license:lgpl3+)))
+
+(define-public python-rellu
+  (package
+    (name "python-rellu")
+    (version "0.7")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "rellu" version))
+       (sha256
+        (base32
+         "1w0arpj1sm7vh29nrbnca4pnp8sx42l07r17inwqcjjf9bhng66x"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     `(("python-invoke" ,python-invoke)
+       ("python-pygithub" ,python-pygithub)))
+    (home-page "https://github.com/robotframework/rellu")
+    (synopsis "Utilities to create PyPI releases")
+    (description "This collection of utilities contains tooling and templates
+to assist in creating releases on GitHub and publishing them on PyPI.  It is
+designed to be used by Robot Framework and tools and libraries in its
+ecosystem, but can naturally be used also by other projects.")
+    (license license:asl2.0)))
+
+(define-public python-robotframework
+  (package
+    (name "python-robotframework")
+    (version "3.1.1")
+    ;; There are no tests in the PyPI archive.
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/robotframework/robotframework.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "1aaiamc9l35m5sf7xl2qc5q9308v7sz3p1qgzcslsjxzddphyn4v"))
+       (patches (search-patches
+                 "python-robotframework-honor-source-date-epoch.patch"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases (modify-phases %standard-phases
+                  (add-before 'build 'build-and-install-doc
+                    (lambda* (#:key outputs #:allow-other-keys)
+                      (let* ((doc-output (assoc-ref outputs "doc"))
+                             (doc (string-append doc-output "/share/"
+                                                 ,name "-" ,version "/")))
+                        (invoke "invoke" "library-docs" "all")
+                        (mkdir-p doc)
+                        (copy-recursively "doc/libraries"
+                                          (string-append doc "/libraries"))
+                        #t)))
+                  (replace 'check
+                    (lambda _
+                      (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
+    (outputs '("out" "doc"))
+    (home-page "https://robotframework.org")
+    (synopsis "Generic automation framework")
+    (description "Robot Framework is a generic automation framework for
+acceptance testing, acceptance test driven development (ATDD), and robotic
+process automation (RPA).")
+    (license license:asl2.0)))
+
+(define-public python-robotframework-lint
+  ;; There is no properly tagged release; the commit below seems to correspond
+  ;; to the 0.9 stable release available from PyPI.  The tests are not
+  ;; included in the PyPI archive, so we fetch the sources from the upstream
+  ;; Git repo.
+  (let ((commit "e851879bab1f63e4e53b34a4dc8a67ed95102830")
+        (revision "1"))
+    (package
+      (name "python-robotframework-lint")
+      (version (git-version "0.9.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/boakley/robotframework-lint.git")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "1p6fknqg5sb9qz5857ji4a877657vgfjm5v3zn45994parx6ml1m"))))
+      (build-system python-build-system)
+      (arguments
+       `(#:phases
+         (modify-phases %standard-phases
+           (replace 'check
+             (lambda _
+               (invoke "python" "-m" "robot" "-A"
+                       "tests/conf/default.args" "tests"))))))
+      (propagated-inputs
+       `(("python-robotframework" ,python-robotframework)))
+      (home-page "https://github.com/boakley/robotframework-lint/")
+      (synopsis "Static analysis tool (linter) for Robot Framework")
+      (description "This package provides the @code{rflint} command-line
+utility, a static analysis tool (linter) for Robot Framework source files.")
+      (license license:asl2.0))))
+
+(define-public python-robotframework-sshlibrary
+  (package
+    (name "python-robotframework-sshlibrary")
+    (version "3.3.0")
+    ;; There are no tests in the PyPI archive.
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/robotframework/SSHLibrary.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "1mk6dz2jqqndbx4yji09012q6rmadnqdywi7czvj62b0s07dr3r2"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-before 'build 'build-and-install-doc
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((doc-output (assoc-ref outputs "doc"))
+                    (doc (string-append doc-output "/share/"
+                                        ,name "-" ,version "/")))
+               (invoke "chmod" "-R" "+w" "docs")
+               (invoke "invoke" "kw-docs" "project-docs")
+               (mkdir-p doc)
+               (for-each delete-file (find-files "docs" "\\.rst"))
+               (copy-recursively "docs" doc)
+               #t)))
+         (replace 'check
+           (lambda _
+             ;; Some tests require an SSH server; we remove them.
+             (delete-file "utest/test_client_api.py")
+             (delete-file "utest/test_scp.py")
+             (invoke "python" "utest/run.py"))))))
+    (propagated-inputs
+     `(("python-robotframework" ,python-robotframework)
+       ("python-paramiko" ,python-paramiko)
+       ("python-scp" ,python-scp)))
+    (native-inputs
+     `(("openssh" ,openssh)
+       ("which" ,which)
+       ;; To generate the documentation
+       ("python-docutils" ,python-docutils)
+       ("python-invoke" ,python-invoke)
+       ("python-pygments" ,python-pygments)
+       ("python-rellu" ,python-rellu)))
+    (outputs '("out" "doc"))
+    (home-page "https://github.com/robotframework/SSHLibrary")
+    (synopsis "Robot Framework library for SSH and SFTP")
+    (description "SSHLibrary is a Robot Framework library providing support
+for SSH and SFTP.  It has the following main usages:
+@itemize @bullet
+@item Executing commands on the remote machine, either blocking or non-blocking.
+@item Writing and reading in an interactive shell.
+@item Transferring files and directories over SFTP.
+@item Ensuring that files and directories exist on the remote machine.
+@end itemize")
+    (license license:asl2.0)))
+
+(define-public python-scp
+  (package
+    (name "python-scp")
+    (version "0.13.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "scp" version))
+       (sha256
+        (base32
+         "1crlpw9lnn58fs1c1rmh7s7s9y5gkgpgjsqlvg9qa51kq1knx7gg"))))
+    (build-system python-build-system)
+    (arguments
+     '(#:tests? #f))                     ;tests require an SSH server
+    (propagated-inputs
+     `(("python-paramiko" ,python-paramiko)))
+    (home-page "https://github.com/jbardin/scp.py")
+    (synopsis "SCP protocol module for Python and Paramiko")
+    (description "The scp module extends the Paramiko library to send and
+receive files via the SCP1 protocol, as implemented by the OpenSSH
+@command{scp} program.")
+    (license license:gpl2+)))
+
 (define-public python-rst.linker
   (package
     (name "python-rst.linker")
@@ -2772,14 +3098,14 @@ Server (PLS).")
 (define-public python-language-server
   (package
     (name "python-language-server")
-    (version "0.25.0")
+    (version "0.26.1")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "python-language-server" version))
        (sha256
         (base32
-         "1xabnaqd4n72myrc3mxl2y33vr2p7c9c5a87n77p9k327ckvdx01"))))
+         "1vs9ckfmm534n1hq3m871916wsjvi5h4gyj6wlzg13ck6506lx0s"))))
     (build-system python-build-system)
     (propagated-inputs
      `(("python-pluggy" ,python-pluggy)
@@ -3356,24 +3682,16 @@ color scales, and color space conversion easy.  It has support for:
 (define-public python-pygit2
   (package
     (name "python-pygit2")
-    (version "0.27.4")
+    (version "0.28.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "pygit2" version))
        (sha256
-        (base32
-         "15c1mhwwjc7nr8hn5gm21hcfhw61jmwb0vngpjhlm3y5565wg2pz"))))
+        (base32 "0lngsaz029d4fjcwhl17pr59nh9gwl6hwfin36nph60fgsmfdg3d"))))
     (build-system python-build-system)
     (arguments
-     '(#:tests? #f; tests don't run correctly in our environment
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'fix-dependency-versioning
-           (lambda _
-             (substitute* "setup.py"
-               (("<") "<="))
-             #t)))))
+     '(#:tests? #f))            ; tests don't run correctly in our environment
     (propagated-inputs
      `(("python-six" ,python-six)
        ("python-cffi" ,python-cffi)
@@ -4460,13 +4778,13 @@ memoizing PEG/Packrat parser in Python.")
     (version "0.13.0")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append
-             "https://github.com/pygridtools/gridmap/archive/v"
-             version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/pygridtools/gridmap.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
        (sha256
-        (base32 "1gzjg2k6f14i1msm2b0ax8d9ds1hvk6qd5nlaivg8m4cxqp4cp1x"))))
+        (base32 "1478lbwsr1w24cii2x01m2910fvh8r43ghnb78nc972a96hqiknm"))))
     (build-system python-build-system)
     (arguments
      '(#:tests? #f)) ; FIXME: Requires python-cherrypy.
@@ -4491,13 +4809,13 @@ cluster without needing to write any wrapper code yourself.")
     (version "1.0.1")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append
-             "https://github.com/nickstenning/honcho/archive/v"
-             version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/nickstenning/honcho.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
        (sha256
-        (base32 "0zizn61n5z5hq421hkypk9pw8s6fpxw30f4hsg7k4ivwzy3gjw9j"))))
+        (base32 "11bd87474qpif20xdcn0ra1idj5k16ka51i658wfpxwc6nzsn92b"))))
     (build-system python-build-system)
     (native-inputs
      `(("python-pytest" ,python-pytest)
@@ -5648,7 +5966,7 @@ It is written entirely in Python.")
     (synopsis "Backport of additions to the 'collections.abc' module")
     (description
      "Python-backports-abc provides a backport of additions to the
-'collections.abc' module in Python-3.5.")
+@code{collections.abc} module in Python-3.5.")
     (license license:psfl)))
 
 (define-public python2-backports-abc
@@ -6038,14 +6356,14 @@ Python.")
 (define-public python-markdown
   (package
     (name "python-markdown")
-    (version "3.0.1")
+    (version "3.1")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "Markdown" version))
        (sha256
         (base32
-         "0z6v8649sr434d5r5zmrhydka7v7f9yas4bwcgkcs0650jdhybnh"))))
+         "0l62x154r9mgdvfap06gf0nkrmjd7xixlfshsxcdif2nlrlnyjpw"))))
     (build-system python-build-system)
     (native-inputs
      `(("python-nose" ,python-nose)
@@ -6616,14 +6934,14 @@ versions of Python.")
 (define-public python-idna
   (package
     (name "python-idna")
-    (version "2.7")
+    (version "2.8")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "idna" version))
        (sha256
         (base32
-         "05jam7d31767dr12x0rbvvs8lxnpb1mhdb2zdlfxgh83z6k3hjk8"))))
+         "01rlkigdxg17sf9yar1jl8n18ls59367wqh59hnawlyg53vb6my3"))))
     (build-system python-build-system)
     (home-page "https://github.com/kjd/idna")
     (synopsis "Internationalized domain names in applications")
@@ -6713,14 +7031,15 @@ Python Package Index (PyPI).")
     (name "python-tlsh")
     (version "3.4.5")
     (home-page "https://github.com/trendmicro/tlsh")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://github.com/trendmicro/tlsh/archive/v"
-                                  version ".tar.gz"))
-              (sha256
-               (base32
-                "1x1vahd4zg5kpyr9h9hs3fvh460p25rjy4cclwdnbbw8x3vc30q3"))
-              (file-name (string-append name "-" version ".tar.gz"))))
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/trendmicro/tlsh.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1ydliir308xn4ywy705mmsh7863ldlixdvpqwdhbipzq9vfpmvll"))))
     (build-system cmake-build-system)
     (arguments
      '(#:out-of-source? #f
@@ -6838,7 +7157,9 @@ Python's @code{ctypes} foreign function interface (FFI).")
                            (string-append "'" file "/lib/libmagic.so'")))
                         #t))))))
     (inputs `(("file" ,file)))
-    (self-native-input? #f)
+    (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
@@ -9354,23 +9675,19 @@ format.")
 (define-public python-twisted
   (package
     (name "python-twisted")
-    (version "17.5.0")
+    (version "19.2.0")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "Twisted" version ".tar.bz2"))
               (sha256
                (base32
-                "1sh2h23nnizcdyrl2rn7zxijglikxwz7z7grqpvq496zy2aa967i"))))
+                "1gmb8d57s13d8znvqnxi47vqzqz141z443dbxg9wjkp8ia9f220p"))))
     (build-system python-build-system)
     (arguments
      '(#:tests? #f)) ; FIXME: Some tests are failing.
-       ;; #:phases
-       ;; (modify-phases %standard-phases
-       ;;   (replace 'check
-       ;;     (lambda _
-       ;;       (zero? (system* "./bin/trial" "twisted")))))
     (propagated-inputs
      `(("python-zope-interface" ,python-zope-interface)
+       ("python-pyhamcrest" ,python-pyhamcrest)
        ("python-incremental" ,python-incremental)
        ("python-hyperlink" ,python-hyperlink)
        ("python-constantly" ,python-constantly)
@@ -10204,20 +10521,21 @@ discovery, monitoring and configuration.")
     (name "python-schematics")
     (version "1.1.1")
     (source
-      (origin
-        (method url-fetch)
-        (uri (string-append
-               "https://github.com/schematics/schematics/archive/v" version ".tar.gz"))
-        (file-name (string-append name "-" version ".tar.gz"))
-        (sha256
-         (base32
-          "19v1i69bf3bzarfxmbv0v6ivpcn758x3shvbiy9l2hy0lvqwnp6l"))))
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/schematics/schematics.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0xdqskycznqc7mfp60bhw1zq8wx7yx1dvmbq3brnm1dx3xnqa0zd"))))
     (build-system python-build-system)
     (propagated-inputs
      `(("python-six" ,python-six)))
     (arguments
-     `(#:tests? #f)) ; requires a bunch of not very nice packages with fixed
-                     ; version requirements (eg python-coveralls)
+     ;; The tests require a bunch of not very nice packages with fixed
+     ;; version requirements (e.g. python-coveralls).
+     `(#:tests? #f))
     (home-page "https://github.com/schematics/schematics")
     (synopsis "Python Data Structures for Humans")
     (description "Python Data Structures for Humans.")
@@ -10307,12 +10625,12 @@ Python to manipulate OpenDocument 1.2 files.")
     (description
      "Natsort lets you apply natural sorting on lists instead of
 lexicographical.  If you use the built-in @code{sorted} method in python
-on a list such as @code{['a20', 'a9', 'a1', 'a4', 'a10']}, it would be
-returned as @code{['a1', 'a10', 'a20', 'a4', 'a9']}.  Natsort provides a
-function @code{natsorted} that identifies numbers and sorts them separately
-from strings.  It can also sort version numbers, real numbers, mixed types
-and more, and comes with a shell command @command{natsort} that exposes this
-functionality in the command line.")
+on a list such as @code{[@code{a20}, @code{a9}, @code{a1}, @code{a4},
+@code{a10}]}, it would be returned as @code{[@code{a1}, @code{a10}, @code{a20},
+@code{a4}, @code{a9}]}.  Natsort provides a function @code{natsorted} that
+identifies numbers and sorts them separately from strings.  It can also sort
+version numbers, real numbers, mixed types and more, and comes with a shell
+command @command{natsort} that exposes this functionality in the command line.")
     (license license:expat)
     (properties `((python2-variant . ,(delay python2-natsort))))))
 
@@ -10804,16 +11122,17 @@ network.")
 (define-public python-xopen
   (package
     (name "python-xopen")
-    (version "0.3.3")
+    (version "0.5.0")
     (source
       (origin
         (method url-fetch)
         (uri (pypi-uri "xopen" version))
         (sha256
           (base32
-           "1a0wbil552wsmklwd89ssmgz3pjd86qa9i7jh8wqb9wslc8a2qjr"))
-        (file-name (string-append name "-" version ".tar.gz"))))
+           "17xbrgi23l87yg6h0qcknssp2q812miiy33qw6v45v5gx0jwv5xh"))))
     (build-system python-build-system)
+    (propagated-inputs
+     `(("python-setuptools-scm" ,python-setuptools-scm)))
     (home-page "https://github.com/marcelm/xopen/")
     (synopsis "Open compressed files transparently")
     (description "This module provides an @code{xopen} function that works like
@@ -11265,13 +11584,13 @@ instead of servers and network commands.")
 (define-public python-automat
   (package
     (name "python-automat")
-    (version "0.6.0")
+    (version "0.7.0")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "Automat" version))
               (sha256
                (base32
-                "1a7nsrljysfmdqmpn2apfa1gg6rfah4y9sizvns8gb08rx7d07rw"))))
+                "03ivg70n3b1cbcd2zvjhk8y4kmqxcvhmili39lmgx09dza1qpmyb"))))
     (build-system python-build-system)
     ;; We disable the tests because they require python-twisted, while
     ;; python-twisted depends on python-automat.  Twisted is optional, but the
@@ -11298,13 +11617,13 @@ transducers).")
 (define-public python-m2r
   (package
     (name "python-m2r")
-    (version "0.1.12")
+    (version "0.2.1")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "m2r" version))
               (sha256
                (base32
-                "1axrwnf425sz4qz3c0qc7yhhki4myzb8rki7pczcsgzznzmqdyxd"))))
+                "16gdm8i06jjmlpvckpfmlkr4693dh0vs192vgsqn84fsdkbbm45z"))))
     (build-system python-build-system)
     (propagated-inputs
      `(("python-docutils" ,python-docutils)
@@ -12541,13 +12860,13 @@ Swagger 2.0).")
     (version "0.6.3")
     (source
       (origin
-        (method url-fetch)
-        (uri (string-append "https://github.com/rochacbruno/flasgger/archive/"
-                            version ".tar.gz"))
-        (file-name (string-append name "-" version ".tar.gz"))
+        (method git-fetch)
+        (uri (git-reference
+              (url "https://github.com/rochacbruno/flasgger.git")
+              (commit version)))
+        (file-name (git-file-name name version))
         (sha256
-          (base32
-            "1gqzlm0rb55fdpsy5ipkganlx9cnpi454fqyycr03jm22zql14ay"))))
+          (base32 "0yydxsyjnc0clbrjqb1n7587l6cdqvwdagwxk5hkx01qwdfbkvpn"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -13053,13 +13372,13 @@ executed more than a given number of times during a given period.")
     (version "0.3")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/kovidgoyal/dukpy/archive/v"
-                           version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/kovidgoyal/dukpy.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "0pj39rfwlzivqm5hkrsza7gssg6ggpxlq5ivc8f3h7x5pfgc6y6c"))))
+        (base32 "13h21nqzasv4zj32xs61brmc106pr2cx243672crcmwxxnjgaxls"))))
     (build-system python-build-system)
     (home-page "https://github.com/kovidgoyal/dukpy")
     (synopsis "Run JavaScript in python")
@@ -13508,11 +13827,12 @@ and works only with Python 2 and NumPy < 1.9.")
     (synopsis "Send files to the user's @file{~/Trash} directory")
     (description "This package provides a Python library to send files to the
 user's @file{~/Trash} directory.")
+    (properties `((python2-variant . ,(delay python2-send2trash))))
     (license license:bsd-3)))
 
 (define-public python2-send2trash
   (package
-    (inherit (package-with-python2 python-send2trash))
+    (inherit (package-with-python2 (strip-python2-variant python-send2trash)))
     (arguments
      (substitute-keyword-arguments (package-arguments python-send2trash)
        ((#:phases phases)
@@ -13521,8 +13841,7 @@ user's @file{~/Trash} directory.")
              (lambda _
                (setenv "PYTHONPATH"
                        (string-append (getcwd) ":" (getenv "PYTHONPATH")))
-               #t))))))
-    (properties `((python2-variant . ,(delay python-send2trash))))))
+               #t))))))))
 
 (define-public python-yapf
   (package
@@ -14125,16 +14444,15 @@ manager compatible with @code{asyncio}.")
   (package
     (name "python-glob2")
     (version "0.6")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "https://github.com/miracle2k/python-glob2/archive/"
-                    version
-                    ".tar.gz"))
-              (sha256
-               (base32
-                "0ja168f0dz4kbz4m06dm0rd3acaypk6hjx2km541pw22y9s40mag"))
-              (file-name (string-append name "-" version ".tar.gz"))))
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/miracle2k/python-glob2.git")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1lm1xz3k3l0k1c5bcp9hlzmi3gp5j8dl1k3xhpiq5mnm0xq6n163"))))
     (build-system python-build-system)
     (home-page "https://github.com/miracle2k/python-glob2/")
     (synopsis "Extended Version of the python buildin glob module")
@@ -14346,7 +14664,7 @@ introspection.")
     (synopsis "File transport adapter for Requests")
     (description
      "Requests-File is a transport adapter for use with the Requests Python
-library to allow local filesystem access via file:// URLs.")
+library to allow local file system access via @code{file://} URLs.")
     (license license:asl2.0)))
 
 (define-public python2-requests-file
@@ -14549,14 +14867,14 @@ tool).")
 (define-public python-anndata
   (package
     (name "python-anndata")
-    (version "0.6.9")
+    (version "0.6.18")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "anndata" version))
        (sha256
         (base32
-         "1fh461xyyc7pcrjfgd013bdc2alf53r46ss3gfw3431mbb1gappi"))))
+         "03x83yjaccbqszj7x4fwwmpil0ai59yx64d1zmf2691za3j03w73"))))
     (build-system python-build-system)
     (propagated-inputs
      `(("python-h5py" ,python-h5py)
@@ -14575,16 +14893,15 @@ object-oriented library such as @code{scikit-learn}.")
 (define-public python-dill
   (package
     (name "python-dill")
-    (version "0.2.8.2")
+    (version "0.2.9")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "dill" version))
        (sha256
-        (base32
-         "1cymzn9fxwdy33h21zkk4gqgzvd25110hh3zdqnvnwa3p52c4kb2"))))
+        (base32 "0vwqyi6hyz2r29zydc78dqymkbc5y7gia16xcdh215cikxph9mpn"))))
     (build-system python-build-system)
-    ;; FIXME: The check phase fails with "don't know how to make test".
+    ;; FIXME: The check phase fails with "don't know how to make test from: …".
     (arguments '(#:tests? #f))
     (home-page "https://pypi.org/project/dill")
     (synopsis "Serialize all of Python")
@@ -14593,7 +14910,7 @@ and de-serializing Python objects to the majority of the built-in Python
 types.  Dill provides the user the same interface as the @code{pickle} module,
 and also includes some additional features.  In addition to pickling Python
 objects, @code{dill} provides the ability to save the state of an interpreter
-session in a single command.  Hence, it would be feasable to save a
+session in a single command.  Hence, it would be feasible to save a
 interpreter session, close the interpreter, ship the pickled file to another
 computer, open a new interpreter, unpickle the session and thus continue from
 the saved state of the original interpreter session.")
@@ -14818,14 +15135,14 @@ append on old values.  Partd excels at shuffling operations.")
 (define-public python-dask
   (package
     (name "python-dask")
-    (version "1.1.4")
+    (version "1.2.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "dask" version))
        (sha256
         (base32
-         "1hrnfz4pzawikz9b622vjz2500n7hs25nz9msy1k8l4g7l2kr6ky"))))
+         "1y0dqcp72ixwblgway0jpvfirlxfcmwrjiivdq96firj1hw127sd"))))
     (build-system python-build-system)
     ;; A single test out of 5000+ fails.  This test is marked as xfail when
     ;; pytest-xdist is used.
@@ -15229,3 +15546,45 @@ and dates in \"human readable\" forms.  For example, it would display
     (description "This is a collection of well-tested, simple modules and
 functions that aim to reduce boilerplate when working with data.")
     (license license:bsd-2)))
+
+(define-public python-annoy
+  (package
+    (name "python-annoy")
+    (version "1.15.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "annoy" version))
+       (sha256
+        (base32
+         "1rxn6snn0r32r07g45hdjhh8aa1xzx6fjrm8g62d8vzp46z7rzrp"))))
+    (build-system python-build-system)
+    (native-inputs
+     `(("python-nose" ,python-nose)))
+    (home-page "https://github.com/spotify/annoy/")
+    (synopsis "Approximate nearest neighbors library")
+    (description
+     "Annoy is a C++ library with Python bindings to search for points in
+space that are close to a given query point.  It also creates large read-only
+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-sphinxcontrib-svg2pdfconverter
+  (package
+    (name "python-sphinxcontrib-svg2pdfconverter")
+    (version "0.1.0")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "sphinxcontrib-svg2pdfconverter" version))
+              (sha256
+               (base32
+                "1abvbgkkii13q8nsb10r0gc5lm0p9iq1iwhfhakn5ifn6asa0183"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     `(("python-sphinx" ,python-sphinx)))
+    (home-page "https://github.com/missinglinkelectronics/sphinxcontrib-svg2pdfconverter/releases")
+    (synopsis "Sphinx SVG to PDF converter extension")
+    (description "A Sphinx extension to convert SVG images to PDF in case the builder does not support
+SVG images natively (e.g. LaTeX).")
+    (license license:bsd-3)))
diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
index 87d92765f4..afc4d8dc06 100644
--- a/gnu/packages/qt.scm
+++ b/gnu/packages/qt.scm
@@ -48,7 +48,6 @@
   #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages gl)
   #:use-module (gnu packages glib)
-  #:use-module (gnu packages gnuzilla)
   #:use-module (gnu packages gperf)
   #:use-module (gnu packages gstreamer)
   #:use-module (gnu packages gtk)
@@ -56,6 +55,7 @@
   #:use-module (gnu packages image)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages maths)
+  #:use-module (gnu packages nss)
   #:use-module (gnu packages pciutils)
   #:use-module (gnu packages pcre)
   #:use-module (gnu packages perl)
@@ -96,6 +96,18 @@
     (arguments
      `(#:phases
        (modify-phases %standard-phases
+         (add-after 'unpack 'delete-broken-tests
+           (lambda _
+             ;; TODO: Two date tests (for date01 and date02) fail for unknown
+             ;; reasons.
+             ;;   Actual   (result): ""
+             ;;   Expected (output): "01"
+             ;;   Actual   (result): ""
+             ;;   Expected (output): "Jan. 1, 2008"
+             (delete-file "templates/tests/testfilters.cpp")
+             (substitute* "templates/tests/CMakeLists.txt"
+               (("testfilters") ""))
+             #t))
          (add-before 'check 'check-setup
            (lambda _
              ;; make Qt render "offscreen", required for tests
diff --git a/gnu/packages/rails.scm b/gnu/packages/rails.scm
index e623f9b8c4..86ce1514f0 100644
--- a/gnu/packages/rails.scm
+++ b/gnu/packages/rails.scm
@@ -602,7 +602,7 @@ can also be launched manually in any page.")
     (synopsis "Advisory locking for ActiveRecord")
     (description
      "The With advisory lock gem adds advisory locking to ActiveRecord for
-PostgreSQL and MySQL.  SQLite is also supported, but this uses the filesystem
+PostgreSQL and MySQL.  SQLite is also supported, but this uses the file system
 for locks.")
     (home-page "https://closuretree.github.io/with_advisory_lock/")
     (license license:expat)))
diff --git a/gnu/packages/ratpoison.scm b/gnu/packages/ratpoison.scm
index fefde982bc..42e17b63d9 100644
--- a/gnu/packages/ratpoison.scm
+++ b/gnu/packages/ratpoison.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013, 2014 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013, 2014, 2019 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2015 Mathieu Lirzin <mthl@openmailbox.org>
 ;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
 ;;;
@@ -30,17 +30,6 @@
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages fontutils))
 
-(define ratpoison.desktop
-  (origin
-    (method url-fetch)
-    (uri (string-append "https://sources.gentoo.org/cgi-bin/viewvc.cgi/"
-                        "gentoo-x86/x11-wm/ratpoison/files/ratpoison.desktop"
-                        "?revision=1.1"))
-    (file-name "ratpoison.desktop")
-    (sha256
-     (base32
-      "1rh3f4c3rhn6q2hmkraam0831xqcqyj3qkqf019ahaxsxaan3553"))))
-
 (define-public ratpoison
   (package
     (name "ratpoison")
@@ -55,17 +44,28 @@
              (patches (search-patches "ratpoison-shell.patch"))))
     (build-system gnu-build-system)
     (arguments
-     '(#:phases
+     `(#:modules ((ice-9 format)
+                  ,@%gnu-build-system-modules)
+       #:phases
        (modify-phases %standard-phases
          (add-after 'install 'install-xsession
-                    (lambda* (#:key inputs outputs #:allow-other-keys)
-                      (let ((rpd "ratpoison.desktop")
-                            (dst (string-append (assoc-ref outputs "out")
-                                                "/share/xsessions/")))
-                        (mkdir-p dst)
-                        (copy-file (assoc-ref inputs rpd)
-                                   (string-append dst rpd))
-                        #t))))))
+           (lambda* (#:key outputs #:allow-other-keys)
+             ;; Add a .desktop file to xsessions.
+             (let* ((output    (assoc-ref outputs "out"))
+                    (xsessions (string-append output "/share/xsessions")))
+               (mkdir-p xsessions)
+               (call-with-output-file (string-append xsessions
+                                                     "/ratpoison.desktop")
+                 (lambda (port)
+                   (format port
+                           "[Desktop Entry]~@
+                            Name=ratpoison~@
+                            Comment=Tiling window manager: say goodbye to the rodent!~@
+                            Exec=~a/bin/ratpoison~@
+                            TryExec=~@*~a/bin/ratpoison~@
+                            Type=Application~%"
+                           output)))
+               #t))))))
     (inputs
      `(("fontconfig" ,fontconfig)
        ("freetype" ,freetype)
@@ -80,8 +80,7 @@
        ("xorgproto" ,xorgproto)))
     (native-inputs
      `(("perl" ,perl)
-       ("pkg-config" ,pkg-config)
-       ("ratpoison.desktop" ,ratpoison.desktop)))
+       ("pkg-config" ,pkg-config)))
     (home-page "https://www.nongnu.org/ratpoison/")
     (synopsis "Simple mouse-free tiling window manager")
     (description
diff --git a/gnu/packages/rdf.scm b/gnu/packages/rdf.scm
index 4a3efd8d3f..3e2db7acdf 100644
--- a/gnu/packages/rdf.scm
+++ b/gnu/packages/rdf.scm
@@ -2,6 +2,7 @@
 ;;; Copyright © 2013, 2014, 2015 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2015, 2016, 2018 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2019 Julien Lepiller <julien@lepiller.eu>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -20,7 +21,7 @@
 
 (define-module (gnu packages rdf)
   #:use-module ((guix licenses)
-                #:select (non-copyleft isc gpl2 lgpl2.1 lgpl2.1+))
+                #:select (non-copyleft asl2.0 isc gpl2 lgpl2.1 lgpl2.1+ lgpl3+))
   #:use-module (guix packages)
   #:use-module (guix git-download)
   #:use-module (guix download)
@@ -119,6 +120,37 @@ full-featured indexing and searching API.  It is a port of the very popular
 Java Lucene text search engine API to C++.")
     (license lgpl2.1)))
 
+(define-public lucene++
+  (package
+    (name "lucene++")
+    (version "3.0.7")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                     (url "https://github.com/luceneplusplus/LucenePlusPlus")
+                     (commit (string-append "rel_" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "06b37fly6l27zc6kbm93f6khfsv61w792j8xihfagpcm9cfz2zi1"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:configure-flags
+       ;; CXX_FLAGS suggested in a closed issue on github:
+       ;; https://github.com/luceneplusplus/LucenePlusPlus/issues/100
+       (list "-Wno-dev" "-DCMAKE_CXX_FLAGS=-DBOOST_VARIANT_USE_RELAXED_GET_BY_DEFAULT"
+             ;; Install in lib64 break rpath
+             "-DCMAKE_INSTALL_LIBDIR:PATH=lib")))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("boost" ,boost)))
+    (home-page "https://github.com/luceneplusplus/LucenePlusPlus")
+    (synopsis "Text search engine")
+    (description "Lucene++ is an up to date C++ port of the popular Java
+Lucene library, a high-performance, full-featured text search engine.")
+    (license (list asl2.0 lgpl3+)))); either asl or lgpl.
+
 (define-public lrdf
   (package
     (name "lrdf")
diff --git a/gnu/packages/regex.scm b/gnu/packages/regex.scm
index f409565787..f37fb064a2 100644
--- a/gnu/packages/regex.scm
+++ b/gnu/packages/regex.scm
@@ -30,7 +30,7 @@
 (define-public re2
    (package
      (name "re2")
-     (version "2019-03-01")
+     (version "2019-04-01")
      (home-page "https://github.com/google/re2")
      (source (origin
                (method git-fetch)
@@ -38,7 +38,7 @@
                (file-name (git-file-name name version))
                (sha256
                 (base32
-                 "032lsrb57llq79icpvrrh1fmjzy2i4bdmydfww178nc45ya5wcl4"))))
+                 "018b8z3fgcr02rmhxdz80r363k40938cbgmk1c9b46k6xkc4q0hd"))))
      (build-system gnu-build-system)
      (arguments
       `(#:modules ((guix build gnu-build-system)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 9a899b6bb4..934b8ac557 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -2870,7 +2870,7 @@ conversion to (X)HTML.")
    `(("ruby-listen" ,ruby-listen)))
   (synopsis "Run a process, and restart when some monitored files change")
   (description
-    "Rerun is a tool to launch programs, then monitor the filesystem, and
+    "Rerun is a tool to launch programs, then monitor the file system, and
 restart the program when any of the monitored files change.  It's written in
 Ruby, but can be used for all programs.")
   (home-page "https://github.com/alexch/rerun/")
@@ -2986,12 +2986,13 @@ with processes on remote servers, via SSH2.")
     (version "1.2.2.rc2")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/net-ssh/net-scp/archive/v"
-                           version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/net-ssh/net-scp.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "0xyf17mhgvyz54xjj9ria4wnq3x62bhmkfgzqv8jwiip2bplv1nk"))))
+        (base32 "1nyn17sy71fn7zs3y6wbgcn35318c10flqgc0582409095x4h0sx"))))
     (build-system ruby-build-system)
     (native-inputs
      `(("bundler" ,bundler)
@@ -5260,8 +5261,8 @@ techniques and a terse syntax.")
        ("ruby-netrc" ,ruby-netrc)))
     (native-inputs
      `(("bundler" ,bundler)
-       ("ruby-webmock", ruby-webmock-2)
-       ("ruby-rspec", ruby-rspec)))
+       ("ruby-webmock" ,ruby-webmock-2)
+       ("ruby-rspec" ,ruby-rspec)))
     (synopsis "Simple HTTP and REST client for Ruby")
     (description
      "@code{rest-client} provides a simple HTTP and REST client for Ruby,
@@ -7679,14 +7680,15 @@ strings or files.")
   (package
     (name "ruby-sass-spec")
     (version "3.5.4")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://github.com/sass/sass-spec/archive/v"
-                                  version ".tar.gz"))
-              (file-name (string-append name "-" version ".tar.gz"))
-              (sha256
-               (base32
-                "0nx8lp7c9qa58w489crgqa3c489xsyarn1a8h4np9mwwfqm1h3rr"))))
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/sass/sass-spec.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1zsw66830w0xlc7kxz6fm4b5nyb44vdsdgm9mgy06s5aixx83pwr"))))
     (build-system ruby-build-system)
     (propagated-inputs
      `(("ruby-command-line-reporter-3" ,ruby-command-line-reporter-3)
diff --git a/gnu/packages/rust.scm b/gnu/packages/rust.scm
index 83c132c4f7..5f1f2be5a0 100644
--- a/gnu/packages/rust.scm
+++ b/gnu/packages/rust.scm
@@ -70,7 +70,10 @@
     (_                (nix-system->gnu-triplet system))))
 
 
-(define* (rust-source version hash #:key (patches '()))
+(define* (rust-source-pre-1.32 version hash
+                               #:key
+                               (patches '())
+                               (patch-flags '("-p1")))
   (origin
     (method url-fetch)
     (uri (string-append "https://static.rust-lang.org/dist/"
@@ -78,16 +81,51 @@
     (sha256 (base32 hash))
     (modules '((guix build utils)))
     (snippet '(begin (delete-file-recursively "src/llvm") #t))
-    (patches (map search-patch patches))))
+    (patches (map search-patch patches))
+    (patch-flags patch-flags)))
+
+(define* (rust-bootstrapped-package-pre-1.32 base-rust version checksum
+                                             #:key
+                                             (patches '())
+                                             (patch-flags '("-p1")))
+  "Bootstrap rust VERSION with source checksum CHECKSUM patched with PATCHES using BASE-RUST.
+Specific to rust versions before 1.32."
+  (package
+    (inherit base-rust)
+    (version version)
+    (source
+     (rust-source-pre-1.32 version checksum #:patches patches #:patch-flags patch-flags))
+    (native-inputs
+     (alist-replace "cargo-bootstrap" (list base-rust "cargo")
+                    (alist-replace "rustc-bootstrap" (list base-rust)
+                                   (package-native-inputs base-rust))))))
+
+(define* (rust-source version hash
+                      #:key
+                      (patches '())
+                      (patch-flags '("-p1")))
+  (origin
+    (method url-fetch)
+    (uri (string-append "https://static.rust-lang.org/dist/"
+                        "rustc-" version "-src.tar.gz"))
+    (sha256 (base32 hash))
+    (modules '((guix build utils)))
+    (snippet '(begin (delete-file-recursively "src/llvm")
+                     (delete-file-recursively "vendor/jemalloc-sys/jemalloc")
+                     #t))
+    (patches (map search-patch patches))
+    (patch-flags patch-flags)))
 
 (define* (rust-bootstrapped-package base-rust version checksum
-                                    #:key (patches '()))
+                                    #:key
+                                    (patches '())
+                                    (patch-flags '("-p1")))
   "Bootstrap rust VERSION with source checksum CHECKSUM patched with PATCHES using BASE-RUST."
   (package
     (inherit base-rust)
     (version version)
     (source
-     (rust-source version checksum #:patches patches))
+     (rust-source version checksum #:patches patches #:patch-flags patch-flags))
     (native-inputs
      (alist-replace "cargo-bootstrap" (list base-rust "cargo")
                     (alist-replace "rustc-bootstrap" (list base-rust)
@@ -118,7 +156,7 @@
          ("flex" ,flex)
          ;; Required for the libstd sources.
          ("rustc"
-          ,(rust-source "1.19.0" "0l8c14qsf42rmkqy92ahij4vf356dbyspxcips1aswpvad81y8qm"))))
+          ,(rust-source-pre-1.32 "1.19.0" "0l8c14qsf42rmkqy92ahij4vf356dbyspxcips1aswpvad81y8qm"))))
       (arguments
        `(#:test-target "local_tests"
          #:make-flags (list (string-append "LLVM_CONFIG="
@@ -191,7 +229,7 @@ safety and thread safety guarantees.")
   (package
     (name "rust")
     (version "1.19.0")
-    (source (rust-source version "0l8c14qsf42rmkqy92ahij4vf356dbyspxcips1aswpvad81y8qm"
+    (source (rust-source-pre-1.32 version "0l8c14qsf42rmkqy92ahij4vf356dbyspxcips1aswpvad81y8qm"
             #:patches '("rust-1.19-mrustc.patch")))
     (outputs '("out" "cargo"))
     (properties '((timeout . 72000)               ;20 hours
@@ -424,7 +462,7 @@ safety and thread safety guarantees.")
 
 (define-public rust-1.20
   (let ((base-rust
-         (rust-bootstrapped-package rust-1.19 "1.20.0"
+         (rust-bootstrapped-package-pre-1.32 rust-1.19 "1.20.0"
           "0542y4rnzlsrricai130mqyxl8r6rd991frb4qsnwb27yigqg91a")))
     (package
       (inherit base-rust)
@@ -569,7 +607,7 @@ jemalloc = \"" jemalloc "/lib/libjemalloc_pic.a" "\"
                    #t))))))))))
 
 (define-public rust-1.21
-  (let ((base-rust (rust-bootstrapped-package rust-1.20 "1.21.0"
+  (let ((base-rust (rust-bootstrapped-package-pre-1.32 rust-1.20 "1.21.0"
                     "1yj8lnxybjrybp00fqhxw8fpr641dh8wcn9mk44xjnsb4i1c21qp")))
     (package
       (inherit base-rust)
@@ -585,7 +623,7 @@ jemalloc = \"" jemalloc "/lib/libjemalloc_pic.a" "\"
                  #t)))))))))
 
 (define-public rust-1.22
-  (let ((base-rust (rust-bootstrapped-package rust-1.21 "1.22.1"
+  (let ((base-rust (rust-bootstrapped-package-pre-1.32 rust-1.21 "1.22.1"
                     "1lrzzp0nh7s61wgfs2h6ilaqi6iq89f1pd1yaf65l87bssyl4ylb")))
     (package
       (inherit base-rust)
@@ -601,7 +639,7 @@ jemalloc = \"" jemalloc "/lib/libjemalloc_pic.a" "\"
                  #t)))))))))
 
 (define-public rust-1.23
-  (let ((base-rust (rust-bootstrapped-package rust-1.22 "1.23.0"
+  (let ((base-rust (rust-bootstrapped-package-pre-1.32 rust-1.22 "1.23.0"
                     "14fb8vhjzsxlbi6yrn1r6fl5dlbdd1m92dn5zj5gmzfwf4w9ar3l")))
     (package
       (inherit base-rust)
@@ -620,8 +658,8 @@ jemalloc = \"" jemalloc "/lib/libjemalloc_pic.a" "\"
 
 (define-public rust-1.24
   (let ((base-rust
-         (rust-bootstrapped-package rust-1.23 "1.24.1"
-                                    "1vv10x2h9kq7fxh2v01damdq8pvlp5acyh1kzcda9sfjx12kv99y")))
+         (rust-bootstrapped-package-pre-1.32 rust-1.23 "1.24.1"
+          "1vv10x2h9kq7fxh2v01damdq8pvlp5acyh1kzcda9sfjx12kv99y")))
     (package
       (inherit base-rust)
       (arguments
@@ -642,7 +680,7 @@ jemalloc = \"" jemalloc "/lib/libjemalloc_pic.a" "\"
 ;;; Keep using llvm 3.9.1 until builds become determenistic
 (define-public rust-1.25
   (let ((base-rust
-         (rust-bootstrapped-package rust-1.24 "1.25.0"
+         (rust-bootstrapped-package-pre-1.32 rust-1.24 "1.25.0"
           "0baxjr99311lvwdq0s38bipbnj72pn6fgbk6lcq7j555xq53mxpf"
           #:patches '("rust-1.25-accept-more-detailed-gdb-lines.patch"))))
     (package
@@ -673,7 +711,7 @@ jemalloc = \"" jemalloc "/lib/libjemalloc_pic.a" "\"
 
 (define-public rust-1.26
   (let ((base-rust
-         (rust-bootstrapped-package rust-1.25 "1.26.2"
+         (rust-bootstrapped-package-pre-1.32 rust-1.25 "1.26.2"
           "0047ais0fvmqvngqkdsxgrzhb0kljg8wy85b01kbbjc88hqcz7pv"
           #:patches '("rust-coresimd-doctest.patch"
                       "rust-1.25-accept-more-detailed-gdb-lines.patch"))))
@@ -685,6 +723,16 @@ jemalloc = \"" jemalloc "/lib/libjemalloc_pic.a" "\"
           `(modify-phases ,phases
              ;; binaryen was replaced with LLD project from LLVM
              (delete 'dont-build-native)
+             (replace 'check
+               (lambda* _
+                 ;; Enable parallel execution.
+                 (let ((parallel-job-spec
+                        (string-append "-j" (number->string
+                                             (min 4
+                                                  (parallel-job-count))))))
+                   (invoke "./x.py" parallel-job-spec "test" "-vv")
+                   (invoke "./x.py" parallel-job-spec "test"
+                           "src/tools/cargo"))))
              (replace 'remove-unsupported-tests
                (lambda* _
                  ;; Our ld-wrapper cannot process non-UTF8 bytes in LIBRARY_PATH.
@@ -728,13 +776,13 @@ jemalloc = \"" jemalloc "/lib/libjemalloc_pic.a" "\"
 
 (define-public rust-1.27
   (let ((base-rust
-         (rust-bootstrapped-package rust-1.26 "1.27.2"
-                                    "0pg1s37bhx9zqbynxyydq5j6q7kij9vxkcv8maz0m25prm88r0cs"
-                                    #:patches
-                                    '("rust-coresimd-doctest.patch"
-                                      "rust-bootstrap-stage0-test.patch"
-                                      "rust-1.25-accept-more-detailed-gdb-lines.patch"
-                                      "rust-reproducible-builds.patch"))))
+         (rust-bootstrapped-package-pre-1.32 rust-1.26 "1.27.2"
+          "0pg1s37bhx9zqbynxyydq5j6q7kij9vxkcv8maz0m25prm88r0cs"
+          #:patches
+          '("rust-coresimd-doctest.patch"
+            "rust-bootstrap-stage0-test.patch"
+            "rust-1.25-accept-more-detailed-gdb-lines.patch"
+            "rust-reproducible-builds.patch"))))
     (package
       (inherit base-rust)
       (arguments
@@ -757,13 +805,13 @@ jemalloc = \"" jemalloc "/lib/libjemalloc_pic.a" "\"
 
 (define-public rust-1.28
   (let ((base-rust
-         (rust-bootstrapped-package rust-1.27 "1.28.0"
-                                    "11k4rn77bca2rikykkk9fmprrgjswd4x4kaq7fia08vgkir82nhx"
-                                    #:patches
-                                    '("rust-coresimd-doctest.patch"
-                                      "rust-bootstrap-stage0-test.patch"
-                                      "rust-1.25-accept-more-detailed-gdb-lines.patch"
-                                      "rust-reproducible-builds.patch"))))
+         (rust-bootstrapped-package-pre-1.32 rust-1.27 "1.28.0"
+          "11k4rn77bca2rikykkk9fmprrgjswd4x4kaq7fia08vgkir82nhx"
+          #:patches
+          '("rust-coresimd-doctest.patch"
+            "rust-bootstrap-stage0-test.patch"
+            "rust-1.25-accept-more-detailed-gdb-lines.patch"
+            "rust-reproducible-builds.patch"))))
     (package
       (inherit base-rust)
       (inputs
@@ -791,22 +839,22 @@ jemalloc = \"" jemalloc "/lib/libjemalloc_pic.a" "\"
 
 (define-public rust-1.29
   (let ((base-rust
-         (rust-bootstrapped-package rust-1.28 "1.29.2"
-                                    "1jb787080z754caa2w3w1amsygs4qlzj9rs1vy64firfmabfg22h"
-                                    #:patches
-                                    '("rust-1.25-accept-more-detailed-gdb-lines.patch"
-                                      "rust-reproducible-builds.patch"))))
+         (rust-bootstrapped-package-pre-1.32 rust-1.28 "1.29.2"
+          "1jb787080z754caa2w3w1amsygs4qlzj9rs1vy64firfmabfg22h"
+          #:patches
+          '("rust-1.25-accept-more-detailed-gdb-lines.patch"
+            "rust-reproducible-builds.patch"))))
     (package
       (inherit base-rust))))
 
 (define-public rust-1.30
   (let ((base-rust
-         (rust-bootstrapped-package rust-1.29 "1.30.1"
-                                    "0aavdc1lqv0cjzbqwl5n59yd0bqdlhn0zas61ljf38yrvc18k8rn"
-                                    #:patches
-                                    '("rust-1.25-accept-more-detailed-gdb-lines.patch"
-                                      "rust-1.30-gdb-llvm.patch"
-                                      "rust-reproducible-builds.patch"))))
+         (rust-bootstrapped-package-pre-1.32 rust-1.29 "1.30.1"
+          "0aavdc1lqv0cjzbqwl5n59yd0bqdlhn0zas61ljf38yrvc18k8rn"
+          #:patches
+          '("rust-1.25-accept-more-detailed-gdb-lines.patch"
+            "rust-1.30-gdb-llvm.patch"
+            "rust-reproducible-builds.patch"))))
     (package
       (inherit base-rust)
       (inputs
@@ -839,18 +887,21 @@ jemalloc = \"" jemalloc "/lib/libjemalloc_pic.a" "\"
                    (("fn include") "#[ignore]\nfn include")
                    (("fn exclude") "#[ignore]\nfn exclude"))
                    #t))
-             ;; Appears that this test isn't currently running and has been
-             ;; moved elsewhere, so the patch doesn't apply.
-             (delete 'disable-amd64-avx-test))))))))
+             ;; The test has been moved elsewhere.
+             (replace 'disable-amd64-avx-test
+               (lambda _
+                 (substitute* "src/test/ui/run-pass/issues/issue-44056.rs"
+	          (("only-x86_64") "ignore-test"))
+                  #t)))))))))
 
-(define-public rust
+(define-public rust-1.31
   (let ((base-rust
-         (rust-bootstrapped-package rust-1.30 "1.31.1"
-                                    "0sk84ff0cklybcp0jbbxcw7lk7mrm6kb6km5nzd6m64dy0igrlli"
-                                    #:patches
-                                    '("rust-1.25-accept-more-detailed-gdb-lines.patch"
-                                      "rust-1.30-gdb-llvm.patch"
-                                      "rust-reproducible-builds.patch"))))
+         (rust-bootstrapped-package-pre-1.32 rust-1.30 "1.31.1"
+          "0sk84ff0cklybcp0jbbxcw7lk7mrm6kb6km5nzd6m64dy0igrlli"
+          #:patches
+          '("rust-1.25-accept-more-detailed-gdb-lines.patch"
+            "rust-1.30-gdb-llvm.patch"
+            "rust-reproducible-builds.patch"))))
     (package
       (inherit base-rust)
       (arguments
@@ -872,6 +923,12 @@ jemalloc = \"" jemalloc "/lib/libjemalloc_pic.a" "\"
                      ((" Command::new\\(\"echo\"\\)")
                       (string-append "\nCommand::new(\"" coreutils "/bin/echo\")\n")))
                    #t)))
+	      ;; The test has been moved elsewhere.
+	      (replace 'disable-amd64-avx-test
+	        (lambda _
+	          (substitute* "src/test/ui/issues/issue-44056.rs"
+                   (("only-x86_64") "ignore-test"))
+                  #t))
              (add-after 'patch-tests 'patch-process-docs-rev-cmd
                (lambda* _
                  ;; Disable some doc tests which depend on the "rev" command
@@ -879,3 +936,97 @@ jemalloc = \"" jemalloc "/lib/libjemalloc_pic.a" "\"
                  (substitute* "src/libstd/process.rs"
                    (("```rust") "```rust,no_run"))
                  #t)))))))))
+
+(define-public rust-1.32
+  (let ((base-rust
+         (rust-bootstrapped-package rust-1.31 "1.32.0"
+          "0ji2l9xv53y27xy72qagggvq47gayr5lcv2jwvmfirx029vlqnac"
+          #:patches '("rust-reproducible-builds.patch")
+          ;; the vendor directory has moved to the root of
+          ;; the tarball, so we have to strip an extra prefix
+          #:patch-flags '("-p2"))))
+    (package
+      (inherit base-rust)
+      (inputs
+       ;; Downgrade to LLVM 6, all LTO tests appear to fail with LLVM 7.0.1
+       (alist-replace "llvm" (list llvm-6)
+                      (package-inputs base-rust)))
+      (arguments
+       (substitute-keyword-arguments (package-arguments base-rust)
+         ((#:phases phases)
+          `(modify-phases ,phases
+             ;; Cargo.lock and the vendor/ directory have been moved to the
+             ;; root of the rust tarball
+             (replace 'patch-cargo-checksums
+               (lambda* _
+                 (substitute* "Cargo.lock"
+                   (("(\"checksum .* = )\".*\"" all name)
+                    (string-append name "\"" ,%cargo-reference-hash "\"")))
+                 (for-each
+                  (lambda (filename)
+                    (use-modules (guix build cargo-utils))
+                    (delete-file filename)
+                    (let* ((dir (dirname filename)))
+                      (display (string-append
+                                "patch-cargo-checksums: generate-checksums for "
+                                dir "\n"))
+                      (generate-checksums dir ,%cargo-reference-project-file)))
+                  (find-files "vendor" ".cargo-checksum.json"))
+                 #t))
+             (add-after 'enable-codegen-tests 'override-jemalloc
+               (lambda* (#:key inputs #:allow-other-keys)
+                 ;; The compiler is no longer directly built against jemalloc,
+                 ;; but rather via the jemalloc-sys crate (which vendors the
+                 ;; jemalloc source). To use jemalloc we must enable linking to
+                 ;; it (otherwise it would use the system allocator), and set
+                 ;; an environment variable pointing to the compiled jemalloc.
+                 (substitute* "config.toml"
+                   (("^jemalloc =.*$") "")
+                   (("[[]rust[]]") "\n[rust]\njemalloc=true\n"))
+                 (setenv "JEMALLOC_OVERRIDE" (string-append (assoc-ref inputs "jemalloc")
+                                                            "/lib/libjemalloc_pic.a"))
+                 #t))
+             ;; Remove no longer relevant steps
+             (delete 'remove-flaky-test)
+             (delete 'patch-aarch64-test))))))))
+
+(define-public rust-1.33
+  (let ((base-rust
+         (rust-bootstrapped-package rust-1.32 "1.33.0"
+                                    "152x91mg7bz4ygligwjb05fgm1blwy2i70s2j03zc9jiwvbsh0as"
+                                    #:patches '())))
+    (package
+      (inherit base-rust)
+      (inputs
+       ;; Upgrade to jemalloc@5.1.0
+       (alist-replace "jemalloc" (list jemalloc)
+                      (package-inputs base-rust)))
+      (arguments
+       (substitute-keyword-arguments (package-arguments base-rust)
+         ((#:phases phases)
+          `(modify-phases ,phases
+             (delete 'ignore-cargo-package-tests)
+             (add-after 'configure 'configure-test-threads
+               ;; Several rustc and cargo tests will fail if run on one core
+               ;; https://github.com/rust-lang/rust/issues/59122
+               ;; https://github.com/rust-lang/cargo/issues/6746
+               ;; https://github.com/rust-lang/rust/issues/58907
+               (lambda* (#:key inputs #:allow-other-keys)
+                 (setenv "RUST_TEST_THREADS" "2")
+                 #t)))))))))
+
+(define-public rust
+  (let ((base-rust
+         (rust-bootstrapped-package rust-1.33 "1.34.0"
+                                    "0n8z1wngkxab1rvixqg6w8b727hzpnm9wp9h8iy3mpbrzp7mmj3s"
+                                    #:patches '())))
+    (package
+      (inherit base-rust)
+      (source
+        (origin
+          (inherit (package-source base-rust))
+          (snippet '(begin
+                      (delete-file-recursively "src/llvm-emscripten")
+                      (delete-file-recursively "src/llvm-project")
+                      (delete-file-recursively "vendor/jemalloc-sys/jemalloc")
+                      #t)))))))
diff --git a/gnu/packages/samba.scm b/gnu/packages/samba.scm
index f4bd0e3f11..8a117799ef 100644
--- a/gnu/packages/samba.scm
+++ b/gnu/packages/samba.scm
@@ -5,7 +5,7 @@
 ;;; 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 Marius Bakke <mbakke@fastmail.com>
-;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2019 Rutger Helling <rhelling@mykolab.com>
 ;;;
@@ -56,14 +56,14 @@
 (define-public cifs-utils
   (package
     (name "cifs-utils")
-    (version "6.8")
+    (version "6.9")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://download.samba.org/pub/linux-cifs/"
-                           name "/" name "-" version ".tar.bz2"))
+                           "cifs-utils/cifs-utils-" version ".tar.bz2"))
        (sha256 (base32
-                "0ygz3pagjpaj5ky11hzh4byyymb7fpmqiqkprn11zwj31h2zdlg7"))))
+                "175cp509wn1zv8p8mv37hkf6sxiskrsxdnq22mhlsg61jazz3n0q"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("autoconf" ,autoconf)
@@ -80,7 +80,8 @@
      `(#:phases
        (modify-phases %standard-phases
          (add-before 'configure 'set-root-sbin
-           (lambda _ ; Don't try to install in "/sbin".
+           (lambda _
+             ;; Don't try to install into "/sbin".
              (setenv "ROOTSBINDIR"
                      (string-append (assoc-ref %outputs "out") "/sbin"))
              #t)))))
@@ -144,7 +145,7 @@ the Linux kernel CIFS client.")
     (home-page "https://github.com/ndevilla/iniparser")
     (synopsis "Standalone ini file parsing library")
     (description
-     "iniparser is a free stand-alone `ini' file parsing library (Windows
+     "iniparser is a free stand-alone @code{ini} file parsing library (Windows
 configuration files).  It is written in portable ANSI C and should compile
 anywhere.")
     (license x11)))
@@ -152,14 +153,14 @@ anywhere.")
 (define-public samba
   (package
     (name "samba")
-    (version "4.10.0")
+    (version "4.10.2")
     (source (origin
              (method url-fetch)
              (uri (string-append "https://download.samba.org/pub/samba/stable/"
                                  "samba-" version ".tar.gz"))
              (sha256
               (base32
-               "0n1ld77y8sydkpx6l8i2hqa1k7hpkr8df91pg849glc4b85407wz"))))
+               "112yizx9cpjhi8c7mh9znqg0c9dkj3383hwr8dhgpykl3g2zv347"))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases
diff --git a/gnu/packages/scheme.scm b/gnu/packages/scheme.scm
index 9dbb3713ee..3e5ab72f20 100644
--- a/gnu/packages/scheme.scm
+++ b/gnu/packages/scheme.scm
@@ -620,178 +620,6 @@ an isolated heap allowing multiple VMs to run simultaneously in different OS
 threads.")
     (license bsd-3)))
 
-(define-public scmutils
-  (let ()
-    (define (system-suffix)
-      (cond
-       ((string-prefix? "x86_64" (or (%current-target-system)
-                                     (%current-system)))
-        "x86-64")
-       (else "i386")))
-
-    (package
-      (name "scmutils")
-      (version "20160827")
-      (source
-       (origin
-         (method url-fetch/tarbomb)
-         (modules '((guix build utils)))
-         (snippet '(begin
-                     ;; Remove binary code
-                     (delete-file-recursively "scmutils/mit-scheme")
-                     #t))
-         (uri (string-append "http://groups.csail.mit.edu/mac/users/gjs/6946"
-                             "/scmutils-tarballs/" name "-" version
-                             "-x86-64-gnu-linux.tar.gz"))
-         (sha256
-          (base32 "00ly5m0s4dy5kxravjaqlpii5zcnr6b9nqm0607lr7xcs52i4j8b"))))
-      (build-system gnu-build-system)
-      (inputs
-       `(("mit-scheme" ,mit-scheme)
-         ("emacs" ,emacs-minimal)))
-      (arguments
-       `(#:tests? #f ;; no tests-suite
-         #:modules ((guix build gnu-build-system)
-                    (guix build utils)
-                    (guix build emacs-utils))
-         #:imported-modules (,@%gnu-build-system-modules
-                             (guix build emacs-utils))
-         #:phases
-         (modify-phases %standard-phases
-           (replace 'configure
-             ;; No standard build procedure is used. We set the correct
-             ;; runtime path in the custom build system.
-             (lambda* (#:key outputs #:allow-other-keys)
-               (let ((out (assoc-ref outputs "out")))
-                 ;; Required to find .bci files at runtime.
-                 (with-directory-excursion "scmutils"
-                   (rename-file "src" "scmutils"))
-                 (substitute* "scmutils/scmutils/load.scm"
-                   (("/usr/local/scmutils/")
-                    (string-append out "/lib/mit-scheme-"
-                                   ,(system-suffix) "/")))
-                 #t)))
-           (replace 'build
-             ;; Compile the code and build a band.
-             (lambda* (#:key outputs #:allow-other-keys)
-               (let* ((out (assoc-ref outputs "out"))
-                      (make-img (string-append
-                                 "echo '(load \"load\") "
-                                 "(disk-save \"edwin-mechanics.com\")'"
-                                 "| mit-scheme")))
-                 (with-directory-excursion "scmutils/scmutils"
-                   (and (zero? (system "mit-scheme < compile.scm"))
-                        (zero? (system make-img))))
-                 #t)))
-           (add-before 'install 'fix-directory-names
-             ;; Correct directory names in the startup script.
-             (lambda* (#:key inputs outputs #:allow-other-keys)
-               (let* ((out (assoc-ref outputs "out"))
-                      (scm-root (assoc-ref inputs "mit-scheme")))
-                 (substitute* "bin/mechanics"
-                   (("ROOT=\"\\$\\{SCMUTILS_ROOT:-/.*\\}\"")
-                    (string-append
-                     "ROOT=\"${SCMUTILS_ROOT:-" scm-root "}\"\n"
-                     "LIB=\"${ROOT}/lib/mit-scheme-"
-                     ,(system-suffix) ":"
-                     out "/lib/mit-scheme-" ,(system-suffix) "\""))
-                   (("EDWIN_INFO_DIRECTORY=.*\n") "")
-                   (("SCHEME=.*\n")
-                    (string-append "SCHEME=\"${ROOT}/bin/scheme "
-                                   "--library ${LIB}\"\n"))
-                   (("export EDWIN_INFO_DIRECTORY") ""))
-                 #t)))
-           (add-before 'install 'emacs-tags
-             ;; Generate Emacs's tags for easy reference to source
-             ;; code.
-             (lambda* (#:key inputs outputs #:allow-other-keys)
-               (with-directory-excursion "scmutils/scmutils"
-                 (apply invoke "etags" (find-files "." "\\.scm")))
-               #t))
-           (replace 'install
-             ;; Copy files to the store.
-             (lambda* (#:key outputs #:allow-other-keys)
-               (define* (copy-files-to-directory files dir
-                                                 #:optional (delete? #f))
-                 (for-each (lambda (f)
-                             (copy-file f (string-append dir "/" f))
-                             (when delete? (delete-file f)))
-                           files))
-
-               (let* ((out (assoc-ref outputs "out"))
-                      (bin (string-append out "/bin"))
-                      (doc (string-append out "/share/doc/"
-                                          ,name "-" ,version))
-                      (lib (string-append out "/lib/mit-scheme-"
-                                          ,(system-suffix)
-                                          "/scmutils")))
-                 (for-each mkdir-p (list lib doc bin))
-                 (with-directory-excursion "scmutils/scmutils"
-                   (copy-files-to-directory '("COPYING" "LICENSE")
-                                            doc #t)
-                   (for-each delete-file (find-files "." "\\.bin"))
-                   (copy-files-to-directory '("edwin-mechanics.com")
-                                            (string-append lib "/..") #t)
-                   (copy-recursively "." lib))
-                 (with-directory-excursion "bin"
-                   (copy-files-to-directory (find-files ".") bin))
-                 (with-directory-excursion "scmutils/manual"
-                   (copy-files-to-directory (find-files ".") doc))
-                 #t)))
-           (add-after 'install 'emacs-helpers
-             ;; Add convenience Emacs commands to easily load the
-             ;; Scmutils band in an MIT-Scheme buffer inside of Emacs
-             ;; and to easily load code tags.
-             (lambda* (#:key inputs outputs #:allow-other-keys)
-               (let* ((out (assoc-ref outputs "out"))
-                      (mit-root (assoc-ref inputs "mit-scheme"))
-                      (emacs-lisp-dir
-                       (string-append out "/share/emacs/site-lisp"
-                                      "/guix.d/" ,name "-" ,version))
-                      (el-file (string-append emacs-lisp-dir
-                                              "/scmutils.el"))
-                      (lib-relative-path
-                       (string-append "/lib/mit-scheme-"
-                                      ,(system-suffix))))
-                 (mkdir-p emacs-lisp-dir)
-                 (call-with-output-file el-file
-                   (lambda (p)
-                     (format p
-                             ";;;###autoload
-(defun scmutils-load ()
-  (interactive)
-  (require 'xscheme)
-  (let ((mit-root \"~a\")
-    (scmutils \"~a\"))
-    (run-scheme
-     (concat mit-root \"/bin/scheme --library \"
-          mit-root \"~a:\" scmutils \"~a\"
-          \" --band edwin-mechanics.com\"
-          \" --emacs\"))))
-
-;;;###autoload
-(defun scmutils-load-tags ()
-  (interactive)
-  (let ((scmutils \"~a\"))
-    (visit-tags-table (concat scmutils \"/TAGS\"))))
-"
-                                      mit-root out
-                                      lib-relative-path
-                                      lib-relative-path
-                                      (string-append out lib-relative-path
-                                                     "/scmutils"))))
-                          (emacs-generate-autoloads ,name emacs-lisp-dir)
-                          (emacs-byte-compile-directory emacs-lisp-dir)
-                          #t))))))
-      (home-page
-       "http://groups.csail.mit.edu/mac/users/gjs/6946/linux-install.htm")
-      (synopsis "Scmutils library for MIT Scheme")
-      (description "The Scmutils system is an integrated library of
-procedures, embedded in the programming language Scheme, and intended to
-support teaching and research in mathematical physics and electrical
-engineering.")
-      (license gpl2+))))
-
 (define-public sicp
   (let ((commit "225c172f9b859902a64a3c5dd5e1f9ac1a7382de"))
     (package
diff --git a/gnu/packages/screen.scm b/gnu/packages/screen.scm
index 38df2594f2..7763354158 100644
--- a/gnu/packages/screen.scm
+++ b/gnu/packages/screen.scm
@@ -2,10 +2,10 @@
 ;;; Copyright © 2013 Cyril Roelandt <tipecaml@gmail.com>
 ;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2015, 2017 Eric Bavier <bavier@member.fsf.org>
-;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2017, 2019 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
 ;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
-;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -23,10 +23,10 @@
 ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 
 (define-module (gnu packages screen)
-  #:use-module (srfi srfi-1)
   #:use-module (guix licenses)
   #:use-module (guix packages)
   #:use-module (guix download)
+  #:use-module (guix git-download)
   #:use-module (guix build-system gnu)
   #:use-module (gnu packages)
   #:use-module (gnu packages ncurses)
@@ -153,23 +153,27 @@ window manager as well as the Tmux terminal multiplexer.")
 (define-public reptyr
   (package
     (name "reptyr")
-    (version "0.6.2")
+    (version "0.7.0")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/nelhage/reptyr/archive"
-                           "/reptyr-" version ".tar.gz"))
-       ;; XXX: To be removed on next reptyr release.
-       (patches (search-patches "reptyr-fix-gcc-7.patch"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/nelhage/reptyr.git")
+             (commit (string-append "reptyr-" version))))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "07pfl0rkgm8m3f3jy8r9l2yvnhf8lgllpsk3mh57mhzdxq8fagf7"))))
+        (base32 "1hnijfz1ab34j2h2cxc3f43rmbclyihgn9x9wxa7jqqgb2xm71hj"))))
     (build-system gnu-build-system)
     (arguments
-     '(#:tests? #f ; no tests
-       #:make-flags (list "CC=gcc"
-                          (string-append "PREFIX=" %output))
-       #:phases (modify-phases %standard-phases (delete 'configure))))
+     '(#:tests? #f                      ; no tests
+       #:make-flags
+       (list "CC=gcc"
+             (string-append "PREFIX=" (assoc-ref %outputs "out"))
+             (string-append "BASHCOMPDIR=" (assoc-ref %outputs "out")
+                            "/etc/bash_completion.d"))
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure))))         ; no configure script
     (home-page "https://github.com/nelhage/reptyr")
     (synopsis "Tool for reparenting a running program to a new terminal")
     (description
@@ -177,7 +181,6 @@ window manager as well as the Tmux terminal multiplexer.")
 it to a new terminal.  Started a long-running process over @code{ssh}, but have
 to leave and don't want to interrupt it?  Just start a @code{screen}, use
 reptyr to grab it, and then kill the @code{ssh} session and head on home.")
-    ;; Reptyr currently does not support mips or aarch64.
-    (supported-systems (fold delete %supported-systems
-                             '("mips64el-linux" "aarch64-linux")))
+    ;; Reptyr currently does not support mips.
+    (supported-systems (delete "mips64el-linux" %supported-systems))
     (license expat)))
diff --git a/gnu/packages/sdl.scm b/gnu/packages/sdl.scm
index fe01086a86..2e8cec8ffb 100644
--- a/gnu/packages/sdl.scm
+++ b/gnu/packages/sdl.scm
@@ -8,6 +8,7 @@
 ;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2019 Kei Kebreau <kkebreau@posteo.net>
+;;; Copyright © 2019 Nicolas Goaziou <mail@nicolasgoaziou.fr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -34,7 +35,6 @@
   #:use-module (guix download)
   #:use-module (guix utils)
   #:use-module (guix build-system gnu)
-  #:use-module (guix build-system haskell)
   #:use-module (guix build-system trivial)
   #:use-module (gnu packages audio)
   #:use-module (gnu packages fcitx)
@@ -42,7 +42,6 @@
   #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages guile)
-  #:use-module (gnu packages haskell)
   #:use-module (gnu packages ibus)
   #:use-module (gnu packages image)
   #:use-module (gnu packages linux)
@@ -405,6 +404,22 @@ directory.")
     (propagated-inputs
      (propagated-inputs-with-sdl2 sdl-mixer))))
 
+(define-public sdl2-net
+  (package (inherit sdl-net)
+    (name "sdl2-net")
+    (version "2.0.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "http://www.libsdl.org/projects/SDL_net/release/"
+                       "SDL2_net-" version ".tar.gz"))
+       (sha256
+        (base32
+         "08cxc1bicmyk89kiks7izw1rlx5ng5n6xpy8fy0zxni3b9z8mkhm"))))
+    (propagated-inputs
+     (propagated-inputs-with-sdl2 sdl-net))))
+
 (define-public sdl2-ttf
   (package (inherit sdl-ttf)
     (name "sdl2-ttf")
@@ -544,93 +559,3 @@ sound and device input (keyboards, joysticks, mice, etc.).")
 The bindings are written in pure Scheme using Guile's foreign function
 interface.")
     (license lgpl3+)))
-
-(define-public ghc-sdl2
-  (package
-    (name "ghc-sdl2")
-    (version "2.4.1.0")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (string-append "https://hackage.haskell.org/package/"
-                           "sdl2/sdl2-" version ".tar.gz"))
-       (sha256
-        (base32
-         "0p4b12fmxps0sbnkqdfy0qw19s355yrkw7fgw6xz53wzq706k991"))))
-    (build-system haskell-build-system)
-    (arguments '(#:tests? #f)) ; tests require graphical environment
-    (inputs
-     `(("ghc-exceptions" ,ghc-exceptions)
-       ("ghc-linear" ,ghc-linear)
-       ("ghc-statevar" ,ghc-statevar)
-       ("ghc-text" ,ghc-text)
-       ("ghc-vector" ,ghc-vector)
-       ("sdl2" ,sdl2)))
-    (native-inputs
-     `(("ghc-weigh" ,ghc-weigh)
-       ("pkg-config" ,pkg-config)))
-    (home-page "http://hackage.haskell.org/package/sdl2")
-    (synopsis "High- and low-level bindings to the SDL library")
-    (description
-     "This package contains bindings to the SDL 2 library, in both high- and
-low-level forms.  The @code{SDL} namespace contains high-level bindings, where
-enumerations are split into sum types, and we perform automatic
-error-checking.  The @code{SDL.Raw} namespace contains an almost 1-1
-translation of the C API into Haskell FFI calls.  As such, this does not
-contain sum types nor error checking.  Thus this namespace is suitable for
-building your own abstraction over SDL, but is not recommended for day-to-day
-programming.")
-    (license bsd-3)))
-
-(define-public ghc-sdl2-mixer
-  (package
-    (name "ghc-sdl2-mixer")
-    (version "1.1.0")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (string-append "https://hackage.haskell.org/package/sdl2-mixer/"
-                           "sdl2-mixer-" version ".tar.gz"))
-       (sha256
-        (base32
-         "1k8avyccq5l9z7bwxigim312yaancxl1sr3q6a96bcm7pnhiak0g"))))
-    (build-system haskell-build-system)
-    (inputs
-     `(("ghc-data-default-class" ,ghc-data-default-class)
-       ("ghc-lifted-base" ,ghc-lifted-base)
-       ("ghc-monad-control" ,ghc-monad-control)
-       ("ghc-sdl2" ,ghc-sdl2)
-       ("ghc-vector" ,ghc-vector)
-       ("sdl2-mixer" ,sdl2-mixer)))
-    (native-inputs
-     `(("pkg-config" ,pkg-config)))
-    (home-page "http://hackage.haskell.org/package/sdl2-mixer")
-    (synopsis "Bindings to SDL2 mixer")
-    (description "This package provides Haskell bindings to
-@code{SDL2_mixer}.")
-    (license bsd-3)))
-
-(define-public ghc-sdl2-image
-  (package
-    (name "ghc-sdl2-image")
-    (version "2.0.0")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (string-append "https://hackage.haskell.org/package/sdl2-image/"
-                           "sdl2-image-" version ".tar.gz"))
-       (sha256
-        (base32
-         "1pr6dkg73cy9z0w54lrkj9c5bhxj56nl92lxikjy8kz6nyr455rr"))))
-    (build-system haskell-build-system)
-    (inputs
-     `(("ghc-sdl2" ,ghc-sdl2)
-       ("ghc-text" ,ghc-text)
-       ("sdl2-image" ,sdl2-image)))
-    (native-inputs
-     `(("pkg-config" ,pkg-config)))
-    (home-page "http://hackage.haskell.org/package/sdl2-image")
-    (synopsis "Bindings to SDL2_image")
-    (description "This package provides Haskell bindings to
-@code{SDL2_image}.")
-    (license expat)))
diff --git a/gnu/packages/search.scm b/gnu/packages/search.scm
index 9969cad8ac..fe51900179 100644
--- a/gnu/packages/search.scm
+++ b/gnu/packages/search.scm
@@ -23,11 +23,12 @@
 
 (define-module (gnu packages search)
   #:use-module ((guix licenses)
-                #:select (gpl2 gpl2+ gpl3+ lgpl2.1+ bsd-3 x11))
+                #:select (gpl2 gpl2+ gpl3+ lgpl2.1+ bsd-3 x11 perl-license))
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix utils)
   #:use-module (guix build-system gnu)
+  #:use-module (guix build-system perl)
   #:use-module (guix build-system python)
   #:use-module (gnu packages)
   #:use-module (gnu packages compression)
@@ -110,6 +111,31 @@ rich set of boolean query operators.")
     (synopsis "Python bindings for the Xapian search engine library")
     (license gpl2+)))
 
+(define-public perl-search-xapian
+  (package
+    (name "perl-search-xapian")
+    (version "1.2.25.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://cpan/authors/id/O/OL/OLLY/"
+                           "Search-Xapian-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0hpa8gi38j0ibq8af6dy69lm1bl5jnq76nsa69dbrzbr88l5m594"))))
+    (build-system perl-build-system)
+    (native-inputs
+     `(("perl-devel-leak" ,perl-devel-leak)))
+    (inputs
+     `(("xapian" ,xapian)))
+    (home-page "https://metacpan.org/release/Search-Xapian")
+    (synopsis "Perl XS frontend to the Xapian C++ search library")
+    (description
+     "Search::Xapian wraps most methods of most Xapian classes.  The missing
+classes and methods should be added in the future.  It also provides a
+simplified, more 'perlish' interface to some common operations.")
+    (license perl-license)))
+
 (define-public libtocc
   (package
     (name "libtocc")
@@ -243,7 +269,7 @@ interfaces, or a C API.")
     (home-page "https://pagure.io/mlocate")
     (synopsis "Locate files on the file system")
     (description
-     "mlocate is a locate/updatedb implementation.  The 'm' stands for
+     "mlocate is a locate/updatedb implementation.  The @code{m} stands for
 \"merging\": @code{updatedb} reuses the existing database to avoid rereading
 most of the file system, which makes it faster and does not trash the system
 caches as much.  The locate(1) utility is intended to be completely compatible
diff --git a/gnu/packages/security-token.scm b/gnu/packages/security-token.scm
index ba5bb5b4c6..8aa3f0caef 100644
--- a/gnu/packages/security-token.scm
+++ b/gnu/packages/security-token.scm
@@ -6,7 +6,7 @@
 ;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
 ;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
-;;; Copyright © 2018 Chris Marusich <cmmarusich@gmail.com>
+;;; Copyright © 2018, 2019 Chris Marusich <cmmarusich@gmail.com>
 ;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -29,14 +29,17 @@
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
   #:use-module (guix download)
+  #:use-module (guix gexp)
   #:use-module (guix git-download)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system glib-or-gtk)
+  #:use-module (guix build-system python)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages curl)
   #:use-module (gnu packages check)
   #:use-module (gnu packages docbook)
   #:use-module (gnu packages documentation)
+  #:use-module (gnu packages dns)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages graphviz)
   #:use-module (gnu packages gtk)
@@ -51,6 +54,10 @@
   #:use-module (gnu packages tex)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages python)
+  #:use-module (gnu packages python-crypto)
+  #:use-module (gnu packages python-xyz)
+  #:use-module (gnu packages swig)
   #:use-module (gnu packages web)
   #:use-module (gnu packages xml))
 
@@ -95,15 +102,16 @@ readers and is needed to communicate with such devices through the
 (define-public eid-mw
   (package
     (name "eid-mw")
-    (version "4.4.13")
+    (version "4.4.16")
     (source
      (origin
        (method git-fetch)
        (uri (git-reference
              (url "https://github.com/Fedict/eid-mw")
              (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
        (sha256
-        (base32 "14bgn2k0xbd6241qdghg787pgxy7k9rvcspaf74zwwyibaqknzyx"))))
+        (base32 "1q82fw63xzrnrgh1wyh457hal6vfdl6swqfq7l6kviywiwlzx7kd"))))
     (build-system glib-or-gtk-build-system)
     (native-inputs
      `(("autoconf" ,autoconf)
@@ -161,7 +169,7 @@ the low-level development kit for the Yubico YubiKey authentication device.")
 (define-public pcsc-lite
   (package
     (name "pcsc-lite")
-    (version "1.8.24")
+    (version "1.8.25")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -169,7 +177,7 @@ the low-level development kit for the Yubico YubiKey authentication device.")
                     name "-" version ".tar.bz2"))
               (sha256
                (base32
-                "0s3mv6csbi9303vvis0hilm71xsmi6cqkbh2kiipdisydbx6865q"))))
+                "14l7irs1nsh8b036ag4cfy8wryyysch78scz5dw6xxqwqgnpjvfp"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags '("--enable-usbdropdir=/var/lib/pcsc/drivers"
@@ -312,7 +320,7 @@ and other operations.  It includes a library and a command-line tool.")
 (define-public yubikey-personalization
   (package
     (name "yubikey-personalization")
-    (version "1.19.0")
+    (version "1.19.3")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -320,7 +328,7 @@ and other operations.  It includes a library and a command-line tool.")
                     "/Releases/ykpers-" version ".tar.gz"))
               (sha256
                (base32
-                "104lc0nnqdr365fa7c4vrq67rxp1dp8idndsh9jlhnj9dnhszj1b"))))
+                "0jhvnavjrpwzmmjcw486df5s48j53njqgyz36yz3dskbaz3kwlfr"))))
     (build-system gnu-build-system)
     (arguments
      '(#:configure-flags (list (string-append "--with-udevrulesdir="
@@ -341,3 +349,205 @@ and other operations.  It includes a library and a command-line tool.")
 line tools for personalizing YubiKeys.  You can use these to set an AES key,
 retrieve a YubiKey's serial number, and so forth.")
     (license license:bsd-2)))
+
+(define-public python-pyscard
+  (package
+    (name "python-pyscard")
+    (version "1.9.8")
+    (source (origin
+              (method url-fetch)
+              ;; The maintainer publishes releases on various sites, but
+              ;; SourceForge is apparently the only one with a signed release.
+              (uri (string-append
+                    "mirror://sourceforge/pyscard/pyscard/pyscard%20"
+                    version "/pyscard-" version ".tar.gz"))
+              (sha256
+               (base32
+                "15fh00z1an6r5j7hrz3jlq0rb3jygwf3x4jcwsa008bv8vpcg7gm"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         ;; Tell pyscard where to find the PCSC include directory.
+         (add-after 'unpack 'patch-platform-include-dirs
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let ((pcsc-include-dir (string-append
+                                      (assoc-ref inputs "pcsc-lite")
+                                      "/include/PCSC")))
+               (substitute* "setup.py"
+                 (("platform_include_dirs = \\[.*?\\]")
+                  (string-append
+                   "platform_include_dirs = ['" pcsc-include-dir "']")))
+               #t)))
+         ;; pyscard wants to dlopen libpcsclite, so tell it where it is.
+         (add-after 'unpack 'patch-dlopen
+           (lambda* (#:key inputs #:allow-other-keys)
+             (substitute* "smartcard/scard/winscarddll.c"
+               (("lib = \"libpcsclite\\.so\\.1\";")
+                (simple-format #f
+                               "lib = \"~a\";"
+                               (string-append (assoc-ref inputs "pcsc-lite")
+                                              "/lib/libpcsclite.so.1"))))
+             #t)))))
+    (inputs
+     `(("pcsc-lite" ,pcsc-lite)))
+    (native-inputs
+     `(("swig" ,swig)))
+    (home-page "https://github.com/LudovicRousseau/pyscard")
+    (synopsis "Smart card library for Python")
+    (description
+     "The pyscard smart card library is a framework for building smart card
+aware applications in Python.  The smart card module is built on top of the
+PCSC API Python wrapper module.")
+    (license license:lgpl2.1+)))
+
+(define-public python2-pyscard
+  (package-with-python2 python-pyscard))
+
+(define-public libu2f-host
+  (package
+    (name "libu2f-host")
+    (version "1.1.9")
+    (source (origin
+              (method url-fetch)
+              (uri
+               (string-append
+                "https://developers.yubico.com"
+                "/libu2f-host/Releases/libu2f-host-" version ".tar.xz"))
+              (sha256
+               (base32
+                "1hnh3f4scx07v9jfkr1nnxasmydk1cmivn0nijcp2p75bc1fznip"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:configure-flags
+       (list "--enable-gtk-doc"
+             (string-append "--with-udevrulesdir="
+                            (assoc-ref %outputs "out")
+                            "/lib/udev/rules.d"))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-docbook-xml
+           (lambda* (#:key inputs #:allow-other-keys)
+             ;; Avoid a network connection attempt during the build.
+             (substitute* "gtk-doc/u2f-host-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)))))
+    (inputs
+     `(("json-c" ,json-c)
+       ("hidapi" ,hidapi)))
+    (native-inputs
+     `(("help2man" ,help2man)
+       ("gengetopt" ,gengetopt)
+       ("pkg-config" ,pkg-config)
+       ("gtk-doc" ,gtk-doc)
+       ("docbook-xml" ,docbook-xml-4.3)
+       ("eudev" ,eudev)))
+    (home-page "https://developers.yubico.com/libu2f-host/")
+    ;; TRANSLATORS: The U2F protocol has a "server side" and a "host side".
+    (synopsis "U2F host-side C library and tool")
+    (description
+     "Libu2f-host provides a C library and command-line tool that implements
+the host-side of the Universal 2nd Factor (U2F) protocol.  There are APIs to
+talk to a U2F device and perform the U2F Register and U2F Authenticate
+operations.")
+    ;; Most files are LGPLv2.1+, but some files are GPLv3+.
+    (license (list license:lgpl2.1+ license:gpl3+))))
+
+(define-public python-fido2
+  (package
+    (name "python-fido2")
+    (version "0.5.0")
+    (source (origin
+              (method url-fetch)
+              (uri
+               (string-append
+                "https://github.com/Yubico/python-fido2/releases/download/"
+                version "/fido2-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1pl8d2pr6jzqj4y9qiaddhjgnl92kikjxy0bgzm2jshkzzic8mp3"))
+              (snippet
+               ;; Remove bundled dependency.
+               #~(delete-file "fido2/public_suffix_list.dat"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'install-public-suffix-list
+           (lambda* (#:key inputs #:allow-other-keys)
+             (copy-file
+              (string-append (assoc-ref inputs "public-suffix-list")
+                             "/share/public-suffix-list-"
+                             ,(package-version public-suffix-list)
+                             "/public_suffix_list.dat")
+              "fido2/public_suffix_list.dat")
+             #t)))))
+    (propagated-inputs
+     `(("python-cryptography" ,python-cryptography)
+       ("python-six" ,python-six)))
+    (native-inputs
+     `(("python-mock" ,python-mock)
+       ("python-pyfakefs" ,python-pyfakefs)
+       ("public-suffix-list" ,public-suffix-list)))
+    (home-page "https://github.com/Yubico/python-fido2")
+    (synopsis "Python library for communicating with FIDO devices over USB")
+    (description
+     "This Python library provides functionality for communicating with a Fast
+IDentity Online (FIDO) device over Universal Serial Bus (USB) as well as
+verifying attestation and assertion signatures.  It aims to support the FIDO
+Universal 2nd Factor (U2F) and FIDO 2.0 protocols for communicating with a USB
+authenticator via the Client-to-Authenticator Protocol (CTAP 1 and 2).  In
+addition to this low-level device access, classes defined in the
+@code{fido2.client} and @code{fido2.server} modules implement higher level
+operations which are useful when interfacing with an Authenticator, or when
+implementing a Relying Party.")
+    ;; python-fido2 contains some derivative files originally from pyu2f
+    ;; (https://github.com/google/pyu2f).  These files are licensed under the
+    ;; Apache License, version 2.0.  The maintainers have customized these
+    ;; files for internal use, so they are not really a bundled dependency.
+    (license (list license:bsd-2 license:asl2.0))))
+
+(define-public python2-fido2
+  (package-with-python2 python-fido2))
+
+(define-public python-yubikey-manager
+  (package
+    (name "python-yubikey-manager")
+    (version "2.1.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "https://developers.yubico.com/yubikey-manager/Releases"
+                    "/yubikey-manager-" version ".tar.gz"))
+              (sha256
+               (base32
+                "11rsmcaj60k3y5m5gdhr2nbbz0w5dm3m04klyxz0fh5hnpcmr7fm"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     `(("python-six" ,python-six)
+       ("python-pyscard" ,python-pyscard)
+       ("python-pyusb" ,python-pyusb)
+       ("python-click" ,python-click)
+       ("python-cryptography" ,python-cryptography)
+       ("python-pyopenssl" ,python-pyopenssl)
+       ("python-fido2" ,python-fido2)))
+    (inputs
+     `(("yubikey-personalization" ,yubikey-personalization)
+       ("pcsc-lite" ,pcsc-lite)
+       ("libusb" ,libusb)))
+    (native-inputs
+     `(("swig" ,swig)
+       ("python-mock" ,python-mock)))
+    (home-page "https://developers.yubico.com/yubikey-manager/")
+    (synopsis "Command line tool and library for configuring a YubiKey")
+    (description
+     "Python library and command line tool for configuring a YubiKey.  Note
+that after installing this package, you might still need to add appropriate
+udev rules to your system configuration to be able to configure the YubiKey as
+an unprivileged user.")
+    (license license:bsd-2)))
+
+(define-public python2-yubikey-manager
+  (package-with-python2 python-yubikey-manager))
diff --git a/gnu/packages/serialization.scm b/gnu/packages/serialization.scm
index 05e0d1d833..ae1ef9749b 100644
--- a/gnu/packages/serialization.scm
+++ b/gnu/packages/serialization.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2015, 2017 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2015, 2017, 2019 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2016 Lukas Gradl <lgradl@openmailbox.org>
 ;;; Copyright © 2016 David Craven <david@craven.ch>
 ;;; Copyright © 2016 Marius Bakke <mbakke@fastmail.com>
@@ -30,6 +30,7 @@
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
   #:use-module (guix download)
+  #:use-module (guix git-download)
   #:use-module (guix utils)
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system gnu)
@@ -317,6 +318,23 @@ preserve existing comment in unserialization/serialization steps, making
 it a convenient format to store user input files.")
     (license license:expat)))
 
+;; Tensorflow does not build with jsoncpp 1.8.x.  It is built with commit
+;; 4356d9bba191e1e16ce7a92073cbf3e63564e973, which lies between version 1.7.2
+;; and 1.7.3.
+(define-public jsoncpp-for-tensorflow
+  (package (inherit jsoncpp)
+    (name "jsoncpp")
+    (version "1.7.3")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/open-source-parsers/jsoncpp.git")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1180ln8blrb0mwzpcf78k49hlki6di65q77rsvglf83kfcyh4d7z"))))))
+
 (define-public capnproto
   (package
     (name "capnproto")
diff --git a/gnu/packages/shellutils.scm b/gnu/packages/shellutils.scm
index 88c0f32e99..56359ce160 100644
--- a/gnu/packages/shellutils.scm
+++ b/gnu/packages/shellutils.scm
@@ -105,36 +105,42 @@ are already there.")
     (name "direnv")
     (version "2.15.2")
     (source
-     (origin (method url-fetch)
-             (uri (string-append "https://github.com/direnv/" name
-                                 "/archive/v" version ".tar.gz"))
-             (file-name (string-append name "-" version ".tar.gz"))
+     (origin (method git-fetch)
+             (uri (git-reference
+                   (url "https://github.com/direnv/direnv.git")
+                   (commit (string-append "v" version))))
+             (file-name (git-file-name name version))
              (sha256
               (base32
-               "1hhmc6rb7b1d4s4kgb4blrq35h388ax37ap88dq3dgfcw9w6j1rm"))))
-    (build-system gnu-build-system)
+               "1y18619pmhfl0vrf4w0h75ybkkwgi9wcb7d9kv4n8drg1xp4aw4w"))))
+    (build-system go-build-system)
     (arguments
-     `(#:test-target "test"
-       #:make-flags (list (string-append "DESTDIR=" (assoc-ref %outputs "out")))
-       #:modules ((guix build gnu-build-system)
-                  ((guix build go-build-system) #:prefix go:)
-                  (guix build union)
-                  (guix build utils))
-       #:imported-modules (,@%gnu-build-system-modules
-                            (guix build union)
-                            (guix build go-build-system))
+     '(#:import-path "github.com/direnv/direnv"
        #:phases
        (modify-phases %standard-phases
-         (delete 'configure)
-         ;; Help the build scripts find the Go language dependencies.
-         (add-before 'unpack 'setup-go-environment
-           (assoc-ref go:%standard-phases 'setup-go-environment)))))
-    (inputs
-     `(("go" ,go)
-       ("go-github-com-burntsushi-toml" ,go-github-com-burntsushi-toml)
-       ("go-github-com-direnv-go-dotenv" ,go-github-com-direnv-go-dotenv)))
+         (add-after 'unpack 'delete-vendor
+           (lambda _
+             ;; Using a snippet causes issues with the name of the directory,
+             ;; so delete the extra source code here.
+             (delete-file-recursively "src/github.com/direnv/direnv/vendor")
+             #t))
+         (replace 'check
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests?
+               (setenv "HOME" "/tmp")
+               (with-directory-excursion "src/github.com/direnv/direnv"
+                 ;; The following file needs to be writable so it can be
+                 ;; modified by the testsuite.
+                 (make-file-writable "test/scenarios/base/.envrc")
+                 (invoke "make" "test")
+                 ;; Clean up from the tests, especially so that the extra
+                 ;; direnv executable that's generated is removed.
+                 (invoke "make" "clean")))
+             #t)))))
     (native-inputs
-      `(("which" ,which)))
+     `(("go-github-com-burntsushi-toml" ,go-github-com-burntsushi-toml)
+       ("go-github-com-direnv-go-dotenv" ,go-github-com-direnv-go-dotenv)
+       ("which" ,which)))
     (home-page "https://direnv.net/")
     (synopsis "Environment switcher for the shell")
     (description
diff --git a/gnu/packages/spice.scm b/gnu/packages/spice.scm
index 55b551a119..1e9dfadf02 100644
--- a/gnu/packages/spice.scm
+++ b/gnu/packages/spice.scm
@@ -2,6 +2,7 @@
 ;;; Copyright © 2016 David Craven <david@craven.ch>
 ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2019 Rutger Helling <rhelling@mykolab.com>
+;;; Copyright © 2019 Marius Bakke <mbakke@fastmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -97,7 +98,7 @@ system to use the host GPU to accelerate 3D rendering.")
 (define-public spice-protocol
   (package
     (name "spice-protocol")
-    (version "0.12.15")
+    (version "0.14.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -105,7 +106,7 @@ system to use the host GPU to accelerate 3D rendering.")
                 "spice-protocol-" version ".tar.bz2"))
               (sha256
                (base32
-                "06b461i4jv741in8617jjpfk28wk7zs9p7841njkf4sbm8xv4kcb"))))
+                "1b3f44c13pqsp7aabmcinfbmgl79038bp5548l5pjs16lcfam95n"))))
     (build-system gnu-build-system)
     (synopsis "Protocol headers for the SPICE protocol")
     (description "SPICE (the Simple Protocol for Independent Computing
@@ -114,10 +115,23 @@ which allows users to view a desktop computing environment.")
     (home-page "https://www.spice-space.org")
     (license (list license:bsd-3 license:lgpl2.1+))))
 
+(define-public spice-protocol-0.12
+  (package
+    (inherit spice-protocol)
+    (version "0.12.15")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "https://www.spice-space.org/download/releases/"
+                    "spice-protocol-" version ".tar.bz2"))
+              (sha256
+               (base32
+                "06b461i4jv741in8617jjpfk28wk7zs9p7841njkf4sbm8xv4kcb"))))))
+
 (define-public spice-gtk
   (package
     (name "spice-gtk")
-    (version "0.35")
+    (version "0.36")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -125,7 +139,7 @@ which allows users to view a desktop computing environment.")
                 "spice-gtk-" version ".tar.bz2"))
               (sha256
                (base32
-                "11lymg467gvj5ys8k22ihnfbxjn4x34ygyzirpg2nphjwlyhgrml"))))
+                "1kfpixfdmxs9wn3id48gc9bvfrgxz935y3wpykf40bgi9mcc69ki"))))
     (build-system gnu-build-system)
     (propagated-inputs
       `(("gstreamer" ,gstreamer)
@@ -134,20 +148,23 @@ which allows users to view a desktop computing environment.")
         ("gst-plugins-good" ,gst-plugins-good)
         ("gst-plugins-bad" ,gst-plugins-bad)
         ("gst-plugins-ugly" ,gst-plugins-ugly)
-        ("spice-protocol" ,spice-protocol)))
+        ("spice-protocol" ,spice-protocol-0.12)
+
+        ;; These are required by the pkg-config files.
+        ("gtk+" ,gtk+)
+        ("pixman" ,pixman)
+        ("openssl" ,openssl)))
     (inputs
       `(("glib-networking" ,glib-networking)
         ("gobject-introspection" ,gobject-introspection)
-        ("gtk+" ,gtk+)
+        ("json-glib" ,json-glib)
         ("libepoxy" ,libepoxy)
         ("libjpeg" ,libjpeg)
         ("libxcb" ,libxcb)
         ("lz4" ,lz4)
         ("mesa" ,mesa)
-        ("pixman" ,pixman)
         ("pulseaudio" ,pulseaudio)
         ("python" ,python)
-        ("openssl" ,openssl)
         ("opus" ,opus)
         ("usbredir" ,usbredir)))
     (native-inputs
@@ -162,6 +179,13 @@ which allows users to view a desktop computing environment.")
           "--enable-introspection")
         #:phases
          (modify-phases %standard-phases
+           (add-before 'check 'disable-session-test
+             (lambda _
+               ;; XXX: Disable session tests, because they require USB support,
+               ;; which is not available in the build container.
+               (substitute* "tests/Makefile"
+                 (("test-session\\$\\(EXEEXT\\) ") ""))
+               #t))
            (add-after
             'install 'wrap-spicy
             (lambda* (#:key inputs outputs #:allow-other-keys)
@@ -178,7 +202,7 @@ which allows users to view a desktop computing environment.")
 (define-public spice
   (package
     (name "spice")
-    (version "0.14.1")
+    (version "0.14.2")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -186,7 +210,7 @@ which allows users to view a desktop computing environment.")
                 "spice-server/spice-" version ".tar.bz2"))
               (sha256
                (base32
-                "068mb9l7wzk4k4c65bzvpw5fyyzh81rb6z81skgdxvh67pk5vb8y"))))
+                "19r999py9v9c7md2bb8ysj809ag1hh6djl1ik8jcgx065s4b60xj"))))
     (build-system gnu-build-system)
     (propagated-inputs
       `(("openssl" ,openssl)
@@ -217,7 +241,7 @@ which allows users to view a desktop computing environment.")
         #:parallel-tests? #f))
     (synopsis "Server implementation of the SPICE protocol")
     (description "SPICE is a remote display system built for virtual
-environments which allows you to view a computing 'desktop' environment
+environments which allows you to view a computing @code{desktop} environment
 not only on the machine where it is running, but from anywhere on the
 Internet and from a wide variety of machine architectures.")
     (home-page "https://www.spice-space.org")
@@ -291,7 +315,6 @@ resolution scaling on graphical console window resize.")
       `(("gtk+" ,gtk+)
         ("libcap" ,libcap)
         ("libxml2" ,libxml2)
-        ("openssl" ,openssl)
         ("spice-gtk" ,spice-gtk)))
     (native-inputs
       `(("glib:bin" ,glib "bin")
diff --git a/gnu/packages/ssh.scm b/gnu/packages/ssh.scm
index bd26149872..e887cd7e70 100644
--- a/gnu/packages/ssh.scm
+++ b/gnu/packages/ssh.scm
@@ -111,7 +111,7 @@ applications.")
 (define-public libssh2
   (package
    (name "libssh2")
-   (version "1.8.1")
+   (version "1.8.2")
    (source (origin
             (method url-fetch)
             (uri (string-append
@@ -119,7 +119,7 @@ applications.")
                    version ".tar.gz"))
             (sha256
              (base32
-              "0ngif3ynk6xqzy5nlfjs7bsmfm81g9f145av0z86kf0vbgrigda0"))
+              "0rqd37pc80nm2pz4sa2m9pfc48axys7jwq1l7z0vii5nyvchg0q8"))
             (patches
              (search-patches "libssh2-fix-build-failure-with-gcrypt.patch"))))
    (build-system gnu-build-system)
@@ -143,18 +143,35 @@ a server that supports the SSH-2 protocol.")
    (license license:bsd-3)
    (home-page "https://www.libssh2.org/")))
 
+;; XXX A hidden special obsolete libssh2 for temporary use in the curl package.
+;; <https://bugs.gnu.org/34927>
+(define-public libssh2-1.8.0
+  (hidden-package
+    (package
+      (inherit libssh2)
+      (version "1.8.0")
+      (source (origin
+                (method url-fetch)
+                (uri (string-append
+                      "https://www.libssh2.org/download/libssh2-"
+                      version ".tar.gz"))
+                (sha256
+                 (base32
+                  "1m3n8spv79qhjq4yi0wgly5s5rc8783jb1pyra9bkx1md0plxwrr"))
+                (patches
+                 (search-patches "libssh2-fix-build-failure-with-gcrypt.patch")))))))
+
 (define-public openssh
   (package
    (name "openssh")
-   (version "7.9p1")
+   (version "8.0p1")
    (source (origin
              (method url-fetch)
              (uri (string-append "mirror://openbsd/OpenSSH/portable/"
                                  name "-" version ".tar.gz"))
-             (patches (search-patches "openssh-CVE-2018-20685.patch"))
              (sha256
               (base32
-               "1b8sy6v0b8v4ggmknwcqx3y1rjcpsll0f1f8f4vyv11x4ni3njvb"))))
+               "0s7xh4s0qcipnjh9ls5blxcpvhyd116z9dxn3q1yi64lwrwki55x"))))
    (build-system gnu-build-system)
    (native-inputs `(("groff" ,groff)
                     ("pkg-config" ,pkg-config)))
@@ -451,7 +468,7 @@ TCP, not the SSH protocol.")
 (define-public dropbear
   (package
     (name "dropbear")
-    (version "2019.77")
+    (version "2019.78")
     (source
      (origin
        (method url-fetch)
@@ -459,7 +476,7 @@ TCP, not the SSH protocol.")
              "https://matt.ucc.asn.au/dropbear/releases/"
              "dropbear-" version ".tar.bz2"))
        (sha256
-        (base32 "13a55fcy2mx2pvsfj6dh9107k4wnbd9ybdyi3w3ivgikwvmph7yr"))))
+        (base32 "19242qlr40pbqfqd0gg6h8qpj38q6lgv03ja6sahj9vj2abnanaj"))))
     (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
diff --git a/gnu/packages/sssd.scm b/gnu/packages/sssd.scm
index 75ce7c854b..6d6caab0ad 100644
--- a/gnu/packages/sssd.scm
+++ b/gnu/packages/sssd.scm
@@ -35,10 +35,10 @@
   #:use-module (gnu packages docbook)
   #:use-module (gnu packages documentation)
   #:use-module (gnu packages glib)
-  #:use-module (gnu packages gnuzilla)
+  #:use-module (gnu packages kerberos)
   #:use-module (gnu packages libunistring)
   #:use-module (gnu packages linux)
-  #:use-module (gnu packages kerberos)
+  #:use-module (gnu packages nss)
   #:use-module (gnu packages openldap)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages pcre)
diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm
index 6face9910a..cc9fa69a32 100644
--- a/gnu/packages/statistics.scm
+++ b/gnu/packages/statistics.scm
@@ -2,7 +2,7 @@
 ;;; Copyright © 2015, 2016, 2017, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2015 Vicente Vera Parra <vicentemvp@gmail.com>
 ;;; Copyright © 2016 Andreas Enge <andreas@enge.fr>
-;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2017, 2019 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016 Pjotr Prins <pjotr.guix@thebird.nl>
 ;;; Copyright © 2016 Roel Janssen <roel@gnu.org>
 ;;; Copyright © 2016 Ben Woodcroft <donttrustben@gmail.com>
@@ -68,6 +68,7 @@
   #:use-module (gnu packages readline)
   #:use-module (gnu packages ssh)
   #:use-module (gnu packages tcl)
+  #:use-module (gnu packages tex)
   #:use-module (gnu packages texinfo)
   #:use-module (gnu packages time)
   #:use-module (gnu packages tls)
@@ -177,7 +178,7 @@ This package also provides @command{xls2csv} to export Excel files to CSV.")
 (define r-with-tests
   (package
     (name "r-with-tests")
-    (version "3.5.3")
+    (version "3.6.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://cran/src/base/R-"
@@ -185,7 +186,7 @@ This package also provides @command{xls2csv} to export Excel files to CSV.")
                                   version ".tar.gz"))
               (sha256
                (base32
-                "1337irx9y0r3jm1rcq1dcwnxsgfhnvgjs5wadcyh17vhpnvkgyib"))))
+                "02bmylmzrm9sdidirmwy233lghmd2346z725ca71ari68lzarz1n"))))
     (build-system gnu-build-system)
     (arguments
      `(#:disallowed-references (,tzdata-for-tests)
@@ -251,6 +252,10 @@ as.POSIXct(if (\"\" != Sys.getenv(\"SOURCE_DATE_EPOCH\")) {\
                (("(install_package_description\\(.*\"')\\)\"" line prefix)
                 (string-append prefix ", builtStamp='1970-01-01')\"")))
 
+             (substitute* "src/library/Recommended/Makefile.in"
+               (("INSTALL_OPTS =" m)
+                (string-append m " --built-timestamp=1970-01-01" m)))
+
              ;; R bundles an older version of help2man, which does not respect
              ;; SOURCE_DATE_EPOCH.  We cannot just use the latest help2man,
              ;; because that breaks a test.
@@ -312,6 +317,17 @@ as.POSIXct(if (\"\" != Sys.getenv(\"SOURCE_DATE_EPOCH\")) {\
        ("perl" ,perl)
        ("pkg-config" ,pkg-config)
        ("texinfo" ,texinfo) ; for building HTML manuals
+       ("texlive" ,(texlive-union (list texlive-fonts-amsfonts
+                                        texlive-fonts-ec
+                                        texlive-latex-amsfonts
+                                        texlive-latex-base
+                                        texlive-latex-fancyvrb
+                                        texlive-latex-graphics
+                                        texlive-latex-hyperref
+                                        texlive-latex-oberdiek
+                                        texlive-latex-tools
+                                        texlive-latex-upquote
+                                        texlive-latex-url)))
        ("tzdata" ,tzdata-for-tests)
        ("xz" ,xz)))
     (inputs
@@ -379,14 +395,14 @@ available, greatly increasing its breadth and scope.")
 (define-public r-boot
   (package
     (name "r-boot")
-    (version "1.3-20")
+    (version "1.3-22")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "boot" version))
        (sha256
         (base32
-         "0ai1qpm0p4z07xr0dvag8sdn9jrxcwanrsk9khzmww094jvr1jxd"))))
+         "1z2dig1mi76b3b9ck6qlkh07l3hs478gaf70db5nv8x7w2qhq7yg"))))
     (build-system r-build-system)
     (home-page "https://cran.r-project.org/web/packages/boot")
     (synopsis "Bootstrap functions for R")
@@ -400,14 +416,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.1")
+    (version "7.3-51.4")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "MASS" version))
        (sha256
         (base32
-         "14907ia8418mp3p1rs1i2f1x5b6kk5z998dk353a29j3xqf3ybyq"))))
+         "0x1ckf51y851g0kvbhsgdxb26vfpmbw3xdbcnh3ck7fjm13da4cr"))))
     (properties `((upstream-name . "MASS")))
     (build-system r-build-system)
     (home-page "http://www.stats.ox.ac.uk/pub/MASS4/")
@@ -443,14 +459,14 @@ k-nearest neighbour, Learning Vector Quantization and Self-Organizing Maps.")
 (define-public r-cluster
   (package
     (name "r-cluster")
-    (version "2.0.7-1")
+    (version "2.0.8")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "cluster" version))
        (sha256
         (base32
-         "1grxbifbc4nwig25dmjgkympnbzb4al0w6k1c0ibdhpk1h4l20di"))))
+         "0jkmlhjknndh0lmyvqz7s7j1hhnarixm6zb39np4ssw47flk0nfc"))))
     (build-system r-build-system)
     (inputs
      `(("gfortran" ,gfortran)))
@@ -548,14 +564,14 @@ also flexible enough to handle most nonstandard requirements.")
 (define-public r-matrix
   (package
     (name "r-matrix")
-    (version "1.2-16")
+    (version "1.2-17")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "Matrix" version))
        (sha256
         (base32
-         "10fh0y1wd0bvnqbzlyck08pn1vxcd58bskx2lrf9m42v5792ba9p"))))
+         "1k1zf92ycqr7fz44w7bp1p354ww7jg0wm23ybb8dzmbg37qfchyv"))))
     (properties `((upstream-name . "Matrix")))
     (build-system r-build-system)
     (propagated-inputs
@@ -570,14 +586,14 @@ and operations on them using LAPACK and SuiteSparse.")
 (define-public r-nlme
   (package
     (name "r-nlme")
-    (version "3.1-137")
+    (version "3.1-139")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "nlme" version))
        (sha256
         (base32
-         "11vyxxc0n36vb8d8g02zr0402ymicvbifwdsqm7gy9iqqnwrn101"))))
+         "0fap121c18nbznyzvnqvsdiszg2nbmkas6zhgrz1f8jiv1lzqq04"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-lattice" ,r-lattice)))
@@ -636,14 +652,14 @@ single hidden layer, and for multinomial log-linear models.")
 (define-public r-rpart
   (package
     (name "r-rpart")
-    (version "4.1-13")
+    (version "4.1-15")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "rpart" version))
        (sha256
         (base32
-         "0k29qx3k3pj5sgrpg0p47yd8i811rmdakaw57bigpq1449asc4cf"))))
+         "0p5frya963ppn476p5dxs2mnarsalksr6gw9zzmjsn8ikq7bx3ib"))))
     (build-system r-build-system)
     (home-page "https://cran.r-project.org/web/packages/rpart")
     (synopsis "Recursive partitioning and regression trees")
@@ -675,14 +691,14 @@ analysis.")
 (define-public r-survival
   (package
     (name "r-survival")
-    (version "2.43-3")
+    (version "2.44-1.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "survival" version))
        (sha256
         (base32
-         "0ldrjja1dj4n1ic0lbggm7jvk52sl5h85i8m23nrgndi60acsv4r"))))
+         "1faiwyg7x8y2kfzb66l4yc8br0mdlz4k20znmjrwq96dbzhm3cam"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-matrix" ,r-matrix)))
@@ -802,10 +818,10 @@ effects of different types of color-blindness.")
     (home-page "http://dirk.eddelbuettel.com/code/digest.html")
     (synopsis "Create cryptographic hash digests of R objects")
     (description
-     "This package contains an implementation of a function 'digest()' for the
-creation of hash digests of arbitrary R objects (using the md5, sha-1,
+     "This package contains an implementation of a function @code{digest()} for
+the creation of hash digests of arbitrary R objects (using the md5, sha-1,
 sha-256, crc32, xxhash and murmurhash algorithms) permitting easy comparison
-of R language objects, as well as a function 'hmac()' to create hash-based
+of R language objects, as well as a function @code{hmac()} to create hash-based
 message authentication code.
 
 Please note that this package is not meant to be deployed for cryptographic
@@ -827,7 +843,7 @@ OpenSSL should be used.")
     (home-page "https://cran.r-project.org/web/packages/estimability")
     (synopsis "Tools for assessing estimability of linear predictions")
     (description "Provides tools for determining estimability of linear
-functions of regression coefficients, and 'epredict' methods that handle
+functions of regression coefficients, and @code{epredict} methods that handle
 non-estimable cases correctly.")
     (license license:gpl2+)))
 
@@ -1063,7 +1079,7 @@ transliteration, concatenation, date-time formatting and parsing, etc.")
     (synopsis "Simple, consistent wrappers for common string operations")
     (description
      "Stringr is a consistent, simple and easy to use set of wrappers around
-the fantastic 'stringi' package.  All function and argument names (and
+the fantastic @code{stringi} package.  All function and argument names (and
 positions) are consistent, all functions deal with \"NA\"'s and zero length
 vectors in the same way, and the output from one function is easy to feed into
 the input of another.")
@@ -1120,13 +1136,13 @@ legends.")
 (define-public r-ggplot2
   (package
     (name "r-ggplot2")
-    (version "3.1.0")
+    (version "3.1.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "ggplot2" version))
        (sha256
-        (base32 "1msy36r21nlmnpyaw2m9k0ykmnd19b9il01b65w457pfw75prrs9"))))
+        (base32 "0y8cks9r9hvjlx0isnvbgs3p0al167hlr3q7c3syfcj77dzjkpmz"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-digest" ,r-digest)
@@ -1182,23 +1198,23 @@ agnes cluster diagrams.")
 (define-public r-gdtools
   (package
     (name "r-gdtools")
-    (version "0.1.7")
+    (version "0.1.8")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "gdtools" version))
        (sha256
         (base32
-         "122k9spymawfnfyksxyapwq9cigydy5nrjwhrwrhy3qkax3aycf6"))))
+         "1ayy0s699ghaz34lklvcskfwman3x2n2772s5sa5x9k9xgsnxwcl"))))
     (build-system r-build-system)
     (native-inputs
-     `(("r-rcpp" ,r-rcpp)
-       ("pkg-config" ,pkg-config)))
+     `(("pkg-config" ,pkg-config)))
     (inputs
      `(("cairo" ,cairo)
        ("zlib" ,zlib)))
     (propagated-inputs
-     `(("r-withr" ,r-withr)))
+     `(("r-rcpp" ,r-rcpp)
+       ("r-withr" ,r-withr)))
     (home-page "https://cran.r-project.org/web/packages/gdtools")
     (synopsis "Utilities for graphical rendering")
     (description
@@ -1586,13 +1602,13 @@ R packages that praise their users.")
 (define-public r-testthat
   (package
     (name "r-testthat")
-    (version "2.0.1")
+    (version "2.1.1")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "testthat" version))
               (sha256
                (base32
-                "1cafy5xsjx6m08s45456mjsal7mfxzwpbrds0p4z3gwam948gpzy"))))
+                "03jgr0hlr77yp0aib4v30yjyjrjsa8dczr02yk21m93vl25vqvkp"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-cli" ,r-cli)
@@ -1635,13 +1651,13 @@ defined in different packages.")
 (define-public r-rlang
   (package
     (name "r-rlang")
-    (version "0.3.2")
+    (version "0.3.4")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "rlang" version))
               (sha256
                (base32
-                "13s8dh7nryjacp9jpi092icxf5ffkp16qxv59m923g5nkf8f03hi"))))
+                "1pks7d2xavzgaxqrnk3f79qsmv4wqv93f8991jv93pnb1mxpyijf"))))
     (build-system r-build-system)
     (home-page "http://rlang.tidyverse.org")
     (synopsis "Functions for base types, core R and Tidyverse features")
@@ -1714,14 +1730,14 @@ database.")
 (define-public r-dbplyr
   (package
     (name "r-dbplyr")
-    (version "1.3.0")
+    (version "1.4.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "dbplyr" version))
        (sha256
         (base32
-         "07p23vyvi7s4abldhkyir05kcf7xnfc18igfryq12j67xd0jql0m"))))
+         "0f4gfkzl07gfwihyc747kdnzxahaw2g28wli4jmikrvczldvjqjx"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-assertthat" ,r-assertthat)
@@ -1827,13 +1843,13 @@ times.")
 (define-public r-data-table
   (package
     (name "r-data-table")
-    (version "1.12.0")
+    (version "1.12.2")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "data.table" version))
               (sha256
                (base32
-                "1xz388khklqqc39r1cmjvqm65azambgzqw0743aypm6v4chi26v1"))))
+                "1x929lwhai6nkppm4zvicyw5qh5va5sizp86r30qnfkh1n7w2mfv"))))
     (build-system r-build-system)
     (home-page "https://github.com/Rdatatable/data.table/wiki")
     (synopsis "Enhanced version of data.frame R object")
@@ -1847,14 +1863,14 @@ and fast file reading.")
 (define-public r-xtable
   (package
     (name "r-xtable")
-    (version "1.8-3")
+    (version "1.8-4")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "xtable" version))
        (sha256
         (base32
-         "09f311gq9g7dzf8jdvcx72j11xb7p00jlg066jjbpa6pz3zv1cjk"))))
+         "077xfm0gphvhsay75amd9v90zk57kjgrrlgih04fyrbqqblc1gjs"))))
     (build-system r-build-system)
     (native-inputs
      `(("r-knitr" ,r-knitr))) ; for vignettes
@@ -2056,13 +2072,13 @@ jackknifed confidence intervals are available for most estimates.")
 (define-public r-rversions
   (package
     (name "r-rversions")
-    (version "1.0.3")
+    (version "1.1.0")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "rversions" version))
               (sha256
                (base32
-                "0i2gi05nrvknr7g89rbppkswyfcwwd4r9gp75fdfhpah8sgq1l11"))))
+                "0g4wvq6m9inhy6ww18lvkhkgarb1m9dp2kdxkkyk5qvldgqa598l"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-curl" ,r-curl)
@@ -2096,14 +2112,14 @@ limited to R.")
 (define-public r-backports
   (package
     (name "r-backports")
-    (version "1.1.3")
+    (version "1.1.4")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "backports" version))
        (sha256
         (base32
-         "1hac46xaawnqajlsfb5k7pfkc2ya9h76s5qv9ycj3jafh93d26z4"))))
+         "00zz969vc2gfi5p9q65pzghq2bxm3p9zqgwqswkyz9rgybz5wjzf"))))
     (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")
@@ -2274,9 +2290,9 @@ other packages.")
     (synopsis "CommonMark and Github Markdown Rendering in R")
     (description
      "The CommonMark specification defines a rationalized version of markdown
-syntax.  This package uses the 'cmark' reference implementation for converting
-markdown text into various formats including HTML, LaTeX and groff man.  In
-addition, it exposes the markdown parse tree in XML format.  The latest
+syntax.  This package uses the @code{cmark} reference implementation for
+converting markdown text into various formats including HTML, LaTeX and groff
+man.  In addition, it exposes the markdown parse tree in XML format.  The latest
 version of this package also adds support for Github extensions including
 tables, autolinks and strikethrough text.")
     (license license:bsd-2)))
@@ -2316,14 +2332,14 @@ collation, and NAMESPACE files.")
 (define-public r-openssl
   (package
     (name "r-openssl")
-    (version "1.2.2")
+    (version "1.3")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "openssl" version))
        (sha256
         (base32
-         "0jfkna9zzhy2m5qd8501ija5jnpxzjn8wi3wjw0kr2fm4sl7qynz"))))
+         "1gx4mk7js1irzkql5rgk48ja9c6mm28ccxz483ngbhdd57az90qw"))))
     (build-system r-build-system)
     (inputs
      `(("libressl" ,libressl)))
@@ -2421,13 +2437,13 @@ informative error messages when it's not available.")
 (define-public r-devtools
   (package
     (name "r-devtools")
-    (version "2.0.1")
+    (version "2.0.2")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "devtools" version))
               (sha256
                (base32
-                "1nyspqicn9zd1rgq3k07b3179i8w5ys6jbd65g9q8qczrb7z3x8f"))))
+                "028pppj39ng7q17k27531s8k00lmw982vz5krn74n9b8f2azm8lr"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-callr" ,r-callr)
@@ -2521,13 +2537,13 @@ disk (or a connection).")
 (define-public r-plotrix
   (package
     (name "r-plotrix")
-    (version "3.7-4")
+    (version "3.7-5")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "plotrix" version))
               (sha256
                (base32
-                "1hs0zwaqs34559girinvysjfbvznyn8znp9cwvkqx6k2cqvcjinj"))))
+                "0k6ivryac1k81z2dijjds376a9jxwk8rf5g48snj67cnjffkybxj"))))
     (build-system r-build-system)
     (home-page "https://cran.r-project.org/web/packages/plotrix")
     (synopsis "Various plotting functions")
@@ -2580,13 +2596,13 @@ well as additional utilities such as panel and axis annotation functions.")
 (define-public r-rcpparmadillo
   (package
     (name "r-rcpparmadillo")
-    (version "0.9.200.7.1")
+    (version "0.9.400.2.0")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "RcppArmadillo" version))
               (sha256
                (base32
-                "1gy3ywzw1cx344a8xihnmflgxphy2fhci7ng85msqd1iv9gzxyk4"))))
+                "01bf8jdlzndmqqzw16lpwx7zz1hkykd001dxxd9rzrgmn86f2xvs"))))
     (properties `((upstream-name . "RcppArmadillo")))
     (build-system r-build-system)
     ;; All needed for vignettes
@@ -2709,13 +2725,13 @@ variety of formats.")
 (define-public r-gtable
   (package
     (name "r-gtable")
-    (version "0.2.0")
+    (version "0.3.0")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "gtable" version))
               (sha256
                (base32
-                "0vz7073m0a2q12qzzihrfh5c2kx5jqi5l7z470fxmwqghdllh7l0"))))
+                "1lyncxf2dqdjgw1071cn9c8zwzkz6sldnd5cgmicf70bc726qf7x"))))
     (properties `((upstream-name . "gtable")))
     (build-system r-build-system)
     (home-page "https://cran.r-project.org/web/packages/gtable")
@@ -3165,8 +3181,8 @@ using the multicore functionality of the parallel package.")
     (synopsis "R wrapper of the DataTables JavaScript library")
     (description
      "This package allows for data objects in R to be rendered as HTML tables
-using the JavaScript library 'DataTables' (typically via R Markdown or Shiny).
-The 'DataTables' library has been included in this R package.")
+using the JavaScript library @code{DataTables} (typically via R Markdown or
+Shiny).  The @code{DataTables} library has been included in this R package.")
     ;; The DT package as a whole is distributed under GPLv3.  The DT package
     ;; inludes other software components under different licenses:
     ;;
@@ -3297,14 +3313,14 @@ package registries.")
 (define-public r-rngtools
   (package
     (name "r-rngtools")
-    (version "1.3.1")
+    (version "1.3.1.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "rngtools" version))
        (sha256
         (base32
-         "097215qcfw6ybllpzmp1532r59h2srvch3aca4z4s6l2rf9w8gvn"))))
+         "0k1nlcxggflq0043m15dfclnqnzchkpw2ik7jk82h4dqwvysiqcr"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-digest" ,r-digest)
@@ -3688,13 +3704,14 @@ most common form of color blindness.")
     (home-page "https://github.com/sjmgarnier/viridisLite")
     (synopsis "Default color maps from matplotlib")
     (description
-     "This package is a port of the new @code{matplotlib} color maps ('viridis',
-'magma', 'plasma' and 'inferno') to R.  matplotlib is a popular plotting
-library for Python.  These color maps are designed in such a way that they
-will analytically be perfectly perceptually-uniform, both in regular form and
-also when converted to black-and-white.  They are also designed to be
-perceived by readers with the most common form of color blindness.  This is
-the 'lite' version of the more complete @code{viridis} package.")
+     "This package is a port of the new @code{matplotlib} color maps
+(@code{viridis}, @code{magma}, @code{plasma} and @code{inferno}) to R.
+matplotlib is a popular plotting library for Python.  These color maps are
+designed in such a way that they will analytically be perfectly
+perceptually-uniform, both in regular form and also when converted to
+black-and-white.  They are also designed to be perceived by readers with the
+most common form of color blindness.  This is the @code{lite} version of the
+more complete @code{viridis} package.")
     (license license:expat)))
 
 (define-public r-tidyselect
@@ -3804,13 +3821,13 @@ features present in other programming languages.")
 (define-public r-plotly
   (package
     (name "r-plotly")
-    (version "4.8.0")
+    (version "4.9.0")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "plotly" version))
               (sha256
                (base32
-                "19p8pa03q9mw5vaan7r56xgd13d90ssiz0flbrkvpfrir2105ybq"))))
+                "1kz2hm7vnkn4clxr6yyxxnmdmkz9zwjq6bzysw7j27r3721i8qgp"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-base64enc" ,r-base64enc)
@@ -4426,13 +4443,13 @@ data at that region, and avoids over-plotting.")
 (define-public r-ggthemes
   (package
     (name "r-ggthemes")
-    (version "4.1.0")
+    (version "4.1.1")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "ggthemes" version))
               (sha256
                (base32
-                "1a6r384v72hb91qkg9rz2m7s3qskbl9haxynf2vzz6v1ak9xd4c5"))))
+                "092hks6bxi6al8nclgswnzfmx5wp6n3qf63aqiajca7dx8w8n0m2"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-ggplot2" ,r-ggplot2)
@@ -4949,14 +4966,14 @@ of the points.")
 (define-public r-fpc
   (package
     (name "r-fpc")
-    (version "2.1-11.1")
+    (version "2.1-11.2")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "fpc" version))
        (sha256
         (base32
-         "1ari57hkgqsxh6khr6j52cfrzc0096cnn1q7ghxk2z4brdd4rznc"))))
+         "0wjjp9xn283acfg6cm1wa6fsi7pf0z97227hrnlpmprks3mbj8kr"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-class" ,r-class)
@@ -5283,14 +5300,14 @@ to Applied regression, Second Edition, Sage, 2011.")
 (define-public r-caret
   (package
     (name "r-caret")
-    (version "6.0-81")
+    (version "6.0-84")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "caret" version))
        (sha256
         (base32
-         "1fibrskjzq2f06b8gbrfp3263svfc5s5apsjwaqdg9qzs7sy7fpc"))))
+         "03898irgb70q0p01kq99yb6q6xji0jx4jmj0yxlv8wcwd841r0x1"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-foreach" ,r-foreach)
@@ -5473,19 +5490,20 @@ genome-wide association studies can be analyzed efficiently.")
 (define-public r-cairo
   (package
     (name "r-cairo")
-    (version "1.5-9")
+    (version "1.5-10")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "Cairo" version))
        (sha256
         (base32
-         "1x1q99r3r978rlkkm5gixkv03p0mcr6k7ydcqdmisrwnmrn7p1ia"))))
+         "1mdmd5zmjkh1b0x928zizgzh42x8swbajffb88rvnjfdhk1z0dvq"))))
     (properties `((upstream-name . "Cairo")))
     (build-system r-build-system)
     (inputs
      `(("cairo" ,cairo)
-       ("libxt" ,libxt)))
+       ("libxt" ,libxt)
+       ("zlib" ,zlib)))
     (native-inputs
      `(("pkg-config" ,pkg-config)))
     (home-page "http://www.rforge.net/Cairo/")
@@ -5527,7 +5545,7 @@ is supported.")
      "This package provides functions to work with date-times and time-spans:
 fast and user friendly parsing of date-time data, extraction and updating of
 components of a date-time (years, months, days, hours, minutes, and seconds),
-algebraic manipulation on date-time and time-span objects.  The 'lubridate'
+algebraic manipulation on date-time and time-span objects.  The @code{lubridate}
 package has a consistent and memorable syntax that makes working with dates
 easy and fun.")
     (license license:gpl2)))
diff --git a/gnu/packages/storage.scm b/gnu/packages/storage.scm
index 0c25e03ffc..b9f435cc57 100644
--- a/gnu/packages/storage.scm
+++ b/gnu/packages/storage.scm
@@ -37,11 +37,11 @@
   #:use-module (gnu packages databases)
   #:use-module (gnu packages disk)
   #:use-module (gnu packages gcc)
-  #:use-module (gnu packages gnuzilla)
   #:use-module (gnu packages gperf)
   #:use-module (gnu packages jemalloc)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages lua)
+  #:use-module (gnu packages nss)
   #:use-module (gnu packages openldap)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
diff --git a/gnu/packages/suckless.scm b/gnu/packages/suckless.scm
index 92d5358c5e..427bc44598 100644
--- a/gnu/packages/suckless.scm
+++ b/gnu/packages/suckless.scm
@@ -496,15 +496,14 @@ cups server to be installed.")
 (define-public noice
   (package
     (name "noice")
-    (version "0.7")
+    (version "0.8")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://dl.2f30.org/releases/"
-                           name "-" version ".tar.gz"))
+                           "noice-" version ".tar.gz"))
        (sha256
-        (base32
-         "03b0kzngzacfpz4n8lgbvia2s765i5bkw55v482hh4m49dm41gpc"))))
+        (base32 "0g01iwzscdv27c1idv93gd74kjzy3n9kazgm6qz08rygp96qx4xw"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f                      ; no tests
diff --git a/gnu/packages/sync.scm b/gnu/packages/sync.scm
index 1aae3a8ed6..136ffec9e7 100644
--- a/gnu/packages/sync.scm
+++ b/gnu/packages/sync.scm
@@ -252,7 +252,7 @@ over the Internet in an HTTP and CDN friendly way;
 (define-public rclone
   (package
     (name "rclone")
-    (version "1.46")
+    (version "1.47.0")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -261,7 +261,7 @@ over the Internet in an HTTP and CDN friendly way;
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1fl52dl41n76r678nzkxa2kgk9khn1fxraxgk8jd3ayc787qs9ia"))))
+                "1nxwjr9jly6wh1ixr6a7zhlg4b3298v940040fsm0n3lcljd37zx"))))
     ;; 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 500f9a8528..5db822d8f9 100644
--- a/gnu/packages/syncthing.scm
+++ b/gnu/packages/syncthing.scm
@@ -1,6 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2016 Petter <petter@mykolab.ch>
-;;; Copyright © 2016, 2017, 2018 Leo Famulari <leo@famulari.name>
+;;; Copyright © 2016, 2017, 2018, 2019 Leo Famulari <leo@famulari.name>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -30,7 +30,7 @@
 (define-public syncthing
   (package
     (name "syncthing")
-    (version "1.1.0")
+    (version "1.1.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/syncthing/syncthing"
@@ -38,7 +38,7 @@
                                   "/syncthing-source-v" version ".tar.gz"))
               (sha256
                (base32
-                "1iks1a3149gj89yqmqa5iry2ik2sj9sjhlhc6nfh7xq4swqgsrb5"))
+                "0xrlw95yp2p66rlvp2a2czf92m3hb3l8v3p39cwnaiw928y5i5m7"))
               (modules '((guix build utils)))
               ;; Delete bundled ("vendored") free software source code.
               (snippet '(begin
diff --git a/gnu/packages/telephony.scm b/gnu/packages/telephony.scm
index 559fb3d63f..b5c14143a8 100644
--- a/gnu/packages/telephony.scm
+++ b/gnu/packages/telephony.scm
@@ -8,7 +8,10 @@
 ;;; Copyright © 2016, 2017 ng0 <ng0@n0.is>
 ;;; Copyright © 2017, 2018 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017 Adonay Felipe Nogueira <https://libreplanet.org/wiki/User:Adfeno> <adfeno@hyperbola.info>
 ;;; Copyright © 2018 Jovany Leandro G.C <bit4bit@riseup.net>
+;;; Copyright © 2018 Tim Gesthuizen <tim.gesthuizen@yahoo.de>
+;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -27,21 +30,41 @@
 
 (define-module (gnu packages telephony)
   #:use-module (gnu packages)
+  #:use-module (gnu packages aidc)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages avahi)
+  #:use-module (gnu packages audio)
+  #:use-module (gnu packages base)
   #:use-module (gnu packages boost)
   #:use-module (gnu packages check)
+  #:use-module (gnu packages compression)
+  #:use-module (gnu packages crypto)
+  #:use-module (gnu packages documentation)
   #:use-module (gnu packages file)
   #:use-module (gnu packages protobuf)
+  #:use-module (gnu packages gettext)
+  #:use-module (gnu packages glib)
+  #:use-module (gnu packages gnome)
   #:use-module (gnu packages gnupg)
+  #:use-module (gnu packages gtk)
+  #:use-module (gnu packages libcanberra)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages multiprecision)
   #:use-module (gnu packages ncurses)
+  #:use-module (gnu packages networking)
+  #:use-module (gnu packages pcre)
+  #: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 serialization)
   #:use-module (gnu packages speech)
+  #:use-module (gnu packages sqlite)
   #:use-module (gnu packages tls)
+  #:use-module (gnu packages upnp)
+  #:use-module (gnu packages video)
+  #:use-module (gnu packages webkit)
   #:use-module (gnu packages xiph)
   #:use-module (gnu packages xorg)
   #:use-module (gnu packages xml)
@@ -529,3 +552,357 @@ messaging communcations using the SIP protocol.  You can use it for direct IP
 phone to IP phone communication or in a network using a SIP proxy to route your
 calls and messages")
    (license license:gpl2+))))
+
+(define-public pjproject
+  (package
+    (name "pjproject")
+    (version "2.7.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "http://www.pjsip.org/release/" ;
+             version "/" name "-" version ".tar.bz2"))
+       (modules '((guix build utils)))
+       (snippet
+        '(begin
+           (let ((third-party-directories
+                  (list "BaseClasses" "bdsound" "bin" "g7221" "gsm"
+                        "ilbc" "lib" "milenage" "mp3" "speex" "srtp"
+                        "resample"
+                        ;; Keep only resample, build and README.txt.
+                        "build/baseclasses" "build/g7221" "build/gsm"
+                        "build/ilbc" "build/milenage" "build/samplerate"
+                        "build/speex" "build/srtp"
+                        "build/resample" "build/yuv")))
+             ;; Keep only Makefiles related to resample.
+             (for-each (lambda (file)
+                         (delete-file-recursively
+                          (string-append "third_party/" file)))
+                       third-party-directories)
+             #t)
+           (let ((third-party-dirs
+                  (list "gsm" "ilbc" "speex" "g7221" "srtp"
+                        "portaudio" "resample")))
+             (for-each
+              (lambda (dirs)
+                (substitute* "third_party/build/os-linux.mak"
+                  (((string-append "DIRS += " dirs)) "")))
+              third-party-dirs))))
+       (sha256
+        (base32
+         "0wiph6g51wanzwjjrpwsz63amgvly8g08jz033gnwqmppa584b4w"))))
+    (build-system gnu-build-system)
+    (inputs
+     `(("portaudio" ,portaudio)))
+    (propagated-inputs
+     ;; These packages are referenced in the Libs field of the pkg-config
+     ;; file that will be installed by pjproject.
+     `(("speex" ,speex)
+       ("libsrtp" ,libsrtp)
+       ("gnutls" ,gnutls)
+       ("util-linux" ,util-linux)))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("pkg-config" ,pkg-config)
+       ("libtool" ,libtool)))
+    (arguments
+     `(;; FIXME make: No rule to make target
+       ;; 'pjlib-test-unknown-[something]-gnu'.
+       #:tests? #f
+       ;; #:test-target "selftest"
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'build 'build-dep
+           (lambda _ (invoke "make" "dep")))
+         (add-before 'patch-source-shebangs 'autoconf
+           (lambda _
+             (invoke "autoconf" "-vfi" "-o"
+                     "aconfigure" "aconfigure.ac")))
+         (add-before 'autoconf 'disable-some-tests
+           ;; Three of the six test programs fail due to missing network
+           ;; access.
+           (lambda _
+             (substitute* "Makefile"
+               (("selftest: pjlib-test pjlib-util-test pjnath-test pjmedia-test pjsip-test pjsua-test")
+                "selftest: pjlib-test pjlib-util-test pjmedia-test"))
+             #t)))))
+    (home-page "https://www.pjsip.org")
+    (synopsis "Session Initiation Protocol (SIP) stack")
+    (description "PJProject provides an implementation of the Session
+Initiation Protocol (SIP) and a multimedia framework.")
+    (license license:gpl2+)))
+
+(define %jami-version "20190319.4.a16a99f")
+
+(define* (jami-source #:key without-daemon)
+  (origin
+    (method url-fetch)
+    (uri (string-append "http://dl.jami.net/ring-release/tarballs/ring_"
+                        %jami-version
+                        ".tar.gz"))
+    (modules '((guix build utils)))
+    (snippet
+     (if without-daemon
+       '(begin
+          (delete-file-recursively "daemon/contrib"))
+       #f))
+    (sha256
+     (base32
+      "1c6n6sm7skw83v25g33g4jzbragz9j4przbzaz7asxw54jy33dwl"))))
+
+(define-public pjproject-jami
+  (package
+    (inherit pjproject)
+    (name "pjproject-jami")
+    (native-inputs
+     `(("savoir-faire-linux-patches" ,(jami-source))
+       ,@(package-native-inputs pjproject)))
+    (arguments
+     `(#:tests? #f
+       ;; See ring-project/daemon/contrib/src/pjproject/rules.mak.
+       #:configure-flags
+       (list "--disable-oss"
+             "--disable-sound"
+             "--disable-video"
+             "--enable-ext-sound"
+             "--disable-speex-aec"
+             "--disable-g711-codec"
+             "--disable-l16-codec"
+             "--disable-gsm-codec"
+             "--disable-g722-codec"
+             "--disable-g7221-codec"
+             "--disable-speex-codec"
+             "--disable-ilbc-codec"
+             "--disable-opencore-amr"
+             "--disable-silk"
+             "--disable-sdl"
+             "--disable-ffmpeg"
+             "--disable-v4l2"
+             "--disable-openh264"
+             "--disable-resample"
+             "--disable-libwebrtc"
+             ;; "-fPIC" is required for libring.  Bug?
+             "CFLAGS=-fPIC -DPJ_ENABLE_EXTRA_CHECK=1 -DPJ_ICE_MAX_CAND=256 -DPJ_ICE_MAX_CHECKS=1024 -DPJ_ICE_COMP_BITS=2 -DPJ_ICE_MAX_STUN=3 -DPJSIP_MAX_PKT_LEN=8000 -DPJ_ICE_ST_MAX_CAND=32"
+             "CXXFLAGS=-fPIC -DPJ_ENABLE_EXTRA_CHECK=1 -DPJ_ICE_MAX_CAND=256 -DPJ_ICE_MAX_CHECKS=1024 -DPJ_ICE_COMP_BITS=2 -DPJ_ICE_MAX_STUN=3 -DPJSIP_MAX_PKT_LEN=8000 -DPJ_ICE_ST_MAX_CAND=32"
+             ;; Now deviating from the rules.mak file.
+             "--enable-ssl=gnutls"
+             "--with-external-srtp")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'apply-patches
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let ((savoir-faire-linux-patches-directory "Savoir-faire Linux patches")
+                   ;; Comes from
+                   ;; "ring-project/daemon/contrib/src/pjproject/rules.mak".
+                   ;; WARNING: These amount for huge changes in pjproject.
+                   ;; Particularly, they add support for GnuTLS.
+                   (savoir-faire-linux-patches
+                    '("gnutls"
+                      "rfc2466"
+                      "ipv6"
+                      "ice_config"
+                      "multiple_listeners"
+                      "pj_ice_sess"
+                      "fix_turn_fallback"
+                      "fix_ioqueue_ipv6_sendto"
+                      "add_dtls_transport"
+                      "rfc6062")))
+               (mkdir-p savoir-faire-linux-patches-directory)
+               (invoke "tar" "-xvf" (assoc-ref inputs "savoir-faire-linux-patches")
+                       "-C" savoir-faire-linux-patches-directory "--strip-components=5" "ring-project/daemon/contrib/src/pjproject")
+               (for-each
+                (lambda (file)
+                  (invoke "patch" "--force" "-p1" "-i"
+                          (string-append savoir-faire-linux-patches-directory "/"
+                                         file ".patch")))
+                savoir-faire-linux-patches))
+             #t))
+         ;; TODO: We could use substitute-keyword-arguments instead of
+         ;; repeating the phases from pjproject, but somehow it does
+         ;; not work.
+         (add-before 'build 'build-dep
+           (lambda _ (invoke "make" "dep")))
+         (add-before 'patch-source-shebangs 'autoconf
+           (lambda _
+             (invoke "autoconf" "-v" "-f" "-i" "-o"
+                     "aconfigure" "aconfigure.ac")))
+         (add-before 'autoconf 'disable-some-tests
+           ;; Three of the six test programs fail due to missing network
+           ;; access.
+           (lambda _
+             (substitute* "Makefile"
+               (("selftest: pjlib-test pjlib-util-test pjnath-test pjmedia-test pjsip-test pjsua-test")
+                "selftest: pjlib-test pjlib-util-test pjmedia-test"))
+             #t)))))))
+
+(define-public libring
+  (package
+    (name "libring")
+    (version %jami-version)
+    (source (jami-source #:without-daemon #t))
+    (build-system gnu-build-system)
+    (inputs
+     ;; Missing (optional?) dep: libnatpmp.
+     `(("alsa-lib" ,alsa-lib)
+       ("boost" ,boost)
+       ("dbus-c++" ,dbus-c++)
+       ("eudev" ,eudev)
+       ("ffmpeg" ,ffmpeg)
+       ("flac" ,flac)
+       ("gmp" ,gmp)
+       ("gsm" ,gsm)
+       ("jack" ,jack-1)
+       ("jsoncpp" ,jsoncpp)
+       ("libogg" ,libogg)
+       ("libva" ,libva)
+       ("opendht" ,opendht)
+       ("opus" ,opus)
+       ("pcre" ,pcre)
+       ("pulseaudio" ,pulseaudio)
+       ("libsamplerate" ,libsamplerate)
+       ("libsndfile" ,libsndfile)
+       ("speex" ,speex)
+       ("speexdsp" ,speexdsp)
+       ("libupnp" ,libupnp)
+       ("libvorbis" ,libvorbis)
+       ("libx264" ,libx264)
+       ("libvdpau" ,libvdpau)
+       ("yaml-cpp" ,yaml-cpp)
+       ("zlib" ,zlib)
+       ("openssl" ,openssl)
+       ("libsecp256k1" ,libsecp256k1)
+       ("python" ,python)
+       ("python-wrapper" ,python-wrapper)
+       ("restbed" ,restbed)
+       ("libx11" ,libx11)
+       ;; TODO: Upstream seems to rely on a custom pjproject (a.k.a. pjsip) version.
+       ;; See https://git.jami.net/savoirfairelinux/ring-daemon/issues/24.
+       ("pjproject" ,pjproject-jami)))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("libtool" ,libtool)
+       ("pkg-config" ,pkg-config)
+       ("which" ,which)
+       ("cppunit" ,cppunit)
+       ("perl" ,perl)))                 ; Needed for documentation.
+    (arguments
+     `(#:tests? #f         ; The tests fail to compile due to missing headers.
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'change-directory
+           (lambda _
+             (chdir "daemon")
+             #t))
+         (add-before 'build 'add-lib-dir
+           (lambda _
+             (mkdir-p "src/lib")
+             #t)))))
+    (synopsis "Distributed multimedia communications platform")
+    (description "Jami (formerly GNU Ring) is a secure and distributed voice,
+video and chat communication platform that requires no centralized server and
+leaves the power of privacy in the hands of the user.  It supports the SIP and
+IAX protocols, as well as decentralized calling using P2P-DHT.
+
+This package provides a library and daemon implementing the Jami core
+functionality.")
+    (home-page "https://jami.net/")
+    (license license:gpl3+)))
+
+(define-public libringclient
+  (package
+    (inherit libring)
+    (name "libringclient")
+    (build-system cmake-build-system)
+    (propagated-inputs
+     `(("libring" ,libring)     ; For 'dring'.
+       ("qtbase" ,qtbase)       ; Qt is included in several installed headers.
+       ("qttools" ,qttools)))
+    (arguments
+     `(#:tests? #f                      ; There is no testsuite.
+       #:configure-flags
+       (list (string-append "-DRING_BUILD_DIR="
+                            (assoc-ref %build-inputs "libring") "/include"))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'change-directory
+           (lambda _
+             (chdir "lrc")
+             #t))
+         (add-before 'configure 'fix-dbus-interfaces-path
+           (lambda* (#:key inputs #:allow-other-keys)
+             (substitute* "CMakeLists.txt"
+               (("\\$\\{CMAKE_INSTALL_PREFIX\\}(/share/dbus-1/interfaces)" _ dbus-interfaces-path-suffix)
+                (string-append (assoc-ref inputs "libring")
+                               dbus-interfaces-path-suffix))))))))
+    (synopsis "Distributed multimedia communications platform")
+    (description "Jami (formerly GNU Ring) is a secure and distributed voice,
+video and chat communication platform that requires no centralized server and
+leaves the power of privacy in the hands of the user.  It supports the SIP and
+IAX protocols, as well as decentralized calling using P2P-DHT.
+
+This package provides a library common to all Jami clients.")
+    (home-page "https://jami.net")
+    (license license:gpl3+)))
+
+(define-public jami-client-gnome
+  (package
+    (inherit libring)
+    (name "jami-client-gnome")
+    (build-system cmake-build-system)
+    (inputs
+     `(("libringclient" ,libringclient)
+       ("gtk+" ,gtk+)
+       ("qrencode" ,qrencode)
+       ("libnotify" ,libnotify)
+       ("clutter" ,clutter)
+       ("clutter-gtk" ,clutter-gtk)
+       ("gettext" ,gnu-gettext)
+       ("libcanberra" ,libcanberra)
+       ("webkitgtk" ,webkitgtk)
+       ;; TODO: We must wrap ring-client-gnome to force using the
+       ;; `sqlite-with-column-metadata' package instead of `sqlite' or else it
+       ;; fails with:
+       ;;
+       ;;   /gnu/store/...-qtbase-5.11.2/lib/qt5/plugins/sqldrivers/libqsqlite.so:
+       ;;   undefined symbol: sqlite3_column_table_name16
+       ;;
+       ;; qtbase is built against sqlite-with-column-metadata but somehow
+       ;; jami-client-gnome ends up with both `sqlite' and
+       ;; `sqlite-with-column-metadata' as inputs and it seems that
+       ;; libqsqlite.so gets confused.
+       ("sqlite" ,sqlite-with-column-metadata)))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("glib:bin" ,glib "bin")
+       ("doxygen" ,doxygen)))
+    (propagated-inputs
+     `(("libring" ,libring)             ; Contains `dring', the daemon, which is automatically by d-bus.
+       ("adwaita-icon-theme" ,adwaita-icon-theme)
+       ("evolution-data-server" ,evolution-data-server)))
+    (arguments
+     `(#:tests? #f                      ; There is no testsuite.
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'change-directory
+           (lambda _
+             (chdir "client-gnome")
+             #t))
+         (add-after 'install 'wrap
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (path (string-append (assoc-ref inputs "sqlite") "/lib")))
+               (wrap-program (string-append out "/bin/gnome-ring")
+                 `("LD_LIBRARY_PATH" ":" prefix (,path))))
+             #t)))))
+    (synopsis "Distributed multimedia communications platform")
+    (description "Jami (formerly GNU Ring) is a secure and distributed voice,
+video and chat communication platform that requires no centralized server and
+leaves the power of privacy in the hands of the user.  It supports the SIP and
+IAX protocols, as well as decentralized calling using P2P-DHT.
+
+This package provides the Jami client for the GNOME desktop.")
+    (home-page "https://jami.net")
+    (license license:gpl3+)))
diff --git a/gnu/packages/terminals.scm b/gnu/packages/terminals.scm
index 3839aa1b52..a3ea05538b 100644
--- a/gnu/packages/terminals.scm
+++ b/gnu/packages/terminals.scm
@@ -115,7 +115,7 @@ configurable through a graphical wizard.")
 (define-public termite
   (package
     (name "termite")
-    (version "14")
+    (version "15")
     (source
       (origin
         (method git-fetch)
@@ -127,7 +127,7 @@ configurable through a graphical wizard.")
         (file-name (string-append name "-" version "-checkout"))
         (sha256
          (base32
-          "0dmz9rpc2fdvcwhcmjnhb48ixn403gxpq03g334d1hgjw2hsyx7x"))))
+          "0hp1x6lj098m3jgna274wv5dv60lnzg22297di68g4hw9djjyd2k"))))
     (build-system gnu-build-system)
     (arguments
       `(#:phases
@@ -249,10 +249,14 @@ compatibility to existing emulators like xterm, gnome-terminal, konsole, etc.")
                   "0q62kjsvy2iwy8adfiygx2bfwlh83rphgxbis95ycspqidg9py87"))
                 (patches
                  (search-patches "kmscon-runtime-keymap-switch.patch"))
-                (modules '((guix build utils)))))
+                (modules '((guix build utils)))
+                (file-name (git-file-name name version))))
       (build-system gnu-build-system)
       (arguments
-       `(#:phases (modify-phases %standard-phases
+       `(;; The closure of MESA is huge so we'd rather avoid it.
+         #:disallowed-references (,mesa)
+
+         #:phases (modify-phases %standard-phases
                     (replace 'bootstrap
                       (lambda _
                         (setenv "NOCONFIGURE" "indeed")
@@ -285,7 +289,10 @@ compatibility to existing emulators like xterm, gnome-terminal, konsole, etc.")
          ("libtsm" ,libtsm)
          ("libxkbcommon" ,libxkbcommon)
          ("logind" ,elogind)
-         ("mesa" ,mesa)
+         ;; MESA can be used for accelerated video output via OpenGLESv2, but
+         ;; it's a bit dependency that we'd rather avoid in the installation
+         ;; image.
+         ;; ("mesa" ,mesa)
          ("pango" ,pango)
          ("udev" ,eudev)))
       (synopsis "Linux KMS-based terminal emulator")
@@ -377,7 +384,7 @@ to all types of devices that provide serial consoles.")
 (define-public beep
   (package
     (name "beep")
-    (version "1.4.3")
+    (version "1.4.4")
     (source
      (origin
        (method git-fetch)
@@ -390,7 +397,7 @@ to all types of devices that provide serial consoles.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1gramwa2zm59kqjhv96fi8vg7l6lyffv02h0310vb90naschi99g"))))
+        (base32 "1bk7g63qpiclbq20iz2x238by8s1b2iafdim7i6dq1i5n01s7lgx"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f                      ; no tests
@@ -1042,8 +1049,8 @@ comfortably in a pager or editor.
          (add-after 'unpack 'insert-googletests
            (lambda* (#:key inputs #:allow-other-keys)
              (let ((tests (assoc-ref inputs "googletest")))
-               (invoke "tar" "xvf" tests "-C" "external/googletest"
-                       "--strip-components=1"))))
+               (copy-recursively tests "external/googletest"))
+             #t))
          (add-after 'install 'dont-provide-gtest-libraries
            (lambda* (#:key outputs #:allow-other-keys)
              (let ((out (assoc-ref outputs "out")))
diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm
index e42e910a78..a6fedd78f0 100644
--- a/gnu/packages/tex.scm
+++ b/gnu/packages/tex.scm
@@ -102,21 +102,23 @@
        (base32
         "0khyi6h015r2zfqgg0a44a2j7vmr1cy42knw7jbss237yvakc07y"))
       (patches
-       (list
-        ;; This is required for compatibility with Poppler 0.64.0 and to fix a
-        ;; segmentation fault in dvipdfm-x from XeTeX, and also contains a fix
-        ;; for CVE-2018-17407.
-        (origin
-          (method url-fetch)
-          (uri (string-append "http://www.linuxfromscratch.org/patches/blfs/"
-                              "svn/texlive-" version "-source-upstream_fixes-2.patch"))
-          (file-name "texlive-poppler-compat.patch")
-          (sha256
-           (base32
-            "04sxy1qv9y575mxwyg3y7rx7mh540pfjqx7yni7ncb5wjbq9pq1a")))
-        (search-patch "texlive-bin-luatex-poppler-compat.patch")
-        (search-patch "texlive-bin-pdftex-poppler-compat.patch")
-        (search-patch "texlive-bin-xetex-poppler-compat.patch")))))
+       (let ((arch-patch
+              (lambda (name revision hash)
+                (origin
+                  (method url-fetch)
+                  (uri (string-append "https://git.archlinux.org/svntogit/packages.git"
+                                      "/plain/trunk/" name "?h=packages/texlive-bin"
+                                      "&id=" revision))
+                  (file-name (string-append "texlive-bin-" name))
+                  (sha256 (base32 hash)))))
+             (arch-revision "e1975bce0b9d270d7c9773c5beb7e87d61ee8f57"))
+         (append (search-patches  "texlive-bin-CVE-2018-17407.patch"
+                                  "texlive-bin-luatex-poppler-compat.patch")
+                 (list
+                  (arch-patch "pdftex-poppler0.72.patch" arch-revision
+                              "0p46b6xxxg2s3hx67r0wpz16g3qygx65hpc581xs3jz5pvsiq3y7")
+                  (arch-patch "xetex-poppler-fixes.patch" arch-revision
+                              "1jj1p5zkjljb7id9pjv29cw0cf8mwrgrh4ackgzz9c200vaqpsvx")))))))
    (build-system gnu-build-system)
    (inputs
     `(("texlive-extra-src" ,texlive-extra-src)
@@ -195,9 +197,9 @@
             #t))
         (add-after 'unpack 'use-code-for-new-poppler
           (lambda _
-            (copy-file "texk/web2c/pdftexdir/pdftoepdf-newpoppler.cc"
+            (copy-file "texk/web2c/pdftexdir/pdftoepdf-poppler0.72.0.cc"
                        "texk/web2c/pdftexdir/pdftoepdf.cc")
-            (copy-file "texk/web2c/pdftexdir/pdftosrc-newpoppler.cc"
+            (copy-file "texk/web2c/pdftexdir/pdftosrc-poppler0.72.0.cc"
                        "texk/web2c/pdftexdir/pdftosrc.cc")
             #t))
         (add-after 'use-code-for-new-poppler 'use-code-for-even-newer-poppler
@@ -3425,8 +3427,8 @@ command.")
     (description
      "Identify areas of text to be marked with changebars with the
 @code{\\cbstart} and @code{\\cbend} commands; the bars may be coloured.  The
-package uses 'drivers' to place the bars; the available drivers can work with
-@code{dvitoln03}, @code{dvitops}, @code{dvips}, the emTeX and TeXtures DVI
+package uses @code{drivers} to place the bars; the available drivers can work
+with @code{dvitoln03}, @code{dvitops}, @code{dvips}, the emTeX and TeXtures DVI
 drivers, and VTeX and pdfTeX.")
     (license license:lppl)))
 
@@ -6029,7 +6031,7 @@ typearea (which are the main parts of the bundle).")
            (copy-recursively (assoc-ref %build-inputs "source") target)
            #t))))
     (home-page "https://www.ctan.org/pkg/listofitems")
-    (synopsis "Grab items in lists using user-specified seperation character")
+    (synopsis "Grab items in lists using user-specified separation character")
     (description
      "This package allows one to capture all the items of a list, for which
 the parsing character has been selected by the user, and to access any of
diff --git a/gnu/packages/textutils.scm b/gnu/packages/textutils.scm
index 7436fdeb97..da5cd011d8 100644
--- a/gnu/packages/textutils.scm
+++ b/gnu/packages/textutils.scm
@@ -519,7 +519,7 @@ in a portable way.")
      (origin
        (method url-fetch)
        (uri (string-append "http://www.lbreyer.com/gpl/"
-                           name "-" version ".tar.gz"))
+                           "dbacl-" version ".tar.gz"))
        (sha256
         (base32
          "0224g6x71hyvy7jikfxmgcwww1r5lvk0jx36cva319cb9nmrbrq7"))))
diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm
index 263ca9b548..b2add0ec9e 100644
--- a/gnu/packages/tls.scm
+++ b/gnu/packages/tls.scm
@@ -38,7 +38,6 @@
   #:use-module (guix build-system perl)
   #:use-module (guix build-system python)
   #:use-module (guix build-system cmake)
-  #:use-module (guix build-system haskell)
   #:use-module (guix build-system trivial)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages)
@@ -48,9 +47,6 @@
   #:use-module (gnu packages dns)
   #:use-module (gnu packages gawk)
   #:use-module (gnu packages guile)
-  #:use-module (gnu packages haskell)
-  #:use-module (gnu packages haskell-check)
-  #:use-module (gnu packages haskell-crypto)
   #:use-module (gnu packages libbsd)
   #:use-module (gnu packages libffi)
   #:use-module (gnu packages libidn)
@@ -497,13 +493,13 @@ netcat implementation that supports TLS.")
   (package
     (name "python-acme")
     ;; Remember to update the hash of certbot when updating python-acme.
-    (version "0.32.0")
+    (version "0.33.1")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "acme" version))
               (sha256
                (base32
-                "1v0skyrjnbxq0lfmia5k6jy29iig4sxbi9j9q367xsw0g25wxvqf"))))
+                "10ks4wp55qxzkf8ms3xcfs5njg2zz7w499wh24gzw7h7s1qxp35k"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -554,7 +550,7 @@ netcat implementation that supports TLS.")
               (uri (pypi-uri name version))
               (sha256
                (base32
-                "1j63i0j019q0d3l5rx14fv4nxy01nplhk7q2k2fq10vxl0jlxff0"))))
+                "1nf3bb6j3nmdd5bcp3k7d6jqilmwvpzllzpr5niwaghgqlr3y86m"))))
     (build-system python-build-system)
     (arguments
      `(,@(substitute-keyword-arguments (package-arguments python-acme)
@@ -801,7 +797,7 @@ then ported to the GNU / Linux environment.")
 (define-public mbedtls-apache
   (package
     (name "mbedtls-apache")
-    (version "2.16.0")
+    (version "2.16.1")
     (source
      (origin
        (method url-fetch)
@@ -811,7 +807,7 @@ then ported to the GNU / Linux environment.")
                            version "-apache.tgz"))
        (sha256
         (base32
-         "1qlscr0m97favkqmrlj90rlgw40h8lcypxz0snvr1iwkj1pbbnp3"))))
+         "08zz88gcb2jmpfsgy5b6qc3li6l39yw1dbimd18aziyd889nvl7b"))))
     (build-system cmake-build-system)
     (arguments
      `(#:configure-flags
@@ -846,48 +842,6 @@ coding footprint.")
                   #t)))
             ,@(package-arguments mbedtls-apache)))))))
 
-(define-public ghc-tls
-  (package
-    (name "ghc-tls")
-    (version "1.4.1")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://hackage.haskell.org/package/"
-                                  "tls/tls-" version ".tar.gz"))
-              (sha256
-               (base32
-                "1y083724mym28n6xfaz7pcc7zqxdhjpaxpbvzxfbs25qq2px3smv"))))
-    (build-system haskell-build-system)
-    (inputs
-     `(("ghc-cereal" ,ghc-cereal)
-       ("ghc-data-default-class" ,ghc-data-default-class)
-       ("ghc-memory" ,ghc-memory)
-       ("ghc-cryptonite" ,ghc-cryptonite)
-       ("ghc-asn1-types" ,ghc-asn1-types)
-       ("ghc-asn1-encoding" ,ghc-asn1-encoding)
-       ("ghc-x509" ,ghc-x509)
-       ("ghc-x509-store" ,ghc-x509-store)
-       ("ghc-x509-validation" ,ghc-x509-validation)
-       ("ghc-async" ,ghc-async)
-       ("ghc-network" ,ghc-network)
-       ("ghc-hourglass" ,ghc-hourglass)))
-    (native-inputs
-     `(("ghc-tasty" ,ghc-tasty)
-       ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
-       ("ghc-quickcheck" ,ghc-quickcheck)))
-    (home-page "https://github.com/vincenthz/hs-tls")
-    (synopsis
-     "TLS/SSL protocol native implementation (Server and Client)")
-    (description
-     "Native Haskell TLS and SSL protocol implementation for server and client.
-This provides a high-level implementation of a sensitive security protocol,
-eliminating a common set of security issues through the use of the advanced
-type system, high level constructions and common Haskell features.  Currently
-implement the SSL3.0, TLS1.0, TLS1.1 and TLS1.2 protocol, and support RSA and
-Ephemeral (Elliptic curve and regular) Diffie Hellman key exchanges, and many
-extensions.")
-    (license license:bsd-3)))
-
 (define-public dehydrated
   (package
     (name "dehydrated")
diff --git a/gnu/packages/tmux.scm b/gnu/packages/tmux.scm
index 7dbe2128a5..91d0af6313 100644
--- a/gnu/packages/tmux.scm
+++ b/gnu/packages/tmux.scm
@@ -38,7 +38,7 @@
 (define-public tmux
   (package
     (name "tmux")
-    (version "2.8")
+    (version "2.9")
     (source (origin
              (method url-fetch)
              (uri (string-append
@@ -46,7 +46,7 @@
                     version "/tmux-" version ".tar.gz"))
              (sha256
               (base32
-               "1fm22wva2znkcs5jczrnlxrpzsk2jlwdwy4dhzzyrbsgccsz6svz"))))
+               "10195hp5ydkwwmpcr7188fgx9daqwrslb1lylgrrkzc6yhr1541l"))))
     (build-system gnu-build-system)
     (inputs
      `(("libevent" ,libevent)
@@ -141,7 +141,7 @@ windows.")
 (define-public tmux-xpanes
   (package
     (name "tmux-xpanes")
-    (version "4.0.0")
+    (version "4.1.0")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -150,7 +150,7 @@ windows.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0px164ikhnzfls6dld4xhiyd9j5jp2rbmwfg11b1pxzm9mp7qk6r"))))
+                "11yz6rh2ckd1z8q80n8giv2gcz2i22fgf3pnfxq96qrzflb0d96a"))))
     (build-system trivial-build-system)
     (inputs
      `(("bash" ,bash)))
diff --git a/gnu/packages/upnp.scm b/gnu/packages/upnp.scm
index 9d534e5799..3f3d80f576 100644
--- a/gnu/packages/upnp.scm
+++ b/gnu/packages/upnp.scm
@@ -32,14 +32,14 @@
 (define-public miniupnpc
   (package
     (name "miniupnpc")
-    (version "2.1.20190210")
+    (version "2.1.20190408")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://miniupnp.tuxfamily.org/files/"
                            name "-" version ".tar.gz"))
        (sha256
-        (base32 "05w8p51yd71ksapajb9nag464ncakk72v9dxr01y168wix707d49"))))
+        (base32 "1v0l2m8j7r6jiy871d6v11ls243xqn6s3856iwd3bmk5c37npi50"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("python" ,python-2)))
diff --git a/gnu/packages/valgrind.scm b/gnu/packages/valgrind.scm
index 9952fa1647..f1584c896a 100644
--- a/gnu/packages/valgrind.scm
+++ b/gnu/packages/valgrind.scm
@@ -79,3 +79,18 @@ 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+)))
+
+(define-public valgrind-3.15
+  (package
+    (inherit valgrind)
+    (version "3.15.0")
+    (source (origin
+              (method url-fetch)
+              (uri (list (string-append "http://www.valgrind.org/downloads"
+                                        "/valgrind-" version ".tar.bz2")
+                         (string-append "ftp://sourceware.org/pub/valgrind"
+                                        "/valgrind-" version ".tar.bz2")))
+              (sha256
+               (base32
+                "1ccawxrni8brcvwhygy12iprkvz409hbr9xkk1bd03gnm2fplz21"))
+              (patches (search-patches "valgrind-enable-arm.patch"))))))
diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm
index 90b3a98bc1..3b993e09aa 100644
--- a/gnu/packages/version-control.scm
+++ b/gnu/packages/version-control.scm
@@ -23,6 +23,7 @@
 ;;; Copyright © 2018 Timothy Sample <samplet@ngyro.com>
 ;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
 ;;; Copyright © 2019 Jovany Leandro G.C <bit4bit@riseup.net>
+;;; Copyright © 2019 Kei Kebreau <kkebreau@posteo.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -45,10 +46,9 @@
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix git-download)
-  #:use-module (guix build-system ant)
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system gnu)
-  #:use-module (guix build-system haskell)
+  #:use-module (guix build-system go)
   #:use-module (guix build-system python)
   #:use-module (guix build-system trivial)
   #:use-module (gnu packages apr)
@@ -69,12 +69,7 @@
   #:use-module (gnu packages gl)
   #:use-module (gnu packages groff)
   #:use-module (gnu packages guile)
-  #:use-module (gnu packages haskell)
-  #:use-module (gnu packages haskell-check)
-  #:use-module (gnu packages haskell-crypto)
-  #:use-module (gnu packages haskell-web)
   #:use-module (gnu packages image)
-  #:use-module (gnu packages java)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages maths)
   #:use-module (gnu packages nano)
@@ -408,7 +403,7 @@ as well as the classic centralized workflow.")
                          ,@(transitive-input-references
                             'inputs
                             (map (lambda (l)
-                                   (assoc l (inputs)))
+                                   (assoc l (package-inputs this-package)))
                                  '("perl-authen-sasl"
                                    "perl-net-smtp-ssl"
                                    "perl-io-socket-ssl")))))))
@@ -421,7 +416,7 @@ as well as the classic centralized workflow.")
                          ,@(transitive-input-references
                             'inputs
                             (map (lambda (l)
-                                   (assoc l (inputs)))
+                                   (assoc l (package-inputs this-package)))
                                  '("perl-cgi")))))))
 
               ;; Tell 'git-submodule' where Perl is.
@@ -529,13 +524,14 @@ everything from small to very large projects with speed and efficiency.")
     (name "libgit2")
     (version "0.28.1")
     (source (origin
-              (method url-fetch)
-              (uri (string-append "https://github.com/libgit2/libgit2/"
-                                  "archive/v" version ".tar.gz"))
-              (file-name (string-append name "-" version ".tar.gz"))
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/libgit2/libgit2.git")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
               (sha256
                (base32
-                "0swk2dyq5a4p1jn5wvbcsrxckhh808vifxz5y8w663avg541188c"))
+                "0j5p0hhz2wizvgkf0nbpd8g32mb5bg1vp8ckpbhb0pq38ja4h43r"))
               (patches (search-patches "libgit2-avoid-python.patch"
                                        "libgit2-mtime-0.patch"))
 
@@ -558,6 +554,10 @@ everything from small to very large projects with speed and efficiency.")
                (("/bin/cp") (which "cp"))
                (("/bin/rm") (which "rm")))
              #t))
+         (add-after 'unpack 'make-git-checkout-writable
+           (lambda _
+             (for-each make-file-writable (find-files "."))
+             #t))
          ;; Run checks more verbosely.
          (replace 'check
            (lambda _ (invoke "./libgit2_clar" "-v" "-Q"))))))
@@ -584,14 +584,15 @@ write native speed custom Git applications in any language with bindings.")
   (package
     (name "git-crypt")
     (version "0.5.0")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://github.com/AGWA/git-crypt"
-                                  "/archive/" version ".tar.gz"))
-              (file-name (string-append name "-" version ".tar.gz"))
-              (sha256
-               (base32
-                "0454fdmgm5f3razkn8n03lfqm5zyzvr4r2528zmlxiwba9518l2i"))))
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/AGWA/git-crypt.git")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1x9209n3k49k998saadr2d0lmvs01smjinx7gzzyjdwj9l904sii"))))
     (build-system gnu-build-system)
     (inputs
      `(("git" ,git)
@@ -778,14 +779,13 @@ a built-in cache to decrease server I/O pressure.")
     (version "0.5.5")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append
-             "https://github.com/davisp/ghp-import/archive/"
-             version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/davisp/ghp-import.git")
+             (commit version)))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "0x887v690xsac2hzjkpbvp3a6crh3m08mqbk3nb4xwc9dnk869q7"))))
+        (base32 "12pmw3zz3i57ljnm0rxdyjqdyhisbvy18mjwkb3bzp5pgzs2f45c"))))
     (build-system python-build-system)
     (arguments
      `(#:phases (modify-phases %standard-phases
@@ -1033,14 +1033,15 @@ manipulate them in various ways.")
   (package
     (name "vcsh")
     (version "1.20151229")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://github.com/RichiH/vcsh/archive/v"
-                                  version ".tar.gz"))
-              (file-name (string-append name "-" version ".tar.gz"))
-              (sha256
-               (base32
-                "1ym3swkh738c3vciffvlr96vqzhwmzkb8ajqzap8f0j9n039a1mf"))))
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/RichiH/vcsh.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1grpj45nbpv4j60vd2kg4rj53zrm0bc0h9l4pfd3c2mwbvywm6ab"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("which" ,which)))
@@ -1107,15 +1108,15 @@ also walk each side of a merge and test those changes individually.")
   (package
     (name "gitolite")
     (version "3.6.7")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "https://github.com/sitaramc/gitolite/archive/v"
-                    version ".tar.gz"))
-              (file-name (string-append name "-" version ".tar.gz"))
-              (sha256
-               (base32
-                "1idxipg0df80bhjcxgwxs3lllqnkvhwpinmfv1xvg1l98fxiapgp"))))
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/sitaramc/gitolite.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0rmyzr66lxh2ildf3h1nh3hh2ndwk21rjdin50r5vhwbdd7jg8vb"))))
     (build-system gnu-build-system)
     (arguments
      '(#:tests? #f ; no tests
@@ -1366,7 +1367,7 @@ following features:
     (home-page "https://subversion.apache.org/")
     (synopsis "Revision control system")
     (description
-     "Subversion (aka. ``svn'') exists to be recognized and adopted as a
+     "@dfn{Subversion} (svn) exists to be recognized and adopted as a
 centralized version control system characterized by its
 reliability as a safe haven for valuable data; the simplicity of its model and
 usage; and its ability to support the needs of a wide variety of users and
@@ -1778,14 +1779,15 @@ output of the @code{git} command.")
   (package
     (name "findnewest")
     (version "0.3")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "https://github.com/0-wiz-0/findnewest/archive/findnewest-"
-                    version ".tar.gz"))
-              (sha256
-               (base32
-                "1ydis4y0amkgfr4y60sn076f1l41ya2kn89kfd9fqf44f9ccgb5r"))))
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/0-wiz-0/findnewest.git")
+             (commit (string-append "findnewest-" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1x1cbn2b27h5r0ah5xc06fkalfdci2ngrgd4wibxjw0h88h0nvgq"))))
     (build-system gnu-build-system)
     (native-inputs `(("autoconf" ,autoconf)
                      ("automake" ,automake)))
@@ -1849,15 +1851,15 @@ Mercurial, Bazaar, Darcs, CVS, Fossil, and Veracity.")
   (package
     (name "git-annex-remote-hubic")
     (version "0.3.1")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "https://github.com/Schnouki/" name "/archive/v"
-                    version ".tar.gz"))
-              (file-name (string-append name "-" version ".tar.gz"))
-              (sha256
-               (base32
-                "196g3jkaybjx11nbr51n0cjps3wjzb145ab76y717diqvvxp5v4r"))))
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/Schnouki/git-annex-remote-hubic.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "16y9sk67hfi17h9n2kkffyabfccksh5rab40hhk69v6cxmbpn2sx"))))
     (build-system python-build-system)
     (arguments `(#:python ,python-2))
     (native-inputs
@@ -1968,180 +1970,6 @@ a built-in wiki, built-in file browsing, built-in tickets system, etc.")
 be served with a HTTP file server of your choice.")
     (license license:expat)))
 
-;; Darcs has no https support: http://irclog.perlgeek.de/darcs/2016-09-17
-;; http://darcs.net/manual/Configuring_darcs.html#SECTION00440070000000000000
-;; and results of search engines will show that if the protocol is http, https
-;; is never mentioned.
-(define-public darcs
-  (package
-    (name "darcs")
-    (version "2.14.2")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (string-append "https://hackage.haskell.org/package/darcs/"
-                           "darcs-" version ".tar.gz"))
-       (sha256
-        (base32
-         "0zm2486gyhiga1amclbg92cd09bvki6vgh0ll75hv5kl72j61lb5"))
-       (modules '((guix build utils)))
-       ;; Remove time-dependent code for reproducibility.
-       (snippet
-        '(begin
-           (substitute* "darcs/darcs.hs"
-             (("__DATE__") "\"1970-01-01\"")
-             (("__TIME__") "\"00:00:00\""))
-           #t))))
-    (build-system haskell-build-system)
-    (arguments
-     `(#:configure-flags '("-fpkgconfig" "-fcurl" "-flibiconv" "-fthreaded"
-                           "-fnetwork-uri" "-fhttp" "--flag=executable"
-                           "--flag=library")
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'patch-source-shebangs 'patch-sh
-           (lambda _
-             (substitute* "tests/issue538.sh"
-               (("/bin/sh") (which "sh")))
-             #t)))))
-    (inputs
-     `(("ghc-cmdargs" ,ghc-cmdargs)
-       ("ghc-split" ,ghc-split)
-       ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)
-       ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
-       ("ghc-test-framework" ,ghc-test-framework)
-       ("ghc-quickcheck" ,ghc-quickcheck)
-       ("ghc-findbin" ,ghc-findbin)
-       ("ghc-hunit" ,ghc-hunit)
-       ("ghc-async" ,ghc-async)
-       ("ghc-attoparsec" ,ghc-attoparsec)
-       ("ghc-base16-bytestring" ,ghc-base16-bytestring)
-       ("ghc-bytestring-builder" ,ghc-bytestring-builder)
-       ("ghc-cryptohash" ,ghc-cryptohash)
-       ("ghc-data-ordlist" ,ghc-data-ordlist)
-       ("ghc-fgl" ,ghc-fgl)
-       ("ghc-system-filepath" ,ghc-system-filepath)
-       ("ghc-graphviz" ,ghc-graphviz)
-       ("ghc-hashable" ,ghc-hashable)
-       ("ghc-html" ,ghc-html)
-       ("ghc-mmap" ,ghc-mmap)
-       ("ghc-old-time" ,ghc-old-time)
-       ("ghc-parsec" ,ghc-parsec)
-       ("ghc-random" ,ghc-random)
-       ("ghc-regex-applicative" ,ghc-regex-applicative)
-       ("ghc-regex-compat-tdfa" ,ghc-regex-compat-tdfa)
-       ("ghc-sandi" ,ghc-sandi)
-       ("ghc-shelly" ,ghc-shelly)
-       ("ghc-tar" ,ghc-tar)
-       ("ghc-transformers-compat" ,ghc-transformers-compat)
-       ("ghc-unix-compat" ,ghc-unix-compat)
-       ("ghc-utf8-string" ,ghc-utf8-string)
-       ("ghc-vector" ,ghc-vector)
-       ("ghc-zip-archive" ,ghc-zip-archive)
-       ("ghc-zlib" ,ghc-zlib)
-       ("ghc-http" ,ghc-http)
-       ("curl" ,curl)
-       ("ghc" ,ghc)
-       ("ncurses" ,ncurses)
-       ("perl" ,perl)
-       ("libiconv" ,libiconv)
-       ("ghc-network" ,ghc-network)
-       ("ghc-network-uri" ,ghc-network-uri)))
-    (native-inputs
-     `(("pkg-config" ,pkg-config)))
-    (home-page "http://darcs.net")
-    (synopsis "Distributed Revision Control System")
-    (description
-     "Darcs is a revision control system.  It is:
-
-@enumerate
-@item Distributed: Every user has access to the full command set, removing boundaries
-between server and client or committer and non-committers.
-@item Interactive: Darcs is easy to learn and efficient to use because it asks you
-questions in response to simple commands, giving you choices in your work flow.
-You can choose to record one change in a file, while ignoring another.  As you update
-from upstream, you can review each patch name, even the full diff for interesting
-patches.
-@item Smart: Originally developed by physicist David Roundy, darcs is based on a
-unique algebra of patches called @url{http://darcs.net/Theory,Patchtheory}.
-@end enumerate")
-    (license license:gpl2)))
-
-(define-public java-jgit
-  (package
-    (name "java-jgit")
-    (version "4.7.0.201704051617-r")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://repo1.maven.org/maven2/"
-                                  "org/eclipse/jgit/org.eclipse.jgit/"
-                                  version "/org.eclipse.jgit-"
-                                  version "-sources.jar"))
-              (sha256
-               (base32
-                "13ii4jn02ynzq6i7gsyi21k2i94jpc85wf6bcm31q4cyvzv0mk4k"))))
-    (build-system ant-build-system)
-    (arguments
-     `(#:tests? #f                      ; There are no tests to run.
-       #:jar-name "jgit.jar"
-       ;; JGit must be built with a JDK supporting Java 8.
-       #:jdk ,icedtea-8
-       ;; Target our older default JDK.
-       #:make-flags (list "-Dtarget=1.7")
-       #:phases
-       (modify-phases %standard-phases
-         ;; The jar file generated by the default build.xml does not include
-         ;; the text properties files, so we need to add them.
-         (add-after 'build 'add-properties
-           (lambda* (#:key jar-name #:allow-other-keys)
-             (with-directory-excursion "src"
-               (apply invoke "jar" "-uf"
-                      (string-append "../build/jar/" jar-name)
-                      (find-files "." "\\.properties$")))
-             #t)))))
-    (inputs
-     `(("java-classpathx-servletapi" ,java-classpathx-servletapi)
-       ("java-javaewah" ,java-javaewah)
-       ("java-jsch" ,java-jsch)
-       ("java-slf4j-api" ,java-slf4j-api)))
-    (home-page "https://eclipse.org/jgit/")
-    (synopsis "Java library implementing the Git version control system")
-    (description "JGit is a lightweight, pure Java library implementing the
-Git version control system, providing repository access routines, support for
-network protocols, and core version control algorithms.")
-    (license license:edl1.0)))
-
-;; For axoloti.  This package can still be built with icedtea-7, which is
-;; currently used as the default JDK.
-(define-public java-jgit-4.2
-  (package (inherit java-jgit)
-    (version "4.2.0.201601211800-r")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://repo1.maven.org/maven2/"
-                                  "org/eclipse/jgit/org.eclipse.jgit/"
-                                  version "/org.eclipse.jgit-"
-                                  version "-sources.jar"))
-              (sha256
-               (base32
-                "15gm537iivhnzlkjym4x3wn5jqdjdragsw9pdpzqqg21nrc817mm"))))
-    (build-system ant-build-system)
-    (arguments
-     (substitute-keyword-arguments (package-arguments java-jgit)
-       ;; Build for default JDK.
-       ((#:jdk _) icedtea-7)
-       ((#:phases phases)
-        `(modify-phases ,phases
-           (add-after 'unpack 'use-latest-javaewah-API
-             (lambda _
-               (substitute* "src/org/eclipse/jgit/internal/storage/file/BitmapIndexImpl.java"
-                 (("wordinbits") "WORD_IN_BITS"))
-               #t))))))
-    (inputs
-     `(("java-javaewah" ,java-javaewah)
-       ("java-jsch" ,java-jsch)
-       ("java-slf4j-api" ,java-slf4j-api)))))
-
 (define-public gource
   (package
     (name "gource")
@@ -2230,133 +2058,6 @@ cases like all those little scripts in your @file{~/bin} directory, or a
 directory full of HOWTOs.")
     (license license:bsd-2)))
 
-(define-public git-annex
-  (package
-    (name "git-annex")
-    (version "6.20180926")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (string-append "https://hackage.haskell.org/package/"
-                           "git-annex/git-annex-" version ".tar.gz"))
-       (sha256
-        (base32
-         "1251rj8h63y30sfqk0zh670yhz14p256y59n3590pg015pf3575d"))))
-    (build-system haskell-build-system)
-    (arguments
-     `(#:configure-flags
-       '("--flags=-Android -Assistant -Pairing -S3 -Webapp -WebDAV")
-       #:phases
-       (modify-phases %standard-phases
-         (add-before 'configure 'patch-shell
-           (lambda _
-             (substitute* "Utility/Shell.hs"
-               (("/bin/sh") (which "sh")))
-             #t))
-         (add-before 'configure 'factor-setup
-           (lambda _
-             ;; Factor out necessary build logic from the provided
-             ;; `Setup.hs' script.  The script as-is does not work because
-             ;; it cannot find its dependencies, and there is no obvious way
-             ;; to tell it where to look.  Note that we do not preserve the
-             ;; code that installs man pages here.
-             (call-with-output-file "PreConf.hs"
-               (lambda (out)
-                 (format out "import qualified Build.Configure as Configure~%")
-                 (format out "main = Configure.run Configure.tests~%")))
-             (call-with-output-file "Setup.hs"
-               (lambda (out)
-                 (format out "import Distribution.Simple~%")
-                 (format out "main = defaultMain~%")))
-             #t))
-         (add-before 'configure 'pre-configure
-           (lambda _
-             (invoke "runhaskell" "PreConf.hs")
-             #t))
-         (replace 'check
-           (lambda _
-             ;; We need to set the path so that Git recognizes
-             ;; `git annex' as a custom command.
-             (setenv "PATH" (string-append (getenv "PATH") ":"
-                                           (getcwd) "/dist/build/git-annex"))
-             (with-directory-excursion "dist/build/git-annex"
-               (symlink "git-annex" "git-annex-shell"))
-             (invoke "git-annex" "test")
-             #t))
-         (add-after 'install 'install-symlinks
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let* ((out (assoc-ref outputs "out"))
-                    (bin (string-append out "/bin")))
-               (symlink (string-append bin "/git-annex")
-                        (string-append bin "/git-annex-shell"))
-               (symlink (string-append bin "/git-annex")
-                        (string-append bin "/git-remote-tor-annex"))
-               #t))))))
-    (inputs
-     `(("curl" ,curl)
-       ("ghc-aeson" ,ghc-aeson)
-       ("ghc-async" ,ghc-async)
-       ("ghc-bloomfilter" ,ghc-bloomfilter)
-       ("ghc-byteable" ,ghc-byteable)
-       ("ghc-case-insensitive" ,ghc-case-insensitive)
-       ("ghc-crypto-api" ,ghc-crypto-api)
-       ("ghc-cryptonite" ,ghc-cryptonite)
-       ("ghc-data-default" ,ghc-data-default)
-       ("ghc-disk-free-space" ,ghc-disk-free-space)
-       ("ghc-dlist" ,ghc-dlist)
-       ("ghc-edit-distance" ,ghc-edit-distance)
-       ("ghc-esqueleto" ,ghc-esqueleto)
-       ("ghc-exceptions" ,ghc-exceptions)
-       ("ghc-feed" ,ghc-feed)
-       ("ghc-free" ,ghc-free)
-       ("ghc-hslogger" ,ghc-hslogger)
-       ("ghc-http-client" ,ghc-http-client)
-       ("ghc-http-conduit" ,ghc-http-conduit)
-       ("ghc-http-types" ,ghc-http-types)
-       ("ghc-ifelse" ,ghc-ifelse)
-       ("ghc-memory" ,ghc-memory)
-       ("ghc-monad-control" ,ghc-monad-control)
-       ("ghc-monad-logger" ,ghc-monad-logger)
-       ("ghc-network" ,ghc-network)
-       ("ghc-old-locale" ,ghc-old-locale)
-       ("ghc-optparse-applicative" ,ghc-optparse-applicative)
-       ("ghc-persistent" ,ghc-persistent)
-       ("ghc-persistent-sqlite" ,ghc-persistent-sqlite)
-       ("ghc-persistent-template" ,ghc-persistent-template)
-       ("ghc-quickcheck" ,ghc-quickcheck)
-       ("ghc-random" ,ghc-random)
-       ("ghc-regex-tdfa" ,ghc-regex-tdfa)
-       ("ghc-resourcet" ,ghc-resourcet)
-       ("ghc-safesemaphore" ,ghc-safesemaphore)
-       ("ghc-sandi" ,ghc-sandi)
-       ("ghc-securemem" ,ghc-securemem)
-       ("ghc-socks" ,ghc-socks)
-       ("ghc-split" ,ghc-split)
-       ("ghc-stm" ,ghc-stm)
-       ("ghc-stm-chans" ,ghc-stm-chans)
-       ("ghc-tagsoup" ,ghc-tagsoup)
-       ("ghc-text" ,ghc-text)
-       ("ghc-unix-compat" ,ghc-unix-compat)
-       ("ghc-unordered-containers" ,ghc-unordered-containers)
-       ("ghc-utf8-string" ,ghc-utf8-string)
-       ("ghc-uuid" ,ghc-uuid)
-       ("git" ,git)
-       ("rsync" ,rsync)))
-    (native-inputs
-     `(("ghc-tasty" ,ghc-tasty)
-       ("ghc-tasty-hunit" ,ghc-tasty-hunit)
-       ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
-       ("ghc-tasty-rerun" ,ghc-tasty-rerun)))
-    (home-page "https://git-annex.branchable.com/")
-    (synopsis "Manage files with Git, without checking in their contents")
-    (description "This package allows managing files with Git, without
-checking the file contents into Git.  It can store files in many places,
-such as local hard drives and cloud storage services.  It can also be
-used to keep a folder in sync between computers.")
-    ;; The web app is released under the AGPLv3+.
-    (license (list license:gpl3+
-                   license:agpl3+))))
-
 (define-public git-when-merged
   ;; Use an unreleased version to get a PY3 compatibility fix.
   (let ((commit "ab6af7865a0ba55ba364a6c507e0be6f84f31c6d"))
@@ -2413,18 +2114,18 @@ how information about the merge is displayed.")
   (package
     (name "git-imerge")
     (version "1.1.0")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "https://github.com/mhagger/git-imerge/archive/v"
-                    version ".tar.gz"))
-              (file-name (string-append name "-" version ".tar.gz"))
-              (sha256
-               (base32
-                "0a6ay8fpgz3yd84jc40w41x0rcfpan6bcq4wd1hxiiqwb51jysb2"))))
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/mhagger/git-imerge.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0vi1w3f0yk4gqhxj2hzqafqq28rihyhyfnp8x7xzib96j2si14a4"))))
     (build-system gnu-build-system)
     (arguments
-     `(#:tests? #f  ; The are only manual test scripts.
+     `(#:tests? #f                      ; only manual test scripts
        #:make-flags (list (string-append "DESTDIR=" %output)
                           "PREFIX=")
        #:phases
@@ -2454,3 +2155,27 @@ design goals are to reduce the pain of resolving merge conflicts by finding
 the smallest possible conflicts and to allow a merge to be saved, tested,
 interrupted, published, and collaborated on while in progress.")
     (license license:gpl2+)))
+
+(define-public git-lfs
+  (package
+    (name "git-lfs")
+    (version "2.7.1")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/git-lfs/git-lfs")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "10v38w8qfz0x8750kv31n8gg2dimvq4wz40m374pd1xaypfs9670"))))
+    (build-system go-build-system)
+    (arguments
+     '(#:import-path "github.com/git-lfs/git-lfs"))
+    (home-page "https://git-lfs.github.com/")
+    (synopsis "Git extension for versioning large files")
+    (description
+     "Git Large File Storage (LFS) replaces large files such as audio samples,
+videos, datasets, and graphics with text pointers inside Git, while storing the
+file contents on a remote server.")
+    (license license:expat)))
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index c8d72bbeac..420d37f020 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -25,7 +25,7 @@
 ;;; Copyright © 2018 Roel Janssen <roel@gnu.org>
 ;;; Copyright © 2018, 2019 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
-;;; Copyright © 2018 Leo Famulari <leo@famulari.name>
+;;; Copyright © 2018, 2019 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2018 Brendan Tildesley <brendan.tildesley@openmailbox.org>
 ;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
 ;;; Copyright © 2018 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
@@ -91,6 +91,7 @@
   #:use-module (gnu packages elf)
   #:use-module (gnu packages file)
   #:use-module (gnu packages flex)
+  #:use-module (gnu packages fonts)
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages fribidi)
@@ -755,14 +756,14 @@ standards (MPEG-2, MPEG-4 ASP/H.263, MPEG-4 AVC/H.264, and VC-1/VMW3).")
 (define-public ffmpeg
   (package
     (name "ffmpeg")
-    (version "4.1.2")
+    (version "4.1.3")
     (source (origin
              (method url-fetch)
              (uri (string-append "https://ffmpeg.org/releases/ffmpeg-"
                                  version ".tar.xz"))
              (sha256
               (base32
-               "0yrl6nij4b1pk1c4nbi80857dsd760gziiss2ls19awq8zj0lpxr"))))
+               "0gdnprc7gk4b7ckq8wbxbrj7i00r76r9a5g9mj7iln40512j0c0c"))))
     (build-system gnu-build-system)
     (inputs
      `(("fontconfig" ,fontconfig)
@@ -935,14 +936,14 @@ audio/video codec library.")
 (define-public ffmpeg-3.4
   (package
     (inherit ffmpeg)
-    (version "3.4.5")
+    (version "3.4.6")
     (source (origin
              (method url-fetch)
              (uri (string-append "https://ffmpeg.org/releases/ffmpeg-"
                                  version ".tar.xz"))
              (sha256
               (base32
-               "0b59qk5wpc5ksiha76jbhb859g5gxa4w0k6afh3kgvgajiivs73l"))))
+               "0gmqbhg5jjcfanrxrl657zn12lzz73sfs8xwryfy7n9rn6f2fwim"))))
     (arguments
      (substitute-keyword-arguments (package-arguments ffmpeg)
        ((#:configure-flags flags)
@@ -1326,6 +1327,14 @@ SVCD, DVD, 3ivx, DivX 3/4/5, WMV and H.264 movies.")
     (arguments
      '(#:phases
        (modify-phases %standard-phases
+         (add-after
+          'unpack 'patch-paths
+          (lambda* (#:key inputs #:allow-other-keys)
+            (let ((ytdl (assoc-ref inputs "youtube-dl")))
+              (substitute* "player/lua/ytdl_hook.lua"
+                (("\"youtube-dl\",")
+                 (string-append "\"" ytdl "/bin/youtube-dl\",")))
+              #t)))
          (add-before
           'configure 'setup-waf
           (lambda* (#:key inputs #:allow-other-keys)
@@ -1437,7 +1446,7 @@ access to mpv's powerful playback capabilities.")
 (define-public youtube-dl
   (package
     (name "youtube-dl")
-    (version "2019.03.18")
+    (version "2019.04.30")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/rg3/youtube-dl/releases/"
@@ -1445,7 +1454,7 @@ access to mpv's powerful playback capabilities.")
                                   version ".tar.gz"))
               (sha256
                (base32
-                "0r31q7j3gg2zfw3b45jancxl7mmr2gin8dyfx5dgyyp92ss8hih7"))))
+                "1s43adnky8ayhjwmgmiqy6rmmygd4c23v36jhy2lzr2jpn8l53z1"))))
     (build-system python-build-system)
     (arguments
      ;; The problem here is that the directory for the man page and completion
@@ -1841,7 +1850,7 @@ for use with HTML5 video.")
 (define-public avidemux
   (package
     (name "avidemux")
-    (version "2.7.2")
+    (version "2.7.3")
     (source (origin
              (method url-fetch)
              (uri (string-append
@@ -1849,7 +1858,7 @@ for use with HTML5 video.")
                    "avidemux_" version ".tar.gz"))
              (sha256
               (base32
-               "07fdz3y4iln7cizikdjj96dqvp2f8zzhs31ncxxwzdkngn5v8138"))
+               "17x2mnnr5h8pp764p55l1xcn2ljnzhbj8cykajlllvk4rc4qwxld"))
              (patches (search-patches "avidemux-install-to-lib.patch"))))
     (build-system cmake-build-system)
     (native-inputs
@@ -1878,7 +1887,7 @@ for use with HTML5 video.")
        ("yasm" ,yasm)
        ("zlib" ,zlib)))
     (arguments
-     `(#:tests? #f ; no check target
+     `(#:tests? #f                      ; no check target
        #:phases
        ;; Make sure files inside the included ffmpeg tarball are
        ;; patch-shebanged.
@@ -2853,7 +2862,7 @@ many codecs and formats supported by libmediainfo.")
 (define-public livemedia-utils
   (package
     (name "livemedia-utils")
-    (version "2018.10.17")
+    (version "2019.03.06")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -2861,13 +2870,7 @@ many codecs and formats supported by libmediainfo.")
                     version ".tar.gz"))
               (sha256
                (base32
-                "1s69ipvdc6ldscp0cr1zpsll8xc3qcagr95nl84x7b1rbg4xjs3w"))
-              (modules '((guix build utils)))
-              (snippet '(begin
-                          ;; As of glibc 2.26, <xlocale.h> no longer is.
-                          (substitute* "liveMedia/include/Locale.hh"
-                            (("xlocale\\.h") "locale.h"))
-                          #t))))
+                "1gasdl95yjabv811knkmy5laj21a54z1jdfq36jdj984k1nw5l0b"))))
     (build-system gnu-build-system)
     (arguments
      '(#:tests? #f ; no tests
@@ -3303,7 +3306,7 @@ create smoother and stable videos.")
 (define-public libopenshot
   (package
     (name "libopenshot")
-    (version "0.2.2")
+    (version "0.2.3")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -3312,7 +3315,7 @@ create smoother and stable videos.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1x4kv05pdq1pglb6y056aa7llc6iyibyhzg93k7zwj0q08cp5ixd"))
+                "0r1qmr8ar5n72603xkj9h065vbpznrqsq88kxxmn9n8djyyvk03k"))
               (modules '((guix build utils)))
               (snippet '(begin
                           ;; Allow overriding of the python installation dir
@@ -3321,9 +3324,7 @@ create smoother and stable videos.")
                              (string-append set " CACHE PATH "
                                             "\"Python bindings directory\")")))
                           (delete-file-recursively "thirdparty")
-                          #t))
-              (patches (search-patches "libopenshot-fixup-tests.patch"
-                                       "libopenshot-tests-with-system-libs.patch"))))
+                          #t))))
     (build-system cmake-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)
@@ -3367,7 +3368,7 @@ API.  It includes bindings for Python, Ruby, and other languages.")
 (define-public openshot
   (package
     (name "openshot")
-    (version "2.4.3")
+    (version "2.4.4")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -3376,10 +3377,15 @@ API.  It includes bindings for Python, Ruby, and other languages.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1qdw1mli4y9qhrnllnkaf6ydgw5vfvdb90chs4i679k0x0jyb9a2"))))
+                "0mg63v36h7l8kv2sgf6x8c1n3ygddkqqwlciz7ccxpbm4x1idqba"))
+       (modules '((guix build utils)))
+       (snippet
+        '(begin
+           (delete-file-recursively "src/images/fonts") #t))))
     (build-system python-build-system)
     (inputs
      `(("ffmpeg" ,ffmpeg)
+       ("font-ubuntu" ,font-ubuntu)
        ("libopenshot" ,libopenshot)
        ("python" ,python)
        ("python-pyqt" ,python-pyqt)
@@ -3388,8 +3394,20 @@ API.  It includes bindings for Python, Ruby, and other languages.")
        ("qtsvg" ,qtsvg)))
     (arguments
      `(#:tests? #f                      ;no tests
+       #:modules ((guix build python-build-system)
+                  (guix build qt-utils)
+                  (guix build utils))
+       #:imported-modules (,@%python-build-system-modules
+                            (guix build qt-utils))
        #:phases (modify-phases %standard-phases
                   (delete 'build)       ;install phase does all the work
+                  (add-after 'unpack 'patch-font-location
+                    (lambda* (#:key inputs #:allow-other-keys)
+                      (let ((font (assoc-ref inputs "font-ubuntu")))
+                        (substitute* "src/classes/app.py"
+                          (("info.IMAGES_PATH") (string-append "\"" font "\""))
+                          (("fonts") "share/fonts/truetype")))
+                      #t))
                   (add-before 'install 'set-tmp-home
                     (lambda _
                       ;; src/classes/info.py "needs" to create several
@@ -3397,12 +3415,10 @@ API.  It includes bindings for Python, Ruby, and other languages.")
                       (setenv "HOME" "/tmp")
                       #t))
                   (add-after 'install 'wrap-program
-                    (lambda* (#:key inputs outputs #:allow-other-keys)
-                      (wrap-program (string-append (assoc-ref outputs "out")
-                                                   "/bin/openshot-qt")
-                        `("QT_PLUGIN_PATH" prefix
-                          ,(list (string-append (assoc-ref inputs "qtsvg")
-                                                "/lib/qt5/plugins/")))))))))
+                    (lambda* (#:key outputs #:allow-other-keys)
+                      (let ((out (assoc-ref outputs "out")))
+                        (wrap-qt-program out "openshot-qt"))
+                      #t)))))
     (home-page "https://openshot.org")
     (synopsis "Video editor")
     (description "OpenShot takes your videos, photos, and music files and
@@ -3413,11 +3429,11 @@ transitions, and effects and then export your film to many common formats.")
 (define-public dav1d
   (package
     (name "dav1d")
-    (version "0.2.1")
+    (version "0.2.2")
     (source
       (origin
         (method url-fetch)
-        (uri (list ;; The canonical download site
+        (uri (list ;; The canonical download site.
                    (string-append "https://downloads.videolan.org/pub/videolan/"
                                   "dav1d/" version "/dav1d-" version ".tar.xz")
 
@@ -3425,7 +3441,7 @@ transitions, and effects and then export your film to many common formats.")
                    (string-append "https://code.videolan.org/videolan/dav1d/-/"
                                   "archive/" version "/dav1d-" version ".tar.bz2")))
         (sha256
-         (base32 "0cp7harg2gf61v35hyki2ddk9yr0xli9bkk3smxblabmq9rv5cs3"))))
+         (base32 "1llf4v486avj83d31670vdd5nshbq10qrx9vwrm1j078dh4ax4q0"))))
     (build-system meson-build-system)
     (native-inputs `(("nasm" ,nasm)))
     (home-page "https://code.videolan.org/videolan/dav1d")
diff --git a/gnu/packages/vim.scm b/gnu/packages/vim.scm
index 56deb12c3d..dadffa3ab1 100644
--- a/gnu/packages/vim.scm
+++ b/gnu/packages/vim.scm
@@ -756,7 +756,7 @@ are detected, the user is notified.")))
              #t))
          (add-after 'unpack 'set-lua-paths
            (lambda* (#:key inputs #:allow-other-keys)
-             (let* ((lua-version "5.2")
+             (let* ((lua-version "5.1")
                     (lua-cpath-spec
                      (lambda (prefix)
                        (let ((path (string-append prefix "/lib/lua/" lua-version)))
@@ -783,10 +783,10 @@ are detected, the user is notified.")))
        ("unibilium" ,unibilium)
        ("jemalloc" ,jemalloc)
        ("libiconv" ,libiconv)
-       ("lua" ,lua-5.2)
-       ("lua-lpeg" ,lua5.2-lpeg)
-       ("lua-bitop" ,lua5.2-bitop)
-       ("lua-libmpack" ,lua5.2-libmpack)))
+       ("lua" ,lua-5.1)
+       ("lua-lpeg" ,lua5.1-lpeg)
+       ("lua-bitop" ,lua5.1-bitop)
+       ("lua-libmpack" ,lua5.1-libmpack)))
     (native-inputs
      `(("pkg-config" ,pkg-config)
        ("gettext" ,gettext-minimal)
diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm
index 4bdbbb39b6..87839490b2 100644
--- a/gnu/packages/virtualization.scm
+++ b/gnu/packages/virtualization.scm
@@ -126,6 +126,8 @@
                                               (assoc-ref %outputs "out")
                                               "/libexec/samba-wrapper")
                                "--audio-drv-list=alsa,pa,sdl")
+       ;; Make build and test output verbose to facilitate investigation upon failure.
+       #:make-flags '("V=1")
        #:phases
        (modify-phases %standard-phases
          (replace 'configure
@@ -177,10 +179,6 @@ exec smbd $@")))
                (chmod "samba-wrapper" #o755)
                (install-file "samba-wrapper" libexec))
              #t))
-         (add-before 'check 'make-gtester-verbose
-           (lambda _
-             ;; Make GTester verbose to facilitate investigation upon failure.
-             (setenv "V" "1") #t))
          (add-before 'check 'disable-test-qga
            (lambda _
              (substitute* "tests/Makefile.include"
@@ -1089,11 +1087,11 @@ virtual machines.")
     (home-page "https://github.com/projectatomic/bubblewrap")
     (synopsis "Unprivileged sandboxing tool")
     (description "Bubblewrap is aimed at running applications in a sandbox,
-where it has restricted access to parts of the operating system or user data
-such as the home directory.  Bubblewrap always creates a new mount namespace,
-and the user can specify exactly what parts of the filesystem should be visible
-in the sandbox.  Any such directories specified is mounted nodev by default,
-and can be made readonly.")
+restricting their access to parts of the operating system or user data such as
+the home directory.  Bubblewrap always creates a new mount namespace, and the
+user can specify exactly what parts of the file system should be made visible
+in the sandbox.  These directories are mounted with the @code{nodev} option
+by default and can be made read-only.")
     (license license:lgpl2.0+)))
 
 (define-public bochs
diff --git a/gnu/packages/vpn.scm b/gnu/packages/vpn.scm
index 6155c008fa..0c8e8e85b8 100644
--- a/gnu/packages/vpn.scm
+++ b/gnu/packages/vpn.scm
@@ -1,6 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
-;;; Copyright © 2013, 2016, 2018 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013, 2016, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
 ;;; Copyright © 2015 Jeff Mickey <j@codemac.net>
 ;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
@@ -42,9 +42,9 @@
   #:use-module (gnu packages compression)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages gnupg)
-  #:use-module (gnu packages gnuzilla)
   #:use-module (gnu packages libevent)
   #:use-module (gnu packages linux)
+  #:use-module (gnu packages nss)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
@@ -456,14 +456,14 @@ The peer-to-peer VPN implements a Layer 2 (Ethernet) network between the peers
 (define-public wireguard
   (package
     (name "wireguard")
-    (version "0.0.20190227")
+    (version "0.0.20190406")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://git.zx2c4.com/WireGuard/snapshot/"
                                   "WireGuard-" version ".tar.xz"))
               (sha256
                (base32
-                "0ybzycpjjidyiz88kkh67abvp3y30f34252dwpgf3ncj4vyjdnzw"))))
+                "0ns1s31mfkj7nmapsnx126rj7xlydv7jv8infx5fg58byynz61ig"))))
     (build-system gnu-build-system)
     (outputs '("out" ; The WireGuard userspace tools
                "kernel-patch")) ; A patch to build Linux with WireGuard support
@@ -522,23 +522,23 @@ WireGuard support.")
 (define-public xl2tpd
   (package
     (name "xl2tpd")
-    (version "1.3.13")
+    (version "1.3.14")
     (source (origin
               (method git-fetch)
               (uri (git-reference
                     (url "https://github.com/xelerance/xl2tpd")
                     (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
               (sha256
                (base32
-                "1nzkmhi9arwd4smhr07l0sssx46w48z0cblv7xcz25wg4hw86mcd"))
-              (file-name (string-append "xl2tpd-" version "-checkout"))))
+                "1c2ahxz2zmmxwmk951d2qhijgz67zhwa1hn0r59fgz0y14w22myi"))))
     (build-system gnu-build-system)
     (arguments
      `(#:make-flags (list (string-append "DESTDIR=" %output)
                           "CC=gcc")
        #:phases (modify-phases %standard-phases
-                  (delete 'configure))
-       #:tests? #f)) ;; no tests provided
+                  (delete 'configure))  ; no configure script
+       #:tests? #f))                    ; no tests provided
     (inputs `(("libpcap" ,libpcap)))
     (home-page "https://www.xelerance.com/software/xl2tpd/")
     (synopsis "Layer 2 Tunnelling Protocol Daemon (RFC 2661)")
diff --git a/gnu/packages/vulkan.scm b/gnu/packages/vulkan.scm
index 0c7e22bb5e..60a9661040 100644
--- a/gnu/packages/vulkan.scm
+++ b/gnu/packages/vulkan.scm
@@ -41,37 +41,33 @@
   #:use-module (gnu packages xorg))
 
 (define-public spirv-headers
-  ;; Keep updated in accordance with
-  ;; https://github.com/google/shaderc/blob/known-good/known_good.json
-  (let ((commit "8bea0a266ac9b718aa0818d9e3a47c0b77c2cb23")
-        (revision "4"))
-    (package
-      (name "spirv-headers")
-      (version (string-append "0.0-" revision "." (string-take commit 9)))
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url "https://github.com/KhronosGroup/SPIRV-Headers")
-               (commit commit)))
-         (sha256
-          (base32
-           "01qyjghjz42hmyw9111zz20a1paf37ps39p4xbj8abjba65d8lqx"))
-         (file-name (string-append name "-" version "-checkout"))))
-      (build-system cmake-build-system)
-      (arguments
-       `(#:tests? #f ;; No tests
-         #:phases (modify-phases %standard-phases
-                    (replace 'install
-                      (lambda* (#:key outputs #:allow-other-keys)
-                        (invoke "cmake" "-E" "copy_directory"
-                                        "../source/include/spirv"
-                                        (string-append (assoc-ref outputs "out")
-                                                       "/include/spirv")))))))
-      (home-page "https://github.com/KhronosGroup/SPIRV-Headers")
-      (synopsis "Machine-readable files from the SPIR-V Registry")
-      (description
-       "SPIRV-Headers is a repository containing machine-readable files from
+  (package
+    (name "spirv-headers")
+    (version "1.3.7")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/KhronosGroup/SPIRV-Headers")
+             (commit version)))
+       (sha256
+        (base32
+         "0m56smanfcczjfif4yfcqhjj4d4sc088kwg6dgia8fwdsjavdm4d"))
+      (file-name (string-append name "-" version "-checkout"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:tests? #f ;; No tests
+       #:phases (modify-phases %standard-phases
+                  (replace 'install
+                    (lambda* (#:key outputs #:allow-other-keys)
+                      (invoke "cmake" "-E" "copy_directory"
+                                      "../source/include/spirv"
+                                      (string-append (assoc-ref outputs "out")
+                                                     "/include/spirv")))))))
+    (home-page "https://github.com/KhronosGroup/SPIRV-Headers")
+    (synopsis "Machine-readable files from the SPIR-V Registry")
+    (description
+     "SPIRV-Headers is a repository containing machine-readable files from
 the SPIR-V Registry.  This includes:
 @itemize
 @item Header files for various languages.
@@ -79,9 +75,9 @@ the SPIR-V Registry.  This includes:
 and for the GLSL.std.450 extended instruction set.
 @item The XML registry file.
 @end itemize\n")
-      (license (license:x11-style
-                (string-append "https://github.com/KhronosGroup/SPIRV-Headers/blob/"
-                               commit "/LICENSE"))))))
+    (license (license:x11-style
+              (string-append "https://github.com/KhronosGroup/SPIRV-Headers/blob/"
+                             version "/LICENSE")))))
 
 (define-public spirv-tools
   (package
@@ -124,7 +120,7 @@ parser,disassembler, validator, and optimizer for SPIR-V.")
 (define-public glslang
   (package
     (name "glslang")
-    (version "7.11.3113")
+    (version "7.11.3188")
     (source
      (origin
        (method git-fetch)
@@ -133,7 +129,7 @@ parser,disassembler, validator, and optimizer for SPIR-V.")
              (commit version)))
        (sha256
         (base32
-         "1kzv2b4q1fddxd7c0hc754nd6rw6y9vijb9fsi13xzzq9dficgb6"))
+         "04y4dd1cqdkd4qffmhgmg3agf9j07ii2w38vpp4jw53ir818bqdq"))
        (file-name (string-append name "-" version "-checkout"))))
     (build-system cmake-build-system)
     (arguments
@@ -163,7 +159,7 @@ interpretation of the specifications for these languages.")
 (define-public vulkan-headers
   (package
     (name "vulkan-headers")
-    (version "1.1.103")
+    (version "1.1.106")
     (source
      (origin
        (method git-fetch)
@@ -173,7 +169,7 @@ interpretation of the specifications for these languages.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "1q3c79rf3mma0vqmwnxwps588pnyzap4nn49hk41m39k79vniaz8"))))
+         "0idw7q715ikj575qmspvgq2gzc6c1sj581b8z3xnv6wz9qbzrmsd"))))
     (build-system cmake-build-system)
     (arguments
      `(#:tests? #f))                    ; No tests.
@@ -187,7 +183,7 @@ interpretation of the specifications for these languages.")
 (define-public vulkan-loader
   (package
     (name "vulkan-loader")
-    (version "1.1.102")
+    (version (package-version vulkan-headers))
     (source
      (origin
        (method git-fetch)
@@ -197,7 +193,7 @@ interpretation of the specifications for these languages.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "0ccpklv251jcz2lxvd5ix5i3cg4wb7qq5xi6cwvniy1rw52z7h00"))))
+         "1ypjd2gfxdwldnqrrqy6bnjln5mml62a9k5pfi451srcxznijjai"))))
     (build-system cmake-build-system)
     (arguments
      `(#:tests? #f ;FIXME: 23/39 tests fail.  Try "tests/run_all_tests.sh".
@@ -238,7 +234,7 @@ and the ICD.")
 (define-public vulkan-tools
   (package
     (name "vulkan-tools")
-    (version "1.1.102")
+    (version (package-version vulkan-headers))
     (source
      (origin
        (method git-fetch)
@@ -248,7 +244,7 @@ and the ICD.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "0a8vmgyn7an21bb9vxba9laf9ghvk905vn7rm8frdl8qr2b7vyw3"))))
+         "0swqyk16mbkivyk79dpqbhpw05a7yrakqynywznr5zgqbc0z4gj8"))))
     (build-system cmake-build-system)
     (inputs
      `(("glslang" ,glslang)
diff --git a/gnu/packages/w3m.scm b/gnu/packages/w3m.scm
index b88bbd39bb..1ec07675ab 100644
--- a/gnu/packages/w3m.scm
+++ b/gnu/packages/w3m.scm
@@ -2,7 +2,7 @@
 ;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org>
 ;;; Copyright © 2016, 2017, 2018 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2016 Kei Kebreau <kkebreau@posteo.net>
-;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2019 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2018 Rutger Helling <rhelling@mykolab.com>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -76,8 +76,8 @@
     (home-page "http://w3m.sourceforge.net/")
     (synopsis "Text-mode web browser")
     (description
-     "w3m is a text-based web browser as well as a pager like 'more' or
-'less'.  With w3m you can browse web pages through a terminal emulator
+     "w3m is a text-based web browser as well as a pager like @code{more} or
+@code{less}.  With w3m you can browse web pages through a terminal emulator
 window.  Moreover, w3m can be used as a text formatting tool which
 typesets HTML into plain text.")
     (license (x11-style "file://doc/README"
diff --git a/gnu/packages/web-browsers.scm b/gnu/packages/web-browsers.scm
index 5c0e14826b..6bbd903578 100644
--- a/gnu/packages/web-browsers.scm
+++ b/gnu/packages/web-browsers.scm
@@ -93,14 +93,14 @@ older or slower computers and embedded systems.")
 (define-public links
   (package
     (name "links")
-    (version "2.18")
+    (version "2.19")
     (source (origin
               (method url-fetch)
               (uri (string-append "http://links.twibright.com/download/"
-                                  name "-" version ".tar.bz2"))
+                                  "links-" version ".tar.bz2"))
                 (sha256
                (base32
-                "0mwhh61klicn2vwk39nc7y4cw4mygzdi2nljn4r0gjbw6jmw3337"))))
+                "02ls11c02p7xvsdjyb43rrzr850i1yly003r812z0w5vv5yqqxbh"))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases
diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index 1749ad0b71..7c3744cc5b 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -1,7 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2013, 2015 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2013 Aljosha Papsch <misc@rpapsch.de>
-;;; Copyright © 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2014, 2015, 2016 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2015, 2016, 2017, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2018 Raoul Jean Pierre Bonnal <ilpuccio.febo@gmail.com>
@@ -10,7 +10,7 @@
 ;;; Copyright © 2015 Eric Dvorsak <eric@dvorsak.fr>
 ;;; Copyright © 2016 Sou Bunnbu <iyzsong@gmail.com>
 ;;; Copyright © 2016 Jelle Licht <jlicht@fsfe.org>
-;;; Copyright © 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016 Rene Saavedra <rennes@openmailbox.org>
 ;;; Copyright © 2016 Ben Woodcroft <donttrustben@gmail.com>
 ;;; Copyright © 2016 Clément Lassieur <clement@lassieur.org>
@@ -30,6 +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>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -85,7 +86,6 @@
   #: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)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages guile)
@@ -102,6 +102,7 @@
   #:use-module (gnu packages lua)
   #:use-module (gnu packages markup)
   #:use-module (gnu packages ncurses)
+  #:use-module (gnu packages nss)
   #:use-module (gnu packages openstack)
   #:use-module (gnu packages base)
   #:use-module (gnu packages package-management)
@@ -125,14 +126,14 @@
 (define-public httpd
   (package
     (name "httpd")
-    (version "2.4.38")
+    (version "2.4.39")
     (source (origin
              (method url-fetch)
              (uri (string-append "mirror://apache/httpd/httpd-"
                                  version ".tar.bz2"))
              (sha256
               (base32
-               "0jiriyyf3pm6axf4mrz6c2z08yhs21hb4d23viq87jclm5bmiikx"))))
+               "18ngvsjq65qxk3biggnkhkq8jlll9dsg9n3csra9p99sfw2rvjml"))))
     (build-system gnu-build-system)
     (native-inputs `(("pcre" ,pcre "bin")))       ;for 'pcre-config'
     (inputs `(("apr" ,apr)
@@ -198,14 +199,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.15.9")
+    (version "1.15.12")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://nginx.org/download/nginx-"
                                   version ".tar.gz"))
               (sha256
                (base32
-                "0hxfsz1117r91b9fb5hjddyrf1czvb36lh1z7zalqqdskfcbmkz4"))))
+                "1giavdph0jqhywdkj4650s5qhz6qfd6nrv74k9q005yy2ym90nrx"))))
     (build-system gnu-build-system)
     (inputs `(("openssl" ,openssl)
               ("pcre" ,pcre)
@@ -2900,7 +2901,7 @@ fields in the request.")
     (home-page "https://metacpan.org/release/HTTP-Parser")
     (synopsis "Parse HTTP/1.1 requests")
     (description "This is an HTTP request parser.  It takes chunks of text as
-received and returns a 'hint' as to what is required, or returns the
+received and returns a @code{hint} as to what is required, or returns the
 HTTP::Request when a complete request has been read.  HTTP/1.1 chunking is
 supported.")
     (license l:perl-license)))
@@ -3009,6 +3010,33 @@ simple requests without the overhead of a large framework like LWP::UserAgent.
 It supports proxies and redirection.  It also correctly resumes after EINTR.")
     (license l:perl-license)))
 
+(define-public perl-http-tinyish
+  (package
+    (name "perl-http-tinyish")
+    (version "0.15")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "mirror://cpan/authors/id/M/MI/MIYAGAWA/HTTP-Tinyish-"
+             version
+             ".tar.gz"))
+       (sha256
+        (base32
+         "199sa722amvwhq0czjfb7psj3hbqmvni5vxkrm579r5943pg0rax"))))
+    (build-system perl-build-system)
+    (propagated-inputs
+     `(("perl-file-which" ,perl-file-which)
+       ("perl-ipc-run3" ,perl-ipc-run3)))
+    (home-page "https://metacpan.org/release/HTTP-Tinyish")
+    (synopsis "@code{HTTP::Tiny} compatible HTTP client wrappers")
+    (description
+     "@code{HTTP::Tinyish} is a wrapper module for @acronym{LWP,libwww-perl},
+@code{HTTP::Tiny}, curl and wget.
+
+It provides an API compatible to HTTP::Tiny.")
+    (license l:perl-license)))
+
 (define-public perl-io-html
   (package
     (name "perl-io-html")
@@ -3374,6 +3402,35 @@ application frameworks.  Plack is like Ruby's Rack or Python's Paste for
 WSGI.")
     (license l:perl-license)))
 
+(define-public perl-plack-middleware-deflater
+  (package
+    (name "perl-plack-middleware-deflater")
+    (version "0.12")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "mirror://cpan/authors/id/K/KA/KAZEBURO/"
+             "Plack-Middleware-Deflater-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0xf2visi16hgwgyp9q0cjr10ikbn474hjia5mj8mb2scvbkrbni8"))))
+    (build-system perl-build-system)
+    (native-inputs
+     `(("perl-module-install" ,perl-module-install)
+       ("perl-test-requires" ,perl-test-requires)))
+    (propagated-inputs
+     `(("perl-plack" ,perl-plack)))
+    (home-page "https://metacpan.org/release/Plack-Middleware-Deflater")
+    (synopsis "Compress response body with Gzip or Deflate")
+    (description
+     "Plack::Middleware::Deflater is a middleware to encode your response body
+in gzip or deflate, based on \"Accept-Encoding\" HTTP request header.  It
+would save the bandwidth a little bit but should increase the Plack server
+load, so ideally you should handle this on the frontend reverse proxy
+servers.")
+    (license l:perl-license)))
+
 (define-public perl-plack-middleware-fixmissingbodyinredirect
   (package
     (name "perl-plack-middleware-fixmissingbodyinredirect")
@@ -3467,7 +3524,7 @@ required.")
     (synopsis "Supports app to run as a reverse proxy backend")
     (description "Plack::Middleware::ReverseProxy resets some HTTP headers,
 which are changed by reverse-proxy.  You can specify the reverse proxy address
-and stop fake requests using 'enable_if' directive in your app.psgi.")
+and stop fake requests using @code{enable_if} directive in your app.psgi.")
     (license l:perl-license)))
 
 (define-public perl-plack-test-externalserver
@@ -3477,7 +3534,7 @@ and stop fake requests using 'enable_if' directive in your app.psgi.")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "mirror://cpan/authors/id/F/FL/FLORA/"
+       (uri (string-append "mirror://cpan/authors/id/E/ET/ETHER/"
                            "Plack-Test-ExternalServer-" version ".tar.gz"))
        (sha256
         (base32 "1l1yj1l25679x7cbpd27ii7s1f1ajpkspif9xqnl21hczrbmrbsv"))))
@@ -4608,14 +4665,15 @@ handling many of the web standards in use today.")
 (define-public surfraw
   (package
     (name "surfraw")
-    (version "2.2.9")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://surfraw.alioth.debian.org/dist/"
-                                  name "-" version ".tar.gz"))
-              (sha256
-               (base32
-                "1fy4ph5h9kp0jzj1m6pfylxnnmgdk0mmdppw76z9jhna4jndk5xa"))))
+    (version "2.3.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://gitlab.com/surfraw/Surfraw/uploads/"
+                           "2de827b2786ef2fe43b6f07913ca7b7f/"
+                           "surfraw-" version ".tar.gz"))
+       (sha256
+        (base32 "099nbif0x5cbcf18snc58nx1a3q7z0v9br9p2jiq9pcc7ic2015d"))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases
@@ -4753,14 +4811,14 @@ tools like SSH (Secure Shell) to reach the outside world.")
 (define-public stunnel
   (package
   (name "stunnel")
-  (version "5.50")
+  (version "5.53")
   (source
     (origin
       (method url-fetch)
       (uri (string-append "https://www.stunnel.org/downloads/stunnel-"
                           version ".tar.gz"))
       (sha256
-       (base32 "0j811iakljjxw39qchmqf235jdkwixb0i4xxjyi55f08558947cm"))))
+       (base32 "119560alb8k0qz2zkjb2i80ikmn76fa6dg681fvrw9hlxsb9hhw0"))))
   (build-system gnu-build-system)
   (native-inputs
    ;; For tests.
@@ -5096,7 +5154,7 @@ into your tests.  It automatically starts up a HTTP server in a separate thread
 (define-public http-parser
   (package
     (name "http-parser")
-    (version "2.9.0")
+    (version "2.9.2")
     (home-page "https://github.com/nodejs/http-parser")
     (source (origin
               (method git-fetch)
@@ -5105,7 +5163,7 @@ into your tests.  It automatically starts up a HTTP server in a separate thread
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1qa3rh9x4as2fc2p0y2hah83iqs7jr5106a8anv317359dgf3ssj"))))
+                "1qs6x3n2nrcj1wiik5pg5i16inykf7rcfdfdy7rwyzf40pvdl3c2"))))
     (build-system gnu-build-system)
     (arguments
      `(#:test-target "test"
@@ -5125,6 +5183,36 @@ Depending on your architecture, it only requires about 40 bytes of data per
 message stream (in a web server that is per connection).")
     (license l:expat)))
 
+(define-public python-httpretty
+  (package
+    (name "python-httpretty")
+    (version "0.9.6")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "httpretty" version))
+       (sha256
+        (base32 "1p1rb4mpngh0632xrmdfhvc8yink519yfkqz97d2ww3y0x2jvd81"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     `(("python-six" ,python-six)))
+    (native-inputs
+     `(("python-coverage" ,python-coverage)
+       ("python-httplib2" ,python-httplib2)
+       ("python-mock" ,python-mock)
+       ("python-nose" ,python-nose)
+       ("python-nose-randomly" ,python-nose-randomly)
+       ("python-rednose" ,python-rednose)
+       ("python-requests" ,python-requests)
+       ("python-sure" ,python-sure)
+       ("python-tornado" ,python-tornado)
+       ("python-urllib3" ,python-urllib3)))
+    (home-page "https://httpretty.readthedocs.io")
+    (synopsis "HTTP client mock for Python")
+    (description "@code{httpretty} is a helper for faking web requests,
+inspired by Ruby's @code{fakeweb}.")
+    (license l:expat)))
+
 (define-public python2-httpretty
   (package
     (name "python2-httpretty")
@@ -5347,8 +5435,7 @@ Instagram and YouTube.")
              (url "https://github.com/linkchecker/linkchecker")
              (commit (string-append "v" version))))
        (patches
-        (search-patches
-         "linkchecker-mark-more-tests-that-require-the-network.patch"))
+        (search-patches "linkchecker-tests-require-network.patch"))
        (file-name (git-file-name name version))
        (sha256
         (base32
@@ -6420,9 +6507,38 @@ compressed JSON header blocks.
        `(("guile" ,guile-2.2)
          ("guile-commonmark" ,guile-commonmark)
          ("guile-json" ,guile-json)))
-    (home-page "https://github.com/UMCUGenetics/hpcguix-web")
+      (home-page "https://github.com/UMCUGenetics/hpcguix-web")
       (synopsis "Web interface for cluster deployments of Guix")
       (description "Hpcguix-web provides a web interface to the list of packages
 provided by Guix.  The list of packages is searchable and provides
 instructions on how to use Guix in a shared HPC environment.")
-    (license l:agpl3+))))
+      (license l:agpl3+))))
+
+(define-public httrack
+  (package
+    (name "httrack")
+    (version "3.49.2")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://mirror.httrack.com/historical/"
+                                  "httrack-" version ".tar.gz"))
+              (sha256
+               (base32
+                "09a0gm67nml86qby1k1gh7rdxamnrnzwr6l9r5iiq94favjs0xrl"))))
+    (build-system gnu-build-system)
+    (inputs
+     `(("libressl" ,libressl)
+       ("zlib" ,zlib)))
+    (home-page "https://www.httrack.com/")
+    (synopsis "Easy-to-use offline browser utility")
+    (description "HTTrack allows you to download a World Wide Web site from
+the Internet to a local directory, building recursively all directories,
+getting HTML, images, and other files from the server to your computer.
+
+HTTrack arranges the original site's relative link-structure.  Simply open
+a page of the ``mirrored'' website in your browser, and you can browse the
+site from link to link, as if you were viewing it online.  HTTrack can also
+update an existing mirrored site, and resume interrupted downloads.
+
+HTTrack is fully configurable, and has an integrated help system.")
+    (license l:gpl3+)))
diff --git a/gnu/packages/webkit.scm b/gnu/packages/webkit.scm
index c05366fb5b..ceff9c18b8 100644
--- a/gnu/packages/webkit.scm
+++ b/gnu/packages/webkit.scm
@@ -59,14 +59,16 @@
 (define-public webkitgtk
   (package
     (name "webkitgtk")
-    (version "2.24.0")
+    (version "2.24.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://www.webkitgtk.org/releases/"
                                   name "-" version ".tar.xz"))
+
+              (patches (search-patches "webkitgtk-sse2.patch"))
               (sha256
                (base32
-                "01s446lmjk7y8il4snjm32vpxws2rp4hmxrwm2swx0p47x8d2jif"))))
+                "0v9riwrmwi9wxbb8hlvcbyyxa9zxhcdk6s1xcspalk6asam8xjsk"))))
     (build-system cmake-build-system)
     (outputs '("out" "doc"))
     (arguments
diff --git a/gnu/packages/wget.scm b/gnu/packages/wget.scm
index 128041318b..4f8671ad6e 100644
--- a/gnu/packages/wget.scm
+++ b/gnu/packages/wget.scm
@@ -93,6 +93,13 @@ in downloaded documents to relative links.")
        (modify-phases %standard-phases
          (delete 'configure)
          (delete 'build)
+         (add-before 'install 'use-inputs
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let* ((wget (assoc-ref inputs "wget")))
+               (substitute* "wgetpaste"
+                 (("(LC_ALL=C) wget" _ prefix)
+                  (format "~a ~a/bin/wget" prefix wget)))
+               #t)))
          (replace 'install
            (lambda* (#:key outputs #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out"))
@@ -100,7 +107,9 @@ in downloaded documents to relative links.")
                     (zsh (string-append out "/share/zsh/site-functions")))
                (install-file "wgetpaste" bin)
                (install-file "_wgetpaste" zsh)))))
-       #:tests? #f)) ; no test target
+       #:tests? #f))                    ; no test target
+    (inputs
+     `(("wget" ,wget)))
     (home-page "http://wgetpaste.zlin.dk/")
     (synopsis "Script that automates pasting to a number of pastebin services")
     (description
diff --git a/gnu/packages/wine.scm b/gnu/packages/wine.scm
index c7a57f5ec4..f0843edc99 100644
--- a/gnu/packages/wine.scm
+++ b/gnu/packages/wine.scm
@@ -310,7 +310,7 @@ integrate Windows applications into your desktop.")
 (define-public wine-staging-patchset-data
   (package
     (name "wine-staging-patchset-data")
-    (version "4.4")
+    (version "4.7")
     (source
      (origin
        (method git-fetch)
@@ -320,7 +320,7 @@ integrate Windows applications into your desktop.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "1pk0p37p2pbdsikj6987pg70f9a5n2ki8vnhcj4ngh1rhg6iqgyw"))))
+         "1sgyq57dyzchwnvkgx96bcx5rv821s0vidzdyz7x5711j7xmiv70"))))
     (build-system trivial-build-system)
     (native-inputs
      `(("bash" ,bash)
@@ -366,7 +366,7 @@ integrate Windows applications into your desktop.")
               (file-name (string-append name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1c072a2d56x43alv9pvahasfrdb8k0y0f540xpzjjhqb9g7hjfnv"))))
+                "1c5swx6jj0hz9w2jgyl30pdjcq9n62qp1rmqyq1d4q2a6n291jiv"))))
     (inputs `(("autoconf" ,autoconf) ; for autoreconf
               ("faudio" ,faudio)
               ("ffmpeg" ,ffmpeg)
diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm
index 0a05ff4ae4..ddc6905c82 100644
--- a/gnu/packages/wm.scm
+++ b/gnu/packages/wm.scm
@@ -8,17 +8,18 @@
 ;;; Copyright © 2016, 2019 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 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2016, 2017, 2018 ng0 <ng0@n0.is>
 ;;; 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 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2017, 2019 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2017 Oleg Pykhalov <go.wigust@gmail.com>
 ;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Pierre-Antoine Rouby <contact@parouby.fr>
 ;;; Copyright © 2018 Meiyo Peng <meiyo.peng@gmail.com>
 ;;; Copyright © 2019 Rutger Helling <rhelling@mykolab.com>
+;;; Copyright © 2019 Timothy Sample <samplet@ngyro.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -181,7 +182,19 @@ commands would.")
        (list "--disable-builddir")
 
        ;; The test suite requires the unpackaged Xephyr X server.
-       #:tests? #f))
+       #:tests? #f
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'install 'patch-session-file
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (i3 (string-append out "/bin/i3"))
+                    (i3-with-shmlog (string-append out "/bin/i3-with-shmlog")))
+               (substitute* (string-append out "/share/xsessions/i3.desktop")
+                 (("Exec=i3") (string-append "Exec=" i3)))
+               (substitute* (string-append out "/share/xsessions/i3-with-shmlog.desktop")
+                 (("Exec=i3-with-shmlog") (string-append "Exec=" i3-with-shmlog)))
+               #t))))))
     (inputs
      `(("libxcb" ,libxcb)
        ("xcb-util" ,xcb-util)
@@ -220,6 +233,36 @@ i3 uses a plain-text configuration file, and can be extended and controlled from
 many programming languages.")
     (license license:bsd-3)))
 
+(define-public i3lock
+  (package
+    (name "i3lock")
+    (version "2.11.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://i3wm.org/i3lock/i3lock-"
+                                  version ".tar.bz2"))
+              (sha256
+               (base32
+                "015dn534m7cxjvqdncpvaq9p8b2r4w5hp1yanbdy2abmhbcc7a7j"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("cairo" ,cairo)
+       ("libev" ,libev)
+       ("linux-pam" ,linux-pam)
+       ("libxcb" ,libxcb)
+       ("libxkbcommon" ,libxkbcommon)
+       ("xcb-util" ,xcb-util)
+       ("xcb-util-image" ,xcb-util-image)
+       ("xcb-util-xrm" ,xcb-util-xrm)))
+    (home-page "https://i3wm.org/i3lock/")
+    (synopsis "Lightweight screen locker")
+    (description
+     "i3lock is a simple X11 screen locker developed alongside the i3 project.
+Despite the name it should work with any X11 window manager.")
+    (license license:bsd-3)))
+
 (define-public i3blocks
   (let ((commit "37f23805ff886639163fbef8aedba71c8071eff8")
         (revision "1"))
@@ -536,7 +579,7 @@ tiled on several screens.")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://hackage/package/xmobar/"
-                                  name "-" version ".tar.gz"))
+                                  "xmobar-" version ".tar.gz"))
               (sha256
                (base32
                 "1xh87asg8y35srvp7d3gyyy4bkxsw122liihxgzgm8pqv2z3h4zd"))))
@@ -793,6 +836,13 @@ experience.")
              ;; There aren't any tests, so just make sure the binary
              ;; gets built and can be run successfully.
              (invoke "../build/awesome" "-v")))
+         (add-after 'install 'patch-session-file
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (awesome (string-append out "/bin/awesome")))
+               (substitute* (string-append out "/share/xsessions/awesome.desktop")
+                 (("Exec=awesome") (string-append "Exec=" awesome)))
+               #t)))
          (add-after 'install 'wrap
            (lambda* (#:key inputs outputs #:allow-other-keys)
              (let* ((awesome (assoc-ref outputs "out"))
@@ -811,7 +861,7 @@ experience.")
      "Awesome has been designed as a framework window manager.  It is fast, small,
 dynamic and extensible using the Lua programming language.")
     (license license:gpl2+)
-    (home-page "https://awesome.naquadah.org/")))
+    (home-page "https://awesomewm.org/")))
 
 (define-public menumaker
   (package
@@ -1048,14 +1098,14 @@ its size
 (define-public polybar
   (package
     (name "polybar")
-    (version "3.3.0")
+    (version "3.3.1")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://github.com/jaagr/polybar/releases/"
-                           "download/" version "/polybar.tar"))
+                           "download/" version "/polybar-" version ".tar"))
        (sha256
-        (base32 "0sjh3xmf11g09spi88zj7xsc3a3vv78kixab6n5i7436py7xwzb4"))
+        (base32 "0758na059vpgnsrcdrxmh9wsahs80wnmizb9g7bmixlrkxr2m65h"))
        (file-name (string-append name "-" version ".tar"))))
     (build-system cmake-build-system)
     (arguments
@@ -1160,6 +1210,7 @@ modules for building a Wayland compositor.")
               ("elogind" ,elogind)
               ("gdk-pixbuf" ,gdk-pixbuf)
               ("json-c" ,json-c)
+              ("libevdev" ,libevdev)
               ("libinput" ,libinput)
               ("libxkbcommon" ,libxkbcommon)
               ("pango" ,pango)
diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm
index c0333fbc82..03b27f35a5 100644
--- a/gnu/packages/xdisorg.scm
+++ b/gnu/packages/xdisorg.scm
@@ -3,7 +3,7 @@
 ;;; Copyright © 2014, 2015, 2016 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
 ;;; Copyright © 2014, 2015, 2016 Alex Kost <alezost@gmail.com>
-;;; Copyright © 2013, 2015, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013, 2015, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2015, 2016 Mathieu Lirzin <mthl@gnu.org>
 ;;; Copyright © 2015 Alexander I.Grafov <grafov@gmail.com>
 ;;; Copyright © 2015 Andy Wingo <wingo@igalia.com>
@@ -402,13 +402,11 @@ rasterisation.")
                 "-Dtegra=true"
                 "-Dfreedreno-kgsl=true"))
              (_ '())))
-       ,@(if (string=? (%current-system) "armhf-linux")
-             '(#:phases
-               (modify-phases %standard-phases
-                 (replace 'check
-                   (lambda _
-                     (invoke "meson" "test" "--timeout-multiplier" "5")))))
-             '())))
+
+       #:phases (modify-phases %standard-phases
+                  (replace 'check
+                    (lambda _
+                      (invoke "meson" "test" "--timeout-multiplier" "5"))))))
     (inputs
      `(("libpciaccess" ,libpciaccess)))
     (native-inputs
@@ -576,7 +574,7 @@ selection's dimensions to stdout.")
 (define-public maim
   (package
     (name "maim")
-    (version "5.5.2")
+    (version "5.5.3")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -585,7 +583,7 @@ selection's dimensions to stdout.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "14mfxdm39kc5jk8wysrzx05ag2g4sk9l24i8m5pzqn8j611150v3"))))
+                "1kbxsz8whfxl5blwsvpva2q95zwy72argwhi1cfqh5lrhzq5zrpp"))))
     (build-system cmake-build-system)
     (arguments
      '(#:tests? #f))            ; no "check" target
@@ -959,7 +957,7 @@ Escape key when Left Control is pressed and released on its own.")
 (define-public libwacom
   (package
     (name "libwacom")
-    (version "0.32")
+    (version "0.33")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -967,7 +965,7 @@ Escape key when Left Control is pressed and released on its own.")
                     "libwacom-" version "/libwacom-" version ".tar.bz2"))
               (sha256
                (base32
-                "102kz0q7i0bjsnl6yy83vcj2rpir12rs2d4xr0wvhw84rs5sp7bb"))))
+                "1wnv34y7m9l6avlvwqvfrnksfnsz1lbgb412dn6s7x1h3wvs7y4l"))))
     (build-system glib-or-gtk-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)))
diff --git a/gnu/packages/xfce.scm b/gnu/packages/xfce.scm
index 6c253849f6..cc79fb4851 100644
--- a/gnu/packages/xfce.scm
+++ b/gnu/packages/xfce.scm
@@ -7,7 +7,8 @@
 ;;; Copyright © 2017, 2019 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2017 Petter <petter@mykolab.ch>
 ;;; Copyright © 2017 ng0 <ng0@n0.is>
-;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2019 Pkill -9 <pkill9@runbox.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -28,16 +29,21 @@
   #:use-module ((guix licenses) #:hide (freetype))
   #:use-module (guix packages)
   #:use-module (guix download)
+  #:use-module (guix gexp)
   #: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 trivial)
+  #:use-module (gnu artwork)
   #:use-module (gnu packages)
   #:use-module (gnu packages calendar)
   #:use-module (gnu packages cdrom)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gtk)
+  #:use-module (gnu packages imagemagick)
+  #:use-module (gnu packages inkscape)
   #:use-module (gnu packages xorg)
   #:use-module (gnu packages xdisorg)
   #:use-module (gnu packages web)
@@ -406,6 +412,39 @@ to an auto mixer tool like pavucontrol.  It can optionally handle multimedia
 keys for controlling the audio volume.")
     (license gpl2+)))
 
+(define-public xfce4-whiskermenu-plugin
+  (package
+    (name "xfce4-whiskermenu-plugin")
+    (version "2.3.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "http://archive.xfce.org/src/panel-plugins/"
+                                  name "/" (version-major+minor version) "/"
+                                  name "-" version ".tar.bz2"))
+              (sha256
+               (base32
+                "1cnas2x7xi53v6ylq44040narhzd828dc0ysz8yk3qn2mmvp5yr2"))))
+    (build-system cmake-build-system)
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("intltool" ,intltool)))
+    (inputs
+     `(("xfce4-panel" ,xfce4-panel)
+       ("garcon" ,garcon)
+       ("exo" ,exo)
+       ("gtk+" ,gtk+-2)))
+    (arguments
+      `(#:tests? #f)) ; no tests
+    (home-page "https://goodies.xfce.org/projects/panel-plugins/xfce4-whiskermenu-plugin")
+    (synopsis "Application menu panel plugin for Xfce")
+    (description
+     "This package provides an alternative to the default application menu
+panel plugin for Xfce4.  It uses separate sections to display categories and
+applications, and includes a search bar to search for applications.")
+    ;; The main plugin code is covered by gpl2, but files in panel-plugin directory
+    ;; are covered by gpl2+.  The SVG icon is covered by gpl2.
+    (license (list gpl2 gpl2+))))
+
 (define-public xfce4-xkb-plugin
   (package
     (name "xfce4-xkb-plugin")
@@ -657,11 +696,40 @@ on the screen.")
                                   name "-" version ".tar.bz2"))
               (sha256
                (base32
-                "1jzi851arljq5lza9inyq4ss513l62lbzbfm64a7x4320m8kb2h9"))))
+                "1jzi851arljq5lza9inyq4ss513l62lbzbfm64a7x4320m8kb2h9"))
+              (modules '((guix build utils)))
+              (snippet
+               #~(begin
+                   (copy-file #$(file-append %artwork-repository "/logo/Guix.svg")
+                              "backgrounds/guix-logo.svg")
+                   #t))))
     (build-system gnu-build-system)
+    (arguments
+     `(#:phases (modify-phases %standard-phases
+                  (add-before 'configure 'prepare-background-image
+                    (lambda _
+                      ;; Stick a Guix logo in the background image.  XXX: It
+                      ;; has to go to the center because the image might be
+                      ;; truncated on the edges.  :-/
+                      (invoke "inkscape" "--export-dpi=120"
+                              "--export-png=/tmp/guix.png"
+                              "backgrounds/guix-logo.svg")
+                      (for-each (lambda (image)
+                                  (invoke "composite" "-gravity" "center"
+                                          "/tmp/guix.png" image
+                                          "/tmp/final.jpg")
+                                  (copy-file "/tmp/final.jpg" image))
+                                '(;; "backgrounds/xfce-blue.jpg"
+                                  "backgrounds/xfce-teal.jpg"))
+                      #t)))
+
+       #:disallowed-references (,inkscape ,imagemagick)))
     (native-inputs
      `(("pkg-config" ,pkg-config)
-       ("intltool" ,intltool)))
+       ("intltool" ,intltool)
+
+       ("inkscape" ,inkscape)
+       ("imagemagick" ,imagemagick)))
     (inputs
      `(("exo" ,exo)
        ("garcon" ,garcon)
@@ -798,15 +866,15 @@ inhibit interface which allows applications to prevent automatic sleep.")
 (define-public ristretto
   (package
     (name "ristretto")
-    (version "0.8.3")
+    (version "0.8.4")
     (source (origin
               (method url-fetch)
               (uri (string-append "http://archive.xfce.org/src/apps/ristretto/"
                                   (version-major+minor version) "/"
-                                  name "-" version ".tar.bz2"))
+                                  "ristretto-" version ".tar.bz2"))
               (sha256
                (base32
-                "0r96r8r1qslr6cqvwldm99ha563adkw9v2zvaznxkpqn11v1374c"))))
+                "18nf01djwnbjc91bdlv3p0h6pwcq1kfnjgp6yaxhxv4kdi9f82rs"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("intltool" ,intltool)
diff --git a/gnu/packages/xiph.scm b/gnu/packages/xiph.scm
index 43b0d2723a..15502bd0e9 100644
--- a/gnu/packages/xiph.scm
+++ b/gnu/packages/xiph.scm
@@ -5,7 +5,7 @@
 ;;; Copyright © 2014 Sree Harsha Totakura <sreeharsha@totakura.in>
 ;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>
-;;; Copyright © 2015, 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2015, 2016, 2017, 2019 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2017, 2018 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Leo Famulari <leo@famulari.name>
@@ -242,7 +242,8 @@ It currently supports:
                                 version ".tar.xz"))
             (sha256
              (base32
-              "0gymm2j3276kr9nz6vmgfwsdfrq6c449n40a0mzz8h6wc7nw7kwi"))))
+              "0gymm2j3276kr9nz6vmgfwsdfrq6c449n40a0mzz8h6wc7nw7kwi"))
+            (patches (search-patches "flac-CVE-2017-6888.patch"))))
    (build-system gnu-build-system)
    (arguments
     `(#:parallel-tests? #f))
diff --git a/gnu/packages/xml.scm b/gnu/packages/xml.scm
index cfc17e752c..71aa7116c8 100644
--- a/gnu/packages/xml.scm
+++ b/gnu/packages/xml.scm
@@ -44,9 +44,7 @@
   #:use-module (gnu packages curl)
   #:use-module (gnu packages gnupg)
   #:use-module (gnu packages java)
-  #:use-module (gnu packages gnuzilla)
-  #:use-module (gnu packages haskell)
-  #:use-module (gnu packages haskell-check)
+  #:use-module (gnu packages nss)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages perl-check)
   #:use-module (gnu packages python)
@@ -61,7 +59,6 @@
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system perl)
   #:use-module (guix build-system python)
-  #:use-module (guix build-system haskell)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages pkg-config))
 
@@ -938,14 +935,14 @@ XSL-T processor.  It also performs any necessary post-processing.")
 (define-public xmlsec
   (package
     (name "xmlsec")
-    (version "1.2.27")
+    (version "1.2.28")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://www.aleksey.com/xmlsec/download/"
                                   "xmlsec1-" version ".tar.gz"))
               (sha256
                (base32
-                "1dlf263mvxj9n4lnhhjawc2hv45agrwjf8kxk7k8h9g9v2x5dmwp"))))
+                "1m12caglhyx08g8lh2sl3nkldlpryzdx2d572q73y3m33s0w9vhk"))))
     (build-system gnu-build-system)
     (propagated-inputs                  ; according to xmlsec1.pc
      `(("libxml2" ,libxml2)
@@ -1996,111 +1993,6 @@ outputting XML data from Java code.")
 and back again.")
     (license license:bsd-3)))
 
-(define-public ghc-hxt-charproperties
-  (package
-    (name "ghc-hxt-charproperties")
-    (version "9.2.0.1")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (string-append "https://hackage.haskell.org/package/"
-                           "hxt-charproperties/hxt-charproperties-"
-                           version ".tar.gz"))
-       (sha256
-        (base32
-         "1mml8wglvagqq891rchgli6r8rnkwrqhgsxfl6kb5403pzb18rp4"))))
-    (build-system haskell-build-system)
-    (home-page "https://github.com/UweSchmidt/hxt")
-    (synopsis "Character properties and classes for XML and Unicode")
-    (description
-     "The modules provided by this package contain predicates for Unicode
-blocks and char properties and character predicates defined by XML.  The
-supported Unicode version is 7.0.0")
-    (license license:expat)))
-
-(define-public ghc-hxt-unicode
-  (package
-    (name "ghc-hxt-unicode")
-    (version "9.0.2.4")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (string-append
-             "https://hackage.haskell.org/package/hxt-unicode/hxt-unicode-"
-             version
-             ".tar.gz"))
-       (sha256
-        (base32
-         "0rj48cy8z4fl3zpg5bpa458kqr83adav6jnqv4i71dclpprj6n3v"))))
-    (build-system haskell-build-system)
-    (inputs
-     `(("ghc-hxt-charproperties" ,ghc-hxt-charproperties)))
-    (home-page
-     "http://www.fh-wedel.de/~si/HXmlToolbox/index.html https://github.com/UweSchmidt/hxt")
-    (synopsis
-     "Unicode en-/decoding functions for utf8, iso-latin-* and other encodings")
-    (description
-     "This package provides Unicode encoding and decoding functions for
-encodings used in the Haskell XML Toolbox.  ISO Latin 1-16, utf8, utf16, ASCII
-are supported. Decoding is done with lazy functions, errors may be detected or
-ignored.")
-    (license license:expat)))
-
-(define-public ghc-hxt-regex-xmlschema
-  (package
-    (name "ghc-hxt-regex-xmlschema")
-    (version "9.2.0.3")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (string-append "https://hackage.haskell.org/package/"
-                           "hxt-regex-xmlschema/hxt-regex-xmlschema-"
-                           version ".tar.gz"))
-       (sha256
-        (base32
-         "1c4jr0439f5yc05h7iz53fa47g6l2wrvqp6gvwf01mlqajk3nx7l"))))
-    (build-system haskell-build-system)
-    (inputs
-     `(("ghc-hxt-charproperties" ,ghc-hxt-charproperties)
-       ("ghc-parsec" ,ghc-parsec)
-       ("ghc-text" ,ghc-text)
-       ("ghc-hunit" ,ghc-hunit)))
-    (home-page "http://www.haskell.org/haskellwiki/Regular_expressions_for_XML_Schema")
-    (synopsis "Regular expression library for W3C XML Schema regular expressions")
-    (description
-     "This library supports full W3C XML Schema regular expressions inclusive
-all Unicode character sets and blocks.  It is implemented by the technique of
-derivations of regular expressions.")
-    (license license:expat)))
-
-(define-public ghc-hxt
-  (package
-    (name "ghc-hxt")
-    (version "9.3.1.16")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (string-append
-             "https://hackage.haskell.org/package/hxt/hxt-"
-             version
-             ".tar.gz"))
-       (sha256
-        (base32
-         "1qq3ykgn355rx242xjcbqqksgvwr6k2fdj5phw4iv28qqxff6m8d"))))
-    (build-system haskell-build-system)
-    (inputs
-     `(("ghc-parsec" ,ghc-parsec)
-       ("ghc-hxt-charproperties" ,ghc-hxt-charproperties)
-       ("ghc-hxt-unicode" ,ghc-hxt-unicode)
-       ("ghc-hxt-regex-xmlschema" ,ghc-hxt-regex-xmlschema)
-       ("ghc-network-uri" ,ghc-network-uri)))
-    (home-page "https://github.com/UweSchmidt/hxt")
-    (synopsis "Collection of tools for processing XML with Haskell")
-    (description
-     "The Haskell XML Toolbox bases on the ideas of HaXml and HXML, but
-introduces a more general approach for processing XML with Haskell.")
-    (license license:expat)))
-
 (define-public xmlrpc-c
   (package
     (name "xmlrpc-c")
diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm
index 994679089f..8fdb6c368c 100644
--- a/gnu/packages/xorg.scm
+++ b/gnu/packages/xorg.scm
@@ -6,7 +6,7 @@
 ;;; 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 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2017, 2019 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016 ng0 <ng0@n0.is>
 ;;; Copyright © 2016 Alex Kost <alezost@gmail.com>
 ;;; Copyright © 2016 David Craven <david@craven.ch>
@@ -548,7 +548,7 @@ Resources file.")
     (synopsis "Xorg font aliases")
     (description
      "This package provides some common aliases for Xorg fonts.
-For example: '6x10', '9x15bold', etc.")
+For example: @code{6x10}, @code{9x15bold}, etc.")
     (license license:x11)))
 
 
@@ -1600,8 +1600,8 @@ input from UTF-8 into the locale's encoding.")
     (home-page "https://www.x.org/wiki/")
     (synopsis "Create an index of scalable font files for X server")
     (description
-     "MkFontScale creates the 'fonts.scale' and 'fonts.dir' index files used
-by the legacy X11 font system.")
+     "MkFontScale creates the @code{fonts.scale} and @code{fonts.dir} index
+files used by the legacy X11 font system.")
     (license license:x11)))
 
 
@@ -2220,7 +2220,7 @@ X11 Inter-Client Communication Conventions Manual (ICCCM).")
     (synopsis "Default Xorg cursors")
     (description
      "This package provides a default set of cursor themes for the Xorg
-X server: 'handhelds', 'redglass' and 'whiteglass'.")
+X server: @code{handhelds}, @code{redglass} and @code{whiteglass}.")
     (license license:x11)))
 
 
@@ -2927,8 +2927,8 @@ X server.")
 
 
 (define-public xf86-video-intel
-  (let ((commit "33ee0c3b21ea279e08d0863fcb2e874f0974b00e")
-        (revision "12"))
+  (let ((commit "6afed33b2d673d88674f0c76efe500ae414e8e1b")
+        (revision "13"))
     (package
       (name "xf86-video-intel")
       (version (git-version "2.99.917" revision commit))
@@ -2941,7 +2941,7 @@ X server.")
                (commit commit)))
          (sha256
           (base32
-           "1ryjaj52nd2fbrjf1id5fr5vndzvv287rggbj3lzhbwzxv52r0gj"))
+           "1s3fqlqzmql7s15m7qy21vai93n6q9f0ccpv0p353rwfx16mmf35"))
          (file-name (git-file-name name version))))
       (build-system gnu-build-system)
       (inputs `(("mesa" ,mesa)
@@ -3876,7 +3876,7 @@ extension to the X11 protocol.  It includes:
      "xkeyboard-config provides a database for X Keyboard (XKB) Extension.
 There are five components that define a complete keyboard mapping:
 symbols, geometry, keycodes, compat, and types; these five components
-can be combined together using the 'rules' component of this database.")
+can be combined together using the @code{rules} component of this database.")
     (license license:x11)))
 
 
@@ -4758,7 +4758,7 @@ protocol and arbitrary X extension protocol.")
     (home-page "https://www.x.org/wiki/")
     (synopsis "Create an index of X font files in a directory")
     (description
-     "MkFontDir creates the 'fonts.dir' files needed by the legacy X
+     "MkFontDir creates the @code{fonts.dir} files needed by the legacy X
 server core font system.  The current implementation is a simple wrapper
 script around the mkfontscale program.")
     (license license:x11)))
@@ -5683,7 +5683,7 @@ The XCB util-wm module provides the following libraries:
     (description
      "The xinit program is used to start the X Window System server and a
 first client program on systems that are not using a display manager such as
-xdm.  This package also provides the 'startx' command, which provides a
+xdm.  This package also provides the @code{startx} command, which provides a
 user-friendly mechanism to start the X server.")
     (license license:x11)))
 
@@ -5973,18 +5973,17 @@ Conventions Manual) and some of the @dfn{EWMH}
 (define-public xcompmgr
   (package
     (name "xcompmgr")
-    (version "1.1.7")
+    (version "1.1.8")
     (source
      (origin
-       ;; there's no current tarball
+       ;; There's no current tarball.
        (method git-fetch)
        (uri (git-reference
              (url "https://anongit.freedesktop.org/git/xorg/app/xcompmgr.git")
-             (commit (string-append name "-" version))))
+             (commit (string-append "xcompmgr-" version))))
        (sha256
-        (base32
-         "04swkrm3gk689wrjc418bd3n25w8r20kg1xfbn5j8d7mx1r5gf16"))
-       (file-name (string-append name "-" version))))
+        (base32 "11i7vyk3pynw8q8aczpy56qncm84y0cmhlvyja3sj8dgy60g03q2"))
+       (file-name (git-file-name name version))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases (modify-phases %standard-phases
@@ -6014,7 +6013,7 @@ basic eye-candy effects.")
 (define-public xpra
   (package
     (name "xpra")
-    (version "2.5")
+    (version "2.5.1")
     (source
      (origin
        (method url-fetch)
@@ -6022,7 +6021,7 @@ basic eye-candy effects.")
                            version ".tar.xz"))
        (sha256
         (base32
-         "0q6c7ijgpp2wk6jlh0pzqki1w60i36wyl2zfwkg0gpdh40ypab3x"))))
+         "14l3bs7mlkd2lphjhnbw5dr95pg7x1k61s9wk35dra4li2xjy1lm"))))
     (build-system python-build-system)
     (inputs `(("ffmpeg" ,ffmpeg)
               ("flac" ,flac)
@@ -6360,7 +6359,7 @@ output.")
 (define-public console-setup
   (package
     (name "console-setup")
-    (version "1.190")
+    (version "1.191")
     (source
      (origin
        (method git-fetch)
@@ -6368,7 +6367,7 @@ output.")
              (url "https://salsa.debian.org/installer-team/console-setup.git")
              (commit version)))
        (sha256
-        (base32 "0qklm9ww1wap2bs7hp31xkfjyhdrirg2mk4hiv7h6fiqckzmdwvd"))
+        (base32 "0wplhjadk530fqxhfnizil32rcvkcl5m2r18yskspcib53r4pmim"))
        (file-name (git-file-name name version))))
     (build-system gnu-build-system)
     (arguments
diff --git a/gnu/services/authentication.scm b/gnu/services/authentication.scm
index ab54aaf698..73969a5a6d 100644
--- a/gnu/services/authentication.scm
+++ b/gnu/services/authentication.scm
@@ -42,17 +42,21 @@
             nslcd-configuration?
             nslcd-service-type))
 
-(define-record-type* <fprintd-configuration>
-  fprintd-configuration make-fprintd-configuration
-  fprintd-configuration?
-  (ntp      fprintd-configuration-fprintd
-            (default fprintd)))
+(define-configuration fprintd-configuration
+  (fprintd      (package fprintd)
+                "The fprintd package"))
+
+(define (fprintd-dbus-service config)
+  (list (fprintd-configuration-fprintd config)))
 
 (define fprintd-service-type
   (service-type (name 'fprintd)
                 (extensions
                  (list (service-extension dbus-root-service-type
-                                          list)))
+                                          fprintd-dbus-service)
+                       (service-extension polkit-service-type
+                                          fprintd-dbus-service)))
+                (default-value (fprintd-configuration))
                 (description
                  "Run fprintd, a fingerprint management daemon.")))
 
diff --git a/gnu/services/base.scm b/gnu/services/base.scm
index 04b123b833..952f6f9ab2 100644
--- a/gnu/services/base.scm
+++ b/gnu/services/base.scm
@@ -510,13 +510,30 @@ FILE-SYSTEM."
     (cons* sink user-unmount
            (map file-system-shepherd-service file-systems))))
 
+(define (file-system-fstab-entries file-systems)
+  "Return the subset of @var{file-systems} that should have an entry in
+@file{/etc/fstab}."
+  ;; /etc/fstab is about telling fsck(8), mount(8), and umount(8) about
+  ;; relevant file systems they'll have to deal with.  That excludes "pseudo"
+  ;; file systems.
+  ;;
+  ;; In particular, things like GIO (part of GLib) use it to determine the set
+  ;; of mounts, which is then used by graphical file managers and desktop
+  ;; environments to display "volume" icons.  Thus, we really need to exclude
+  ;; those pseudo file systems from the list.
+  (remove (lambda (file-system)
+            (or (member (file-system-type file-system)
+                        %pseudo-file-system-types)
+                (memq 'bind-mount (file-system-flags file-system))))
+          file-systems))
+
 (define file-system-service-type
   (service-type (name 'file-systems)
                 (extensions
                  (list (service-extension shepherd-root-service-type
                                           file-system-shepherd-services)
                        (service-extension fstab-service-type
-                                          identity)
+                                          file-system-fstab-entries)
 
                        ;; Have 'user-processes' depend on 'file-systems'.
                        (service-extension user-processes-service-type
@@ -719,7 +736,8 @@ to add @var{device} to the kernel's entropy pool.  The service will fail if
                                  #$@files))))
       (respawn? #f)))))
 
-(define (console-keymap-service . files)
+(define-deprecated (console-keymap-service #:rest files)
+  #f
   "Return a service to load console keymaps from @var{files}."
   (service console-keymap-service-type files))
 
@@ -1515,19 +1533,9 @@ GID."
 (define (hydra-key-authorization keys guix)
   "Return a gexp with code to register KEYS, a list of files containing 'guix
 archive' public keys, with GUIX."
-  (define aaa
-    ;; XXX: Terrible hack to work around <https://bugs.gnu.org/15602>: this
-    ;; forces (guix config) and (guix utils) to be loaded upfront, so that
-    ;; their run-time symbols are defined.
-    (scheme-file "aaa.scm"
-                 #~(define-module (guix aaa)
-                     #:use-module (guix config)
-                     #:use-module (guix memoization))))
-
   (define default-acl
     (with-extensions (list guile-gcrypt)
       (with-imported-modules `(((guix config) => ,(make-config.scm))
-                               ((guix aaa) => ,aaa)
                                ,@(source-module-closure '((guix pki))
                                                         #:select? not-config?))
         (computed-file "acl"
diff --git a/gnu/services/certbot.scm b/gnu/services/certbot.scm
index 7565bc97ca..ae34ad17bb 100644
--- a/gnu/services/certbot.scm
+++ b/gnu/services/certbot.scm
@@ -2,6 +2,7 @@
 ;;; Copyright © 2016 ng0 <ng0@n0.is>
 ;;; Copyright © 2016 Sou Bunnbu <iyzsong@member.fsf.org>
 ;;; Copyright © 2017, 2018 Clément Lassieur <clement@lassieur.org>
+;;; Copyright © 2019 Julien Lepiller <julien@lepiller.eu>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -50,6 +51,12 @@
                        (default #f))
   (domains             certificate-configuration-domains
                        (default '()))
+  (challenge           certificate-configuration-challenge
+                       (default #f))
+  (authentication-hook certificate-authentication-hook
+                       (default #f))
+  (cleanup-hook        certificate-cleanup-hook
+                       (default #f))
   (deploy-hook         certificate-configuration-deploy-hook
                        (default #f)))
 
@@ -81,17 +88,32 @@
             (commands
              (map
               (match-lambda
-                (($ <certificate-configuration> custom-name domains
+                (($ <certificate-configuration> custom-name domains challenge
+                                                authentication-hook cleanup-hook
                                                 deploy-hook)
                  (let ((name (or custom-name (car domains))))
-                   (append
-                    (list name certbot "certonly" "-n" "--agree-tos"
-                          "-m" email
-                          "--webroot" "-w" webroot
-                          "--cert-name" name
-                          "-d" (string-join domains ","))
-                    (if rsa-key-size `("--rsa-key-size" ,rsa-key-size) '())
-                    (if deploy-hook `("--deploy-hook" ,deploy-hook) '())))))
+                   (if challenge
+                     (append
+                      (list name certbot "certonly" "-n" "--agree-tos"
+                            "-m" email
+                            "--manual"
+                            (string-append "--preferred-challenges=" challenge)
+                            "--cert-name" name
+                            "-d" (string-join domains ","))
+                      (if rsa-key-size `("--rsa-key-size" ,rsa-key-size) '())
+                      (if authentication-hook
+                          `("--manual-auth-hook" ,authentication-hook)
+                          '())
+                      (if cleanup-hook `("--manual-cleanup-hook" ,cleanup-hook) '())
+                      (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 rsa-key-size `("--rsa-key-size" ,rsa-key-size) '())
+                      (if deploy-hook `("--deploy-hook" ,deploy-hook) '()))))))
               certificates)))
        (program-file
         "certbot-command"
diff --git a/gnu/services/dbus.scm b/gnu/services/dbus.scm
index 606ee0c2f5..35d7ff3c9c 100644
--- a/gnu/services/dbus.scm
+++ b/gnu/services/dbus.scm
@@ -26,6 +26,7 @@
   #:use-module (gnu packages polkit)
   #:use-module (gnu packages admin)
   #:use-module (guix gexp)
+  #:use-module ((guix packages) #:select (package-name))
   #:use-module (guix records)
   #:use-module (srfi srfi-1)
   #:use-module (ice-9 match)
@@ -33,6 +34,7 @@
             dbus-configuration?
             dbus-root-service-type
             dbus-service
+            wrapped-dbus-service
 
             polkit-service-type
             polkit-service))
@@ -229,6 +231,52 @@ and policy files.  For example, to allow avahi-daemon to use the system bus,
            (dbus-configuration (dbus dbus)
                                (services services))))
 
+(define (wrapped-dbus-service service program variables)
+  "Return a wrapper for @var{service}, a package containing a D-Bus service,
+where @var{program} is wrapped such that @var{variables}, a list of name/value
+tuples, are all set as environment variables when the bus daemon launches it."
+  (define wrapper
+    (program-file (string-append (package-name service) "-program-wrapper")
+                  #~(begin
+                      (use-modules (ice-9 match))
+
+                      (for-each (match-lambda
+                                  ((variable value)
+                                   (setenv variable value)))
+                                '#$variables)
+
+                      (apply execl (string-append #$service "/" #$program)
+                             (string-append #$service "/" #$program)
+                             (cdr (command-line))))))
+
+  (define build
+    (with-imported-modules '((guix build utils))
+      #~(begin
+          (use-modules (guix build utils))
+
+          (define service-directory
+            "/share/dbus-1/system-services")
+
+          (mkdir-p (dirname (string-append #$output
+                                           service-directory)))
+          (copy-recursively (string-append #$service
+                                           service-directory)
+                            (string-append #$output
+                                           service-directory))
+          (symlink (string-append #$service "/etc") ;for etc/dbus-1
+                   (string-append #$output "/etc"))
+
+          (for-each (lambda (file)
+                      (substitute* file
+                        (("Exec[[:blank:]]*=[[:blank:]]*([[:graph:]]+)(.*)$"
+                          _ original-program arguments)
+                         (string-append "Exec=" #$wrapper arguments
+                                        "\n"))))
+                    (find-files #$output "\\.service$")))))
+
+  (computed-file (string-append (package-name service) "-wrapper")
+                 build))
+
 
 ;;;
 ;;; Polkit privilege management service.
diff --git a/gnu/services/desktop.scm b/gnu/services/desktop.scm
index b912c208cc..f31dbc112e 100644
--- a/gnu/services/desktop.scm
+++ b/gnu/services/desktop.scm
@@ -103,6 +103,8 @@
             accountsservice-service-type
             accountsservice-service
 
+            cups-pk-helper-service-type
+
             gnome-desktop-configuration
             gnome-desktop-configuration?
             gnome-desktop-service
@@ -150,46 +152,6 @@
       ((package . _) package))))
 
 
-(define (wrapped-dbus-service service program variable value)
-  "Return a wrapper for @var{service}, a package containing a D-Bus service,
-where @var{program} is wrapped such that environment variable @var{variable}
-is set to @var{value} when the bus daemon launches it."
-  (define wrapper
-    (program-file (string-append (package-name service) "-program-wrapper")
-                  #~(begin
-                      (setenv #$variable #$value)
-                      (apply execl (string-append #$service "/" #$program)
-                             (string-append #$service "/" #$program)
-                             (cdr (command-line))))))
-
-  (define build
-    (with-imported-modules '((guix build utils))
-      #~(begin
-          (use-modules (guix build utils))
-
-          (define service-directory
-            "/share/dbus-1/system-services")
-
-          (mkdir-p (dirname (string-append #$output
-                                           service-directory)))
-          (copy-recursively (string-append #$service
-                                           service-directory)
-                            (string-append #$output
-                                           service-directory))
-          (symlink (string-append #$service "/etc") ;for etc/dbus-1
-                   (string-append #$output "/etc"))
-
-          (for-each (lambda (file)
-                      (substitute* file
-                        (("Exec[[:blank:]]*=[[:blank:]]*([[:graph:]]+)(.*)$"
-                          _ original-program arguments)
-                         (string-append "Exec=" #$wrapper arguments
-                                        "\n"))))
-                    (find-files #$output "\\.service$")))))
-
-  (computed-file (string-append (package-name service) "-wrapper")
-                 build))
-
 
 ;;;
 ;;; Upower D-Bus service.
@@ -257,8 +219,8 @@ is set to @var{value} when the bus daemon launches it."
 (define (upower-dbus-service config)
   (list (wrapped-dbus-service (upower-configuration-upower config)
                               "libexec/upowerd"
-                              "UPOWER_CONF_FILE_NAME"
-                              (upower-configuration-file config))))
+                              `(("UPOWER_CONF_FILE_NAME"
+                                 ,(upower-configuration-file config))))))
 
 (define (upower-shepherd-service config)
   "Return a shepherd service for UPower with CONFIG."
@@ -389,8 +351,8 @@ users are allowed."
 (define (geoclue-dbus-service config)
   (list (wrapped-dbus-service (geoclue-configuration-geoclue config)
                               "libexec/geoclue"
-                              "GEOCLUE_CONFIG_FILE"
-                              (geoclue-configuration-file config))))
+                              `(("GEOCLUE_CONFIG_FILE"
+                                 ,(geoclue-configuration-file config))))))
 
 (define %geoclue-accounts
   (list (user-group (name "geoclue") (system? #t))
@@ -742,8 +704,8 @@ include the @command{udisksctl} command, part of UDisks, and GNOME Disks."
 (define (elogind-dbus-service config)
   (list (wrapped-dbus-service (elogind-package config)
                               "libexec/elogind/elogind"
-                              "ELOGIND_CONF_FILE"
-                              (elogind-configuration-file config))))
+                              `(("ELOGIND_CONF_FILE"
+                                 ,(elogind-configuration-file config))))))
 
 (define (pam-extension-procedure config)
   "Return an extension for PAM-ROOT-SERVICE-TYPE that ensures that all the PAM
@@ -884,9 +846,12 @@ rules."
           (service-extension profile-service-type
                              (compose list
                                       gnome-package))))
+   (default-value (gnome-desktop-configuration))
    (description "Run the GNOME desktop environment.")))
 
-(define* (gnome-desktop-service #:key (config (gnome-desktop-configuration)))
+(define-deprecated (gnome-desktop-service #:key (config
+                                                 (gnome-desktop-configuration)))
+  gnome-desktop-service-type
   "Return a service that adds the @code{gnome} package to the system profile,
 and extends polkit with the actions from @code{gnome-settings-daemon}."
   (service gnome-desktop-service-type config))
@@ -942,10 +907,13 @@ and extends polkit with the actions from @code{mate-settings-daemon}."
                                        "thunar")
                                       xfce-package))
           (service-extension profile-service-type
-                             (compose list
-                                      xfce-package))))))
+                             (compose list xfce-package))))
+   (default-value (xfce-desktop-configuration))
+   (description "Run the Xfce desktop environment.")))
 
-(define* (xfce-desktop-service #:key (config (xfce-desktop-configuration)))
+(define-deprecated (xfce-desktop-service #:key (config
+                                                (xfce-desktop-configuration)))
+  xfce-desktop-service-type
   "Return a service that 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
@@ -1072,7 +1040,7 @@ dispatches events from it.")))
 
 (define %desktop-services
   ;; List of services typically useful for a "desktop" use case.
-  (cons* (service slim-service-type)
+  (cons* (service gdm-service-type)
 
          ;; Screen lockers are a pretty useful thing and these are small.
          (screen-locker-service slock)
diff --git a/gnu/services/dns.scm b/gnu/services/dns.scm
index 1ef754b360..5f37cb0782 100644
--- a/gnu/services/dns.scm
+++ b/gnu/services/dns.scm
@@ -163,30 +163,40 @@
 (define-record-type* <knot-zone-configuration>
   knot-zone-configuration make-knot-zone-configuration
   knot-zone-configuration?
-  (domain           knot-zone-configuration-domain
-                    (default ""))
-  (file             knot-zone-configuration-file
-                    (default "")) ; the file where this zone is saved.
-  (zone             knot-zone-configuration-zone
-                    (default (zone-file))) ; initial content of the zone file
-  (master           knot-zone-configuration-master
-                    (default '()))
-  (ddns-master      knot-zone-configuration-ddns-master
-                    (default #f))
-  (notify           knot-zone-configuration-notify
-                    (default '()))
-  (acl              knot-zone-configuration-acl
-                    (default '()))
-  (semantic-checks? knot-zone-configuration-semantic-checks?
-                    (default #f))
-  (disable-any?     knot-zone-configuration-disable-any?
-                    (default #f))
-  (zonefile-sync    knot-zone-configuration-zonefile-sync
-                    (default 0))
-  (dnssec-policy    knot-zone-configuration-dnssec-policy
-                    (default #f))
-  (serial-policy    knot-zone-configuration-serial-policy
-                    (default 'increment)))
+  (domain            knot-zone-configuration-domain
+                     (default ""))
+  (file              knot-zone-configuration-file
+                     (default "")) ; the file where this zone is saved.
+  (zone              knot-zone-configuration-zone
+                     (default (zone-file))) ; initial content of the zone file
+  (master            knot-zone-configuration-master
+                     (default '()))
+  (ddns-master       knot-zone-configuration-ddns-master
+                     (default #f))
+  (notify            knot-zone-configuration-notify
+                     (default '()))
+  (acl               knot-zone-configuration-acl
+                     (default '()))
+  (semantic-checks?  knot-zone-configuration-semantic-checks?
+                     (default #f))
+  (disable-any?      knot-zone-configuration-disable-any?
+                     (default #f))
+  (zonefile-sync     knot-zone-configuration-zonefile-sync
+                     (default 0))
+  (zonefile-load     knot-zone-configuration-zonefile-load
+                     (default #f))
+  (journal-content   knot-zone-configuration-journal-content
+                     (default #f))
+  (max-journal-usage knot-zone-configuration-max-journal-usage
+                     (default #f))
+  (max-journal-depth knot-zone-configuration-max-journal-depth
+                     (default #f))
+  (max-zone-size     knot-zone-configuration-max-zone-size
+                     (default #f))
+  (dnssec-policy     knot-zone-configuration-dnssec-policy
+                     (default #f))
+  (serial-policy     knot-zone-configuration-serial-policy
+                     (default 'increment)))
 
 (define-record-type* <knot-remote-configuration>
   knot-remote-configuration make-knot-remote-configuration
@@ -207,6 +217,8 @@
                  (default knot))
   (run-directory knot-configuration-run-directory
                  (default "/var/run/knot"))
+  (includes      knot-configuration-includes
+                 (default '()))
   (listen-v4     knot-configuration-listen-v4
                  (default "0.0.0.0"))
   (listen-v6     knot-configuration-listen-v6
@@ -296,6 +308,8 @@
     (error-out "knot configuration field must be a package."))
   (unless (string? (knot-configuration-run-directory config))
     (error-out "run-directory must be a string."))
+  (unless (list? (knot-configuration-includes config))
+    (error-out "includes must be a list of strings or file-like objects."))
   (unless (list? (knot-configuration-keys config))
     (error-out "keys must be a list of knot-key-configuration."))
   (for-each (lambda (key) (verify-knot-key-configuration key))
@@ -332,7 +346,7 @@
           (fold (lambda (x1 x2)
                   (string-append (if (symbol? x1) (symbol->string x1) x1) ", "
                                  (if (symbol? x2) (symbol->string x2) x2)))
-                (car l) (cdr l))
+                (if (symbol? (car l)) (symbol->string (car l)) (car l)) (cdr l))
           "]"))))
 
 (define (knot-acl-config acls)
@@ -490,6 +504,12 @@
                 (acl (list #$@(knot-zone-configuration-acl zone)))
                 (semantic-checks? #$(knot-zone-configuration-semantic-checks? zone))
                 (disable-any? #$(knot-zone-configuration-disable-any? zone))
+                (zonefile-sync #$(knot-zone-configuration-zonefile-sync zone))
+                (zonefile-load '#$(knot-zone-configuration-zonefile-load zone))
+                (journal-content #$(knot-zone-configuration-journal-content zone))
+                (max-journal-usage #$(knot-zone-configuration-max-journal-usage zone))
+                (max-journal-depth #$(knot-zone-configuration-max-journal-depth zone))
+                (max-zone-size #$(knot-zone-configuration-max-zone-size zone))
                 (dnssec-policy #$(knot-zone-configuration-dnssec-policy zone))
                 (serial-policy '#$(knot-zone-configuration-serial-policy zone)))
             (format #t "    - domain: ~a\n" domain)
@@ -516,6 +536,20 @@
                           (knot-zone-configuration-acl zone))))
             (format #t "      semantic-checks: ~a\n" (if semantic-checks? "on" "off"))
             (format #t "      disable-any: ~a\n" (if disable-any? "on" "off"))
+            (if zonefile-sync
+              (format #t "      zonefile-sync: ~a\n" zonefile-sync))
+            (if zonefile-load
+              (format #t "      zonefile-load: ~a\n"
+                      (symbol->string zonefile-load)))
+            (if journal-content
+              (format #t "      journal-content: ~a\n"
+                      (symbol->string journal-content)))
+            (if max-journal-usage
+              (format #t "      max-journal-usage: ~a\n" max-journal-usage))
+            (if max-journal-depth
+              (format #t "      max-journal-depth: ~a\n" max-journal-depth))
+            (if max-zone-size
+              (format #t "      max-zone-size: ~a\n" max-zone-size))
             (if dnssec-policy
                 (begin
                   (format #t "      dnssec-signing: on\n")
@@ -529,6 +563,9 @@
     #~(begin
         (call-with-output-file #$output
           (lambda (port)
+            (for-each (lambda (inc)
+                        (format port "include: ~a\n" inc))
+                      '#$(knot-configuration-includes config))
             (format port "server:\n")
             (format port "    rundir: ~a\n" #$(knot-configuration-run-directory config))
             (format port "    user: knot\n")
diff --git a/gnu/services/mail.scm b/gnu/services/mail.scm
index a7e8c41d3a..0dabfed4cb 100644
--- a/gnu/services/mail.scm
+++ b/gnu/services/mail.scm
@@ -64,7 +64,12 @@
             exim-configuration
             exim-configuration?
             exim-service-type
-            %default-exim-config-file))
+            %default-exim-config-file
+
+            imap4d-configuration
+            imap4d-configuration?
+            imap4d-service-type
+            %defualt-imap4d-config-file))
 
 ;;; Commentary:
 ;;;
@@ -1776,3 +1781,41 @@ exim_group = exim
           (service-extension activation-service-type exim-activation)
           (service-extension profile-service-type exim-profile)
           (service-extension mail-aliases-service-type (const '()))))))
+
+
+;;;
+;;; GNU Mailutils IMAP4 Daemon.
+;;;
+
+(define %default-imap4d-config-file
+  (plain-file "imap4d.conf" "server localhost {};\n"))
+
+(define-record-type* <imap4d-configuration>
+  imap4d-configuration make-imap4d-configuration imap4d-configuration?
+  (package     imap4d-configuration-package
+               (default mailutils))
+  (config-file imap4d-configuration-config-file
+               (default %default-imap4d-config-file)))
+
+(define imap4d-shepherd-service
+  (match-lambda
+    (($ <imap4d-configuration> package config-file)
+     (list (shepherd-service
+            (provision '(imap4d))
+            (requirement '(networking syslogd))
+            (documentation "Run the imap4d daemon.")
+            (start (let ((imap4d (file-append package "/sbin/imap4d")))
+                     #~(make-forkexec-constructor
+                        (list #$imap4d "--daemon" "--foreground"
+                              "--config-file" #$config-file))))
+            (stop #~(make-kill-destructor)))))))
+
+(define imap4d-service-type
+  (service-type
+   (name 'imap4d)
+   (description
+    "Run the GNU @command{imap4d} to serve e-mail messages through IMAP.")
+   (extensions
+    (list (service-extension
+           shepherd-root-service-type imap4d-shepherd-service)))
+   (default-value (imap4d-configuration))))
diff --git a/gnu/services/networking.scm b/gnu/services/networking.scm
index cab129e0c3..03b2c6e1ec 100644
--- a/gnu/services/networking.scm
+++ b/gnu/services/networking.scm
@@ -985,7 +985,14 @@ wireless networking."))))
                       (list (string-append #$connman
                                            "/sbin/connmand")
                             "-n" "-r"
-                            #$@(if disable-vpn? '("--noplugin=vpn") '()))))
+                            #$@(if disable-vpn? '("--noplugin=vpn") '()))
+
+                      ;; As connman(8) notes, when passing '-n', connman
+                      ;; "directs log output to the controlling terminal in
+                      ;; addition to syslog."  Redirect stdout and stderr
+                      ;; to avoid spamming the console (XXX: for some reason
+                      ;; redirecting to /dev/null doesn't work.)
+                      #:log-file "/var/log/connman.log"))
             (stop #~(make-kill-destructor)))))))
 
 (define connman-service-type
@@ -1060,12 +1067,13 @@ networking."))))
      (list (shepherd-service
             (documentation "Run the WPA supplicant daemon")
             (provision '(wpa-supplicant))
-            (requirement '(user-processes dbus-system loopback))
+            (requirement '(user-processes dbus-system loopback syslogd))
             (start #~(make-forkexec-constructor
                       (list (string-append #$wpa-supplicant
                                            "/sbin/wpa_supplicant")
                             (string-append "-P" #$pid-file)
                             "-B"        ;run in background
+                            "-s"        ;log to syslogd
                             #$@(if dbus?
                                    #~("-u")
                                    #~())
@@ -1154,7 +1162,8 @@ implements authentication, key negotiation and more for wireless networks.")
    (description
     "Run @uref{http://www.openvswitch.org, Open vSwitch}, a multilayer virtual
 switch designed to enable massive network automation through programmatic
-extension.")))
+extension.")
+   (default-value (openvswitch-configuration))))
 
 ;;;
 ;;; iptables
diff --git a/gnu/services/sddm.scm b/gnu/services/sddm.scm
index 2ebfe22016..b433c59e12 100644
--- a/gnu/services/sddm.scm
+++ b/gnu/services/sddm.scm
@@ -1,5 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2016 David Craven <david@craven.ch>
+;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2019 Jesse Gildersleve <jessejohngildersleve@protonmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -83,8 +85,8 @@
   (sessions-directory     sddm-configuration-sessions-directory
                           (default "/run/current-system/profile/share/wayland-sessions"))
   ;; [X11]
-  (xorg-server-path       sddm-configuration-xorg-server-path
-                          (default (xorg-start-command)))
+  (xorg-configuration     sddm-configuration-xorg
+                          (default (xorg-configuration)))
   (xauth-path             sddm-configuration-xauth-path
                           (default (file-append xauth "/bin/xauth")))
   (xephyr-path            sddm-configuration-xephyr-path
@@ -99,8 +101,6 @@
                           (default "/run/current-system/profile/share/xsessions"))
   (minimum-vt             sddm-configuration-minimum-vt
                           (default 7))
-  (xserver-arguments      sddm-configuration-xserver-arguments
-                          (default "-nolisten tcp"))
 
   ;; [Autologin]
   (auto-login-user        sddm-configuration-auto-login-user
@@ -140,7 +140,7 @@ SessionCommand="       (sddm-configuration-session-command config)             "
 SessionDir="           (sddm-configuration-sessions-directory config)          "
 
 [X11]
-ServerPath="           (sddm-configuration-xorg-server-path config)            "
+ServerPath="           (xorg-start-command (sddm-configuration-xorg config))   "
 XauthPath="            (sddm-configuration-xauth-path config)                  "
 XephyrPath="           (sddm-configuration-xephyr-path config)                 "
 DisplayCommand="       (sddm-configuration-xdisplay-start config)              "
@@ -148,7 +148,9 @@ DisplayStopCommand="   (sddm-configuration-xdisplay-stop config)               "
 SessionCommand="       (sddm-configuration-xsession-command config)            "
 SessionDir="           (sddm-configuration-xsessions-directory config)         "
 MinimumVT="            (number->string (sddm-configuration-minimum-vt config)) "
-ServerArguments="      (sddm-configuration-xserver-arguments config)           "
+ServerArguments="      (string-join
+                        (xorg-configuration-server-arguments
+                         (sddm-configuration-xorg config)))           "
 
 [Autologin]
 User="                 (sddm-configuration-auto-login-user config)             "
diff --git a/gnu/services/shepherd.scm b/gnu/services/shepherd.scm
index 12d649f542..45c67e04eb 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 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013, 2014, 2015, 2016, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org>
 ;;; Copyright © 2018 Carlo Zancanaro <carlo@zancanaro.id.au>
 ;;;
@@ -44,6 +44,7 @@
             shepherd-service-provision
             shepherd-service-canonical-name
             shepherd-service-requirement
+            shepherd-service-one-shot?
             shepherd-service-respawn?
             shepherd-service-start
             shepherd-service-stop
@@ -59,7 +60,6 @@
             %default-modules
 
             shepherd-service-file
-            %containerized-shepherd-service
 
             shepherd-service-lookup-procedure
             shepherd-service-back-edges
@@ -149,6 +149,8 @@ DEFAULT is given, use it as the service's default value."
   (provision     shepherd-service-provision)           ;list of symbols
   (requirement   shepherd-service-requirement          ;list of symbols
                  (default '()))
+  (one-shot?     shepherd-service-one-shot?            ;Boolean
+                 (default #f))
   (respawn?      shepherd-service-respawn?             ;Boolean
                  (default #t))
   (start         shepherd-service-start)               ;g-expression (procedure)
@@ -238,6 +240,11 @@ stored."
                        #:docstring '#$(shepherd-service-documentation service)
                        #:provides '#$(shepherd-service-provision service)
                        #:requires '#$(shepherd-service-requirement service)
+
+                       ;; The 'one-shot?' slot is new in Shepherd 0.6.0.
+                       ;; Older versions ignore it.
+                       #:one-shot? '#$(shepherd-service-one-shot? service)
+
                        #:respawn? '#$(shepherd-service-respawn? service)
                        #:start #$(shepherd-service-start service)
                        #:stop #$(shepherd-service-stop service)
@@ -338,21 +345,6 @@ symbols provided/required by a service."
   (lambda (service)
     (vhash-foldq* cons '() service edges)))
 
-(define %containerized-shepherd-service
-  ;; XXX: This service works around a bug in the Shepherd 0.5.0: shepherd
-  ;; calls reboot(2) (via 'disable-reboot-on-ctrl-alt-del') when it starts,
-  ;; but in a container that fails with EINVAL.  This was fixed in Shepherd
-  ;; commit 92e806bac1abaeeaf5d60f0ab50d1ae85ba6a62f.
-  (simple-service 'containerized-shepherd
-                  shepherd-root-service-type
-                  (list (shepherd-service
-                         (provision '(containerized-shepherd))
-                         (start #~(lambda ()
-                                    (set! (@@ (shepherd)
-                                              disable-reboot-on-ctrl-alt-del)
-                                      (const #t))
-                                    #t))))))
-
 (define (shepherd-service-upgrade live target)
   "Return two values: the subset of LIVE (a list of <live-service>) that needs
 to be unloaded, and the subset of TARGET (a list of <shepherd-service>) that
diff --git a/gnu/services/ssh.scm b/gnu/services/ssh.scm
index 362a7f1490..25db783420 100644
--- a/gnu/services/ssh.scm
+++ b/gnu/services/ssh.scm
@@ -617,7 +617,8 @@ of user-name/file-like tuples."
                  (list (service-extension shepherd-root-service-type
                                           dropbear-shepherd-service)
                        (service-extension activation-service-type
-                                          dropbear-activation)))))
+                                          dropbear-activation)))
+                (default-value (dropbear-configuration))))
 
 (define* (dropbear-service #:optional (config (dropbear-configuration)))
   "Run the @uref{https://matt.ucc.asn.au/dropbear/dropbear.html,Dropbear SSH
diff --git a/gnu/services/web.scm b/gnu/services/web.scm
index b6ebe90774..84294db53b 100644
--- a/gnu/services/web.scm
+++ b/gnu/services/web.scm
@@ -34,7 +34,6 @@
   #:use-module (gnu packages admin)
   #:use-module (gnu packages web)
   #:use-module (gnu packages php)
-  #:use-module (gnu packages guile)
   #:use-module (gnu packages logging)
   #:use-module (guix records)
   #:use-module (guix modules)
diff --git a/gnu/services/xorg.scm b/gnu/services/xorg.scm
index f2a3c28c90..44dcec4ec9 100644
--- a/gnu/services/xorg.scm
+++ b/gnu/services/xorg.scm
@@ -4,6 +4,7 @@
 ;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com>
 ;;; Copyright © 2018, 2019 Timothy Sample <samplet@ngyro.com>
 ;;; Copyright © 2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
+;;; Copyright © 2019 Tim Gesthuizen <tim.gesthuizen@yahoo.de>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -25,6 +26,8 @@
   #:use-module (gnu services)
   #:use-module (gnu services shepherd)
   #:use-module (gnu system pam)
+  #:use-module (gnu system keyboard)
+  #:use-module (gnu services base)
   #:use-module (gnu services dbus)
   #:use-module ((gnu packages base) #:select (canonical-package))
   #:use-module (gnu packages guile)
@@ -33,6 +36,7 @@
   #:use-module (gnu packages gl)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages display-managers)
+  #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages gnustep)
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages admin)
@@ -48,7 +52,16 @@
   #:use-module (srfi srfi-9)
   #:use-module (srfi srfi-26)
   #:use-module (ice-9 match)
-  #:export (xorg-configuration-file
+  #:export (xorg-configuration
+            xorg-configuration?
+            xorg-configuration-modules
+            xorg-configuration-fonts
+            xorg-configuration-drivers
+            xorg-configuration-resolutions
+            xorg-configuration-extra-config
+            xorg-configuration-server
+            xorg-configuration-server-arguments
+
             %default-xorg-modules
             %default-xorg-fonts
             xorg-wrapper
@@ -69,7 +82,8 @@
             slim-configuration-xauth
             slim-configuration-shepherd
             slim-configuration-auto-login-session
-            slim-configuration-startx
+            slim-configuration-xorg
+            slim-configuration-sessreg
 
             slim-service-type
             slim-service
@@ -79,9 +93,14 @@
             screen-locker-service-type
             screen-locker-service
 
+            localed-configuration
+            localed-configuration?
+            localed-service-type
+
             gdm-configuration
             gdm-service-type
-            gdm-service))
+            gdm-service
+            set-xorg-configuration))
 
 ;;; Commentary:
 ;;;
@@ -122,33 +141,38 @@
                      "/share/fonts/X11/misc")
         (file-append font-adobe75dpi "/share/fonts/X11/75dpi")))
 
-(define* (xorg-configuration-file #:key
-                                  (modules %default-xorg-modules)
-                                  (fonts %default-xorg-fonts)
-                                  (drivers '()) (resolutions '())
-                                  (extra-config '()))
-  "Return a configuration file for the Xorg server containing search paths for
-all the common drivers.
-
-@var{modules} must be a list of @dfn{module packages} loaded by the Xorg
-server---e.g., @code{xf86-video-vesa}, @code{xf86-input-keyboard}, and so on.
-@var{fonts} must be a list of font directories to add to the server's
-@dfn{font path}.
-
-@var{drivers} 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\")}.
-
-Likewise, when @var{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))}.
-
-Last, @var{extra-config} 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."
+(define %default-xorg-server-arguments
+  ;; Default command-line arguments for X.
+  '("-nolisten" "tcp"))
+
+;; Configuration of an Xorg server.
+(define-record-type* <xorg-configuration>
+  xorg-configuration make-xorg-configuration
+  xorg-configuration?
+  (modules          xorg-configuration-modules    ;list of packages
+                    (default %default-xorg-modules))
+  (fonts            xorg-configuration-fonts      ;list of packges
+                    (default %default-xorg-fonts))
+  (drivers          xorg-configuration-drivers    ;list of strings
+                    (default '()))
+  (resolutions      xorg-configuration-resolutions ;list of tuples
+                    (default '()))
+  (keyboard-layout  xorg-configuration-keyboard-layout ;#f | <keyboard-layout>
+                    (default #f))
+  (extra-config     xorg-configuration-extra-config ;list of strings
+                    (default '()))
+  (server           xorg-configuration-server     ;package
+                    (default xorg-server))
+  (server-arguments xorg-configuration-server-arguments ;list of strings
+                    (default %default-xorg-server-arguments)))
+
+(define (xorg-configuration->file config)
+  "Compute an Xorg configuration file corresponding to CONFIG, an
+<xorg-configuration> record."
   (define all-modules
     ;; 'xorg-server' provides 'fbdevhw.so' etc.
-    (append modules (list xorg-server)))
+    (append (xorg-configuration-modules config)
+            (list xorg-server)))
 
   (define build
     #~(begin
@@ -159,7 +183,7 @@ added verbatim to the configuration file."
         (call-with-output-file #$output
           (lambda (port)
             (define drivers
-              '#$drivers)
+              '#$(xorg-configuration-drivers config))
 
             (define (device-section driver)
               (string-append "
@@ -183,6 +207,31 @@ Section \"Screen\"
   EndSubSection
 EndSection"))
 
+            (define (input-class-section layout variant model options)
+              (string-append "
+Section \"InputClass\"
+  Identifier \"evdev keyboard catchall\"
+  MatchIsKeyboard \"on\"
+  Option \"XkbLayout\" " (object->string layout)
+  (if variant
+      (string-append "  Option \"XkbVariant\" \""
+                     variant "\"")
+      "")
+  (if model
+      (string-append "  Option \"XkbModel\" \""
+                     model "\"")
+      "")
+  (match options
+    (()
+     "")
+    (_
+     (string-append "  Option \"XkbOptions\" \""
+                    (string-join options ",") "\""))) "
+
+  MatchDevicePath \"/dev/input/event*\"
+  Driver \"evdev\"
+EndSection\n"))
+
             (define (expand modules)
               ;; Append to MODULES the relevant /lib/xorg/modules
               ;; sub-directories.
@@ -201,7 +250,7 @@ EndSection"))
             (display "Section \"Files\"\n" port)
             (for-each (lambda (font)
                         (format port "  FontPath \"~a\"~%" font))
-                      '#$fonts)
+                      '#$(xorg-configuration-fonts config))
             (for-each (lambda (module)
                         (format port
                                 "  ModulePath \"~a\"~%"
@@ -221,19 +270,32 @@ EndSection\n" port)
                      port)
             (newline port)
             (display (string-join
-                      (map (cut screen-section <> '#$resolutions)
+                      (map (cut screen-section <>
+                                '#$(xorg-configuration-resolutions config))
                            drivers)
                       "\n")
                      port)
             (newline port)
 
+            (let ((layout  #$(and=> (xorg-configuration-keyboard-layout config)
+                                    keyboard-layout-name))
+                  (variant #$(and=> (xorg-configuration-keyboard-layout config)
+                                    keyboard-layout-variant))
+                  (model   #$(and=> (xorg-configuration-keyboard-layout config)
+                                    keyboard-layout-model))
+                  (options '#$(and=> (xorg-configuration-keyboard-layout config)
+                                     keyboard-layout-options)))
+              (when layout
+                (display (input-class-section layout variant model options)
+                         port)
+                (newline port)))
+
             (for-each (lambda (config)
                         (display config port))
-                      '#$extra-config)))))
+                      '#$(xorg-configuration-extra-config config))))))
 
   (computed-file "xserver.conf" build))
 
-
 (define (xorg-configuration-directory modules)
   "Return a directory that contains the @code{.conf} files for X.org that
 includes the @code{share/X11/xorg.conf.d} directories of each package listed
@@ -260,61 +322,43 @@ in @var{modules}."
                                  files)
                        #t))))
 
-(define* (xorg-wrapper #:key
-                       (guile (canonical-package guile-2.0))
-                       (modules %default-xorg-modules)
-                       (configuration-file (xorg-configuration-file
-                                            #:modules modules))
-                       (xorg-server xorg-server))
-  "Return a derivation that builds a @var{guile} script to start the X server
-from @var{xorg-server}.  @var{configuration-file} is the server configuration
-file or a derivation that builds it; when omitted, the result of
-@code{xorg-configuration-file} is used.  The resulting script should be used
-in place of @code{/usr/bin/X}."
+(define* (xorg-wrapper #:optional (config (xorg-configuration)))
+  "Return a derivation that builds a script to start the X server with the
+given @var{config}.  The resulting script should be used in place of
+@code{/usr/bin/X}."
   (define exp
     ;; Write a small wrapper around the X server.
     #~(begin
         (setenv "XORG_DRI_DRIVER_PATH" (string-append #$mesa "/lib/dri"))
         (setenv "XKB_BINDIR" (string-append #$xkbcomp "/bin"))
 
-        (let ((X (string-append #$xorg-server "/bin/X")))
+        (let ((X (string-append #$(xorg-configuration-server config) "/bin/X")))
           (apply execl X X
                  "-xkbdir" (string-append #$xkeyboard-config "/share/X11/xkb")
-                 "-config" #$configuration-file
-                 "-configdir" #$(xorg-configuration-directory modules)
+                 "-config" #$(xorg-configuration->file config)
+                 "-configdir" #$(xorg-configuration-directory
+                                 (xorg-configuration-modules config))
                  (cdr (command-line))))))
 
   (program-file "X-wrapper" exp))
 
-(define* (xorg-start-command #:key
-                             (guile (canonical-package guile-2.0))
-                             (modules %default-xorg-modules)
-                             (fonts %default-xorg-fonts)
-                             (configuration-file
-                              (xorg-configuration-file #:modules modules
-                                                       #:fonts fonts))
-                             (xorg-server xorg-server)
-                             (xserver-arguments '("-nolisten" "tcp")))
-  "Return a @code{startx} script in which @var{modules}, a list of X module
-packages, and @var{fonts}, a list of X font directories, are available.  See
-@code{xorg-wrapper} for more details on the arguments.  The result should be
-used in place of @code{startx}."
+(define* (xorg-start-command #:optional (config (xorg-configuration)))
+  "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}."
   (define X
-    (xorg-wrapper #:guile guile
-                  #:configuration-file configuration-file
-                  #:modules modules
-                  #:xorg-server xorg-server))
+    (xorg-wrapper config))
+
   (define exp
     ;; Write a small wrapper around the X server.
     #~(apply execl #$X #$X ;; Second #$X is for argv[0].
-             "-logverbose" "-verbose" "-terminate" #$@xserver-arguments
+             "-logverbose" "-verbose" "-terminate"
+             #$@(xorg-configuration-server-arguments config)
               (cdr (command-line))))
 
   (program-file "startx" exp))
 
-(define* (xinitrc #:key
-                  (guile (canonical-package guile-2.0))
-                  fallback-session)
+(define* (xinitrc #:key fallback-session)
   "Return a system-wide xinitrc script that starts the specified X session,
 which should be passed to this script as the first argument.  If not, the
 @var{fallback-session} will be used or, if @var{fallback-session} is false, a
@@ -442,8 +486,8 @@ desktop session from the system or user profile will be used."
             (default shepherd))
   (auto-login-session slim-configuration-auto-login-session
                       (default #f))
-  (startx slim-configuration-startx
-          (default (xorg-start-command)))
+  (xorg-configuration slim-configuration-xorg
+                      (default (xorg-configuration)))
   (sessreg slim-configuration-sessreg
            (default sessreg)))
 
@@ -458,9 +502,8 @@ desktop session from the system or user profile will be used."
   (define slim.cfg
     (let ((xinitrc (xinitrc #:fallback-session
                             (slim-configuration-auto-login-session config)))
-          (slim    (slim-configuration-slim config))
           (xauth   (slim-configuration-xauth config))
-          (startx  (slim-configuration-startx config))
+          (startx  (xorg-start-command (slim-configuration-xorg config)))
           (shepherd   (slim-configuration-shepherd config))
           (theme-name (slim-configuration-theme-name config))
           (sessreg (slim-configuration-sessreg config)))
@@ -503,7 +546,9 @@ reboot_cmd " shepherd "/sbin/reboot\n"
               (false-if-exception (delete-file "/var/run/slim.lock"))
 
               (fork+exec-command
-               (list (string-append #$slim "/bin/slim") "-nodaemon")
+               (list (string-append #$(slim-configuration-slim config)
+                                    "/bin/slim")
+                     "-nodaemon")
                #:environment-variables
                (list (string-append "SLIM_CFGFILE=" #$slim.cfg)
                      #$@(if theme
@@ -567,8 +612,7 @@ theme."
             (auto-login? auto-login?) (default-user default-user)
             (theme theme) (theme-name theme-name)
             (xauth xauth) (shepherd shepherd)
-            (auto-login-session auto-login-session)
-            (startx startx))))
+            (auto-login-session auto-login-session))))
 
 
 ;;;
@@ -617,6 +661,88 @@ makes the good ol' XlockMore usable."
                           (file-append package "/bin/" program)
                           allow-empty-passwords?)))
 
+
+;;;
+;;; Locale service.
+;;;
+
+(define-record-type* <localed-configuration>
+  localed-configuration make-localed-configuration
+  localed-configuration?
+  (localed         localed-configuration-localed
+                   (default localed))
+  (keyboard-layout localed-configuration-keyboard-layout
+                   (default #f)))
+
+(define (localed-dbus-service config)
+  "Return the 'localed' D-Bus service for @var{config}, a
+@code{<localed-configuration>} record."
+  (define keyboard-layout
+    (localed-configuration-keyboard-layout config))
+
+  ;; The primary purpose of 'localed' is to tell GDM what the "current" Xorg
+  ;; keyboard layout is.  If 'localed' is missing, or if it's unable to
+  ;; determine the current XKB layout, then GDM forcefully installs its
+  ;; default XKB config (US English).  Here we communicate the configured
+  ;; layout through environment variables.
+
+  (if keyboard-layout
+      (let* ((layout  (keyboard-layout-name keyboard-layout))
+             (variant (keyboard-layout-variant keyboard-layout))
+             (model   (keyboard-layout-model keyboard-layout))
+             (options (keyboard-layout-options keyboard-layout)))
+        (list (wrapped-dbus-service
+               (localed-configuration-localed config)
+               "libexec/localed/localed"
+               `(("GUIX_XKB_LAYOUT" ,layout)
+                 ,@(if variant
+                       `(("GUIX_XKB_VARIANT" ,variant))
+                       '())
+                 ,@(if model
+                       `(("GUIX_XKB_MODEL" ,model))
+                       '())
+                 ,@(if (null? options)
+                       '()
+                       `(("GUIX_XKB_OPTIONS"
+                          ,(string-join options ","))))))))
+      '()))
+
+(define localed-service-type
+  (let ((package (lambda (config)
+                   ;; Don't bother if the user didn't specify any keyboard
+                   ;; layout.
+                   (if (localed-configuration-keyboard-layout config)
+                       (list (localed-configuration-localed config))
+                       '()))))
+    (service-type (name 'localed)
+                  (extensions
+                   (list (service-extension dbus-root-service-type
+                                            localed-dbus-service)
+                         (service-extension udev-service-type package)
+                         (service-extension polkit-service-type package)
+
+                         ;; Add 'localectl' to the profile.
+                         (service-extension profile-service-type package)))
+
+                  ;; This service can be extended, typically by the X login
+                  ;; manager, to communicate the chosen Xorg keyboard layout.
+                  (compose (lambda (extensions)
+                             (find keyboard-layout? extensions)))
+                  (extend (lambda (config keyboard-layout)
+                            (localed-configuration
+                             (inherit config)
+                             (keyboard-layout keyboard-layout))))
+                  (description
+                   "Run the locale daemon, @command{localed}, which can be used
+to control the system locale and keyboard mapping from user programs such as
+the GNOME desktop environment.")
+                  (default-value (localed-configuration)))))
+
+
+;;;
+;;; GNOME Desktop Manager.
+;;;
+
 (define %gdm-accounts
   (list (user-group (name "gdm") (system? #t))
         (user-account
@@ -647,8 +773,8 @@ makes the good ol' XlockMore usable."
   (default-user gdm-configuration-default-user (default #f))
   (gnome-shell-assets gdm-configuration-gnome-shell-assets
                       (default (list adwaita-icon-theme font-cantarell)))
-  (x-server gdm-configuration-x-server
-            (default (xorg-wrapper)))
+  (xorg-configuration gdm-configuration-xorg
+                      (default (xorg-configuration)))
   (x-session gdm-configuration-x-session
              (default (xinitrc))))
 
@@ -720,7 +846,8 @@ makes the good ol' XlockMore usable."
                             #$(gdm-configuration-dbus-daemon config))
                            (string-append
                             "GDM_X_SERVER="
-                            #$(gdm-configuration-x-server config))
+                            #$(xorg-wrapper
+                               (gdm-configuration-xorg config)))
                            (string-append
                             "GDM_X_SESSION="
                             #$(gdm-configuration-x-session config))
@@ -750,15 +877,31 @@ makes the good ol' XlockMore usable."
                                           gdm-configuration-gnome-shell-assets)
                        (service-extension dbus-root-service-type
                                           (compose list
-                                                   gdm-configuration-gdm))))
+                                                   gdm-configuration-gdm))
+                       (service-extension localed-service-type
+                                          (compose
+                                           xorg-configuration-keyboard-layout
+                                           gdm-configuration-xorg))))
+
+                ;; For convenience, this service can be extended with an
+                ;; <xorg-configuration> record.  Take the first one that
+                ;; comes.
+                (compose (lambda (extensions)
+                           (match extensions
+                             (() #f)
+                             ((config . _) config))))
+                (extend (lambda (config xorg-configuration)
+                          (if xorg-configuration
+                              (gdm-configuration
+                               (inherit config)
+                               (xorg-configuration xorg-configuration))
+                              config)))
+
                 (default-value (gdm-configuration))
                 (description
                  "Run the GNOME Desktop Manager (GDM), a program that allows
 you to log in in a graphical session, whether or not you use GNOME.")))
 
-;; This service isn't working yet; it gets as far as starting to run the
-;; greeter from gnome-shell but doesn't get any further.  It is here because
-;; it doesn't hurt anyone and perhaps it inspires someone to fix it :)
 (define-deprecated (gdm-service #:key (gdm gdm)
                                 (allow-empty-passwords? #t)
                                 (x-server (xorg-wrapper)))
@@ -785,7 +928,16 @@ password."
   (service gdm-service-type
            (gdm-configuration
             (gdm gdm)
-            (allow-empty-passwords? allow-empty-passwords?)
-            (x-server x-server))))
+            (allow-empty-passwords? allow-empty-passwords?))))
+
+(define* (set-xorg-configuration config
+                                 #:optional
+                                 (login-manager-service-type
+                                  gdm-service-type))
+  "Tell the log-in manager (of type @var{login-manager-service-type}) to use
+@var{config}, an <xorg-configuration> record."
+  (simple-service 'set-xorg-configuration
+                  login-manager-service-type
+                  config))
 
 ;;; xorg.scm ends here
diff --git a/gnu/system.scm b/gnu/system.scm
index 6bccdaa8c2..0489b9720d 100644
--- a/gnu/system.scm
+++ b/gnu/system.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019 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>
@@ -34,6 +34,7 @@
   #:use-module (gnu packages base)
   #:use-module (gnu packages bash)
   #:use-module (gnu packages guile)
+  #:use-module (gnu packages guile-xyz)
   #:use-module (gnu packages admin)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages pciutils)
@@ -66,9 +67,11 @@
   #:use-module (rnrs bytevectors)
   #:export (operating-system
             operating-system?
+            this-operating-system
 
             operating-system-bootloader
             operating-system-services
+            operating-system-essential-services
             operating-system-user-services
             operating-system-packages
             operating-system-host-name
@@ -76,6 +79,8 @@
             operating-system-kernel
             operating-system-kernel-file
             operating-system-kernel-arguments
+            operating-system-label
+            operating-system-default-label
             operating-system-initrd-modules
             operating-system-initrd
             operating-system-users
@@ -151,12 +156,19 @@
 (define-record-type* <operating-system> operating-system
   make-operating-system
   operating-system?
+  this-operating-system
+
   (kernel operating-system-kernel                 ; package
           (default linux-libre))
   (kernel-arguments operating-system-user-kernel-arguments
-                    (default '()))                ; list of gexps/strings
+                    (default '("quiet")))         ; list of gexps/strings
   (bootloader operating-system-bootloader)        ; <bootloader-configuration>
+  (label operating-system-label                   ; string
+         (thunked)
+         (default (operating-system-default-label this-operating-system)))
 
+  (keyboard-layout operating-system-keyboard-layout ;#f | <keyboard-layout>
+                   (default #f))
   (initrd operating-system-initrd                 ; (list fs) -> file-like
           (default base-initrd))
   (initrd-modules operating-system-initrd-modules ; list of strings
@@ -199,6 +211,9 @@
   (name-service-switch operating-system-name-service-switch ; <name-service-switch>
                        (default %default-nss))
 
+  (essential-services operating-system-essential-services ; list of services
+                      (thunked)
+                      (default (essential-services this-operating-system)))
   (services operating-system-user-services        ; list of services
             (default %base-services))
 
@@ -436,27 +451,22 @@ OS."
   (file-append (operating-system-kernel os)
                "/" (system-linux-image-file-name os)))
 
-(define* (operating-system-directory-base-entries os #:key container?)
+(define* (operating-system-directory-base-entries os)
   "Return the basic entries of the 'system' directory of OS for use as the
 value of the SYSTEM-SERVICE-TYPE service."
   (let ((locale (operating-system-locale-directory os)))
-    (with-monad %store-monad
-      (if container?
-          (return `(("locale" ,locale)))
-          (mlet %store-monad
-              ((kernel  ->  (operating-system-kernel os))
-               (initrd  ->  (operating-system-initrd-file os))
-               (params      (operating-system-boot-parameters-file os)))
-            (return `(("kernel" ,kernel)
-                      ("parameters" ,params)
-                      ("initrd" ,initrd)
-                      ("locale" ,locale))))))))   ;used by libc
-
-(define* (essential-services os #:key container?)
+    (mlet %store-monad ((kernel -> (operating-system-kernel os))
+                        (initrd -> (operating-system-initrd-file os))
+                        (params    (operating-system-boot-parameters-file os)))
+      (return `(("kernel" ,kernel)
+                ("parameters" ,params)
+                ("initrd" ,initrd)
+                ("locale" ,locale))))))   ;used by libc
+
+(define* (essential-services os)
   "Return the list of essential services for OS.  These are special services
 that implement part of what's declared in OS are responsible for low-level
-bookkeeping.  CONTAINER? determines whether to return the list of services for
-a container or that of a \"bare metal\" system."
+bookkeeping."
   (define known-fs
     (map file-system-mount-point (operating-system-file-systems os)))
 
@@ -466,8 +476,7 @@ a container or that of a \"bare metal\" system."
          (swaps     (swap-services os))
          (procs     (service user-processes-service-type))
          (host-name (host-name-service (operating-system-host-name os)))
-         (entries   (operating-system-directory-base-entries
-                     os #:container? container?)))
+         (entries   (operating-system-directory-base-entries os)))
     (cons* (service system-service-type entries)
            %boot-service
 
@@ -484,7 +493,9 @@ a container or that of a \"bare metal\" system."
                                     (operating-system-groups os))
                             (operating-system-skeletons os))
            (operating-system-etc-service os)
-           (service fstab-service-type '())
+           (service fstab-service-type
+                    (filter file-system-needed-for-boot?
+                            (operating-system-file-systems os)))
            (session-environment-service
             (operating-system-environment-variables os))
            host-name procs root-fs
@@ -495,20 +506,16 @@ a container or that of a \"bare metal\" system."
            other-fs
            (append mappings swaps
 
-                   ;; Add the firmware service, unless we are building for a
-                   ;; container.
-                   (if container?
-                       (list %containerized-shepherd-service)
-                       (list %linux-bare-metal-service
-                             (service firmware-service-type
-                                      (operating-system-firmware os))))))))
-
-(define* (operating-system-services os #:key container?)
-  "Return all the services of OS, including \"internal\" services that do not
-explicitly appear in OS."
+                   ;; Add the firmware service.
+                   (list %linux-bare-metal-service
+                         (service firmware-service-type
+                                  (operating-system-firmware os)))))))
+
+(define* (operating-system-services os)
+  "Return all the services of OS, including \"essential\" services."
   (instantiate-missing-services
    (append (operating-system-user-services os)
-           (essential-services os #:container? container?))))
+           (operating-system-essential-services os))))
 
 
 ;;;
@@ -556,6 +563,7 @@ explicitly appear in OS."
          ;; variant propagated by 'guile-final' and the GMP variant propagated
          ;; by 'gnutls', itself propagated by 'guix'.
          guile-2.2
+         guile-readline guile-colorized
 
          ;; The packages below are also in %FINAL-INPUTS, so take them from
          ;; there to avoid duplication.
@@ -806,20 +814,19 @@ use 'plain-file' instead~%")
 root ALL=(ALL) ALL
 %wheel ALL=(ALL) ALL\n"))
 
-(define* (operating-system-activation-script os #:key container?)
+(define* (operating-system-activation-script os)
   "Return the activation script for OS---i.e., the code that \"activates\" the
 stateful part of OS, including user accounts and groups, special directories,
 etc."
-  (let* ((services   (operating-system-services os #:container? container?))
+  (let* ((services   (operating-system-services os))
          (activation (fold-services services
                                     #:target-type activation-service-type)))
     (activation-service->script activation)))
 
-(define* (operating-system-boot-script os #:key container?)
+(define* (operating-system-boot-script os)
   "Return the boot script for OS---i.e., the code started by the initrd once
-we're running in the final root.  When CONTAINER? is true, skip all
-hardware-related operations as necessary when booting a Linux container."
-  (let* ((services (operating-system-services os #:container? container?))
+we're running in the final root."
+  (let* ((services (operating-system-services os))
          (boot     (fold-services services #:target-type boot-service-type)))
     (service-value boot)))
 
@@ -839,17 +846,17 @@ hardware-related operations as necessary when booting a Linux container."
                               #:target-type
                               shepherd-root-service-type))))
 
-(define* (operating-system-derivation os #:key container?)
+(define* (operating-system-derivation os)
   "Return a derivation that builds OS."
-  (let* ((services (operating-system-services os #:container? container?))
+  (let* ((services (operating-system-services os))
          (system   (fold-services services)))
     ;; SYSTEM contains the derivation as a monadic value.
     (service-value system)))
 
-(define* (operating-system-profile os #:key container?)
+(define* (operating-system-profile os)
   "Return a derivation that builds the system profile of OS."
   (mlet* %store-monad
-      ((services -> (operating-system-services os #:container? container?))
+      ((services -> (operating-system-services os))
        (profile (fold-services services
                                #:target-type profile-service-type)))
     (match profile
@@ -878,7 +885,8 @@ hardware-related operations as necessary when booting a Linux container."
                #:linux (operating-system-kernel os)
                #:linux-modules
                (operating-system-initrd-modules os)
-               #:mapped-devices mapped-devices))
+               #:mapped-devices mapped-devices
+               #:keyboard-layout (operating-system-keyboard-layout os)))
 
 (define (locale-name->definition* name)
   "Variant of 'locale-name->definition' that raises an error upon failure."
@@ -912,15 +920,18 @@ listed in OS.  The C library expects to find it under
   (cond ((package? kernel)
          (string-append "GNU with "
                         (string-titlecase (package-name kernel)) " "
-                        (package-version kernel)
-                        " (beta)"))
+                        (package-version kernel)))
         ((inferior-package? kernel)
          (string-append "GNU with "
                         (string-titlecase (inferior-package-name kernel)) " "
-                        (inferior-package-version kernel)
-                        " (beta)"))
+                        (inferior-package-version kernel)))
         (else "GNU")))
 
+(define (operating-system-default-label os)
+  "Return the default label for OS, as it will appear in the bootloader menu
+entry."
+  (kernel->boot-label (operating-system-kernel os)))
+
 (define (store-file-system file-systems)
   "Return the file system object among FILE-SYSTEMS that contains the store."
   (match (filter (lambda (fs)
@@ -969,7 +980,7 @@ such as '--root' and '--load' to <boot-parameters>."
          (bootloader      (bootloader-configuration-bootloader
                            (operating-system-bootloader os)))
          (bootloader-name (bootloader-name bootloader))
-         (label           (kernel->boot-label (operating-system-kernel os))))
+         (label           (operating-system-label os)))
     (boot-parameters
      (label label)
      (root-device root-device)
diff --git a/gnu/system/accounts.scm b/gnu/system/accounts.scm
index eb18fb5e43..586cff1842 100644
--- a/gnu/system/accounts.scm
+++ b/gnu/system/accounts.scm
@@ -67,7 +67,8 @@
   (supplementary-groups user-account-supplementary-groups
                         (default '()))            ; list of strings
   (comment        user-account-comment (default ""))
-  (home-directory user-account-home-directory)
+  (home-directory user-account-home-directory (thunked)
+                  (default (default-home-directory this-record)))
   (create-home-directory? user-account-create-home-directory? ;Boolean
                           (default #t))
   (shell          user-account-shell              ; gexp
@@ -84,6 +85,10 @@
   (system?        user-group-system?              ; Boolean
                   (default #f)))
 
+(define (default-home-directory account)
+  "Return the default home directory for ACCOUNT."
+  (string-append "/home/" (user-account-name account)))
+
 (define (sexp->user-group sexp)
   "Take SEXP, a tuple as returned by 'user-group->gexp', and turn it into a
 user-group record."
diff --git a/gnu/system/examples/asus-c201.tmpl b/gnu/system/examples/asus-c201.tmpl
new file mode 100644
index 0000000000..098958f4a2
--- /dev/null
+++ b/gnu/system/examples/asus-c201.tmpl
@@ -0,0 +1,60 @@
+;; This is an operating system configuration template
+;; for a "bare bones" setup for an ASUS C201PA.
+
+(use-modules (gnu) (gnu bootloader depthcharge))
+(use-service-modules networking ssh)
+(use-package-modules linux screen)
+
+(operating-system
+  (host-name "komputilo")
+  (timezone "Europe/Berlin")
+  (locale "en_US.utf8")
+
+  ;; Assuming /dev/mmcblk0p1 is the kernel partition, and
+  ;; "my-root" is the label of the target root file system.
+  (bootloader (bootloader-configuration
+                (bootloader depthcharge-bootloader)
+                (target "/dev/mmcblk0p1")))
+
+  ;; The ASUS C201PA requires a very particular kernel to boot,
+  ;; as well as the following arguments.
+  (kernel linux-libre-arm-veyron)
+  (kernel-arguments '("console=tty1"))
+
+  ;; We do not need any special modules for initrd, and the
+  ;; PrawnOS kernel does not include many of the normal ones.
+  (initrd-modules '())
+
+  (file-systems (cons (file-system
+                        (device (file-system-label "my-root"))
+                        (mount-point "/")
+                        (type "ext4"))
+                      %base-file-systems))
+
+  ;; This is where user accounts are specified.  The "root"
+  ;; account is implicit, and is initially created with the
+  ;; empty password.
+  (users (cons (user-account
+                (name "alice")
+                (comment "Bob's sister")
+                (group "users")
+
+                ;; Adding the account to the "wheel" group
+                ;; makes it a sudoer.  Adding it to "audio"
+                ;; and "video" allows the user to play sound
+                ;; and access the webcam.
+                (supplementary-groups '("wheel"
+                                        "audio" "video"))
+                (home-directory "/home/alice"))
+               %base-user-accounts))
+
+  ;; Globally-installed packages.
+  (packages (cons screen %base-packages))
+
+  ;; Add services to the baseline: a DHCP client and
+  ;; an SSH server.
+  (services (append (list (service dhcp-client-service-type)
+                          (service openssh-service-type
+                                   (openssh-configuration
+                                    (port-number 2222))))
+                    %base-services)))
diff --git a/gnu/system/examples/bare-bones.tmpl b/gnu/system/examples/bare-bones.tmpl
index a88bab034f..4f30a5b756 100644
--- a/gnu/system/examples/bare-bones.tmpl
+++ b/gnu/system/examples/bare-bones.tmpl
@@ -35,8 +35,7 @@
                 ;; and "video" allows the user to play sound
                 ;; and access the webcam.
                 (supplementary-groups '("wheel"
-                                        "audio" "video"))
-                (home-directory "/home/alice"))
+                                        "audio" "video")))
                %base-user-accounts))
 
   ;; Globally-installed packages.
diff --git a/gnu/system/examples/beaglebone-black.tmpl b/gnu/system/examples/beaglebone-black.tmpl
index 11678063b2..def05e807d 100644
--- a/gnu/system/examples/beaglebone-black.tmpl
+++ b/gnu/system/examples/beaglebone-black.tmpl
@@ -38,8 +38,7 @@
                 ;; and "video" allows the user to play sound
                 ;; and access the webcam.
                 (supplementary-groups '("wheel"
-                                        "audio" "video"))
-                (home-directory "/home/alice"))
+                                        "audio" "video")))
                %base-user-accounts))
 
   ;; Globally-installed packages.
diff --git a/gnu/system/examples/desktop.tmpl b/gnu/system/examples/desktop.tmpl
index c59bf92681..3931bad60d 100644
--- a/gnu/system/examples/desktop.tmpl
+++ b/gnu/system/examples/desktop.tmpl
@@ -3,7 +3,7 @@
 ;; root partition is encrypted with LUKS.
 
 (use-modules (gnu) (gnu system nss))
-(use-service-modules desktop)
+(use-service-modules desktop xorg)
 (use-package-modules certs gnome)
 
 (operating-system
@@ -11,11 +11,16 @@
   (timezone "Europe/Paris")
   (locale "en_US.utf8")
 
+  ;; Choose US English keyboard layout.  The "altgr-intl"
+  ;; variant provides dead keys for accented characters.
+  (keyboard-layout (keyboard-layout "us" "altgr-intl"))
+
   ;; Use the UEFI variant of GRUB with the EFI System
   ;; Partition mounted on /boot/efi.
   (bootloader (bootloader-configuration
                 (bootloader grub-efi-bootloader)
-                (target "/boot/efi")))
+                (target "/boot/efi")
+                (keyboard-layout keyboard-layout)))
 
   ;; Specify a mapped device for the encrypted root partition.
   ;; The UUID is that returned by 'cryptsetup luksUUID'.
@@ -42,8 +47,7 @@
                 (comment "Alice's brother")
                 (group "users")
                 (supplementary-groups '("wheel" "netdev"
-                                        "audio" "video"))
-                (home-directory "/home/bob"))
+                                        "audio" "video")))
                %base-user-accounts))
 
   ;; This is where we specify system-wide packages.
@@ -54,12 +58,15 @@
                      gvfs)
                     %base-packages))
 
-  ;; Add GNOME and/or Xfce---we can choose at the log-in
-  ;; screen with F1.  Use the "desktop" services, which
+  ;; Add GNOME and Xfce---we can choose at the log-in screen
+  ;; by clicking the gear.  Use the "desktop" services, which
   ;; include the X11 log-in service, networking with
   ;; NetworkManager, and more.
-  (services (append (list (gnome-desktop-service)
-                          (xfce-desktop-service))
+  (services (append (list (service gnome-desktop-service-type)
+                          (service xfce-desktop-service-type)
+                          (set-xorg-configuration
+                           (xorg-configuration
+                            (keyboard-layout keyboard-layout))))
                     %desktop-services))
 
   ;; Allow resolution of '.local' host names with mDNS.
diff --git a/gnu/system/examples/docker-image.tmpl b/gnu/system/examples/docker-image.tmpl
index 9690d651c1..ca633cc838 100644
--- a/gnu/system/examples/docker-image.tmpl
+++ b/gnu/system/examples/docker-image.tmpl
@@ -15,8 +15,7 @@
                 (comment "Bob's sister")
                 (group "users")
                 (supplementary-groups '("wheel"
-                                        "audio" "video"))
-                (home-directory "/home/alice"))
+                                        "audio" "video")))
                %base-user-accounts))
 
   ;; Globally-installed packages.
diff --git a/gnu/system/examples/lightweight-desktop.tmpl b/gnu/system/examples/lightweight-desktop.tmpl
index a234badd2b..45d9bf447f 100644
--- a/gnu/system/examples/lightweight-desktop.tmpl
+++ b/gnu/system/examples/lightweight-desktop.tmpl
@@ -35,8 +35,7 @@
                 (comment "Bob's sister")
                 (group "users")
                 (supplementary-groups '("wheel" "netdev"
-                                        "audio" "video"))
-                (home-directory "/home/alice"))
+                                        "audio" "video")))
                %base-user-accounts))
 
   ;; Add a bunch of window managers; we can choose one at
diff --git a/gnu/system/examples/vm-image.tmpl b/gnu/system/examples/vm-image.tmpl
index 6dc67b0901..a140082c0b 100644
--- a/gnu/system/examples/vm-image.tmpl
+++ b/gnu/system/examples/vm-image.tmpl
@@ -1,58 +1,106 @@
-;;; This is an operating system configuration template for a "bare-bones" setup,
-;;; suitable for booting in a virtualized environment, including virtual private
-;;; servers (VPS).
+;; This is an operating system configuration for a VM image.
+;; Modify it as you see fit and instantiate the changes by running:
+;;
+;;   guix system reconfigure /etc/config.scm
+;;
 
-(use-modules (gnu))
-(use-package-modules bootloaders disk nvi)
+(use-modules (gnu) (srfi srfi-1))
+(use-service-modules desktop networking ssh xorg)
+(use-package-modules bootloaders certs fonts nvi wget xorg)
 
 (define vm-image-motd (plain-file "motd" "
-This is the GNU system.  Welcome!
+\x1b[1;37mThis is the GNU system.  Welcome!\x1b[0m
 
-This instance of Guix System is a bare-bones template for virtualized environments.
+This instance of Guix is a template for virtualized environments.
+You can reconfigure the whole system by adjusting /etc/config.scm
+and running:
 
-You will probably want to do these things first if you booted in a virtual
-private server (VPS):
+  guix system reconfigure /etc/config.scm
+
+Run '\x1b[1;37minfo guix\x1b[0m' to browse documentation.
+
+\x1b[1;33mConsider setting a password for the 'root' and 'guest' \
+accounts.\x1b[0m
+"))
+
+(define this-file
+  (local-file (basename (assoc-ref (current-source-location) 'filename))
+              "config.scm"))
 
-* Set a password for 'root'.
-* Set up networking.
-* Expand the root partition to fill the space available by 0) deleting and
-recreating the partition with fdisk, 1) reloading the partition table with
-partprobe, and then 2) resizing the filesystem with resize2fs.\n"))
 
 (operating-system
   (host-name "gnu")
   (timezone "Etc/UTC")
   (locale "en_US.utf8")
+  (keyboard-layout (keyboard-layout "us" "altgr-intl"))
 
   (firmware '())
 
-  ;; Assuming /dev/sdX is the target hard disk, and "my-root" is
-  ;; the label of the target root file system.
+  ;; Below we assume /dev/vda is the VM's hard disk.
+  ;; Adjust as needed.
   (bootloader (bootloader-configuration
                (bootloader grub-bootloader)
-               (target "/dev/sda")
+               (target "/dev/vda")
                (terminal-outputs '(console))))
   (file-systems (cons (file-system
-                        (device (file-system-label "my-root"))
                         (mount-point "/")
+                        (device "/dev/vda1")
                         (type "ext4"))
                       %base-file-systems))
 
-  ;; This is where user accounts are specified.  The "root"
-  ;; account is implicit, and is initially created with the
-  ;; empty password.
-  (users %base-user-accounts)
-
-  ;; Globally-installed packages.
-  (packages (append (list nvi fdisk
-                          ;; mostly so xrefs to its manual work
-                          grub
-                          ;; partprobe
-                          parted)
+  (users (cons (user-account
+                (name "guest")
+                (comment "GNU Guix Live")
+                (password "")                     ;no password
+                (group "users")
+                (supplementary-groups '("wheel" "netdev"
+                                        "audio" "video")))
+               %base-user-accounts))
+
+  ;; Our /etc/sudoers file.  Since 'guest' initially has an empty password,
+  ;; allow for password-less sudo.
+  (sudoers-file (plain-file "sudoers" "\
+root ALL=(ALL) ALL
+%wheel ALL=NOPASSWD: ALL\n"))
+
+  (packages (append (list font-bitstream-vera nss-certs nvi wget)
                     %base-packages))
 
-  (services (modify-services %base-services
-              (login-service-type config =>
-                                  (login-configuration
-                                    (inherit config)
-                                    (motd vm-image-motd))))))
+  (services
+   (append (list (service xfce-desktop-service-type)
+
+                 ;; Copy this file to /etc/config.scm in the OS.
+                 (simple-service 'config-file etc-service-type
+                                 `(("config.scm" ,this-file)))
+
+                 ;; Choose SLiM, which is lighter than the default GDM.
+                 (service slim-service-type
+                          (slim-configuration
+                           (auto-login? #t)
+                           (default-user "guest")
+                           (xorg-configuration
+                            (xorg-configuration
+                             (keyboard-layout keyboard-layout)))))
+
+                 ;; Uncomment the line below to add an SSH server.
+                 ;;(service openssh-service-type)
+
+                 ;; Use the DHCP client service rather than NetworkManager.
+                 (service dhcp-client-service-type))
+
+           ;; Remove GDM, NetworkManager, and wpa-supplicant, which don't make
+           ;; sense in a VM.
+           (remove (lambda (service)
+                     (let ((type (service-kind service)))
+                       (memq type (list gdm-service-type
+                                        wpa-supplicant-service-type
+                                        cups-pk-helper-service-type
+                                        network-manager-service-type))))
+                   (modify-services %desktop-services
+                     (login-service-type config =>
+                                         (login-configuration
+                                          (inherit config)
+                                          (motd vm-image-motd)))))))
+
+  ;; Allow resolution of '.local' host names with mDNS.
+  (name-service-switch %mdns-host-lookup-nss))
diff --git a/gnu/system/install.scm b/gnu/system/install.scm
index bad318d06b..45c6051732 100644
--- a/gnu/system/install.scm
+++ b/gnu/system/install.scm
@@ -27,6 +27,7 @@
   #:use-module (guix gexp)
   #:use-module (guix store)
   #:use-module (guix monads)
+  #:use-module ((guix packages) #:select (package-version))
   #:use-module ((guix store) #:select (%store-prefix))
   #:use-module (gnu installer)
   #:use-module (gnu services dbus)
@@ -73,19 +74,94 @@
 ;;; Code:
 
 
-(define (log-to-info)
+;;;
+;;; Documentation service.
+;;;
+
+(define %installation-node-names
+  ;; Translated name of the "System Installation" node of the manual.  Ideally
+  ;; we'd extract it from the 'guix-manual' gettext domain, but that one is
+  ;; usually not available at run time, hence this hack.
+  '(("de" . "Systeminstallation")
+    ("en" . "System Installation")
+    ("es" . "Instalación del sistema")
+    ("fr" . "Installation du système")))
+
+(define (log-to-info tty user)
   "Return a script that spawns the Info reader on the right section of the
 manual."
   (program-file "log-to-info"
-                #~(begin
+                #~(let* ((tty      (open-file #$(string-append "/dev/" tty)
+                                              "r0+"))
+                         (locale   (cadr (command-line)))
+                         (language (string-take locale
+                                                (string-index locale #\_)))
+                         (infodir  "/run/current-system/profile/share/info")
+                         (per-lang (string-append infodir "/guix." language
+                                                  ".info.gz"))
+                         (file     (if (file-exists? per-lang)
+                                       per-lang
+                                       (string-append infodir "/guix.info")))
+                         (node     (or (assoc-ref '#$%installation-node-names
+                                                  language)
+                                       "System Installation")))
+                    (redirect-port tty (current-output-port))
+                    (redirect-port tty (current-error-port))
+                    (redirect-port tty (current-input-port))
+
+                    (let ((pw (getpwnam #$user)))
+                      (setgid (passwd:gid pw))
+                      (setuid (passwd:uid pw)))
+
                     ;; 'gunzip' is needed to decompress the doc.
                     (setenv "PATH" (string-append #$gzip "/bin"))
 
-                    (execl (string-append #$info-reader "/bin/info") "info"
-                           "-d" "/run/current-system/profile/share/info"
-                           "-f" (string-append #$guix "/share/info/guix.info")
-                           "-n" "System Installation"))))
+                    ;; Change this process' locale so that command-line
+                    ;; arguments to 'info' are properly encoded.
+                    (catch #t
+                      (lambda ()
+                        (setlocale LC_ALL locale)
+                        (setenv "LC_ALL" locale))
+                      (lambda _
+                        ;; Sometimes LOCALE itself is not available.  In that
+                        ;; case pick the one UTF-8 locale that's known to work
+                        ;; instead of failing.
+                        (setlocale LC_ALL "en_US.utf8")
+                        (setenv "LC_ALL" "en_US.utf8")))
+
+                    (execl #$(file-append info-reader "/bin/info")
+                           "info" "-d" infodir "-f" file "-n" node))))
+
+(define (documentation-shepherd-service tty)
+  (list (shepherd-service
+         (provision (list (symbol-append 'term- (string->symbol tty))))
+         (requirement '(user-processes host-name udev virtual-terminal))
+         (start #~(lambda* (#:optional (locale "en_US.utf8"))
+                    (fork+exec-command
+                     (list #$(log-to-info tty "documentation") locale)
+                     #:environment-variables
+                     `("GUIX_LOCPATH=/run/current-system/locale"
+                       "TERM=linux"))))
+         (stop #~(make-kill-destructor)))))
+
+(define %documentation-users
+  ;; User account for the Info viewer.
+  (list (user-account (name "documentation")
+                      (system? #t)
+                      (group "nogroup")
+                      (home-directory "/var/empty"))))
+
+(define documentation-service-type
+  ;; Documentation viewer service.
+  (service-type (name 'documentation)
+                (extensions
+                 (list (service-extension shepherd-root-service-type
+                                          documentation-shepherd-service)
+                       (service-extension account-service-type
+                                          (const %documentation-users))))
+                (description "Run the Info reader on a tty.")))
 
+
 (define %backing-directory
   ;; Sub-directory used as the backing store for copy-on-write.
   "/tmp/guix-inst")
@@ -212,13 +288,11 @@ the user's target storage device rather than on the RAM disk."
 (define %installation-services
   ;; List of services of the installation system.
   (let ((motd (plain-file "motd" "
-\x1b[1;37mWelcome to the installation of the Guix System Distribution!\x1b[0m
-
-\x1b[2mThere is NO WARRANTY, to the extent permitted by law.  In particular, you may
-LOSE ALL YOUR DATA as a side effect of the installation process.  Furthermore,
-it is 'beta' software, so it may contain bugs.
+\x1b[1;37mWelcome to the installation of GNU Guix!\x1b[0m
 
-You have been warned.  Thanks for being so brave.\x1b[0m
+\x1b[2m\
+Using this shell, you can carry out the installation process \"manually.\"
+Access documentation at any time by pressing Alt-F2.\x1b[0m
 ")))
     (define (normal-tty tty)
       (mingetty-service (mingetty-configuration (tty tty)
@@ -241,10 +315,7 @@ You have been warned.  Thanks for being so brave.\x1b[0m
           ;; Documentation.  The manual is in UTF-8, but
           ;; 'console-font-service' sets up Unicode support and loads a font
           ;; with all the useful glyphs like em dash and quotation marks.
-          (mingetty-service (mingetty-configuration
-                             (tty "tty2")
-                             (auto-login "guest")
-                             (login-program (log-to-info))))
+          (service documentation-service-type "tty2")
 
           ;; Documentation add-on.
           %configuration-template-service
@@ -273,12 +344,18 @@ You have been warned.  Thanks for being so brave.\x1b[0m
           ;; since it takes the installation directory as an argument.
           (cow-store-service)
 
-          ;; Install Unicode support and a suitable font.  Use a font that
-          ;; doesn't have more than 256 glyphs so that we can use colors with
-          ;; varying brightness levels (see note in setfont(8)).
+          ;; Install Unicode support and a suitable font.
           (service console-font-service-type
-                   (map (lambda (tty)
-                          (cons tty "lat9u-16"))
+                   (map (match-lambda
+                          ("tty2"
+                           ;; Use a font that contains characters such as
+                           ;; curly quotes as found in the manual.
+                           '("tty2" . "LatGrkCyr-8x16"))
+                          (tty
+                           ;; Use a font that doesn't have more than 256
+                           ;; glyphs so that we can use colors with varying
+                           ;; brightness levels (see note in setfont(8)).
+                           `(,tty . "lat9u-16")))
                         '("tty1" "tty2" "tty3" "tty4" "tty5" "tty6")))
 
           ;; To facilitate copy/paste.
@@ -348,6 +425,15 @@ You have been warned.  Thanks for being so brave.\x1b[0m
     (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.
@@ -379,8 +465,7 @@ You have been warned.  Thanks for being so brave.\x1b[0m
                   (group "users")
                   (supplementary-groups '("wheel")) ; allow use of sudo
                   (password "")
-                  (comment "Guest of GNU")
-                  (home-directory "/home/guest"))))
+                  (comment "Guest of GNU"))))
 
     (issue %issue)
     (services %installation-services)
diff --git a/gnu/system/keyboard.scm b/gnu/system/keyboard.scm
new file mode 100644
index 0000000000..cd3ab37b27
--- /dev/null
+++ b/gnu/system/keyboard.scm
@@ -0,0 +1,98 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 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 (gnu system keyboard)
+  #:use-module (guix gexp)
+  #:use-module ((gnu packages xorg)
+                #:select (xkeyboard-config console-setup))
+  #:use-module (srfi srfi-9 gnu)
+  #:use-module (ice-9 match)
+  #:export (keyboard-layout?
+            keyboard-layout
+            keyboard-layout-name
+            keyboard-layout-variant
+            keyboard-layout-model
+            keyboard-layout-options
+
+            keyboard-layout->console-keymap))
+
+;;; Commentary:
+;;;
+;;; This module provides a data structure to represent keyboard layouts
+;;; according to the XKB naming and classification (see the 'xkeyboard-config'
+;;; package).
+;;;
+;;; Code:
+
+(define-immutable-record-type <keyboard-layout>
+  (%keyboard-layout name variant model options)
+  keyboard-layout?
+  (name      keyboard-layout-name)                ;string
+  (variant   keyboard-layout-variant)             ;#f | string
+  (model     keyboard-layout-model)               ;#f | string
+  (options   keyboard-layout-options))            ;list of strings
+
+(define* (keyboard-layout name #:optional variant
+                          #:key model (options '()))
+  "Return a new keyboard layout with the given NAME and VARIANT.
+
+NAME must be a string such as \"fr\"; VARIANT must be a string such as
+\"bepo\" or \"nodeadkeys\".  See the 'xkeyboard-config' package for valid
+options."
+  (%keyboard-layout name variant model options))
+
+(define* (keyboard-layout->console-keymap layout
+                                          #:key
+                                          (xkeyboard-config xkeyboard-config))
+  "Return a Linux console keymap file for LAYOUT, a <keyboard-layout> record.
+Layout information is taken from the XKEYBOARD-CONFIG package."
+  (define build
+    (with-imported-modules '((guix build utils))
+      #~(begin
+          (use-modules (guix build utils)
+                       (ice-9 popen)
+                       (ice-9 match))
+
+          (define pipe
+            (open-pipe* OPEN_READ
+                        #+(file-append console-setup "/bin/ckbcomp")
+                        (string-append "-I"
+                                       #+(file-append xkeyboard-config
+                                                      "/share/X11/xkb"))
+                        "-rules" "base"
+                        #$@(match (keyboard-layout-model layout)
+                             (#f      '())
+                             (model   `("-model" ,model)))
+                        #$(keyboard-layout-name layout)
+                        #$(or (keyboard-layout-variant layout)
+                              "")
+                        #$(string-join (keyboard-layout-options layout) ",")))
+
+          (call-with-output-file #$output
+            (lambda (output)
+              (dump-port pipe output)))
+
+          ;; Note: ckbcomp errors out when the layout name is unknown, but
+          ;; merely emits a warning when the variant is unknown.
+          (unless (zero? (close-pipe pipe))
+            (error "failed to create console keymap for keyboard layout"
+                   #$(keyboard-layout-name layout))))))
+
+  (computed-file (string-append "console-keymap."
+                                (keyboard-layout-name layout))
+                 build))
diff --git a/gnu/system/linux-container.scm b/gnu/system/linux-container.scm
index 3fe3482d7f..149c3d08a3 100644
--- a/gnu/system/linux-container.scm
+++ b/gnu/system/linux-container.scm
@@ -35,6 +35,24 @@
             containerized-operating-system
             container-script))
 
+(define (container-essential-services os)
+  "Return a list of essential services corresponding to OS, a
+non-containerized OS.  This procedure essentially strips essential services
+from OS that are needed on the bare metal and not in a container."
+  (define base
+    (remove (lambda (service)
+              (memq (service-kind service)
+                    (list (service-kind %linux-bare-metal-service)
+                          firmware-service-type
+                          system-service-type)))
+            (operating-system-essential-services os)))
+
+  (cons (service system-service-type
+                 (let ((locale (operating-system-locale-directory os)))
+                   (with-monad %store-monad
+                     (return `(("locale" ,locale))))))
+        base))
+
 (define (containerized-operating-system os mappings)
   "Return an operating system based on OS for use in a Linux container
 environment.  MAPPINGS is a list of <file-system-mapping> to realize in the
@@ -62,8 +80,10 @@ containerized OS."
           mingetty-service-type
           agetty-service-type))
 
-  (operating-system (inherit os)
+  (operating-system
+    (inherit os)
     (swap-devices '()) ; disable swap
+    (essential-services (container-essential-services os))
     (services (remove (lambda (service)
                         (memq (service-kind service)
                               useless-services))
@@ -81,30 +101,26 @@ that will be shared with the host system."
                                (operating-system-file-systems os)))
          (specs        (map file-system->spec file-systems)))
 
-    (mlet* %store-monad ((os-drv (operating-system-derivation
-                                  os
-                                  #:container? #t)))
-
-      (define script
-        (with-imported-modules (source-module-closure
-                                '((guix build utils)
-                                  (gnu build linux-container)))
-          #~(begin
-              (use-modules (gnu build linux-container)
-                           (gnu system file-systems) ;spec->file-system
-                           (guix build utils))
+    (define script
+      (with-imported-modules (source-module-closure
+                              '((guix build utils)
+                                (gnu build linux-container)))
+        #~(begin
+            (use-modules (gnu build linux-container)
+                         (gnu system file-systems) ;spec->file-system
+                         (guix build utils))
 
-              (call-with-container (map spec->file-system '#$specs)
-                (lambda ()
-                  (setenv "HOME" "/root")
-                  (setenv "TMPDIR" "/tmp")
-                  (setenv "GUIX_NEW_SYSTEM" #$os-drv)
-                  (for-each mkdir-p '("/run" "/bin" "/etc" "/home" "/var"))
-                  (primitive-load (string-append #$os-drv "/boot")))
-                ;; A range of 65536 uid/gids is used to cover 16 bits worth of
-                ;; users and groups, which is sufficient for most cases.
-                ;;
-                ;; See: http://www.freedesktop.org/software/systemd/man/systemd-nspawn.html#--private-users=
-                #:host-uids 65536))))
+            (call-with-container (map spec->file-system '#$specs)
+              (lambda ()
+                (setenv "HOME" "/root")
+                (setenv "TMPDIR" "/tmp")
+                (setenv "GUIX_NEW_SYSTEM" #$os)
+                (for-each mkdir-p '("/run" "/bin" "/etc" "/home" "/var"))
+                (primitive-load (string-append #$os "/boot")))
+              ;; A range of 65536 uid/gids is used to cover 16 bits worth of
+              ;; users and groups, which is sufficient for most cases.
+              ;;
+              ;; See: http://www.freedesktop.org/software/systemd/man/systemd-nspawn.html#--private-users=
+              #:host-uids 65536))))
 
-      (gexp->script "run-container" script))))
+    (gexp->script "run-container" script)))
diff --git a/gnu/system/linux-initrd.scm b/gnu/system/linux-initrd.scm
index 983c6d81c8..656afd1ddb 100644
--- a/gnu/system/linux-initrd.scm
+++ b/gnu/system/linux-initrd.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2016 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
 ;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
@@ -31,10 +31,13 @@
   #:use-module (gnu packages disk)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages guile)
+  #:use-module ((gnu packages xorg)
+                #:select (console-setup xkeyboard-config))
   #:use-module ((gnu packages make-bootstrap)
                 #:select (%guile-static-stripped))
   #:use-module (gnu system file-systems)
   #:use-module (gnu system mapped-devices)
+  #:use-module (gnu system keyboard)
   #:use-module (ice-9 match)
   #:use-module (ice-9 regex)
   #:use-module (ice-9 vlist)
@@ -139,6 +142,7 @@ MODULES and taken from LINUX."
                       (linux linux-libre)
                       (linux-modules '())
                       (mapped-devices '())
+                      (keyboard-layout #f)
                       (helper-packages '())
                       qemu-networking?
                       volatile-root?
@@ -152,6 +156,11 @@ mappings to realize before FILE-SYSTEMS are mounted.
 HELPER-PACKAGES is a list of packages to be copied in the initrd. It may include
 e2fsck/static or other packages needed by the initrd to check root partition.
 
+When true, KEYBOARD-LAYOUT is a <keyboard-layout> record denoting the desired
+console keyboard layout.  This is done before MAPPED-DEVICES are set up and
+before 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.
+
 When QEMU-NETWORKING? is true, set up networking with the standard QEMU
 parameters.
 
@@ -206,6 +215,8 @@ upon error."
                                     (and #$@device-mapping-commands))
                       #:linux-modules '#$linux-modules
                       #:linux-module-directory '#$kodir
+                      #:keymap-file #+(and=> keyboard-layout
+                                             keyboard-layout->console-keymap)
                       #:qemu-guest-networking? #$qemu-networking?
                       #:volatile-root? '#$volatile-root?
                       #:on-error '#$on-error)))
@@ -290,6 +301,7 @@ FILE-SYSTEMS."
                       (linux linux-libre)
                       (linux-modules '())
                       (mapped-devices '())
+                      (keyboard-layout #f)
                       qemu-networking?
                       volatile-root?
                       (extra-modules '())         ;deprecated
@@ -300,6 +312,11 @@ mounted by the initrd, possibly in addition to the root file system specified
 on the kernel command line via '--root'.  MAPPED-DEVICES is a list of device
 mappings to realize before FILE-SYSTEMS are mounted.
 
+When true, KEYBOARD-LAYOUT is a <keyboard-layout> record denoting the desired
+console keyboard layout.  This is done before MAPPED-DEVICES are set up and
+before 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.
+
 QEMU-NETWORKING? and VOLATILE-ROOT? behaves as in raw-initrd.
 
 The initrd is automatically populated with all the kernel modules necessary
@@ -316,13 +333,18 @@ loaded at boot time in the order in which they appear."
       ,@extra-modules))
 
   (define helper-packages
-    (file-system-packages file-systems #:volatile-root? volatile-root?))
+    (append (file-system-packages file-systems
+                                  #:volatile-root? volatile-root?)
+            (if keyboard-layout
+                (list loadkeys-static)
+                '())))
 
   (raw-initrd file-systems
               #:linux linux
               #:linux-modules linux-modules*
               #:mapped-devices mapped-devices
               #:helper-packages helper-packages
+              #:keyboard-layout keyboard-layout
               #:qemu-networking? qemu-networking?
               #:volatile-root? volatile-root?
               #:on-error on-error))
diff --git a/gnu/system/shadow.scm b/gnu/system/shadow.scm
index 7dc36f4a45..13b8b14095 100644
--- a/gnu/system/shadow.scm
+++ b/gnu/system/shadow.scm
@@ -323,6 +323,7 @@ accounts among ACCOUNTS+GROUPS."
   (list (shepherd-service
          (requirement '(file-systems))
          (provision '(user-homes))
+         (one-shot? #t)
          (modules '((gnu build activation)
                     (gnu system accounts)))
          (start (with-imported-modules (source-module-closure
@@ -332,9 +333,7 @@ accounts among ACCOUNTS+GROUPS."
                       (activate-user-home
                        (map sexp->user-account
                             (list #$@(map user-account->gexp accounts))))
-                      #f)))                       ;stop
-         (stop #~(const #f))
-         (respawn? #f)
+                      #t)))                       ;success
          (documentation "Create user home directories."))))
 
 (define (shells-file shells)
diff --git a/gnu/system/vm.scm b/gnu/system/vm.scm
index 55cddb1a4b..92b03b01ad 100644
--- a/gnu/system/vm.scm
+++ b/gnu/system/vm.scm
@@ -58,6 +58,7 @@
   #:use-module (gnu bootloader grub)
   #:use-module (gnu system shadow)
   #:use-module (gnu system pam)
+  #:use-module (gnu system linux-container)
   #:use-module (gnu system linux-initrd)
   #:use-module (gnu bootloader)
   #:use-module (gnu system file-systems)
@@ -93,6 +94,12 @@
 (define %linux-vm-file-systems
   ;; File systems mounted for 'derivation-in-linux-vm'.  These are shared with
   ;; the host over 9p.
+  ;;
+  ;; The 9p documentation says that cache=loose is "intended for exclusive,
+  ;; read-only mounts", without additional details.  It's much faster than the
+  ;; default cache=none, especially when copying and registering store items.
+  ;; Thus, use cache=loose, except for /xchg where we want to ensure
+  ;; consistency.
   (list (file-system
           (mount-point (%store-prefix))
           (device "store")
@@ -101,18 +108,12 @@
           (flags '(read-only))
           (options "trans=virtio,cache=loose")
           (check? #f))
-
-        ;; The 9p documentation says that cache=loose is "intended for
-        ;; exclusive, read-only mounts", without additional details.  In
-        ;; practice it seems to work well for these, and it's much faster than
-        ;; the default cache=none, especially when copying and registering
-        ;; store items.
         (file-system
           (mount-point "/xchg")
           (device "xchg")
           (type "9p")
           (needed-for-boot? #t)
-          (options "trans=virtio,cache=loose")
+          (options "trans=virtio")
           (check? #f))
         (file-system
           (mount-point "/tmp")
@@ -320,7 +321,10 @@ INPUTS is a list of inputs (as for packages)."
 
    #:make-disk-image? #f
    #:single-file-output? #t
-   #:references-graphs inputs))
+   #:references-graphs inputs
+
+   ;; Xorriso seems to be quite memory-hungry, so increase the VM's RAM size.
+   #:memory-size 512))
 
 (define* (qemu-image #:key
                      (name "qemu-image")
@@ -473,9 +477,9 @@ should set REGISTER-CLOSURES? to #f."
          (local-file (search-path %load-path
                                   "guix/store/schema.sql"))))
 
-  (mlet %store-monad ((os-drv (operating-system-derivation os #:container? #t))
-                      (name -> (string-append name ".tar.gz"))
-                      (graph -> "system-graph"))
+  (let ((os    (containerized-operating-system os '()))
+        (name  (string-append name ".tar.gz"))
+        (graph "system-graph"))
     (define build
       (with-extensions (cons guile-json           ;for (guix docker)
                              gcrypt-sqlite3&co)   ;for (guix store database)
@@ -505,7 +509,7 @@ should set REGISTER-CLOSURES? to #f."
                      (initialize (root-partition-initializer
                                   #:closures '(#$graph)
                                   #:register-closures? #$register-closures?
-                                  #:system-directory #$os-drv
+                                  #:system-directory #$os
                                   ;; De-duplication would fail due to
                                   ;; cross-device link errors, so don't do it.
                                   #:deduplicate? #f))
@@ -523,18 +527,15 @@ should set REGISTER-CLOSURES? to #f."
                              (call-with-input-file
                                  (string-append "/xchg/" #$graph)
                                read-reference-graph)))
-                 #$os-drv
+                 #$os
                  #:compressor '(#+(file-append gzip "/bin/gzip") "-9n")
                  #:creation-time (make-time time-utc 0 1)
-                 #:transformations `((,root-directory -> "")))
-
-                ;; Make sure the tarball is fully written before rebooting.
-                (sync))))))
+                 #:transformations `((,root-directory -> ""))))))))
     (expression->derivation-in-linux-vm
      name build
      #:make-disk-image? #f
      #:single-file-output? #t
-     #:references-graphs `((,graph ,os-drv)))))
+     #:references-graphs `((,graph ,os)))))
 
 
 ;;;
@@ -616,7 +617,7 @@ to USB sticks meant to be read-only."
     ;; Volume name of the root file system.
     (normalize-label "Guix_image"))
 
-  (define root-uuid
+  (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.
@@ -646,17 +647,26 @@ to USB sticks meant to be read-only."
                                  (bootloader grub-mkrescue-bootloader))
                                (operating-system-bootloader os)))
 
-               ;; Force our own root file system.
+               ;; Force our own root file system.  (We need a "/" file system
+               ;; to call 'root-uuid'.)
                (file-systems (cons (file-system
                                      (mount-point "/")
-                                     (device root-uuid)
+                                     (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)))
     (if (string=? "iso9660" file-system-type)
         (iso9660-image #:name name
                        #:file-system-label root-label
-                       #:file-system-uuid root-uuid
+                       #:file-system-uuid uuid
                        #:os os
                        #:register-closures? #t
                        #:bootcfg-drv bootcfg
@@ -673,7 +683,7 @@ to USB sticks meant to be read-only."
                     #:disk-image-format "raw"
                     #:file-system-type file-system-type
                     #:file-system-label root-label
-                    #:file-system-uuid root-uuid
+                    #:file-system-uuid uuid
                     #:copy-inputs? #t
                     #:register-closures? #t
                     #:inputs `(("system" ,os)
@@ -790,6 +800,7 @@ environment with the store shared with the host.  MAPPINGS is a list of
     ;; force the traditional i386/BIOS method.
     ;; See <https://bugs.gnu.org/28768>.
     (bootloader (bootloader-configuration
+                  (inherit (operating-system-bootloader os))
                   (bootloader grub-bootloader)
                   (target "/dev/vda")))
 
diff --git a/gnu/tests.scm b/gnu/tests.scm
index 9e8eed7d95..0871b4c6f7 100644
--- a/gnu/tests.scm
+++ b/gnu/tests.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, 2019 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
 ;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;;
@@ -219,8 +219,7 @@ the system under test."
                   (name "alice")
                   (comment "Bob's sister")
                   (group "users")
-                  (supplementary-groups '("wheel" "audio" "video"))
-                  (home-directory "/home/alice"))
+                  (supplementary-groups '("wheel" "audio" "video")))
                  %base-user-accounts))))
 
 (define-syntax-rule (simple-operating-system user-services ...)
diff --git a/gnu/tests/install.scm b/gnu/tests/install.scm
index 277908cc49..430a102378 100644
--- a/gnu/tests/install.scm
+++ b/gnu/tests/install.scm
@@ -74,8 +74,7 @@
                   (name "alice")
                   (comment "Bob's sister")
                   (group "users")
-                  (supplementary-groups '("wheel" "audio" "video"))
-                  (home-directory "/home/alice"))
+                  (supplementary-groups '("wheel" "audio" "video")))
                  %base-user-accounts))
     (services (cons (service marionette-service-type
                              (marionette-configuration
@@ -357,8 +356,7 @@ per %test-installed-os, this test is expensive in terms of CPU and storage.")
                   (name "alice")
                   (comment "Bob's sister")
                   (group "users")
-                  (supplementary-groups '("wheel" "audio" "video"))
-                  (home-directory "/home/alice"))
+                  (supplementary-groups '("wheel" "audio" "video")))
                  %base-user-accounts))
     (services (cons (service marionette-service-type
                              (marionette-configuration
@@ -435,12 +433,10 @@ reboot\n")
                          %base-file-systems))
     (users (cons* (user-account
                    (name "alice")
-                   (group "users")
-                   (home-directory "/home/alice"))
+                   (group "users"))
                   (user-account
                    (name "charlie")
-                   (group "users")
-                   (home-directory "/home/charlie"))
+                   (group "users"))
                   %base-user-accounts))
     (services (cons (service marionette-service-type
                              (marionette-configuration
@@ -508,8 +504,8 @@ export GUIX_BUILD_OPTIONS=--no-grafts
 guix build isc-dhcp
 parted --script /dev/vdb mklabel gpt \\
   mkpart primary ext2 1M 3M \\
-  mkpart primary ext2 3M 100M \\
-  mkpart primary ext2 100M 1.2G \\
+  mkpart primary ext2 3M 400M \\
+  mkpart primary ext2 400M 2.1G \\
   set 1 boot on \\
   set 1 bios_grub on
 mkfs.ext4 -L root-fs /dev/vdb2
@@ -518,6 +514,7 @@ mount /dev/vdb2 /mnt
 mkdir /mnt/gnu
 mount /dev/vdb3 /mnt/gnu
 df -h /mnt
+df -h /mnt/gnu
 herd start cow-store /mnt
 mkdir /mnt/etc
 cp /etc/target-config.scm /mnt/etc/config.scm
@@ -655,7 +652,6 @@ by 'mdadm'.")
     (users (cons (user-account
                   (name "charlie")
                   (group "users")
-                  (home-directory "/home/charlie")
                   (supplementary-groups '("wheel" "audio" "video")))
                  %base-user-accounts))
     (services (cons (service marionette-service-type
@@ -776,7 +772,6 @@ build (current-guix) and then store a couple of full system images.")
     (users (cons (user-account
                   (name "charlie")
                   (group "users")
-                  (home-directory "/home/charlie")
                   (supplementary-groups '("wheel" "audio" "video")))
                  %base-user-accounts))
     (services (cons (service marionette-service-type
diff --git a/gnu/tests/networking.scm b/gnu/tests/networking.scm
index a97b29bc4b..d1234442bb 100644
--- a/gnu/tests/networking.scm
+++ b/gnu/tests/networking.scm
@@ -178,9 +178,7 @@ port 7, and a dict service on port 2628."
    (static-networking-service "ovs0" "10.1.1.1"
                               #:netmask "255.255.255.252"
                               #:requirement '(openvswitch-configuration))
-   (service openvswitch-service-type
-            (openvswitch-configuration
-             (package openvswitch)))
+   (service openvswitch-service-type)
    openvswitch-configuration-service))
 
 (define (run-openvswitch-test)
diff --git a/guix/build-system/cargo.scm b/guix/build-system/cargo.scm
index 7ff4e90f71..dc137421e9 100644
--- a/guix/build-system/cargo.scm
+++ b/guix/build-system/cargo.scm
@@ -59,13 +59,17 @@ to NAME and VERSION."
 (define %cargo-build-system-modules
   ;; Build-side modules imported by default.
   `((guix build cargo-build-system)
+    (json parser)
     ,@%cargo-utils-modules))
 
 (define* (cargo-build store name inputs
                       #:key
                       (tests? #t)
                       (test-target #f)
+                      (vendor-dir "guix-vendor")
                       (cargo-build-flags ''("--release"))
+                      (cargo-test-flags ''("--release"))
+                      (skip-build? #f)
                       (phases '(@ (guix build cargo-build-system)
                                   %standard-phases))
                       (outputs '("out"))
@@ -90,8 +94,11 @@ to NAME and VERSION."
                                  source))
                     #:system ,system
                     #:test-target ,test-target
+                    #:vendor-dir ,vendor-dir
                     #:cargo-build-flags ,cargo-build-flags
-                    #:tests? ,tests?
+                    #:cargo-test-flags ,cargo-test-flags
+                    #:skip-build? ,skip-build?
+                    #:tests? ,(and tests? (not skip-build?))
                     #:phases ,phases
                     #:outputs %outputs
                     #:search-paths ',(map search-path-specification->sexp
diff --git a/guix/build-system/dune.scm b/guix/build-system/dune.scm
index 8bd41c89f0..6a2f3d16de 100644
--- a/guix/build-system/dune.scm
+++ b/guix/build-system/dune.scm
@@ -87,6 +87,7 @@
                      (build-flags ''())
                      (out-of-source? #t)
                      (jbuild? #f)
+                     (package #f)
                      (tests? #t)
                      (test-flags ''())
                      (test-target "test")
@@ -125,6 +126,7 @@ provides a 'setup.ml' file as its build system."
                    #:build-flags ,build-flags
                    #:out-of-source? ,out-of-source?
                    #:jbuild? ,jbuild?
+                   #:package ,package
                    #:tests? ,tests?
                    #:test-target ,test-target
                    #:install-target ,install-target
diff --git a/guix/build-system/linux-module.scm b/guix/build-system/linux-module.scm
new file mode 100644
index 0000000000..6084d22210
--- /dev/null
+++ b/guix/build-system/linux-module.scm
@@ -0,0 +1,175 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2019 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-system linux-module)
+  #:use-module (guix store)
+  #: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 (%linux-module-build-system-modules
+            linux-module-build
+            linux-module-build-system))
+
+;; Commentary:
+;;
+;; Code:
+
+(define %linux-module-build-system-modules
+  ;; Build-side modules imported by default.
+  `((guix build linux-module-build-system)
+    ,@%gnu-build-system-modules))
+
+(define (default-linux)
+  "Return the default Linux package."
+
+  ;; Do not use `@' to avoid introducing circular dependencies.
+  (let ((module (resolve-interface '(gnu packages linux))))
+    (module-ref module 'linux-libre)))
+
+(define (default-kmod)
+  "Return the default kmod package."
+
+  ;; Do not use `@' to avoid introducing circular dependencies.
+  (let ((module (resolve-interface '(gnu packages linux))))
+    (module-ref module 'kmod)))
+
+(define (default-gcc)
+  "Return the default gcc package."
+
+  ;; Do not use `@' to avoid introducing circular dependencies.
+  (let ((module (resolve-interface '(gnu packages gcc))))
+    (module-ref module 'gcc-7)))
+
+(define (make-linux-module-builder linux)
+  (package
+    (inherit linux)
+    (name (string-append (package-name linux) "-module-builder"))
+    (native-inputs
+     `(("linux" ,linux)
+       ,@(package-native-inputs linux)))
+    (arguments
+     (substitute-keyword-arguments (package-arguments linux)
+      ((#:phases phases)
+       `(modify-phases ,phases
+          (replace 'build
+            (lambda _
+              (invoke "make" "modules_prepare")))
+          (delete 'strip) ; faster.
+          (replace 'install
+            (lambda* (#:key inputs outputs #:allow-other-keys)
+              (let* ((out (assoc-ref outputs "out"))
+                     (out-lib-build (string-append out "/lib/modules/build")))
+                ; TODO: Only preserve the minimum, i.e. [Kbuild], Kconfig, scripts, include, ".config".
+                (copy-recursively "." out-lib-build)
+                (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)
+                        (install-file source out-lib-build))))
+                #t)))))))))
+
+(define* (lower name
+                #:key source inputs native-inputs outputs
+                system target
+                (linux (default-linux))
+                #:allow-other-keys
+                #:rest arguments)
+  "Return a bag for NAME."
+  (define private-keywords
+    '(#:source #:target #:gcc #:kmod #:linux #:inputs #:native-inputs))
+
+  (and (not target)                               ;XXX: no cross-compilation
+       (bag
+         (name name)
+         (system system)
+         (host-inputs `(,@(if source
+                              `(("source" ,source))
+                              '())
+                        ,@inputs
+                        ,@(standard-packages)))
+         (build-inputs `(("linux" ,linux) ; for "Module.symvers".
+                         ("linux-module-builder"
+                         ,(make-linux-module-builder linux))
+                         ,@native-inputs
+                         ;; TODO: Remove "gmp", "mpfr", "mpc" since they are only needed to compile the gcc plugins.  Maybe remove "flex", "bison", "elfutils", "perl", "openssl".  That leaves very little ("bc", "gcc", "kmod").
+                         ,@(package-native-inputs linux)))
+         (outputs outputs)
+         (build linux-module-build)
+         (arguments (strip-keyword-arguments private-keywords arguments)))))
+
+(define* (linux-module-build store name inputs
+                             #:key
+                             (search-paths '())
+                             (tests? #t)
+                             (phases '(@ (guix build linux-module-build-system)
+                                         %standard-phases))
+                             (outputs '("out"))
+                             (system (%current-system))
+                             (guile #f)
+                             (imported-modules
+                              %linux-module-build-system-modules)
+                             (modules '((guix build linux-module-build-system)
+                                        (guix build utils))))
+  "Build SOURCE using LINUX, and with INPUTS."
+  (define builder
+    `(begin
+       (use-modules ,@modules)
+       (linux-module-build #:name ,name
+                     #:source ,(match (assoc-ref inputs "source")
+                                      (((? derivation? source))
+                                       (derivation->output-path source))
+                                      ((source)
+                                       source)
+                                      (source
+                                        source))
+                     #:search-paths ',(map search-path-specification->sexp
+                                           search-paths)
+                     #:phases ,phases
+                     #:system ,system
+                     #:tests? ,tests?
+                     #:outputs %outputs
+                     #: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
+                                #:system system
+                                #:inputs inputs
+                                #:modules imported-modules
+                                #:outputs outputs
+                                #:guile-for-build guile-for-build))
+
+(define linux-module-build-system
+  (build-system
+    (name 'linux-module)
+    (description "The Linux module build system")
+    (lower lower)))
+
+;;; linux-module.scm ends here
diff --git a/guix/build-system/ocaml.scm b/guix/build-system/ocaml.scm
index 07c69fac76..cbd33d9a89 100644
--- a/guix/build-system/ocaml.scm
+++ b/guix/build-system/ocaml.scm
@@ -28,9 +28,7 @@
   #:use-module (srfi srfi-1)
   #:export (%ocaml-build-system-modules
             package-with-ocaml4.01
-            package-with-ocaml4.02
             strip-ocaml4.01-variant
-            strip-ocaml4.02-variant
             default-findlib
             default-ocaml
             lower
@@ -94,14 +92,6 @@
   (let ((module (resolve-interface '(gnu packages ocaml))))
     (module-ref module 'ocaml4.01-findlib)))
 
-(define (default-ocaml4.02)
-  (let ((ocaml (resolve-interface '(gnu packages ocaml))))
-    (module-ref ocaml 'ocaml-4.02)))
-
-(define (default-ocaml4.02-findlib)
-  (let ((module (resolve-interface '(gnu packages ocaml))))
-    (module-ref module 'ocaml4.02-findlib)))
-
 (define* (package-with-explicit-ocaml ocaml findlib old-prefix new-prefix
                                        #:key variant-property)
   "Return a procedure of one argument, P.  The procedure creates a package
@@ -161,24 +151,12 @@ pre-defined variants."
                                "ocaml-" "ocaml4.01-"
                                #:variant-property 'ocaml4.01-variant))
 
-(define package-with-ocaml4.02
-  (package-with-explicit-ocaml (delay (default-ocaml4.02))
-                               (delay (default-ocaml4.02-findlib))
-                               "ocaml-" "ocaml4.02-"
-                               #:variant-property 'ocaml4.02-variant))
-
 (define (strip-ocaml4.01-variant p)
   "Remove the 'ocaml4.01-variant' property from P."
   (package
     (inherit p)
     (properties (alist-delete 'ocaml4.01-variant (package-properties p)))))
 
-(define (strip-ocaml4.02-variant p)
-  "Remove the 'ocaml4.02-variant' property from P."
-  (package
-    (inherit p)
-    (properties (alist-delete 'ocaml4.02-variant (package-properties p)))))
-
 (define* (lower name
                 #:key source inputs native-inputs outputs system target
                 (ocaml (default-ocaml))
diff --git a/guix/build/cargo-build-system.scm b/guix/build/cargo-build-system.scm
index 20087fa6c4..b68a1f90d2 100644
--- a/guix/build/cargo-build-system.scm
+++ b/guix/build/cargo-build-system.scm
@@ -1,6 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2016 David Craven <david@craven.ch>
 ;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
+;;; Copyright © 2019 Ivan Petkov <ivanppetkov@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -26,6 +27,7 @@
   #:use-module (ice-9 ftw)
   #:use-module (ice-9 format)
   #:use-module (ice-9 match)
+  #:use-module (json parser)
   #:use-module (srfi srfi-1)
   #:use-module (srfi srfi-26)
   #:export (%standard-phases
@@ -37,81 +39,86 @@
 ;;
 ;; Code:
 
-;; FIXME: Needs to be parsed from url not package name.
-(define (package-name->crate-name name)
-  "Return the crate name of NAME."
-  (match (string-split name #\-)
-    (("rust" rest ...)
-     (string-join rest "-"))
-    (_ #f)))
-
-(define* (configure #:key inputs #:allow-other-keys)
-  "Replace Cargo.toml [dependencies] section with guix inputs."
-  ;; Make sure Cargo.toml is writeable when the crate uses git-fetch.
-  (chmod "Cargo.toml" #o644)
+(define (manifest-targets)
+  "Extract all targets from the Cargo.toml manifest"
+  (let* ((port (open-input-pipe "cargo read-manifest"))
+         (data (json->scm port))
+         (targets (hash-ref data "targets" '())))
+    (close-port port)
+    targets))
+
+(define (has-executable-target?)
+  "Check if the current cargo project declares any binary targets."
+  (let* ((bin? (lambda (kind) (string=? kind "bin")))
+         (get-kinds (lambda (dep) (hash-ref dep "kind")))
+         (bin-dep? (lambda (dep) (find bin? (get-kinds dep)))))
+    (find bin-dep? (manifest-targets))))
+
+(define* (configure #:key inputs
+                    (vendor-dir "guix-vendor")
+                    #:allow-other-keys)
+  "Vendor Cargo.toml dependencies as guix inputs."
   (chmod "." #o755)
-  (if (not (file-exists? "vendor"))
-    (if (not (file-exists? "Cargo.lock"))
-      (begin
-        (substitute* "Cargo.toml"
-          ((".*32-sys.*") "
-")
-          ((".*winapi.*") "
-")
-          ((".*core-foundation.*") "
-"))
-        ;; Prepare one new directory with all the required dependencies.
-        ;; It's necessary to do this (instead of just using /gnu/store as the
-        ;; directory) because we want to hide the libraries in subdirectories
-        ;;   share/rust-source/... instead of polluting the user's profile root.
-        (mkdir "vendor")
-        (for-each
-          (match-lambda
-            ((name . path)
-             (let ((crate (package-name->crate-name name)))
-               (when (and crate path)
-                 (match (string-split (basename path) #\-)
-                   ((_ ... version)
-                    (symlink (string-append path "/share/rust-source")
-                             (string-append "vendor/" (basename path)))))))))
-          inputs)
-        ;; Configure cargo to actually use this new directory.
-        (mkdir-p ".cargo")
-        (let ((port (open-file ".cargo/config" "w" #:encoding "utf-8")))
-          (display "
+  ;; Prepare one new directory with all the required dependencies.
+  ;; It's necessary to do this (instead of just using /gnu/store as the
+  ;; directory) because we want to hide the libraries in subdirectories
+  ;; share/rust-source/... instead of polluting the user's profile root.
+  (mkdir-p vendor-dir)
+  (for-each
+    (match-lambda
+      ((name . path)
+       (let* ((rust-share (string-append path "/share/rust-source"))
+              (basepath (basename path))
+              (link-dir (string-append vendor-dir "/" basepath)))
+         (and (file-exists? rust-share)
+              ;; Gracefully handle duplicate inputs
+              (not (file-exists? link-dir))
+              (symlink rust-share link-dir)))))
+    inputs)
+  ;; Configure cargo to actually use this new directory.
+  (mkdir-p ".cargo")
+  (let ((port (open-file ".cargo/config" "w" #:encoding "utf-8")))
+    (display "
 [source.crates-io]
-registry = 'https://github.com/rust-lang/crates.io-index'
 replace-with = 'vendored-sources'
 
 [source.vendored-sources]
 directory = '" port)
-          (display (getcwd) port)
-          (display "/vendor" port)
-          (display "'
+    (display (string-append (getcwd) "/" vendor-dir) port)
+    (display "'
 " port)
-          (close-port port)))))
-    (setenv "CC" (string-append (assoc-ref inputs "gcc") "/bin/gcc"))
+    (close-port port))
 
-    ;(setenv "CARGO_HOME" "/gnu/store")
-    ; (setenv "CMAKE_C_COMPILER" cc)
+  ;; Lift restriction on any lints: a crate author may have decided to opt
+  ;; into stricter lints (e.g. #![deny(warnings)]) during their own builds
+  ;; but we don't want any build failures that could be caused later by
+  ;; upgrading the compiler for example.
+  (setenv "RUSTFLAGS" "--cap-lints allow")
+  (setenv "CC" (string-append (assoc-ref inputs "gcc") "/bin/gcc"))
   #t)
 
-(define* (build #:key (cargo-build-flags '("--release"))
+(define* (build #:key
+                skip-build?
+                (cargo-build-flags '("--release"))
                 #:allow-other-keys)
   "Build a given Cargo package."
-  (zero? (apply system* `("cargo" "build" ,@cargo-build-flags))))
+  (or skip-build?
+      (zero? (apply system* `("cargo" "build" ,@cargo-build-flags)))))
 
-(define* (check #:key tests? #:allow-other-keys)
+(define* (check #:key
+                tests?
+                (cargo-test-flags '("--release"))
+                #:allow-other-keys)
   "Run tests for a given Cargo package."
-  (if (and tests? (file-exists? "Cargo.lock"))
-      (zero? (system* "cargo" "test"))
+  (if tests?
+      (zero? (apply system* `("cargo" "test" ,@cargo-test-flags)))
       #t))
 
 (define (touch file-name)
   (call-with-output-file file-name (const #t)))
 
-(define* (install #:key inputs outputs #:allow-other-keys)
-  "Install a given Cargo package."
+(define* (install-source #:key inputs outputs #:allow-other-keys)
+  "Install the source for a given Cargo package."
   (let* ((out (assoc-ref outputs "out"))
          (src (assoc-ref inputs "source"))
          (rsrc (string-append (assoc-ref outputs "src")
@@ -120,24 +127,36 @@ directory = '" port)
     ;; Rust doesn't have a stable ABI yet. Because of this
     ;; Cargo doesn't have a search path for binaries yet.
     ;; Until this changes we are working around this by
-    ;; distributing crates as source and replacing
-    ;; references in Cargo.toml with store paths.
-    (copy-recursively "src" (string-append rsrc "/src"))
+    ;; vendoring the crates' sources by symlinking them
+    ;; to store paths.
+    (copy-recursively "." rsrc)
     (touch (string-append rsrc "/.cargo-ok"))
-    (generate-checksums rsrc src)
+    (generate-checksums rsrc "/dev/null")
     (install-file "Cargo.toml" rsrc)
-    ;; When the package includes executables we install
-    ;; it using cargo install. This fails when the crate
-    ;; doesn't contain an executable.
-    (if (file-exists? "Cargo.lock")
-        (zero? (system* "cargo" "install" "--root" out))
-        (begin
-          (mkdir out)
-          #t))))
+    #t))
+
+(define* (install #:key inputs outputs skip-build? #:allow-other-keys)
+  "Install a given Cargo package."
+  (let* ((out (assoc-ref outputs "out")))
+    (mkdir-p out)
+
+    ;; Make cargo reuse all the artifacts we just built instead
+    ;; of defaulting to making a new temp directory
+    (setenv "CARGO_TARGET_DIR" "./target")
+    ;; Force cargo to honor our .cargo/config definitions
+    ;; https://github.com/rust-lang/cargo/issues/6397
+    (setenv "CARGO_HOME" ".")
+
+    ;; Only install crates which include binary targets,
+    ;; otherwise cargo will raise an error.
+    (or skip-build?
+        (not (has-executable-target?))
+        (zero? (system* "cargo" "install" "--path" "." "--root" out)))))
 
 (define %standard-phases
   (modify-phases gnu:%standard-phases
     (delete 'bootstrap)
+    (add-before 'configure 'install-source install-source)
     (replace 'configure configure)
     (replace 'build build)
     (replace 'check check)
diff --git a/guix/build/clojure-utils.scm b/guix/build/clojure-utils.scm
index 027777b4d1..9f7334bc8d 100644
--- a/guix/build/clojure-utils.scm
+++ b/guix/build/clojure-utils.scm
@@ -215,7 +215,7 @@ results from compiling LIB."
 
 (define* (include-list\exclude-list include-list exclude-list
                                     #:key all-list)
-  "Given INCLUDE-LIST and EXCLUDE-LIST, replace all occurences of #:all by
+  "Given INCLUDE-LIST and EXCLUDE-LIST, replace all occurrences of #:all by
 slicing ALL-LIST into them and compute their list difference."
   (define (replace-#:all ls all-ls)
     (append-map (match-lambda
diff --git a/guix/build/dune-build-system.scm b/guix/build/dune-build-system.scm
index 00b0c7c406..7e2ec1e3e1 100644
--- a/guix/build/dune-build-system.scm
+++ b/guix/build/dune-build-system.scm
@@ -31,27 +31,30 @@
 ;; Code:
 
 (define* (build #:key (build-flags '()) (jbuild? #f)
-                (use-make? #f) #:allow-other-keys)
+                (use-make? #f) (package #f) #:allow-other-keys)
   "Build the given package."
   (let ((program (if jbuild? "jbuilder" "dune")))
-    (apply invoke program "build" "@install" build-flags))
+    (apply invoke program "build" "@install"
+           (append (if package (list "-p" package) '()) build-flags)))
   #t)
 
 (define* (check #:key (test-flags '()) (test-target "test") tests?
-                  (jbuild? #f) #:allow-other-keys)
+                  (jbuild? #f) (package #f) #:allow-other-keys)
   "Test the given package."
   (when tests?
     (let ((program (if jbuild? "jbuilder" "dune")))
-      (apply invoke program "runtest" test-target test-flags)))
+      (apply invoke program "runtest" test-target
+             (append (if package (list "-p" package) '()) test-flags))))
   #t)
 
 (define* (install #:key outputs (install-target "install") (jbuild? #f)
-                  #:allow-other-keys)
+                  (package #f) #:allow-other-keys)
   "Install the given package."
   (let ((out (assoc-ref outputs "out"))
         (program (if jbuild? "jbuilder" "dune")))
-    (invoke program install-target "--prefix" out "--libdir"
-            (string-append out "/lib/ocaml/site-lib")))
+    (apply invoke program install-target "--prefix" out "--libdir"
+           (string-append out "/lib/ocaml/site-lib")
+           (if package (list package) '())))
   #t)
 
 (define %standard-phases
diff --git a/guix/build/go-build-system.scm b/guix/build/go-build-system.scm
index 1a716cea77..282df19f24 100644
--- a/guix/build/go-build-system.scm
+++ b/guix/build/go-build-system.scm
@@ -42,7 +42,7 @@
 ;; structure called a 'workspace' [1].  This workspace can be found by Go via
 ;; the GOPATH environment variable.  Typically, all Go source code and compiled
 ;; objects are kept in a single workspace, but GOPATH may be a list of
-;; directories [2].  In this go-build-system we create a filesystem union of
+;; directories [2].  In this go-build-system we create a file system union of
 ;; the Go-language dependencies. Previously, we made GOPATH a list of store
 ;; directories, but stopped because Go programs started keeping references to
 ;; these directories in Go 1.11:
@@ -127,7 +127,7 @@
 ;; Code:
 
 (define* (setup-go-environment #:key inputs outputs #:allow-other-keys)
-  "Prepare a Go build environment for INPUTS and OUTPUTS.  Build a filesystem
+  "Prepare a Go build environment for INPUTS and OUTPUTS.  Build a file system
 union of INPUTS.  Export GOPATH, which helps the compiler find the source code
 of the package being built and its dependencies, and GOBIN, which determines
 where executables (\"commands\") are installed to.  This phase is sometimes used
diff --git a/guix/build/guile-build-system.scm b/guix/build/guile-build-system.scm
index 0bed049436..31f0d3d6f4 100644
--- a/guix/build/guile-build-system.scm
+++ b/guix/build/guile-build-system.scm
@@ -65,6 +65,62 @@ Return #false if it cannot be determined."
      (setenv "GUIX_LOCPATH" (string-append locales "/lib/locale"))
      #t)))
 
+(define* (invoke-each commands
+                      #:key (max-processes (current-processor-count))
+                      report-progress)
+  "Run each command in COMMANDS in a separate process, using up to
+MAX-PROCESSES processes in parallel.  Call REPORT-PROGRESS at each step.
+Raise an error if one of the processes exit with non-zero."
+  (define total
+    (length commands))
+
+  (define (wait-for-one-process)
+    (match (waitpid WAIT_ANY)
+      ((_ . status)
+       (unless (zero? (status:exit-val status))
+         (error "process failed" status)))))
+
+  (define (fork-and-run-command command)
+    (match (primitive-fork)
+      (0
+       (dynamic-wind
+         (const #t)
+         (lambda ()
+           (apply execlp command))
+         (lambda ()
+           (primitive-exit 127))))
+      (pid
+       #t)))
+
+  (let loop ((commands  commands)
+             (running   0)
+             (completed 0))
+    (match commands
+      (()
+       (or (zero? running)
+           (let ((running   (- running 1))
+                 (completed (+ completed 1)))
+             (wait-for-one-process)
+             (report-progress total completed)
+             (loop commands running completed))))
+      ((command . rest)
+       (if (< running max-processes)
+           (let ((running (+ 1 running)))
+             (fork-and-run-command command)
+             (loop rest running completed))
+           (let ((running   (- running 1))
+                 (completed (+ completed 1)))
+             (wait-for-one-process)
+             (report-progress total completed)
+             (loop commands running completed)))))))
+
+(define* (report-build-progress total completed
+                                #:optional (log-port (current-error-port)))
+  "Report that COMPLETED out of TOTAL files have been completed."
+  (format log-port "compiling...\t~5,1f% of ~d files~%" ;FIXME: i18n
+          (* 100. (/ completed total)) total)
+  (force-output log-port))
+
 (define* (build #:key outputs inputs native-inputs
                 (source-directory ".")
                 (compile-flags '())
@@ -101,24 +157,30 @@ Return #false if it cannot be determined."
                            (match (getenv "GUILE_LOAD_COMPILED_PATH")
                              (#f "")
                              (path (string-append ":" path)))))
-    (for-each (lambda (file)
-                (let* ((go (string-append go-dir
-                                          (file-sans-extension file)
-                                          ".go")))
-                  ;; Install source module.
-                  (install-file (string-append source-directory "/" file)
-                                (string-append module-dir
-                                               "/" (dirname file)))
-
-                  ;; Install and compile module.
-                  (apply invoke guild "compile" "-L" source-directory
-                         "-o" go
-                         (string-append source-directory "/" file)
-                         flags)))
-
-              ;; Arrange to strip SOURCE-DIRECTORY from file names.
-              (with-directory-excursion source-directory
-                (find-files "." scheme-file-regexp)))
+
+  (let ((source-files
+           (with-directory-excursion source-directory
+             (find-files "." scheme-file-regexp))))
+    (invoke-each
+     (map (lambda (file)
+            (cons* guild
+                   "guild" "compile"
+                   "-L" source-directory
+                   "-o" (string-append go-dir
+                                       (file-sans-extension file)
+                                       ".go")
+                   (string-append source-directory "/" file)
+                   flags))
+          source-files)
+     #:max-processes (parallel-job-count)
+     #:report-progress report-build-progress)
+
+    (for-each
+     (lambda (file)
+         (install-file (string-append source-directory "/" file)
+                       (string-append module-dir
+                                      "/" (dirname file))))
+     source-files))
     #t))
 
 (define* (install-documentation #:key outputs
diff --git a/guix/build/linux-module-build-system.scm b/guix/build/linux-module-build-system.scm
new file mode 100644
index 0000000000..cd76df2de7
--- /dev/null
+++ b/guix/build/linux-module-build-system.scm
@@ -0,0 +1,91 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2019 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 linux-module-build-system)
+  #:use-module ((guix build gnu-build-system) #:prefix gnu:)
+  #:use-module (guix build utils)
+  #:use-module (ice-9 ftw)
+  #:use-module (ice-9 match)
+  #:use-module (srfi srfi-1)
+  #:use-module (srfi srfi-26)
+  #:export (%standard-phases
+            linux-module-build))
+
+;; Commentary:
+;;
+;; Builder-side code of linux-module build.
+;;
+;; Code:
+
+;; Copied from make-linux-libre's "configure" phase.
+(define* (configure #:key inputs target #:allow-other-keys)
+  (setenv "KCONFIG_NOTIMESTAMP" "1")
+  (setenv "KBUILD_BUILD_TIMESTAMP" (getenv "SOURCE_DATE_EPOCH"))
+  ;(let ((arch ,(system->linux-architecture
+  ;                         (or (%current-target-system)
+  ;                             (%current-system)))))
+  ;  (setenv "ARCH" arch)
+  ;  (format #t "`ARCH' set to `~a'~%" (getenv "ARCH")))
+  (when target
+    (setenv "CROSS_COMPILE" (string-append target "-"))
+    (format #t "`CROSS_COMPILE' set to `~a'~%"
+               (getenv "CROSS_COMPILE")))
+  ; TODO: (setenv "EXTRA_VERSION" ,extra-version)
+  ; TODO: kernel ".config".
+  #t)
+
+(define* (build #:key inputs make-flags #:allow-other-keys)
+  (apply invoke "make" "-C"
+         (string-append (assoc-ref inputs "linux-module-builder")
+                        "/lib/modules/build")
+         (string-append "M=" (getcwd))
+         (or make-flags '())))
+
+;; This block was copied from make-linux-libre--only took the "modules_install"
+;; part.
+(define* (install #:key inputs native-inputs outputs #:allow-other-keys)
+  (let* ((out (assoc-ref outputs "out"))
+         (moddir (string-append out "/lib/modules"))
+         (kmod (assoc-ref (or native-inputs inputs) "kmod")))
+    ;; Install kernel modules
+    (mkdir-p moddir)
+    (invoke "make" "-C"
+            (string-append (assoc-ref inputs "linux-module-builder")
+                           "/lib/modules/build")
+            (string-append "M=" (getcwd))
+            (string-append "DEPMOD=" kmod "/bin/depmod")
+            (string-append "MODULE_DIR=" moddir)
+            (string-append "INSTALL_PATH=" out)
+            (string-append "INSTALL_MOD_PATH=" out)
+            "INSTALL_MOD_STRIP=1"
+            "modules_install")))
+
+(define %standard-phases
+  (modify-phases gnu:%standard-phases
+    (replace 'configure configure)
+    (replace 'build build)
+    (replace 'install install)))
+
+(define* (linux-module-build #:key inputs (phases %standard-phases)
+                       #:allow-other-keys #:rest args)
+  "Build the given package, applying all of PHASES in order, with a Linux kernel in attendance."
+  (apply gnu:gnu-build
+         #:inputs inputs #:phases phases
+         args))
+
+;;; linux-module-build-system.scm ends here
diff --git a/guix/build/po.scm b/guix/build/po.scm
new file mode 100644
index 0000000000..47ff67541c
--- /dev/null
+++ b/guix/build/po.scm
@@ -0,0 +1,69 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2019 Julien Lepiller <julien@lepiller.eu>
+;;;
+;;; 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 po)
+  #:use-module (ice-9 match)
+  #:use-module (ice-9 peg)
+  #:use-module (ice-9 regex)
+  #:use-module (ice-9 textual-ports)
+  #:export (read-po-file))
+
+;; A small parser for po files
+(define-peg-pattern po-file body (* (or comment entry whitespace)))
+(define-peg-pattern whitespace body (or " " "\t" "\n"))
+(define-peg-pattern comment-chr body (range #\space #\頋))
+(define-peg-pattern comment none (and "#" (* comment-chr) "\n"))
+(define-peg-pattern entry all
+  (and (ignore (* whitespace)) (ignore "msgid ") msgid
+       (ignore (* whitespace)) (ignore "msgstr ") msgstr))
+(define-peg-pattern escape body (or "\\\\" "\\\"" "\\n"))
+(define-peg-pattern str-chr body (or " " "!" (and (ignore "\\") "\"")
+                                     "\\n" (and (ignore "\\") "\\")
+                                     (range #\# #\頋)))
+(define-peg-pattern msgid all content)
+(define-peg-pattern msgstr all content)
+(define-peg-pattern content body
+  (and (ignore "\"") (* str-chr) (ignore "\"")
+       (? (and (ignore (* whitespace)) content))))
+
+(define (parse-tree->assoc parse-tree)
+  "Converts a po PARSE-TREE to an association list."
+  (define regex (make-regexp "\\\\n"))
+  (match parse-tree
+    ('() '())
+    ((entry parse-tree ...)
+     (match entry
+       ((? string? entry)
+        (parse-tree->assoc parse-tree))
+       ;; empty msgid
+       (('entry ('msgid ('msgstr msgstr)))
+        (parse-tree->assoc parse-tree))
+       ;; empty msgstr
+       (('entry ('msgid msgid) 'msgstr)
+        (parse-tree->assoc parse-tree))
+       (('entry ('msgid msgid) ('msgstr msgstr))
+        (acons (regexp-substitute/global #f regex msgid 'pre "\n" 'post)
+               (regexp-substitute/global #f regex msgstr 'pre "\n" 'post)
+               (parse-tree->assoc parse-tree)))))))
+
+(define (read-po-file port)
+  "Read a .po file from PORT and return an alist of msgid and msgstr."
+  (let ((tree (peg:tree (match-pattern
+                          po-file
+                          (get-string-all port)))))
+    (parse-tree->assoc tree)))
diff --git a/guix/build/ruby-build-system.scm b/guix/build/ruby-build-system.scm
index ba0de1259e..63c94765f7 100644
--- a/guix/build/ruby-build-system.scm
+++ b/guix/build/ruby-build-system.scm
@@ -144,6 +144,8 @@ GEM-FLAGS are passed to the 'gem' invokation, if present."
     (setenv "GEM_VENDOR" vendor-dir)
 
     (or (zero?
+          ;; 'zero? system*' allows the custom error handling to function as
+          ;; expected, while 'invoke' raises its own exception.
          (apply system* "gem" "install" gem-file
                 "--verbose"
                 "--local" "--ignore-dependencies" "--vendor"
diff --git a/guix/build/syscalls.scm b/guix/build/syscalls.scm
index 66d63a2931..749616ceb1 100644
--- a/guix/build/syscalls.scm
+++ b/guix/build/syscalls.scm
@@ -39,6 +39,7 @@
             MS_NODEV
             MS_NOEXEC
             MS_REMOUNT
+            MS_NOATIME
             MS_BIND
             MS_MOVE
             MS_STRICTATIME
@@ -451,6 +452,7 @@ the returned procedure is called."
 (define MS_NODEV              4)
 (define MS_NOEXEC             8)
 (define MS_REMOUNT           32)
+(define MS_NOATIME         1024)
 (define MS_BIND            4096)
 (define MS_MOVE            8192)
 (define MS_STRICTATIME 16777216)
@@ -690,7 +692,7 @@ mounted at FILE."
 
 (define* (device-in-use? device)
   "Return #t if the block DEVICE is in use, #f otherwise. This is inspired
-from fdisk_device_is_used function of util-linux. This is particulary useful
+from fdisk_device_is_used function of util-linux. This is particularly useful
 for devices that do not appear in /proc/self/mounts like overlayfs lowerdir
 backend device."
   (let*-values (((fd)      (open-fdes device O_RDONLY))
diff --git a/guix/channels.scm b/guix/channels.scm
index 9658cf9393..e93879e1b4 100644
--- a/guix/channels.scm
+++ b/guix/channels.scm
@@ -52,6 +52,7 @@
             channel-location
 
             %default-channels
+            guix-channel?
 
             channel-instance?
             channel-instance-channel
diff --git a/guix/colors.scm b/guix/colors.scm
new file mode 100644
index 0000000000..7949cf5763
--- /dev/null
+++ b/guix/colors.scm
@@ -0,0 +1,188 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2013, 2014 Free Software Foundation, Inc.
+;;; Copyright © 2018 Sahithi Yarlagadda <sahi@swecha.net>
+;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2017, 2018, 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 (guix colors)
+  #:use-module (guix memoization)
+  #:use-module (srfi srfi-1)
+  #:use-module (srfi srfi-9)
+  #:use-module (srfi srfi-9 gnu)
+  #:use-module (ice-9 match)
+  #:use-module (ice-9 regex)
+  #:export (color
+            color?
+
+            colorize-string
+            highlight
+            color-rules
+            color-output?
+            isatty?*))
+
+;;; Commentary:
+;;;
+;;; This module provides tools to produce colored output using ANSI escapes.
+;;;
+;;; Code:
+
+;; Record type for "colors", which are actually lists of color attributes.
+(define-record-type <color>
+  (make-color symbols ansi)
+  color?
+  (symbols  color-symbols)
+  (ansi     color-ansi))
+
+(define (print-color color port)
+  (format port "#<color ~a>"
+          (string-join (map symbol->string
+                            (color-symbols color)))))
+
+(set-record-type-printer! <color> print-color)
+
+(define-syntax define-color-table
+  (syntax-rules ()
+    "Define NAME as a macro that builds a list of color attributes."
+    ((_ name (color escape) ...)
+     (begin
+       (define-syntax color-codes
+         (syntax-rules (color ...)
+           ((_)
+            '())
+           ((_ color rest (... ...))
+            `(escape ,@(color-codes rest (... ...))))
+           ...))
+
+       (define-syntax-rule (name colors (... ...))
+         "Return a list of color attributes that can be passed to
+'colorize-string'."
+         (make-color '(colors (... ...))
+                     (color-codes->ansi (color-codes colors (... ...)))))))))
+
+(define-color-table color
+  (CLEAR        "0")
+  (RESET        "0")
+  (BOLD         "1")
+  (DARK         "2")
+  (UNDERLINE    "4")
+  (UNDERSCORE   "4")
+  (BLINK        "5")
+  (REVERSE      "6")
+  (CONCEALED    "8")
+  (BLACK       "30")
+  (RED         "31")
+  (GREEN       "32")
+  (YELLOW      "33")
+  (BLUE        "34")
+  (MAGENTA     "35")
+  (CYAN        "36")
+  (WHITE       "37")
+  (ON-BLACK    "40")
+  (ON-RED      "41")
+  (ON-GREEN    "42")
+  (ON-YELLOW   "43")
+  (ON-BLUE     "44")
+  (ON-MAGENTA  "45")
+  (ON-CYAN     "46")
+  (ON-WHITE    "47"))
+
+(define (color-codes->ansi codes)
+  "Convert CODES, a list of color attribute codes, to a ANSI escape string."
+  (match codes
+    (()
+     "")
+    (_
+     (string-append (string #\esc #\[)
+                    (string-join codes ";" 'infix)
+                    "m"))))
+
+(define %reset
+  (color RESET))
+
+(define (colorize-string str color)
+  "Return a copy of STR colorized using ANSI escape sequences according to
+COLOR.  At the end of the returned string, the color attributes are reset such
+that subsequent output will not have any colors in effect."
+  (string-append (color-ansi color)
+                 str
+                 (color-ansi %reset)))
+
+(define isatty?*
+  (mlambdaq (port)
+    "Return true if PORT is a tty.  Memoize the result."
+    (isatty? port)))
+
+(define (color-output? port)
+  "Return true if we should write colored output to PORT."
+  (and (not (getenv "INSIDE_EMACS"))
+       (not (getenv "NO_COLOR"))
+       (isatty?* port)))
+
+(define %highlight-color (color BOLD))
+
+(define* (highlight str #:optional (port (current-output-port)))
+  "Return STR with extra ANSI color attributes to highlight it if PORT
+supports it."
+  (if (color-output? port)
+      (colorize-string str %highlight-color)
+      str))
+
+(define (colorize-matches rules)
+  "Return a procedure that, when passed a string, returns that string
+colorized according to RULES.  RULES must be a list of tuples like:
+
+  (REGEXP COLOR1 COLOR2 ...)
+
+where COLOR1 specifies how to colorize the first submatch of REGEXP, and so
+on."
+  (lambda (str)
+    (if (string-index str #\nul)
+        str
+        (let loop ((rules rules))
+          (match rules
+            (()
+             str)
+            (((regexp . colors) . rest)
+             (match (regexp-exec regexp str)
+               (#f (loop rest))
+               (m  (let loop ((n 1)
+                              (colors colors)
+                              (result (list (match:prefix m))))
+                     (match colors
+                       (()
+                        (string-concatenate-reverse
+                         (cons (match:suffix m) result)))
+                       ((first . tail)
+                        (loop (+ n 1)
+                              tail
+                              (cons (colorize-string (match:substring m n)
+                                                     first)
+                                    result)))))))))))))
+
+(define-syntax color-rules
+  (syntax-rules ()
+    "Return a procedure that colorizes the string it is passed according to
+the given rules.  Each rule has the form:
+
+  (REGEXP COLOR1 COLOR2 ...)
+
+where COLOR1 specifies how to colorize the first submatch of REGEXP, and so
+on."
+    ((_ (regexp colors ...) ...)
+     (colorize-matches `((,(make-regexp regexp) ,(color colors) ...)
+                         ...)))))
diff --git a/guix/config.scm.in b/guix/config.scm.in
index d2ec9921c6..247b15ed81 100644
--- a/guix/config.scm.in
+++ b/guix/config.scm.in
@@ -33,7 +33,6 @@
             %config-directory
 
             %system
-            %libgcrypt
             %libz
             %gzip
             %bzip2
@@ -88,9 +87,6 @@
 (define %system
   "@guix_system@")
 
-(define %libgcrypt
-  "@LIBGCRYPT@")
-
 (define %libz
   "@LIBZ@")
 
diff --git a/guix/derivations.scm b/guix/derivations.scm
index fb2fa177be..7a5c3bca94 100644
--- a/guix/derivations.scm
+++ b/guix/derivations.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, 2019 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2016, 2017 Mathieu Lirzin <mthl@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -344,7 +344,8 @@ OUTPUTS of DRV and not already available in STORE, recursively, and the list
 of required store paths that can be substituted.  SUBSTITUTABLE-INFO must be a
 one-argument procedure similar to that returned by 'substitution-oracle'."
   (define built?
-    (cut valid-path? store <>))
+    (mlambda (item)
+      (valid-path? store item)))
 
   (define input-built?
     (compose (cut any built? <>) derivation-input-output-paths))
diff --git a/guix/download.scm b/guix/download.scm
index 8865777818..11984cf671 100644
--- a/guix/download.scm
+++ b/guix/download.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, 2019 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2013, 2014, 2015 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
 ;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
@@ -415,11 +415,7 @@
               (object->string %content-addressed-mirrors)))
 
 (define built-in-builders*
-  (let ((proc (store-lift built-in-builders)))
-    (lambda ()
-      "Return, as a monadic value, the list of built-in builders supported by
-the daemon; cache the return value."
-      (mcached (proc) built-in-builders))))
+  (store-lift built-in-builders))
 
 (define* (built-in-download file-name url
                             #:key system hash-algo hash
diff --git a/guix/gexp.scm b/guix/gexp.scm
index 5b5b064b59..4f2adba90a 100644
--- a/guix/gexp.scm
+++ b/guix/gexp.scm
@@ -634,6 +634,11 @@ names and file names suitable for the #:allowed-references argument to
                            local-build? (substitutable? #t)
                            (properties '())
 
+                           ;; TODO: This parameter is transitional; it's here
+                           ;; to avoid a full rebuild.  Remove it on the next
+                           ;; rebuild cycle.
+                           (pre-load-modules? #t)
+
                            deprecation-warnings
                            (script-name (string-append name "-builder")))
   "Return a derivation NAME that runs EXP (a gexp) with GUILE-FOR-BUILD (a
@@ -738,6 +743,8 @@ The other arguments are as for 'derivation'."
                                                        #:module-path module-path
                                                        #:extensions extensions
                                                        #:guile guile-for-build
+                                                       #:pre-load-modules?
+                                                       pre-load-modules?
                                                        #:deprecation-warnings
                                                        deprecation-warnings)
                                      (return #f)))
@@ -1213,7 +1220,11 @@ last one is created from the given <scheme-file> object."
                            (guile (%guile-for-build))
                            (module-path %load-path)
                            (extensions '())
-                           (deprecation-warnings #f))
+                           (deprecation-warnings #f)
+
+                           ;; TODO: This flag is here to prevent a full
+                           ;; rebuild.  Remove it on the next rebuild cycle.
+                           (pre-load-modules? #t))
   "Return a derivation that builds a tree containing the `.go' files
 corresponding to MODULES.  All the MODULES are built in a context where
 they can refer to each other."
@@ -1246,7 +1257,12 @@ they can refer to each other."
                (let* ((base   (basename entry ".scm"))
                       (output (string-append output "/" base ".go")))
                  (format #t "[~2@a/~2@a] Compiling '~a'...~%"
-                         (+ 1 processed) (ungexp total) entry)
+                         (+ 1 processed
+                              (ungexp-splicing (if pre-load-modules?
+                                                   (gexp ((ungexp total)))
+                                                   (gexp ()))))
+                         (ungexp (* total (if pre-load-modules? 2 1)))
+                         entry)
                  (compile-file entry
                                #:output-file output
                                #:opts %auto-compilation-options)
@@ -1293,6 +1309,33 @@ they can refer to each other."
 
          (mkdir (ungexp output))
          (chdir (ungexp modules))
+
+         (ungexp-splicing
+          (if pre-load-modules?
+              (gexp ((define* (load-from-directory directory
+                                                   #:optional (loaded 0))
+                       "Load all the source files found in DIRECTORY."
+                       ;; XXX: This works around <https://bugs.gnu.org/15602>.
+                       (let ((entries (map (cut string-append directory "/" <>)
+                                           (scandir directory regular?))))
+                         (fold (lambda (file loaded)
+                                 (if (file-is-directory? file)
+                                     (load-from-directory file loaded)
+                                     (begin
+                                       (format #t "[~2@a/~2@a] Loading '~a'...~%"
+                                               (+ 1 loaded)
+                                               (ungexp (* 2 total))
+                                               file)
+                                       (save-module-excursion
+                                        (lambda ()
+                                          (primitive-load file)))
+                                       (+ 1 loaded))))
+                               loaded
+                               entries)))
+
+                     (load-from-directory ".")))
+              (gexp ())))
+
          (process-directory "." (ungexp output) 0))))
 
     ;; TODO: Pass MODULES as an environment variable.
diff --git a/guix/import/opam.scm b/guix/import/opam.scm
index 36028a01d6..5dcc0e97a3 100644
--- a/guix/import/opam.scm
+++ b/guix/import/opam.scm
@@ -58,7 +58,12 @@
 (define-peg-pattern weird-record all (and key (* SP) dict))
 (define-peg-pattern key body (+ (or (range #\a #\z) "-")))
 (define-peg-pattern value body (and (or conditional-value ground-value operator) (* SP)))
-(define-peg-pattern ground-value body (and (or multiline-string string-pat list-pat var) (* SP)))
+(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)
+      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))
 (define-peg-pattern list-pat all (and (ignore "[") (* SP) (* (and value (* SP))) (ignore "]")))
@@ -80,7 +85,8 @@
 (define-peg-pattern condition-form2 body
                     (and (* SP) (or condition-greater-or-equal condition-greater
                                     condition-lower-or-equal condition-lower
-                                    condition-neq condition-eq condition-content) (* SP)))
+                                    condition-neq condition-eq condition-not
+                                    condition-content) (* SP)))
 
 ;(define-peg-pattern condition-operator all (and (ignore operator) (* SP) condition-string))
 (define-peg-pattern condition-greater-or-equal all (and (ignore (and ">" "=")) (* SP) condition-string))
@@ -91,10 +97,12 @@
 (define-peg-pattern condition-or all (and condition-form2 (* SP) (ignore "|") (* SP) condition-form))
 (define-peg-pattern condition-eq all (and (? condition-content) (* SP) (ignore "=") (* SP) condition-content))
 (define-peg-pattern condition-neq all (and (? condition-content) (* SP) (ignore (and "!" "=")) (* SP) condition-content))
-(define-peg-pattern condition-content body (or condition-string condition-var))
+(define-peg-pattern condition-not all (and (ignore (and "!")) (* SP) condition-content))
+(define-peg-pattern condition-content body (or condition-paren condition-string condition-var))
 (define-peg-pattern condition-content2 body (and condition-content (* SP) (not-followed-by (or "&" "=" "!"))))
+(define-peg-pattern condition-paren body (and "(" condition-form ")"))
 (define-peg-pattern condition-string all (and QUOTE (* STRCHR) QUOTE))
-(define-peg-pattern condition-var all (+ (or (range #\a #\z) "-")))
+(define-peg-pattern condition-var all (+ (or (range #\a #\z) "-" ":")))
 
 (define (get-opam-repository)
   "Update or fetch the latest version of the opam repository and return the
@@ -171,18 +179,24 @@ path to the repository."
 (define (dependency->input dependency)
   (match dependency
     (('string-pat str) str)
+    ;; Arbitrary select the first dependency
+    (('choice-pat choice ...) (dependency->input (car choice)))
     (('conditional-value val condition)
      (if (native? condition) "" (dependency->input val)))))
 
 (define (dependency->native-input dependency)
   (match dependency
     (('string-pat str) "")
+    ;; Arbitrary select the first dependency
+    (('choice-pat choice ...) (dependency->input (car choice)))
     (('conditional-value val condition)
      (if (native? condition) (dependency->input val) ""))))
 
 (define (dependency->name dependency)
   (match dependency
     (('string-pat str) str)
+    ;; Arbitrary select the first dependency
+    (('choice-pat choice ...) (dependency->input (car choice)))
     (('conditional-value val condition)
      (dependency->name val))))
 
@@ -233,39 +247,55 @@ path to the repository."
              (url-dict (metadata-ref opam-content "url"))
              (source-url (metadata-ref url-dict "src"))
              (requirements (metadata-ref opam-content "depends"))
-             (dependencies (dependency-list->names requirements))
+             (dependencies (filter
+                              (lambda (name)
+                                (not (member name '("dune" "jbuilder"))))
+                              (dependency-list->names requirements)))
+             (native-dependencies (depends->native-inputs requirements))
              (inputs (dependency-list->inputs (depends->inputs requirements)))
-             (native-inputs (dependency-list->inputs (depends->native-inputs requirements))))
-        (call-with-temporary-output-file
-          (lambda (temp port)
-            (and (url-fetch source-url temp)
-                 (values
-                  `(package
-                     (name ,(ocaml-name->guix-name name))
-                     (version ,(if (string-prefix? "v" version)
-                                 (substring version 1)
-                                 version))
-                     (source
-                       (origin
-                         (method url-fetch)
-                         (uri ,source-url)
-                         (sha256 (base32 ,(guix-hash-url temp)))))
-                     (build-system ocaml-build-system)
-                     ,@(if (null? inputs)
-                         '()
-                         `((inputs ,(list 'quasiquote inputs))))
-                     ,@(if (null? native-inputs)
-                         '()
-                         `((native-inputs ,(list 'quasiquote native-inputs))))
-                     ,@(if (equal? name (guix-name->opam-name (ocaml-name->guix-name name)))
-                         '()
-                         `((properties
-                             ,(list 'quasiquote `((upstream-name . ,name))))))
-                     (home-page ,(metadata-ref opam-content "homepage"))
-                     (synopsis ,(metadata-ref opam-content "synopsis"))
-                     (description ,(metadata-ref opam-content "description"))
-                     (license #f))
-                  dependencies))))))
+             (native-inputs (dependency-list->inputs
+                              ;; Do not add dune nor jbuilder since they are
+                              ;; implicit inputs of the dune-build-system.
+                              (filter
+                                (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" native-dependencies)
+                        (member "jbuilder" native-dependencies))))
+          (call-with-temporary-output-file
+            (lambda (temp port)
+              (and (url-fetch source-url temp)
+                   (values
+                    `(package
+                       (name ,(ocaml-name->guix-name name))
+                       (version ,(if (string-prefix? "v" version)
+                                   (substring version 1)
+                                   version))
+                       (source
+                         (origin
+                           (method url-fetch)
+                           (uri ,source-url)
+                           (sha256 (base32 ,(guix-hash-url temp)))))
+                       (build-system ,(if use-dune?
+                                          'dune-build-system
+                                          'ocaml-build-system))
+                       ,@(if (null? inputs)
+                           '()
+                           `((inputs ,(list 'quasiquote inputs))))
+                       ,@(if (null? native-inputs)
+                           '()
+                           `((native-inputs ,(list 'quasiquote native-inputs))))
+                       ,@(if (equal? name (guix-name->opam-name (ocaml-name->guix-name name)))
+                           '()
+                           `((properties
+                               ,(list 'quasiquote `((upstream-name . ,name))))))
+                       (home-page ,(metadata-ref opam-content "homepage"))
+                       (synopsis ,(metadata-ref opam-content "synopsis"))
+                       (description ,(metadata-ref opam-content "description"))
+                       (license #f))
+                    dependencies)))))))
 
 (define (opam-recursive-import package-name)
   (recursive-import package-name #f
diff --git a/guix/licenses.scm b/guix/licenses.scm
index 676e71acdb..65d9c3da13 100644
--- a/guix/licenses.scm
+++ b/guix/licenses.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2012, 2014, 2015, 2017 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2012, 2014, 2015, 2017, 2019 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2013, 2015 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2012, 2013 Nikita Karetnikov <nikita@karetnikov.org>
 ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
@@ -38,7 +38,6 @@
             boost1.0
             bsd-2 bsd-3 bsd-4
             non-copyleft
-            bsd-style                             ;deprecated!
             cc0
             cc-by2.0 cc-by3.0 cc-by4.0
             cc-by-sa2.0 cc-by-sa3.0 cc-by-sa4.0
@@ -65,7 +64,7 @@
             imlib2
             ipa
             knuth
-            lgpl2.0 lgpl2.0+ lgpl2.1 lgpl2.1+ lgpl3 lgpl3+
+            lgpl2.0 lgpl2.0+ lgpl2.1 lgpl2.1+ lgpl3 lgpl3+ llgpl
             lppl lppl1.0+ lppl1.1+ lppl1.2 lppl1.2+
             lppl1.3 lppl1.3+
             lppl1.3a lppl1.3a+
@@ -170,12 +169,6 @@ at URI, which may be a file:// URI pointing the package's tree."
             "Check the URI for details.  "
             comment)))
 
-(define bsd-style
-  ;; This alias is kept for backward-compatibility.  Do not use it for new
-  ;; packages: it is ambiguous, as rightfully explained at
-  ;; <http://www.gnu.org/philosophy/words-to-avoid.html#BSD-style>.
-  non-copyleft)
-
 (define cc0
   (license "CC0"
            "http://directory.fsf.org/wiki/License:CC0"
@@ -417,6 +410,11 @@ at URI, which may be a file:// URI pointing the package's tree."
            "https://www.gnu.org/licenses/lgpl.html"
            "https://www.gnu.org/licenses/license-list#LGPLv3"))
 
+(define llgpl
+  (license "LLGPL"
+           "https://opensource.franz.com/preamble.html"
+           "Lisp Lesser General Public License"))
+
 (define lppl
   (license "LPPL (any version)"
            "https://www.latex-project.org/lppl/lppl-1-0/"
diff --git a/guix/packages.scm b/guix/packages.scm
index a961dc3973..9cd4cbc416 100644
--- a/guix/packages.scm
+++ b/guix/packages.scm
@@ -48,6 +48,7 @@
                search-path-specification)         ;for convenience
   #:export (origin
             origin?
+            this-origin
             origin-uri
             origin-method
             origin-sha256
@@ -63,6 +64,7 @@
 
             package
             package?
+            this-package
             package-name
             package-upstream-name
             package-version
@@ -82,7 +84,6 @@
             package-license
             package-home-page
             package-supported-systems
-            package-maintainers
             package-properties
             package-location
             hidden-package
@@ -156,6 +157,7 @@
 (define-record-type* <origin>
   origin make-origin
   origin?
+  this-origin
   (uri       origin-uri)                          ; string
   (method    origin-method)                       ; procedure
   (sha256    origin-sha256)                       ; bytevector
@@ -247,6 +249,7 @@ name of its URI."
 (define-record-type* <package>
   package make-package
   package?
+  this-package
   (name   package-name)                   ; string
   (version package-version)               ; string
   (source package-source)                 ; <origin> instance
@@ -260,9 +263,6 @@ name of its URI."
                      (default '()) (thunked))
   (native-inputs package-native-inputs    ; native input packages/derivations
                  (default '()) (thunked))
-  (self-native-input? package-self-native-input?  ; whether to use itself as
-                                                  ; a native input when cross-
-                      (default #f))               ; compiling
 
   (outputs package-outputs                ; list of strings
            (default '("out")))
@@ -285,7 +285,6 @@ name of its URI."
   (home-page package-home-page)
   (supported-systems package-supported-systems    ; list of strings
                      (default %supported-systems))
-  (maintainers package-maintainers (default '()))
 
   (properties package-properties (default '()))   ; alist for anything else
 
@@ -643,6 +642,9 @@ specifies modules in scope when evaluating SNIPPET."
 
     (let ((name (tarxz-name original-file-name)))
       (gexp->derivation name build
+                        ;; TODO: Remove this on the next rebuild cycle.
+                        #:pre-load-modules? #f
+
                         #:graft? #f
                         #:system system
                         #:deprecation-warnings #t ;to avoid a rebuild
@@ -1027,9 +1029,10 @@ and return it."
             (match (if graft?
                        (or (package-replacement package) package)
                        package)
-              (($ <package> name version source build-system
-                            args inputs propagated-inputs native-inputs
-                            self-native-input? outputs)
+              ((and self
+                    ($ <package> name version source build-system
+                                 args inputs propagated-inputs native-inputs
+                                 outputs))
                ;; Even though we prefer to use "@" to separate the package
                ;; name from the package version in various user-facing parts
                ;; of Guix, checkStoreName (in nix/libstore/store-api.cc)
@@ -1038,15 +1041,11 @@ and return it."
                              #:system system
                              #:target target
                              #:source source
-                             #:inputs (append (inputs)
-                                              (propagated-inputs))
+                             #:inputs (append (inputs self)
+                                              (propagated-inputs self))
                              #:outputs outputs
-                             #:native-inputs `(,@(if (and target
-                                                          self-native-input?)
-                                                     `(("self" ,package))
-                                                     '())
-                                               ,@(native-inputs))
-                             #:arguments (args))
+                             #:native-inputs (native-inputs self)
+                             #:arguments (args self))
                    (raise (if target
                               (condition
                                (&package-cross-build-system-error
diff --git a/guix/profiles.scm b/guix/profiles.scm
index 6564526aee..dfc9ba1ca0 100644
--- a/guix/profiles.scm
+++ b/guix/profiles.scm
@@ -118,6 +118,7 @@
             profile-search-paths
 
             generation-number
+            generation-profile
             generation-numbers
             profile-generations
             relative-generation-spec->number
@@ -1552,6 +1553,20 @@ already effective."
              (compose string->number (cut match:substring <> 1)))
       0))
 
+(define %profile-generation-rx
+  ;; Regexp that matches profile generation.
+  (make-regexp "(.*)-([0-9]+)-link$"))
+
+(define (generation-profile file)
+  "If FILE is a profile generation GC root such as \"guix-profile-42-link\",
+return its corresponding profile---e.g., \"guix-profile\".  Otherwise return
+#f."
+  (match (regexp-exec %profile-generation-rx file)
+    (#f #f)
+    (m  (let ((profile (match:substring m 1)))
+          (and (file-exists? (string-append profile "/manifest"))
+               profile)))))
+
 (define (generation-numbers profile)
   "Return the sorted list of generation numbers of PROFILE, or '(0) if no
 former profiles were found."
diff --git a/guix/records.scm b/guix/records.scm
index 0649c90ea3..99507dc384 100644
--- a/guix/records.scm
+++ b/guix/records.scm
@@ -25,6 +25,8 @@
   #:use-module (ice-9 regex)
   #:use-module (ice-9 rdelim)
   #:export (define-record-type*
+            this-record
+
             alist->record
             object->fields
             recutils->alist
@@ -93,6 +95,17 @@ interface\" (ABI) for TYPE is equal to COOKIE."
            (()
             #t)))))))
 
+(define-syntax-parameter this-record
+  (lambda (s)
+    "Return the record being defined.  This macro may only be used in the
+context of the definition of a thunked field."
+    (syntax-case s ()
+      (id
+       (identifier? #'id)
+       (syntax-violation 'this-record
+                         "cannot be used outside of a record instantiation"
+                         #'id)))))
+
 (define-syntax make-syntactic-constructor
   (syntax-rules ()
     "Make the syntactic constructor NAME for TYPE, that calls CTOR, and
@@ -105,6 +118,7 @@ of TYPE matches the expansion-time ABI."
     ((_ type name ctor (expected ...)
         #:abi-cookie abi-cookie
         #:thunked thunked
+        #:this-identifier this-identifier
         #:delayed delayed
         #:innate innate
         #:defaults defaults)
@@ -148,7 +162,14 @@ of TYPE matches the expansion-time ABI."
 
          (define (wrap-field-value f value)
            (cond ((thunked-field? f)
-                  #`(lambda () #,value))
+                  #`(lambda (x)
+                      (syntax-parameterize ((#,this-identifier
+                                             (lambda (s)
+                                               (syntax-case s ()
+                                                 (id
+                                                  (identifier? #'id)
+                                                  #'x)))))
+                        #,value)))
                  ((delayed-field? f)
                   #`(delay #,value))
                  (else value)))
@@ -234,6 +255,7 @@ may look like this:
 
   (define-record-type* <thing> thing make-thing
     thing?
+    this-thing
     (name  thing-name (default \"chbouib\"))
     (port  thing-port
            (default (current-output-port)) (thunked))
@@ -253,7 +275,8 @@ default value specified in the 'define-record-type*' form is used:
 
 The 'port' field is \"thunked\", meaning that calls like '(thing-port x)' will
 actually compute the field's value in the current dynamic extent, which is
-useful when referring to fluids in a field's value.
+useful when referring to fluids in a field's value.  Furthermore, that thunk
+can access the record it belongs to via the 'this-thing' identifier.
 
 A field can also be marked as \"delayed\" instead of \"thunked\", in which
 case its value is effectively wrapped in a (delay …) form.
@@ -308,7 +331,7 @@ inherited."
          (with-syntax ((real-get (wrapped-field-accessor-name field)))
            #'(define-inlinable (get x)
                ;; The real value of that field is a thunk, so call it.
-               ((real-get x)))))))
+               ((real-get x) x))))))
 
     (define (delayed-field-accessor-definition field)
       ;; Return the real accessor for FIELD, which is assumed to be a
@@ -332,7 +355,9 @@ inherited."
 
     (syntax-case s ()
       ((_ type syntactic-ctor ctor pred
+          this-identifier
           (field get properties ...) ...)
+       (identifier? #'this-identifier)
        (let* ((field-spec #'((field get properties ...) ...))
               (thunked    (filter-map thunked-field? field-spec))
               (delayed    (filter-map delayed-field? field-spec))
@@ -361,15 +386,36 @@ inherited."
                  field-spec* ...)
                (define #,(current-abi-identifier #'type)
                  #,cookie)
+
+               #,@(if (free-identifier=? #'this-identifier #'this-record)
+                      #'()
+                      #'((define-syntax-parameter this-identifier
+                           (lambda (s)
+                             "Return the record being defined.  This macro may
+only be used in the context of the definition of a thunked field."
+                             (syntax-case s ()
+                               (id
+                                (identifier? #'id)
+                                (syntax-violation 'this-identifier
+                                                  "cannot be used outside \
+of a record instantiation"
+                                                  #'id)))))))
                thunked-field-accessor ...
                delayed-field-accessor ...
                (make-syntactic-constructor type syntactic-ctor ctor
                                            (field ...)
                                            #:abi-cookie #,cookie
                                            #:thunked #,thunked
+                                           #:this-identifier #'this-identifier
                                            #:delayed #,delayed
                                            #:innate #,innate
-                                           #:defaults #,defaults))))))))
+                                           #:defaults #,defaults)))))
+      ((_ type syntactic-ctor ctor pred
+          (field get properties ...) ...)
+       ;; When no 'this' identifier was specified, use 'this-record'.
+       #'(define-record-type* type syntactic-ctor ctor pred
+           this-record
+           (field get properties ...) ...)))))
 
 (define* (alist->record alist make keys
                         #:optional (multiple-value-keys '()))
diff --git a/guix/scripts.scm b/guix/scripts.scm
index 75d801a466..77cbf12350 100644
--- a/guix/scripts.scm
+++ b/guix/scripts.scm
@@ -173,7 +173,8 @@ Show what and how will/would be built."
                  "Your Guix installation is ~a days old.\n"
                  (seconds->days age))
              (seconds->days age)))
-  (when (or (not age) (>= age old))
+  (when (and (or (not age) (>= age old))
+             (not (getenv "GUIX_UNINSTALLED")))
     (warning (G_ "Consider running 'guix pull' followed by
 '~a' to get up-to-date packages and security updates.\n")
              suggested-command)
@@ -200,16 +201,12 @@ available."
     (when (< ratio threshold)
       (warning (G_ "only ~,1f% of free space available on ~a~%")
                (* ratio 100) (%store-prefix))
-      (if profile
-          (display-hint (format #f (G_ "Consider deleting old profile
+      (display-hint (format #f (G_ "Consider deleting old profile
 generations and collecting garbage, along these lines:
 
 @example
-guix package -p ~s --delete-generations=1m
-guix gc
+guix gc --delete-generations=1m
 @end example\n")
-                                profile))
-          (display-hint (G_ "Consider running @command{guix gc} to free
-space."))))))
+                            profile)))))
 
 ;;; scripts.scm ends here
diff --git a/guix/scripts/build.scm b/guix/scripts/build.scm
index 28864435df..ba143ad16b 100644
--- a/guix/scripts/build.scm
+++ b/guix/scripts/build.scm
@@ -119,7 +119,7 @@ found.  Return #f if no build log was found."
   (let* ((root (if (string-prefix? "/" root)
                    root
                    (string-append (canonicalize-path (dirname root))
-                                  "/" root))))
+                                  "/" (basename root)))))
     (catch 'system-error
       (lambda ()
         (match paths
@@ -635,8 +635,7 @@ options handled by 'set-build-options-from-command-line', and listed in
 
 (define %default-options
   ;; Alist of default option values.
-  `((system . ,(%current-system))
-    (build-mode . ,(build-mode normal))
+  `((build-mode . ,(build-mode normal))
     (graft? . #t)
     (substitutes? . #t)
     (build-hook? . #t)
@@ -729,8 +728,7 @@ must be one of 'package', 'all', or 'transitive'~%")
                           rest)))
          (option '(#\s "system") #t #f
                  (lambda (opt name arg result)
-                   (alist-cons 'system arg
-                               (alist-delete 'system result eq?))))
+                   (alist-cons 'system arg result)))
          (option '("target") #t #f
                  (lambda (opt name arg result)
                    (alist-cons 'target arg
@@ -811,56 +809,71 @@ build."
        (cut package-cross-derivation <> <> triplet <>))))
 
   (define src    (assoc-ref opts 'source))
-  (define system (assoc-ref opts 'system))
   (define graft? (assoc-ref opts 'graft?))
+  (define systems
+    (match (filter-map (match-lambda
+                         (('system . system) system)
+                         (_ #f))
+                       opts)
+      (()      (list (%current-system)))
+      (systems systems)))
+
+  (define things-to-build
+    (map (cut transform store <>)
+         (options->things-to-build opts)))
+
+  (define (compute-derivation obj system)
+    ;; Compute the derivation of OBJ for SYSTEM.
+    (match obj
+      ((? package? p)
+       (let ((p (or (and graft? (package-replacement p)) p)))
+         (match src
+           (#f
+            (list (package->derivation store p system)))
+           (#t
+            (match (package-source p)
+              (#f
+               (format (current-error-port)
+                       (G_ "~a: warning: \
+package '~a' has no source~%")
+                       (location->string (package-location p))
+                       (package-name p))
+               '())
+              (s
+               (list (package-source-derivation store s)))))
+           (proc
+            (map (cut package-source-derivation store <>)
+                 (proc p))))))
+      ((? derivation? drv)
+       (list drv))
+      ((? procedure? proc)
+       (list (run-with-store store
+               (mbegin %store-monad
+                 (set-guile-for-build (default-guile))
+                 (proc))
+               #:system system)))
+      ((? file-like? obj)
+       (list (run-with-store store
+               (lower-object obj system
+                             #:target (assoc-ref opts 'target))
+               #:system system)))
+      ((? gexp? gexp)
+       (list (run-with-store store
+               (mbegin %store-monad
+                 (set-guile-for-build (default-guile))
+                 (gexp->derivation "gexp" gexp
+                                   #:system system))
+               #:system system)))))
 
   ;; We may get 'unbound-variable' errors while evaluating the 'inputs' fields
   ;; of user packages.  Since 'guix build' is the primary tool for people
   ;; testing new packages, report such errors gracefully.
   (with-unbound-variable-handling
    (parameterize ((%graft? graft?))
-     (append-map (match-lambda
-                   ((? package? p)
-                    (let ((p (or (and graft? (package-replacement p)) p)))
-                      (match src
-                        (#f
-                         (list (package->derivation store p system)))
-                        (#t
-                         (match (package-source p)
-                           (#f
-                            (format (current-error-port)
-                                    (G_ "~a: warning: \
-package '~a' has no source~%")
-                                    (location->string (package-location p))
-                                    (package-name p))
-                            '())
-                           (s
-                            (list (package-source-derivation store s)))))
-                        (proc
-                         (map (cut package-source-derivation store <>)
-                              (proc p))))))
-                   ((? derivation? drv)
-                    (list drv))
-                   ((? procedure? proc)
-                    (list (run-with-store store
-                            (mbegin %store-monad
-                              (set-guile-for-build (default-guile))
-                              (proc))
-                            #:system system)))
-                   ((? file-like? obj)
-                    (list (run-with-store store
-                            (lower-object obj system
-                                          #:target (assoc-ref opts 'target))
-                            #:system system)))
-                   ((? gexp? gexp)
-                    (list (run-with-store store
-                            (mbegin %store-monad
-                              (set-guile-for-build (default-guile))
-                              (gexp->derivation "gexp" gexp
-                                                #:system system))
-                            #:system system))))
-                 (map (cut transform store <>)
-                      (options->things-to-build opts))))))
+     (append-map (lambda (system)
+                   (append-map (cut compute-derivation <> system)
+                               things-to-build))
+                 systems))))
 
 (define (show-build-log store file urls)
   "Show the build log for FILE, falling back to remote logs from URLS if
diff --git a/guix/scripts/describe.scm b/guix/scripts/describe.scm
index b6287d3a4c..fa6b6cae37 100644
--- a/guix/scripts/describe.scm
+++ b/guix/scripts/describe.scm
@@ -18,6 +18,7 @@
 ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 
 (define-module (guix scripts describe)
+  #:use-module ((guix config) #:select (%guix-version))
   #:use-module ((guix ui) #:hide (display-profile-content))
   #:use-module (guix channels)
   #:use-module (guix scripts)
@@ -114,7 +115,12 @@ within a Git checkout."
                        (lambda ()
                          (repository-discover (dirname program)))
                        (lambda (key err)
-                         (leave (G_ "failed to determine origin~%")))))
+                         (report-error (G_ "failed to determine origin~%"))
+                         (display-hint (format #f (G_ "Perhaps this
+@command{guix} command was not obtained with @command{guix pull}?  Its version
+string is ~a.~%")
+                                               %guix-version))
+                         (exit 1))))
          (repository (repository-open directory))
          (head       (repository-head repository))
          (commit     (oid->string (reference-target head))))
diff --git a/guix/scripts/environment.scm b/guix/scripts/environment.scm
index 63f6129279..99c351ae43 100644
--- a/guix/scripts/environment.scm
+++ b/guix/scripts/environment.scm
@@ -33,6 +33,7 @@
   #:use-module (guix scripts)
   #:use-module (guix scripts build)
   #:use-module (gnu build linux-container)
+  #:use-module (gnu build accounts)
   #:use-module (gnu system linux-container)
   #:use-module (gnu system file-systems)
   #:use-module (gnu packages)
@@ -191,7 +192,7 @@ COMMAND or an interactive shell in that environment.\n"))
     (print-extended-build-trace? . #t)
     (multiplexed-build-output? . #t)
     (debug . 0)
-    (verbosity . 2)))
+    (verbosity . 1)))
 
 (define (tag-package-arg opts arg)
   "Return a two-element list with the form (TAG ARG) that tags ARG with either
@@ -458,10 +459,22 @@ will be used for the passwd entry.  LINK-PROFILE? creates a symbolic link from
     (return
      (let* ((cwd      (getcwd))
             (home     (getenv "HOME"))
-            (passwd   (mock-passwd (getpwuid (getuid))
-                                   user
-                                   bash))
-            (home-dir (passwd:dir passwd))
+            (uid      (if user 1000 (getuid)))
+            (gid      (if user 1000 (getgid)))
+            (passwd   (let ((pwd (getpwuid (getuid))))
+                        (password-entry
+                         (name (or user (passwd:name pwd)))
+                         (real-name (if user
+                                        ""
+                                        (passwd:gecos pwd)))
+                         (uid uid) (gid gid) (shell bash)
+                         (directory (if user
+                                        (string-append "/home/" user)
+                                        (passwd:dir pwd))))))
+            (groups   (list (group-entry (name "users") (gid gid))
+                            (group-entry (gid 65534) ;the overflow GID
+                                         (name "overflow"))))
+            (home-dir (password-entry-directory passwd))
             ;; Bind-mount all requisite store items, user-specified mappings,
             ;; /bin/sh, the current working directory, and possibly networking
             ;; configuration files within the container.
@@ -519,17 +532,8 @@ will be used for the passwd entry.  LINK-PROFILE? creates a symbolic link from
             ;; to read it, such as 'git clone' over SSH, a valid use-case when
             ;; sharing the host's network namespace.
             (mkdir-p "/etc")
-            (call-with-output-file "/etc/passwd"
-              (lambda (port)
-                (display (string-join (list (passwd:name passwd)
-                                            "x" ; but there is no shadow
-                                            "0" "0" ; user is now root
-                                            (passwd:gecos passwd)
-                                            (passwd:dir passwd)
-                                            bash)
-                                      ":")
-                         port)
-                (newline port)))
+            (write-passwd (list passwd))
+            (write-group groups)
 
             ;; For convenience, start in the user's current working
             ;; directory rather than the root directory.
@@ -539,36 +543,12 @@ will be used for the passwd entry.  LINK-PROFILE? creates a symbolic link from
              ;; A container's environment is already purified, so no need to
              ;; request it be purified again.
              (launch-environment command profile manifest #:pure? #f)))
+          #:guest-uid uid
+          #:guest-gid gid
           #:namespaces (if network?
                            (delq 'net %namespaces) ; share host network
                            %namespaces)))))))
 
-(define (mock-passwd passwd user-override shell)
-  "Generate mock information for '/etc/passwd'.  If USER-OVERRIDE is not '#f',
-it is expected to be a string representing the mock username; it will produce
-a user of that name, with a home directory of '/home/USER-OVERRIDE', and no
-GECOS field.  If USER-OVERRIDE is '#f', data will be inherited from PASSWD.
-In either case, the shadow password and UID/GID are cleared, since the user
-runs as root within the container.  SHELL will always be used in place of the
-shell in PASSWD.
-
-The resulting vector is suitable for use with Guile's POSIX user procedures.
-
-See passwd(5) for more information each of the fields."
-  (if user-override
-      (vector
-       user-override
-        "x" "0" "0"  ;; no shadow, user is now root
-        ""           ;; no personal information
-        (user-override-home user-override)
-        shell)
-      (vector
-       (passwd:name passwd)
-        "x" "0" "0"  ;; no shadow, user is now root
-        (passwd:gecos passwd)
-        (passwd:dir passwd)
-        shell)))
-
 (define (user-override-home user)
   "Return home directory for override user USER."
   (string-append "/home/" user))
diff --git a/guix/scripts/gc.scm b/guix/scripts/gc.scm
index 6f37b767ff..9a57e5fd1e 100644
--- a/guix/scripts/gc.scm
+++ b/guix/scripts/gc.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2012, 2013, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2012, 2013, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -20,7 +20,10 @@
   #:use-module (guix ui)
   #:use-module (guix scripts)
   #:use-module (guix store)
+  #:use-module (guix store roots)
   #:autoload   (guix build syscalls) (free-disk-space)
+  #:autoload   (guix profiles) (generation-profile)
+  #:autoload   (guix scripts package) (delete-generations)
   #:use-module (ice-9 match)
   #:use-module (ice-9 regex)
   #:use-module (srfi srfi-1)
@@ -47,7 +50,12 @@ Invoke the garbage collector.\n"))
   (display (G_ "
   -F, --free-space=FREE  attempt to reach FREE available space in the store"))
   (display (G_ "
-  -d, --delete           attempt to delete PATHS"))
+  -d, --delete-generations[=PATTERN]
+                         delete profile generations matching PATTERN"))
+  (display (G_ "
+  -D, --delete           attempt to delete PATHS"))
+  (display (G_ "
+      --list-roots       list the user's garbage collector roots"))
   (display (G_ "
       --optimize         optimize the store by deduplicating identical files"))
   (display (G_ "
@@ -95,6 +103,16 @@ Invoke the garbage collector.\n"))
             lst)
           '()))))
 
+(define (delete-old-generations store profile pattern)
+  "Remove the generations of PROFILE that match PATTERN, a duration pattern.
+Do nothing if none matches."
+  (let* ((current (generation-number profile))
+         (numbers (matching-generations pattern profile
+                                        #:duration-relation >)))
+
+    ;; Make sure we don't inadvertently remove the current generation.
+    (delete-generations store profile (delv current numbers))))
+
 (define %options
   ;; Specification of the command-line options.
   (list (option '(#\h "help") #f #f
@@ -120,10 +138,25 @@ Invoke the garbage collector.\n"))
         (option '(#\F "free-space") #t #f
                 (lambda (opt name arg result)
                   (alist-cons 'free-space (size->number arg) result)))
-        (option '(#\d "delete") #f #f
+        (option '(#\D "delete") #f #f            ;used to be '-d' (lower case)
                 (lambda (opt name arg result)
                   (alist-cons 'action 'delete
                               (alist-delete 'action result))))
+        (option '(#\d "delete-generations") #f #t
+                (lambda (opt name arg result)
+                  (if (and arg (store-path? arg))
+                      (begin
+                        (warning (G_ "'-d' as an alias for '--delete' \
+is deprecated; use '-D'~%"))
+                        `((action . delete)
+                          (argument . ,arg)
+                          (alist-delete 'action result)))
+                      (begin
+                        (when (and arg (not (string->duration arg)))
+                          (leave (G_ "~s does not denote a duration~%")
+                                 arg))
+                        (alist-cons 'delete-generations (or arg "")
+                                    result)))))
         (option '("optimize") #f #f
                 (lambda (opt name arg result)
                   (alist-cons 'action 'optimize
@@ -135,6 +168,10 @@ Invoke the garbage collector.\n"))
                                 (alist-cons 'verify-options options
                                             (alist-delete 'action
                                                           result))))))
+        (option '("list-roots") #f #f
+                (lambda (opt name arg result)
+                  (alist-cons 'action 'list-roots
+                              (alist-delete 'action result))))
         (option '("list-dead") #f #f
                 (lambda (opt name arg result)
                   (alist-cons 'action 'list-dead
@@ -205,6 +242,27 @@ Invoke the garbage collector.\n"))
             (info (G_ "freeing ~h MiBs~%") (/ to-free 1024. 1024.))
             (collect-garbage store to-free)))))
 
+  (define (delete-generations store pattern)
+    ;; Delete the generations matching PATTERN of all the user's profiles.
+    (let ((profiles (delete-duplicates
+                     (filter-map (lambda (root)
+                                   (and (or (zero? (getuid))
+                                            (user-owned? root))
+                                        (generation-profile root)))
+                                 (gc-roots)))))
+      (for-each (lambda (profile)
+                  (delete-old-generations store profile pattern))
+                profiles)))
+
+  (define (list-roots)
+    ;; List all the user-owned GC roots.
+    (let ((roots (filter (if (zero? (getuid)) (const #t) user-owned?)
+                         (gc-roots))))
+      (for-each (lambda (root)
+                  (display root)
+                  (newline))
+                roots)))
+
   (with-error-handling
     (let* ((opts  (parse-options))
            (store (open-connection))
@@ -229,6 +287,10 @@ Invoke the garbage collector.\n"))
          (assert-no-extra-arguments)
          (let ((min-freed  (assoc-ref opts 'min-freed))
                (free-space (assoc-ref opts 'free-space)))
+           (match (assoc-ref opts 'delete-generations)
+             (#f #t)
+             ((? string? pattern)
+              (delete-generations store pattern)))
            (cond
             (free-space
              (ensure-free-space store free-space))
@@ -238,6 +300,9 @@ Invoke the garbage collector.\n"))
             (else
              (let-values (((paths freed) (collect-garbage store)))
               (info (G_ "freed ~h MiBs~%") (/ freed 1024. 1024.)))))))
+        ((list-roots)
+         (assert-no-extra-arguments)
+         (list-roots))
         ((delete)
          (delete-paths store (map direct-store-path paths)))
         ((list-references)
diff --git a/guix/scripts/install.scm b/guix/scripts/install.scm
new file mode 100644
index 0000000000..d88e86e77a
--- /dev/null
+++ b/guix/scripts/install.scm
@@ -0,0 +1,80 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 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 (guix scripts install)
+  #:use-module (guix ui)
+  #:use-module (guix scripts package)
+  #:use-module (guix scripts build)
+  #:use-module (guix scripts)
+  #:use-module (srfi srfi-1)
+  #:use-module (srfi srfi-26)
+  #:use-module (srfi srfi-37)
+  #:export (guix-install))
+
+(define (show-help)
+  (display (G_ "Usage: guix install [OPTION] PACKAGES...
+Install the given PACKAGES.
+This is an alias for 'guix package -i'.\n"))
+  (display (G_ "
+  -p, --profile=PROFILE  use PROFILE instead of the user's default profile"))
+  ;; '--bootstrap' not shown here.
+  (display (G_ "
+  -v, --verbosity=LEVEL  use the given verbosity LEVEL"))
+  (newline)
+  (show-build-options-help)
+  (newline)
+  (show-transformation-options-help)
+  (newline)
+  (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
+  ;; Specification of the command-line options.
+  (cons* (option '(#\h "help") #f #f
+                 (lambda args
+                   (show-help)
+                   (exit 0)))
+         (option '(#\V "version") #f #f
+                 (lambda args
+                   (show-version-and-exit "guix install")))
+
+         ;; Preserve some of the 'guix package' options.
+         (append (filter (lambda (option)
+                           (any (cut member <> (option-names option))
+                                '("profile" "dry-run" "verbosity" "bootstrap")))
+                         %package-options)
+
+                 %transformation-options
+                 %standard-build-options)))
+
+(define (guix-install . args)
+  (define (handle-argument arg result arg-handler)
+    ;; Treat all non-option arguments as package specs.
+    (values (alist-cons 'install arg result)
+            arg-handler))
+
+  (define opts
+    (parse-command-line args %options
+                        (list %package-default-options #f)
+                        #:argument-handler handle-argument))
+
+  (guix-package* opts))
diff --git a/guix/scripts/lint.scm b/guix/scripts/lint.scm
index ddad5b7fd0..dc338a1d7b 100644
--- a/guix/scripts/lint.scm
+++ b/guix/scripts/lint.scm
@@ -45,7 +45,6 @@
   #:use-module (guix cve)
   #:use-module (gnu packages)
   #:use-module (ice-9 match)
-  #:use-module (ice-9 receive)
   #:use-module (ice-9 regex)
   #:use-module (ice-9 format)
   #:use-module (web client)
@@ -796,10 +795,13 @@ descriptions maintained upstream."
       (let ((uris (origin-uris origin)))
         (for-each check-mirror-uri uris)))))
 
-(define (check-github-url package)
+(define* (check-github-url package #:key (timeout 3))
   "Check whether PACKAGE uses source URLs that redirect to GitHub."
-  (define (follow-redirect uri)
-    (receive (response body) (http-head uri)
+  (define (follow-redirect url)
+    (let* ((uri      (string->uri url))
+           (port     (guix:open-connection-for-uri uri #:timeout timeout))
+           (response (http-head uri #:port port)))
+      (close-port port)
       (case (response-code response)
         ((301 302)
          (uri->string (assoc-ref (response-headers response) 'location)))
diff --git a/guix/scripts/pack.scm b/guix/scripts/pack.scm
index d237ae6e94..2a7b84b847 100644
--- a/guix/scripts/pack.scm
+++ b/guix/scripts/pack.scm
@@ -126,13 +126,9 @@ dependencies are registered."
 
   (define build
     (with-extensions gcrypt-sqlite3&co
-      ;; XXX: Adding (gnu build install) just to work around
-      ;; <https://bugs.gnu.org/15602>: that way, (guix build store-copy) is
-      ;; copied last and the 'store-info-XXX' macros are correctly expanded.
       (with-imported-modules (source-module-closure
                               '((guix build store-copy)
-                                (guix store database)
-                                (gnu build install)))
+                                (guix store database)))
         #~(begin
             (use-modules (guix store database)
                          (guix build store-copy)
@@ -633,7 +629,7 @@ please email '~a'~%")
     (print-extended-build-trace? . #t)
     (multiplexed-build-output? . #t)
     (debug . 0)
-    (verbosity . 2)
+    (verbosity . 1)
     (symlinks . ())
     (compressor . ,(first %compressors))))
 
diff --git a/guix/scripts/package.scm b/guix/scripts/package.scm
index b0c6a7ced7..aa27984ea2 100644
--- a/guix/scripts/package.scm
+++ b/guix/scripts/package.scm
@@ -58,7 +58,11 @@
             delete-generations
             delete-matching-generations
             display-search-paths
-            guix-package))
+            guix-package
+
+            (%options . %package-options)
+            (%default-options . %package-default-options)
+            guix-package*))
 
 (define %store
   (make-parameter #f))
@@ -278,11 +282,19 @@ path definition to be returned."
                 (evaluate-search-paths search-paths profiles
                                        getenv))))
 
+(define (absolutize file)
+  "Return an absolute file name equivalent to FILE, but without resolving
+symlinks like 'canonicalize-path' would do."
+  (if (string-prefix? "/" file)
+      file
+      (string-append (getcwd) "/" file)))
+
 (define* (display-search-paths entries profiles
                                #:key (kind 'exact))
   "Display the search path environment variables that may need to be set for
 ENTRIES, a list of manifest entries, in the context of PROFILE."
-  (let* ((profiles (map user-friendly-profile profiles))
+  (let* ((profiles (map (compose user-friendly-profile absolutize)
+                        profiles))
          (settings (search-path-environment-variables entries profiles
                                                       #:kind kind)))
     (unless (null? settings)
@@ -891,6 +903,11 @@ processed, #f otherwise."
     (parse-command-line args %options (list %default-options #f)
                         #:argument-handler handle-argument))
 
+  (guix-package* opts))
+
+(define (guix-package* opts)
+  "Run the 'guix package' command on OPTS, an alist resulting for command-line
+option processing with 'parse-command-line'."
   (with-error-handling
     (or (process-query opts)
         (parameterize ((%store  (open-connection))
diff --git a/guix/scripts/pull.scm b/guix/scripts/pull.scm
index 730b6a0bf2..3929cd402e 100644
--- a/guix/scripts/pull.scm
+++ b/guix/scripts/pull.scm
@@ -86,13 +86,13 @@ Download and deploy the latest version of Guix.\n"))
   (display (G_ "
       --branch=BRANCH    download the tip of the specified BRANCH"))
   (display (G_ "
+  -N, --news             display news compared to the previous generation"))
+  (display (G_ "
   -l, --list-generations[=PATTERN]
                          list generations matching PATTERN"))
   (display (G_ "
   -p, --profile=PROFILE  use PROFILE instead of ~/.config/guix/current"))
   (display (G_ "
-  -n, --dry-run          show what would be pulled and built"))
-  (display (G_ "
   -v, --verbosity=LEVEL  use the given verbosity LEVEL"))
   (display (G_ "
   -s, --system=SYSTEM    attempt to build for SYSTEM--e.g., \"i686-linux\""))
@@ -119,6 +119,9 @@ Download and deploy the latest version of Guix.\n"))
                  (lambda (opt name arg result)
                    (cons `(query list-generations ,(or arg ""))
                          result)))
+         (option '(#\N "news") #f #f
+                 (lambda (opt name arg result)
+                   (cons '(query display-news) result)))
          (option '("url") #t #f
                  (lambda (opt name arg result)
                    (alist-cons 'repository-url arg
@@ -164,24 +167,33 @@ Download and deploy the latest version of Guix.\n"))
 (define indirect-root-added
   (store-lift add-indirect-root))
 
-(define (display-profile-news profile)
-  "Display what's up in PROFILE--new packages, and all that."
+(define* (display-profile-news profile #:key concise?
+                               current-is-newer?)
+  "Display what's up in PROFILE--new packages, and all that.  If
+CURRENT-IS-NEWER? is true, assume that the current process represents the
+newest generation of PROFILE.x"
   (match (memv (generation-number profile)
                (reverse (profile-generations profile)))
     ((current previous _ ...)
-     (newline)
-     (let ((old (fold-available-packages
-                 (lambda* (name version result
-                                #:key supported? deprecated?
-                                #:allow-other-keys)
-                   (if (and supported? (not deprecated?))
-                       (alist-cons name version result)
-                       result))
-                 '()))
-           (new (profile-package-alist
-                 (generation-file-name profile current))))
-       (display-new/upgraded-packages old new
-                                      #:heading (G_ "New in this revision:\n"))))
+     (let ((these (fold-available-packages
+                   (lambda* (name version result
+                                  #:key supported? deprecated?
+                                  #:allow-other-keys)
+                     (if (and supported? (not deprecated?))
+                         (alist-cons name version result)
+                         result))
+                   '()))
+           (those (profile-package-alist
+                   (generation-file-name profile
+                                         (if current-is-newer?
+                                             previous
+                                             current)))))
+       (let ((old (if current-is-newer? those these))
+             (new (if current-is-newer? these those)))
+         (display-new/upgraded-packages old new
+                                        #:concise? concise?
+                                        #:heading
+                                        (G_ "New in this revision:\n")))))
     (_ #t)))
 
 (define* (build-and-install instances profile
@@ -197,7 +209,8 @@ true, display what would be built without actually building it."
                       #:hooks %channel-profile-hooks
                       #:dry-run? dry-run?)
       (munless dry-run?
-        (return (display-profile-news profile))
+        (return (newline))
+        (return (display-profile-news profile #:concise? #t))
         (match (which "guix")
           (#f (return #f))
           (str
@@ -377,36 +390,66 @@ of packages upgraded in ALIST2."
                                alist2)))
     (values new upgraded)))
 
+(define* (ellipsis #:optional (port (current-output-port)))
+  "Return HORIZONTAL ELLIPSIS three dots if PORT's encoding cannot represent
+it."
+  (match (port-encoding port)
+    ("UTF-8" "…")
+    (_       "...")))
+
 (define* (display-new/upgraded-packages alist1 alist2
-                                        #:key (heading ""))
+                                        #:key (heading "") concise?)
   "Given the two package name/version alists ALIST1 and ALIST2, display the
 list of new and upgraded packages going from ALIST1 to ALIST2.  When ALIST1
-and ALIST2 differ, display HEADING upfront."
+and ALIST2 differ, display HEADING upfront.  When CONCISE? is true, do not
+display long package lists that would fill the user's screen."
+  (define (pretty str column)
+    (indented-string (fill-paragraph str (- (%text-width) 4)
+                                     column)
+                     4))
+
+  (define concise/max-item-count
+    ;; Maximum number of items to display when CONCISE? is true.
+    12)
+
+  (define list->enumeration
+    (if concise?
+        (lambda* (lst #:optional (max concise/max-item-count))
+          (if (> (length lst) max)
+              (string-append (string-join (take lst max) ", ")
+                             ", " (ellipsis))
+              (string-join lst ", ")))
+        (cut string-join <> ", ")))
+
   (let-values (((new upgraded) (new/upgraded-packages alist1 alist2)))
+    (define new-count (length new))
+    (define upgraded-count (length upgraded))
+
     (unless (and (null? new) (null? upgraded))
       (display heading))
 
-    (match (length new)
+    (match new-count
       (0 #t)
       (count
        (format #t (N_ "  ~h new package: ~a~%"
                       "  ~h new packages: ~a~%" count)
                count
-               (indented-string
-                (fill-paragraph (string-join (sort (map first new) string<?)
-                                             ", ")
-                                (- (%text-width) 4) 30)
-                4))))
-    (match (length upgraded)
+               (pretty (list->enumeration (sort (map first new) string<?))
+                       30))))
+    (match upgraded-count
       (0 #t)
       (count
        (format #t (N_ "  ~h package upgraded: ~a~%"
                       "  ~h packages upgraded: ~a~%" count)
                count
-               (indented-string
-                (fill-paragraph (string-join (sort upgraded string<?) ", ")
-                                (- (%text-width) 4) 35)
-                4))))))
+               (pretty (list->enumeration (sort upgraded string<?))
+                       35))))
+
+    (when (and concise?
+               (or (> new-count concise/max-item-count)
+                   (> upgraded-count concise/max-item-count)))
+      (display-hint (G_ "Run @command{guix pull --news} to view the complete
+list of package changes.")))))
 
 (define (display-profile-content-diff profile gen1 gen2)
   "Display the changes in PROFILE GEN2 compared to generation GEN1."
@@ -446,7 +489,12 @@ and ALIST2 differ, display HEADING upfront."
                (()
                 (exit 1))
                ((numbers ...)
-                (list-generations profile numbers)))))))))
+                (list-generations profile numbers)))))))
+    (('display-news)
+     ;; Display profile news, with the understanding that this process
+     ;; represents the newest generation.
+     (display-profile-news profile
+                           #:current-is-newer? #t))))
 
 (define (channel-list opts)
   "Return the list of channels to use.  If OPTS specify a channel file,
@@ -486,24 +534,22 @@ Use '~/.config/guix/channels.scm' instead."))
         (url (or (assoc-ref opts 'repository-url)
                  (environment-variable))))
     (if (or ref url)
-        (match channels
-          ((one)
-           ;; When there's only one channel, apply '--url', '--commit', and
-           ;; '--branch' to this specific channel.
-           (let ((url (or url (channel-url one))))
-             (list (match ref
+        (match (find guix-channel? channels)
+          ((? channel? guix)
+           ;; Apply '--url', '--commit', and '--branch' to the 'guix' channel.
+           (let ((url (or url (channel-url guix))))
+             (cons (match ref
                      (('commit . commit)
-                      (channel (inherit one)
+                      (channel (inherit guix)
                                (url url) (commit commit) (branch #f)))
                      (('branch . branch)
-                      (channel (inherit one)
+                      (channel (inherit guix)
                                (url url) (commit #f) (branch branch)))
                      (#f
-                      (channel (inherit one) (url url)))))))
-          (_
-           ;; Otherwise bail out.
-           (leave
-            (G_ "'--url', '--commit', and '--branch' are not applicable~%"))))
+                      (channel (inherit guix) (url url))))
+                   (remove guix-channel? channels))))
+          (#f                           ;no 'guix' channel, failure will ensue
+           channels))
         channels)))
 
 
@@ -515,11 +561,11 @@ Use '~/.config/guix/channels.scm' instead."))
             (cache    (string-append (cache-directory) "/pull"))
             (channels (channel-list opts))
             (profile  (or (assoc-ref opts 'profile) %current-profile)))
-       (ensure-default-profile)
        (cond ((assoc-ref opts 'query)
               (process-query opts profile))
              (else
               (with-store store
+                (ensure-default-profile)
                 (with-status-verbosity (assoc-ref opts 'verbosity)
                   (parameterize ((%current-system (assoc-ref opts 'system))
                                  (%graft? (assoc-ref opts 'graft?))
diff --git a/guix/scripts/refresh.scm b/guix/scripts/refresh.scm
index 5b0f345cde..dd7026a6a4 100644
--- a/guix/scripts/refresh.scm
+++ b/guix/scripts/refresh.scm
@@ -297,7 +297,7 @@ KEY-DOWNLOAD specifies a download policy for missing OpenPGP keys; allowed
 values: 'interactive' (default), 'always', and 'never'.  When WARN? is true,
 warn about packages that have no matching updater."
   (if (lookup-updater package updaters)
-      (let-values (((version tarball changes)
+      (let-values (((version tarball source)
                     (package-update store package updaters
                                     #:key-download key-download))
                    ((loc)
@@ -330,10 +330,10 @@ warn about packages that have no matching updater."
                               (G_ "~a: consider removing this propagated input: ~a~%")))
                            (package-name package)
                            (upstream-input-change-name change)))
-                 (changes))
+                 (upstream-source-input-changes source))
                 (let ((hash (call-with-input-file tarball
                               port-sha256)))
-                  (update-package-source package version hash)))
+                  (update-package-source package source hash)))
               (warning (G_ "~a: version ~a could not be \
 downloaded and authenticated; not updating~%")
                        (package-name package) version))))
diff --git a/guix/scripts/remove.scm b/guix/scripts/remove.scm
new file mode 100644
index 0000000000..2f06ea4f37
--- /dev/null
+++ b/guix/scripts/remove.scm
@@ -0,0 +1,77 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 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 (guix scripts remove)
+  #:use-module (guix ui)
+  #:use-module (guix scripts package)
+  #:use-module (guix scripts build)
+  #:use-module (guix scripts)
+  #:use-module (srfi srfi-1)
+  #:use-module (srfi srfi-26)
+  #:use-module (srfi srfi-37)
+  #:export (guix-remove))
+
+(define (show-help)
+  (display (G_ "Usage: guix remove [OPTION] PACKAGES...
+Remove the given PACKAGES.
+This is an alias for 'guix package -r'.\n"))
+  (display (G_ "
+  -p, --profile=PROFILE  use PROFILE instead of the user's default profile"))
+  ;; '--bootstrap' not shown here.
+  (display (G_ "
+  -v, --verbosity=LEVEL  use the given verbosity LEVEL"))
+  (newline)
+  (show-build-options-help)
+  (newline)
+  (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
+  ;; Specification of the command-line options.
+  (cons* (option '(#\h "help") #f #f
+                 (lambda args
+                   (show-help)
+                   (exit 0)))
+         (option '(#\V "version") #f #f
+                 (lambda args
+                   (show-version-and-exit "guix remove")))
+
+         ;; Preserve some of the 'guix package' options.
+         (append (filter (lambda (option)
+                           (any (cut member <> (option-names option))
+                                '("profile" "dry-run" "verbosity" "bootstrap")))
+                         %package-options)
+
+                 %standard-build-options)))
+
+(define (guix-remove . args)
+  (define (handle-argument arg result arg-handler)
+    ;; Treat all non-option arguments as package specs.
+    (values (alist-cons 'remove arg result)
+            arg-handler))
+
+  (define opts
+    (parse-command-line args %options
+                        (list %package-default-options #f)
+                        #:argument-handler handle-argument))
+
+  (guix-package* opts))
diff --git a/guix/scripts/search.scm b/guix/scripts/search.scm
new file mode 100644
index 0000000000..8fceb83668
--- /dev/null
+++ b/guix/scripts/search.scm
@@ -0,0 +1,67 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 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 (guix scripts search)
+  #:use-module (guix ui)
+  #:use-module (guix scripts package)
+  #:use-module (guix scripts)
+  #:use-module (srfi srfi-1)
+  #:use-module (srfi srfi-26)
+  #:use-module (srfi srfi-37)
+  #:export (guix-search))
+
+(define (show-help)
+  (display (G_ "Usage: guix search [OPTION] REGEXPS...
+Search for packages matching REGEXPS."))
+  (display (G_"
+This is an alias for 'guix package -s'.\n"))
+  (newline)
+  (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
+  ;; Specification of the command-line 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 search")))))
+
+(define (guix-search . args)
+  (define (handle-argument arg result)
+    ;; Treat all non-option arguments as regexps.
+    (cons `(query search ,(or arg ""))
+          result))
+
+  (define opts
+    (args-fold* args %options
+                (lambda (opt name arg . rest)
+                  (leave (G_ "~A: unrecognized option~%") name))
+                handle-argument
+                '()))
+
+  (unless (assoc-ref opts 'query)
+    (leave (G_ "missing arguments: no regular expressions to search for~%")))
+
+  (guix-package* opts))
diff --git a/guix/scripts/size.scm b/guix/scripts/size.scm
index 25218a2945..f549ce05b8 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 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -34,6 +34,7 @@
   #:use-module (srfi srfi-37)
   #:use-module (ice-9 match)
   #:use-module (ice-9 format)
+  #:use-module (ice-9 vlist)
   #:export (profile?
             profile-file
             profile-self-size
@@ -142,11 +143,20 @@ profile of ITEMS and their requisites."
                                            (lambda (size)
                                              (return (cons item size)))))
                                     refs)))
+    (define size-table
+      (fold (lambda (pair result)
+              (match pair
+                ((item . size)
+                 (vhash-cons item size result))))
+            vlist-null sizes))
+
     (define (dependency-size item)
       (mlet %store-monad ((deps (requisites* (list item))))
         (foldm %store-monad
                (lambda (item total)
-                 (return (+ (assoc-ref sizes item) total)))
+                 (return (+ (match (vhash-assoc item size-table)
+                              ((_ . size) size))
+                            total)))
                0
                (delete-duplicates (cons item deps)))))
 
diff --git a/guix/scripts/system.scm b/guix/scripts/system.scm
index 97508f4bd6..3c3d6cbd5f 100644
--- a/guix/scripts/system.scm
+++ b/guix/scripts/system.scm
@@ -855,7 +855,7 @@ static checks."
     (bootloader-configuration-bootloader (operating-system-bootloader os)))
 
   (define bootcfg
-    (and (not (eq? 'container action))
+    (and (memq action '(init reconfigure))
          (operating-system-bootcfg os menu-entries)))
 
   (define bootloader-script
@@ -1299,8 +1299,7 @@ argument list and OPTS is the option alist."
            (command  (assoc-ref opts 'action)))
       (parameterize ((%graft? (assoc-ref opts 'graft?)))
         (with-status-verbosity (or (assoc-ref opts 'verbosity)
-                                   (if (memq command '(init reconfigure))
-                                       1 2))
+                                   (if (eq? command 'build) 2 1))
           (process-command command args opts))))))
 
 ;;; Local Variables:
diff --git a/guix/scripts/upgrade.scm b/guix/scripts/upgrade.scm
new file mode 100644
index 0000000000..7f14a2fdbe
--- /dev/null
+++ b/guix/scripts/upgrade.scm
@@ -0,0 +1,88 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 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 (guix scripts upgrade)
+  #:use-module (guix ui)
+  #:use-module (guix scripts package)
+  #:use-module (guix scripts build)
+  #:use-module (guix scripts)
+  #:use-module (srfi srfi-1)
+  #:use-module (srfi srfi-26)
+  #:use-module (srfi srfi-37)
+  #:use-module (ice-9 match)
+  #:export (guix-upgrade))
+
+(define (show-help)
+  (display (G_ "Usage: guix upgrade [OPTION] [REGEXP]
+Upgrade packages that match REGEXP.
+This is an alias for 'guix package -u'.\n"))
+  (display (G_ "
+  -p, --profile=PROFILE  use PROFILE instead of the user's default profile"))
+  (display (G_ "
+  -v, --verbosity=LEVEL  use the given verbosity LEVEL"))
+  (newline)
+  (show-build-options-help)
+  (newline)
+  (show-transformation-options-help)
+  (newline)
+  (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
+  ;; Specification of the command-line options.
+  (cons* (option '(#\h "help") #f #f
+                 (lambda args
+                   (show-help)
+                   (exit 0)))
+         (option '(#\V "version") #f #f
+                 (lambda args
+                   (show-version-and-exit "guix upgrade")))
+
+         ;; Preserve some of the 'guix package' options.
+         (append (filter (lambda (option)
+                           (any (cut member <> (option-names option))
+                                '("profile" "dry-run" "verbosity")))
+                         %package-options)
+
+                 %transformation-options
+                 %standard-build-options)))
+
+(define (guix-upgrade . args)
+  (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))))
+
+  (define opts
+    (parse-command-line args %options
+                        (list `((upgrade . #f)
+                                ,@%package-default-options)
+                              #f)
+                        #:argument-handler handle-argument))
+
+  (guix-package* opts))
diff --git a/guix/self.scm b/guix/self.scm
index ccff9be5b3..68b87051e9 100644
--- a/guix/self.scm
+++ b/guix/self.scm
@@ -60,6 +60,8 @@
       ("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))
       (_            #f))))                        ;no such package
 
 
@@ -253,8 +255,134 @@ DOMAIN, a gettext domain."
   (computed-file (string-append "guix-locale-" domain)
                  build))
 
+(define (translate-texi-manuals source)
+  "Return the translated texinfo manuals built from SOURCE."
+  (define po4a
+    (specification->package "po4a"))
+  
+  (define gettext
+    (specification->package "gettext"))
+
+  (define glibc-utf8-locales
+    (module-ref (resolve-interface '(gnu packages base))
+                'glibc-utf8-locales))
+
+  (define documentation
+    (file-append* source "doc"))
+
+  (define documentation-po
+    (file-append* source "po/doc"))
+  
+  (define build
+    (with-imported-modules '((guix build utils) (guix build po))
+      #~(begin
+          (use-modules (guix build utils) (guix build po)
+                       (ice-9 match) (ice-9 regex) (ice-9 textual-ports)
+                       (srfi srfi-1))
+
+          (mkdir #$output)
+
+          (copy-recursively #$documentation "."
+                            #:log (%make-void-port "w"))
+
+          (for-each
+            (lambda (file)
+              (copy-file file (basename file)))
+            (find-files #$documentation-po ".*.po$"))
+
+          (setenv "GUIX_LOCPATH"
+                  #+(file-append glibc-utf8-locales "/lib/locale"))
+          (setenv "PATH" #+(file-append gettext "/bin"))
+          (setenv "LC_ALL" "en_US.UTF-8")
+          (setlocale LC_ALL "en_US.UTF-8")
+
+          (define (translate-tmp-texi po source output)
+            "Translate Texinfo file SOURCE using messages from PO, and write
+the result to OUTPUT."
+            (invoke #+(file-append po4a "/bin/po4a-translate")
+              "-M" "UTF-8" "-L" "UTF-8" "-k" "0" "-f" "texinfo"
+              "-m" source "-p" po "-l" output))
+
+          (define (make-ref-regex msgid end)
+            (make-regexp (string-append
+                           "ref\\{"
+                           (string-join (string-split (regexp-quote msgid) #\ )
+                                        "[ \n]+")
+                           end)))
+
+          (define (translate-cross-references content translations)
+            "Take CONTENT, a string representing a .texi file and translate any
+cross-reference in it (@ref, @xref and @pxref) that have a translation in
+TRANSLATIONS, an alist of msgid and msgstr."
+            (fold
+              (lambda (elem content)
+                (match elem
+                  ((msgid . msgstr)
+                   ;; Empty translations and strings containing some special characters
+                   ;; cannot be the name of a section.
+                   (if (or (equal? msgstr "")
+                           (string-any (lambda (chr)
+                                         (member chr '(#\{ #\} #\( #\) #\newline #\,)))
+                                       msgid))
+                       content
+                       ;; Otherwise, they might be the name of a section, so we
+                       ;; need to translate any occurence in @(p?x?)ref{...}.
+                       (let ((regexp1 (make-ref-regex msgid ","))
+                             (regexp2 (make-ref-regex msgid "\\}")))
+                         (regexp-substitute/global
+                           #f regexp2
+                           (regexp-substitute/global
+                             #f regexp1 content 'pre "ref{" msgstr "," 'post)
+                           'pre "ref{" msgstr "}" 'post))))))
+              content translations))
+          
+          (define (translate-texi po lang)
+            "Translate the manual for one language LANG using the PO file."
+            (let ((translations (call-with-input-file po read-po-file)))
+              (translate-tmp-texi po "guix.texi"
+                                  (string-append "guix." lang ".texi.tmp"))
+              (translate-tmp-texi po "contributing.texi"
+                                  (string-append "contributing." lang ".texi.tmp"))
+              (let* ((texi-name (string-append "guix." lang ".texi"))
+                     (tmp-name (string-append texi-name ".tmp")))
+                (with-output-to-file texi-name
+                  (lambda _
+                    (format #t "~a"
+                      (translate-cross-references
+                        (call-with-input-file tmp-name get-string-all)
+                        translations)))))
+              (let* ((texi-name (string-append "contributing." lang ".texi"))
+                     (tmp-name (string-append texi-name ".tmp")))
+                (with-output-to-file texi-name
+                  (lambda _
+                    (format #t "~a"
+                      (translate-cross-references
+                        (call-with-input-file tmp-name get-string-all)
+                        translations)))))))
+
+          (for-each (lambda (po)
+                      (match (reverse (string-split po #\.))
+                        ((_ lang _ ...)
+                         (translate-texi po lang))))
+                    (find-files "." "^guix-manual\\.[a-z]{2}(_[A-Z]{2})?\\.po$"))
+
+          (for-each
+            (lambda (file)
+              (copy-file file (string-append #$output "/" file)))
+            (append
+              (find-files "." "contributing\\..*\\.texi$")
+              (find-files "." "guix\\..*\\.texi$"))))))
+
+  (computed-file "guix-translated-texinfo" build))
+
 (define (info-manual source)
   "Return the Info manual built from SOURCE."
+  (define po4a
+    (specification->package "po4a"))
+
+  (define gettext
+    (specification->package "gettext"))
+
   (define texinfo
     (module-ref (resolve-interface '(gnu packages texinfo))
                 'texinfo))
@@ -327,6 +455,8 @@ DOMAIN, a gettext domain."
           ;; see those images and produce image references in the Info output.
           (copy-recursively #$documentation "."
                             #:log (%make-void-port "w"))
+          (copy-recursively #+(translate-texi-manuals source) "."
+                            #:log (%make-void-port "w"))
           (delete-file-recursively "images")
           (symlink (string-append #$output "/images") "images")
 
@@ -350,7 +480,7 @@ DOMAIN, a gettext domain."
                                                   (basename texi ".texi")
                                                   ".info")))
                     (cons "guix.texi"
-                          (find-files "." "^guix\\.[a-z]{2}\\.texi$")))
+                          (find-files "." "^guix\\.[a-z]{2}(_[A-Z]{2})?\\.texi$")))
 
           ;; Compress Info files.
           (setenv "PATH"
@@ -578,6 +708,7 @@ Info manual."
                  ;; us to avoid an extra dependency on guile-gdbm-ffi.
                  #:extra-files
                  `(("guix/man-db.scm" ,(local-file "../guix/man-db.scm"))
+                   ("guix/build/po.scm" ,(local-file "../guix/build/po.scm"))
                    ("guix/store/schema.sql"
                     ,(local-file "../guix/store/schema.sql")))
 
@@ -627,6 +758,7 @@ Info manual."
     (scheme-node "guix-system"
                  `((gnu system)
                    (gnu services)
+                   ,@(scheme-modules* source "gnu/bootloader")
                    ,@(scheme-modules* source "gnu/system")
                    ,@(scheme-modules* source "gnu/services"))
                  (list *core-package-modules* *package-modules*
@@ -752,10 +884,6 @@ Info manual."
 ;;; Generating (guix config).
 ;;;
 
-(define %dependency-variables
-  ;; (guix config) variables corresponding to dependencies.
-  '(%libz %xz %gzip %bzip2))
-
 (define %persona-variables
   ;; (guix config) variables that define Guix's persona.
   '(%guix-package-name
diff --git a/guix/status.scm b/guix/status.scm
index bddaa003db..cbea4151f2 100644
--- a/guix/status.scm
+++ b/guix/status.scm
@@ -20,7 +20,7 @@
 (define-module (guix status)
   #:use-module (guix records)
   #:use-module (guix i18n)
-  #:use-module ((guix ui) #:select (colorize-string))
+  #:use-module (guix colors)
   #:use-module (guix progress)
   #:autoload   (guix build syscalls) (terminal-columns)
   #:use-module ((guix build download)
@@ -339,10 +339,6 @@ build-log\" traces."
   (and (current-store-protocol-version)
        (>= (current-store-protocol-version) #x163)))
 
-(define isatty?*
-  (mlambdaq (port)
-    (isatty? port)))
-
 (define spin!
   (let ((steps (circular-list "\\" "|" "/" "-")))
     (lambda (phase port)
@@ -362,44 +358,6 @@ the current build phase."
              (format port (G_ "'~a' phase") phase))
            (force-output port)))))))
 
-(define (color-output? port)
-  "Return true if we should write colored output to PORT."
-  (and (not (getenv "INSIDE_EMACS"))
-       (not (getenv "NO_COLOR"))
-       (isatty?* port)))
-
-(define-syntax color-rules
-  (syntax-rules ()
-    "Return a procedure that colorizes the string it is passed according to
-the given rules.  Each rule has the form:
-
-  (REGEXP COLOR1 COLOR2 ...)
-
-where COLOR1 specifies how to colorize the first submatch of REGEXP, and so
-on."
-    ((_ (regexp colors ...) rest ...)
-     (let ((next (color-rules rest ...))
-           (rx   (make-regexp regexp)))
-       (lambda (str)
-         (if (string-index str #\nul)
-             str
-             (match (regexp-exec rx str)
-               (#f (next str))
-               (m  (let loop ((n 1)
-                              (c '(colors ...))
-                              (result '()))
-                     (match c
-                       (()
-                        (string-concatenate-reverse result))
-                       ((first . tail)
-                        (loop (+ n 1) tail
-                              (cons (colorize-string (match:substring m n)
-                                                     first)
-                                    result)))))))))))
-    ((_)
-     (lambda (str)
-       str))))
-
 (define colorize-log-line
   ;; Take a string and return a possibly colorized string according to the
   ;; rules below.
@@ -452,17 +410,17 @@ produce colorful output.  When PRINT-LOG? is true, display the build log in
 addition to build events."
   (define info
     (if colorize?
-        (cut colorize-string <> 'BOLD)
+        (cute colorize-string <> (color BOLD))
         identity))
 
   (define success
     (if colorize?
-        (cut colorize-string <> 'GREEN 'BOLD)
+        (cute colorize-string <> (color GREEN BOLD))
         identity))
 
   (define failure
     (if colorize?
-        (cut colorize-string <> 'RED 'BOLD)
+        (cute colorize-string <> (color RED BOLD))
         identity))
 
   (define (report-build-progress phase %)
diff --git a/guix/store.scm b/guix/store.scm
index 0a0a7c7c52..1b485ab5fa 100644
--- a/guix/store.scm
+++ b/guix/store.scm
@@ -368,7 +368,9 @@
   (ats-cache    store-connection-add-to-store-cache)
   (atts-cache   store-connection-add-text-to-store-cache)
   (object-cache store-connection-object-cache
-                (default vlist-null)))            ;vhash
+                (default vlist-null))             ;vhash
+  (built-in-builders store-connection-built-in-builders
+                     (default (delay '()))))      ;promise
 
 (set-record-type-printer! <store-connection>
                           (lambda (obj port)
@@ -557,13 +559,17 @@ for this connection will be pinned.  Return a server object."
                           (write-int cpu-affinity port)))
                       (when (>= (protocol-minor v) 11)
                         (write-int (if reserve-space? 1 0) port))
-                      (let ((conn (%make-store-connection port
-                                                          (protocol-major v)
-                                                          (protocol-minor v)
-                                                          output flush
-                                                          (make-hash-table 100)
-                                                          (make-hash-table 100)
-                                                          vlist-null)))
+                      (letrec* ((built-in-builders
+                                 (delay (%built-in-builders conn)))
+                                (conn
+                                 (%make-store-connection port
+                                                         (protocol-major v)
+                                                         (protocol-minor v)
+                                                         output flush
+                                                         (make-hash-table 100)
+                                                         (make-hash-table 100)
+                                                         vlist-null
+                                                         built-in-builders)))
                         (let loop ((done? (process-stderr conn)))
                           (or done? (process-stderr conn)))
                         conn)))))))))
@@ -578,13 +584,17 @@ already taken place on PORT and that we're just continuing on this established
 connection.  Use with care."
   (let-values (((output flush)
                 (buffering-output-port port (make-bytevector 8192))))
-    (%make-store-connection port
-                            (protocol-major version)
-                            (protocol-minor version)
-                            output flush
-                            (make-hash-table 100)
-                            (make-hash-table 100)
-                            vlist-null)))
+    (define connection
+      (%make-store-connection port
+                              (protocol-major version)
+                              (protocol-minor version)
+                              output flush
+                              (make-hash-table 100)
+                              (make-hash-table 100)
+                              vlist-null
+                              (delay (%built-in-builders connection))))
+
+    connection))
 
 (define (store-connection-version store)
   "Return the protocol version of STORE as an integer."
@@ -602,19 +612,23 @@ connection.  Use with care."
   "Close the connection to SERVER."
   (close (store-connection-socket server)))
 
-(define-syntax-rule (with-store store exp ...)
-  "Bind STORE to an open connection to the store and evaluate EXPs;
-automatically close the store when the dynamic extent of EXP is left."
+(define (call-with-store proc)
+  "Call PROC with an open store connection."
   (let ((store (open-connection)))
     (dynamic-wind
       (const #f)
       (lambda ()
         (parameterize ((current-store-protocol-version
                         (store-connection-version store)))
-         exp) ...)
+          (proc store)))
       (lambda ()
         (false-if-exception (close-connection store))))))
 
+(define-syntax-rule (with-store store exp ...)
+  "Bind STORE to an open connection to the store and evaluate EXPs;
+automatically close the store when the dynamic extent of EXP is left."
+  (call-with-store (lambda (store) exp ...)))
+
 (define current-store-protocol-version
   ;; Protocol version of the store currently used.  XXX: This is a hack to
   ;; communicate the protocol version to the build output port.  It's a hack
@@ -982,14 +996,52 @@ string).  Raise an error if no such path exists."
          (operation (add-text-to-store (string name) (bytevector text)
                                        (string-list references))
                     #f
-                    store-path)))
+                    store-path))
+        (lookup (if (profiled? "add-data-to-store-cache")
+                    (let ((lookups 0)
+                          (hits    0)
+                          (drv     0)
+                          (scheme  0))
+                      (define (show-stats)
+                        (define (% n)
+                          (if (zero? lookups)
+                              100.
+                              (* 100. (/ n lookups))))
+
+                        (format (current-error-port) "
+'add-data-to-store' cache:
+  lookups:      ~5@a
+  hits:         ~5@a (~,1f%)
+  .drv files:   ~5@a (~,1f%)
+  Scheme files: ~5@a (~,1f%)~%"
+                                lookups hits (% hits)
+                                drv (% drv)
+                                scheme (% scheme)))
+
+                      (register-profiling-hook! "add-data-to-store-cache"
+                                                show-stats)
+                      (lambda (cache args)
+                        (let ((result (hash-ref cache args)))
+                          (set! lookups (+ 1 lookups))
+                          (when result
+                            (set! hits (+ 1 hits)))
+                          (match args
+                            ((_ name _)
+                             (cond ((string-suffix? ".drv" name)
+                                    (set! drv (+ drv 1)))
+                                   ((string-suffix? "-builder" name)
+                                    (set! scheme (+ scheme 1)))
+                                   ((string-suffix? ".scm" name)
+                                    (set! scheme (+ scheme 1))))))
+                          result)))
+                    hash-ref)))
     (lambda* (server name bytes #:optional (references '()))
       "Add BYTES under file NAME in the store, and return its store path.
 REFERENCES is the list of store paths referred to by the resulting store
 path."
       (let* ((args  `(,bytes ,name ,references))
              (cache (store-connection-add-text-to-store-cache server)))
-        (or (hash-ref cache args)
+        (or (lookup cache args)
             (let ((path (add-text-to-store server name bytes references)))
               (hash-set! cache args path)
               path))))))
@@ -1367,13 +1419,13 @@ that there is no guarantee that the order of the resulting list matches the
 order of PATHS."
              substitutable-path-list))
 
-(define built-in-builders
+(define %built-in-builders
   (let ((builders (operation (built-in-builders)
                              "Return the built-in builders."
                              string-list)))
     (lambda (store)
       "Return the names of the supported built-in derivation builders
-supported by STORE."
+supported by STORE.  The result is memoized for STORE."
       ;; Check whether STORE's version supports this RPC and built-in
       ;; derivation builders in general, which appeared in Guix > 0.11.0.
       ;; Return the empty list if it doesn't.  Note that this RPC does not
@@ -1384,6 +1436,11 @@ supported by STORE."
           (builders store)
           '()))))
 
+(define (built-in-builders store)
+  "Return the names of the supported built-in derivation builders
+supported by STORE."
+  (force (store-connection-built-in-builders store)))
+
 (define-operation (optimize-store)
   "Optimize the store by hard-linking identical files (\"deduplication\".)
 Return #t on success."
diff --git a/guix/store/deduplication.scm b/guix/store/deduplication.scm
index 8ca16a4cd8..d42c40932c 100644
--- a/guix/store/deduplication.scm
+++ b/guix/store/deduplication.scm
@@ -79,8 +79,8 @@ unused by the time you create anything with that name, but a good shot."
 (define* (get-temp-link target #:optional (link-prefix (dirname target)))
   "Like mkstemp!, but instead of creating a new file and giving you the name,
 it creates a new hardlink to TARGET and gives you the name. Since
-cross-filesystem hardlinks don't work, the temp link must be created on the
-same filesystem - where in that filesystem it is can be controlled by
+cross-file-system hardlinks don't work, the temp link must be created on the
+same file system - where in that file system it is can be controlled by
 LINK-PREFIX."
   (let try ((tempname (tempname-in link-prefix)))
     (catch 'system-error
diff --git a/guix/store/roots.scm b/guix/store/roots.scm
new file mode 100644
index 0000000000..4f23ae34e8
--- /dev/null
+++ b/guix/store/roots.scm
@@ -0,0 +1,120 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 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 (guix store roots)
+  #:use-module (guix config)
+  #:use-module ((guix store) #:select (store-path? %gc-roots-directory))
+  #:use-module (guix sets)
+  #:use-module (guix build syscalls)
+  #:use-module (srfi srfi-1)
+  #:use-module (srfi srfi-11)
+  #:use-module (srfi srfi-26)
+  #:use-module (ice-9 match)
+  #:use-module (ice-9 regex)
+  #:re-export (%gc-roots-directory)
+  #:export (gc-roots
+            user-owned?))
+
+;;; Commentary:
+;;;
+;;; This module provides tools to list and access garbage collector roots ("GC
+;;; roots").
+;;;
+;;; Code:
+
+(define %profile-directory
+  ;; Directory where user profiles are stored.
+  ;; XXX: This is redundant with the definition in (guix profiles) and not
+  ;; entirely needed since in practice /var/guix/gcroots/profiles links to
+  ;; it.
+  (string-append %state-directory "/profiles"))
+
+(define (gc-roots)
+  "Return the list of garbage collector roots (\"GC roots\").  This includes
+\"regular\" roots fount in %GC-ROOTS-DIRECTORY as well as indirect roots that
+are user-controlled symlinks stored anywhere on the file system."
+  (define (regular? file)
+    (match file
+      (((or "." "..") . _) #f)
+      (_ #t)))
+
+  (define (file-type=? type)
+    (match-lambda
+      ((file . properties)
+       (match (assq-ref properties 'type)
+         ('unknown
+          (let ((stat (lstat file)))
+            (eq? type (stat:type stat))))
+         (actual-type
+          (eq? type actual-type))))))
+
+  (define directory?
+    (file-type=? 'directory))
+
+  (define symlink?
+    (file-type=? 'symlink))
+
+  (define canonical-root
+    (match-lambda
+      ((file . properties)
+       (let ((target (readlink file)))
+         (cond ((store-path? target)
+                ;; Regular root: FILE points to the store.
+                file)
+
+               ;; Indirect root: FILE points to a user-controlled file outside
+               ;; the store.
+               ((string-prefix? "/" target)
+                target)
+               (else
+                (string-append (dirname file) "/" target)))))))
+
+  (let loop ((directories (list %gc-roots-directory
+                                %profile-directory))
+             (roots       '())
+             (visited     (set)))
+    (match directories
+      (()
+       roots)
+      ((directory . rest)
+       (if (set-contains? visited directory)
+           (loop rest roots visited)
+           (let*-values (((scope)
+                          (cut string-append directory "/" <>))
+                         ((sub-directories files)
+                          (partition directory?
+                                     (map (match-lambda
+                                            ((file . properties)
+                                             (cons (scope file) properties)))
+                                          (scandir* directory regular?)))))
+             (loop (append rest (map first sub-directories))
+                   (append (map canonical-root (filter symlink? files))
+                           roots)
+                   (set-insert directory visited))))))))
+
+(define* (user-owned? root #:optional (uid (getuid)))
+  "Return true if ROOT exists and is owned by UID, false otherwise."
+  ;; If ROOT is an indirect root, then perhaps it no longer exists.  Thus,
+  ;; catch 'system-error' exceptions.
+  (catch 'system-error
+    (lambda ()
+      (define stat
+        (lstat root))
+
+      (= (stat:uid stat) uid))
+    (const #f)))
diff --git a/guix/ui.scm b/guix/ui.scm
index 2fc001d2eb..92c845e944 100644
--- a/guix/ui.scm
+++ b/guix/ui.scm
@@ -10,8 +10,6 @@
 ;;; Copyright © 2016 Roel Janssen <roel@gnu.org>
 ;;; Copyright © 2016 Benz Schenk <benz.schenk@uzh.ch>
 ;;; Copyright © 2018 Kyle Meyer <kyle@kyleam.com>
-;;; Copyright © 2013, 2014 Free Software Foundation, Inc.
-;;; Copyright © 2018 Sahithi Yarlagadda <sahi@swecha.net>
 ;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -31,6 +29,7 @@
 
 (define-module (guix ui)
   #:use-module (guix i18n)
+  #:use-module (guix colors)
   #:use-module (guix gexp)
   #:use-module (guix sets)
   #:use-module (guix utils)
@@ -118,8 +117,7 @@
             guix-warning-port
             warning
             info
-            guix-main
-            colorize-string))
+            guix-main))
 
 ;;; Commentary:
 ;;;
@@ -127,45 +125,124 @@
 ;;;
 ;;; Code:
 
-(define-syntax-rule (define-diagnostic name prefix)
-  "Create a diagnostic macro (i.e., NAME), which will prepend PREFIX to all
+(define-syntax highlight-argument
+  (lambda (s)
+    "Given FMT and ARG, expand ARG to a call that highlights it, provided FMT
+is a trivial format string."
+    (define (trivial-format-string? fmt)
+      (define len
+        (string-length fmt))
+
+      (let loop ((start 0))
+        (or (>= (+ 1 start) len)
+            (let ((tilde (string-index fmt #\~ start)))
+              (or (not tilde)
+                  (case (string-ref fmt (+ tilde 1))
+                    ((#\a #\A #\%) (loop (+ tilde 2)))
+                    (else          #f)))))))
+
+    ;; Be conservative: limit format argument highlighting to cases where the
+    ;; format string contains nothing but ~a escapes.  If it contained ~s
+    ;; escapes, this strategy wouldn't work.
+    (syntax-case s ()
+      ((_ "~a~%" arg)                          ;don't highlight whole messages
+       #'arg)
+      ((_ fmt arg)
+       (trivial-format-string? (syntax->datum #'fmt))
+       #'(%highlight-argument arg))
+      ((_ fmt arg)
+       #'arg))))
+
+(define* (%highlight-argument arg #:optional (port (guix-warning-port)))
+  "Highlight ARG, a format string argument, if PORT supports colors."
+  (cond ((string? arg)
+         (highlight arg port))
+        ((symbol? arg)
+         (highlight (symbol->string arg) port))
+        (else arg)))
+
+(define-syntax define-diagnostic
+  (syntax-rules ()
+    "Create a diagnostic macro (i.e., NAME), which will prepend PREFIX to all
 messages."
-  (define-syntax name
-    (lambda (x)
-      (define (augmented-format-string fmt)
-        (string-append "~:[~*~;guix ~a: ~]~a" (syntax->datum fmt)))
-
-      (syntax-case x ()
-        ((name (underscore fmt) args (... ...))
-         (and (string? (syntax->datum #'fmt))
-              (free-identifier=? #'underscore #'G_))
-         (with-syntax ((fmt*   (augmented-format-string #'fmt))
-                       (prefix (datum->syntax x prefix)))
-           #'(format (guix-warning-port) (gettext fmt*)
-                     (program-name) (program-name) prefix
-                     args (... ...))))
-        ((name (N-underscore singular plural n) args (... ...))
-         (and (string? (syntax->datum #'singular))
-              (string? (syntax->datum #'plural))
-              (free-identifier=? #'N-underscore #'N_))
-         (with-syntax ((s      (augmented-format-string #'singular))
-                       (p      (augmented-format-string #'plural))
-                       (prefix (datum->syntax x prefix)))
-           #'(format (guix-warning-port)
-                     (ngettext s p n %gettext-domain)
-                     (program-name) (program-name) prefix
-                     args (... ...))))))))
-
-(define-diagnostic warning "warning: ") ; emit a warning
-(define-diagnostic info "")
-
-(define-diagnostic report-error "error: ")
+    ((_ name (G_ prefix) colors)
+     (define-syntax name
+       (lambda (x)
+         (syntax-case x ()
+           ((name location (underscore fmt) args (... ...))
+            (and (string? (syntax->datum #'fmt))
+                 (free-identifier=? #'underscore #'G_))
+            #'(begin
+                (print-diagnostic-prefix prefix location
+                                         #:colors colors)
+                (format (guix-warning-port) (gettext fmt %gettext-domain)
+                        (highlight-argument fmt args) (... ...))))
+           ((name location (N-underscore singular plural n)
+                  args (... ...))
+            (and (string? (syntax->datum #'singular))
+                 (string? (syntax->datum #'plural))
+                 (free-identifier=? #'N-underscore #'N_))
+            #'(begin
+                (print-diagnostic-prefix prefix location
+                                         #:colors colors)
+                (format (guix-warning-port)
+                        (ngettext singular plural n %gettext-domain)
+                        (highlight-argument singular args) (... ...))))
+           ((name (underscore fmt) args (... ...))
+            (free-identifier=? #'underscore #'G_)
+            #'(name #f (underscore fmt) args (... ...)))
+           ((name (N-underscore singular plural n)
+                  args (... ...))
+            (free-identifier=? #'N-underscore #'N_)
+            #'(name #f (N-underscore singular plural n)
+                    args (... ...)))))))))
+
+;; XXX: This doesn't work well for right-to-left languages.
+;; TRANSLATORS: The goal is to emit "warning:" followed by a short phrase;
+;; "~a" is a placeholder for that phrase.
+(define-diagnostic warning (G_ "warning: ") %warning-color) ;emit a warning
+(define-diagnostic info (G_ "") %info-color)
+(define-diagnostic report-error (G_ "error: ") %error-color)
+
 (define-syntax-rule (leave args ...)
   "Emit an error message and exit."
   (begin
     (report-error args ...)
     (exit 1)))
 
+(define %warning-color (color BOLD MAGENTA))
+(define %info-color (color BOLD))
+(define %error-color (color BOLD RED))
+(define %hint-color (color BOLD CYAN))
+
+(define* (print-diagnostic-prefix prefix #:optional location
+                                  #:key (colors (color)))
+  "Print PREFIX as a diagnostic line prefix."
+  (define color?
+    (color-output? (guix-warning-port)))
+
+  (define location-color
+    (if color?
+        (cut colorize-string <> (color BOLD))
+        identity))
+
+  (define prefix-color
+    (if color?
+        (lambda (prefix)
+          (colorize-string prefix colors))
+        identity))
+
+  (let ((prefix (if (string-null? prefix)
+                    prefix
+                    (gettext prefix %gettext-domain))))
+    (if location
+        (format (guix-warning-port) "~a: ~a"
+                (location-color (location->string location))
+                (prefix-color prefix))
+        (format (guix-warning-port) "~:[~*~;guix ~a: ~]~a"
+                (program-name) (program-name)
+                (prefix-color prefix)))))
+
 (define (print-unbound-variable-error port key args default-printer)
   ;; Print unbound variable errors more nicely, and in the right language.
   (match args
@@ -317,11 +394,18 @@ VARIABLE and return it, or #f if none was found."
 (define* (display-hint message #:optional (port (current-error-port)))
   "Display MESSAGE, a l10n message possibly containing Texinfo markup, to
 PORT."
-  (format port (G_ "hint: ~a~%")
-          ;; XXX: We should arrange so that the initial indent is wider.
-          (parameterize ((%text-width (max 15
-                                           (- (terminal-columns) 5))))
-            (texi->plain-text message))))
+  (define colorize
+    (if (color-output? port)
+        (lambda (str)
+          (colorize-string str %hint-color))
+        identity))
+
+  (display (colorize (G_ "hint: ")) port)
+  (display
+   ;; XXX: We should arrange so that the initial indent is wider.
+   (parameterize ((%text-width (max 15 (- (terminal-columns) 5))))
+     (texi->plain-text message))
+   port))
 
 (define* (report-unbound-variable-error args #:key frame)
   "Return the given unbound-variable error, where ARGS is the list of 'throw'
@@ -356,21 +440,15 @@ ARGS is the list of arguments received by the 'throw' handler."
          (apply throw args)))
     (('syntax-error proc message properties form . rest)
      (let ((loc (source-properties->location properties)))
-       (format (current-error-port) (G_ "~a: error: ~a~%")
-               (location->string loc) message)))
+       (report-error loc (G_ "~a~%") message)))
     (('unbound-variable _ ...)
      (report-unbound-variable-error args #:frame frame))
     (('srfi-34 obj)
      (if (message-condition? obj)
-         (if (error-location? obj)
-             (format (current-error-port)
-                     (G_ "~a: error: ~a~%")
-                     (location->string (error-location obj))
-                     (gettext (condition-message obj)
-                              %gettext-domain))
-             (report-error (G_ "~a~%")
-                           (gettext (condition-message obj)
-                                    %gettext-domain)))
+         (report-error (and (error-location? obj)
+                            (error-location obj))
+                       (G_ "~a~%")
+                       (gettext (condition-message obj) %gettext-domain))
          (report-error (G_ "exception thrown: ~s~%") obj))
      (when (fix-hint? obj)
        (display-hint (condition-fix-hint obj))))
@@ -394,8 +472,7 @@ exiting.  ARGS is the list of arguments received by the 'throw' handler."
        (warning (G_ "failed to load '~a': ~a~%") file (strerror err))))
     (('syntax-error proc message properties form . rest)
      (let ((loc (source-properties->location properties)))
-       (format (current-error-port) (G_ "~a: warning: ~a~%")
-               (location->string loc) message)))
+       (warning loc (G_ "~a~%") message)))
     (('srfi-34 obj)
      (if (message-condition? obj)
          (warning (G_ "failed to load '~a': ~a~%")
@@ -727,17 +804,14 @@ directories:~{ ~a~}~%")
                     (cons (invoke-error-program c)
                           (invoke-error-arguments c))))
             ((and (error-location? c) (message-condition? c))
-             (format (current-error-port)
-                     (G_ "~a: error: ~a~%")
-                     (location->string (error-location c))
-                     (gettext (condition-message c) %gettext-domain))
+             (report-error (error-location c) (G_ "~a~%")
+                           (gettext (condition-message c) %gettext-domain))
              (when (fix-hint? c)
                (display-hint (condition-fix-hint c)))
              (exit 1))
             ((and (message-condition? c) (fix-hint? c))
-             (format (current-error-port) "~a: error: ~a~%"
-                     (program-name)
-                     (gettext (condition-message c) %gettext-domain))
+             (report-error (G_ "~a~%")
+                           (gettext (condition-message c) %gettext-domain))
              (display-hint (condition-fix-hint c))
              (exit 1))
             ((message-condition? c)
@@ -1329,8 +1403,14 @@ score, the more relevant OBJ is to REGEXPS."
   ;; Metrics used to compute the "relevance score" of a package against a set
   ;; of regexps.
   `((,package-name . 4)
-    (,package-synopsis-string . 3)
-    (,package-description-string . 2)
+
+    ;; Match regexps on the raw Texinfo since formatting it is quite expensive
+    ;; and doesn't have much of an effect on search results.
+    (,(lambda (package)
+        (and=> (package-synopsis package) P_)) . 3)
+    (,(lambda (package)
+        (and=> (package-description package) P_)) . 2)
+
     (,(lambda (type)
         (match (and=> (package-location type) location-file)
           ((? string? file) (basename file ".scm"))
@@ -1484,7 +1564,7 @@ DURATION-RELATION with the current time."
 (define (display-generation profile number)
   "Display a one-line summary of generation NUMBER of PROFILE."
   (unless (zero? number)
-    (let ((header (format #f (G_ "Generation ~a\t~a") number
+    (let ((header (format #f (highlight (G_ "Generation ~a\t~a")) number
                           (date->string
                            (time-utc->date
                             (generation-time profile number))
@@ -1697,54 +1777,4 @@ and signal handling has already been set up."
   (initialize-guix)
   (apply run-guix args))
 
-(define color-table
-  `((CLEAR       .   "0")
-    (RESET       .   "0")
-    (BOLD        .   "1")
-    (DARK        .   "2")
-    (UNDERLINE   .   "4")
-    (UNDERSCORE  .   "4")
-    (BLINK       .   "5")
-    (REVERSE     .   "6")
-    (CONCEALED   .   "8")
-    (BLACK       .  "30")
-    (RED         .  "31")
-    (GREEN       .  "32")
-    (YELLOW      .  "33")
-    (BLUE        .  "34")
-    (MAGENTA     .  "35")
-    (CYAN        .  "36")
-    (WHITE       .  "37")
-    (ON-BLACK    .  "40")
-    (ON-RED      .  "41")
-    (ON-GREEN    .  "42")
-    (ON-YELLOW   .  "43")
-    (ON-BLUE     .  "44")
-    (ON-MAGENTA  .  "45")
-    (ON-CYAN     .  "46")
-    (ON-WHITE    .  "47")))
-
-(define (color . lst)
-  "Return a string containing the ANSI escape sequence for producing the
-requested set of attributes in LST.  Unknown attributes are ignored."
-  (let ((color-list
-         (remove not
-                 (map (lambda (color) (assq-ref color-table color))
-                      lst))))
-    (if (null? color-list)
-        ""
-        (string-append
-         (string #\esc #\[)
-         (string-join color-list ";" 'infix)
-         "m"))))
-
-(define (colorize-string str . color-list)
-  "Return a copy of STR colorized using ANSI escape sequences according to the
-attributes STR.  At the end of the returned string, the color attributes will
-be reset such that subsequent output will not have any colors in effect."
-  (string-append
-   (apply color color-list)
-   str
-   (color 'RESET)))
-
 ;;; ui.scm ends here
diff --git a/guix/upstream.scm b/guix/upstream.scm
index 55683dd9b7..1326b3db95 100644
--- a/guix/upstream.scm
+++ b/guix/upstream.scm
@@ -39,6 +39,7 @@
   #:use-module (srfi srfi-26)
   #:use-module (srfi srfi-34)
   #:use-module (srfi srfi-35)
+  #:use-module (rnrs bytevectors)
   #:use-module (ice-9 match)
   #:use-module (ice-9 regex)
   #:export (upstream-source
@@ -344,10 +345,10 @@ values: the item from LST1 and the item from LST2 that match PRED."
 
 (define* (package-update/url-fetch store package source
                                    #:key key-download)
-  "Return the version, tarball, and input changes needed to update PACKAGE to
+  "Return the version, tarball, and SOURCE, to update PACKAGE to
 SOURCE, an <upstream-source>."
   (match source
-    (($ <upstream-source> _ version urls signature-urls changes)
+    (($ <upstream-source> _ version urls signature-urls)
      (let*-values (((archive-type)
                     (match (and=> (package-source package) origin-uri)
                       ((? string? uri)
@@ -371,7 +372,7 @@ SOURCE, an <upstream-source>."
                            (or signature-urls (circular-list #f)))))
        (let ((tarball (download-tarball store url signature-url
                                         #:key-download key-download)))
-         (values version tarball changes))))))
+         (values version tarball source))))))
 
 (define %method-updates
   ;; Mapping of origin methods to source update procedures.
@@ -404,36 +405,57 @@ this method: ~s")
     (#f
      (values #f #f #f))))
 
-(define (update-package-source package version hash)
-  "Modify the source file that defines PACKAGE to refer to VERSION,
-whose tarball has SHA256 HASH (a bytevector).  Return the new version string
-if an update was made, and #f otherwise."
-  (define (update-expression expr old-version version old-hash hash)
-    ;; Update package expression EXPR, replacing occurrences OLD-VERSION by
-    ;; VERSION and occurrences of OLD-HASH by HASH (base32 representation
-    ;; thereof).
-    (let ((old-hash (bytevector->nix-base32-string old-hash))
-          (hash     (bytevector->nix-base32-string hash)))
-      (string-replace-substring
-       (string-replace-substring expr old-hash hash)
-       old-version version)))
+(define* (update-package-source package source hash)
+  "Modify the source file that defines PACKAGE to refer to SOURCE, an
+<upstream-source> whose tarball has SHA256 HASH (a bytevector).  Return the
+new version string if an update was made, and #f otherwise."
+  (define (update-expression expr replacements)
+    ;; Apply REPLACEMENTS to package expression EXPR, a string.  REPLACEMENTS
+    ;; must be a list of replacement pairs, either bytevectors or strings.
+    (fold (lambda (replacement str)
+            (match replacement
+              (((? bytevector? old-bv) . (? bytevector? new-bv))
+               (string-replace-substring
+                str
+                (bytevector->nix-base32-string old-bv)
+                (bytevector->nix-base32-string new-bv)))
+              ((old . new)
+               (string-replace-substring str old new))))
+          expr
+          replacements))
 
   (let ((name        (package-name package))
+        (version     (upstream-source-version source))
         (version-loc (package-field-location package 'version)))
     (if version-loc
         (let* ((loc         (package-location package))
                (old-version (package-version package))
                (old-hash    (origin-sha256 (package-source package)))
+               (old-url     (match (origin-uri (package-source package))
+                              ((? string? url) url)
+                              (_ #f)))
+               (new-url     (match (upstream-source-urls source)
+                              ((first _ ...) first)))
                (file        (and=> (location-file loc)
                                    (cut search-path %load-path <>))))
           (if file
-              (and (edit-expression
-                    ;; Be sure to use absolute filename.
-                    (assq-set! (location->source-properties loc)
-                               'filename file)
-                    (cut update-expression <>
-                         old-version version old-hash hash))
-                   version)
+              ;; Be sure to use absolute filename.  Replace the URL directory
+              ;; when OLD-URL is available; this is useful notably for
+              ;; mirror://cpan/ URLs where the directory may change as a
+              ;; function of the person who uploads the package.  Note that
+              ;; package definitions usually concatenate fragments of the URL,
+              ;; which is why we only attempt to replace a subset of the URL.
+              (let ((properties (assq-set! (location->source-properties loc)
+                                           'filename file))
+                    (replacements `((,old-version . ,version)
+                                    (,old-hash . ,hash)
+                                    ,@(if (and old-url new-url)
+                                          `((,(dirname old-url) .
+                                             ,(dirname new-url)))
+                                          '()))))
+                (and (edit-expression properties
+                                      (cut update-expression <> replacements))
+                     version))
               (begin
                 (warning (G_ "~a: could not locate source file")
                          (location-file loc))
diff --git a/po/doc/guix-manual.de.po b/po/doc/guix-manual.de.po
index 4784f5b74f..d6141a8c2f 100644
--- a/po/doc/guix-manual.de.po
+++ b/po/doc/guix-manual.de.po
@@ -1,15 +1,15 @@
 # German translation of the Guix user manual.
-# Copyright (C) 2018 the authors of Guix (msgids)
+# Copyright (C) 2018-2019 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.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: guix-manual 0.16.0.1\n"
+"Project-Id-Version: guix-manual 1.0.0-pre1\n"
 "Report-Msgid-Bugs-To: ludo@gnu.org\n"
-"POT-Creation-Date: 2018-11-28 22:35+0100\n"
-"PO-Revision-Date: 2019-03-10 00:46+0100\n"
+"POT-Creation-Date: 2019-04-24 13:22+0200\n"
+"PO-Revision-Date: 2019-04-12 11:52+0200\n"
 "Last-Translator: Florian Pelz <pelzflorian@pelzflorian.de>\n"
 "Language-Team: German <translation-team-de@lists.sourceforge.net>\n"
 "Language: de\n"
@@ -18,12 +18,11 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "X-Bugs: Report translation errors to the Language-Team address.\n"
 
-#. #-#-#-#-#  contributing.pot (guix 0.16.0tp2)  #-#-#-#-#
+#. #-#-#-#-#  contributing.pot (guix 1.0.0-pre2)  #-#-#-#-#
 #. type: chapter
-#. #-#-#-#-#  guix.pot (guix 0.15.0.3784-e9926-dirty)  #-#-#-#-#
+#. #-#-#-#-#  guix.pot (guix 1.0.0-pre2)  #-#-#-#-#
 #. type: menuentry
-#: doc/contributing.texi:1 doc/contributing.texi:2 doc/guix.texi:122
-#: doc/guix.texi:298
+#: doc/contributing.texi:1 doc/contributing.texi:2 doc/guix.texi:134
 #, no-wrap
 msgid "Contributing"
 msgstr "Mitwirken"
@@ -31,7 +30,7 @@ msgstr "Mitwirken"
 #. 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 "Dieses Projekt basiert auf Kooperation, daher benötigen wir Ihre Hilfe, um es wachsen zu lassen! Bitte kontaktieren Sie uns auf @email{guix-devel@@gnu.org} und @code{#guix} im Freenode-IRC-Netzwerk. Wir freuen uns auf Ihre Ideen, Fehlerberichte, Patches und alles, was hilfreich für das Projekt sein könnte. Besonders willkommen ist Hilfe bei der Erstellung von Paketen (@pxref{Packaging Guidelines})."
+msgstr "Dieses Projekt basiert auf Kooperation, daher benötigen wir Ihre Hilfe, um es wachsen zu lassen! Bitte kontaktieren Sie uns auf @email{guix-devel@@gnu.org} und @code{#guix} im Freenode-IRC-Netzwerk. Wir freuen uns auf Ihre Ideen, Fehlerberichte, Patches und alles, was hilfreich für das Projekt sein könnte. Besonders willkommen ist Hilfe bei der Erstellung von Paketen (siehe @ref{Packaging Guidelines})."
 
 #. type: cindex
 #: doc/contributing.texi:10
@@ -55,204 +54,200 @@ msgstr "Wir möchten eine angenehme, freundliche und von Belästigungen freie Um
 msgid "Contributors are not required to use their legal name in patches and on-line communication; they can use any name or pseudonym of their choice."
 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."
 
-#. #-#-#-#-#  contributing.pot (guix 0.16.0tp2)  #-#-#-#-#
 #. type: section
-#. #-#-#-#-#  guix.pot (guix 0.15.0.3784-e9926-dirty)  #-#-#-#-#
-#. type: menuentry
-#: doc/contributing.texi:28 doc/contributing.texi:30 doc/contributing.texi:31
-#: doc/guix.texi:304
+#: doc/contributing.texi:29 doc/contributing.texi:31 doc/contributing.texi:32
 #, no-wrap
 msgid "Building from Git"
 msgstr "Erstellung aus dem Git"
 
 #. type: menuentry
-#: doc/contributing.texi:28 doc/guix.texi:304
+#: doc/contributing.texi:29
 msgid "The latest and greatest."
 msgstr "Das Neueste und Beste."
 
-#. #-#-#-#-#  contributing.pot (guix 0.16.0tp2)  #-#-#-#-#
 #. type: section
-#. #-#-#-#-#  guix.pot (guix 0.15.0.3784-e9926-dirty)  #-#-#-#-#
-#. type: menuentry
-#: doc/contributing.texi:28 doc/contributing.texi:102
-#: doc/contributing.texi:103 doc/guix.texi:304
+#: doc/contributing.texi:29 doc/contributing.texi:103
+#: doc/contributing.texi:104
 #, no-wrap
 msgid "Running Guix Before It Is Installed"
 msgstr "Guix vor der Installation ausführen"
 
 #. type: menuentry
-#: doc/contributing.texi:28 doc/guix.texi:304
+#: doc/contributing.texi:29
 msgid "Hacker tricks."
 msgstr "Hacker-Tricks."
 
-#. #-#-#-#-#  contributing.pot (guix 0.16.0tp2)  #-#-#-#-#
 #. type: section
-#. #-#-#-#-#  guix.pot (guix 0.15.0.3784-e9926-dirty)  #-#-#-#-#
-#. type: menuentry
-#: doc/contributing.texi:28 doc/contributing.texi:166
-#: doc/contributing.texi:167 doc/guix.texi:304
+#: doc/contributing.texi:29 doc/contributing.texi:167
+#: doc/contributing.texi:168
 #, no-wrap
 msgid "The Perfect Setup"
 msgstr "Perfekt eingerichtet"
 
 #. type: menuentry
-#: doc/contributing.texi:28 doc/guix.texi:304
+#: doc/contributing.texi:29
 msgid "The right tools."
 msgstr "Die richtigen Werkzeuge."
 
-#. #-#-#-#-#  contributing.pot (guix 0.16.0tp2)  #-#-#-#-#
 #. type: section
-#. #-#-#-#-#  guix.pot (guix 0.15.0.3784-e9926-dirty)  #-#-#-#-#
+#: doc/contributing.texi:29 doc/contributing.texi:231
+#: doc/contributing.texi:232
+#, no-wrap
+msgid "Packaging Guidelines"
+msgstr "Paketrichtlinien"
+
 #. type: menuentry
-#: doc/contributing.texi:28 doc/contributing.texi:226
-#: doc/contributing.texi:227 doc/guix.texi:304 doc/guix.texi:306
+#: doc/contributing.texi:29
+msgid "Growing the distribution."
+msgstr "Die Distribution wachsen lassen."
+
+#. type: section
+#: doc/contributing.texi:29 doc/contributing.texi:680
+#: doc/contributing.texi:681
 #, no-wrap
 msgid "Coding Style"
 msgstr "Code-Stil"
 
 #. type: menuentry
-#: doc/contributing.texi:28 doc/guix.texi:304
+#: doc/contributing.texi:29
 msgid "Hygiene of the contributor."
 msgstr "Wie Mitwirkende hygienisch arbeiten."
 
-#. #-#-#-#-#  contributing.pot (guix 0.16.0tp2)  #-#-#-#-#
 #. type: section
-#. #-#-#-#-#  guix.pot (guix 0.15.0.3784-e9926-dirty)  #-#-#-#-#
-#. type: menuentry
-#: doc/contributing.texi:28 doc/contributing.texi:324
-#: doc/contributing.texi:325 doc/guix.texi:304
+#: doc/contributing.texi:29 doc/contributing.texi:778
+#: doc/contributing.texi:779
 #, no-wrap
 msgid "Submitting Patches"
 msgstr "Einreichen von Patches"
 
 #. type: menuentry
-#: doc/contributing.texi:28 doc/guix.texi:304
+#: doc/contributing.texi:29
 msgid "Share your work."
 msgstr "Teilen Sie Ihre Arbeit."
 
 #. type: Plain text
-#: doc/contributing.texi:35
+#: doc/contributing.texi:36
 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:38
+#: doc/contributing.texi:39
 #, 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/contributing.texi:43
+#: 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 "Wenn Sie Guix aus einem Checkout erstellen, sind außer den bereits in den Installationsanweisungen genannten Paketen weitere nötig (@pxref{Requirements})."
+msgstr "Wenn Sie Guix aus einem Checkout erstellen, sind außer den bereits in den Installationsanweisungen genannten Paketen weitere nötig (siehe @ref{Requirements})."
 
 #. type: item
-#: doc/contributing.texi:45
+#: doc/contributing.texi:46
 #, no-wrap
 msgid "@url{http://gnu.org/software/autoconf/, GNU Autoconf};"
 msgstr "@url{http://gnu.org/software/autoconf/, GNU Autoconf};"
 
 #. type: item
-#: doc/contributing.texi:46
+#: doc/contributing.texi:47
 #, no-wrap
 msgid "@url{http://gnu.org/software/automake/, GNU Automake};"
 msgstr "@url{http://gnu.org/software/automake/, GNU Automake};"
 
 #. type: item
-#: doc/contributing.texi:47
+#: doc/contributing.texi:48
 #, no-wrap
 msgid "@url{http://gnu.org/software/gettext/, GNU Gettext};"
 msgstr "@url{http://gnu.org/software/gettext/, GNU Gettext};"
 
 #. type: item
-#: doc/contributing.texi:48
+#: doc/contributing.texi:49
 #, no-wrap
 msgid "@url{http://gnu.org/software/texinfo/, GNU Texinfo};"
 msgstr "@url{http://gnu.org/software/texinfo/, GNU Texinfo};"
 
 #. type: item
-#: doc/contributing.texi:49
+#: doc/contributing.texi:50
 #, no-wrap
 msgid "@url{http://www.graphviz.org/, Graphviz};"
 msgstr "@url{http://www.graphviz.org/, Graphviz};"
 
 #. type: item
-#: doc/contributing.texi:50
+#: doc/contributing.texi:51
 #, no-wrap
 msgid "@url{http://www.gnu.org/software/help2man/, GNU Help2man (optional)}."
 msgstr "@url{http://www.gnu.org/software/help2man/, GNU Help2man (optional)}."
 
 #. type: Plain text
-#: doc/contributing.texi:57
+#: 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 "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:60
+#: doc/contributing.texi:61
 #, no-wrap
 msgid "guix environment guix\n"
 msgstr "guix environment guix\n"
 
 #. type: Plain text
-#: doc/contributing.texi:64
+#: 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 "In @xref{Invoking guix environment} finden Sie weitere Informationen zu diesem Befehl. Zusätzliche Abhängigkeiten können mit @option{--ad-hoc} hinzugefügt werden:"
+msgstr "In @ref{Invoking guix environment} finden Sie weitere Informationen zu diesem Befehl. Zusätzliche Abhängigkeiten können mit @option{--ad-hoc} hinzugefügt werden:"
 
 #. type: example
-#: doc/contributing.texi:67
+#: doc/contributing.texi:68
 #, no-wrap
 msgid "guix environment guix --ad-hoc help2man git strace\n"
 msgstr "guix environment guix --ad-hoc help2man git strace\n"
 
 #. type: Plain text
-#: doc/contributing.texi:71
+#: doc/contributing.texi:72
 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 erstellen. Möglicherweise erhalten Sie eine Fehlermeldung wie diese:"
+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:74
+#: doc/contributing.texi:75
 #, 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:83
+#: doc/contributing.texi:84
 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:86
+#: doc/contributing.texi:87
 #, no-wrap
 msgid "export ACLOCAL_PATH=/usr/share/aclocal\n"
 msgstr "export ACLOCAL_PATH=/usr/share/aclocal\n"
 
 #. type: Plain text
-#: doc/contributing.texi:90
+#: doc/contributing.texi:91
 msgid "@xref{Macro Search Path,,, automake, The GNU Automake Manual}, for more information."
-msgstr "In @xref{Macro Search Path,,, automake, The GNU Automake Manual} finden Sie weitere Informationen."
+msgstr "In @ref{Macro Search Path,,, automake, The GNU Automake Manual} finden Sie weitere Informationen."
 
 #. type: Plain text
-#: doc/contributing.texi:95
+#: 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 "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 auf @pxref{The Store})."
+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})."
 
 #. type: Plain text
-#: doc/contributing.texi:100
+#: doc/contributing.texi:101
 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 (@pxref{Running the Test Suite}). Falls etwas fehlschlägt, werfen Sie einen Blick auf die Installationsanweisungen (@pxref{Installation}) oder senden Sie eine E-Mail an die @email{guix-devel@@gnu.org, Mailingliste}."
+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:109
+#: doc/contributing.texi:110
 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:120
+#: 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 "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 (@pxref{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.}:"
+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.}:"
 
 #. type: example
-#: doc/contributing.texi:124
+#: doc/contributing.texi:125
 #, no-wrap
 msgid ""
 "$ sudo -E ./pre-inst-env guix-daemon --build-users-group=guixbuild\n"
@@ -262,12 +257,12 @@ msgstr ""
 "$ ./pre-inst-env guix build hello\n"
 
 #. type: Plain text
-#: doc/contributing.texi:128
+#: doc/contributing.texi:129
 msgid "Similarly, for a Guile session using the Guix modules:"
 msgstr "Entsprechend, um eine Guile-Sitzung zu öffnen, die die Guix-Module benutzt:"
 
 #. type: example
-#: doc/contributing.texi:131
+#: doc/contributing.texi:132
 #, no-wrap
 msgid ""
 "$ ./pre-inst-env guile -c '(use-modules (guix utils)) (pk (%current-system))'\n"
@@ -277,30 +272,30 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/contributing.texi:133
+#: doc/contributing.texi:134
 #, no-wrap
 msgid ";;; (\"x86_64-linux\")\n"
 msgstr ";;; (\"x86_64-linux\")\n"
 
 #. type: cindex
-#: doc/contributing.texi:136
+#: doc/contributing.texi:137
 #, no-wrap
 msgid "REPL"
 msgstr "REPL"
 
 #. type: cindex
-#: doc/contributing.texi:137
+#: doc/contributing.texi:138
 #, no-wrap
 msgid "read-eval-print loop"
 msgstr "Lese-Auswerten-Schreiben-Schleife"
 
 #. type: Plain text
-#: doc/contributing.texi:140
+#: doc/contributing.texi:141
 msgid "@dots{} and for a REPL (@pxref{Using Guile Interactively,,, guile, Guile Reference Manual}):"
-msgstr "@dots{} und auf einer REPL (@pxref{Using Guile Interactively,,, guile, Guile Reference Manual}):"
+msgstr "@dots{} und auf einer REPL (siehe @ref{Using Guile Interactively,,, guile, Guile Reference Manual}):"
 
 #. type: example
-#: doc/contributing.texi:155
+#: doc/contributing.texi:156
 #, no-wrap
 msgid ""
 "$ ./pre-inst-env guile\n"
@@ -332,27 +327,33 @@ msgstr ""
 "$1 = 361\n"
 
 #. type: Plain text
-#: doc/contributing.texi:159
+#: doc/contributing.texi:160
 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:164
+#: doc/contributing.texi:165
 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} (@pxref{Invoking guix pull}).  Um Ihren lokalen Quellbaum zu aktualisieren, müssen Sie stattdessen @command{git pull} benutzen."
+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:174
-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}."
-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 (@pxref{Using Guile in Emacs,,, guile, Guile Reference Manual}).  Zunächst brauchen Sie mehr als ein Textverarbeitungsprogramm, Sie brauchen @url{http://www.gnu.org/software/emacs, Emacs}, ermächtigt vom wunderbaren @url{http://nongnu.org/geiser/, Geiser}."
+#: 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:"
+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{http://www.gnu.org/software/emacs, Emacs} zusammen mit den vom wunderbaren @url{http://nongnu.org/geiser/, Geiser} verliehenen Kräften. Um diese zu installieren, können Sie Folgendes ausführen:"
+
+#. type: example
+#: doc/contributing.texi:178
+#, 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:182
+#: doc/contributing.texi:187
 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 (@pxref{Introduction,,, geiser, Geiser User Manual}). Zur bequemen Guix-Entwicklung sollten Sie Guiles Ladepfad so ergänzen, dass die Quelldateien in Ihrem Checkout gefunden werden."
+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:187
+#: doc/contributing.texi:192
 #, no-wrap
 msgid ""
 ";; @r{Assuming the Guix checkout is in ~/src/guix.}\n"
@@ -364,35 +365,35 @@ msgstr ""
 "  (add-to-list 'geiser-guile-load-path \"~/src/guix\"))\n"
 
 #. type: Plain text
-#: doc/contributing.texi:195
+#: 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."
 msgstr "Um den Code tatsächlich zu bearbeiten, bietet Emacs schon einen netten Scheme-Modus. Aber Sie dürfen auch @url{http://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:196
+#: doc/contributing.texi:201
 #, no-wrap
 msgid "code snippets"
 msgstr "Code-Schnipsel"
 
 #. type: cindex
-#: doc/contributing.texi:197
+#: doc/contributing.texi:202
 #, no-wrap
 msgid "templates"
 msgstr "Vorlagen"
 
 #. type: cindex
-#: doc/contributing.texi:198
+#: doc/contributing.texi:203
 #, no-wrap
 msgid "reducing boilerplate"
 msgstr "Tipparbeit sparen"
 
 #. type: Plain text
-#: doc/contributing.texi:205
+#: 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 "Wir bieten auch Vorlagen für häufige Git-Commit-Nachrichten und Paketdefinitionen im Verzeichnis @file{etc/snippets}. Diese Vorlagen können mit @url{http://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:210
+#: doc/contributing.texi:215
 #, no-wrap
 msgid ""
 ";; @r{Assuming the Guix checkout is in ~/src/guix.}\n"
@@ -404,410 +405,1009 @@ msgstr ""
 "  (add-to-list 'yas-snippet-dirs \"~/src/guix/etc/snippets\"))\n"
 
 #. type: Plain text
-#: doc/contributing.texi:218
+#: doc/contributing.texi:223
 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:224
+#: doc/contributing.texi:229
 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:234
+#, no-wrap
+msgid "packages, creating"
+msgstr "Pakete definieren"
+
 #. type: Plain text
-#: doc/contributing.texi:232
-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 (@pxref{Top,,, standards, GNU Coding Standards}). Da diese aber nicht viel über Scheme zu sagen haben, folgen hier einige zusätzliche Regeln."
+#: doc/contributing.texi:238
+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:246
+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:255
+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:261
+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:264
+#, 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
+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:275
+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:278
+#, 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 "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{http://hydra.gnu.org/jobset/gnu/master, unser System zur Kontinuierlichen Integration} auf allen unterstützten Plattformen erstellt."
+
+#. type: cindex
+#: doc/contributing.texi:287
+#, no-wrap
+msgid "substituter"
+msgstr "Substituierer"
+
+#. type: Plain text
+#: doc/contributing.texi:294
+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:305 doc/contributing.texi:307
+#: doc/contributing.texi:308
+#, no-wrap
+msgid "Software Freedom"
+msgstr "Software-Freiheit"
+
+#. type: menuentry
+#: doc/contributing.texi:305
+msgid "What may go into the distribution."
+msgstr "Was in die Distribution aufgenommen werden darf."
+
+#. type: subsection
+#: doc/contributing.texi:305 doc/contributing.texi:335
+#: doc/contributing.texi:336
+#, no-wrap
+msgid "Package Naming"
+msgstr "Paketbenennung"
+
+#. type: menuentry
+#: doc/contributing.texi:305
+msgid "What's in a name?"
+msgstr "Was macht einen Namen aus?"
+
+#. type: subsection
+#: doc/contributing.texi:305 doc/contributing.texi:360
+#: doc/contributing.texi:361
+#, no-wrap
+msgid "Version Numbers"
+msgstr "Versionsnummern"
+
+#. type: menuentry
+#: doc/contributing.texi:305
+msgid "When the name is not enough."
+msgstr "Wenn der Name noch nicht genug ist."
+
+#. type: subsection
+#: doc/contributing.texi:305 doc/contributing.texi:451
+#: doc/contributing.texi:452
+#, no-wrap
+msgid "Synopses and Descriptions"
+msgstr "Zusammenfassungen und Beschreibungen"
+
+#. type: menuentry
+#: doc/contributing.texi:305
+msgid "Helping users find the right package."
+msgstr "Den Nutzern helfen, das richtige Paket zu finden."
 
-#. #-#-#-#-#  contributing.pot (guix 0.16.0tp2)  #-#-#-#-#
 #. type: subsection
-#. #-#-#-#-#  guix.pot (guix 0.15.0.3784-e9926-dirty)  #-#-#-#-#
+#: doc/contributing.texi:305 doc/contributing.texi:531
+#: doc/contributing.texi:532
+#, no-wrap
+msgid "Python Modules"
+msgstr "Python-Module"
+
+#. type: menuentry
+#: doc/contributing.texi:305
+msgid "A touch of British comedy."
+msgstr "Ein Touch britischer Comedy."
+
+#. type: subsection
+#: doc/contributing.texi:305 doc/contributing.texi:606
+#: doc/contributing.texi:607
+#, no-wrap
+msgid "Perl Modules"
+msgstr "Perl-Module"
+
 #. type: menuentry
-#: doc/contributing.texi:238 doc/contributing.texi:240
-#: doc/contributing.texi:241 doc/guix.texi:311
+#: doc/contributing.texi:305
+msgid "Little pearls."
+msgstr "Kleine Perlen."
+
+#. type: subsection
+#: doc/contributing.texi:305 doc/contributing.texi:622
+#: doc/contributing.texi:623
+#, no-wrap
+msgid "Java Packages"
+msgstr "Java-Pakete"
+
+#. type: menuentry
+#: doc/contributing.texi:305
+msgid "Coffee break."
+msgstr "Kaffeepause."
+
+#. type: subsection
+#: doc/contributing.texi:305 doc/contributing.texi:642
+#: doc/contributing.texi:643
+#, no-wrap
+msgid "Fonts"
+msgstr "Schriftarten"
+
+#. type: menuentry
+#: doc/contributing.texi:305
+msgid "Fond of fonts."
+msgstr "Schriften verschriftlicht."
+
+#. type: cindex
+#: doc/contributing.texi:311
+#, no-wrap
+msgid "free software"
+msgstr "freie Software"
+
+#. 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 "Das GNU-Betriebssystem wurde entwickelt, um Menschen Freiheit bei der Nutzung ihrer Rechengeräte zu ermöglichen. GNU ist @dfn{freie Software}, was bedeutet, dass Benutzer die @url{http://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: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 "Außerdem befolgt die GNU-Distribution die @url{http://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:333
+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:338
+#, no-wrap
+msgid "package name"
+msgstr "Paketname"
+
+#. type: Plain text
+#: doc/contributing.texi:346
+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:351
+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:356
+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:358
+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:363
+#, no-wrap
+msgid "package version"
+msgstr "Paketversion"
+
+#. type: Plain text
+#: doc/contributing.texi:372
+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:375
+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:377
+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: example
+#: doc/contributing.texi:389
+#, no-wrap
+msgid ""
+"(define-public gtk+\n"
+"  (package\n"
+"    (name \"gtk+\")\n"
+"    (version \"3.9.12\")\n"
+"    ...))\n"
+"(define-public gtk+-2\n"
+"  (package\n"
+"    (name \"gtk+\")\n"
+"    (version \"2.24.20\")\n"
+"    ...))\n"
+msgstr ""
+"(define-public gtk+\n"
+"  (package\n"
+"    (name \"gtk+\")\n"
+"    (version \"3.9.12\")\n"
+"    ...))\n"
+"(define-public gtk+-2\n"
+"  (package\n"
+"    (name \"gtk+\")\n"
+"    (version \"2.24.20\")\n"
+"    ...))\n"
+
+#. type: Plain text
+#: doc/contributing.texi:391
+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: example
+#: doc/contributing.texi:397
+#, no-wrap
+msgid ""
+"(define-public gtk+-3.8\n"
+"  (package\n"
+"    (name \"gtk+\")\n"
+"    (version \"3.8.2\")\n"
+"    ...))\n"
+msgstr ""
+"(define-public gtk+-3.8\n"
+"  (package\n"
+"    (name \"gtk+\")\n"
+"    (version \"3.8.2\")\n"
+"    ...))\n"
+
+#. type: cindex
+#: doc/contributing.texi:401
+#, no-wrap
+msgid "version number, for VCS snapshots"
+msgstr "Versionsnummer, bei Snapshots aus Versionskontrolle"
+
+#. type: Plain text
+#: doc/contributing.texi:407
+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:415
+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:424
+#, no-wrap
+msgid ""
+"2.0.11-3.cabba9e\n"
+"  ^    ^    ^\n"
+"  |    |    `-- upstream commit ID\n"
+"  |    |\n"
+"  |    `--- Guix package revision\n"
+"  |\n"
+"latest upstream version\n"
+msgstr ""
+"2.0.11-3.cabba9e\n"
+"  ^    ^    ^\n"
+"  |    |    `-- Commit-ID beim Anbieter\n"
+"  |    |\n"
+"  |    `--- Revisionsnummer des Guix-Pakets\n"
+"  |\n"
+"die neueste Version, die der Anbieter veröffentlicht hat\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 "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:"
+
+#. type: example
+#: doc/contributing.texi:449
+#, no-wrap
+msgid ""
+"(define my-package\n"
+"  (let ((commit \"c3f29bc928d5900971f65965feaae59e1272a3f7\")\n"
+"        (revision \"1\"))          ;Guix package revision\n"
+"    (package\n"
+"      (version (git-version \"0.9\" revision commit))\n"
+"      (source (origin\n"
+"                (method git-fetch)\n"
+"                (uri (git-reference\n"
+"                      (url \"git://example.org/my-package.git\")\n"
+"                      (commit commit)))\n"
+"                (sha256 (base32 \"1mbikn@dots{}\"))\n"
+"                (file-name (git-file-name name version))))\n"
+"      ;; @dots{}\n"
+"      )))\n"
+msgstr ""
+"(define mein-paket\n"
+"  (let ((commit \"c3f29bc928d5900971f65965feaae59e1272a3f7\")\n"
+"        (revision \"1\"))          ;Guix-Paketrevision\n"
+"    (package\n"
+"      (version (git-version \"0.9\" revision commit))\n"
+"      (source (origin\n"
+"                (method git-fetch)\n"
+"                (uri (git-reference\n"
+"                      (url \"git://example.org/mein-paket.git\")\n"
+"                      (commit commit)))\n"
+"                (sha256 (base32 \"1mbikn@dots{}\"))\n"
+"                (file-name (git-file-name name version))))\n"
+"      ;; @dots{}\n"
+"      )))\n"
+
+#. type: cindex
+#: doc/contributing.texi:454
+#, no-wrap
+msgid "package description"
+msgstr "Paketbeschreibung"
+
+#. type: cindex
+#: doc/contributing.texi:455
+#, no-wrap
+msgid "package synopsis"
+msgstr "Paketzusammenfassung"
+
+#. type: Plain text
+#: doc/contributing.texi:462
+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:470
+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:480
+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:488
+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:489
+#, no-wrap
+msgid "Texinfo markup, in package descriptions"
+msgstr "Texinfo-Auszeichnungen, in Paketbeschreibungen"
+
+#. type: Plain text
+#: doc/contributing.texi:498
+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: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 "Zusammenfassungen und Beschreibungen werden von Freiwilligen @uref{http://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:509
+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:515
+#, no-wrap
+msgid ""
+"(package\n"
+"  ;; @dots{}\n"
+"  (synopsis \"This is translatable\")\n"
+"  (description (string-append \"This is \" \"*not*\" \" translatable.\")))\n"
+msgstr ""
+"(package\n"
+"  ;; @dots{}\n"
+"  (synopsis \"This is translatable\")\n"
+"  (description (string-append \"This is \" \"*not*\" \" translatable.\")))\n"
+
+#. type: Plain text
+#: doc/contributing.texi:523
+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:528
+#, no-wrap
+msgid ""
+";; TRANSLATORS: \"X11 resize-and-rotate\" should not be translated.\n"
+"(description \"ARandR is designed to provide a simple visual front end\n"
+"for the X11 resize-and-rotate (RandR) extension. @dots{}\")\n"
+msgstr ""
+";; TRANSLATORS: \"X11 resize-and-rotate\" should not be translated.\n"
+"(description \"ARandR is designed to provide a simple visual front end\n"
+"for the X11 resize-and-rotate (RandR) extension. @dots{}\")\n"
+
+#. type: cindex
+#: doc/contributing.texi:534
+#, no-wrap
+msgid "python"
+msgstr "python"
+
+#. type: Plain text
+#: doc/contributing.texi:540
+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."
+
+#. 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 "Manche Module sind nur mit einer Version von Python kompatibel, andere mit beiden. Wenn das Paket Foo nur mit Python 3 kompiliert werden kann, geben wir ihm den Namen @code{python-foo}, wenn es nur mit Python 2 kompilierbar ist, wählen wir den Namen @code{python2-foo}. Ist es mit beiden Versionen kompatibel, erstellen wir zwei Pakete jeweils mit dem entsprechenden Namen."
+
+#. type: Plain text
+#: doc/contributing.texi:552
+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:553
+#, no-wrap
+msgid "Specifying Dependencies"
+msgstr "Abhängigkeiten angeben"
+
+#. type: cindex
+#: doc/contributing.texi:554
+#, no-wrap
+msgid "inputs, for Python packages"
+msgstr "Eingaben, für Python-Pakete"
+
+#. type: Plain text
+#: doc/contributing.texi:559
+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:565
+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."
+
+#. type: itemize
+#: doc/contributing.texi:573
+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:579
+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:587
+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:591
+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:596
+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:602
+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:609
+#, no-wrap
+msgid "perl"
+msgstr "perl"
+
+#. type: Plain text
+#: doc/contributing.texi:620
+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:625
+#, no-wrap
+msgid "java"
+msgstr "java"
+
+#. type: Plain text
+#: doc/contributing.texi:628
+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:634
+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:640
+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:645 doc/guix.texi:1657
+#, no-wrap
+msgid "fonts"
+msgstr "Schriftarten"
+
+#. type: Plain text
+#: doc/contributing.texi:651
+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:655
+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:663
+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:672
+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}."
+
+#. type: Plain text
+#: doc/contributing.texi:678
+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:686
+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:692 doc/contributing.texi:694
+#: doc/contributing.texi:695
 #, no-wrap
 msgid "Programming Paradigm"
 msgstr "Programmierparadigmen"
 
 #. type: menuentry
-#: doc/contributing.texi:238 doc/guix.texi:311
+#: doc/contributing.texi:692
 msgid "How to compose your elements."
 msgstr "Wie Sie Ihre Elemente zusammenstellen."
 
-#. #-#-#-#-#  contributing.pot (guix 0.16.0tp2)  #-#-#-#-#
 #. type: subsection
-#. #-#-#-#-#  guix.pot (guix 0.15.0.3784-e9926-dirty)  #-#-#-#-#
-#. type: menuentry
-#: doc/contributing.texi:238 doc/contributing.texi:247
-#: doc/contributing.texi:248 doc/guix.texi:311
+#: doc/contributing.texi:692 doc/contributing.texi:701
+#: doc/contributing.texi:702
 #, no-wrap
 msgid "Modules"
 msgstr "Module"
 
 #. type: menuentry
-#: doc/contributing.texi:238 doc/guix.texi:311
+#: doc/contributing.texi:692
 msgid "Where to store your code?"
 msgstr "Wo Sie Ihren Code unterbringen."
 
-#. #-#-#-#-#  contributing.pot (guix 0.16.0tp2)  #-#-#-#-#
 #. type: subsection
-#. #-#-#-#-#  guix.pot (guix 0.15.0.3784-e9926-dirty)  #-#-#-#-#
-#. type: menuentry
-#: doc/contributing.texi:238 doc/contributing.texi:258
-#: doc/contributing.texi:259 doc/guix.texi:311
+#: doc/contributing.texi:692 doc/contributing.texi:712
+#: doc/contributing.texi:713
 #, no-wrap
 msgid "Data Types and Pattern Matching"
 msgstr "Datentypen und Mustervergleich"
 
 #. type: menuentry
-#: doc/contributing.texi:238 doc/guix.texi:311
+#: doc/contributing.texi:692
 msgid "Implementing data structures."
 msgstr "Implementierung von Datenstrukturen."
 
-#. #-#-#-#-#  contributing.pot (guix 0.16.0tp2)  #-#-#-#-#
 #. type: subsection
-#. #-#-#-#-#  guix.pot (guix 0.15.0.3784-e9926-dirty)  #-#-#-#-#
-#. type: menuentry
-#: doc/contributing.texi:238 doc/contributing.texi:272
-#: doc/contributing.texi:273 doc/guix.texi:311
+#: doc/contributing.texi:692 doc/contributing.texi:726
+#: doc/contributing.texi:727
 #, no-wrap
 msgid "Formatting Code"
 msgstr "Formatierung von Code"
 
 #. type: menuentry
-#: doc/contributing.texi:238 doc/guix.texi:311
+#: doc/contributing.texi:692
 msgid "Writing conventions."
 msgstr "Schreibkonventionen."
 
 #. type: Plain text
-#: doc/contributing.texi:246
+#: doc/contributing.texi:700
 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:254
+#: doc/contributing.texi:708
 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 @dots{})} 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:257
+#: doc/contributing.texi:711
 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 @dots{})} und nicht in @code{(guix @dots{})} stehen."
 
 #. type: Plain text
-#: doc/contributing.texi:266
+#: doc/contributing.texi:720
 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:271
+#: doc/contributing.texi:725
 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:275
+#: doc/contributing.texi:729
 #, no-wrap
 msgid "formatting code"
 msgstr "Formatierung von Code"
 
 #. type: cindex
-#: doc/contributing.texi:276
+#: doc/contributing.texi:730
 #, no-wrap
 msgid "coding style"
 msgstr "Code-Stil"
 
 #. type: Plain text
-#: doc/contributing.texi:283
+#: 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 "Beim Schreiben von Scheme-Code halten wir uns an die üblichen Gepflogenheiten unter Scheme-Programmierern. Im Allgemeinen bedeutet das, dass wir uns an @url{http://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:290
+#: doc/contributing.texi:744
 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 (@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})."
 
 #. type: cindex
-#: doc/contributing.texi:291
+#: doc/contributing.texi:745
 #, no-wrap
 msgid "indentation, of code"
 msgstr "Einrückung, Code-"
 
 #. type: cindex
-#: doc/contributing.texi:292
+#: doc/contributing.texi:746
 #, no-wrap
 msgid "formatting, of code"
 msgstr "Formatierung, Code-"
 
 #. type: Plain text
-#: doc/contributing.texi:295
+#: doc/contributing.texi:749
 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:298
+#: doc/contributing.texi:752
 #, 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:304
+#: doc/contributing.texi:758
 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:307
+#: doc/contributing.texi:761
 #, 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:309
+#: doc/contributing.texi:763
 #, no-wrap
 msgid "Vim, Scheme code editing"
 msgstr "Vim, zum Editieren von Scheme-Code"
 
 #. type: Plain text
-#: doc/contributing.texi:315
+#: doc/contributing.texi:769
 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:319
+#: doc/contributing.texi:773
 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 @dots{})} aufgeweicht werden."
 
 #. type: Plain text
-#: doc/contributing.texi:322
+#: doc/contributing.texi:776
 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:331
+#: 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 "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."
 
 #. type: Plain text
-#: doc/contributing.texi:338
+#: 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 "Diese Mailing-Liste setzt auf einer Debbugs-Instanz auf, die zugänglich ist unter @uref{https://bugs.gnu.org/guix-patches}, wodurch wir den Überblick über Eingereichtes behalten können. Jede an diese Mailing-Liste gesendete Nachricht bekommt eine neue Folgenummer zugewiesen, so dass man eine Folge-Email zur Einreichung an @code{@var{NNN}@@debbugs.gnu.org} senden kann, wobei @var{NNN} für die Folgenummer steht (@pxref{Sending a Patch Series})."
+msgstr "Diese Mailing-Liste setzt auf einer Debbugs-Instanz auf, die zugänglich ist unter @uref{https://bugs.gnu.org/guix-patches}, wodurch wir den Überblick über Eingereichtes behalten können. Jede an diese Mailing-Liste gesendete Nachricht bekommt eine neue Folgenummer zugewiesen, so dass man eine Folge-Email 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:342
+#: doc/contributing.texi:796
 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 (@pxref{Change Logs,,, standards, GNU Coding Standards}); dazu finden Sie Beispiele unter den bisherigen Commits."
+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:345
+#: doc/contributing.texi:799
 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:352
+#: doc/contributing.texi:806
 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 kryptographische Signatur 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."
+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:356
+#: doc/contributing.texi:810
 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 @xref{Synopses and Descriptions} finden Sie dazu einige Richtlinien."
+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:361
+#: doc/contributing.texi:815
 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 (@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:365
+#: doc/contributing.texi:819
 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:826
+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: example
+#: doc/contributing.texi:832
+#, 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"
+msgstr ""
+"(service qemu-binfmt-service-type\n"
+" (qemu-binfmt-configuration\n"
+"   (platforms (lookup-qemu-platforms \"arm\" \"aarch64\" \"mips64el\"))\n"
+"   (guix-support? #t)))\n"
+
+#. type: enumerate
+#: doc/contributing.texi:835
+msgid "Then reconfigure your system."
+msgstr "Rekonfigurieren Sie anschließend Ihr System."
+
+#. type: enumerate
+#: doc/contributing.texi:840
+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:844
+#, 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:367
+#: doc/contributing.texi:847
 #, no-wrap
 msgid "bundling"
 msgstr "gebündelt"
 
 #. type: enumerate
-#: doc/contributing.texi:370
+#: doc/contributing.texi:850
 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:379
+#: doc/contributing.texi:859
 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:386
-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."
-msgstr "Schauen Sie sich das von @command{guix size} ausgegebene Profil an (@pxref{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 (@pxref{Packages with Multiple Outputs}) und welche optionalen Abhängigkeiten verwendet werden sollten."
+#: doc/contributing.texi:868
+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:391
+#: doc/contributing.texi:873
 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 (@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:393
+#: doc/contributing.texi:875
 #, no-wrap
 msgid "branching strategy"
 msgstr "Branching-Strategie"
 
 #. type: cindex
-#: doc/contributing.texi:394
+#: doc/contributing.texi:876
 #, no-wrap
 msgid "rebuild scheduling strategy"
 msgstr "Neuerstellungs-Zeitplan"
 
 #. type: enumerate
-#: doc/contributing.texi:397
+#: doc/contributing.texi:879
 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:"
 
 #. type: item
-#: doc/contributing.texi:399
+#: doc/contributing.texi:881
 #, no-wrap
 msgid "300 dependent packages or less"
 msgstr "300 abhängige Pakete oder weniger"
 
 #. type: table
-#: doc/contributing.texi:401
+#: doc/contributing.texi:883
 msgid "@code{master} branch (non-disruptive changes)."
 msgstr "@code{master}-Branch (störfreie Änderungen)."
 
 #. type: item
-#: doc/contributing.texi:402
+#: doc/contributing.texi:884
 #, no-wrap
 msgid "between 300 and 1,200 dependent packages"
 msgstr "zwischen 300 und 1200 abhängige Pakete"
 
 #. type: table
-#: doc/contributing.texi:407
+#: 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 "@code{staging}-Branch (störfreie Änderungen). Dieser Branch wird circa alle 3 Wochen in @code{master} gemerget. Themenbezogene Änderungen (z.B. eine Aktualisierung der GNOME-Plattform) können stattdessen auch auf einem eigenen Branch umgesetzt werden (wie @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})."
 
 #. type: item
-#: doc/contributing.texi:408
+#: doc/contributing.texi:890
 #, no-wrap
 msgid "more than 1,200 dependent packages"
 msgstr "mehr als 1200 abhängige Pakete"
 
 #. type: table
-#: doc/contributing.texi:412
+#: 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 "@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."
 
 #. type: enumerate
-#: doc/contributing.texi:419
+#: 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 "All diese Branches werden kontinuierlich @uref{https://hydra.gnu.org/project/gnu, auf unserer Build-Farm} 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:426
+#: doc/contributing.texi:908
 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:428
+#: doc/contributing.texi:910
 #, no-wrap
 msgid "determinism, of build processes"
 msgstr "Determinismus, von Erstellungsprozessen"
 
 #. type: cindex
-#: doc/contributing.texi:429
+#: doc/contributing.texi:911
 #, no-wrap
 msgid "reproducible builds, checking"
 msgstr "Reproduzierbare Erstellungen, Überprüfung"
 
 #. type: enumerate
-#: doc/contributing.texi:433
+#: doc/contributing.texi:915
 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:436
+#: doc/contributing.texi:918
 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 (@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:439
+#: doc/contributing.texi:921
 #, no-wrap
 msgid "guix build --rounds=2 my-package\n"
 msgstr "guix build --rounds=2 mein-paket\n"
 
 #. type: enumerate
-#: doc/contributing.texi:443
+#: doc/contributing.texi:925
 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:453
-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{hydra.gnu.org} 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} (@pxref{Invoking guix challenge}) zu benutzen. Sie können es ausführen, sobald ein Paket commitet und von @code{hydra.gnu.org} 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."
+#: doc/contributing.texi:935
+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:459
+#: doc/contributing.texi:941
 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."
+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:463
+#: doc/contributing.texi:945
 msgid "Verify that your patch contains only one set of related changes.  Bundling unrelated changes together makes reviewing harder and slower."
 msgstr "Stelllen 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:466
+#: doc/contributing.texi:948
 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:471
+#: doc/contributing.texi:953
 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} (@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:479
+#: doc/contributing.texi:961
 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 (@pxref{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."
+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: Plain text
-#: doc/contributing.texi:489
+#: 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 "Bitte benutzen Sie @samp{[PATCH] @dots{}} 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 (@pxref{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."
+msgstr "Bitte benutzen Sie @samp{[PATCH] @dots{}} 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."
 
 #. type: Plain text
-#: doc/contributing.texi:492
+#: doc/contributing.texi:974
 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:493 doc/contributing.texi:495
+#: doc/contributing.texi:975 doc/contributing.texi:977
 #, no-wrap
 msgid "Sending a Patch Series"
 msgstr "Senden einer Patch-Reihe"
 
 #. type: cindex
-#: doc/contributing.texi:495
+#: doc/contributing.texi:977
 #, no-wrap
 msgid "patch series"
 msgstr "Patch-Reihe"
 
 #. type: code{#1}
-#: doc/contributing.texi:496
+#: doc/contributing.texi:978
 #, no-wrap
 msgid "git send-email"
 msgstr "git send-email"
 
 #. type: code{#1}
-#: doc/contributing.texi:497
+#: doc/contributing.texi:979
 #, no-wrap
 msgid "git-send-email"
 msgstr "git-send-email"
 
 #. type: Plain text
-#: doc/contributing.texi:505
+#: 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 "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."
+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."
 
 #. type: Plain text
 #: doc/guix.texi:7
@@ -818,7 +1418,7 @@ msgstr ""
 "@frenchspacing on"
 
 #. type: title
-#: doc/guix.texi:7 doc/guix.texi:83
+#: doc/guix.texi:7 doc/guix.texi:87
 #, no-wrap
 msgid "GNU Guix Reference Manual"
 msgstr "Referenzhandbuch zu GNU Guix"
@@ -830,1885 +1430,1961 @@ msgid "version.texi"
 msgstr "version-de.texi"
 
 #. type: copying
-#: doc/guix.texi:57
-msgid "Copyright @copyright{} 2012, 2013, 2014, 2015, 2016, 2017, 2018 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 Ricardo Wurmus@* Copyright @copyright{} 2016 Ben Woodcroft@* Copyright @copyright{} 2016, 2017, 2018 Chris Marusich@* Copyright @copyright{} 2016, 2017, 2018 Efraim Flashner@* Copyright @copyright{} 2016 John Darrington@* Copyright @copyright{} 2016, 2017 Nils Gillmann@* Copyright @copyright{} 2016, 2017, 2018 Jan Nieuwenhuizen@* Copyright @copyright{} 2016 Julien Lepiller@* Copyright @copyright{} 2016 Alex ter Weele@* 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 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@*"
-msgstr "Copyright @copyright{} 2012, 2013, 2014, 2015, 2016, 2017, 2018 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 Ricardo Wurmus@* Copyright @copyright{} 2016 Ben Woodcroft@* Copyright @copyright{} 2016, 2017, 2018 Chris Marusich@* Copyright @copyright{} 2016, 2017, 2018 Efraim Flashner@* Copyright @copyright{} 2016 John Darrington@* Copyright @copyright{} 2016, 2017 Nils Gillmann@* Copyright @copyright{} 2016, 2017, 2018 Jan Nieuwenhuizen@* Copyright @copyright{} 2016 Julien Lepiller@* Copyright @copyright{} 2016 Alex ter Weele@* 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 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@*"
+#: doc/guix.texi:61
+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@*"
+msgstr "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@*"
 
 #. type: copying
-#: doc/guix.texi:64
+#: doc/guix.texi:68
 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:66
+#: doc/guix.texi:70
 #, no-wrap
 msgid "System administration"
 msgstr "Systemadministration"
 
 #. type: menuentry
-#: doc/guix.texi:73
+#: doc/guix.texi:77
 msgid "Guix: (guix)"
 msgstr "Guix: (guix.de)"
 
 #. type: menuentry
-#: doc/guix.texi:73
+#: doc/guix.texi:77
 msgid "Manage installed software and system configuration."
 msgstr "Installierte Software und Systemkonfigurationen verwalten."
 
 #. type: menuentry
-#: doc/guix.texi:73
+#: doc/guix.texi:77
 msgid "guix package: (guix)Invoking guix package"
 msgstr "guix package: (guix.de)guix package aufrufen"
 
 #. type: menuentry
-#: doc/guix.texi:73
+#: doc/guix.texi:77
 msgid "Installing, removing, and upgrading packages."
 msgstr "Pakete installieren, entfernen und aktualisieren."
 
 #. type: menuentry
-#: doc/guix.texi:73
+#: doc/guix.texi:77
 msgid "guix gc: (guix)Invoking guix gc"
 msgstr "guix gc: (guix.de)guix gc aufrufen"
 
 #. type: menuentry
-#: doc/guix.texi:73
+#: doc/guix.texi:77
 msgid "Reclaiming unused disk space."
 msgstr "Unbenutzten Plattenspeicher wieder freigeben."
 
 #. type: menuentry
-#: doc/guix.texi:73
+#: doc/guix.texi:77
 msgid "guix pull: (guix)Invoking guix pull"
 msgstr "guix pull: (guix.de)guix pull aufrufen"
 
 #. type: menuentry
-#: doc/guix.texi:73
+#: doc/guix.texi:77
 msgid "Update the list of available packages."
 msgstr "Die Liste verfügbarer Pakete aktualisieren."
 
 #. type: menuentry
-#: doc/guix.texi:73
+#: doc/guix.texi:77
 msgid "guix system: (guix)Invoking guix system"
 msgstr "guix system: (guix.de)guix system aufrufen"
 
 #. type: menuentry
-#: doc/guix.texi:73
+#: doc/guix.texi:77
 msgid "Manage the operating system configuration."
 msgstr "Die Betriebssystemkonfiguration verwalten."
 
 #. type: dircategory
-#: doc/guix.texi:75
+#: doc/guix.texi:79
 #, no-wrap
 msgid "Software development"
 msgstr "Softwareentwicklung"
 
 #. type: menuentry
-#: doc/guix.texi:80
+#: doc/guix.texi:84
 msgid "guix environment: (guix)Invoking guix environment"
 msgstr "guix environment: (guix.de)guix environment aufrufen"
 
 #. type: menuentry
-#: doc/guix.texi:80
+#: doc/guix.texi:84
 msgid "Building development environments with Guix."
 msgstr "Umgebungen für Entwickler erstellen"
 
 #. type: menuentry
-#: doc/guix.texi:80
+#: doc/guix.texi:84
 msgid "guix build: (guix)Invoking guix build"
 msgstr "guix build: (guix.de)guix build aufrufen"
 
 #. type: menuentry
-#: doc/guix.texi:80
+#: doc/guix.texi:84
 msgid "Building packages."
 msgstr "Erstellen von Paketen."
 
 #. type: menuentry
-#: doc/guix.texi:80
+#: doc/guix.texi:84
 msgid "guix pack: (guix)Invoking guix pack"
 msgstr "guix pack: (guix.de)guix pack aufrufen"
 
 #. type: menuentry
-#: doc/guix.texi:80
+#: doc/guix.texi:84
 msgid "Creating binary bundles."
 msgstr "Bündel aus Binärdateien erstellen."
 
 #. type: subtitle
-#: doc/guix.texi:84
+#: doc/guix.texi:88
 #, no-wrap
 msgid "Using the GNU Guix Functional Package Manager"
 msgstr "Den funktionalen Paketmanager GNU Guix benutzen"
 
 #. type: author
-#: doc/guix.texi:85
+#: doc/guix.texi:89
 #, no-wrap
 msgid "The GNU Guix Developers"
 msgstr "Die GNU-Guix-Entwickler"
 
 #. type: titlepage
-#: doc/guix.texi:91
+#: doc/guix.texi:95
 msgid "Edition @value{EDITION} @* @value{UPDATED} @*"
 msgstr "Edition @value{EDITION} @* @value{UPDATED} @*"
 
 #. type: node
-#: doc/guix.texi:98
+#: doc/guix.texi:102
 #, no-wrap
 msgid "Top"
 msgstr "Top"
 
 #. type: top
-#: doc/guix.texi:99
+#: doc/guix.texi:103
 #, no-wrap
 msgid "GNU Guix"
 msgstr "GNU Guix"
 
 #. type: Plain text
-#: doc/guix.texi:103
+#: doc/guix.texi:107
 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:113
-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 "Dieses Handbuch ist auch auf Englisch (@pxref{Top,,, guix, GNU Guix Reference Manual}) und Französisch verfügbar (@pxref{Top,,, guix.fr, Manuel de référence de 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."
+#: doc/guix.texi:118
+#, fuzzy
+#| 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}."
+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}."
+msgstr "Dieses Handbuch ist auch auf Englisch (siehe @ref{Top,,, guix, GNU Guix Reference Manual}) und Französisch verfügbar (siehe @ref{Top,,, guix.fr, Manuel de référence de 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:122 doc/guix.texi:316 doc/guix.texi:317
+#: doc/guix.texi:134 doc/guix.texi:144 doc/guix.texi:307 doc/guix.texi:308
 #, no-wrap
 msgid "Introduction"
 msgstr "Einführung"
 
 #. type: menuentry
-#: doc/guix.texi:122
+#: doc/guix.texi:134
 msgid "What is Guix about?"
 msgstr "Was ist Guix überhaupt?"
 
 #. type: chapter
-#: doc/guix.texi:122 doc/guix.texi:132 doc/guix.texi:390 doc/guix.texi:391
+#: doc/guix.texi:134 doc/guix.texi:149 doc/guix.texi:466 doc/guix.texi:467
 #, no-wrap
 msgid "Installation"
 msgstr "Installation"
 
 #. type: menuentry
-#: doc/guix.texi:122
+#: doc/guix.texi:134
 msgid "Installing Guix."
 msgstr "Guix installieren."
 
 #. type: chapter
-#: doc/guix.texi:122 doc/guix.texi:147 doc/guix.texi:1695 doc/guix.texi:1696
+#: doc/guix.texi:134 doc/guix.texi:164 doc/guix.texi:1760 doc/guix.texi:1761
+#, no-wrap
+msgid "System Installation"
+msgstr "Systeminstallation"
+
+#. type: menuentry
+#: doc/guix.texi:134
+msgid "Installing the whole operating system."
+msgstr "Das ganze Betriebssystem installieren."
+
+#. type: chapter
+#: doc/guix.texi:134 doc/guix.texi:181 doc/guix.texi:2471 doc/guix.texi:2472
 #, no-wrap
 msgid "Package Management"
 msgstr "Paketverwaltung"
 
 #. type: menuentry
-#: doc/guix.texi:122
+#: doc/guix.texi:134
 msgid "Package installation, upgrade, etc."
 msgstr "Pakete installieren, aktualisieren usw."
 
 #. type: chapter
-#: doc/guix.texi:122 doc/guix.texi:170 doc/guix.texi:3687 doc/guix.texi:3688
+#: doc/guix.texi:134 doc/guix.texi:203 doc/guix.texi:4303 doc/guix.texi:4304
+#, no-wrap
+msgid "Development"
+msgstr "Entwicklung"
+
+#. type: menuentry
+#: doc/guix.texi:134
+msgid "Guix-aided software development."
+msgstr "Von Guix unterstützte Softwareentwicklung."
+
+#. type: chapter
+#: doc/guix.texi:134 doc/guix.texi:208 doc/guix.texi:4927 doc/guix.texi:4928
 #, no-wrap
 msgid "Programming Interface"
 msgstr "Programmierschnittstelle"
 
 #. type: menuentry
-#: doc/guix.texi:122
+#: doc/guix.texi:134
 msgid "Using Guix in Scheme."
 msgstr "Guix in Scheme verwenden."
 
 #. type: chapter
-#: doc/guix.texi:122 doc/guix.texi:185 doc/guix.texi:6129 doc/guix.texi:6130
+#: doc/guix.texi:134 doc/guix.texi:224 doc/guix.texi:7556 doc/guix.texi:7557
 #, no-wrap
 msgid "Utilities"
 msgstr "Zubehör"
 
 #. type: menuentry
-#: doc/guix.texi:122
+#: doc/guix.texi:134
 msgid "Package management commands."
 msgstr "Befehle zur Paketverwaltung."
 
 #. type: chapter
-#: doc/guix.texi:122 doc/guix.texi:211 doc/guix.texi:8915 doc/guix.texi:8916
+#: doc/guix.texi:134 doc/guix.texi:249 doc/guix.texi:10167 doc/guix.texi:10168
 #, no-wrap
-msgid "GNU Distribution"
-msgstr "GNU-Distribution"
+msgid "System Configuration"
+msgstr "Systemkonfiguration"
+
+#. type: menuentry
+#: doc/guix.texi:134
+msgid "Configuring the operating system."
+msgstr "Das Betriebssystem konfigurieren."
+
+#. type: chapter
+#: doc/guix.texi:134 doc/guix.texi:25235 doc/guix.texi:25236
+#, no-wrap
+msgid "Documentation"
+msgstr "Dokumentation"
+
+#. type: menuentry
+#: doc/guix.texi:134
+msgid "Browsing software user manuals."
+msgstr "Wie man Nutzerhandbücher von Software liest."
+
+#. type: chapter
+#: doc/guix.texi:134 doc/guix.texi:25299 doc/guix.texi:25300
+#, no-wrap
+msgid "Installing Debugging Files"
+msgstr "Dateien zur Fehlersuche installieren"
+
+#. type: menuentry
+#: doc/guix.texi:134
+msgid "Feeding the debugger."
+msgstr "Womit man seinen Debugger füttert."
+
+#. type: chapter
+#: doc/guix.texi:134 doc/guix.texi:25365 doc/guix.texi:25366
+#, no-wrap
+msgid "Security Updates"
+msgstr "Sicherheitsaktualisierungen"
+
+#. type: menuentry
+#: doc/guix.texi:134
+msgid "Deploying security fixes quickly."
+msgstr "Sicherheits-Patches schnell einspielen."
+
+#. type: chapter
+#: doc/guix.texi:134 doc/guix.texi:25485 doc/guix.texi:25486
+#, no-wrap
+msgid "Bootstrapping"
+msgstr "Bootstrapping"
 
 #. type: menuentry
-#: doc/guix.texi:122
-msgid "Software for your friendly GNU system."
-msgstr "Software für Ihr freundliches GNU-System."
+#: doc/guix.texi:134
+msgid "GNU/Linux built from scratch."
+msgstr "GNU/Linux von Grund auf selbst erstellen."
+
+#. type: node
+#: doc/guix.texi:134 doc/guix.texi:25669
+#, no-wrap
+msgid "Porting"
+msgstr "Portierung"
+
+#. type: menuentry
+#: doc/guix.texi:134
+msgid "Targeting another platform or kernel."
+msgstr "Guix auf andere Plattformen und Kernels bringen."
 
 #. type: menuentry
-#: doc/guix.texi:122
+#: doc/guix.texi:134
 msgid "Your help needed!"
 msgstr "Ihre Hilfe ist nötig!"
 
 #. type: chapter
-#: doc/guix.texi:127 doc/guix.texi:24347 doc/guix.texi:24348
+#: doc/guix.texi:139 doc/guix.texi:25717 doc/guix.texi:25718
 #, no-wrap
 msgid "Acknowledgments"
 msgstr "Danksagungen"
 
 #. type: menuentry
-#: doc/guix.texi:127
+#: doc/guix.texi:139
 msgid "Thanks!"
 msgstr "Danke!"
 
 #. type: appendix
-#: doc/guix.texi:127 doc/guix.texi:24369 doc/guix.texi:24370
+#: doc/guix.texi:139 doc/guix.texi:25739 doc/guix.texi:25740
 #, no-wrap
 msgid "GNU Free Documentation License"
 msgstr "GNU-Lizenz für freie Dokumentation"
 
 #. type: menuentry
-#: doc/guix.texi:127
+#: doc/guix.texi:139
 msgid "The license of this manual."
 msgstr "Die Lizenz dieses Handbuchs."
 
 #. type: unnumbered
-#: doc/guix.texi:127 doc/guix.texi:24375 doc/guix.texi:24376
+#: doc/guix.texi:139 doc/guix.texi:25745 doc/guix.texi:25746
 #, no-wrap
 msgid "Concept Index"
 msgstr "Konzeptverzeichnis"
 
 #. type: menuentry
-#: doc/guix.texi:127
+#: doc/guix.texi:139
 msgid "Concepts."
 msgstr "Konzepte."
 
 #. type: unnumbered
-#: doc/guix.texi:127 doc/guix.texi:24379 doc/guix.texi:24380
+#: doc/guix.texi:139 doc/guix.texi:25749 doc/guix.texi:25750
 #, no-wrap
 msgid "Programming Index"
 msgstr "Programmierverzeichnis"
 
 #. type: menuentry
-#: doc/guix.texi:127
+#: doc/guix.texi:139
 msgid "Data types, functions, and variables."
 msgstr "Datentypen, Funktionen und Variable."
 
 #. type: menuentry
-#: doc/guix.texi:130
+#: doc/guix.texi:142
 msgid "--- The Detailed Node Listing ---"
 msgstr "--- Detaillierte Liste der Knoten ---"
 
 #. type: section
-#: doc/guix.texi:139 doc/guix.texi:424 doc/guix.texi:426 doc/guix.texi:427
+#: doc/guix.texi:147 doc/guix.texi:334 doc/guix.texi:336 doc/guix.texi:337
+#, no-wrap
+msgid "Managing Software the Guix Way"
+msgstr "Auf Guix-Art Software verwalten"
+
+#. type: menuentry
+#: doc/guix.texi:147 doc/guix.texi:334
+msgid "What's special."
+msgstr "Was Guix besonders macht."
+
+#. type: section
+#: doc/guix.texi:147 doc/guix.texi:334 doc/guix.texi:391 doc/guix.texi:392
+#, no-wrap
+msgid "GNU Distribution"
+msgstr "GNU-Distribution"
+
+#. type: menuentry
+#: doc/guix.texi:147 doc/guix.texi:334
+msgid "The packages and tools."
+msgstr "Die Pakete und Werkzeuge."
+
+#. type: section
+#: doc/guix.texi:156 doc/guix.texi:505 doc/guix.texi:507 doc/guix.texi:508
 #, no-wrap
 msgid "Binary Installation"
 msgstr "Aus Binärdatei installieren"
 
 #. type: menuentry
-#: doc/guix.texi:139 doc/guix.texi:424
+#: doc/guix.texi:156 doc/guix.texi:505
 msgid "Getting Guix running in no time!"
 msgstr "Guix installieren, ohne Zeit zu verlieren!"
 
 #. type: section
-#: doc/guix.texi:139 doc/guix.texi:424 doc/guix.texi:630 doc/guix.texi:631
+#: doc/guix.texi:156 doc/guix.texi:505 doc/guix.texi:706 doc/guix.texi:707
 #, no-wrap
 msgid "Requirements"
 msgstr "Voraussetzungen"
 
 #. type: menuentry
-#: doc/guix.texi:139 doc/guix.texi:424
+#: doc/guix.texi:156 doc/guix.texi:505
 msgid "Software needed to build and run Guix."
 msgstr "Zum Erstellen und Benutzen von Guix nötige Software."
 
 #. type: section
-#: doc/guix.texi:139 doc/guix.texi:424 doc/guix.texi:717 doc/guix.texi:718
+#: doc/guix.texi:156 doc/guix.texi:505 doc/guix.texi:790 doc/guix.texi:791
 #, no-wrap
 msgid "Running the Test Suite"
-msgstr "Die Testsuite laufen lassen"
+msgstr "Den Testkatalog laufen lassen"
 
 #. type: menuentry
-#: doc/guix.texi:139 doc/guix.texi:424
+#: doc/guix.texi:156 doc/guix.texi:505
 msgid "Testing Guix."
 msgstr "Guix testen."
 
 #. type: section
-#: doc/guix.texi:139 doc/guix.texi:141 doc/guix.texi:424 doc/guix.texi:782
-#: doc/guix.texi:783
+#: doc/guix.texi:156 doc/guix.texi:158 doc/guix.texi:505 doc/guix.texi:855
+#: doc/guix.texi:856
 #, no-wrap
 msgid "Setting Up the Daemon"
 msgstr "Den Daemon einrichten"
 
 #. type: menuentry
-#: doc/guix.texi:139 doc/guix.texi:424
+#: doc/guix.texi:156 doc/guix.texi:505
 msgid "Preparing the build daemon's environment."
 msgstr "Wie man die Umgebung des Erstellungs-Daemons einrichtet."
 
 #. type: node
-#: doc/guix.texi:139 doc/guix.texi:424 doc/guix.texi:1215
+#: doc/guix.texi:156 doc/guix.texi:505 doc/guix.texi:1286
 #, no-wrap
 msgid "Invoking guix-daemon"
 msgstr "Aufruf des guix-daemon"
 
 #. type: menuentry
-#: doc/guix.texi:139 doc/guix.texi:424
+#: doc/guix.texi:156 doc/guix.texi:505
 msgid "Running the build daemon."
 msgstr "Den Erstellungs-Daemon laufen lassen."
 
 #. type: section
-#: doc/guix.texi:139 doc/guix.texi:424 doc/guix.texi:1484 doc/guix.texi:1485
+#: doc/guix.texi:156 doc/guix.texi:505 doc/guix.texi:1554 doc/guix.texi:1555
 #, no-wrap
 msgid "Application Setup"
 msgstr "Anwendungen einrichten"
 
 #. type: menuentry
-#: doc/guix.texi:139 doc/guix.texi:424
+#: doc/guix.texi:156 doc/guix.texi:505
 msgid "Application-specific setup."
 msgstr "Anwendungsspezifische Einstellungen."
 
 #. type: subsection
-#: doc/guix.texi:145 doc/guix.texi:802 doc/guix.texi:804 doc/guix.texi:805
+#: doc/guix.texi:162 doc/guix.texi:875 doc/guix.texi:877 doc/guix.texi:878
 #, no-wrap
 msgid "Build Environment Setup"
 msgstr "Einrichten der Erstellungsumgebung"
 
 #. type: menuentry
-#: doc/guix.texi:145 doc/guix.texi:802
+#: doc/guix.texi:162 doc/guix.texi:875
 msgid "Preparing the isolated build environment."
 msgstr "Die isolierte Umgebung zum Erstellen vorbereiten."
 
 #. type: node
-#: doc/guix.texi:145 doc/guix.texi:802 doc/guix.texi:921
+#: doc/guix.texi:162 doc/guix.texi:875 doc/guix.texi:994
 #, no-wrap
 msgid "Daemon Offload Setup"
 msgstr "Auslagern des Daemons einrichten"
 
 #. type: menuentry
-#: doc/guix.texi:145 doc/guix.texi:802
+#: doc/guix.texi:162 doc/guix.texi:875
 msgid "Offloading builds to remote machines."
 msgstr "Erstellungen auf entfernte Maschinen auslagern."
 
 #. type: subsection
-#: doc/guix.texi:145 doc/guix.texi:802 doc/guix.texi:1129 doc/guix.texi:1130
+#: doc/guix.texi:162 doc/guix.texi:875 doc/guix.texi:1200 doc/guix.texi:1201
 #, no-wrap
 msgid "SELinux Support"
 msgstr "SELinux-Unterstützung"
 
 #. type: menuentry
-#: doc/guix.texi:145 doc/guix.texi:802
+#: doc/guix.texi:162 doc/guix.texi:875
 msgid "Using an SELinux policy for the daemon."
 msgstr "Wie man eine SELinux-Richtlinie für den Daemon einrichtet."
 
 #. type: section
-#: doc/guix.texi:159 doc/guix.texi:1728 doc/guix.texi:1730 doc/guix.texi:1731
+#: doc/guix.texi:174 doc/guix.texi:1236 doc/guix.texi:1794 doc/guix.texi:1796
+#: doc/guix.texi:1797
+#, no-wrap
+msgid "Limitations"
+msgstr "Einschränkungen"
+
+#. type: menuentry
+#: doc/guix.texi:174 doc/guix.texi:1794
+msgid "What you can expect."
+msgstr "Was Sie erwarten dürfen."
+
+#. type: section
+#: doc/guix.texi:174 doc/guix.texi:1794 doc/guix.texi:1825 doc/guix.texi:1826
+#, no-wrap
+msgid "Hardware Considerations"
+msgstr "Hardware-Überlegungen"
+
+#. type: menuentry
+#: doc/guix.texi:174 doc/guix.texi:1794
+msgid "Supported hardware."
+msgstr "Unterstützte Hardware."
+
+#. type: section
+#: doc/guix.texi:174 doc/guix.texi:1794 doc/guix.texi:1860 doc/guix.texi:1861
+#, no-wrap
+msgid "USB Stick and DVD Installation"
+msgstr "Installation von USB-Stick oder DVD"
+
+#. type: menuentry
+#: doc/guix.texi:174 doc/guix.texi:1794
+msgid "Preparing the installation medium."
+msgstr "Das Installationsmedium vorbereiten."
+
+#. type: section
+#: doc/guix.texi:174 doc/guix.texi:1794 doc/guix.texi:1959 doc/guix.texi:1960
+#, no-wrap
+msgid "Preparing for Installation"
+msgstr "Vor der Installation"
+
+#. type: menuentry
+#: doc/guix.texi:174 doc/guix.texi:1794
+msgid "Networking, partitioning, etc."
+msgstr "Netzwerkanbindung, Partitionierung etc."
+
+#. type: section
+#: doc/guix.texi:174 doc/guix.texi:1794 doc/guix.texi:1982 doc/guix.texi:1983
+#, no-wrap
+msgid "Guided Graphical Installation"
+msgstr "Geführte grafische Installation"
+
+#. type: menuentry
+#: doc/guix.texi:174 doc/guix.texi:1794
+msgid "Easy graphical installation."
+msgstr "Leichte grafische Installation."
+
+#. type: section
+#: doc/guix.texi:174 doc/guix.texi:176 doc/guix.texi:1794 doc/guix.texi:2013
+#: doc/guix.texi:2014
+#, no-wrap
+msgid "Manual Installation"
+msgstr "Manuelle Installation"
+
+#. type: menuentry
+#: doc/guix.texi:174 doc/guix.texi:1794
+msgid "Manual installation for wizards."
+msgstr "Manuelle Installation für Zauberer."
+
+#. type: section
+#: doc/guix.texi:174 doc/guix.texi:1794 doc/guix.texi:2356 doc/guix.texi:2357
+#, no-wrap
+msgid "After System Installation"
+msgstr "Nach der Systeminstallation"
+
+#. type: menuentry
+#: doc/guix.texi:174 doc/guix.texi:1794
+msgid "When installation succeeded."
+msgstr "Wenn die Installation erfolgreich war."
+
+#. type: node
+#: doc/guix.texi:174 doc/guix.texi:1794 doc/guix.texi:2384
+#, no-wrap
+msgid "Installing Guix in a VM"
+msgstr "Guix in einer VM installieren"
+
+#. type: menuentry
+#: doc/guix.texi:174 doc/guix.texi:1794
+msgid "Guix System playground."
+msgstr "Ein »Guix System«-Spielplatz."
+
+#. type: section
+#: doc/guix.texi:174 doc/guix.texi:1794 doc/guix.texi:2438 doc/guix.texi:2439
+#, no-wrap
+msgid "Building the Installation Image"
+msgstr "Ein Abbild zur Installation erstellen"
+
+#. type: menuentry
+#: doc/guix.texi:174 doc/guix.texi:1794
+msgid "How this comes to be."
+msgstr "Wie ein solches entsteht."
+
+#. type: node
+#: doc/guix.texi:179 doc/guix.texi:2031 doc/guix.texi:2033
+#, no-wrap
+msgid "Keyboard Layout and Networking and Partitioning"
+msgstr "Tastaturbelegung und Netzwerkanbindung und Partitionierung"
+
+#. type: menuentry
+#: doc/guix.texi:179 doc/guix.texi:2031
+msgid "Initial setup."
+msgstr "Erstes Einrichten."
+
+#. type: subsection
+#: doc/guix.texi:179 doc/guix.texi:2031 doc/guix.texi:2268 doc/guix.texi:2269
+#, no-wrap
+msgid "Proceeding with the Installation"
+msgstr "Fortfahren mit der Installation"
+
+#. type: menuentry
+#: doc/guix.texi:179 doc/guix.texi:2031
+msgid "Installing."
+msgstr "Installieren."
+
+#. type: section
+#: doc/guix.texi:192 doc/guix.texi:2503 doc/guix.texi:2505 doc/guix.texi:2506
 #, no-wrap
 msgid "Features"
 msgstr "Funktionalitäten"
 
 #. type: menuentry
-#: doc/guix.texi:159 doc/guix.texi:1728
+#: doc/guix.texi:192 doc/guix.texi:2503
 msgid "How Guix will make your life brighter."
 msgstr "Wie Guix Ihr Leben schöner machen wird."
 
 #. type: node
-#: doc/guix.texi:159 doc/guix.texi:1728 doc/guix.texi:1816
+#: doc/guix.texi:192 doc/guix.texi:2503 doc/guix.texi:2591
 #, no-wrap
 msgid "Invoking guix package"
 msgstr "Aufruf von guix package"
 
 #. type: menuentry
-#: doc/guix.texi:159 doc/guix.texi:1728
+#: doc/guix.texi:192 doc/guix.texi:2503
 msgid "Package installation, removal, etc."
 msgstr "Pakete installieren, entfernen usw."
 
 #. type: section
-#: doc/guix.texi:159 doc/guix.texi:161 doc/guix.texi:1728 doc/guix.texi:2300
-#: doc/guix.texi:2301
+#: doc/guix.texi:192 doc/guix.texi:194 doc/guix.texi:2503 doc/guix.texi:3072
+#: doc/guix.texi:3073
 #, no-wrap
 msgid "Substitutes"
 msgstr "Substitute"
 
 #. type: menuentry
-#: doc/guix.texi:159 doc/guix.texi:1728
+#: doc/guix.texi:192 doc/guix.texi:2503
 msgid "Downloading pre-built binaries."
 msgstr "Vorerstelle Binärdateien herunterladen."
 
 #. type: section
-#: doc/guix.texi:159 doc/guix.texi:1728 doc/guix.texi:2533 doc/guix.texi:2534
+#: doc/guix.texi:192 doc/guix.texi:2503 doc/guix.texi:3300 doc/guix.texi:3301
 #, no-wrap
 msgid "Packages with Multiple Outputs"
 msgstr "Pakete mit mehreren Ausgaben."
 
 #. type: menuentry
-#: doc/guix.texi:159 doc/guix.texi:1728
+#: doc/guix.texi:192 doc/guix.texi:2503
 msgid "Single source package, multiple outputs."
 msgstr "Ein Quellpaket, mehrere Ausgaben."
 
 #. type: node
-#: doc/guix.texi:159 doc/guix.texi:1728 doc/guix.texi:2587
+#: doc/guix.texi:192 doc/guix.texi:2503 doc/guix.texi:3354
 #, no-wrap
 msgid "Invoking guix gc"
 msgstr "Aufruf von guix gc"
 
 #. type: menuentry
-#: doc/guix.texi:159 doc/guix.texi:1728
+#: doc/guix.texi:192 doc/guix.texi:2503
 msgid "Running the garbage collector."
 msgstr "Den Müllsammler laufen lassen."
 
 #. type: node
-#: doc/guix.texi:159 doc/guix.texi:1728 doc/guix.texi:2775
+#: doc/guix.texi:192 doc/guix.texi:2503 doc/guix.texi:3560
 #, no-wrap
 msgid "Invoking guix pull"
 msgstr "Aufruf von guix pull"
 
 #. type: menuentry
-#: doc/guix.texi:159 doc/guix.texi:1728
+#: doc/guix.texi:192 doc/guix.texi:2503
 msgid "Fetching the latest Guix and distribution."
 msgstr "Das neueste Guix samt Distribution laden."
 
 #. type: section
-#: doc/guix.texi:159 doc/guix.texi:1728 doc/guix.texi:2916 doc/guix.texi:2917
+#: doc/guix.texi:192 doc/guix.texi:2503 doc/guix.texi:3715 doc/guix.texi:3716
 #, no-wrap
 msgid "Channels"
 msgstr "Kanäle"
 
 #. type: menuentry
-#: doc/guix.texi:159 doc/guix.texi:1728
+#: doc/guix.texi:192 doc/guix.texi:2503
 msgid "Customizing the package collection."
 msgstr "Die Paketsammlung anpassen."
 
 #. type: section
-#: doc/guix.texi:159 doc/guix.texi:1728 doc/guix.texi:3086 doc/guix.texi:3087
+#: doc/guix.texi:192 doc/guix.texi:2503 doc/guix.texi:3928 doc/guix.texi:3929
 #, no-wrap
 msgid "Inferiors"
 msgstr "Untergeordnete"
 
 #. type: menuentry
-#: doc/guix.texi:159 doc/guix.texi:1728
+#: doc/guix.texi:192 doc/guix.texi:2503
 msgid "Interacting with another revision of Guix."
 msgstr "Mit einer anderen Version von Guix interagieren."
 
 #. type: node
-#: doc/guix.texi:159 doc/guix.texi:1728 doc/guix.texi:3214
+#: doc/guix.texi:192 doc/guix.texi:2503 doc/guix.texi:4056
 #, no-wrap
 msgid "Invoking guix describe"
 msgstr "Aufruf von guix describe"
 
 #. type: menuentry
-#: doc/guix.texi:159 doc/guix.texi:1728
+#: doc/guix.texi:192 doc/guix.texi:2503
 msgid "Display information about your Guix revision."
 msgstr "Informationen über Ihre Guix-Version anzeigen."
 
 #. type: node
-#: doc/guix.texi:159 doc/guix.texi:1728 doc/guix.texi:3295
-#, no-wrap
-msgid "Invoking guix pack"
-msgstr "Aufruf von guix pack"
-
-#. type: menuentry
-#: doc/guix.texi:159 doc/guix.texi:1728
-msgid "Creating software bundles."
-msgstr "Software-Bündel erstellen."
-
-#. type: node
-#: doc/guix.texi:159 doc/guix.texi:1728 doc/guix.texi:3522
+#: doc/guix.texi:192 doc/guix.texi:2503 doc/guix.texi:4137
 #, no-wrap
 msgid "Invoking guix archive"
 msgstr "Aufruf von guix archive"
 
 #. type: menuentry
-#: doc/guix.texi:159 doc/guix.texi:1728
+#: doc/guix.texi:192 doc/guix.texi:2503
 msgid "Exporting and importing store files."
 msgstr "Import und Export von Store-Dateien."
 
 #. type: subsection
-#: doc/guix.texi:168 doc/guix.texi:2323 doc/guix.texi:2325 doc/guix.texi:2326
+#: doc/guix.texi:201 doc/guix.texi:3095 doc/guix.texi:3097 doc/guix.texi:3098
 #, no-wrap
 msgid "Official Substitute Server"
 msgstr "Offizieller Substitut-Server"
 
 #. type: menuentry
-#: doc/guix.texi:168 doc/guix.texi:2323
+#: doc/guix.texi:201 doc/guix.texi:3095
 msgid "One particular source of substitutes."
 msgstr "Eine besondere Quelle von Substituten."
 
 #. type: subsection
-#: doc/guix.texi:168 doc/guix.texi:2323 doc/guix.texi:2355 doc/guix.texi:2356
+#: doc/guix.texi:201 doc/guix.texi:3095 doc/guix.texi:3127 doc/guix.texi:3128
 #, no-wrap
 msgid "Substitute Server Authorization"
 msgstr "Substitut-Server autorisieren"
 
 #. type: menuentry
-#: doc/guix.texi:168 doc/guix.texi:2323
+#: doc/guix.texi:201 doc/guix.texi:3095
 msgid "How to enable or disable substitutes."
 msgstr "Wie man Substitute an- und abschaltet."
 
 #. type: subsection
-#: doc/guix.texi:168 doc/guix.texi:2323 doc/guix.texi:2428 doc/guix.texi:2429
+#: doc/guix.texi:201 doc/guix.texi:3095 doc/guix.texi:3195 doc/guix.texi:3196
 #, no-wrap
 msgid "Substitute Authentication"
 msgstr "Substitutauthentifizierung"
 
 #. type: menuentry
-#: doc/guix.texi:168 doc/guix.texi:2323
+#: doc/guix.texi:201 doc/guix.texi:3095
 msgid "How Guix verifies substitutes."
 msgstr "Wie Guix Substitute verifiziert."
 
 #. type: subsection
-#: doc/guix.texi:168 doc/guix.texi:2323 doc/guix.texi:2463 doc/guix.texi:2464
+#: doc/guix.texi:201 doc/guix.texi:3095 doc/guix.texi:3230 doc/guix.texi:3231
 #, no-wrap
 msgid "Proxy Settings"
 msgstr "Proxy-Einstellungen"
 
 #. type: menuentry
-#: doc/guix.texi:168 doc/guix.texi:2323
+#: doc/guix.texi:201 doc/guix.texi:3095
 msgid "How to get substitutes via proxy."
 msgstr "Wie Sie Substitute über einen Proxy beziehen."
 
 #. type: subsection
-#: doc/guix.texi:168 doc/guix.texi:2323 doc/guix.texi:2475 doc/guix.texi:2476
+#: doc/guix.texi:201 doc/guix.texi:3095 doc/guix.texi:3242 doc/guix.texi:3243
 #, no-wrap
 msgid "Substitution Failure"
 msgstr "Fehler bei der Substitution"
 
 #. type: menuentry
-#: doc/guix.texi:168 doc/guix.texi:2323
+#: doc/guix.texi:201 doc/guix.texi:3095
 msgid "What happens when substitution fails."
 msgstr "Was passiert, wenn die Substitution fehlschlägt."
 
 #. type: subsection
-#: doc/guix.texi:168 doc/guix.texi:2323 doc/guix.texi:2503 doc/guix.texi:2504
+#: doc/guix.texi:201 doc/guix.texi:3095 doc/guix.texi:3270 doc/guix.texi:3271
 #, no-wrap
 msgid "On Trusting Binaries"
 msgstr "Vom Vertrauen gegenüber Binärdateien"
 
 #. type: menuentry
-#: doc/guix.texi:168 doc/guix.texi:2323
+#: doc/guix.texi:201 doc/guix.texi:3095
 msgid "How can you trust that binary blob?"
 msgstr "Wie können Sie diesem binären Blob trauen?"
 
+#. type: node
+#: doc/guix.texi:206 doc/guix.texi:4320 doc/guix.texi:4322
+#, no-wrap
+msgid "Invoking guix environment"
+msgstr "Aufruf von guix environment"
+
+#. type: menuentry
+#: doc/guix.texi:206 doc/guix.texi:4320
+msgid "Setting up development environments."
+msgstr "Entwicklungsumgebungen einrichten."
+
+#. type: node
+#: doc/guix.texi:206 doc/guix.texi:4320 doc/guix.texi:4661
+#, no-wrap
+msgid "Invoking guix pack"
+msgstr "Aufruf von guix pack"
+
+#. type: menuentry
+#: doc/guix.texi:206 doc/guix.texi:4320
+msgid "Creating software bundles."
+msgstr "Software-Bündel erstellen."
+
 #. type: section
-#: doc/guix.texi:178 doc/guix.texi:180 doc/guix.texi:3723 doc/guix.texi:3725
-#: doc/guix.texi:3726
+#: doc/guix.texi:217 doc/guix.texi:4964 doc/guix.texi:4966 doc/guix.texi:4967
+#, no-wrap
+msgid "Package Modules"
+msgstr "Paketmodule"
+
+#. type: menuentry
+#: doc/guix.texi:217 doc/guix.texi:4964
+msgid "Packages from the programmer's viewpoint."
+msgstr "Pakete aus Sicht des Programmierers."
+
+#. type: section
+#: doc/guix.texi:217 doc/guix.texi:219 doc/guix.texi:4964 doc/guix.texi:5028
+#: doc/guix.texi:5029
 #, no-wrap
 msgid "Defining Packages"
 msgstr "Pakete definieren"
 
 #. type: menuentry
-#: doc/guix.texi:178 doc/guix.texi:3723
+#: doc/guix.texi:217 doc/guix.texi:4964
 msgid "Defining new packages."
 msgstr "Wie Sie neue Pakete definieren."
 
 #. type: section
-#: doc/guix.texi:178 doc/guix.texi:3723 doc/guix.texi:4189 doc/guix.texi:4190
+#: doc/guix.texi:217 doc/guix.texi:4964 doc/guix.texi:5532 doc/guix.texi:5533
 #, no-wrap
 msgid "Build Systems"
 msgstr "Erstellungssysteme"
 
 #. type: menuentry
-#: doc/guix.texi:178 doc/guix.texi:3723
+#: doc/guix.texi:217 doc/guix.texi:4964
 msgid "Specifying how packages are built."
 msgstr "Angeben, wie Pakete erstellt werden."
 
 #. type: section
-#: doc/guix.texi:178 doc/guix.texi:3723 doc/guix.texi:4856 doc/guix.texi:4857
+#: doc/guix.texi:217 doc/guix.texi:4964 doc/guix.texi:6270 doc/guix.texi:6271
 #, no-wrap
 msgid "The Store"
 msgstr "Der Store"
 
 #. type: menuentry
-#: doc/guix.texi:178 doc/guix.texi:3723
+#: doc/guix.texi:217 doc/guix.texi:4964
 msgid "Manipulating the package store."
 msgstr "Den Paket-Store verändern."
 
 #. type: section
-#: doc/guix.texi:178 doc/guix.texi:3723 doc/guix.texi:5006 doc/guix.texi:5007
+#: doc/guix.texi:217 doc/guix.texi:4964 doc/guix.texi:6420 doc/guix.texi:6421
 #, no-wrap
 msgid "Derivations"
 msgstr "Ableitungen"
 
 #. type: menuentry
-#: doc/guix.texi:178 doc/guix.texi:3723
+#: doc/guix.texi:217 doc/guix.texi:4964
 msgid "Low-level interface to package derivations."
 msgstr "Systemnahe Schnittstelle für Paketableitungen."
 
 #. type: section
-#: doc/guix.texi:178 doc/guix.texi:3723 doc/guix.texi:5187 doc/guix.texi:5188
+#: doc/guix.texi:217 doc/guix.texi:4964 doc/guix.texi:6614 doc/guix.texi:6615
 #, no-wrap
 msgid "The Store Monad"
 msgstr "Die Store-Monade"
 
 #. type: menuentry
-#: doc/guix.texi:178 doc/guix.texi:3723
+#: doc/guix.texi:217 doc/guix.texi:4964
 msgid "Purely functional interface to the store."
 msgstr "Rein funktionale Schnittstelle zum Store."
 
 #. type: section
-#: doc/guix.texi:178 doc/guix.texi:3723 doc/guix.texi:5502 doc/guix.texi:5503
+#: doc/guix.texi:217 doc/guix.texi:4964 doc/guix.texi:6929 doc/guix.texi:6930
 #, no-wrap
 msgid "G-Expressions"
 msgstr "G-Ausdrücke"
 
 #. type: menuentry
-#: doc/guix.texi:178 doc/guix.texi:3723
+#: doc/guix.texi:217 doc/guix.texi:4964
 msgid "Manipulating build expressions."
 msgstr "Erstellungsausdrücke verarbeiten."
 
 #. type: node
-#: doc/guix.texi:178 doc/guix.texi:3723 doc/guix.texi:6076
+#: doc/guix.texi:217 doc/guix.texi:4964 doc/guix.texi:7503
 #, no-wrap
 msgid "Invoking guix repl"
 msgstr "Aufruf von guix repl"
 
 #. type: menuentry
-#: doc/guix.texi:178 doc/guix.texi:3723
+#: doc/guix.texi:217 doc/guix.texi:4964
 msgid "Fiddling with Guix interactively."
 msgstr "Interaktiv an Guix herumbasteln."
 
 #. type: node
-#: doc/guix.texi:183 doc/guix.texi:3971 doc/guix.texi:3974
+#: doc/guix.texi:222 doc/guix.texi:5297 doc/guix.texi:5300
 #, no-wrap
 msgid "package Reference"
 msgstr "»package«-Referenz"
 
 #. type: menuentry
-#: doc/guix.texi:183 doc/guix.texi:3971
+#: doc/guix.texi:222 doc/guix.texi:5297
 msgid "The package data type."
 msgstr "Der Datentyp für Pakete."
 
 #. type: node
-#: doc/guix.texi:183 doc/guix.texi:3971 doc/guix.texi:4101
+#: doc/guix.texi:222 doc/guix.texi:5297 doc/guix.texi:5444
 #, no-wrap
 msgid "origin Reference"
 msgstr "»origin«-Referenz"
 
 #. type: menuentry
-#: doc/guix.texi:183 doc/guix.texi:3971
+#: doc/guix.texi:222 doc/guix.texi:5297
 msgid "The origin data type."
 msgstr "Datentyp für Paketursprünge."
 
 #. type: node
-#: doc/guix.texi:202 doc/guix.texi:6154 doc/guix.texi:6156
+#: doc/guix.texi:240 doc/guix.texi:7580 doc/guix.texi:7582
 #, no-wrap
 msgid "Invoking guix build"
 msgstr "Aufruf von guix build"
 
 #. type: menuentry
-#: doc/guix.texi:202 doc/guix.texi:6154
+#: doc/guix.texi:240 doc/guix.texi:7580
 msgid "Building packages from the command line."
 msgstr "Pakete aus der Befehlszeile heraus erstellen."
 
 #. type: node
-#: doc/guix.texi:202 doc/guix.texi:6154 doc/guix.texi:6746
+#: doc/guix.texi:240 doc/guix.texi:7580 doc/guix.texi:8233
 #, no-wrap
 msgid "Invoking guix edit"
 msgstr "Aufruf von guix edit"
 
 #. type: menuentry
-#: doc/guix.texi:202 doc/guix.texi:6154
+#: doc/guix.texi:240 doc/guix.texi:7580
 msgid "Editing package definitions."
 msgstr "Paketdefinitionen bearbeiten."
 
 #. type: node
-#: doc/guix.texi:202 doc/guix.texi:6154 doc/guix.texi:6772
+#: doc/guix.texi:240 doc/guix.texi:7580 doc/guix.texi:8259
 #, no-wrap
 msgid "Invoking guix download"
 msgstr "Aufruf von guix download"
 
 #. type: menuentry
-#: doc/guix.texi:202 doc/guix.texi:6154
+#: doc/guix.texi:240 doc/guix.texi:7580
 msgid "Downloading a file and printing its hash."
 msgstr "Herunterladen einer Datei und Ausgabe ihres Hashes."
 
 #. type: node
-#: doc/guix.texi:202 doc/guix.texi:6154 doc/guix.texi:6825
+#: doc/guix.texi:240 doc/guix.texi:7580 doc/guix.texi:8312
 #, no-wrap
 msgid "Invoking guix hash"
 msgstr "Aufruf von guix hash"
 
 #. type: menuentry
-#: doc/guix.texi:202 doc/guix.texi:6154
+#: doc/guix.texi:240 doc/guix.texi:7580
 msgid "Computing the cryptographic hash of a file."
-msgstr "Den kryptographischen Hash einer Datei berechnen."
+msgstr "Den kryptografischen Hash einer Datei berechnen."
 
 #. type: node
-#: doc/guix.texi:202 doc/guix.texi:6154 doc/guix.texi:6887
+#: doc/guix.texi:240 doc/guix.texi:7580 doc/guix.texi:8374
 #, no-wrap
 msgid "Invoking guix import"
 msgstr "Aufruf von guix import"
 
 #. type: menuentry
-#: doc/guix.texi:202 doc/guix.texi:6154
+#: doc/guix.texi:240 doc/guix.texi:7580
 msgid "Importing package definitions."
 msgstr "Paketdefinitionen importieren."
 
 #. type: node
-#: doc/guix.texi:202 doc/guix.texi:6154 doc/guix.texi:7292
+#: doc/guix.texi:240 doc/guix.texi:7580 doc/guix.texi:8772
 #, no-wrap
 msgid "Invoking guix refresh"
 msgstr "Aufruf von guix refresh"
 
 #. type: menuentry
-#: doc/guix.texi:202 doc/guix.texi:6154
+#: doc/guix.texi:240 doc/guix.texi:7580
 msgid "Updating package definitions."
 msgstr "Paketdefinitionen aktualisieren."
 
 #. type: node
-#: doc/guix.texi:202 doc/guix.texi:6154 doc/guix.texi:7569
+#: doc/guix.texi:240 doc/guix.texi:7580 doc/guix.texi:9083
 #, no-wrap
 msgid "Invoking guix lint"
 msgstr "Aufruf von guix lint"
 
 #. type: menuentry
-#: doc/guix.texi:202 doc/guix.texi:6154
+#: doc/guix.texi:240 doc/guix.texi:7580
 msgid "Finding errors in package definitions."
 msgstr "Fehler in Paketdefinitionen finden."
 
 #. type: node
-#: doc/guix.texi:202 doc/guix.texi:6154 doc/guix.texi:7678
+#: doc/guix.texi:240 doc/guix.texi:7580 doc/guix.texi:9199
 #, no-wrap
 msgid "Invoking guix size"
 msgstr "Aufruf von guix size"
 
 #. type: menuentry
-#: doc/guix.texi:202 doc/guix.texi:6154
+#: doc/guix.texi:240 doc/guix.texi:7580
 msgid "Profiling disk usage."
-msgstr "Plattenverbrauch profilieren."
+msgstr "Plattenplatzverbrauch profilieren."
 
 #. type: node
-#: doc/guix.texi:202 doc/guix.texi:6154 doc/guix.texi:7802
+#: doc/guix.texi:240 doc/guix.texi:7580 doc/guix.texi:9323
 #, no-wrap
 msgid "Invoking guix graph"
 msgstr "Aufruf von guix graph"
 
 #. type: menuentry
-#: doc/guix.texi:202 doc/guix.texi:6154
+#: doc/guix.texi:240 doc/guix.texi:7580
 msgid "Visualizing the graph of packages."
 msgstr "Den Paketgraphen visualisieren."
 
 #. type: node
-#: doc/guix.texi:202 doc/guix.texi:6154 doc/guix.texi:7988
-#, no-wrap
-msgid "Invoking guix environment"
-msgstr "Aufruf von guix environment"
-
-#. type: menuentry
-#: doc/guix.texi:202 doc/guix.texi:6154
-msgid "Setting up development environments."
-msgstr "Entwicklungsumgebungen einrichten."
-
-#. type: node
-#: doc/guix.texi:202 doc/guix.texi:6154 doc/guix.texi:8307
+#: doc/guix.texi:240 doc/guix.texi:7580 doc/guix.texi:9526
 #, no-wrap
 msgid "Invoking guix publish"
 msgstr "Aufruf von guix publish"
 
 #. type: menuentry
-#: doc/guix.texi:202 doc/guix.texi:6154
+#: doc/guix.texi:240 doc/guix.texi:7580
 msgid "Sharing substitutes."
 msgstr "Substitute teilen."
 
 #. type: node
-#: doc/guix.texi:202 doc/guix.texi:6154 doc/guix.texi:8524
+#: doc/guix.texi:240 doc/guix.texi:7580 doc/guix.texi:9743
 #, no-wrap
 msgid "Invoking guix challenge"
 msgstr "Aufruf von guix challenge"
 
 #. type: menuentry
-#: doc/guix.texi:202 doc/guix.texi:6154
+#: doc/guix.texi:240 doc/guix.texi:7580
 msgid "Challenging substitute servers."
 msgstr "Die Substitut-Server anfechten."
 
 #. type: node
-#: doc/guix.texi:202 doc/guix.texi:6154 doc/guix.texi:8663
+#: doc/guix.texi:240 doc/guix.texi:7580 doc/guix.texi:9882
 #, no-wrap
 msgid "Invoking guix copy"
 msgstr "Aufruf von guix copy"
 
 #. type: menuentry
-#: doc/guix.texi:202 doc/guix.texi:6154
+#: doc/guix.texi:240 doc/guix.texi:7580
 msgid "Copying to and from a remote store."
 msgstr "Mit einem entfernten Store Dateien austauschen."
 
 #. type: node
-#: doc/guix.texi:202 doc/guix.texi:6154 doc/guix.texi:8726
+#: doc/guix.texi:240 doc/guix.texi:7580 doc/guix.texi:9945
 #, no-wrap
 msgid "Invoking guix container"
 msgstr "Aufruf von guix container"
 
 #. type: menuentry
-#: doc/guix.texi:202 doc/guix.texi:6154
+#: doc/guix.texi:240 doc/guix.texi:7580
 msgid "Process isolation."
 msgstr "Prozesse isolieren."
 
 #. type: node
-#: doc/guix.texi:202 doc/guix.texi:6154 doc/guix.texi:8780
+#: doc/guix.texi:240 doc/guix.texi:7580 doc/guix.texi:9999
 #, no-wrap
 msgid "Invoking guix weather"
 msgstr "Aufruf von guix weather"
 
 #. type: menuentry
-#: doc/guix.texi:202 doc/guix.texi:6154
+#: doc/guix.texi:240 doc/guix.texi:7580
 msgid "Assessing substitute availability."
 msgstr "Die Verfügbarkeit von Substituten einschätzen."
 
 #. type: node
-#: doc/guix.texi:202 doc/guix.texi:6154 doc/guix.texi:8858
+#: doc/guix.texi:240 doc/guix.texi:7580 doc/guix.texi:10110
 #, no-wrap
 msgid "Invoking guix processes"
 msgstr "Aufruf von guix processes"
 
 #. type: menuentry
-#: doc/guix.texi:202 doc/guix.texi:6154
+#: doc/guix.texi:240 doc/guix.texi:7580
 msgid "Listing client processes."
 msgstr "Auflisten der Client-Prozesse"
 
 #. type: section
-#: doc/guix.texi:204 doc/guix.texi:6157
+#: doc/guix.texi:242 doc/guix.texi:7583
 #, no-wrap
 msgid "Invoking @command{guix build}"
 msgstr "Aufruf von @command{guix build}"
 
 #. type: subsection
-#: doc/guix.texi:209 doc/guix.texi:6208 doc/guix.texi:6210 doc/guix.texi:6211
+#: doc/guix.texi:247 doc/guix.texi:7634 doc/guix.texi:7636 doc/guix.texi:7637
 #, no-wrap
 msgid "Common Build Options"
 msgstr "Gemeinsame Erstellungsoptionen"
 
 #. type: menuentry
-#: doc/guix.texi:209 doc/guix.texi:6208
+#: doc/guix.texi:247 doc/guix.texi:7634
 msgid "Build options for most commands."
 msgstr "Erstellungsoptionen für die meisten Befehle."
 
 #. type: subsection
-#: doc/guix.texi:209 doc/guix.texi:6208 doc/guix.texi:6356 doc/guix.texi:6357
+#: doc/guix.texi:247 doc/guix.texi:7634 doc/guix.texi:7792 doc/guix.texi:7793
 #, no-wrap
 msgid "Package Transformation Options"
 msgstr "Paketumwandlungsoptionen"
 
 #. type: menuentry
-#: doc/guix.texi:209 doc/guix.texi:6208
+#: doc/guix.texi:247 doc/guix.texi:7634
 msgid "Creating variants of packages."
 msgstr "Varianten von Paketen erzeugen."
 
 #. type: subsection
-#: doc/guix.texi:209 doc/guix.texi:6208 doc/guix.texi:6456 doc/guix.texi:6457
+#: doc/guix.texi:247 doc/guix.texi:7634 doc/guix.texi:7941 doc/guix.texi:7942
 #, no-wrap
 msgid "Additional Build Options"
 msgstr "Zusätzliche Erstellungsoptionen"
 
 #. type: menuentry
-#: doc/guix.texi:209 doc/guix.texi:6208
+#: doc/guix.texi:247 doc/guix.texi:7634
 msgid "Options specific to 'guix build'."
 msgstr "Optionen spezifisch für »guix build«."
 
 #. type: subsection
-#: doc/guix.texi:209 doc/guix.texi:6208 doc/guix.texi:6666 doc/guix.texi:6667
+#: doc/guix.texi:247 doc/guix.texi:7634 doc/guix.texi:8153 doc/guix.texi:8154
 #, no-wrap
 msgid "Debugging Build Failures"
 msgstr "Fehlschläge beim Erstellen untersuchen"
 
 #. type: menuentry
-#: doc/guix.texi:209 doc/guix.texi:6208
+#: doc/guix.texi:247 doc/guix.texi:7634
 msgid "Real life packaging experience."
 msgstr "Praxiserfahrung bei der Paketerstellung."
 
 #. type: section
-#: doc/guix.texi:221 doc/guix.texi:223 doc/guix.texi:8987 doc/guix.texi:8992
-#: doc/guix.texi:8993
-#, no-wrap
-msgid "System Installation"
-msgstr "Systeminstallation"
-
-#. type: menuentry
-#: doc/guix.texi:221 doc/guix.texi:8987
-msgid "Installing the whole operating system."
-msgstr "Das ganze Betriebssystem installieren."
-
-#. type: section
-#: doc/guix.texi:221 doc/guix.texi:233 doc/guix.texi:8987 doc/guix.texi:9636
-#: doc/guix.texi:9637
-#, no-wrap
-msgid "System Configuration"
-msgstr "Systemkonfiguration"
-
-#. type: menuentry
-#: doc/guix.texi:221 doc/guix.texi:8987
-msgid "Configuring the operating system."
-msgstr "Das Betriebssystem konfigurieren."
-
-#. type: section
-#: doc/guix.texi:221 doc/guix.texi:8987 doc/guix.texi:23352
-#: doc/guix.texi:23353
-#, no-wrap
-msgid "Documentation"
-msgstr "Dokumentation"
-
-#. type: menuentry
-#: doc/guix.texi:221 doc/guix.texi:8987
-msgid "Browsing software user manuals."
-msgstr "Wie man Nutzerhandbücher von Software liest."
-
-#. type: section
-#: doc/guix.texi:221 doc/guix.texi:8987 doc/guix.texi:23416
-#: doc/guix.texi:23417
-#, no-wrap
-msgid "Installing Debugging Files"
-msgstr "Dateien zur Fehlersuche installieren"
-
-#. type: menuentry
-#: doc/guix.texi:221 doc/guix.texi:8987
-msgid "Feeding the debugger."
-msgstr "Womit man seinen Debugger füttert."
-
-#. type: section
-#: doc/guix.texi:221 doc/guix.texi:8987 doc/guix.texi:23482
-#: doc/guix.texi:23483
-#, no-wrap
-msgid "Security Updates"
-msgstr "Sicherheitsaktualisierungen"
-
-#. type: menuentry
-#: doc/guix.texi:221 doc/guix.texi:8987
-msgid "Deploying security fixes quickly."
-msgstr "Sicherheits-Patches schnell einspielen."
-
-#. type: section
-#: doc/guix.texi:221 doc/guix.texi:8987 doc/guix.texi:23602
-#: doc/guix.texi:23603
-#, no-wrap
-msgid "Package Modules"
-msgstr "Paketmodule"
-
-#. type: menuentry
-#: doc/guix.texi:221 doc/guix.texi:8987
-msgid "Packages from the programmer's viewpoint."
-msgstr "Pakete aus Sicht des Programmierers."
-
-#. type: section
-#: doc/guix.texi:221 doc/guix.texi:287 doc/guix.texi:8987 doc/guix.texi:23664
-#: doc/guix.texi:23665
-#, no-wrap
-msgid "Packaging Guidelines"
-msgstr "Paketrichtlinien"
-
-#. type: menuentry
-#: doc/guix.texi:221 doc/guix.texi:8987
-msgid "Growing the distribution."
-msgstr "Die Distribution wachsen lassen."
-
-#. type: section
-#: doc/guix.texi:221 doc/guix.texi:8987 doc/guix.texi:24115
-#: doc/guix.texi:24116
-#, no-wrap
-msgid "Bootstrapping"
-msgstr "Bootstrapping"
-
-#. type: menuentry
-#: doc/guix.texi:221 doc/guix.texi:8987
-msgid "GNU/Linux built from scratch."
-msgstr "GNU/Linux von Grund auf selbst erstellen."
-
-#. type: node
-#: doc/guix.texi:221 doc/guix.texi:8987 doc/guix.texi:24299
-#, no-wrap
-msgid "Porting"
-msgstr "Portierung"
-
-#. type: menuentry
-#: doc/guix.texi:221 doc/guix.texi:8987
-msgid "Targeting another platform or kernel."
-msgstr "Guix auf andere Plattformen und Kernels bringen."
-
-#. type: subsection
-#: doc/guix.texi:231 doc/guix.texi:1165 doc/guix.texi:9024 doc/guix.texi:9026
-#: doc/guix.texi:9027
-#, no-wrap
-msgid "Limitations"
-msgstr "Einschränkungen"
-
-#. type: menuentry
-#: doc/guix.texi:231 doc/guix.texi:9024
-msgid "What you can expect."
-msgstr "Was Sie erwarten dürfen."
-
-#. type: subsection
-#: doc/guix.texi:231 doc/guix.texi:9024 doc/guix.texi:9070 doc/guix.texi:9071
-#, no-wrap
-msgid "Hardware Considerations"
-msgstr "Hardware-Überlegungen"
-
-#. type: menuentry
-#: doc/guix.texi:231 doc/guix.texi:9024
-msgid "Supported hardware."
-msgstr "Unterstützte Hardware."
-
-#. type: subsection
-#: doc/guix.texi:231 doc/guix.texi:9024 doc/guix.texi:9105 doc/guix.texi:9106
-#, no-wrap
-msgid "USB Stick and DVD Installation"
-msgstr "Installation von USB-Stick oder DVD"
-
-#. type: menuentry
-#: doc/guix.texi:231 doc/guix.texi:9024
-msgid "Preparing the installation medium."
-msgstr "Das Installationsmedium vorbereiten."
-
-#. type: subsection
-#: doc/guix.texi:231 doc/guix.texi:9024 doc/guix.texi:9204 doc/guix.texi:9205
-#, no-wrap
-msgid "Preparing for Installation"
-msgstr "Vor der Installation"
-
-#. type: menuentry
-#: doc/guix.texi:231 doc/guix.texi:9024
-msgid "Networking, partitioning, etc."
-msgstr "Netzwerkanbindung, Partitionierung etc."
-
-#. type: subsection
-#: doc/guix.texi:231 doc/guix.texi:9024 doc/guix.texi:9454 doc/guix.texi:9455
-#, no-wrap
-msgid "Proceeding with the Installation"
-msgstr "Fortfahren mit der Installation"
-
-#. type: menuentry
-#: doc/guix.texi:231 doc/guix.texi:9024
-msgid "The real thing."
-msgstr "Die Hauptsache."
-
-#. type: node
-#: doc/guix.texi:231 doc/guix.texi:9024 doc/guix.texi:9551
-#, no-wrap
-msgid "Installing GuixSD in a VM"
-msgstr "GuixSD in einer VM installieren"
-
-#. type: menuentry
-#: doc/guix.texi:231 doc/guix.texi:9024
-msgid "GuixSD playground."
-msgstr "Ein GuixSD-Spielplatz."
-
-#. type: subsection
-#: doc/guix.texi:231 doc/guix.texi:9024 doc/guix.texi:9605 doc/guix.texi:9606
-#, no-wrap
-msgid "Building the Installation Image"
-msgstr "Ein Abbild zur Installation erstellen"
-
-#. type: menuentry
-#: doc/guix.texi:231 doc/guix.texi:9024
-msgid "How this comes to be."
-msgstr "Wie ein solches entsteht."
-
-#. type: subsection
-#: doc/guix.texi:249 doc/guix.texi:9677 doc/guix.texi:9679 doc/guix.texi:9680
+#: doc/guix.texi:266 doc/guix.texi:10209 doc/guix.texi:10211
+#: doc/guix.texi:10212
 #, no-wrap
 msgid "Using the Configuration System"
 msgstr "Das Konfigurationssystem nutzen"
 
 #. type: menuentry
-#: doc/guix.texi:249 doc/guix.texi:9677
+#: doc/guix.texi:266 doc/guix.texi:10209
 msgid "Customizing your GNU system."
 msgstr "Ihr GNU-System anpassen."
 
 #. type: node
-#: doc/guix.texi:249 doc/guix.texi:9677 doc/guix.texi:9915
+#: doc/guix.texi:266 doc/guix.texi:10209 doc/guix.texi:10447
 #, no-wrap
 msgid "operating-system Reference"
 msgstr "»operating-system«-Referenz"
 
 #. type: menuentry
-#: doc/guix.texi:249 doc/guix.texi:9677
+#: doc/guix.texi:266 doc/guix.texi:10209
 msgid "Detail of operating-system declarations."
 msgstr "Details der Betriebssystem-Deklarationen."
 
-#. type: subsection
-#: doc/guix.texi:249 doc/guix.texi:9677 doc/guix.texi:10069
-#: doc/guix.texi:10070
+#. type: section
+#: doc/guix.texi:266 doc/guix.texi:10209 doc/guix.texi:10651
+#: doc/guix.texi:10652
 #, no-wrap
 msgid "File Systems"
 msgstr "Dateisysteme"
 
 #. type: menuentry
-#: doc/guix.texi:249 doc/guix.texi:9677
+#: doc/guix.texi:266 doc/guix.texi:10209
 msgid "Configuring file system mounts."
 msgstr "Die Dateisystemeinbindungen konfigurieren."
 
-#. type: subsection
-#: doc/guix.texi:249 doc/guix.texi:9677 doc/guix.texi:10234
-#: doc/guix.texi:10235
+#. type: section
+#: doc/guix.texi:266 doc/guix.texi:10209 doc/guix.texi:10816
+#: doc/guix.texi:10817
 #, no-wrap
 msgid "Mapped Devices"
 msgstr "Zugeordnete Geräte"
 
 #. type: menuentry
-#: doc/guix.texi:249 doc/guix.texi:9677
+#: doc/guix.texi:266 doc/guix.texi:10209
 msgid "Block device extra processing."
 msgstr "Näheres zu blockorientierten Speichermedien."
 
-#. type: subsection
-#: doc/guix.texi:249 doc/guix.texi:9677 doc/guix.texi:10355
-#: doc/guix.texi:10356
+#. type: section
+#: doc/guix.texi:266 doc/guix.texi:10209 doc/guix.texi:10937
+#: doc/guix.texi:10938
 #, no-wrap
 msgid "User Accounts"
 msgstr "Benutzerkonten"
 
 #. type: menuentry
-#: doc/guix.texi:249 doc/guix.texi:9677
+#: doc/guix.texi:266 doc/guix.texi:10209
 msgid "Specifying user accounts."
 msgstr "Benutzerkonten festlegen."
 
-#. type: subsection
-#: doc/guix.texi:249 doc/guix.texi:1492 doc/guix.texi:9677 doc/guix.texi:10490
-#: doc/guix.texi:10491
+#. type: section
+#: doc/guix.texi:266 doc/guix.texi:2040 doc/guix.texi:10209
+#: doc/guix.texi:11090 doc/guix.texi:11091
+#, no-wrap
+msgid "Keyboard Layout"
+msgstr "Tastaturbelegung"
+
+#. type: menuentry
+#: doc/guix.texi:266 doc/guix.texi:10209
+msgid "How the system interprets key strokes."
+msgstr "Wie das System Tastendrücke interpretiert."
+
+#. type: section
+#: doc/guix.texi:266 doc/guix.texi:1562 doc/guix.texi:10209
+#: doc/guix.texi:11222 doc/guix.texi:11223
 #, no-wrap
 msgid "Locales"
 msgstr "Locales"
 
 #. type: menuentry
-#: doc/guix.texi:249 doc/guix.texi:9677
+#: doc/guix.texi:266 doc/guix.texi:10209
 msgid "Language and cultural convention settings."
 msgstr "Sprache und kulturelle Konventionen."
 
-#. type: subsection
-#: doc/guix.texi:249 doc/guix.texi:251 doc/guix.texi:9677 doc/guix.texi:10630
-#: doc/guix.texi:10631
+#. type: section
+#: doc/guix.texi:266 doc/guix.texi:268 doc/guix.texi:10209 doc/guix.texi:11362
+#: doc/guix.texi:11363
 #, no-wrap
 msgid "Services"
 msgstr "Dienste"
 
 #. type: menuentry
-#: doc/guix.texi:249 doc/guix.texi:9677
+#: doc/guix.texi:266 doc/guix.texi:10209
 msgid "Specifying system services."
 msgstr "Systemdienste festlegen."
 
-#. type: subsection
-#: doc/guix.texi:249 doc/guix.texi:9677 doc/guix.texi:21649
-#: doc/guix.texi:21650
+#. type: section
+#: doc/guix.texi:266 doc/guix.texi:10209 doc/guix.texi:23469
+#: doc/guix.texi:23470
 #, no-wrap
 msgid "Setuid Programs"
 msgstr "Setuid-Programme"
 
 #. type: menuentry
-#: doc/guix.texi:249 doc/guix.texi:9677
+#: doc/guix.texi:266 doc/guix.texi:10209
 msgid "Programs running with root privileges."
 msgstr "Mit Administratorrechten startende Programme."
 
-#. type: subsection
-#: doc/guix.texi:249 doc/guix.texi:1637 doc/guix.texi:9677 doc/guix.texi:21695
-#: doc/guix.texi:21696
+#. type: section
+#: doc/guix.texi:266 doc/guix.texi:1707 doc/guix.texi:10209
+#: doc/guix.texi:23515 doc/guix.texi:23516
 #, no-wrap
 msgid "X.509 Certificates"
 msgstr "X.509-Zertifikate"
 
 #. type: menuentry
-#: doc/guix.texi:249 doc/guix.texi:9677
+#: doc/guix.texi:266 doc/guix.texi:10209
 msgid "Authenticating HTTPS servers."
 msgstr "HTTPS-Server authentifizieren."
 
-#. type: subsection
-#: doc/guix.texi:249 doc/guix.texi:1535 doc/guix.texi:9677 doc/guix.texi:21758
-#: doc/guix.texi:21759
+#. type: section
+#: doc/guix.texi:266 doc/guix.texi:1605 doc/guix.texi:10209
+#: doc/guix.texi:23578 doc/guix.texi:23579
 #, no-wrap
 msgid "Name Service Switch"
 msgstr "Name Service Switch"
 
 #. type: menuentry
-#: doc/guix.texi:249 doc/guix.texi:9677
+#: doc/guix.texi:266 doc/guix.texi:10209
 msgid "Configuring libc's name service switch."
 msgstr "Den Name Service Switch von libc konfigurieren."
 
-#. type: subsection
-#: doc/guix.texi:249 doc/guix.texi:9677 doc/guix.texi:21896
-#: doc/guix.texi:21897
+#. type: section
+#: doc/guix.texi:266 doc/guix.texi:10209 doc/guix.texi:23716
+#: doc/guix.texi:23717
 #, no-wrap
 msgid "Initial RAM Disk"
 msgstr "Initiale RAM-Disk"
 
 #. type: menuentry
-#: doc/guix.texi:249 doc/guix.texi:9677
+#: doc/guix.texi:266 doc/guix.texi:10209
 msgid "Linux-Libre bootstrapping."
 msgstr "Linux-libre hochfahren."
 
-#. type: subsection
-#: doc/guix.texi:249 doc/guix.texi:9677 doc/guix.texi:22056
-#: doc/guix.texi:22057
+#. type: section
+#: doc/guix.texi:266 doc/guix.texi:10209 doc/guix.texi:23890
+#: doc/guix.texi:23891
 #, no-wrap
 msgid "Bootloader Configuration"
 msgstr "Bootloader-Konfiguration"
 
 #. type: menuentry
-#: doc/guix.texi:249 doc/guix.texi:9677
+#: doc/guix.texi:266 doc/guix.texi:10209
 msgid "Configuring the boot loader."
 msgstr "Den Bootloader konfigurieren."
 
 #. type: node
-#: doc/guix.texi:249 doc/guix.texi:9677 doc/guix.texi:22240
+#: doc/guix.texi:266 doc/guix.texi:10209 doc/guix.texi:24087
 #, no-wrap
 msgid "Invoking guix system"
 msgstr "Aufruf von guix system"
 
 #. type: menuentry
-#: doc/guix.texi:249 doc/guix.texi:9677
+#: doc/guix.texi:266 doc/guix.texi:10209
 msgid "Instantiating a system configuration."
 msgstr "Instanziierung einer Systemkonfiguration."
 
 #. type: node
-#: doc/guix.texi:249 doc/guix.texi:9677 doc/guix.texi:22665
+#: doc/guix.texi:266 doc/guix.texi:10209 doc/guix.texi:24542
 #, no-wrap
-msgid "Running GuixSD in a VM"
-msgstr "GuixSD in einer VM starten"
+msgid "Running Guix in a VM"
+msgstr "Guix in einer VM starten"
 
 #. type: menuentry
-#: doc/guix.texi:249 doc/guix.texi:9677
-msgid "How to run GuixSD in a virtual machine."
-msgstr "Wie man GuixSD in einer virtuellen Maschine startet."
+#: doc/guix.texi:266 doc/guix.texi:10209
+msgid "How to run Guix System in a virtual machine."
+msgstr "Wie man »Guix System« in einer virtuellen Maschine startet."
 
-#. type: subsection
-#: doc/guix.texi:249 doc/guix.texi:280 doc/guix.texi:9677 doc/guix.texi:22776
-#: doc/guix.texi:22777
+#. type: section
+#: doc/guix.texi:266 doc/guix.texi:297 doc/guix.texi:10209 doc/guix.texi:24653
+#: doc/guix.texi:24654
 #, no-wrap
 msgid "Defining Services"
 msgstr "Dienste definieren"
 
 #. type: menuentry
-#: doc/guix.texi:249 doc/guix.texi:9677
+#: doc/guix.texi:266 doc/guix.texi:10209
 msgid "Adding new service definitions."
 msgstr "Neue Dienstdefinitionen hinzufügen."
 
-#. type: subsubsection
-#: doc/guix.texi:278 doc/guix.texi:10706 doc/guix.texi:10708
-#: doc/guix.texi:10709
+#. type: subsection
+#: doc/guix.texi:295 doc/guix.texi:11439 doc/guix.texi:11441
+#: doc/guix.texi:11442
 #, no-wrap
 msgid "Base Services"
 msgstr "Basisdienste"
 
 #. type: menuentry
-#: doc/guix.texi:278 doc/guix.texi:10706
+#: doc/guix.texi:295 doc/guix.texi:11439
 msgid "Essential system services."
 msgstr "Essenzielle Systemdienste."
 
-#. type: subsubsection
-#: doc/guix.texi:278 doc/guix.texi:10706 doc/guix.texi:11518
-#: doc/guix.texi:11519
+#. type: subsection
+#: doc/guix.texi:295 doc/guix.texi:11439 doc/guix.texi:12234
+#: doc/guix.texi:12235
 #, no-wrap
 msgid "Scheduled Job Execution"
 msgstr "Geplante Auftragsausführung"
 
 #. type: menuentry
-#: doc/guix.texi:278 doc/guix.texi:10706
+#: doc/guix.texi:295 doc/guix.texi:11439
 msgid "The mcron service."
 msgstr "Der mcron-Dienst."
 
-#. type: subsubsection
-#: doc/guix.texi:278 doc/guix.texi:10706 doc/guix.texi:11628
-#: doc/guix.texi:11629
+#. type: subsection
+#: doc/guix.texi:295 doc/guix.texi:11439 doc/guix.texi:12335
+#: doc/guix.texi:12336
 #, no-wrap
 msgid "Log Rotation"
 msgstr "Log-Rotation"
 
 #. type: menuentry
-#: doc/guix.texi:278 doc/guix.texi:10706
+#: doc/guix.texi:295 doc/guix.texi:11439
 msgid "The rottlog service."
 msgstr "Der rottlog-Dienst."
 
-#. type: subsubsection
-#: doc/guix.texi:278 doc/guix.texi:10706 doc/guix.texi:11730
-#: doc/guix.texi:11731
+#. type: subsection
+#: doc/guix.texi:295 doc/guix.texi:11439 doc/guix.texi:12437
+#: doc/guix.texi:12438
 #, no-wrap
 msgid "Networking Services"
 msgstr "Netzwerkdienste"
 
 #. type: menuentry
-#: doc/guix.texi:278 doc/guix.texi:10706
+#: doc/guix.texi:295 doc/guix.texi:11439
 msgid "Network setup, SSH daemon, etc."
 msgstr "Netzwerkeinrichtung, SSH-Daemon etc."
 
-#. type: subsubsection
-#: doc/guix.texi:278 doc/guix.texi:10706 doc/guix.texi:12645
-#: doc/guix.texi:12646
+#. type: subsection
+#: doc/guix.texi:295 doc/guix.texi:11439 doc/guix.texi:13382
+#: doc/guix.texi:13383
 #, no-wrap
 msgid "X Window"
 msgstr "X Window"
 
 #. type: menuentry
-#: doc/guix.texi:278 doc/guix.texi:10706
+#: doc/guix.texi:295 doc/guix.texi:11439
 msgid "Graphical display."
 msgstr "Grafische Anzeige."
 
-#. type: subsubsection
-#: doc/guix.texi:278 doc/guix.texi:10706 doc/guix.texi:12929
-#: doc/guix.texi:12930
+#. type: subsection
+#: doc/guix.texi:295 doc/guix.texi:11439 doc/guix.texi:13696
+#: doc/guix.texi:13697
 #, no-wrap
 msgid "Printing Services"
 msgstr "Druckdienste"
 
 #. type: menuentry
-#: doc/guix.texi:278 doc/guix.texi:10706
+#: doc/guix.texi:295 doc/guix.texi:11439
 msgid "Local and remote printer support."
 msgstr "Unterstützung für lokale und entfernte Drucker."
 
-#. type: subsubsection
-#: doc/guix.texi:278 doc/guix.texi:10706 doc/guix.texi:13770
-#: doc/guix.texi:13771
+#. type: subsection
+#: doc/guix.texi:295 doc/guix.texi:11439 doc/guix.texi:14537
+#: doc/guix.texi:14538
 #, no-wrap
 msgid "Desktop Services"
 msgstr "Desktop-Dienste"
 
 #. type: menuentry
-#: doc/guix.texi:278 doc/guix.texi:10706
+#: doc/guix.texi:295 doc/guix.texi:11439
 msgid "D-Bus and desktop services."
 msgstr "D-Bus- und Desktop-Dienste."
 
-#. type: subsubsection
-#: doc/guix.texi:278 doc/guix.texi:10706 doc/guix.texi:14078
-#: doc/guix.texi:14079
+#. type: subsection
+#: doc/guix.texi:295 doc/guix.texi:11439 doc/guix.texi:14938
+#: doc/guix.texi:14939
 #, no-wrap
 msgid "Sound Services"
 msgstr "Tondienste"
 
 #. type: menuentry
-#: doc/guix.texi:278 doc/guix.texi:10706
+#: doc/guix.texi:295 doc/guix.texi:11439
 msgid "ALSA and Pulseaudio services."
 msgstr "Dienste für ALSA und Pulseaudio."
 
-#. type: subsubsection
-#: doc/guix.texi:278 doc/guix.texi:10706 doc/guix.texi:14159
-#: doc/guix.texi:14160
+#. type: subsection
+#: doc/guix.texi:295 doc/guix.texi:11439 doc/guix.texi:15019
+#: doc/guix.texi:15020
 #, no-wrap
 msgid "Database Services"
 msgstr "Datenbankdienste"
 
 #. type: menuentry
-#: doc/guix.texi:278 doc/guix.texi:10706
+#: doc/guix.texi:295 doc/guix.texi:11439
 msgid "SQL databases, key-value stores, etc."
 msgstr "SQL-Datenbanken, Schlüssel-Wert-Speicher etc."
 
-#. type: subsubsection
-#: doc/guix.texi:278 doc/guix.texi:10706 doc/guix.texi:14283
-#: doc/guix.texi:14284
+#. type: subsection
+#: doc/guix.texi:295 doc/guix.texi:11439 doc/guix.texi:15179
+#: doc/guix.texi:15180
 #, no-wrap
 msgid "Mail Services"
 msgstr "Mail-Dienste"
 
 #. type: menuentry
-#: doc/guix.texi:278 doc/guix.texi:10706
+#: doc/guix.texi:295 doc/guix.texi:11439
 msgid "IMAP, POP3, SMTP, and all that."
 msgstr "IMAP, POP3, SMTP und so weiter."
 
-#. type: subsubsection
-#: doc/guix.texi:278 doc/guix.texi:10706 doc/guix.texi:15754
-#: doc/guix.texi:15755
+#. type: subsection
+#: doc/guix.texi:295 doc/guix.texi:11439 doc/guix.texi:16680
+#: doc/guix.texi:16681
 #, no-wrap
 msgid "Messaging Services"
 msgstr "Kurznachrichtendienste"
 
 #. type: menuentry
-#: doc/guix.texi:278 doc/guix.texi:10706
+#: doc/guix.texi:295 doc/guix.texi:11439
 msgid "Messaging services."
 msgstr "Dienste für Kurznachrichten."
 
-#. type: subsubsection
-#: doc/guix.texi:278 doc/guix.texi:10706 doc/guix.texi:16225
-#: doc/guix.texi:16226
+#. type: subsection
+#: doc/guix.texi:295 doc/guix.texi:11439 doc/guix.texi:17182
+#: doc/guix.texi:17183
 #, no-wrap
 msgid "Telephony Services"
 msgstr "Telefondienste"
 
 #. type: menuentry
-#: doc/guix.texi:278 doc/guix.texi:10706
+#: doc/guix.texi:295 doc/guix.texi:11439
 msgid "Telephony services."
 msgstr "Telefoniedienste."
 
-#. type: subsubsection
-#: doc/guix.texi:278 doc/guix.texi:10706 doc/guix.texi:16430
-#: doc/guix.texi:16431
+#. type: subsection
+#: doc/guix.texi:295 doc/guix.texi:11439 doc/guix.texi:17387
+#: doc/guix.texi:17388
 #, no-wrap
 msgid "Monitoring Services"
 msgstr "Überwachungsdienste"
 
 #. type: menuentry
-#: doc/guix.texi:278 doc/guix.texi:10706
+#: doc/guix.texi:295 doc/guix.texi:11439
 msgid "Monitoring services."
 msgstr "Dienste zur Systemüberwachung."
 
-#. type: subsubsection
-#: doc/guix.texi:278 doc/guix.texi:10706 doc/guix.texi:16616
-#: doc/guix.texi:16617
+#. type: subsection
+#: doc/guix.texi:295 doc/guix.texi:11439 doc/guix.texi:17892
+#: doc/guix.texi:17893
 #, no-wrap
 msgid "Kerberos Services"
 msgstr "Kerberos-Dienste"
 
 #. type: menuentry
-#: doc/guix.texi:278 doc/guix.texi:10706
+#: doc/guix.texi:295 doc/guix.texi:11439
 msgid "Kerberos services."
 msgstr "Kerberos-Dienste."
 
-#. type: subsubsection
-#: doc/guix.texi:278 doc/guix.texi:10706 doc/guix.texi:16742
-#: doc/guix.texi:16743
+#. type: subsection
+#: doc/guix.texi:295 doc/guix.texi:11439 doc/guix.texi:18496
+#: doc/guix.texi:18497
 #, no-wrap
 msgid "Web Services"
 msgstr "Web-Dienste"
 
 #. type: menuentry
-#: doc/guix.texi:278 doc/guix.texi:10706
+#: doc/guix.texi:295 doc/guix.texi:11439
 msgid "Web servers."
 msgstr "Web-Server."
 
-#. type: subsubsection
-#: doc/guix.texi:278 doc/guix.texi:10706 doc/guix.texi:17541
-#: doc/guix.texi:17542
+#. type: subsection
+#: doc/guix.texi:295 doc/guix.texi:11439 doc/guix.texi:19297
+#: doc/guix.texi:19298
 #, no-wrap
 msgid "Certificate Services"
 msgstr "Zertifikatsdienste"
 
 #. type: menuentry
-#: doc/guix.texi:278 doc/guix.texi:10706
+#: doc/guix.texi:295 doc/guix.texi:11439
 msgid "TLS certificates via Let's Encrypt."
 msgstr "TLS-Zertifikate via Let’s Encrypt."
 
-#. type: subsubsection
-#: doc/guix.texi:278 doc/guix.texi:10706 doc/guix.texi:17687
-#: doc/guix.texi:17688
+#. type: subsection
+#: doc/guix.texi:295 doc/guix.texi:11439 doc/guix.texi:19443
+#: doc/guix.texi:19444
 #, no-wrap
 msgid "DNS Services"
 msgstr "DNS-Dienste"
 
 #. type: menuentry
-#: doc/guix.texi:278 doc/guix.texi:10706
+#: doc/guix.texi:295 doc/guix.texi:11439
 msgid "DNS daemons."
 msgstr "DNS-Daemons."
 
-#. type: subsubsection
-#: doc/guix.texi:278 doc/guix.texi:10706 doc/guix.texi:18256
-#: doc/guix.texi:18257
+#. type: subsection
+#: doc/guix.texi:295 doc/guix.texi:11439 doc/guix.texi:20012
+#: doc/guix.texi:20013
 #, no-wrap
 msgid "VPN Services"
 msgstr "VPN-Dienste"
 
 #. type: menuentry
-#: doc/guix.texi:278 doc/guix.texi:10706
+#: doc/guix.texi:295 doc/guix.texi:11439
 msgid "VPN daemons."
 msgstr "VPN-Daemons."
 
-#. type: subsubsection
-#: doc/guix.texi:278 doc/guix.texi:10706 doc/guix.texi:18614
-#: doc/guix.texi:18615
+#. type: subsection
+#: doc/guix.texi:295 doc/guix.texi:11439 doc/guix.texi:20370
+#: doc/guix.texi:20371
 #, no-wrap
 msgid "Network File System"
 msgstr "Network File System"
 
 #. type: menuentry
-#: doc/guix.texi:278 doc/guix.texi:10706
+#: doc/guix.texi:295 doc/guix.texi:11439
 msgid "NFS related services."
 msgstr "Dienste mit Bezug zum Netzwerkdateisystem."
 
-#. type: subsubsection
-#: doc/guix.texi:278 doc/guix.texi:10706 doc/guix.texi:18729
-#: doc/guix.texi:18730
+#. type: subsection
+#: doc/guix.texi:295 doc/guix.texi:11439 doc/guix.texi:20485
+#: doc/guix.texi:20486
 #, no-wrap
 msgid "Continuous Integration"
 msgstr "Kontinuierliche Integration"
 
 #. type: menuentry
-#: doc/guix.texi:278 doc/guix.texi:10706
+#: doc/guix.texi:295 doc/guix.texi:11439
 msgid "The Cuirass service."
 msgstr "Der Cuirass-Dienst."
 
-#. type: subsubsection
-#: doc/guix.texi:278 doc/guix.texi:10706 doc/guix.texi:18846
-#: doc/guix.texi:18847
+#. type: subsection
+#: doc/guix.texi:295 doc/guix.texi:11439 doc/guix.texi:20602
+#: doc/guix.texi:20603
 #, no-wrap
 msgid "Power Management Services"
 msgstr "Dienste zur Stromverbrauchsverwaltung"
 
 #. type: menuentry
-#: doc/guix.texi:278 doc/guix.texi:10706
+#: doc/guix.texi:295 doc/guix.texi:11439
 msgid "Extending battery life."
 msgstr "Den Akku schonen."
 
-#. type: subsubsection
-#: doc/guix.texi:278 doc/guix.texi:10706 doc/guix.texi:19380
-#: doc/guix.texi:19381
+#. type: subsection
+#: doc/guix.texi:295 doc/guix.texi:11439 doc/guix.texi:21136
+#: doc/guix.texi:21137
 #, no-wrap
 msgid "Audio Services"
 msgstr "Audio-Dienste"
 
 #. type: menuentry
-#: doc/guix.texi:278 doc/guix.texi:10706
+#: doc/guix.texi:295 doc/guix.texi:11439
 msgid "The MPD."
 msgstr "Der MPD."
 
 #. type: node
-#: doc/guix.texi:278 doc/guix.texi:10706 doc/guix.texi:19430
+#: doc/guix.texi:295 doc/guix.texi:11439 doc/guix.texi:21195
 #, no-wrap
 msgid "Virtualization Services"
 msgstr "Virtualisierungsdienste"
 
 #. type: menuentry
-#: doc/guix.texi:278 doc/guix.texi:10706
+#: doc/guix.texi:295 doc/guix.texi:11439
 msgid "Virtualization services."
 msgstr "Dienste für virtuelle Maschinen."
 
-#. type: subsubsection
-#: doc/guix.texi:278 doc/guix.texi:10706 doc/guix.texi:20223
-#: doc/guix.texi:20224
+#. type: subsection
+#: doc/guix.texi:295 doc/guix.texi:11439 doc/guix.texi:21988
+#: doc/guix.texi:21989
 #, no-wrap
 msgid "Version Control Services"
 msgstr "Versionskontrolldienste"
 
 #. type: menuentry
-#: doc/guix.texi:278 doc/guix.texi:10706
+#: doc/guix.texi:295 doc/guix.texi:11439
 msgid "Providing remote access to Git repositories."
 msgstr "Entfernten Zugang zu Git-Repositorys bieten."
 
-#. type: subsubsection
-#: doc/guix.texi:278 doc/guix.texi:10706 doc/guix.texi:21411
-#: doc/guix.texi:21412
+#. type: subsection
+#: doc/guix.texi:295 doc/guix.texi:11439 doc/guix.texi:23176
+#: doc/guix.texi:23177
 #, no-wrap
 msgid "Game Services"
 msgstr "Spieldienste"
 
 #. type: menuentry
-#: doc/guix.texi:278 doc/guix.texi:10706
+#: doc/guix.texi:295 doc/guix.texi:11439
 msgid "Game servers."
 msgstr "Spielserver."
 
-#. type: subsubsection
-#: doc/guix.texi:278 doc/guix.texi:10706 doc/guix.texi:21442
-#: doc/guix.texi:21443
+#. type: subsection
+#: doc/guix.texi:295 doc/guix.texi:11439 doc/guix.texi:23207
+#: doc/guix.texi:23208
 #, no-wrap
 msgid "Miscellaneous Services"
 msgstr "Verschiedene Dienste"
 
 #. type: menuentry
-#: doc/guix.texi:278 doc/guix.texi:10706
+#: doc/guix.texi:295 doc/guix.texi:11439
 msgid "Other services."
 msgstr "Andere Dienste."
 
-#. type: subsubsection
-#: doc/guix.texi:285 doc/guix.texi:22788 doc/guix.texi:22790
-#: doc/guix.texi:22791
+#. type: subsection
+#: doc/guix.texi:302 doc/guix.texi:24665 doc/guix.texi:24667
+#: doc/guix.texi:24668
 #, no-wrap
 msgid "Service Composition"
 msgstr "Dienstkompositionen"
 
 #. type: menuentry
-#: doc/guix.texi:285 doc/guix.texi:22788
+#: doc/guix.texi:302 doc/guix.texi:24665
 msgid "The model for composing services."
 msgstr "Wie Dienste zusammengestellt werden."
 
-#. type: subsubsection
-#: doc/guix.texi:285 doc/guix.texi:22788 doc/guix.texi:22846
-#: doc/guix.texi:22847
+#. type: subsection
+#: doc/guix.texi:302 doc/guix.texi:24665 doc/guix.texi:24723
+#: doc/guix.texi:24724
 #, no-wrap
 msgid "Service Types and Services"
 msgstr "Diensttypen und Dienste"
 
 #. type: menuentry
-#: doc/guix.texi:285 doc/guix.texi:22788
+#: doc/guix.texi:302 doc/guix.texi:24665
 msgid "Types and services."
 msgstr "Typen und Dienste."
 
-#. type: subsubsection
-#: doc/guix.texi:285 doc/guix.texi:22788 doc/guix.texi:22983
-#: doc/guix.texi:22984
+#. type: subsection
+#: doc/guix.texi:302 doc/guix.texi:24665 doc/guix.texi:24860
+#: doc/guix.texi:24861
 #, no-wrap
 msgid "Service Reference"
 msgstr "Service-Referenz"
 
 #. type: menuentry
-#: doc/guix.texi:285 doc/guix.texi:22788
+#: doc/guix.texi:302 doc/guix.texi:24665
 msgid "API reference."
 msgstr "Referenz zur Programmierschnittstelle."
 
-#. type: subsubsection
-#: doc/guix.texi:285 doc/guix.texi:22788 doc/guix.texi:23208
-#: doc/guix.texi:23209
+#. type: subsection
+#: doc/guix.texi:302 doc/guix.texi:24665 doc/guix.texi:25085
+#: doc/guix.texi:25086
 #, no-wrap
 msgid "Shepherd Services"
 msgstr "Shepherd-Dienste"
 
 #. type: menuentry
-#: doc/guix.texi:285 doc/guix.texi:22788
+#: doc/guix.texi:302 doc/guix.texi:24665
 msgid "A particular type of service."
 msgstr "Eine spezielle Art von Dienst."
 
-#. type: subsection
-#: doc/guix.texi:296 doc/guix.texi:23739 doc/guix.texi:23741
-#: doc/guix.texi:23742
-#, no-wrap
-msgid "Software Freedom"
-msgstr "Software-Freiheit"
-
-#. type: menuentry
-#: doc/guix.texi:296 doc/guix.texi:23739
-msgid "What may go into the distribution."
-msgstr "Was in die Distribution aufgenommen werden darf."
-
-#. type: subsection
-#: doc/guix.texi:296 doc/guix.texi:23739 doc/guix.texi:23769
-#: doc/guix.texi:23770
-#, no-wrap
-msgid "Package Naming"
-msgstr "Paketbenennung"
-
-#. type: menuentry
-#: doc/guix.texi:296 doc/guix.texi:23739
-msgid "What's in a name?"
-msgstr "Was macht einen Namen aus?"
-
-#. type: subsection
-#: doc/guix.texi:296 doc/guix.texi:23739 doc/guix.texi:23794
-#: doc/guix.texi:23795
-#, no-wrap
-msgid "Version Numbers"
-msgstr "Versionsnummern"
-
-#. type: menuentry
-#: doc/guix.texi:296 doc/guix.texi:23739
-msgid "When the name is not enough."
-msgstr "Wenn der Name noch nicht genug ist."
-
-#. type: subsection
-#: doc/guix.texi:296 doc/guix.texi:23739 doc/guix.texi:23885
-#: doc/guix.texi:23886
-#, no-wrap
-msgid "Synopses and Descriptions"
-msgstr "Zusammenfassungen und Beschreibungen"
-
-#. type: menuentry
-#: doc/guix.texi:296 doc/guix.texi:23739
-msgid "Helping users find the right package."
-msgstr "Den Nutzern helfen, das richtige Paket zu finden."
-
-#. type: subsection
-#: doc/guix.texi:296 doc/guix.texi:23739 doc/guix.texi:23965
-#: doc/guix.texi:23966
-#, no-wrap
-msgid "Python Modules"
-msgstr "Python-Module"
-
-#. type: menuentry
-#: doc/guix.texi:296 doc/guix.texi:23739
-msgid "A touch of British comedy."
-msgstr "Ein Touch britischer Comedy."
-
-#. type: subsection
-#: doc/guix.texi:296 doc/guix.texi:23739 doc/guix.texi:24040
-#: doc/guix.texi:24041
+#. type: cindex
+#: doc/guix.texi:310
 #, no-wrap
-msgid "Perl Modules"
-msgstr "Perl-Module"
+msgid "purpose"
+msgstr "Zweck"
 
-#. type: menuentry
-#: doc/guix.texi:296 doc/guix.texi:23739
-msgid "Little pearls."
-msgstr "Kleine Perlen."
+#. type: Plain text
+#: doc/guix.texi:318
+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 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: subsection
-#: doc/guix.texi:296 doc/guix.texi:23739 doc/guix.texi:24056
-#: doc/guix.texi:24057
+#. type: cindex
+#: doc/guix.texi:319 doc/guix.texi:394
 #, no-wrap
-msgid "Java Packages"
-msgstr "Java-Pakete"
-
-#. type: menuentry
-#: doc/guix.texi:296 doc/guix.texi:23739
-msgid "Coffee break."
-msgstr "Kaffeepause."
+msgid "Guix System"
+msgstr "Guix System"
 
-#. type: subsection
-#: doc/guix.texi:296 doc/guix.texi:23739 doc/guix.texi:24076
-#: doc/guix.texi:24077
+#. type: cindex
+#: doc/guix.texi:320
 #, no-wrap
-msgid "Fonts"
-msgstr "Schriftarten"
-
-#. type: menuentry
-#: doc/guix.texi:296 doc/guix.texi:23739
-msgid "Fond of fonts."
-msgstr "Schriften verschriftlicht."
+msgid "GuixSD, now Guix System"
+msgstr "GuixSD, was jetzt Guix System heißt"
 
 #. type: cindex
-#: doc/guix.texi:319
+#: doc/guix.texi:321
 #, no-wrap
-msgid "purpose"
-msgstr "Zweck"
+msgid "Guix System Distribution, now Guix System"
+msgstr "Guix System Distribution, welche jetzt Guix System heißt"
 
 #. type: Plain text
-#: doc/guix.texi:326
-msgid "GNU Guix@footnote{``Guix'' is pronounced like ``geeks'', or ``ɡiːks'' using the international phonetic alphabet (IPA).} is a package management tool for the GNU system.  Guix makes it easy for unprivileged users to install, upgrade, or remove 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. Guix macht es @emph{nicht} mit besonderen Berechtigungen ausgestatteten, »unprivilegierten« Nutzern leicht, Pakete 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 Schöpfung und Wartung von Software-Umgebungen."
+#: doc/guix.texi:330
+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:327
+#: doc/guix.texi:339
 #, no-wrap
 msgid "user interfaces"
 msgstr "Benutzeroberflächen"
 
 #. type: Plain text
-#: doc/guix.texi:332
-msgid "Guix provides a command-line package management interface (@pxref{Invoking guix package}), a set of command-line utilities (@pxref{Utilities}), as well as Scheme programming interfaces (@pxref{Programming Interface})."
-msgstr "Guix bietet eine befehlszeilenbasierte Paketverwaltungsschnittstelle (@pxref{Invoking guix package}), einen Satz Befehlszeilenwerkzeuge (@pxref{Utilities}) sowie Schnittstellen zur Programmierung in Scheme (@pxref{Programming Interface})."
+#: doc/guix.texi:345
+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:332
+#: doc/guix.texi:345
 #, no-wrap
 msgid "build daemon"
 msgstr "Erstellungs-Daemon"
 
 #. type: Plain text
-#: doc/guix.texi:336
+#: doc/guix.texi:349
 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 (@pxref{Setting Up the Daemon}) und für das Herunterladen vorerstellter Binärdateien aus autorisierten Quellen (@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:337
+#: doc/guix.texi:350
 #, no-wrap
 msgid "extensibility of the distribution"
 msgstr "Erweiterbarkeit der Distribution"
 
 #. type: cindex
-#: doc/guix.texi:338 doc/guix.texi:23624
+#: doc/guix.texi:351 doc/guix.texi:4988
 #, no-wrap
 msgid "customization, of packages"
 msgstr "Anpassung, von Paketen"
 
 #. type: Plain text
-#: doc/guix.texi:347
+#: doc/guix.texi:360
 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, von GNU und nicht von 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 (@pxref{Defining Packages}) und sie als unabhängige Paketmodule verfügbar machen (@pxref{Package Modules}). Es ist auch @emph{anpassbar}: Nutzer können spezialisierte Paketdefinitionen aus bestehenden @emph{ableiten}, auch von der Befehlszeile (@pxref{Package Transformation Options})."
-
-#. type: cindex
-#: doc/guix.texi:348 doc/guix.texi:8918 doc/guix.texi:8996
-#, no-wrap
-msgid "Guix System Distribution"
-msgstr "Guix System Distribution"
-
-#. type: cindex
-#: doc/guix.texi:349 doc/guix.texi:8919
-#, no-wrap
-msgid "GuixSD"
-msgstr "GuixSD"
-
-#. type: Plain text
-#: doc/guix.texi:358
-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 part of the standalone @dfn{Guix System Distribution} or GuixSD (@pxref{GNU Distribution}).  With GNU@tie{}GuixSD, 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})."
-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 (@pxref{Installation}), oder Sie können es eigenständig als Teil der @dfn{Guix System Distribution}, kurz GuixSD (@pxref{GNU Distribution}), verwenden. Mit GNU@tie{}GuixSD @emph{deklarieren} Sie alle Aspekte der Betriebssystemkonfiguration und Guix kümmert sich darum, die Konfiguration auf transaktionsbasierte, reproduzierbare und zustandslose Weise zu instanziieren (@pxref{System Configuration})."
+msgstr "Guix enthält Paketdefinitionen für viele Pakete, von GNU und nicht von 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:359
+#: doc/guix.texi:361
 #, no-wrap
 msgid "functional package management"
 msgstr "funktionale Paketverwaltung"
 
 #. type: cindex
-#: doc/guix.texi:360
+#: doc/guix.texi:362
 #, no-wrap
 msgid "isolation"
 msgstr "Isolierung"
 
 #. type: Plain text
-#: doc/guix.texi:375
+#: doc/guix.texi:377
 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 (@pxref{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."
+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:376 doc/guix.texi:4859
+#: doc/guix.texi:378 doc/guix.texi:6273
 #, no-wrap
 msgid "store"
 msgstr "Store"
 
 #. type: Plain text
-#: doc/guix.texi:383
+#: doc/guix.texi:385
 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 (@pxref{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."
+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:387
+#: doc/guix.texi:389
 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ückstufungen, Installation von Paketen als einfacher Nutzer sowie Garbage Collection für Pakete (@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 als einfacher Nutzer sowie Garbage Collection für Pakete (siehe @ref{Features})."
 
-#. type: cindex
-#: doc/guix.texi:393
+#. type: Plain text
+#: doc/guix.texi:404
+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."
+msgstr "Mit Guix kommt eine Distribution des GNU-Systems, die nur aus freier Software@footnote{Die Bezeichnung »frei« steht hier für die @url{http://www.gnu.org/philosophy/free-sw.html,Freiheiten, 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:410
+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}):"
+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{http://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:413
 #, no-wrap
-msgid "installing Guix"
-msgstr "Guix installieren"
+msgid "guix package --list-available\n"
+msgstr "guix package --list-available\n"
 
-#. type: cindex
-#: doc/guix.texi:394
+#. type: Plain text
+#: doc/guix.texi:419
+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:421
+msgid "Packages are currently available on the following platforms:"
+msgstr "Pakete sind zur Zeit auf folgenden Plattformen verfügbar:"
+
+#. type: item
+#: doc/guix.texi:424 doc/guix.texi:1869
 #, no-wrap
-msgid "official website"
-msgstr "Offizielle Webpräsenz"
+msgid "x86_64-linux"
+msgstr "x86_64-linux"
+
+#. type: table
+#: doc/guix.texi:426
+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:427 doc/guix.texi:1872
+#, no-wrap
+msgid "i686-linux"
+msgstr "i686-linux"
+
+#. type: table
+#: doc/guix.texi:429
+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:430
+#, no-wrap
+msgid "armhf-linux"
+msgstr "armhf-linux"
+
+#. type: table
+#: doc/guix.texi:434
+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."
+
+#. type: item
+#: doc/guix.texi:435
+#, no-wrap
+msgid "aarch64-linux"
+msgstr "aarch64-linux"
+
+#. type: table
+#: doc/guix.texi:439
+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!"
+
+#. type: item
+#: doc/guix.texi:440
+#, no-wrap
+msgid "mips64el-linux"
+msgstr "mips64el-linux"
+
+#. type: table
+#: doc/guix.texi:443
+msgid "little-endian 64-bit MIPS processors, specifically the Loongson series, n32 ABI, and Linux-Libre kernel."
+msgstr "64-Bit-MIPS-Prozessoren, little-endian, insbesondere die Loongson-Reihe, n32-ABI, mit Linux-Libre als Kernel."
 
 #. type: Plain text
-#: doc/guix.texi:399
-msgid "GNU Guix is available for download from its website at @url{http://www.gnu.org/software/guix/}.  This section describes the software requirements of Guix, as well as how to install it and get ready to use it."
-msgstr "GNU Guix kann von seiner Webpräsenz unter @url{http://www.gnu.org/software/guix/} heruntergeladen werden. Dieser Abschnitt beschreibt die Software-Voraussetzungen von Guix und wie man es installiert, so dass man es benutzen kann."
+#: doc/guix.texi:453
+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:404
-msgid "Note that 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}."
-msgstr "Beachten Sie, dass es in diesem Abschnitt um die Installation des Paketverwaltungswerkzeugs geht, welche auf einem laufenden GNU/Linux-System vollzogen werden kann. Falls Sie stattdessen das vollständige GNU-Betriebssystem installieren möchten, werfen Sie einen Blick in den Abschnitt @pxref{System Installation}."
+#: doc/guix.texi:456
+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:460
+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:463
+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:405 doc/guix.texi:1487
+#: doc/guix.texi:469
+#, no-wrap
+msgid "installing Guix"
+msgstr "Guix installieren"
+
+#. type: quotation
+#: doc/guix.texi:471 doc/guix.texi:1540 doc/guix.texi:1771 doc/guix.texi:1976
+#: doc/guix.texi:2178 doc/guix.texi:2373 doc/guix.texi:3152 doc/guix.texi:3932
+#: doc/guix.texi:4148 doc/guix.texi:4437 doc/guix.texi:4669 doc/guix.texi:4816
+#: doc/guix.texi:6292 doc/guix.texi:6360 doc/guix.texi:8046 doc/guix.texi:8058
+#: doc/guix.texi:9949 doc/guix.texi:10486 doc/guix.texi:11030
+#: doc/guix.texi:13484 doc/guix.texi:19286 doc/guix.texi:23969
+#: doc/guix.texi:24164 doc/guix.texi:24283 doc/guix.texi:24398
+#: doc/guix.texi:25388
+#, no-wrap
+msgid "Note"
+msgstr "Anmerkung"
+
+#. type: quotation
+#: doc/guix.texi:481
+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:483 doc/guix.texi:1557
 #, no-wrap
 msgid "foreign distro"
 msgstr "Fremddistribution"
 
 #. type: cindex
-#: doc/guix.texi:406
+#: doc/guix.texi:484
 #, no-wrap
 msgid "directories related to foreign distro"
 msgstr "Verzeichnisse auf einer Fremddistribution"
 
 #. type: Plain text
-#: doc/guix.texi:413
-msgid "When installed on a running GNU/Linux system---thereafter called a @dfn{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 ein bestehendes GNU/Linux-System installiert wird — im Folgenden als @dfn{Fremddistribution} bezeichnet —, 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."
+#: doc/guix.texi:489
+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:416
+#: doc/guix.texi:492
 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 (@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:497
+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: cindex
-#: doc/guix.texi:429
+#: doc/guix.texi:510
 #, no-wrap
 msgid "installing Guix from binaries"
 msgstr "Guix aus Binärdateien installieren"
 
 #. type: cindex
-#: doc/guix.texi:430
+#: doc/guix.texi:511
 #, no-wrap
 msgid "installer script"
 msgstr "Installations-Skript"
 
 #. type: Plain text
-#: doc/guix.texi:436
+#: doc/guix.texi:517
 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: Plain text
-#: doc/guix.texi:441
-msgid "We provide a @uref{https://git.savannah.gnu.org/cgit/guix.git/plain/etc/guix-install.sh, shell installer script}, which automates the download, installation, and initial configuration of Guix.  It should be run as the root user."
-msgstr "Wir bieten ein @uref{https://git.savannah.gnu.org/cgit/guix.git/plain/etc/guix-install.sh, Installations-Skript für die Shell}, 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: Plain text
-#: doc/guix.texi:443
+#: doc/guix.texi:519
 msgid "Installing goes along these lines:"
 msgstr "Die Installation läuft so ab:"
 
 #. type: cindex
-#: doc/guix.texi:446
+#: doc/guix.texi:522
 #, no-wrap
 msgid "downloading Guix binary"
 msgstr "Guix-Binärdatei herunterladen"
 
 #. type: enumerate
-#: doc/guix.texi:451
+#: doc/guix.texi:527
 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 "Laden Sie den binären Tarball von @indicateurl{https://alpha.gnu.org/gnu/guix/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."
 
 #. type: enumerate
-#: doc/guix.texi:455
+#: doc/guix.texi:531
 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:459
+#: doc/guix.texi:535
 #, no-wrap
 msgid ""
 "$ wget https://alpha.gnu.org/gnu/guix/guix-binary-@value{VERSION}.@var{system}.tar.xz.sig\n"
@@ -2718,12 +3394,12 @@ msgstr ""
 "$ gpg --verify guix-binary-@value{VERSION}.@var{System}.tar.xz.sig\n"
 
 #. type: Plain text
-#: doc/guix.texi:463 doc/guix.texi:9132
+#: doc/guix.texi:539 doc/guix.texi:1887
 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:467 doc/guix.texi:9136
+#: doc/guix.texi:543 doc/guix.texi:1891
 #, no-wrap
 msgid ""
 "$ gpg --keyserver @value{KEY-SERVER} \\\n"
@@ -2733,17 +3409,17 @@ msgstr ""
 "      --recv-keys @value{OPENPGP-SIGNING-KEY-ID}\n"
 
 #. type: Plain text
-#: doc/guix.texi:472 doc/guix.texi:9141
+#: doc/guix.texi:548 doc/guix.texi:1896
 msgid "and rerun the @code{gpg --verify} command."
 msgstr "und den Befehl @code{gpg --verify} erneut ausführen."
 
 #. type: enumerate
-#: doc/guix.texi:476
+#: doc/guix.texi:552
 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:482
+#: doc/guix.texi:558
 #, no-wrap
 msgid ""
 "# cd /tmp\n"
@@ -2757,27 +3433,27 @@ msgstr ""
 "# mv var/guix /var/ && mv gnu /\n"
 
 #. type: enumerate
-#: doc/guix.texi:487
+#: doc/guix.texi:563
 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} (@pxref{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)."
+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:490
+#: doc/guix.texi:566
 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:500
+#: doc/guix.texi:576
 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."
 
 #. type: enumerate
-#: doc/guix.texi:504
+#: doc/guix.texi:580
 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 (@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:509
+#: doc/guix.texi:585
 #, no-wrap
 msgid ""
 "# mkdir -p ~root/.config/guix\n"
@@ -2789,12 +3465,12 @@ msgstr ""
 "         ~root/.config/guix/current\n"
 
 #. type: enumerate
-#: doc/guix.texi:513
+#: doc/guix.texi:589
 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:"
 
 #. type: example
-#: doc/guix.texi:517
+#: doc/guix.texi:593
 #, no-wrap
 msgid ""
 "# GUIX_PROFILE=\"`echo ~root`/.config/guix/current\" ; \\\n"
@@ -2804,22 +3480,22 @@ msgstr ""
 "  source $GUIX_PROFILE/etc/profile\n"
 
 #. type: enumerate
-#: doc/guix.texi:522
+#: doc/guix.texi:598
 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 (@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:525
+#: doc/guix.texi:601
 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:528
+#: doc/guix.texi:604
 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:540
+#: doc/guix.texi:616
 #, no-wrap
 msgid ""
 "# cp ~root/.config/guix/current/lib/systemd/system/guix-daemon.service \\\n"
@@ -2831,12 +3507,12 @@ msgstr ""
 "# systemctl start guix-daemon && systemctl enable guix-daemon\n"
 
 #. type: itemize
-#: doc/guix.texi:543 doc/guix.texi:8514
+#: doc/guix.texi:619 doc/guix.texi:9733
 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:549
+#: doc/guix.texi:625
 #, no-wrap
 msgid ""
 "# initctl reload-configuration\n"
@@ -2850,12 +3526,12 @@ msgstr ""
 "# start guix-daemon\n"
 
 #. type: enumerate
-#: doc/guix.texi:552
+#: doc/guix.texi:628
 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:556
+#: doc/guix.texi:632
 #, no-wrap
 msgid ""
 "# ~root/.config/guix/current/bin/guix-daemon \\\n"
@@ -2865,12 +3541,12 @@ msgstr ""
 "       --build-users-group=guixbuild\n"
 
 #. type: enumerate
-#: doc/guix.texi:561
+#: doc/guix.texi:637
 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:566
+#: doc/guix.texi:642
 #, no-wrap
 msgid ""
 "# mkdir -p /usr/local/bin\n"
@@ -2882,12 +3558,12 @@ msgstr ""
 "# ln -s /var/guix/profiles/per-user/root/current-guix/bin/guix\n"
 
 #. type: enumerate
-#: doc/guix.texi:570
+#: doc/guix.texi:646
 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:576
+#: doc/guix.texi:652
 #, no-wrap
 msgid ""
 "# mkdir -p /usr/local/share/info\n"
@@ -2901,75 +3577,75 @@ msgstr ""
 "  do ln -s $i ; done\n"
 
 #. type: enumerate
-#: doc/guix.texi:582
+#: doc/guix.texi:658
 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} dieses Handbuch öffnen (@pxref{Other Info Directories,,, texinfo, GNU Texinfo} hat weitere Details, wie Sie den Info-Suchpfad ändern können)."
+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:584 doc/guix.texi:2359 doc/guix.texi:11213
+#: doc/guix.texi:660 doc/guix.texi:3131 doc/guix.texi:11948
 #, no-wrap
 msgid "substitutes, authorization thereof"
 msgstr "Substitute, deren Autorisierung"
 
 #. type: enumerate
-#: doc/guix.texi:587
-msgid "To use substitutes from @code{hydra.gnu.org} or one of its mirrors (@pxref{Substitutes}), authorize them:"
-msgstr "Um Substitute von @code{hydra.gnu.org} oder einem Spiegelserver davon zu benutzen (@pxref{Substitutes}), müssen sie erst autorisiert werden:"
+#: doc/guix.texi:663
+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:591
+#: doc/guix.texi:667
 #, no-wrap
 msgid ""
 "# guix archive --authorize < \\\n"
-"     ~root/.config/guix/current/share/guix/hydra.gnu.org.pub\n"
+"     ~root/.config/guix/current/share/guix/@value{SUBSTITUTE-SERVER}.pub\n"
 msgstr ""
 "# guix archive --authorize < \\\n"
-"     ~root/.config/guix/current/share/guix/hydra.gnu.org.pub\n"
+"     ~root/.config/guix/current/share/guix/@value{SUBSTITUTE-SERVER}.pub\n"
 
 #. type: enumerate
-#: doc/guix.texi:596
+#: doc/guix.texi:672
 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 @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:599
+#: doc/guix.texi:675
 msgid "Voilà, the installation is complete!"
 msgstr "Voilà, die Installation ist fertig!"
 
 #. type: Plain text
-#: doc/guix.texi:602
+#: doc/guix.texi:678
 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:605
+#: doc/guix.texi:681
 #, no-wrap
 msgid "# guix package -i hello\n"
 msgstr "# guix package -i hello\n"
 
 #. type: Plain text
-#: doc/guix.texi:612
+#: doc/guix.texi:688
 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}."
 
 #. type: Plain text
-#: doc/guix.texi:615
+#: doc/guix.texi:691
 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:618
+#: doc/guix.texi:694
 #, 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:622
-msgid "... which, in turn, runs:"
-msgstr "… was wiederum dies ausführt:"
+#: doc/guix.texi:698
+msgid "...@: which, in turn, runs:"
+msgstr "…@: was wiederum dies ausführt:"
 
 #. type: example
-#: doc/guix.texi:626
+#: doc/guix.texi:702
 #, no-wrap
 msgid ""
 "guix pack -s @var{system} --localstatedir \\\n"
@@ -2979,270 +3655,277 @@ msgstr ""
 "  --profile-name=current-guix guix\n"
 
 #. type: Plain text
-#: doc/guix.texi:629
+#: doc/guix.texi:705
 msgid "@xref{Invoking guix pack}, for more info on this handy tool."
-msgstr "Siehe @xref{Invoking guix pack} für weitere Informationen zu diesem praktischen Werkzeug."
+msgstr "Siehe @ref{Invoking guix pack} für weitere Informationen zu diesem praktischen Werkzeug."
 
 #. type: Plain text
-#: doc/guix.texi:637
+#: doc/guix.texi:713
 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:714
+#, no-wrap
+msgid "official website"
+msgstr "Offizielle Webpräsenz"
+
 #. type: Plain text
-#: doc/guix.texi:639
+#: doc/guix.texi:717
+msgid "GNU Guix is available for download from its website at @url{https://www.gnu.org/software/guix/}."
+msgstr "GNU Guix kann von seiner Webpräsenz unter @url{http://www.gnu.org/software/guix/} heruntergeladen werden."
+
+#. type: Plain text
+#: doc/guix.texi:719
 msgid "GNU Guix depends on the following packages:"
 msgstr "GNU Guix hat folgende Pakete als Abhängigkeiten:"
 
 #. type: item
-#: doc/guix.texi:641
+#: doc/guix.texi:721
 #, no-wrap
-msgid "@url{http://gnu.org/software/guile/, GNU Guile}, version 2.0.13 or"
-msgstr "@url{http://gnu.org/software/guile/, GNU Guile}, Version 2.0.13 oder"
-
-#. type: itemize
-#: doc/guix.texi:643
-msgid "later, including 2.2.x;"
-msgstr "neuer, einschließlich 2.2.x,"
+msgid "@url{http://gnu.org/software/guile/, GNU Guile}, version 2.2.x;"
+msgstr "@url{http://gnu.org/software/guile/, GNU Guile}, Version 2.2.x,"
 
 #. type: item
-#: doc/guix.texi:643
+#: doc/guix.texi:722
 #, 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:645
+#: doc/guix.texi:724
 msgid "0.1.0 or later;"
 msgstr "0.1.0 oder neuer,"
 
 #. type: itemize
-#: doc/guix.texi:649
+#: doc/guix.texi:728
 msgid "@uref{http://gnutls.org/, GnuTLS}, specifically its Guile bindings (@pxref{Guile Preparations, how to install the GnuTLS bindings for Guile,, gnutls-guile, GnuTLS-Guile});"
-msgstr "@uref{http://gnutls.org/, GnuTLS}, im Speziellen dessen Bindungen für Guile (@pxref{Guile Preparations, how to install the GnuTLS bindings for Guile,, gnutls-guile, GnuTLS-Guile}),"
+msgstr "@uref{http://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:652
+#: doc/guix.texi:731
 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:656
+#: doc/guix.texi:735
 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:656
+#: doc/guix.texi:735
+#, no-wrap
+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:736
 #, no-wrap
 msgid "@url{http://zlib.net, zlib};"
 msgstr "@url{http://zlib.net, zlib},"
 
 #. type: item
-#: doc/guix.texi:657
+#: doc/guix.texi:737
 #, no-wrap
 msgid "@url{http://www.gnu.org/software/make/, GNU Make}."
 msgstr "@url{http://www.gnu.org/software/make/, GNU Make}."
 
 #. type: Plain text
-#: doc/guix.texi:661
+#: doc/guix.texi:741
 msgid "The following dependencies are optional:"
 msgstr "Folgende Abhängigkeiten sind optional:"
 
 #. type: itemize
-#: doc/guix.texi:669
-msgid "Installing @url{http://savannah.nongnu.org/projects/guile-json/, Guile-JSON} will allow you to use the @command{guix import pypi} command (@pxref{Invoking guix import}).  It is of interest primarily for developers and not for casual users."
-msgstr "Wenn Sie @url{http://savannah.nongnu.org/projects/guile-json/, Guile-JSON} installieren, können Sie den Befehl @command{guix import pypi} benutzen (@pxref{Invoking guix import}). Das spielt hauptsächlich für Entwickler und nicht für Gelegenheitsnutzer eine Rolle."
-
-#. type: itemize
-#: doc/guix.texi:676
+#: doc/guix.texi:749
 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 "Unterstützung für das Auslagern von Erstellungen (@pxref{Daemon Offload Setup}) und @command{guix copy} (@pxref{Invoking guix copy}) hängt von @uref{https://github.com/artyom-poptsov/guile-ssh, Guile-SSH}, Version 0.10.2 oder neuer, ab."
+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.10.2 oder neuer, ab."
 
 #. type: itemize
-#: doc/guix.texi:680
+#: doc/guix.texi:753
 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:684
+#: doc/guix.texi:757
 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:"
 
 #. type: item
-#: doc/guix.texi:686
+#: doc/guix.texi:759
 #, no-wrap
 msgid "@url{http://gnupg.org/, GNU libgcrypt};"
 msgstr "@url{http://gnupg.org/, GNU libgcrypt},"
 
 #. type: item
-#: doc/guix.texi:687
+#: doc/guix.texi:760
 #, no-wrap
 msgid "@url{http://sqlite.org, SQLite 3};"
 msgstr "@url{http://sqlite.org, SQLite 3},"
 
 #. type: item
-#: doc/guix.texi:688
+#: doc/guix.texi:761
 #, no-wrap
 msgid "@url{http://gcc.gnu.org, GCC's g++}, with support for the"
 msgstr "@url{http://gcc.gnu.org, GCC's g++} mit Unterstützung für den"
 
 #. type: itemize
-#: doc/guix.texi:690
+#: doc/guix.texi:763
 msgid "C++11 standard."
 msgstr "C++11-Standard."
 
 #. type: cindex
-#: doc/guix.texi:692
+#: doc/guix.texi:765
 #, no-wrap
 msgid "state directory"
 msgstr "Zustandsverzeichnis"
 
 #. type: Plain text
-#: doc/guix.texi:700
+#: doc/guix.texi:773
 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 "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 (@pxref{Directory Variables, @code{localstatedir},, standards, GNU Coding Standards}). Das @command{configure}-Skript schützt vor ungewollter Fehlkonfiguration der @var{localstatedir}, damit sie nicht versehentlich Ihren Store verfälschen (@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}). 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:701
+#: doc/guix.texi:774
 #, no-wrap
 msgid "Nix, compatibility"
 msgstr "Nix, Kompatibilität"
 
 #. type: Plain text
-#: doc/guix.texi:706
+#: doc/guix.texi:779
 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."
 msgstr "Wenn eine funktionierende Installation of @url{http://nixos.org/nix/, the Nix package manager} verfügbar ist, können Sie Guix stattdessen mit @code{--disable-daemon} konfigurieren. In diesem Fall ersetzt Nix die drei oben genannten Abhängigkeiten."
 
 #. type: Plain text
-#: doc/guix.texi:716
+#: doc/guix.texi:789
 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 ist mit Nix kompatibel, daher ist es möglich, denselben Store für beide zu verwenden. Dazu müssen Sie an @command{configure} nicht nur denselben Wert für @code{--with-store-dir} übergeben, sondern auch denselben Wert für @code{--localstatedir}. Letzterer ist deswegen essenziell, weil er unter Anderem angibt, wo die Datenbank liegt, in der sich die Metainformationen über den Store befinden. Für Nix sind die Werte standardmäßig @code{--with-store-dir=/nix/store} und @code{--localstatedir=/nix/var}. Beachten Sie, dass @code{--disable-daemon} nicht erforderlich ist, wenn Sie die Absicht haben, den Store mit Nix zu teilen."
+msgstr "Guix ist mit Nix kompatibel, daher ist es möglich, denselben Store für beide zu verwenden. Dazu müssen Sie an @command{configure} nicht nur denselben Wert für @code{--with-store-dir} übergeben, sondern auch denselben Wert für @code{--localstatedir}. Letzterer ist deswegen essenziell, weil er unter anderem angibt, wo die Datenbank liegt, in der sich die Metainformationen über den Store befinden. Für Nix sind die Werte standardmäßig @code{--with-store-dir=/nix/store} und @code{--localstatedir=/nix/var}. Beachten Sie, dass @code{--disable-daemon} nicht erforderlich ist, wenn Sie die Absicht haben, den Store mit Nix zu teilen."
 
 #. type: cindex
-#: doc/guix.texi:720
+#: doc/guix.texi:793
 #, no-wrap
 msgid "test suite"
 msgstr "Testkatalog"
 
 #. type: Plain text
-#: doc/guix.texi:726
+#: doc/guix.texi:799
 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:729
+#: doc/guix.texi:802
 #, no-wrap
 msgid "make check\n"
 msgstr "make check\n"
 
 #. type: Plain text
-#: doc/guix.texi:736
+#: doc/guix.texi:809
 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:739
+#: doc/guix.texi:812
 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:742
+#: doc/guix.texi:815
 #, 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:747
+#: doc/guix.texi:820
 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:750
+#: doc/guix.texi:823
 #, 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:756
+#: doc/guix.texi:829
 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 (@pxref{Requirements})."
+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:760
-msgid "Guix also comes with a whole-system test suite that tests complete GuixSD operating 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 GuixSD-Betriebssystems testet. Er kann nur auf Systemen benutzt werden, auf denen Guix bereits installiert ist, mit folgendem Befehl:"
+#: doc/guix.texi:833
+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:763
+#: doc/guix.texi:836
 #, no-wrap
 msgid "make check-system\n"
 msgstr "make check-system\n"
 
 #. type: Plain text
-#: doc/guix.texi:767
+#: doc/guix.texi:840
 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:770
+#: doc/guix.texi:843
 #, no-wrap
 msgid "make check-system TESTS=\"basic mcron\"\n"
 msgstr "make check-system TESTS=\"basic mcron\"\n"
 
 #. type: Plain text
-#: doc/guix.texi:778
+#: doc/guix.texi:851
 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 @dots{})}-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 (@pxref{Substitutes}). Manche von ihnen nehmen viel Speicherplatz in Anspruch, um die VM-Abbilder zu speichern."
+msgstr "Diese Systemtests sind in den @code{(gnu tests @dots{})}-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:781
+#: doc/guix.texi:854
 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:785
+#: doc/guix.texi:858
 #, no-wrap
 msgid "daemon"
 msgstr "Daemon"
 
 #. type: Plain text
-#: doc/guix.texi:793
+#: doc/guix.texi:866
 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:797
+#: doc/guix.texi:870
 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:807 doc/guix.texi:1232
+#: doc/guix.texi:880 doc/guix.texi:1303
 #, no-wrap
 msgid "build environment"
 msgstr "Erstellungsumgebung"
 
 #. type: Plain text
-#: doc/guix.texi:815
+#: doc/guix.texi:888
 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:816
+#: doc/guix.texi:889
 #, no-wrap
 msgid "build users"
 msgstr "Erstellungsbenutzer"
 
 #. type: Plain text
-#: doc/guix.texi:827
+#: doc/guix.texi:900
 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 (@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:830
+#: doc/guix.texi:903
 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:842
+#: doc/guix.texi:915
 #, no-wrap
 msgid ""
 "# groupadd --system guixbuild\n"
@@ -3264,113 +3947,113 @@ msgstr ""
 "  done\n"
 
 #. type: Plain text
-#: doc/guix.texi:852
+#: doc/guix.texi:925
 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 (@pxref{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} (@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})."
 
 #. type: Plain text
-#: doc/guix.texi:861
+#: doc/guix.texi:934
 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:864 doc/guix.texi:1225
+#: doc/guix.texi:937 doc/guix.texi:1296
 #, no-wrap
 msgid "# guix-daemon --build-users-group=guixbuild\n"
 msgstr "# guix-daemon --build-users-group=guixbuild\n"
 
 #. type: cindex
-#: doc/guix.texi:866 doc/guix.texi:1230
+#: doc/guix.texi:939 doc/guix.texi:1301
 #, no-wrap
 msgid "chroot"
 msgstr "chroot"
 
 #. type: Plain text
-#: doc/guix.texi:871
+#: doc/guix.texi:944
 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:879
+#: doc/guix.texi:952
 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:883
+#: doc/guix.texi:956
 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:887
+#: doc/guix.texi:960
 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:890
+#: doc/guix.texi:963
 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:894
+#: doc/guix.texi:967
 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:897
+#: doc/guix.texi:970
 msgid "a writable @file{/tmp} directory."
 msgstr "einem @file{/tmp}-Verzeichnis mit Schreibrechten."
 
 #. type: Plain text
-#: doc/guix.texi:906
+#: doc/guix.texi:979
 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 Erstellungsbäume 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."
+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."
 
 #. type: vindex
-#: doc/guix.texi:907 doc/guix.texi:2466
+#: doc/guix.texi:980 doc/guix.texi:3233
 #, no-wrap
 msgid "http_proxy"
 msgstr "http_proxy"
 
 #. type: Plain text
-#: doc/guix.texi:911
+#: doc/guix.texi:984
 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 (@pxref{Derivations}) oder für Substitute (@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})."
 
 #. type: Plain text
-#: doc/guix.texi:919
+#: doc/guix.texi:992
 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."
 
 #. type: subsection
-#: doc/guix.texi:922
+#: doc/guix.texi:995
 #, no-wrap
 msgid "Using the Offload Facility"
 msgstr "Nutzung der Auslagerungsfunktionalität"
 
 #. type: cindex
-#: doc/guix.texi:924
+#: doc/guix.texi:997
 #, no-wrap
 msgid "offloading"
 msgstr "auslagern"
 
 #. type: cindex
-#: doc/guix.texi:925 doc/guix.texi:1289
+#: doc/guix.texi:998 doc/guix.texi:1359
 #, no-wrap
 msgid "build hook"
 msgstr "Build-Hook"
 
 #. type: Plain text
-#: doc/guix.texi:939
+#: doc/guix.texi:1012
 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 @dfn{auslagern} auf andere Maschinen, 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."
+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."
 
 #. type: Plain text
-#: doc/guix.texi:941
+#: doc/guix.texi:1014
 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: example
-#: doc/guix.texi:949
+#: doc/guix.texi:1022
 #, no-wrap
 msgid ""
 "(list (build-machine\n"
@@ -3390,7 +4073,7 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix.texi:958
+#: doc/guix.texi:1031
 #, no-wrap
 msgid ""
 "      (build-machine\n"
@@ -3412,93 +4095,93 @@ msgstr ""
 "                        \"/.ssh/identität-für-guix\"))))\n"
 
 #. type: Plain text
-#: doc/guix.texi:964
+#: doc/guix.texi:1037
 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."
 
 #. type: Plain text
-#: doc/guix.texi:973
+#: doc/guix.texi:1046
 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 (@pxref{Introduction, Guile-Avahi,, guile-avahi, Using Avahi in Guile Scheme Programs}). Der Datentyp @code{build-machine} wird im Folgenden weiter ausgeführt."
+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:974
+#: doc/guix.texi:1047
 #, no-wrap
 msgid "{Data Type} build-machine"
 msgstr "{Datentyp} build-machine"
 
 #. type: deftp
-#: doc/guix.texi:977
+#: doc/guix.texi:1050
 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:980 doc/guix.texi:3984 doc/guix.texi:10390
-#: doc/guix.texi:10454 doc/guix.texi:10549 doc/guix.texi:12158
-#: doc/guix.texi:16411 doc/guix.texi:16677 doc/guix.texi:16810
-#: doc/guix.texi:17118 doc/guix.texi:17159 doc/guix.texi:21592
-#: doc/guix.texi:21609 doc/guix.texi:21875 doc/guix.texi:23096
-#: doc/guix.texi:23296
+#: doc/guix.texi:1053 doc/guix.texi:5310 doc/guix.texi:10972
+#: doc/guix.texi:11054 doc/guix.texi:11281 doc/guix.texi:12865
+#: doc/guix.texi:17368 doc/guix.texi:17953 doc/guix.texi:18564
+#: doc/guix.texi:18872 doc/guix.texi:18913 doc/guix.texi:23385
+#: doc/guix.texi:23402 doc/guix.texi:23695 doc/guix.texi:24973
+#: doc/guix.texi:25179
 #, no-wrap
 msgid "name"
 msgstr "name"
 
 #. type: table
-#: doc/guix.texi:982
+#: doc/guix.texi:1055
 msgid "The host name of the remote machine."
-msgstr "Der Hostname (d.h. der Rechnername) der entfernten Maschine."
+msgstr "Der Hostname (d.h.@: der Rechnername) der entfernten Maschine."
 
 #. type: item
-#: doc/guix.texi:983
+#: doc/guix.texi:1056
 #, no-wrap
 msgid "system"
 msgstr "system"
 
 #. type: table
-#: doc/guix.texi:985
+#: doc/guix.texi:1058
 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\"}."
+msgstr "Der Systemtyp der entfernten Maschine — z.B.@: @code{\"x86_64-linux\"}."
 
 #. type: code{#1}
-#: doc/guix.texi:986 doc/guix.texi:12168
+#: doc/guix.texi:1059 doc/guix.texi:12875
 #, no-wrap
 msgid "user"
 msgstr "user"
 
 #. type: table
-#: doc/guix.texi:990
+#: doc/guix.texi:1063
 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:991
+#: doc/guix.texi:1064
 #, no-wrap
 msgid "host-key"
 msgstr "host-key"
 
 #. type: table
-#: doc/guix.texi:995
+#: doc/guix.texi:1068
 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:998
+#: doc/guix.texi:1071
 #, 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:1003
+#: doc/guix.texi:1076
 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:1008
+#: doc/guix.texi:1081
 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} (@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:1012
+#: doc/guix.texi:1085
 #, no-wrap
 msgid ""
 "$ lsh-export-key --openssh < /etc/lsh/host-key.pub \n"
@@ -3508,857 +4191,840 @@ msgstr ""
 "ssh-rsa AAAAB3NzaC1yc2EAAAAEOp8FoQAAAQEAs1eB46LV@dots{}\n"
 
 #. type: deftp
-#: doc/guix.texi:1017
+#: doc/guix.texi:1090
 msgid "A number of optional fields may be specified:"
 msgstr "Eine Reihe optionaler Felder kann festgelegt werden:"
 
 #. type: item
-#: doc/guix.texi:1020
+#: doc/guix.texi:1093
 #, no-wrap
 msgid "@code{port} (default: @code{22})"
 msgstr "@code{port} (Vorgabe: @code{22})"
 
 #. type: table
-#: doc/guix.texi:1022
+#: doc/guix.texi:1095
 msgid "Port number of SSH server on the machine."
 msgstr "Portnummer des SSH-Servers auf der Maschine."
 
 #. type: item
-#: doc/guix.texi:1023
+#: doc/guix.texi:1096
 #, 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:1026
+#: doc/guix.texi:1099
 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:1029
+#: doc/guix.texi:1102
 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:1030
+#: doc/guix.texi:1103
 #, no-wrap
 msgid "@code{compression} (default: @code{\"zlib@@openssh.com,zlib\"})"
 msgstr "@code{compression} (Vorgabe: @code{\"zlib@@openssh.com,zlib\"})"
 
 #. type: item
-#: doc/guix.texi:1031 doc/guix.texi:11452
+#: doc/guix.texi:1104 doc/guix.texi:12168
 #, no-wrap
 msgid "@code{compression-level} (default: @code{3})"
 msgstr "@code{compression-level} (Vorgabe: @code{3})"
 
 #. type: table
-#: doc/guix.texi:1033
+#: doc/guix.texi:1106
 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:1036
+#: doc/guix.texi:1109
 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:1037
+#: doc/guix.texi:1110
 #, 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:1040
+#: doc/guix.texi:1113
 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:1041
+#: doc/guix.texi:1114
 #, no-wrap
 msgid "@code{parallel-builds} (default: @code{1})"
 msgstr "@code{parallel-builds} (Vorgabe: @code{1})"
 
 #. type: table
-#: doc/guix.texi:1043
+#: doc/guix.texi:1116
 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:1044
+#: doc/guix.texi:1117
 #, no-wrap
 msgid "@code{speed} (default: @code{1.0})"
 msgstr "@code{speed} (Vorgabe: @code{1.0})"
 
 #. type: table
-#: doc/guix.texi:1047
+#: doc/guix.texi:1120
 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:1048
+#: doc/guix.texi:1121
 #, no-wrap
 msgid "@code{features} (default: @code{'()})"
 msgstr "@code{features} (Vorgabe: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:1053
+#: doc/guix.texi:1126
 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:1061
-msgid "The @code{guile} command must be in the search path on the build machines.  In addition, the Guix modules must be in @code{$GUILE_LOAD_PATH} on the build machine---you can check whether this is the case by running:"
-msgstr "Der Befehl @code{guile} muss sich im Suchpfad der Erstellungsmaschinen befinden. Zusätzlich müssen die Guix-Module im @code{$GUILE_LOAD_PATH} auf den Erstellungsmaschinen zu finden sein — um dies nachzuprüfen, können Sie Folgendes ausführen:"
+#: doc/guix.texi:1132
+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:1064
+#: doc/guix.texi:1135
 #, no-wrap
-msgid "ssh build-machine guile -c \"'(use-modules (guix config))'\"\n"
-msgstr "ssh build-machine guile -c \"'(use-modules (guix config))'\"\n"
+msgid "ssh build-machine guix repl --version\n"
+msgstr "ssh build-machine guix repl --version\n"
 
 #. type: Plain text
-#: doc/guix.texi:1071
+#: doc/guix.texi:1142
 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 (@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:1074
+#: doc/guix.texi:1145
 #, no-wrap
 msgid "# guix archive --generate-key\n"
 msgstr "# guix archive --generate-key\n"
 
 #. type: Plain text
-#: doc/guix.texi:1079
+#: doc/guix.texi:1150
 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:1082
+#: doc/guix.texi:1153
 #, 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:1086
+#: doc/guix.texi:1157
 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:1092
+#: doc/guix.texi:1163
 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."
 
 #. type: cindex
-#: doc/guix.texi:1093
+#: doc/guix.texi:1164
 #, no-wrap
 msgid "offload test"
 msgstr "Auslagerung testen"
 
 #. type: Plain text
-#: doc/guix.texi:1096
+#: doc/guix.texi:1167
 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:1099
+#: doc/guix.texi:1170
 #, no-wrap
 msgid "# guix offload test\n"
 msgstr "# guix offload test\n"
 
 #. type: Plain text
-#: doc/guix.texi:1105
+#: doc/guix.texi:1176
 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:1108
+#: doc/guix.texi:1179
 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:1111
+#: doc/guix.texi:1182
 #, no-wrap
 msgid "# guix offload test machines-qualif.scm\n"
 msgstr "# guix offload test maschinen-qualif.scm\n"
 
 #. type: Plain text
-#: doc/guix.texi:1115
+#: doc/guix.texi:1186
 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:1118
+#: doc/guix.texi:1189
 #, 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:1120
+#: doc/guix.texi:1191
 #, no-wrap
 msgid "offload status"
 msgstr "Auslagerungs-Lagebericht"
 
 #. type: Plain text
-#: doc/guix.texi:1123
+#: doc/guix.texi:1194
 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:"
 
 #. type: example
-#: doc/guix.texi:1126
+#: doc/guix.texi:1197
 #, no-wrap
 msgid "# guix offload status\n"
 msgstr "# guix offload status\n"
 
 #. type: cindex
-#: doc/guix.texi:1132
+#: doc/guix.texi:1203
 #, no-wrap
 msgid "SELinux, daemon policy"
 msgstr "SELinux, Policy für den Daemon"
 
 #. type: cindex
-#: doc/guix.texi:1133
+#: doc/guix.texi:1204
 #, no-wrap
 msgid "mandatory access control, SELinux"
 msgstr "Mandatory Access Control, SELinux"
 
 #. type: cindex
-#: doc/guix.texi:1134
+#: doc/guix.texi:1205
 #, no-wrap
 msgid "security, guix-daemon"
 msgstr "Sicherheit, des guix-daemon"
 
 #. type: Plain text
-#: doc/guix.texi:1140
-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 GuixSD does not provide an SELinux base policy, the daemon policy cannot be used on GuixSD."
-msgstr ""
-"Guix enthält eine SELinux-Richtliniendatei (»Policy«) unter\n"
-"@file{etc/guix-daemon.cil}, die auf einem System installiert werden\n"
-"kann, auf dem SELinux aktiviert ist, damit Guix-Dateien gekennzeichnet\n"
-"sind, und um das erwartete Verhalten des Daemons anzugeben. Da GuixSD\n"
-"keine Grundrichtlinie (»Base Policy«) für SELinux bietet, kann diese\n"
-"Richtlinie für den Daemon auf GuixSD nicht benutzt werden."
+#: doc/guix.texi:1211
+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:1141
+#: doc/guix.texi:1212
 #, no-wrap
 msgid "Installing the SELinux policy"
 msgstr "Installieren der SELinux-Policy"
 
 #. type: cindex
-#: doc/guix.texi:1142
+#: doc/guix.texi:1213
 #, no-wrap
 msgid "SELinux, policy installation"
 msgstr "SELinux, Policy installieren"
 
 #. type: Plain text
-#: doc/guix.texi:1144
+#: doc/guix.texi:1215
 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:1147
+#: doc/guix.texi:1218
 #, no-wrap
 msgid "semodule -i etc/guix-daemon.cil\n"
 msgstr "semodule -i etc/guix-daemon.cil\n"
 
 #. type: Plain text
-#: doc/guix.texi:1151
+#: doc/guix.texi:1222
 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:1156
+#: doc/guix.texi:1227
 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:1159
+#: doc/guix.texi:1230
 #, no-wrap
 msgid "ps -Zax | grep guix-daemon\n"
 msgstr "ps -Zax | grep guix-daemon\n"
 
 #. type: Plain text
-#: doc/guix.texi:1164
+#: doc/guix.texi:1235
 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:1166
+#: doc/guix.texi:1237
 #, no-wrap
 msgid "SELinux, limitations"
 msgstr "SELinux, Einschränkungen"
 
 #. type: Plain text
-#: doc/guix.texi:1171
+#: doc/guix.texi:1242
 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:1178
+#: doc/guix.texi:1249
 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:1189
+#: doc/guix.texi:1260
 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:1194
+#: doc/guix.texi:1265
 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:1205
+#: doc/guix.texi:1276
 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:1213
+#: doc/guix.texi:1284
 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:1216
+#: doc/guix.texi:1287
 #, no-wrap
 msgid "Invoking @command{guix-daemon}"
 msgstr "Aufruf von @command{guix-daemon}"
 
 #. type: Plain text
-#: doc/guix.texi:1222
+#: doc/guix.texi:1293
 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:1229
+#: doc/guix.texi:1300
 msgid "For details on how to set it up, @pxref{Setting Up the Daemon}."
-msgstr "Details, wie Sie ihn einrichten, finden Sie im Abschnitt @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:1231
+#: doc/guix.texi:1302
 #, no-wrap
 msgid "container, build environment"
 msgstr "Container, Erstellungsumgebung"
 
 #. type: cindex
-#: doc/guix.texi:1233 doc/guix.texi:1778 doc/guix.texi:2447 doc/guix.texi:8527
+#: doc/guix.texi:1304 doc/guix.texi:2553 doc/guix.texi:3214 doc/guix.texi:9746
 #, no-wrap
 msgid "reproducible builds"
 msgstr "Reproduzierbare Erstellungen"
 
 #. type: Plain text
-#: doc/guix.texi:1245
+#: doc/guix.texi:1316
 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 (@pxref{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 (@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})."
 
 #. type: Plain text
-#: doc/guix.texi:1251
+#: doc/guix.texi:1322
 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«."
 
 #. type: Plain text
-#: doc/guix.texi:1255
+#: doc/guix.texi:1326
 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 (@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:1261
+#: doc/guix.texi:1332
 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 @xref{Invoking guix processes}."
+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:1263
+#: doc/guix.texi:1334
 msgid "The following command-line options are supported:"
 msgstr "Die folgenden Befehlszeilenoptionen werden unterstützt:"
 
 #. type: item
-#: doc/guix.texi:1265
+#: doc/guix.texi:1336
 #, no-wrap
 msgid "--build-users-group=@var{group}"
 msgstr "--build-users-group=@var{Gruppe}"
 
 #. type: table
-#: doc/guix.texi:1268
+#: doc/guix.texi:1339
 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 (@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})."
 
 #. type: item
-#: doc/guix.texi:1269 doc/guix.texi:6270
+#: doc/guix.texi:1340 doc/guix.texi:7696
 #, no-wrap
 msgid "--no-substitutes"
 msgstr "--no-substitutes"
 
 #. type: cindex
-#: doc/guix.texi:1270 doc/guix.texi:1790 doc/guix.texi:2303
+#: doc/guix.texi:1341 doc/guix.texi:2565 doc/guix.texi:3075
 #, no-wrap
 msgid "substitutes"
 msgstr "Substitute"
 
 #. type: table
-#: doc/guix.texi:1274 doc/guix.texi:6274
+#: doc/guix.texi:1345 doc/guix.texi:7700
 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 (@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:1278
+#: doc/guix.texi:1349
 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} (@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})."
 
 #. type: item
-#: doc/guix.texi:1279 doc/guix.texi:6257 doc/guix.texi:7769 doc/guix.texi:8652
-#: doc/guix.texi:8840
+#: doc/guix.texi:1350 doc/guix.texi:7683 doc/guix.texi:9290 doc/guix.texi:9871
+#: doc/guix.texi:10061
 #, no-wrap
 msgid "--substitute-urls=@var{urls}"
 msgstr "--substitute-urls=@var{URLs}"
 
 #. type: anchor{#1}
-#: doc/guix.texi:1285
+#: doc/guix.texi:1355
 msgid "daemon-substitute-urls"
 msgstr "daemon-substitute-urls"
 
 #. type: table
-#: doc/guix.texi:1285
-msgid "Consider @var{urls} the default whitespace-separated list of substitute source URLs.  When this option is omitted, @indicateurl{https://mirror.hydra.gnu.org https://hydra.gnu.org} is used (@code{mirror.hydra.gnu.org} is a mirror of @code{hydra.gnu.org})."
-msgstr "Benutze @var{URLs} als standardmäßige, leerzeichengetrennte Liste der Quell-URLs für Substitute. Wenn diese Befehlszeilenoption nicht angegeben wird, wird @indicateurl{https://mirror.hydra.gnu.org https://hydra.gnu.org} verwendet (@code{mirror.hydra.gnu.org} ist ein Spiegelserver für @code{hydra.gnu.org})."
+#: doc/guix.texi:1355
+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:1288
+#: doc/guix.texi:1358
 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 (@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: item
-#: doc/guix.texi:1290 doc/guix.texi:6295
+#: doc/guix.texi:1360 doc/guix.texi:7721
 #, no-wrap
 msgid "--no-build-hook"
 msgstr "--no-build-hook"
 
 #. type: table
-#: doc/guix.texi:1292
+#: doc/guix.texi:1362
 msgid "Do not use the @dfn{build hook}."
-msgstr "Den »@dfn{Build-Hook}« nicht benutzen."
+msgstr "Den @dfn{Build-Hook} nicht benutzen."
 
 #. type: table
-#: doc/guix.texi:1296
+#: doc/guix.texi:1366
 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 "»Build-Hook« ist der Name eines Hilfsprogramms, das der Daemon starten kann und an das er Erstellungsanfragen übermittelt. Durch diesen Mechanismus können Erstellungen an andere Maschinen ausgelagert werden (@pxref{Daemon Offload Setup})."
+msgstr "»Build-Hook« ist der Name eines Hilfsprogramms, das der Daemon starten kann und an das er Erstellungsanfragen übermittelt. Durch diesen Mechanismus können Erstellungen an andere Maschinen ausgelagert werden (siehe @ref{Daemon Offload Setup})."
 
 #. type: item
-#: doc/guix.texi:1297
+#: doc/guix.texi:1367
 #, no-wrap
 msgid "--cache-failures"
 msgstr "--cache-failures"
 
 #. type: table
-#: doc/guix.texi:1299
+#: doc/guix.texi:1369
 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:1304
+#: doc/guix.texi:1374
 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. @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:1305 doc/guix.texi:6319
+#: doc/guix.texi:1375 doc/guix.texi:7750
 #, no-wrap
 msgid "--cores=@var{n}"
 msgstr "--cores=@var{n}"
 
 #. type: itemx
-#: doc/guix.texi:1306 doc/guix.texi:6320
+#: doc/guix.texi:1376 doc/guix.texi:7751
 #, no-wrap
 msgid "-c @var{n}"
 msgstr "-c @var{n}"
 
 #. type: table
-#: doc/guix.texi:1309
+#: doc/guix.texi:1379
 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:1313
+#: doc/guix.texi:1383
 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} (@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})."
 
 #. type: table
-#: doc/guix.texi:1317
+#: doc/guix.texi:1387
 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}."
 
 #. type: item
-#: doc/guix.texi:1318 doc/guix.texi:6324
+#: doc/guix.texi:1388 doc/guix.texi:7755
 #, no-wrap
 msgid "--max-jobs=@var{n}"
 msgstr "--max-jobs=@var{n}"
 
 #. type: itemx
-#: doc/guix.texi:1319 doc/guix.texi:6325
+#: doc/guix.texi:1389 doc/guix.texi:7756
 #, no-wrap
 msgid "-M @var{n}"
 msgstr "-M @var{n}"
 
 #. type: table
-#: doc/guix.texi:1324
+#: doc/guix.texi:1394
 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 (@pxref{Daemon Offload Setup}) oder sie schlagen einfach fehl."
+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:1325 doc/guix.texi:6300
+#: doc/guix.texi:1395 doc/guix.texi:7726
 #, no-wrap
 msgid "--max-silent-time=@var{seconds}"
 msgstr "--max-silent-time=@var{Sekunden}"
 
 #. type: table
-#: doc/guix.texi:1328 doc/guix.texi:6303
+#: doc/guix.texi:1398 doc/guix.texi:7729
 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:1330 doc/guix.texi:1339
+#: doc/guix.texi:1400 doc/guix.texi:1409
 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:1333
+#: doc/guix.texi:1403
 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 (@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}})."
 
 #. type: item
-#: doc/guix.texi:1334 doc/guix.texi:6307
+#: doc/guix.texi:1404 doc/guix.texi:7733
 #, no-wrap
 msgid "--timeout=@var{seconds}"
 msgstr "--timeout=@var{Sekunden}"
 
 #. type: table
-#: doc/guix.texi:1337 doc/guix.texi:6310
+#: doc/guix.texi:1407 doc/guix.texi:7736
 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:1342
+#: doc/guix.texi:1412
 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 (@pxref{Common Build Options, @code{--timeout}})."
+msgstr "Clients können einen anderen Wert verwenden lassen (siehe @ref{Common Build Options, @code{--timeout}})."
 
 #. type: item
-#: doc/guix.texi:1343
+#: doc/guix.texi:1413
 #, no-wrap
 msgid "--rounds=@var{N}"
 msgstr "--rounds=@var{N}"
 
 #. type: table
-#: doc/guix.texi:1348
+#: doc/guix.texi:1418
 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 (@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:1352 doc/guix.texi:6608
+#: doc/guix.texi:1422 doc/guix.texi:8095
 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/@dots{}-check}. Dadurch können Unterschiede zwischen den beiden Ergebnissen leicht erkannt werden."
 
 #. type: item
-#: doc/guix.texi:1353
+#: doc/guix.texi:1423
 #, no-wrap
 msgid "--debug"
 msgstr "--debug"
 
 #. type: table
-#: doc/guix.texi:1355
+#: doc/guix.texi:1425
 msgid "Produce debugging output."
 msgstr "Informationen zur Fehlersuche ausgeben."
 
 #. type: table
-#: doc/guix.texi:1359
+#: doc/guix.texi:1429
 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} (@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})."
 
 #. type: item
-#: doc/guix.texi:1360
+#: doc/guix.texi:1430
 #, no-wrap
 msgid "--chroot-directory=@var{dir}"
 msgstr "--chroot-directory=@var{Verzeichnis}"
 
 #. type: table
-#: doc/guix.texi:1362
+#: doc/guix.texi:1432
 msgid "Add @var{dir} to the build chroot."
 msgstr "Füge das @var{Verzeichnis} zum chroot von Erstellungen hinzu."
 
 #. type: table
-#: doc/guix.texi:1368
+#: doc/guix.texi:1438
 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:1369
+#: doc/guix.texi:1439
 #, no-wrap
 msgid "--disable-chroot"
 msgstr "--disable-chroot"
 
 #. type: table
-#: doc/guix.texi:1371
+#: doc/guix.texi:1441
 msgid "Disable chroot builds."
 msgstr "Erstellungen ohne chroot durchführen."
 
 #. type: table
-#: doc/guix.texi:1376
+#: doc/guix.texi:1446
 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:1377
+#: doc/guix.texi:1447
 #, no-wrap
 msgid "--log-compression=@var{type}"
 msgstr "--log-compression=@var{Typ}"
 
 #. type: table
-#: doc/guix.texi:1380
+#: doc/guix.texi:1450
 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:1384
+#: doc/guix.texi:1454
 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."
 
 #. type: item
-#: doc/guix.texi:1385
+#: doc/guix.texi:1455
 #, no-wrap
 msgid "--disable-deduplication"
 msgstr "--disable-deduplication"
 
 #. type: cindex
-#: doc/guix.texi:1386 doc/guix.texi:2763
+#: doc/guix.texi:1456 doc/guix.texi:3548
 #, no-wrap
 msgid "deduplication"
 msgstr "Deduplizieren"
 
 #. type: table
-#: doc/guix.texi:1388
+#: doc/guix.texi:1458
 msgid "Disable automatic file ``deduplication'' in the store."
 msgstr "Automatische Dateien-»Deduplizierung« im Store ausschalten."
 
 #. type: table
-#: doc/guix.texi:1395
+#: doc/guix.texi:1465
 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:1396
+#: doc/guix.texi:1466
 #, no-wrap
 msgid "--gc-keep-outputs[=yes|no]"
 msgstr "--gc-keep-outputs[=yes|no]"
 
 #. type: table
-#: doc/guix.texi:1399
+#: doc/guix.texi:1469
 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:1400 doc/guix.texi:2598
+#: doc/guix.texi:1470 doc/guix.texi:3365
 #, no-wrap
 msgid "GC roots"
 msgstr "GC-Wurzeln"
 
 #. type: cindex
-#: doc/guix.texi:1401 doc/guix.texi:2599
+#: doc/guix.texi:1471 doc/guix.texi:3366
 #, no-wrap
 msgid "garbage collector roots"
 msgstr "Müllsammlerwurzeln"
 
 #. type: table
-#: doc/guix.texi:1406
+#: doc/guix.texi:1476
 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 @xref{Invoking guix gc} für weitere Informationen zu Müllsammlerwurzeln."
+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."
 
 #. type: item
-#: doc/guix.texi:1407
+#: doc/guix.texi:1477
 #, no-wrap
 msgid "--gc-keep-derivations[=yes|no]"
 msgstr "--gc-keep-derivations[=yes|no]"
 
 #. type: table
-#: doc/guix.texi:1410
+#: doc/guix.texi:1480
 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:1415
+#: doc/guix.texi:1485
 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."
+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."
 
 #. type: table
-#: doc/guix.texi:1423
+#: doc/guix.texi:1493
 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."
 
 #. type: item
-#: doc/guix.texi:1424
+#: doc/guix.texi:1494
 #, no-wrap
 msgid "--impersonate-linux-2.6"
 msgstr "--impersonate-linux-2.6"
 
 #. type: table
-#: doc/guix.texi:1427
+#: doc/guix.texi:1497
 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."
 
 #. type: table
-#: doc/guix.texi:1430
+#: doc/guix.texi:1500
 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:1431
+#: doc/guix.texi:1501
 #, no-wrap
 msgid "--lose-logs"
 msgstr "--lose-logs"
 
 #. type: table
-#: doc/guix.texi:1434
+#: doc/guix.texi:1504
 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."
 
 #. type: item
-#: doc/guix.texi:1435 doc/guix.texi:3468 doc/guix.texi:6554 doc/guix.texi:7796
-#: doc/guix.texi:7979 doc/guix.texi:8211 doc/guix.texi:8845
-#: doc/guix.texi:21977 doc/guix.texi:22534
+#: doc/guix.texi:1505 doc/guix.texi:3694 doc/guix.texi:4562 doc/guix.texi:4855
+#: doc/guix.texi:8039 doc/guix.texi:9317 doc/guix.texi:9516
+#: doc/guix.texi:10066 doc/guix.texi:23797 doc/guix.texi:24417
 #, no-wrap
 msgid "--system=@var{system}"
 msgstr "--system=@var{System}"
 
 #. type: table
-#: doc/guix.texi:1439
+#: doc/guix.texi:1509
 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:1440 doc/guix.texi:6114
+#: doc/guix.texi:1510 doc/guix.texi:7541
 #, no-wrap
 msgid "--listen=@var{endpoint}"
 msgstr "--listen=@var{Endpunkt}"
 
 #. type: table
-#: doc/guix.texi:1445
+#: doc/guix.texi:1515
 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 Hostname (d.h.@: Rechnername) oder als Hostname-Port-Paar verstanden, auf dem gelauscht wird. Hier sind ein paar Beispiele:"
 
 #. type: item
-#: doc/guix.texi:1447
+#: doc/guix.texi:1517
 #, no-wrap
 msgid "--listen=/gnu/var/daemon"
 msgstr "--listen=/gnu/var/daemon"
 
 #. type: table
-#: doc/guix.texi:1450
+#: doc/guix.texi:1520
 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:1451
+#: doc/guix.texi:1521
 #, no-wrap
 msgid "--listen=localhost"
 msgstr "--listen=localhost"
 
 #. type: cindex
-#: doc/guix.texi:1452 doc/guix.texi:4908
+#: doc/guix.texi:1522 doc/guix.texi:6322
 #, no-wrap
 msgid "daemon, remote access"
 msgstr "Daemon, Fernzugriff"
 
 #. type: cindex
-#: doc/guix.texi:1453 doc/guix.texi:4909
+#: doc/guix.texi:1523 doc/guix.texi:6323
 #, no-wrap
 msgid "remote access to the daemon"
 msgstr "Fernzugriff auf den Daemon"
 
 #. type: cindex
-#: doc/guix.texi:1454 doc/guix.texi:4910
+#: doc/guix.texi:1524 doc/guix.texi:6324
 #, no-wrap
 msgid "daemon, cluster setup"
 msgstr "Daemon, Einrichten auf Clustern"
 
 #. type: cindex
-#: doc/guix.texi:1455 doc/guix.texi:4911
+#: doc/guix.texi:1525 doc/guix.texi:6325
 #, no-wrap
 msgid "clusters, daemon setup"
 msgstr "Cluster, Einrichtung des Daemons"
 
 #. type: table
-#: doc/guix.texi:1458
+#: doc/guix.texi:1528
 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:1459
+#: doc/guix.texi:1529
 #, no-wrap
 msgid "--listen=128.0.0.42:1234"
 msgstr "--listen=128.0.0.42:1234"
 
 #. type: table
-#: doc/guix.texi:1462
+#: doc/guix.texi:1532
 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:1469
+#: doc/guix.texi:1539
 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 (@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}})."
 
 #. type: quotation
-#: doc/guix.texi:1470 doc/guix.texi:2380 doc/guix.texi:3090 doc/guix.texi:3303
-#: doc/guix.texi:3533 doc/guix.texi:4878 doc/guix.texi:4946 doc/guix.texi:6559
-#: doc/guix.texi:6571 doc/guix.texi:8103 doc/guix.texi:8730 doc/guix.texi:9003
-#: doc/guix.texi:9215 doc/guix.texi:9364 doc/guix.texi:12705
-#: doc/guix.texi:17530 doc/guix.texi:22317 doc/guix.texi:22515
-#: doc/guix.texi:22602 doc/guix.texi:23505
-#, no-wrap
-msgid "Note"
-msgstr "Anmerkung"
-
-#. type: quotation
-#: doc/guix.texi:1476
+#: doc/guix.texi:1546
 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."
+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."
 
 #. type: table
-#: doc/guix.texi:1481
+#: doc/guix.texi:1551
 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."
 
 #. type: Plain text
-#: doc/guix.texi:1491
-msgid "When using Guix on top of GNU/Linux distribution other than GuixSD---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 GuixSD — einer sogenannten @dfn{Fremddistribution} —, so sind ein paar zusätzliche Schritte bei der Einrichtung nötig. Hier finden Sie manche davon."
+#: doc/guix.texi:1561
+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:1495
+#: doc/guix.texi:1565
 msgid "locales-and-locpath"
 msgstr "locales-and-locpath"
 
 #. type: cindex
-#: doc/guix.texi:1495
+#: doc/guix.texi:1565
 #, no-wrap
-msgid "locales, when not on GuixSD"
-msgstr "Locales, nicht auf GuixSD"
+msgid "locales, when not on Guix System"
+msgstr "Locales, nicht auf Guix System"
 
 #. type: vindex
-#: doc/guix.texi:1496 doc/guix.texi:10533
+#: doc/guix.texi:1566 doc/guix.texi:11265
 #, no-wrap
 msgid "LOCPATH"
 msgstr "LOCPATH"
 
 #. type: vindex
-#: doc/guix.texi:1497
+#: doc/guix.texi:1567
 #, no-wrap
 msgid "GUIX_LOCPATH"
 msgstr "GUIX_LOCPATH"
 
 #. type: Plain text
-#: doc/guix.texi:1502
+#: doc/guix.texi:1572
 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:"
 
 #. type: example
-#: doc/guix.texi:1506
+#: doc/guix.texi:1576
 #, no-wrap
 msgid ""
 "$ guix package -i glibc-locales\n"
@@ -4368,445 +5034,1364 @@ msgstr ""
 "$ export GUIX_LOCPATH=$HOME/.guix-profile/lib/locale\n"
 
 #. type: Plain text
-#: doc/guix.texi:1512
+#: doc/guix.texi:1582
 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 "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 110@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:1516
+#: doc/guix.texi:1586
 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} (@pxref{Locale Names, @code{LOCPATH},, libc, The GNU C Library Reference Manual}). Es gibt jedoch zwei wichtige Unterschiede:"
+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:"
 
 #. type: enumerate
-#: doc/guix.texi:1523
+#: doc/guix.texi:1593
 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."
 
 #. type: enumerate
-#: doc/guix.texi:1530
+#: doc/guix.texi:1600
 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."
+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."
 
 #. type: Plain text
-#: doc/guix.texi:1534
+#: doc/guix.texi:1604
 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:1537
+#: doc/guix.texi:1607
 #, no-wrap
 msgid "name service switch, glibc"
 msgstr "Name Service Switch, glibc"
 
 #. type: cindex
-#: doc/guix.texi:1538
+#: doc/guix.texi:1608
 #, no-wrap
 msgid "NSS (name service switch), glibc"
 msgstr "NSS (Name Service Switch), glibc"
 
 #. type: cindex
-#: doc/guix.texi:1539
+#: doc/guix.texi:1609
 #, no-wrap
 msgid "nscd (name service caching daemon)"
 msgstr "nscd (Name Service Caching Daemon)"
 
 #. type: cindex
-#: doc/guix.texi:1540
+#: doc/guix.texi:1610
 #, no-wrap
 msgid "name service caching daemon (nscd)"
 msgstr "Name Service Caching Daemon (nscd)"
 
 #. type: Plain text
-#: doc/guix.texi:1547
+#: doc/guix.texi:1617
 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."
+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:1548
+#: doc/guix.texi:1618
 #, no-wrap
 msgid "nsswitch.conf"
 msgstr "nsswitch.conf"
 
 #. type: Plain text
-#: doc/guix.texi:1553
+#: doc/guix.texi:1623
 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 (@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})."
 
 #. type: cindex
-#: doc/guix.texi:1554
+#: doc/guix.texi:1624
 #, no-wrap
 msgid "Network information service (NIS)"
 msgstr "Network Information Service (NIS)"
 
 #. type: cindex
-#: doc/guix.texi:1555
+#: doc/guix.texi:1625
 #, no-wrap
 msgid "NIS (Network information service)"
 msgstr "NIS (Network Information Service)"
 
 #. type: Plain text
-#: doc/guix.texi:1564
+#: doc/guix.texi:1634
 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 (@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})."
 
 #. type: Plain text
-#: doc/guix.texi:1574
+#: doc/guix.texi:1644
 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, mit der die Anwendung gebunden wurde (also der C-Bibliothek von Guix)."
 
 #. type: Plain text
-#: doc/guix.texi:1579
+#: doc/guix.texi:1649
 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 mit der 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:1584
+#: doc/guix.texi:1654
 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:1585
+#: doc/guix.texi:1655
 #, no-wrap
 msgid "X11 Fonts"
 msgstr "X11-Schriftarten"
 
-#. type: cindex
-#: doc/guix.texi:1587 doc/guix.texi:24079
-#, no-wrap
-msgid "fonts"
-msgstr "Schriftarten"
-
 #. type: Plain text
-#: doc/guix.texi:1595
+#: doc/guix.texi:1665
 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}."
+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}."
 
 #. type: Plain text
-#: doc/guix.texi:1602
+#: doc/guix.texi:1672
 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 (@pxref{Packages with Multiple Outputs}). Zum Beispiel installiert folgender Befehl Schriftarten für chinesische Sprachen:"
+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:1605
+#: doc/guix.texi:1675
 #, no-wrap
 msgid "guix package -i font-adobe-source-han-sans:cn\n"
 msgstr "guix package -i font-adobe-source-han-sans:cn\n"
 
 #. type: code{#1}
-#: doc/guix.texi:1607
+#: doc/guix.texi:1677
 #, no-wrap
 msgid "xterm"
 msgstr "xterm"
 
 #. type: Plain text
-#: doc/guix.texi:1611
+#: doc/guix.texi:1681
 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:"
+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:1614
+#: doc/guix.texi:1684
 #, 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:1618
+#: doc/guix.texi:1688
 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:1623
+#: doc/guix.texi:1693
 #, 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:1625
+#: doc/guix.texi:1695
 #, no-wrap
 msgid "xlsfonts"
 msgstr "xlsfonts"
 
 #. type: Plain text
-#: doc/guix.texi:1628
+#: doc/guix.texi:1698
 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:1629
+#: doc/guix.texi:1699
 #, no-wrap
 msgid "fc-cache"
 msgstr "fc-cache"
 
 #. type: cindex
-#: doc/guix.texi:1630
+#: doc/guix.texi:1700
 #, no-wrap
 msgid "font cache"
 msgstr "Font-Cache"
 
 #. type: Plain text
-#: doc/guix.texi:1636
+#: doc/guix.texi:1706
 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 "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 -f} aus. Der Befehl @code{fc-cache} wird vom Paket @code{fontconfig} angeboten."
 
 #. type: code{#1}
-#: doc/guix.texi:1639 doc/guix.texi:21716
+#: doc/guix.texi:1709 doc/guix.texi:23536
 #, no-wrap
 msgid "nss-certs"
 msgstr "nss-certs"
 
 #. type: Plain text
-#: doc/guix.texi:1642
+#: doc/guix.texi:1712
 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:1647
+#: doc/guix.texi:1717
 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. In @xref{X.509 Certificates} stehen genaue Informationen."
+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:1648
+#: doc/guix.texi:1718
 #, no-wrap
 msgid "Emacs Packages"
 msgstr "Emacs-Pakete"
 
 #. type: code{#1}
-#: doc/guix.texi:1650
+#: doc/guix.texi:1720
 #, no-wrap
 msgid "emacs"
 msgstr "emacs"
 
 #. type: Plain text
-#: doc/guix.texi:1661
+#: doc/guix.texi:1731
 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 "Wenn Sie mit Guix Pakete für Emacs installieren, werden deren elisp-Dateien entweder in @file{$HOME/.guix-profile/share/emacs/site-lisp/} oder in Unterverzeichnissen von @file{$HOME/.guix-profile/share/emacs/site-lisp/guix.d/} gespeichert. Letzteres Verzeichnis gibt es, weil es Tausende von Emacs-Paketen gibt und sie alle im selben Verzeichnis zu speichern vielleicht nicht verlässlich funktioniert (wegen Namenskonflikten). Daher halten wir es für richtig, für jedes Paket ein anderes Verzeichnis zu benutzen. Das Emacs-Paketsystem organisiert die Dateistruktur ähnlich (@pxref{Package Files,,, emacs, The GNU Emacs Manual})."
+msgstr "Wenn Sie mit Guix Pakete für Emacs installieren, werden deren elisp-Dateien entweder in @file{$HOME/.guix-profile/share/emacs/site-lisp/} oder in Unterverzeichnissen von @file{$HOME/.guix-profile/share/emacs/site-lisp/guix.d/} gespeichert. Letzteres Verzeichnis gibt es, weil es Tausende von Emacs-Paketen gibt und sie alle im selben Verzeichnis zu speichern vielleicht nicht verlässlich funktioniert (wegen Namenskonflikten). Daher halten wir es für richtig, für jedes Paket ein anderes Verzeichnis zu benutzen. Das Emacs-Paketsystem organisiert die Dateistruktur ähnlich (siehe @ref{Package Files,,, emacs, The GNU Emacs Manual})."
 
 #. type: Plain text
-#: doc/guix.texi:1667
+#: doc/guix.texi:1737
 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 "Standardmäßig »weiß« Emacs (wenn er mit Guix installiert wurde), wo diese Pakete liegen, Sie müssen also nichts selbst konfigurieren. Wenn Sie aber aus irgendeinem Grund mit Guix installierte Pakete nicht automatisch laden lassen möchten, können Sie Emacs mit der Befehlszeilenoption @code{--no-site-file} starten (@pxref{Init File,,, emacs, The GNU Emacs Manual})."
+msgstr "Standardmäßig »weiß« Emacs (wenn er mit Guix installiert wurde), wo diese Pakete liegen, Sie müssen also nichts selbst konfigurieren. Wenn Sie aber aus irgendeinem Grund mit Guix installierte 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:1668
+#: doc/guix.texi:1738
 #, no-wrap
 msgid "The GCC toolchain"
 msgstr "GCC-Toolchain"
 
 #. type: cindex
-#: doc/guix.texi:1670
+#: doc/guix.texi:1740
 #, no-wrap
 msgid "GCC"
 msgstr "GCC"
 
 #. type: cindex
-#: doc/guix.texi:1671
+#: doc/guix.texi:1741
 #, no-wrap
 msgid "ld-wrapper"
 msgstr "ld-wrapper"
 
 #. type: Plain text
-#: doc/guix.texi:1680
+#: doc/guix.texi:1750
 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."
 
+#. type: Plain text
+#: doc/guix.texi:1756
+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."
+
 #. type: cindex
-#: doc/guix.texi:1681
+#: doc/guix.texi:1763
 #, no-wrap
-msgid "attempt to use impure library, error message"
-msgstr "Versuch, unreine Bibliothek zu benutzen, Fehlermeldung"
+msgid "installing Guix System"
+msgstr "Installieren von Guix System"
+
+#. type: cindex
+#: doc/guix.texi:1764
+#, no-wrap
+msgid "Guix System, installation"
+msgstr "Guix System, Installation"
 
 #. type: Plain text
-#: doc/guix.texi:1691
-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.  By default, the linker wrapper refuses to link to libraries outside the store to ensure ``purity''.  This can be annoying when using the toolchain to link with local libraries.  To allow references to libraries outside the store you need to define the environment variable @code{GUIX_LD_WRAPPER_ALLOW_IMPURITIES}."
-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:1769
+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:1778
+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."
+
+#. type: quotation
+#: doc/guix.texi:1781
+msgid "Alternately, 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:1802
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:1805
+#, fuzzy
+#| msgid "Before you proceed with the installation, be aware of the following noteworthy limitations applicable to version @value{VERSION}:"
+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, beachten Sie die folgenden merklichen Einschränkungen der Version @value{VERSION}:"
+
+#. type: itemize
+#: doc/guix.texi:1809
+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:1813
+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:1818
+#, fuzzy
+#| 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."
+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. Manche grafischen Anwendungen könnten aber noch fehlen, ebenso fehlt KDE."
+
+#. type: Plain text
+#: doc/guix.texi:1823
+#, fuzzy
+#| 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."
+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 "Sie wurden gewarnt! 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:1698
+#: doc/guix.texi:1828
+#, no-wrap
+msgid "hardware support on Guix System"
+msgstr "Hardwareunterstützung von Guix System"
+
+#. type: Plain text
+#: doc/guix.texi:1837
+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:1838
+#, no-wrap
+msgid "WiFi, hardware support"
+msgstr "WLAN, Hardware-Unterstützung"
+
+#. type: Plain text
+#: doc/guix.texi:1847
+#, fuzzy
+#| 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}})."
+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 @var{%base-firmware} mitgeliefert (siehe @ref{operating-system Reference, @code{firmware}})."
+
+#. type: cindex
+#: doc/guix.texi:1848
+#, no-wrap
+msgid "RYF, Respects Your Freedom"
+msgstr "RYF, Respects Your Freedom"
+
+#. type: Plain text
+#: doc/guix.texi:1854
+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 und Privatsphäre respektieren 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:1858
+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://www.h-node.org/, 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:1867
+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 "Sie können ein ISO-9660-Installationsabbild von @indicateurl{https://alpha.gnu.org/gnu/guix/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:"
+
+#. type: table
+#: doc/guix.texi:1871
+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:1874
+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:1879
+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:1883
+#, no-wrap
+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"
+
+#. type: Plain text
+#: doc/guix.texi:1899
+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:1900
+#, no-wrap
+msgid "Copying to a USB Stick"
+msgstr "Kopieren auf einen USB-Stick"
+
+#. type: Plain text
+#: doc/guix.texi:1903
+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:1907 doc/guix.texi:1932
+msgid "Decompress the image using the @command{xz} command:"
+msgstr "Entpacken Sie das Abbild mit dem @command{xz}-Befehl:"
+
+#. type: example
+#: doc/guix.texi:1910 doc/guix.texi:1935
+#, 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"
+
+#. type: enumerate
+#: doc/guix.texi:1916
+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:1920
+#, no-wrap
+msgid ""
+"dd if=guix-system-install-@value{VERSION}.@var{system}.iso of=/dev/sdX\n"
+"sync\n"
+msgstr ""
+"dd if=guix-system-install-@value{VERSION}.@var{System}.iso of=/dev/sdX\n"
+"sync\n"
+
+#. type: enumerate
+#: doc/guix.texi:1923
+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:1925
+#, no-wrap
+msgid "Burning on a DVD"
+msgstr "Auf eine DVD brennen"
+
+#. type: Plain text
+#: doc/guix.texi:1928
+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:1941
+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:1944
+#, 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"
+
+#. type: enumerate
+#: doc/guix.texi:1947
+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:1949
+#, no-wrap
+msgid "Booting"
+msgstr "Das System starten"
+
+#. type: Plain text
+#: doc/guix.texi:1954
+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 "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."
+
+#. type: Plain text
+#: doc/guix.texi:1957
+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:1967
+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 "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:1975
+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:1980
+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:1987
+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:1992
+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:1994
+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:1999
+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:2001
+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:2004
+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:2006
+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:2011
+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:2021
+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:2027
+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:2034
+#, no-wrap
+msgid "Keyboard Layout, Networking, and Partitioning"
+msgstr "Tastaturbelegung, Netzwerkanbindung und Partitionierung"
+
+#. type: Plain text
+#: doc/guix.texi:2039
+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:2042 doc/guix.texi:11093
+#, no-wrap
+msgid "keyboard layout"
+msgstr "Tastaturbelegung"
+
+#. type: Plain text
+#: doc/guix.texi:2046
+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:2049
+#, no-wrap
+msgid "loadkeys dvorak\n"
+msgstr "loadkeys dvorak\n"
+
+#. type: Plain text
+#: doc/guix.texi:2054
+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:2055
+#, no-wrap
+msgid "Networking"
+msgstr "Netzwerkkonfiguration"
+
+#. type: Plain text
+#: doc/guix.texi:2058
+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:2061
+#, no-wrap
+msgid "ifconfig -a\n"
+msgstr "ifconfig -a\n"
+
+#. type: Plain text
+#: doc/guix.texi:2065
+msgid "@dots{} or, using the GNU/Linux-specific @command{ip} command:"
+msgstr "@dots{} oder mit dem GNU/Linux-eigenen @command{ip}-Befehl:"
+
+#. type: example
+#: doc/guix.texi:2068
+#, no-wrap
+msgid "ip a\n"
+msgstr "ip a\n"
+
+#. type: Plain text
+#: doc/guix.texi:2075
+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:2077
+#, no-wrap
+msgid "Wired connection"
+msgstr "Kabelverbindung"
+
+#. type: table
+#: doc/guix.texi:2080
+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:2083
+#, no-wrap
+msgid "ifconfig @var{interface} up\n"
+msgstr "ifconfig @var{Schnittstelle} up\n"
+
+#. type: item
+#: doc/guix.texi:2085
+#, no-wrap
+msgid "Wireless connection"
+msgstr "Drahtlose Verbindung"
+
+#. type: cindex
+#: doc/guix.texi:2086 doc/guix.texi:12524
+#, no-wrap
+msgid "wireless"
+msgstr "WLAN"
+
+#. type: cindex
+#: doc/guix.texi:2087 doc/guix.texi:12525
+#, no-wrap
+msgid "WiFi"
+msgstr "WiFi"
+
+#. type: table
+#: doc/guix.texi:2092
+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:2095
+#, no-wrap
+msgid "nano wpa_supplicant.conf\n"
+msgstr "nano wpa_supplicant.conf\n"
+
+#. type: table
+#: doc/guix.texi:2100
+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:2107
+#, no-wrap
+msgid ""
+"network=@{\n"
+"  ssid=\"@var{my-ssid}\"\n"
+"  key_mgmt=WPA-PSK\n"
+"  psk=\"the network's secret passphrase\"\n"
+"@}\n"
+msgstr ""
+"network=@{\n"
+"  ssid=\"@var{meine-ssid}\"\n"
+"  key_mgmt=WPA-PSK\n"
+"  psk=\"geheime Passphrase des Netzwerks\"\n"
+"@}\n"
+
+#. type: table
+#: doc/guix.texi:2112
+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:2115
+#, 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:2118
+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:2120
+#, no-wrap
+msgid "DHCP"
+msgstr "DHCP"
+
+#. type: Plain text
+#: doc/guix.texi:2123
+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:2126
+#, no-wrap
+msgid "dhclient -v @var{interface}\n"
+msgstr "dhclient -v @var{Schnittstelle}\n"
+
+#. type: Plain text
+#: doc/guix.texi:2129
+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:2132
+#, no-wrap
+msgid "ping -c 3 gnu.org\n"
+msgstr "ping -c 3 gnu.org\n"
+
+#. type: Plain text
+#: doc/guix.texi:2136
+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:2137
+#, no-wrap
+msgid "installing over SSH"
+msgstr "Über SSH installieren"
+
+#. type: Plain text
+#: doc/guix.texi:2140
+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:2143
+#, no-wrap
+msgid "herd start ssh-daemon\n"
+msgstr "herd start ssh-daemon\n"
+
+#. type: Plain text
+#: doc/guix.texi:2147
+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:2148
+#, no-wrap
+msgid "Disk Partitioning"
+msgstr "Plattenpartitionierung"
+
+#. type: Plain text
+#: doc/guix.texi:2152
+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:2157
+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:"
+
+#. type: example
+#: doc/guix.texi:2160
+#, no-wrap
+msgid "cfdisk\n"
+msgstr "cfdisk\n"
+
+#. type: Plain text
+#: doc/guix.texi:2166
+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:2167
+#, no-wrap
+msgid "EFI, installation"
+msgstr "EFI, Installation"
+
+#. type: cindex
+#: doc/guix.texi:2168
+#, no-wrap
+msgid "UEFI, installation"
+msgstr "UEFI, Installation"
+
+#. type: cindex
+#: doc/guix.texi:2169
+#, no-wrap
+msgid "ESP, EFI system partition"
+msgstr "ESP, EFI-Systempartition"
+
+#. type: Plain text
+#: doc/guix.texi:2173
+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:2176
+#, 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:2179 doc/guix.texi:23926
+#, no-wrap
+msgid "grub-bootloader"
+msgstr "grub-bootloader"
+
+#. type: vindex
+#: doc/guix.texi:2180 doc/guix.texi:23920
+#, no-wrap
+msgid "grub-efi-bootloader"
+msgstr "grub-efi-bootloader"
+
+#. type: quotation
+#: doc/guix.texi:2187
+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:2195
+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 "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 und btrfs. 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:"
+
+#. type: example
+#: doc/guix.texi:2198
+#, no-wrap
+msgid "mkfs.fat -F32 /dev/sda1\n"
+msgstr "mkfs.fat -F32 /dev/sda1\n"
+
+#. type: Plain text
+#: doc/guix.texi:2206
+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:2209
+#, 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:2211 doc/guix.texi:10355
+#, no-wrap
+msgid "encrypted disk"
+msgstr "verschlüsselte Partition"
+
+#. type: Plain text
+#: doc/guix.texi:2218
+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:2223
+#, no-wrap
+msgid ""
+"cryptsetup luksFormat /dev/sda2\n"
+"cryptsetup open --type luks /dev/sda2 my-partition\n"
+"mkfs.ext4 -L my-root /dev/mapper/my-partition\n"
+msgstr ""
+"cryptsetup luksFormat /dev/sda2\n"
+"cryptsetup open --type luks /dev/sda2 my-partition\n"
+"mkfs.ext4 -L my-root /dev/mapper/my-partition\n"
+
+#. type: Plain text
+#: doc/guix.texi:2228
+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:2231
+#, no-wrap
+msgid "mount LABEL=my-root /mnt\n"
+msgstr "mount LABEL=my-root /mnt\n"
+
+#. type: Plain text
+#: doc/guix.texi:2237
+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:2242
+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:"
+
+#. type: example
+#: doc/guix.texi:2246
+#, no-wrap
+msgid ""
+"mkswap /dev/sda3\n"
+"swapon /dev/sda3\n"
+msgstr ""
+"mkswap /dev/sda3\n"
+"swapon /dev/sda3\n"
+
+#. type: Plain text
+#: doc/guix.texi:2254
+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:2262
+#, no-wrap
+msgid ""
+"# This is 10 GiB of swap space.  Adjust \"count\" to change the size.\n"
+"dd if=/dev/zero of=/mnt/swapfile bs=1MiB count=10240\n"
+"# For security, make the file readable and writable only by root.\n"
+"chmod 600 /mnt/swapfile\n"
+"mkswap /mnt/swapfile\n"
+"swapon /mnt/swapfile\n"
+msgstr ""
+"# Das bedeutet 10 GiB Swapspeicher. \"count\" anpassen zum ändern.\n"
+"dd if=/dev/zero of=/mnt/swapfile bs=1MiB count=10240\n"
+"# Zur Sicherheit darf nur der Administrator lesen und schreiben.\n"
+"chmod 600 /mnt/swapfile\n"
+"mkswap /mnt/swapfile\n"
+"swapon /mnt/swapfile\n"
+
+#. type: Plain text
+#: doc/guix.texi:2267
+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:2273
+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:2276
+#, no-wrap
+msgid "herd start cow-store /mnt\n"
+msgstr "herd start cow-store /mnt\n"
+
+#. type: Plain text
+#: doc/guix.texi:2283
+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:2294
+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:2301
+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 »Display-Server« (eine »Desktop«-Arbeitsumgebung) bietet, könnten Sie so etwas ausführen:"
+
+#. type: example
+#: doc/guix.texi:2306
+#, no-wrap
+msgid ""
+"# mkdir /mnt/etc\n"
+"# cp /etc/configuration/desktop.scm /mnt/etc/config.scm\n"
+"# nano /mnt/etc/config.scm\n"
+msgstr ""
+"# mkdir /mnt/etc\n"
+"# cp /etc/configuration/desktop.scm /mnt/etc/config.scm\n"
+"# nano /mnt/etc/config.scm\n"
+
+#. type: Plain text
+#: doc/guix.texi:2310
+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:2321
+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:2327
+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:2331
+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:2336
+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:2339
+#, 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:2346
+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:2354
+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, user account passwords}). Siehe @ref{After System Installation} für Informationen, wie es weiter geht!"
+
+#. type: Plain text
+#: doc/guix.texi:2361
+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:2365
+#, no-wrap
+msgid ""
+"guix pull\n"
+"sudo guix system reconfigure /etc/config.scm\n"
+msgstr ""
+"guix pull\n"
+"sudo guix system reconfigure /etc/config.scm\n"
+
+#. type: Plain text
+#: doc/guix.texi:2371
+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:2374
+#, no-wrap
+msgid "sudo vs. @command{guix pull}"
+msgstr "sudo, Wirkung auf @command{guix pull}"
+
+#. type: quotation
+#: doc/guix.texi:2378
+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 @dots{}} eintippen."
+
+#. type: Plain text
+#: doc/guix.texi:2382
+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!"
+
+#. type: section
+#: doc/guix.texi:2385
+#, no-wrap
+msgid "Installing Guix in a Virtual Machine"
+msgstr "Guix in einer virtuellen Maschine installieren"
+
+#. type: cindex
+#: doc/guix.texi:2387
+#, no-wrap
+msgid "virtual machine, Guix System installation"
+msgstr "virtuelle Maschine, Guix System installieren"
+
+#. type: cindex
+#: doc/guix.texi:2388
+#, no-wrap
+msgid "virtual private server (VPS)"
+msgstr "Virtual Private Server (VPS)"
+
+#. type: cindex
+#: doc/guix.texi:2389
+#, no-wrap
+msgid "VPS (virtual private server)"
+msgstr "VPS (Virtual Private Server)"
+
+#. type: Plain text
+#: doc/guix.texi:2393
+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:2396
+msgid "To boot a @uref{http://qemu.org/,QEMU} VM for installing Guix System in a disk image, follow these steps:"
+msgstr "Um eine virtuelle Maschine für @uref{http://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:2401
+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:2405
+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:2408
+#, no-wrap
+msgid "qemu-img create -f qcow2 guixsd.img 50G\n"
+msgstr "qemu-img create -f qcow2 guixsd.img 50G\n"
+
+#. type: enumerate
+#: doc/guix.texi:2412
+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:2415
+msgid "Boot the USB installation image in an VM:"
+msgstr "Starten Sie das USB-Installationsabbild auf einer virtuellen Maschine:"
+
+#. type: example
+#: doc/guix.texi:2421
+#, 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"
+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"
+
+#. type: enumerate
+#: doc/guix.texi:2424
+msgid "The ordering of the drives matters."
+msgstr "Halten Sie obige Reihenfolge der @option{-drive}-Befehlszeilenoptionen für die Laufwerke ein."
+
+#. type: enumerate
+#: doc/guix.texi:2428
+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."
+
+#. type: enumerate
+#: doc/guix.texi:2432
+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:2437
+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 "Wurde die Installation abgeschlossen, können Sie das System starten, das sich nun als Abbild in der Datei @file{guixsd.img} befindet. Der Abschnitt @ref{Running Guix in a VM} erklärt, wie Sie das tun können."
+
+#. type: cindex
+#: doc/guix.texi:2441
+#, no-wrap
+msgid "installation image"
+msgstr "Installationsabbild"
+
+#. type: Plain text
+#: doc/guix.texi:2444
+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:2448
+#, 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"
+
+#. type: Plain text
+#: doc/guix.texi:2453
+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:2454
+#, 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:2458
+msgid "Many ARM boards require a specific variant of the @uref{http://www.denx.de/wiki/U-Boot/, U-Boot} bootloader."
+msgstr "Viele ARM-Chips funktionieren nur mit ihrer eigenen speziellen Variante des @uref{http://www.denx.de/wiki/U-Boot/, U-Boot}-Bootloaders."
+
+#. type: Plain text
+#: doc/guix.texi:2462
+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:2465
+#, 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:2469
+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: cindex
+#: doc/guix.texi:2474
 #, no-wrap
 msgid "packages"
 msgstr "Pakete"
 
 #. type: Plain text
-#: doc/guix.texi:1703
+#: doc/guix.texi:2479
 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:1711
+#: doc/guix.texi:2487
 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 von den im Folgenden beschriebenen Befehlszeilen-Benutzerschnittstellen (@pxref{Invoking guix package, @code{guix package}}) können Sie auch mit der Emacs-Guix-Schnittstelle (@pxref{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 von 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):"
 
 #. type: example
-#: doc/guix.texi:1714
+#: doc/guix.texi:2490
 #, no-wrap
 msgid "guix package -i emacs-guix\n"
 msgstr "guix package -i emacs-guix\n"
 
 #. type: Plain text
-#: doc/guix.texi:1736
+#: doc/guix.texi:2511
 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:1741
+#: doc/guix.texi:2516
 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:1749
+#: doc/guix.texi:2524
 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/@dots{}-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/@dots{}-gcc-4.8.0/bin/gcc} — d.h. beide Versionen von GCC koexistieren auf demselben System, ohne sich zu stören."
+msgstr "Zum Beispiel installiert @code{alice} GCC 4.7.2. Dadurch zeigt dann @file{/home/alice/.guix-profile/bin/gcc} auf @file{/gnu/store/@dots{}-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/@dots{}-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:1753
+#: doc/guix.texi:2528
 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 (@pxref{Invoking guix package}). Es arbeitet auf dem eigenen Profil jedes Nutzers und kann @emph{mit normalen Benutzerrechten} ausgeführt werden."
+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:1754 doc/guix.texi:1832
+#: doc/guix.texi:2529 doc/guix.texi:2607
 #, no-wrap
 msgid "transactions"
 msgstr "Transaktionen"
 
 #. type: Plain text
-#: doc/guix.texi:1761
+#: doc/guix.texi:2536
 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:1769
-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 GuixSD 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 auf GuixSD auch die globale Systemkonfiguration transaktionellen Aktualisierungen und Rücksetzungen (@pxref{Using the Configuration System})."
+#: doc/guix.texi:2544
+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:1776
+#: doc/guix.texi:2551
 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 (@pxref{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."
+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:1777 doc/guix.texi:3217
+#: doc/guix.texi:2552 doc/guix.texi:4059
 #, no-wrap
 msgid "reproducibility"
 msgstr "Reproduzierbarkeit"
 
 #. type: Plain text
-#: doc/guix.texi:1789
+#: doc/guix.texi:2564
 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 (@pxref{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 (@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})."
 
 #. type: Plain text
-#: doc/guix.texi:1800
+#: doc/guix.texi:2575
 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 (@pxref{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} (@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:1806
+#: doc/guix.texi:2581
 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 (@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:1807
+#: doc/guix.texi:2582
 #, no-wrap
 msgid "replication, of software environments"
 msgstr "Nachbildung, von Software-Umgebungen"
 
 #. type: cindex
-#: doc/guix.texi:1808
+#: doc/guix.texi:2583
 #, no-wrap
 msgid "provenance tracking, of software artifacts"
 msgstr "Provenienzverfolgung, von Software-Artefakten"
 
 #. type: Plain text
-#: doc/guix.texi:1815
+#: doc/guix.texi:2590
 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« (@pxref{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."
+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:1817
+#: doc/guix.texi:2592
 #, no-wrap
 msgid "Invoking @command{guix package}"
 msgstr "Invoking @command{guix package}"
 
 #. type: cindex
-#: doc/guix.texi:1819
+#: doc/guix.texi:2594
 #, no-wrap
 msgid "installing packages"
 msgstr "Installieren von Paketen"
 
 #. type: cindex
-#: doc/guix.texi:1820
+#: doc/guix.texi:2595
 #, no-wrap
 msgid "removing packages"
 msgstr "Entfernen von Paketen"
 
 #. type: cindex
-#: doc/guix.texi:1821
+#: doc/guix.texi:2596
 #, no-wrap
 msgid "package installation"
 msgstr "Paketinstallation"
 
 #. type: cindex
-#: doc/guix.texi:1822
+#: doc/guix.texi:2597
 #, no-wrap
 msgid "package removal"
 msgstr "Paketentfernung"
 
 #. type: Plain text
-#: doc/guix.texi:1828
+#: doc/guix.texi:2603
 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 (@pxref{Funktionalitäten}). Die Syntax ist:"
+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:1831
+#: doc/guix.texi:2606
 #, no-wrap
 msgid "guix package @var{options}\n"
 msgstr "guix package @var{Optionen}\n"
 
 #. type: Plain text
-#: doc/guix.texi:1837
+#: doc/guix.texi:2612
 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:1840
+#: doc/guix.texi:2615
 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:1843
+#: doc/guix.texi:2618
 #, no-wrap
 msgid "guix package -r lua -i guile guile-cairo\n"
 msgstr "guix package -r lua -i guile guile-cairo\n"
 
 #. type: Plain text
-#: doc/guix.texi:1849
+#: doc/guix.texi:2624
 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 (@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:1850
+#: doc/guix.texi:2625
 #, no-wrap
 msgid "profile"
 msgstr "Profil"
 
 #. type: Plain text
-#: doc/guix.texi:1856
+#: doc/guix.texi:2631
 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."
+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."
 
 #. type: cindex
-#: doc/guix.texi:1856 doc/guix.texi:2053
+#: doc/guix.texi:2631 doc/guix.texi:2828
 #, no-wrap
 msgid "search paths"
 msgstr "Suchpfade"
 
 #. type: Plain text
-#: doc/guix.texi:1861
+#: doc/guix.texi:2636
 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 "Wenn Sie nicht die Guix System Distribution benutzen, sollten Sie in Betracht ziehen, folgende Zeilen zu Ihrem @file{~/.bash_profile} hinzuzufügen (@pxref{Bash Startup Files,,, bash, The GNU Bash Reference Manual}), damit in neu erzeugten Shells alle Umgebungsvariablen richtig definiert werden:"
+msgstr "Wenn Sie nicht die Guix System Distribution 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:"
 
 #. type: example
-#: doc/guix.texi:1865
+#: doc/guix.texi:2640
 #, no-wrap
 msgid ""
 "GUIX_PROFILE=\"$HOME/.guix-profile\" ; \\\n"
@@ -4816,249 +6401,249 @@ msgstr ""
 "source \"$HOME/.guix-profile/etc/profile\"\n"
 
 #. type: Plain text
-#: doc/guix.texi:1876
+#: doc/guix.texi:2651
 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 (@pxref{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."
+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."
 
 #. type: Plain text
-#: doc/guix.texi:1878
+#: doc/guix.texi:2653
 msgid "The @var{options} can be among the following:"
 msgstr "Als @var{Optionen} kann vorkommen:"
 
 #. type: item
-#: doc/guix.texi:1881
+#: doc/guix.texi:2656
 #, no-wrap
 msgid "--install=@var{package} @dots{}"
 msgstr "--install=@var{Paket} @dots{}"
 
 #. type: itemx
-#: doc/guix.texi:1882
+#: doc/guix.texi:2657
 #, no-wrap
 msgid "-i @var{package} @dots{}"
 msgstr "-i @var{Paket} @dots{}"
 
 #. type: table
-#: doc/guix.texi:1884
+#: doc/guix.texi:2659
 msgid "Install the specified @var{package}s."
 msgstr "Die angegebenen @var{Paket}e installieren."
 
 #. type: table
-#: doc/guix.texi:1889
+#: doc/guix.texi:2664
 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:1897
+#: doc/guix.texi:2672
 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} (@pxref{Packages with Multiple Outputs}). Pakete mit zugehörigem Namen (und optional der Version) werden unter den Modulen der GNU-Distribution gesucht (@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:1898
+#: doc/guix.texi:2673
 #, no-wrap
 msgid "propagated inputs"
 msgstr "propagierte Eingaben"
 
 #. type: table
-#: doc/guix.texi:1904
+#: doc/guix.texi:2679
 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 @pxref{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} objects} sind weitere Informationen über propagierte Eingaben in Paketdefinitionen zu finden)."
 
 #. type: anchor{#1}
-#: doc/guix.texi:1911
+#: doc/guix.texi:2686
 msgid "package-cmd-propagated-inputs"
 msgstr "package-cmd-propagated-inputs"
 
 #. type: table
-#: doc/guix.texi:1911
+#: doc/guix.texi:2686
 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:1916
+#: doc/guix.texi:2691
 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."
 
 #. type: item
-#: doc/guix.texi:1917
+#: doc/guix.texi:2692
 #, no-wrap
 msgid "--install-from-expression=@var{exp}"
 msgstr "--install-from-expression=@var{Ausdruck}"
 
 #. type: itemx
-#: doc/guix.texi:1918
+#: doc/guix.texi:2693
 #, no-wrap
 msgid "-e @var{exp}"
 msgstr "-e @var{Ausdruck}"
 
 #. type: table
-#: doc/guix.texi:1920
+#: doc/guix.texi:2695
 msgid "Install the package @var{exp} evaluates to."
 msgstr "Das Paket installieren, zu dem der @var{Ausdruck} ausgewertet wird."
 
 #. type: table
-#: doc/guix.texi:1925
+#: doc/guix.texi:2700
 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:1929
+#: doc/guix.texi:2704
 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:1930
+#: doc/guix.texi:2705
 #, no-wrap
 msgid "--install-from-file=@var{file}"
 msgstr "--install-from-file=@var{Datei}"
 
 #. type: itemx
-#: doc/guix.texi:1931 doc/guix.texi:6471
+#: doc/guix.texi:2706 doc/guix.texi:7956
 #, no-wrap
 msgid "-f @var{file}"
 msgstr "-f @var{Datei}"
 
 #. type: table
-#: doc/guix.texi:1933
+#: doc/guix.texi:2708
 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:1936 doc/guix.texi:8162
+#: doc/guix.texi:2711 doc/guix.texi:4496
 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 (@pxref{Defining Packages}):"
+msgstr "Zum Beispiel könnte die @var{Datei} eine Definition wie diese enthalten (siehe @ref{Defining Packages}):"
 
 #. type: example
-#: doc/guix.texi:1939 doc/guix.texi:6480
+#: doc/guix.texi:2714 doc/guix.texi:7965
 #, no-wrap
 msgid "@verbatiminclude package-hello.scm\n"
 msgstr "@verbatiminclude package-hello.scm\n"
 
 #. type: table
-#: doc/guix.texi:1945
+#: doc/guix.texi:2720
 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 (@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: item
-#: doc/guix.texi:1946
+#: doc/guix.texi:2721
 #, no-wrap
 msgid "--remove=@var{package} @dots{}"
 msgstr "--remove=@var{Paket} @dots{}"
 
 #. type: itemx
-#: doc/guix.texi:1947
+#: doc/guix.texi:2722
 #, no-wrap
 msgid "-r @var{package} @dots{}"
 msgstr "-r @var{Paket} @dots{}"
 
 #. type: table
-#: doc/guix.texi:1949
+#: doc/guix.texi:2724
 msgid "Remove the specified @var{package}s."
 msgstr "Die angegebenen @var{Paket}e entfernen."
 
 #. type: table
-#: doc/guix.texi:1954
+#: doc/guix.texi:2729
 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."
 
 #. type: item
-#: doc/guix.texi:1955
+#: doc/guix.texi:2730
 #, no-wrap
 msgid "--upgrade[=@var{regexp} @dots{}]"
 msgstr "--upgrade[=@var{Regexp} @dots{}]"
 
 #. type: itemx
-#: doc/guix.texi:1956
+#: doc/guix.texi:2731
 #, no-wrap
 msgid "-u [@var{regexp} @dots{}]"
 msgstr "-u [@var{Regexp} @dots{}]"
 
 #. type: cindex
-#: doc/guix.texi:1957
+#: doc/guix.texi:2732
 #, no-wrap
 msgid "upgrading packages"
 msgstr "Pakete aktualisieren"
 
 #. type: table
-#: doc/guix.texi:1961
+#: doc/guix.texi:2736
 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}."
 
 #. type: table
-#: doc/guix.texi:1966
+#: doc/guix.texi:2741
 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 (@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: item
-#: doc/guix.texi:1967
+#: doc/guix.texi:2742
 #, no-wrap
 msgid "--do-not-upgrade[=@var{regexp} @dots{}]"
 msgstr "--do-not-upgrade[=@var{Regexp} @dots{}]"
 
 #. type: table
-#: doc/guix.texi:1972
+#: doc/guix.texi:2747
 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:"
 
 #. type: example
-#: doc/guix.texi:1975
+#: doc/guix.texi:2750
 #, 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:1977
+#: doc/guix.texi:2752
 #, no-wrap
 msgid "profile-manifest"
 msgstr "profile-manifest"
 
 #. type: item
-#: doc/guix.texi:1977 doc/guix.texi:3455 doc/guix.texi:7393 doc/guix.texi:8167
-#: doc/guix.texi:8851
+#: doc/guix.texi:2752 doc/guix.texi:4501 doc/guix.texi:4842 doc/guix.texi:8889
+#: doc/guix.texi:10072
 #, no-wrap
 msgid "--manifest=@var{file}"
 msgstr "--manifest=@var{Datei}"
 
 #. type: itemx
-#: doc/guix.texi:1978 doc/guix.texi:3456 doc/guix.texi:7394 doc/guix.texi:8168
+#: doc/guix.texi:2753 doc/guix.texi:4502 doc/guix.texi:4843 doc/guix.texi:8890
 #, no-wrap
 msgid "-m @var{file}"
 msgstr "-m @var{Datei}"
 
 #. type: cindex
-#: doc/guix.texi:1979
+#: doc/guix.texi:2754
 #, no-wrap
 msgid "profile declaration"
 msgstr "Profildeklaration"
 
 #. type: cindex
-#: doc/guix.texi:1980
+#: doc/guix.texi:2755
 #, no-wrap
 msgid "profile manifest"
 msgstr "Profilmanifest"
 
 #. type: table
-#: doc/guix.texi:1983
+#: doc/guix.texi:2758
 msgid "Create a new generation of the profile from the manifest object returned by the Scheme code in @var{file}."
 msgstr "Erstellt eine neue Generation des Profils aus dem vom Scheme-Code in @var{Datei} gelieferten Manifest-Objekt."
 
 #. type: table
-#: doc/guix.texi:1989
+#: doc/guix.texi:2764
 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."
 
 #. type: table
-#: doc/guix.texi:1993
+#: doc/guix.texi:2768
 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:1994
+#: doc/guix.texi:2769
 #, no-wrap
 msgid "packages->manifest"
 msgstr "packages->manifest"
 
 #. type: example
-#: doc/guix.texi:1997
+#: doc/guix.texi:2772
 #, no-wrap
 msgid ""
 "(use-package-modules guile emacs)\n"
@@ -5068,7 +6653,7 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix.texi:2003
+#: doc/guix.texi:2778
 #, no-wrap
 msgid ""
 "(packages->manifest\n"
@@ -5084,18 +6669,18 @@ msgstr ""
 "       (list guile-2.0 \"debug\")))\n"
 
 #. type: findex
-#: doc/guix.texi:2005
+#: doc/guix.texi:2780
 #, no-wrap
 msgid "specifications->manifest"
 msgstr "specifications->manifest"
 
 #. type: table
-#: doc/guix.texi:2012
+#: doc/guix.texi:2787
 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: example
-#: doc/guix.texi:2016
+#: doc/guix.texi:2791
 #, no-wrap
 msgid ""
 "(specifications->manifest\n"
@@ -5105,121 +6690,121 @@ msgstr ""
 " '(\"emacs\" \"guile@@2.2\" \"guile@@2.2:debug\"))\n"
 
 #. type: item
-#: doc/guix.texi:2018
+#: doc/guix.texi:2793
 #, no-wrap
 msgid "--roll-back"
 msgstr "--roll-back"
 
 #. type: cindex
-#: doc/guix.texi:2019 doc/guix.texi:22369
+#: doc/guix.texi:2794 doc/guix.texi:24216
 #, no-wrap
 msgid "rolling back"
 msgstr "rücksetzen"
 
 #. type: cindex
-#: doc/guix.texi:2020
+#: doc/guix.texi:2795
 #, no-wrap
 msgid "undoing transactions"
 msgstr "Zurücksetzen von Transaktionen"
 
 #. type: cindex
-#: doc/guix.texi:2021
+#: doc/guix.texi:2796
 #, no-wrap
 msgid "transactions, undoing"
 msgstr "Transaktionen, zurücksetzen"
 
 #. type: table
-#: doc/guix.texi:2024
+#: doc/guix.texi:2799
 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."
+msgstr "Wechselt zur vorherigen @dfn{Generation} des Profils zurück — d.h.@: macht die letzte Transaktion rückgängig."
 
 #. type: table
-#: doc/guix.texi:2027
+#: doc/guix.texi:2802
 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."
 
 #. type: table
-#: doc/guix.texi:2031
+#: doc/guix.texi:2806
 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:2035
+#: doc/guix.texi:2810
 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."
+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:2036
+#: doc/guix.texi:2811
 #, no-wrap
 msgid "--switch-generation=@var{pattern}"
 msgstr "--switch-generation=@var{Muster}"
 
 #. type: itemx
-#: doc/guix.texi:2037
+#: doc/guix.texi:2812
 #, no-wrap
 msgid "-S @var{pattern}"
 msgstr "-S @var{Muster}"
 
 #. type: cindex
-#: doc/guix.texi:2038 doc/guix.texi:2236 doc/guix.texi:22327
+#: doc/guix.texi:2813 doc/guix.texi:3008 doc/guix.texi:24174
 #, no-wrap
 msgid "generations"
 msgstr "Generationen"
 
 #. type: table
-#: doc/guix.texi:2040
+#: doc/guix.texi:2815
 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:2046
+#: doc/guix.texi:2821
 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."
 
 #. type: table
-#: doc/guix.texi:2051
+#: doc/guix.texi:2826
 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."
 
 #. type: item
-#: doc/guix.texi:2052
+#: doc/guix.texi:2827
 #, no-wrap
 msgid "--search-paths[=@var{kind}]"
 msgstr "--search-paths[=@var{Art}]"
 
 #. type: table
-#: doc/guix.texi:2058
+#: doc/guix.texi:2833
 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:2066
+#: doc/guix.texi:2841
 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 (@pxref{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."
+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."
 
 #. type: table
-#: doc/guix.texi:2069
+#: doc/guix.texi:2844
 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:2072
+#: doc/guix.texi:2847
 #, no-wrap
 msgid "$ eval `guix package --search-paths`\n"
 msgstr "$ eval `guix package --search-paths`\n"
 
 #. type: table
-#: doc/guix.texi:2078
+#: doc/guix.texi:2853
 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:2081
+#: doc/guix.texi:2856
 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:2086
+#: doc/guix.texi:2861
 #, no-wrap
 msgid ""
 "$ guix package -p foo -i guile\n"
@@ -5231,118 +6816,107 @@ msgstr ""
 "$ guix package -p foo -p bar --search-paths\n"
 
 #. type: table
-#: doc/guix.texi:2091
+#: doc/guix.texi:2866
 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."
 
 #. type: item
-#: doc/guix.texi:2093 doc/guix.texi:2891 doc/guix.texi:3290
+#: doc/guix.texi:2868 doc/guix.texi:3685 doc/guix.texi:4132
 #, no-wrap
 msgid "--profile=@var{profile}"
 msgstr "--profile=@var{Profil}"
 
 #. type: itemx
-#: doc/guix.texi:2094 doc/guix.texi:2892 doc/guix.texi:3291
+#: doc/guix.texi:2869 doc/guix.texi:3686 doc/guix.texi:4133
 #, no-wrap
 msgid "-p @var{profile}"
 msgstr "-p @var{Profil}"
 
 #. type: table
-#: doc/guix.texi:2096
+#: doc/guix.texi:2871
 msgid "Use @var{profile} instead of the user's default profile."
 msgstr "Auf @var{Profil} anstelle des Standardprofils des Benutzers arbeiten."
 
 #. type: cindex
-#: doc/guix.texi:2097
+#: doc/guix.texi:2872
 #, no-wrap
 msgid "collisions, in a profile"
 msgstr "Kollisionen, in einem Profil"
 
 #. type: cindex
-#: doc/guix.texi:2098
+#: doc/guix.texi:2873
 #, no-wrap
 msgid "colliding packages in profiles"
 msgstr "Paketkollisionen in Profilen"
 
 #. type: cindex
-#: doc/guix.texi:2099
+#: doc/guix.texi:2874
 #, no-wrap
 msgid "profile collisions"
 msgstr "Profilkollisionen"
 
 #. type: item
-#: doc/guix.texi:2100
+#: doc/guix.texi:2875
 #, no-wrap
 msgid "--allow-collisions"
 msgstr "--allow-collisions"
 
 #. type: table
-#: doc/guix.texi:2102
+#: doc/guix.texi:2877
 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:2106
+#: doc/guix.texi:2881
 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:2107 doc/guix.texi:2900 doc/guix.texi:8656
-#, no-wrap
-msgid "--verbose"
-msgstr "--verbose"
-
-#. type: table
-#: doc/guix.texi:2110
-msgid "Produce verbose output.  In particular, emit the build log of the environment on the standard error port."
-msgstr "Erzeugt ausführliche Textausgaben. Insbesondere wird auch das Erstellungsprotokoll der Umgebung auf dem Standard-Fehler-Port (stderr) ausgegeben."
-
-#. type: item
-#: doc/guix.texi:2111 doc/guix.texi:2903 doc/guix.texi:3512
+#: doc/guix.texi:2882 doc/guix.texi:3702 doc/guix.texi:4916
 #, no-wrap
 msgid "--bootstrap"
 msgstr "--bootstrap"
 
 #. type: table
-#: doc/guix.texi:2114
+#: doc/guix.texi:2885
 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:2120
+#: doc/guix.texi:2891
 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:2123
+#: doc/guix.texi:2894
 #, no-wrap
 msgid "--search=@var{regexp}"
 msgstr "--search=@var{Regexp}"
 
 #. type: itemx
-#: doc/guix.texi:2124
+#: doc/guix.texi:2895
 #, no-wrap
 msgid "-s @var{regexp}"
 msgstr "-s @var{Regexp}"
 
 #. type: cindex
-#: doc/guix.texi:2125
+#: doc/guix.texi:2896
 #, no-wrap
 msgid "searching for packages"
 msgstr "Suche nach Paketen"
 
 #. type: table
-#: doc/guix.texi:2130
-msgid "List the available packages whose name, synopsis, or description matches @var{regexp}, 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, sortiert nach ihrer Relevanz. Alle Metadaten passender Pakete werden im @code{recutils}-Format geliefert (@pxref{Top, GNU recutils databases,, recutils, GNU recutils manual})."
+#: doc/guix.texi:2902
+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})."
 
 #. type: table
-#: doc/guix.texi:2133
+#: doc/guix.texi:2905
 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:2139
+#: doc/guix.texi:2911
 #, no-wrap
 msgid ""
 "$ guix package -s malloc | recsel -p name,version,relevance\n"
@@ -5358,7 +6932,7 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix.texi:2143
+#: doc/guix.texi:2915
 #, no-wrap
 msgid ""
 "name: glibc\n"
@@ -5372,7 +6946,7 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix.texi:2147
+#: doc/guix.texi:2919
 #, no-wrap
 msgid ""
 "name: libgc\n"
@@ -5384,12 +6958,12 @@ msgstr ""
 "relevance: 1\n"
 
 #. type: table
-#: doc/guix.texi:2151
+#: doc/guix.texi:2923
 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:2155
+#: doc/guix.texi:2927
 #, no-wrap
 msgid ""
 "$ guix package -s \"\" | recsel -p name -e 'license ~ \"LGPL 3\"'\n"
@@ -5401,7 +6975,7 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix.texi:2158
+#: doc/guix.texi:2930
 #, no-wrap
 msgid ""
 "name: gmp\n"
@@ -5411,12 +6985,12 @@ msgstr ""
 "@dots{}\n"
 
 #. type: table
-#: doc/guix.texi:2163
+#: doc/guix.texi:2935
 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 "Es ist auch möglich, Suchergebnisse näher einzuschränken, indem Sie @code{-s} mehrmals übergeben. Zum Beispiel liefert folgender Befehl eines Liste von Brettspielen:"
 
 #. type: example
-#: doc/guix.texi:2168
+#: doc/guix.texi:2940
 #, no-wrap
 msgid ""
 "$ guix package -s '\\<board\\>' -s game | recsel -p name\n"
@@ -5428,17 +7002,17 @@ msgstr ""
 "@dots{}\n"
 
 #. type: table
-#: doc/guix.texi:2174
+#: doc/guix.texi:2946
 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:2178
+#: doc/guix.texi:2950
 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 kryptographische Bibliotheken, filtert Haskell-, Perl-, Python- und Ruby-Bibliotheken heraus und gibt Namen und Zusammenfassung passender Pakete aus:"
+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:2182
+#: doc/guix.texi:2954
 #, no-wrap
 msgid ""
 "$ guix package -s crypto -s library | \\\n"
@@ -5448,23 +7022,23 @@ msgstr ""
 "    recsel -e '! (name ~ \"^(ghc|perl|python|ruby)\")' -p name,synopsis\n"
 
 #. type: table
-#: doc/guix.texi:2187
+#: doc/guix.texi:2959
 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} enthält weitere Informationen über @dfn{Auswahlausdrücke} mit @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:2188
+#: doc/guix.texi:2960
 #, no-wrap
 msgid "--show=@var{package}"
 msgstr "--show=@var{Paket}"
 
 #. type: table
-#: doc/guix.texi:2192
+#: doc/guix.texi:2964
 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 (@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})."
 
 #. type: example
-#: doc/guix.texi:2197
+#: doc/guix.texi:2969
 #, no-wrap
 msgid ""
 "$ guix package --show=python | recsel -p name,version\n"
@@ -5478,7 +7052,7 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix.texi:2200
+#: doc/guix.texi:2972
 #, no-wrap
 msgid ""
 "name: python\n"
@@ -5488,12 +7062,12 @@ msgstr ""
 "version: 3.3.5\n"
 
 #. type: table
-#: doc/guix.texi:2204
+#: doc/guix.texi:2976
 msgid "You may also specify the full name of a package to only get details about a specific version of it:"
 msgstr "Sie können auch den vollständigen Namen eines Pakets angeben, um Details nur über diese Version angezeigt zu bekommen:"
 
 #. type: example
-#: doc/guix.texi:2208
+#: doc/guix.texi:2980
 #, no-wrap
 msgid ""
 "$ guix package --show=python@@3.4 | recsel -p name,version\n"
@@ -5505,250 +7079,245 @@ msgstr ""
 "version: 3.4.3\n"
 
 #. type: item
-#: doc/guix.texi:2212
+#: doc/guix.texi:2984
 #, no-wrap
 msgid "--list-installed[=@var{regexp}]"
 msgstr "--list-installed[=@var{Regexp}]"
 
 #. type: itemx
-#: doc/guix.texi:2213
+#: doc/guix.texi:2985
 #, no-wrap
 msgid "-I [@var{regexp}]"
 msgstr "-I [@var{Regexp}]"
 
 #. type: table
-#: doc/guix.texi:2217
+#: doc/guix.texi:2989
 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:2223
+#: doc/guix.texi:2995
 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."
+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:2224
+#: doc/guix.texi:2996
 #, no-wrap
 msgid "--list-available[=@var{regexp}]"
 msgstr "--list-available[=@var{Regexp}]"
 
 #. type: itemx
-#: doc/guix.texi:2225
+#: doc/guix.texi:2997
 #, no-wrap
 msgid "-A [@var{regexp}]"
 msgstr "-A [@var{Regexp}]"
 
 #. type: table
-#: doc/guix.texi:2229
+#: doc/guix.texi:3001
 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 "Listet Pakete auf, die in der aktuell installierten Distribution dieses Systems verfügbar sind (@pxref{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."
+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:2233
+#: doc/guix.texi:3005
 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 (@pxref{Packages with Multiple Outputs}) und die Stelle im Quellcode, an der das Paket definiert ist."
+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:2234 doc/guix.texi:2881
+#: doc/guix.texi:3006 doc/guix.texi:3675
 #, no-wrap
 msgid "--list-generations[=@var{pattern}]"
 msgstr "--list-generations[=@var{Muster}]"
 
 #. type: itemx
-#: doc/guix.texi:2235 doc/guix.texi:2882
+#: doc/guix.texi:3007 doc/guix.texi:3676
 #, no-wrap
 msgid "-l [@var{pattern}]"
 msgstr "-l [@var{Muster}]"
 
 #. type: table
-#: doc/guix.texi:2241
+#: doc/guix.texi:3013
 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:2246
+#: doc/guix.texi:3018
 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 (@pxref{Packages with Multiple Outputs}) und an welcher Stelle sich das Paket im Store befindet."
+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:2249
+#: doc/guix.texi:3021
 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:2251
+#: doc/guix.texi:3023
 #, 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:2254
+#: doc/guix.texi:3026
 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."
 
 #. type: itemize
-#: doc/guix.texi:2257
+#: doc/guix.texi:3029
 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."
 
 #. type: item
-#: doc/guix.texi:2258
+#: doc/guix.texi:3030
 #, no-wrap
 msgid "@emph{Ranges}.  @code{--list-generations=2..9} prints the"
 msgstr "@emph{Bereiche}. @code{--list-generations=2..9} gibt die"
 
 #. type: itemize
-#: doc/guix.texi:2261
+#: doc/guix.texi:3033
 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:2265
+#: doc/guix.texi:3037
 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."
 
 #. type: item
-#: doc/guix.texi:2266
+#: doc/guix.texi:3038
 #, 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:2270
+#: doc/guix.texi:3042
 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."
 
 #. type: item
-#: doc/guix.texi:2272
+#: doc/guix.texi:3044
 #, no-wrap
 msgid "--delete-generations[=@var{pattern}]"
 msgstr "--delete-generations[=@var{Muster}]"
 
 #. type: itemx
-#: doc/guix.texi:2273
+#: doc/guix.texi:3045
 #, no-wrap
 msgid "-d [@var{pattern}]"
 msgstr "-d [@var{Muster}]"
 
 #. type: table
-#: doc/guix.texi:2276
+#: doc/guix.texi:3048
 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:2282
+#: doc/guix.texi:3054
 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."
 
 #. type: table
-#: doc/guix.texi:2285
+#: doc/guix.texi:3057
 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:2288
+#: doc/guix.texi:3060
 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:2299
+#: doc/guix.texi:3071
 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 (@pxref{Common Build Options}) verwenden. Auch Paketumwandlungsoptionen wie @option{--with-source} sind möglich (@pxref{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 (@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})."
 
 #. type: cindex
-#: doc/guix.texi:2304
+#: doc/guix.texi:3076
 #, no-wrap
 msgid "pre-built binaries"
 msgstr "vorerstellte Binärdateien"
 
 #. type: Plain text
-#: doc/guix.texi:2310
+#: doc/guix.texi:3082
 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:2315
+#: doc/guix.texi:3087
 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 (@pxref{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."
+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:2328
+#: doc/guix.texi:3100
 #, no-wrap
 msgid "hydra"
 msgstr "Hydra"
 
 #. type: cindex
-#: doc/guix.texi:2329
+#: doc/guix.texi:3101
 #, no-wrap
 msgid "build farm"
 msgstr "Build-Farm"
 
 #. type: Plain text
-#: doc/guix.texi:2339
-msgid "The @code{mirror.hydra.gnu.org} 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{mirror.hydra.gnu.org} ist die Façade für eine offizielle »Build-Farm«, ein Erstellungswerk, das 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} (@pxref{daemon-substitute-urls,, @code{guix-daemon --substitute-urls}}) oder Client-Werkzeuge wie @command{guix package} (@pxref{client-substitute-urls,, client @option{--substitute-urls} option}) kann eine abweichende Einstellung benutzt werden."
+#: doc/guix.texi:3111
+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 »Build-Farm«, ein Erstellungswerk, das 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:2345
+#: doc/guix.texi:3117
 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:2354
+#: doc/guix.texi:3126
 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 "Substitute von der offiziellen Build-Farm sind standardmäßig erlaubt, wenn Sie die Guix-System-Distribution verwenden (@pxref{GNU Distribution}). Auf Fremddistributionen sind sie allerdings standardmäßig ausgeschaltet, solange Sie sie nicht ausdrücklich in einem der empfohlenen Installationsschritte erlaubt haben (@pxref{Installation}). Die folgenden Absätze beschreiben, wie Sie Substitute für die offizielle Build-Farm an- oder ausschalten; dieselbe Prozedur kann auch benutzt werden, um Substitute für einen beliebigen anderen Substitutsserver zu erlauben."
+msgstr "Substitute von der offiziellen Build-Farm sind standardmäßig erlaubt, wenn Sie die Guix-System-Distribution 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 Build-Farm an- oder ausschalten; dieselbe Prozedur kann auch benutzt werden, um Substitute für einen beliebigen anderen Substitutsserver zu erlauben."
 
 #. type: cindex
-#: doc/guix.texi:2358
+#: doc/guix.texi:3130
 #, no-wrap
 msgid "security"
 msgstr "Sicherheit"
 
 #. type: cindex
-#: doc/guix.texi:2360
+#: doc/guix.texi:3132
 #, no-wrap
 msgid "access control list (ACL), for substitutes"
 msgstr "Access Control List (ACL), für Substitute"
 
 #. type: cindex
-#: doc/guix.texi:2361
+#: doc/guix.texi:3133
 #, no-wrap
 msgid "ACL (access control list), for substitutes"
 msgstr "ACL (Access Control List), für Substitute"
 
 #. type: Plain text
-#: doc/guix.texi:2368
-msgid "To allow Guix to download substitutes from @code{hydra.gnu.org} 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{hydra.gnu.org} to not be compromised and to serve genuine substitutes."
-msgstr "Um es Guix zu gestatten, Substitute von @code{hydra.gnu.org} 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} (@pxref{Invoking guix archive}). Dies impliziert, dass Sie darauf vertrauen, dass @code{hydra.gnu.org} nicht kompromittiert wurde und echte Substitute liefert."
+#: doc/guix.texi:3140
+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."
 
 #. type: Plain text
-#: doc/guix.texi:2375
-msgid "The public key for @code{hydra.gnu.org} is installed along with Guix, in @code{@var{prefix}/share/guix/hydra.gnu.org.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{hydra.gnu.org} wird zusammen mit Guix installiert, in das Verzeichnis @code{@var{prefix}/share/guix/hydra.gnu.org.pub}, wobei @var{prefix} das Installationspräfix von Guix ist. Wenn Sie Guix aus seinem Quellcode heraus installieren, stellen Sie sicher, dass Sie die GPG-Signatur 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:"
+#: doc/guix.texi:3147
+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:2378
+#: doc/guix.texi:3150
 #, no-wrap
-msgid "# guix archive --authorize < @var{prefix}/share/guix/hydra.gnu.org.pub\n"
-msgstr "# guix archive --authorize < @var{prefix}/share/guix/hydra.gnu.org.pub\n"
+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:2384
-msgid "Similarly, the @file{berlin.guixsd.org.pub} file contains the public key for the project's new build farm, reachable at @indicateurl{https://berlin.guixsd.org}."
-msgstr "Genauso enthält die Datei @file{berlin.guixsd.org.pub} den öffentlichen Schlüssel für die neue Build-Farm des Guix-Projekts, die unter @indicateurl{https://berlin.guixsd.org} erreichbar ist."
-
-#. type: quotation
-#: doc/guix.texi:2389
-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 "Derzeit, als dieser Text geschrieben wurde, wird @code{berlin.guixsd.org} ausgebaut, um besser skalieren zu können, aber Sie könnten es ausprobieren. Dahinter stecken 20 x86_64-/i686-Erstellungsknoten, die Substitute früher anbieten könnten als @code{mirror.hydra.gnu.org}."
+#: doc/guix.texi:3156
+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."
 
 #. type: Plain text
-#: doc/guix.texi:2393
+#: doc/guix.texi:3160
 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:2402
+#: doc/guix.texi:3169
 #, no-wrap
 msgid ""
 "$ guix build emacs --dry-run\n"
@@ -5768,12 +7337,12 @@ msgstr ""
 "@dots{}\n"
 
 #. type: Plain text
-#: doc/guix.texi:2406
+#: doc/guix.texi:3173
 msgid "to something like:"
 msgstr "in so etwas verwandeln:"
 
 #. type: example
-#: doc/guix.texi:2415
+#: doc/guix.texi:3182
 #, no-wrap
 msgid ""
 "$ guix build emacs --dry-run\n"
@@ -5793,551 +7362,590 @@ msgstr ""
 "@dots{}\n"
 
 #. type: Plain text
-#: doc/guix.texi:2420
-msgid "This indicates that substitutes from @code{hydra.gnu.org} are usable and will be downloaded, when possible, for future builds."
-msgstr "Das zeigt an, dass Substitute von @code{hydra.gnu.org} nutzbar sind und für zukünftige Erstellungen heruntergeladen werden, wann immer es möglich ist."
+#: doc/guix.texi:3187
+msgid "This indicates that substitutes from @code{@value{SUBSTITUTE-SERVER}} are usable and will be downloaded, when possible, for future builds."
+msgstr "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:2421
+#: doc/guix.texi:3188
 #, no-wrap
 msgid "substitutes, how to disable"
 msgstr "Substitute, wie man sie ausschaltet"
 
 #. type: Plain text
-#: doc/guix.texi:2427
+#: doc/guix.texi:3194
 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 (@pxref{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."
+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."
 
 #. type: cindex
-#: doc/guix.texi:2431
+#: doc/guix.texi:3198
 #, no-wrap
 msgid "digital signatures"
 msgstr "digitale Signaturen"
 
 #. type: Plain text
-#: doc/guix.texi:2435
+#: doc/guix.texi:3202
 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:2441
+#: doc/guix.texi:3208
 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:2444
+#: doc/guix.texi:3211
 #, 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:2455
+#: doc/guix.texi:3222
 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)."
 
 #. type: Plain text
-#: doc/guix.texi:2462
+#: doc/guix.texi:3229
 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:2474
+#: doc/guix.texi:3241
 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}."
 
 #. type: Plain text
-#: doc/guix.texi:2483
+#: doc/guix.texi:3250
 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:2497
+#: doc/guix.texi:3264
 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 (@pxref{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."
+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."
 
 #. type: Plain text
-#: doc/guix.texi:2502
+#: doc/guix.texi:3269
 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 (@pxref{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, 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."
 
 #. type: cindex
-#: doc/guix.texi:2506
+#: doc/guix.texi:3273
 #, no-wrap
 msgid "trust, of pre-built binaries"
 msgstr "Vertrauen, gegenüber vorerstellten Binärdateien"
 
 #. type: Plain text
-#: doc/guix.texi:2516
-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{hydra.gnu.org} substitutes can be convenient, we encourage users to also build on their own, or even run their own build farm, such that @code{hydra.gnu.org} 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{hydra.gnu.org} zu benutzen, ermuntern wir Nutzer, auch selbst Erstellungen durchzuführen oder gar ihre eigene Build-Farm zu betreiben, damit @code{hydra.gnu.org} 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 (@pxref{Invoking guix publish})."
+#: doc/guix.texi:3283
+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 Build-Farm 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:2528
+#: doc/guix.texi:3295
 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 (@pxref{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 (@pxref{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 (@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}})."
 
 #. type: Plain text
-#: doc/guix.texi:2532
+#: doc/guix.texi:3299
 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 Guix Binärdateien an und von Nutzern peer-to-peer veröffentlichen kann. Wenn Sie mit uns dieses Projekt diskuttieren möchten, kommen Sie auf unsere Mailing-Liste @email{guix-devel@@gnu.org}."
+msgstr "In Zukunft wollen wir, dass Guix Binärdateien an und von Nutzern peer-to-peer veröffentlichen kann. 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:2536
+#: doc/guix.texi:3303
 #, no-wrap
 msgid "multiple-output packages"
 msgstr "mehrere Ausgaben, bei Paketen"
 
 #. type: cindex
-#: doc/guix.texi:2537
+#: doc/guix.texi:3304
 #, no-wrap
 msgid "package outputs"
 msgstr "Paketausgaben"
 
 #. type: cindex
-#: doc/guix.texi:2538
+#: doc/guix.texi:3305
 #, no-wrap
 msgid "outputs"
 msgstr "Ausgaben"
 
 #. type: Plain text
-#: doc/guix.texi:2548
+#: doc/guix.texi:3315
 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 "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 package -i 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 an obigem Befehl sehen. In diesem speziellen Fall enthält die Standard-Paketausgabe von @code{glibc} alle C-Headerdateien, gemeinsamen Bibliotheken (»Shared Libraries«), statische Bibliotheken (»Static Libraries«), Dokumentation für Info sowie andere zusätzliche Dateien."
+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 package -i 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 an obigem 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:2556
+#: doc/guix.texi:3323
 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:2559
+#: doc/guix.texi:3326
 #, no-wrap
 msgid "guix package -i glib\n"
 msgstr "guix package -i glib\n"
 
 #. type: item
-#: doc/guix.texi:2561 doc/guix.texi:23274 doc/guix.texi:23299
+#: doc/guix.texi:3328 doc/guix.texi:25157 doc/guix.texi:25182
 #, no-wrap
 msgid "documentation"
 msgstr "Dokumentation"
 
 #. type: Plain text
-#: doc/guix.texi:2563
+#: doc/guix.texi:3330
 msgid "The command to install its documentation is:"
 msgstr "Der Befehl, um die Dokumentation zu installieren, ist:"
 
 #. type: example
-#: doc/guix.texi:2566
+#: doc/guix.texi:3333
 #, no-wrap
 msgid "guix package -i glib:doc\n"
 msgstr "guix package -i glib:doc\n"
 
 #. type: Plain text
-#: doc/guix.texi:2577
+#: doc/guix.texi:3344
 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 (@pxref{Invoking guix size}). @command{guix graph} kann auch helfen (@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:2585
+#: doc/guix.texi:3352
 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 (@pxref{Installing Debugging Files}). Die Ausgaben eines Pakets stehen in der dritten Spalte der Anzeige von @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:2588
+#: doc/guix.texi:3355
 #, no-wrap
 msgid "Invoking @command{guix gc}"
 msgstr "@command{guix gc} aufrufen"
 
 #. type: cindex
-#: doc/guix.texi:2590
+#: doc/guix.texi:3357
 #, no-wrap
 msgid "garbage collector"
 msgstr "Müllsammler"
 
 #. type: cindex
-#: doc/guix.texi:2591
+#: doc/guix.texi:3358
 #, no-wrap
 msgid "disk space"
 msgstr "Plattenspeicher"
 
 #. type: Plain text
-#: doc/guix.texi:2597
+#: doc/guix.texi:3364
 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:2608
-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})."
-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 (@pxref{Invoking guix build})."
+#: doc/guix.texi:3375
+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:2614
+#: doc/guix.texi:3381
 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 (@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:2618
+#: doc/guix.texi:3385
 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:2621
+#: doc/guix.texi:3388
 #, no-wrap
 msgid "guix gc -F 5G\n"
 msgstr "guix gc -F 5G\n"
 
 #. type: Plain text
-#: doc/guix.texi:2630
-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 on GuixSD).  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 (@pxref{Scheduled Job Execution}, für eine Erklärung, wie man das in GuixSD 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."
+#: doc/guix.texi:3397
+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:2636
+#: doc/guix.texi:3403
 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:"
 
 #. type: item
-#: doc/guix.texi:2638
+#: doc/guix.texi:3405
 #, no-wrap
 msgid "--collect-garbage[=@var{min}]"
 msgstr "--collect-garbage[=@var{Minimum}]"
 
 #. type: itemx
-#: doc/guix.texi:2639
+#: doc/guix.texi:3406
 #, no-wrap
 msgid "-C [@var{min}]"
 msgstr "-C [@var{Minimum}]"
 
 #. type: table
-#: doc/guix.texi:2643
+#: doc/guix.texi:3410
 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."
+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:2648
+#: doc/guix.texi:3415
 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 (@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})."
 
 #. type: table
-#: doc/guix.texi:2650
+#: doc/guix.texi:3417
 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:2651
+#: doc/guix.texi:3418
 #, no-wrap
 msgid "--free-space=@var{free}"
 msgstr "--free-space=@var{Menge}"
 
 #. type: itemx
-#: doc/guix.texi:2652
+#: doc/guix.texi:3419
 #, no-wrap
 msgid "-F @var{free}"
 msgstr "-F @var{Menge}"
 
 #. type: table
-#: doc/guix.texi:2656
+#: doc/guix.texi:3423
 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:2659
+#: doc/guix.texi:3426
 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:2660
+#: doc/guix.texi:3427
+#, no-wrap
+msgid "--delete-generations[=@var{duration}]"
+msgstr "--delete-generations[=@var{Dauer}]"
+
+#. type: itemx
+#: doc/guix.texi:3428
+#, no-wrap
+msgid "-d [@var{duration}]"
+msgstr "-d [@var{Dauer}]"
+
+#. type: table
+#: doc/guix.texi:3432
+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:3436
+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:3439
+#, no-wrap
+msgid "guix gc -d 2m -F 10G\n"
+msgstr "guix gc -d 2m -F 10G\n"
+
+#. type: item
+#: doc/guix.texi:3441
 #, no-wrap
 msgid "--delete"
 msgstr "--delete"
 
 #. type: itemx
-#: doc/guix.texi:2661 doc/guix.texi:6618 doc/guix.texi:22540
+#: doc/guix.texi:3442
 #, no-wrap
-msgid "-d"
-msgstr "-d"
+msgid "-D"
+msgstr "-D"
 
 #. type: table
-#: doc/guix.texi:2665
+#: doc/guix.texi:3446
 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:2666
+#: doc/guix.texi:3447
 #, no-wrap
 msgid "--list-failures"
 msgstr "--list-failures"
 
 #. type: table
-#: doc/guix.texi:2668
+#: doc/guix.texi:3449
 msgid "List store items corresponding to cached build failures."
 msgstr "Store-Objekte auflisten, die zwischengespeicherten Erstellungsfehlern entsprechen."
 
 #. type: table
-#: doc/guix.texi:2672
+#: doc/guix.texi:3453
 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 (@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:2673
+#: doc/guix.texi:3454
+#, no-wrap
+msgid "--list-roots"
+msgstr "--list-roots"
+
+#. type: table
+#: doc/guix.texi:3457
+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:3458
 #, no-wrap
 msgid "--clear-failures"
 msgstr "--clear-failures"
 
 #. type: table
-#: doc/guix.texi:2675
+#: doc/guix.texi:3460
 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:2678
+#: doc/guix.texi:3463
 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:2679
+#: doc/guix.texi:3464
 #, no-wrap
 msgid "--list-dead"
 msgstr "--list-dead"
 
 #. type: table
-#: doc/guix.texi:2682
+#: doc/guix.texi:3467
 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:2683
+#: doc/guix.texi:3468
 #, no-wrap
 msgid "--list-live"
 msgstr "--list-live"
 
 #. type: table
-#: doc/guix.texi:2685
+#: doc/guix.texi:3470
 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:2689
+#: doc/guix.texi:3474
 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:2692
+#: doc/guix.texi:3477
 #, no-wrap
 msgid "--references"
 msgstr "--references"
 
 #. type: itemx
-#: doc/guix.texi:2693
+#: doc/guix.texi:3478
 #, no-wrap
 msgid "--referrers"
 msgstr "--referrers"
 
 #. type: cindex
-#: doc/guix.texi:2694 doc/guix.texi:7807
+#: doc/guix.texi:3479 doc/guix.texi:9328
 #, no-wrap
 msgid "package dependencies"
 msgstr "Paketabhängigkeiten"
 
 #. type: table
-#: doc/guix.texi:2697
+#: doc/guix.texi:3482
 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:2698
+#: doc/guix.texi:3483
 #, no-wrap
 msgid "--requisites"
 msgstr "--requisites"
 
 #. type: itemx
-#: doc/guix.texi:2699 doc/guix.texi:3415
+#: doc/guix.texi:3484 doc/guix.texi:4782
 #, no-wrap
 msgid "-R"
 msgstr "-R"
 
 #. type: item
-#: doc/guix.texi:2700 doc/guix.texi:7683 doc/guix.texi:7711 doc/guix.texi:7779
+#: doc/guix.texi:3485 doc/guix.texi:9204 doc/guix.texi:9232 doc/guix.texi:9300
 #, no-wrap
 msgid "closure"
 msgstr "Abschluss"
 
 #. type: table
-#: doc/guix.texi:2705
+#: doc/guix.texi:3490
 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:2709
+#: doc/guix.texi:3494
 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 @xref{Invoking guix size} erklärt ein Werkzeug, um den Speicherbedarf des Abschlusses eines Elements zu ermitteln. Siehe @xref{Invoking guix graph} für ein Werkzeug, um den Referenzgraphen zu veranschaulichen."
+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:2710
+#: doc/guix.texi:3495
 #, no-wrap
 msgid "--derivers"
 msgstr "--derivers"
 
 #. type: item
-#: doc/guix.texi:2711 doc/guix.texi:3703 doc/guix.texi:7892
+#: doc/guix.texi:3496 doc/guix.texi:4943 doc/guix.texi:9429
 #, no-wrap
 msgid "derivation"
 msgstr "Ableitung"
 
 #. type: table
-#: doc/guix.texi:2714
+#: doc/guix.texi:3499
 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 (@pxref{Derivations})."
+msgstr "Liefert die Ableitung(en), die zu den angegebenen Store-Objekten führen (siehe @ref{Derivations})."
 
 #. type: table
-#: doc/guix.texi:2716
+#: doc/guix.texi:3501
 msgid "For example, this command:"
 msgstr "Zum Beispiel liefert dieser Befehl:"
 
 #. type: example
-#: doc/guix.texi:2719
+#: doc/guix.texi:3504
 #, 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:2724
+#: doc/guix.texi:3509
 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:2728
+#: doc/guix.texi:3513
 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:2732
+#: doc/guix.texi:3517
 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:2735
+#: doc/guix.texi:3520
 #, no-wrap
 msgid "--verify[=@var{options}]"
 msgstr "--verify[=@var{Optionen}]"
 
 #. type: cindex
-#: doc/guix.texi:2736
+#: doc/guix.texi:3521
 #, no-wrap
 msgid "integrity, of the store"
 msgstr "Integrität, des Stores"
 
 #. type: cindex
-#: doc/guix.texi:2737
+#: doc/guix.texi:3522
 #, no-wrap
 msgid "integrity checking"
 msgstr "Integritätsprüfung"
 
 #. type: table
-#: doc/guix.texi:2739
+#: doc/guix.texi:3524
 msgid "Verify the integrity of the store."
 msgstr "Die Integrität des Stores verifizieren"
 
 #. type: table
-#: doc/guix.texi:2742
+#: doc/guix.texi:3527
 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:2745
+#: doc/guix.texi:3530
 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:2751
+#: doc/guix.texi:3536
 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:2752
+#: doc/guix.texi:3537
 #, no-wrap
 msgid "repairing the store"
 msgstr "Store, reparieren"
 
 #. type: cindex
-#: doc/guix.texi:2753 doc/guix.texi:6611
+#: doc/guix.texi:3538 doc/guix.texi:8098
 #, no-wrap
 msgid "corruption, recovering from"
 msgstr "Datenbeschädigung, Behebung"
 
 #. type: table
-#: doc/guix.texi:2761
+#: doc/guix.texi:3546
 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 (@pxref{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 (@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:2762
+#: doc/guix.texi:3547
 #, no-wrap
 msgid "--optimize"
 msgstr "--optimize"
 
 #. type: table
-#: doc/guix.texi:2766
+#: doc/guix.texi:3551
 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:2772
+#: doc/guix.texi:3557
 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} (@pxref{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."
+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."
 
 #. type: section
-#: doc/guix.texi:2776
+#: doc/guix.texi:3561
 #, no-wrap
 msgid "Invoking @command{guix pull}"
 msgstr "@command{guix pull} aufrufen"
 
 #. type: cindex
-#: doc/guix.texi:2778
+#: doc/guix.texi:3563
 #, no-wrap
 msgid "upgrading Guix"
 msgstr "Aktualisieren von Guix"
 
 #. type: cindex
-#: doc/guix.texi:2779
+#: doc/guix.texi:3564
 #, no-wrap
 msgid "updating Guix"
 msgstr "Updaten von Guix"
 
 #. type: command{#1}
-#: doc/guix.texi:2780
+#: doc/guix.texi:3565
 #, no-wrap
 msgid "guix pull"
 msgstr "guix pull"
 
 #. type: cindex
-#: doc/guix.texi:2781
+#: doc/guix.texi:3566
 #, no-wrap
 msgid "pull"
 msgstr "pull"
 
 #. type: Plain text
-#: doc/guix.texi:2789
+#: doc/guix.texi:3574
 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."
 
 #. type: Plain text
-#: doc/guix.texi:2795
+#: doc/guix.texi:3580
 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:2801
+#: doc/guix.texi:3586
 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."
 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:2807
+#: doc/guix.texi:3592
 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 (@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:2811
+#: doc/guix.texi:3596
 #, no-wrap
 msgid ""
 "export PATH=\"$HOME/.config/guix/current/bin:$PATH\"\n"
@@ -6347,12 +7955,12 @@ msgstr ""
 "export INFOPATH=\"$HOME/.config/guix/current/share/info:$INFOPATH\"\n"
 
 #. type: Plain text
-#: doc/guix.texi:2815
+#: doc/guix.texi:3600
 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."
 
 #. type: example
-#: doc/guix.texi:2823
+#: doc/guix.texi:3608
 #, no-wrap
 msgid ""
 "$ guix pull -l\n"
@@ -6372,7 +7980,7 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix.texi:2833
+#: doc/guix.texi:3618
 #, no-wrap
 msgid ""
 "Generation 2\tJun 11 2018 11:02:49\n"
@@ -6398,7 +8006,7 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix.texi:2841
+#: doc/guix.texi:3626
 #, no-wrap
 msgid ""
 "Generation 3\tJun 13 2018 23:31:07\t(current)\n"
@@ -6418,17 +8026,17 @@ msgstr ""
 "  69 packages upgraded: borg@@1.1.6, cheese@@3.28.0, @dots{}\n"
 
 #. type: Plain text
-#: doc/guix.texi:2845
-msgid "@ref{Invoking guix describe, @command{guix describe}}, for other ways to describe the current status of Guix."
+#: doc/guix.texi:3630
+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:2850
+#: doc/guix.texi:3635
 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 "Das Profil @code{~/.config/guix/current} verhält sich genau wie jedes andere Profil, das von @command{guix package} erzeugt wurde (@pxref{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:"
+msgstr "Das Profil @code{~/.config/guix/current} verhält sich genau wie jedes andere Profil, das von @command{guix package} erzeugt wurde (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:2856
+#: doc/guix.texi:3641
 #, no-wrap
 msgid ""
 "$ guix package -p ~/.config/guix/current --roll-back\n"
@@ -6442,155 +8050,199 @@ msgstr ""
 "deleting /var/guix/profiles/per-user/charlie/current-guix-1-link\n"
 
 #. type: Plain text
-#: doc/guix.texi:2860
+#: doc/guix.texi:3645
 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:2862
+#: doc/guix.texi:3647
 #, no-wrap
 msgid "--url=@var{url}"
 msgstr "--url=@var{URL}"
 
 #. type: itemx
-#: doc/guix.texi:2863
+#: doc/guix.texi:3648
 #, no-wrap
 msgid "--commit=@var{commit}"
 msgstr "--commit=@var{Commit}"
 
 #. type: itemx
-#: doc/guix.texi:2864
+#: doc/guix.texi:3649
 #, no-wrap
 msgid "--branch=@var{branch}"
 msgstr "--branch=@var{Branch}"
 
 #. type: table
-#: doc/guix.texi:2867
-msgid "Download code from the specified @var{url}, at the given @var{commit} (a valid Git commit ID represented as a hexadecimal string), or @var{branch}."
+#: doc/guix.texi:3653
+#, fuzzy
+#| msgid "Download code from the specified @var{url}, at the given @var{commit} (a valid Git commit ID represented as a hexadecimal string), or @var{branch}."
+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 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:2868 doc/guix.texi:2920
+#: doc/guix.texi:3654 doc/guix.texi:3719
 #, no-wrap
 msgid "@file{channels.scm}, configuration file"
 msgstr "@file{channels.scm}, Konfigurationsdatei"
 
 #. type: cindex
-#: doc/guix.texi:2869 doc/guix.texi:2921
+#: doc/guix.texi:3655 doc/guix.texi:3720
 #, no-wrap
 msgid "configuration file for channels"
 msgstr "Konfigurationsdatei für Kanäle"
 
 #. type: table
-#: doc/guix.texi:2873
+#: doc/guix.texi:3659
 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:2874
+#: doc/guix.texi:3660
 #, no-wrap
 msgid "--channels=@var{file}"
 msgstr "--channels=@var{Datei}"
 
 #. type: itemx
-#: doc/guix.texi:2875
+#: doc/guix.texi:3661
 #, no-wrap
 msgid "-C @var{file}"
 msgstr "-C @var{Datei}"
 
 #. type: table
-#: doc/guix.texi:2880
+#: doc/guix.texi:3666
 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 "Die Liste der Kanäle aus der angegebenen @var{Datei} statt aus @file{~/.config/guix/channels.scm} auslesen. Die @var{Datei} muss Scheme-Code enthalten, der zu einer Liste von Kanalobjekten ausgewertet wird. Siehe @xref{Channels} für nähere Informationen."
+msgstr "Die Liste der Kanäle aus der angegebenen @var{Datei} statt aus @file{~/.config/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: item
+#: doc/guix.texi:3667
+#, fuzzy, no-wrap
+#| msgid "--network"
+msgid "--news"
+msgstr "--network"
+
+#. type: itemx
+#: doc/guix.texi:3668 doc/guix.texi:4580
+#, no-wrap
+msgid "-N"
+msgstr "-N"
+
+#. type: table
+#: doc/guix.texi:3670
+msgid "Display the list of packages added or upgraded since the previous generation."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:3674
+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 ""
 
 #. type: table
-#: doc/guix.texi:2887
+#: doc/guix.texi:3681
 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} (@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:2890
-msgid "@ref{Invoking guix describe}, for a way to display information about the current generation only."
+#: doc/guix.texi:3684
+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:2894
+#: doc/guix.texi:3688
 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:2895 doc/guix.texi:6248
+#: doc/guix.texi:3689 doc/guix.texi:7674
 #, no-wrap
 msgid "--dry-run"
 msgstr "--dry-run"
 
 #. type: itemx
-#: doc/guix.texi:2896 doc/guix.texi:6249
+#: doc/guix.texi:3690 doc/guix.texi:7675
 #, no-wrap
 msgid "-n"
 msgstr "-n"
 
 #. type: table
-#: doc/guix.texi:2899
+#: doc/guix.texi:3693
 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:3695 doc/guix.texi:4563 doc/guix.texi:4856 doc/guix.texi:8040
+#: doc/guix.texi:9318 doc/guix.texi:9517 doc/guix.texi:10067
+#: doc/guix.texi:24418
+#, no-wrap
+msgid "-s @var{system}"
+msgstr "-s @var{System}"
+
 #. type: table
-#: doc/guix.texi:2902
+#: doc/guix.texi:3698 doc/guix.texi:4859
+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:3699 doc/guix.texi:9875
+#, no-wrap
+msgid "--verbose"
+msgstr "--verbose"
+
+#. type: table
+#: doc/guix.texi:3701
 msgid "Produce verbose output, writing build logs to the standard error output."
 msgstr "Ausführliche Informationen ausgeben und Erstellungsprotokolle auf der Standardfehlerausgabe ausgeben."
 
 #. type: table
-#: doc/guix.texi:2906
+#: doc/guix.texi:3705
 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:2912
+#: doc/guix.texi:3711
 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 bei @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 @xref{Channels} finden Sie nähere Informationen."
+msgstr "Mit Hilfe von @dfn{Kanälen} können Sie bei @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:2915
+#: doc/guix.texi:3714
 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 (@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:2919 doc/guix.texi:3279
+#: doc/guix.texi:3718 doc/guix.texi:4121
 #, no-wrap
 msgid "channels"
 msgstr "Kanäle"
 
 #. type: cindex
-#: doc/guix.texi:2922
+#: doc/guix.texi:3721
 #, no-wrap
 msgid "@command{guix pull}, configuration file"
 msgstr "@command{guix pull}, Konfigurationsdatei"
 
 #. type: cindex
-#: doc/guix.texi:2923
+#: doc/guix.texi:3722
 #, no-wrap
 msgid "configuration of @command{guix pull}"
 msgstr "Konfiguration von @command{guix pull}"
 
 #. type: Plain text
-#: doc/guix.texi:2932
+#: doc/guix.texi:3731
 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 (@pxref{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."
+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:2933
+#: doc/guix.texi:3732
 #, no-wrap
 msgid "Using a Custom Guix Channel"
 msgstr "Einen eigenen Guix-Kanal benutzen"
 
 #. type: Plain text
-#: doc/guix.texi:2940
+#: doc/guix.texi:3739
 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 sollten. 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:2947
+#: doc/guix.texi:3746
 #, no-wrap
 msgid ""
 ";; Tell 'guix pull' to use my own repo.\n"
@@ -6606,83 +8258,83 @@ msgstr ""
 "        (branch \"super-hacks\")))\n"
 
 #. type: Plain text
-#: doc/guix.texi:2952
+#: doc/guix.texi:3751
 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."
 
 #. type: subsection
-#: doc/guix.texi:2953
+#: doc/guix.texi:3752
 #, no-wrap
 msgid "Specifying Additional Channels"
 msgstr "Weitere Kanäle angeben"
 
 #. type: cindex
-#: doc/guix.texi:2955
+#: doc/guix.texi:3754
 #, no-wrap
 msgid "extending the package collection (channels)"
 msgstr "Paketsammlung erweitern (Kanäle)"
 
 #. type: cindex
-#: doc/guix.texi:2956
+#: doc/guix.texi:3755
 #, no-wrap
 msgid "personal packages (channels)"
 msgstr "Eigene Pakete (Kanäle)"
 
 #. type: cindex
-#: doc/guix.texi:2957
+#: doc/guix.texi:3756
 #, no-wrap
 msgid "channels, for personal packages"
 msgstr "Kanäle, für eigene Pakete"
 
 #. type: Plain text
-#: doc/guix.texi:2965
+#: doc/guix.texi:3764
 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 (@pxref{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?"
+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:2969
+#: doc/guix.texi:3768
 #, no-wrap
 msgid "Warning"
 msgstr "Warnung"
 
 #. type: quotation
-#: doc/guix.texi:2973
+#: doc/guix.texi:3772
 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:2981
+#: doc/guix.texi:3780
 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 (@pxref{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."
+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:2990
+#: doc/guix.texi:3789
 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:2994
+#: doc/guix.texi:3793
 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:3001
+#: doc/guix.texi:3800
 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:3007
-msgid "Once you have a Git repository containing your own package modules, you can write @code{~/.config/guix/channels.scm} to instruct @command{guix pull} to pull from your personal channel @emph{in addition} to the default Guix channel(s):"
-msgstr "Sobald Sie ein Git-Repository mit Ihren eigenen Paketmodulen haben, können Sie es in @code{~/.config/guix/channels.scm} eintragen, damit @command{guix pull} Ihren persönlichen Kanal @emph{zusätzlich} zu den standardmäßigen Guix-Kanälen als Paketquelle verwendet:"
+#: doc/guix.texi:3805
+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:3008
+#: doc/guix.texi:3806
 #, no-wrap
 msgid "%default-channels"
 msgstr "%default-channels"
 
 #. type: lisp
-#: doc/guix.texi:3015
+#: doc/guix.texi:3813
 #, no-wrap
 msgid ""
 ";; Add my personal packages to those Guix provides.\n"
@@ -6698,12 +8350,12 @@ msgstr ""
 "      %default-channels)\n"
 
 #. type: Plain text
-#: doc/guix.texi:3025
-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 (@pxref{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."
+#: doc/guix.texi:3823
+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:3040
+#: doc/guix.texi:3838
 #, no-wrap
 msgid ""
 "$ guix pull --list-generations\n"
@@ -6735,41 +8387,110 @@ msgstr ""
 "  4 packages upgraded: emacs-racket-mode@@0.0.2-2.1b78827, @dots{}\n"
 
 #. type: Plain text
-#: doc/guix.texi:3048
+#: doc/guix.texi:3846
 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:3857
+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:3858
+#, no-wrap
+msgid "dependencies, channels"
+msgstr "Abhängigkeiten, bei Kanälen"
+
+#. type: cindex
+#: doc/guix.texi:3859
+#, no-wrap
+msgid "meta-data, channels"
+msgstr "Metadaten, bei Kanälen"
+
+#. type: subsection
+#: doc/guix.texi:3860
+#, no-wrap
+msgid "Declaring Channel Dependencies"
+msgstr "Kanalabhängigkeiten deklarieren"
+
+#. type: Plain text
+#: doc/guix.texi:3866
+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:3868
+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:3880
+#, 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"
+
+#. type: Plain text
+#: doc/guix.texi:3886
+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:3890
+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, sollen 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: subsection
-#: doc/guix.texi:3049
+#: doc/guix.texi:3891
 #, no-wrap
 msgid "Replicating Guix"
 msgstr "Guix nachbilden"
 
 #. type: cindex
-#: doc/guix.texi:3051
+#: doc/guix.texi:3893
 #, no-wrap
 msgid "pinning, channels"
 msgstr "Festsetzen, bei Kanälen"
 
 #. type: cindex
-#: doc/guix.texi:3052 doc/guix.texi:3218
+#: doc/guix.texi:3894 doc/guix.texi:4060
 #, no-wrap
 msgid "replicating Guix"
 msgstr "Nachbilden von Guix"
 
 #. type: cindex
-#: doc/guix.texi:3053
+#: doc/guix.texi:3895
 #, no-wrap
 msgid "reproducibility, of Guix"
 msgstr "Reproduzierbarkeit von Guix"
 
 #. type: Plain text
-#: doc/guix.texi:3058
+#: doc/guix.texi:3900
 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:3069
+#: doc/guix.texi:3911
 #, no-wrap
 msgid ""
 ";; Deploy specific commits of my channels of interest.\n"
@@ -6793,60 +8514,60 @@ msgstr ""
 "       (branch \"dd3df5e2c8818760a8fc0bd699e55d3b69fef2bb\")))\n"
 
 #. type: Plain text
-#: doc/guix.texi:3073
+#: doc/guix.texi:3915
 msgid "The @command{guix describe --format=channels} command can even generate this list of channels directly (@pxref{Invoking guix describe})."
-msgstr "Der Befehl @command{guix describe --format=channels} kann diese Kanalliste sogar direkt erzeugen (@pxref{Invoking guix describe})."
+msgstr "Der Befehl @command{guix describe --format=channels} kann diese Kanalliste sogar direkt erzeugen (siehe @ref{Invoking guix describe})."
 
 #. type: Plain text
-#: doc/guix.texi:3080
+#: doc/guix.texi:3922
 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:3085
+#: doc/guix.texi:3927
 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 @xref{Inferiors} beschreibt eine weitere Möglichkeit, diese Superkräfte zu nutzen."
+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: quotation
-#: doc/guix.texi:3093
+#: doc/guix.texi:3935
 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:3095 doc/guix.texi:6093
+#: doc/guix.texi:3937 doc/guix.texi:7520
 #, no-wrap
 msgid "inferiors"
 msgstr "Untergeordnete"
 
 #. type: cindex
-#: doc/guix.texi:3096
+#: doc/guix.texi:3938
 #, no-wrap
 msgid "composition of Guix revisions"
 msgstr "Mischen von Guix-Versionen"
 
 #. type: Plain text
-#: doc/guix.texi:3101
+#: doc/guix.texi:3943
 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:3102 doc/guix.texi:3167
+#: doc/guix.texi:3944 doc/guix.texi:4009
 #, no-wrap
 msgid "inferior packages"
 msgstr "untergeordnete Pakete"
 
 #. type: Plain text
-#: doc/guix.texi:3108
+#: doc/guix.texi:3950
 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 (@pxref{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}."
+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:3118
+#: doc/guix.texi:3960
 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 (@pxref{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 (@pxref{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:"
+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:3122
+#: doc/guix.texi:3964
 #, no-wrap
 msgid ""
 "(use-modules (guix inferior) (guix channels)\n"
@@ -6858,7 +8579,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:3131
+#: doc/guix.texi:3973
 #, no-wrap
 msgid ""
 "(define channels\n"
@@ -6882,7 +8603,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:3135
+#: doc/guix.texi:3977
 #, no-wrap
 msgid ""
 "(define inferior\n"
@@ -6896,7 +8617,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:3141
+#: doc/guix.texi:3983
 #, no-wrap
 msgid ""
 ";; Now create a manifest with the current \"guile\" package\n"
@@ -6912,186 +8633,186 @@ msgstr ""
 "       (specification->package \"guile\")))\n"
 
 #. type: Plain text
-#: doc/guix.texi:3146
+#: doc/guix.texi:3988
 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:3149
+#: doc/guix.texi:3991
 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:3150
+#: doc/guix.texi:3992
 #, no-wrap
 msgid "{Scheme Procedure} inferior-for-channels @var{channels} @"
 msgstr "{Scheme-Prozedur} inferior-for-channels @var{Kanäle} @"
 
 #. type: deffn
-#: doc/guix.texi:3155
+#: doc/guix.texi:3997
 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:3158
+#: doc/guix.texi:4000
 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:3160
+#: doc/guix.texi:4002
 #, no-wrap
 msgid "{Scheme Procedure} open-inferior @var{directory} @"
 msgstr "{Scheme-Prozedur} open-inferior @var{Verzeichnis} @"
 
 #. type: deffn
-#: doc/guix.texi:3165
+#: doc/guix.texi:4007
 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:3170
+#: doc/guix.texi:4012
 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:3171
+#: doc/guix.texi:4013
 #, no-wrap
 msgid "{Scheme Procedure} inferior-packages @var{inferior}"
 msgstr "{Scheme-Prozedur} inferior-packages @var{Untergeordneter}"
 
 #. type: deffn
-#: doc/guix.texi:3173
+#: doc/guix.texi:4015
 msgid "Return the list of packages known to @var{inferior}."
 msgstr "Liefert die Liste der Pakete in @var{Untergeordneter}."
 
 #. type: deffn
-#: doc/guix.texi:3175
+#: doc/guix.texi:4017
 #, 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:3180
+#: doc/guix.texi:4022
 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:3182
+#: doc/guix.texi:4024
 #, no-wrap
 msgid "{Scheme Procedure} inferior-package? @var{obj}"
 msgstr "{Scheme-Prozedur} inferior-package? @var{Objekt}"
 
 #. type: deffn
-#: doc/guix.texi:3184
+#: doc/guix.texi:4026
 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:3186
+#: doc/guix.texi:4028
 #, no-wrap
 msgid "{Scheme Procedure} inferior-package-name @var{package}"
 msgstr "{Scheme-Prozedur} inferior-package-name @var{Paket}"
 
 #. type: deffnx
-#: doc/guix.texi:3187
+#: doc/guix.texi:4029
 #, no-wrap
 msgid "{Scheme Procedure} inferior-package-version @var{package}"
 msgstr "{Scheme-Prozedur} inferior-package-version @var{Paket}"
 
 #. type: deffnx
-#: doc/guix.texi:3188
+#: doc/guix.texi:4030
 #, no-wrap
 msgid "{Scheme Procedure} inferior-package-synopsis @var{package}"
 msgstr "{Scheme-Prozedur} inferior-package-synopsis @var{Paket}"
 
 #. type: deffnx
-#: doc/guix.texi:3189
+#: doc/guix.texi:4031
 #, no-wrap
 msgid "{Scheme Procedure} inferior-package-description @var{package}"
 msgstr "{Scheme-Prozedur} inferior-package-description @var{Paket}"
 
 #. type: deffnx
-#: doc/guix.texi:3190
+#: doc/guix.texi:4032
 #, 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:3191
+#: doc/guix.texi:4033
 #, no-wrap
 msgid "{Scheme Procedure} inferior-package-location @var{package}"
 msgstr "{Scheme-Prozedur} inferior-package-location @var{Paket}"
 
 #. type: deffnx
-#: doc/guix.texi:3192
+#: doc/guix.texi:4034
 #, no-wrap
 msgid "{Scheme Procedure} inferior-package-inputs @var{package}"
 msgstr "{Scheme-Prozedur} inferior-package-inputs @var{Paket}"
 
 #. type: deffnx
-#: doc/guix.texi:3193
+#: doc/guix.texi:4035
 #, 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:3194
+#: doc/guix.texi:4036
 #, 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:3195
+#: doc/guix.texi:4037
 #, 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:3196
+#: doc/guix.texi:4038
 #, 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:3197
+#: doc/guix.texi:4039
 #, 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:3198
+#: doc/guix.texi:4040
 #, 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:3203
+#: doc/guix.texi:4045
 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 (@pxref{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."
+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:3213
+#: doc/guix.texi:4055
 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 (@pxref{G-Expressions}). Sie werden auch transparent wie reguläre Pakete von der Prozedur @code{packages->manifest} behandelt, welche oft in Manifesten benutzt wird (@pxref{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, 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."
 
 #. type: section
-#: doc/guix.texi:3215
+#: doc/guix.texi:4057
 #, no-wrap
 msgid "Invoking @command{guix describe}"
 msgstr "@command{guix describe} aufrufen"
 
 #. type: Plain text
-#: doc/guix.texi:3226
+#: doc/guix.texi:4068
 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:3230
+#: doc/guix.texi:4072
 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 (@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:3238
+#: doc/guix.texi:4080
 #, no-wrap
 msgid ""
 "$ guix describe\n"
@@ -7109,17 +8830,17 @@ msgstr ""
 "    commit: e0fa68c7718fffd33d81af415279d6ddb518f727\n"
 
 #. type: Plain text
-#: doc/guix.texi:3247
+#: doc/guix.texi:4089
 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 (@pxref{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."
+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:3250
+#: doc/guix.texi:4092
 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:3258
+#: doc/guix.texi:4100
 #, no-wrap
 msgid ""
 "$ guix describe -f channels\n"
@@ -7137,133 +8858,961 @@ msgstr ""
 "          \"e0fa68c7718fffd33d81af415279d6ddb518f727\")))\n"
 
 #. type: Plain text
-#: doc/guix.texi:3267
+#: doc/guix.texi:4109
 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 (@pxref{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!"
+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:3270
+#: doc/guix.texi:4112
 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:3272 doc/guix.texi:3392
+#: doc/guix.texi:4114 doc/guix.texi:4758
 #, no-wrap
 msgid "--format=@var{format}"
 msgstr "--format=@var{Format}"
 
 #. type: itemx
-#: doc/guix.texi:3273 doc/guix.texi:3393
+#: doc/guix.texi:4115 doc/guix.texi:4759
 #, no-wrap
 msgid "-f @var{format}"
 msgstr "-f @var{Format}"
 
 #. type: table
-#: doc/guix.texi:3275
+#: doc/guix.texi:4117
 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:3277
+#: doc/guix.texi:4119
 #, no-wrap
 msgid "human"
 msgstr "human"
 
 #. type: table
-#: doc/guix.texi:3279
+#: doc/guix.texi:4121
 msgid "produce human-readable output;"
 msgstr "für menschenlesbare Ausgabe,"
 
 #. type: table
-#: doc/guix.texi:3283
+#: doc/guix.texi:4125
 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 (@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:3283 doc/guix.texi:7075
+#: doc/guix.texi:4125 doc/guix.texi:8557
 #, no-wrap
 msgid "json"
 msgstr "json"
 
 #. type: cindex
-#: doc/guix.texi:3284
+#: doc/guix.texi:4126
 #, no-wrap
 msgid "JSON"
 msgstr "JSON"
 
 #. type: table
-#: doc/guix.texi:3286
+#: doc/guix.texi:4128
 msgid "produce a list of channel specifications in JSON format;"
 msgstr "generiert eine Liste von Kanalspezifikationen im JSON-Format,"
 
 #. type: item
-#: doc/guix.texi:3286
+#: doc/guix.texi:4128
 #, no-wrap
 msgid "recutils"
 msgstr "recutils"
 
 #. type: table
-#: doc/guix.texi:3288
+#: doc/guix.texi:4130
 msgid "produce a list of channel specifications in Recutils format."
 msgstr "generiert eine Liste von Kanalspezifikationen im Recutils-Format."
 
 #. type: table
-#: doc/guix.texi:3293
+#: doc/guix.texi:4135
 msgid "Display information about @var{profile}."
 msgstr "Informationen über das @var{Profil} anzeigen."
 
 #. type: section
-#: doc/guix.texi:3296
+#: doc/guix.texi:4138
+#, no-wrap
+msgid "Invoking @command{guix archive}"
+msgstr "@command{guix archive} aufrufen"
+
+#. type: command{#1}
+#: doc/guix.texi:4140
+#, no-wrap
+msgid "guix archive"
+msgstr "guix archive"
+
+#. type: cindex
+#: doc/guix.texi:4141
+#, no-wrap
+msgid "archive"
+msgstr "Archivdateien"
+
+#. type: Plain text
+#: doc/guix.texi:4147
+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:4151
+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:4153
+#, no-wrap
+msgid "exporting store items"
+msgstr "Store-Objekte exportieren"
+
+#. type: Plain text
+#: doc/guix.texi:4155
+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:4158
+#, 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:4165
+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:4168
+#, 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:4173
+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:4176
+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:4179
+#, 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:4184
+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:4188
+#, 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 die-maschine guix-archive --import\n"
+
+#. type: Plain text
+#: doc/guix.texi:4198
+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})."
+
+#. type: cindex
+#: doc/guix.texi:4199
+#, no-wrap
+msgid "nar, archive format"
+msgstr "Nar, Archivformat"
+
+#. type: cindex
+#: doc/guix.texi:4200
+#, no-wrap
+msgid "normalized archive (nar)"
+msgstr "Normalisiertes Archiv (Nar)"
+
+#. type: Plain text
+#: doc/guix.texi:4210
+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."
+
+#. type: Plain text
+#: doc/guix.texi:4216
+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."
+
+#. type: Plain text
+#: doc/guix.texi:4218
+msgid "The main options are:"
+msgstr "Die wichtigsten Befehlszeilenoptionen sind:"
+
+#. type: item
+#: doc/guix.texi:4220
+#, no-wrap
+msgid "--export"
+msgstr "--export"
+
+#. type: table
+#: doc/guix.texi:4223
+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:4226
+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."
+
+#. type: itemx
+#: doc/guix.texi:4227 doc/guix.texi:8345 doc/guix.texi:8442 doc/guix.texi:8467
+#: doc/guix.texi:8662 doc/guix.texi:8703 doc/guix.texi:8750
+#, no-wrap
+msgid "-r"
+msgstr "-r"
+
+#. type: item
+#: doc/guix.texi:4228 doc/guix.texi:8344 doc/guix.texi:8441 doc/guix.texi:8466
+#: doc/guix.texi:8661 doc/guix.texi:8702 doc/guix.texi:8749 doc/guix.texi:8806
+#, no-wrap
+msgid "--recursive"
+msgstr "--recursive"
+
+#. type: table
+#: doc/guix.texi:4233
+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."
+
+#. type: item
+#: doc/guix.texi:4234
+#, no-wrap
+msgid "--import"
+msgstr "--import"
+
+#. type: table
+#: doc/guix.texi:4239
+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)."
+
+#. type: item
+#: doc/guix.texi:4240
+#, no-wrap
+msgid "--missing"
+msgstr "--missing"
+
+#. type: table
+#: doc/guix.texi:4244
+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:4245
+#, no-wrap
+msgid "--generate-key[=@var{parameters}]"
+msgstr "--generate-key[=@var{Parameter}]"
+
+#. type: cindex
+#: doc/guix.texi:4246
+#, no-wrap
+msgid "signing, archives"
+msgstr "Signieren, von Archiven"
+
+#. type: table
+#: doc/guix.texi:4251
+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."
+
+#. type: table
+#: doc/guix.texi:4261
+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})."
+
+#. type: item
+#: doc/guix.texi:4262
+#, no-wrap
+msgid "--authorize"
+msgstr "--authorize"
+
+#. type: cindex
+#: doc/guix.texi:4263
+#, no-wrap
+msgid "authorizing, archives"
+msgstr "Autorisieren, von Archiven"
+
+#. type: table
+#: doc/guix.texi:4267
+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:4274
+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)}."
+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{http://people.csail.mit.edu/rivest/Sexp.txt, »advanced«-formatierte S-Ausdrücke} und ist als eine Access Control List für die @url{http://theworld.com/~cme/spki.txt, Simple Public-Key Infrastructure (SPKI)} aufgebaut."
+
+#. type: item
+#: doc/guix.texi:4275
+#, no-wrap
+msgid "--extract=@var{directory}"
+msgstr "--extract=@var{Verzeichnis}"
+
+#. type: itemx
+#: doc/guix.texi:4276
+#, no-wrap
+msgid "-x @var{directory}"
+msgstr "-x @var{Verzeichnis}"
+
+#. type: table
+#: doc/guix.texi:4280
+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:4283
+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:4288
+#, no-wrap
+msgid ""
+"$ wget -O - \\\n"
+"  https://@value{SUBSTITUTE-SERVER}/nar/@dots{}-emacs-24.5 \\\n"
+"  | bunzip2 | 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"
+
+#. type: table
+#: doc/guix.texi:4295
+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:4298
+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."
+
+#. type: cindex
+#: doc/guix.texi:4306
+#, no-wrap
+msgid "software development"
+msgstr "Softwareentwicklung"
+
+#. type: Plain text
+#: doc/guix.texi:4310
+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:4316
+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:4323
+#, no-wrap
+msgid "Invoking @command{guix environment}"
+msgstr "@command{guix environment} aufrufen"
+
+#. type: cindex
+#: doc/guix.texi:4325
+#, no-wrap
+msgid "reproducible build environments"
+msgstr "reproduzierbare Erstellungsumgebungen"
+
+#. type: cindex
+#: doc/guix.texi:4326
+#, no-wrap
+msgid "development environments"
+msgstr "Entwicklungsumgebungen"
+
+#. type: command{#1}
+#: doc/guix.texi:4327
+#, no-wrap
+msgid "guix environment"
+msgstr "guix environment"
+
+#. type: cindex
+#: doc/guix.texi:4328
+#, no-wrap
+msgid "environment, package build environment"
+msgstr "Umgebung, Paketerstellungsumgebung"
+
+#. type: Plain text
+#: doc/guix.texi:4334
+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: Plain text
+#: doc/guix.texi:4336 doc/guix.texi:7594 doc/guix.texi:8322 doc/guix.texi:8389
+#: doc/guix.texi:9178 doc/guix.texi:9551 doc/guix.texi:9856 doc/guix.texi:9922
+#: doc/guix.texi:9961
+msgid "The general syntax is:"
+msgstr "Die allgemeine Syntax lautet:"
+
+#. type: example
+#: doc/guix.texi:4339
+#, no-wrap
+msgid "guix environment @var{options} @var{package}@dots{}\n"
+msgstr "guix environment @var{Optionen} @var{Paket}@dots{}\n"
+
+#. type: Plain text
+#: doc/guix.texi:4343
+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:4346
+#, no-wrap
+msgid "guix environment guile\n"
+msgstr "guix environment guile\n"
+
+#. type: Plain text
+#: doc/guix.texi:4363
+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}."
+
+#. type: vindex
+#: doc/guix.texi:4364
+#, no-wrap
+msgid "GUIX_ENVIRONMENT"
+msgstr "GUIX_ENVIRONMENT"
+
+#. type: Plain text
+#: doc/guix.texi:4370
+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}):"
+
+#. type: example
+#: doc/guix.texi:4376
+#, no-wrap
+msgid ""
+"if [ -n \"$GUIX_ENVIRONMENT\" ]\n"
+"then\n"
+"    export PS1=\"\\u@@\\h \\w [dev]\\$ \"\n"
+"fi\n"
+msgstr ""
+"if [ -n \"$GUIX_ENVIRONMENT\" ]\n"
+"then\n"
+"    export PS1=\"\\u@@\\h \\w [dev]\\$ \"\n"
+"fi\n"
+
+#. type: Plain text
+#: doc/guix.texi:4380
+msgid "...@: or to browse the profile:"
+msgstr "…@: oder um ihr Profil durchzusehen:"
+
+#. type: example
+#: doc/guix.texi:4383
+#, no-wrap
+msgid "$ ls \"$GUIX_ENVIRONMENT/bin\"\n"
+msgstr "$ ls \"$GUIX_ENVIRONMENT/bin\"\n"
+
+#. type: Plain text
+#: doc/guix.texi:4389
+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:4392
+#, no-wrap
+msgid "guix environment guile emacs\n"
+msgstr "guix environment guile emacs\n"
+
+#. type: Plain text
+#: doc/guix.texi:4397
+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:"
+
+#. type: example
+#: doc/guix.texi:4400
+#, no-wrap
+msgid "guix environment guile -- make -j4\n"
+msgstr "guix environment guile -- make -j4\n"
+
+#. type: Plain text
+#: doc/guix.texi:4406
+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:4409
+#, 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:4420
+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:"
+
+#. type: example
+#: doc/guix.texi:4423
+#, no-wrap
+msgid "guix environment guix --ad-hoc git strace\n"
+msgstr "guix environment guix --ad-hoc git strace\n"
+
+#. type: Plain text
+#: doc/guix.texi:4432
+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:4435
+#, 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:4439
+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."
+
+#. type: Plain text
+#: doc/guix.texi:4442
+msgid "The available options are summarized below."
+msgstr "Im Folgenden werden die verfügbaren Befehlszeilenoptionen zusammengefasst."
+
+#. type: item
+#: doc/guix.texi:4444 doc/guix.texi:8109 doc/guix.texi:24450
+#, no-wrap
+msgid "--root=@var{file}"
+msgstr "--root=@var{Datei}"
+
+#. type: itemx
+#: doc/guix.texi:4445 doc/guix.texi:8110 doc/guix.texi:24451
+#, no-wrap
+msgid "-r @var{file}"
+msgstr "-r @var{Datei}"
+
+#. type: cindex
+#: doc/guix.texi:4446
+#, no-wrap
+msgid "persistent environment"
+msgstr "persistente Umgebung"
+
+#. type: cindex
+#: doc/guix.texi:4447
+#, no-wrap
+msgid "garbage collector root, for environments"
+msgstr "Müllsammlerwurzel, für Umgebungen"
+
+#. type: table
+#: doc/guix.texi:4450
+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:4453
+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:4459
+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:4460 doc/guix.texi:4834 doc/guix.texi:7967 doc/guix.texi:8848
+#: doc/guix.texi:9506 doc/guix.texi:24409
+#, no-wrap
+msgid "--expression=@var{expr}"
+msgstr "--expression=@var{Ausdruck}"
+
+#. type: itemx
+#: doc/guix.texi:4461 doc/guix.texi:4835 doc/guix.texi:7968 doc/guix.texi:8849
+#: doc/guix.texi:9507 doc/guix.texi:24410
+#, no-wrap
+msgid "-e @var{expr}"
+msgstr "-e @var{Ausdruck}"
+
+#. type: table
+#: doc/guix.texi:4464
+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:4466
+msgid "For example, running:"
+msgstr "Zum Beispiel startet dies:"
+
+#. type: example
+#: doc/guix.texi:4469
+#, 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:4473
+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:4475
+msgid "Running:"
+msgstr "Wenn man dies ausführt:"
+
+#. type: example
+#: doc/guix.texi:4478
+#, 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:4481
+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:4484
+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:4487
+#, 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:4489
+#, no-wrap
+msgid "--load=@var{file}"
+msgstr "--load=@var{Datei}"
+
+#. type: itemx
+#: doc/guix.texi:4490
+#, no-wrap
+msgid "-l @var{file}"
+msgstr "-l @var{Datei}"
+
+#. type: table
+#: doc/guix.texi:4493
+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: example
+#: doc/guix.texi:4499
+#, no-wrap
+msgid "@verbatiminclude environment-gdb.scm\n"
+msgstr "@verbatiminclude environment-gdb.scm\n"
+
+#. type: table
+#: doc/guix.texi:4505
+msgid "Create an environment for the packages contained in the manifest object returned by the Scheme code in @var{file}."
+msgstr "Eine Umgebung für die Pakete erzeugen, die im Manifest-Objekt enthalten sind, das vom Scheme-Code in der @var{Datei} geliefert wird."
+
+#. type: table
+#: doc/guix.texi:4509
+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:4510
+#, no-wrap
+msgid "--ad-hoc"
+msgstr "--ad-hoc"
+
+#. type: table
+#: doc/guix.texi:4515
+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:4517
+msgid "For instance, the command:"
+msgstr "Zum Beispiel wird mit diesem Befehl:"
+
+#. type: example
+#: doc/guix.texi:4520
+#, 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:4524
+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:4529
+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:4535
+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."
+
+#. type: item
+#: doc/guix.texi:4536
+#, no-wrap
+msgid "--pure"
+msgstr "--pure"
+
+#. type: table
+#: doc/guix.texi:4540
+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:4541
+#, no-wrap
+msgid "--preserve=@var{regexp}"
+msgstr "--preserve=@var{Regexp}"
+
+#. type: itemx
+#: doc/guix.texi:4542
+#, no-wrap
+msgid "-E @var{regexp}"
+msgstr "-E @var{Regexp}"
+
+#. type: table
+#: doc/guix.texi:4547
+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:4551
+#, no-wrap
+msgid ""
+"guix environment --pure --preserve=^SLURM --ad-hoc openmpi @dots{} \\\n"
+"  -- mpirun @dots{}\n"
+msgstr ""
+"guix environment --pure --preserve=^SLURM --ad-hoc openmpi @dots{} \\\n"
+"  -- mpirun @dots{}\n"
+
+#. type: table
+#: doc/guix.texi:4557
+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.)."
+
+#. type: item
+#: doc/guix.texi:4558
+#, no-wrap
+msgid "--search-paths"
+msgstr "--search-paths"
+
+#. type: table
+#: doc/guix.texi:4561
+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:4565
+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:4566
+#, no-wrap
+msgid "--container"
+msgstr "--container"
+
+#. type: itemx
+#: doc/guix.texi:4567
+#, no-wrap
+msgid "-C"
+msgstr "-C"
+
+#. type: item
+#: doc/guix.texi:4568 doc/guix.texi:9947 doc/guix.texi:24377
+#, no-wrap
+msgid "container"
+msgstr "container"
+
+#. type: table
+#: doc/guix.texi:4574
+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}."
+
+#. type: table
+#: doc/guix.texi:4578
+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:4579
+#, no-wrap
+msgid "--network"
+msgstr "--network"
+
+#. type: table
+#: doc/guix.texi:4584
+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:4585
+#, no-wrap
+msgid "--link-profile"
+msgstr "--link-profile"
+
+#. type: itemx
+#: doc/guix.texi:4586
+#, no-wrap
+msgid "-P"
+msgstr "-P"
+
+#. type: table
+#: doc/guix.texi:4593
+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."
+
+#. type: table
+#: doc/guix.texi:4600
+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."
+
+#. type: item
+#: doc/guix.texi:4601 doc/guix.texi:9619
+#, no-wrap
+msgid "--user=@var{user}"
+msgstr "--user=@var{Benutzer}"
+
+#. type: itemx
+#: doc/guix.texi:4602 doc/guix.texi:9620
+#, no-wrap
+msgid "-u @var{user}"
+msgstr "-u @var{Benutzer}"
+
+#. type: table
+#: doc/guix.texi:4609
+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:4614
+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."
+
+#. type: example
+#: doc/guix.texi:4621
+#, no-wrap
+msgid ""
+"# will expose paths as /home/foo/wd, /home/foo/test, and /home/foo/target\n"
+"cd $HOME/wd\n"
+"guix environment --container --user=foo \\\n"
+"     --expose=$HOME/test \\\n"
+"     --expose=/tmp/target=$HOME/target\n"
+msgstr ""
+"# wird Pfade als /home/foo/wd, /home/foo/test und /home/foo/target exponieren\n"
+"cd $HOME/wd\n"
+"guix environment --container --user=foo \\\n"
+"     --expose=$HOME/test \\\n"
+"     --expose=/tmp/target=$HOME/target\n"
+
+#. type: table
+#: doc/guix.texi:4626
+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 Privatsphäre und Anonymität sinnvoll eingesetzt werden. Es sollte nicht für sich allein dazu eingesetzt werden."
+
+#. type: item
+#: doc/guix.texi:4627
+#, no-wrap
+msgid "--expose=@var{source}[=@var{target}]"
+msgstr "--expose=@var{Quelle}[=@var{Ziel}]"
+
+#. type: table
+#: doc/guix.texi:4632
+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 "Bei isolierten Umgebungen (»Containern«) wird das Dateisystem unter @var{Quelle} vom Wirtssystem als Nur-Lese-Dateisystem @var{Ziel} 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:4636
+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:4639
+#, 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: item
+#: doc/guix.texi:4641
+#, no-wrap
+msgid "--share=@var{source}[=@var{target}]"
+msgstr "--share=@var{Quelle}[=@var{Ziel}]"
+
+#. type: table
+#: doc/guix.texi:4646
+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 "Bei isolierten Umgebungen (»Containern«) wird das Dateisystem unter @var{Quelle} vom Wirtssystem als beschreibbares Dateisystem @var{Ziel} 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:4650
+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 "Im folgenden Beispiel wird eine Guile-REPL in einer isolierten Umgebung gestartet, in der das persönliche Verzeichnis des Benutzers als Verzeichnis @file{/austausch} sowohl für Lese- als auch für Schreibzugriffe zugänglich gemacht wurde:"
+
+#. type: example
+#: doc/guix.texi:4653
+#, no-wrap
+msgid "guix environment --container --share=$HOME=/exchange --ad-hoc guile -- guile\n"
+msgstr "guix environment --container --share=$HOME=/austausch --ad-hoc guile -- guile\n"
+
+#. type: Plain text
+#: doc/guix.texi:4660
+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:4662
 #, no-wrap
 msgid "Invoking @command{guix pack}"
 msgstr "@command{guix pack} aufrufen"
 
 #. type: Plain text
-#: doc/guix.texi:3302
+#: doc/guix.texi:4668
 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:3307
+#: doc/guix.texi:4673
 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 @pxref{Invoking guix copy}, @ref{Invoking guix publish} und @ref{Invoking guix archive} werfen."
+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:3309
+#: doc/guix.texi:4675
 #, no-wrap
 msgid "pack"
 msgstr "Pack"
 
 #. type: cindex
-#: doc/guix.texi:3310
+#: doc/guix.texi:4676
 #, no-wrap
 msgid "bundle"
 msgstr "Bündel"
 
 #. type: cindex
-#: doc/guix.texi:3311
+#: doc/guix.texi:4677
 #, no-wrap
 msgid "application bundle"
 msgstr "Anwendungsbündel"
 
 #. type: cindex
-#: doc/guix.texi:3312
+#: doc/guix.texi:4678
 #, no-wrap
 msgid "software bundle"
 msgstr "Software-Bündel"
 
 #. type: Plain text
-#: doc/guix.texi:3321
+#: doc/guix.texi:4687
 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:3324
+#: doc/guix.texi:4690
 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:3329
+#: doc/guix.texi:4695
 #, no-wrap
 msgid ""
 "$ guix pack guile emacs geiser\n"
@@ -7275,159 +9824,175 @@ msgstr ""
 "/gnu/store/@dots{}-pack.tar.gz\n"
 
 #. type: Plain text
-#: doc/guix.texi:3337
+#: doc/guix.texi:4703
 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 (@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:3342
+#: doc/guix.texi:4708
 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/@dots{}-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:3345
+#: doc/guix.texi:4711
 #, 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:3349
+#: doc/guix.texi:4715
 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:3350
+#: doc/guix.texi:4716
 #, no-wrap
 msgid "relocatable binaries, with @command{guix pack}"
 msgstr "pfad-agnostische Binärdateien, mit @command{guix pack}"
 
 #. type: Plain text
-#: doc/guix.texi:3358
+#: doc/guix.texi:4724
 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{pfad-agnostische Binärdateien} erzeugt, die auch in einem beliebigen anderen Verzeichnis in der Dateisystemhierarchie abgelegt und von dort ausgeführt werden können. 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:3359
+#: doc/guix.texi:4725
 #, no-wrap
 msgid "Docker, build an image with guix pack"
 msgstr "Docker, ein Abbild erstellen mit guix pack"
 
 #. type: Plain text
-#: doc/guix.texi:3362
+#: doc/guix.texi:4728
 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:3365
+#: doc/guix.texi:4731
 #, no-wrap
 msgid "guix pack -f docker guile emacs geiser\n"
 msgstr "guix pack -f docker guile emacs geiser\n"
 
 #. type: Plain text
-#: doc/guix.texi:3372
+#: doc/guix.texi:4738
 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 "Das Ergebnis ist ein Tarball, der dem Befehl @command{docker load} übergeben werden kann. In der @uref{https://docs.docker.com/engine/reference/commandline/load/, Dokumentation von Docker} finden Sie nähere Informationen."
 
 #. type: cindex
-#: doc/guix.texi:3373
+#: doc/guix.texi:4739
 #, no-wrap
 msgid "Singularity, build an image with guix pack"
 msgstr "Singularity, ein Abbild erstellen mit guix pack"
 
 #. type: cindex
-#: doc/guix.texi:3374
+#: doc/guix.texi:4740
 #, no-wrap
 msgid "SquashFS, build an image with guix pack"
 msgstr "SquashFS, ein Abbild erstellen mit guix pack"
 
 #. type: Plain text
-#: doc/guix.texi:3377
+#: doc/guix.texi:4743
 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:3380
+#: doc/guix.texi:4746
 #, no-wrap
 msgid "guix pack -f squashfs guile emacs geiser\n"
 msgstr "guix pack -f squashfs guile emacs geiser\n"
 
 #. type: Plain text
-#: doc/guix.texi:3388
+#: doc/guix.texi:4754
 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}."
 msgstr "Das Ergebnis ist ein SquashFS-Dateisystemabbild, dass entweder als Dateisystem eingebunden oder mit Hilfe der @uref{http://singularity.lbl.gov, 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:3390
+#: doc/guix.texi:4756
 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:3395
+#: doc/guix.texi:4761
 msgid "Produce a pack in the given @var{format}."
 msgstr "Generiert ein Bündel im angegebenen @var{Format}."
 
 #. type: table
-#: doc/guix.texi:3397
+#: doc/guix.texi:4763
 msgid "The available formats are:"
 msgstr "Die verfügbaren Formate sind:"
 
 #. type: item
-#: doc/guix.texi:3399
+#: doc/guix.texi:4765
 #, no-wrap
 msgid "tarball"
 msgstr "tarball"
 
 #. type: table
-#: doc/guix.texi:3402
+#: doc/guix.texi:4768
 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:3403
+#: doc/guix.texi:4769
 #, no-wrap
 msgid "docker"
 msgstr "docker"
 
 #. type: table
-#: doc/guix.texi:3407
+#: doc/guix.texi:4773
 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 "Generiert einen Tarball gemäß der @uref{https://github.com/docker/docker/blob/master/image/spec/v1.2.md, Docker Image Specification}, d.h. der Spezifikation für Docker-Abbilder."
+msgstr "Generiert einen Tarball gemäß der @uref{https://github.com/docker/docker/blob/master/image/spec/v1.2.md, Docker Image Specification}, d.h.@: der Spezifikation für Docker-Abbilder."
 
 #. type: item
-#: doc/guix.texi:3408
+#: doc/guix.texi:4774
 #, no-wrap
 msgid "squashfs"
 msgstr "squashfs"
 
 #. type: table
-#: doc/guix.texi:3412
+#: doc/guix.texi:4778
 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: cindex
+#: doc/guix.texi:4780
+#, no-wrap
+msgid "relocatable binaries"
+msgstr "pfad-agnostische Binärdateien"
+
 #. type: item
-#: doc/guix.texi:3414
+#: doc/guix.texi:4781
 #, no-wrap
 msgid "--relocatable"
 msgstr "--relocatable"
 
 #. type: table
-#: doc/guix.texi:3419
-msgid "Produce @dfn{relocatable binaries}---i.e., binaries that can be placed anywhere in the file system hierarchy and run from there.  For example, if you create a pack containing Bash with:"
-msgstr "Erzeugt @dfn{pfad-agnostische Binärdateien} — also »portable« Binärdateien, die an einer beliebigen Stelle in der Dateisystemhierarchie platziert und von dort ausgeführt werden können. Zum Beispiel können Sie ein Bash enthalltendes Bündel erzeugen mit:"
+#: doc/guix.texi:4785
+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{pfad-agnostische Binärdateien} — also »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:4793
+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."
+
+#. type: table
+#: doc/guix.texi:4795
+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:3422
+#: doc/guix.texi:4798
 #, no-wrap
-msgid "guix pack -R -S /mybin=bin bash\n"
-msgstr "guix pack -R -S /meine-bin=bin bash\n"
+msgid "guix pack -RR -S /mybin=bin bash\n"
+msgstr "guix pack -RR -S /mybin=bin bash\n"
 
 #. type: table
-#: doc/guix.texi:3427
-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:"
+#: doc/guix.texi:4803
+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:3431
+#: doc/guix.texi:4807
 #, no-wrap
 msgid ""
 "tar xf pack.tar.gz\n"
@@ -7437,450 +10002,243 @@ msgstr ""
 "./meine-bin/sh\n"
 
 #. type: table
-#: doc/guix.texi:3439
+#: doc/guix.texi:4815
 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: table
-#: doc/guix.texi:3446
-msgid "There's a gotcha though: this technique relies 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; on these systems, programs from the pack @emph{will fail to run}, unless they are unpacked in the root file system."
-msgstr "Die Sache hat nur einen Haken: Diese Technik funktioniert 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 es noch nicht unterstützt und manche Distributionen von GNU/Linux schalten diese Funktionalität ab; auf diesen Systemen @emph{werden Programme aus dem Bündel nicht funktionieren}, solange sie nicht in das echte Wurzeldateisystem entpackt werden."
+#. type: quotation
+#: doc/guix.texi:4821
+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 pfad-agnostische 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: item
-#: doc/guix.texi:3447 doc/guix.texi:6482 doc/guix.texi:7352 doc/guix.texi:7969
-#: doc/guix.texi:8126 doc/guix.texi:22526
-#, no-wrap
-msgid "--expression=@var{expr}"
-msgstr "--expression=@var{Ausdruck}"
+#. type: quotation
+#: doc/guix.texi:4826
+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 pfad-agnostische 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."
 
-#. type: itemx
-#: doc/guix.texi:3448 doc/guix.texi:6483 doc/guix.texi:7353 doc/guix.texi:7970
-#: doc/guix.texi:8127 doc/guix.texi:22527
-#, no-wrap
-msgid "-e @var{expr}"
-msgstr "-e @var{Ausdruck}"
+#. type: quotation
+#: doc/guix.texi:4832
+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."
 
 #. type: table
-#: doc/guix.texi:3450 doc/guix.texi:7355 doc/guix.texi:7972
+#: doc/guix.texi:4837 doc/guix.texi:8851 doc/guix.texi:9509
 msgid "Consider the package @var{expr} evaluates to."
 msgstr "Als Paket benutzen, wozu der @var{Ausdruck} ausgewertet wird."
 
 #. type: table
-#: doc/guix.texi:3454
+#: doc/guix.texi:4841
 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} (@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}})."
 
 #. type: table
-#: doc/guix.texi:3459
+#: doc/guix.texi:4846
 msgid "Use the packages contained in the manifest object returned by the Scheme code in @var{file}."
 msgstr "Die Pakete benutzen, die im Manifest-Objekt aufgeführt sind, das vom Scheme-Code in der angegebenen @var{Datei} geliefert wird."
 
 #. type: table
-#: doc/guix.texi:3467
+#: doc/guix.texi:4854
 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} (@pxref{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: itemx
-#: doc/guix.texi:3469 doc/guix.texi:6555 doc/guix.texi:7797 doc/guix.texi:7980
-#: doc/guix.texi:8212 doc/guix.texi:8846 doc/guix.texi:22535
-#, no-wrap
-msgid "-s @var{system}"
-msgstr "-s @var{System}"
-
-#. type: table
-#: doc/guix.texi:3472 doc/guix.texi:6558
-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."
+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:3473 doc/guix.texi:6586
+#: doc/guix.texi:4860 doc/guix.texi:8073
 #, no-wrap
 msgid "--target=@var{triplet}"
 msgstr "--target=@var{Tripel}"
 
 #. type: cindex
-#: doc/guix.texi:3474 doc/guix.texi:3904 doc/guix.texi:6587
+#: doc/guix.texi:4861 doc/guix.texi:5207 doc/guix.texi:8074
 #, no-wrap
 msgid "cross-compilation"
 msgstr "Cross-Kompilieren"
 
 #. type: table
-#: doc/guix.texi:3478 doc/guix.texi:6591
+#: doc/guix.texi:4865 doc/guix.texi:8078
 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 (@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})."
 
 #. type: item
-#: doc/guix.texi:3479
+#: doc/guix.texi:4866
 #, no-wrap
 msgid "--compression=@var{tool}"
 msgstr "--compression=@var{Werkzeug}"
 
 #. type: itemx
-#: doc/guix.texi:3480
+#: doc/guix.texi:4867
 #, no-wrap
 msgid "-C @var{tool}"
 msgstr "-C @var{Werkzeug}"
 
 #. type: table
-#: doc/guix.texi:3483
+#: doc/guix.texi:4870
 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."
 
 #. type: item
-#: doc/guix.texi:3484
+#: doc/guix.texi:4871
 #, no-wrap
 msgid "--symlink=@var{spec}"
 msgstr "--symlink=@var{Spezifikation}"
 
 #. type: itemx
-#: doc/guix.texi:3485
+#: doc/guix.texi:4872
 #, no-wrap
 msgid "-S @var{spec}"
 msgstr "-S @var{Spezifikation}"
 
 #. type: table
-#: doc/guix.texi:3488
+#: doc/guix.texi:4875
 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:3492
+#: doc/guix.texi:4879
 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:3495
+#: doc/guix.texi:4882
 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:3496
+#: doc/guix.texi:4883
+#, no-wrap
+msgid "--save-provenance"
+msgstr "--save-provenance"
+
+#. type: table
+#: doc/guix.texi:4887
+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:4893
+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/@dots{}-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:4899
+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: item
+#: doc/guix.texi:4900
 #, no-wrap
 msgid "--localstatedir"
 msgstr "--localstatedir"
 
 #. type: itemx
-#: doc/guix.texi:3497
+#: doc/guix.texi:4901
 #, no-wrap
 msgid "--profile-name=@var{name}"
 msgstr "--profile-name=@var{Name}"
 
 #. type: table
-#: doc/guix.texi:3502
+#: doc/guix.texi:4906
 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:3508
+#: doc/guix.texi:4912
 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 (@pxref{The Store}) sowie die Müllsammlerwurzeln (@pxref{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."
+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:3511
+#: doc/guix.texi:4915
 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 (@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: table
-#: doc/guix.texi:3515
+#: doc/guix.texi:4919
 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:3520
+#: doc/guix.texi:4924
 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 (@pxref{Common Build Options}) und alle Paketumwandlungsoptionen (@pxref{Package Transformation Options})."
-
-#. type: section
-#: doc/guix.texi:3523
-#, no-wrap
-msgid "Invoking @command{guix archive}"
-msgstr "@command{guix archive} aufrufen"
-
-#. type: command{#1}
-#: doc/guix.texi:3525
-#, no-wrap
-msgid "guix archive"
-msgstr "guix archive"
-
-#. type: cindex
-#: doc/guix.texi:3526
-#, no-wrap
-msgid "archive"
-msgstr "Archivdateien"
+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: Plain text
-#: doc/guix.texi:3532
-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:3536
-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 @pxref{Invoking guix pack}."
-
-#. type: cindex
-#: doc/guix.texi:3538
-#, no-wrap
-msgid "exporting store items"
-msgstr "Store-Objekte exportieren"
+#: doc/guix.texi:4936
+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:3540
-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:3543
-#, no-wrap
-msgid "guix archive --export @var{options} @var{specifications}...\n"
-msgstr "guix archive --export @var{Optionen} @var{Spezifikationen}...\n"
+#: doc/guix.texi:4942
+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 "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:3550
-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} (@pxref{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:3553
-#, 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"
+#: doc/guix.texi:4951
+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:3558
-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 (@pxref{Common Build Options})."
+#: doc/guix.texi:4954
+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: Plain text
-#: doc/guix.texi:3561
-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:3564
-#, 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"
+#: doc/guix.texi:4980
+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 @dots{})} sichtbar gemacht@footnote{Beachten Sie, dass Pakete unter dem Modulnamensraum @code{(gnu packages @dots{})} 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 (@pxref{Defining Packages})."
 
 #. type: Plain text
-#: doc/guix.texi:3569
-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:3573
-#, no-wrap
-msgid ""
-"guix archive --export -r $(readlink -f ~/.guix-profile) | \\\n"
-"  ssh the-machine guix-archive --import\n"
+#: doc/guix.texi:4987
+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 package -i 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 ""
-"guix archive --export -r $(readlink -f ~/.guix-profile) | \\\n"
-"  ssh die-maschine guix-archive --import\n"
-
-#. type: Plain text
-#: doc/guix.texi:3583
-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 (@pxref{Invoking guix copy})."
-
-#. type: cindex
-#: doc/guix.texi:3584
-#, no-wrap
-msgid "nar, archive format"
-msgstr "Nar, Archivformat"
 
 #. type: cindex
-#: doc/guix.texi:3585
+#: doc/guix.texi:4989
 #, no-wrap
-msgid "normalized archive (nar)"
-msgstr "Normalisiertes Archiv (Nar)"
-
-#. type: Plain text
-#: doc/guix.texi:3595
-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."
-
-#. type: Plain text
-#: doc/guix.texi:3601
-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.  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."
+msgid "package module search path"
+msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:3603
-msgid "The main options are:"
-msgstr "Die wichtigsten Befehlszeilenoptionen sind:"
-
-#. type: item
-#: doc/guix.texi:3605
-#, no-wrap
-msgid "--export"
-msgstr "--export"
-
-#. type: table
-#: doc/guix.texi:3608
-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:3611
-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."
-
-#. type: itemx
-#: doc/guix.texi:3612 doc/guix.texi:6858 doc/guix.texi:6956 doc/guix.texi:6983
-#: doc/guix.texi:7182 doc/guix.texi:7223 doc/guix.texi:7270
-#, no-wrap
-msgid "-r"
-msgstr "-r"
-
-#. type: item
-#: doc/guix.texi:3613 doc/guix.texi:6857 doc/guix.texi:6955 doc/guix.texi:6982
-#: doc/guix.texi:7181 doc/guix.texi:7222 doc/guix.texi:7269
-#, no-wrap
-msgid "--recursive"
-msgstr "--recursive"
-
-#. type: table
-#: doc/guix.texi:3618
-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."
-
-#. type: item
-#: doc/guix.texi:3619
-#, no-wrap
-msgid "--import"
-msgstr "--import"
-
-#. type: table
-#: doc/guix.texi:3624
-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)."
-
-#. type: item
-#: doc/guix.texi:3625
-#, no-wrap
-msgid "--missing"
-msgstr "--missing"
-
-#. type: table
-#: doc/guix.texi:3629
-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:3630
-#, no-wrap
-msgid "--generate-key[=@var{parameters}]"
-msgstr "--generate-key[=@var{Parameter}]"
-
-#. type: cindex
-#: doc/guix.texi:3631
-#, no-wrap
-msgid "signing, archives"
-msgstr "Signieren, von Archiven"
-
-#. type: table
-#: doc/guix.texi:3636
-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."
-
-#. type: table
-#: doc/guix.texi:3646
-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 (@pxref{General public-key related Functions, @code{gcry_pk_genkey},, gcrypt, The Libgcrypt Reference Manual})."
-
-#. type: item
-#: doc/guix.texi:3647
-#, no-wrap
-msgid "--authorize"
-msgstr "--authorize"
-
-#. type: cindex
-#: doc/guix.texi:3648
-#, no-wrap
-msgid "authorizing, archives"
-msgstr "Autorisieren, von Archiven"
-
-#. type: table
-#: doc/guix.texi:3652
-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:3659
-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)}."
-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{http://people.csail.mit.edu/rivest/Sexp.txt, »advanced«-formatierte S-Ausdrücke} und ist als eine Access Control List für die @url{http://theworld.com/~cme/spki.txt, Simple Public-Key Infrastructure (SPKI)} aufgebaut."
-
-#. type: item
-#: doc/guix.texi:3660
-#, no-wrap
-msgid "--extract=@var{directory}"
-msgstr "--extract=@var{Verzeichnis}"
-
-#. type: itemx
-#: doc/guix.texi:3661
-#, no-wrap
-msgid "-x @var{directory}"
-msgstr "-x @var{Verzeichnis}"
-
-#. type: table
-#: doc/guix.texi:3665
-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 (@pxref{Substitutes}) und ins @var{Verzeichnis} entpacken. Dies ist eine systemnahe Operation, die man nur selten direkt benutzt; siehe unten."
-
-#. type: table
-#: doc/guix.texi:3668
-msgid "For example, the following command extracts the substitute for Emacs served by @code{hydra.gnu.org} to @file{/tmp/emacs}:"
-msgstr "Zum Beispiel entpackt folgender Befehl das Substitut für Emacs, wie es von @code{hydra.gnu.org} geliefert wird, nach @file{/tmp/emacs}:"
-
-#. type: example
-#: doc/guix.texi:3673
-#, no-wrap
-msgid ""
-"$ wget -O - \\\n"
-"  https://hydra.gnu.org/nar/@dots{}-emacs-24.5 \\\n"
-"  | bunzip2 | guix archive -x /tmp/emacs\n"
+#: doc/guix.texi:4998
+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 ""
-"$ wget -O - \\\n"
-"  https://hydra.gnu.org/nar/@dots{}-emacs-24.5 \\\n"
-"  | bunzip2 | guix archive -x /tmp/emacs\n"
 
-#. type: table
-#: doc/guix.texi:3680
-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: enumerate
+#: doc/guix.texi:5005
+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 ""
 
-#. type: table
-#: doc/guix.texi:3683
-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."
+#. type: enumerate
+#: doc/guix.texi:5011
+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 ""
 
 #. type: Plain text
-#: doc/guix.texi:3696
-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."
+#: doc/guix.texi:5014
+msgid "@code{GUIX_PACKAGE_PATH} works similarly to other search path variables:"
+msgstr ""
 
-#. type: Plain text
-#: doc/guix.texi:3702
-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 "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: defvr
+#: doc/guix.texi:5015
+#, no-wrap
+msgid "{Environment Variable} GUIX_PACKAGE_PATH"
+msgstr ""
 
-#. type: Plain text
-#: doc/guix.texi:3711
-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: defvr
+#: doc/guix.texi:5019
+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 ""
 
 #. type: Plain text
-#: doc/guix.texi:3714
-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."
+#: doc/guix.texi:5027
+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 ""
 
 #. type: Plain text
-#: doc/guix.texi:3732
+#: doc/guix.texi:5035
 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: example
-#: doc/guix.texi:3740
+#: doc/guix.texi:5043
 #, no-wrap
 msgid ""
 "(define-module (gnu packages hello)\n"
@@ -7900,7 +10258,7 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix.texi:3759
+#: doc/guix.texi:5062
 #, no-wrap
 msgid ""
 "(define-public hello\n"
@@ -7942,277 +10300,277 @@ msgstr ""
 "    (license gpl3+)))\n"
 
 #. type: Plain text
-#: doc/guix.texi:3769
+#: doc/guix.texi:5072
 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 (@pxref{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 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\"}."
 
 #. type: Plain text
-#: doc/guix.texi:3773
+#: doc/guix.texi:5076
 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 (@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:3779
+#: doc/guix.texi:5082
 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 @dots{})} werden automatisch von den Befehlszeilenwerkzeugen gefunden (@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 @dots{})} werden automatisch von den Befehlszeilenwerkzeugen gefunden (siehe @ref{Package Modules})."
 
 #. type: Plain text
-#: doc/guix.texi:3781
+#: doc/guix.texi:5084
 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:3788
+#: doc/guix.texi:5091
 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 @pxref{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."
+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:3791
+#: doc/guix.texi:5094
 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:3798
+#: doc/guix.texi:5101
 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 @dots{})} geht der base32-Darstellung des Hash-Wertes voraus. Sie finden die base32-Darstellung mit Hilfe der Befehle @code{guix download} (@pxref{Invoking guix download}) und @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 @dots{})} 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:3799
+#: doc/guix.texi:5102
 #, no-wrap
 msgid "patches"
 msgstr "Patches"
 
 #. type: itemize
-#: doc/guix.texi:3803
+#: doc/guix.texi:5106
 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:3805
+#: doc/guix.texi:5108
 #, no-wrap
 msgid "GNU Build System"
 msgstr "GNU-Erstellungssystem"
 
 #. type: itemize
-#: doc/guix.texi:3811
+#: doc/guix.texi:5114
 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 (@pxref{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."
+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."
 
 #. type: itemize
-#: doc/guix.texi:3817
+#: doc/guix.texi:5120
 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 (@pxref{Build Systems}). In diesem Fall interpretiert @var{gnu-build-system} diese als Auftrag, @file{configure} mit der Befehlszeilenoption @code{--enable-silent-rules} auszuführen."
+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."
 
 #. type: findex
-#: doc/guix.texi:3818 doc/guix.texi:3821
+#: doc/guix.texi:5121 doc/guix.texi:5124
 #, no-wrap
 msgid "quote"
 msgstr "quote"
 
 #. type: cindex
-#: doc/guix.texi:3819
+#: doc/guix.texi:5122
 #, no-wrap
 msgid "quoting"
 msgstr "Maskierung"
 
 #. type: findex
-#: doc/guix.texi:3820
+#: doc/guix.texi:5123
 #, no-wrap
 msgid "'"
 msgstr "'"
 
 #. type: itemize
-#: doc/guix.texi:3829
+#: doc/guix.texi:5132
 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}. @xref{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} (@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})."
 
 #. type: itemize
-#: doc/guix.texi:3835
+#: doc/guix.texi:5138
 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} (@pxref{Keywords,,, guile, GNU Guile Reference Manual}) und @code{#:configure-flags} ist ein Schlüsselwort, um eine Befehlszeilenoption an das Erstellungssystem mitzugeben (@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})."
 
 #. type: itemize
-#: doc/guix.texi:3841
+#: doc/guix.texi:5144
 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."
+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."
 
 #. type: cindex
-#: doc/guix.texi:3842
+#: doc/guix.texi:5145
 #, no-wrap
 msgid "backquote (quasiquote)"
 msgstr "Backquote (Quasimaskierung)"
 
 #. type: findex
-#: doc/guix.texi:3843
+#: doc/guix.texi:5146
 #, no-wrap
 msgid "`"
 msgstr "`"
 
 #. type: findex
-#: doc/guix.texi:3844
+#: doc/guix.texi:5147
 #, no-wrap
 msgid "quasiquote"
 msgstr "quasiquote"
 
 #. type: cindex
-#: doc/guix.texi:3845
+#: doc/guix.texi:5148
 #, no-wrap
 msgid "comma (unquote)"
 msgstr "Komma (Demaskierung)"
 
 #. type: findex
-#: doc/guix.texi:3846
+#: doc/guix.texi:5149
 #, no-wrap
 msgid ","
 msgstr ","
 
 #. type: findex
-#: doc/guix.texi:3847
+#: doc/guix.texi:5150
 #, no-wrap
 msgid "unquote"
 msgstr "unquote"
 
 #. type: findex
-#: doc/guix.texi:3848
+#: doc/guix.texi:5151
 #, no-wrap
 msgid ",@@"
 msgstr ",@@"
 
 #. type: findex
-#: doc/guix.texi:3849
+#: doc/guix.texi:5152
 #, no-wrap
 msgid "unquote-splicing"
 msgstr "unquote-splicing"
 
 #. type: itemize
-#: doc/guix.texi:3855
+#: doc/guix.texi:5158
 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 (@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})."
 
 #. type: itemize
-#: doc/guix.texi:3859
+#: doc/guix.texi:5162
 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 (@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})."
 
 #. type: itemize
-#: doc/guix.texi:3863
+#: doc/guix.texi:5166
 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:3866
+#: doc/guix.texi:5169
 msgid "@xref{package Reference}, for a full description of possible fields."
-msgstr "Siehe @xref{package Reference} für eine umfassende Beschreibung aller erlaubten Felder."
+msgstr "Siehe @ref{package Reference} für eine umfassende Beschreibung aller erlaubten Felder."
 
 #. type: Plain text
-#: doc/guix.texi:3877
+#: doc/guix.texi:5180
 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 (@pxref{Invoking guix build}) und dabei jegliche Erstellungsfehler, auf die Sie stoßen, beseitigen (@pxref{Debugging Build Failures}). Sie können den Befehl @command{guix edit} benutzen, um leicht zur Paketdefinition zurückzuspringen (@pxref{Invoking guix edit}). Unter @xref{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."
+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:3877
+#: doc/guix.texi:5180
 #, no-wrap
 msgid "GUIX_PACKAGE_PATH"
 msgstr "GUIX_PACKAGE_PATH"
 
 #. type: Plain text
-#: doc/guix.texi:3881
+#: doc/guix.texi:5184
 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 @pxref{Channels} Informationen, wie Sie die Distribution um Ihre eigenen Pakete in einem »Kanal« erweitern."
+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:3885
+#: doc/guix.texi:5188
 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 (@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:3891
+#: doc/guix.texi:5194
 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 (@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})."
 
 #. type: deffn
-#: doc/guix.texi:3892
+#: doc/guix.texi:5195
 #, 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:3895
+#: doc/guix.texi:5198
 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 (@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:3901
+#: doc/guix.texi:5204
 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 (@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:3907
+#: doc/guix.texi:5210
 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:3908
+#: doc/guix.texi:5211
 #, no-wrap
 msgid "{Scheme Procedure} package-cross-derivation @var{store} @"
 msgstr "{Scheme-Prozedur} package-cross-derivation @var{Store} @"
 
 #. type: deffn
-#: doc/guix.texi:3912
+#: doc/guix.texi:5215
 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:3917
+#: doc/guix.texi:5220
 msgid "@var{target} must be a valid GNU triplet denoting the target hardware and operating system, such as @code{\"mips64el-linux-gnu\"} (@pxref{Configuration Names, GNU configuration triplets,, configure, GNU Configure and Build System})."
-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\"} (@pxref{Configuration Names, GNU configuration triplets,, configure, GNU Configure and Build System})."
+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{Configuration Names, GNU configuration triplets,, configure, GNU Configure and Build System})."
 
 #. type: cindex
-#: doc/guix.texi:3919
+#: doc/guix.texi:5222
 #, no-wrap
 msgid "package transformations"
 msgstr "Paketumwandlungen"
 
 #. type: cindex
-#: doc/guix.texi:3920
+#: doc/guix.texi:5223
 #, no-wrap
 msgid "input rewriting"
 msgstr "Eingaben umschreiben"
 
 #. type: cindex
-#: doc/guix.texi:3921
+#: doc/guix.texi:5224
 #, no-wrap
 msgid "dependency tree rewriting"
 msgstr "Abhängigkeitsbaum umschreiben"
 
 #. type: Plain text
-#: doc/guix.texi:3925
+#: doc/guix.texi:5228
 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:3926
+#: doc/guix.texi:5229
 #, no-wrap
 msgid "{Scheme Procedure} package-input-rewriting @var{replacements} @"
 msgstr "{Scheme-Prozedur} package-input-rewriting @var{Ersetzungen} @"
 
 #. type: deffn
-#: doc/guix.texi:3933
+#: doc/guix.texi:5236
 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:3936
+#: doc/guix.texi:5239
 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:3940
+#: doc/guix.texi:5243
 msgid "Consider this example:"
 msgstr "Betrachten Sie dieses Beispiel:"
 
 #. type: example
-#: doc/guix.texi:3946
+#: doc/guix.texi:5249
 #, no-wrap
 msgid ""
 "(define libressl-instead-of-openssl\n"
@@ -8228,7 +10586,7 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix.texi:3949
+#: doc/guix.texi:5252
 #, no-wrap
 msgid ""
 "(define git-with-libressl\n"
@@ -8238,129 +10596,167 @@ msgstr ""
 "  (libressl-statt-openssl git))\n"
 
 #. type: Plain text
-#: doc/guix.texi:3957
+#: doc/guix.texi:5260
 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 (@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:3961
+#: doc/guix.texi:5263
+msgid "The following variant of @code{package-input-rewriting} can match packages to be replaced by name rather than by identity."
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:5264
+#, 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:5270
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:5273
+msgid "The example above could be rewritten this way:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:5278
+#, 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:5283
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:5287
 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:3962
+#: doc/guix.texi:5288
 #, 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:3966
+#: doc/guix.texi:5292
 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."
 
 #. type: subsection
-#: doc/guix.texi:3975
+#: doc/guix.texi:5301
 #, no-wrap
 msgid "@code{package} Reference"
 msgstr "@code{package}-Referenz"
 
 #. type: Plain text
-#: doc/guix.texi:3979
+#: doc/guix.texi:5305
 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 (@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:3980
+#: doc/guix.texi:5306
 #, no-wrap
 msgid "{Data Type} package"
 msgstr "{Datentyp} package"
 
 #. type: deftp
-#: doc/guix.texi:3982
+#: doc/guix.texi:5308
 msgid "This is the data type representing a package recipe."
 msgstr "Dieser Datentyp steht für ein Paketrezept."
 
 #. type: table
-#: doc/guix.texi:3986
+#: doc/guix.texi:5312
 msgid "The name of the package, as a string."
 msgstr "Der Name des Pakets als Zeichenkette."
 
 #. type: code{#1}
-#: doc/guix.texi:3987
+#: doc/guix.texi:5313
 #, no-wrap
 msgid "version"
 msgstr "version"
 
 #. type: table
-#: doc/guix.texi:3989
+#: doc/guix.texi:5315
 msgid "The version of the package, as a string."
 msgstr "Die Version des Pakets als Zeichenkette."
 
 #. type: code{#1}
-#: doc/guix.texi:3990 doc/guix.texi:7589 doc/guix.texi:10265
-#: doc/guix.texi:10553
+#: doc/guix.texi:5316 doc/guix.texi:9103 doc/guix.texi:10847
+#: doc/guix.texi:11285
 #, no-wrap
 msgid "source"
 msgstr "source"
 
 #. type: table
-#: doc/guix.texi:3997
+#: doc/guix.texi:5323
 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 (@pxref{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 (@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:3998
+#: doc/guix.texi:5324
 #, no-wrap
 msgid "build-system"
 msgstr "build-system"
 
 #. type: table
-#: doc/guix.texi:4001
+#: doc/guix.texi:5327
 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 (@pxref{Build Systems})."
+msgstr "Das Erstellungssystem, mit dem das Paket erstellt werden soll (siehe @ref{Build Systems})."
 
 #. type: item
-#: doc/guix.texi:4002 doc/guix.texi:12176
+#: doc/guix.texi:5328 doc/guix.texi:12883
 #, no-wrap
 msgid "@code{arguments} (default: @code{'()})"
 msgstr "@code{arguments} (Vorgabe: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:4005
+#: doc/guix.texi:5331
 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:4006
+#: doc/guix.texi:5332
 #, no-wrap
 msgid "@code{inputs} (default: @code{'()})"
 msgstr "@code{inputs} (Vorgabe: @code{'()})"
 
 #. type: itemx
-#: doc/guix.texi:4007
+#: doc/guix.texi:5333
 #, no-wrap
 msgid "@code{native-inputs} (default: @code{'()})"
 msgstr "@code{native-inputs} (Vorgabe: @code{'()})"
 
 #. type: itemx
-#: doc/guix.texi:4008
+#: doc/guix.texi:5334
 #, no-wrap
 msgid "@code{propagated-inputs} (default: @code{'()})"
 msgstr "@code{propagated-inputs} (Vorgabe: @code{'()})"
 
 #. type: cindex
-#: doc/guix.texi:4009
+#: doc/guix.texi:5335
 #, no-wrap
 msgid "inputs, of packages"
 msgstr "Eingaben, von Paketen"
 
 #. type: table
-#: doc/guix.texi:4017
+#: doc/guix.texi:5343
 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 @pxref{Packages with Multiple Outputs} für mehr Informationen zu Paketausgaben). Im folgenden Beispiel etwa werden drei Eingaben festgelegt:"
+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: example
-#: doc/guix.texi:4022
+#: doc/guix.texi:5348
 #, no-wrap
 msgid ""
 "`((\"libffi\" ,libffi)\n"
@@ -8372,253 +10768,287 @@ msgstr ""
 "  (\"glib:bin\" ,glib \"bin\"))  ;Ausgabe \"bin\" von Glib\n"
 
 #. type: cindex
-#: doc/guix.texi:4024
+#: doc/guix.texi:5350
 #, no-wrap
 msgid "cross compilation, package dependencies"
 msgstr "Cross-Kompilieren, Paketabhängigkeiten"
 
 #. type: table
-#: doc/guix.texi:4030
+#: doc/guix.texi:5356
 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:4035
+#: doc/guix.texi:5361
 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 (@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:4042
+#: doc/guix.texi:5368
 msgid "package-propagated-inputs"
 msgstr "package-propagated-inputs"
 
 #. type: table
-#: doc/guix.texi:4042
+#: doc/guix.texi:5368
 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 @pxref{package-cmd-propagated-inputs, @command{guix package}}, für Informationen darüber, wie @command{guix package} mit propagierten Eingaben umgeht)."
+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)."
 
 #. type: table
-#: doc/guix.texi:4046
+#: doc/guix.texi:5372
 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."
 
 #. type: table
-#: doc/guix.texi:4053
+#: doc/guix.texi:5379
 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."
 
 #. type: item
-#: doc/guix.texi:4054
-#, no-wrap
-msgid "@code{self-native-input?} (default: @code{#f})"
-msgstr "@code{self-native-input?} (Vorgabe: @code{#f})"
-
-#. type: table
-#: doc/guix.texi:4057
-msgid "This is a Boolean field telling whether the package should use itself as a native input when cross-compiling."
-msgstr "Dieses boolesche Feld gibt an, ob das Paket sich selbst als eine native Eingabe beim Cross-Kompilieren braucht."
-
-#. type: item
-#: doc/guix.texi:4058
+#: doc/guix.texi:5380
 #, no-wrap
 msgid "@code{outputs} (default: @code{'(\"out\")})"
 msgstr "@code{outputs} (Vorgabe: @code{'(\"out\")})"
 
 #. type: table
-#: doc/guix.texi:4061
+#: doc/guix.texi:5383
 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 @xref{Packages with Multiple Outputs} beschreibt übliche Nutzungen zusätzlicher Ausgaben."
+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:4062
+#: doc/guix.texi:5384
 #, no-wrap
 msgid "@code{native-search-paths} (default: @code{'()})"
 msgstr "@code{native-search-paths} (Vorgabe: @code{'()})"
 
 #. type: itemx
-#: doc/guix.texi:4063
+#: doc/guix.texi:5385
 #, no-wrap
 msgid "@code{search-paths} (default: @code{'()})"
 msgstr "@code{search-paths} (Vorgabe: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:4066
+#: doc/guix.texi:5388
 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:4067
+#: doc/guix.texi:5389
 #, no-wrap
 msgid "@code{replacement} (default: @code{#f})"
 msgstr "@code{replacement} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:4071
+#: doc/guix.texi:5393
 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 @xref{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 @ref{Security Updates, grafts} wird dies erklärt."
 
 #. type: item
-#: doc/guix.texi:4072 doc/guix.texi:7581
+#: doc/guix.texi:5394 doc/guix.texi:9095
 #, no-wrap
 msgid "synopsis"
 msgstr "synopsis"
 
 #. type: table
-#: doc/guix.texi:4074
+#: doc/guix.texi:5396
 msgid "A one-line description of the package."
 msgstr "Eine einzeilige Beschreibung des Pakets."
 
 #. type: item
-#: doc/guix.texi:4075 doc/guix.texi:7582 doc/guix.texi:22969
+#: doc/guix.texi:5397 doc/guix.texi:9096 doc/guix.texi:24846
 #, no-wrap
 msgid "description"
 msgstr "description"
 
 #. type: table
-#: doc/guix.texi:4077
+#: doc/guix.texi:5399
 msgid "A more elaborate description of the package."
 msgstr "Eine ausführlichere Beschreibung des Pakets."
 
 #. type: code{#1}
-#: doc/guix.texi:4078
+#: doc/guix.texi:5400
 #, no-wrap
 msgid "license"
 msgstr "license"
 
 #. type: cindex
-#: doc/guix.texi:4079
+#: doc/guix.texi:5401
 #, no-wrap
 msgid "license, of packages"
 msgstr "Lizenz, von Paketen"
 
 #. type: table
-#: doc/guix.texi:4082
+#: doc/guix.texi:5404
 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:4083 doc/guix.texi:7590
+#: doc/guix.texi:5405 doc/guix.texi:9104
 #, no-wrap
 msgid "home-page"
 msgstr "home-page"
 
 #. type: table
-#: doc/guix.texi:4085
+#: doc/guix.texi:5407
 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:4086
+#: doc/guix.texi:5408
 #, no-wrap
 msgid "@code{supported-systems} (default: @var{%supported-systems})"
 msgstr "@code{supported-systems} (Vorgabe: @var{%supported-systems})"
 
 #. type: table
-#: doc/guix.texi:4089
+#: doc/guix.texi:5411
 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:4090
+#: doc/guix.texi:5412
 #, no-wrap
 msgid "@code{maintainers} (default: @code{'()})"
 msgstr "@code{maintainers} (Vorgabe: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:4092
+#: doc/guix.texi:5414
 msgid "The list of maintainers of the package, as @code{maintainer} objects."
 msgstr "Die Liste der Betreuer (Maintainer) des Pakets als @code{maintainer}-Objekte."
 
 #. type: item
-#: doc/guix.texi:4093
+#: doc/guix.texi:5415
 #, 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:4097
+#: doc/guix.texi:5419
 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:5422
+#, fuzzy, no-wrap
+#| msgid "{Scheme Syntax} #~@var{exp}"
+msgid "{Scheme Syntax} this-package"
+msgstr "{Scheme-Syntax} #~@var{Ausdruck}"
+
+#. type: deffn
+#: doc/guix.texi:5425
+msgid "When used in the @emph{lexical scope} of a package field definition, this identifier resolves to the package being defined."
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:5428
+#, fuzzy
+#| msgid "This is a Boolean field telling whether the package should use itself as a native input when cross-compiling."
+msgid "The example below shows how to add a package as a native input of itself when cross-compiling:"
+msgstr "Dieses boolesche Feld gibt an, ob das Paket sich selbst als eine native Eingabe beim Cross-Kompilieren braucht."
+
+#. type: example
+#: doc/guix.texi:5433
+#, no-wrap
+msgid ""
+"(package\n"
+"  (name \"guile\")\n"
+"  ;; ...\n"
+"\n"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:5439
+#, no-wrap
+msgid ""
+"  ;; 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"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:5442
+msgid "It is an error to refer to @code{this-package} outside a package definition."
+msgstr ""
+
 #. type: subsection
-#: doc/guix.texi:4102
+#: doc/guix.texi:5445
 #, no-wrap
 msgid "@code{origin} Reference"
 msgstr "@code{origin}-Referenz"
 
 #. type: Plain text
-#: doc/guix.texi:4106
+#: doc/guix.texi:5449
 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 (@pxref{Defining Packages})."
+msgstr "Dieser Abschnitt fasst alle Optionen zusammen, die in @code{origin}-Deklarationen zur Verfügung stehen (siehe @ref{Defining Packages})."
 
 #. type: deftp
-#: doc/guix.texi:4107
+#: doc/guix.texi:5450
 #, no-wrap
 msgid "{Data Type} origin"
 msgstr "{Datentyp} origin"
 
 #. type: deftp
-#: doc/guix.texi:4109
+#: doc/guix.texi:5452
 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:4111 doc/guix.texi:17137
+#: doc/guix.texi:5454 doc/guix.texi:18891
 #, no-wrap
 msgid "uri"
 msgstr "uri"
 
 #. type: table
-#: doc/guix.texi:4116
+#: doc/guix.texi:5459
 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: code{#1}
-#: doc/guix.texi:4117
+#: doc/guix.texi:5460
 #, no-wrap
 msgid "method"
 msgstr "method"
 
 #. type: table
-#: doc/guix.texi:4119
+#: doc/guix.texi:5462
 msgid "A procedure that handles the URI."
 msgstr "Eine Prozedur, die die URI verwertet."
 
 #. type: table
-#: doc/guix.texi:4121
+#: doc/guix.texi:5464
 msgid "Examples include:"
-msgstr "Beispiele sind unter Anderem:"
+msgstr "Beispiele sind unter anderem:"
 
 #. type: item
-#: doc/guix.texi:4123
+#: doc/guix.texi:5466
 #, no-wrap
 msgid "@var{url-fetch} from @code{(guix download)}"
 msgstr "@var{url-fetch} aus @code{(guix download)}"
 
 #. type: table
-#: doc/guix.texi:4126
+#: doc/guix.texi:5469
 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:4127 doc/guix.texi:6875
+#: doc/guix.texi:5470 doc/guix.texi:8362
 #, no-wrap
 msgid "git-fetch"
 msgstr "git-fetch"
 
 #. type: item
-#: doc/guix.texi:4128
+#: doc/guix.texi:5471
 #, no-wrap
 msgid "@var{git-fetch} from @code{(guix git-download)}"
 msgstr "@var{git-fetch} aus @code{(guix git-download)}"
 
 #. type: table
-#: doc/guix.texi:4132
+#: doc/guix.texi:5475
 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: example
-#: doc/guix.texi:4137
+#: doc/guix.texi:5480
 #, no-wrap
 msgid ""
 "(git-reference\n"
@@ -8630,1297 +11060,1418 @@ msgstr ""
 "  (commit \"v4.1.5.1\"))\n"
 
 #. type: code{#1}
-#: doc/guix.texi:4140
+#: doc/guix.texi:5483
 #, no-wrap
 msgid "sha256"
 msgstr "sha256"
 
 #. type: table
-#: doc/guix.texi:4144
+#: doc/guix.texi:5487
 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."
 
 #. type: table
-#: doc/guix.texi:4148
+#: doc/guix.texi:5491
 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} (@pxref{Invoking guix download}) oder @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:4149
+#: doc/guix.texi:5492
 #, no-wrap
 msgid "@code{file-name} (default: @code{#f})"
 msgstr "@code{file-name} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:4155
+#: doc/guix.texi:5498
 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 sollte. 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:4156
+#: doc/guix.texi:5499
 #, no-wrap
 msgid "@code{patches} (default: @code{'()})"
 msgstr "@code{patches} (Vorgabe: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:4159
+#: doc/guix.texi:5502
 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 (@pxref{G-Expressions, file-like objects}) mit Patches, welche auf den Quellcode anzuwenden sind."
+msgstr "Eine Liste von Dateinamen, Ursprüngen oder dateiähnlichen Objekten (siehe @ref{G-Expressions, file-like objects}) mit Patches, welche auf den Quellcode anzuwenden sind."
 
 #. type: table
-#: doc/guix.texi:4163
+#: doc/guix.texi:5506
 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:4164
+#: doc/guix.texi:5507
 #, no-wrap
 msgid "@code{snippet} (default: @code{#f})"
 msgstr "@code{snippet} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:4168
+#: doc/guix.texi:5511
 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 (@pxref{G-Expressions}) oder S-Ausdruck. Hiermit kann der Quellcode bequem modifiziert werden, manchmal ist dies bequemer als mit einem 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:4169
+#: doc/guix.texi:5512
 #, no-wrap
 msgid "@code{patch-flags} (default: @code{'(\"-p1\")})"
 msgstr "@code{patch-flags} (Vorgabe: @code{'(\"-p1\")})"
 
 #. type: table
-#: doc/guix.texi:4172
+#: doc/guix.texi:5515
 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:4173
+#: doc/guix.texi:5516
 #, no-wrap
 msgid "@code{patch-inputs} (default: @code{#f})"
 msgstr "@code{patch-inputs} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:4177
+#: doc/guix.texi:5520
 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:4178
+#: doc/guix.texi:5521
 #, no-wrap
 msgid "@code{modules} (default: @code{'()})"
 msgstr "@code{modules} (Vorgabe: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:4181
+#: doc/guix.texi:5524
 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 werden sollten."
 
 #. type: item
-#: doc/guix.texi:4182
+#: doc/guix.texi:5525
 #, no-wrap
 msgid "@code{patch-guile} (default: @code{#f})"
 msgstr "@code{patch-guile} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:4185
+#: doc/guix.texi:5528
 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 sollte. Bei @code{#f} wird ein vernünftiger Vorgabewert angenommen."
 
 #. type: cindex
-#: doc/guix.texi:4192
+#: doc/guix.texi:5535
 #, no-wrap
 msgid "build system"
 msgstr "Erstellungssystem"
 
 #. type: Plain text
-#: doc/guix.texi:4197
+#: doc/guix.texi:5540
 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 (@pxref{Defining Packages}). Das @code{build-system}-Feld steht für die Erstellungsprozedur des Pakets sowie für weitere implizite Eingaben für die Erstellungsprozedur."
+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:4201
+#: doc/guix.texi:5544
 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:4202
+#: doc/guix.texi:5545
 #, no-wrap
 msgid "bag (low-level package representation)"
 msgstr "Bag (systemnahe Paketrepräsentation)"
 
 #. type: Plain text
-#: doc/guix.texi:4209
+#: doc/guix.texi:5552
 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 (@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})."
 
 #. type: Plain text
-#: doc/guix.texi:4217
+#: doc/guix.texi:5560
 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 (@pxref{Defining Packages}). Sie sind in der Regel Schlüsselwort-Argumente (@pxref{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 (@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})."
 
 #. type: Plain text
-#: doc/guix.texi:4221
+#: doc/guix.texi:5564
 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 "Das häufigste Erstellungssystem ist @var{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:4222
+#: doc/guix.texi:5565
 #, no-wrap
 msgid "{Scheme Variable} gnu-build-system"
 msgstr "{Scheme-Variable} gnu-build-system"
 
 #. type: defvr
-#: doc/guix.texi:4226
+#: doc/guix.texi:5569
 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} steht für das GNU-Erstellungssystem und Varianten desselben (@pxref{Configuration, configuration and makefile conventions,, standards, GNU Coding Standards})."
+msgstr "@var{gnu-build-system} steht für das GNU-Erstellungssystem und Varianten desselben (siehe @ref{Configuration, configuration and makefile conventions,, standards, GNU Coding Standards})."
 
 #. type: cindex
-#: doc/guix.texi:4227
+#: doc/guix.texi:5570 doc/guix.texi:6232
 #, no-wrap
 msgid "build phases"
 msgstr "Erstellungsphasen"
 
 #. type: defvr
-#: doc/guix.texi:4234
+#: doc/guix.texi:5577
 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:4236
+#: doc/guix.texi:5579
 #, no-wrap
 msgid "unpack"
 msgstr "unpack"
 
 #. type: table
-#: doc/guix.texi:4240
+#: doc/guix.texi:5583
 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:4241
+#: doc/guix.texi:5584
 #, no-wrap
 msgid "patch-source-shebangs"
 msgstr "patch-source-shebangs"
 
 #. type: table
-#: doc/guix.texi:4245
+#: doc/guix.texi:5588
 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/@dots{}-bash-4.3/bin/sh} geändert werden."
 
 #. type: item
-#: doc/guix.texi:4246 doc/guix.texi:4803
+#: doc/guix.texi:5589 doc/guix.texi:6190 doc/guix.texi:6238
 #, no-wrap
 msgid "configure"
 msgstr "configure"
 
 #. type: table
-#: doc/guix.texi:4250
+#: doc/guix.texi:5593
 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/@dots{}}, sowie mit den im @code{#:configure-flags}-Argument angegebenen Optionen."
+msgstr "Das Skript @file{configure} mit einigen vorgegebenen Befehlszeilenoptionen ausführen, wie z.B.@: mit @code{--prefix=/gnu/store/@dots{}}, sowie mit den im @code{#:configure-flags}-Argument angegebenen Optionen."
 
 #. type: item
-#: doc/guix.texi:4251 doc/guix.texi:4440 doc/guix.texi:4808
-#: doc/guix.texi:22379
+#: doc/guix.texi:5594 doc/guix.texi:5783 doc/guix.texi:6195 doc/guix.texi:6242
+#: doc/guix.texi:24252
 #, no-wrap
 msgid "build"
 msgstr "build"
 
 #. type: table
-#: doc/guix.texi:4255
+#: doc/guix.texi:5598
 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:4256 doc/guix.texi:4450 doc/guix.texi:4812
+#: doc/guix.texi:5599 doc/guix.texi:5793 doc/guix.texi:6199
 #, no-wrap
 msgid "check"
 msgstr "check"
 
 #. type: table
-#: doc/guix.texi:4261
+#: doc/guix.texi:5604
 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:4262 doc/guix.texi:4458 doc/guix.texi:4816
+#: doc/guix.texi:5605 doc/guix.texi:5801 doc/guix.texi:6203 doc/guix.texi:6246
 #, no-wrap
 msgid "install"
 msgstr "install"
 
 #. type: table
-#: doc/guix.texi:4264
+#: doc/guix.texi:5607
 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:4265
+#: doc/guix.texi:5608
 #, no-wrap
 msgid "patch-shebangs"
 msgstr "patch-shebangs"
 
 #. type: table
-#: doc/guix.texi:4267
+#: doc/guix.texi:5610
 msgid "Patch shebangs on the installed executable files."
 msgstr "Shebangs in den installierten ausführbaren Dateien beheben."
 
 #. type: item
-#: doc/guix.texi:4268
+#: doc/guix.texi:5611
 #, no-wrap
 msgid "strip"
 msgstr "strip"
 
 #. type: table
-#: doc/guix.texi:4272
+#: doc/guix.texi:5615
 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 (@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:4274
+#: doc/guix.texi:5617
 #, no-wrap
 msgid "%standard-phases"
 msgstr "%standard-phases"
 
 #. type: defvr
-#: doc/guix.texi:4279
+#: doc/guix.texi:5622
 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 "Das erstellungsseitige Modul @code{(guix build gnu-build-system)} definiert @var{%standard-phases} als die vorgegebene Liste der Erstellungsphasen. @var{%standard-phases} ist eine Liste von Paaren aus je einem Symbol und einer Prozedur. Letztere implementiert die eigentliche Phase."
 
 #. type: defvr
-#: doc/guix.texi:4282
+#: doc/guix.texi:5625
 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:4285
+#: doc/guix.texi:5628
 #, 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:4289
+#: doc/guix.texi:5632
 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:4296
+#: doc/guix.texi:5639
 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:4303
+#: doc/guix.texi:5646
 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 "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 @var{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:4304
+#: doc/guix.texi:5647
 #, no-wrap
 msgid "{Scheme Variable} ant-build-system"
 msgstr "{Scheme-Variable} ant-build-system"
 
 #. type: defvr
-#: doc/guix.texi:4308
+#: doc/guix.texi:5651
 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{http://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{http://ant.apache.org/, Ant build tool} erstellt werden können."
 
 #. type: defvr
-#: doc/guix.texi:4313
+#: doc/guix.texi:5656
 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:4319
+#: doc/guix.texi:5662
 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:4327
+#: doc/guix.texi:5670
 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:4331
+#: doc/guix.texi:5674
 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:4334
+#: doc/guix.texi:5677
 #, no-wrap
 msgid "{Scheme Variable} android-ndk-build-system"
 msgstr "{Scheme-Variable} android-ndk-build-system"
 
 #. type: cindex
-#: doc/guix.texi:4335
+#: doc/guix.texi:5678
 #, no-wrap
 msgid "Android distribution"
 msgstr "Android-Distribution"
 
 #. type: cindex
-#: doc/guix.texi:4336
+#: doc/guix.texi:5679
 #, no-wrap
 msgid "Android NDK build system"
 msgstr "Android-NDK-Erstellungssystem"
 
 #. type: defvr
-#: doc/guix.texi:4340
+#: doc/guix.texi:5683
 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:4344
+#: doc/guix.texi:5687
 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."
 
 #. type: defvr
-#: doc/guix.texi:4347
+#: doc/guix.texi:5690
 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:4350
+#: doc/guix.texi:5693
 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:4353
+#: doc/guix.texi:5696
 #, no-wrap
 msgid "{Scheme Variable} asdf-build-system/source"
 msgstr "{Scheme-Variable} asdf-build-system/source"
 
 #. type: defvrx
-#: doc/guix.texi:4354
+#: doc/guix.texi:5697
 #, no-wrap
 msgid "{Scheme Variable} asdf-build-system/sbcl"
 msgstr "{Scheme-Variable} asdf-build-system/sbcl"
 
 #. type: defvrx
-#: doc/guix.texi:4355
+#: doc/guix.texi:5698
 #, no-wrap
 msgid "{Scheme Variable} asdf-build-system/ecl"
 msgstr "{Scheme-Variable} asdf-build-system/ecl"
 
 #. type: defvr
-#: doc/guix.texi:4361
+#: doc/guix.texi:5704
 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:4368
+#: doc/guix.texi:5711
 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:4372
+#: doc/guix.texi:5715
 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}."
+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:4376
+#: doc/guix.texi:5719
 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:4381
+#: doc/guix.texi:5724
 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:4388
+#: doc/guix.texi:5731
 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:4397
+#: doc/guix.texi:5740
 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."
 
 #. type: defvr
-#: doc/guix.texi:4401
+#: doc/guix.texi:5744
 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:4404
+#: doc/guix.texi:5747
 #, no-wrap
 msgid "{Scheme Variable} cargo-build-system"
 msgstr "{Scheme-Variable} cargo-build-system"
 
 #. type: cindex
-#: doc/guix.texi:4405
+#: doc/guix.texi:5748
 #, no-wrap
 msgid "Rust programming language"
 msgstr "Rust-Programmiersprache"
 
 #. type: cindex
-#: doc/guix.texi:4406
+#: doc/guix.texi:5749
 #, no-wrap
 msgid "Cargo (Rust build system)"
 msgstr "Cargo (Rust-Erstellungssystem)"
 
 #. type: defvr
-#: doc/guix.texi:4410
+#: doc/guix.texi:5753
 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:4415
+#: doc/guix.texi:5758
 msgid "In its @code{configure} phase, this build system replaces dependencies specified in the @file{Carto.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 "In seiner @code{configure}-Phase ersetzt dieses Erstellungssystem in der Datei @file{Carto.toml} angegebene Abhängigkeiten durch Eingaben im Guix-Paket. Die Phase @code{install} installiert die Binärdateien und auch den Quellcode und die @file{Cargo.toml}-Datei."
 
 #. type: cindex
-#: doc/guix.texi:4417
+#: doc/guix.texi:5760
 #, no-wrap
 msgid "Clojure (programming language)"
 msgstr "Clojure (Programmiersprache)"
 
 #. type: cindex
-#: doc/guix.texi:4418
+#: doc/guix.texi:5761
 #, no-wrap
 msgid "simple Clojure build system"
 msgstr "einfaches Clojure-Erstellungssystem"
 
 #. type: defvr
-#: doc/guix.texi:4419
+#: doc/guix.texi:5762
 #, no-wrap
 msgid "{Scheme Variable} clojure-build-system"
 msgstr "{Scheme-Variable} clojure-build-system"
 
 #. type: defvr
-#: doc/guix.texi:4424
+#: doc/guix.texi:5767
 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:4428
+#: doc/guix.texi:5771
 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:4434
+#: doc/guix.texi:5777
 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:4437
+#: doc/guix.texi:5780
 msgid "This build system is an extension of @var{ant-build-system}, but with the following phases changed:"
 msgstr "Dieses Erstellungssystem ist eine Erweiterung des @var{ant-build-system}, bei der aber die folgenden Phasen geändert wurden:"
 
 #. type: table
-#: doc/guix.texi:4449
+#: doc/guix.texi:5792
 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 sollten."
 
 #. type: table
-#: doc/guix.texi:4457
+#: doc/guix.texi:5800
 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:4460
+#: doc/guix.texi:5803
 msgid "This phase installs all jars built previously."
 msgstr "In dieser Phase werden alle zuvor erstellten Jar-Dateien installiert."
 
 #. type: defvr
-#: doc/guix.texi:4463
+#: doc/guix.texi:5806
 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:4466
+#: doc/guix.texi:5809
 #, no-wrap
 msgid "install-doc"
 msgstr "install-doc"
 
 #. type: table
-#: doc/guix.texi:4471
+#: doc/guix.texi:5814
 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 "Diese Phase installiert alle Dateien auf oberster Ebene, deren Basisnamen ohne Verzeichnisangabe zu @var{%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:4474
+#: doc/guix.texi:5817
 #, no-wrap
 msgid "{Scheme Variable} cmake-build-system"
 msgstr "{Scheme-Variable} cmake-build-system"
 
 #. type: defvr
-#: doc/guix.texi:4478
+#: doc/guix.texi:5821
 msgid "This variable is exported by @code{(guix build-system cmake)}.  It implements the build procedure for packages using the @url{http://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{http://www.cmake.org, CMake-Erstellungswerkzeug} benutzen."
 
 #. type: defvr
-#: doc/guix.texi:4482
+#: doc/guix.texi:5825
 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:4489
+#: doc/guix.texi:5832
 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."
+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:4491
+#: doc/guix.texi:5834
+#, no-wrap
+msgid "{Scheme Variable} dune-build-system"
+msgstr "{Scheme-Variable} dune-build-system"
+
+#. type: defvr
+#: doc/guix.texi:5841
+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:5845
+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:5849
+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 ""
+
+#. type: defvr
+#: doc/guix.texi:5853
+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 ""
+
+#. type: defvr
+#: doc/guix.texi:5858
+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 ""
+
+#. type: defvr
+#: doc/guix.texi:5860
 #, no-wrap
 msgid "{Scheme Variable} go-build-system"
 msgstr "{Scheme-Variable} go-build-system"
 
 #. type: defvr
-#: doc/guix.texi:4496
+#: doc/guix.texi:5865
 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:4507
+#: doc/guix.texi:5876
 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:4512
-msgid "Packages that provide Go libraries should be installed along with their source code.  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 zusammen mit ihrem Quellcode installiert werden. 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."
+#: doc/guix.texi:5881
+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:4514
+#: doc/guix.texi:5883
 #, no-wrap
 msgid "{Scheme Variable} glib-or-gtk-build-system"
 msgstr "{Scheme-Variable} glib-or-gtk-build-system"
 
 #. type: defvr
-#: doc/guix.texi:4517
+#: doc/guix.texi:5886
 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:4520
+#: doc/guix.texi:5889
 msgid "This build system adds the following two phases to the ones defined by @var{gnu-build-system}:"
 msgstr "Dieses Erstellungssystem fügt die folgenden zwei Phasen zu denen von @var{gnu-build-system} hinzu:"
 
 #. type: item
-#: doc/guix.texi:4522 doc/guix.texi:4832
+#: doc/guix.texi:5891 doc/guix.texi:6219
 #, no-wrap
 msgid "glib-or-gtk-wrap"
 msgstr "glib-or-gtk-wrap"
 
 #. type: table
-#: doc/guix.texi:4529
+#: doc/guix.texi:5898
 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."
 
 #. type: table
-#: doc/guix.texi:4536
+#: doc/guix.texi:5905
 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:4537 doc/guix.texi:4836
+#: doc/guix.texi:5906 doc/guix.texi:6223
 #, no-wrap
 msgid "glib-or-gtk-compile-schemas"
 msgstr "glib-or-gtk-compile-schemas"
 
 #. type: table
-#: doc/guix.texi:4545
+#: doc/guix.texi:5914
 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:4548
+#: doc/guix.texi:5917
 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:4550
+#: doc/guix.texi:5919
 #, no-wrap
 msgid "{Scheme Variable} guile-build-system"
 msgstr "{Scheme-Variable} guile-build-system"
 
 #. type: defvr
-#: doc/guix.texi:4557
+#: doc/guix.texi:5926
 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 (@pxref{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, GNU Guile Reference Manual}) und die @file{.scm}- und @file{.go}-Dateien an den richtigen Pfad installiert. Auch Dokumentation wird installiert."
 
 #. type: defvr
-#: doc/guix.texi:4560
+#: doc/guix.texi:5929
 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}."
 
 #. type: defvr
-#: doc/guix.texi:4563
+#: doc/guix.texi:5932
 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:4565
+#: doc/guix.texi:5934
 #, no-wrap
 msgid "{Scheme Variable} minify-build-system"
 msgstr "{Scheme-Variable} minify-build-system"
 
 #. type: defvr
-#: doc/guix.texi:4568
+#: doc/guix.texi:5937
 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:4574
+#: doc/guix.texi:5943
 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:4578
+#: doc/guix.texi:5947
 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:4580
+#: doc/guix.texi:5949
 #, no-wrap
 msgid "{Scheme Variable} ocaml-build-system"
 msgstr "{Scheme-Variable} ocaml-build-system"
 
 #. type: defvr
-#: doc/guix.texi:4586
+#: doc/guix.texi:5955
 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:4596
+#: doc/guix.texi:5965
 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:4601
+#: doc/guix.texi:5970
 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:4605
+#: doc/guix.texi:5974
 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:4613
+#: doc/guix.texi:5982
 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:4621
+#: doc/guix.texi:5990
 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."
 
 #. type: defvr
-#: doc/guix.texi:4623
+#: doc/guix.texi:5992
 #, no-wrap
 msgid "{Scheme Variable} python-build-system"
 msgstr "{Scheme-Variable} python-build-system"
 
 #. type: defvr
-#: doc/guix.texi:4628
+#: doc/guix.texi:5997
 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/@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/@dots{}}."
 
 #. type: defvr
-#: doc/guix.texi:4632
+#: doc/guix.texi:6001
 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."
 
 #. type: defvr
-#: doc/guix.texi:4638
+#: doc/guix.texi:6007
 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, was nötig sein kann, wenn das Programm nur mit einer einzigen Interpretiererversion kompatibel ist."
 
 #. type: defvr
-#: doc/guix.texi:4643
+#: doc/guix.texi:6012
 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:4645
+#: doc/guix.texi:6014
 #, no-wrap
 msgid "{Scheme Variable} perl-build-system"
 msgstr "{Scheme-Variable} perl-build-system"
 
 #. type: defvr
-#: doc/guix.texi:4657
+#: doc/guix.texi:6026
 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/@dots{}} gefolgt von @code{Build} und @code{Build install} auszuführen, oder @code{perl Makefile.PL PREFIX=/gnu/store/@dots{}} 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:4661
+#: doc/guix.texi:6030
 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:4663
+#: doc/guix.texi:6032
 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:4665
+#: doc/guix.texi:6034
 #, no-wrap
 msgid "{Scheme Variable} r-build-system"
 msgstr "{Scheme-Variable} r-build-system"
 
 #. type: defvr
-#: doc/guix.texi:4673
+#: doc/guix.texi:6042
 msgid "This variable is exported by @code{(guix build-system r)}.  It implements the build procedure used by @uref{http://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{http://r-project.org, R}-Pakete genutzten Erstellungsprozedur, die wenig mehr tut, als @code{R CMD INSTALL --library=/gnu/store/@dots{}} 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."
 
 #. type: defvr
-#: doc/guix.texi:4675
+#: doc/guix.texi:6044
+#, no-wrap
+msgid "{Scheme Variable} rakudo-build-system"
+msgstr "{Scheme-Variable} rakudo-build-system"
+
+#. type: defvr
+#: doc/guix.texi:6052
+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 ""
+
+#. type: defvr
+#: doc/guix.texi:6060
+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 ""
+
+#. type: defvr
+#: doc/guix.texi:6062
 #, no-wrap
 msgid "{Scheme Variable} texlive-build-system"
 msgstr "{Scheme-Variable} texlive-build-system"
 
 #. type: defvr
-#: doc/guix.texi:4680
+#: doc/guix.texi:6067
 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."
 
 #. type: defvr
-#: doc/guix.texi:4689
+#: doc/guix.texi:6076
 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:4692
+#: doc/guix.texi:6079
 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:4694
+#: doc/guix.texi:6081
 #, no-wrap
 msgid "{Scheme Variable} ruby-build-system"
 msgstr "{Scheme-Variable} ruby-build-system"
 
 #. type: defvr
-#: doc/guix.texi:4698
+#: doc/guix.texi:6085
 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:4706
+#: doc/guix.texi:6093
 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:4710
+#: doc/guix.texi:6097
 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:4712
+#: doc/guix.texi:6099
 #, no-wrap
 msgid "{Scheme Variable} waf-build-system"
 msgstr "{Scheme-Variable} waf-build-system"
 
 #. type: defvr
-#: doc/guix.texi:4718
+#: doc/guix.texi:6105
 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:4722
+#: doc/guix.texi:6109
 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:4724
+#: doc/guix.texi:6111
 #, no-wrap
 msgid "{Scheme Variable} scons-build-system"
 msgstr "{Scheme-Variable} scons-build-system"
 
 #. type: defvr
-#: doc/guix.texi:4730
+#: doc/guix.texi:6117
 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:4735
+#: doc/guix.texi:6122
 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 "Zusätzliche Optionen, die an @code{scons} übergeben werden sollen, können mit dem Parameter @code{#:scons-flags} angegeben 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:4737
+#: doc/guix.texi:6124
 #, no-wrap
 msgid "{Scheme Variable} haskell-build-system"
 msgstr "{Scheme-Variable} haskell-build-system"
 
 #. type: defvr
-#: doc/guix.texi:4751
+#: doc/guix.texi:6138
 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/@dots{}} 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:4754
+#: doc/guix.texi:6141
 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:4756
+#: doc/guix.texi:6143
 #, no-wrap
 msgid "{Scheme Variable} dub-build-system"
 msgstr "{Scheme-Variable} dub-build-system"
 
 #. type: defvr
-#: doc/guix.texi:4761
+#: doc/guix.texi:6148
 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:4764
+#: doc/guix.texi:6151
 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:4766
+#: doc/guix.texi:6153
 #, no-wrap
 msgid "{Scheme Variable} emacs-build-system"
 msgstr "{Scheme-Variable} emacs-build-system"
 
 #. type: defvr
-#: doc/guix.texi:4770
+#: doc/guix.texi:6157
 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 (@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:4777
+#: doc/guix.texi:6164
 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 "Zunächst wird eine Datei @code{@var{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. Jedes Paket wird in sein eigenes Verzeichnis unter @file{share/emacs/site-lisp/guix.d} installiert."
 
 #. type: defvr
-#: doc/guix.texi:4779
+#: doc/guix.texi:6166
 #, no-wrap
 msgid "{Scheme Variable} font-build-system"
 msgstr "{Scheme-Variable} font-build-system"
 
 #. type: defvr
-#: doc/guix.texi:4785
-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."
+#: doc/guix.texi:6172
+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:4787
+#: doc/guix.texi:6174
 #, no-wrap
 msgid "{Scheme Variable} meson-build-system"
 msgstr "{Scheme-Variable} meson-build-system"
 
 #. type: defvr
-#: doc/guix.texi:4791
+#: doc/guix.texi:6178
 msgid "This variable is exported by @code{(guix build-system meson)}.  It implements the build procedure for packages that use @url{http://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{http://mesonbuild.com, Meson} als ihr Erstellungssystem benutzen."
 
 #. type: defvr
-#: doc/guix.texi:4797
+#: doc/guix.texi:6184
 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:4800
+#: doc/guix.texi:6187
 msgid "This build system is an extension of @var{gnu-build-system}, but with the following phases changed to some specific for Meson:"
 msgstr "Dieses Erstellungssystem ist eine Erweiterung für das @var{gnu-build-system}, aber mit Änderungen an den folgenden Phasen, die Meson-spezifisch sind:"
 
 #. type: table
-#: doc/guix.texi:4807
+#: doc/guix.texi:6194
 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."
 
 #. type: table
-#: doc/guix.texi:4811
+#: doc/guix.texi:6198
 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:4815
+#: doc/guix.texi:6202
 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:4818
+#: doc/guix.texi:6205
 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:4821
+#: doc/guix.texi:6208
 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:4824
+#: doc/guix.texi:6211
 #, no-wrap
 msgid "fix-runpath"
 msgstr "fix-runpath"
 
 #. type: table
-#: doc/guix.texi:4831
+#: doc/guix.texi:6218
 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:4835 doc/guix.texi:4839
+#: doc/guix.texi:6222 doc/guix.texi:6226
 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:6229
+#, fuzzy, no-wrap
+#| msgid "{Scheme Variable} dune-build-system"
+msgid "{Scheme Variable} linux-module-build-system"
+msgstr "{Scheme-Variable} dune-build-system"
+
+#. type: defvr
+#: doc/guix.texi:6231
+msgid "@var{linux-module-build-system} allows building Linux kernel modules."
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:6235
+#, fuzzy
+#| msgid "This build system is an extension of @var{ant-build-system}, but with the following phases changed:"
+msgid "This build system is an extension of @var{gnu-build-system}, but with the following phases changed:"
+msgstr "Dieses Erstellungssystem ist eine Erweiterung des @var{ant-build-system}, bei der aber die folgenden Phasen geändert wurden:"
+
+#. type: table
+#: doc/guix.texi:6241
+msgid "This phase configures the environment so that the Linux kernel's Makefile can be used to build the external kernel module."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:6245
+msgid "This phase uses the Linux kernel's Makefile in order to build the external kernel module."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:6249
+msgid "This phase uses the Linux kernel's Makefile in order to install the external kernel module."
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:6254
+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 ""
+
 #. type: Plain text
-#: doc/guix.texi:4846
+#: doc/guix.texi:6260
 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:4847
+#: doc/guix.texi:6261
 #, no-wrap
 msgid "{Scheme Variable} trivial-build-system"
 msgstr "{Scheme-Variable} trivial-build-system"
 
 #. type: defvr
-#: doc/guix.texi:4849
+#: doc/guix.texi:6263
 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:4854
+#: doc/guix.texi:6268
 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} (@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:4860
+#: doc/guix.texi:6274
 #, no-wrap
 msgid "store items"
 msgstr "Store-Objekte"
 
 #. type: cindex
-#: doc/guix.texi:4861
+#: doc/guix.texi:6275
 #, no-wrap
 msgid "store paths"
 msgstr "Store-Pfade"
 
 #. type: Plain text
-#: doc/guix.texi:4872
+#: doc/guix.texi:6286
 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:4877
+#: doc/guix.texi:6291
 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 (@pxref{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)."
+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:4882
+#: doc/guix.texi:6296
 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 (@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:4886
+#: doc/guix.texi:6300
 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 @xref{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."
+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:4893
+#: doc/guix.texi:6307
 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."
 
 #. type: defvr
-#: doc/guix.texi:4894
+#: doc/guix.texi:6308
 #, no-wrap
 msgid "{Environment Variable} GUIX_DAEMON_SOCKET"
 msgstr "{Umgebungsvariable} GUIX_DAEMON_SOCKET"
 
 #. type: defvr
-#: doc/guix.texi:4899
+#: doc/guix.texi:6313
 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:4901 doc/guix.texi:16813
+#: doc/guix.texi:6315 doc/guix.texi:18567
 #, no-wrap
 msgid "file"
 msgstr "file"
 
 #. type: itemx
-#: doc/guix.texi:4902
+#: doc/guix.texi:6316
 #, no-wrap
 msgid "unix"
 msgstr "unix"
 
 #. type: table
-#: doc/guix.texi:4906
+#: doc/guix.texi:6320
 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:4907
+#: doc/guix.texi:6321
 #, no-wrap
 msgid "guix"
 msgstr "guix"
 
 #. type: table
-#: doc/guix.texi:4915
+#: doc/guix.texi:6329
 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:4918
+#: doc/guix.texi:6332
 #, no-wrap
 msgid "guix://master.guix.example.org:1234\n"
 msgstr "guix://master.guix.example.org:1234\n"
 
 #. type: table
-#: doc/guix.texi:4923
+#: doc/guix.texi:6337
 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."
+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:4927
+#: doc/guix.texi:6341
 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 (@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}})."
 
 #. type: item
-#: doc/guix.texi:4928
+#: doc/guix.texi:6342
 #, no-wrap
 msgid "ssh"
 msgstr "ssh"
 
 #. type: cindex
-#: doc/guix.texi:4929
+#: doc/guix.texi:6343
 #, no-wrap
 msgid "SSH access to build daemons"
 msgstr "SSH-Zugriff auf Erstellungs-Daemons"
 
 #. type: table
-#: doc/guix.texi:4933
+#: doc/guix.texi:6347
 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 "Mit solchen URIs kann eine Verbindung zu einem entfernten Daemon über SSH hergestellt werden@footnote{Diese Funktionalitäts setzt Guile-SSH voraus (@pxref{Requirements}).}. Eine typische URL sieht so aus:"
+msgstr "Mit solchen URIs kann eine Verbindung zu einem entfernten Daemon über SSH hergestellt werden@footnote{Diese Funktionalitäts setzt Guile-SSH voraus (siehe @ref{Requirements}).}. Eine typische URL sieht so aus:"
 
 #. type: example
-#: doc/guix.texi:4936
+#: doc/guix.texi:6350
 #, no-wrap
 msgid "ssh://charlie@@guix.example.org:22\n"
 msgstr "ssh://charlie@@guix.example.org:22\n"
 
 #. type: table
-#: doc/guix.texi:4940
+#: doc/guix.texi:6354
 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 (@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:4943
+#: doc/guix.texi:6357
 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:4950
+#: doc/guix.texi:6364
 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 (@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:4953
+#: doc/guix.texi:6367
 #, 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:4958
+#: doc/guix.texi:6372
 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:4961
+#: doc/guix.texi:6375
 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{Uri} nimmt standardmäßig den Wert von @var{%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:4963
+#: doc/guix.texi:6377
 #, no-wrap
 msgid "{Scheme Procedure} close-connection @var{server}"
 msgstr "{Scheme-Prozedur} close-connection @var{Server}"
 
 #. type: deffn
-#: doc/guix.texi:4965
+#: doc/guix.texi:6379
 msgid "Close the connection to @var{server}."
 msgstr "Die Verbindung zum @var{Server} trennen."
 
 #. type: defvr
-#: doc/guix.texi:4967
+#: doc/guix.texi:6381
 #, no-wrap
 msgid "{Scheme Variable} current-build-output-port"
 msgstr "{Scheme-Variable} current-build-output-port"
 
 #. type: defvr
-#: doc/guix.texi:4970
+#: doc/guix.texi:6384
 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:4974
+#: doc/guix.texi:6388
 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:4975
+#: doc/guix.texi:6389
 #, 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:4976
+#: doc/guix.texi:6390
 #, no-wrap
 msgid "invalid store items"
 msgstr "ungültige Store-Objekte"
 
 #. type: deffn
-#: doc/guix.texi:4981
+#: doc/guix.texi:6395
 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:4984
-msgid "A @code{&nix-protocol-error} condition is raised if @var{path} is not prefixed by the store directory (@file{/gnu/store})."
-msgstr "Ein @code{&nix-protocol-error}-Fehlerzustand wird ausgelöst, wenn der @var{Pfad} nicht mit dem Store-Verzeichnis als Präfix beginnt (@file{/gnu/store})."
+#: doc/guix.texi:6398
+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:4986
+#: doc/guix.texi:6400
 #, 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:4990
+#: doc/guix.texi:6404
 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:4992
+#: doc/guix.texi:6406
 #, no-wrap
 msgid "{Scheme Procedure} build-derivations @var{server} @var{derivations}"
 msgstr "{Scheme-Prozedur} build-derivations @var{Server} @var{Ableitungen}"
 
 #. type: deffn
-#: doc/guix.texi:4996
+#: doc/guix.texi:6410
 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 "Die @var{Ableitungen} erstellen (eine Liste von @code{<derivation>}-Objekten oder von Pfaden zu Ableitungen) und terminieren, sobald der Worker-Prozess mit dem Erstellen fertig ist. Liefert @code{#t} bei erfolgreicher Erstellung."
 
 #. type: Plain text
-#: doc/guix.texi:5002
+#: doc/guix.texi:6416
 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 (@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:5005
+#: doc/guix.texi:6419
 msgid "This section is currently incomplete."
 msgstr "Dieser Abschnitt ist im Moment noch unvollständig."
 
 #. type: cindex
-#: doc/guix.texi:5009
+#: doc/guix.texi:6423
 #, no-wrap
 msgid "derivations"
 msgstr "Ableitungen"
 
 #. type: Plain text
-#: doc/guix.texi:5013
+#: doc/guix.texi:6427
 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:5018
+#: doc/guix.texi:6432
 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:6434
+#, no-wrap
+msgid "build-time dependencies"
+msgstr "Erstellungszeitabhängigkeiten"
+
+#. type: cindex
+#: doc/guix.texi:6435
+#, no-wrap
+msgid "dependencies, build-time"
+msgstr "Abhängigkeiten zur Erstellungszeit"
+
 #. type: itemize
-#: doc/guix.texi:5022
-msgid "The inputs of the derivations, which may be other derivations or plain files in the store (patches, build scripts, etc.)"
-msgstr "Die Eingaben, die die Ableitung hat, die entweder andere Ableitungen oder einfache Dateien im Store sind (wie Patches, Erstellungsskripts usw.)."
+#: doc/guix.texi:6439
+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:5025
+#: doc/guix.texi:6442
 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}."
+msgstr "Das System, wofür mit der Ableitung erstellt wird, also ihr Ziel — z.B.@: @code{x86_64-linux}."
 
 #. type: itemize
-#: doc/guix.texi:5029
+#: doc/guix.texi:6446
 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:5032
+#: doc/guix.texi:6449
 msgid "A list of environment variables to be defined."
 msgstr "Eine Liste zu definierender Umgebungsvariabler."
 
 #. type: cindex
-#: doc/guix.texi:5035
+#: doc/guix.texi:6452
 #, no-wrap
 msgid "derivation path"
 msgstr "Ableitungspfad"
 
 #. type: Plain text
-#: doc/guix.texi:5043
+#: doc/guix.texi:6460
 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 (@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})."
 
 #. type: cindex
-#: doc/guix.texi:5044
+#: doc/guix.texi:6461
 #, no-wrap
 msgid "fixed-output derivations"
 msgstr "Ableitungen mit fester Ausgabe"
 
 #. type: Plain text
-#: doc/guix.texi:5051
+#: doc/guix.texi:6468
 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."
+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:6469 doc/guix.texi:9456
+#, no-wrap
+msgid "references"
+msgstr "references"
+
+#. type: cindex
+#: doc/guix.texi:6470
+#, no-wrap
+msgid "run-time dependencies"
+msgstr "Laufzeitabhängigkeiten"
+
+#. type: cindex
+#: doc/guix.texi:6471
+#, no-wrap
+msgid "dependencies, run-time"
+msgstr "Abhängigkeiten, zur Laufzeit"
 
 #. type: Plain text
-#: doc/guix.texi:5056
+#: doc/guix.texi:6478
+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:6483
 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:5057
+#: doc/guix.texi:6484
 #, 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:5066
+#: doc/guix.texi:6493
 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:5073
+#: doc/guix.texi:6500
 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."
+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:5078
+#: doc/guix.texi:6505
 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:5083
+#: doc/guix.texi:6510
 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:5090
+#: doc/guix.texi:6517
 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:5095
+#: doc/guix.texi:6522
 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 (@pxref{Daemon Offload Setup}). Dies betrifft kleine Ableitungen, wo das Übertragen der Daten aufwendiger als ihre Erstellung ist."
+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:5100
+#: doc/guix.texi:6527
 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 (@pxref{Substitutes}). Das ist nützlich, wenn Pakete erstellt werden, die Details über den Prozessorbefehlssatz des Wirtssystems auslesen."
+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:5103
+#: doc/guix.texi:6530
 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:5109
+#: doc/guix.texi:6536
 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:5114
+#: doc/guix.texi:6541
 #, no-wrap
 msgid ""
 "(use-modules (guix utils)\n"
@@ -9934,7 +12485,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:5123
+#: doc/guix.texi:6550
 #, no-wrap
 msgid ""
 "(let ((builder   ; add the Bash script to the store\n"
@@ -9956,48 +12507,48 @@ msgstr ""
 "@result{} #<derivation /gnu/store/@dots{}-foo.drv => /gnu/store/@dots{}-foo>\n"
 
 #. type: Plain text
-#: doc/guix.texi:5130
+#: doc/guix.texi:6557
 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 @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:5135
+#: doc/guix.texi:6562
 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:5136
+#: doc/guix.texi:6563
 #, no-wrap
 msgid "{Scheme Procedure} build-expression->derivation @var{store} @"
 msgstr "{Scheme-Prozedur} build-expression->derivation @var{Store} @"
 
 #. type: deffn
-#: doc/guix.texi:5152
+#: doc/guix.texi:6579
 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))}."
+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:5160
+#: doc/guix.texi:6587
 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:5164
+#: doc/guix.texi:6591
 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:5169
+#: doc/guix.texi:6596
 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:5174
+#: doc/guix.texi:6601
 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:5182
+#: doc/guix.texi:6609
 #, no-wrap
 msgid ""
 "(let ((builder '(let ((out (assoc-ref %outputs \"out\")))\n"
@@ -10018,51 +12569,51 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:5184
+#: doc/guix.texi:6611
 #, 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:5190
+#: doc/guix.texi:6617
 #, no-wrap
 msgid "monad"
 msgstr "Monade"
 
 #. type: Plain text
-#: doc/guix.texi:5196
+#: doc/guix.texi:6623
 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:5202
+#: doc/guix.texi:6629
 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:5203
+#: doc/guix.texi:6630
 #, no-wrap
 msgid "monadic values"
 msgstr "monadische Werte"
 
 #. type: cindex
-#: doc/guix.texi:5204
+#: doc/guix.texi:6631
 #, no-wrap
 msgid "monadic functions"
 msgstr "monadische Funktionen"
 
 #. type: Plain text
-#: doc/guix.texi:5214
+#: doc/guix.texi:6641
 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:5216
+#: doc/guix.texi:6643
 msgid "Consider this ``normal'' procedure:"
 msgstr "Betrachten Sie folgende »normale« Prozedur:"
 
 #. type: example
-#: doc/guix.texi:5225
+#: doc/guix.texi:6652
 #, no-wrap
 msgid ""
 "(define (sh-symlink store)\n"
@@ -10083,12 +12634,12 @@ msgstr ""
 "                                  `(symlink ,sh %output))))\n"
 
 #. type: Plain text
-#: doc/guix.texi:5229
+#: doc/guix.texi:6656
 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: example
-#: doc/guix.texi:5237
+#: doc/guix.texi:6664
 #, no-wrap
 msgid ""
 "(define (sh-symlink)\n"
@@ -10106,17 +12657,17 @@ msgstr ""
 "                                 #$output))))\n"
 
 #. type: Plain text
-#: doc/guix.texi:5244
+#: doc/guix.texi:6671
 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:5248
+#: doc/guix.texi:6675
 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 @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: example
-#: doc/guix.texi:5254
+#: doc/guix.texi:6681
 #, no-wrap
 msgid ""
 "(define (sh-symlink)\n"
@@ -10130,12 +12681,12 @@ msgstr ""
 "                               #$output)))\n"
 
 #. type: Plain text
-#: doc/guix.texi:5263
+#: doc/guix.texi:6690
 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: example
-#: doc/guix.texi:5267
+#: doc/guix.texi:6694
 #, no-wrap
 msgid ""
 "(run-with-store (open-connection) (sh-symlink))\n"
@@ -10145,12 +12696,12 @@ msgstr ""
 "@result{} /gnu/store/...-sh-symlink\n"
 
 #. type: Plain text
-#: doc/guix.texi:5273
+#: doc/guix.texi:6700
 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:5277
+#: doc/guix.texi:6704
 #, no-wrap
 msgid ""
 "scheme@@(guile-user)> ,run-in-store (package->derivation hello)\n"
@@ -10160,12 +12711,12 @@ msgstr ""
 "$1 = #<derivation /gnu/store/@dots{}-hello-2.9.drv => @dots{}>\n"
 
 #. type: Plain text
-#: doc/guix.texi:5281
+#: doc/guix.texi:6708
 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:5290
+#: doc/guix.texi:6717
 #, no-wrap
 msgid ""
 "scheme@@(guile-user)> ,enter-store-monad\n"
@@ -10185,50 +12736,50 @@ msgstr ""
 "scheme@@(guile-user)>\n"
 
 #. type: Plain text
-#: doc/guix.texi:5295
+#: doc/guix.texi:6722
 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:5298
+#: doc/guix.texi:6725
 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:5299
+#: doc/guix.texi:6726
 #, 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:5302
+#: doc/guix.texi:6729
 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:5304
+#: doc/guix.texi:6731
 #, no-wrap
 msgid "{Scheme Syntax} return @var{val}"
 msgstr "{Scheme-Syntax} return @var{Wert}"
 
 #. type: deffn
-#: doc/guix.texi:5306
+#: doc/guix.texi:6733
 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:5308
+#: doc/guix.texi:6735
 #, no-wrap
 msgid "{Scheme Syntax} >>= @var{mval} @var{mproc} ..."
 msgstr "{Scheme-Syntax} >>= @var{mWert} @var{mProz} ..."
 
 #. type: deffn
-#: doc/guix.texi:5315
+#: doc/guix.texi:6742
 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}@dots{} ü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: example
-#: doc/guix.texi:5323
+#: doc/guix.texi:6750
 #, no-wrap
 msgid ""
 "(run-with-state\n"
@@ -10248,7 +12799,7 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix.texi:5326
+#: doc/guix.texi:6753
 #, no-wrap
 msgid ""
 "@result{} 4\n"
@@ -10258,99 +12809,99 @@ msgstr ""
 "@result{} irgendein-Zustand\n"
 
 #. type: deffn
-#: doc/guix.texi:5329
+#: doc/guix.texi:6756
 #, 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:5331
+#: doc/guix.texi:6758
 msgid "@var{body} ..."
 msgstr "@var{Rumpf} ..."
 
 #. type: deffnx
-#: doc/guix.texi:5331
+#: doc/guix.texi:6758
 #, 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:5343
+#: doc/guix.texi:6770
 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:5346
+#: doc/guix.texi:6773
 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} (@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})."
 
 #. type: deffn
-#: doc/guix.texi:5348
+#: doc/guix.texi:6775
 #, no-wrap
 msgid "{Scheme System} mbegin @var{monad} @var{mexp} ..."
 msgstr "{Scheme-System} mbegin @var{Monade} @var{mAusdruck} ..."
 
 #. type: deffn
-#: doc/guix.texi:5352
+#: doc/guix.texi:6779
 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:5356
+#: doc/guix.texi:6783
 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:5358
+#: doc/guix.texi:6785
 #, 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:5363
+#: doc/guix.texi:6790
 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*} in der momentanen Monade zurückgeliefert. Jeder Ausdruck in der Folge muss ein monadischer Ausdruck sein."
 
 #. type: deffn
-#: doc/guix.texi:5365
+#: doc/guix.texi:6792
 #, 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:5370
+#: doc/guix.texi:6797
 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*} in der momentanen Monade zurückgeliefert. Jeder Ausdruck in der Folge muss ein monadischer Ausdruck sein."
 
 #. type: cindex
-#: doc/guix.texi:5372
+#: doc/guix.texi:6799
 #, no-wrap
 msgid "state monad"
 msgstr "Zustandsmonade"
 
 #. type: Plain text
-#: doc/guix.texi:5376
+#: doc/guix.texi:6803
 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:5377
+#: doc/guix.texi:6804
 #, no-wrap
 msgid "{Scheme Variable} %state-monad"
 msgstr "{Scheme-Variable} %state-monad"
 
 #. type: defvr
-#: doc/guix.texi:5380
+#: doc/guix.texi:6807
 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:5384
+#: doc/guix.texi:6811
 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: example
-#: doc/guix.texi:5391
+#: doc/guix.texi:6818
 #, no-wrap
 msgid ""
 "(define (square x)\n"
@@ -10368,7 +12919,7 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix.texi:5395
+#: doc/guix.texi:6822
 #, no-wrap
 msgid ""
 "(run-with-state (sequence %state-monad (map square (iota 3))) 0)\n"
@@ -10380,147 +12931,147 @@ msgstr ""
 "@result{} 3\n"
 
 #. type: defvr
-#: doc/guix.texi:5399
+#: doc/guix.texi:6826
 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."
 
 #. type: deffn
-#: doc/guix.texi:5401
+#: doc/guix.texi:6828
 #, no-wrap
 msgid "{Monadic Procedure} current-state"
 msgstr "{Monadische Prozedur} current-state"
 
 #. type: deffn
-#: doc/guix.texi:5403
+#: doc/guix.texi:6830
 msgid "Return the current state as a monadic value."
 msgstr "Liefert den momentanen Zustand als einen monadischen Wert."
 
 #. type: deffn
-#: doc/guix.texi:5405
+#: doc/guix.texi:6832
 #, no-wrap
 msgid "{Monadic Procedure} set-current-state @var{value}"
 msgstr "{Monadische Prozedur} set-current-state @var{Wert}"
 
 #. type: deffn
-#: doc/guix.texi:5408
+#: doc/guix.texi:6835
 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:5410
+#: doc/guix.texi:6837
 #, no-wrap
 msgid "{Monadic Procedure} state-push @var{value}"
 msgstr "{Monadische Prozedur} state-push @var{Wert}"
 
 #. type: deffn
-#: doc/guix.texi:5413
+#: doc/guix.texi:6840
 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:5415
+#: doc/guix.texi:6842
 #, no-wrap
 msgid "{Monadic Procedure} state-pop"
 msgstr "{Monadische Prozedur} state-pop"
 
 #. type: deffn
-#: doc/guix.texi:5418
+#: doc/guix.texi:6845
 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:5420
+#: doc/guix.texi:6847
 #, 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:5423
+#: doc/guix.texi:6850
 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:5427
+#: doc/guix.texi:6854
 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:5428
+#: doc/guix.texi:6855
 #, no-wrap
 msgid "{Scheme Variable} %store-monad"
 msgstr "{Scheme-Variable} %store-monad"
 
 #. type: defvr
-#: doc/guix.texi:5430
+#: doc/guix.texi:6857
 msgid "The store monad---an alias for @var{%state-monad}."
 msgstr "Die Store-Monade — ein anderer Name für @var{%state-monad}."
 
 #. type: defvr
-#: doc/guix.texi:5434
+#: doc/guix.texi:6861
 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 seine 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:5436
+#: doc/guix.texi:6863
 #, 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:5439
+#: doc/guix.texi:6866
 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:5441
+#: doc/guix.texi:6868
 #, 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:5445
+#: doc/guix.texi:6872
 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:5447
+#: doc/guix.texi:6874
 #, 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:5451
+#: doc/guix.texi:6878
 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:5453
+#: doc/guix.texi:6880
 #, 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:5458
+#: doc/guix.texi:6885
 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:5462 doc/guix.texi:5875
+#: doc/guix.texi:6889 doc/guix.texi:7302
 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:5467 doc/guix.texi:5880
+#: doc/guix.texi:6894 doc/guix.texi:7307
 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:5469
+#: doc/guix.texi:6896
 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: example
-#: doc/guix.texi:5475
+#: doc/guix.texi:6902
 #, no-wrap
 msgid ""
 "(run-with-store (open-connection)\n"
@@ -10536,115 +13087,115 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix.texi:5477
+#: doc/guix.texi:6904
 #, 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:5483
+#: doc/guix.texi:6910
 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:5484
+#: doc/guix.texi:6911
 #, 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:5492
+#: doc/guix.texi:6919
 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:5494
+#: doc/guix.texi:6921
 #, 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:5495
+#: doc/guix.texi:6922
 #, no-wrap
 msgid "{Monadic Procedure} package->cross-derivation @var{package} @"
 msgstr "{Monadische Prozedur} package->cross-derivation @var{Paket} @"
 
 #. type: deffn
-#: doc/guix.texi:5499
+#: doc/guix.texi:6926
 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} (@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:5505
+#: doc/guix.texi:6932
 #, no-wrap
 msgid "G-expression"
 msgstr "G-Ausdruck"
 
 #. type: cindex
-#: doc/guix.texi:5506
+#: doc/guix.texi:6933
 #, no-wrap
 msgid "build code quoting"
 msgstr "Erstellungscode maskieren"
 
 #. type: Plain text
-#: doc/guix.texi:5512
+#: doc/guix.texi:6939
 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 (@pxref{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 (@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:5513
+#: doc/guix.texi:6940
 #, no-wrap
 msgid "strata of code"
 msgstr "Schichten von Code"
 
 #. type: Plain text
-#: doc/guix.texi:5525
+#: doc/guix.texi:6952
 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."
+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."
 
 #. type: Plain text
-#: doc/guix.texi:5532
+#: doc/guix.texi:6959
 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:5541
+#: doc/guix.texi:6968
 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 (@pxref{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, GNU Guile Reference Manual}). Es gibt aber auch erhebliche Unterschiede:"
 
 #. type: itemize
-#: doc/guix.texi:5546
+#: doc/guix.texi:6973
 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:5551
+#: doc/guix.texi:6978
 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-Ausdrücks demaskiert wird, ist das Ergebnis davon dasselbe, wie wenn dessen Ausgabedateiname genannt worden wäre."
 
 #. type: itemize
-#: doc/guix.texi:5556
+#: doc/guix.texi:6983
 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:5558 doc/guix.texi:6062
+#: doc/guix.texi:6985 doc/guix.texi:7489
 #, 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:5568
+#: doc/guix.texi:6995
 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})."
+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:5570
+#: doc/guix.texi:6997
 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: example
-#: doc/guix.texi:5578
+#: doc/guix.texi:7005
 #, no-wrap
 msgid ""
 "(define build-exp\n"
@@ -10662,34 +13213,34 @@ msgstr ""
 "               \"list-files\")))\n"
 
 #. type: Plain text
-#: doc/guix.texi:5583
+#: doc/guix.texi:7010
 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/@dots{}-coreutils-8.22/bin/ls} erstellt:"
 
 #. type: example
-#: doc/guix.texi:5586
+#: doc/guix.texi:7013
 #, no-wrap
 msgid "(gexp->derivation \"the-thing\" build-exp)\n"
 msgstr "(gexp->derivation \"das-ding\" build-exp)\n"
 
 #. type: Plain text
-#: doc/guix.texi:5594
+#: doc/guix.texi:7021
 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/@dots{}-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:5595
+#: doc/guix.texi:7022
 #, no-wrap
 msgid "cross compilation"
 msgstr "Cross-Kompilieren"
 
 #. type: Plain text
-#: doc/guix.texi:5601
+#: doc/guix.texi:7028
 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: example
-#: doc/guix.texi:5611
+#: doc/guix.texi:7038
 #, no-wrap
 msgid ""
 "(gexp->derivation \"vi\"\n"
@@ -10711,29 +13262,29 @@ msgstr ""
 "   #:target \"mips64el-linux-gnu\")\n"
 
 #. type: Plain text
-#: doc/guix.texi:5617
+#: doc/guix.texi:7044
 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:5618
+#: doc/guix.texi:7045
 #, no-wrap
 msgid "imported modules, for gexps"
 msgstr "importierte Module, in G-Ausdrücken"
 
 #. type: findex
-#: doc/guix.texi:5619
+#: doc/guix.texi:7046
 #, no-wrap
 msgid "with-imported-modules"
 msgstr "with-imported-modules"
 
 #. type: Plain text
-#: doc/guix.texi:5624
+#: doc/guix.texi:7051
 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: example
-#: doc/guix.texi:5635
+#: doc/guix.texi:7062
 #, no-wrap
 msgid ""
 "(let ((build (with-imported-modules '((guix build utils))\n"
@@ -10757,29 +13308,29 @@ msgstr ""
 "                        #t)))\n"
 
 #. type: Plain text
-#: doc/guix.texi:5641
+#: doc/guix.texi:7068
 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:5642
+#: doc/guix.texi:7069
 #, no-wrap
 msgid "module closure"
 msgstr "Modulabschluss"
 
 #. type: findex
-#: doc/guix.texi:5643
+#: doc/guix.texi:7070
 #, no-wrap
 msgid "source-module-closure"
 msgstr "source-module-closure"
 
 #. type: Plain text
-#: doc/guix.texi:5650
+#: doc/guix.texi:7077
 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: example
-#: doc/guix.texi:5653
+#: doc/guix.texi:7080
 #, no-wrap
 msgid ""
 "(use-modules (guix modules))   ;for 'source-module-closure'\n"
@@ -10789,7 +13340,7 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix.texi:5662
+#: doc/guix.texi:7089
 #, no-wrap
 msgid ""
 "(with-imported-modules (source-module-closure\n"
@@ -10811,24 +13362,24 @@ msgstr ""
 "                        @dots{})))\n"
 
 #. type: cindex
-#: doc/guix.texi:5664
+#: doc/guix.texi:7091
 #, no-wrap
 msgid "extensions, for gexps"
 msgstr "Erweiterungen, für G-Ausdrücke"
 
 #. type: findex
-#: doc/guix.texi:5665
+#: doc/guix.texi:7092
 #, no-wrap
 msgid "with-extensions"
 msgstr "with-extensions"
 
 #. type: Plain text
-#: doc/guix.texi:5670
+#: doc/guix.texi:7097
 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: example
-#: doc/guix.texi:5673
+#: doc/guix.texi:7100
 #, no-wrap
 msgid ""
 "(use-modules (gnu packages guile))  ;for 'guile-json'\n"
@@ -10838,7 +13389,7 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix.texi:5679
+#: doc/guix.texi:7106
 #, no-wrap
 msgid ""
 "(with-extensions (list guile-json)\n"
@@ -10854,184 +13405,184 @@ msgstr ""
 "                        @dots{})))\n"
 
 #. type: Plain text
-#: doc/guix.texi:5682
+#: doc/guix.texi:7109
 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:5683
+#: doc/guix.texi:7110
 #, no-wrap
 msgid "{Scheme Syntax} #~@var{exp}"
 msgstr "{Scheme-Syntax} #~@var{Ausdruck}"
 
 #. type: deffnx
-#: doc/guix.texi:5684
+#: doc/guix.texi:7111
 #, no-wrap
 msgid "{Scheme Syntax} (gexp @var{exp})"
 msgstr "{Scheme-Syntax} (gexp @var{Ausdruck})"
 
 #. type: deffn
-#: doc/guix.texi:5687
+#: doc/guix.texi:7114
 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:5689
+#: doc/guix.texi:7116
 #, no-wrap
 msgid "#$@var{obj}"
 msgstr "#$@var{Objekt}"
 
 #. type: itemx
-#: doc/guix.texi:5690
+#: doc/guix.texi:7117
 #, no-wrap
 msgid "(ungexp @var{obj})"
 msgstr "(ungexp @var{Objekt})"
 
 #. type: table
-#: doc/guix.texi:5695
+#: doc/guix.texi:7122
 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/@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/@dots{}-coreutils-8.22}."
 
 #. type: table
-#: doc/guix.texi:5698
+#: doc/guix.texi:7125
 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:5701
+#: doc/guix.texi:7128
 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:5703
+#: doc/guix.texi:7130
 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:5704
+#: doc/guix.texi:7131
 #, no-wrap
 msgid "#$@var{obj}:@var{output}"
 msgstr "#$@var{Objekt}:@var{Ausgabe}"
 
 #. type: itemx
-#: doc/guix.texi:5705
+#: doc/guix.texi:7132
 #, no-wrap
 msgid "(ungexp @var{obj} @var{output})"
 msgstr "(ungexp @var{Objekt} @var{Ausgabe})"
 
 #. type: table
-#: doc/guix.texi:5709
+#: doc/guix.texi:7136
 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 (@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:5710
+#: doc/guix.texi:7137
 #, no-wrap
 msgid "#+@var{obj}"
 msgstr "#+@var{Objekt}"
 
 #. type: itemx
-#: doc/guix.texi:5711
+#: doc/guix.texi:7138
 #, no-wrap
 msgid "#+@var{obj}:output"
 msgstr "#+@var{Objekt}:@var{Ausgabe}"
 
 #. type: itemx
-#: doc/guix.texi:5712
+#: doc/guix.texi:7139
 #, no-wrap
 msgid "(ungexp-native @var{obj})"
 msgstr "(ungexp-native @var{Objekt})"
 
 #. type: itemx
-#: doc/guix.texi:5713
+#: doc/guix.texi:7140
 #, no-wrap
 msgid "(ungexp-native @var{obj} @var{output})"
 msgstr "(ungexp-native @var{Objekt} @var{Ausgabe})"
 
 #. type: table
-#: doc/guix.texi:5716
+#: doc/guix.texi:7143
 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:5717
+#: doc/guix.texi:7144
 #, no-wrap
 msgid "#$output[:@var{output}]"
 msgstr "#$output[:@var{Ausgabe}]"
 
 #. type: itemx
-#: doc/guix.texi:5718
+#: doc/guix.texi:7145
 #, no-wrap
 msgid "(ungexp output [@var{output}])"
 msgstr "(ungexp output [@var{Ausgabe}])"
 
 #. type: table
-#: doc/guix.texi:5721
+#: doc/guix.texi:7148
 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:5723
+#: doc/guix.texi:7150
 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:5724
+#: doc/guix.texi:7151
 #, no-wrap
 msgid "#$@@@var{lst}"
 msgstr "#$@@@var{Liste}"
 
 #. type: itemx
-#: doc/guix.texi:5725
+#: doc/guix.texi:7152
 #, no-wrap
 msgid "(ungexp-splicing @var{lst})"
 msgstr "(ungexp-splicing @var{Liste})"
 
 #. type: table
-#: doc/guix.texi:5728
+#: doc/guix.texi:7155
 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:5729
+#: doc/guix.texi:7156
 #, no-wrap
 msgid "#+@@@var{lst}"
 msgstr "#+@@@var{Liste}"
 
 #. type: itemx
-#: doc/guix.texi:5730
+#: doc/guix.texi:7157
 #, no-wrap
 msgid "(ungexp-native-splicing @var{lst})"
 msgstr "(ungexp-native-splicing @var{Liste})"
 
 #. type: table
-#: doc/guix.texi:5733
+#: doc/guix.texi:7160
 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:5738
+#: doc/guix.texi:7165
 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:5740
+#: doc/guix.texi:7167
 #, no-wrap
 msgid "{Scheme Syntax} with-imported-modules @var{modules} @var{body}@dots{}"
 msgstr "{Scheme-Syntax} with-imported-modules @var{Module} @var{Rumpf}@dots{}"
 
 #. type: deffn
-#: doc/guix.texi:5743
+#: doc/guix.texi:7170
 msgid "Mark the gexps defined in @var{body}@dots{} as requiring @var{modules} in their execution environment."
 msgstr "Markiert die in @var{Rumpf}@dots{} definierten G-Ausdrücke, dass sie in ihrer Ausführungsumgebung die angegebenen @var{Module} brauchen."
 
 #. type: deffn
-#: doc/guix.texi:5747
+#: doc/guix.texi:7174
 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: example
-#: doc/guix.texi:5753
+#: doc/guix.texi:7180
 #, no-wrap
 msgid ""
 "`((guix build utils)\n"
@@ -11045,80 +13596,80 @@ msgstr ""
 "                                  #~(define-module @dots{}))))\n"
 
 #. type: deffn
-#: doc/guix.texi:5758
+#: doc/guix.texi:7185
 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:5762
+#: doc/guix.texi:7189
 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}@dots{} definierten G-Ausdrücke aus, aber nicht auf jene, die, sagen wir, in aus @var{Rumpf}@dots{} heraus aufgerufenen Prozeduren definiert wurden."
 
 #. type: deffn
-#: doc/guix.texi:5764
+#: doc/guix.texi:7191
 #, no-wrap
 msgid "{Scheme Syntax} with-extensions @var{extensions} @var{body}@dots{}"
 msgstr "{Scheme-Syntax} with-extensions @var{Erweiterungen} @var{Rumpf}@dots{}"
 
 #. type: deffn
-#: doc/guix.texi:5769
+#: doc/guix.texi:7196
 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}@dots{} 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:5774
+#: doc/guix.texi:7201
 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}@dots{} aufgeführten importierten Module kompiliert werden und sie werden auch zum Ladepfad des von @var{Rumpf}@dots{} gelieferten G-Ausdrucks hinzugefügt."
 
 #. type: deffn
-#: doc/guix.texi:5776
+#: doc/guix.texi:7203
 #, no-wrap
 msgid "{Scheme Procedure} gexp? @var{obj}"
 msgstr "{Scheme-Prozedur} gexp? @var{Objekt}"
 
 #. type: deffn
-#: doc/guix.texi:5778
+#: doc/guix.texi:7205
 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:5784
+#: doc/guix.texi:7211
 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 (@pxref{The Store Monad}, wenn Sie mehr Informationen über Monaden suchen)."
+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:5785
+#: doc/guix.texi:7212
 #, 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:5803
+#: doc/guix.texi:7230
 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."
 
 #. type: deffn
-#: doc/guix.texi:5811
+#: doc/guix.texi:7238
 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))}."
+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:5814
+#: doc/guix.texi:7241
 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\"}."
+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:5817
+#: doc/guix.texi:7244
 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:5820
+#: doc/guix.texi:7247
 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:5827
+#: doc/guix.texi:7254
 #, no-wrap
 msgid ""
 "(@var{file-name} @var{package})\n"
@@ -11134,38 +13685,38 @@ msgstr ""
 "(@var{Dateiname} @var{Store-Objekt})\n"
 
 #. type: deffn
-#: doc/guix.texi:5833
+#: doc/guix.texi:7260
 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:5839
+#: doc/guix.texi:7266
 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:5842
+#: doc/guix.texi:7269
 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 (»deprecation warnings«). @var{deprecation-warnings} kann @code{#f}, @code{#t} oder @code{'detailed} (detailliert) sein."
 
 #. type: deffn
-#: doc/guix.texi:5844
+#: doc/guix.texi:7271
 msgid "The other arguments are as for @code{derivation} (@pxref{Derivations})."
-msgstr "Die anderen Argumente verhalten sich wie bei @code{derivation} (@pxref{Derivations})."
+msgstr "Die anderen Argumente verhalten sich wie bei @code{derivation} (siehe @ref{Derivations})."
 
 #. type: cindex
-#: doc/guix.texi:5846
+#: doc/guix.texi:7273
 #, no-wrap
 msgid "file-like objects"
 msgstr "dateiartige Objekte"
 
 #. type: Plain text
-#: doc/guix.texi:5851
+#: doc/guix.texi:7278
 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: example
-#: doc/guix.texi:5855
+#: doc/guix.texi:7282
 #, no-wrap
 msgid ""
 "#~(system* #$(file-append glibc \"/sbin/nscd\") \"-f\"\n"
@@ -11175,76 +13726,76 @@ msgstr ""
 "           #$(local-file \"/tmp/my-nscd.conf\"))\n"
 
 #. type: Plain text
-#: doc/guix.texi:5864
+#: doc/guix.texi:7291
 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:5865
+#: doc/guix.texi:7292
 #, 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:5871
+#: doc/guix.texi:7298
 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}."
 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 angegeben, wird sie relativ zur Quelldatei gesucht, in der diese Form steht. 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:5883
+#: doc/guix.texi:7310
 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} (@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:5885
+#: doc/guix.texi:7312
 #, 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:5888
+#: doc/guix.texi:7315
 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:5890
+#: doc/guix.texi:7317
 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:5892
+#: doc/guix.texi:7319
 #, 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:5897
+#: doc/guix.texi:7324
 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."
 
 #. type: deffn
-#: doc/guix.texi:5899
+#: doc/guix.texi:7326
 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:5901
+#: doc/guix.texi:7328
 #, 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:5906
+#: doc/guix.texi:7333
 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}."
 msgstr "[#:guile (default-guile)] [#:module-path %load-path] 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:5909
+#: doc/guix.texi:7336
 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: example
-#: doc/guix.texi:5912
+#: doc/guix.texi:7339
 #, no-wrap
 msgid ""
 "(use-modules (guix gexp) (gnu packages base))\n"
@@ -11254,7 +13805,7 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix.texi:5916
+#: doc/guix.texi:7343
 #, no-wrap
 msgid ""
 "(gexp->script \"list-files\"\n"
@@ -11266,12 +13817,12 @@ msgstr ""
 "                       \"ls\"))\n"
 
 #. type: deffn
-#: doc/guix.texi:5921
+#: doc/guix.texi:7348
 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 @pxref{The Store Monad, @code{run-with-store}}), erhalten wir eine Ableitung, die eine ausführbare Datei @file{/gnu/store/@dots{}-list-files} generiert, ungefähr so:"
+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/@dots{}-list-files} generiert, ungefähr so:"
 
 #. type: example
-#: doc/guix.texi:5926
+#: doc/guix.texi:7353
 #, no-wrap
 msgid ""
 "#!/gnu/store/@dots{}-guile-2.0.11/bin/guile -ds\n"
@@ -11283,76 +13834,76 @@ msgstr ""
 "(execl \"/gnu/store/@dots{}-coreutils-8.22\"/bin/ls\" \"ls\")\n"
 
 #. type: deffn
-#: doc/guix.texi:5929
+#: doc/guix.texi:7356
 #, 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:5934
+#: doc/guix.texi:7361
 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:5936
+#: doc/guix.texi:7363
 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:5938
+#: doc/guix.texi:7365
 #, 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:5945
+#: doc/guix.texi:7372
 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:5950
+#: doc/guix.texi:7377
 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:5953
+#: doc/guix.texi:7380
 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:5955
+#: doc/guix.texi:7382
 #, 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]"
 
 #. type: deffn
-#: doc/guix.texi:5958
+#: doc/guix.texi:7385
 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."
 
 #. type: deffn
-#: doc/guix.texi:5960
+#: doc/guix.texi:7387
 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:5962
+#: doc/guix.texi:7389
 #, no-wrap
 msgid "{Monadic Procedure} text-file* @var{name} @var{text} @dots{}"
 msgstr "{Monadische Prozedur} text-file* @var{Name} @var{Text} @dots{}"
 
 #. type: deffn
-#: doc/guix.texi:5968
+#: doc/guix.texi:7395
 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:5973
+#: doc/guix.texi:7400
 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: example
-#: doc/guix.texi:5981
+#: doc/guix.texi:7408
 #, no-wrap
 msgid ""
 "(define (profile.sh)\n"
@@ -11370,23 +13921,23 @@ msgstr ""
 "              grep \"/bin:\" sed \"/bin\\n\"))\n"
 
 #. type: deffn
-#: doc/guix.texi:5986
+#: doc/guix.texi:7413
 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/@dots{}-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:5988
+#: doc/guix.texi:7415
 #, no-wrap
 msgid "{Scheme Procedure} mixed-text-file @var{name} @var{text} @dots{}"
 msgstr "{Scheme-Prozedur} mixed-text-file @var{Name} @var{Text} @dots{}"
 
 #. type: deffn
-#: doc/guix.texi:5992
+#: doc/guix.texi:7419
 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: example
-#: doc/guix.texi:5996
+#: doc/guix.texi:7423
 #, no-wrap
 msgid ""
 "(mixed-text-file \"profile\"\n"
@@ -11396,23 +13947,23 @@ msgstr ""
 "                 \"export PATH=\" coreutils \"/bin:\" grep \"/bin\")\n"
 
 #. type: deffn
-#: doc/guix.texi:5999
+#: doc/guix.texi:7426
 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:6001
+#: doc/guix.texi:7428
 #, 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:6006
+#: doc/guix.texi:7433
 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: example
-#: doc/guix.texi:6013
+#: doc/guix.texi:7440
 #, no-wrap
 msgid ""
 "(file-union \"etc\"\n"
@@ -11428,50 +13979,50 @@ msgstr ""
 "                                     \"alias ls='ls --color=auto'\"))))\n"
 
 #. type: deffn
-#: doc/guix.texi:6016
+#: doc/guix.texi:7443
 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:6018
+#: doc/guix.texi:7445
 #, 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:6021
+#: doc/guix.texi:7448
 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: example
-#: doc/guix.texi:6024
+#: doc/guix.texi:7451
 #, 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:6027
+#: doc/guix.texi:7454
 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:6029
+#: doc/guix.texi:7456
 #, no-wrap
 msgid "{Scheme Procedure} file-append @var{obj} @var{suffix} @dots{}"
 msgstr "{Scheme-Prozedur} file-append @var{Objekt} @var{Suffix} @dots{}"
 
 #. type: deffn
-#: doc/guix.texi:6033
+#: doc/guix.texi:7460
 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:6035
+#: doc/guix.texi:7462
 msgid "As an example, consider this gexp:"
 msgstr "Betrachten Sie zum Beispiel diesen G-Ausdruck:"
 
 #. type: example
-#: doc/guix.texi:6040
+#: doc/guix.texi:7467
 #, no-wrap
 msgid ""
 "(gexp->script \"run-uname\"\n"
@@ -11483,12 +14034,12 @@ msgstr ""
 "                                        \"/bin/uname\")))\n"
 
 #. type: deffn
-#: doc/guix.texi:6043
+#: doc/guix.texi:7470
 msgid "The same effect could be achieved with:"
 msgstr "Denselben Effekt könnte man erreichen mit:"
 
 #. type: example
-#: doc/guix.texi:6048
+#: doc/guix.texi:7475
 #, no-wrap
 msgid ""
 "(gexp->script \"run-uname\"\n"
@@ -11500,50 +14051,50 @@ msgstr ""
 "                                        \"/bin/uname\")))\n"
 
 #. type: deffn
-#: doc/guix.texi:6054
+#: doc/guix.texi:7481
 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 @dots{})} enthält, der den Dateinamen erst @emph{zur Laufzeit} zusammensetzt."
 
 #. type: Plain text
-#: doc/guix.texi:6061
+#: doc/guix.texi:7488
 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 @dots{})}."
 
 #. type: Plain text
-#: doc/guix.texi:6067
+#: doc/guix.texi:7494
 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:6068
+#: doc/guix.texi:7495
 #, 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:6074
+#: doc/guix.texi:7501
 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>}."
 
 #. type: section
-#: doc/guix.texi:6077
+#: doc/guix.texi:7504
 #, no-wrap
 msgid "Invoking @command{guix repl}"
 msgstr "@command{guix repl} aufrufen"
 
 #. type: cindex
-#: doc/guix.texi:6079
+#: doc/guix.texi:7506
 #, no-wrap
 msgid "REPL, read-eval-print loop"
 msgstr "REPL (Lese-Auswerten-Schreiben-Schleife)"
 
 #. type: Plain text
-#: doc/guix.texi:6085
+#: doc/guix.texi:7512
 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 ""
+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:"
 
 #. type: example
-#: doc/guix.texi:6091
+#: doc/guix.texi:7518
 #, no-wrap
 msgid ""
 "$ guix repl\n"
@@ -11551,136 +14102,133 @@ 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:6098
+#: doc/guix.texi:7525
 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 ""
+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:6100
+#: doc/guix.texi:7527
 msgid "The available options are as follows:"
 msgstr "Folgende @var{Optionen} gibt es:"
 
 #. type: item
-#: doc/guix.texi:6102 doc/guix.texi:7952
+#: doc/guix.texi:7529 doc/guix.texi:9489
 #, no-wrap
 msgid "--type=@var{type}"
-msgstr ""
+msgstr "--type=@var{Typ}"
 
 #. type: itemx
-#: doc/guix.texi:6103 doc/guix.texi:7953 doc/guix.texi:22545
+#: doc/guix.texi:7530 doc/guix.texi:9490 doc/guix.texi:24428
 #, no-wrap
 msgid "-t @var{type}"
-msgstr ""
+msgstr "-t @var{Typ}"
 
 #. type: table
-#: doc/guix.texi:6105
+#: doc/guix.texi:7532
 msgid "Start a REPL of the given @var{TYPE}, which can be one of the following:"
-msgstr ""
+msgstr "Startet eine REPL des angegebenen @var{Typ}s, der einer der Folgenden sein darf:"
 
 #. type: item
-#: doc/guix.texi:6107
+#: doc/guix.texi:7534
 #, no-wrap
 msgid "guile"
-msgstr ""
+msgstr "guile"
 
 #. type: table
-#: doc/guix.texi:6109
+#: doc/guix.texi:7536
 msgid "This is default, and it spawns a standard full-featured Guile REPL."
-msgstr ""
+msgstr "Die Voreinstellung, mit der eine normale, voll funktionsfähige Guile-REPL gestartet wird."
 
 #. type: item
-#: doc/guix.texi:6109
+#: doc/guix.texi:7536
 #, no-wrap
 msgid "machine"
-msgstr ""
+msgstr "machine"
 
 #. type: table
-#: doc/guix.texi:6112
+#: doc/guix.texi:7539
 msgid "Spawn a REPL that uses the machine-readable protocol.  This is the protocol that the @code{(guix inferior)} module speaks."
-msgstr ""
+msgstr "Startet eine REPL, die ein maschinenlesbares Protokoll benutzt. Dieses Protokoll wird vom Modul @code{(guix inferior)} gesprochen."
 
 #. type: table
-#: doc/guix.texi:6118
+#: doc/guix.texi:7545
 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 ""
+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:6120
+#: doc/guix.texi:7547
 #, no-wrap
 msgid "--listen=tcp:37146"
-msgstr ""
+msgstr "--listen=tcp:37146"
 
 #. type: table
-#: doc/guix.texi:6122
+#: doc/guix.texi:7549
 msgid "Accept connections on localhost on port 37146."
-msgstr ""
+msgstr "Verbindungen mit dem »localhost« auf Port 37146 akzeptieren."
 
 #. type: item
-#: doc/guix.texi:6123
+#: doc/guix.texi:7550
 #, no-wrap
 msgid "--listen=unix:/tmp/socket"
-msgstr ""
+msgstr "--listen=unix:/tmp/socket"
 
 #. type: table
-#: doc/guix.texi:6125
+#: doc/guix.texi:7552
 msgid "Accept connections on the Unix-domain socket @file{/tmp/socket}."
-msgstr ""
+msgstr "Verbindungen zum Unix-Socket @file{/tmp/socket} akzeptieren."
 
 #. type: Plain text
-#: doc/guix.texi:6136
+#: doc/guix.texi:7563
 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:6159
+#: doc/guix.texi:7585
 #, no-wrap
 msgid "package building"
 msgstr "Paketerstellung"
 
 #. type: command{#1}
-#: doc/guix.texi:6160
+#: doc/guix.texi:7586
 #, no-wrap
 msgid "guix build"
 msgstr "guix build"
 
 #. type: Plain text
-#: doc/guix.texi:6166
+#: doc/guix.texi:7592
 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} (@pxref{Invoking guix package}). @command{guix build} wird also hauptsächlich von Entwicklern der Distribution benutzt."
-
-#. type: Plain text
-#: doc/guix.texi:6168 doc/guix.texi:6835 doc/guix.texi:6902 doc/guix.texi:7657
-#: doc/guix.texi:8002 doc/guix.texi:8332 doc/guix.texi:8637 doc/guix.texi:8703
-#: doc/guix.texi:8742
-msgid "The general syntax is:"
-msgstr "Die allgemeine Syntax lautet:"
+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:6171
+#: doc/guix.texi:7597
 #, no-wrap
 msgid "guix build @var{options} @var{package-or-derivation}@dots{}\n"
 msgstr "guix build @var{Optionen} @var{Paket-oder-Ableitung}@dots{}\n"
 
 #. type: Plain text
-#: doc/guix.texi:6176
+#: doc/guix.texi:7602
 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:6179
+#: doc/guix.texi:7605
 #, no-wrap
 msgid "guix build emacs guile\n"
 msgstr "guix build emacs guile\n"
 
 #. type: Plain text
-#: doc/guix.texi:6182
+#: doc/guix.texi:7608
 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:6186
+#: doc/guix.texi:7612
 #, no-wrap
 msgid ""
 "guix build --quiet --keep-going \\\n"
@@ -11690,305 +14238,334 @@ msgstr ""
 "  `guix package -A | cut -f1,2 --output-delimiter=@@`\n"
 
 #. type: Plain text
-#: doc/guix.texi:6194
+#: doc/guix.texi:7620
 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/@dots{}-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 (@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/@dots{}-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:6199
+#: doc/guix.texi:7625
 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."
 
 #. type: Plain text
-#: doc/guix.texi:6202
+#: doc/guix.texi:7628
 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:6217
+#: doc/guix.texi:7643
 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: item
-#: doc/guix.texi:6220
+#: doc/guix.texi:7646
 #, no-wrap
 msgid "--load-path=@var{directory}"
 msgstr "--load-path=@var{Verzeichnis}"
 
 #. type: itemx
-#: doc/guix.texi:6221
+#: doc/guix.texi:7647
 #, no-wrap
 msgid "-L @var{directory}"
 msgstr "-L @var{Verzeichnis}"
 
 #. type: table
-#: doc/guix.texi:6224
+#: doc/guix.texi:7650
 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 (@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:6227
+#: doc/guix.texi:7653
 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:6228
+#: doc/guix.texi:7654
 #, no-wrap
 msgid "--keep-failed"
 msgstr "--keep-failed"
 
 #. type: itemx
-#: doc/guix.texi:6229
+#: doc/guix.texi:7655
 #, no-wrap
 msgid "-K"
 msgstr "-K"
 
 #. type: table
-#: doc/guix.texi:6235
+#: doc/guix.texi:7661
 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 @xref{Debugging Build Failures} zeigt Ihnen Hinweise und Tricks, wie Erstellungsfehler untersucht werden können."
+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:6239
+#: doc/guix.texi:7665
 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 "Diese Option hat keine Auswirkungen, wenn eine Verbindung zu einem entfernten Daemon über eine @code{guix://}-URI verwendet wurde (@pxref{The Store, the @code{GUIX_DAEMON_SOCKET} variable})."
+msgstr "Diese Option 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})."
 
 #. type: item
-#: doc/guix.texi:6240
+#: doc/guix.texi:7666
 #, no-wrap
 msgid "--keep-going"
 msgstr "--keep-going"
 
 #. type: itemx
-#: doc/guix.texi:6241
+#: doc/guix.texi:7667
 #, no-wrap
 msgid "-k"
 msgstr "-k"
 
 #. type: table
-#: doc/guix.texi:6244
+#: doc/guix.texi:7670
 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:6247
+#: doc/guix.texi:7673
 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:6251
+#: doc/guix.texi:7677
 msgid "Do not build the derivations."
 msgstr "Die Ableitungen nicht erstellen."
 
 #. type: anchor{#1}
-#: doc/guix.texi:6253
+#: doc/guix.texi:7679
 msgid "fallback-option"
 msgstr "fallback-option"
 
 #. type: item
-#: doc/guix.texi:6253
+#: doc/guix.texi:7679
 #, no-wrap
 msgid "--fallback"
 msgstr "--fallback"
 
 #. type: table
-#: doc/guix.texi:6256
+#: doc/guix.texi:7682
 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 als »Fallback« lokal selbst erstellen (@pxref{Substitution Failure})."
+msgstr "Wenn das Substituieren vorerstellter Binärdateien fehlschlägt, diese als »Fallback« lokal selbst erstellen (siehe @ref{Substitution Failure})."
 
 #. type: anchor{#1}
-#: doc/guix.texi:6262
+#: doc/guix.texi:7688
 msgid "client-substitute-urls"
 msgstr "client-substitute-urls"
 
 #. type: table
-#: doc/guix.texi:6262
+#: doc/guix.texi:7688
 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 (@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:6266
+#: doc/guix.texi:7692
 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 (@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:6269
+#: doc/guix.texi:7695
 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:6275
+#: doc/guix.texi:7701
 #, no-wrap
 msgid "--no-grafts"
 msgstr "--no-grafts"
 
 #. type: table
-#: doc/guix.texi:6279
+#: doc/guix.texi:7705
 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 @xref{Security Updates} hat weitere Informationen zu Veredelungen."
+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:6280
+#: doc/guix.texi:7706
 #, no-wrap
 msgid "--rounds=@var{n}"
 msgstr "--rounds=@var{n}"
 
 #. type: table
-#: doc/guix.texi:6283
+#: doc/guix.texi:7709
 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:6288
+#: doc/guix.texi:7714
 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 @xref{Invoking guix challenge} erklärt dies genauer."
+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:6294
+#: doc/guix.texi:7720
 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 (@pxref{Invoking guix archive}), dann neu erstellen und letztlich die beiden Erstellungsergebnisse vergleichen."
+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."
 
 #. type: table
-#: doc/guix.texi:6299
+#: doc/guix.texi:7725
 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 "Nicht versuchen, Erstellungen über den »Build-Hook« des Daemons auszulagern (@pxref{Daemon Offload Setup}). Somit wird lokal erstellt, statt Erstellungen auf entfernte Maschinen auszulagern."
+msgstr "Nicht versuchen, Erstellungen über den »Build-Hook« des Daemons auszulagern (siehe @ref{Daemon Offload Setup}). Somit wird lokal erstellt, statt Erstellungen auf entfernte Maschinen auszulagern."
 
 #. type: table
-#: doc/guix.texi:6306
+#: doc/guix.texi:7732
 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 (@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}})."
 
 #. type: table
-#: doc/guix.texi:6313
+#: doc/guix.texi:7739
 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 (@pxref{Invoking guix-daemon, @code{--timeout}})."
+msgstr "Standardmäßig wird die Einstellung für den Daemon benutzt (siehe @ref{Invoking guix-daemon, @code{--timeout}})."
+
+#. type: cindex
+#: doc/guix.texi:7742
+#, no-wrap
+msgid "verbosity, of the command-line tools"
+msgstr "Ausführlichkeit der Befehlszeilenwerkzeuge"
+
+#. type: cindex
+#: doc/guix.texi:7743
+#, no-wrap
+msgid "build logs, verbosity"
+msgstr "Erstellungsprotokolle, Ausführlichkeit"
 
 #. type: item
-#: doc/guix.texi:6314
+#: doc/guix.texi:7744
+#, no-wrap
+msgid "-v @var{level}"
+msgstr "-v @var{Stufe}"
+
+#. type: itemx
+#: doc/guix.texi:7745
 #, no-wrap
 msgid "--verbosity=@var{level}"
 msgstr "--verbosity=@var{Stufe}"
 
 #. type: table
-#: doc/guix.texi:6318
-msgid "Use the given verbosity level.  @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 "Die angegebene Ausführlichkeitsstufe verwenden. 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."
+#: doc/guix.texi:7749
+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:6323
+#: doc/guix.texi:7754
 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:6329
+#: doc/guix.texi:7760
 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 @xref{Invoking guix-daemon, @code{--max-jobs}}, finden Sie Details zu dieser Option und der äquivalenten Option des @command{guix-daemon}."
+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}."
+
+#. type: item
+#: doc/guix.texi:7761
+#, no-wrap
+msgid "--debug=@var{level}"
+msgstr "--debug=@var{Stufe}"
+
+#. type: table
+#: doc/guix.texi:7765
+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:6336
+#: doc/guix.texi:7772
 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:6340
+#: doc/guix.texi:7776
 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}."
 
 #. type: defvr
-#: doc/guix.texi:6341
+#: doc/guix.texi:7777
 #, no-wrap
 msgid "{Environment Variable} GUIX_BUILD_OPTIONS"
 msgstr "{Umgebungsvariable} GUIX_BUILD_OPTIONS"
 
 #. type: defvr
-#: doc/guix.texi:6346
+#: doc/guix.texi:7782
 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:6349
+#: doc/guix.texi:7785
 #, 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:6353
+#: doc/guix.texi:7789
 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:6359
+#: doc/guix.texi:7795
 #, no-wrap
 msgid "package variants"
 msgstr "Paketvarianten"
 
 #. type: Plain text
-#: doc/guix.texi:6367
+#: doc/guix.texi:7803
 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 (@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: item
-#: doc/guix.texi:6370
+#: doc/guix.texi:7806
 #, no-wrap
 msgid "--with-source=@var{source}"
 msgstr "--with-source=@var{Quelle}"
 
 #. type: itemx
-#: doc/guix.texi:6371
+#: doc/guix.texi:7807
 #, no-wrap
 msgid "--with-source=@var{package}=@var{source}"
 msgstr "--with-source=@var{Paket}=@var{Quelle}"
 
 #. type: itemx
-#: doc/guix.texi:6372
+#: doc/guix.texi:7808
 #, 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:6377
+#: doc/guix.texi:7813
 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} (@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:6383
+#: doc/guix.texi:7819
 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."
+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:6386
+#: doc/guix.texi:7822
 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:6391
+#: doc/guix.texi:7827
 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:6394
+#: doc/guix.texi:7830
 #, 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:6398
+#: doc/guix.texi:7834
 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:"
 
 #. type: example
-#: doc/guix.texi:6401
+#: doc/guix.texi:7837
 #, 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:6404
+#: doc/guix.texi:7840
 msgid "@dots{} or to build from a checkout in a pristine environment:"
 msgstr "@dots{} oder ein Checkout eines versionskontrollierten Repositorys in einer isolierten Umgebung zu erstellen:"
 
 #. type: example
-#: doc/guix.texi:6408
+#: doc/guix.texi:7844
 #, no-wrap
 msgid ""
 "$ git clone git://git.sv.gnu.org/guix.git\n"
@@ -11998,184 +14575,274 @@ msgstr ""
 "$ guix build guix --with-source=guix@@1.0=./guix\n"
 
 #. type: item
-#: doc/guix.texi:6410
+#: doc/guix.texi:7846
 #, no-wrap
 msgid "--with-input=@var{package}=@var{replacement}"
 msgstr "--with-input=@var{Paket}=@var{Ersatz}"
 
 #. type: table
-#: doc/guix.texi:6415
+#: doc/guix.texi:7851
 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:6419
+#: doc/guix.texi:7855
 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:6422
+#: doc/guix.texi:7858
 #, 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:6427
+#: doc/guix.texi:7863
 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:6430
+#: doc/guix.texi:7866
 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} (@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:6431
+#: doc/guix.texi:7867
 #, no-wrap
 msgid "--with-graft=@var{package}=@var{replacement}"
 msgstr "--with-graft=@var{Paket}=@var{Ersatz}"
 
 #. type: table
-#: doc/guix.texi:6437
+#: doc/guix.texi:7873
 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 @xref{Security Updates} finden Sie weitere Informationen über Veredelungen."
+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."
 
 #. type: table
-#: doc/guix.texi:6441
+#: doc/guix.texi:7877
 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:6444
+#: doc/guix.texi:7880
 #, 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:6453
+#: doc/guix.texi:7889
 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: item
+#: doc/guix.texi:7890
+#, no-wrap
+msgid "--with-git-url=@var{package}=@var{url}"
+msgstr "--with-git-url=@var{Paket}=@var{URL}"
+
+#. type: cindex
+#: doc/guix.texi:7891
+#, no-wrap
+msgid "Git, using the latest commit"
+msgstr "Git, den neuesten Commit benutzen"
+
+#. type: cindex
+#: doc/guix.texi:7892
+#, no-wrap
+msgid "latest commit, building"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:7896
+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:7899
+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:7903
+#, no-wrap
+msgid ""
+"guix build python-numpy \\\n"
+"  --with-git-url=python=https://github.com/python/cpython\n"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:7907
+msgid "This option can also be combined with @code{--with-branch} or @code{--with-commit} (see below)."
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:7908 doc/guix.texi:20488
+#, no-wrap
+msgid "continuous integration"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:7914
+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:7918
+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:7919
+#, no-wrap
+msgid "--with-branch=@var{package}=@var{branch}"
+msgstr "--with-branch=@var{Paket}=@var{Branch}"
+
+#. type: table
+#: doc/guix.texi:7925
+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 ""
+
+#. type: table
+#: doc/guix.texi:7930
+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:7933
+#, 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:7935
+#, no-wrap
+msgid "--with-commit=@var{package}=@var{commit}"
+msgstr "--with-commit=@var{Paket}=@var{Commit}"
+
+#. type: table
+#: doc/guix.texi:7939
+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 ""
+
 #. type: Plain text
-#: doc/guix.texi:6461
+#: doc/guix.texi:7946
 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:6464
+#: doc/guix.texi:7949
 #, no-wrap
 msgid "--quiet"
 msgstr "--quiet"
 
 #. type: itemx
-#: doc/guix.texi:6465
+#: doc/guix.texi:7950
 #, no-wrap
 msgid "-q"
 msgstr "-q"
 
 #. type: table
-#: doc/guix.texi:6469
-msgid "Build quietly, without displaying the build log.  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. 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:7954
+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."
 
 #. type: item
-#: doc/guix.texi:6470
+#: doc/guix.texi:7955
 #, no-wrap
 msgid "--file=@var{file}"
 msgstr "--file=@var{Datei}"
 
 #. type: table
-#: doc/guix.texi:6474
+#: doc/guix.texi:7959
 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 (@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, file-like objects})."
 
 #. type: table
-#: doc/guix.texi:6477
+#: doc/guix.texi:7962
 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 (@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:6485
+#: doc/guix.texi:7970
 msgid "Build the package or derivation @var{expr} evaluates to."
-msgstr ""
+msgstr "Das Paket oder die Ableitung erstellen, zu der der @var{Ausdruck} ausgewertet wird."
 
 #. type: table
-#: doc/guix.texi:6489
+#: doc/guix.texi:7974
 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 ""
+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:6493
+#: doc/guix.texi:7978
 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 ""
+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:6497
+#: doc/guix.texi:7982
 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 ""
+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:6498
+#: doc/guix.texi:7983
 #, no-wrap
 msgid "--source"
-msgstr ""
+msgstr "--source"
 
 #. type: itemx
-#: doc/guix.texi:6499
+#: doc/guix.texi:7984
 #, no-wrap
 msgid "-S"
-msgstr ""
+msgstr "-S"
 
 #. type: table
-#: doc/guix.texi:6502
+#: doc/guix.texi:7987
 msgid "Build the source derivations of the packages, rather than the packages themselves."
-msgstr ""
+msgstr "Die Quellcode-Ableitung der Pakete statt die Pakete selbst erstellen."
 
 #. type: table
-#: doc/guix.texi:6506
+#: doc/guix.texi:7991
 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 ""
+msgstr "Zum Beispiel liefert @code{guix build -S gcc} etwas in der Art von @file{/gnu/store/@dots{}-gcc-4.7.2.tar.bz2}, also den Tarball mit dem GCC-Quellcode."
 
 #. type: table
-#: doc/guix.texi:6510
+#: doc/guix.texi:7995
 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 ""
+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: item
-#: doc/guix.texi:6511
+#: doc/guix.texi:7996
 #, no-wrap
 msgid "--sources"
-msgstr ""
+msgstr "--sources"
 
 #. type: table
-#: doc/guix.texi:6518
+#: doc/guix.texi:8003
 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 ""
+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:"
 
 #. type: item
-#: doc/guix.texi:6520 doc/guix.texi:7846
+#: doc/guix.texi:8005 doc/guix.texi:9367
 #, no-wrap
 msgid "package"
-msgstr ""
+msgstr "package"
 
 #. type: table
-#: doc/guix.texi:6523
+#: doc/guix.texi:8008
 msgid "This value causes the @code{--sources} option to behave in the same way as the @code{--source} option."
-msgstr ""
+msgstr "Mit diesem Wert verhält sich die Befehlszeilenoption @code{--sources} auf genau die gleiche Weise wie die Befehlszeilenoption @code{--source}."
 
 #. type: item
-#: doc/guix.texi:6524 doc/guix.texi:13054
+#: doc/guix.texi:8009 doc/guix.texi:13821
 #, no-wrap
 msgid "all"
-msgstr ""
+msgstr "all"
 
 #. type: table
-#: doc/guix.texi:6527
+#: doc/guix.texi:8012
 msgid "Build the source derivations of all packages, including any source that might be listed as @code{inputs}.  This is the default value."
-msgstr ""
+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:6533
+#: doc/guix.texi:8018
 #, no-wrap
 msgid ""
 "$ guix build --sources tzdata\n"
@@ -12183,20 +14850,24 @@ msgid ""
 "   /gnu/store/@dots{}-tzdata2015b.tar.gz.drv\n"
 "   /gnu/store/@dots{}-tzcode2015b.tar.gz.drv\n"
 msgstr ""
+"$ guix build --sources tzdata\n"
+"Folgende Ableitungen werden erstellt:\n"
+"   /gnu/store/@dots{}-tzdata2015b.tar.gz.drv\n"
+"   /gnu/store/@dots{}-tzcode2015b.tar.gz.drv\n"
 
 #. type: item
-#: doc/guix.texi:6535
+#: doc/guix.texi:8020
 #, no-wrap
 msgid "transitive"
-msgstr ""
+msgstr "transitive"
 
 #. type: table
-#: doc/guix.texi:6539
-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 ""
+#: doc/guix.texi:8024
+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:6550
+#: doc/guix.texi:8035
 #, no-wrap
 msgid ""
 "$ guix build --sources=transitive tzdata\n"
@@ -12209,156 +14880,164 @@ msgid ""
 "   /gnu/store/@dots{}-bash-4.3.tar.xz.drv\n"
 "@dots{}\n"
 msgstr ""
+"$ guix build --sources=transitive tzdata\n"
+"Folgende Ableitungen werden erstellt:\n"
+"   /gnu/store/@dots{}-tzcode2015b.tar.gz.drv\n"
+"   /gnu/store/@dots{}-findutils-4.4.2.tar.xz.drv\n"
+"   /gnu/store/@dots{}-grep-2.21.tar.xz.drv\n"
+"   /gnu/store/@dots{}-coreutils-8.23.tar.xz.drv\n"
+"   /gnu/store/@dots{}-make-4.1.tar.xz.drv\n"
+"   /gnu/store/@dots{}-bash-4.3.tar.xz.drv\n"
+"@dots{}\n"
+
+#. type: table
+#: doc/guix.texi:8045
+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:6563
+#: doc/guix.texi:8050
 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 ""
+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."
 
 #. type: table
-#: doc/guix.texi:6570
+#: doc/guix.texi:8057
 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 ""
+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."
 
 #. type: quotation
-#: doc/guix.texi:6575
+#: doc/guix.texi:8062
 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 ""
+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:6581
+#: doc/guix.texi:8068
 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 ""
+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:6585
+#: doc/guix.texi:8072
 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 ""
+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: anchor{#1}
-#: doc/guix.texi:6593
+#: doc/guix.texi:8080
 msgid "build-check"
-msgstr ""
+msgstr "build-check"
 
 #. type: item
-#: doc/guix.texi:6593
+#: doc/guix.texi:8080
 #, no-wrap
 msgid "--check"
-msgstr ""
+msgstr "--check"
 
 #. type: cindex
-#: doc/guix.texi:6594
+#: doc/guix.texi:8081
 #, no-wrap
 msgid "determinism, checking"
-msgstr ""
+msgstr "Determinismus, Überprüfung"
 
 #. type: cindex
-#: doc/guix.texi:6595
+#: doc/guix.texi:8082
 #, no-wrap
 msgid "reproducibility, checking"
-msgstr ""
+msgstr "Reproduzierbarkeit, Überprüfung"
 
 #. type: table
-#: doc/guix.texi:6599
+#: doc/guix.texi:8086
 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 ""
+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:6604
+#: doc/guix.texi:8091
 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 ""
+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:6609
+#: doc/guix.texi:8096
 #, no-wrap
 msgid "--repair"
-msgstr ""
+msgstr "--repair"
 
 #. type: cindex
-#: doc/guix.texi:6610
+#: doc/guix.texi:8097
 #, no-wrap
 msgid "repairing store items"
-msgstr ""
+msgstr "Reparieren von Store-Objekten"
 
 #. type: table
-#: doc/guix.texi:6614
+#: doc/guix.texi:8101
 msgid "Attempt to repair the specified store items, if they are corrupt, by re-downloading or rebuilding them."
-msgstr ""
+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:6616
+#: doc/guix.texi:8103
 msgid "This operation is not atomic and thus restricted to @code{root}."
-msgstr ""
+msgstr "Diese Operation ist nicht atomar und nur der Administratornutzer @code{root} kann sie verwenden."
 
 #. type: item
-#: doc/guix.texi:6617
+#: doc/guix.texi:8104
 #, no-wrap
 msgid "--derivations"
-msgstr ""
-
-#. type: table
-#: doc/guix.texi:6621
-msgid "Return the derivation paths, not the output paths, of the given packages."
-msgstr ""
-
-#. type: item
-#: doc/guix.texi:6622 doc/guix.texi:8110 doc/guix.texi:22567
-#, no-wrap
-msgid "--root=@var{file}"
-msgstr ""
+msgstr "--derivations"
 
 #. type: itemx
-#: doc/guix.texi:6623 doc/guix.texi:8111 doc/guix.texi:22568
+#: doc/guix.texi:8105 doc/guix.texi:24423
 #, no-wrap
-msgid "-r @var{file}"
-msgstr ""
+msgid "-d"
+msgstr "-d"
+
+#. type: table
+#: doc/guix.texi:8108
+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:6624
+#: doc/guix.texi:8111
 #, no-wrap
 msgid "GC roots, adding"
-msgstr ""
+msgstr "GC-Wurzeln, Hinzufügen"
 
 #. type: cindex
-#: doc/guix.texi:6625
+#: doc/guix.texi:8112
 #, no-wrap
 msgid "garbage collector roots, adding"
-msgstr ""
+msgstr "Müllsammlerwurzeln, Hinzufügen"
 
 #. type: table
-#: doc/guix.texi:6628 doc/guix.texi:22571
+#: doc/guix.texi:8115 doc/guix.texi:24454
 msgid "Make @var{file} a symlink to the result, and register it as a garbage collector root."
-msgstr ""
+msgstr "Die @var{Datei} zu einer symbolischen Verknüpfung auf das Ergebnis machen und als Müllsammlerwurzel registrieren."
 
 #. type: table
-#: doc/guix.texi:6634
+#: doc/guix.texi:8121
 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 ""
+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:6635
+#: doc/guix.texi:8122
 #, no-wrap
 msgid "--log-file"
-msgstr ""
+msgstr "--log-file"
 
 #. type: cindex
-#: doc/guix.texi:6636
+#: doc/guix.texi:8123
 #, no-wrap
 msgid "build logs, access"
-msgstr ""
+msgstr "Erstellungsprotokolle, Zugriff"
 
 #. type: table
-#: doc/guix.texi:6640
+#: doc/guix.texi:8127
 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 ""
+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:6643
+#: doc/guix.texi:8130
 msgid "This works regardless of how packages or derivations are specified.  For instance, the following invocations are equivalent:"
-msgstr ""
+msgstr "Dies funktioniert, egal wie die Pakete oder Ableitungen angegeben werden. Zum Beispiel sind folgende Aufrufe alle äquivalent:"
 
 #. type: example
-#: doc/guix.texi:6649
+#: doc/guix.texi:8136
 #, no-wrap
 msgid ""
 "guix build --log-file `guix build -d guile`\n"
@@ -12366,53 +15045,59 @@ msgid ""
 "guix build --log-file guile\n"
 "guix build --log-file -e '(@@ (gnu packages guile) guile-2.0)'\n"
 msgstr ""
+"guix build --log-file `guix build -d guile`\n"
+"guix build --log-file `guix build guile`\n"
+"guix build --log-file guile\n"
+"guix build --log-file -e '(@@ (gnu packages guile) guile-2.0)'\n"
 
 #. type: table
-#: doc/guix.texi:6654
+#: doc/guix.texi:8141
 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 ""
+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)."
 
 #. type: table
-#: doc/guix.texi:6657
+#: doc/guix.texi:8144
 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 ""
+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:6661
+#: doc/guix.texi:8148
 #, no-wrap
 msgid ""
 "$ guix build --log-file gdb -s mips64el-linux\n"
-"https://hydra.gnu.org/log/@dots{}-gdb-7.10\n"
+"https://@value{SUBSTITUTE-SERVER}/log/@dots{}-gdb-7.10\n"
 msgstr ""
+"$ guix build --log-file gdb -s mips64el-linux\n"
+"https://@value{SUBSTITUTE-SERVER}/log/@dots{}-gdb-7.10\n"
 
 #. type: table
-#: doc/guix.texi:6664
+#: doc/guix.texi:8151
 msgid "You can freely access a huge library of build logs!"
-msgstr ""
+msgstr "So haben Sie umsonst Zugriff auf eine riesige Bibliothek von Erstellungsprotokollen!"
 
 #. type: cindex
-#: doc/guix.texi:6669
+#: doc/guix.texi:8156
 #, no-wrap
 msgid "build failures, debugging"
-msgstr ""
+msgstr "Erstellungsfehler, Fehlersuche"
 
 #. type: Plain text
-#: doc/guix.texi:6675
+#: doc/guix.texi:8162
 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 ""
+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:6680
+#: doc/guix.texi:8167
 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 ""
+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}})."
 
 #. type: Plain text
-#: doc/guix.texi:6686
+#: doc/guix.texi:8173
 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 ""
+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:6693
+#: doc/guix.texi:8180
 #, no-wrap
 msgid ""
 "$ guix build foo -K\n"
@@ -12421,24 +15106,29 @@ msgid ""
 "$ source ./environment-variables\n"
 "$ cd foo-1.2\n"
 msgstr ""
+"$ guix build foo -K\n"
+"@dots{} @i{build fails}\n"
+"$ cd /tmp/guix-build-foo.drv-0\n"
+"$ source ./environment-variables\n"
+"$ cd foo-1.2\n"
 
 #. type: Plain text
-#: doc/guix.texi:6697
+#: doc/guix.texi:8184
 msgid "Now, you can invoke commands as if you were the daemon (almost) and troubleshoot your build process."
-msgstr ""
+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:6703
+#: doc/guix.texi:8190
 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 ""
+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:6706
+#: doc/guix.texi:8193
 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 ""
+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:6714
+#: doc/guix.texi:8201
 #, no-wrap
 msgid ""
 "$ guix build -K foo\n"
@@ -12448,554 +15138,563 @@ msgid ""
 "[env]# source ./environment-variables\n"
 "[env]# cd foo-1.2\n"
 msgstr ""
+"$ guix build -K foo\n"
+"@dots{}\n"
+"$ cd /tmp/guix-build-foo.drv-0\n"
+"$ guix environment --no-grafts -C foo --ad-hoc strace gdb\n"
+"[env]# source ./environment-variables\n"
+"[env]# cd foo-1.2\n"
 
 #. type: Plain text
-#: doc/guix.texi:6723
+#: doc/guix.texi:8210
 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 ""
+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)."
 
 #. type: Plain text
-#: doc/guix.texi:6726
+#: doc/guix.texi:8213
 msgid "To get closer to a container like that used by the build daemon, we can remove @file{/bin/sh}:"
-msgstr ""
+msgstr "Um der isolierten Umgebung des Erstellungsdaemons noch näher zu kommen, können wir @file{/bin/sh} entfernen:"
 
 #. type: example
-#: doc/guix.texi:6729
+#: doc/guix.texi:8216
 #, no-wrap
 msgid "[env]# rm /bin/sh\n"
-msgstr ""
+msgstr "[env]# rm /bin/sh\n"
 
 #. type: Plain text
-#: doc/guix.texi:6733
+#: doc/guix.texi:8220
 msgid "(Don't worry, this is harmless: this is all happening in the throw-away container created by @command{guix environment}.)"
-msgstr ""
+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:6736
+#: doc/guix.texi:8223
 msgid "The @command{strace} command is probably not in the search path, but we can run:"
-msgstr ""
+msgstr "Der Befehl @command{strace} befindet sich wahrscheinlich nicht in Ihrem Suchpfad, aber wir können ihn so benutzen:"
 
 #. type: example
-#: doc/guix.texi:6739
+#: doc/guix.texi:8226
 #, no-wrap
 msgid "[env]# $GUIX_ENVIRONMENT/bin/strace -f -o log make check\n"
-msgstr ""
+msgstr "[env]# $GUIX_ENVIRONMENT/bin/strace -f -o log make check\n"
 
 #. type: Plain text
-#: doc/guix.texi:6744
+#: doc/guix.texi:8231
 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 ""
+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:6747
+#: doc/guix.texi:8234
 #, no-wrap
 msgid "Invoking @command{guix edit}"
-msgstr ""
+msgstr "@command{guix edit} aufrufen"
 
 #. type: command{#1}
-#: doc/guix.texi:6749
+#: doc/guix.texi:8236
 #, no-wrap
 msgid "guix edit"
-msgstr ""
+msgstr "guix edit"
 
 #. type: cindex
-#: doc/guix.texi:6750
+#: doc/guix.texi:8237
 #, no-wrap
 msgid "package definition, editing"
-msgstr ""
+msgstr "Paketdefinition, Bearbeiten"
 
 #. type: Plain text
-#: doc/guix.texi:6755
+#: doc/guix.texi:8242
 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 ""
+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:6758
+#: doc/guix.texi:8245
 #, no-wrap
 msgid "guix edit gcc@@4.9 vim\n"
-msgstr ""
+msgstr "guix edit gcc@@4.9 vim\n"
 
 #. type: Plain text
-#: doc/guix.texi:6764
+#: doc/guix.texi:8251
 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 ""
+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."
 
 #. type: Plain text
-#: doc/guix.texi:6770
+#: doc/guix.texi:8257
 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 ""
+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."
 
 #. type: section
-#: doc/guix.texi:6773
+#: doc/guix.texi:8260
 #, no-wrap
 msgid "Invoking @command{guix download}"
-msgstr ""
+msgstr "@command{guix download} aufrufen"
 
 #. type: command{#1}
-#: doc/guix.texi:6775
+#: doc/guix.texi:8262
 #, no-wrap
 msgid "guix download"
-msgstr ""
+msgstr "guix download"
 
 #. type: cindex
-#: doc/guix.texi:6776
+#: doc/guix.texi:8263
 #, no-wrap
 msgid "downloading package sources"
-msgstr ""
+msgstr "Paketquellcode herunterladen"
 
 #. type: Plain text
-#: doc/guix.texi:6783
+#: doc/guix.texi:8270
 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 ""
+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:6790
+#: doc/guix.texi:8277
 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 ""
+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:6798
+#: doc/guix.texi:8285
 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 ""
+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:6803
+#: doc/guix.texi:8290
 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 ""
+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."
 
 #. type: Plain text
-#: doc/guix.texi:6805 doc/guix.texi:8390
+#: doc/guix.texi:8292 doc/guix.texi:9609
 msgid "The following options are available:"
-msgstr ""
+msgstr "Folgende Befehlszeilenoptionen stehen zur Verfügung:"
 
 #. type: item
-#: doc/guix.texi:6807 doc/guix.texi:6846
+#: doc/guix.texi:8294 doc/guix.texi:8333
 #, no-wrap
 msgid "--format=@var{fmt}"
-msgstr ""
+msgstr "--format=@var{Format}"
 
 #. type: itemx
-#: doc/guix.texi:6808 doc/guix.texi:6847
+#: doc/guix.texi:8295 doc/guix.texi:8334
 #, no-wrap
 msgid "-f @var{fmt}"
-msgstr ""
+msgstr "-f @var{Format}"
 
 #. type: table
-#: doc/guix.texi:6811
+#: doc/guix.texi:8298
 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 ""
+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:6812
+#: doc/guix.texi:8299
 #, no-wrap
 msgid "--no-check-certificate"
-msgstr ""
+msgstr "--no-check-certificate"
 
 #. type: table
-#: doc/guix.texi:6814
+#: doc/guix.texi:8301
 msgid "Do not validate the X.509 certificates of HTTPS servers."
-msgstr ""
+msgstr "X.509-Zertifikate von HTTPS-Servern @emph{nicht} validieren."
 
 #. type: table
-#: doc/guix.texi:6818
+#: doc/guix.texi:8305
 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 ""
+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:6819
+#: doc/guix.texi:8306
 #, no-wrap
 msgid "--output=@var{file}"
-msgstr ""
+msgstr "--output=@var{Datei}"
 
 #. type: itemx
-#: doc/guix.texi:6820
+#: doc/guix.texi:8307
 #, no-wrap
 msgid "-o @var{file}"
-msgstr ""
+msgstr "-o @var{Datei}"
 
 #. type: table
-#: doc/guix.texi:6823
+#: doc/guix.texi:8310
 msgid "Save the downloaded file to @var{file} instead of adding it to the store."
-msgstr ""
+msgstr "Die heruntergeladene Datei @emph{nicht} in den Store, sondern in die angegebene @var{Datei} abspeichern."
 
 #. type: section
-#: doc/guix.texi:6826
+#: doc/guix.texi:8313
 #, no-wrap
 msgid "Invoking @command{guix hash}"
-msgstr ""
+msgstr "@command{guix hash} aufrufen"
 
 #. type: command{#1}
-#: doc/guix.texi:6828
+#: doc/guix.texi:8315
 #, no-wrap
 msgid "guix hash"
-msgstr ""
+msgstr "guix hash"
 
 #. type: Plain text
-#: doc/guix.texi:6833
+#: doc/guix.texi:8320
 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 ""
+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})."
 
 #. type: example
-#: doc/guix.texi:6838
+#: doc/guix.texi:8325
 #, no-wrap
 msgid "guix hash @var{option} @var{file}\n"
-msgstr ""
+msgstr "guix hash @var{Option} @var{Datei}\n"
 
 #. type: Plain text
-#: doc/guix.texi:6843
+#: doc/guix.texi:8330
 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 ""
+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:6849
+#: doc/guix.texi:8336
 msgid "Write the hash in the format specified by @var{fmt}."
-msgstr ""
+msgstr "Gibt die Prüfsumme im angegebenen @var{Format} aus."
 
 #. type: table
-#: doc/guix.texi:6852
+#: doc/guix.texi:8339
 msgid "Supported formats: @code{nix-base32}, @code{base32}, @code{base16} (@code{hex} and @code{hexadecimal} can be used as well)."
-msgstr ""
+msgstr "Unterstützte Formate: @code{nix-base32}, @code{base32}, @code{base16} (@code{hex} und @code{hexadecimal} können auch benutzt werden)."
 
 #. type: table
-#: doc/guix.texi:6856
+#: doc/guix.texi:8343
 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 ""
+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:6860
+#: doc/guix.texi:8347
 msgid "Compute the hash on @var{file} recursively."
-msgstr ""
+msgstr "Die Prüfsumme der @var{Datei} rekursiv berechnen."
 
 #. type: table
-#: doc/guix.texi:6869
+#: doc/guix.texi:8356
 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 ""
+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:6870
+#: doc/guix.texi:8357
 #, no-wrap
 msgid "--exclude-vcs"
-msgstr ""
+msgstr "--exclude-vcs"
 
 #. type: itemx
-#: doc/guix.texi:6871
+#: doc/guix.texi:8358
 #, no-wrap
 msgid "-x"
-msgstr ""
+msgstr "-x"
 
 #. type: table
-#: doc/guix.texi:6874
+#: doc/guix.texi:8361
 msgid "When combined with @option{--recursive}, exclude version control system directories (@file{.bzr}, @file{.git}, @file{.hg}, etc.)"
-msgstr ""
+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: table
-#: doc/guix.texi:6879
+#: doc/guix.texi:8366
 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 ""
+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:6884
+#: doc/guix.texi:8371
 #, no-wrap
 msgid ""
 "$ git clone http://example.org/foo.git\n"
 "$ cd foo\n"
 "$ guix hash -rx .\n"
 msgstr ""
+"$ git clone http://example.org/foo.git\n"
+"$ cd foo\n"
+"$ guix hash -rx .\n"
 
 #. type: cindex
-#: doc/guix.texi:6888 doc/guix.texi:6893
+#: doc/guix.texi:8375 doc/guix.texi:8380
 #, no-wrap
 msgid "Invoking @command{guix import}"
-msgstr ""
+msgstr "@command{guix import} aufrufen"
 
 #. type: cindex
-#: doc/guix.texi:6890
+#: doc/guix.texi:8377
 #, no-wrap
 msgid "importing packages"
-msgstr ""
+msgstr "Pakete importieren"
 
 #. type: cindex
-#: doc/guix.texi:6891
+#: doc/guix.texi:8378
 #, no-wrap
 msgid "package import"
-msgstr ""
+msgstr "Paketimport"
 
 #. type: cindex
-#: doc/guix.texi:6892
+#: doc/guix.texi:8379
 #, no-wrap
 msgid "package conversion"
-msgstr ""
+msgstr "Pakete an Guix anpassen"
 
 #. type: Plain text
-#: doc/guix.texi:6900
+#: doc/guix.texi:8387
 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 ""
+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:6905
+#: doc/guix.texi:8392
 #, no-wrap
 msgid "guix import @var{importer} @var{options}@dots{}\n"
-msgstr ""
+msgstr "guix import @var{Importer} @var{Optionen}@dots{}\n"
 
 #. type: Plain text
-#: doc/guix.texi:6911
+#: doc/guix.texi:8398
 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 ""
+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. Derzeit sind folgende »Importer« verfügbar:"
 
 #. type: item
-#: doc/guix.texi:6913 doc/guix.texi:7404
+#: doc/guix.texi:8400 doc/guix.texi:8900
 #, no-wrap
 msgid "gnu"
-msgstr ""
+msgstr "gnu"
 
 #. type: table
-#: doc/guix.texi:6917
+#: doc/guix.texi:8404
 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 ""
+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:6920
+#: doc/guix.texi:8407
 msgid "Additional information such as the package dependencies and its license needs to be figured out manually."
-msgstr ""
+msgstr "Zusätzliche Informationen wie Paketabhängigkeiten und seine Lizenz müssen noch manuell ermittelt werden."
 
 #. type: table
-#: doc/guix.texi:6923
+#: doc/guix.texi:8410
 msgid "For example, the following command returns a package definition for GNU@tie{}Hello:"
-msgstr ""
+msgstr "Zum Beispiel liefert der folgende Befehl eine Paketdefinition für GNU@tie{}Hello:"
 
 #. type: example
-#: doc/guix.texi:6926
+#: doc/guix.texi:8413
 #, no-wrap
 msgid "guix import gnu hello\n"
-msgstr ""
+msgstr "guix import gnu hello\n"
 
 #. type: table
-#: doc/guix.texi:6929 doc/guix.texi:7163 doc/guix.texi:7213 doc/guix.texi:7242
+#: doc/guix.texi:8416 doc/guix.texi:8643 doc/guix.texi:8693 doc/guix.texi:8722
 msgid "Specific command-line options are:"
-msgstr ""
+msgstr "Speziell für diesen Importer stehen noch folgende Befehlszeilenoptionen zur Verfügung:"
 
 #. type: item
-#: doc/guix.texi:6931 doc/guix.texi:7535
+#: doc/guix.texi:8418 doc/guix.texi:9049
 #, no-wrap
 msgid "--key-download=@var{policy}"
-msgstr ""
+msgstr "--key-download=@var{Richtlinie}"
 
 #. type: table
-#: doc/guix.texi:6935
+#: doc/guix.texi:8422
 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 ""
+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}}."
 
 #. type: item
-#: doc/guix.texi:6937 doc/guix.texi:6938 doc/guix.texi:7422
+#: doc/guix.texi:8424 doc/guix.texi:8425 doc/guix.texi:8918
 #, no-wrap
 msgid "pypi"
-msgstr ""
+msgstr "pypi"
 
 #. type: table
-#: doc/guix.texi:6946
-msgid "Import metadata from the @uref{https://pypi.python.org/, Python Package Index}@footnote{This functionality requires Guile-JSON to be installed.  @xref{Requirements}.}.  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 ""
+#: doc/guix.texi:8432
+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:6949
+#: doc/guix.texi:8435
 msgid "The command below imports metadata for the @code{itsdangerous} Python package:"
-msgstr ""
+msgstr "Der folgende Befehl importiert Metadaten für das Python-Paket namens @code{itsdangerous}:"
 
 #. type: example
-#: doc/guix.texi:6952
+#: doc/guix.texi:8438
 #, no-wrap
 msgid "guix import pypi itsdangerous\n"
-msgstr ""
+msgstr "guix import pypi itsdangerous\n"
 
 #. type: table
-#: doc/guix.texi:6960 doc/guix.texi:6987 doc/guix.texi:7186 doc/guix.texi:7227
-#: doc/guix.texi:7274
+#: doc/guix.texi:8446 doc/guix.texi:8471 doc/guix.texi:8666 doc/guix.texi:8707
+#: doc/guix.texi:8754
 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 ""
+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:6962 doc/guix.texi:6963 doc/guix.texi:7424
+#: doc/guix.texi:8448 doc/guix.texi:8449 doc/guix.texi:8920
 #, no-wrap
 msgid "gem"
-msgstr ""
+msgstr "gem"
 
 #. type: table
-#: doc/guix.texi:6974
-msgid "Import metadata from @uref{https://rubygems.org/, RubyGems}@footnote{This functionality requires Guile-JSON to be installed.  @xref{Requirements}.}.  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 ""
+#: doc/guix.texi:8458
+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:6976
+#: doc/guix.texi:8460
 msgid "The command below imports metadata for the @code{rails} Ruby package:"
-msgstr ""
+msgstr "Der folgende Befehl importiert Metadaten aus dem Ruby-Paket @code{rails}."
 
 #. type: example
-#: doc/guix.texi:6979
+#: doc/guix.texi:8463
 #, no-wrap
 msgid "guix import gem rails\n"
-msgstr ""
+msgstr "guix import gem rails\n"
 
 #. type: item
-#: doc/guix.texi:6989 doc/guix.texi:7420
+#: doc/guix.texi:8473 doc/guix.texi:8916
 #, no-wrap
 msgid "cpan"
-msgstr ""
+msgstr "cpan"
 
 #. type: cindex
-#: doc/guix.texi:6990
+#: doc/guix.texi:8474
 #, no-wrap
 msgid "CPAN"
-msgstr ""
+msgstr "CPAN"
 
 #. type: table
-#: doc/guix.texi:7000
-msgid "Import metadata from @uref{https://www.metacpan.org/, MetaCPAN}@footnote{This functionality requires Guile-JSON to be installed.  @xref{Requirements}.}.  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 ""
+#: doc/guix.texi:8482
+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:7003
+#: doc/guix.texi:8485
 msgid "The command command below imports metadata for the @code{Acme::Boolean} Perl module:"
-msgstr ""
+msgstr "Folgender Befehl importiert Metadaten für das Perl-Modul @code{Acme::Boolean}:"
 
 #. type: example
-#: doc/guix.texi:7006
+#: doc/guix.texi:8488
 #, no-wrap
 msgid "guix import cpan Acme::Boolean\n"
-msgstr ""
+msgstr "guix import cpan Acme::Boolean\n"
 
 #. type: item
-#: doc/guix.texi:7008 doc/guix.texi:7416
+#: doc/guix.texi:8490 doc/guix.texi:8912
 #, no-wrap
 msgid "cran"
-msgstr ""
+msgstr "cran"
 
 #. type: cindex
-#: doc/guix.texi:7009
+#: doc/guix.texi:8491
 #, no-wrap
 msgid "CRAN"
-msgstr ""
+msgstr "CRAN"
 
 #. type: cindex
-#: doc/guix.texi:7010
+#: doc/guix.texi:8492
 #, no-wrap
 msgid "Bioconductor"
-msgstr ""
+msgstr "Bioconductor"
 
 #. type: table
-#: doc/guix.texi:7014
+#: doc/guix.texi:8496
 msgid "Import metadata from @uref{https://cran.r-project.org/, CRAN}, the central repository for the @uref{http://r-project.org, GNU@tie{}R statistical and graphical environment}."
-msgstr ""
+msgstr "Metadaten aus dem @uref{https://cran.r-project.org/, CRAN} importieren, der zentralen Sammlung für die @uref{http://r-project.org, statistische und grafische Umgebung GNU@tie{}R}."
 
 #. type: table
-#: doc/guix.texi:7016
+#: doc/guix.texi:8498
 msgid "Information is extracted from the @code{DESCRIPTION} file of the package."
-msgstr ""
+msgstr "Informationen werden aus der Datei namens @code{DESCRIPTION} des Pakets extrahiert."
 
 #. type: table
-#: doc/guix.texi:7019
+#: doc/guix.texi:8501
 msgid "The command command below imports metadata for the @code{Cairo} R package:"
-msgstr ""
+msgstr "Der folgende Befehl importiert Metadaten für das @code{Cairo}-R-Paket:"
 
 #. type: example
-#: doc/guix.texi:7022
+#: doc/guix.texi:8504
 #, no-wrap
 msgid "guix import cran Cairo\n"
-msgstr ""
+msgstr "guix import cran Cairo\n"
 
 #. type: table
-#: doc/guix.texi:7027
+#: doc/guix.texi:8509
 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 ""
+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."
 
 #. type: table
-#: doc/guix.texi:7032
+#: doc/guix.texi:8514
 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 ""
+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."
 
 #. type: table
-#: doc/guix.texi:7035
+#: doc/guix.texi:8517
 msgid "Information is extracted from the @code{DESCRIPTION} file of a package published on the web interface of the Bioconductor SVN repository."
-msgstr ""
+msgstr "Informationen werden aus der @code{DESCRIPTION}-Datei im Paket extrahiert, das auf der Weboberfläche des Bioconductor-SVN-Repositorys veröffentlicht wurde."
 
 #. type: table
-#: doc/guix.texi:7038
+#: doc/guix.texi:8520
 msgid "The command below imports metadata for the @code{GenomicRanges} R package:"
-msgstr ""
+msgstr "Der folgende Befehl importiert Metadaten für das R-Paket @code{GenomicRanges}:"
 
 #. type: example
-#: doc/guix.texi:7041
+#: doc/guix.texi:8523
 #, no-wrap
 msgid "guix import cran --archive=bioconductor GenomicRanges\n"
-msgstr ""
+msgstr "guix import cran --archive=bioconductor GenomicRanges\n"
 
 #. type: item
-#: doc/guix.texi:7043
+#: doc/guix.texi:8525
 #, no-wrap
 msgid "texlive"
-msgstr ""
+msgstr "texlive"
 
 #. type: cindex
-#: doc/guix.texi:7044
+#: doc/guix.texi:8526
 #, no-wrap
 msgid "TeX Live"
-msgstr ""
+msgstr "TeX Live"
 
 #. type: cindex
-#: doc/guix.texi:7045
+#: doc/guix.texi:8527
 #, no-wrap
 msgid "CTAN"
-msgstr ""
+msgstr "CTAN"
 
 #. type: table
-#: doc/guix.texi:7049
+#: doc/guix.texi:8531
 msgid "Import metadata from @uref{http://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 ""
+msgstr "Metadaten aus @uref{http://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:7054
+#: doc/guix.texi:8536
 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 ""
+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:7057
+#: doc/guix.texi:8539
 msgid "The command command below imports metadata for the @code{fontspec} TeX package:"
-msgstr ""
+msgstr "Der folgende Befehl importiert Metadaten für das TeX-Paket @code{fontspec}:"
 
 #. type: example
-#: doc/guix.texi:7060
+#: doc/guix.texi:8542
 #, no-wrap
 msgid "guix import texlive fontspec\n"
-msgstr ""
+msgstr "guix import texlive fontspec\n"
 
 #. type: table
-#: doc/guix.texi:7066
+#: doc/guix.texi:8548
 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 ""
+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."
 
 #. type: table
-#: doc/guix.texi:7070
+#: doc/guix.texi:8552
 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 ""
+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:7073
+#: doc/guix.texi:8555
 #, no-wrap
 msgid "guix import texlive --archive=generic ifxetex\n"
-msgstr ""
+msgstr "guix import texlive --archive=generic ifxetex\n"
 
 #. type: cindex
-#: doc/guix.texi:7076
+#: doc/guix.texi:8558
 #, no-wrap
 msgid "JSON, import"
-msgstr ""
+msgstr "JSON, Import"
 
 #. type: table
-#: doc/guix.texi:7081
-msgid "Import package metadata from a local JSON file@footnote{This functionality requires Guile-JSON to be installed.  @xref{Requirements}.}.  Consider the following example package definition in JSON format:"
-msgstr ""
+#: doc/guix.texi:8561
+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:7094
+#: doc/guix.texi:8574
 #, no-wrap
 msgid ""
 "@{\n"
@@ -13010,19 +15709,30 @@ msgid ""
 "  \"native-inputs\": [\"gcc@@6\"]\n"
 "@}\n"
 msgstr ""
+"@{\n"
+"  \"name\": \"hello\",\n"
+"  \"version\": \"2.10\",\n"
+"  \"source\": \"mirror://gnu/hello/hello-2.10.tar.gz\",\n"
+"  \"build-system\": \"gnu\",\n"
+"  \"home-page\": \"https://www.gnu.org/software/hello/\",\n"
+"  \"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"
+"@}\n"
 
 #. type: table
-#: doc/guix.texi:7100
+#: doc/guix.texi:8580
 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 ""
+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:7103
+#: doc/guix.texi:8583
 msgid "The importer also supports a more explicit source definition using the common fields for @code{<origin>} records:"
-msgstr ""
+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:7116
+#: doc/guix.texi:8596
 #, no-wrap
 msgid ""
 "@{\n"
@@ -13037,323 +15747,357 @@ msgid ""
 "  @dots{}\n"
 "@}\n"
 msgstr ""
+"@{\n"
+"  @dots{}\n"
+"  \"source\": @{\n"
+"    \"method\": \"url-fetch\",\n"
+"    \"uri\": \"mirror://gnu/hello/hello-2.10.tar.gz\",\n"
+"    \"sha256\": @{\n"
+"      \"base32\": \"0ssi1wpaf7plaswqqjwigppsg5fyh99vdlb9kzl7c9lng89ndq1i\"\n"
+"    @}\n"
+"  @}\n"
+"  @dots{}\n"
+"@}\n"
 
 #. type: table
-#: doc/guix.texi:7120
+#: doc/guix.texi:8600
 msgid "The command below reads metadata from the JSON file @code{hello.json} and outputs a package expression:"
-msgstr ""
+msgstr "Der folgende Befehl liest Metadaten aus der JSON-Datei @code{hello.json} und gibt einen Paketausdruck aus:"
 
 #. type: example
-#: doc/guix.texi:7123
+#: doc/guix.texi:8603
 #, no-wrap
 msgid "guix import json hello.json\n"
-msgstr ""
+msgstr "guix import json hello.json\n"
 
 #. type: item
-#: doc/guix.texi:7125
+#: doc/guix.texi:8605
 #, no-wrap
 msgid "nix"
-msgstr ""
+msgstr "nix"
 
 #. type: table
-#: doc/guix.texi:7134
+#: doc/guix.texi:8614
 msgid "Import metadata from a local copy of the source of the @uref{http://nixos.org/nixpkgs/, Nixpkgs distribution}@footnote{This relies on the @command{nix-instantiate} command of @uref{http://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 ""
+msgstr "Metadaten aus einer lokalen Kopie des Quellcodes der @uref{http://nixos.org/nixpkgs/, Nixpkgs-Distribution} importieren@footnote{Dazu wird der Befehl @command{nix-instantiate} von @uref{http://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:7137
+#: doc/guix.texi:8617
 msgid "When importing a GNU package, the synopsis and descriptions are replaced by their canonical upstream variant."
-msgstr ""
+msgstr "Beim Importieren eines GNU-Pakets werden Zusammenfassung und Beschreibung stattdessen durch deren kanonische Variante bei GNU ersetzt."
 
 #. type: table
-#: doc/guix.texi:7139
+#: doc/guix.texi:8619
 msgid "Usually, you will first need to do:"
-msgstr ""
+msgstr "Normalerweise würden Sie zunächst dies ausführen:"
 
 #. type: example
-#: doc/guix.texi:7142
+#: doc/guix.texi:8622
 #, no-wrap
 msgid "export NIX_REMOTE=daemon\n"
-msgstr ""
+msgstr "export NIX_REMOTE=daemon\n"
 
 #. type: table
-#: doc/guix.texi:7146
+#: doc/guix.texi:8626
 msgid "so that @command{nix-instantiate} does not try to open the Nix database."
-msgstr ""
+msgstr "damit @command{nix-instantiate} nicht versucht, die Nix-Datenbank zu öffnen."
 
 #. type: table
-#: doc/guix.texi:7150
+#: doc/guix.texi:8630
 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 ""
+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:7153
+#: doc/guix.texi:8633
 #, no-wrap
 msgid "guix import nix ~/path/to/nixpkgs libreoffice\n"
-msgstr ""
+msgstr "guix import nix ~/path/to/nixpkgs libreoffice\n"
 
 #. type: item
-#: doc/guix.texi:7155 doc/guix.texi:7156 doc/guix.texi:7428
+#: doc/guix.texi:8635 doc/guix.texi:8636 doc/guix.texi:8924
 #, no-wrap
 msgid "hackage"
-msgstr ""
+msgstr "hackage"
 
 #. type: table
-#: doc/guix.texi:7161
+#: doc/guix.texi:8641
 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 ""
+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:7165
+#: doc/guix.texi:8645
 #, no-wrap
 msgid "--stdin"
-msgstr ""
+msgstr "--stdin"
 
 #. type: itemx
-#: doc/guix.texi:7166
+#: doc/guix.texi:8646
 #, no-wrap
 msgid "-s"
-msgstr ""
+msgstr "-s"
 
 #. type: table
-#: doc/guix.texi:7168
+#: doc/guix.texi:8648
 msgid "Read a Cabal file from standard input."
-msgstr ""
+msgstr "Eine Cabal-Datei von der Standardeingabe lesen."
 
 #. type: item
-#: doc/guix.texi:7168 doc/guix.texi:7215
+#: doc/guix.texi:8648 doc/guix.texi:8695
 #, no-wrap
 msgid "--no-test-dependencies"
-msgstr ""
+msgstr "--no-test-dependencies"
 
 #. type: itemx
-#: doc/guix.texi:7169 doc/guix.texi:7216
+#: doc/guix.texi:8649 doc/guix.texi:8696
 #, no-wrap
 msgid "-t"
-msgstr ""
+msgstr "-t"
 
 #. type: table
-#: doc/guix.texi:7171 doc/guix.texi:7218
+#: doc/guix.texi:8651 doc/guix.texi:8698
 msgid "Do not include dependencies required only by the test suites."
-msgstr ""
+msgstr "Keine Abhängigkeiten übernehmen, die nur von Testkatalogen benötigt werden."
 
 #. type: item
-#: doc/guix.texi:7171
+#: doc/guix.texi:8651
 #, no-wrap
 msgid "--cabal-environment=@var{alist}"
-msgstr ""
+msgstr "--cabal-environment=@var{Aliste}"
 
 #. type: itemx
-#: doc/guix.texi:7172
+#: doc/guix.texi:8652
 #, no-wrap
 msgid "-e @var{alist}"
-msgstr ""
+msgstr "-e @var{Aliste}"
 
 #. type: table
-#: doc/guix.texi:7181
+#: doc/guix.texi:8661
 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 ""
+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:7191
+#: doc/guix.texi:8671
 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 ""
+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}:"
 
 #. type: example
-#: doc/guix.texi:7194
+#: doc/guix.texi:8674
 #, 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:7198
+#: doc/guix.texi:8678
 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 ""
+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:7201
+#: doc/guix.texi:8681
 #, 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:7203 doc/guix.texi:7204 doc/guix.texi:7430
+#: doc/guix.texi:8683 doc/guix.texi:8684 doc/guix.texi:8926
 #, no-wrap
 msgid "stackage"
-msgstr ""
+msgstr "stackage"
 
 #. type: table
-#: doc/guix.texi:7211
+#: doc/guix.texi:8691
 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 ""
+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:7218
+#: doc/guix.texi:8698
 #, no-wrap
 msgid "--lts-version=@var{version}"
-msgstr ""
+msgstr "--lts-version=@var{Version}"
 
 #. type: itemx
-#: doc/guix.texi:7219
+#: doc/guix.texi:8699
 #, no-wrap
 msgid "-l @var{version}"
 msgstr "-l @var{Version}"
 
 #. type: table
-#: doc/guix.texi:7222
+#: doc/guix.texi:8702
 msgid "@var{version} is the desired LTS release version.  If omitted the latest release is used."
-msgstr ""
+msgstr "@var{Version} ist die gewünschte Version der LTS-Veröffentlichung. Wird keine angegeben, wird die neueste benutzt."
 
 #. type: table
-#: doc/guix.texi:7231
+#: doc/guix.texi:8711
 msgid "The command below imports metadata for the @code{HTTP} Haskell package included in the LTS Stackage release version 7.18:"
-msgstr ""
+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:"
 
 #. type: example
-#: doc/guix.texi:7234
+#: doc/guix.texi:8714
 #, 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:7236 doc/guix.texi:7237 doc/guix.texi:7414
+#: doc/guix.texi:8716 doc/guix.texi:8717 doc/guix.texi:8910
 #, no-wrap
 msgid "elpa"
-msgstr ""
+msgstr "elpa"
 
 #. type: table
-#: doc/guix.texi:7240
+#: doc/guix.texi:8720
 msgid "Import metadata from an Emacs Lisp Package Archive (ELPA) package repository (@pxref{Packages,,, emacs, The GNU Emacs Manual})."
-msgstr ""
+msgstr "Metadaten aus der Paketsammlung »Emacs Lisp Package Archive« (ELPA) importieren (siehe @ref{Packages,,, emacs, The GNU Emacs Manual})."
 
 #. type: item
-#: doc/guix.texi:7244
+#: doc/guix.texi:8724
 #, no-wrap
 msgid "--archive=@var{repo}"
-msgstr ""
+msgstr "--archive=@var{Repo}"
 
 #. type: itemx
-#: doc/guix.texi:7245
+#: doc/guix.texi:8725
 #, no-wrap
 msgid "-a @var{repo}"
-msgstr ""
+msgstr "-a @var{Repo}"
 
 #. type: table
-#: doc/guix.texi:7249
+#: doc/guix.texi:8729
 msgid "@var{repo} identifies the archive repository from which to retrieve the information.  Currently the supported repositories and their identifiers are:"
-msgstr ""
+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:7253
+#: doc/guix.texi:8733
 msgid "@uref{http://elpa.gnu.org/packages, GNU}, selected by the @code{gnu} identifier.  This is the default."
-msgstr ""
+msgstr "@uref{http://elpa.gnu.org/packages, GNU}, bezeichnet mit @code{gnu}. Dies ist die Vorgabe."
 
 #. type: itemize
-#: doc/guix.texi:7259
+#: doc/guix.texi:8739
 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 ""
+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})."
 
 #. type: itemize
-#: doc/guix.texi:7263
+#: doc/guix.texi:8743
 msgid "@uref{http://stable.melpa.org/packages, MELPA-Stable}, selected by the @code{melpa-stable} identifier."
-msgstr ""
+msgstr "@uref{http://stable.melpa.org/packages, MELPA-Stable}, bezeichnet mit @code{melpa-stable}."
 
 #. type: itemize
-#: doc/guix.texi:7267
+#: doc/guix.texi:8747
 msgid "@uref{http://melpa.org/packages, MELPA}, selected by the @code{melpa} identifier."
-msgstr ""
+msgstr "@uref{http://melpa.org/packages, MELPA}, bezeichnet mit @code{melpa}."
 
 #. type: item
-#: doc/guix.texi:7276 doc/guix.texi:7277 doc/guix.texi:7432
+#: doc/guix.texi:8756 doc/guix.texi:8757 doc/guix.texi:8928
 #, no-wrap
 msgid "crate"
-msgstr ""
+msgstr "crate"
 
 #. type: table
-#: doc/guix.texi:7280
+#: doc/guix.texi:8760
 msgid "Import metadata from the crates.io Rust package repository @uref{https://crates.io, crates.io}."
-msgstr ""
+msgstr "Metadaten aus der Paketsammlung crates.io für Rust importieren @uref{https://crates.io, crates.io}."
 
 #. type: item
-#: doc/guix.texi:7281
+#: doc/guix.texi:8761
 #, no-wrap
 msgid "opam"
-msgstr ""
+msgstr "opam"
 
 #. type: cindex
-#: doc/guix.texi:7282
+#: doc/guix.texi:8762
 #, no-wrap
 msgid "OPAM"
-msgstr ""
+msgstr "OPAM"
 
 #. type: cindex
-#: doc/guix.texi:7283
+#: doc/guix.texi:8763
 #, no-wrap
 msgid "OCaml"
-msgstr ""
+msgstr "OCaml"
 
 #. type: table
-#: doc/guix.texi:7286
+#: doc/guix.texi:8766
 msgid "Import metadata from the @uref{https://opam.ocaml.org/, OPAM} package repository used by the OCaml community."
-msgstr ""
+msgstr "Metadaten aus der Paketsammlung @uref{https://opam.ocaml.org/, OPAM} der OCaml-Gemeinde importieren."
 
 #. type: Plain text
-#: doc/guix.texi:7291
+#: doc/guix.texi:8771
 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 ""
+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:7293
+#: doc/guix.texi:8773
 #, no-wrap
 msgid "Invoking @command{guix refresh}"
-msgstr ""
+msgstr "@command{guix refresh} aufrufen"
 
 #. type: command{#1}
-#: doc/guix.texi:7295
+#: doc/guix.texi:8775
 #, no-wrap
 msgid "guix refresh"
-msgstr ""
+msgstr "guix refresh"
 
 #. type: Plain text
-#: doc/guix.texi:7300
+#: doc/guix.texi:8780
 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 ""
+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:7305
+#: doc/guix.texi:8785
 #, 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:7309
+#: doc/guix.texi:8789
 msgid "Alternately, one can specify packages to consider, in which case a warning is emitted for packages that lack an updater:"
-msgstr ""
+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:7314
+#: doc/guix.texi:8794
 #, 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:7323
+#: doc/guix.texi:8803
 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:8808
+msgid "Consider the packages specified, and all the packages upon which they depend."
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:8816
+#, no-wrap
+msgid ""
+"$ 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"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:7328
+#: doc/guix.texi:8824
 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 ""
+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: example
-#: doc/guix.texi:7335
+#: doc/guix.texi:8831
 #, no-wrap
 msgid ""
 "(define-public network-manager\n"
@@ -13362,369 +16106,416 @@ 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:7347
+#: doc/guix.texi:8843
 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 ""
+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{gpg} authentifiziert und schließlich dessen Hash berechnet. 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:7349
+#: doc/guix.texi:8845
 msgid "The following options are supported:"
-msgstr ""
+msgstr "Die folgenden Befehlszeilenoptionen werden unterstützt:"
 
 #. type: table
-#: doc/guix.texi:7357 doc/guix.texi:7974
+#: doc/guix.texi:8853 doc/guix.texi:9511
 msgid "This is useful to precisely refer to a package, as in this example:"
-msgstr ""
+msgstr "Dies ist nützlich, um genau ein bestimmtes Paket zu referenzieren, wie in diesem Beispiel:"
 
 #. type: example
-#: doc/guix.texi:7360
+#: doc/guix.texi:8856
 #, 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:7364
+#: doc/guix.texi:8860
 msgid "This command lists the dependents of the ``final'' libc (essentially all the packages.)"
-msgstr ""
+msgstr "Dieser Befehls listet auf, was alles von der »endgültigen« Erstellung von libc abhängt (praktisch alle Pakete)."
 
 #. type: item
-#: doc/guix.texi:7365
+#: doc/guix.texi:8861
 #, no-wrap
 msgid "--update"
-msgstr ""
+msgstr "--update"
 
 #. type: itemx
-#: doc/guix.texi:7366
+#: doc/guix.texi:8862
 #, no-wrap
 msgid "-u"
-msgstr ""
+msgstr "-u"
 
 #. type: table
-#: doc/guix.texi:7370
+#: doc/guix.texi:8866
 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 ""
+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:7373
+#: doc/guix.texi:8869
 #, 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:7376
+#: doc/guix.texi:8872
 msgid "@xref{Defining Packages}, for more information on package definitions."
-msgstr ""
+msgstr "Siehe @ref{Defining Packages} für mehr Informationen zu Paketdefinitionen."
 
 #. type: item
-#: doc/guix.texi:7377
+#: doc/guix.texi:8873
 #, no-wrap
 msgid "--select=[@var{subset}]"
-msgstr ""
+msgstr "--select=[@var{Teilmenge}]"
 
 #. type: itemx
-#: doc/guix.texi:7378
+#: doc/guix.texi:8874
 #, no-wrap
 msgid "-s @var{subset}"
-msgstr ""
+msgstr "-s @var{Teilmenge}"
 
 #. type: table
-#: doc/guix.texi:7381
+#: doc/guix.texi:8877
 msgid "Select all the packages in @var{subset}, one of @code{core} or @code{non-core}."
-msgstr ""
+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:7388
+#: doc/guix.texi:8884
 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 ""
+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:7392
+#: doc/guix.texi:8888
 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 ""
+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:7397
+#: doc/guix.texi:8893
 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 ""
+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:7398
+#: doc/guix.texi:8894
 #, no-wrap
 msgid "--type=@var{updater}"
-msgstr ""
+msgstr "--type=@var{Aktualisierungsprogramm}"
 
 #. type: itemx
-#: doc/guix.texi:7399
+#: doc/guix.texi:8895
 #, no-wrap
 msgid "-t @var{updater}"
-msgstr ""
+msgstr "-t @var{Aktualisierungsprogramm}"
 
 #. type: table
-#: doc/guix.texi:7402
+#: doc/guix.texi:8898
 msgid "Select only packages handled by @var{updater} (may be a comma-separated list of updaters).  Currently, @var{updater} may be one of:"
-msgstr ""
+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:"
 
 #. type: table
-#: doc/guix.texi:7406
+#: doc/guix.texi:8902
 msgid "the updater for GNU packages;"
-msgstr ""
+msgstr "Aktualisierungsprogramm für GNU-Pakete,"
 
 #. type: item
-#: doc/guix.texi:7406
+#: doc/guix.texi:8902
 #, no-wrap
 msgid "gnome"
-msgstr ""
+msgstr "gnome"
 
 #. type: table
-#: doc/guix.texi:7408
+#: doc/guix.texi:8904
 msgid "the updater for GNOME packages;"
-msgstr ""
+msgstr "Aktualisierungsprogramm für GNOME-Pakete,"
 
 #. type: item
-#: doc/guix.texi:7408
+#: doc/guix.texi:8904
 #, no-wrap
 msgid "kde"
-msgstr ""
+msgstr "kde"
 
 #. type: table
-#: doc/guix.texi:7410
+#: doc/guix.texi:8906
 msgid "the updater for KDE packages;"
-msgstr ""
+msgstr "Aktualisierungsprogramm für KDE-Pakete,"
 
 #. type: item
-#: doc/guix.texi:7410
+#: doc/guix.texi:8906
 #, no-wrap
 msgid "xorg"
-msgstr ""
+msgstr "xorg"
 
 #. type: table
-#: doc/guix.texi:7412
+#: doc/guix.texi:8908
 msgid "the updater for X.org packages;"
-msgstr ""
+msgstr "Aktualisierungsprogramm für X.org-Pakete,"
 
 #. type: item
-#: doc/guix.texi:7412
+#: doc/guix.texi:8908
 #, no-wrap
 msgid "kernel.org"
-msgstr ""
+msgstr "kernel.org"
 
 #. type: table
-#: doc/guix.texi:7414
+#: doc/guix.texi:8910
 msgid "the updater for packages hosted on kernel.org;"
-msgstr ""
+msgstr "Aktualisierungsprogramm auf kernel.org angebotener Pakete,"
 
 #. type: table
-#: doc/guix.texi:7416
+#: doc/guix.texi:8912
 msgid "the updater for @uref{http://elpa.gnu.org/, ELPA} packages;"
-msgstr ""
+msgstr "Aktualisierungsprogramm für @uref{http://elpa.gnu.org/, ELPA-Pakete},"
 
 #. type: table
-#: doc/guix.texi:7418
+#: doc/guix.texi:8914
 msgid "the updater for @uref{https://cran.r-project.org/, CRAN} packages;"
-msgstr ""
+msgstr "Aktualisierungsprogramm für @uref{https://cran.r-project.org/, CRAN-Pakete},"
 
 #. type: item
-#: doc/guix.texi:7418
+#: doc/guix.texi:8914
 #, no-wrap
 msgid "bioconductor"
-msgstr ""
+msgstr "bioconductor"
 
 #. type: table
-#: doc/guix.texi:7420
+#: doc/guix.texi:8916
 msgid "the updater for @uref{https://www.bioconductor.org/, Bioconductor} R packages;"
-msgstr ""
+msgstr "Aktualisierungsprogramm für R-Pakete vom @uref{https://www.bioconductor.org/, Bioconductor},"
 
 #. type: table
-#: doc/guix.texi:7422
+#: doc/guix.texi:8918
 msgid "the updater for @uref{http://www.cpan.org/, CPAN} packages;"
-msgstr ""
+msgstr "Aktualisierungsprogramm für @uref{http://www.cpan.org/, CPAN-Pakete},"
 
 #. type: table
-#: doc/guix.texi:7424
+#: doc/guix.texi:8920
 msgid "the updater for @uref{https://pypi.python.org, PyPI} packages."
-msgstr ""
+msgstr "Aktualisierungsprogramm für @uref{https://pypi.python.org, PyPI-Pakete},"
 
 #. type: table
-#: doc/guix.texi:7426
+#: doc/guix.texi:8922
 msgid "the updater for @uref{https://rubygems.org, RubyGems} packages."
-msgstr ""
+msgstr "Aktualisierungsprogramm für @uref{https://rubygems.org, RubyGems-Pakete}."
 
 #. type: item
-#: doc/guix.texi:7426
+#: doc/guix.texi:8922
 #, no-wrap
 msgid "github"
-msgstr ""
+msgstr "github"
 
 #. type: table
-#: doc/guix.texi:7428
+#: doc/guix.texi:8924
 msgid "the updater for @uref{https://github.com, GitHub} packages."
-msgstr ""
+msgstr "Aktualisierungsprogramm für @uref{https://github.com, GitHub-Pakete}."
 
 #. type: table
-#: doc/guix.texi:7430
+#: doc/guix.texi:8926
 msgid "the updater for @uref{https://hackage.haskell.org, Hackage} packages."
-msgstr ""
+msgstr "Aktualisierungsprogramm für @uref{https://hackage.haskell.org, Hackage-Pakete}."
 
 #. type: table
-#: doc/guix.texi:7432
+#: doc/guix.texi:8928
 msgid "the updater for @uref{https://www.stackage.org, Stackage} packages."
-msgstr ""
+msgstr "Aktualisierungsprogramm für @uref{https://www.stackage.org, Stackage-Pakete}."
 
 #. type: table
-#: doc/guix.texi:7434
+#: doc/guix.texi:8930
 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:8930
+#, no-wrap
+msgid "launchpad"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:7438
+#: doc/guix.texi:8932
+msgid "the updater for @uref{https://launchpad.net, Launchpad} packages."
+msgstr "Aktualisierungsprogramm für @uref{https://launchpad.net, Launchpad}."
+
+#. type: table
+#: doc/guix.texi:8936
 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 ""
+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:7443
+#: doc/guix.texi:8941
 #, no-wrap
 msgid ""
 "$ guix refresh --type=elpa,cran\n"
 "gnu/packages/statistics.scm:819:13: r-testthat would be upgraded from 0.10.0 to 0.11.0\n"
 "gnu/packages/emacs.scm:856:13: emacs-auctex would be upgraded from 11.88.6 to 11.88.9\n"
 msgstr ""
+"$ guix refresh --type=elpa,cran\n"
+"gnu/packages/statistics.scm:819:13: r-testthat would be upgraded from 0.10.0 to 0.11.0\n"
+"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:7449
+#: doc/guix.texi:8947
 msgid "In addition, @command{guix refresh} can be passed one or more package names, as in this example:"
-msgstr ""
+msgstr "An @command{guix refresh} können auch ein oder mehrere Paketnamen übergeben werden wie in diesem Beispiel:"
 
 #. type: example
-#: doc/guix.texi:7452
+#: doc/guix.texi:8950
 #, no-wrap
 msgid "$ ./pre-inst-env guix refresh -u emacs idutils gcc@@4.8\n"
-msgstr ""
+msgstr "$ ./pre-inst-env guix refresh -u emacs idutils gcc@@4.8\n"
 
 #. type: Plain text
-#: doc/guix.texi:7458
+#: doc/guix.texi:8956
 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 ""
+msgstr "Der Befehl oben aktualisiert speziell das @code{emacs}- und das @code{idutils}-Paket. Eine Befehlszeilenoption @code{--select} hätte dann keine Wirkung."
 
 #. type: Plain text
-#: doc/guix.texi:7463
+#: doc/guix.texi:8961
 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 ""
+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:7466
+#: doc/guix.texi:8964
 #, no-wrap
 msgid "--list-updaters"
-msgstr ""
+msgstr "--list-updaters"
 
 #. type: itemx
-#: doc/guix.texi:7467
+#: doc/guix.texi:8965
 #, no-wrap
 msgid "-L"
-msgstr ""
+msgstr "-L"
 
 #. type: table
-#: doc/guix.texi:7469
+#: doc/guix.texi:8967
 msgid "List available updaters and exit (see @option{--type} above.)"
-msgstr ""
+msgstr "Eine Liste verfügbarer Aktualisierungsprogramme anzeigen und terminieren (siehe @option{--type} oben)."
 
 #. type: table
-#: doc/guix.texi:7472
+#: doc/guix.texi:8970
 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 ""
+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:7473
+#: doc/guix.texi:8971
 #, no-wrap
 msgid "--list-dependent"
-msgstr ""
+msgstr "--list-dependent"
 
 #. type: itemx
-#: doc/guix.texi:7474 doc/guix.texi:7667
+#: doc/guix.texi:8972 doc/guix.texi:9188
 #, no-wrap
 msgid "-l"
-msgstr ""
+msgstr "-l"
 
 #. type: table
-#: doc/guix.texi:7477
+#: doc/guix.texi:8975
 msgid "List top-level dependent packages that would need to be rebuilt as a result of upgrading one or more packages."
-msgstr ""
+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:7481
+#: doc/guix.texi:8979
 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 ""
+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:7487
+#: doc/guix.texi:8985
 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 ""
+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."
 
 #. type: example
-#: doc/guix.texi:7492
+#: doc/guix.texi:8990
 #, no-wrap
 msgid ""
 "$ guix refresh --list-dependent flex\n"
 "Building the following 120 packages would ensure 213 dependent packages are rebuilt:\n"
 "hop@@2.4.0 geiser@@0.4 notmuch@@0.18 mu@@0.9.9.5 cflow@@1.4 idutils@@4.6 @dots{}\n"
 msgstr ""
+"$ guix refresh --list-dependent flex\n"
+"Building the following 120 packages would ensure 213 dependent packages are rebuilt:\n"
+"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:7496
+#: doc/guix.texi:8994
 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:8997
+#, no-wrap
+msgid "--list-transitive"
+msgstr "--list-transitive"
+
+#. type: table
+#: doc/guix.texi:8999
+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:9004
+#, no-wrap
+msgid ""
+"$ guix refresh --list-transitive flex\n"
+"flex@@2.6.4 depends on the following 25 packages: perl@@5.28.0 help2man@@1.47.6\n"
+"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"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:7498
+#: doc/guix.texi:9010
+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:9012
 msgid "The following options can be used to customize GnuPG operation:"
-msgstr ""
+msgstr "Mit den folgenden Befehlszeilenoptionen können Sie das Verhalten von GnuPG anpassen:"
 
 #. type: item
-#: doc/guix.texi:7501
+#: doc/guix.texi:9015
 #, no-wrap
 msgid "--gpg=@var{command}"
-msgstr ""
+msgstr "--gpg=@var{Befehl}"
 
 #. type: table
-#: doc/guix.texi:7504
+#: doc/guix.texi:9018
 msgid "Use @var{command} as the GnuPG 2.x command.  @var{command} is searched for in @code{$PATH}."
-msgstr ""
+msgstr "Den @var{Befehl} als GnuPG-2.x-Befehl einsetzen. Der @var{Befehl} wird im @code{$PATH} gesucht."
 
 #. type: item
-#: doc/guix.texi:7505
+#: doc/guix.texi:9019
 #, no-wrap
 msgid "--keyring=@var{file}"
 msgstr "--keyring=@var{Datei}"
 
 #. type: table
-#: doc/guix.texi:7511
+#: doc/guix.texi:9025
 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 ""
+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:7517
+#: doc/guix.texi:9031
 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 ""
+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:7520
+#: doc/guix.texi:9034
 msgid "You can export keys from your default GPG keyring into a keybox file using commands like this one:"
-msgstr ""
+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:7523
+#: doc/guix.texi:9037
 #, no-wrap
 msgid "gpg --export rms@@gnu.org | kbxutil --import-openpgp >> mykeyring.kbx\n"
-msgstr ""
+msgstr "gpg --export rms@@gnu.org | kbxutil --import-openpgp >> mykeyring.kbx\n"
 
 #. type: table
-#: doc/guix.texi:7526
+#: doc/guix.texi:9040
 msgid "Likewise, you can fetch keys to a specific keybox file like this:"
-msgstr ""
+msgstr "Ebenso können Sie wie folgt Schlüssel in eine bestimmte Keybox-Datei herunterladen:"
 
 #. type: example
-#: doc/guix.texi:7530
+#: doc/guix.texi:9044
 #, no-wrap
 msgid ""
 "gpg --no-default-keyring --keyring mykeyring.kbx \\\n"
@@ -13734,170 +16525,187 @@ msgstr ""
 "  --recv-keys @value{OPENPGP-SIGNING-KEY-ID}\n"
 
 #. type: table
-#: doc/guix.texi:7534
+#: doc/guix.texi:9048
 msgid "@ref{GPG Configuration Options, @option{--keyring},, gnupg, Using the GNU Privacy Guard}, for more information on GPG's @option{--keyring} option."
-msgstr ""
+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:7538
+#: doc/guix.texi:9052
 msgid "Handle missing OpenPGP keys according to @var{policy}, which may be one of:"
-msgstr ""
+msgstr "Fehlende OpenPGP-Schlüssel gemäß dieser @var{Richtlinie} behandeln, für die eine der Folgenden angegeben werden kann:"
 
 #. type: item
-#: doc/guix.texi:7540 doc/guix.texi:15086
+#: doc/guix.texi:9054 doc/guix.texi:15982
 #, no-wrap
 msgid "always"
-msgstr ""
+msgstr "always"
 
 #. type: table
-#: doc/guix.texi:7543
+#: doc/guix.texi:9057
 msgid "Always download missing OpenPGP keys from the key server, and add them to the user's GnuPG keyring."
-msgstr ""
+msgstr "Immer fehlende OpenPGP-Schlüssel herunterladen und zum GnuPG-Schlüsselbund des Nutzers hinzufügen."
 
 #. type: item
-#: doc/guix.texi:7544 doc/guix.texi:15088
+#: doc/guix.texi:9058 doc/guix.texi:15984
 #, no-wrap
 msgid "never"
-msgstr ""
+msgstr "never"
 
 #. type: table
-#: doc/guix.texi:7546
+#: doc/guix.texi:9060
 msgid "Never try to download missing OpenPGP keys.  Instead just bail out."
-msgstr ""
+msgstr "Niemals fehlende OpenPGP-Schlüssel herunterladen, sondern einfach abbrechen."
 
 #. type: item
-#: doc/guix.texi:7547
+#: doc/guix.texi:9061
 #, no-wrap
 msgid "interactive"
-msgstr ""
+msgstr "interactive"
 
 #. type: table
-#: doc/guix.texi:7550
+#: doc/guix.texi:9064
 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 ""
+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:7552
+#: doc/guix.texi:9066
 #, no-wrap
 msgid "--key-server=@var{host}"
-msgstr ""
+msgstr "--key-server=@var{Host}"
 
 #. type: table
-#: doc/guix.texi:7554
+#: doc/guix.texi:9068
 msgid "Use @var{host} as the OpenPGP key server when importing a public key."
-msgstr ""
+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:7567
-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 ""
+#: doc/guix.texi:9081
+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."
 
 #. type: section
-#: doc/guix.texi:7570
+#: doc/guix.texi:9084
 #, no-wrap
 msgid "Invoking @command{guix lint}"
-msgstr ""
+msgstr "@command{guix lint} aufrufen"
 
 #. type: command{#1}
-#: doc/guix.texi:7572
+#: doc/guix.texi:9086
 #, no-wrap
 msgid "guix lint"
-msgstr ""
+msgstr "guix lint"
 
 #. type: cindex
-#: doc/guix.texi:7573
+#: doc/guix.texi:9087
 #, no-wrap
 msgid "package, checking for errors"
-msgstr ""
+msgstr "Pakete, auf Fehler prüfen"
 
 #. type: Plain text
-#: doc/guix.texi:7579
+#: doc/guix.texi:9093
 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 ""
+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):"
 
 #. type: table
-#: doc/guix.texi:7585
+#: doc/guix.texi:9099
 msgid "Validate certain typographical and stylistic rules about package descriptions and synopses."
-msgstr ""
+msgstr "Überprüfen, ob bestimmte typografische und stilistische Regeln in Paketbeschreibungen und -zusammenfassungen eingehalten wurden."
 
 #. type: item
-#: doc/guix.texi:7586
+#: doc/guix.texi:9100
 #, no-wrap
 msgid "inputs-should-be-native"
-msgstr ""
+msgstr "inputs-should-be-native"
 
 #. type: table
-#: doc/guix.texi:7588
+#: doc/guix.texi:9102
 msgid "Identify inputs that should most likely be native inputs."
-msgstr ""
+msgstr "Eingaben identifizieren, die wahrscheinlich native Eingaben sein sollten."
 
 #. type: itemx
-#: doc/guix.texi:7591
+#: doc/guix.texi:9105
 #, no-wrap
 msgid "mirror-url"
-msgstr ""
+msgstr "mirror-url"
 
 #. type: itemx
-#: doc/guix.texi:7592
+#: doc/guix.texi:9106
+#, no-wrap
+msgid "github-url"
+msgstr "github-url"
+
+#. type: itemx
+#: doc/guix.texi:9107
 #, no-wrap
 msgid "source-file-name"
+msgstr "source-file-name"
+
+#. type: table
+#: doc/guix.texi:9114
+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:9115
+#, no-wrap
+msgid "source-unstable-tarball"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:7598
-msgid "Probe @code{home-page} and @code{source} URLs and report those that are invalid.  Suggest a @code{mirror://} URL when applicable.  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})."
+#: doc/guix.texi:9119
+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: item
-#: doc/guix.texi:7599
+#: doc/guix.texi:9120
 #, no-wrap
 msgid "cve"
-msgstr ""
+msgstr "cve"
 
 #. type: cindex
-#: doc/guix.texi:7600 doc/guix.texi:23486
+#: doc/guix.texi:9121 doc/guix.texi:25369
 #, no-wrap
 msgid "security vulnerabilities"
-msgstr ""
+msgstr "Sicherheitslücken"
 
 #. type: cindex
-#: doc/guix.texi:7601
+#: doc/guix.texi:9122
 #, no-wrap
 msgid "CVE, Common Vulnerabilities and Exposures"
-msgstr ""
+msgstr "CVE, Common Vulnerabilities and Exposures"
 
 #. type: table
-#: doc/guix.texi:7606
+#: doc/guix.texi:9127
 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 ""
+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/download.cfm#CVE_FEED, wie sie von der US-amerikanischen NIST veröffentlicht werden}."
 
 #. type: table
-#: doc/guix.texi:7608
+#: doc/guix.texi:9129
 msgid "To view information about a particular vulnerability, visit pages such as:"
-msgstr ""
+msgstr "Um Informationen über eine bestimmte Sicherheitslücke angezeigt zu bekommen, besuchen Sie Webseiten wie:"
 
 #. type: indicateurl{#1}
-#: doc/guix.texi:7612
+#: doc/guix.texi:9133
 msgid "https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-YYYY-ABCD"
-msgstr ""
+msgstr "https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-YYYY-ABCD"
 
 #. type: indicateurl{#1}
-#: doc/guix.texi:7614
+#: doc/guix.texi:9135
 msgid "https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-YYYY-ABCD"
-msgstr ""
+msgstr "https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-YYYY-ABCD"
 
 #. type: table
-#: doc/guix.texi:7619
+#: doc/guix.texi:9140
 msgid "where @code{CVE-YYYY-ABCD} is the CVE identifier---e.g., @code{CVE-2015-7554}."
-msgstr ""
+msgstr "wobei Sie statt @code{CVE-YYYY-ABCD} die CVE-Kennnummer angeben — z.B.@: @code{CVE-2015-7554}."
 
 #. type: table
-#: doc/guix.texi:7624
+#: doc/guix.texi:9145
 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 ""
+msgstr "Paketentwickler können in ihren Paketrezepten den Namen und die Version des Pakets in der @uref{https://nvd.nist.gov/cpe.cfm,Common Platform Enumeration (CPE)} angeben, falls sich diese von dem in Guix benutzten Namen und der Version unterscheiden, zum Beispiel so:"
 
 #. type: example
-#: doc/guix.texi:7632
+#: doc/guix.texi:9153
 #, no-wrap
 msgid ""
 "(package\n"
@@ -13907,14 +16715,20 @@ msgid ""
 "  (properties '((cpe-name . \"grub2\")\n"
 "                (cpe-version . \"2.3\")))\n"
 msgstr ""
+"(package\n"
+"  (name \"grub\")\n"
+"  ;; @dots{}\n"
+"  ;; CPE bezeichnet das Paket als \"grub2\".\n"
+"  (properties '((cpe-name . \"grub2\")\n"
+"                (cpe-version . \"2.3\")))\n"
 
 #. type: table
-#: doc/guix.texi:7639
+#: doc/guix.texi:9160
 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 ""
+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: example
-#: doc/guix.texi:7649
+#: doc/guix.texi:9170
 #, no-wrap
 msgid ""
 "(package\n"
@@ -13926,93 +16740,102 @@ msgid ""
 "                                    \"CVE-2011-1554\"\n"
 "                                    \"CVE-2011-5244\")))))\n"
 msgstr ""
+"(package\n"
+"  (name \"t1lib\")\n"
+"  ;; @dots{}\n"
+"  ;; Diese CVEs treffen nicht mehr zu und können bedenkenlos ignoriert\n"
+"  ;; werden.\n"
+"  (properties `((lint-hidden-cve . (\"CVE-2011-0433\"\n"
+"                                    \"CVE-2011-1553\"\n"
+"                                    \"CVE-2011-1554\"\n"
+"                                    \"CVE-2011-5244\")))))\n"
 
 #. type: item
-#: doc/guix.texi:7651
+#: doc/guix.texi:9172
 #, no-wrap
 msgid "formatting"
-msgstr ""
+msgstr "Formatierung"
 
 #. type: table
-#: doc/guix.texi:7654
+#: doc/guix.texi:9175
 msgid "Warn about obvious source code formatting issues: trailing white space, use of tabulations, etc."
-msgstr ""
+msgstr "Offensichtliche Fehler bei der Formatierung von Quellcode melden, z.B.@: Leerraum-Zeichen am Zeilenende oder Nutzung von Tabulatorzeichen."
 
 #. type: example
-#: doc/guix.texi:7660
+#: doc/guix.texi:9181
 #, no-wrap
 msgid "guix lint @var{options} @var{package}@dots{}\n"
-msgstr ""
+msgstr "guix lint @var{Optionen} @var{Pakete}@dots{}\n"
 
 #. type: Plain text
-#: doc/guix.texi:7664
+#: doc/guix.texi:9185
 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 ""
+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:7666
+#: doc/guix.texi:9187
 #, no-wrap
 msgid "--list-checkers"
-msgstr ""
+msgstr "--list-checkers"
 
 #. type: table
-#: doc/guix.texi:7670
+#: doc/guix.texi:9191
 msgid "List and describe all the available checkers that will be run on packages and exit."
-msgstr ""
+msgstr "Alle verfügbaren Prüfer für die Pakete auflisten und beschreiben."
 
 #. type: item
-#: doc/guix.texi:7671
+#: doc/guix.texi:9192
 #, no-wrap
 msgid "--checkers"
-msgstr ""
+msgstr "--checkers"
 
 #. type: itemx
-#: doc/guix.texi:7672
+#: doc/guix.texi:9193
 #, no-wrap
 msgid "-c"
-msgstr ""
+msgstr "-c"
 
 #. type: table
-#: doc/guix.texi:7675
+#: doc/guix.texi:9196
 msgid "Only enable the checkers specified in a comma-separated list using the names returned by @code{--list-checkers}."
-msgstr ""
+msgstr "Nur die Prüfer aktivieren, die hiernach in einer kommagetrennten Liste aus von @code{--list-checkers} aufgeführten Prüfern vorkommen."
 
 #. type: section
-#: doc/guix.texi:7679
+#: doc/guix.texi:9200
 #, no-wrap
 msgid "Invoking @command{guix size}"
-msgstr ""
+msgstr "@command{guix size} aufrufen"
 
 #. type: cindex
-#: doc/guix.texi:7681
+#: doc/guix.texi:9202
 #, no-wrap
 msgid "size"
-msgstr ""
+msgstr "Größe"
 
 #. type: cindex
-#: doc/guix.texi:7682
+#: doc/guix.texi:9203
 #, no-wrap
 msgid "package size"
-msgstr ""
+msgstr "Paketgröße"
 
 #. type: command{#1}
-#: doc/guix.texi:7684
+#: doc/guix.texi:9205
 #, no-wrap
 msgid "guix size"
-msgstr ""
+msgstr "guix size"
 
 #. type: Plain text
-#: doc/guix.texi:7691
+#: doc/guix.texi:9212
 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 ""
+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:7696
+#: doc/guix.texi:9217
 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 ""
+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:7709
+#: doc/guix.texi:9230
 #, no-wrap
 msgid ""
 "$ guix size coreutils\n"
@@ -14027,45 +16850,56 @@ msgid ""
 "/gnu/store/@dots{}-libcap-2.25             60.5     0.2   0.2%\n"
 "total: 78.9 MiB\n"
 msgstr ""
+"$ guix size coreutils\n"
+"Store-Objekt                            Gesamt   Selbst\n"
+"/gnu/store/@dots{}-gcc-5.5.0-lib           60.4    30.1  38.1%\n"
+"/gnu/store/@dots{}-glibc-2.27              30.3    28.8  36.6%\n"
+"/gnu/store/@dots{}-coreutils-8.28          78.9    15.0  19.0%\n"
+"/gnu/store/@dots{}-gmp-6.1.2               63.1     2.7   3.4%\n"
+"/gnu/store/@dots{}-bash-static-4.4.12       1.5     1.5   1.9%\n"
+"/gnu/store/@dots{}-acl-2.2.52              61.1     0.4   0.5%\n"
+"/gnu/store/@dots{}-attr-2.4.47             60.6     0.2   0.3%\n"
+"/gnu/store/@dots{}-libcap-2.25             60.5     0.2   0.2%\n"
+"Gesamt: 78.9 MiB\n"
 
 #. type: Plain text
-#: doc/guix.texi:7715
+#: doc/guix.texi:9236
 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 ""
+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:7718
+#: doc/guix.texi:9239
 #, no-wrap
 msgid "$ guix gc -R /gnu/store/@dots{}-coreutils-8.23\n"
-msgstr ""
+msgstr "$ guix gc -R /gnu/store/@dots{}-coreutils-8.23\n"
 
 #. type: Plain text
-#: doc/guix.texi:7726
+#: doc/guix.texi:9247
 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 ""
+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."
 
 #. type: Plain text
-#: doc/guix.texi:7732
+#: doc/guix.texi:9253
 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 ""
+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:7741
+#: doc/guix.texi:9262
 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 ""
+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:7746
+#: doc/guix.texi:9267
 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 ""
+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:7748
+#: doc/guix.texi:9269
 msgid "You can also specify several package names:"
-msgstr ""
+msgstr "Sie können auch mehrere Paketnamen angeben:"
 
 #. type: example
-#: doc/guix.texi:7758
+#: doc/guix.texi:9279
 #, no-wrap
 msgid ""
 "$ guix size coreutils grep sed bash\n"
@@ -14077,1175 +16911,715 @@ msgid ""
 "@dots{}\n"
 "total: 102.3 MiB\n"
 msgstr ""
+"$ guix size coreutils grep sed bash\n"
+"Store-Objekt                            Gesamt   Selbst\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"
+"Gesamt: 102.3 MiB\n"
 
 #. type: Plain text
-#: doc/guix.texi:7764
+#: doc/guix.texi:9285
 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 ""
+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:7766
+#: doc/guix.texi:9287
 msgid "The available options are:"
-msgstr ""
+msgstr "Die verfügbaren Befehlszeilenoptionen sind:"
 
 #. type: table
-#: doc/guix.texi:7772
+#: doc/guix.texi:9293
 msgid "Use substitute information from @var{urls}.  @xref{client-substitute-urls, the same option for @code{guix build}}."
-msgstr ""
+msgstr "Substitutinformationen von den @var{URLs} benutzen. Siehe @ref{client-substitute-urls, dieselbe Option bei @code{guix build}}."
 
 #. type: item
-#: doc/guix.texi:7773
+#: doc/guix.texi:9294
 #, no-wrap
 msgid "--sort=@var{key}"
-msgstr ""
+msgstr "--sort=@var{Schlüssel}"
 
 #. type: table
-#: doc/guix.texi:7775
+#: doc/guix.texi:9296
 msgid "Sort lines according to @var{key}, one of the following options:"
-msgstr ""
+msgstr "Zeilen anhand des @var{Schlüssel}s sortieren, der eine der folgenden Alternativen sein muss:"
 
 #. type: item
-#: doc/guix.texi:7777
+#: doc/guix.texi:9298
 #, no-wrap
 msgid "self"
-msgstr ""
+msgstr "self"
 
 #. type: table
-#: doc/guix.texi:7779
+#: doc/guix.texi:9300
 msgid "the size of each item (the default);"
-msgstr ""
+msgstr "die Größe jedes Objekts (die Vorgabe),"
 
 #. type: table
-#: doc/guix.texi:7781
+#: doc/guix.texi:9302
 msgid "the total size of the item's closure."
-msgstr ""
+msgstr "die Gesamtgröße des Abschlusses des Objekts."
 
 #. type: item
-#: doc/guix.texi:7783
+#: doc/guix.texi:9304
 #, no-wrap
 msgid "--map-file=@var{file}"
-msgstr ""
+msgstr "--map-file=@var{Datei}"
 
 #. type: table
-#: doc/guix.texi:7785
+#: doc/guix.texi:9306
 msgid "Write a graphical map of disk usage in PNG format to @var{file}."
-msgstr ""
+msgstr "Eine grafische Darstellung des Plattenplatzverbrauchs als eine PNG-formatierte Karte in die @var{Datei} schreiben."
 
 #. type: table
-#: doc/guix.texi:7787
+#: doc/guix.texi:9308
 msgid "For the example above, the map looks like this:"
-msgstr ""
+msgstr "Für das Beispiel oben sieht die Karte so aus:"
 
 #. type: table
-#: doc/guix.texi:7790
+#: doc/guix.texi:9311
 msgid "@image{images/coreutils-size-map,5in,, map of Coreutils disk usage produced by @command{guix size}}"
-msgstr ""
+msgstr "@image{images/coreutils-size-map,5in,, Karte der Plattenausnutzung der Coreutils, erzeugt mit @command{guix size}}"
 
 #. type: table
-#: doc/guix.texi:7795
+#: doc/guix.texi:9316
 msgid "This option requires that @uref{http://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 ""
+msgstr "Diese Befehlszeilenoption setzt voraus, dass @uref{http://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:7799
+#: doc/guix.texi:9320
 msgid "Consider packages for @var{system}---e.g., @code{x86_64-linux}."
-msgstr ""
+msgstr "Pakete für dieses @var{System} betrachten — z.B.@: für @code{x86_64-linux}."
 
 #. type: section
-#: doc/guix.texi:7803
+#: doc/guix.texi:9324
 #, no-wrap
 msgid "Invoking @command{guix graph}"
-msgstr ""
+msgstr "@command{guix graph} aufrufen"
 
 #. type: cindex
-#: doc/guix.texi:7805
+#: doc/guix.texi:9326
 #, no-wrap
 msgid "DAG"
-msgstr ""
+msgstr "DAG"
 
 #. type: command{#1}
-#: doc/guix.texi:7806
+#: doc/guix.texi:9327
 #, no-wrap
 msgid "guix graph"
-msgstr ""
+msgstr "guix graph"
 
 #. type: Plain text
-#: doc/guix.texi:7820
+#: doc/guix.texi:9341
 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{http://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{http://www.opencypher.org/, openCypher} query language.  The general syntax is:"
-msgstr ""
+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{http://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{http://www.opencypher.org/, openCypher} unterstützende Graph-Datenbank einen Graphen konstruieren kann. Die allgemeine Syntax ist:"
 
 #. type: example
-#: doc/guix.texi:7823
+#: doc/guix.texi:9344
 #, no-wrap
 msgid "guix graph @var{options} @var{package}@dots{}\n"
-msgstr ""
+msgstr "guix graph @var{Optionen} @var{Pakete}@dots{}\n"
 
 #. type: Plain text
-#: doc/guix.texi:7828
+#: doc/guix.texi:9349
 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 ""
+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:7831
+#: doc/guix.texi:9352
 #, 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:7834
+#: doc/guix.texi:9355
 msgid "The output looks like this:"
-msgstr ""
+msgstr "Die Ausgabe sieht so aus:"
 
 #. type: Plain text
-#: doc/guix.texi:7836
+#: doc/guix.texi:9357
 msgid "@image{images/coreutils-graph,2in,,Dependency graph of the GNU Coreutils}"
-msgstr ""
+msgstr "@image{images/coreutils-graph,2in,,Abhängigkeitsgraph der GNU Coreutils}"
 
 #. type: Plain text
-#: doc/guix.texi:7838
+#: doc/guix.texi:9359
 msgid "Nice little graph, no?"
-msgstr ""
+msgstr "Ein netter, kleiner Graph, oder?"
 
 #. type: Plain text
-#: doc/guix.texi:7844
+#: doc/guix.texi:9365
 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 ""
+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:7850
+#: doc/guix.texi:9371
 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 ""
+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:7851
+#: doc/guix.texi:9372
 #, no-wrap
 msgid "reverse-package"
-msgstr ""
+msgstr "reverse-package"
 
 #. type: table
-#: doc/guix.texi:7853
+#: doc/guix.texi:9374
 msgid "This shows the @emph{reverse} DAG of packages.  For example:"
-msgstr ""
+msgstr "Dies zeigt den @emph{umgekehrten} DAG der Pakete. Zum Beispiel:"
 
 #. type: example
-#: doc/guix.texi:7856
+#: doc/guix.texi:9377
 #, no-wrap
 msgid "guix graph --type=reverse-package ocaml\n"
-msgstr ""
+msgstr "guix graph --type=reverse-package ocaml\n"
 
 #. type: table
-#: doc/guix.texi:7859
-msgid "... yields the graph of packages that depend on OCaml."
+#: doc/guix.texi:9382
+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:7864
+#: doc/guix.texi:9387
 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 ""
+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:7865
+#: doc/guix.texi:9388
 #, no-wrap
 msgid "bag-emerged"
-msgstr ""
+msgstr "bag-emerged"
 
 #. type: table
-#: doc/guix.texi:7867
+#: doc/guix.texi:9390
 msgid "This is the package DAG, @emph{including} implicit inputs."
-msgstr ""
+msgstr "Dies ist der Paket-DAG @emph{einschließlich} impliziter Eingaben."
 
 #. type: table
-#: doc/guix.texi:7869
+#: doc/guix.texi:9392
 msgid "For instance, the following command:"
-msgstr ""
+msgstr "Zum Beispiel liefert der folgende Befehl:"
 
 #. type: example
-#: doc/guix.texi:7872
+#: doc/guix.texi:9395
 #, no-wrap
 msgid "guix graph --type=bag-emerged coreutils | dot -Tpdf > dag.pdf\n"
-msgstr ""
+msgstr "guix graph --type=bag-emerged coreutils | dot -Tpdf > dag.pdf\n"
 
 #. type: table
-#: doc/guix.texi:7875
-msgid "... yields this bigger graph:"
-msgstr ""
+#: doc/guix.texi:9398
+msgid "...@: yields this bigger graph:"
+msgstr "…@: diesen größeren Graphen:"
 
 #. type: table
-#: doc/guix.texi:7877
+#: doc/guix.texi:9400
 msgid "@image{images/coreutils-bag-graph,,5in,Detailed dependency graph of the GNU Coreutils}"
-msgstr ""
+msgstr "@image{images/coreutils-bag-graph,,5in,Detaillierter Abhängigkeitsgraph der GNU Coreutils}"
 
 #. type: table
-#: doc/guix.texi:7880
+#: doc/guix.texi:9403
 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 ""
+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:7884
+#: doc/guix.texi:9407
 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 ""
+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:7885
+#: doc/guix.texi:9408
 #, no-wrap
 msgid "bag"
-msgstr ""
+msgstr "bag"
 
 #. type: table
-#: doc/guix.texi:7888
+#: doc/guix.texi:9411
 msgid "Similar to @code{bag-emerged}, but this time including all the bootstrap dependencies."
-msgstr ""
+msgstr "Ähnlich wie @code{bag-emerged}, aber diesmal mit allen Bootstrap-Abhängigkeiten."
 
 #. type: item
-#: doc/guix.texi:7889
+#: doc/guix.texi:9412
 #, no-wrap
 msgid "bag-with-origins"
-msgstr ""
+msgstr "bag-with-origins"
 
 #. type: table
-#: doc/guix.texi:7891
+#: doc/guix.texi:9414
 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:9415
+#, no-wrap
+msgid "reverse-bag"
+msgstr "reverse-bag"
+
+#. type: table
+#: doc/guix.texi:9418
+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:9421
+#, no-wrap
+msgid "guix graph -t reverse-bag dune\n"
+msgstr "guix graph -t reverse-bag dune\n"
+
 #. type: table
-#: doc/guix.texi:7897
-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."
+#: doc/guix.texi:9428
+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:7900
+#: doc/guix.texi:9434
+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:9437
 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 ""
+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:7903
+#: doc/guix.texi:9440
 #, 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:7905
+#: doc/guix.texi:9442
 #, no-wrap
 msgid "module"
-msgstr ""
+msgstr "module"
 
 #. type: table
-#: doc/guix.texi:7909
+#: doc/guix.texi:9446
 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 ""
+msgstr "Dies ist der Graph der @dfn{Paketmodule} (siehe @ref{Package Modules}). Zum Beispiel zeigt der folgende Befehl den Graph für das Paketmodul an, das das @code{guile}-Paket definiert:"
 
 #. type: example
-#: doc/guix.texi:7912
+#: doc/guix.texi:9449
 #, no-wrap
 msgid "guix graph -t module guile | dot -Tpdf > module-graph.pdf\n"
-msgstr ""
+msgstr "guix graph -t module guile | dot -Tpdf > modul-graph.pdf\n"
 
 #. type: Plain text
-#: doc/guix.texi:7917
+#: doc/guix.texi:9454
 msgid "All the types above correspond to @emph{build-time dependencies}.  The following graph type represents the @emph{run-time dependencies}:"
-msgstr ""
-
-#. type: item
-#: doc/guix.texi:7919
-#, no-wrap
-msgid "references"
-msgstr ""
+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:7922
+#: doc/guix.texi:9459
 msgid "This is the graph of @dfn{references} of a package output, as returned by @command{guix gc --references} (@pxref{Invoking guix gc})."
-msgstr ""
+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:7925
+#: doc/guix.texi:9462
 msgid "If the given package output is not available in the store, @command{guix graph} attempts to obtain dependency information from substitutes."
-msgstr ""
+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:7929
+#: doc/guix.texi:9466
 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 ""
+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:7932
+#: doc/guix.texi:9469
 #, 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:7934
+#: doc/guix.texi:9471
 #, no-wrap
 msgid "referrers"
-msgstr ""
+msgstr "referrers"
 
 #. type: table
-#: doc/guix.texi:7937
+#: doc/guix.texi:9474
 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 ""
+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:7943
+#: doc/guix.texi:9480
 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 ""
+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:7946
+#: doc/guix.texi:9483
 msgid "It can help determine what is preventing a store item from being garbage collected."
-msgstr ""
+msgstr "Ein solcher Graph kann dabei helfen, herauszufinden, weshalb ein Store-Objekt nicht vom Müllsammler abgeholt werden kann."
 
 #. type: Plain text
-#: doc/guix.texi:7950
+#: doc/guix.texi:9487
 msgid "The available options are the following:"
-msgstr ""
+msgstr "Folgendes sind die verfügbaren Befehlszeilenoptionen:"
 
 #. type: table
-#: doc/guix.texi:7956
+#: doc/guix.texi:9493
 msgid "Produce a graph output of @var{type}, where @var{type} must be one of the values listed above."
-msgstr ""
+msgstr "Eine Graph-Ausgabe dieses @var{Typ}s generieren. Dieser @var{Typ} muss einer der oben genannten Werte sein."
 
 #. type: item
-#: doc/guix.texi:7957
+#: doc/guix.texi:9494
 #, no-wrap
 msgid "--list-types"
-msgstr ""
+msgstr "--list-types"
 
 #. type: table
-#: doc/guix.texi:7959
+#: doc/guix.texi:9496
 msgid "List the supported graph types."
-msgstr ""
+msgstr "Die unterstützten Graph-Typen auflisten."
 
 #. type: item
-#: doc/guix.texi:7960
+#: doc/guix.texi:9497
 #, no-wrap
 msgid "--backend=@var{backend}"
-msgstr ""
+msgstr "--backend=@var{Backend}"
 
 #. type: itemx
-#: doc/guix.texi:7961
+#: doc/guix.texi:9498
 #, no-wrap
 msgid "-b @var{backend}"
-msgstr ""
+msgstr "-b @var{Backend}"
 
 #. type: table
-#: doc/guix.texi:7963
+#: doc/guix.texi:9500
 msgid "Produce a graph using the selected @var{backend}."
-msgstr ""
+msgstr "Einen Graph mit Hilfe des ausgewählten @var{Backend}s generieren."
 
 #. type: item
-#: doc/guix.texi:7964
+#: doc/guix.texi:9501
 #, no-wrap
 msgid "--list-backends"
-msgstr ""
+msgstr "--list-backends"
 
 #. type: table
-#: doc/guix.texi:7966
+#: doc/guix.texi:9503
 msgid "List the supported graph backends."
-msgstr ""
+msgstr "Die unterstützten Graph-Backends auflisten."
 
 #. type: table
-#: doc/guix.texi:7968
+#: doc/guix.texi:9505
 msgid "Currently, the available backends are Graphviz and d3.js."
-msgstr ""
+msgstr "Derzeit sind die verfügbaren Backends Graphviz und d3.js."
 
 #. type: example
-#: doc/guix.texi:7977
+#: doc/guix.texi:9514
 #, 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:7982
+#: doc/guix.texi:9519
 msgid "Display the graph for @var{system}---e.g., @code{i686-linux}."
-msgstr ""
+msgstr "Den Graphen für das @var{System} anzeigen — z.B.@: @code{i686-linux}."
 
 #. type: table
-#: doc/guix.texi:7985
+#: doc/guix.texi:9522
 msgid "The package dependency graph is largely architecture-independent, but there are some architecture-dependent bits that this option allows you to visualize."
-msgstr ""
+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: section
-#: doc/guix.texi:7989
-#, no-wrap
-msgid "Invoking @command{guix environment}"
-msgstr "@command{guix environment} aufrufen"
-
-#. type: cindex
-#: doc/guix.texi:7991
-#, no-wrap
-msgid "reproducible build environments"
-msgstr "reproduzierbare Erstellungsumgebungen"
-
-#. type: cindex
-#: doc/guix.texi:7992
-#, no-wrap
-msgid "development environments"
-msgstr "Entwicklungsumgebungen"
-
-#. type: command{#1}
-#: doc/guix.texi:7993
-#, no-wrap
-msgid "guix environment"
-msgstr "guix environment"
-
-#. type: cindex
-#: doc/guix.texi:7994
-#, no-wrap
-msgid "environment, package build environment"
-msgstr "Umgebung, Paketerstellungsumgebung"
-
-#. type: Plain text
-#: doc/guix.texi:8000
-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:8005
-#, no-wrap
-msgid "guix environment @var{options} @var{package}@dots{}\n"
-msgstr "guix environment @var{Optionen} @var{Paket}@dots{}\n"
-
-#. type: Plain text
-#: doc/guix.texi:8009
-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:8012
-#, no-wrap
-msgid "guix environment guile\n"
-msgstr "guix environment guile\n"
-
-#. type: Plain text
-#: doc/guix.texi:8029
-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. @xref{Bash Startup Files,,, bash, The GNU Bash Reference Manual}, für Details über beim Starten von Bash gelesene Dateien}."
-
-#. type: vindex
-#: doc/guix.texi:8030
-#, no-wrap
-msgid "GUIX_ENVIRONMENT"
-msgstr "GUIX_ENVIRONMENT"
-
-#. type: Plain text
-#: doc/guix.texi:8036
-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 (@pxref{Bash Startup Files,,, bash, The GNU Bash Reference Manual}):"
-
-#. type: example
-#: doc/guix.texi:8042
-#, no-wrap
-msgid ""
-"if [ -n \"$GUIX_ENVIRONMENT\" ]\n"
-"then\n"
-"    export PS1=\"\\u@@\\h \\w [dev]\\$ \"\n"
-"fi\n"
-msgstr ""
-"if [ -n \"$GUIX_ENVIRONMENT\" ]\n"
-"then\n"
-"    export PS1=\"\\u@@\\h \\w [dev]\\$ \"\n"
-"fi\n"
-
-#. type: Plain text
-#: doc/guix.texi:8046
-msgid "... or to browse the profile:"
-msgstr "… oder um ihr Profil durchzusehen:"
-
-#. type: example
-#: doc/guix.texi:8049
-#, no-wrap
-msgid "$ ls \"$GUIX_ENVIRONMENT/bin\"\n"
-msgstr "$ ls \"$GUIX_ENVIRONMENT/bin\"\n"
-
-#. type: Plain text
-#: doc/guix.texi:8055
-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:8058
-#, no-wrap
-msgid "guix environment guile emacs\n"
-msgstr "guix environment guile emacs\n"
-
-#. type: Plain text
-#: doc/guix.texi:8063
-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:"
-
-#. type: example
-#: doc/guix.texi:8066
-#, no-wrap
-msgid "guix environment guile -- make -j4\n"
-msgstr "guix environment guile -- make -j4\n"
-
-#. type: Plain text
-#: doc/guix.texi:8072
-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:8075
-#, 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:8086
-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:"
-
-#. type: example
-#: doc/guix.texi:8089
-#, no-wrap
-msgid "guix environment guix --ad-hoc git strace\n"
-msgstr "guix environment guix --ad-hoc git strace\n"
-
-#. type: Plain text
-#: doc/guix.texi:8098
-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 GuixSD, 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 GuixSD 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:8101
-#, 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:8105
-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."
-
-#. type: Plain text
-#: doc/guix.texi:8108
-msgid "The available options are summarized below."
-msgstr "Im Folgenden werden die verfügbaren Befehlszeilenoptionen zusammengefasst."
-
-#. type: cindex
-#: doc/guix.texi:8112
-#, no-wrap
-msgid "persistent environment"
-msgstr "persistente Umgebung"
-
-#. type: cindex
-#: doc/guix.texi:8113
-#, no-wrap
-msgid "garbage collector root, for environments"
-msgstr "Müllsammlerwurzel, für Umgebungen"
-
-#. type: table
-#: doc/guix.texi:8116
-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:8119
-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:8125
-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. @xref{Invoking guix gc} hat mehr Informationen über Müllsammlerwurzeln."
-
-#. type: table
-#: doc/guix.texi:8130
-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:8132
-msgid "For example, running:"
-msgstr "Zum Beispiel startet dies:"
-
-#. type: example
-#: doc/guix.texi:8135
-#, 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:8139
-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:8141
-msgid "Running:"
-msgstr "Wenn man dies ausführt:"
-
-#. type: example
-#: doc/guix.texi:8144
-#, 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:8147
-msgid "starts a shell with all the GuixSD base packages available."
-msgstr "bekommt man eine Shell mit allen Basis-Paketen, die in GuixSD verfügbar sind."
-
-#. type: table
-#: doc/guix.texi:8150
-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:8153
-#, 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:8155
-#, no-wrap
-msgid "--load=@var{file}"
-msgstr "--load=@var{Datei}"
-
-#. type: itemx
-#: doc/guix.texi:8156
-#, no-wrap
-msgid "-l @var{file}"
-msgstr "-l @var{Datei}"
-
-#. type: table
-#: doc/guix.texi:8159
-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: example
-#: doc/guix.texi:8165
-#, no-wrap
-msgid "@verbatiminclude environment-gdb.scm\n"
-msgstr "@verbatiminclude environment-gdb.scm\n"
-
-#. type: table
-#: doc/guix.texi:8171
-msgid "Create an environment for the packages contained in the manifest object returned by the Scheme code in @var{file}."
-msgstr "Eine Umgebung für die Pakete erzeugen, die im Manifest-Objekt enthalten sind, das vom Scheme-Code in der @var{Datei} geliefert wird."
-
-#. type: table
-#: doc/guix.texi:8175
-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} (@pxref{profile-manifest, @option{--manifest}}) und benutzt auch dieselben Manifestdateien."
-
-#. type: item
-#: doc/guix.texi:8176
-#, no-wrap
-msgid "--ad-hoc"
-msgstr "--ad-hoc"
-
-#. type: table
-#: doc/guix.texi:8181
-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:8183
-msgid "For instance, the command:"
-msgstr "Zum Beispiel wird mit diesem Befehl:"
-
-#. type: example
-#: doc/guix.texi:8186
-#, 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:8190
-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:8195
-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 (@pxref{Packages with Multiple Outputs})."
-
-#. type: table
-#: doc/guix.texi:8201
-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."
-
-#. type: item
-#: doc/guix.texi:8202
-#, no-wrap
-msgid "--pure"
-msgstr "--pure"
-
-#. type: table
-#: doc/guix.texi:8206
-msgid "Unset existing environment variables when building the new environment.  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. Dies bewirkt, dass eine Umgebung erzeugt wird, in der die Suchpfade nur Paketeingaben nennen und sonst nichts."
-
-#. type: item
-#: doc/guix.texi:8207
-#, no-wrap
-msgid "--search-paths"
-msgstr "--search-paths"
-
-#. type: table
-#: doc/guix.texi:8210
-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:8214
-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:8215
-#, no-wrap
-msgid "--container"
-msgstr "--container"
-
-#. type: itemx
-#: doc/guix.texi:8216
-#, no-wrap
-msgid "-C"
-msgstr "-C"
-
-#. type: item
-#: doc/guix.texi:8217 doc/guix.texi:8728 doc/guix.texi:22494
-#, no-wrap
-msgid "container"
-msgstr "container"
-
-#. type: table
-#: doc/guix.texi:8225
-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.  The spawned process runs as the current user outside the container, but has root privileges in the context of the container."
-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}. Der erzeugte Prozess läuft außerhalb des Containers als der momentane Nutzer, aber im Kontext des Containers hat er Administratorrechte."
-
-#. type: item
-#: doc/guix.texi:8226
-#, no-wrap
-msgid "--network"
-msgstr "--network"
-
-#. type: itemx
-#: doc/guix.texi:8227
-#, no-wrap
-msgid "-N"
-msgstr "-N"
-
-#. type: table
-#: doc/guix.texi:8231
-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:8232
-#, no-wrap
-msgid "--link-profile"
-msgstr "--link-profile"
-
-#. type: itemx
-#: doc/guix.texi:8233
-#, no-wrap
-msgid "-P"
-msgstr "-P"
-
-#. type: table
-#: doc/guix.texi:8240
-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."
-
-#. type: table
-#: doc/guix.texi:8247
-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."
-
-#. type: item
-#: doc/guix.texi:8248 doc/guix.texi:8400
-#, no-wrap
-msgid "--user=@var{user}"
-msgstr "--user=@var{Benutzer}"
-
-#. type: itemx
-#: doc/guix.texi:8249 doc/guix.texi:8401
-#, no-wrap
-msgid "-u @var{user}"
-msgstr "-u @var{Benutzer}"
-
-#. type: table
-#: doc/guix.texi:8255
-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/USER}; and no user GECOS data will be copied.  @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. @var{Benutzer} muss auf dem System nicht existieren."
-
-#. type: table
-#: doc/guix.texi:8260
-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."
-
-#. type: example
-#: doc/guix.texi:8267
-#, no-wrap
-msgid ""
-"# will expose paths as /home/foo/wd, /home/foo/test, and /home/foo/target\n"
-"cd $HOME/wd\n"
-"guix environment --container --user=foo \\\n"
-"     --expose=$HOME/test \\\n"
-"     --expose=/tmp/target=$HOME/target\n"
-msgstr ""
-"# wird Pfade als /home/foo/wd, /home/foo/test und /home/foo/target exponieren\n"
-"cd $HOME/wd\n"
-"guix environment --container --user=foo \\\n"
-"     --expose=$HOME/test \\\n"
-"     --expose=/tmp/target=$HOME/target\n"
-
-#. type: table
-#: doc/guix.texi:8272
-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 Privatsphäre und Anonymität sinnvoll eingesetzt werden. Es sollte nicht für sich allein dazu eingesetzt werden."
-
-#. type: item
-#: doc/guix.texi:8273
-#, no-wrap
-msgid "--expose=@var{source}[=@var{target}]"
-msgstr "--expose=@var{Quelle}[=@var{Ziel}]"
-
-#. type: table
-#: doc/guix.texi:8278
-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 "Bei isolierten Umgebungen (»Containern«) wird das Dateisystem unter @var{Quelle} vom Wirtssystem als Nur-Lese-Dateisystem @var{Ziel} 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:8282
-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:8285
-#, 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: item
-#: doc/guix.texi:8287
-#, no-wrap
-msgid "--share=@var{source}[=@var{target}]"
-msgstr "--share=@var{Quelle}[=@var{Ziel}]"
-
-#. type: table
-#: doc/guix.texi:8292
-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 "Bei isolierten Umgebungen (»Containern«) wird das Dateisystem unter @var{Quelle} vom Wirtssystem als beschreibbares Dateisystem @var{Ziel} 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:8296
-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 "Im folgenden Beispiel wird eine Guile-REPL in einer isolierten Umgebung gestartet, in der das persönliche Verzeichnis des Benutzers als Verzeichnis @file{/austausch} sowohl für Lese- als auch für Schreibzugriffe zugänglich gemacht wurde:"
-
-#. type: example
-#: doc/guix.texi:8299
-#, no-wrap
-msgid "guix environment --container --share=$HOME=/exchange --ad-hoc guile -- guile\n"
-msgstr "guix environment --container --share=$HOME=/austausch --ad-hoc guile -- guile\n"
-
-#. type: Plain text
-#: doc/guix.texi:8305
-msgid "@command{guix environment} also supports all of the common build options that @command{guix build} supports (@pxref{Common Build Options})."
-msgstr "@command{guix environment} unterstützt auch alle gemeinsamen Erstellungsoptionen, die @command{guix build} unterstützt (@pxref{Common Build Options})."
-
-#. type: section
-#: doc/guix.texi:8308
+#: doc/guix.texi:9527
 #, no-wrap
 msgid "Invoking @command{guix publish}"
 msgstr "@command{guix publish} aufrufen"
 
 #. type: command{#1}
-#: doc/guix.texi:8310
+#: doc/guix.texi:9529
 #, no-wrap
 msgid "guix publish"
 msgstr "guix publish"
 
 #. type: Plain text
-#: doc/guix.texi:8314
+#: doc/guix.texi:9533
 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 (@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:8320
-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{hydra.gnu.org} 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 Build-Farm fungieren kann, weil die HTTP-Schnittstelle mit Hydra, der Software, mit der die offizielle Build-Farm @code{hydra.gnu.org} betrieben wird, kompatibel ist."
+#: doc/guix.texi:9539
+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 "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 Build-Farm fungieren kann, weil die HTTP-Schnittstelle mit Hydra, der Software, mit der die offizielle Build-Farm @code{@value{SUBSTITUTE-SERVER}} betrieben wird, kompatibel ist."
 
 #. type: Plain text
-#: doc/guix.texi:8326
+#: doc/guix.texi:9545
 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 @pxref{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."
+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."
 
 #. type: Plain text
-#: doc/guix.texi:8330
+#: doc/guix.texi:9549
 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 (@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:8335
+#: doc/guix.texi:9554
 #, no-wrap
 msgid "guix publish @var{options}@dots{}\n"
 msgstr "guix publish @var{Optionen}@dots{}\n"
 
 #. type: Plain text
-#: doc/guix.texi:8339
+#: doc/guix.texi:9558
 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:8342
+#: doc/guix.texi:9561
 #, no-wrap
 msgid "guix publish\n"
 msgstr "guix publish\n"
 
 #. type: Plain text
-#: doc/guix.texi:8346
+#: doc/guix.texi:9565
 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 (@pxref{Invoking guix archive}), kann der Daemon davon Substitute herunterladen:"
+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:8349
+#: doc/guix.texi:9568
 #, no-wrap
 msgid "guix-daemon --substitute-urls=http://example.org:8080\n"
 msgstr "guix-daemon --substitute-urls=http://example.org:8080\n"
 
 #. type: Plain text
-#: doc/guix.texi:8358
+#: doc/guix.texi:9577
 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 (@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:8365
+#: doc/guix.texi:9584
 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 (@pxref{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 @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:8368
+#: doc/guix.texi:9587
 #, 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:8372
+#: doc/guix.texi:9591
 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:8373
+#: doc/guix.texi:9592
 #, no-wrap
 msgid "build logs, publication"
 msgstr "Erstellungsprotokolle, Veröffentlichen"
 
 #. type: Plain text
-#: doc/guix.texi:8375
+#: doc/guix.texi:9594
 msgid "Build logs are available from @code{/log} URLs like:"
 msgstr "Erstellungsprotokolle sind unter @code{/log}-URLs abrufbar:"
 
 #. type: example
-#: doc/guix.texi:8378
+#: doc/guix.texi:9597
 #, 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:8388
+#: doc/guix.texi:9607
 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 (@pxref{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."
+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."
 
 #. type: item
-#: doc/guix.texi:8392
+#: doc/guix.texi:9611
 #, no-wrap
 msgid "--port=@var{port}"
 msgstr "--port=@var{Port}"
 
 #. type: itemx
-#: doc/guix.texi:8393
+#: doc/guix.texi:9612
 #, no-wrap
 msgid "-p @var{port}"
 msgstr "-p @var{Port}"
 
 #. type: table
-#: doc/guix.texi:8395
+#: doc/guix.texi:9614
 msgid "Listen for HTTP requests on @var{port}."
 msgstr "Auf HTTP-Anfragen auf diesem @var{Port} lauschen."
 
 #. type: item
-#: doc/guix.texi:8396 doc/guix.texi:18819
+#: doc/guix.texi:9615 doc/guix.texi:20575
 #, no-wrap
 msgid "--listen=@var{host}"
 msgstr "--listen=@var{Host}"
 
 #. type: table
-#: doc/guix.texi:8399
+#: doc/guix.texi:9618
 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:8404
+#: doc/guix.texi:9623
 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."
+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:8405
+#: doc/guix.texi:9624
 #, no-wrap
 msgid "--compression[=@var{level}]"
 msgstr "--compression[=@var{Stufe}]"
 
 #. type: itemx
-#: doc/guix.texi:8406
+#: doc/guix.texi:9625
 #, no-wrap
 msgid "-C [@var{level}]"
 msgstr "-C [@var{Stufe}]"
 
 #. type: table
-#: doc/guix.texi:8411
+#: doc/guix.texi:9630
 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 "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 gzip-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:8420
+#: doc/guix.texi:9639
 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: item
-#: doc/guix.texi:8421
+#: doc/guix.texi:9640
 #, no-wrap
 msgid "--cache=@var{directory}"
 msgstr "--cache=@var{Verzeichnis}"
 
 #. type: itemx
-#: doc/guix.texi:8422
+#: doc/guix.texi:9641
 #, no-wrap
 msgid "-c @var{directory}"
 msgstr "-c @var{Verzeichnis}"
 
 #. type: table
-#: doc/guix.texi:8425
+#: doc/guix.texi:9644
 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:8433
+#: doc/guix.texi:9652
 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:8441
+#: doc/guix.texi:9660
 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."
+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."
 
 #. type: table
-#: doc/guix.texi:8445
+#: doc/guix.texi:9664
 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:8448
+#: doc/guix.texi:9667
 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:8449
+#: doc/guix.texi:9668
 #, no-wrap
 msgid "--workers=@var{N}"
 msgstr "--workers=@var{N}"
 
 #. type: table
-#: doc/guix.texi:8452
+#: doc/guix.texi:9671
 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:8453
+#: doc/guix.texi:9672
 #, no-wrap
 msgid "--ttl=@var{ttl}"
 msgstr "--ttl=@var{ttl}"
 
 #. type: table
-#: doc/guix.texi:8457
+#: doc/guix.texi:9676
 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:8462
+#: doc/guix.texi:9681
 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:8466
+#: doc/guix.texi:9685
 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:8467
+#: doc/guix.texi:9686
 #, no-wrap
 msgid "--nar-path=@var{path}"
 msgstr "--nar-path=@var{Pfad}"
 
 #. type: table
-#: doc/guix.texi:8470
+#: doc/guix.texi:9689
 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 (@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})."
 
 #. type: table
-#: doc/guix.texi:8474
+#: doc/guix.texi:9693
 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/@dots{}-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:8475
+#: doc/guix.texi:9694
 #, no-wrap
 msgid "--public-key=@var{file}"
 msgstr "--public-key=@var{Datei}"
 
 #. type: itemx
-#: doc/guix.texi:8476
+#: doc/guix.texi:9695
 #, no-wrap
 msgid "--private-key=@var{file}"
 msgstr "--private-key=@var{Datei}"
 
 #. type: table
-#: doc/guix.texi:8479
+#: doc/guix.texi:9698
 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:8486
+#: doc/guix.texi:9705
 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 (@pxref{Invoking guix archive}). Vorgegeben ist, dass @file{/etc/guix/signing-key.pub} und @file{/etc/guix/signing-key.sec} benutzt werden."
+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:8487
+#: doc/guix.texi:9706
 #, no-wrap
 msgid "--repl[=@var{port}]"
 msgstr "--repl[=@var{Port}]"
 
 #. type: itemx
-#: doc/guix.texi:8488
+#: doc/guix.texi:9707
 #, no-wrap
 msgid "-r [@var{port}]"
 msgstr "-r [@var{Port}]"
 
 #. type: table
-#: doc/guix.texi:8492
+#: doc/guix.texi:9711
 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 (@pxref{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, 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."
 
 #. type: Plain text
-#: doc/guix.texi:8498
-msgid "Enabling @command{guix publish} on a GuixSD 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 GuixSD-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 (@pxref{guix-publish-service-type, @code{guix-publish-service-type}})."
+#: doc/guix.texi:9717
+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:8501
+#: doc/guix.texi:9720
 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:8505
+#: doc/guix.texi:9724
 msgid "If your host distro uses the systemd init system:"
 msgstr "Wenn Ihre Wirtsdistribution systemd als »init«-System benutzt:"
 
 #. type: example
-#: doc/guix.texi:8510
+#: doc/guix.texi:9729
 #, no-wrap
 msgid ""
 "# ln -s ~root/.guix-profile/lib/systemd/system/guix-publish.service \\\n"
@@ -15257,7 +17631,7 @@ msgstr ""
 "# systemctl start guix-publish && systemctl enable guix-publish\n"
 
 #. type: example
-#: doc/guix.texi:8518
+#: doc/guix.texi:9737
 #, no-wrap
 msgid ""
 "# ln -s ~root/.guix-profile/lib/upstart/system/guix-publish.conf /etc/init/\n"
@@ -15267,86 +17641,104 @@ msgstr ""
 "# start guix-publish\n"
 
 #. type: itemize
-#: doc/guix.texi:8522
+#: doc/guix.texi:9741
 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:8525
+#: doc/guix.texi:9744
 #, no-wrap
 msgid "Invoking @command{guix challenge}"
-msgstr ""
+msgstr "@command{guix challenge} aufrufen"
 
 #. type: cindex
-#: doc/guix.texi:8528
+#: doc/guix.texi:9747
 #, no-wrap
 msgid "verifiable builds"
-msgstr ""
+msgstr "verifizierbare Erstellungen"
 
 #. type: command{#1}
-#: doc/guix.texi:8529
+#: doc/guix.texi:9748
 #, no-wrap
 msgid "guix challenge"
-msgstr ""
+msgstr "guix challenge"
 
 #. type: cindex
-#: doc/guix.texi:8530
+#: doc/guix.texi:9749
 #, no-wrap
 msgid "challenge"
-msgstr ""
+msgstr "Anfechten"
 
 #. type: Plain text
-#: doc/guix.texi:8535
+#: doc/guix.texi:9754
 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 ""
+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:8543
+#: doc/guix.texi:9762
 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 ""
+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:8552
+#: doc/guix.texi:9771
 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 ""
+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:8554
+#: doc/guix.texi:9773
 msgid "The command output looks like this:"
-msgstr ""
+msgstr "Die Ausgabe des Befehls sieht so aus:"
 
 #. type: smallexample
-#: doc/guix.texi:8571
+#: doc/guix.texi:9790
 #, no-wrap
 msgid ""
-"$ guix challenge --substitute-urls=\"https://hydra.gnu.org https://guix.example.org\"\n"
-"updating list of substitutes from 'https://hydra.gnu.org'... 100.0%\n"
+"$ guix challenge --substitute-urls=\"https://@value{SUBSTITUTE-SERVER} https://guix.example.org\"\n"
+"updating list of substitutes from 'https://@value{SUBSTITUTE-SERVER}'... 100.0%\n"
 "updating list of substitutes from 'https://guix.example.org'... 100.0%\n"
 "/gnu/store/@dots{}-openssl-1.0.2d contents differ:\n"
 "  local hash: 0725l22r5jnzazaacncwsvp9kgf42266ayyp814v7djxs7nk963q\n"
-"  https://hydra.gnu.org/nar/@dots{}-openssl-1.0.2d: 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://hydra.gnu.org/nar/@dots{}-git-2.5.0: 069nb85bv4d4a6slrwjdy8v1cn4cwspm3kdbmyb81d6zckj3nq9f\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://hydra.gnu.org/nar/@dots{}-pius-2.1.1: 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"
 "\n"
 msgstr ""
+"$ guix challenge --substitute-urls=\"https://@value{SUBSTITUTE-SERVER} https://guix.example.org\"\n"
+"Liste der Substitute von »https://@value{SUBSTITUTE-SERVER}« wird aktualisiert … 100.0%\n"
+"Liste der Substitute von »https://guix.example.org« wird aktualisiert … 100.0%\n"
+"Inhalt von /gnu/store/@dots{}-openssl-1.0.2d verschieden:\n"
+"  lokale Prüfsumme: 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"
+"Inhalt von /gnu/store/@dots{}-git-2.5.0 verschieden:\n"
+"  lokale Prüfsumme: 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"
+"Inhalt von /gnu/store/@dots{}-pius-2.1.1 verschieden:\n"
+"  lokale Prüfsumme: 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"
+"\n"
 
 #. type: smallexample
-#: doc/guix.texi:8573
+#: doc/guix.texi:9792
 #, no-wrap
 msgid ""
 "@dots{}\n"
 "\n"
 msgstr ""
+"@dots{}\n"
+"\n"
 
 #. type: smallexample
-#: doc/guix.texi:8578
+#: doc/guix.texi:9797
 #, no-wrap
 msgid ""
 "6,406 store items were analyzed:\n"
@@ -15354,325 +17746,334 @@ msgid ""
 "  - 525 (8.2%) differed\n"
 "  - 1,132 (17.7%) were inconclusive\n"
 msgstr ""
+"6,406 Store-Objekte wurden analysiert:\n"
+"  — 4,749 (74.1%) waren identisch\n"
+"  — 525 (8.2%) unterscheiden sich\n"
+"  — 1,132 (17.7%) blieben ergebnislos\n"
 
 #. type: Plain text
-#: doc/guix.texi:8586
+#: doc/guix.texi:9805
 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 ""
+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:8587
+#: doc/guix.texi:9806
 #, no-wrap
 msgid "non-determinism, in package builds"
-msgstr ""
+msgstr "Nichtdeterminismus, in Paketerstellungen"
 
 #. type: Plain text
-#: doc/guix.texi:8598
-msgid "As an example, @code{guix.example.org} always gets a different answer.  Conversely, @code{hydra.gnu.org} 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 ""
+#: doc/guix.texi:9817
+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:8601
+#: doc/guix.texi:9820
 msgid "To find out what is wrong with this Git binary, we can do something along these lines (@pxref{Invoking guix archive}):"
-msgstr ""
+msgstr "Um herauszufinden, was mit dieser Git-Binärdatei nicht stimmt, können wir so etwas machen (siehe @ref{Invoking guix archive}):"
 
 #. type: example
-#: doc/guix.texi:8606
+#: doc/guix.texi:9825
 #, no-wrap
 msgid ""
-"$ wget -q -O - https://hydra.gnu.org/nar/@dots{}-git-2.5.0 \\\n"
+"$ wget -q -O - https://@value{SUBSTITUTE-SERVER}/nar/@dots{}-git-2.5.0 \\\n"
 "   | 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"
+"$ diff -ur --no-dereference /gnu/store/@dots{}-git.2.5.0 /tmp/git\n"
 
 #. type: Plain text
-#: doc/guix.texi:8615
-msgid "This command shows the difference between the files resulting from the local build, and the files resulting from the build on @code{hydra.gnu.org} (@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 ""
+#: doc/guix.texi:9834
+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."
 
 #. type: Plain text
-#: doc/guix.texi:8623
+#: doc/guix.texi:9842
 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 ""
+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:8627
-msgid "If you are writing packages for Guix, you are encouraged to check whether @code{hydra.gnu.org} and other substitute servers obtain the same build result as you did with:"
-msgstr ""
+#: doc/guix.texi:9846
+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:8630
+#: doc/guix.texi:9849
 #, no-wrap
 msgid "$ guix challenge @var{package}\n"
-msgstr ""
+msgstr "$ guix challenge @var{Paket}\n"
 
 #. type: Plain text
-#: doc/guix.texi:8635
+#: doc/guix.texi:9854
 msgid "where @var{package} is a package specification such as @code{guile@@2.0} or @code{glibc:debug}."
-msgstr ""
+msgstr "Dabei wird mit @var{Paket} eine Paketspezifikation wie @code{guile@@2.0} oder @code{glibc:debug} bezeichnet."
 
 #. type: example
-#: doc/guix.texi:8640
+#: doc/guix.texi:9859
 #, no-wrap
 msgid "guix challenge @var{options} [@var{packages}@dots{}]\n"
-msgstr ""
+msgstr "guix challenge @var{Optionen} [@var{Pakete}@dots{}]\n"
 
 #. type: Plain text
-#: doc/guix.texi:8647
+#: doc/guix.texi:9866
 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 ""
+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:8649
+#: doc/guix.texi:9868
 msgid "The one option that matters is:"
-msgstr ""
+msgstr "Die eine, wichtige Befehlszeilenoption ist:"
 
 #. type: table
-#: doc/guix.texi:8655
+#: doc/guix.texi:9874
 msgid "Consider @var{urls} the whitespace-separated list of substitute source URLs to compare to."
-msgstr ""
+msgstr "Die @var{URLs} als durch Leerraumzeichen getrennte Liste von Substitut-Quell-URLs benutzen. mit denen verglichen wird."
 
 #. type: itemx
-#: doc/guix.texi:8657
+#: doc/guix.texi:9876
 #, no-wrap
 msgid "-v"
-msgstr ""
+msgstr "-v"
 
 #. type: table
-#: doc/guix.texi:8660
+#: doc/guix.texi:9879
 msgid "Show details about matches (identical contents) in addition to information about mismatches."
-msgstr ""
+msgstr "Details auch zu Übereinstimmungen (deren Inhalt identisch ist) ausgeben, zusätzlich zu Informationen über Unterschiede."
 
 #. type: section
-#: doc/guix.texi:8664
+#: doc/guix.texi:9883
 #, no-wrap
 msgid "Invoking @command{guix copy}"
-msgstr ""
+msgstr "@command{guix copy} aufrufen"
 
 #. type: cindex
-#: doc/guix.texi:8666
+#: doc/guix.texi:9885
 #, no-wrap
 msgid "copy, of store items, over SSH"
-msgstr ""
+msgstr "Kopieren, von Store-Objekten, über SSH"
 
 #. type: cindex
-#: doc/guix.texi:8667
+#: doc/guix.texi:9886
 #, no-wrap
 msgid "SSH, copy of store items"
-msgstr ""
+msgstr "SSH, Kopieren von Store-Objekten"
 
 #. type: cindex
-#: doc/guix.texi:8668
+#: doc/guix.texi:9887
 #, no-wrap
 msgid "sharing store items across machines"
-msgstr ""
+msgstr "Store-Objekte zwischen Maschinen teilen"
 
 #. type: cindex
-#: doc/guix.texi:8669
+#: doc/guix.texi:9888
 #, no-wrap
 msgid "transferring store items across machines"
-msgstr ""
+msgstr "Übertragen von Store-Objekten zwischen Maschinen"
 
 #. type: Plain text
-#: doc/guix.texi:8676
+#: doc/guix.texi:9895
 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 ""
+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:8680
+#: doc/guix.texi:9899
 #, no-wrap
 msgid ""
 "guix copy --to=@var{user}@@@var{host} \\\n"
 "          coreutils `readlink -f ~/.guix-profile`\n"
 msgstr ""
+"guix copy --to=@var{Benutzer}@@@var{Rechner} \\\n"
+"          coreutils `readlink -f ~/.guix-profile`\n"
 
 #. type: Plain text
-#: doc/guix.texi:8684
+#: doc/guix.texi:9903
 msgid "If some of the items to be copied are already present on @var{host}, they are not actually sent."
-msgstr ""
+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:8687
+#: doc/guix.texi:9906
 msgid "The command below retrieves @code{libreoffice} and @code{gimp} from @var{host}, assuming they are available there:"
-msgstr ""
+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:8690
+#: doc/guix.texi:9909
 #, no-wrap
 msgid "guix copy --from=@var{host} libreoffice gimp\n"
-msgstr ""
+msgstr "guix copy --from=@var{host} libreoffice gimp\n"
 
 #. type: Plain text
-#: doc/guix.texi:8695
+#: doc/guix.texi:9914
 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 ""
+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:8701
+#: doc/guix.texi:9920
 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 ""
+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:8706
+#: doc/guix.texi:9925
 #, no-wrap
 msgid "guix copy [--to=@var{spec}|--from=@var{spec}] @var{items}@dots{}\n"
-msgstr ""
+msgstr "guix copy [--to=@var{Spezifikation}|--from=@var{Spezifikation}] @var{Objekte}@dots{}\n"
 
 #. type: Plain text
-#: doc/guix.texi:8709
+#: doc/guix.texi:9928
 msgid "You must always specify one of the following options:"
-msgstr ""
+msgstr "Sie müssen immer eine der folgenden Befehlszeilenoptionen angeben:"
 
 #. type: item
-#: doc/guix.texi:8711
+#: doc/guix.texi:9930
 #, no-wrap
 msgid "--to=@var{spec}"
-msgstr ""
+msgstr "--to=@var{Spezifikation}"
 
 #. type: itemx
-#: doc/guix.texi:8712
+#: doc/guix.texi:9931
 #, no-wrap
 msgid "--from=@var{spec}"
-msgstr ""
+msgstr "--from=@var{Spezifikation}"
 
 #. type: table
-#: doc/guix.texi:8716
+#: doc/guix.texi:9935
 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 ""
+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:8720
+#: doc/guix.texi:9939
 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 ""
+msgstr "Die @var{Objekte} können entweder Paketnamen wie @code{gimp} oder Store-Objekte wie @file{/gnu/store/@dots{}-idutils-4.6} sein."
 
 #. type: Plain text
-#: doc/guix.texi:8724
+#: doc/guix.texi:9943
 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 ""
+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:8727
+#: doc/guix.texi:9946
 #, no-wrap
 msgid "Invoking @command{guix container}"
-msgstr ""
+msgstr "@command{guix container} aufrufen"
 
 #. type: command{#1}
-#: doc/guix.texi:8729
+#: doc/guix.texi:9948
 #, no-wrap
 msgid "guix container"
-msgstr ""
+msgstr "guix container"
 
 #. type: quotation
-#: doc/guix.texi:8733
+#: doc/guix.texi:9952
 msgid "As of version @value{VERSION}, this tool is experimental.  The interface is subject to radical change in the future."
-msgstr ""
+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:8740
+#: doc/guix.texi:9959
 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 ""
+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:8745
+#: doc/guix.texi:9964
 #, no-wrap
 msgid "guix container @var{action} @var{options}@dots{}\n"
-msgstr ""
+msgstr "guix container @var{Aktion} @var{Optionen}@dots{}\n"
 
 #. type: Plain text
-#: doc/guix.texi:8749
+#: doc/guix.texi:9968
 msgid "@var{action} specifies the operation to perform with a container, and @var{options} specifies the context-specific arguments for the action."
-msgstr ""
+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:8751
+#: doc/guix.texi:9970
 msgid "The following actions are available:"
-msgstr ""
+msgstr "Folgende Aktionen sind verfügbar:"
 
 #. type: item
-#: doc/guix.texi:8753
+#: doc/guix.texi:9972
 #, no-wrap
 msgid "exec"
-msgstr ""
+msgstr "exec"
 
 #. type: table
-#: doc/guix.texi:8755
+#: doc/guix.texi:9974
 msgid "Execute a command within the context of a running container."
-msgstr ""
+msgstr "Führt einen Befehl im Kontext der laufenden isolierten Umgebung aus."
 
 #. type: table
-#: doc/guix.texi:8757
+#: doc/guix.texi:9976
 msgid "The syntax is:"
-msgstr ""
+msgstr "Die Syntax ist:"
 
 #. type: example
-#: doc/guix.texi:8760
+#: doc/guix.texi:9979
 #, no-wrap
 msgid "guix container exec @var{pid} @var{program} @var{arguments}@dots{}\n"
-msgstr ""
+msgstr "guix container exec @var{PID} @var{Programm} @var{Argumente}@dots{}\n"
 
 #. type: table
-#: doc/guix.texi:8766
+#: doc/guix.texi:9985
 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 ""
+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:8770
-msgid "The following command launches an interactive login shell inside a GuixSD container, started by @command{guix system container}, and whose process ID is 9001:"
-msgstr ""
+#: doc/guix.texi:9989
+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:8773
+#: doc/guix.texi:9992
 #, no-wrap
 msgid "guix container exec 9001 /run/current-system/profile/bin/bash --login\n"
-msgstr ""
+msgstr "guix container exec 9001 /run/current-system/profile/bin/bash --login\n"
 
 #. type: table
-#: doc/guix.texi:8777
+#: doc/guix.texi:9996
 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 ""
+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:8781
+#: doc/guix.texi:10000
 #, no-wrap
 msgid "Invoking @command{guix weather}"
-msgstr ""
+msgstr "@command{guix weather} aufrufen"
 
 #. type: Plain text
-#: doc/guix.texi:8790
+#: doc/guix.texi:10009
 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 ""
+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:8791
+#: doc/guix.texi:10010
 #, no-wrap
 msgid "statistics, for substitutes"
-msgstr ""
+msgstr "Statistik, für Substitute"
 
 #. type: cindex
-#: doc/guix.texi:8792
+#: doc/guix.texi:10011
 #, no-wrap
 msgid "availability of substitutes"
-msgstr ""
+msgstr "Verfügbarkeit von Substituten"
 
 #. type: cindex
-#: doc/guix.texi:8793
+#: doc/guix.texi:10012
 #, no-wrap
 msgid "substitute availability"
-msgstr ""
+msgstr "Substitutverfügbarkeit"
 
 #. type: cindex
-#: doc/guix.texi:8794
+#: doc/guix.texi:10013
 #, no-wrap
 msgid "weather, substitute availability"
-msgstr ""
+msgstr "Wetter, Substitutverfügbarkeit"
 
 #. type: Plain text
-#: doc/guix.texi:8796
+#: doc/guix.texi:10015
 msgid "Here's a sample run:"
-msgstr ""
+msgstr "Hier ist ein Beispiel für einen Aufruf davon:"
 
 #. type: example
-#: doc/guix.texi:8808
+#: doc/guix.texi:10027
 #, no-wrap
 msgid ""
 "$ guix weather --substitute-urls=https://guix.example.org\n"
@@ -15687,9 +18088,20 @@ msgid ""
 "  33.5 requests per second\n"
 "\n"
 msgstr ""
+"$ guix weather --substitute-urls=https://guix.example.org\n"
+"5.872 Paketableitungen für x86_64-linux berechnen …\n"
+"Nach 6.128 Store-Objekten von https://guix.example.org suchen …\n"
+"updating list of substitutes from 'https://guix.example.org'... 100.0%\n"
+"https://guix.example.org\n"
+"  43,4% Substitute verfügbar (2.658 von 6.128)\n"
+"  7.032,5 MiB an Nars (komprimiert)\n"
+"  19.824,2 MiB auf der Platte (unkomprimiert)\n"
+"  0,030 Sekunden pro Anfrage (182,9 Sekunden insgesamt)\n"
+"  33,5 Anfragen pro Sekunde\n"
+"\n"
 
 #. type: example
-#: doc/guix.texi:8818
+#: doc/guix.texi:10037
 #, no-wrap
 msgid ""
 "  9.8% (342 out of 3,470) of the missing items are queued\n"
@@ -15702,56 +18114,122 @@ msgid ""
 "      i686-linux: 6.03 builds per hour\n"
 "      aarch64-linux: 6.41 builds per hour\n"
 msgstr ""
+"  9,8% (342 von 3.470) der fehlenden Objekte sind in der Warteschlange\n"
+"  Mindestens 867 Erstellungen in der Warteschlange\n"
+"      x86_64-linux: 518 (59,7%)\n"
+"      i686-linux: 221 (25,5%)\n"
+"      aarch64-linux: 128 (14,8%)\n"
+"  Erstellungsgeschwindigkeit: 23,41 Erstellungen pro Stunde\n"
+"      x86_64-linux: 11,16 Erstellungen pro Stunde\n"
+"      i686-linux: 6,03 Erstellungen pro Stunde\n"
+"      aarch64-linux: 6,41 Erstellungen pro Stunde\n"
 
 #. type: cindex
-#: doc/guix.texi:8820
+#: doc/guix.texi:10039
 #, no-wrap
 msgid "continuous integration, statistics"
-msgstr ""
+msgstr "Kontinuierliche Integration, Statistik"
 
 #. type: Plain text
-#: doc/guix.texi:8829
-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."
-msgstr ""
+#: doc/guix.texi:10050
+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)."
 
 #. type: Plain text
-#: doc/guix.texi:8835
+#: doc/guix.texi:10056
 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 ""
+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: Plain text
-#: doc/guix.texi:8838
+#: doc/guix.texi:10059
 msgid "Among other things, it is possible to query specific system types and specific package sets.  The available options are listed below."
-msgstr ""
+msgstr "Neben anderen Dingen ist es möglich, bestimmte Systemtypen und bestimmte Paketmengen anzufragen. Die verfügbaren Befehlszeilenoptionen sind folgende:"
 
 #. type: table
-#: doc/guix.texi:8844
+#: doc/guix.texi:10065
 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 ""
+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:8850
+#: doc/guix.texi:10071
 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 ""
+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:8856
+#: doc/guix.texi:10077
 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: item
+#: doc/guix.texi:10078
+#, no-wrap
+msgid "--coverage[=@var{count}]"
+msgstr "--coverage[=@var{Anzahl}]"
+
+#. type: itemx
+#: doc/guix.texi:10079
+#, no-wrap
+msgid "-c [@var{count}]"
+msgstr "-c [@var{Anzahl}]"
+
+#. type: table
+#: doc/guix.texi:10085
+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:10099
+#, no-wrap
+msgid ""
+"$ guix weather --substitute-urls=https://ci.guix.info -c 10\n"
+"computing 8,983 package derivations for x86_64-linux...\n"
+"looking for 9,343 store items on https://ci.guix.info...\n"
+"updating substitutes from 'https://ci.guix.info'... 100.0%\n"
+"https://ci.guix.info\n"
+"  64.7% substitutes available (6,047 out of 9,343)\n"
+"@dots{}\n"
+"2502 packages are missing from 'https://ci.guix.info' for 'x86_64-linux', among which:\n"
+"    58  kcoreaddons@@5.49.0      /gnu/store/@dots{}-kcoreaddons-5.49.0\n"
+"    46  qgpgme@@1.11.1           /gnu/store/@dots{}-qgpgme-1.11.1\n"
+"    37  perl-http-cookiejar@@0.008  /gnu/store/@dots{}-perl-http-cookiejar-0.008\n"
+"    @dots{}\n"
+msgstr ""
+"$ guix weather --substitute-urls=https://ci.guix.info -c 10\n"
+"8.983 Paketableitungen für x86_64-linux berechnen …\n"
+"Nach 9.343 Store-Objekten von https://ci.guix.info suchen …\n"
+"Liste der Substitute von »https://ci.guix.info« wird aktualisiert … 100.0%\n"
+"https://ci.guix.info\n"
+"  64.7% Substitute verfügbar (6.047 von 9.343)\n"
+"@dots{}\n"
+"2502 Pakete fehlen auf »https://ci.guix.info« für »x86_64-linux«, darunter sind:\n"
+"    58  kcoreaddons@@5.49.0      /gnu/store/@dots{}-kcoreaddons-5.49.0\n"
+"    46  qgpgme@@1.11.1           /gnu/store/@dots{}-qgpgme-1.11.1\n"
+"    37  perl-http-cookiejar@@0.008  /gnu/store/@dots{}-perl-http-cookiejar-0.008\n"
+"    @dots{}\n"
+
+#. type: table
+#: doc/guix.texi:10104
+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:10108
+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: section
-#: doc/guix.texi:8859
+#: doc/guix.texi:10111
 #, no-wrap
 msgid "Invoking @command{guix processes}"
 msgstr "@command{guix processes} aufrufen"
 
 #. type: Plain text
-#: doc/guix.texi:8867
+#: doc/guix.texi:10119
 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 ""
+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 Build-Farms. 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:8873
+#: doc/guix.texi:10125
 #, no-wrap
 msgid ""
 "$ sudo guix processes\n"
@@ -15760,9 +18238,14 @@ msgid ""
 "ClientCommand: guix environment --ad-hoc python\n"
 "\n"
 msgstr ""
+"$ sudo guix processes\n"
+"SessionPID: 19002\n"
+"ClientPID: 19090\n"
+"ClientCommand: guix environment --ad-hoc python\n"
+"\n"
 
 #. type: example
-#: doc/guix.texi:8877
+#: doc/guix.texi:10129
 #, no-wrap
 msgid ""
 "SessionPID: 19402\n"
@@ -15770,9 +18253,13 @@ msgid ""
 "ClientCommand: guix publish -u guix-publish -p 3000 -C 9 @dots{}\n"
 "\n"
 msgstr ""
+"SessionPID: 19402\n"
+"ClientPID: 19367\n"
+"ClientCommand: guix publish -u guix-publish -p 3000 -C 9 @dots{}\n"
+"\n"
 
 #. type: example
-#: doc/guix.texi:8887
+#: doc/guix.texi:10139
 #, no-wrap
 msgid ""
 "SessionPID: 19444\n"
@@ -15785,24 +18272,33 @@ msgid ""
 "ChildProcess: 27733: guix offload x86_64-linux 7200 1 28800\n"
 "ChildProcess: 27793: guix offload x86_64-linux 7200 1 28800\n"
 msgstr ""
+"SessionPID: 19444\n"
+"ClientPID: 19419\n"
+"ClientCommand: cuirass --cache-directory /var/cache/cuirass @dots{}\n"
+"LockHeld: /gnu/store/@dots{}-perl-ipc-cmd-0.96.lock\n"
+"LockHeld: /gnu/store/@dots{}-python-six-bootstrap-1.11.0.lock\n"
+"LockHeld: /gnu/store/@dots{}-libjpeg-turbo-2.0.0.lock\n"
+"ChildProcess: 20495: guix offload x86_64-linux 7200 1 28800\n"
+"ChildProcess: 27733: guix offload x86_64-linux 7200 1 28800\n"
+"ChildProcess: 27793: guix offload x86_64-linux 7200 1 28800\n"
 
 #. type: Plain text
-#: doc/guix.texi:8894
+#: doc/guix.texi:10146
 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 ""
+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:8901
+#: doc/guix.texi:10153
 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 ""
+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})."
 
 #. type: Plain text
-#: doc/guix.texi:8906
+#: doc/guix.texi:10158
 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 ""
+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:8912
+#: doc/guix.texi:10164
 #, no-wrap
 msgid ""
 "$ sudo guix processes | \\\n"
@@ -15810,1036 +18306,96 @@ msgid ""
 "ClientPID: 19419\n"
 "ClientCommand: cuirass --cache-directory /var/cache/cuirass @dots{}\n"
 msgstr ""
-
-#. type: Plain text
-#: doc/guix.texi:8929
-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}).  To distinguish between the two, we refer to the standalone distribution as the Guix System Distribution, or GuixSD."
-msgstr "Mit Guix kommt eine Distribution des GNU-Systems, die nur aus freier Software@footnote{Die Bezeichnung »frei« steht hier für die @url{http://www.gnu.org/philosophy/free-sw.html,Freiheiten, die Nutzern der Software geboten werden}.} besteht. Die Distribution kann für sich allein installiert werden (@pxref{System Installation}), aber Guix kann auch auf einem bestehenden GNU/Linux-System installiert werden. Um die Anwendungsfälle zu unterscheiden, bezeichnen wir die alleinstehende Distribution als die »Guix System Distribution« (deutsch Guix-Systemdistribution), oder kurz GuixSD."
-
-#. type: Plain text
-#: doc/guix.texi:8935
-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}):"
-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{http://www.gnu.org/software/guix/packages,online} einsehen, oder indem Sie @command{guix package} ausführen (@pxref{Invoking guix package}):"
-
-#. type: example
-#: doc/guix.texi:8938
-#, no-wrap
-msgid "guix package --list-available\n"
-msgstr "guix package --list-available\n"
-
-#. type: Plain text
-#: doc/guix.texi:8944
-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:8946
-msgid "Packages are currently available on the following platforms:"
-msgstr "Pakete sind zur Zeit auf folgenden Plattformen verfügbar:"
-
-#. type: item
-#: doc/guix.texi:8949 doc/guix.texi:9114
-#, no-wrap
-msgid "x86_64-linux"
-msgstr "x86_64-linux"
-
-#. type: table
-#: doc/guix.texi:8951
-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:8952 doc/guix.texi:9117
-#, no-wrap
-msgid "i686-linux"
-msgstr "i686-linux"
-
-#. type: table
-#: doc/guix.texi:8954
-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:8955
-#, no-wrap
-msgid "armhf-linux"
-msgstr "armhf-linux"
-
-#. type: table
-#: doc/guix.texi:8959
-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."
-
-#. type: item
-#: doc/guix.texi:8960
-#, no-wrap
-msgid "aarch64-linux"
-msgstr "aarch64-linux"
-
-#. type: table
-#: doc/guix.texi:8964
-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 @xref{Contributing} steht, wie Sie dabei helfen können!"
-
-#. type: item
-#: doc/guix.texi:8965
-#, no-wrap
-msgid "mips64el-linux"
-msgstr "mips64el-linux"
-
-#. type: table
-#: doc/guix.texi:8968
-msgid "little-endian 64-bit MIPS processors, specifically the Loongson series, n32 ABI, and Linux-Libre kernel."
-msgstr "64-Bit-MIPS-Prozessoren, little-endian, insbesondere die Loongson-Reihe, n32-ABI, mit Linux-Libre als Kernel."
-
-#. type: Plain text
-#: doc/guix.texi:8972
-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."
-
-#. type: Plain text
-#: doc/guix.texi:8976
-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 @pxref{Porting}."
-
-#. type: Plain text
-#: doc/guix.texi:8991
-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 @xref{Contributing} stehen weitere Informationen, wie Sie uns helfen können."
-
-#. type: cindex
-#: doc/guix.texi:8995
-#, no-wrap
-msgid "installing GuixSD"
-msgstr "GuixSD installieren"
-
-#. type: Plain text
-#: doc/guix.texi:9001
-msgid "This section explains how to install the Guix System Distribution (GuixSD)  on a machine.  The Guix package manager can also be installed on top of a running GNU/Linux system, @pxref{Installation}."
-msgstr "Dieser Abschnitt beschreibt, wie Sie die »Guix System Distribution« (GuixSD) auf einer Maschine installieren. Das Guix-Paketverwaltungswerkzeug kann auch ein bestehendes GNU/Linux-System ergänzen, mehr dazu finden Sie im Abschnitt @pxref{Installation}."
-
-#. type: quotation
-#: doc/guix.texi:9010
-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: @pxref{Top, Info reader,, info-stnd, Stand-alone GNU Info}. Drücken Sie danach @kbd{l}, um hierher zurückzukommen."
-
-#. type: quotation
-#: doc/guix.texi:9013
-msgid "Alternately, 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:9038
-msgid "As of version @value{VERSION}, the Guix System Distribution (GuixSD) 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 GuixSD 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} der Guix System Distribution (GuixSD) 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 GuixSD umsteigen können. Bis dahin können Sie auch das Guix-Paketverwaltungswerkzeug auf Ihrer bestehenden Distribution verwenden (@pxref{Installation})."
-
-#. type: Plain text
-#: doc/guix.texi:9041
-msgid "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, beachten Sie die folgenden merklichen Einschränkungen der Version @value{VERSION}:"
-
-#. type: itemize
-#: doc/guix.texi:9047
-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 Installationsprozess 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)."
-
-#. type: itemize
-#: doc/guix.texi:9050
-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:9054
-msgid "More and more system services are provided (@pxref{Services}), but some may be missing."
-msgstr "Immer mehr Systemdienste sind verfügbar (@pxref{Services}), aber manche könnten noch fehlen."
-
-#. type: itemize
-#: doc/guix.texi:9058
-msgid "More than 7,500 packages are available, but you might occasionally find that a useful package is missing."
-msgstr "Über 7.500 Pakete stehen zur Verfügung, aber ab und zu könnte ein nützliches Paket noch fehlen."
-
-#. type: itemize
-#: doc/guix.texi:9063
-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 und Enlightenment stehen zur Verfügung (@pxref{Desktop Services}), ebenso eine Reihe von X11-Fensterverwaltungsprogrammen. Manche grafischen Anwendungen könnten aber noch fehlen, ebenso fehlt KDE."
-
-#. type: Plain text
-#: doc/guix.texi:9068
-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 "Sie wurden gewarnt! 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 @xref{Contributing}."
-
-#. type: cindex
-#: doc/guix.texi:9073
-#, no-wrap
-msgid "hardware support on GuixSD"
-msgstr "Hardwareunterstützung von GuixSD"
-
-#. type: Plain text
-#: doc/guix.texi:9082
-msgid "GNU@tie{}GuixSD 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 GuixSD."
-msgstr "GNU@tie{}GuixSD 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 GuixSD nicht unterstützt."
-
-#. type: cindex
-#: doc/guix.texi:9083
-#, no-wrap
-msgid "WiFi, hardware support"
-msgstr "WLAN, Hardware-Unterstützung"
-
-#. type: Plain text
-#: doc/guix.texi:9092
-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 GuixSD, as part of @var{%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 GuixSD als ein Teil von @var{%base-firmware} mitgeliefert (@pxref{operating-system Reference, @code{firmware}})."
-
-#. type: cindex
-#: doc/guix.texi:9093
-#, no-wrap
-msgid "RYF, Respects Your Freedom"
-msgstr "RYF, Respects Your Freedom"
-
-#. type: Plain text
-#: doc/guix.texi:9099
-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 und Privatsphäre respektieren 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:9103
-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://www.h-node.org/, 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:9112
-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/guixsd-install-@value{VERSION}.@var{system}.iso.xz}, where @var{system} is one of:"
-msgstr "Sie können ein ISO-9660-Installationsabbild von @indicateurl{https://alpha.gnu.org/gnu/guix/guixsd-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:"
-
-#. type: table
-#: doc/guix.texi:9116
-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:9119
-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:9124
-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:9128
-#, no-wrap
-msgid ""
-"$ wget https://alpha.gnu.org/gnu/guix/guixsd-install-@value{VERSION}.@var{system}.iso.xz.sig\n"
-"$ gpg --verify guixsd-install-@value{VERSION}.@var{system}.iso.xz.sig\n"
-msgstr ""
-"$ wget https://alpha.gnu.org/gnu/guix/guixsd-install-@value{VERSION}.@var{System}.iso.xz.sig\n"
-"$ gpg --verify guixsd-install-@value{VERSION}.@var{System}.iso.xz.sig\n"
-
-#. type: Plain text
-#: doc/guix.texi:9144
-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: unnumberedsubsubsec
-#: doc/guix.texi:9145
-#, no-wrap
-msgid "Copying to a USB Stick"
-msgstr "Kopieren auf einen USB-Stick"
-
-#. type: Plain text
-#: doc/guix.texi:9148
-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:9152 doc/guix.texi:9177
-msgid "Decompress the image using the @command{xz} command:"
-msgstr "Entpacken Sie das Abbild mit dem @command{xz}-Befehl:"
-
-#. type: example
-#: doc/guix.texi:9155 doc/guix.texi:9180
-#, no-wrap
-msgid "xz -d guixsd-install-@value{VERSION}.@var{system}.iso.xz\n"
-msgstr "xz -d guixsd-install-@value{VERSION}.@var{System}.iso.xz\n"
-
-#. type: enumerate
-#: doc/guix.texi:9161
-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:9165
-#, no-wrap
-msgid ""
-"dd if=guixsd-install-@value{VERSION}.x86_64-linux.iso of=/dev/sdX\n"
-"sync\n"
-msgstr ""
-"dd if=guixsd-install-@value{VERSION}.x86_64-linux.iso of=/dev/sdX\n"
-"sync\n"
-
-#. type: enumerate
-#: doc/guix.texi:9168
-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: unnumberedsubsubsec
-#: doc/guix.texi:9170
-#, no-wrap
-msgid "Burning on a DVD"
-msgstr "Auf eine DVD brennen"
-
-#. type: Plain text
-#: doc/guix.texi:9173
-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:9186
-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:9189
-#, no-wrap
-msgid "growisofs -dvd-compat -Z /dev/srX=guixsd-install-@value{VERSION}.x86_64.iso\n"
-msgstr "growisofs -dvd-compat -Z /dev/srX=guixsd-install-@value{VERSION}.x86_64.iso\n"
-
-#. type: enumerate
-#: doc/guix.texi:9192
-msgid "Access to @file{/dev/srX} usually requires root privileges."
-msgstr "Der Zugriff auf @file{/dev/srX} setzt in der Regel Administratorrechte voraus."
-
-#. type: unnumberedsubsubsec
-#: doc/guix.texi:9194
-#, no-wrap
-msgid "Booting"
-msgstr "Das System starten"
-
-#. type: Plain text
-#: doc/guix.texi:9199
-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 "Sobald das erledigt ist, sollten Sie Ihr System neu starten und es vom USB-Stick oder der DVD 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."
-
-#. type: Plain text
-#: doc/guix.texi:9202
-msgid "@xref{Installing GuixSD in a VM}, if, instead, you would like to install GuixSD in a virtual machine (VM)."
-msgstr "Lesen Sie den Abschnitt @xref{Installing GuixSD in a VM}, wenn Sie GuixSD stattdessen in einer virtuellen Maschine (VM) installieren möchten."
-
-#. type: Plain text
-#: doc/guix.texi:9214
-msgid "Once you have successfully booted your computer using the installation medium, you should end up with a root prompt.  Several console TTYs are configured and can be used to run commands as root.  TTY2 shows this documentation, 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 "Wenn Sie Ihren Rechner erfolgreich mit diesem Installationsmedium gebootet haben, sollten Sie vor sich eine Eingabeaufforderung für den Administratornutzer »root« sehen. Mehrere Konsolen-TTYs sind eingerichtet, von denen aus Sie Befehle als Administrator ausführen können. TTY2 zeigt Ihnen dieses Handbuch, worin Sie mit den Steuerungsbefehlen Ihres Info-Betrachters blättern können (@pxref{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:9219
-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:9225
-msgid "The installation system includes many common tools needed for this task.  But it is also a full-blown GuixSD system, which means that you can install additional packages, should you need it, using @command{guix package} (@pxref{Invoking guix package})."
-msgstr "Das Installationssystem enthält viele übliche Werkzeuge, mit denen Sie diese Aufgabe bewältigen können. Da es sich auch um ein vollständiges GuixSD-System handelt, können Sie aber auch andere Pakete mit dem Befehl @command{guix package} nachinstallieren, wenn Sie sie brauchen (@pxref{Invoking guix package})."
-
-#. type: subsubsection
-#: doc/guix.texi:9226
-#, no-wrap
-msgid "Keyboard Layout"
-msgstr "Tastaturbelegung"
-
-#. type: cindex
-#: doc/guix.texi:9228 doc/guix.texi:11378 doc/guix.texi:12878
-#, no-wrap
-msgid "keyboard layout"
-msgstr "Tastaturbelegung"
-
-#. type: Plain text
-#: doc/guix.texi:9232
-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:9235
-#, no-wrap
-msgid "loadkeys dvorak\n"
-msgstr "loadkeys dvorak\n"
-
-#. type: Plain text
-#: doc/guix.texi:9240
-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:9241
-#, no-wrap
-msgid "Networking"
-msgstr "Netzwerkkonfiguration"
-
-#. type: Plain text
-#: doc/guix.texi:9244
-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:9247
-#, no-wrap
-msgid "ifconfig -a\n"
-msgstr "ifconfig -a\n"
-
-#. type: Plain text
-#: doc/guix.texi:9251
-msgid "@dots{} or, using the GNU/Linux-specific @command{ip} command:"
-msgstr "@dots{} oder mit dem GNU/Linux-eigenen @command{ip}-Befehl:"
-
-#. type: example
-#: doc/guix.texi:9254
-#, no-wrap
-msgid "ip a\n"
-msgstr "ip a\n"
-
-#. type: Plain text
-#: doc/guix.texi:9261
-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:9263
-#, no-wrap
-msgid "Wired connection"
-msgstr "Kabelverbindung"
-
-#. type: table
-#: doc/guix.texi:9266
-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:9269
-#, no-wrap
-msgid "ifconfig @var{interface} up\n"
-msgstr "ifconfig @var{Schnittstelle} up\n"
-
-#. type: item
-#: doc/guix.texi:9271
-#, no-wrap
-msgid "Wireless connection"
-msgstr "Drahtlose Verbindung"
-
-#. type: cindex
-#: doc/guix.texi:9272 doc/guix.texi:11817
-#, no-wrap
-msgid "wireless"
-msgstr "WLAN"
-
-#. type: cindex
-#: doc/guix.texi:9273 doc/guix.texi:11818
-#, no-wrap
-msgid "WiFi"
-msgstr "WiFi"
-
-#. type: table
-#: doc/guix.texi:9278
-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:9281
-#, no-wrap
-msgid "nano wpa_supplicant.conf\n"
-msgstr "nano wpa_supplicant.conf\n"
-
-#. type: table
-#: doc/guix.texi:9286
-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:9293
-#, no-wrap
-msgid ""
-"network=@{\n"
-"  ssid=\"@var{my-ssid}\"\n"
-"  key_mgmt=WPA-PSK\n"
-"  psk=\"the network's secret passphrase\"\n"
-"@}\n"
-msgstr ""
-"network=@{\n"
-"  ssid=\"@var{meine-ssid}\"\n"
-"  key_mgmt=WPA-PSK\n"
-"  psk=\"geheime Passphrase des Netzwerks\"\n"
-"@}\n"
-
-#. type: table
-#: doc/guix.texi:9298
-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:9301
-#, 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:9304
-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:9306
-#, no-wrap
-msgid "DHCP"
-msgstr "DHCP"
-
-#. type: Plain text
-#: doc/guix.texi:9309
-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:9312
-#, no-wrap
-msgid "dhclient -v @var{interface}\n"
-msgstr "dhclient -v @var{Schnittstelle}\n"
-
-#. type: Plain text
-#: doc/guix.texi:9315
-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:9318
-#, no-wrap
-msgid "ping -c 3 gnu.org\n"
-msgstr "ping -c 3 gnu.org\n"
-
-#. type: Plain text
-#: doc/guix.texi:9322
-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:9323
-#, no-wrap
-msgid "installing over SSH"
-msgstr "Über SSH installieren"
-
-#. type: Plain text
-#: doc/guix.texi:9326
-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:9329
-#, no-wrap
-msgid "herd start ssh-daemon\n"
-msgstr "herd start ssh-daemon\n"
-
-#. type: Plain text
-#: doc/guix.texi:9333
-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:9334
-#, no-wrap
-msgid "Disk Partitioning"
-msgstr "Plattenpartitionierung"
-
-#. type: Plain text
-#: doc/guix.texi:9338
-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:9343
-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 (@pxref{Overview,,, parted, GNU Parted User Manual}), @command{fdisk} und @command{cfdisk}. Starten Sie eines davon und partitionieren Sie Ihre Festplatte oder sonstigen Massenspeicher:"
-
-#. type: example
-#: doc/guix.texi:9346
-#, no-wrap
-msgid "cfdisk\n"
-msgstr "cfdisk\n"
-
-#. type: Plain text
-#: doc/guix.texi:9352
-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 (@pxref{BIOS installation,,, grub, GNU GRUB manual})."
-
-#. type: cindex
-#: doc/guix.texi:9353
-#, no-wrap
-msgid "EFI, installation"
-msgstr "EFI, Installation"
-
-#. type: cindex
-#: doc/guix.texi:9354
-#, no-wrap
-msgid "UEFI, installation"
-msgstr "UEFI, Installation"
-
-#. type: cindex
-#: doc/guix.texi:9355
-#, no-wrap
-msgid "ESP, EFI system partition"
-msgstr "ESP, EFI-Systempartition"
-
-#. type: Plain text
-#: doc/guix.texi:9359
-msgid "If you instead wish to use EFI-based GRUB, a FAT32 @dfn{EFI System Partition} (ESP) is required.  This partition should be mounted at @file{/boot/efi} 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 sollte unter dem Pfad @file{/boot/efi} eingebunden (»gemountet«) sein und die @code{esp}-Flag der Partition muss gesetzt sein. Dazu würden Sie beispielsweise in @command{parted} eintippen:"
-
-#. type: example
-#: doc/guix.texi:9362
-#, 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:9365 doc/guix.texi:22092
-#, no-wrap
-msgid "grub-bootloader"
-msgstr "grub-bootloader"
-
-#. type: vindex
-#: doc/guix.texi:9366 doc/guix.texi:22086
-#, no-wrap
-msgid "grub-efi-bootloader"
-msgstr "grub-efi-bootloader"
-
-#. type: quotation
-#: doc/guix.texi:9373
-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 @xref{Bootloader Configuration}, wenn Sie mehr Informationen über Bootloader brauchen."
-
-#. type: Plain text
-#: doc/guix.texi:9381
-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 GuixSD 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 "Sobald Sie die Platte fertig partitioniert haben, auf die Sie installieren möchten, müssen Sie ein Dateisystem auf Ihrer oder Ihren für GuixSD vorgesehenen Partition(en) erzeugen@footnote{Derzeit unterstützt GuixSD nur die Dateisystemtypen ext4 und btrfs. 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 den Befehl ausführen:"
-
-#. type: example
-#: doc/guix.texi:9384
-#, no-wrap
-msgid "mkfs.fat -F32 /dev/sda1\n"
-msgstr "mkfs.fat -F32 /dev/sda1\n"
-
-#. type: Plain text
-#: doc/guix.texi:9392
-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 (@pxref{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:9395
-#, 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:9397 doc/guix.texi:9823
-#, no-wrap
-msgid "encrypted disk"
-msgstr "verschlüsselte Partition"
-
-#. type: Plain text
-#: doc/guix.texi:9404
-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:9409
-#, no-wrap
-msgid ""
-"cryptsetup luksFormat /dev/sda2\n"
-"cryptsetup open --type luks /dev/sda2 my-partition\n"
-"mkfs.ext4 -L my-root /dev/mapper/my-partition\n"
-msgstr ""
-"cryptsetup luksFormat /dev/sda2\n"
-"cryptsetup open --type luks /dev/sda2 my-partition\n"
-"mkfs.ext4 -L my-root /dev/mapper/my-partition\n"
-
-#. type: Plain text
-#: doc/guix.texi:9414
-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:9417
-#, no-wrap
-msgid "mount LABEL=my-root /mnt\n"
-msgstr "mount LABEL=my-root /mnt\n"
-
-#. type: Plain text
-#: doc/guix.texi:9423
-msgid "Also mount any other file systems you would like to use on the target system relative to this path.  If you have @file{/boot} on a separate partition for example, mount it at @file{/mnt/boot} 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 zum Beispiel @file{/boot} auf einer separaten Partition einrichten möchten, binden Sie es jetzt als @file{/mnt/boot} ein, damit @code{guix system init} es später findet."
-
-#. type: Plain text
-#: doc/guix.texi:9428
-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 (@pxref{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:"
-
-#. type: example
-#: doc/guix.texi:9432
-#, no-wrap
-msgid ""
-"mkswap /dev/sda3\n"
-"swapon /dev/sda3\n"
-msgstr ""
-"mkswap /dev/sda3\n"
-"swapon /dev/sda3\n"
-
-#. type: Plain text
-#: doc/guix.texi:9440
-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:9448
-#, no-wrap
-msgid ""
-"# This is 10 GiB of swap space.  Adjust \"count\" to change the size.\n"
-"dd if=/dev/zero of=/mnt/swapfile bs=1MiB count=10240\n"
-"# For security, make the file readable and writable only by root.\n"
-"chmod 600 /mnt/swapfile\n"
-"mkswap /mnt/swapfile\n"
-"swapon /mnt/swapfile\n"
-msgstr ""
-"# Das bedeutet 10 GiB Swapspeicher. \"count\" anpassen zum ändern.\n"
-"dd if=/dev/zero of=/mnt/swapfile bs=1MiB count=10240\n"
-"# Zur Sicherheit darf nur der Administrator lesen und schreiben.\n"
-"chmod 600 /mnt/swapfile\n"
-"mkswap /mnt/swapfile\n"
-"swapon /mnt/swapfile\n"
-
-#. type: Plain text
-#: doc/guix.texi:9453
-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:9459
-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:9462
-#, no-wrap
-msgid "herd start cow-store /mnt\n"
-msgstr "herd start cow-store /mnt\n"
-
-#. type: Plain text
-#: doc/guix.texi:9469
-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:9480
-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 (@pxref{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:9487
-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 @xref{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 »Display-Server« (eine »Desktop«-Arbeitsumgebung) bietet, könnten Sie so etwas ausführen:"
-
-#. type: example
-#: doc/guix.texi:9492
-#, no-wrap
-msgid ""
-"# mkdir /mnt/etc\n"
-"# cp /etc/configuration/desktop.scm /mnt/etc/config.scm\n"
-"# nano /mnt/etc/config.scm\n"
-msgstr ""
-"# mkdir /mnt/etc\n"
-"# cp /etc/configuration/desktop.scm /mnt/etc/config.scm\n"
-"# nano /mnt/etc/config.scm\n"
-
-#. type: Plain text
-#: doc/guix.texi:9496
-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:9506
-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}, and do make sure the path is actually mounted."
-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 sollte 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."
-
-#. type: itemize
-#: doc/guix.texi:9512
-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:9516
-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 (@pxref{Mapped Devices})."
-
-#. type: Plain text
-#: doc/guix.texi:9521
-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:9524
-#, 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:9531
-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 @pxref{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:9538
-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})."
-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 erst setzen, indem Sie den Befehl @command{passwd} als @code{root} ausführen, außer Ihre Konfiguration enthält schon Passwörter (@pxref{user-account-password, user account passwords})."
-
-#. type: cindex
-#: doc/guix.texi:9539
-#, no-wrap
-msgid "upgrading GuixSD"
-msgstr "GuixSD aktualisieren"
-
-#. type: Plain text
-#: doc/guix.texi:9546
-msgid "From then on, you can update GuixSD whenever you want by running @command{guix pull} as @code{root} (@pxref{Invoking guix pull}), and then running @command{guix system reconfigure} to build 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 "Von jetzt an können Sie GuixSD aktualisieren, wann Sie möchten, indem Sie erst als Administratornutzer @code{root} mit dem Befehl @command{guix pull} ein aktuelles Guix aufspielen (@pxref{Invoking guix pull}) und dann mit dem Befehl @command{guix system reconfigure} eine neue Systemgeneration aus den neuesten Paketen und Diensten installieren (@pxref{Invoking guix system}). Wir empfehlen, diese Schritte regelmäßig zu wiederholen, damit Ihr System die aktuellen Sicherheitsaktualisierungen benutzt (@pxref{Security Updates})."
-
-#. type: Plain text
-#: doc/guix.texi:9550
-msgid "Join us on @code{#guix} on the Freenode IRC network or on @file{guix-devel@@gnu.org} to share your experience---good or not so good."
-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 — positiv oder negativ."
-
-#. type: subsection
-#: doc/guix.texi:9552
-#, no-wrap
-msgid "Installing GuixSD in a Virtual Machine"
-msgstr "GuixSD in einer virtuellen Maschine installieren"
-
-#. type: cindex
-#: doc/guix.texi:9554
-#, no-wrap
-msgid "virtual machine, GuixSD installation"
-msgstr "virtuelle Maschine, GuixSD installieren"
-
-#. type: cindex
-#: doc/guix.texi:9555
-#, no-wrap
-msgid "virtual private server (VPS)"
-msgstr "Virtual Private Server (VPS)"
-
-#. type: cindex
-#: doc/guix.texi:9556
-#, no-wrap
-msgid "VPS (virtual private server)"
-msgstr "VPS (Virtual Private Server)"
-
-#. type: Plain text
-#: doc/guix.texi:9560
-msgid "If you'd like to install GuixSD 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 GuixSD auf einer virtuellen Maschine (VM) oder einem »Virtual Private Server« (VPS) statt auf Ihrer echten Maschine installieren möchten, gehen Sie wie folgt vor."
-
-#. type: Plain text
-#: doc/guix.texi:9563
-msgid "To boot a @uref{http://qemu.org/,QEMU} VM for installing GuixSD in a disk image, follow these steps:"
-msgstr "Um eine virtuelle Maschine für @uref{http://qemu.org/,QEMU} aufzusetzen, mit der Sie GuixSD 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:9568
-msgid "First, retrieve and decompress the GuixSD installation image as described previously (@pxref{USB Stick and DVD Installation})."
-msgstr "Zunächst laden Sie das Installationsabbild von GuixSD wie zuvor beschrieben herunter und entpacken es (@pxref{USB Stick and DVD Installation})."
-
-#. type: enumerate
-#: doc/guix.texi:9572
-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:9575
-#, no-wrap
-msgid "qemu-img create -f qcow2 guixsd.img 50G\n"
-msgstr "qemu-img create -f qcow2 guixsd.img 50G\n"
-
-#. type: enumerate
-#: doc/guix.texi:9579
-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:9582
-msgid "Boot the USB installation image in an VM:"
-msgstr "Starten Sie das USB-Installationsabbild auf einer virtuellen Maschine:"
-
-#. type: example
-#: doc/guix.texi:9588
-#, no-wrap
-msgid ""
-"qemu-system-x86_64 -m 1024 -smp 1 \\\n"
-"  -net user -net nic,model=virtio -boot menu=on \\\n"
-"  -drive file=guixsd-install-@value{VERSION}.@var{system}.iso \\\n"
-"  -drive file=guixsd.img\n"
-msgstr ""
-"qemu-system-x86_64 -m 1024 -smp 1 \\\n"
-"  -net user -net nic,model=virtio -boot menu=on \\\n"
-"  -drive file=guixsd-install-@value{VERSION}.@var{System}.iso \\\n"
-"  -drive file=guixsd.img\n"
-
-#. type: enumerate
-#: doc/guix.texi:9591
-msgid "The ordering of the drives matters."
-msgstr "Halten Sie obige Reihenfolge der @option{-drive}-Befehlszeilenoptionen für die Laufwerke ein."
-
-#. type: enumerate
-#: doc/guix.texi:9595
-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."
-
-#. type: enumerate
-#: doc/guix.texi:9599
-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 @xref{Preparing for Installation}."
-
-#. type: Plain text
-#: doc/guix.texi:9604
-msgid "Once installation is complete, you can boot the system that's on your @file{guixsd.img} image.  @xref{Running GuixSD in a VM}, for how to do that."
-msgstr "Wurde die Installation abgeschlossen, können Sie das System starten, dessen Abbild sich nun in der Datei @file{guixsd.img} befindet. Der Abschnitt @xref{Running GuixSD in a VM} erklärt, wie Sie das tun können."
-
-#. type: cindex
-#: doc/guix.texi:9608
-#, no-wrap
-msgid "installation image"
-msgstr "Installationsabbild"
-
-#. type: Plain text
-#: doc/guix.texi:9611
-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:9614
-#, no-wrap
-msgid "guix system disk-image gnu/system/install.scm\n"
-msgstr "guix system disk-image gnu/system/install.scm\n"
-
-#. type: Plain text
-#: doc/guix.texi:9619
-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: subsection
-#: doc/guix.texi:9620
-#, 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:9624
-msgid "Many ARM boards require a specific variant of the @uref{http://www.denx.de/wiki/U-Boot/, U-Boot} bootloader."
-msgstr "Viele ARM-Chips funktionieren nur mit ihrer eigenen speziellen Variante des @uref{http://www.denx.de/wiki/U-Boot/, U-Boot}-Bootloaders."
-
-#. type: Plain text
-#: doc/guix.texi:9628
-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:9631
-#, 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:9635
-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."
+"$ sudo guix processes | \\\n"
+"    recsel -p ClientPID,ClientCommand -e 'LockHeld ~ \"perl\"'\n"
+"ClientPID: 19419\n"
+"ClientCommand: cuirass --cache-directory /var/cache/cuirass @dots{}\n"
 
 #. type: cindex
-#: doc/guix.texi:9639
+#: doc/guix.texi:10170
 #, no-wrap
 msgid "system configuration"
 msgstr "Systemkonfiguration"
 
 #. type: Plain text
-#: doc/guix.texi:9645
+#: doc/guix.texi:10176
 msgid "The Guix System Distribution 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 "Die Guix-Systemdistribution 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."
+msgstr "Die »Guix System«-Distribution 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:9655
+#: doc/guix.texi:10186
 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 (@pxref{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."
+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:9660
+#: doc/guix.texi:10191
 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:9687
+#: doc/guix.texi:10219
 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 (@pxref{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:"
+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: findex
-#: doc/guix.texi:9688
+#: doc/guix.texi:10220
 #, no-wrap
 msgid "operating-system"
 msgstr "operating-system"
 
 #. type: include
-#: doc/guix.texi:9690
+#: doc/guix.texi:10222
 #, no-wrap
 msgid "os-config-bare-bones.texi"
 msgstr "os-config-bare-bones.texi"
 
 #. type: Plain text
-#: doc/guix.texi:9697
+#: doc/guix.texi:10229
 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:9702
+#: doc/guix.texi:10234
 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 (@pxref{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."
+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: unnumberedsubsubsec
-#: doc/guix.texi:9703
+#. type: unnumberedsubsec
+#: doc/guix.texi:10235
 #, no-wrap
 msgid "Bootloader"
 msgstr "Bootloader"
 
 #. type: cindex
-#: doc/guix.texi:9705
+#: doc/guix.texi:10237
 #, no-wrap
 msgid "legacy boot, on Intel machines"
 msgstr "Legacy-Boot, auf Intel-Maschinen"
 
 #. type: cindex
-#: doc/guix.texi:9706
+#: doc/guix.texi:10238
 #, no-wrap
 msgid "BIOS boot, on Intel machines"
 msgstr "BIOS-Boot, auf Intel-Maschinen"
 
 #. type: cindex
-#: doc/guix.texi:9707
+#: doc/guix.texi:10239
 #, no-wrap
 msgid "UEFI boot"
 msgstr "UEFI-Boot"
 
 #. type: cindex
-#: doc/guix.texi:9708
+#: doc/guix.texi:10240
 #, no-wrap
 msgid "EFI boot"
 msgstr "EFI-Boot"
 
 #. type: Plain text
-#: doc/guix.texi:9714
+#: doc/guix.texi:10246
 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: example
-#: doc/guix.texi:9719
+#: doc/guix.texi:10251
 #, no-wrap
 msgid ""
 "(bootloader-configuration\n"
@@ -16851,29 +18407,29 @@ msgstr ""
 "  (target \"/boot/efi\"))\n"
 
 #. type: Plain text
-#: doc/guix.texi:9723
+#: doc/guix.texi:10255
 msgid "@xref{Bootloader Configuration}, for more information on the available configuration options."
-msgstr "Siehe den Abschnitt @xref{Bootloader Configuration} für weitere Informationen zu den verfügbaren Konfigurationsoptionen."
+msgstr "Siehe den Abschnitt @ref{Bootloader Configuration} für weitere Informationen zu den verfügbaren Konfigurationsoptionen."
 
-#. type: unnumberedsubsubsec
-#: doc/guix.texi:9724
+#. type: unnumberedsubsec
+#: doc/guix.texi:10256
 #, no-wrap
 msgid "Globally-Visible Packages"
 msgstr "global sichtbare Pakete"
 
 #. type: vindex
-#: doc/guix.texi:9726
+#: doc/guix.texi:10258
 #, no-wrap
 msgid "%base-packages"
 msgstr "%base-packages"
 
 #. type: Plain text
-#: doc/guix.texi:9739
+#: doc/guix.texi:10271
 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 "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 (@pxref{Invoking guix package}). Die Variable @var{%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 (@pxref{Package Modules}). Die Syntax @code{(list package output)} kann benutzt werden, um eine bestimmte Ausgabe eines Pakets auszuwählen:"
+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 @var{%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:9743
+#: doc/guix.texi:10275
 #, no-wrap
 msgid ""
 "(use-modules (gnu packages))\n"
@@ -16885,7 +18441,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:9748
+#: doc/guix.texi:10280
 #, no-wrap
 msgid ""
 "(operating-system\n"
@@ -16899,18 +18455,18 @@ msgstr ""
 "                  %base-packages)))\n"
 
 #. type: findex
-#: doc/guix.texi:9750
+#: doc/guix.texi:10282
 #, no-wrap
 msgid "specification->package"
 msgstr "specification->package"
 
 #. type: Plain text
-#: doc/guix.texi:9759
+#: doc/guix.texi:10291
 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:9762
+#: doc/guix.texi:10294
 #, no-wrap
 msgid ""
 "(use-modules (gnu packages))\n"
@@ -16920,7 +18476,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:9768
+#: doc/guix.texi:10300
 #, no-wrap
 msgid ""
 "(operating-system\n"
@@ -16935,53 +18491,53 @@ msgstr ""
 "                         '(\"tcpdump\" \"htop\" \"gnupg@@2.0\"))\n"
 "                    %base-packages)))\n"
 
-#. type: unnumberedsubsubsec
-#: doc/guix.texi:9770
+#. type: unnumberedsubsec
+#: doc/guix.texi:10302
 #, no-wrap
 msgid "System Services"
 msgstr "Systemdienste"
 
 #. type: cindex
-#: doc/guix.texi:9772 doc/guix.texi:21862 doc/guix.texi:22793
+#: doc/guix.texi:10304 doc/guix.texi:23682 doc/guix.texi:24670
 #, no-wrap
 msgid "services"
 msgstr "services"
 
 #. type: vindex
-#: doc/guix.texi:9773
+#: doc/guix.texi:10305
 #, no-wrap
 msgid "%base-services"
 msgstr "%base-services"
 
 #. type: Plain text
-#: doc/guix.texi:9783
-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 @command{lshd} secure shell daemon listening on port 2222 (@pxref{Networking Services, @code{lsh-service}}).  Under the hood, @code{lsh-service} arranges so that @code{lshd} 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 (@pxref{Services}). Die @code{operating-system}-Deklaration oben legt fest, dass wir neben den grundlegenden Basis-Diensten auch wollen, dass der Secure-Shell-Dienst @command{lshd} auf Port 2222 lauscht (@pxref{Networking Services, @code{lsh-service}}). Intern sorgt der @code{lsh-service} dafür, dass @code{lshd} mit den richtigen Befehlszeilenoptionen aufgerufen wird, je nach Systemkonfiguration werden auch für dessen Betrieb nötige Konfigurationsdateien erstellt (@pxref{Defining Services})."
+#: doc/guix.texi:10315
+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:9784
+#: doc/guix.texi:10316
 #, no-wrap
 msgid "customization, of services"
 msgstr "Anpassung, von Diensten"
 
 #. type: findex
-#: doc/guix.texi:9785
+#: doc/guix.texi:10317
 #, no-wrap
 msgid "modify-services"
 msgstr "modify-services"
 
 #. type: Plain text
-#: doc/guix.texi:9789
+#: doc/guix.texi:10321
 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} (@pxref{Service Reference, @code{modify-services}}), um die Liste der Basis-Dienste zu modifizieren."
+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:9794
+#: doc/guix.texi:10326
 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 "Wenn Sie zum Beispiel @code{guix-daemon} und Mingetty (das Programm, womit Sie sich auf der Konsole anmelden) in der @var{%base-services}-Liste modifizieren möchten (@pxref{Base Services, @code{%base-services}}), schreiben Sie das Folgende in Ihre Betriebssystemdeklaration:"
+msgstr "Wenn Sie zum Beispiel @code{guix-daemon} und Mingetty (das Programm, womit Sie sich auf der Konsole anmelden) in der @var{%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:9807
+#: doc/guix.texi:10339
 #, no-wrap
 msgid ""
 "(define %my-services\n"
@@ -17011,7 +18567,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:9811
+#: doc/guix.texi:10343
 #, no-wrap
 msgid ""
 "(operating-system\n"
@@ -17023,49 +18579,49 @@ msgstr ""
 "  (services %my-services))\n"
 
 #. type: Plain text
-#: doc/guix.texi:9822
+#: doc/guix.texi:10354
 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 "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 @var{%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."
+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 @var{%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:9829
+#: doc/guix.texi:10361
 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 »Schreibtisch«-Nutzung zum Arbeiten, mit einer verschlüsselten Partition für das Wurzeldateisystem, einem X11-Display-Server, 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:9831
+#: doc/guix.texi:10363
 #, no-wrap
 msgid "os-config-desktop.texi"
 msgstr "os-config-desktop.texi"
 
 #. type: Plain text
-#: doc/guix.texi:9836
+#: doc/guix.texi:10368
 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:9838
+#: doc/guix.texi:10370
 #, no-wrap
 msgid "os-config-lightweight-desktop.texi"
 msgstr "os-config-lightweight-desktop.texi"
 
 #. type: Plain text
-#: doc/guix.texi:9844
+#: doc/guix.texi:10376
 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:9848
+#: doc/guix.texi:10380
 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 "Im Abschnitt @xref{Desktop Services} finden Sie eine genaue Liste der unter @var{%desktop-services} angebotenen Dienste. Der Abschnitt @xref{X.509 Certificates} hat Hintergrundinformationen über das @code{nss-certs}-Paket, das hier benutzt wird."
+msgstr "Im Abschnitt @ref{Desktop Services} finden Sie eine genaue Liste der unter @var{%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:9855
+#: doc/guix.texi:10387
 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 "Beachten Sie, dass @var{%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 (@pxref{SRFI-1 Filtering and Partitioning,,, guile, GNU Guile Reference Manual}). Beispielsweise liefert der folgende Ausdruck eine Liste mit allen Diensten von @var{%desktop-services} außer dem Avahi-Dienst."
+msgstr "Beachten Sie, dass @var{%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 @var{%desktop-services} außer dem Avahi-Dienst."
 
 #. type: example
-#: doc/guix.texi:9860
+#: doc/guix.texi:10392
 #, no-wrap
 msgid ""
 "(remove (lambda (service)\n"
@@ -17076,289 +18632,322 @@ msgstr ""
 "          (eq? (service-kind service) avahi-service-type))\n"
 "        %desktop-services)\n"
 
-#. type: unnumberedsubsubsec
-#: doc/guix.texi:9862
+#. type: unnumberedsubsec
+#: doc/guix.texi:10394
 #, no-wrap
 msgid "Instantiating the System"
 msgstr "Das System instanziieren"
 
 #. type: Plain text
-#: doc/guix.texi:9869
+#: doc/guix.texi:10401
 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 (@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:9877
+#: doc/guix.texi:10409
 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:9878
+#: doc/guix.texi:10410
 #, no-wrap
 msgid "roll-back, of the operating system"
 msgstr "Zurücksetzen, des Betriebssystems"
 
 #. type: Plain text
-#: doc/guix.texi:9888
+#: doc/guix.texi:10420
 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 Booten 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."
+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:9894
+#: doc/guix.texi:10426
 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 (@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: unnumberedsubsubsec
-#: doc/guix.texi:9895
+#. type: unnumberedsubsec
+#: doc/guix.texi:10427
 #, no-wrap
 msgid "The Programming Interface"
 msgstr "Die Programmierschnittstelle"
 
 #. type: Plain text
-#: doc/guix.texi:9900
+#: doc/guix.texi:10432
 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 (@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:9901
+#: doc/guix.texi:10433
 #, no-wrap
 msgid "{Monadic Procedure} operating-system-derivation os"
 msgstr "{Monadische Prozedur} operating-system-derivation os"
 
 #. type: deffn
-#: doc/guix.texi:9904
+#: doc/guix.texi:10436
 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 (@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:9908
+#: doc/guix.texi:10440
 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:9913
-msgid "This procedure is provided by the @code{(gnu system)} module.  Along with @code{(gnu services)} (@pxref{Services}), this module contains the guts of GuixSD.  Make sure to visit it!"
-msgstr "Diese Prozedur wird vom Modul @code{(gnu system)} angeboten. Zusammen mit @code{(gnu services)} (@pxref{Services}) deckt dieses Modul den Kern von GuixSD ab. Schauen Sie es sich mal an!"
+#: doc/guix.texi:10445
+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: subsection
-#: doc/guix.texi:9916
+#. type: section
+#: doc/guix.texi:10448
 #, no-wrap
 msgid "@code{operating-system} Reference"
 msgstr "@code{operating-system}-Referenz"
 
 #. type: Plain text
-#: doc/guix.texi:9921
+#: doc/guix.texi:10453
 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 (@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:9922
+#: doc/guix.texi:10454
 #, no-wrap
 msgid "{Data Type} operating-system"
 msgstr "{Datentyp} operating-system"
 
 #. type: deftp
-#: doc/guix.texi:9926
+#: doc/guix.texi:10458
 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 (@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:9928
+#: doc/guix.texi:10460
 #, no-wrap
 msgid "@code{kernel} (default: @var{linux-libre})"
 msgstr "@code{kernel} (Vorgabe: @var{linux-libre})"
 
 #. type: table
-#: doc/guix.texi:9932
+#: doc/guix.texi:10464
 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.}."
 
 #. type: item
-#: doc/guix.texi:9933
-#, no-wrap
-msgid "@code{kernel-arguments} (default: @code{'()})"
+#: doc/guix.texi:10465
+#, fuzzy, no-wrap
+#| msgid "@code{kernel-arguments} (default: @code{'()})"
+msgid "@code{kernel-arguments} (default: @code{'(\"quiet\")})"
 msgstr "@code{kernel-arguments} (Vorgabe: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:9936
+#: doc/guix.texi:10468
 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\")}."
+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:9937 doc/guix.texi:22059 doc/guix.texi:22078
+#: doc/guix.texi:10469 doc/guix.texi:23893 doc/guix.texi:23912
 #, no-wrap
 msgid "bootloader"
 msgstr "bootloader"
 
 #. type: table
-#: doc/guix.texi:9939
+#: doc/guix.texi:10471
 msgid "The system bootloader configuration object.  @xref{Bootloader Configuration}."
-msgstr "Das Konfigurationsobjekt für den Bootloader, mit dem das System gestartet wird. Siehe @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:10472 doc/guix.texi:24032
+#, no-wrap
+msgid "label"
+msgstr "label"
+
+#. type: table
+#: doc/guix.texi:10475
+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:10476 doc/guix.texi:13643 doc/guix.texi:23962
+#, no-wrap
+msgid "@code{keyboard-layout} (default: @code{#f})"
+msgstr "@code{keyboard-layout} (Vorgabe: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:10480
+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:10485
+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:10492
+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 Display-Server 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:9940
+#: doc/guix.texi:10494
 #, 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:9941 doc/guix.texi:21899 doc/guix.texi:22002
-#: doc/guix.texi:22210
+#: doc/guix.texi:10495 doc/guix.texi:23719 doc/guix.texi:23822
+#: doc/guix.texi:24057
 #, no-wrap
 msgid "initrd"
 msgstr "initrd"
 
 #. type: cindex
-#: doc/guix.texi:9942 doc/guix.texi:21900 doc/guix.texi:22003
+#: doc/guix.texi:10496 doc/guix.texi:23720 doc/guix.texi:23823
 #, no-wrap
 msgid "initial RAM disk"
 msgstr "initiale RAM-Disk"
 
 #. type: table
-#: doc/guix.texi:9945
+#: doc/guix.texi:10499
 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 @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:9946
+#: doc/guix.texi:10500
 #, no-wrap
 msgid "@code{initrd} (default: @code{base-initrd})"
 msgstr "@code{initrd} (Vorgabe: @code{base-initrd})"
 
 #. type: table
-#: doc/guix.texi:9950
+#: doc/guix.texi:10504
 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 @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}."
 
 #. type: item
-#: doc/guix.texi:9951
+#: doc/guix.texi:10505
 #, no-wrap
 msgid "@code{firmware} (default: @var{%base-firmware})"
 msgstr "@code{firmware} (Vorgabe: @var{%base-firmware})"
 
 #. type: cindex
-#: doc/guix.texi:9952
+#: doc/guix.texi:10506
 #, no-wrap
 msgid "firmware"
 msgstr "Firmware"
 
 #. type: table
-#: doc/guix.texi:9954
+#: doc/guix.texi:10508
 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:9959
+#: doc/guix.texi:10513
 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 @xref{Hardware Considerations}, für mehr Informationen zu unterstützter 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:9960
+#: doc/guix.texi:10514
 #, no-wrap
 msgid "host-name"
 msgstr "host-name"
 
 #. type: table
-#: doc/guix.texi:9962
+#: doc/guix.texi:10516
 msgid "The host name."
 msgstr "Der Hostname"
 
 #. type: code{#1}
-#: doc/guix.texi:9963
+#: doc/guix.texi:10517
 #, no-wrap
 msgid "hosts-file"
 msgstr "hosts-file"
 
 #. type: cindex
-#: doc/guix.texi:9964
+#: doc/guix.texi:10518
 #, no-wrap
 msgid "hosts file"
 msgstr "hosts-Datei"
 
 #. type: table
-#: doc/guix.texi:9969
+#: doc/guix.texi:10523
 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 (@pxref{G-Expressions, file-like objects}), das für @file{/etc/hosts} benutzt werden soll (@pxref{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, file-like objects}), 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}."
 
 #. type: item
-#: doc/guix.texi:9970
+#: doc/guix.texi:10524
 #, no-wrap
 msgid "@code{mapped-devices} (default: @code{'()})"
 msgstr "@code{mapped-devices} (Vorgabe: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:9972
+#: doc/guix.texi:10526
 msgid "A list of mapped devices.  @xref{Mapped Devices}."
-msgstr "Eine Liste zugeordneter Geräte (»mapped devices«). Siehe @xref{Mapped Devices}."
+msgstr "Eine Liste zugeordneter Geräte (»mapped devices«). Siehe @ref{Mapped Devices}."
 
 #. type: code{#1}
-#: doc/guix.texi:9973
+#: doc/guix.texi:10527
 #, no-wrap
 msgid "file-systems"
 msgstr "file-systems"
 
 #. type: table
-#: doc/guix.texi:9975
+#: doc/guix.texi:10529
 msgid "A list of file systems.  @xref{File Systems}."
-msgstr "Eine Liste von Dateisystemen. Siehe @xref{File Systems}."
+msgstr "Eine Liste von Dateisystemen. Siehe @ref{File Systems}."
 
 #. type: item
-#: doc/guix.texi:9976
+#: doc/guix.texi:10530
 #, no-wrap
 msgid "@code{swap-devices} (default: @code{'()})"
 msgstr "@code{swap-devices} (Vorgabe: @code{'()})"
 
 #. type: cindex
-#: doc/guix.texi:9977
+#: doc/guix.texi:10531
 #, no-wrap
 msgid "swap devices"
 msgstr "Swap-Geräte"
 
 #. type: table
-#: doc/guix.texi:9984
+#: doc/guix.texi:10538
 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 (@pxref{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 @xref{Mapped Devices} und @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}."
 
 #. type: item
-#: doc/guix.texi:9985
+#: doc/guix.texi:10539
 #, no-wrap
 msgid "@code{users} (default: @code{%base-user-accounts})"
 msgstr "@code{users} (Vorgabe: @code{%base-user-accounts})"
 
 #. type: itemx
-#: doc/guix.texi:9986
+#: doc/guix.texi:10540
 #, no-wrap
 msgid "@code{groups} (default: @var{%base-groups})"
 msgstr "@code{groups} (Vorgabe: @var{%base-groups})"
 
 #. type: table
-#: doc/guix.texi:9988
+#: doc/guix.texi:10542
 msgid "List of user accounts and groups.  @xref{User Accounts}."
-msgstr "Liste der Benutzerkonten und Benutzergruppen. Siehe @xref{User Accounts}."
+msgstr "Liste der Benutzerkonten und Benutzergruppen. Siehe @ref{User Accounts}."
 
 #. type: table
-#: doc/guix.texi:9991
+#: doc/guix.texi:10545
 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:9992
+#: doc/guix.texi:10546
 #, no-wrap
 msgid "@code{skeletons} (default: @code{(default-skeletons)})"
 msgstr "@code{skeletons} (Vorgabe: @code{(default-skeletons)})"
 
 #. type: table
-#: doc/guix.texi:9996
+#: doc/guix.texi:10550
 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 "Eine Liste von Tupeln aus je einem Ziel-Dateinamen und einem dateiähnlichen Objekt (@pxref{G-Expressions, file-like objects}). Diese Objekte werden als Skeleton-Dateien im Persönlichen Verzeichnis (»Home«-Verzeichnis) jedes neuen Benutzerkontos angelegt."
+msgstr "Eine Liste von Tupeln aus je einem Ziel-Dateinamen und einem dateiähnlichen Objekt (siehe @ref{G-Expressions, file-like objects}). Diese Objekte werden als Skeleton-Dateien im Persönlichen Verzeichnis (»Home«-Verzeichnis) jedes neuen Benutzerkontos angelegt."
 
 #. type: table
-#: doc/guix.texi:9998
+#: doc/guix.texi:10552
 msgid "For instance, a valid value may look like this:"
 msgstr "Ein gültiger Wert könnte zum Beispiel so aussehen:"
 
 #. type: example
-#: doc/guix.texi:10004
+#: doc/guix.texi:10558
 #, no-wrap
 msgid ""
 "`((\".bashrc\" ,(plain-file \"bashrc\" \"echo Hello\\n\"))\n"
@@ -17372,166 +18961,223 @@ msgstr ""
 "                          (activate-readline)\")))\n"
 
 #. type: item
-#: doc/guix.texi:10006
+#: doc/guix.texi:10560
 #, no-wrap
 msgid "@code{issue} (default: @var{%default-issue})"
 msgstr "@code{issue} (Vorgabe: @var{%default-issue})"
 
 #. type: table
-#: doc/guix.texi:10009
+#: doc/guix.texi:10563
 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:10010
+#: doc/guix.texi:10564
 #, no-wrap
 msgid "@code{packages} (default: @var{%base-packages})"
 msgstr "@code{packages} (Vorgabe: @var{%base-packages})"
 
 #. type: table
-#: doc/guix.texi:10013
+#: doc/guix.texi:10567
 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."
 
 #. type: table
-#: doc/guix.texi:10017
+#: doc/guix.texi:10571
 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 (@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:10018
+#: doc/guix.texi:10572
 #, no-wrap
 msgid "timezone"
 msgstr "timezone"
 
 #. type: table
-#: doc/guix.texi:10020
+#: doc/guix.texi:10574
 msgid "A timezone identifying string---e.g., @code{\"Europe/Paris\"}."
-msgstr "Eine Zeichenkette, die die Zeitzone bezeichnet, wie z.B. @code{\"Europe/Berlin\"}."
+msgstr "Eine Zeichenkette, die die Zeitzone bezeichnet, wie z.B.@: @code{\"Europe/Berlin\"}."
 
 #. type: table
-#: doc/guix.texi:10024
+#: doc/guix.texi:10578
 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:10025
+#: doc/guix.texi:10579
 #, no-wrap
 msgid "@code{locale} (default: @code{\"en_US.utf8\"})"
 msgstr "@code{locale} (Vorgabe: @code{\"en_US.utf8\"})"
 
 #. type: table
-#: doc/guix.texi:10028
+#: doc/guix.texi:10582
 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 (@pxref{Locale Names,,, libc, The GNU C Library Reference Manual}). Siehe @xref{Locales} für weitere Informationen."
+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."
 
 #. type: item
-#: doc/guix.texi:10029
+#: doc/guix.texi:10583
 #, no-wrap
 msgid "@code{locale-definitions} (default: @var{%default-locale-definitions})"
 msgstr "@code{locale-definitions} (Vorgabe: @var{%default-locale-definitions})"
 
 #. type: table
-#: doc/guix.texi:10032
+#: doc/guix.texi:10586
 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 @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:10033
+#: doc/guix.texi:10587
 #, 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:10037
+#: doc/guix.texi:10591
 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 @xref{Locales} für eine Erläuterung der Kompatibilitätsauswirkungen, deretwegen man diese Option benutzen wollen könnte."
+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:10038
+#: doc/guix.texi:10592
 #, no-wrap
 msgid "@code{name-service-switch} (default: @var{%default-nss})"
 msgstr "@code{name-service-switch} (Vorgabe: @var{%default-nss})"
 
 #. type: table
-#: doc/guix.texi:10042
+#: doc/guix.texi:10596
 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 @xref{Name Service Switch}, für 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:10043
+#: doc/guix.texi:10597
 #, no-wrap
 msgid "@code{services} (default: @var{%base-services})"
 msgstr "@code{services} (Vorgabe: @var{%base-services})"
 
 #. type: table
-#: doc/guix.texi:10045
+#: doc/guix.texi:10599
 msgid "A list of service objects denoting system services.  @xref{Services}."
-msgstr "Eine Liste von »service«-Objekten, die die Systemdienste repräsentieren. Siehe @xref{Services}."
+msgstr "Eine Liste von »service«-Objekten, die die Systemdienste repräsentieren. Siehe @ref{Services}."
+
+#. type: cindex
+#: doc/guix.texi:10600
+#, no-wrap
+msgid "essential services"
+msgstr "essenzielle Dienste"
 
 #. type: item
-#: doc/guix.texi:10046
+#: doc/guix.texi:10601
+#, no-wrap
+msgid "@code{essential-services} (default: ...)"
+msgstr "@code{essential-services} (Vorgabe: …)"
+
+#. type: table
+#: doc/guix.texi:10606
+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:10607
 #, 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:10047
+#: doc/guix.texi:10608
 #, no-wrap
 msgid "PAM"
 msgstr "PAM"
 
 #. type: cindex
-#: doc/guix.texi:10048
+#: doc/guix.texi:10609
 #, no-wrap
 msgid "pluggable authentication modules"
 msgstr "Pluggable Authentication Modules"
 
 #. type: table
-#: doc/guix.texi:10051
+#: doc/guix.texi:10612
 msgid "Linux @dfn{pluggable authentication module} (PAM) services."
-msgstr "Dienste für »@dfn{Pluggable Authentication Modules}« (PAM) von Linux."
+msgstr "Dienste für @dfn{Pluggable Authentication Modules} (PAM) von Linux."
 
 #. type: item
-#: doc/guix.texi:10052
+#: doc/guix.texi:10613
 #, no-wrap
 msgid "@code{setuid-programs} (default: @var{%setuid-programs})"
 msgstr "@code{setuid-programs} (Vorgabe: @var{%setuid-programs})"
 
 #. type: table
-#: doc/guix.texi:10055
+#: doc/guix.texi:10616
 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 @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:10056
+#: doc/guix.texi:10617
 #, no-wrap
 msgid "@code{sudoers-file} (default: @var{%sudoers-specification})"
 msgstr "@code{sudoers-file} (Vorgabe: @var{%sudoers-specification})"
 
 #. type: cindex
-#: doc/guix.texi:10057
+#: doc/guix.texi:10618
 #, no-wrap
 msgid "sudoers file"
 msgstr "sudoers-Datei"
 
 #. type: table
-#: doc/guix.texi:10060
+#: doc/guix.texi:10621
 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 (@pxref{G-Expressions, @code{local-file} und @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:10065
+#: doc/guix.texi:10626
 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:10629
+#, fuzzy, no-wrap
+#| msgid "{Data Type} operating-system"
+msgid "{Scheme Syntax} this-operating-system"
+msgstr "{Datentyp} operating-system"
+
+#. type: deffn
+#: doc/guix.texi:10632
+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:10635
+msgid "The example below shows how to refer to the operating system being defined in the definition of the @code{label} field:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:10638 doc/guix.texi:13297
+#, no-wrap
+msgid ""
+"(use-modules (gnu) (guix))\n"
+"\n"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:10643
+#, no-wrap
+msgid ""
+"(operating-system\n"
+"  ;; ...\n"
+"  (label (package-full-name\n"
+"          (operating-system-kernel this-operating-system))))\n"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:10647
+msgid "It is an error to refer to @code{this-operating-system} outside an operating system definition."
+msgstr ""
+
 #. type: Plain text
-#: doc/guix.texi:10076
+#: doc/guix.texi:10658
 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 (@pxref{Using the Configuration System}). Jedes Dateisystem wird mit der @code{file-system}-Form deklariert, etwa so:"
+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: example
-#: doc/guix.texi:10082
+#: doc/guix.texi:10664
 #, no-wrap
 msgid ""
 "(file-system\n"
@@ -17545,67 +19191,67 @@ msgstr ""
 "  (type \"ext4\"))\n"
 
 #. type: Plain text
-#: doc/guix.texi:10086
+#: doc/guix.texi:10668
 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:10087
+#: doc/guix.texi:10669
 #, no-wrap
 msgid "{Data Type} file-system"
 msgstr "{Datentyp} file-system"
 
 #. type: deftp
-#: doc/guix.texi:10090
+#: doc/guix.texi:10672
 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:10092 doc/guix.texi:10278
+#: doc/guix.texi:10674 doc/guix.texi:10860
 #, no-wrap
 msgid "type"
 msgstr "type"
 
 #. type: table
-#: doc/guix.texi:10095
+#: doc/guix.texi:10677
 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\"}."
+msgstr "Eine Zeichenkette, die den Typ des Dateisystems spezifiziert, z.B.@: @code{\"ext4\"}."
 
 #. type: code{#1}
-#: doc/guix.texi:10096
+#: doc/guix.texi:10678
 #, no-wrap
 msgid "mount-point"
 msgstr "mount-point"
 
 #. type: table
-#: doc/guix.texi:10098
+#: doc/guix.texi:10680
 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."
+msgstr "Der Einhängepunkt, d.h.@: der Pfad, an dem das Dateisystem eingebunden werden soll."
 
 #. type: code{#1}
-#: doc/guix.texi:10099
+#: doc/guix.texi:10681
 #, no-wrap
 msgid "device"
 msgstr "device"
 
 #. type: table
-#: doc/guix.texi:10109
+#: doc/guix.texi:10691
 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.}."
 
 #. type: findex
-#: doc/guix.texi:10110
+#: doc/guix.texi:10692
 #, no-wrap
 msgid "file-system-label"
 msgstr "file-system-label"
 
 #. type: table
-#: doc/guix.texi:10115
+#: doc/guix.texi:10697
 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: example
-#: doc/guix.texi:10121
+#: doc/guix.texi:10703
 #, no-wrap
 msgid ""
 "(file-system\n"
@@ -17619,18 +19265,18 @@ msgstr ""
 "  (device (file-system-label \"my-home\")))\n"
 
 #. type: findex
-#: doc/guix.texi:10123
+#: doc/guix.texi:10705
 #, no-wrap
 msgid "uuid"
 msgstr "uuid"
 
 #. type: table
-#: doc/guix.texi:10131
+#: doc/guix.texi:10713
 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:"
+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: example
-#: doc/guix.texi:10137
+#: doc/guix.texi:10719
 #, no-wrap
 msgid ""
 "(file-system\n"
@@ -17644,268 +19290,268 @@ msgstr ""
 "  (device (uuid \"4dab5feb-d176-45de-b287-9b0a6e4c01cb\")))\n"
 
 #. type: table
-#: doc/guix.texi:10145
+#: doc/guix.texi:10727
 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 (@pxref{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."
+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:10146
+#: doc/guix.texi:10728
 #, no-wrap
 msgid "@code{flags} (default: @code{'()})"
 msgstr "@code{flags} (Vorgabe: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:10151
+#: doc/guix.texi:10733
 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), and @code{no-exec} (disallow program execution.)"
-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) und @code{no-exec} (Programmausführungen verweigern)."
+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) und @code{no-exec} (Programmausführungen verweigern)."
 
 #. type: item
-#: doc/guix.texi:10152
+#: doc/guix.texi:10734
 #, no-wrap
 msgid "@code{options} (default: @code{#f})"
 msgstr "@code{options} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:10154
+#: doc/guix.texi:10736
 msgid "This is either @code{#f}, or a string denoting mount options."
 msgstr "Entweder @code{#f} oder eine Zeichenkette mit Einbinde-Optionen (»mount options«)."
 
 #. type: item
-#: doc/guix.texi:10155
+#: doc/guix.texi:10737
 #, no-wrap
 msgid "@code{mount?} (default: @code{#t})"
 msgstr "@code{mount?} (Vorgabe: @code{#t})"
 
 #. type: table
-#: doc/guix.texi:10160
+#: doc/guix.texi:10742
 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:10161
+#: doc/guix.texi:10743
 #, no-wrap
 msgid "@code{needed-for-boot?} (default: @code{#f})"
 msgstr "@code{needed-for-boot?} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:10166
+#: doc/guix.texi:10748
 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:10167
+#: doc/guix.texi:10749
 #, no-wrap
 msgid "@code{check?} (default: @code{#t})"
 msgstr "@code{check?} (Vorgabe: @code{#t})"
 
 #. type: table
-#: doc/guix.texi:10170
+#: doc/guix.texi:10752
 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:10171
+#: doc/guix.texi:10753
 #, no-wrap
 msgid "@code{create-mount-point?} (default: @code{#f})"
 msgstr "@code{create-mount-point?} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:10173
+#: doc/guix.texi:10755
 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:10174
+#: doc/guix.texi:10756
 #, no-wrap
 msgid "@code{dependencies} (default: @code{'()})"
 msgstr "@code{dependencies} (Vorgabe: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:10178
+#: doc/guix.texi:10760
 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:10182
+#: doc/guix.texi:10764
 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:10185
+#: doc/guix.texi:10767
 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 (@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: Plain text
-#: doc/guix.texi:10190
+#: doc/guix.texi:10772
 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:10191
+#: doc/guix.texi:10773
 #, no-wrap
 msgid "{Scheme Variable} %base-file-systems"
 msgstr "{Scheme-Variable} %base-file-systems"
 
 #. type: defvr
-#: doc/guix.texi:10196
+#: doc/guix.texi:10778
 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."
 
 #. type: defvr
-#: doc/guix.texi:10198
+#: doc/guix.texi:10780
 #, no-wrap
 msgid "{Scheme Variable} %pseudo-terminal-file-system"
 msgstr "{Scheme-Variable} %pseudo-terminal-file-system"
 
 #. type: defvr
-#: doc/guix.texi:10204
+#: doc/guix.texi:10786
 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} (@pxref{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, The GNU C Library Reference Manual}). Pseudo-Terminals werden von Terminal-Emulatoren wie @command{xterm} benutzt."
 
 #. type: defvr
-#: doc/guix.texi:10206
+#: doc/guix.texi:10788
 #, no-wrap
 msgid "{Scheme Variable} %shared-memory-file-system"
 msgstr "{Scheme-Variable} %shared-memory-file-system"
 
 #. type: defvr
-#: doc/guix.texi:10210
+#: doc/guix.texi:10792
 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 (@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})."
 
 #. type: defvr
-#: doc/guix.texi:10212
+#: doc/guix.texi:10794
 #, no-wrap
 msgid "{Scheme Variable} %immutable-store"
 msgstr "{Scheme-Variable} %immutable-store"
 
 #. type: defvr
-#: doc/guix.texi:10217
+#: doc/guix.texi:10799
 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."
+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:10220
+#: doc/guix.texi:10802
 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:10222
+#: doc/guix.texi:10804
 #, no-wrap
 msgid "{Scheme Variable} %binary-format-file-system"
 msgstr "{Scheme-Variable} %binary-format-file-system"
 
 #. type: defvr
-#: doc/guix.texi:10226
+#: doc/guix.texi:10808
 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:10228
+#: doc/guix.texi:10810
 #, no-wrap
 msgid "{Scheme Variable} %fuse-control-file-system"
 msgstr "{Scheme-Variable} %fuse-control-file-system"
 
 #. type: defvr
-#: doc/guix.texi:10232
+#: doc/guix.texi:10814
 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: cindex
-#: doc/guix.texi:10237
+#: doc/guix.texi:10819
 #, no-wrap
 msgid "device mapping"
 msgstr "Gerätezuordnung"
 
 #. type: cindex
-#: doc/guix.texi:10238
+#: doc/guix.texi:10820
 #, no-wrap
 msgid "mapped devices"
 msgstr "zugeordnete Geräte"
 
 #. type: Plain text
-#: doc/guix.texi:10256
+#: doc/guix.texi:10838
 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 (@pxref{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, 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«."
 
 #. type: Plain text
-#: doc/guix.texi:10259
+#: doc/guix.texi:10841
 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:10260
+#: doc/guix.texi:10842
 #, no-wrap
 msgid "{Data Type} mapped-device"
 msgstr "{Datentyp} mapped-device"
 
 #. type: deftp
-#: doc/guix.texi:10263
+#: doc/guix.texi:10845
 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:10269
+#: doc/guix.texi:10851
 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:10270 doc/guix.texi:22103
+#: doc/guix.texi:10852 doc/guix.texi:23937
 #, no-wrap
 msgid "target"
 msgstr "target"
 
 #. type: table
-#: doc/guix.texi:10277
+#: doc/guix.texi:10859
 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:10281
+#: doc/guix.texi:10863
 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:10284
+#: doc/guix.texi:10866
 #, no-wrap
 msgid "{Scheme Variable} luks-device-mapping"
 msgstr "{Scheme-Variable} luks-device-mapping"
 
 #. type: defvr
-#: doc/guix.texi:10288
+#: doc/guix.texi:10870
 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:10290
+#: doc/guix.texi:10872
 #, no-wrap
 msgid "{Scheme Variable} raid-device-mapping"
 msgstr "{Scheme-Variable} raid-device-mapping"
 
 #. type: defvr
-#: doc/guix.texi:10295
+#: doc/guix.texi:10877
 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."
+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:10297
+#: doc/guix.texi:10879
 #, no-wrap
 msgid "disk encryption"
 msgstr "Laufwerksverschlüsselung"
 
 #. type: cindex
-#: doc/guix.texi:10298
+#: doc/guix.texi:10880
 #, no-wrap
 msgid "LUKS"
 msgstr "LUKS"
 
 #. type: Plain text
-#: doc/guix.texi:10306
+#: doc/guix.texi:10888
 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 (@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: example
-#: doc/guix.texi:10312
+#: doc/guix.texi:10894
 #, no-wrap
 msgid ""
 "(mapped-device\n"
@@ -17919,23 +19565,23 @@ msgstr ""
 "  (type luks-device-mapping))\n"
 
 #. type: Plain text
-#: doc/guix.texi:10317
+#: doc/guix.texi:10899
 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:"
+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:10320
+#: doc/guix.texi:10902
 #, no-wrap
 msgid "cryptsetup luksUUID /dev/sda3\n"
 msgstr "cryptsetup luksUUID /dev/sda3\n"
 
 #. type: Plain text
-#: doc/guix.texi:10323
+#: doc/guix.texi:10905
 msgid "and use it as follows:"
 msgstr "und wie folgt benutzen:"
 
 #. type: example
-#: doc/guix.texi:10329
+#: doc/guix.texi:10911
 #, no-wrap
 msgid ""
 "(mapped-device\n"
@@ -17949,23 +19595,23 @@ msgstr ""
 "  (type luks-device-mapping))\n"
 
 #. type: cindex
-#: doc/guix.texi:10331
+#: doc/guix.texi:10913
 #, no-wrap
 msgid "swap encryption"
 msgstr "Swap-Verschlüsselung"
 
 #. type: Plain text
-#: doc/guix.texi:10337
+#: doc/guix.texi:10919
 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 @xref{Preparing for Installation,,Disk Partitioning}."
+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:10340
+#: doc/guix.texi:10922
 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: example
-#: doc/guix.texi:10346
+#: doc/guix.texi:10928
 #, no-wrap
 msgid ""
 "(mapped-device\n"
@@ -17979,35 +19625,35 @@ msgstr ""
 "  (type raid-device-mapping))\n"
 
 #. type: Plain text
-#: doc/guix.texi:10353
+#: doc/guix.texi:10935
 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 (@pxref{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."
+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:10358
+#: doc/guix.texi:10940
 #, no-wrap
 msgid "users"
 msgstr "Benutzer"
 
 #. type: cindex
-#: doc/guix.texi:10359
+#: doc/guix.texi:10941
 #, no-wrap
 msgid "accounts"
 msgstr "Konten"
 
 #. type: cindex
-#: doc/guix.texi:10360
+#: doc/guix.texi:10942
 #, no-wrap
 msgid "user accounts"
 msgstr "Benutzerkonten"
 
 #. type: Plain text
-#: doc/guix.texi:10364
+#: doc/guix.texi:10946
 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: example
-#: doc/guix.texi:10375
+#: doc/guix.texi:10957
 #, no-wrap
 msgid ""
 "(user-account\n"
@@ -18031,255 +19677,487 @@ msgstr ""
 "  (home-directory \"/home/alice\"))\n"
 
 #. type: Plain text
-#: doc/guix.texi:10384
+#: doc/guix.texi:10966
 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:10385
+#: doc/guix.texi:10967
 #, no-wrap
 msgid "{Data Type} user-account"
 msgstr "{Datentyp} user-account"
 
 #. type: deftp
-#: doc/guix.texi:10388
+#: doc/guix.texi:10970
 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:10392
+#: doc/guix.texi:10974
 msgid "The name of the user account."
 msgstr "Der Name des Benutzerkontos."
 
 #. type: itemx
-#: doc/guix.texi:10393 doc/guix.texi:21853
+#: doc/guix.texi:10975 doc/guix.texi:23673
 #, no-wrap
 msgid "group"
 msgstr "group"
 
 #. type: cindex
-#: doc/guix.texi:10394 doc/guix.texi:10443
+#: doc/guix.texi:10976 doc/guix.texi:11043
 #, no-wrap
 msgid "groups"
 msgstr "Gruppen"
 
 #. type: table
-#: doc/guix.texi:10397
+#: doc/guix.texi:10979
 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:10398
+#: doc/guix.texi:10980
 #, no-wrap
 msgid "@code{supplementary-groups} (default: @code{'()})"
 msgstr "@code{supplementary-groups} (Vorgabe: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:10401
+#: doc/guix.texi:10983
 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:10402
+#: doc/guix.texi:10984
 #, no-wrap
 msgid "@code{uid} (default: @code{#f})"
 msgstr "@code{uid} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:10406
+#: doc/guix.texi:10988
 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:10407
+#: doc/guix.texi:10989
 #, no-wrap
 msgid "@code{comment} (default: @code{\"\"})"
 msgstr "@code{comment} (Vorgabe: @code{\"\"})"
 
 #. type: table
-#: doc/guix.texi:10409
+#: doc/guix.texi:10991
 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:10410
+#: doc/guix.texi:10992
 #, no-wrap
 msgid "home-directory"
 msgstr "home-directory"
 
 #. type: table
-#: doc/guix.texi:10412
+#: doc/guix.texi:10994
 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:10413
+#: doc/guix.texi:10995
 #, no-wrap
 msgid "@code{create-home-directory?} (default: @code{#t})"
 msgstr "@code{create-home-directory?} (Vorgabe: @code{#t})"
 
 #. type: table
-#: doc/guix.texi:10416
+#: doc/guix.texi:10998
 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:10417
+#: doc/guix.texi:10999
 #, no-wrap
 msgid "@code{shell} (default: Bash)"
 msgstr "@code{shell} (Vorgabe: Bash)"
 
 #. type: table
-#: doc/guix.texi:10420
+#: doc/guix.texi:11002
 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 (@pxref{G-Expressions})."
+msgstr "Ein G-Ausdruck, der den Dateinamen des Programms angibt, das dem Benutzer als Shell dienen soll (siehe @ref{G-Expressions})."
 
 #. type: item
-#: doc/guix.texi:10421 doc/guix.texi:10461
+#: doc/guix.texi:11003 doc/guix.texi:11061
 #, no-wrap
 msgid "@code{system?} (default: @code{#f})"
 msgstr "@code{system?} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:10425
+#: doc/guix.texi:11007
 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 graphischen Anmeldebildschirmen nicht aufgeführt."
+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:10427
+#: doc/guix.texi:11009
 msgid "user-account-password"
 msgstr "user-account-password"
 
+#. type: cindex
+#: doc/guix.texi:11009
+#, no-wrap
+msgid "password, for user accounts"
+msgstr "Passwort, für Benutzerkonten"
+
 #. type: item
-#: doc/guix.texi:10427 doc/guix.texi:10465
+#: doc/guix.texi:11010 doc/guix.texi:11065
 #, no-wrap
 msgid "@code{password} (default: @code{#f})"
 msgstr "@code{password} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:10433
+#: doc/guix.texi:11016
 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:10439
-msgid "If you @emph{do} want to have a preset password for an account, then this field must contain the encrypted password, as a string.  @xref{crypt,,, 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 "Wenn Sie aber @emph{doch} ein voreingestelltes Passwort für ein Konto haben möchten, muss dieses Feld hier das verschlüsselte Passwort als Zeichenkette enthalten. Siehe @xref{crypt,,, 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."
+#: doc/guix.texi:11020
+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: example
+#: doc/guix.texi:11025
+#, no-wrap
+msgid ""
+"(user-account\n"
+"  (name \"charlie\")\n"
+"  (group \"users\")\n"
+"\n"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:11028
+#, no-wrap
+msgid ""
+"  ;; Specify a SHA-512-hashed initial password.\n"
+"  (password (crypt \"InitialPassword!\" \"$6$abc\")))\n"
+msgstr ""
+
+#. type: quotation
+#: doc/guix.texi:11034
+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:11039
+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."
 
 #. type: Plain text
-#: doc/guix.texi:10445
+#: doc/guix.texi:11045
 msgid "User group declarations are even simpler:"
 msgstr "Benutzergruppen-Deklarationen sind noch einfacher aufgebaut:"
 
 #. type: example
-#: doc/guix.texi:10448
+#: doc/guix.texi:11048
 #, no-wrap
 msgid "(user-group (name \"students\"))\n"
 msgstr "(user-group (name \"students\"))\n"
 
 #. type: deftp
-#: doc/guix.texi:10450
+#: doc/guix.texi:11050
 #, no-wrap
 msgid "{Data Type} user-group"
 msgstr "{Datentyp} user-group"
 
 #. type: deftp
-#: doc/guix.texi:10452
+#: doc/guix.texi:11052
 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:10456
+#: doc/guix.texi:11056
 msgid "The name of the group."
 msgstr "Der Name der Gruppe."
 
 #. type: item
-#: doc/guix.texi:10457
+#: doc/guix.texi:11057
 #, no-wrap
 msgid "@code{id} (default: @code{#f})"
 msgstr "@code{id} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:10460
+#: doc/guix.texi:11060
 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:10464
+#: doc/guix.texi:11064
 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:10468
+#: doc/guix.texi:11068
 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:10474
+#: doc/guix.texi:11074
 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:10475
+#: doc/guix.texi:11075
 #, no-wrap
 msgid "{Scheme Variable} %base-groups"
 msgstr "{Scheme-Variable} %base-groups"
 
 #. type: defvr
-#: doc/guix.texi:10480
+#: doc/guix.texi:11080
 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:10482
+#: doc/guix.texi:11082
 #, no-wrap
 msgid "{Scheme Variable} %base-user-accounts"
 msgstr "{Scheme-Variable} %base-user-accounts"
 
 #. type: defvr
-#: doc/guix.texi:10485
+#: doc/guix.texi:11085
 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:10488
+#: doc/guix.texi:11088
 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:10493
+#: doc/guix.texi:11094
+#, no-wrap
+msgid "keymap"
+msgstr "Keymap"
+
+#. type: Plain text
+#: doc/guix.texi:11102
+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:11103
+#, no-wrap
+msgid "keyboard layout, definition"
+msgstr "Tastaturbelegung, Definition"
+
+#. type: Plain text
+#: doc/guix.texi:11105
+msgid "There are three components that will want to know about your keyboard layout:"
+msgstr ""
+
+#. type: itemize
+#: doc/guix.texi:11112
+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:11117
+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:11121
+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:11125
+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:11126
+#, no-wrap
+msgid "XKB, keyboard layouts"
+msgstr "XKB, Tastaturbelegungen"
+
+#. type: Plain text
+#: doc/guix.texi:11134
+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: example
+#: doc/guix.texi:11139
+#, no-wrap
+msgid ""
+";; The German QWERTZ layout.  Here we assume a standard\n"
+";; \"pc105\" keyboard model.\n"
+"(keyboard-layout \"de\")\n"
+"\n"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:11142
+#, no-wrap
+msgid ""
+";; The bépo variant of the French layout.\n"
+"(keyboard-layout \"fr\" \"bepo\")\n"
+"\n"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:11145
+#, no-wrap
+msgid ""
+";; The Catalan layout.\n"
+"(keyboard-layout \"es\" \"cat\")\n"
+"\n"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:11152
+#, no-wrap
+msgid ""
+";; The Latin American Spanish layout.  In addition, the\n"
+";; \"Caps Lock\" key is used as an additional \"Ctrl\" key,\n"
+";; and the \"Menu\" key is used as a \"Compose\" key to enter\n"
+";; accented letters.\n"
+"(keyboard-layout \"latam\"\n"
+"                 #:options '(\"ctrl:nocaps\" \"compose:menu\"))\n"
+"\n"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:11155
+#, no-wrap
+msgid ""
+";; The Russian layout for a ThinkPad keyboard.\n"
+"(keyboard-layout \"ru\" #:model \"thinkpad\")\n"
+"\n"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:11160
+#, no-wrap
+msgid ""
+";; The \"US international\" layout, which is the US layout plus\n"
+";; dead keys to enter accented characters.  This is for an\n"
+";; Apple MacBook keyboard.\n"
+"(keyboard-layout \"us\" \"intl\" #:model \"macbook78\")\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:11164
+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:11165
+#, no-wrap
+msgid "keyboard layout, configuration"
+msgstr "Tastaturbelegung, Konfiguration"
+
+#. type: Plain text
+#: doc/guix.texi:11169
+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:11170
+#, no-wrap
+msgid "set-xorg-configuration"
+msgstr "set-xorg-configuration"
+
+#. type: lisp
+#: doc/guix.texi:11174
+#, no-wrap
+msgid ""
+";; Using the Turkish layout for the bootloader, the console,\n"
+";; and for Xorg.\n"
+"\n"
+msgstr ""
+
+#. type: lisp
+#: doc/guix.texi:11186
+#, no-wrap
+msgid ""
+"(operating-system\n"
+"  ;; ...\n"
+"  (keyboard-layout (keyboard-layout \"tr\"))  ;for the console\n"
+"  (bootloader (bootloader-configuration\n"
+"                (bootloader grub-efi-bootloader)\n"
+"                (target \"/boot/efi\")\n"
+"                (keyboard-layout keyboard-layout))) ;for GRUB\n"
+"  (services (cons (set-xorg-configuration\n"
+"                    (xorg-configuration             ;for Xorg\n"
+"                      (keyboard-layout keyboard-layout)))\n"
+"                  %desktop-services)))\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:11193
+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:11196
+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:11201
+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:11206
+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:11209
+#, no-wrap
+msgid "setxkbmap us dvorak\n"
+msgstr ""
+
+#. type: itemize
+#: doc/guix.texi:11216
+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:11219
+#, no-wrap
+msgid "loadkeys fr-bepo\n"
+msgstr "loadkeys fr-bepo\n"
+
+#. type: cindex
+#: doc/guix.texi:11225
 #, no-wrap
 msgid "locale"
 msgstr "Locale"
 
 #. type: Plain text
-#: doc/guix.texi:10500
+#: doc/guix.texi:11232
 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 (@pxref{Locales,,, libc, The GNU C Library Reference Manual}). Jede Locale hat einen Namen, der typischerweise von der Form @code{@var{Sprache}_@var{Territorium}.@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, 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."
 
 #. type: cindex
-#: doc/guix.texi:10501
+#: doc/guix.texi:11233
 #, no-wrap
 msgid "locale definition"
 msgstr "Locale-Definition"
 
 #. type: Plain text
-#: doc/guix.texi:10505
+#: doc/guix.texi:11237
 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 (@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:10514
+#: doc/guix.texi:11246
 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."
+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:10517
+#: doc/guix.texi:11249
 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: example
-#: doc/guix.texi:10522
+#: doc/guix.texi:11254
 #, no-wrap
 msgid ""
 "(cons (locale-definition\n"
@@ -18291,12 +20169,12 @@ msgstr ""
 "      %default-locale-definitions)\n"
 
 #. type: Plain text
-#: doc/guix.texi:10526
+#: doc/guix.texi:11258
 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: example
-#: doc/guix.texi:10531
+#: doc/guix.texi:11263
 #, no-wrap
 msgid ""
 "(list (locale-definition\n"
@@ -18308,114 +20186,114 @@ msgstr ""
 "        (charset \"EUC-JP\")))\n"
 
 #. type: Plain text
-#: doc/guix.texi:10540
+#: doc/guix.texi:11272
 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} (@pxref{locales-and-locpath, @code{LOCPATH} und Locale-Pakete})."
+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})."
 
 #. type: Plain text
-#: doc/guix.texi:10543
+#: doc/guix.texi:11275
 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:10544
+#: doc/guix.texi:11276
 #, no-wrap
 msgid "{Data Type} locale-definition"
 msgstr "{Datentyp} locale-definition"
 
 #. type: deftp
-#: doc/guix.texi:10546
+#: doc/guix.texi:11278
 msgid "This is the data type of a locale definition."
 msgstr "Dies ist der Datentyp einer Locale-Definition."
 
 #. type: table
-#: doc/guix.texi:10552
+#: doc/guix.texi:11284
 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 @xref{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, The GNU C Library Reference Manual} für mehr Informationen zu Locale-Namen."
 
 #. type: table
-#: doc/guix.texi:10556
+#: doc/guix.texi:11288
 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 aus @code{@var{Sprache}_@var{Territorium}} des Locale-Namens."
+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:10557
+#: doc/guix.texi:11289
 #, no-wrap
 msgid "@code{charset} (default: @code{\"UTF-8\"})"
 msgstr "@code{charset} (Vorgabe: @code{\"UTF-8\"})"
 
 #. type: table
-#: doc/guix.texi:10561
+#: doc/guix.texi:11293
 msgid "The ``character set'' or ``code set'' for that locale, @uref{http://www.iana.org/assignments/character-sets, as defined by IANA}."
-msgstr "Der »Zeichensatz« oder das »Code set«, d.h. die Kodierung dieser Locale, @uref{http://www.iana.org/assignments/character-sets, wie die IANA sie definiert}."
+msgstr "Der »Zeichensatz« oder das »Code set«, d.h.@: die Kodierung dieser Locale, @uref{http://www.iana.org/assignments/character-sets, wie die IANA sie definiert}."
 
 #. type: defvr
-#: doc/guix.texi:10565
+#: doc/guix.texi:11297
 #, no-wrap
 msgid "{Scheme Variable} %default-locale-definitions"
 msgstr "{Scheme-Variable} %default-locale-definitions"
 
 #. type: defvr
-#: doc/guix.texi:10569
+#: doc/guix.texi:11301
 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:10570
+#: doc/guix.texi:11302
 #, no-wrap
 msgid "locale name"
 msgstr "Locale-Name"
 
 #. type: cindex
-#: doc/guix.texi:10571
+#: doc/guix.texi:11303
 #, no-wrap
 msgid "normalized codeset in locale names"
 msgstr "Normalisiertes Codeset in Locale-Namen"
 
 #. type: defvr
-#: doc/guix.texi:10577
+#: doc/guix.texi:11309
 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 (@pxref{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, 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."
 
-#. type: subsubsection
-#: doc/guix.texi:10579
+#. type: subsection
+#: doc/guix.texi:11311
 #, no-wrap
 msgid "Locale Data Compatibility Considerations"
 msgstr "Kompatibilität der Locale-Daten"
 
 #. type: cindex
-#: doc/guix.texi:10581
+#: doc/guix.texi:11313
 #, no-wrap
 msgid "incompatibility, of locale data"
 msgstr "Inkompatibilität, von Locale-Daten"
 
 #. type: Plain text
-#: doc/guix.texi:10588
+#: doc/guix.texi:11320
 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 (@pxref{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."
+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:10600
+#: doc/guix.texi:11332
 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 mit der 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 gegen 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."
 
 #. type: Plain text
-#: doc/guix.texi:10605
-msgid "The ``problem'' in GuixSD 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« bei GuixSD 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."
+#: doc/guix.texi:11337
+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:10609
+#: doc/guix.texi:11341
 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 (@pxref{locales-and-locpath, @code{GUIX_LOCPATH} und Locale-Pakete})."
+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})."
 
 #. type: Plain text
-#: doc/guix.texi:10616
+#: doc/guix.texi:11348
 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: example
-#: doc/guix.texi:10619
+#: doc/guix.texi:11351
 #, no-wrap
 msgid ""
 "(use-package-modules base)\n"
@@ -18425,7 +20303,7 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix.texi:10623
+#: doc/guix.texi:11355
 #, no-wrap
 msgid ""
 "(operating-system\n"
@@ -18437,39 +20315,39 @@ msgstr ""
 "  (locale-libcs (list glibc-2.21 (canonical-package glibc))))\n"
 
 #. type: Plain text
-#: doc/guix.texi:10628
+#: doc/guix.texi:11360
 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:10633
+#: doc/guix.texi:11365
 #, no-wrap
 msgid "system services"
 msgstr "Systemdienste"
 
 #. type: Plain text
-#: doc/guix.texi:10639
+#: doc/guix.texi:11371
 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 (@pxref{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."
+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:10646
-msgid "GuixSD 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 "GuixSD hat eine weit gefasste Definition, was ein »Dienst« ist (@pxref{Service Composition}), aber viele Dienste sind solche, die von GNU@tie{}Shepherd verwaltet werden (@pxref{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 (@pxref{Jump Start,,, shepherd, The GNU Shepherd Manual}). Zum Beispiel:"
+#: doc/guix.texi:11378
+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:10649
+#: doc/guix.texi:11381
 #, no-wrap
 msgid "# herd status\n"
 msgstr "# herd status\n"
 
 #. type: Plain text
-#: doc/guix.texi:10654
+#: doc/guix.texi:11386
 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:10658
+#: doc/guix.texi:11390
 #, no-wrap
 msgid ""
 "# herd doc nscd\n"
@@ -18481,7 +20359,7 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix.texi:10661
+#: doc/guix.texi:11393
 #, no-wrap
 msgid ""
 "# herd doc nscd action invalidate\n"
@@ -18491,12 +20369,12 @@ msgstr ""
 "invalidate: Invalidate the given cache--e.g., 'hosts' for host name lookups.\n"
 
 #. type: Plain text
-#: doc/guix.texi:10666
+#: doc/guix.texi:11398
 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-Display-Server neu gestartet werden:"
 
 #. type: example
-#: doc/guix.texi:10673
+#: doc/guix.texi:11405
 #, no-wrap
 msgid ""
 "# herd stop nscd\n"
@@ -18512,90 +20390,107 @@ msgstr ""
 "Service xorg-server has been started.\n"
 
 #. type: Plain text
-#: doc/guix.texi:10678
+#: doc/guix.texi:11410
 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:11439 doc/guix.texi:18018 doc/guix.texi:18019
+#, no-wrap
+msgid "LDAP Services"
+msgstr "LDAP-Dienste"
+
+#. type: menuentry
+#: doc/guix.texi:11439
+msgid "LDAP services."
+msgstr "LDAP-Dienste."
+
 #. type: Plain text
-#: doc/guix.texi:10714
+#: doc/guix.texi:11447
 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:10715
+#: doc/guix.texi:11448
 #, no-wrap
 msgid "{Scheme Variable} %base-services"
 msgstr "{Scheme-Variable} %base-services"
 
 #. type: defvr
-#: doc/guix.texi:10721
+#: doc/guix.texi:11454
 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 @pxref{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."
+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:10726
+#: doc/guix.texi:11459
 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 "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 @var{%base-services}-Liste anhängen, wie hier gezeigt:"
 
 #. type: example
-#: doc/guix.texi:10729
+#: doc/guix.texi:11464
 #, no-wrap
-msgid "(cons* (avahi-service) (lsh-service) %base-services)\n"
-msgstr "(cons* (avahi-service) (lsh-service) %base-services)\n"
+msgid ""
+"(append (list (service avahi-service-type)\n"
+"              (service openssh-service-type))\n"
+"        %base-services)\n"
+msgstr ""
+"(append (list (service avahi-service-type)\n"
+"              (service openssh-service-type))\n"
+"        %base-services)\n"
 
 #. type: defvr
-#: doc/guix.texi:10732
+#: doc/guix.texi:11467
 #, no-wrap
 msgid "{Scheme Variable} special-files-service-type"
 msgstr "{Scheme-Variable} special-files-service-type"
 
 #. type: defvr
-#: doc/guix.texi:10735
+#: doc/guix.texi:11470
 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:10739
+#: doc/guix.texi:11474
 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:10740
+#: doc/guix.texi:11475
 #, no-wrap
 msgid "/bin/sh"
 msgstr "/bin/sh"
 
 #. type: cindex
-#: doc/guix.texi:10741
+#: doc/guix.texi:11476
 #, no-wrap
 msgid "@file{sh}, in @file{/bin}"
 msgstr "@file{sh}, in @file{/bin}"
 
 #. type: example
-#: doc/guix.texi:10744
+#: doc/guix.texi:11479
 #, no-wrap
 msgid "`((\"/bin/sh\" ,(file-append @var{bash} \"/bin/sh\")))\n"
 msgstr "`((\"/bin/sh\" ,(file-append @var{bash} \"/bin/sh\")))\n"
 
 #. type: file{#1}
-#: doc/guix.texi:10746
+#: doc/guix.texi:11481
 #, no-wrap
 msgid "/usr/bin/env"
 msgstr "/usr/bin/env"
 
 #. type: cindex
-#: doc/guix.texi:10747
+#: doc/guix.texi:11482
 #, no-wrap
 msgid "@file{env}, in @file{/usr/bin}"
 msgstr "@file{env}, in @file{/usr/bin}"
 
 #. type: defvr
-#: doc/guix.texi:10750
+#: doc/guix.texi:11485
 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: example
-#: doc/guix.texi:10754
+#: doc/guix.texi:11489
 #, no-wrap
 msgid ""
 "`((\"/bin/sh\" ,(file-append @var{bash} \"/bin/sh\"))\n"
@@ -18605,28 +20500,28 @@ msgstr ""
 "  (\"/usr/bin/env\" ,(file-append @var{coreutils} \"/bin/env\")))\n"
 
 #. type: defvr
-#: doc/guix.texi:10761
+#: doc/guix.texi:11496
 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 (@pxref{Service Reference, @code{modify-services}}). Die leichte Alternative, um eine besondere Datei hinzuzufügen, ist über die Prozedur @code{extra-special-file} (siehe unten)."
+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:10763
+#: doc/guix.texi:11498
 #, 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:10765
+#: doc/guix.texi:11500
 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:10769
+#: doc/guix.texi:11504
 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: example
-#: doc/guix.texi:10773
+#: doc/guix.texi:11508
 #, no-wrap
 msgid ""
 "(extra-special-file \"/usr/bin/env\"\n"
@@ -18636,1150 +20531,1150 @@ msgstr ""
 "                    (file-append coreutils \"/bin/env\"))\n"
 
 #. type: deffn
-#: doc/guix.texi:10776
+#: doc/guix.texi:11511
 #, no-wrap
 msgid "{Scheme Procedure} host-name-service @var{name}"
 msgstr "{Scheme-Prozedur} host-name-service @var{Name}"
 
 #. type: deffn
-#: doc/guix.texi:10778
+#: doc/guix.texi:11513
 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: deffn
-#: doc/guix.texi:10780
+#: doc/guix.texi:11515
 #, no-wrap
 msgid "{Scheme Procedure} login-service @var{config}"
 msgstr "{Scheme-Prozedur} login-service @var{Konfiguration}"
 
 #. type: deffn
-#: doc/guix.texi:10784
+#: doc/guix.texi:11519
 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 (englisch »Message of the Day«) festlegt."
+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 (englisch »Message of the Day«) festlegt."
 
 #. type: deftp
-#: doc/guix.texi:10786
+#: doc/guix.texi:11521
 #, no-wrap
 msgid "{Data Type} login-configuration"
 msgstr "{Datentyp} login-configuration"
 
 #. type: deftp
-#: doc/guix.texi:10788
+#: doc/guix.texi:11523
 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:10791
+#: doc/guix.texi:11526
 #, no-wrap
 msgid "motd"
 msgstr "motd"
 
 #. type: cindex
-#: doc/guix.texi:10792
+#: doc/guix.texi:11527
 #, no-wrap
 msgid "message of the day"
 msgstr "Message of the Day"
 
 #. type: table
-#: doc/guix.texi:10794
+#: doc/guix.texi:11529
 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:10795 doc/guix.texi:12683
+#: doc/guix.texi:11530 doc/guix.texi:13462
 #, no-wrap
 msgid "@code{allow-empty-passwords?} (default: @code{#t})"
 msgstr "@code{allow-empty-passwords?} (Vorgabe: @code{#t})"
 
 #. type: table
-#: doc/guix.texi:10798
+#: doc/guix.texi:11533
 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:10802
+#: doc/guix.texi:11537
 #, no-wrap
 msgid "{Scheme Procedure} mingetty-service @var{config}"
 msgstr "{Scheme-Prozedur} mingetty-service @var{Konfiguration}"
 
 #. type: deffn
-#: doc/guix.texi:10806
+#: doc/guix.texi:11541
 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."
+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:10808
+#: doc/guix.texi:11543
 #, no-wrap
 msgid "{Data Type} mingetty-configuration"
 msgstr "{Datentyp} mingetty-configuration"
 
 #. type: deftp
-#: doc/guix.texi:10811
+#: doc/guix.texi:11546
 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:10814 doc/guix.texi:10850
+#: doc/guix.texi:11549 doc/guix.texi:11585
 #, no-wrap
 msgid "tty"
 msgstr "tty"
 
 #. type: table
-#: doc/guix.texi:10816
+#: doc/guix.texi:11551
 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\"}."
+msgstr "Der Name der Konsole, auf der diese Mingetty-Instanz läuft — z.B.@: @code{\"tty1\"}."
 
 #. type: item
-#: doc/guix.texi:10817 doc/guix.texi:10879 doc/guix.texi:11038
+#: doc/guix.texi:11552 doc/guix.texi:11614 doc/guix.texi:11773
 #, no-wrap
 msgid "@code{auto-login} (default: @code{#f})"
 msgstr "@code{auto-login} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:10821
+#: doc/guix.texi:11556
 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:10822
+#: doc/guix.texi:11557
 #, no-wrap
 msgid "@code{login-program} (default: @code{#f})"
 msgstr "@code{login-program} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:10826
+#: doc/guix.texi:11561
 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:10827
+#: doc/guix.texi:11562
 #, no-wrap
 msgid "@code{login-pause?} (default: @code{#f})"
 msgstr "@code{login-pause?} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:10830
+#: doc/guix.texi:11565
 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:10831
+#: doc/guix.texi:11566
 #, no-wrap
 msgid "@code{mingetty} (default: @var{mingetty})"
 msgstr "@code{mingetty} (Vorgabe: @var{mingetty})"
 
 #. type: table
-#: doc/guix.texi:10833
+#: doc/guix.texi:11568
 msgid "The Mingetty package to use."
 msgstr "Welches Mingetty-Paket benutzt werden soll."
 
 #. type: deffn
-#: doc/guix.texi:10837
+#: doc/guix.texi:11572
 #, no-wrap
 msgid "{Scheme Procedure} agetty-service @var{config}"
 msgstr "{Scheme-Prozedur} agetty-service @var{Konfiguration}"
 
 #. type: deffn
-#: doc/guix.texi:10841
+#: doc/guix.texi:11576
 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."
+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:10843
+#: doc/guix.texi:11578
 #, no-wrap
 msgid "{Data Type} agetty-configuration"
 msgstr "{Datentyp} agetty-configuration"
 
 #. type: deftp
-#: doc/guix.texi:10847
+#: doc/guix.texi:11582
 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:10854
+#: doc/guix.texi:11589
 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."
+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:10858
+#: doc/guix.texi:11593
 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:10862
+#: doc/guix.texi:11597
 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:10866
-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."
+#: doc/guix.texi:11601
+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:10867
+#: doc/guix.texi:11602
 #, no-wrap
 msgid "@code{baud-rate} (default: @code{#f})"
 msgstr "@code{baud-rate} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:10870
+#: doc/guix.texi:11605
 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:10871
+#: doc/guix.texi:11606
 #, no-wrap
 msgid "@code{term} (default: @code{#f})"
 msgstr "@code{term} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:10874
+#: doc/guix.texi:11609
 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."
 
 #. type: item
-#: doc/guix.texi:10875
+#: doc/guix.texi:11610
 #, no-wrap
 msgid "@code{eight-bits?} (default: @code{#f})"
 msgstr "@code{eight-bits?} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:10878
+#: doc/guix.texi:11613
 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:10882 doc/guix.texi:11041
+#: doc/guix.texi:11617 doc/guix.texi:11776
 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:10883
+#: doc/guix.texi:11618
 #, no-wrap
 msgid "@code{no-reset?} (default: @code{#f})"
 msgstr "@code{no-reset?} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:10885
+#: doc/guix.texi:11620
 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."
+msgstr "Steht dies auf @code{#t}, werden die Cflags des Terminals (d.h.@: dessen Steuermodi) nicht zurückgesetzt."
 
 #. type: item
-#: doc/guix.texi:10886
+#: doc/guix.texi:11621
 #, no-wrap
 msgid "@code{host} (default: @code{#f})"
 msgstr "@code{host} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:10889
+#: doc/guix.texi:11624
 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:10890
+#: doc/guix.texi:11625
 #, no-wrap
 msgid "@code{remote?} (default: @code{#f})"
 msgstr "@code{remote?} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:10894
+#: doc/guix.texi:11629
 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:10895
+#: doc/guix.texi:11630
 #, no-wrap
 msgid "@code{flow-control?} (default: @code{#f})"
 msgstr "@code{flow-control?} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:10897
+#: doc/guix.texi:11632
 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:10898
+#: doc/guix.texi:11633
 #, no-wrap
 msgid "@code{no-issue?} (default: @code{#f})"
 msgstr "@code{no-issue?} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:10901
+#: doc/guix.texi:11636
 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:10902
+#: doc/guix.texi:11637
 #, no-wrap
 msgid "@code{init-string} (default: @code{#f})"
 msgstr "@code{init-string} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:10905
+#: doc/guix.texi:11640
 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."
+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:10906
+#: doc/guix.texi:11641
 #, no-wrap
 msgid "@code{no-clear?} (default: @code{#f})"
 msgstr "@code{no-clear?} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:10909
+#: doc/guix.texi:11644
 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:10910
+#: doc/guix.texi:11645
 #, 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:10914
+#: doc/guix.texi:11649
 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:10915
+#: doc/guix.texi:11650
 #, no-wrap
 msgid "@code{local-line} (default: @code{#f})"
 msgstr "@code{local-line} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:10919
+#: doc/guix.texi:11654
 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:10920
+#: doc/guix.texi:11655
 #, no-wrap
 msgid "@code{extract-baud?} (default: @code{#f})"
 msgstr "@code{extract-baud?} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:10923
+#: doc/guix.texi:11658
 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:10924
+#: doc/guix.texi:11659
 #, no-wrap
 msgid "@code{skip-login?} (default: @code{#f})"
 msgstr "@code{skip-login?} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:10928
+#: doc/guix.texi:11663
 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:10929
+#: doc/guix.texi:11664
 #, no-wrap
 msgid "@code{no-newline?} (default: @code{#f})"
 msgstr "@code{no-newline?} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:10932
+#: doc/guix.texi:11667
 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:10934
+#: doc/guix.texi:11669
 #, no-wrap
 msgid "@code{login-options} (default: @code{#f})"
 msgstr "@code{login-options} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:10939
+#: doc/guix.texi:11674
 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:10940
+#: doc/guix.texi:11675
 #, no-wrap
 msgid "@code{login-pause} (default: @code{#f})"
 msgstr "@code{login-pause} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:10944
+#: doc/guix.texi:11679
 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:10945
+#: doc/guix.texi:11680
 #, no-wrap
 msgid "@code{chroot} (default: @code{#f})"
 msgstr "@code{chroot} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:10948
+#: doc/guix.texi:11683
 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:10949
+#: doc/guix.texi:11684
 #, no-wrap
 msgid "@code{hangup?} (default: @code{#f})"
 msgstr "@code{hangup?} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:10952
+#: doc/guix.texi:11687
 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:10953
+#: doc/guix.texi:11688
 #, no-wrap
 msgid "@code{keep-baud?} (default: @code{#f})"
 msgstr "@code{keep-baud?} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:10957
+#: doc/guix.texi:11692
 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:10958
+#: doc/guix.texi:11693
 #, no-wrap
 msgid "@code{timeout} (default: @code{#f})"
 msgstr "@code{timeout} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:10961
+#: doc/guix.texi:11696
 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:10962
+#: doc/guix.texi:11697
 #, no-wrap
 msgid "@code{detect-case?} (default: @code{#f})"
 msgstr "@code{detect-case?} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:10968
+#: doc/guix.texi:11703
 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:10969
+#: doc/guix.texi:11704
 #, no-wrap
 msgid "@code{wait-cr?} (default: @code{#f})"
 msgstr "@code{wait-cr?} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:10974
+#: doc/guix.texi:11709
 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:10975
+#: doc/guix.texi:11710
 #, no-wrap
 msgid "@code{no-hints?} (default: @code{#f})"
 msgstr "@code{no-hints?} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:10978
+#: doc/guix.texi:11713
 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:10979
+#: doc/guix.texi:11714
 #, no-wrap
 msgid "@code{no-hostname?} (default: @code{#f})"
 msgstr "@code{no-hostname?} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:10982
+#: doc/guix.texi:11717
 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:10983
+#: doc/guix.texi:11718
 #, no-wrap
 msgid "@code{long-hostname?} (default: @code{#f})"
 msgstr "@code{long-hostname?} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:10987
+#: doc/guix.texi:11722
 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:10988
+#: doc/guix.texi:11723
 #, no-wrap
 msgid "@code{erase-characters} (default: @code{#f})"
 msgstr "@code{erase-characters} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:10991
+#: doc/guix.texi:11726
 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:10992
+#: doc/guix.texi:11727
 #, no-wrap
 msgid "@code{kill-characters} (default: @code{#f})"
 msgstr "@code{kill-characters} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:10996
+#: doc/guix.texi:11731
 msgid "This option accepts a string that should be interpreted to mean \"ignore all previous characters\" (also called a \"kill\" character) when the 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:10997
+#: doc/guix.texi:11732
 #, no-wrap
 msgid "@code{chdir} (default: @code{#f})"
 msgstr "@code{chdir} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:11000
+#: doc/guix.texi:11735
 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:11001
+#: doc/guix.texi:11736
 #, no-wrap
 msgid "@code{delay} (default: @code{#f})"
 msgstr "@code{delay} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:11004
+#: doc/guix.texi:11739
 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:11005
+#: doc/guix.texi:11740
 #, no-wrap
 msgid "@code{nice} (default: @code{#f})"
 msgstr "@code{nice} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:11008
+#: doc/guix.texi:11743
 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:11009 doc/guix.texi:11240 doc/guix.texi:11955
-#: doc/guix.texi:17244
+#: doc/guix.texi:11744 doc/guix.texi:11975 doc/guix.texi:12662
+#: doc/guix.texi:18998
 #, no-wrap
 msgid "@code{extra-options} (default: @code{'()})"
 msgstr "@code{extra-options} (Vorgabe: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:11012
+#: doc/guix.texi:11747
 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:11016
+#: doc/guix.texi:11751
 #, no-wrap
 msgid "{Scheme Procedure} kmscon-service-type @var{config}"
 msgstr "{Scheme-Prozedur} kmscon-service-type @var{Konfiguration}"
 
 #. type: deffn
-#: doc/guix.texi:11020
+#: doc/guix.texi:11755
 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."
+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:11022
+#: doc/guix.texi:11757
 #, no-wrap
 msgid "{Data Type} kmscon-configuration"
 msgstr "{Datentyp} kmscon-configuration"
 
 #. type: deftp
-#: doc/guix.texi:11025
+#: doc/guix.texi:11760
 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:11028
+#: doc/guix.texi:11763
 #, no-wrap
 msgid "virtual-terminal"
 msgstr "virtual-terminal"
 
 #. type: table
-#: doc/guix.texi:11030
+#: doc/guix.texi:11765
 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\"}."
+msgstr "Der Name der Konsole, auf der diese Kmscon läuft — z.B.@: @code{\"tty1\"}."
 
 #. type: item
-#: doc/guix.texi:11031
+#: doc/guix.texi:11766
 #, 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:11034
+#: doc/guix.texi:11769
 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:11035
+#: doc/guix.texi:11770
 #, no-wrap
 msgid "@code{login-arguments} (default: @code{'(\"-p\")})"
 msgstr "@code{login-arguments} (Vorgabe: @code{'(\"-p\")})"
 
 #. type: table
-#: doc/guix.texi:11037
+#: doc/guix.texi:11772
 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:11042
+#: doc/guix.texi:11777
 #, no-wrap
 msgid "@code{hardware-acceleration?} (default: #f)"
 msgstr "@code{hardware-acceleration?} (Vorgabe: #f)"
 
 #. type: table
-#: doc/guix.texi:11044
+#: doc/guix.texi:11779
 msgid "Whether to use hardware acceleration."
 msgstr "Ob Hardware-Beschleunigung verwendet werden soll."
 
 #. type: item
-#: doc/guix.texi:11045
+#: doc/guix.texi:11780
 #, no-wrap
 msgid "@code{kmscon} (default: @var{kmscon})"
 msgstr "@code{kmscon} (Vorgabe: @var{kmscon})"
 
 #. type: table
-#: doc/guix.texi:11047
+#: doc/guix.texi:11782
 msgid "The Kmscon package to use."
 msgstr "Das Kmscon-Paket, das benutzt werden soll."
 
 #. type: cindex
-#: doc/guix.texi:11051
+#: doc/guix.texi:11786
 #, no-wrap
 msgid "name service cache daemon"
 msgstr "Name Service Cache Daemon"
 
 #. type: cindex
-#: doc/guix.texi:11052
+#: doc/guix.texi:11787
 #, no-wrap
 msgid "nscd"
 msgstr "nscd"
 
 #. type: deffn
-#: doc/guix.texi:11053
+#: doc/guix.texi:11788
 #, 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:11058
+#: doc/guix.texi:11793
 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 @xref{Name Service Switch} für ein Beispiel."
+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:11060
+#: doc/guix.texi:11795
 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:11062
+#: doc/guix.texi:11797
 #, no-wrap
 msgid "invalidate"
 msgstr "invalidate"
 
 #. type: cindex
-#: doc/guix.texi:11063
+#: doc/guix.texi:11798
 #, no-wrap
 msgid "cache invalidation, nscd"
 msgstr "Zwischenspeicher ungültig machen, nscd"
 
 #. type: cindex
-#: doc/guix.texi:11064
+#: doc/guix.texi:11799
 #, no-wrap
 msgid "nscd, cache invalidation"
 msgstr "nscd, Ungültigmachen des Zwischenspeichers"
 
 #. type: table
-#: doc/guix.texi:11066
+#: doc/guix.texi:11801
 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:11069
+#: doc/guix.texi:11804
 #, no-wrap
 msgid "herd invalidate nscd hosts\n"
 msgstr "herd invalidate nscd hosts\n"
 
 #. type: table
-#: doc/guix.texi:11073
+#: doc/guix.texi:11808
 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:11074
+#: doc/guix.texi:11809
 #, no-wrap
 msgid "statistics"
 msgstr "statistics"
 
 #. type: table
-#: doc/guix.texi:11077
+#: doc/guix.texi:11812
 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:11081
+#: doc/guix.texi:11816
 #, no-wrap
 msgid "{Scheme Variable} %nscd-default-configuration"
 msgstr "{Scheme-Variable} %nscd-default-configuration"
 
 #. type: defvr
-#: doc/guix.texi:11085
+#: doc/guix.texi:11820
 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."
 
 #. type: deftp
-#: doc/guix.texi:11087
+#: doc/guix.texi:11822
 #, no-wrap
 msgid "{Data Type} nscd-configuration"
 msgstr "{Datentyp} nscd-configuration"
 
 #. type: deftp
-#: doc/guix.texi:11090
+#: doc/guix.texi:11825
 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:11093
+#: doc/guix.texi:11828
 #, no-wrap
 msgid "@code{name-services} (default: @code{'()})"
 msgstr "@code{name-services} (Vorgabe: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:11096
+#: doc/guix.texi:11831
 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})}."
+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:11097
+#: doc/guix.texi:11832
 #, no-wrap
 msgid "@code{glibc} (default: @var{glibc})"
 msgstr "@code{glibc} (Vorgabe: @var{glibc})"
 
 #. type: table
-#: doc/guix.texi:11100
+#: doc/guix.texi:11835
 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:11101
+#: doc/guix.texi:11836
 #, 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:11104
+#: doc/guix.texi:11839
 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:11105
+#: doc/guix.texi:11840
 #, no-wrap
 msgid "@code{debug-level} (default: @code{0})"
 msgstr "@code{debug-level} (Vorgabe: @code{0})"
 
 #. type: table
-#: doc/guix.texi:11108
+#: doc/guix.texi:11843
 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:11109
+#: doc/guix.texi:11844
 #, no-wrap
 msgid "@code{caches} (default: @var{%nscd-default-caches})"
 msgstr "@code{caches} (Vorgabe: @var{%nscd-default-caches})"
 
 #. type: table
-#: doc/guix.texi:11112
+#: doc/guix.texi:11847
 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:11116
+#: doc/guix.texi:11851
 #, no-wrap
 msgid "{Data Type} nscd-cache"
 msgstr "{Datentyp} nscd-cache"
 
 #. type: deftp
-#: doc/guix.texi:11118
+#: doc/guix.texi:11853
 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:11121 doc/guix.texi:14162
+#: doc/guix.texi:11856 doc/guix.texi:15022
 #, no-wrap
 msgid "database"
 msgstr "Datenbank"
 
 #. type: table
-#: doc/guix.texi:11126
+#: doc/guix.texi:11861
 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 (@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})."
 
 #. type: code{#1}
-#: doc/guix.texi:11127
+#: doc/guix.texi:11862
 #, no-wrap
 msgid "positive-time-to-live"
 msgstr "positive-time-to-live"
 
 #. type: itemx
-#: doc/guix.texi:11128
+#: doc/guix.texi:11863
 #, 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:11131
+#: doc/guix.texi:11866
 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:11132
+#: doc/guix.texi:11867
 #, no-wrap
 msgid "@code{check-files?} (default: @code{#t})"
 msgstr "@code{check-files?} (Vorgabe: @code{#t})"
 
 #. type: table
-#: doc/guix.texi:11135
+#: doc/guix.texi:11870
 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:11139
+#: doc/guix.texi:11874
 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:11140
+#: doc/guix.texi:11875
 #, no-wrap
 msgid "@code{persistent?} (default: @code{#t})"
 msgstr "@code{persistent?} (Vorgabe: @code{#t})"
 
 #. type: table
-#: doc/guix.texi:11142
+#: doc/guix.texi:11877
 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:11143
+#: doc/guix.texi:11878
 #, no-wrap
 msgid "@code{shared?} (default: @code{#t})"
 msgstr "@code{shared?} (Vorgabe: @code{#t})"
 
 #. type: table
-#: doc/guix.texi:11145
+#: doc/guix.texi:11880
 msgid "Whether the cache should be shared among users."
 msgstr "Ob der Zwischenspeicher zwischen den Nutzern geteilt werden soll."
 
 #. type: item
-#: doc/guix.texi:11146
+#: doc/guix.texi:11881
 #, 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:11148
+#: doc/guix.texi:11883
 msgid "Maximum size in bytes of the database cache."
 msgstr "Die Maximalgröße des Datenbank-Zwischenspeichers in Bytes."
 
 #. type: defvr
-#: doc/guix.texi:11155
+#: doc/guix.texi:11890
 #, no-wrap
 msgid "{Scheme Variable} %nscd-default-caches"
 msgstr "{Scheme-Variable} %nscd-default-caches"
 
 #. type: defvr
-#: doc/guix.texi:11158
+#: doc/guix.texi:11893
 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:11164
+#: doc/guix.texi:11899
 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 Schutz der Privatsphäre — 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:11167
+#: doc/guix.texi:11902
 msgid "syslog-configuration-type"
 msgstr "syslog-configuration-type"
 
 #. type: cindex
-#: doc/guix.texi:11167 doc/guix.texi:11183
+#: doc/guix.texi:11902 doc/guix.texi:11918
 #, no-wrap
 msgid "syslog"
 msgstr "syslog"
 
 #. type: cindex
-#: doc/guix.texi:11168 doc/guix.texi:11633
+#: doc/guix.texi:11903 doc/guix.texi:12340
 #, no-wrap
 msgid "logging"
 msgstr "Protokollierung"
 
 #. type: deftp
-#: doc/guix.texi:11169
+#: doc/guix.texi:11904
 #, no-wrap
 msgid "{Data Type} syslog-configuration"
 msgstr "{Datentyp} syslog-configuration"
 
 #. type: deftp
-#: doc/guix.texi:11171
+#: doc/guix.texi:11906
 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:11173
+#: doc/guix.texi:11908
 #, 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:11175
+#: doc/guix.texi:11910
 msgid "The syslog daemon to use."
 msgstr "Welcher Syslog-Daemon benutzt werden soll."
 
 #. type: item
-#: doc/guix.texi:11176
+#: doc/guix.texi:11911
 #, 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:11178
+#: doc/guix.texi:11913
 msgid "The syslog configuration file to use."
 msgstr "Die zu benutzende syslog-Konfigurationsdatei."
 
 #. type: anchor{#1}
-#: doc/guix.texi:11183
+#: doc/guix.texi:11918
 msgid "syslog-service"
 msgstr "syslog-service"
 
 #. type: deffn
-#: doc/guix.texi:11184
+#: doc/guix.texi:11919
 #, no-wrap
 msgid "{Scheme Procedure} syslog-service @var{config}"
 msgstr "{Scheme-Prozedur} syslog-service @var{Konfiguration}"
 
 #. type: deffn
-#: doc/guix.texi:11186
+#: doc/guix.texi:11921
 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:11189
+#: doc/guix.texi:11924
 msgid "@xref{syslogd invocation,,, inetutils, GNU Inetutils}, for more information on the configuration file syntax."
-msgstr "@xref{syslogd invocation,,, inetutils, GNU Inetutils}, für weitere Informationen über die Syntax der Konfiguration."
+msgstr "Siehe @ref{syslogd invocation,,, inetutils, GNU Inetutils} für weitere Informationen über die Syntax der Konfiguration."
 
 #. type: defvr
-#: doc/guix.texi:11191
+#: doc/guix.texi:11926
 #, no-wrap
 msgid "{Scheme Variable} guix-service-type"
 msgstr "{Scheme-Variable} guix-service-type"
 
 #. type: defvr
-#: doc/guix.texi:11195
+#: doc/guix.texi:11930
 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 (@pxref{Invoking guix-daemon}). Als Wert muss ein @code{guix-configuration}-Verbundsobjekt verwendet werden, wie unten beschrieben."
+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:11198
+#: doc/guix.texi:11933
 msgid "guix-configuration-type"
 msgstr "guix-configuration-type"
 
 #. type: deftp
-#: doc/guix.texi:11198
+#: doc/guix.texi:11933
 #, no-wrap
 msgid "{Data Type} guix-configuration"
 msgstr "{Datentyp} guix-configuration"
 
 #. type: deftp
-#: doc/guix.texi:11201
+#: doc/guix.texi:11936
 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 @xref{Invoking guix-daemon} für weitere Informationen."
+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:11203
+#: doc/guix.texi:11938
 #, no-wrap
 msgid "@code{guix} (default: @var{guix})"
 msgstr "@code{guix} (Vorgabe: @var{guix})"
 
 #. type: table
-#: doc/guix.texi:11205 doc/guix.texi:11444
+#: doc/guix.texi:11940 doc/guix.texi:12160
 msgid "The Guix package to use."
 msgstr "Das zu verwendende Guix-Paket."
 
 #. type: item
-#: doc/guix.texi:11206
+#: doc/guix.texi:11941
 #, no-wrap
 msgid "@code{build-group} (default: @code{\"guixbuild\"})"
 msgstr "@code{build-group} (Vorgabe: @code{\"guixbuild\"})"
 
 #. type: table
-#: doc/guix.texi:11208
+#: doc/guix.texi:11943
 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:11209
+#: doc/guix.texi:11944
 #, no-wrap
 msgid "@code{build-accounts} (default: @code{10})"
 msgstr "@code{build-accounts} (Vorgabe: @code{10})"
 
 #. type: table
-#: doc/guix.texi:11211
+#: doc/guix.texi:11946
 msgid "Number of build user accounts to create."
 msgstr "Die Anzahl zu erzeugender Erstellungs-Benutzerkonten."
 
 #. type: item
-#: doc/guix.texi:11212
+#: doc/guix.texi:11947
 #, no-wrap
 msgid "@code{authorize-key?} (default: @code{#t})"
 msgstr "@code{authorize-key?} (Vorgabe: @code{#t})"
 
 #. type: table
-#: doc/guix.texi:11217
-msgid "Whether to authorize the substitute keys listed in @code{authorized-keys}---by default that of @code{hydra.gnu.org} (@pxref{Substitutes})."
-msgstr "Ob die unter @code{authorized-keys} aufgelisteten Substitutschlüssel autorisiert werden sollen — vorgegeben ist, den von @code{hydra.gnu.org} zu autorisieren (@pxref{Substitutes})."
+#: doc/guix.texi:11952
+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: vindex
-#: doc/guix.texi:11218
+#: doc/guix.texi:11953
 #, no-wrap
 msgid "%default-authorized-guix-keys"
 msgstr "%default-authorized-guix-keys"
 
 #. type: item
-#: doc/guix.texi:11219
+#: doc/guix.texi:11954
 #, no-wrap
 msgid "@code{authorized-keys} (default: @var{%default-authorized-guix-keys})"
 msgstr "@code{authorized-keys} (Vorgabe: @var{%default-authorized-guix-keys})"
 
 #. type: table
-#: doc/guix.texi:11223
-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{hydra.gnu.org} (@pxref{Substitutes})."
-msgstr "Die Liste der Dateien mit autorisierten Schlüsseln, d.h. eine Liste von Zeichenketten als G-Ausdrücke (@pxref{Invoking guix archive}). Der vorgegebene Inhalt ist der Schlüssel von @code{hydra.gnu.org} (@pxref{Substitutes})."
+#: doc/guix.texi:11958
+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})."
 
 #. type: item
-#: doc/guix.texi:11224
+#: doc/guix.texi:11959
 #, no-wrap
 msgid "@code{use-substitutes?} (default: @code{#t})"
 msgstr "@code{use-substitutes?} (Vorgabe: @code{#t})"
 
 #. type: table
-#: doc/guix.texi:11226
+#: doc/guix.texi:11961
 msgid "Whether to use substitutes."
 msgstr "Ob Substitute benutzt werden sollen."
 
 #. type: item
-#: doc/guix.texi:11227
+#: doc/guix.texi:11962
 #, no-wrap
 msgid "@code{substitute-urls} (default: @var{%default-substitute-urls})"
 msgstr "@code{substitute-urls} (Vorgabe: @var{%default-substitute-urls})"
 
 #. type: table
-#: doc/guix.texi:11229
+#: doc/guix.texi:11964
 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: item
-#: doc/guix.texi:11230
+#: doc/guix.texi:11965
 #, no-wrap
 msgid "@code{max-silent-time} (default: @code{0})"
 msgstr "@code{max-silent-time} (Vorgabe: @code{0})"
 
 #. type: itemx
-#: doc/guix.texi:11231
+#: doc/guix.texi:11966
 #, no-wrap
 msgid "@code{timeout} (default: @code{0})"
 msgstr "@code{timeout} (Vorgabe: @code{0})"
 
 #. type: table
-#: doc/guix.texi:11235
+#: doc/guix.texi:11970
 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:11236
+#: doc/guix.texi:11971
 #, no-wrap
 msgid "@code{log-compression} (default: @code{'bzip2})"
 msgstr "@code{log-compression} (Vorgabe: @code{'bzip2})"
 
 #. type: table
-#: doc/guix.texi:11239
+#: doc/guix.texi:11974
 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:11242
+#: doc/guix.texi:11977
 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:11243
+#: doc/guix.texi:11978
 #, 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:11246
+#: doc/guix.texi:11981
 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: item
-#: doc/guix.texi:11247
+#: doc/guix.texi:11982
 #, no-wrap
 msgid "@code{http-proxy} (default: @code{#f})"
 msgstr "@code{http-proxy} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:11250
+#: doc/guix.texi:11985
 msgid "The HTTP proxy used for downloading fixed-output derivations and substitutes."
 msgstr "Der für das Herunterladen von Ableitungen mit fester Ausgabe und von Substituten zu verwendende HTTP-Proxy."
 
 #. type: item
-#: doc/guix.texi:11251
+#: doc/guix.texi:11986
 #, no-wrap
 msgid "@code{tmpdir} (default: @code{#f})"
 msgstr "@code{tmpdir} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:11253
+#: doc/guix.texi:11988
 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:11257
+#: doc/guix.texi:11992
 #, 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:11262
+#: doc/guix.texi:11997
 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 @var{udev-rule} and @var{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 @var{udev-rule} und @var{file->udev-rule} aus @code{(gnu services base)} vereinfachen die Erstellung einer solchen Regeldatei."
 
 #. type: deffn
-#: doc/guix.texi:11263
+#: doc/guix.texi:11999
 #, 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:11266
+#: doc/guix.texi:12002
 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:11270
+#: doc/guix.texi:12006
 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: example
-#: doc/guix.texi:11278
+#: doc/guix.texi:12014
 #, no-wrap
 msgid ""
 "(define %example-udev-rule\n"
@@ -19797,12 +21692,17 @@ msgstr ""
 "                   \"RUN+=\\\"/pfad/zum/skript\\\"\")))\n"
 
 #. type: deffn
-#: doc/guix.texi:11282
+#: doc/guix.texi:12018
+msgid "The @command{herd rules udev} command, as root, returns the name of the directory containing all the active udev rules."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:12021
 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: example
-#: doc/guix.texi:11292
+#: doc/guix.texi:12031
 #, no-wrap
 msgid ""
 "(operating-system\n"
@@ -19824,23 +21724,23 @@ msgstr ""
 "                     (list %beispiel-udev-rule))))))))\n"
 
 #. type: deffn
-#: doc/guix.texi:11294
+#: doc/guix.texi:12033
 #, 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:11297
+#: doc/guix.texi:12036
 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:11299
+#: doc/guix.texi:12038
 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: example
-#: doc/guix.texi:11304
+#: doc/guix.texi:12043
 #, no-wrap
 msgid ""
 "(use-modules (guix download)     ;for url-fetch\n"
@@ -19854,7 +21754,7 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix.texi:11315
+#: doc/guix.texi:12054
 #, no-wrap
 msgid ""
 "(define %android-udev-rules\n"
@@ -19879,18 +21779,18 @@ msgstr ""
 "       (sha256\n"
 "        (base32 \"0lmmagpyb6xsq6zcr2w1cyx9qmjqmajkvrdbhjx32gqf1d9is003\"))))))\n"
 
-#. type: deffn
-#: doc/guix.texi:11324
+#. type: Plain text
+#: doc/guix.texi:12063
 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: deffn
-#: doc/guix.texi:11333
+#. type: Plain text
+#: doc/guix.texi:12072
 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."
 
 #. type: example
-#: doc/guix.texi:11338
+#: doc/guix.texi:12077
 #, no-wrap
 msgid ""
 "(use-modules (gnu packages android)  ;for android-udev-rules\n"
@@ -19904,7 +21804,7 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix.texi:11347
+#: doc/guix.texi:12086
 #, no-wrap
 msgid ""
 "(operating-system\n"
@@ -19928,7 +21828,7 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix.texi:11350
+#: doc/guix.texi:12089
 #, no-wrap
 msgid ""
 "  (groups (cons (user-group (system? #t) (name \"adbusers\"))\n"
@@ -19940,7 +21840,7 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix.texi:11352
+#: doc/guix.texi:12091
 #, no-wrap
 msgid ""
 "  ;; @dots{}\n"
@@ -19950,329 +21850,286 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix.texi:11359
+#: doc/guix.texi:12099
 #, no-wrap
 msgid ""
 "  (services\n"
-"    (modify-services %desktop-services\n"
-"      (udev-service-type config =>\n"
-"       (udev-configuration (inherit config)\n"
-"       (rules (cons* android-udev-rules\n"
-"              (udev-configuration-rules config))))))))\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 config =>\n"
-"       (udev-configuration (inherit config)\n"
-"       (rules (cons* android-udev-rules\n"
-"              (udev-configuration-rules config))))))))\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"
 
 #. type: defvr
-#: doc/guix.texi:11362
+#: doc/guix.texi:12101
 #, no-wrap
 msgid "{Scheme Variable} urandom-seed-service-type"
 msgstr "{Scheme-Variable} urandom-seed-service-type"
 
 #. type: defvr
-#: doc/guix.texi:11367
+#: doc/guix.texi:12106
 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."
 
 #. type: defvr
-#: doc/guix.texi:11369
+#: doc/guix.texi:12108
 #, no-wrap
 msgid "{Scheme Variable} %random-seed-file"
 msgstr "{Scheme-Variable} %random-seed-file"
 
 #. type: defvr
-#: doc/guix.texi:11373
+#: doc/guix.texi:12112
 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:11375 doc/guix.texi:12877
-#, no-wrap
-msgid "keymap"
-msgstr "Keymap"
-
-#. type: cindex
-#: doc/guix.texi:11376
-#, no-wrap
-msgid "keyboard"
-msgstr "Tastatur"
-
-#. type: deffn
-#: doc/guix.texi:11377
-#, no-wrap
-msgid "{Scheme Procedure} console-keymap-service @var{files} ..."
-msgstr "{Scheme-Prozedur} console-keymap-service @var{Dateien} ..."
-
-#. type: deffn
-#: doc/guix.texi:11382
-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:"
-
-#. type: example
-#: doc/guix.texi:11385
-#, no-wrap
-msgid "(console-keymap-service \"dvorak\")\n"
-msgstr "(console-keymap-service \"dvorak\")\n"
-
-#. type: deffn
-#: doc/guix.texi:11389
-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:"
-
-#. type: example
-#: doc/guix.texi:11391
-#, no-wrap
-msgid "(console-keymap-service \"se-lat6\" \"se-fi-lat6\")\n"
-msgstr "(console-keymap-service \"se-lat6\" \"se-fi-lat6\")\n"
-
-#. type: deffn
-#: doc/guix.texi:11395
-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."
-
-#. type: cindex
-#: doc/guix.texi:11398
+#: doc/guix.texi:12114
 #, no-wrap
 msgid "mouse"
 msgstr "Maus"
 
 #. type: cindex
-#: doc/guix.texi:11399
+#: doc/guix.texi:12115
 #, no-wrap
 msgid "gpm"
 msgstr "gpm"
 
 #. type: defvr
-#: doc/guix.texi:11400
+#: doc/guix.texi:12116
 #, no-wrap
 msgid "{Scheme Variable} gpm-service-type"
 msgstr "{Scheme-Variable} gpm-service-type"
 
 #. type: defvr
-#: doc/guix.texi:11405
+#: doc/guix.texi:12121
 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."
+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:11408
+#: doc/guix.texi:12124
 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 "Der Wert für Dienste dieses Typs muss eine @code{gpm-configuration} sein (siehe unten). Dieser Dienst gehört @emph{nicht} zu den @var{%base-services}."
 
 #. type: deftp
-#: doc/guix.texi:11410
+#: doc/guix.texi:12126
 #, no-wrap
 msgid "{Data Type} gpm-configuration"
 msgstr "{Datentyp} gpm-configuration"
 
 #. type: deftp
-#: doc/guix.texi:11412
+#: doc/guix.texi:12128
 msgid "Data type representing the configuration of GPM."
 msgstr "Repräsentiert die Konfiguration von GPM."
 
 #. type: item
-#: doc/guix.texi:11414
+#: doc/guix.texi:12130
 #, no-wrap
 msgid "@code{options} (default: @code{%default-gpm-options})"
 msgstr "@code{options} (Vorgabe: @code{%default-gpm-options})"
 
 #. type: table
-#: doc/guix.texi:11419
+#: doc/guix.texi:12135
 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 @xref{Command Line,,, gpm, gpm manual} für weitere Informationen."
+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:11420
+#: doc/guix.texi:12136
 #, no-wrap
 msgid "@code{gpm} (default: @code{gpm})"
 msgstr "@code{gpm} (Vorgabe: @code{gpm})"
 
 #. type: table
-#: doc/guix.texi:11422
+#: doc/guix.texi:12138
 msgid "The GPM package to use."
 msgstr "Das GPM-Paket, was benutzt werden soll."
 
 #. type: anchor{#1}
-#: doc/guix.texi:11427
+#: doc/guix.texi:12143
 msgid "guix-publish-service-type"
 msgstr "guix-publish-service-type"
 
 #. type: deffn
-#: doc/guix.texi:11427
+#: doc/guix.texi:12143
 #, no-wrap
 msgid "{Scheme Variable} guix-publish-service-type"
 msgstr "{Scheme-Variable} guix-publish-service-type"
 
 #. type: deffn
-#: doc/guix.texi:11431
+#: doc/guix.texi:12147
 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 "Dies ist der Diensttyp für @command{guix publish} (@pxref{Invoking guix publish}). Sein Wert muss ein @code{guix-publish-configuration}-Objekt sein, wie im Folgenden beschrieben."
+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:11435
+#: doc/guix.texi:12151
 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 (@pxref{Invoking guix archive}). Falls nicht, wird der Dienst beim Starten fehlschlagen."
+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:11437
+#: doc/guix.texi:12153
 #, no-wrap
 msgid "{Data Type} guix-publish-configuration"
 msgstr "{Datentyp} guix-publish-configuration"
 
 #. type: deftp
-#: doc/guix.texi:11440
+#: doc/guix.texi:12156
 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:11442
+#: doc/guix.texi:12158
 #, no-wrap
 msgid "@code{guix} (default: @code{guix})"
 msgstr "@code{guix} (Vorgabe: @code{guix})"
 
 #. type: item
-#: doc/guix.texi:11445
+#: doc/guix.texi:12161
 #, no-wrap
 msgid "@code{port} (default: @code{80})"
 msgstr "@code{port} (Vorgabe: @code{80})"
 
 #. type: table
-#: doc/guix.texi:11447
+#: doc/guix.texi:12163
 msgid "The TCP port to listen for connections."
 msgstr "Der TCP-Port, auf dem auf Verbindungen gelauscht werden soll."
 
 #. type: item
-#: doc/guix.texi:11448
+#: doc/guix.texi:12164
 #, no-wrap
 msgid "@code{host} (default: @code{\"localhost\"})"
 msgstr "@code{host} (Vorgabe: @code{\"localhost\"})"
 
 #. type: table
-#: doc/guix.texi:11451
+#: doc/guix.texi:12167
 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: table
-#: doc/guix.texi:11456
+#: doc/guix.texi:12172
 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 "Die gzip-Kompressionsstufe, mit der Substitute komprimiert werden sollen. Benutzen Sie @code{0}, um Kompression völlig abzuschalten, und @code{9} für das höchste Kompressionsverhältnis, zu Lasten von zusätzlicher Prozessorauslastung."
 
 #. type: item
-#: doc/guix.texi:11457
+#: doc/guix.texi:12173
 #, no-wrap
 msgid "@code{nar-path} (default: @code{\"nar\"})"
 msgstr "@code{nar-path} (Vorgabe: @code{\"nar\"})"
 
 #. type: table
-#: doc/guix.texi:11460
+#: doc/guix.texi:12176
 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 @xref{Invoking guix publish, @code{--nar-path}}, für Details."
+msgstr "Der URL-Pfad, unter dem »Nars« zum Herunterladen angeboten werden. Siehe @ref{Invoking guix publish, @code{--nar-path}} für Details."
 
 #. type: item
-#: doc/guix.texi:11461
+#: doc/guix.texi:12177
 #, no-wrap
 msgid "@code{cache} (default: @code{#f})"
 msgstr "@code{cache} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:11467
+#: doc/guix.texi:12183
 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 @xref{Invoking guix publish, @option{--cache}}, für weitere Informationen über die jeweiligen Vor- und Nachteile."
+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:11468
+#: doc/guix.texi:12184
 #, no-wrap
 msgid "@code{workers} (default: @code{#f})"
 msgstr "@code{workers} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:11472
+#: doc/guix.texi:12188
 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 @xref{Invoking guix publish, @option{--workers}}, für mehr Informationen."
+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:11473
+#: doc/guix.texi:12189
 #, no-wrap
 msgid "@code{ttl} (default: @code{#f})"
 msgstr "@code{ttl} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:11477
+#: doc/guix.texi:12193
 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 @xref{Invoking guix publish, @option{--ttl}}, für mehr Informationen."
+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:11481
+#: doc/guix.texi:12197
 msgid "rngd-service"
 msgstr "rngd-service"
 
 #. type: deffn
-#: doc/guix.texi:11481
+#: doc/guix.texi:12197
 #, 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:11486
+#: doc/guix.texi:12202
 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:11489
+#: doc/guix.texi:12205
 msgid "pam-limits-service"
 msgstr "pam-limits-service"
 
 #. type: cindex
-#: doc/guix.texi:11489
+#: doc/guix.texi:12205
 #, no-wrap
 msgid "session limits"
 msgstr "Sitzungs-Limits"
 
 #. type: cindex
-#: doc/guix.texi:11490
+#: doc/guix.texi:12206
 #, no-wrap
 msgid "ulimit"
 msgstr "ulimit"
 
 #. type: cindex
-#: doc/guix.texi:11491
+#: doc/guix.texi:12207
 #, no-wrap
 msgid "priority"
 msgstr "Priorität"
 
 #. type: cindex
-#: doc/guix.texi:11492
+#: doc/guix.texi:12208
 #, no-wrap
 msgid "realtime"
 msgstr "Echtzeit"
 
 #. type: cindex
-#: doc/guix.texi:11493
+#: doc/guix.texi:12209
 #, no-wrap
 msgid "jackd"
 msgstr "jackd"
 
 #. type: deffn
-#: doc/guix.texi:11494
+#: doc/guix.texi:12210
 #, no-wrap
 msgid "{Scheme Procedure} pam-limits-service [#:limits @code{'()}]"
 msgstr "{Scheme-Prozedur} pam-limits-service [#:limits @code{'()}]"
 
 #. type: deffn
-#: doc/guix.texi:11501
+#: doc/guix.texi:12217
 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:11504
+#: doc/guix.texi:12220
 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: example
-#: doc/guix.texi:11510
+#: doc/guix.texi:12226
 #, no-wrap
 msgid ""
 "(pam-limits-service\n"
@@ -20286,49 +22143,52 @@ msgstr ""
 "  (pam-limits-entry \"@@realtime\" 'both 'memlock 'unlimited)))\n"
 
 #. type: deffn
-#: doc/guix.texi:11516
+#: doc/guix.texi:12232
 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:11521
+#: doc/guix.texi:12237
 #, no-wrap
 msgid "cron"
-msgstr ""
+msgstr "cron"
 
 #. type: cindex
-#: doc/guix.texi:11522
+#: doc/guix.texi:12238
 #, no-wrap
 msgid "mcron"
-msgstr ""
+msgstr "mcron"
 
 #. type: cindex
-#: doc/guix.texi:11523
+#: doc/guix.texi:12239
 #, no-wrap
 msgid "scheduling jobs"
-msgstr ""
+msgstr "Planen von Aufträgen"
 
 #. type: Plain text
-#: doc/guix.texi:11530
+#: doc/guix.texi:12246
 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 ""
+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:11538
+#: doc/guix.texi:12254
 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 ""
+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:11542
+#: doc/guix.texi:12258
 #, no-wrap
 msgid ""
 "(use-modules (guix) (gnu) (gnu services mcron))\n"
 "(use-package-modules base idutils)\n"
 "\n"
 msgstr ""
+"(use-modules (guix) (gnu) (gnu services mcron))\n"
+"(use-package-modules base idutils)\n"
+"\n"
 
 #. type: lisp
-#: doc/guix.texi:11551
+#: doc/guix.texi:12267
 #, no-wrap
 msgid ""
 "(define updatedb-job\n"
@@ -20341,9 +22201,18 @@ msgid ""
 "                  \"--prunepaths=/tmp /var/tmp /gnu/store\"))))\n"
 "\n"
 msgstr ""
+"(define updatedb-job\n"
+"  ;; 'updatedb' jeden Tag um 3 Uhr morgens ausführen. Hier schreiben wir\n"
+"  ;; die vom Auftrag durchzuführende Aktion als eine Scheme-Prozedur.\n"
+"  #~(job '(next-hour '(3))\n"
+"         (lambda ()\n"
+"           (execl (string-append #$findutils \"/bin/updatedb\")\n"
+"                  \"updatedb\"\n"
+"                  \"--prunepaths=/tmp /var/tmp /gnu/store\"))))\n"
+"\n"
 
 #. type: lisp
-#: doc/guix.texi:11557
+#: doc/guix.texi:12273
 #, no-wrap
 msgid ""
 "(define garbage-collector-job\n"
@@ -20353,9 +22222,15 @@ msgid ""
 "         \"guix gc -F 1G\"))\n"
 "\n"
 msgstr ""
+"(define garbage-collector-job\n"
+"  ;; Jeden Tag 5 Minuten nach Mitternacht Müll sammeln gehen.\n"
+"  ;; Die Aktions des Auftrags ist ein Shell-Befehl.\n"
+"  #~(job \"5 0 * * *\"            ;Vixie-cron-Syntax\n"
+"         \"guix gc -F 1G\"))\n"
+"\n"
 
 #. type: lisp
-#: doc/guix.texi:11564
+#: doc/guix.texi:12280
 #, no-wrap
 msgid ""
 "(define idutils-job\n"
@@ -20366,143 +22241,137 @@ msgid ""
 "         #:user \"charlie\"))\n"
 "\n"
 msgstr ""
+"(define idutils-job\n"
+"  ;; Die Index-Datenbank des Benutzers \"charlie\" um 12:15 Uhr und\n"
+"  ;; 19:15 Uhr aktualisieren. Dies wird aus seinem Persönlichen\n"
+"  ;; Ordner heraus ausgeführt.\n"
+"  #~(job '(next-minute-from (next-hour '(12 19)) '(15))\n"
+"         (string-append #$idutils \"/bin/mkid src\")\n"
+"         #:user \"charlie\"))\n"
+"\n"
 
 #. type: lisp
-#: doc/guix.texi:11571
+#: doc/guix.texi:12289
 #, no-wrap
 msgid ""
 "(operating-system\n"
 "  ;; @dots{}\n"
-"  (services (cons (mcron-service (list garbage-collector-job\n"
-"                                       updatedb-job\n"
-"                                       idutils-job))\n"
+"  (services (cons (service mcron-service-type\n"
+"                           (mcron-configuration\n"
+"                            (jobs (list garbage-collector-job\n"
+"                                        updatedb-job\n"
+"                                        idutils-job))))\n"
 "                  %base-services)))\n"
 msgstr ""
+"(operating-system\n"
+"  ;; @dots{}\n"
+"  (services (cons (service mcron-service-type\n"
+"                           (mcron-configuration\n"
+"                            (jobs (list garbage-collector-job\n"
+"                                        updatedb-job\n"
+"                                        idutils-job))))\n"
+"                  %base-services)))\n"
 
 #. type: Plain text
-#: doc/guix.texi:11576
+#: doc/guix.texi:12294
 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 ""
+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."
 
 #. type: Plain text
-#: doc/guix.texi:11579
+#: doc/guix.texi:12297
 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:11582
+#: doc/guix.texi:12300
 #, no-wrap
 msgid "# herd schedule mcron\n"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:11587
+#: doc/guix.texi:12305
 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:11590
+#: doc/guix.texi:12308
 #, no-wrap
 msgid "# herd schedule mcron 10\n"
 msgstr ""
 
-#. type: deffn
-#: doc/guix.texi:11592
-#, no-wrap
-msgid "{Scheme Procedure} mcron-service @var{jobs} [#:mcron @var{mcron}]"
-msgstr ""
-
-#. type: deffn
-#: doc/guix.texi:11595
-msgid "Return an mcron service running @var{mcron} that schedules @var{jobs}, a list of gexps denoting mcron job specifications."
-msgstr ""
-
-#. type: deffn
-#: doc/guix.texi:11597
-msgid "This is a shorthand for:"
-msgstr ""
-
-#. type: example
-#: doc/guix.texi:11600
-#, no-wrap
-msgid ""
-"(service mcron-service-type\n"
-"         (mcron-configuration (mcron mcron) (jobs jobs)))\n"
-msgstr ""
-
 #. type: defvr
-#: doc/guix.texi:11603
+#: doc/guix.texi:12310
 #, no-wrap
 msgid "{Scheme Variable} mcron-service-type"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:11606
+#: doc/guix.texi:12313
 msgid "This is the type of the @code{mcron} service, whose value is an @code{mcron-configuration} object."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:11611
+#: doc/guix.texi:12318
 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:11613
+#: doc/guix.texi:12320
 #, no-wrap
 msgid "{Data Type} mcron-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:11615
+#: doc/guix.texi:12322
 msgid "Data type representing the configuration of mcron."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:11617
+#: doc/guix.texi:12324
 #, no-wrap
 msgid "@code{mcron} (default: @var{mcron})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:11619
+#: doc/guix.texi:12326
 msgid "The mcron package to use."
 msgstr ""
 
 #. type: code{#1}
-#: doc/guix.texi:11620 doc/guix.texi:11679
+#: doc/guix.texi:12327 doc/guix.texi:12386
 #, no-wrap
 msgid "jobs"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:11624
+#: doc/guix.texi:12331
 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:11631
+#: doc/guix.texi:12338
 #, no-wrap
 msgid "rottlog"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:11632
+#: doc/guix.texi:12339
 #, no-wrap
 msgid "log rotation"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:11639
+#: doc/guix.texi:12346
 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:11642
+#: doc/guix.texi:12349
 msgid "The example below defines an operating system that provides log rotation with the default settings, for commonly encountered log files."
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:11647
+#: doc/guix.texi:12354
 #, no-wrap
 msgid ""
 "(use-modules (guix) (gnu))\n"
@@ -20512,7 +22381,7 @@ msgid ""
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:11652
+#: doc/guix.texi:12359
 #, no-wrap
 msgid ""
 "(operating-system\n"
@@ -20522,93 +22391,93 @@ msgid ""
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:11654
+#: doc/guix.texi:12361
 #, no-wrap
 msgid "{Scheme Variable} rottlog-service-type"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:11657
+#: doc/guix.texi:12364
 msgid "This is the type of the Rottlog service, whose value is a @code{rottlog-configuration} object."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:11660
+#: doc/guix.texi:12367
 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:11663
+#: doc/guix.texi:12370
 msgid "This service type can define mcron jobs (@pxref{Scheduled Job Execution}) to run the rottlog service."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:11665
+#: doc/guix.texi:12372
 #, no-wrap
 msgid "{Data Type} rottlog-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:11667
+#: doc/guix.texi:12374
 msgid "Data type representing the configuration of rottlog."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:11669
+#: doc/guix.texi:12376
 #, no-wrap
 msgid "@code{rottlog} (default: @code{rottlog})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:11671
+#: doc/guix.texi:12378
 msgid "The Rottlog package to use."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:11672
+#: doc/guix.texi:12379
 #, no-wrap
 msgid "@code{rc-file} (default: @code{(file-append rottlog \"/etc/rc\")})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:11675
+#: doc/guix.texi:12382
 msgid "The Rottlog configuration file to use (@pxref{Mandatory RC Variables,,, rottlog, GNU Rot[t]log Manual})."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:11676
+#: doc/guix.texi:12383
 #, no-wrap
 msgid "@code{rotations} (default: @code{%default-rotations})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:11678
+#: doc/guix.texi:12385
 msgid "A list of @code{log-rotation} objects as defined below."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:11682
+#: doc/guix.texi:12389
 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:11685
+#: doc/guix.texi:12392
 #, no-wrap
 msgid "{Data Type} log-rotation"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:11687
+#: doc/guix.texi:12394
 msgid "Data type representing the rotation of a group of log files."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:11691
+#: doc/guix.texi:12398
 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: example
-#: doc/guix.texi:11700
+#: doc/guix.texi:12407
 #, no-wrap
 msgid ""
 "(log-rotation\n"
@@ -20621,111 +22490,111 @@ msgid ""
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:11703
+#: doc/guix.texi:12410
 msgid "The list of fields is as follows:"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:11705
+#: doc/guix.texi:12412
 #, no-wrap
 msgid "@code{frequency} (default: @code{'weekly})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:11707
+#: doc/guix.texi:12414
 msgid "The log rotation frequency, a symbol."
 msgstr ""
 
 #. type: code{#1}
-#: doc/guix.texi:11708
+#: doc/guix.texi:12415
 #, no-wrap
 msgid "files"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:11710
+#: doc/guix.texi:12417
 msgid "The list of files or file glob patterns to rotate."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:11711
+#: doc/guix.texi:12418
 #, no-wrap
 msgid "@code{options} (default: @code{'()})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:11714
+#: doc/guix.texi:12421
 msgid "The list of rottlog options for this rotation (@pxref{Configuration parameters,,, rottlog, GNU Rot[t]lg Manual})."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:11715
+#: doc/guix.texi:12422
 #, no-wrap
 msgid "@code{post-rotate} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:11717
+#: doc/guix.texi:12424
 msgid "Either @code{#f} or a gexp to execute once the rotation has completed."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:11720
+#: doc/guix.texi:12427
 #, no-wrap
 msgid "{Scheme Variable} %default-rotations"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:11723
+#: doc/guix.texi:12430
 msgid "Specifies weekly rotation of @var{%rotated-files} and a couple of other files."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:11725
+#: doc/guix.texi:12432
 #, no-wrap
 msgid "{Scheme Variable} %rotated-files"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:11728
+#: doc/guix.texi:12435
 msgid "The list of syslog-controlled files to be rotated.  By default it is: @code{'(\"/var/log/messages\" \"/var/log/secure\")}."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:11735
+#: doc/guix.texi:12442
 msgid "The @code{(gnu services networking)} module provides services to configure the network interface."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:11736
+#: doc/guix.texi:12443
 #, no-wrap
 msgid "DHCP, networking service"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:11737
+#: doc/guix.texi:12444
 #, no-wrap
 msgid "{Scheme Variable} dhcp-client-service-type"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:11741
+#: doc/guix.texi:12448
 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:11743
+#: doc/guix.texi:12450
 #, no-wrap
 msgid "{Scheme Procedure} dhcpd-service-type"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:11747
+#: doc/guix.texi:12454
 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: example
-#: doc/guix.texi:11753
+#: doc/guix.texi:12460
 #, no-wrap
 msgid ""
 "(service dhcpd-service-type\n"
@@ -20735,111 +22604,111 @@ msgid ""
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:11756
+#: doc/guix.texi:12463
 #, no-wrap
 msgid "{Data Type} dhcpd-configuration"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:11758
+#: doc/guix.texi:12465
 #, no-wrap
 msgid "@code{package} (default: @code{isc-dhcp})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:11763
+#: doc/guix.texi:12470
 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{http://www.isc.org/products/DHCP, ISC's DHCP server}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:11763 doc/guix.texi:11952 doc/guix.texi:15716
+#: doc/guix.texi:12470 doc/guix.texi:12659 doc/guix.texi:16612
 #, no-wrap
 msgid "@code{config-file} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:11768
+#: doc/guix.texi:12475
 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:11768
+#: doc/guix.texi:12475
 #, no-wrap
 msgid "@code{version} (default: @code{\"4\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:11773
+#: doc/guix.texi:12480
 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:11773
+#: doc/guix.texi:12480
 #, no-wrap
 msgid "@code{run-directory} (default: @code{\"/run/dhcpd\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:11776
+#: doc/guix.texi:12483
 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:11776
+#: doc/guix.texi:12483
 #, no-wrap
 msgid "@code{pid-file} (default: @code{\"/run/dhcpd/dhcpd.pid\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:11779
+#: doc/guix.texi:12486
 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:11779
+#: doc/guix.texi:12486
 #, no-wrap
 msgid "@code{interfaces} (default: @code{'()})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:11785
+#: doc/guix.texi:12492
 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:11788
+#: doc/guix.texi:12495
 #, no-wrap
 msgid "{Scheme Variable} static-networking-service-type"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:11791
+#: doc/guix.texi:12498
 msgid "This is the type for statically-configured network interfaces."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:11793
+#: doc/guix.texi:12500
 #, no-wrap
 msgid "{Scheme Procedure} static-networking-service @var{interface} @var{ip} @"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:11801
+#: doc/guix.texi:12508
 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:11806
+#: doc/guix.texi:12513
 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:11808
+#: doc/guix.texi:12515
 msgid "For example:"
 msgstr "Zum Beispiel:"
 
 #. type: example
-#: doc/guix.texi:11813
+#: doc/guix.texi:12520
 #, no-wrap
 msgid ""
 "(static-networking-service \"eno1\" \"192.168.1.82\"\n"
@@ -20848,195 +22717,195 @@ msgid ""
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:11816
+#: doc/guix.texi:12523
 #, no-wrap
 msgid "wicd"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:11819
+#: doc/guix.texi:12526
 #, no-wrap
 msgid "network management"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:11820
+#: doc/guix.texi:12527
 #, no-wrap
 msgid "{Scheme Procedure} wicd-service [#:wicd @var{wicd}]"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:11823
+#: doc/guix.texi:12530
 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:11828
+#: doc/guix.texi:12535
 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:11830
+#: doc/guix.texi:12537
 #, no-wrap
 msgid "ModemManager"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:11832
+#: doc/guix.texi:12539
 #, no-wrap
 msgid "{Scheme Variable} modem-manager-service-type"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:11837
+#: doc/guix.texi:12544
 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:11840 doc/guix.texi:11862
+#: doc/guix.texi:12547 doc/guix.texi:12569
 msgid "This service is part of @code{%desktop-services} (@pxref{Desktop Services})."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:11842
+#: doc/guix.texi:12549
 #, no-wrap
 msgid "{Data Type} modem-manager-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:11844
+#: doc/guix.texi:12551
 msgid "Data type representing the configuration of ModemManager."
 msgstr "Repräsentiert die Konfiguration vom ModemManager."
 
 #. type: item
-#: doc/guix.texi:11846
+#: doc/guix.texi:12553
 #, no-wrap
 msgid "@code{modem-manager} (default: @code{modem-manager})"
 msgstr "@code{modem-manager} (Vorgabe: @code{modem-manager})"
 
 #. type: table
-#: doc/guix.texi:11848
+#: doc/guix.texi:12555
 msgid "The ModemManager package to use."
 msgstr "Das ModemManager-Paket, was benutzt werden soll."
 
 #. type: cindex
-#: doc/guix.texi:11852
+#: doc/guix.texi:12559
 #, no-wrap
 msgid "NetworkManager"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:11854
+#: doc/guix.texi:12561
 #, no-wrap
 msgid "{Scheme Variable} network-manager-service-type"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:11859
+#: doc/guix.texi:12566
 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:11864
+#: doc/guix.texi:12571
 #, no-wrap
 msgid "{Data Type} network-manager-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:11866
+#: doc/guix.texi:12573
 msgid "Data type representing the configuration of NetworkManager."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:11868
+#: doc/guix.texi:12575
 #, no-wrap
 msgid "@code{network-manager} (default: @code{network-manager})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:11870
+#: doc/guix.texi:12577
 msgid "The NetworkManager package to use."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:11871
+#: doc/guix.texi:12578
 #, no-wrap
 msgid "@code{dns} (default: @code{\"default\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:11874
+#: doc/guix.texi:12581
 msgid "Processing mode for DNS, which affects how NetworkManager uses the @code{resolv.conf} configuration file."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:11876
+#: doc/guix.texi:12583
 #, no-wrap
 msgid "default"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:11879
+#: doc/guix.texi:12586
 msgid "NetworkManager will update @code{resolv.conf} to reflect the nameservers provided by currently active connections."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:11880
+#: doc/guix.texi:12587
 #, no-wrap
 msgid "dnsmasq"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:11884
+#: doc/guix.texi:12591
 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 ""
 
 #. type: item
-#: doc/guix.texi:11885 doc/guix.texi:13051
+#: doc/guix.texi:12592 doc/guix.texi:13818
 #, no-wrap
 msgid "none"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:11887
+#: doc/guix.texi:12594
 msgid "NetworkManager will not modify @code{resolv.conf}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:11889
+#: doc/guix.texi:12596
 #, no-wrap
 msgid "@code{vpn-plugins} (default: @code{'()})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:11893
+#: doc/guix.texi:12600
 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:11897
+#: doc/guix.texi:12604
 #, no-wrap
 msgid "Connman"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:11898
+#: doc/guix.texi:12605
 #, no-wrap
 msgid "{Scheme Variable} connman-service-type"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:11901
+#: doc/guix.texi:12608
 msgid "This is the service type to run @url{https://01.org/connman,Connman}, a network connection manager."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:11904
+#: doc/guix.texi:12611
 msgid "Its value must be an @code{connman-configuration} record as in this example:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:11909
+#: doc/guix.texi:12616
 #, no-wrap
 msgid ""
 "(service connman-service-type\n"
@@ -21045,149 +22914,149 @@ msgid ""
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:11912
+#: doc/guix.texi:12619
 msgid "See below for details about @code{connman-configuration}."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:11914
+#: doc/guix.texi:12621
 #, no-wrap
 msgid "{Data Type} connman-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:11916
+#: doc/guix.texi:12623
 msgid "Data Type representing the configuration of connman."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:11918
+#: doc/guix.texi:12625
 #, no-wrap
 msgid "@code{connman} (default: @var{connman})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:11920
+#: doc/guix.texi:12627
 msgid "The connman package to use."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:11921
+#: doc/guix.texi:12628
 #, no-wrap
 msgid "@code{disable-vpn?} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:11923
+#: doc/guix.texi:12630
 msgid "When true, disable connman's vpn plugin."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:11926
+#: doc/guix.texi:12633
 #, no-wrap
 msgid "WPA Supplicant"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:11927
+#: doc/guix.texi:12634
 #, no-wrap
 msgid "{Scheme Variable} wpa-supplicant-service-type"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:11931
+#: doc/guix.texi:12638
 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:11933
+#: doc/guix.texi:12640
 #, no-wrap
 msgid "{Data Type} wpa-supplicant-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:11935
+#: doc/guix.texi:12642
 msgid "Data type representing the configuration of WPA Supplicant."
 msgstr "Repräsentiert die Konfiguration des WPA-Supplikanten."
 
 #. type: deftp
-#: doc/guix.texi:11937
+#: doc/guix.texi:12644
 msgid "It takes the following parameters:"
 msgstr "Sie hat folgende Parameter:"
 
 #. type: item
-#: doc/guix.texi:11939
+#: doc/guix.texi:12646
 #, no-wrap
 msgid "@code{wpa-supplicant} (default: @code{wpa-supplicant})"
 msgstr "@code{wpa-supplicant} (Vorgabe: @code{wpa-supplicant})"
 
 #. type: table
-#: doc/guix.texi:11941
+#: doc/guix.texi:12648
 msgid "The WPA Supplicant package to use."
 msgstr "Das WPA-Supplicant-Paket, was benutzt werden soll."
 
 #. type: item
-#: doc/guix.texi:11942
+#: doc/guix.texi:12649
 #, no-wrap
 msgid "@code{dbus?} (default: @code{#t})"
 msgstr "@code{dbus?} (Vorgabe: @code{#t})"
 
 #. type: table
-#: doc/guix.texi:11944
+#: doc/guix.texi:12651
 msgid "Whether to listen for requests on D-Bus."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:11945
+#: doc/guix.texi:12652
 #, 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:11947
+#: doc/guix.texi:12654
 msgid "Where to store the PID file."
 msgstr "Wo die PID-Datei abgelegt wird."
 
 #. type: item
-#: doc/guix.texi:11948
+#: doc/guix.texi:12655
 #, no-wrap
 msgid "@code{interface} (default: @code{#f})"
 msgstr "@code{interface} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:11951
+#: doc/guix.texi:12658
 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:11954
+#: doc/guix.texi:12661
 msgid "Optional configuration file to use."
 msgstr "Optionale Konfigurationsdatei."
 
 #. type: table
-#: doc/guix.texi:11957
+#: doc/guix.texi:12664
 msgid "List of additional command-line arguments to pass to the daemon."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:11960
+#: doc/guix.texi:12667
 #, no-wrap
 msgid "iptables"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:11961
+#: doc/guix.texi:12668
 #, no-wrap
 msgid "{Scheme Variable} iptables-service-type"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:11967
-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."
+#: doc/guix.texi:12674
+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:11987
+#: doc/guix.texi:12694
 #, no-wrap
 msgid ""
 "(service iptables-service-type\n"
@@ -21211,151 +23080,151 @@ msgid ""
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:11990
+#: doc/guix.texi:12697
 #, no-wrap
 msgid "{Data Type} iptables-configuration"
 msgstr "{Datentyp} iptables-configuration"
 
 #. type: deftp
-#: doc/guix.texi:11992
+#: doc/guix.texi:12699
 msgid "The data type representing the configuration of iptables."
 msgstr "Repräsentiert die iptables-Konfiguration."
 
 #. type: item
-#: doc/guix.texi:11994
+#: doc/guix.texi:12701
 #, no-wrap
 msgid "@code{iptables} (default: @code{iptables})"
 msgstr "@code{iptables} (Vorgabe: @code{iptables})"
 
 #. type: table
-#: doc/guix.texi:11997
+#: doc/guix.texi:12704
 msgid "The iptables package that provides @code{iptables-restore} and @code{ip6tables-restore}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:11997
+#: doc/guix.texi:12704
 #, 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:12001
+#: doc/guix.texi:12708
 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:12001
+#: doc/guix.texi:12708
 #, 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:12005
+#: doc/guix.texi:12712
 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:12008
+#: doc/guix.texi:12715
 #, no-wrap
 msgid "NTP (Network Time Protocol), service"
 msgstr "NTP (Network Time Protocol), Dienst"
 
 #. type: cindex
-#: doc/guix.texi:12009
+#: doc/guix.texi:12716
 #, no-wrap
 msgid "real time clock"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:12010
+#: doc/guix.texi:12717
 #, no-wrap
 msgid "{Scheme Variable} ntp-service-type"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:12014
-msgid "This is the type of the service running the 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."
+#: doc/guix.texi:12721
+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 ""
 
 #. type: defvr
-#: doc/guix.texi:12017
+#: doc/guix.texi:12724
 msgid "The value of this service is an @code{ntpd-configuration} object, as described below."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:12019
+#: doc/guix.texi:12726
 #, no-wrap
 msgid "{Data Type} ntp-configuration"
 msgstr "{Datentyp} ntp-configuration"
 
 #. type: deftp
-#: doc/guix.texi:12021
+#: doc/guix.texi:12728
 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:12023
+#: doc/guix.texi:12730
 #, no-wrap
 msgid "@code{servers} (default: @code{%ntp-servers})"
 msgstr "@code{servers} (Vorgabe: @code{%ntp-servers})"
 
 #. type: table
-#: doc/guix.texi:12026
+#: doc/guix.texi:12733
 msgid "This is the list of servers (host names) with which @command{ntpd} will be synchronized."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12027 doc/guix.texi:12088
+#: doc/guix.texi:12734 doc/guix.texi:12795
 #, no-wrap
 msgid "@code{allow-large-adjustment?} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12030
+#: doc/guix.texi:12737
 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:12031
+#: doc/guix.texi:12738
 #, no-wrap
 msgid "@code{ntp} (default: @code{ntp})"
 msgstr "@code{ntp} (Vorgabe: @code{ntp})"
 
 #. type: table
-#: doc/guix.texi:12033
+#: doc/guix.texi:12740
 msgid "The NTP package to use."
 msgstr "Das NTP-Paket, was benutzt werden soll."
 
 #. type: defvr
-#: doc/guix.texi:12036
+#: doc/guix.texi:12743
 #, no-wrap
 msgid "{Scheme Variable} %ntp-servers"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:12039
+#: doc/guix.texi:12746
 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: cindex
-#: doc/guix.texi:12041
+#: doc/guix.texi:12748
 #, no-wrap
 msgid "OpenNTPD"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:12042
+#: doc/guix.texi:12749
 #, no-wrap
 msgid "{Scheme Procedure} openntpd-service-type"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:12046
+#: doc/guix.texi:12753
 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: example
-#: doc/guix.texi:12056
+#: doc/guix.texi:12763
 #, no-wrap
 msgid ""
 "(service\n"
@@ -21370,128 +23239,128 @@ msgid ""
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:12060
+#: doc/guix.texi:12767
 #, no-wrap
 msgid "{Data Type} openntpd-configuration"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12062
+#: doc/guix.texi:12769
 #, no-wrap
 msgid "@code{openntpd} (default: @code{(file-append openntpd \"/sbin/ntpd\")})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12064
+#: doc/guix.texi:12771
 msgid "The openntpd executable to use."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12064
+#: doc/guix.texi:12771
 #, no-wrap
 msgid "@code{listen-on} (default: @code{'(\"127.0.0.1\" \"::1\")})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12066
+#: doc/guix.texi:12773
 msgid "A list of local IP addresses or hostnames the ntpd daemon should listen on."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12066
+#: doc/guix.texi:12773
 #, no-wrap
 msgid "@code{query-from} (default: @code{'()})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12068
+#: doc/guix.texi:12775
 msgid "A list of local IP address the ntpd daemon should use for outgoing queries."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12068
+#: doc/guix.texi:12775
 #, no-wrap
 msgid "@code{sensor} (default: @code{'()})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12073
+#: doc/guix.texi:12780
 msgid "Specify a list of timedelta sensor devices ntpd should use.  @code{ntpd} will listen to each sensor that acutally exists and ignore non-existant ones.  See @uref{https://man.openbsd.org/ntpd.conf, upstream documentation} for more information."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12073
+#: doc/guix.texi:12780
 #, no-wrap
 msgid "@code{server} (default: @var{%ntp-servers})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12075
+#: doc/guix.texi:12782
 msgid "Specify a list of IP addresses or hostnames of NTP servers to synchronize to."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12075 doc/guix.texi:18135
+#: doc/guix.texi:12782 doc/guix.texi:19891
 #, no-wrap
 msgid "@code{servers} (default: @code{'()})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12077
+#: doc/guix.texi:12784
 msgid "Specify a list of IP addresses or hostnames of NTP pools to synchronize to."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12077
+#: doc/guix.texi:12784
 #, no-wrap
 msgid "@code{constraint-from} (default: @code{'()})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12084
+#: doc/guix.texi:12791
 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:12084
+#: doc/guix.texi:12791
 #, no-wrap
 msgid "@code{constraints-from} (default: @code{'()})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12088
+#: doc/guix.texi:12795
 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: table
-#: doc/guix.texi:12091
+#: doc/guix.texi:12798
 msgid "Determines if @code{ntpd} is allowed to make an initial adjustment of more than 180 seconds."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:12094
+#: doc/guix.texi:12801
 #, no-wrap
 msgid "inetd"
 msgstr "inetd"
 
 #. type: deffn
-#: doc/guix.texi:12095
+#: doc/guix.texi:12802
 #, no-wrap
 msgid "{Scheme variable} inetd-service-type"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:12100
+#: doc/guix.texi:12807
 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:12106
+#: doc/guix.texi:12813
 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: example
-#: doc/guix.texi:12129
+#: doc/guix.texi:12836
 #, no-wrap
 msgid ""
 "(service\n"
@@ -21518,231 +23387,220 @@ msgid ""
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:12132
+#: doc/guix.texi:12839
 msgid "See below for more details about @code{inetd-configuration}."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:12134
+#: doc/guix.texi:12841
 #, no-wrap
 msgid "{Data Type} inetd-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:12136
+#: doc/guix.texi:12843
 msgid "Data type representing the configuration of @command{inetd}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12138
+#: doc/guix.texi:12845
 #, no-wrap
 msgid "@code{program} (default: @code{(file-append inetutils \"/libexec/inetd\")})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12140
+#: doc/guix.texi:12847
 msgid "The @command{inetd} executable to use."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12141 doc/guix.texi:17841
+#: doc/guix.texi:12848 doc/guix.texi:19597
 #, no-wrap
 msgid "@code{entries} (default: @code{'()})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12144
+#: doc/guix.texi:12851
 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:12147
+#: doc/guix.texi:12854
 #, no-wrap
 msgid "{Data Type} inetd-entry"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:12151
+#: doc/guix.texi:12858
 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:12153
+#: doc/guix.texi:12860
 #, no-wrap
 msgid "@code{node} (default: @code{#f})"
 msgstr "@code{node} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:12158
+#: doc/guix.texi:12865
 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:12160
+#: doc/guix.texi:12867
 msgid "A string, the name must correspond to an entry in @code{/etc/services}."
 msgstr ""
 
 #. type: code{#1}
-#: doc/guix.texi:12160
+#: doc/guix.texi:12867
 #, no-wrap
 msgid "socket-type"
 msgstr "socket-type"
 
 #. type: table
-#: doc/guix.texi:12163
+#: doc/guix.texi:12870
 msgid "One of @code{'stream}, @code{'dgram}, @code{'raw}, @code{'rdm} or @code{'seqpacket}."
 msgstr ""
 
 #. type: code{#1}
-#: doc/guix.texi:12163
+#: doc/guix.texi:12870
 #, no-wrap
 msgid "protocol"
 msgstr "protocol"
 
 #. type: table
-#: doc/guix.texi:12165
+#: doc/guix.texi:12872
 msgid "A string, must correspond to an entry in @code{/etc/protocols}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12165
+#: doc/guix.texi:12872
 #, no-wrap
 msgid "@code{wait?} (default: @code{#t})"
 msgstr "@code{wait?} (Vorgabe: @code{#t})"
 
 #. type: table
-#: doc/guix.texi:12168
+#: doc/guix.texi:12875
 msgid "Whether @command{inetd} should wait for the server to exit before listening to new service requests."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12173
-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\"}."
+#: doc/guix.texi:12880
+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:12173
+#: doc/guix.texi:12880
 #, no-wrap
 msgid "@code{program} (default: @code{\"internal\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12176
+#: doc/guix.texi:12883
 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:12181
-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\")}."
+#: doc/guix.texi:12888
+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:12185
+#: doc/guix.texi:12892
 msgid "@xref{Configuration file,,, inetutils, GNU Inetutils} for a more detailed discussion of each configuration field."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:12187
+#: doc/guix.texi:12894
 #, no-wrap
 msgid "Tor"
 msgstr "Tor"
 
 #. type: defvr
-#: doc/guix.texi:12188
+#: doc/guix.texi:12895
 #, no-wrap
 msgid "{Scheme Variable} tor-service-type"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:12193
+#: doc/guix.texi:12900
 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: deffn
-#: doc/guix.texi:12196
-#, no-wrap
-msgid "{Scheme Procedure} tor-service [@var{config-file}] [#:tor @var{tor}]"
-msgstr ""
-
-#. type: deffn
-#: doc/guix.texi:12200
-msgid "This procedure is deprecated and will be removed in a future release.  Return a service of the @code{tor-service-type} type.  @var{config-file} and @var{tor} have the same meaning as in @code{<tor-configuration>}."
-msgstr ""
-
 #. type: deftp
-#: doc/guix.texi:12202
+#: doc/guix.texi:12903
 #, no-wrap
 msgid "{Data Type} tor-configuration"
 msgstr "{Datentyp} tor-configuration"
 
 #. type: item
-#: doc/guix.texi:12204
+#: doc/guix.texi:12905
 #, no-wrap
 msgid "@code{tor} (default: @code{tor})"
 msgstr "@code{tor} (Vorgabe: @code{tor})"
 
 #. type: table
-#: doc/guix.texi:12209
+#: doc/guix.texi:12910
 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:12210
+#: doc/guix.texi:12911
 #, 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:12216
+#: doc/guix.texi:12917
 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:12217
+#: doc/guix.texi:12918
 #, no-wrap
 msgid "@code{hidden-services} (default: @code{'()})"
 msgstr "@code{hidden-services} (Vorgabe: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:12223
+#: doc/guix.texi:12924
 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:12224
+#: doc/guix.texi:12925
 #, no-wrap
 msgid "@code{socks-socket-type} (default: @code{'tcp})"
 msgstr "@code{socks-socket-type} (Vorgabe: @code{'tcp})"
 
 #. type: table
-#: doc/guix.texi:12231
+#: doc/guix.texi:12932
 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:12236
+#: doc/guix.texi:12937
 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:12239
+#: doc/guix.texi:12940
 #, no-wrap
 msgid "hidden service"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:12240
+#: doc/guix.texi:12941
 #, no-wrap
 msgid "{Scheme Procedure} tor-hidden-service @var{name} @var{mapping}"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:12243
+#: doc/guix.texi:12944
 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:12247
+#: doc/guix.texi:12948
 #, no-wrap
 msgid ""
 " '((22 \"127.0.0.1:22\")\n"
@@ -21752,288 +23610,288 @@ msgstr ""
 "   (80 \"127.0.0.1:8080\"))\n"
 
 #. type: deffn
-#: doc/guix.texi:12251
+#: doc/guix.texi:12952
 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:12255
+#: doc/guix.texi:12956
 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:12258
+#: doc/guix.texi:12959
 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:12261
+#: doc/guix.texi:12962
 msgid "The @code{(gnu services rsync)} module provides the following services:"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:12265
+#: doc/guix.texi:12966
 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:12266
+#: doc/guix.texi:12967
 #, no-wrap
 msgid "{Scheme Variable} rsync-service-type"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:12269
+#: doc/guix.texi:12970
 msgid "This is the type for the @uref{https://rsync.samba.org, rsync} rsync daemon, @command{rsync-configuration} record as in this example:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:12272
+#: doc/guix.texi:12973
 #, no-wrap
 msgid "(service rsync-service-type)\n"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:12275
+#: doc/guix.texi:12976
 msgid "See below for details about @code{rsync-configuration}."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:12277
+#: doc/guix.texi:12978
 #, no-wrap
 msgid "{Data Type} rsync-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:12279
+#: doc/guix.texi:12980
 msgid "Data type representing the configuration for @code{rsync-service}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12281
+#: doc/guix.texi:12982
 #, no-wrap
 msgid "@code{package} (default: @var{rsync})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12283
+#: doc/guix.texi:12984
 msgid "@code{rsync} package to use."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12284
+#: doc/guix.texi:12985
 #, no-wrap
 msgid "@code{port-number} (default: @code{873})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12288
+#: doc/guix.texi:12989
 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:12289
+#: doc/guix.texi:12990
 #, no-wrap
 msgid "@code{pid-file} (default: @code{\"/var/run/rsyncd/rsyncd.pid\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12291
+#: doc/guix.texi:12992
 msgid "Name of the file where @command{rsync} writes its PID."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12292
+#: doc/guix.texi:12993
 #, no-wrap
 msgid "@code{lock-file} (default: @code{\"/var/run/rsyncd/rsyncd.lock\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12294
+#: doc/guix.texi:12995
 msgid "Name of the file where @command{rsync} writes its lock file."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12295
+#: doc/guix.texi:12996
 #, no-wrap
 msgid "@code{log-file} (default: @code{\"/var/log/rsyncd.log\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12297
+#: doc/guix.texi:12998
 msgid "Name of the file where @command{rsync} writes its log file."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12298
+#: doc/guix.texi:12999
 #, no-wrap
 msgid "@code{use-chroot?} (default: @var{#t})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12300
+#: doc/guix.texi:13001
 msgid "Whether to use chroot for @command{rsync} shared directory."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12301
+#: doc/guix.texi:13002
 #, no-wrap
 msgid "@code{share-path} (default: @file{/srv/rsync})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12303
+#: doc/guix.texi:13004
 msgid "Location of the @command{rsync} shared directory."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12304
+#: doc/guix.texi:13005
 #, no-wrap
 msgid "@code{share-comment} (default: @code{\"Rsync share\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12306
+#: doc/guix.texi:13007
 msgid "Comment of the @command{rsync} shared directory."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12307
+#: doc/guix.texi:13008
 #, no-wrap
 msgid "@code{read-only?} (default: @var{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12309
+#: doc/guix.texi:13010
 msgid "Read-write permissions to shared directory."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12310
+#: doc/guix.texi:13011
 #, no-wrap
 msgid "@code{timeout} (default: @code{300})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12312
+#: doc/guix.texi:13013
 msgid "I/O timeout in seconds."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12313
+#: doc/guix.texi:13014
 #, no-wrap
 msgid "@code{user} (default: @var{\"root\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12315
+#: doc/guix.texi:13016
 msgid "Owner of the @code{rsync} process."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12316
+#: doc/guix.texi:13017
 #, no-wrap
 msgid "@code{group} (default: @var{\"root\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12318
+#: doc/guix.texi:13019
 msgid "Group of the @code{rsync} process."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12319
+#: doc/guix.texi:13020
 #, no-wrap
 msgid "@code{uid} (default: @var{\"rsyncd\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12322
+#: doc/guix.texi:13023
 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:12323
+#: doc/guix.texi:13024
 #, no-wrap
 msgid "@code{gid} (default: @var{\"rsyncd\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12325
+#: doc/guix.texi:13026
 msgid "Group name or group ID that will be used when accessing the module."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:12330
+#: doc/guix.texi:13031
 msgid "Furthermore, @code{(gnu services ssh)} provides the following services."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:12330 doc/guix.texi:12369 doc/guix.texi:22733
+#: doc/guix.texi:13031 doc/guix.texi:13070 doc/guix.texi:24610
 #, no-wrap
 msgid "SSH"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:12331 doc/guix.texi:12370 doc/guix.texi:22734
+#: doc/guix.texi:13032 doc/guix.texi:13071 doc/guix.texi:24611
 #, no-wrap
 msgid "SSH server"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:12333
+#: doc/guix.texi:13034
 #, no-wrap
 msgid "{Scheme Procedure} lsh-service [#:host-key \"/etc/lsh/host-key\"] @"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:12342
+#: doc/guix.texi:13043
 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:12348
+#: doc/guix.texi:13049
 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:12352
+#: doc/guix.texi:13053
 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:12357
+#: doc/guix.texi:13058
 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:12361
+#: doc/guix.texi:13062
 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:12365
+#: doc/guix.texi:13066
 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:12367
+#: doc/guix.texi:13068
 msgid "The other options should be self-descriptive."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:12371
+#: doc/guix.texi:13072
 #, no-wrap
 msgid "{Scheme Variable} openssh-service-type"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:12375
+#: doc/guix.texi:13076
 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: example
-#: doc/guix.texi:12384
+#: doc/guix.texi:13085
 #, no-wrap
 msgid ""
 "(service openssh-service-type\n"
@@ -22046,17 +23904,17 @@ msgid ""
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:12387
+#: doc/guix.texi:13088
 msgid "See below for details about @code{openssh-configuration}."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:12390
+#: doc/guix.texi:13091
 msgid "This service can be extended with extra authorized keys, as in this example:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:12395
+#: doc/guix.texi:13096
 #, no-wrap
 msgid ""
 "(service-extension openssh-service-type\n"
@@ -22065,192 +23923,192 @@ msgid ""
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:12398
+#: doc/guix.texi:13099
 #, no-wrap
 msgid "{Data Type} openssh-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:12400
+#: doc/guix.texi:13101
 msgid "This is the configuration record for OpenSSH's @command{sshd}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12402
+#: doc/guix.texi:13103
 #, no-wrap
 msgid "@code{pid-file} (default: @code{\"/var/run/sshd.pid\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12404
+#: doc/guix.texi:13105
 msgid "Name of the file where @command{sshd} writes its PID."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12405
+#: doc/guix.texi:13106
 #, no-wrap
 msgid "@code{port-number} (default: @code{22})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12407
+#: doc/guix.texi:13108
 msgid "TCP port on which @command{sshd} listens for incoming connections."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12408
+#: doc/guix.texi:13109
 #, no-wrap
 msgid "@code{permit-root-login} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12413
+#: doc/guix.texi:13114
 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:12414 doc/guix.texi:12562
+#: doc/guix.texi:13115 doc/guix.texi:13276
 #, no-wrap
 msgid "@code{allow-empty-passwords?} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12417
+#: doc/guix.texi:13118
 msgid "When true, users with empty passwords may log in.  When false, they may not."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12418 doc/guix.texi:12565
+#: doc/guix.texi:13119 doc/guix.texi:13279
 #, no-wrap
 msgid "@code{password-authentication?} (default: @code{#t})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12421
+#: doc/guix.texi:13122
 msgid "When true, users may log in with their password.  When false, they have other authentication methods."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12422
+#: doc/guix.texi:13123
 #, no-wrap
 msgid "@code{public-key-authentication?} (default: @code{#t})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12425
+#: doc/guix.texi:13126
 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:12428
+#: doc/guix.texi:13129
 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:12429
+#: doc/guix.texi:13130
 #, no-wrap
 msgid "@code{x11-forwarding?} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12433
+#: doc/guix.texi:13134
 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:12434
+#: doc/guix.texi:13135
 #, no-wrap
 msgid "@code{allow-agent-forwarding?} (default: @code{#t})"
 msgstr "@code{allow-agent-forwarding?} (Vorgabe: @code{#t})"
 
 #. type: table
-#: doc/guix.texi:12436
+#: doc/guix.texi:13137
 msgid "Whether to allow agent forwarding."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12437
+#: doc/guix.texi:13138
 #, no-wrap
 msgid "@code{allow-tcp-forwarding?} (default: @code{#t})"
 msgstr "@code{allow-tcp-forwarding?} (Vorgabe: @code{#t})"
 
 #. type: table
-#: doc/guix.texi:12439
+#: doc/guix.texi:13140
 msgid "Whether to allow TCP forwarding."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12440
+#: doc/guix.texi:13141
 #, no-wrap
 msgid "@code{gateway-ports?} (default: @code{#f})"
 msgstr "@code{gateway-ports?} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:12442
+#: doc/guix.texi:13143
 msgid "Whether to allow gateway ports."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12443
+#: doc/guix.texi:13144
 #, no-wrap
 msgid "@code{challenge-response-authentication?} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12446
-msgid "Specifies whether challenge response authentication is allowed (e.g. via PAM)."
+#: doc/guix.texi:13147
+msgid "Specifies whether challenge response authentication is allowed (e.g.@: via PAM)."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12447
+#: doc/guix.texi:13148
 #, no-wrap
 msgid "@code{use-pam?} (default: @code{#t})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12453
+#: doc/guix.texi:13154
 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:12458
+#: doc/guix.texi:13159
 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:12459
+#: doc/guix.texi:13160
 #, no-wrap
 msgid "@code{print-last-log?} (default: @code{#t})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12462
+#: doc/guix.texi:13163
 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:12463
+#: doc/guix.texi:13164
 #, no-wrap
 msgid "@code{subsystems} (default: @code{'((\"sftp\" \"internal-sftp\"))})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12465
-msgid "Configures external subsystems (e.g. file transfer daemon)."
+#: doc/guix.texi:13166
+msgid "Configures external subsystems (e.g.@: file transfer daemon)."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12469
+#: doc/guix.texi:13170
 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:12472
+#: doc/guix.texi:13173
 msgid "The command @command{internal-sftp} implements an in-process SFTP server.  Alternately, one can specify the @command{sftp-server} command:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:12477
+#: doc/guix.texi:13178
 #, no-wrap
 msgid ""
 "(service openssh-service-type\n"
@@ -22260,28 +24118,28 @@ msgid ""
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12479
+#: doc/guix.texi:13180
 #, no-wrap
 msgid "@code{accepted-environment} (default: @code{'()})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12481
+#: doc/guix.texi:13182
 msgid "List of strings describing which environment variables may be exported."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12484
+#: doc/guix.texi:13185
 msgid "Each string gets on its own line.  See the @code{AcceptEnv} option in @code{man sshd_config}."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12489
+#: doc/guix.texi:13190
 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 ""
 
 #. type: example
-#: doc/guix.texi:12494
+#: doc/guix.texi:13195
 #, no-wrap
 msgid ""
 "(service openssh-service-type\n"
@@ -22290,30 +24148,30 @@ msgid ""
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12496
+#: doc/guix.texi:13197
 #, no-wrap
 msgid "@code{authorized-keys} (default: @code{'()})"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:12497
+#: doc/guix.texi:13198
 #, no-wrap
 msgid "authorized keys, SSH"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:12498
+#: doc/guix.texi:13199
 #, no-wrap
 msgid "SSH authorized keys"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12502
+#: doc/guix.texi:13203
 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: example
-#: doc/guix.texi:12509
+#: doc/guix.texi:13210
 #, no-wrap
 msgid ""
 "(openssh-configuration\n"
@@ -22324,49 +24182,70 @@ msgid ""
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12514
+#: doc/guix.texi:13215
 msgid "registers the specified public keys for user accounts @code{rekado}, @code{chris}, and @code{root}."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12517
+#: doc/guix.texi:13218
 msgid "Additional authorized keys can be specified @i{via} @code{service-extension}."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12520
+#: doc/guix.texi:13221
 msgid "Note that this does @emph{not} interfere with the use of @file{~/.ssh/authorized_keys}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12521
+#: doc/guix.texi:13222
 #, no-wrap
 msgid "@code{log-level} (default: @code{'info})"
 msgstr "@code{log-level} (Vorgabe: @code{'info})"
 
 #. type: table
-#: doc/guix.texi:12525
+#: doc/guix.texi:13226
 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:13227 doc/guix.texi:18808
+#, no-wrap
+msgid "@code{extra-content} (default: @code{\"\"})"
+msgstr "@code{extra-content} (Vorgabe: @code{\"\"})"
+
+#. type: table
+#: doc/guix.texi:13232
+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: example
+#: doc/guix.texi:13238
+#, no-wrap
+msgid ""
+"(openssh-configuration\n"
+"  (extra-content \"\\\n"
+"Match Address 192.168.0.1\n"
+"  PermitRootLogin yes\"))\n"
+msgstr ""
+
 #. type: deffn
-#: doc/guix.texi:12529
+#: doc/guix.texi:13243
 #, no-wrap
 msgid "{Scheme Procedure} dropbear-service [@var{config}]"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:12533
+#: doc/guix.texi:13247
 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:12536
+#: doc/guix.texi:13250
 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: example
-#: doc/guix.texi:12540
+#: doc/guix.texi:13254
 #, no-wrap
 msgid ""
 "(dropbear-service (dropbear-configuration\n"
@@ -22374,107 +24253,99 @@ msgid ""
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:12543
+#: doc/guix.texi:13257
 #, no-wrap
 msgid "{Data Type} dropbear-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:12545
+#: doc/guix.texi:13259
 msgid "This data type represents the configuration of a Dropbear SSH daemon."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12547
+#: doc/guix.texi:13261
 #, no-wrap
 msgid "@code{dropbear} (default: @var{dropbear})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12549
+#: doc/guix.texi:13263
 msgid "The Dropbear package to use."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12550
+#: doc/guix.texi:13264
 #, no-wrap
 msgid "@code{port-number} (default: 22)"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12552
+#: doc/guix.texi:13266
 msgid "The TCP port where the daemon waits for incoming connections."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12553
+#: doc/guix.texi:13267
 #, no-wrap
 msgid "@code{syslog-output?} (default: @code{#t})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12555
+#: doc/guix.texi:13269
 msgid "Whether to enable syslog output."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12556
+#: doc/guix.texi:13270
 #, no-wrap
 msgid "@code{pid-file} (default: @code{\"/var/run/dropbear.pid\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12558
+#: doc/guix.texi:13272
 msgid "File name of the daemon's PID file."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12559
+#: doc/guix.texi:13273
 #, no-wrap
 msgid "@code{root-login?} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12561
+#: doc/guix.texi:13275
 msgid "Whether to allow @code{root} logins."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12564
+#: doc/guix.texi:13278
 msgid "Whether to allow empty passwords."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12567
+#: doc/guix.texi:13281
 msgid "Whether to enable password-based authentication."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:12570
+#: doc/guix.texi:13284
 #, no-wrap
 msgid "{Scheme Variable} %facebook-host-aliases"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:12576
+#: doc/guix.texi:13290
 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:12580
+#: doc/guix.texi:13294
 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: example
-#: doc/guix.texi:12583
-#, no-wrap
-msgid ""
-"(use-modules (gnu) (guix))\n"
-"\n"
-msgstr ""
-
-#. type: example
-#: doc/guix.texi:12593
+#: doc/guix.texi:13307
 #, no-wrap
 msgid ""
 "(operating-system\n"
@@ -22489,632 +24360,789 @@ msgid ""
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:12597
+#: doc/guix.texi:13311
 msgid "This mechanism can prevent programs running locally, such as Web browsers, from accessing Facebook."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:12600
+#: doc/guix.texi:13314
 msgid "The @code{(gnu services avahi)} provides the following definition."
 msgstr ""
 
-#. type: deffn
-#: doc/guix.texi:12601
+#. type: defvr
+#: doc/guix.texi:13315
 #, no-wrap
-msgid "{Scheme Procedure} avahi-service [#:avahi @var{avahi}] @"
+msgid "{Scheme Variable} avahi-service-type"
+msgstr "{Scheme-Variable} avahi-service-type"
+
+#. type: defvr
+#: doc/guix.texi:13320
+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{http://avahi.org/}).  Its value must be a @code{zero-configuration} record---see below."
 msgstr ""
 
-#. type: deffn
-#: doc/guix.texi:12613
-msgid "[#:host-name #f] [#:publish? #t] [#:ipv4? #t] @ [#:ipv6? #t] [#:wide-area? #f] @ [#:domains-to-browse '()] [#:debug? #f] Return a 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{http://avahi.org/}), and 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}.  Additionally, add the @var{avahi} package to the system profile so that commands such as @command{avahi-browse} are directly usable."
+#. type: defvr
+#: doc/guix.texi:13325
+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 ""
 
-#. type: deffn
-#: doc/guix.texi:12616
-msgid "If @var{host-name} is different from @code{#f}, use that as the host name to publish for this machine; otherwise, use the machine's actual host name."
+#. type: defvr
+#: doc/guix.texi:13328
+msgid "Additionally, add the @var{avahi} package to the system profile so that commands such as @command{avahi-browse} are directly usable."
 msgstr ""
 
-#. type: deffn
-#: doc/guix.texi:12620
-msgid "When @var{publish?} is true, publishing of host names and services is allowed; in particular, avahi-daemon will publish the machine's host name and IP address via mDNS on the local network."
+#. type: deftp
+#: doc/guix.texi:13330
+#, no-wrap
+msgid "{Data Type} avahi-configuration"
+msgstr "{Datentyp} avahi-configuration"
+
+#. type: deftp
+#: doc/guix.texi:13332
+msgid "Data type representation the configuration for Avahi."
+msgstr "Dieser Datentyp repräsentiert die Konfiguration von Avahi."
+
+#. type: item
+#: doc/guix.texi:13335
+#, no-wrap
+msgid "@code{host-name} (default: @code{#f})"
+msgstr "@code{host-name} (Vorgabe: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:13338
+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: deffn
-#: doc/guix.texi:12622
-msgid "When @var{wide-area?} is true, DNS-SD over unicast DNS is enabled."
+#. type: item
+#: doc/guix.texi:13339
+#, no-wrap
+msgid "@code{publish?} (default: @code{#t})"
+msgstr "@code{publish?} (Vorgabe: @code{#t})"
+
+#. type: table
+#: doc/guix.texi:13342
+msgid "When true, allow host names and services to be published (broadcast) over the network."
 msgstr ""
 
-#. type: deffn
-#: doc/guix.texi:12625
-msgid "Boolean values @var{ipv4?} and @var{ipv6?} determine whether to use IPv4/IPv6 sockets."
+#. type: item
+#: doc/guix.texi:13343
+#, no-wrap
+msgid "@code{publish-workstation?} (default: @code{#t})"
+msgstr "@code{publish-workstation?} (Vorgabe: @code{#t})"
+
+#. type: table
+#: doc/guix.texi:13347
+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:13350
+#, no-wrap
+msgid "avahi-browse _workstation._tcp\n"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13352
+#, no-wrap
+msgid "@code{wide-area?} (default: @code{#f})"
+msgstr "@code{wide-area?} (Vorgabe: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:13354
+msgid "When true, DNS-SD over unicast DNS is enabled."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13355
+#, no-wrap
+msgid "@code{ipv4?} (default: @code{#t})"
+msgstr "@code{ipv4?} (Vorgabe: @code{#t})"
+
+#. type: itemx
+#: doc/guix.texi:13356
+#, no-wrap
+msgid "@code{ipv6?} (default: @code{#t})"
+msgstr "@code{ipv6?} (Vorgabe: @code{#t})"
+
+#. type: table
+#: doc/guix.texi:13358
+msgid "These fields determine whether to use IPv4/IPv6 sockets."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13359
+#, no-wrap
+msgid "@code{domains-to-browse} (default: @code{'()})"
+msgstr "@code{domains-to-browse} (Vorgabe: @code{'()})"
+
+#. type: table
+#: doc/guix.texi:13361
+msgid "This is a list of domains to browse."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:12627
+#: doc/guix.texi:13364
 #, no-wrap
 msgid "{Scheme Variable} openvswitch-service-type"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:12631
+#: doc/guix.texi:13368
 msgid "This is the type of the @uref{http://www.openvswitch.org, Open vSwitch} service, whose value should be an @code{openvswitch-configuration} object."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:12633
+#: doc/guix.texi:13370
 #, no-wrap
 msgid "{Data Type} openvswitch-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:12637
+#: doc/guix.texi:13374
 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:12639
+#: doc/guix.texi:13376
 #, no-wrap
 msgid "@code{package} (default: @var{openvswitch})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12641
+#: doc/guix.texi:13378
 msgid "Package object of the Open vSwitch."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:12648
+#: doc/guix.texi:13385
 #, no-wrap
 msgid "X11"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:12649
+#: doc/guix.texi:13386
 #, no-wrap
 msgid "X Window System"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:12650 doc/guix.texi:12827
+#: doc/guix.texi:13387 doc/guix.texi:13603
 #, no-wrap
 msgid "login manager"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:12655
-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 SLiM."
+#: doc/guix.texi:13392
+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:13393
+#, no-wrap
+msgid "GDM"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:12656
+#: doc/guix.texi:13394
+#, no-wrap
+msgid "GNOME, login manager"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:13398
+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:13399
 #, no-wrap
 msgid "window manager"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:12661
+#: doc/guix.texi:13404
 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:12662
+#: doc/guix.texi:13405
 #, no-wrap
-msgid "{Scheme Variable} slim-service-type"
-msgstr ""
+msgid "{Scheme Variable} gdm-service-type"
+msgstr "{Scheme-Variable} gdm-service-type"
 
 #. type: defvr
-#: doc/guix.texi:12664
-msgid "This is the type for the SLiM graphical login manager for X11."
+#: doc/guix.texi:13410
+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:12665
+#: doc/guix.texi:13411
 #, no-wrap
 msgid "session types (X11)"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:12666
+#: doc/guix.texi:13412
 #, no-wrap
 msgid "X11 session types"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:12673
-msgid "SLiM 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 using @kbd{F1}.  Packages such as @code{xfce}, @code{sawfish}, and @code{ratpoison} provide @file{.desktop} files; adding them to the system-wide set of packages automatically makes them available at the log-in screen."
+#: doc/guix.texi:13418
+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:12677
+#: doc/guix.texi:13422
 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:12679
+#: doc/guix.texi:13424
 #, no-wrap
-msgid "{Data Type} slim-configuration"
+msgid "{Data Type} gdm-configuration"
+msgstr "{Datentyp} gdm-configuration"
+
+#. type: item
+#: doc/guix.texi:13426 doc/guix.texi:13465
+#, no-wrap
+msgid "@code{auto-login?} (default: @code{#f})"
 msgstr ""
 
-#. type: deftp
-#: doc/guix.texi:12681
-msgid "Data type representing the configuration of @code{slim-service-type}."
+#. type: itemx
+#: doc/guix.texi:13427
+#, no-wrap
+msgid "@code{default-user} (default: @code{#f})"
+msgstr "@code{default-user} (Vorgabe: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:13429
+msgid "When @code{auto-login?} is false, GDM presents a log-in screen."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12685
-msgid "Whether to allow logins with empty passwords."
+#: doc/guix.texi:13432
+msgid "When @code{auto-login?} is true, GDM logs in directly as @code{default-user}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12686
+#: doc/guix.texi:13433
 #, no-wrap
-msgid "@code{auto-login?} (default: @code{#f})"
+msgid "@code{gnome-shell-assets} (default: ...)"
+msgstr "@code{gnome-shell-assets} (Vorgabe: …)"
+
+#. type: table
+#: doc/guix.texi:13435
+msgid "List of GNOME Shell assets needed by GDM: icon theme, fonts, etc."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13436
+#, no-wrap
+msgid "@code{xorg-configuration} (default: @code{(xorg-configuration)})"
+msgstr "@code{xorg-configuration} (Vorgabe: @code{(xorg-configuration)})"
+
+#. type: table
+#: doc/guix.texi:13438 doc/guix.texi:13492 doc/guix.texi:13569
+msgid "Configuration of the Xorg graphical server."
+msgstr "Xorg-Server für grafische Oberflächen konfigurieren."
+
+#. type: item
+#: doc/guix.texi:13439
+#, no-wrap
+msgid "@code{xsession} (default: @code{(xinitrc)})"
+msgstr "@code{xsession} (Vorgabe: @code{(xinitrc)})"
+
+#. type: table
+#: doc/guix.texi:13441 doc/guix.texi:13584
+msgid "Script to run before starting a X session."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13442
+#, 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:13444
+msgid "File name of the @code{dbus-daemon} executable."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13445
+#, no-wrap
+msgid "@code{gdm} (default: @code{gdm})"
+msgstr "@code{gdm} (Vorgabe: @code{gdm})"
+
+#. type: table
+#: doc/guix.texi:13447
+msgid "The GDM package to use."
+msgstr "Das GDM-Paket, was benutzt werden soll."
+
+#. type: defvr
+#: doc/guix.texi:13450
+#, no-wrap
+msgid "{Scheme Variable} slim-service-type"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:13452
+msgid "This is the type for the SLiM graphical login manager for X11."
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:13456
+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: deftp
+#: doc/guix.texi:13458
+#, no-wrap
+msgid "{Data Type} slim-configuration"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:13460
+msgid "Data type representing the configuration of @code{slim-service-type}."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:13464
+msgid "Whether to allow logins with empty passwords."
 msgstr ""
 
 #. type: itemx
-#: doc/guix.texi:12687
+#: doc/guix.texi:13466
 #, no-wrap
 msgid "@code{default-user} (default: @code{\"\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12689
+#: doc/guix.texi:13468
 msgid "When @code{auto-login?} is false, SLiM presents a log-in screen."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12692
+#: doc/guix.texi:13471
 msgid "When @code{auto-login?} is true, SLiM logs in directly as @code{default-user}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12693
+#: doc/guix.texi:13472
 #, no-wrap
 msgid "@code{theme} (default: @code{%default-slim-theme})"
 msgstr ""
 
 #. type: itemx
-#: doc/guix.texi:12694
+#: doc/guix.texi:13473
 #, no-wrap
 msgid "@code{theme-name} (default: @code{%default-slim-theme-name})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12696
+#: doc/guix.texi:13475
 msgid "The graphical theme to use and its name."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12697
+#: doc/guix.texi:13476
 #, no-wrap
 msgid "@code{auto-login-session} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12700
+#: doc/guix.texi:13479
 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:12704
+#: doc/guix.texi:13483
 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:12709
+#: doc/guix.texi:13488
 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:12711
+#: doc/guix.texi:13490 doc/guix.texi:13567
 #, no-wrap
-msgid "@code{startx} (default: @code{(xorg-start-command)})"
-msgstr ""
-
-#. type: table
-#: doc/guix.texi:12713
-msgid "The command used to start the X11 graphical server."
-msgstr ""
+msgid "@code{xorg-configuration} (default @code{(xorg-configuration)})"
+msgstr "@code{xorg-configuration} (Vorgabe: @code{(xorg-configuration)})"
 
 #. type: item
-#: doc/guix.texi:12714
+#: doc/guix.texi:13493
 #, no-wrap
 msgid "@code{xauth} (default: @code{xauth})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12716
+#: doc/guix.texi:13495
 msgid "The XAuth package to use."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12717
+#: doc/guix.texi:13496
 #, no-wrap
 msgid "@code{shepherd} (default: @code{shepherd})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12720
+#: doc/guix.texi:13499
 msgid "The Shepherd package used when invoking @command{halt} and @command{reboot}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12721
+#: doc/guix.texi:13500
 #, no-wrap
 msgid "@code{sessreg} (default: @code{sessreg})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12723
+#: doc/guix.texi:13502
 msgid "The sessreg package used in order to register the session."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12724
+#: doc/guix.texi:13503
 #, no-wrap
 msgid "@code{slim} (default: @code{slim})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12726
+#: doc/guix.texi:13505
 msgid "The SLiM package to use."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:12729 doc/guix.texi:22230
+#: doc/guix.texi:13508 doc/guix.texi:24077
 #, no-wrap
 msgid "{Scheme Variable} %default-theme"
 msgstr ""
 
 #. type: defvrx
-#: doc/guix.texi:12730
+#: doc/guix.texi:13509
 #, no-wrap
 msgid "{Scheme Variable} %default-theme-name"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:12732
+#: doc/guix.texi:13511
 msgid "The default SLiM theme and its name."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:12735
+#: doc/guix.texi:13514
 #, no-wrap
 msgid "{Data Type} sddm-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:12737
+#: doc/guix.texi:13516
 msgid "This is the data type representing the sddm service configuration."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12739
+#: doc/guix.texi:13518
 #, no-wrap
 msgid "@code{display-server} (default: \"x11\")"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12742
+#: doc/guix.texi:13521
 msgid "Select display server to use for the greeter. Valid values are \"x11\" or \"wayland\"."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12743
+#: doc/guix.texi:13522
 #, no-wrap
 msgid "@code{numlock} (default: \"on\")"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12745
+#: doc/guix.texi:13524
 msgid "Valid values are \"on\", \"off\" or \"none\"."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12746
+#: doc/guix.texi:13525
 #, no-wrap
 msgid "@code{halt-command} (default @code{#~(string-apppend #$shepherd \"/sbin/halt\")})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12748
+#: doc/guix.texi:13527
 msgid "Command to run when halting."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12749
+#: doc/guix.texi:13528
 #, no-wrap
 msgid "@code{reboot-command} (default @code{#~(string-append #$shepherd \"/sbin/reboot\")})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12751
+#: doc/guix.texi:13530
 msgid "Command to run when rebooting."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12752
+#: doc/guix.texi:13531
 #, no-wrap
 msgid "@code{theme} (default \"maldives\")"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12754
+#: doc/guix.texi:13533
 msgid "Theme to use. Default themes provided by SDDM are \"elarun\" or \"maldives\"."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12755
+#: doc/guix.texi:13534
 #, no-wrap
 msgid "@code{themes-directory} (default \"/run/current-system/profile/share/sddm/themes\")"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12757
+#: doc/guix.texi:13536
 msgid "Directory to look for themes."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12758
+#: doc/guix.texi:13537
 #, no-wrap
 msgid "@code{faces-directory} (default \"/run/current-system/profile/share/sddm/faces\")"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12760
+#: doc/guix.texi:13539
 msgid "Directory to look for faces."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12761
+#: doc/guix.texi:13540
 #, no-wrap
 msgid "@code{default-path} (default \"/run/current-system/profile/bin\")"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12763
+#: doc/guix.texi:13542
 msgid "Default PATH to use."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12764
+#: doc/guix.texi:13543
 #, no-wrap
 msgid "@code{minimum-uid} (default 1000)"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12766
+#: doc/guix.texi:13545
 msgid "Minimum UID to display in SDDM."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12767
+#: doc/guix.texi:13546
 #, no-wrap
 msgid "@code{maximum-uid} (default 2000)"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12769
+#: doc/guix.texi:13548
 msgid "Maximum UID to display in SDDM"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12770
+#: doc/guix.texi:13549
 #, no-wrap
 msgid "@code{remember-last-user?} (default #t)"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12772
+#: doc/guix.texi:13551
 msgid "Remember last user."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12773
+#: doc/guix.texi:13552
 #, no-wrap
 msgid "@code{remember-last-session?} (default #t)"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12775
+#: doc/guix.texi:13554
 msgid "Remember last session."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12776
+#: doc/guix.texi:13555
 #, no-wrap
 msgid "@code{hide-users} (default \"\")"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12778
+#: doc/guix.texi:13557
 msgid "Usernames to hide from SDDM greeter."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12779
+#: doc/guix.texi:13558
 #, no-wrap
 msgid "@code{hide-shells} (default @code{#~(string-append #$shadow \"/sbin/nologin\")})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12781
+#: doc/guix.texi:13560
 msgid "Users with shells listed will be hidden from the SDDM greeter."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12782
+#: doc/guix.texi:13561
 #, no-wrap
 msgid "@code{session-command} (default @code{#~(string-append #$sddm \"/share/sddm/scripts/wayland-session\")})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12784
+#: doc/guix.texi:13563
 msgid "Script to run before starting a wayland session."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12785
+#: doc/guix.texi:13564
 #, no-wrap
 msgid "@code{sessions-directory} (default \"/run/current-system/profile/share/wayland-sessions\")"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12787
+#: doc/guix.texi:13566
 msgid "Directory to look for desktop files starting wayland sessions."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12788
-#, no-wrap
-msgid "@code{xorg-server-path} (default @code{xorg-start-command})"
-msgstr ""
-
-#. type: table
-#: doc/guix.texi:12790
-msgid "Path to xorg-server."
-msgstr ""
-
-#. type: item
-#: doc/guix.texi:12791
+#: doc/guix.texi:13570
 #, no-wrap
 msgid "@code{xauth-path} (default @code{#~(string-append #$xauth \"/bin/xauth\")})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12793
+#: doc/guix.texi:13572
 msgid "Path to xauth."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12794
+#: doc/guix.texi:13573
 #, no-wrap
 msgid "@code{xephyr-path} (default @code{#~(string-append #$xorg-server \"/bin/Xephyr\")})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12796
+#: doc/guix.texi:13575
 msgid "Path to Xephyr."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12797
+#: doc/guix.texi:13576
 #, no-wrap
 msgid "@code{xdisplay-start} (default @code{#~(string-append #$sddm \"/share/sddm/scripts/Xsetup\")})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12799
+#: doc/guix.texi:13578
 msgid "Script to run after starting xorg-server."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12800
+#: doc/guix.texi:13579
 #, no-wrap
 msgid "@code{xdisplay-stop} (default @code{#~(string-append #$sddm \"/share/sddm/scripts/Xstop\")})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12802
+#: doc/guix.texi:13581
 msgid "Script to run before stopping xorg-server."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12803
+#: doc/guix.texi:13582
 #, no-wrap
 msgid "@code{xsession-command} (default: @code{xinitrc})"
 msgstr "@code{xsession-command} (Vorgabe: @code{xinitrc})"
 
-#. type: table
-#: doc/guix.texi:12805
-msgid "Script to run before starting a X session."
-msgstr ""
-
 #. type: item
-#: doc/guix.texi:12806
+#: doc/guix.texi:13585
 #, no-wrap
 msgid "@code{xsessions-directory} (default: \"/run/current-system/profile/share/xsessions\")"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12808
+#: doc/guix.texi:13587
 msgid "Directory to look for desktop files starting X sessions."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12809
+#: doc/guix.texi:13588
 #, no-wrap
 msgid "@code{minimum-vt} (default: 7)"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12811
+#: doc/guix.texi:13590
 msgid "Minimum VT to use."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12812
-#, no-wrap
-msgid "@code{xserver-arguments} (default \"-nolisten tcp\")"
-msgstr ""
-
-#. type: table
-#: doc/guix.texi:12814
-msgid "Arguments to pass to xorg-server."
-msgstr ""
-
-#. type: item
-#: doc/guix.texi:12815
+#: doc/guix.texi:13591
 #, no-wrap
 msgid "@code{auto-login-user} (default \"\")"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12817
+#: doc/guix.texi:13593
 msgid "User to use for auto-login."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12818
+#: doc/guix.texi:13594
 #, no-wrap
 msgid "@code{auto-login-session} (default \"\")"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12820
+#: doc/guix.texi:13596
 msgid "Desktop file to use for auto-login."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:12821
+#: doc/guix.texi:13597
 #, no-wrap
 msgid "@code{relogin?} (default #f)"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:12823
+#: doc/guix.texi:13599
 msgid "Relogin after logout."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:12828
+#: doc/guix.texi:13604
 #, no-wrap
 msgid "X11 login"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:12829
+#: doc/guix.texi:13605
 #, no-wrap
 msgid "{Scheme Procedure} sddm-service config"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:12832
+#: doc/guix.texi:13608
 msgid "Return a service that spawns the SDDM graphical login manager for config of type @code{<sddm-configuration>}."
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:12837
+#: doc/guix.texi:13613
 #, no-wrap
 msgid ""
 "  (sddm-service (sddm-configuration\n"
@@ -23122,158 +25150,216 @@ msgid ""
 "                 (auto-login-session \"xfce.desktop\")))\n"
 msgstr ""
 
-#. type: deffn
-#: doc/guix.texi:12840
+#. type: cindex
+#: doc/guix.texi:13616
 #, no-wrap
-msgid "{Scheme Procedure} xorg-start-command [#:guile] @"
+msgid "Xorg, configuration"
+msgstr "Xorg, Konfiguration"
+
+#. type: deftp
+#: doc/guix.texi:13617
+#, no-wrap
+msgid "{Data Type} xorg-configuration"
+msgstr "{Datentyp} xorg-configuration"
+
+#. type: deftp
+#: doc/guix.texi:13622
+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 ""
 
-#. type: deffn
-#: doc/guix.texi:12849
-msgid "[#:modules %default-xorg-modules] @ [#:fonts %default-xorg-fonts] @ [#:configuration-file (xorg-configuration-file @dots{})] @ [#:xorg-server @var{xorg-server}] Return a @code{startx} script in which @var{modules}, a list of X module packages, and @var{fonts}, a list of X font directories, are available.  See @code{xorg-wrapper} for more details on the arguments.  The result should be used in place of @code{startx}."
+#. type: item
+#: doc/guix.texi:13624
+#, no-wrap
+msgid "@code{modules} (default: @code{%default-xorg-modules})"
+msgstr "@code{modules} (Vorgabe: @code{%default-xorg-modules})"
+
+#. type: table
+#: doc/guix.texi:13627
+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: deffn
-#: doc/guix.texi:12851
-msgid "Usually the X server is started by a login manager."
+#. type: item
+#: doc/guix.texi:13628
+#, no-wrap
+msgid "@code{fonts} (default: @code{%default-xorg-fonts})"
+msgstr "@code{fonts} (Vorgabe: @code{%default-xorg-fonts})"
+
+#. type: table
+#: doc/guix.texi:13630
+msgid "This is a list of font directories to add to the server's @dfn{font path}."
 msgstr ""
 
-#. type: deffn
-#: doc/guix.texi:12853
+#. type: item
+#: doc/guix.texi:13631
 #, no-wrap
-msgid "{Scheme Procedure} xorg-configuration-file @"
+msgid "@code{drivers} (default: @code{'()})"
+msgstr "@code{drivers} (Vorgabe: @code{'()})"
+
+#. type: table
+#: doc/guix.texi:13635
+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: deffn
-#: doc/guix.texi:12859
-msgid "[#:modules %default-xorg-modules] @ [#:fonts %default-xorg-fonts] @ [#:drivers '()] [#:resolutions '()] [#:extra-config '()] Return a configuration file for the Xorg server containing search paths for all the common drivers."
+#. type: item
+#: doc/guix.texi:13636
+#, no-wrap
+msgid "@code{resolutions} (default: @code{'()})"
+msgstr "@code{resolutions} (Vorgabe: @code{'()})"
+
+#. type: table
+#: doc/guix.texi:13640
+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: deffn
-#: doc/guix.texi:12864
-msgid "@var{modules} must be a list of @dfn{module packages} loaded by the Xorg server---e.g., @code{xf86-video-vesa}, @code{xf86-input-keyboard}, and so on.  @var{fonts} must be a list of font directories to add to the server's @dfn{font path}."
+#. type: cindex
+#: doc/guix.texi:13641
+#, no-wrap
+msgid "keyboard layout, for Xorg"
+msgstr "Tastaturbelegung, für Xorg"
+
+#. type: cindex
+#: doc/guix.texi:13642
+#, no-wrap
+msgid "keymap, for Xorg"
 msgstr ""
 
-#. type: deffn
-#: doc/guix.texi:12868
-msgid "@var{drivers} 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\")}."
+#. type: table
+#: doc/guix.texi:13646
+msgid "If this is @code{#f}, Xorg uses the default keyboard layout---usually US English (``qwerty'') for a 105-key PC keyboard."
 msgstr ""
 
-#. type: deffn
-#: doc/guix.texi:12872
-msgid "Likewise, when @var{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))}."
+#. type: table
+#: doc/guix.texi:13650
+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: deffn
-#: doc/guix.texi:12876
-msgid "Last, @var{extra-config} 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."
+#. type: item
+#: doc/guix.texi:13651
+#, no-wrap
+msgid "@code{extra-config} (default: @code{'()})"
+msgstr "@code{extra-config} (Vorgabe: @code{'()})"
+
+#. type: table
+#: doc/guix.texi:13654
+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: deffn
-#: doc/guix.texi:12882
-msgid "This procedure is especially useful to configure a different keyboard layout than the default US keymap.  For instance, to use the ``bépo'' keymap by default on the display manager:"
+#. type: item
+#: doc/guix.texi:13655
+#, no-wrap
+msgid "@code{server} (default: @code{xorg-server})"
+msgstr "@code{server} (Vorgabe: @code{xorg-server})"
+
+#. type: table
+#: doc/guix.texi:13657
+msgid "This is the package providing the Xorg server."
 msgstr ""
 
-#. type: example
-#: doc/guix.texi:12892
+#. type: item
+#: doc/guix.texi:13658
 #, no-wrap
-msgid ""
-"(define bepo-evdev\n"
-"  \"Section \\\"InputClass\\\"\n"
-"        Identifier \\\"evdev keyboard catchall\\\"\n"
-"        Driver \\\"evdev\\\"\n"
-"        MatchIsKeyboard \\\"on\\\"\n"
-"        Option \\\"xkb_layout\\\" \\\"fr\\\"\n"
-"        Option \\\"xkb_variant\\\" \\\"bepo\\\"\n"
-"EndSection\")\n"
-"\n"
+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:13661
+msgid "This is the list of command-line arguments to pass to the X server.  The default is @code{-nolisten tcp}."
 msgstr ""
 
-#. type: example
-#: doc/guix.texi:12905
+#. type: deffn
+#: doc/guix.texi:13664
 #, no-wrap
-msgid ""
-"(operating-system\n"
-"  ...\n"
-"  (services\n"
-"    (modify-services %desktop-services\n"
-"      (slim-service-type config =>\n"
-"        (slim-configuration\n"
-"          (inherit config)\n"
-"          (startx (xorg-start-command\n"
-"                   #:configuration-file\n"
-"                   (xorg-configuration-file\n"
-"                     #:extra-config\n"
-"                     (list bepo-evdev)))))))))\n"
+msgid "{Scheme Procedure} set-xorg-configuration @var{config} @"
+msgstr "{Scheme-Prozedur} set-xorg-configuration @var{Konfiguration} @"
+
+#. type: deffn
+#: doc/guix.texi:13668
+msgid "[@var{login-manager-service-type}] Tell the log-in manager (of type @var{login-manager-service-type}) to use @var{config}, an <xorg-configuration> record."
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:13672
+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:12914
-msgid "The @code{MatchIsKeyboard} line specifies that we only apply the configuration to keyboards.  Without this line, other devices such as touchpad may not work correctly because they will be attached to the wrong driver.  In this example, the user typically used @code{setxkbmap fr bepo} to set their favorite keymap once logged in.  The first argument corresponds to the layout, while the second argument corresponds to the variant.  The @code{xkb_variant} line can be omitted to select the default variant."
+#: doc/guix.texi:13674
+#, no-wrap
+msgid "{Scheme Procedure} xorg-start-command [@var{config}]"
+msgstr "{Scheme-Prozedur} xorg-start-command [@var{Konfiguration}]"
+
+#. type: deffn
+#: doc/guix.texi:13678
+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:13680
+msgid "Usually the X server is started by a login manager."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:12916
+#: doc/guix.texi:13683
 #, no-wrap
 msgid "{Scheme Procedure} screen-locker-service @var{package} [@var{program}]"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:12920
+#: doc/guix.texi:13687
 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:12923
+#: doc/guix.texi:13690
 #, no-wrap
 msgid "(screen-locker-service xlockmore \"xlock\")\n"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:12926
+#: doc/guix.texi:13693
 msgid "makes the good ol' XlockMore usable."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:12932
+#: doc/guix.texi:13699
 #, no-wrap
 msgid "printer support with CUPS"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:12936
-msgid "The @code{(gnu services cups)} module provides a Guix service definition for the CUPS printing service.  To add printer support to a GuixSD system, add a @code{cups-service} to the operating system definition:"
-msgstr ""
+#: doc/guix.texi:13703
+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:12937
+#: doc/guix.texi:13704
 #, no-wrap
 msgid "{Scheme Variable} cups-service-type"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:12941
+#: doc/guix.texi:13708
 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: example
-#: doc/guix.texi:12943
+#: doc/guix.texi:13710
 #, no-wrap
 msgid "(service cups-service-type)\n"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:12953
+#: doc/guix.texi:13720
 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:12958
+#: doc/guix.texi:13725
 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: example
-#: doc/guix.texi:12965
+#: doc/guix.texi:13732
 #, no-wrap
 msgid ""
 "(service cups-service-type\n"
@@ -23284,1532 +25370,1535 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:12970
+#: doc/guix.texi:13737
 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:12977
+#: doc/guix.texi:13744
 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:12988
+#: doc/guix.texi:13755
 msgid "Available @code{cups-configuration} fields are:"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:12989
+#: doc/guix.texi:13756
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} package cups"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:12991 doc/guix.texi:13748
+#: doc/guix.texi:13758 doc/guix.texi:14515
 msgid "The CUPS package."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:12993
+#: doc/guix.texi:13760
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} package-list extensions"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:12995
+#: doc/guix.texi:13762
 msgid "Drivers and other extensions to the CUPS package."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:12997
+#: doc/guix.texi:13764
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} files-configuration files-configuration"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13000
+#: doc/guix.texi:13767
 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:13002
+#: doc/guix.texi:13769
 msgid "Available @code{files-configuration} fields are:"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13003
+#: doc/guix.texi:13770
 #, no-wrap
 msgid "{@code{files-configuration} parameter} log-location access-log"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13011
+#: doc/guix.texi:13778
 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:13013
+#: doc/guix.texi:13780
 msgid "Defaults to @samp{\"/var/log/cups/access_log\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13015
+#: doc/guix.texi:13782
 #, no-wrap
 msgid "{@code{files-configuration} parameter} file-name cache-dir"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13017
+#: doc/guix.texi:13784
 msgid "Where CUPS should cache data."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13019
+#: doc/guix.texi:13786
 msgid "Defaults to @samp{\"/var/cache/cups\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13021
+#: doc/guix.texi:13788
 #, no-wrap
 msgid "{@code{files-configuration} parameter} string config-file-perm"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13024
+#: doc/guix.texi:13791
 msgid "Specifies the permissions for all configuration files that the scheduler writes."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13030
+#: doc/guix.texi:13797
 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:13032
+#: doc/guix.texi:13799
 msgid "Defaults to @samp{\"0640\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13034
+#: doc/guix.texi:13801
 #, no-wrap
 msgid "{@code{files-configuration} parameter} log-location error-log"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13042
+#: doc/guix.texi:13809
 msgid "Defines the error 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-error_log}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13044
+#: doc/guix.texi:13811
 msgid "Defaults to @samp{\"/var/log/cups/error_log\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13046
+#: doc/guix.texi:13813
 #, no-wrap
 msgid "{@code{files-configuration} parameter} string fatal-errors"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13049
+#: doc/guix.texi:13816
 msgid "Specifies which errors are fatal, causing the scheduler to exit.  The kind strings are:"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:13053
+#: doc/guix.texi:13820
 msgid "No errors are fatal."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:13056
+#: doc/guix.texi:13823
 msgid "All of the errors below are fatal."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:13057
+#: doc/guix.texi:13824
 #, no-wrap
 msgid "browse"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:13060
+#: doc/guix.texi:13827
 msgid "Browsing initialization errors are fatal, for example failed connections to the DNS-SD daemon."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:13061
+#: doc/guix.texi:13828
 #, no-wrap
 msgid "config"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:13063
+#: doc/guix.texi:13830
 msgid "Configuration file syntax errors are fatal."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:13064
+#: doc/guix.texi:13831
 #, no-wrap
 msgid "listen"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:13067
+#: doc/guix.texi:13834
 msgid "Listen or Port errors are fatal, except for IPv6 failures on the loopback or @code{any} addresses."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:13068
+#: doc/guix.texi:13835
 #, no-wrap
 msgid "log"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:13070
+#: doc/guix.texi:13837
 msgid "Log file creation or write errors are fatal."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:13071
+#: doc/guix.texi:13838
 #, no-wrap
 msgid "permissions"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:13074
+#: doc/guix.texi:13841
 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:13077
+#: doc/guix.texi:13844
 msgid "Defaults to @samp{\"all -browse\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13079
+#: doc/guix.texi:13846
 #, no-wrap
 msgid "{@code{files-configuration} parameter} boolean file-device?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13082
+#: doc/guix.texi:13849
 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:13084 doc/guix.texi:13154 doc/guix.texi:13190
-#: doc/guix.texi:13202 doc/guix.texi:13208 doc/guix.texi:13224
-#: doc/guix.texi:13312 doc/guix.texi:13406 doc/guix.texi:13722
-#: doc/guix.texi:13735 doc/guix.texi:18368 doc/guix.texi:18382
-#: doc/guix.texi:18504 doc/guix.texi:18525 doc/guix.texi:18546
-#: doc/guix.texi:18553 doc/guix.texi:18598 doc/guix.texi:18605
-#: doc/guix.texi:19032 doc/guix.texi:19046 doc/guix.texi:19218
-#: doc/guix.texi:19263 doc/guix.texi:19350 doc/guix.texi:19482
-#: doc/guix.texi:19515 doc/guix.texi:19655 doc/guix.texi:19666
-#: doc/guix.texi:19916 doc/guix.texi:20558 doc/guix.texi:20567
-#: doc/guix.texi:20575 doc/guix.texi:20583 doc/guix.texi:20599
-#: doc/guix.texi:20615 doc/guix.texi:20623 doc/guix.texi:20631
-#: doc/guix.texi:20640 doc/guix.texi:20649 doc/guix.texi:20665
-#: doc/guix.texi:20729 doc/guix.texi:20835 doc/guix.texi:20843
-#: doc/guix.texi:20851 doc/guix.texi:20876 doc/guix.texi:20930
-#: doc/guix.texi:20978 doc/guix.texi:21179 doc/guix.texi:21186
+#: doc/guix.texi:13851 doc/guix.texi:13921 doc/guix.texi:13957
+#: doc/guix.texi:13969 doc/guix.texi:13975 doc/guix.texi:13991
+#: doc/guix.texi:14079 doc/guix.texi:14173 doc/guix.texi:14489
+#: doc/guix.texi:14502 doc/guix.texi:20124 doc/guix.texi:20138
+#: doc/guix.texi:20260 doc/guix.texi:20281 doc/guix.texi:20302
+#: doc/guix.texi:20309 doc/guix.texi:20354 doc/guix.texi:20361
+#: doc/guix.texi:20788 doc/guix.texi:20802 doc/guix.texi:20974
+#: doc/guix.texi:21019 doc/guix.texi:21106 doc/guix.texi:21247
+#: doc/guix.texi:21280 doc/guix.texi:21420 doc/guix.texi:21431
+#: doc/guix.texi:21681 doc/guix.texi:22323 doc/guix.texi:22332
+#: doc/guix.texi:22340 doc/guix.texi:22348 doc/guix.texi:22364
+#: doc/guix.texi:22380 doc/guix.texi:22388 doc/guix.texi:22396
+#: doc/guix.texi:22405 doc/guix.texi:22414 doc/guix.texi:22430
+#: doc/guix.texi:22494 doc/guix.texi:22600 doc/guix.texi:22608
+#: doc/guix.texi:22616 doc/guix.texi:22641 doc/guix.texi:22695
+#: doc/guix.texi:22743 doc/guix.texi:22944 doc/guix.texi:22951
 msgid "Defaults to @samp{#f}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13086
+#: doc/guix.texi:13853
 #, no-wrap
 msgid "{@code{files-configuration} parameter} string group"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13089
+#: doc/guix.texi:13856
 msgid "Specifies the group name or ID that will be used when executing external programs."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13091 doc/guix.texi:13171
+#: doc/guix.texi:13858 doc/guix.texi:13938
 msgid "Defaults to @samp{\"lp\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13093
+#: doc/guix.texi:13860
 #, no-wrap
 msgid "{@code{files-configuration} parameter} string log-file-perm"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13095
+#: doc/guix.texi:13862
 msgid "Specifies the permissions for all log files that the scheduler writes."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13097
+#: doc/guix.texi:13864
 msgid "Defaults to @samp{\"0644\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13099
+#: doc/guix.texi:13866
 #, no-wrap
 msgid "{@code{files-configuration} parameter} log-location page-log"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13107
+#: doc/guix.texi:13874
 msgid "Defines the page 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-page_log}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13109
+#: doc/guix.texi:13876
 msgid "Defaults to @samp{\"/var/log/cups/page_log\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13111
+#: doc/guix.texi:13878
 #, no-wrap
 msgid "{@code{files-configuration} parameter} string remote-root"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13114
+#: doc/guix.texi:13881
 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:13116
+#: doc/guix.texi:13883
 msgid "Defaults to @samp{\"remroot\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13118
+#: doc/guix.texi:13885
 #, no-wrap
 msgid "{@code{files-configuration} parameter} file-name request-root"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13121
+#: doc/guix.texi:13888
 msgid "Specifies the directory that contains print jobs and other HTTP request data."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13123
+#: doc/guix.texi:13890
 msgid "Defaults to @samp{\"/var/spool/cups\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13125
+#: doc/guix.texi:13892
 #, no-wrap
 msgid "{@code{files-configuration} parameter} sandboxing sandboxing"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13130
+#: doc/guix.texi:13897
 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:13132
+#: doc/guix.texi:13899
 msgid "Defaults to @samp{strict}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13134
+#: doc/guix.texi:13901
 #, no-wrap
 msgid "{@code{files-configuration} parameter} file-name server-keychain"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13139
+#: doc/guix.texi:13906
 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 ""
 
 #. type: deftypevr
-#: doc/guix.texi:13141
+#: doc/guix.texi:13908
 msgid "Defaults to @samp{\"/etc/cups/ssl\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13143
+#: doc/guix.texi:13910
 #, no-wrap
 msgid "{@code{files-configuration} parameter} file-name server-root"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13145
+#: doc/guix.texi:13912
 msgid "Specifies the directory containing the server configuration files."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13147
+#: doc/guix.texi:13914
 msgid "Defaults to @samp{\"/etc/cups\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13149
+#: doc/guix.texi:13916
 #, no-wrap
 msgid "{@code{files-configuration} parameter} boolean sync-on-close?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13152
+#: doc/guix.texi:13919
 msgid "Specifies whether the scheduler calls fsync(2) after writing configuration or state files."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13156
+#: doc/guix.texi:13923
 #, no-wrap
 msgid "{@code{files-configuration} parameter} space-separated-string-list system-group"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13158
+#: doc/guix.texi:13925
 msgid "Specifies the group(s) to use for @code{@@SYSTEM} group authentication."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13160
+#: doc/guix.texi:13927
 #, no-wrap
 msgid "{@code{files-configuration} parameter} file-name temp-dir"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13162
+#: doc/guix.texi:13929
 msgid "Specifies the directory where temporary files are stored."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13164
+#: doc/guix.texi:13931
 msgid "Defaults to @samp{\"/var/spool/cups/tmp\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13166
+#: doc/guix.texi:13933
 #, no-wrap
 msgid "{@code{files-configuration} parameter} string user"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13169
+#: doc/guix.texi:13936
 msgid "Specifies the user name or ID that is used when running external programs."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13174
+#: doc/guix.texi:13941
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} access-log-level access-log-level"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13181
+#: doc/guix.texi:13948
 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:13183
+#: doc/guix.texi:13950
 msgid "Defaults to @samp{actions}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13185
+#: doc/guix.texi:13952
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} boolean auto-purge-jobs?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13188
+#: doc/guix.texi:13955
 msgid "Specifies whether to purge job history data automatically when it is no longer required for quotas."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13192
+#: doc/guix.texi:13959
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} browse-local-protocols browse-local-protocols"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13194
+#: doc/guix.texi:13961
 msgid "Specifies which protocols to use for local printer sharing."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13196
+#: doc/guix.texi:13963
 msgid "Defaults to @samp{dnssd}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13198
+#: doc/guix.texi:13965
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} boolean browse-web-if?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13200
+#: doc/guix.texi:13967
 msgid "Specifies whether the CUPS web interface is advertised."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13204
+#: doc/guix.texi:13971
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} boolean browsing?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13206
+#: doc/guix.texi:13973
 msgid "Specifies whether shared printers are advertised."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13210
+#: doc/guix.texi:13977
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} string classification"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13215
+#: doc/guix.texi:13982
 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:13217 doc/guix.texi:13554 doc/guix.texi:15028
-#: doc/guix.texi:15040 doc/guix.texi:19621 doc/guix.texi:19629
-#: doc/guix.texi:19637 doc/guix.texi:19645 doc/guix.texi:19923
-#: doc/guix.texi:20401 doc/guix.texi:20409 doc/guix.texi:20417
-#: doc/guix.texi:20525 doc/guix.texi:20550 doc/guix.texi:20681
-#: doc/guix.texi:20689 doc/guix.texi:20697 doc/guix.texi:20705
-#: doc/guix.texi:20713 doc/guix.texi:20721 doc/guix.texi:20744
-#: doc/guix.texi:20752 doc/guix.texi:20804 doc/guix.texi:20820
-#: doc/guix.texi:20828 doc/guix.texi:20867 doc/guix.texi:20890
-#: doc/guix.texi:20912 doc/guix.texi:20919 doc/guix.texi:20954
-#: doc/guix.texi:20962 doc/guix.texi:20986 doc/guix.texi:21018
-#: doc/guix.texi:21047 doc/guix.texi:21054 doc/guix.texi:21061
-#: doc/guix.texi:21069 doc/guix.texi:21083 doc/guix.texi:21092
-#: doc/guix.texi:21102 doc/guix.texi:21109 doc/guix.texi:21116
-#: doc/guix.texi:21123 doc/guix.texi:21194 doc/guix.texi:21201
-#: doc/guix.texi:21208 doc/guix.texi:21217 doc/guix.texi:21233
-#: doc/guix.texi:21240 doc/guix.texi:21247 doc/guix.texi:21254
-#: doc/guix.texi:21262 doc/guix.texi:21270
+#: doc/guix.texi:13984 doc/guix.texi:14321 doc/guix.texi:15924
+#: doc/guix.texi:15936 doc/guix.texi:17638 doc/guix.texi:17664
+#: doc/guix.texi:17700 doc/guix.texi:17765 doc/guix.texi:17804
+#: doc/guix.texi:17863 doc/guix.texi:17872 doc/guix.texi:21386
+#: doc/guix.texi:21394 doc/guix.texi:21402 doc/guix.texi:21410
+#: doc/guix.texi:21688 doc/guix.texi:22166 doc/guix.texi:22174
+#: doc/guix.texi:22182 doc/guix.texi:22290 doc/guix.texi:22315
+#: doc/guix.texi:22446 doc/guix.texi:22454 doc/guix.texi:22462
+#: doc/guix.texi:22470 doc/guix.texi:22478 doc/guix.texi:22486
+#: doc/guix.texi:22509 doc/guix.texi:22517 doc/guix.texi:22569
+#: doc/guix.texi:22585 doc/guix.texi:22593 doc/guix.texi:22632
+#: doc/guix.texi:22655 doc/guix.texi:22677 doc/guix.texi:22684
+#: doc/guix.texi:22719 doc/guix.texi:22727 doc/guix.texi:22751
+#: doc/guix.texi:22783 doc/guix.texi:22812 doc/guix.texi:22819
+#: doc/guix.texi:22826 doc/guix.texi:22834 doc/guix.texi:22848
+#: doc/guix.texi:22857 doc/guix.texi:22867 doc/guix.texi:22874
+#: doc/guix.texi:22881 doc/guix.texi:22888 doc/guix.texi:22959
+#: doc/guix.texi:22966 doc/guix.texi:22973 doc/guix.texi:22982
+#: doc/guix.texi:22998 doc/guix.texi:23005 doc/guix.texi:23012
+#: doc/guix.texi:23019 doc/guix.texi:23027 doc/guix.texi:23035
 msgid "Defaults to @samp{\"\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13219
+#: doc/guix.texi:13986
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} boolean classify-override?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13222
+#: doc/guix.texi:13989
 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:13226
+#: doc/guix.texi:13993
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} default-auth-type default-auth-type"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13228
+#: doc/guix.texi:13995
 msgid "Specifies the default type of authentication to use."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13230
+#: doc/guix.texi:13997
 msgid "Defaults to @samp{Basic}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13232
+#: doc/guix.texi:13999
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} default-encryption default-encryption"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13234
+#: doc/guix.texi:14001
 msgid "Specifies whether encryption will be used for authenticated requests."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13236
+#: doc/guix.texi:14003
 msgid "Defaults to @samp{Required}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13238
+#: doc/guix.texi:14005
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} string default-language"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13240
+#: doc/guix.texi:14007
 msgid "Specifies the default language to use for text and web content."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13242
+#: doc/guix.texi:14009
 msgid "Defaults to @samp{\"en\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13244
+#: doc/guix.texi:14011
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} string default-paper-size"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13249
+#: doc/guix.texi:14016
 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:13251
+#: doc/guix.texi:14018
 msgid "Defaults to @samp{\"Auto\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13253
+#: doc/guix.texi:14020
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} string default-policy"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13255
+#: doc/guix.texi:14022
 msgid "Specifies the default access policy to use."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13257
+#: doc/guix.texi:14024
 msgid "Defaults to @samp{\"default\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13259
+#: doc/guix.texi:14026
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} boolean default-shared?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13261
+#: doc/guix.texi:14028
 msgid "Specifies whether local printers are shared by default."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13263 doc/guix.texi:13343 doc/guix.texi:13639
-#: doc/guix.texi:18190 doc/guix.texi:18218 doc/guix.texi:18338
-#: doc/guix.texi:18345 doc/guix.texi:18353 doc/guix.texi:18375
-#: doc/guix.texi:18389 doc/guix.texi:18474 doc/guix.texi:18481
-#: doc/guix.texi:18489 doc/guix.texi:18899 doc/guix.texi:19039
-#: doc/guix.texi:19225 doc/guix.texi:19232 doc/guix.texi:19254
-#: doc/guix.texi:19293 doc/guix.texi:19313 doc/guix.texi:19327
-#: doc/guix.texi:19470 doc/guix.texi:20503 doc/guix.texi:20591
-#: doc/guix.texi:20607 doc/guix.texi:20657
+#: doc/guix.texi:14030 doc/guix.texi:14110 doc/guix.texi:14406
+#: doc/guix.texi:19946 doc/guix.texi:19974 doc/guix.texi:20094
+#: doc/guix.texi:20101 doc/guix.texi:20109 doc/guix.texi:20131
+#: doc/guix.texi:20145 doc/guix.texi:20230 doc/guix.texi:20237
+#: doc/guix.texi:20245 doc/guix.texi:20655 doc/guix.texi:20795
+#: doc/guix.texi:20981 doc/guix.texi:20988 doc/guix.texi:21010
+#: doc/guix.texi:21049 doc/guix.texi:21069 doc/guix.texi:21083
+#: doc/guix.texi:21235 doc/guix.texi:22268 doc/guix.texi:22356
+#: doc/guix.texi:22372 doc/guix.texi:22422
 msgid "Defaults to @samp{#t}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13265
+#: doc/guix.texi:14032
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} non-negative-integer dirty-clean-interval"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13269
+#: doc/guix.texi:14036
 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:13271 doc/guix.texi:13319 doc/guix.texi:13328
-#: doc/guix.texi:13349 doc/guix.texi:13646
+#: doc/guix.texi:14038 doc/guix.texi:14086 doc/guix.texi:14095
+#: doc/guix.texi:14116 doc/guix.texi:14413
 msgid "Defaults to @samp{30}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13273
+#: doc/guix.texi:14040
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} error-policy error-policy"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13279
+#: doc/guix.texi:14046
 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 ""
 
 #. type: deftypevr
-#: doc/guix.texi:13281
+#: doc/guix.texi:14048
 msgid "Defaults to @samp{stop-printer}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13283
+#: doc/guix.texi:14050
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} non-negative-integer filter-limit"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13291
+#: doc/guix.texi:14058
 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:13293 doc/guix.texi:13301 doc/guix.texi:13356
-#: doc/guix.texi:13472 doc/guix.texi:13486 doc/guix.texi:13493
-#: doc/guix.texi:14470 doc/guix.texi:14486 doc/guix.texi:15132
-#: doc/guix.texi:15144 doc/guix.texi:18915 doc/guix.texi:19240
-#: doc/guix.texi:20496 doc/guix.texi:20796 doc/guix.texi:20970
+#: doc/guix.texi:14060 doc/guix.texi:14068 doc/guix.texi:14123
+#: doc/guix.texi:14239 doc/guix.texi:14253 doc/guix.texi:14260
+#: doc/guix.texi:15366 doc/guix.texi:15382 doc/guix.texi:16028
+#: doc/guix.texi:16040 doc/guix.texi:20671 doc/guix.texi:20996
+#: doc/guix.texi:22261 doc/guix.texi:22561 doc/guix.texi:22735
 msgid "Defaults to @samp{0}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13295
+#: doc/guix.texi:14062
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} non-negative-integer filter-nice"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13299
+#: doc/guix.texi:14066
 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:13303
+#: doc/guix.texi:14070
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} host-name-lookups host-name-lookups"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13310
+#: doc/guix.texi:14077
 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:13314
+#: doc/guix.texi:14081
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} non-negative-integer job-kill-delay"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13317
+#: doc/guix.texi:14084
 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:13321
+#: doc/guix.texi:14088
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} non-negative-integer job-retry-interval"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13326
+#: doc/guix.texi:14093
 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:13330
+#: doc/guix.texi:14097
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} non-negative-integer job-retry-limit"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13335
+#: doc/guix.texi:14102
 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:13337 doc/guix.texi:19722 doc/guix.texi:19742
-#: doc/guix.texi:19758 doc/guix.texi:19772 doc/guix.texi:19779
-#: doc/guix.texi:19786 doc/guix.texi:19793 doc/guix.texi:19952
-#: doc/guix.texi:19968 doc/guix.texi:19975 doc/guix.texi:19982
-#: doc/guix.texi:19993 doc/guix.texi:20448 doc/guix.texi:20456
-#: doc/guix.texi:20464 doc/guix.texi:20488
+#: doc/guix.texi:14104 doc/guix.texi:21487 doc/guix.texi:21507
+#: doc/guix.texi:21523 doc/guix.texi:21537 doc/guix.texi:21544
+#: doc/guix.texi:21551 doc/guix.texi:21558 doc/guix.texi:21717
+#: doc/guix.texi:21733 doc/guix.texi:21740 doc/guix.texi:21747
+#: doc/guix.texi:21758 doc/guix.texi:22213 doc/guix.texi:22221
+#: doc/guix.texi:22229 doc/guix.texi:22253
 msgid "Defaults to @samp{5}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13339
+#: doc/guix.texi:14106
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} boolean keep-alive?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13341
+#: doc/guix.texi:14108
 msgid "Specifies whether to support HTTP keep-alive connections."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13345
+#: doc/guix.texi:14112
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} non-negative-integer keep-alive-timeout"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13347
+#: doc/guix.texi:14114
 msgid "Specifies how long an idle client connection remains open, in seconds."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13351
+#: doc/guix.texi:14118
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} non-negative-integer limit-request-body"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13354
+#: doc/guix.texi:14121
 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:13358
+#: doc/guix.texi:14125
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} multiline-string-list listen"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13365
+#: doc/guix.texi:14132
 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:13367
+#: doc/guix.texi:14134
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} non-negative-integer listen-back-log"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13374
+#: doc/guix.texi:14141
 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:13376
+#: doc/guix.texi:14143
 msgid "Defaults to @samp{128}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13378
+#: doc/guix.texi:14145
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} location-access-control-list location-access-controls"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13380
+#: doc/guix.texi:14147
 msgid "Specifies a set of additional access controls."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13382
+#: doc/guix.texi:14149
 msgid "Available @code{location-access-controls} fields are:"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13383
+#: doc/guix.texi:14150
 #, no-wrap
 msgid "{@code{location-access-controls} parameter} file-name path"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13385
+#: doc/guix.texi:14152
 msgid "Specifies the URI path to which the access control applies."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13387
+#: doc/guix.texi:14154
 #, no-wrap
 msgid "{@code{location-access-controls} parameter} access-control-list access-controls"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13390
+#: doc/guix.texi:14157
 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:13392 doc/guix.texi:13398 doc/guix.texi:13412
-#: doc/guix.texi:13419 doc/guix.texi:13561 doc/guix.texi:13620
-#: doc/guix.texi:13704 doc/guix.texi:13715 doc/guix.texi:15618
-#: doc/guix.texi:18249 doc/guix.texi:18396 doc/guix.texi:18584
-#: doc/guix.texi:19613 doc/guix.texi:19673 doc/guix.texi:19681
-#: doc/guix.texi:20511 doc/guix.texi:20518 doc/guix.texi:20860
-#: doc/guix.texi:20938 doc/guix.texi:21032 doc/guix.texi:21040
-#: doc/guix.texi:21076 doc/guix.texi:21226 doc/guix.texi:21277
-#: doc/guix.texi:21286
+#: doc/guix.texi:14159 doc/guix.texi:14165 doc/guix.texi:14179
+#: doc/guix.texi:14186 doc/guix.texi:14328 doc/guix.texi:14387
+#: doc/guix.texi:14471 doc/guix.texi:14482 doc/guix.texi:16514
+#: doc/guix.texi:17708 doc/guix.texi:17812 doc/guix.texi:18237
+#: doc/guix.texi:18245 doc/guix.texi:18490 doc/guix.texi:20005
+#: doc/guix.texi:20152 doc/guix.texi:20340 doc/guix.texi:21378
+#: doc/guix.texi:21438 doc/guix.texi:21446 doc/guix.texi:22276
+#: doc/guix.texi:22283 doc/guix.texi:22625 doc/guix.texi:22703
+#: doc/guix.texi:22797 doc/guix.texi:22805 doc/guix.texi:22841
+#: doc/guix.texi:22991 doc/guix.texi:23042 doc/guix.texi:23051
 msgid "Defaults to @samp{()}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13394
+#: doc/guix.texi:14161
 #, no-wrap
 msgid "{@code{location-access-controls} parameter} method-access-control-list method-access-controls"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13396
+#: doc/guix.texi:14163
 msgid "Access controls for method-specific access to this path."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13400
+#: doc/guix.texi:14167
 msgid "Available @code{method-access-controls} fields are:"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13401
+#: doc/guix.texi:14168
 #, no-wrap
 msgid "{@code{method-access-controls} parameter} boolean reverse?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13404
+#: doc/guix.texi:14171
 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:13408
+#: doc/guix.texi:14175
 #, no-wrap
 msgid "{@code{method-access-controls} parameter} method-list methods"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13410
+#: doc/guix.texi:14177
 msgid "Methods to which this access control applies."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13414
+#: doc/guix.texi:14181
 #, no-wrap
 msgid "{@code{method-access-controls} parameter} access-control-list access-controls"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13417
+#: doc/guix.texi:14184
 msgid "Access control directives, as a list of strings.  Each string should be one directive, such as \"Order allow,deny\"."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13423
+#: doc/guix.texi:14190
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} non-negative-integer log-debug-history"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13427
+#: doc/guix.texi:14194
 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:13429 doc/guix.texi:13450 doc/guix.texi:13457
-#: doc/guix.texi:15378 doc/guix.texi:18569
+#: doc/guix.texi:14196 doc/guix.texi:14217 doc/guix.texi:14224
+#: doc/guix.texi:16274 doc/guix.texi:20325
 msgid "Defaults to @samp{100}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13431
+#: doc/guix.texi:14198
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} log-level log-level"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13434
+#: doc/guix.texi:14201
 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:13436
+#: doc/guix.texi:14203
 msgid "Defaults to @samp{info}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13438
+#: doc/guix.texi:14205
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} log-time-format log-time-format"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13441
+#: doc/guix.texi:14208
 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:13443
+#: doc/guix.texi:14210
 msgid "Defaults to @samp{standard}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13445
+#: doc/guix.texi:14212
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} non-negative-integer max-clients"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13448
+#: doc/guix.texi:14215
 msgid "Specifies the maximum number of simultaneous clients that are allowed by the scheduler."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13452
+#: doc/guix.texi:14219
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} non-negative-integer max-clients-per-host"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13455
+#: doc/guix.texi:14222
 msgid "Specifies the maximum number of simultaneous clients that are allowed from a single address."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13459
+#: doc/guix.texi:14226
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} non-negative-integer max-copies"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13462
+#: doc/guix.texi:14229
 msgid "Specifies the maximum number of copies that a user can print of each job."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13464
+#: doc/guix.texi:14231
 msgid "Defaults to @samp{9999}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13466
+#: doc/guix.texi:14233
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} non-negative-integer max-hold-time"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13470
+#: doc/guix.texi:14237
 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:13474
+#: doc/guix.texi:14241
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} non-negative-integer max-jobs"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13477
+#: doc/guix.texi:14244
 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:13479
+#: doc/guix.texi:14246
 msgid "Defaults to @samp{500}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13481
+#: doc/guix.texi:14248
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} non-negative-integer max-jobs-per-printer"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13484
+#: doc/guix.texi:14251
 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:13488
+#: doc/guix.texi:14255
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} non-negative-integer max-jobs-per-user"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13491
+#: doc/guix.texi:14258
 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:13495
+#: doc/guix.texi:14262
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} non-negative-integer max-job-time"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13498
+#: doc/guix.texi:14265
 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:13500
+#: doc/guix.texi:14267
 msgid "Defaults to @samp{10800}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13502
+#: doc/guix.texi:14269
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} non-negative-integer max-log-size"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13505
+#: doc/guix.texi:14272
 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:13507
+#: doc/guix.texi:14274
 msgid "Defaults to @samp{1048576}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13509
+#: doc/guix.texi:14276
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} non-negative-integer multiple-operation-timeout"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13512
+#: doc/guix.texi:14279
 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:13514 doc/guix.texi:13728 doc/guix.texi:18183
+#: doc/guix.texi:14281 doc/guix.texi:14495 doc/guix.texi:19939
 msgid "Defaults to @samp{300}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13516
+#: doc/guix.texi:14283
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} string page-log-format"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13521
+#: doc/guix.texi:14288
 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:13523
+#: doc/guix.texi:14290
 #, no-wrap
 msgid "%%"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:13525
+#: doc/guix.texi:14292
 msgid "insert a single percent character"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:13526
+#: doc/guix.texi:14293
 #, no-wrap
 msgid "%@{name@}"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:13528
+#: doc/guix.texi:14295
 msgid "insert the value of the specified IPP attribute"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:13529
+#: doc/guix.texi:14296
 #, no-wrap
 msgid "%C"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:13531
+#: doc/guix.texi:14298
 msgid "insert the number of copies for the current page"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:13532
+#: doc/guix.texi:14299
 #, no-wrap
 msgid "%P"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:13534
+#: doc/guix.texi:14301
 msgid "insert the current page number"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:13535
+#: doc/guix.texi:14302
 #, no-wrap
 msgid "%T"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:13537
+#: doc/guix.texi:14304
 msgid "insert the current date and time in common log format"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:13538
+#: doc/guix.texi:14305
 #, no-wrap
 msgid "%j"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:13540
+#: doc/guix.texi:14307
 msgid "insert the job ID"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:13541 doc/guix.texi:14988
+#: doc/guix.texi:14308 doc/guix.texi:15884
 #, no-wrap
 msgid "%p"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:13543
+#: doc/guix.texi:14310
 msgid "insert the printer name"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:13544 doc/guix.texi:15011
+#: doc/guix.texi:14311 doc/guix.texi:15907
 #, no-wrap
 msgid "%u"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:13546
+#: doc/guix.texi:14313
 msgid "insert the username"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13552
+#: doc/guix.texi:14319
 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:13556
+#: doc/guix.texi:14323
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} environment-variables environment-variables"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13559
+#: doc/guix.texi:14326
 msgid "Passes the specified environment variable(s) to child processes; a list of strings."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13563
+#: doc/guix.texi:14330
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} policy-configuration-list policies"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13565
+#: doc/guix.texi:14332
 msgid "Specifies named access control policies."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13567
+#: doc/guix.texi:14334
 msgid "Available @code{policy-configuration} fields are:"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13568
+#: doc/guix.texi:14335
 #, no-wrap
 msgid "{@code{policy-configuration} parameter} string name"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13570
+#: doc/guix.texi:14337
 msgid "Name of the policy."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13572
+#: doc/guix.texi:14339
 #, no-wrap
 msgid "{@code{policy-configuration} parameter} string job-private-access"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13582
+#: doc/guix.texi:14349
 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:13584 doc/guix.texi:13606
+#: doc/guix.texi:14351 doc/guix.texi:14373
 msgid "Defaults to @samp{\"@@OWNER @@SYSTEM\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13586
+#: doc/guix.texi:14353
 #, no-wrap
 msgid "{@code{policy-configuration} parameter} string job-private-values"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13589 doc/guix.texi:13611
+#: doc/guix.texi:14356 doc/guix.texi:14378
 msgid "Specifies the list of job values to make private, or @code{all}, @code{default}, or @code{none}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13592
+#: doc/guix.texi:14359
 msgid "Defaults to @samp{\"job-name job-originating-host-name job-originating-user-name phone\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13594
+#: doc/guix.texi:14361
 #, no-wrap
 msgid "{@code{policy-configuration} parameter} string subscription-private-access"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13604
+#: doc/guix.texi:14371
 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:13608
+#: doc/guix.texi:14375
 #, no-wrap
 msgid "{@code{policy-configuration} parameter} string subscription-private-values"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13614
+#: doc/guix.texi:14381
 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:13616
+#: doc/guix.texi:14383
 #, no-wrap
 msgid "{@code{policy-configuration} parameter} operation-access-control-list access-controls"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13618
+#: doc/guix.texi:14385
 msgid "Access control by IPP operation."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13623
+#: doc/guix.texi:14390
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} boolean-or-non-negative-integer preserve-job-files"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13628
+#: doc/guix.texi:14395
 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:13630
+#: doc/guix.texi:14397
 msgid "Defaults to @samp{86400}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13632
+#: doc/guix.texi:14399
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} boolean-or-non-negative-integer preserve-job-history"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13637
+#: doc/guix.texi:14404
 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:13641
+#: doc/guix.texi:14408
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} non-negative-integer reload-timeout"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13644
+#: doc/guix.texi:14411
 msgid "Specifies the amount of time to wait for job completion before restarting the scheduler."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13648
+#: doc/guix.texi:14415
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} string rip-cache"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13651
+#: doc/guix.texi:14418
 msgid "Specifies the maximum amount of memory to use when converting documents into bitmaps for a printer."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13653
+#: doc/guix.texi:14420
 msgid "Defaults to @samp{\"128m\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13655
+#: doc/guix.texi:14422
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} string server-admin"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13657
+#: doc/guix.texi:14424
 msgid "Specifies the email address of the server administrator."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13659
+#: doc/guix.texi:14426
 msgid "Defaults to @samp{\"root@@localhost.localdomain\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13661
+#: doc/guix.texi:14428
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} host-name-list-or-* server-alias"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13669
+#: doc/guix.texi:14436
 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:13671
+#: doc/guix.texi:14438
 msgid "Defaults to @samp{*}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13673
+#: doc/guix.texi:14440
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} string server-name"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13675
+#: doc/guix.texi:14442
 msgid "Specifies the fully-qualified host name of the server."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13677
+#: doc/guix.texi:14444 doc/guix.texi:17835 doc/guix.texi:17879
 msgid "Defaults to @samp{\"localhost\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13679
+#: doc/guix.texi:14446
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} server-tokens server-tokens"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13687
+#: doc/guix.texi:14454
 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:13689
+#: doc/guix.texi:14456
 msgid "Defaults to @samp{Minimal}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13691
+#: doc/guix.texi:14458
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} string set-env"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13693
+#: doc/guix.texi:14460
 msgid "Set the specified environment variable to be passed to child processes."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13695
+#: doc/guix.texi:14462
 msgid "Defaults to @samp{\"variable value\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13697
+#: doc/guix.texi:14464
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} multiline-string-list ssl-listen"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13702
+#: doc/guix.texi:14469
 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:13706
+#: doc/guix.texi:14473
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} ssl-options ssl-options"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13713
+#: doc/guix.texi:14480
 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 ""
 
 #. type: deftypevr
-#: doc/guix.texi:13717
+#: doc/guix.texi:14484
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} boolean strict-conformance?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13720
+#: doc/guix.texi:14487
 msgid "Specifies whether the scheduler requires clients to strictly adhere to the IPP specifications."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13724
+#: doc/guix.texi:14491
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} non-negative-integer timeout"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13726
+#: doc/guix.texi:14493
 msgid "Specifies the HTTP request timeout, in seconds."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13731
+#: doc/guix.texi:14498
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} boolean web-interface?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13733
+#: doc/guix.texi:14500
 msgid "Specifies whether the web interface is enabled."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:13743
+#: doc/guix.texi:14510
 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:13745
+#: doc/guix.texi:14512
 msgid "Available @code{opaque-cups-configuration} fields are:"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13746
+#: doc/guix.texi:14513
 #, no-wrap
 msgid "{@code{opaque-cups-configuration} parameter} package cups"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13750
+#: doc/guix.texi:14517
 #, no-wrap
 msgid "{@code{opaque-cups-configuration} parameter} string cupsd.conf"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13752
+#: doc/guix.texi:14519
 msgid "The contents of the @code{cupsd.conf}, as a string."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13754
+#: doc/guix.texi:14521
 #, no-wrap
 msgid "{@code{opaque-cups-configuration} parameter} string cups-files.conf"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:13756
+#: doc/guix.texi:14523
 msgid "The contents of the @code{cups-files.conf} file, as a string."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:13761
+#: doc/guix.texi:14528
 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: example
-#: doc/guix.texi:13767
+#: doc/guix.texi:14534
 #, no-wrap
 msgid ""
 "(service cups-service-type\n"
@@ -24819,114 +26908,195 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:13778
-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."
+#: doc/guix.texi:14545
+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:13782
+#: doc/guix.texi:14549
 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:13783
+#: doc/guix.texi:14550
 #, no-wrap
 msgid "{Scheme Variable} %desktop-services"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:13786
+#: doc/guix.texi:14553
 msgid "This is a list of services that builds upon @var{%base-services} and adds or adjusts services for a typical ``desktop'' setup."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:13796
-msgid "In particular, it adds a graphical login manager (@pxref{X Window, @code{slim-service}}), 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})."
+#: doc/guix.texi:14563
+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 ""
 
 #. type: Plain text
-#: doc/guix.texi:13801
+#: doc/guix.texi:14568
 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 ""
 
 #. type: Plain text
-#: doc/guix.texi:13824
-msgid "Additionally, the @code{gnome-desktop-service}, @code{xfce-desktop-service}, @code{mate-desktop-service} 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} 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 made by @code{mate-desktop-service} 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."
+#: doc/guix.texi:14591
+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 ""
 
 #. type: Plain text
-#: doc/guix.texi:13833
-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 the @code{slim-service} for 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."
+#: doc/guix.texi:14600
+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: deffn
-#: doc/guix.texi:13834
+#. type: defvr
+#: doc/guix.texi:14601
 #, no-wrap
-msgid "{Scheme Procedure} gnome-desktop-service"
-msgstr ""
+msgid "{Scheme Variable} gnome-desktop-service-type"
+msgstr "{Scheme-Variable} gnome-desktop-service-type"
 
-#. type: deffn
-#: doc/guix.texi:13838
-msgid "Return a service that adds the @code{gnome} package to the system profile, and extends polkit with the actions from @code{gnome-settings-daemon}."
+#. type: defvr
+#: doc/guix.texi:14605
+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:14608
+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: deffn
-#: doc/guix.texi:13840
+#. type: deftp
+#: doc/guix.texi:14610
 #, no-wrap
-msgid "{Scheme Procedure} xfce-desktop-service"
+msgid "{Data Type} gnome-desktop-configuration"
+msgstr "{Datentyp} gnome-desktop-configuration"
+
+#. type: deftp
+#: doc/guix.texi:14612
+msgid "Configuration record for the GNOME desktop environment."
 msgstr ""
 
-#. type: deffn
-#: doc/guix.texi:13845
-msgid "Return a service that 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."
+#. type: item
+#: doc/guix.texi:14614
+#, no-wrap
+msgid "@code{gnome} (default @code{gnome})"
+msgstr "@code{gnome} (Vorgabe: @code{gnome})"
+
+#. type: table
+#: doc/guix.texi:14616
+msgid "The GNOME package to use."
+msgstr "Welches GNOME-Paket benutzt werden soll."
+
+#. type: defvr
+#: doc/guix.texi:14619
+#, no-wrap
+msgid "{Scheme Variable} xfce-desktop-service-type"
+msgstr "{Scheme-Variable} xfce-desktop-service-type"
+
+#. type: defvr
+#: doc/guix.texi:14623
+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{Xfce, https://xfce.org/}-Arbeitsumgebung auszuführen. Sein Wert ist ein @code{xfce-desktop-configuration}-Objekt (siehe unten)."
+
+#. type: defvr
+#: doc/guix.texi:14628
+msgid "This service that 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:14630
+#, no-wrap
+msgid "{Data Type} xfce-desktop-configuration"
+msgstr "{Datentyp} xfce-desktop-configuration"
+
+#. type: deftp
+#: doc/guix.texi:14632
+msgid "Configuration record for the Xfce desktop environment."
+msgstr "Verbundstyp für Einstellungen zur Xfce-Arbeitsumgebung."
+
+#. type: item
+#: doc/guix.texi:14634
+#, no-wrap
+msgid "@code{xfce} (default @code{xfce})"
+msgstr "@code{xfce} (Vorgabe: @code{xfce})"
+
+#. type: table
+#: doc/guix.texi:14636
+msgid "The Xfce package to use."
+msgstr "Das Xfce-Paket, was benutzt werden soll."
+
 #. type: deffn
-#: doc/guix.texi:13847
+#: doc/guix.texi:14639
 #, no-wrap
-msgid "{Scheme Procedure} mate-desktop-service"
-msgstr ""
+msgid "{Scheme Variable} mate-desktop-service-type"
+msgstr "{Scheme-Variable} mate-desktop-service-type"
+
+#. type: deffn
+#: doc/guix.texi:14643
+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:13851
-msgid "Return a service that adds the @code{mate} package to the system profile, and extends polkit with the actions from @code{mate-settings-daemon}."
+#: doc/guix.texi:14647
+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:14649
+#, no-wrap
+msgid "{Data Type} mate-desktop-configuration"
+msgstr "{Datentyp} mate-desktop-configuration"
+
+#. type: deftp
+#: doc/guix.texi:14651
+msgid "Configuration record for the MATE desktop environment."
+msgstr "Verbundstyp für die Einstellungen der MATE-Arbeitsumgebung."
+
+#. type: item
+#: doc/guix.texi:14653
+#, no-wrap
+msgid "@code{mate} (default @code{mate})"
+msgstr "@code{mate} (Vorgabe: @code{mate})"
+
+#. type: table
+#: doc/guix.texi:14655
+msgid "The MATE package to use."
+msgstr "Das MATE-Paket, was benutzt werden soll."
+
 #. type: deffn
-#: doc/guix.texi:13853
+#: doc/guix.texi:14658
 #, no-wrap
-msgid "{Scheme Procedure} enlightenment-desktop-service-type"
-msgstr ""
+msgid "{Scheme Variable} enlightenment-desktop-service-type"
+msgstr "{Scheme-Variable} enlightenment-desktop-service-type"
 
 #. type: deffn
-#: doc/guix.texi:13856
+#: doc/guix.texi:14661
 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:13858
+#: doc/guix.texi:14663
 #, no-wrap
 msgid "{Data Type} enlightenment-desktop-service-configuration"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:13860
+#: doc/guix.texi:14665
 #, no-wrap
 msgid "@code{enlightenment} (default @code{enlightenment})"
 msgstr "@code{enlightenment} (Vorgabe: @code{enlightenment})"
 
 #. type: table
-#: doc/guix.texi:13862
+#: doc/guix.texi:14667
 msgid "The enlightenment package to use."
 msgstr "Das Enlightenment-Paket, was benutzt werden soll."
 
 #. type: Plain text
-#: doc/guix.texi:13870
-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}:"
+#: doc/guix.texi:14675
+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: example
-#: doc/guix.texi:13881
+#: doc/guix.texi:14686
 #, no-wrap
 msgid ""
 "(use-modules (gnu))\n"
@@ -24934,505 +27104,673 @@ msgid ""
 "(operating-system\n"
 "  ...\n"
 "  ;; cons* adds items to the list given as its last argument.\n"
-"  (services (cons* (gnome-desktop-service)\n"
-"                   (xfce-desktop-service)\n"
+"  (services (cons* (service gnome-desktop-service-type)\n"
+"                   (service xfce-desktop-service)\n"
 "                   %desktop-services))\n"
 "  ...)\n"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:13885
+#: doc/guix.texi:14690
 msgid "These desktop environments will then be available as options in the graphical login window."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:13889
+#: doc/guix.texi:14694
 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:13890
+#: doc/guix.texi:14695
 #, no-wrap
 msgid "{Scheme Procedure} dbus-service [#:dbus @var{dbus}] [#:services '()]"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:13893
+#: doc/guix.texi:14698
 msgid "Return a service that runs the ``system bus'', using @var{dbus}, with support for @var{services}."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:13897
+#: doc/guix.texi:14702
 msgid "@uref{http://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:13902
+#: doc/guix.texi:14707
 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:13904
+#: doc/guix.texi:14709
 #, no-wrap
 msgid "{Scheme Procedure} elogind-service [#:config @var{config}]"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:13910
+#: doc/guix.texi:14715
 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:13914
+#: doc/guix.texi:14719
 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:13919
+#: doc/guix.texi:14724
 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:13921
+#: doc/guix.texi:14726
 #, no-wrap
 msgid "kill-user-processes?"
 msgstr ""
 
 #. type: code{#1}
-#: doc/guix.texi:13923 doc/guix.texi:13941 doc/guix.texi:13943
-#: doc/guix.texi:13945 doc/guix.texi:13957
+#: doc/guix.texi:14728 doc/guix.texi:14746 doc/guix.texi:14748
+#: doc/guix.texi:14750 doc/guix.texi:14762
 msgid "#f"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:13923
+#: doc/guix.texi:14728
 #, no-wrap
 msgid "kill-only-users"
 msgstr ""
 
 #. type: code{#1}
-#: doc/guix.texi:13925 doc/guix.texi:13963
+#: doc/guix.texi:14730 doc/guix.texi:14768
 msgid "()"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:13925
+#: doc/guix.texi:14730
 #, no-wrap
 msgid "kill-exclude-users"
 msgstr ""
 
 #. type: code{#1}
-#: doc/guix.texi:13927
+#: doc/guix.texi:14732
 msgid "(\"root\")"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:13927
+#: doc/guix.texi:14732
 #, no-wrap
 msgid "inhibit-delay-max-seconds"
 msgstr ""
 
 #. type: code{#1}
-#: doc/guix.texi:13929
+#: doc/guix.texi:14734
 msgid "5"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:13929
+#: doc/guix.texi:14734
 #, no-wrap
 msgid "handle-power-key"
 msgstr ""
 
 #. type: code{#1}
-#: doc/guix.texi:13931
+#: doc/guix.texi:14736
 msgid "poweroff"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:13931
+#: doc/guix.texi:14736
 #, no-wrap
 msgid "handle-suspend-key"
 msgstr ""
 
 #. type: code{#1}
-#: doc/guix.texi:13933 doc/guix.texi:13937
+#: doc/guix.texi:14738 doc/guix.texi:14742
 msgid "suspend"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:13933
+#: doc/guix.texi:14738
 #, no-wrap
 msgid "handle-hibernate-key"
 msgstr ""
 
 #. type: code{#1}
-#: doc/guix.texi:13935
+#: doc/guix.texi:14740
 msgid "hibernate"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:13935
+#: doc/guix.texi:14740
 #, no-wrap
 msgid "handle-lid-switch"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:13937
+#: doc/guix.texi:14742
 #, no-wrap
 msgid "handle-lid-switch-docked"
 msgstr ""
 
 #. type: code{#1}
-#: doc/guix.texi:13939 doc/guix.texi:13951
+#: doc/guix.texi:14744 doc/guix.texi:14756
 msgid "ignore"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:13939
+#: doc/guix.texi:14744
 #, no-wrap
 msgid "power-key-ignore-inhibited?"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:13941
+#: doc/guix.texi:14746
 #, no-wrap
 msgid "suspend-key-ignore-inhibited?"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:13943
+#: doc/guix.texi:14748
 #, no-wrap
 msgid "hibernate-key-ignore-inhibited?"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:13945
+#: doc/guix.texi:14750
 #, no-wrap
 msgid "lid-switch-ignore-inhibited?"
 msgstr ""
 
 #. type: code{#1}
-#: doc/guix.texi:13947 doc/guix.texi:13959
+#: doc/guix.texi:14752 doc/guix.texi:14764
 msgid "#t"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:13947
+#: doc/guix.texi:14752
 #, no-wrap
 msgid "holdoff-timeout-seconds"
 msgstr ""
 
 #. type: code{#1}
-#: doc/guix.texi:13949
+#: doc/guix.texi:14754
 msgid "30"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:13949
+#: doc/guix.texi:14754
 #, no-wrap
 msgid "idle-action"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:13951
+#: doc/guix.texi:14756
 #, no-wrap
 msgid "idle-action-seconds"
 msgstr ""
 
 #. type: code{#1}
-#: doc/guix.texi:13953
+#: doc/guix.texi:14758
 msgid "(* 30 60)"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:13953
+#: doc/guix.texi:14758
 #, no-wrap
 msgid "runtime-directory-size-percent"
 msgstr ""
 
 #. type: code{#1}
-#: doc/guix.texi:13955
+#: doc/guix.texi:14760
 msgid "10"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:13955
+#: doc/guix.texi:14760
 #, no-wrap
 msgid "runtime-directory-size"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:13957
+#: doc/guix.texi:14762
 #, no-wrap
 msgid "remove-ipc?"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:13959
+#: doc/guix.texi:14764
 #, no-wrap
 msgid "suspend-state"
 msgstr ""
 
 #. type: code{#1}
-#: doc/guix.texi:13961
+#: doc/guix.texi:14766
 msgid "(\"mem\" \"standby\" \"freeze\")"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:13961
+#: doc/guix.texi:14766
 #, no-wrap
 msgid "suspend-mode"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:13963
+#: doc/guix.texi:14768
 #, no-wrap
 msgid "hibernate-state"
 msgstr ""
 
 #. type: code{#1}
-#: doc/guix.texi:13965 doc/guix.texi:13969
+#: doc/guix.texi:14770 doc/guix.texi:14774
 msgid "(\"disk\")"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:13965
+#: doc/guix.texi:14770
 #, no-wrap
 msgid "hibernate-mode"
 msgstr ""
 
 #. type: code{#1}
-#: doc/guix.texi:13967
+#: doc/guix.texi:14772
 msgid "(\"platform\" \"shutdown\")"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:13967
+#: doc/guix.texi:14772
 #, no-wrap
 msgid "hybrid-sleep-state"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:13969
+#: doc/guix.texi:14774
 #, no-wrap
 msgid "hybrid-sleep-mode"
 msgstr ""
 
 #. type: code{#1}
-#: doc/guix.texi:13971
+#: doc/guix.texi:14776
 msgid "(\"suspend\" \"platform\" \"shutdown\")"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:13974
+#: doc/guix.texi:14779
 #, no-wrap
 msgid "{Scheme Procedure} accountsservice-service @"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:13982
+#: doc/guix.texi:14787
 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:13985
+#: doc/guix.texi:14790
 msgid "The @var{accountsservice} keyword argument is the @code{accountsservice} package to expose as a service."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:13987
+#: doc/guix.texi:14792
 #, no-wrap
 msgid "{Scheme Procedure} polkit-service @"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:13996
+#: doc/guix.texi:14801
 msgid "[#:polkit @var{polkit}] Return a service that runs the @uref{http://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: deffn
-#: doc/guix.texi:13998
+#. type: defvr
+#: doc/guix.texi:14803
 #, no-wrap
-msgid "{Scheme Procedure} upower-service [#:upower @var{upower}] @"
+msgid "{Scheme Variable} upower-service-type"
+msgstr "{Scheme-Variable} upower-service-type"
+
+#. type: defvr
+#: doc/guix.texi:14807
+msgid "Service that runs @uref{http://upower.freedesktop.org/, @command{upowerd}}, a system-wide monitor for power consumption and battery levels, with the given configuration settings."
 msgstr ""
 
-#. type: deffn
-#: doc/guix.texi:14015
-msgid "[#:watts-up-pro? #f] @ [#:poll-batteries? #t] @ [#:ignore-lid? #f] @ [#:use-percentage-for-policy? #f] @ [#:percentage-low 10] @ [#:percentage-critical 3] @ [#:percentage-action 2] @ [#:time-low 1200] @ [#:time-critical 300] @ [#:time-action 120] @ [#:critical-power-action 'hybrid-sleep] Return a service that runs @uref{http://upower.freedesktop.org/, @command{upowerd}}, a system-wide monitor for power consumption and battery levels, with the given configuration settings.  It implements the @code{org.freedesktop.UPower} D-Bus interface, and is notably used by GNOME."
+#. type: defvr
+#: doc/guix.texi:14810
+msgid "It implements the @code{org.freedesktop.UPower} D-Bus interface, and is notably used by GNOME."
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:14812
+#, no-wrap
+msgid "{Data Type} upower-configuration"
+msgstr "{Datentyp} upower-configuration"
+
+#. type: deftp
+#: doc/guix.texi:14814
+msgid "Data type representation the configuration for UPower."
+msgstr "Repräsentiert die Konfiguration von UPower."
+
+#. type: item
+#: doc/guix.texi:14817
+#, no-wrap
+msgid "@code{upower} (default: @var{upower})"
+msgstr "@code{upower} (Vorgabe: @var{upower})"
+
+#. type: table
+#: doc/guix.texi:14819
+msgid "Package to use for @code{upower}."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:14820
+#, no-wrap
+msgid "@code{watts-up-pro?} (default: @code{#f})"
+msgstr "@code{watts-up-pro?} (Vorgabe: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:14822
+msgid "Enable the Watts Up Pro device."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:14823
+#, no-wrap
+msgid "@code{poll-batteries?} (default: @code{#t})"
+msgstr "@code{poll-batteries?} (Vorgabe: @code{#t})"
+
+#. type: table
+#: doc/guix.texi:14825
+msgid "Enable polling the kernel for battery level changes."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:14826
+#, no-wrap
+msgid "@code{ignore-lid?} (default: @code{#f})"
+msgstr "@code{ignore-lid?} (Vorgabe: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:14828
+msgid "Ignore the lid state, this can be useful if it's incorrect on a device."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:14829
+#, 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:14832
+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:14833
+#, no-wrap
+msgid "@code{percentage-low} (default: @code{10})"
+msgstr "@code{percentage-low} (Vorgabe: @code{10})"
+
+#. type: table
+#: doc/guix.texi:14836
+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:14837
+#, no-wrap
+msgid "@code{percentage-critical} (default: @code{3})"
+msgstr "@code{percentage-critical} (Vorgabe: @code{3})"
+
+#. type: table
+#: doc/guix.texi:14840
+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:14841
+#, no-wrap
+msgid "@code{percentage-action} (default: @code{2})"
+msgstr "@code{percentage-action} (Vorgabe: @code{2})"
+
+#. type: table
+#: doc/guix.texi:14844
+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:14845
+#, no-wrap
+msgid "@code{time-low} (default: @code{1200})"
+msgstr "@code{time-low} (Vorgabe: @code{1200})"
+
+#. type: table
+#: doc/guix.texi:14848
+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:14849
+#, no-wrap
+msgid "@code{time-critical} (default: @code{300})"
+msgstr "@code{time-critical} (Vorgabe: @code{300})"
+
+#. type: table
+#: doc/guix.texi:14852
+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:14853
+#, no-wrap
+msgid "@code{time-action} (default: @code{120})"
+msgstr "@code{time-action} (Vorgabe: @code{120})"
+
+#. type: table
+#: doc/guix.texi:14856
+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:14857
+#, 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:14860
+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:14862
+msgid "Possible values are:"
+msgstr ""
+
+#. type: code{#1}
+#: doc/guix.texi:14866
+msgid "'power-off"
+msgstr ""
+
+#. type: code{#1}
+#: doc/guix.texi:14869
+msgid "'hibernate"
+msgstr ""
+
+#. type: itemize
+#: doc/guix.texi:14872
+msgid "@code{'hybrid-sleep}."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:14017
+#: doc/guix.texi:14877
 #, no-wrap
 msgid "{Scheme Procedure} udisks-service [#:udisks @var{udisks}]"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:14022
+#: doc/guix.texi:14882
 msgid "Return a service for @uref{http://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 ""
 
 #. type: deffn
-#: doc/guix.texi:14024
+#: doc/guix.texi:14884
 #, no-wrap
 msgid "{Scheme Procedure} colord-service [#:colord @var{colord}]"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:14030
+#: doc/guix.texi:14890
 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{http://www.freedesktop.org/software/colord/, the colord web site} for more information."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:14032
+#: doc/guix.texi:14892
 #, no-wrap
 msgid "{Scheme Procedure} geoclue-application name [#:allowed? #t] [#:system? #f] [#:users '()]"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:14041
+#: doc/guix.texi:14901
 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: defvr
-#: doc/guix.texi:14043
+#: doc/guix.texi:14903
 #, no-wrap
 msgid "{Scheme Variable} %standard-geoclue-applications"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:14050
+#: doc/guix.texi:14910
 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:14052
+#: doc/guix.texi:14912
 #, no-wrap
 msgid "{Scheme Procedure} geoclue-service [#:colord @var{colord}] @"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:14065
+#: doc/guix.texi:14925
 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:14067
+#: doc/guix.texi:14927
 #, no-wrap
 msgid "{Scheme Procedure} bluetooth-service [#:bluez @var{bluez}] @"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:14074
+#: doc/guix.texi:14934
 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:14076
+#: doc/guix.texi:14936
 msgid "Users need to be in the @code{lp} group to access the D-Bus service."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:14081
+#: doc/guix.texi:14941
 #, no-wrap
 msgid "sound support"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:14082
+#: doc/guix.texi:14942
 #, no-wrap
 msgid "ALSA"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:14083
+#: doc/guix.texi:14943
 #, no-wrap
 msgid "PulseAudio, sound support"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:14088
+#: doc/guix.texi:14948
 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:14089
+#: doc/guix.texi:14949
 #, no-wrap
 msgid "{Scheme Variable} alsa-service-type"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:14094
+#: doc/guix.texi:14954
 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: example
-#: doc/guix.texi:14097
+#: doc/guix.texi:14957
 #, no-wrap
 msgid "(service alsa-service-type)\n"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:14100
+#: doc/guix.texi:14960
 msgid "See below for details about @code{alsa-configuration}."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:14102
+#: doc/guix.texi:14962
 #, no-wrap
 msgid "{Data Type} alsa-configuration"
 msgstr "{Datentyp} alsa-configuration"
 
 #. type: deftp
-#: doc/guix.texi:14104
+#: doc/guix.texi:14964
 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:14106
+#: doc/guix.texi:14966
 #, no-wrap
 msgid "@code{alsa-plugins} (default: @var{alsa-plugins})"
 msgstr "@code{alsa-plugins} (Vorgabe: @var{alsa-plugins})"
 
 #. type: table
-#: doc/guix.texi:14108
+#: doc/guix.texi:14968
 msgid "@code{alsa-plugins} package to use."
 msgstr "@code{alsa-plugins}-Paket, was benutzt werden soll."
 
 #. type: item
-#: doc/guix.texi:14109
+#: doc/guix.texi:14969
 #, no-wrap
 msgid "@code{pulseaudio?} (default: @var{#t})"
 msgstr "@code{pulseaudio?} (Vorgabe: @var{#t})"
 
 #. type: table
-#: doc/guix.texi:14112
+#: doc/guix.texi:14972
 msgid "Whether ALSA applications should transparently be made to use the @uref{http://www.pulseaudio.org/, PulseAudio} sound server."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14116
+#: doc/guix.texi:14976
 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:14117
+#: doc/guix.texi:14977
 #, no-wrap
 msgid "@code{extra-options} (default: @var{\"\"})"
 msgstr "@code{extra-options} (Vorgabe: @var{\"\"})"
 
 #. type: table
-#: doc/guix.texi:14119
+#: doc/guix.texi:14979
 msgid "String to append to the @file{/etc/asound.conf} file."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:14125
+#: doc/guix.texi:14985
 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:14131
+#: doc/guix.texi:14991
 #, no-wrap
 msgid ""
 "# In guix, we have to specify the absolute path for plugins.\n"
@@ -25443,7 +27781,7 @@ msgid ""
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:14140
+#: doc/guix.texi:15000
 #, no-wrap
 msgid ""
 "# Routing ALSA to jack:\n"
@@ -25458,7 +27796,7 @@ msgid ""
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:14146
+#: doc/guix.texi:15006
 #, no-wrap
 msgid ""
 "  capture_ports @{\n"
@@ -25470,7 +27808,7 @@ msgid ""
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:14153
+#: doc/guix.texi:15013
 #, no-wrap
 msgid ""
 "pcm.!default @{\n"
@@ -25482,347 +27820,419 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:14157
+#: doc/guix.texi:15017
 msgid "See @uref{https://www.alsa-project.org/main/index.php/Asoundrc} for the details."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:14163
+#: doc/guix.texi:15023
 #, no-wrap
 msgid "SQL"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:14165
+#: doc/guix.texi:15025
 msgid "The @code{(gnu services databases)} module provides the following services."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:14166
+#: doc/guix.texi:15026
 #, no-wrap
 msgid "{Scheme Procedure} postgresql-service [#:postgresql postgresql] @"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:14171
-msgid "[#:config-file] [#:data-directory ``/var/lib/postgresql/data''] @ [#:port 5432] [#:locale ``en_US.utf8''] Return a service that runs @var{postgresql}, the PostgreSQL database server."
+#: doc/guix.texi:15031
+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:14175
+#: doc/guix.texi:15035
 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: cindex
+#: doc/guix.texi:15036
+#, no-wrap
+msgid "postgresql extension-packages"
+msgstr ""
+
 #. type: deffn
-#: doc/guix.texi:14177
+#: doc/guix.texi:15041
+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:15042
+#, no-wrap
+msgid "postgis"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:15045
+#, no-wrap
+msgid ""
+"(use-package-modules databases geo)\n"
+"\n"
+msgstr ""
+"(use-package-modules databases geo)\n"
+"\n"
+
+#. type: example
+#: doc/guix.texi:15055
+#, no-wrap
+msgid ""
+"(operating-system\n"
+"  ...\n"
+"  ;; postgresql is required to run `psql' but postgis is not required for\n"
+"  ;; proper operation.\n"
+"  (packages (cons* postgresql %base-packages))\n"
+"  (services\n"
+"    (cons*\n"
+"      (postgresql-service #:extension-packages (list postgis))\n"
+"      %base-services)))\n"
+msgstr ""
+"(operating-system\n"
+"  …\n"
+"  ;; postgresql wird benötigt, um »psql« auszuführen, aber postgis ist\n"
+"  ;; für den Betrieb nicht unbedingt notwendig.\n"
+"  (packages (cons* postgresql %base-packages))\n"
+"  (services\n"
+"    (cons*\n"
+"      (postgresql-service #:extension-packages (list postgis))\n"
+"      %base-services)))\n"
+
+#. type: deffn
+#: doc/guix.texi:15059
+msgid "Then the extension becomes visible and you can initialise an empty geographic database in this way:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:15066
+#, no-wrap
+msgid ""
+"psql -U postgres\n"
+"> create database postgistest;\n"
+"> \\connect postgistest;\n"
+"> create extension postgis;\n"
+"> create extension postgis_topology;\n"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:15071
+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:15073
 #, no-wrap
 msgid "{Scheme Procedure} mysql-service [#:config (mysql-configuration)]"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:14180
+#: doc/guix.texi:15076
 msgid "Return a service that runs @command{mysqld}, the MySQL or MariaDB database server."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:14183
+#: doc/guix.texi:15079
 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:14185
+#: doc/guix.texi:15081
 #, no-wrap
 msgid "{Data Type} mysql-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:14187
+#: doc/guix.texi:15083
 msgid "Data type representing the configuration of @var{mysql-service}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:14189
+#: doc/guix.texi:15085
 #, no-wrap
 msgid "@code{mysql} (default: @var{mariadb})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14192
+#: doc/guix.texi:15088
 msgid "Package object of the MySQL database server, can be either @var{mariadb} or @var{mysql}."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14195
+#: doc/guix.texi:15091
 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:14196
+#: doc/guix.texi:15092
 #, no-wrap
 msgid "@code{port} (default: @code{3306})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14198
+#: doc/guix.texi:15094
 msgid "TCP port on which the database server listens for incoming connections."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:14201
+#: doc/guix.texi:15097
 #, no-wrap
 msgid "{Scheme Variable} memcached-service-type"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:14205
+#: doc/guix.texi:15101
 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: example
-#: doc/guix.texi:14209
+#: doc/guix.texi:15105
 #, no-wrap
 msgid "(service memcached-service-type)\n"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:14211
+#: doc/guix.texi:15107
 #, no-wrap
 msgid "{Data Type} memcached-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:14213
+#: doc/guix.texi:15109
 msgid "Data type representing the configuration of memcached."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:14215
+#: doc/guix.texi:15111
 #, no-wrap
 msgid "@code{memcached} (default: @code{memcached})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14217
+#: doc/guix.texi:15113
 msgid "The Memcached package to use."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:14218
+#: doc/guix.texi:15114
 #, no-wrap
 msgid "@code{interfaces} (default: @code{'(\"0.0.0.0\")})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14220
+#: doc/guix.texi:15116
 msgid "Network interfaces on which to listen."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:14221
+#: doc/guix.texi:15117
 #, no-wrap
 msgid "@code{tcp-port} (default: @code{11211})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14223
+#: doc/guix.texi:15119
 msgid "Port on which to accept connections on,"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:14224
+#: doc/guix.texi:15120
 #, no-wrap
 msgid "@code{udp-port} (default: @code{11211})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14227
+#: doc/guix.texi:15123
 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:14228
+#: doc/guix.texi:15124
 #, no-wrap
 msgid "@code{additional-options} (default: @code{'()})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14230
+#: doc/guix.texi:15126
 msgid "Additional command line options to pass to @code{memcached}."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:14233
+#: doc/guix.texi:15129
 #, no-wrap
 msgid "{Scheme Variable} mongodb-service-type"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:14236
+#: doc/guix.texi:15132
 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: example
-#: doc/guix.texi:14240
+#: doc/guix.texi:15136
 #, no-wrap
 msgid "(service mongodb-service-type)\n"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:14242
+#: doc/guix.texi:15138
 #, no-wrap
 msgid "{Data Type} mongodb-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:14244
+#: doc/guix.texi:15140
 msgid "Data type representing the configuration of mongodb."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:14246
+#: doc/guix.texi:15142
 #, no-wrap
 msgid "@code{mongodb} (default: @code{mongodb})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14248
+#: doc/guix.texi:15144
 msgid "The MongoDB package to use."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:14249
+#: doc/guix.texi:15145
 #, no-wrap
 msgid "@code{config-file} (default: @code{%default-mongodb-configuration-file})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14251
+#: doc/guix.texi:15147
 msgid "The configuration file for MongoDB."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:14252
+#: doc/guix.texi:15148
 #, no-wrap
 msgid "@code{data-directory} (default: @code{\"/var/lib/mongodb\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14256
+#: doc/guix.texi:15152
 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:14259
+#: doc/guix.texi:15155
 #, no-wrap
 msgid "{Scheme Variable} redis-service-type"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:14262
+#: doc/guix.texi:15158
 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:14264
+#: doc/guix.texi:15160
 #, no-wrap
 msgid "{Data Type} redis-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:14266
+#: doc/guix.texi:15162
 msgid "Data type representing the configuration of redis."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:14268
+#: doc/guix.texi:15164
 #, no-wrap
 msgid "@code{redis} (default: @code{redis})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14270
+#: doc/guix.texi:15166
 msgid "The Redis package to use."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:14271
+#: doc/guix.texi:15167
 #, no-wrap
 msgid "@code{bind} (default: @code{\"127.0.0.1\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14273
+#: doc/guix.texi:15169
 msgid "Network interface on which to listen."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:14274
+#: doc/guix.texi:15170
 #, no-wrap
 msgid "@code{port} (default: @code{6379})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14277
+#: doc/guix.texi:15173
 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:14278
+#: doc/guix.texi:15174
 #, no-wrap
 msgid "@code{working-directory} (default: @code{\"/var/lib/redis\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14280
+#: doc/guix.texi:15176
 msgid "Directory in which to store the database and related files."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:14286
+#: doc/guix.texi:15182
 #, no-wrap
 msgid "mail"
 msgstr ""
 
 #. type: code{#1}
-#: doc/guix.texi:14287 doc/guix.texi:17627
+#: doc/guix.texi:15183 doc/guix.texi:19383
 #, no-wrap
 msgid "email"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:14292
+#: doc/guix.texi:15188
 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:14293
+#: doc/guix.texi:15189
 #, no-wrap
 msgid "Dovecot Service"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:14295
+#: doc/guix.texi:15191
 #, no-wrap
 msgid "{Scheme Procedure} dovecot-service [#:config (dovecot-configuration)]"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:14297
+#: doc/guix.texi:15193
 msgid "Return a service that runs the Dovecot IMAP/POP3/LMTP mail server."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:14307
+#: doc/guix.texi:15203
 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:14310
+#: doc/guix.texi:15206
 msgid "For example, to specify that mail is located at @code{maildir~/.mail}, one would instantiate the Dovecot service like this:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:14315
+#: doc/guix.texi:15211
 #, no-wrap
 msgid ""
 "(dovecot-service #:config\n"
@@ -25831,2379 +28241,2379 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:14323
+#: doc/guix.texi:15219
 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:14333
+#: doc/guix.texi:15229
 msgid "Available @code{dovecot-configuration} fields are:"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14334
+#: doc/guix.texi:15230
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} package dovecot"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14336 doc/guix.texi:15642
+#: doc/guix.texi:15232 doc/guix.texi:16538
 msgid "The dovecot package."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14338
+#: doc/guix.texi:15234
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} comma-separated-string-list listen"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14344
+#: doc/guix.texi:15240
 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:14346
+#: doc/guix.texi:15242
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} protocol-configuration-list protocols"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14349
+#: doc/guix.texi:15245
 msgid "List of protocols we want to serve.  Available protocols include @samp{imap}, @samp{pop3}, and @samp{lmtp}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14351
+#: doc/guix.texi:15247
 msgid "Available @code{protocol-configuration} fields are:"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14352
+#: doc/guix.texi:15248
 #, no-wrap
 msgid "{@code{protocol-configuration} parameter} string name"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14354
+#: doc/guix.texi:15250
 msgid "The name of the protocol."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14356
+#: doc/guix.texi:15252
 #, no-wrap
 msgid "{@code{protocol-configuration} parameter} string auth-socket-path"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14360
+#: doc/guix.texi:15256
 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:14362
+#: doc/guix.texi:15258
 #, no-wrap
 msgid "{@code{protocol-configuration} parameter} space-separated-string-list mail-plugins"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14364
+#: doc/guix.texi:15260
 msgid "Space separated list of plugins to load."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14366
+#: doc/guix.texi:15262
 #, no-wrap
 msgid "{@code{protocol-configuration} parameter} non-negative-integer mail-max-userip-connections"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14370
+#: doc/guix.texi:15266
 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:14374
+#: doc/guix.texi:15270
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} service-configuration-list services"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14378
+#: doc/guix.texi:15274
 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:14380
+#: doc/guix.texi:15276
 msgid "Available @code{service-configuration} fields are:"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14381
+#: doc/guix.texi:15277
 #, no-wrap
 msgid "{@code{service-configuration} parameter} string kind"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14386
+#: doc/guix.texi:15282
 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:14388
+#: doc/guix.texi:15284
 #, no-wrap
 msgid "{@code{service-configuration} parameter} listener-configuration-list listeners"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14393
+#: doc/guix.texi:15289
 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:14395
+#: doc/guix.texi:15291
 msgid "Available @code{unix-listener-configuration} fields are:"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14396
+#: doc/guix.texi:15292
 #, no-wrap
 msgid "{@code{unix-listener-configuration} parameter} string path"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14399 doc/guix.texi:14422
+#: doc/guix.texi:15295 doc/guix.texi:15318
 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:14401
+#: doc/guix.texi:15297
 #, no-wrap
 msgid "{@code{unix-listener-configuration} parameter} string mode"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14404 doc/guix.texi:14427
+#: doc/guix.texi:15300 doc/guix.texi:15323
 msgid "The access mode for the socket.  Defaults to @samp{\"0600\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14406
+#: doc/guix.texi:15302
 #, no-wrap
 msgid "{@code{unix-listener-configuration} parameter} string user"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14409 doc/guix.texi:14432
+#: doc/guix.texi:15305 doc/guix.texi:15328
 msgid "The user to own the socket.  Defaults to @samp{\"\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14411
+#: doc/guix.texi:15307
 #, no-wrap
 msgid "{@code{unix-listener-configuration} parameter} string group"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14414 doc/guix.texi:14437
+#: doc/guix.texi:15310 doc/guix.texi:15333
 msgid "The group to own the socket.  Defaults to @samp{\"\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14418
+#: doc/guix.texi:15314
 msgid "Available @code{fifo-listener-configuration} fields are:"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14419
+#: doc/guix.texi:15315
 #, no-wrap
 msgid "{@code{fifo-listener-configuration} parameter} string path"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14424
+#: doc/guix.texi:15320
 #, no-wrap
 msgid "{@code{fifo-listener-configuration} parameter} string mode"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14429
+#: doc/guix.texi:15325
 #, no-wrap
 msgid "{@code{fifo-listener-configuration} parameter} string user"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14434
+#: doc/guix.texi:15330
 #, no-wrap
 msgid "{@code{fifo-listener-configuration} parameter} string group"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14441
+#: doc/guix.texi:15337
 msgid "Available @code{inet-listener-configuration} fields are:"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14442
+#: doc/guix.texi:15338
 #, no-wrap
 msgid "{@code{inet-listener-configuration} parameter} string protocol"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14444
+#: doc/guix.texi:15340
 msgid "The protocol to listen for."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14446
+#: doc/guix.texi:15342
 #, no-wrap
 msgid "{@code{inet-listener-configuration} parameter} string address"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14449
+#: doc/guix.texi:15345
 msgid "The address on which to listen, or empty for all addresses.  Defaults to @samp{\"\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14451
+#: doc/guix.texi:15347
 #, no-wrap
 msgid "{@code{inet-listener-configuration} parameter} non-negative-integer port"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14453
+#: doc/guix.texi:15349
 msgid "The port on which to listen."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14455
+#: doc/guix.texi:15351
 #, no-wrap
 msgid "{@code{inet-listener-configuration} parameter} boolean ssl?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14459
+#: doc/guix.texi:15355
 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:14463
+#: doc/guix.texi:15359
 #, no-wrap
 msgid "{@code{service-configuration} parameter} non-negative-integer client-limit"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14468
+#: doc/guix.texi:15364
 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:14473
+#: doc/guix.texi:15369
 #, no-wrap
 msgid "{@code{service-configuration} parameter} non-negative-integer service-count"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14478
+#: doc/guix.texi:15374
 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:14481
+#: doc/guix.texi:15377
 #, no-wrap
 msgid "{@code{service-configuration} parameter} non-negative-integer process-limit"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14484
+#: doc/guix.texi:15380
 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:14489
+#: doc/guix.texi:15385
 #, no-wrap
 msgid "{@code{service-configuration} parameter} non-negative-integer process-min-avail"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14492
+#: doc/guix.texi:15388
 msgid "Number of processes to always keep waiting for more connections.  Defaults to @samp{0}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14494
+#: doc/guix.texi:15390
 #, no-wrap
 msgid "{@code{service-configuration} parameter} non-negative-integer vsz-limit"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14498
+#: doc/guix.texi:15394
 msgid "If you set @samp{service-count 0}, you probably need to grow this.  Defaults to @samp{256000000}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14502
+#: doc/guix.texi:15398
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} dict-configuration dict"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14505
+#: doc/guix.texi:15401
 msgid "Dict configuration, as created by the @code{dict-configuration} constructor."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14507
+#: doc/guix.texi:15403
 msgid "Available @code{dict-configuration} fields are:"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14508
+#: doc/guix.texi:15404
 #, no-wrap
 msgid "{@code{dict-configuration} parameter} free-form-fields entries"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14511
+#: doc/guix.texi:15407
 msgid "A list of key-value pairs that this dict should hold.  Defaults to @samp{()}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14515
+#: doc/guix.texi:15411
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} passdb-configuration-list passdbs"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14518
+#: doc/guix.texi:15414
 msgid "A list of passdb configurations, each one created by the @code{passdb-configuration} constructor."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14520
+#: doc/guix.texi:15416
 msgid "Available @code{passdb-configuration} fields are:"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14521
+#: doc/guix.texi:15417
 #, no-wrap
 msgid "{@code{passdb-configuration} parameter} string driver"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14526
+#: doc/guix.texi:15422
 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:14528
+#: doc/guix.texi:15424
 #, no-wrap
 msgid "{@code{passdb-configuration} parameter} space-separated-string-list args"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14531
+#: doc/guix.texi:15427
 msgid "Space separated list of arguments to the passdb driver.  Defaults to @samp{\"\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14535
+#: doc/guix.texi:15431
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} userdb-configuration-list userdbs"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14538
+#: doc/guix.texi:15434
 msgid "List of userdb configurations, each one created by the @code{userdb-configuration} constructor."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14540
+#: doc/guix.texi:15436
 msgid "Available @code{userdb-configuration} fields are:"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14541
+#: doc/guix.texi:15437
 #, no-wrap
 msgid "{@code{userdb-configuration} parameter} string driver"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14545
+#: doc/guix.texi:15441
 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:14547
+#: doc/guix.texi:15443
 #, no-wrap
 msgid "{@code{userdb-configuration} parameter} space-separated-string-list args"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14550
+#: doc/guix.texi:15446
 msgid "Space separated list of arguments to the userdb driver.  Defaults to @samp{\"\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14552
+#: doc/guix.texi:15448
 #, no-wrap
 msgid "{@code{userdb-configuration} parameter} free-form-args override-fields"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14555
+#: doc/guix.texi:15451
 msgid "Override fields from passwd.  Defaults to @samp{()}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14559
+#: doc/guix.texi:15455
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} plugin-configuration plugin-configuration"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14562
+#: doc/guix.texi:15458
 msgid "Plug-in configuration, created by the @code{plugin-configuration} constructor."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14564
+#: doc/guix.texi:15460
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} list-of-namespace-configuration namespaces"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14567
+#: doc/guix.texi:15463
 msgid "List of namespaces.  Each item in the list is created by the @code{namespace-configuration} constructor."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14569
+#: doc/guix.texi:15465
 msgid "Available @code{namespace-configuration} fields are:"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14570
+#: doc/guix.texi:15466
 #, no-wrap
 msgid "{@code{namespace-configuration} parameter} string name"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14572
+#: doc/guix.texi:15468
 msgid "Name for this namespace."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14574
+#: doc/guix.texi:15470
 #, no-wrap
 msgid "{@code{namespace-configuration} parameter} string type"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14577
+#: doc/guix.texi:15473
 msgid "Namespace type: @samp{private}, @samp{shared} or @samp{public}.  Defaults to @samp{\"private\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14579
+#: doc/guix.texi:15475
 #, no-wrap
 msgid "{@code{namespace-configuration} parameter} string separator"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14585
+#: doc/guix.texi:15481
 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:14587
+#: doc/guix.texi:15483
 #, no-wrap
 msgid "{@code{namespace-configuration} parameter} string prefix"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14591
+#: doc/guix.texi:15487
 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:14593
+#: doc/guix.texi:15489
 #, no-wrap
 msgid "{@code{namespace-configuration} parameter} string location"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14597
+#: doc/guix.texi:15493
 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:14599
+#: doc/guix.texi:15495
 #, no-wrap
 msgid "{@code{namespace-configuration} parameter} boolean inbox?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14603
+#: doc/guix.texi:15499
 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:14605
+#: doc/guix.texi:15501
 #, no-wrap
 msgid "{@code{namespace-configuration} parameter} boolean hidden?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14613
+#: doc/guix.texi:15509
 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:14615
+#: doc/guix.texi:15511
 #, no-wrap
 msgid "{@code{namespace-configuration} parameter} boolean list?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14621
+#: doc/guix.texi:15517
 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:14623
+#: doc/guix.texi:15519
 #, no-wrap
 msgid "{@code{namespace-configuration} parameter} boolean subscriptions?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14628
+#: doc/guix.texi:15524
 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:14630
+#: doc/guix.texi:15526
 #, no-wrap
 msgid "{@code{namespace-configuration} parameter} mailbox-configuration-list mailboxes"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14633
+#: doc/guix.texi:15529
 msgid "List of predefined mailboxes in this namespace.  Defaults to @samp{()}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14635
+#: doc/guix.texi:15531
 msgid "Available @code{mailbox-configuration} fields are:"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14636
+#: doc/guix.texi:15532
 #, no-wrap
 msgid "{@code{mailbox-configuration} parameter} string name"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14638
+#: doc/guix.texi:15534
 msgid "Name for this mailbox."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14640
+#: doc/guix.texi:15536
 #, no-wrap
 msgid "{@code{mailbox-configuration} parameter} string auto"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14644
+#: doc/guix.texi:15540
 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:14646
+#: doc/guix.texi:15542
 #, no-wrap
 msgid "{@code{mailbox-configuration} parameter} space-separated-string-list special-use"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14651
+#: doc/guix.texi:15547
 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:14657
+#: doc/guix.texi:15553
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} file-name base-dir"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14660
+#: doc/guix.texi:15556
 msgid "Base directory where to store runtime data.  Defaults to @samp{\"/var/run/dovecot/\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14662
+#: doc/guix.texi:15558
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string login-greeting"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14665
+#: doc/guix.texi:15561
 msgid "Greeting message for clients.  Defaults to @samp{\"Dovecot ready.\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14667
+#: doc/guix.texi:15563
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} space-separated-string-list login-trusted-networks"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14674
+#: doc/guix.texi:15570
 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:14676
+#: doc/guix.texi:15572
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} space-separated-string-list login-access-sockets"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14679
-msgid "List of login access check sockets (e.g. tcpwrap).  Defaults to @samp{()}."
+#: doc/guix.texi:15575
+msgid "List of login access check sockets (e.g.@: tcpwrap).  Defaults to @samp{()}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14681
+#: doc/guix.texi:15577
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean verbose-proctitle?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14687
-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}."
+#: doc/guix.texi:15583
+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:14689
+#: doc/guix.texi:15585
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean shutdown-clients?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14695
-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}."
+#: doc/guix.texi:15591
+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:14697
+#: doc/guix.texi:15593
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} non-negative-integer doveadm-worker-count"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14701
+#: doc/guix.texi:15597
 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:14703
+#: doc/guix.texi:15599
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string doveadm-socket-path"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14706
+#: doc/guix.texi:15602
 msgid "UNIX socket or host:port used for connecting to doveadm server.  Defaults to @samp{\"doveadm-server\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14708
+#: doc/guix.texi:15604
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} space-separated-string-list import-environment"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14712
+#: doc/guix.texi:15608
 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:14714
+#: doc/guix.texi:15610
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean disable-plaintext-auth?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14721
-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}."
+#: doc/guix.texi:15617
+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:14723
+#: doc/guix.texi:15619
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} non-negative-integer auth-cache-size"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14728
-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}."
+#: doc/guix.texi:15624
+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:14730
+#: doc/guix.texi:15626
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string auth-cache-ttl"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14738
+#: doc/guix.texi:15634
 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:14740
+#: doc/guix.texi:15636
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string auth-cache-negative-ttl"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14744
+#: doc/guix.texi:15640
 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:14746
+#: doc/guix.texi:15642
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} space-separated-string-list auth-realms"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14752
+#: doc/guix.texi:15648
 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:14754
+#: doc/guix.texi:15650
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string auth-default-realm"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14759
+#: doc/guix.texi:15655
 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:14761
+#: doc/guix.texi:15657
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string auth-username-chars"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14768
+#: doc/guix.texi:15664
 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:14770
+#: doc/guix.texi:15666
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string auth-username-translation"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14776
+#: doc/guix.texi:15672
 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:14778
+#: doc/guix.texi:15674
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string auth-username-format"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14785
-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\"}."
+#: doc/guix.texi:15681
+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:14787
+#: doc/guix.texi:15683
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string auth-master-user-separator"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14795
-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{\"\"}."
+#: doc/guix.texi:15691
+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:14797
+#: doc/guix.texi:15693
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string auth-anonymous-username"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14801
+#: doc/guix.texi:15697
 msgid "Username to use for users logging in with ANONYMOUS SASL mechanism.  Defaults to @samp{\"anonymous\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14803
+#: doc/guix.texi:15699
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} non-negative-integer auth-worker-max-count"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14808
-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}."
+#: doc/guix.texi:15704
+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:14810
+#: doc/guix.texi:15706
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string auth-gssapi-hostname"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14815
+#: doc/guix.texi:15711
 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:14817
+#: doc/guix.texi:15713
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string auth-krb5-keytab"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14823
+#: doc/guix.texi:15719
 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:14825
+#: doc/guix.texi:15721
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean auth-use-winbind?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14830
+#: doc/guix.texi:15726
 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:14832
+#: doc/guix.texi:15728
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} file-name auth-winbind-helper-path"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14835
+#: doc/guix.texi:15731
 msgid "Path for Samba's @samp{ntlm-auth} helper binary.  Defaults to @samp{\"/usr/bin/ntlm_auth\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14837
+#: doc/guix.texi:15733
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string auth-failure-delay"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14840
+#: doc/guix.texi:15736
 msgid "Time to delay before replying to failed authentications.  Defaults to @samp{\"2 secs\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14842
+#: doc/guix.texi:15738
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean auth-ssl-require-client-cert?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14846
+#: doc/guix.texi:15742
 msgid "Require a valid SSL client certificate or the authentication fails.  Defaults to @samp{#f}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14848
+#: doc/guix.texi:15744
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean auth-ssl-username-from-cert?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14853
+#: doc/guix.texi:15749
 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:14855
+#: doc/guix.texi:15751
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} space-separated-string-list auth-mechanisms"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14861
+#: doc/guix.texi:15757
 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:14863
+#: doc/guix.texi:15759
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} space-separated-string-list director-servers"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14868
+#: doc/guix.texi:15764
 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:14870
+#: doc/guix.texi:15766
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} space-separated-string-list director-mail-servers"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14874
+#: doc/guix.texi:15770
 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:14876
+#: doc/guix.texi:15772
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string director-user-expire"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14880
+#: doc/guix.texi:15776
 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:14882
+#: doc/guix.texi:15778
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string director-username-hash"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14887
+#: doc/guix.texi:15783
 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:14889
+#: doc/guix.texi:15785
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string log-path"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14893
+#: doc/guix.texi:15789
 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:14895
+#: doc/guix.texi:15791
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string info-log-path"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14899
+#: doc/guix.texi:15795
 msgid "Log file to use for informational messages.  Defaults to @samp{log-path}.  Defaults to @samp{\"\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14901
+#: doc/guix.texi:15797
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string debug-log-path"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14905
+#: doc/guix.texi:15801
 msgid "Log file to use for debug messages.  Defaults to @samp{info-log-path}.  Defaults to @samp{\"\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14907
+#: doc/guix.texi:15803
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string syslog-facility"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14912
+#: doc/guix.texi:15808
 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:14914
+#: doc/guix.texi:15810
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean auth-verbose?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14918
+#: doc/guix.texi:15814
 msgid "Log unsuccessful authentication attempts and the reasons why they failed.  Defaults to @samp{#f}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14920
+#: doc/guix.texi:15816
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean auth-verbose-passwords?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14927
-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{#f}."
+#: doc/guix.texi:15823
+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{#f}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14929
+#: doc/guix.texi:15825
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean auth-debug?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14933
+#: doc/guix.texi:15829
 msgid "Even more verbose logging for debugging purposes.  Shows for example SQL queries.  Defaults to @samp{#f}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14935
+#: doc/guix.texi:15831
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean auth-debug-passwords?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14940
+#: doc/guix.texi:15836
 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:14942
+#: doc/guix.texi:15838
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean mail-debug?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14946
+#: doc/guix.texi:15842
 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:14948
+#: doc/guix.texi:15844
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean verbose-ssl?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14951
+#: doc/guix.texi:15847
 msgid "Show protocol level SSL errors.  Defaults to @samp{#f}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14953
+#: doc/guix.texi:15849
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string log-timestamp"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14957
+#: doc/guix.texi:15853
 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:14959
+#: doc/guix.texi:15855
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} space-separated-string-list login-log-format-elements"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14963
+#: doc/guix.texi:15859
 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:14965
+#: doc/guix.texi:15861
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string login-log-format"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14969
+#: doc/guix.texi:15865
 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:14971
+#: doc/guix.texi:15867
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string mail-log-prefix"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14975
+#: doc/guix.texi:15871
 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:14977
+#: doc/guix.texi:15873
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string deliver-log-format"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14979
+#: doc/guix.texi:15875
 msgid "Format to use for logging mail deliveries.  You can use variables:"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:14980
+#: doc/guix.texi:15876
 #, no-wrap
 msgid "%$"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14982
-msgid "Delivery status message (e.g. @samp{saved to INBOX})"
+#: doc/guix.texi:15878
+msgid "Delivery status message (e.g.@: @samp{saved to INBOX})"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:14982
+#: doc/guix.texi:15878
 #, no-wrap
 msgid "%m"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14984
+#: doc/guix.texi:15880
 msgid "Message-ID"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:14984 doc/guix.texi:15516
+#: doc/guix.texi:15880 doc/guix.texi:16412
 #, no-wrap
 msgid "%s"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14986
+#: doc/guix.texi:15882
 msgid "Subject"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:14986
+#: doc/guix.texi:15882
 #, no-wrap
 msgid "%f"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14988
+#: doc/guix.texi:15884
 msgid "From address"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14990
+#: doc/guix.texi:15886
 msgid "Physical size"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:14990
+#: doc/guix.texi:15886
 #, no-wrap
 msgid "%w"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:14992
+#: doc/guix.texi:15888
 msgid "Virtual size."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14994
+#: doc/guix.texi:15890
 msgid "Defaults to @samp{\"msgid=%m: %$\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:14996
+#: doc/guix.texi:15892
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string mail-location"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15001
+#: doc/guix.texi:15897
 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:15007
-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:15903
+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 ""
 
 #. type: deftypevr
-#: doc/guix.texi:15009
+#: doc/guix.texi:15905
 msgid "There are a few special variables you can use, eg.:"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:15013
+#: doc/guix.texi:15909
 msgid "username"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:15013 doc/guix.texi:15512
+#: doc/guix.texi:15909 doc/guix.texi:16408
 #, no-wrap
 msgid "%n"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:15015
+#: doc/guix.texi:15911
 msgid "user part in user@@domain, same as %u if there's no domain"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:15015
+#: doc/guix.texi:15911
 #, no-wrap
 msgid "%d"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:15017
+#: doc/guix.texi:15913
 msgid "domain part in user@@domain, empty if there's no domain"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:15017
+#: doc/guix.texi:15913
 #, no-wrap
 msgid "%h"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:15019
+#: doc/guix.texi:15915
 msgid "home director"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15022
+#: doc/guix.texi:15918
 msgid "See doc/wiki/Variables.txt for full list.  Some examples:"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:15023
+#: doc/guix.texi:15919
 #, no-wrap
 msgid "maildir:~/Maildir"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:15024
+#: doc/guix.texi:15920
 #, no-wrap
 msgid "mbox:~/mail:INBOX=/var/mail/%u"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:15025
+#: doc/guix.texi:15921
 #, no-wrap
 msgid "mbox:/var/mail/%d/%1n/%n:INDEX=/var/indexes/%d/%1n/%"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15030
+#: doc/guix.texi:15926
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string mail-uid"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15035
+#: doc/guix.texi:15931
 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:15037
+#: doc/guix.texi:15933
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string mail-gid"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15042
+#: doc/guix.texi:15938
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string mail-privileged-group"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15048
+#: doc/guix.texi:15944
 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 ""
 
 #. type: deftypevr
-#: doc/guix.texi:15050
+#: doc/guix.texi:15946
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string mail-access-groups"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15058
-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:15954
+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 ""
 
 #. type: deftypevr
-#: doc/guix.texi:15060
+#: doc/guix.texi:15956
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean mail-full-filesystem-access?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15066
-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:15962
+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 ""
 
 #. type: deftypevr
-#: doc/guix.texi:15068
+#: doc/guix.texi:15964
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean mmap-disable?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15072
+#: doc/guix.texi:15968
 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 ""
 
 #. type: deftypevr
-#: doc/guix.texi:15074
+#: doc/guix.texi:15970
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean dotlock-use-excl?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15079
+#: doc/guix.texi:15975
 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:15081
+#: doc/guix.texi:15977
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string mail-fsync"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15083
+#: doc/guix.texi:15979
 msgid "When to use fsync() or fdatasync() calls:"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:15084
+#: doc/guix.texi:15980
 #, no-wrap
 msgid "optimized"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:15086
+#: doc/guix.texi:15982
 msgid "Whenever necessary to avoid losing important data"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:15088
-msgid "Useful with e.g. NFS when write()s are delayed"
+#: doc/guix.texi:15984
+msgid "Useful with e.g.@: NFS when write()s are delayed"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:15090
+#: doc/guix.texi:15986
 msgid "Never use it (best performance, but crashes can lose data)."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15092
+#: doc/guix.texi:15988
 msgid "Defaults to @samp{\"optimized\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15094
+#: doc/guix.texi:15990
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean mail-nfs-storage?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15099
+#: doc/guix.texi:15995
 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:15101
+#: doc/guix.texi:15997
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean mail-nfs-index?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15105
+#: doc/guix.texi:16001
 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:15107
+#: doc/guix.texi:16003
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string lock-method"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15113
+#: doc/guix.texi:16009
 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:15115
+#: doc/guix.texi:16011
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} file-name mail-temp-dir"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15119
+#: doc/guix.texi:16015
 msgid "Directory in which LDA/LMTP temporarily stores incoming mails >128 kB.  Defaults to @samp{\"/tmp\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15121
+#: doc/guix.texi:16017
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} non-negative-integer first-valid-uid"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15127
+#: doc/guix.texi:16023
 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:15129
+#: doc/guix.texi:16025
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} non-negative-integer last-valid-uid"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15134
+#: doc/guix.texi:16030
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} non-negative-integer first-valid-gid"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15139
+#: doc/guix.texi:16035
 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:15141
+#: doc/guix.texi:16037
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} non-negative-integer last-valid-gid"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15146
+#: doc/guix.texi:16042
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} non-negative-integer mail-max-keyword-length"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15150
+#: doc/guix.texi:16046
 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:15152
+#: doc/guix.texi:16048
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} colon-separated-file-name-list valid-chroot-dirs"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15162
-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:16058
+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 ""
 
 #. type: deftypevr
-#: doc/guix.texi:15164
+#: doc/guix.texi:16060
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string mail-chroot"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15173
-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:16069
+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 ""
 
 #. type: deftypevr
-#: doc/guix.texi:15175
+#: doc/guix.texi:16071
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} file-name auth-socket-path"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15179
+#: doc/guix.texi:16075
 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:15181
+#: doc/guix.texi:16077
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} file-name mail-plugin-dir"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15184
+#: doc/guix.texi:16080
 msgid "Directory where to look up mail plugins.  Defaults to @samp{\"/usr/lib/dovecot\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15186
+#: doc/guix.texi:16082
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} space-separated-string-list mail-plugins"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15190
-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{()}."
+#: doc/guix.texi:16086
+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:15192
+#: doc/guix.texi:16088
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} non-negative-integer mail-cache-min-mail-count"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15197
+#: doc/guix.texi:16093
 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:15199
+#: doc/guix.texi:16095
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string mailbox-idle-check-interval"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15206
+#: doc/guix.texi:16102
 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:15208
+#: doc/guix.texi:16104
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean mail-save-crlf?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15215
+#: doc/guix.texi:16111
 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:15217
+#: doc/guix.texi:16113
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean maildir-stat-dirs?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15225
+#: doc/guix.texi:16121
 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:15227
+#: doc/guix.texi:16123
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean maildir-copy-with-hardlinks?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15232
+#: doc/guix.texi:16128
 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:15234
+#: doc/guix.texi:16130
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean maildir-very-dirty-syncs?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15239
+#: doc/guix.texi:16135
 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:15241
+#: doc/guix.texi:16137
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} space-separated-string-list mbox-read-locks"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15244
+#: doc/guix.texi:16140
 msgid "Which locking methods to use for locking mbox.  There are four available:"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:15246
+#: doc/guix.texi:16142
 #, no-wrap
 msgid "dotlock"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:15250
+#: doc/guix.texi:16146
 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:15250
+#: doc/guix.texi:16146
 #, no-wrap
 msgid "dotlock-try"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:15253
+#: doc/guix.texi:16149
 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:15253
+#: doc/guix.texi:16149
 #, no-wrap
 msgid "fcntl"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:15255
+#: doc/guix.texi:16151
 msgid "Use this if possible.  Works with NFS too if lockd is used."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:15255
+#: doc/guix.texi:16151
 #, no-wrap
 msgid "flock"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:15257 doc/guix.texi:15259
+#: doc/guix.texi:16153 doc/guix.texi:16155
 msgid "May not exist in all systems.  Doesn't work with NFS."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:15257
+#: doc/guix.texi:16153
 #, no-wrap
 msgid "lockf"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15265
+#: doc/guix.texi:16161
 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:15267
+#: doc/guix.texi:16163
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} space-separated-string-list mbox-write-locks"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15271
+#: doc/guix.texi:16167
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string mbox-lock-timeout"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15274
+#: doc/guix.texi:16170
 msgid "Maximum time to wait for lock (all of them) before aborting.  Defaults to @samp{\"5 mins\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15276
+#: doc/guix.texi:16172
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string mbox-dotlock-change-timeout"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15280
+#: doc/guix.texi:16176
 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:15282
+#: doc/guix.texi:16178
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean mbox-dirty-syncs?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15293
+#: doc/guix.texi:16189
 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:15295
+#: doc/guix.texi:16191
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean mbox-very-dirty-syncs?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15300
+#: doc/guix.texi:16196
 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:15302
+#: doc/guix.texi:16198
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean mbox-lazy-writes?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15308
+#: doc/guix.texi:16204
 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:15310
+#: doc/guix.texi:16206
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} non-negative-integer mbox-min-index-size"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15315
-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}."
+#: doc/guix.texi:16211
+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:15317
+#: doc/guix.texi:16213
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} non-negative-integer mdbox-rotate-size"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15320
+#: doc/guix.texi:16216
 msgid "Maximum dbox file size until it's rotated.  Defaults to @samp{10000000}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15322
+#: doc/guix.texi:16218
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string mdbox-rotate-interval"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15327
+#: doc/guix.texi:16223
 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:15329
+#: doc/guix.texi:16225
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean mdbox-preallocate-space?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15334
+#: doc/guix.texi:16230
 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:15336
+#: doc/guix.texi:16232
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string mail-attachment-dir"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15340
+#: doc/guix.texi:16236
 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:15342
+#: doc/guix.texi:16238
 msgid "WARNING: This feature hasn't been tested much yet.  Use at your own risk."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15345
+#: doc/guix.texi:16241
 msgid "Directory root where to store mail attachments.  Disabled, if empty.  Defaults to @samp{\"\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15347
+#: doc/guix.texi:16243
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} non-negative-integer mail-attachment-min-size"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15352
+#: doc/guix.texi:16248
 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:15354
+#: doc/guix.texi:16250
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string mail-attachment-fs"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15356
+#: doc/guix.texi:16252
 msgid "File system backend to use for saving attachments:"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:15357
+#: doc/guix.texi:16253
 #, no-wrap
 msgid "posix"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:15359
+#: doc/guix.texi:16255
 msgid "No SiS done by Dovecot (but this might help FS's own deduplication)"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:15359
+#: doc/guix.texi:16255
 #, no-wrap
 msgid "sis posix"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:15361
+#: doc/guix.texi:16257
 msgid "SiS with immediate byte-by-byte comparison during saving"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:15361
+#: doc/guix.texi:16257
 #, no-wrap
 msgid "sis-queue posix"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:15363
+#: doc/guix.texi:16259
 msgid "SiS with delayed comparison and deduplication."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15365
+#: doc/guix.texi:16261
 msgid "Defaults to @samp{\"sis posix\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15367
+#: doc/guix.texi:16263
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string mail-attachment-hash"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15373
-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@}\"}."
+#: doc/guix.texi:16269
+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:15375
+#: doc/guix.texi:16271
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} non-negative-integer default-process-limit"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15380
+#: doc/guix.texi:16276
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} non-negative-integer default-client-limit"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15383 doc/guix.texi:19707
+#: doc/guix.texi:16279 doc/guix.texi:21472
 msgid "Defaults to @samp{1000}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15385
+#: doc/guix.texi:16281
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} non-negative-integer default-vsz-limit"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15390
+#: doc/guix.texi:16286
 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:15392
+#: doc/guix.texi:16288
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string default-login-user"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15397
+#: doc/guix.texi:16293
 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:15399
+#: doc/guix.texi:16295
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string default-internal-user"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15404
+#: doc/guix.texi:16300
 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:15406
+#: doc/guix.texi:16302
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string ssl?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15409
+#: doc/guix.texi:16305
 msgid "SSL/TLS support: yes, no, required.  <doc/wiki/SSL.txt>.  Defaults to @samp{\"required\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15411
+#: doc/guix.texi:16307
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string ssl-cert"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15414
+#: doc/guix.texi:16310
 msgid "PEM encoded X.509 SSL/TLS certificate (public key).  Defaults to @samp{\"</etc/dovecot/default.pem\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15416
+#: doc/guix.texi:16312
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string ssl-key"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15421
+#: doc/guix.texi:16317
 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:15423
+#: doc/guix.texi:16319
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string ssl-key-password"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15429
+#: doc/guix.texi:16325
 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:15431
+#: doc/guix.texi:16327
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string ssl-ca"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15437
-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{\"\"}."
+#: doc/guix.texi:16333
+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:15439
+#: doc/guix.texi:16335
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean ssl-require-crl?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15442
+#: doc/guix.texi:16338
 msgid "Require that CRL check succeeds for client certificates.  Defaults to @samp{#t}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15444
+#: doc/guix.texi:16340
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean ssl-verify-client-cert?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15448
+#: doc/guix.texi:16344
 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:15450
+#: doc/guix.texi:16346
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string ssl-cert-username-field"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15455
+#: doc/guix.texi:16351
 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:15457
+#: doc/guix.texi:16353
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string ssl-min-protocol"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15460
+#: doc/guix.texi:16356
 msgid "Minimum SSL protocol version to accept.  Defaults to @samp{\"TLSv1\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15462
+#: doc/guix.texi:16358
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string ssl-cipher-list"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15465
+#: doc/guix.texi:16361
 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:15467
+#: doc/guix.texi:16363
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string ssl-crypto-device"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15470
+#: doc/guix.texi:16366
 msgid "SSL crypto device to use, for valid values run \"openssl engine\".  Defaults to @samp{\"\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15472
+#: doc/guix.texi:16368
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string postmaster-address"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15476
+#: doc/guix.texi:16372
 msgid "Address to use when sending rejection mails.  %d expands to recipient domain.  Defaults to @samp{\"postmaster@@%d\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15478
+#: doc/guix.texi:16374
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string hostname"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15482
-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{\"\"}."
+#: doc/guix.texi:16378
+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:15484
+#: doc/guix.texi:16380
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean quota-full-tempfail?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15488
+#: doc/guix.texi:16384
 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:15490
+#: doc/guix.texi:16386
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} file-name sendmail-path"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15493
+#: doc/guix.texi:16389
 msgid "Binary to use for sending mails.  Defaults to @samp{\"/usr/sbin/sendmail\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15495
+#: doc/guix.texi:16391
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string submission-host"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15499
+#: doc/guix.texi:16395
 msgid "If non-empty, send mails via this SMTP host[:port] instead of sendmail.  Defaults to @samp{\"\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15501
+#: doc/guix.texi:16397
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string rejection-subject"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15505
+#: doc/guix.texi:16401
 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:15507
+#: doc/guix.texi:16403
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string rejection-reason"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15510
+#: doc/guix.texi:16406
 msgid "Human readable error message for rejection mails.  You can use variables:"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:15514
+#: doc/guix.texi:16410
 msgid "CRLF"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:15514
+#: doc/guix.texi:16410
 #, no-wrap
 msgid "%r"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:15516
+#: doc/guix.texi:16412
 msgid "reason"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:15518
+#: doc/guix.texi:16414
 msgid "original subject"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:15518
+#: doc/guix.texi:16414
 #, no-wrap
 msgid "%t"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:15520
+#: doc/guix.texi:16416
 msgid "recipient"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15522
+#: doc/guix.texi:16418
 msgid "Defaults to @samp{\"Your message to <%t> was automatically rejected:%n%r\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15524
+#: doc/guix.texi:16420
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string recipient-delimiter"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15528
+#: doc/guix.texi:16424
 msgid "Delimiter character between local-part and detail in email address.  Defaults to @samp{\"+\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15530
+#: doc/guix.texi:16426
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string lda-original-recipient-header"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15536
+#: doc/guix.texi:16432
 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:15538
+#: doc/guix.texi:16434
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean lda-mailbox-autocreate?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15542
+#: doc/guix.texi:16438
 msgid "Should saving a mail to a nonexistent mailbox automatically create it?.  Defaults to @samp{#f}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15544
+#: doc/guix.texi:16440
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean lda-mailbox-autosubscribe?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15548
+#: doc/guix.texi:16444
 msgid "Should automatically created mailboxes be also automatically subscribed?.  Defaults to @samp{#f}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15550
+#: doc/guix.texi:16446
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} non-negative-integer imap-max-line-length"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15556
+#: doc/guix.texi:16452
 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:15558
+#: doc/guix.texi:16454
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string imap-logout-format"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15560
+#: doc/guix.texi:16456
 msgid "IMAP logout format string:"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:15561
+#: doc/guix.texi:16457
 #, no-wrap
 msgid "%i"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:15563
+#: doc/guix.texi:16459
 msgid "total number of bytes read from client"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:15563
+#: doc/guix.texi:16459
 #, no-wrap
 msgid "%o"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:15565
+#: doc/guix.texi:16461
 msgid "total number of bytes sent to client."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15568
+#: doc/guix.texi:16464
 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:15570
+#: doc/guix.texi:16466
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string imap-capability"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15574
-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{\"\"}."
+#: doc/guix.texi:16470
+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:15576
+#: doc/guix.texi:16472
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string imap-idle-notify-interval"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15580
+#: doc/guix.texi:16476
 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:15582
+#: doc/guix.texi:16478
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string imap-id-send"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15588
+#: doc/guix.texi:16484
 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:15590
+#: doc/guix.texi:16486
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string imap-id-log"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15593
+#: doc/guix.texi:16489
 msgid "ID fields sent by client to log.  * means everything.  Defaults to @samp{\"\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15595
+#: doc/guix.texi:16491
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} space-separated-string-list imap-client-workarounds"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15597
+#: doc/guix.texi:16493
 msgid "Workarounds for various client bugs:"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:15599
+#: doc/guix.texi:16495
 #, no-wrap
 msgid "delay-newmail"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:15606
+#: doc/guix.texi:16502
 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:15607
+#: doc/guix.texi:16503
 #, no-wrap
 msgid "tb-extra-mailbox-sep"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:15611
+#: doc/guix.texi:16507
 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:15612
+#: doc/guix.texi:16508
 #, no-wrap
 msgid "tb-lsub-flags"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:15616
-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."
+#: doc/guix.texi:16512
+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:15620
+#: doc/guix.texi:16516
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string imap-urlauth-host"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15623
+#: doc/guix.texi:16519
 msgid "Host allowed in URLAUTH URLs sent by client.  \"*\" allows all.  Defaults to @samp{\"\"}."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:15631
-msgid "Whew! Lots of configuration options.  The nice thing about it though is that GuixSD 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."
+#: doc/guix.texi:16527
+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:15637
+#: doc/guix.texi:16533
 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:15639
+#: doc/guix.texi:16535
 msgid "Available @code{opaque-dovecot-configuration} fields are:"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15640
+#: doc/guix.texi:16536
 #, no-wrap
 msgid "{@code{opaque-dovecot-configuration} parameter} package dovecot"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15644
+#: doc/guix.texi:16540
 #, no-wrap
 msgid "{@code{opaque-dovecot-configuration} parameter} string string"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15646
+#: doc/guix.texi:16542
 msgid "The contents of the @code{dovecot.conf}, as a string."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:15650
+#: doc/guix.texi:16546
 msgid "For example, if your @code{dovecot.conf} is just the empty string, you could instantiate a dovecot service like this:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:15655
+#: doc/guix.texi:16551
 #, no-wrap
 msgid ""
 "(dovecot-service #:config\n"
@@ -28212,24 +30622,24 @@ msgid ""
 msgstr ""
 
 #. type: subsubheading
-#: doc/guix.texi:15657
+#: doc/guix.texi:16553
 #, no-wrap
 msgid "OpenSMTPD Service"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:15659
+#: doc/guix.texi:16555
 #, no-wrap
 msgid "{Scheme Variable} opensmtpd-service-type"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:15663
+#: doc/guix.texi:16559
 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: example
-#: doc/guix.texi:15668
+#: doc/guix.texi:16564
 #, no-wrap
 msgid ""
 "(service opensmtpd-service-type\n"
@@ -28238,75 +30648,75 @@ msgid ""
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:15671
+#: doc/guix.texi:16567
 #, no-wrap
 msgid "{Data Type} opensmtpd-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:15673
+#: doc/guix.texi:16569
 msgid "Data type representing the configuration of opensmtpd."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:15675
+#: doc/guix.texi:16571
 #, no-wrap
 msgid "@code{package} (default: @var{opensmtpd})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:15677
+#: doc/guix.texi:16573
 msgid "Package object of the OpenSMTPD SMTP server."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:15678
+#: doc/guix.texi:16574
 #, no-wrap
 msgid "@code{config-file} (default: @var{%default-opensmtpd-file})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:15683
+#: doc/guix.texi:16579
 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:15687
+#: doc/guix.texi:16583
 #, no-wrap
 msgid "Exim Service"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:15689
+#: doc/guix.texi:16585
 #, no-wrap
 msgid "mail transfer agent (MTA)"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:15690
+#: doc/guix.texi:16586
 #, no-wrap
 msgid "MTA (mail transfer agent)"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:15691
+#: doc/guix.texi:16587
 #, no-wrap
 msgid "SMTP"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:15693
+#: doc/guix.texi:16589
 #, no-wrap
 msgid "{Scheme Variable} exim-service-type"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:15697
+#: doc/guix.texi:16593
 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: example
-#: doc/guix.texi:15702
+#: doc/guix.texi:16598
 #, no-wrap
 msgid ""
 "(service exim-service-type\n"
@@ -28315,68 +30725,68 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:15708
+#: doc/guix.texi:16604
 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:15709
+#: doc/guix.texi:16605
 #, no-wrap
 msgid "{Data Type} exim-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:15711
+#: doc/guix.texi:16607
 msgid "Data type representing the configuration of exim."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:15713
+#: doc/guix.texi:16609
 #, no-wrap
 msgid "@code{package} (default: @var{exim})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:15715
+#: doc/guix.texi:16611
 msgid "Package object of the Exim server."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:15722
+#: doc/guix.texi:16618
 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:15726
+#: doc/guix.texi:16622
 #, no-wrap
 msgid "Mail Aliases Service"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:15728
+#: doc/guix.texi:16624
 #, no-wrap
 msgid "email aliases"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:15729
+#: doc/guix.texi:16625
 #, no-wrap
 msgid "aliases, for email addresses"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:15731
+#: doc/guix.texi:16627
 #, no-wrap
 msgid "{Scheme Variable} mail-aliases-service-type"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:15734
+#: doc/guix.texi:16630
 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: example
-#: doc/guix.texi:15739
+#: doc/guix.texi:16635
 #, no-wrap
 msgid ""
 "(service mail-aliases-service-type\n"
@@ -28385,57 +30795,119 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:15747
+#: doc/guix.texi:16643
 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:15753
+#: doc/guix.texi:16649
 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:15757
+#: doc/guix.texi:16650 doc/guix.texi:16651
+#, no-wrap
+msgid "GNU Mailutils IMAP4 Daemon"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:16653
+#, no-wrap
+msgid "{Scheme Variable} imap4d-service-type"
+msgstr "{Scheme-Variable} imap4d-service-type"
+
+#. type: deffn
+#: doc/guix.texi:16657
+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: example
+#: doc/guix.texi:16662
+#, no-wrap
+msgid ""
+"(service imap4d-service-type\n"
+"         (imap4d-configuration\n"
+"           (config-file (local-file \"imap4d.conf\"))))\n"
+msgstr ""
+"(service imap4d-service-type\n"
+"         (imap4d-configuration\n"
+"           (config-file (local-file \"imap4d.conf\"))))\n"
+
+#. type: deftp
+#: doc/guix.texi:16665
+#, no-wrap
+msgid "{Data Type} imap4d-configuration"
+msgstr "{Datentyp} imap4d-configuration"
+
+#. type: deftp
+#: doc/guix.texi:16667
+msgid "Data type representing the configuration of @command{imap4d}."
+msgstr "Datentyp, der die Konfiguration von @command{imap4d} repräsentiert."
+
+#. type: item
+#: doc/guix.texi:16669
+#, no-wrap
+msgid "@code{package} (default: @code{mailutils})"
+msgstr "@code{package} (Vorgabe: @code{mailutils})"
+
+#. type: table
+#: doc/guix.texi:16671
+msgid "The package that provides @command{imap4d}."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:16672
+#, 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:16676
+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:16683
 #, no-wrap
 msgid "messaging"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:15758
+#: doc/guix.texi:16684
 #, no-wrap
 msgid "jabber"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:15759
+#: doc/guix.texi:16685
 #, no-wrap
 msgid "XMPP"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:15762
+#: doc/guix.texi:16688
 msgid "The @code{(gnu services messaging)} module provides Guix service definitions for messaging services: currently only Prosody is supported."
 msgstr ""
 
 #. type: subsubheading
-#: doc/guix.texi:15763
+#: doc/guix.texi:16689
 #, no-wrap
 msgid "Prosody Service"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:15765
+#: doc/guix.texi:16691
 #, no-wrap
 msgid "{Scheme Variable} prosody-service-type"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:15769
+#: doc/guix.texi:16695
 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: example
-#: doc/guix.texi:15784
+#: doc/guix.texi:16710
 #, no-wrap
 msgid ""
 "(service prosody-service-type\n"
@@ -28454,690 +30926,690 @@ msgid ""
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:15787
+#: doc/guix.texi:16713
 msgid "See below for details about @code{prosody-configuration}."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:15793
+#: doc/guix.texi:16719
 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:15796
+#: doc/guix.texi:16722
 msgid "You can perform various sanity checks on the generated configuration with the @code{prosodyctl check} command."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:15800
+#: doc/guix.texi:16726
 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:15803
+#: doc/guix.texi:16729
 #, no-wrap
 msgid "prosodyctl --root cert import /etc/letsencrypt/live\n"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:15810
+#: doc/guix.texi:16736
 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:15814
+#: doc/guix.texi:16740
 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:15817
+#: doc/guix.texi:16743
 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:15827
+#: doc/guix.texi:16753
 msgid "Available @code{prosody-configuration} fields are:"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15828
+#: doc/guix.texi:16754
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} package prosody"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15830
+#: doc/guix.texi:16756
 msgid "The Prosody package."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15832
+#: doc/guix.texi:16758
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} file-name data-path"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15836
+#: doc/guix.texi:16762
 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:15838
+#: doc/guix.texi:16764
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} file-object-list plugin-paths"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15842
+#: doc/guix.texi:16768
 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:15844
+#: doc/guix.texi:16770
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} file-name certificates"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15849
+#: doc/guix.texi:16775
 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:15851
+#: doc/guix.texi:16777
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} string-list admins"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15857
+#: doc/guix.texi:16783
 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:15859
+#: doc/guix.texi:16785
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} boolean use-libevent?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15863
+#: doc/guix.texi:16789
 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:15865
+#: doc/guix.texi:16791
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} module-list modules-enabled"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15871
+#: doc/guix.texi:16797
 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:15873
+#: doc/guix.texi:16799
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} string-list modules-disabled"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15877
+#: doc/guix.texi:16803
 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:15879
+#: doc/guix.texi:16805
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} file-object groups-file"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15884
+#: doc/guix.texi:16810
 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:15886
+#: doc/guix.texi:16812
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} boolean allow-registration?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15890
+#: doc/guix.texi:16816
 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:15892
+#: doc/guix.texi:16818
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} maybe-ssl-configuration ssl"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15897
+#: doc/guix.texi:16823
 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:15899
+#: doc/guix.texi:16825
 msgid "Available @code{ssl-configuration} fields are:"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15900
+#: doc/guix.texi:16826
 #, no-wrap
 msgid "{@code{ssl-configuration} parameter} maybe-string protocol"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15902
+#: doc/guix.texi:16828
 msgid "This determines what handshake to use."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15904
+#: doc/guix.texi:16830
 #, no-wrap
 msgid "{@code{ssl-configuration} parameter} maybe-file-name key"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15906
+#: doc/guix.texi:16832
 msgid "Path to your private key file."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15908
+#: doc/guix.texi:16834
 #, no-wrap
 msgid "{@code{ssl-configuration} parameter} maybe-file-name certificate"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15910
+#: doc/guix.texi:16836
 msgid "Path to your certificate file."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15912
+#: doc/guix.texi:16838
 #, no-wrap
 msgid "{@code{ssl-configuration} parameter} file-object capath"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15916
+#: doc/guix.texi:16842
 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:15918
+#: doc/guix.texi:16844
 #, no-wrap
 msgid "{@code{ssl-configuration} parameter} maybe-file-object cafile"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15921
+#: doc/guix.texi:16847
 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:15923
+#: doc/guix.texi:16849
 #, no-wrap
 msgid "{@code{ssl-configuration} parameter} maybe-string-list verify"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15926
+#: doc/guix.texi:16852
 msgid "A list of verification options (these mostly map to OpenSSL's @code{set_verify()} flags)."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15928
+#: doc/guix.texi:16854
 #, no-wrap
 msgid "{@code{ssl-configuration} parameter} maybe-string-list options"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15932
+#: doc/guix.texi:16858
 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:15934
+#: doc/guix.texi:16860
 #, no-wrap
 msgid "{@code{ssl-configuration} parameter} maybe-non-negative-integer depth"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15937
+#: doc/guix.texi:16863
 msgid "How long a chain of certificate authorities to check when looking for a trusted root certificate."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15939
+#: doc/guix.texi:16865
 #, no-wrap
 msgid "{@code{ssl-configuration} parameter} maybe-string ciphers"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15942
+#: doc/guix.texi:16868
 msgid "An OpenSSL cipher string.  This selects what ciphers Prosody will offer to clients, and in what order."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15944
+#: doc/guix.texi:16870
 #, no-wrap
 msgid "{@code{ssl-configuration} parameter} maybe-file-name dhparam"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15948
+#: doc/guix.texi:16874
 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:15950
+#: doc/guix.texi:16876
 #, no-wrap
 msgid "{@code{ssl-configuration} parameter} maybe-string curve"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15953
+#: doc/guix.texi:16879
 msgid "Curve for Elliptic curve Diffie-Hellman. Prosody's default is @samp{\"secp384r1\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15955
+#: doc/guix.texi:16881
 #, no-wrap
 msgid "{@code{ssl-configuration} parameter} maybe-string-list verifyext"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15957
+#: doc/guix.texi:16883
 msgid "A list of \"extra\" verification options."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15959
+#: doc/guix.texi:16885
 #, no-wrap
 msgid "{@code{ssl-configuration} parameter} maybe-string password"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15961
+#: doc/guix.texi:16887
 msgid "Password for encrypted private keys."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15965
+#: doc/guix.texi:16891
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} boolean c2s-require-encryption?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15969
+#: doc/guix.texi:16895
 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:15971
+#: doc/guix.texi:16897
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} string-list disable-sasl-mechanisms"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15975
+#: doc/guix.texi:16901
 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:15977
+#: doc/guix.texi:16903
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} boolean s2s-require-encryption?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15981
+#: doc/guix.texi:16907
 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:15983
+#: doc/guix.texi:16909
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} boolean s2s-secure-auth?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15989
+#: doc/guix.texi:16915
 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:15991
+#: doc/guix.texi:16917
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} string-list s2s-insecure-domains"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:15997
+#: doc/guix.texi:16923
 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:15999
+#: doc/guix.texi:16925
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} string-list s2s-secure-domains"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16004
+#: doc/guix.texi:16930
 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:16006
+#: doc/guix.texi:16932
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} string authentication"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16014
+#: doc/guix.texi:16940
 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:16016
+#: doc/guix.texi:16942
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} maybe-string log"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16020
-msgid "Set logging options.  Advanced logging configuration is not yet supported by the GuixSD Prosody Service.  See @url{https://prosody.im/doc/logging}.  Defaults to @samp{\"*syslog\"}."
+#: doc/guix.texi:16946
+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:16022
+#: doc/guix.texi:16948
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} file-name pidfile"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16025
+#: doc/guix.texi:16951
 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:16027
+#: doc/guix.texi:16953
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} maybe-non-negative-integer http-max-content-size"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16029
+#: doc/guix.texi:16955
 msgid "Maximum allowed size of the HTTP body (in bytes)."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16031
+#: doc/guix.texi:16957
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} maybe-string http-external-url"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16036
+#: doc/guix.texi:16962
 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:16038
+#: doc/guix.texi:16964
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} virtualhost-configuration-list virtualhosts"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16043
+#: doc/guix.texi:16969
 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:16049
+#: doc/guix.texi:16975
 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 ""
 
 #. type: deftypevr
-#: doc/guix.texi:16051
+#: doc/guix.texi:16977
 msgid "See @url{https://prosody.im/doc/configure#virtual_host_settings}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16053
+#: doc/guix.texi:16979
 msgid "Available @code{virtualhost-configuration} fields are:"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16055 doc/guix.texi:16077 doc/guix.texi:16130
+#: doc/guix.texi:16981 doc/guix.texi:17003 doc/guix.texi:17056
 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:16055
+#: doc/guix.texi:16981
 #, no-wrap
 msgid "{@code{virtualhost-configuration} parameter} string domain"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16057
+#: doc/guix.texi:16983
 msgid "Domain you wish Prosody to serve."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16061
+#: doc/guix.texi:16987
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} int-component-configuration-list int-components"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16066
+#: doc/guix.texi:16992
 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:16070
+#: doc/guix.texi:16996
 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:16073
+#: doc/guix.texi:16999
 msgid "See @url{https://prosody.im/doc/components}.  Defaults to @samp{()}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16075
+#: doc/guix.texi:17001
 msgid "Available @code{int-component-configuration} fields are:"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16077
+#: doc/guix.texi:17003
 #, no-wrap
 msgid "{@code{int-component-configuration} parameter} string hostname"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16079 doc/guix.texi:16136
+#: doc/guix.texi:17005 doc/guix.texi:17062
 msgid "Hostname of the component."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16081
+#: doc/guix.texi:17007
 #, no-wrap
 msgid "{@code{int-component-configuration} parameter} string plugin"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16083
+#: doc/guix.texi:17009
 msgid "Plugin you wish to use for the component."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16085
+#: doc/guix.texi:17011
 #, no-wrap
 msgid "{@code{int-component-configuration} parameter} maybe-mod-muc-configuration mod-muc"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16088
+#: doc/guix.texi:17014
 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:16092
+#: doc/guix.texi:17018
 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:16094
+#: doc/guix.texi:17020
 msgid "See also @url{https://prosody.im/doc/modules/mod_muc}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16096
+#: doc/guix.texi:17022
 msgid "Available @code{mod-muc-configuration} fields are:"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16097
+#: doc/guix.texi:17023
 #, no-wrap
 msgid "{@code{mod-muc-configuration} parameter} string name"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16100
+#: doc/guix.texi:17026
 msgid "The name to return in service discovery responses.  Defaults to @samp{\"Prosody Chatrooms\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16102
+#: doc/guix.texi:17028
 #, no-wrap
 msgid "{@code{mod-muc-configuration} parameter} string-or-boolean restrict-room-creation"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16109
-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}."
+#: doc/guix.texi:17035
+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:16111
+#: doc/guix.texi:17037
 #, no-wrap
 msgid "{@code{mod-muc-configuration} parameter} non-negative-integer max-history-messages"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16115
+#: doc/guix.texi:17041
 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:16121
+#: doc/guix.texi:17047
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} ext-component-configuration-list ext-components"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16126
+#: doc/guix.texi:17052
 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:16128
+#: doc/guix.texi:17054
 msgid "Available @code{ext-component-configuration} fields are:"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16130
+#: doc/guix.texi:17056
 #, no-wrap
 msgid "{@code{ext-component-configuration} parameter} string component-secret"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16132
+#: doc/guix.texi:17058
 msgid "Password which the component will use to log in."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16134
+#: doc/guix.texi:17060
 #, no-wrap
 msgid "{@code{ext-component-configuration} parameter} string hostname"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16140
+#: doc/guix.texi:17066
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} non-negative-integer-list component-ports"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16143
+#: doc/guix.texi:17069
 msgid "Port(s) Prosody listens on for component connections.  Defaults to @samp{(5347)}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16145
+#: doc/guix.texi:17071
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} string component-interface"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16148
+#: doc/guix.texi:17074
 msgid "Interface Prosody listens on for component connections.  Defaults to @samp{\"127.0.0.1\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16150
+#: doc/guix.texi:17076
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} maybe-raw-content raw-content"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16152
+#: doc/guix.texi:17078
 msgid "Raw content that will be added to the configuration file."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:16160
+#: doc/guix.texi:17086
 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:16161
+#: doc/guix.texi:17087
 #, no-wrap
 msgid "{@code{opaque-prosody-configuration} parameter} package prosody"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16163
+#: doc/guix.texi:17089
 msgid "The prosody package."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16165
+#: doc/guix.texi:17091
 #, no-wrap
 msgid "{@code{opaque-prosody-configuration} parameter} string prosody.cfg.lua"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:16167
+#: doc/guix.texi:17093
 msgid "The contents of the @code{prosody.cfg.lua} to use."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:16171
+#: doc/guix.texi:17097
 msgid "For example, if your @code{prosody.cfg.lua} is just the empty string, you could instantiate a prosody service like this:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:16176
+#: doc/guix.texi:17102
 #, no-wrap
 msgid ""
 "(service prosody-service-type\n"
@@ -29146,655 +31618,727 @@ msgid ""
 msgstr ""
 
 #. type: subsubheading
-#: doc/guix.texi:16180
+#: doc/guix.texi:17106
 #, no-wrap
 msgid "BitlBee Service"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:16182
+#: doc/guix.texi:17108 doc/guix.texi:17152
 #, no-wrap
 msgid "IRC (Internet Relay Chat)"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:16183
+#: doc/guix.texi:17109
 #, no-wrap
 msgid "IRC gateway"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:16186
+#: doc/guix.texi:17112
 msgid "@url{http://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:16187
+#: doc/guix.texi:17113
 #, no-wrap
 msgid "{Scheme Variable} bitlbee-service-type"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:16191
+#: doc/guix.texi:17117
 msgid "This is the service type for the @url{http://bitlbee.org,BitlBee} IRC gateway daemon.  Its value is a @code{bitlbee-configuration} (see below)."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:16194
+#: doc/guix.texi:17120
 msgid "To have BitlBee listen on port 6667 on localhost, add this line to your services:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:16197
+#: doc/guix.texi:17123
 #, no-wrap
 msgid "(service bitlbee-service-type)\n"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:16200
+#: doc/guix.texi:17126
 #, no-wrap
 msgid "{Data Type} bitlbee-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:16202
+#: doc/guix.texi:17128
 msgid "This is the configuration for BitlBee, with the following fields:"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:16204
+#: doc/guix.texi:17130
 #, no-wrap
 msgid "@code{interface} (default: @code{\"127.0.0.1\"})"
 msgstr ""
 
 #. type: itemx
-#: doc/guix.texi:16205
+#: doc/guix.texi:17131
 #, no-wrap
 msgid "@code{port} (default: @code{6667})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:16208
+#: doc/guix.texi:17134
 msgid "Listen on the network interface corresponding to the IP address specified in @var{interface}, on @var{port}."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:16212
+#: doc/guix.texi:17138
 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:16213
+#: doc/guix.texi:17139
 #, no-wrap
 msgid "@code{package} (default: @code{bitlbee})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:16215
+#: doc/guix.texi:17141
 msgid "The BitlBee package to use."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:16216
+#: doc/guix.texi:17142
 #, no-wrap
 msgid "@code{plugins} (default: @code{'()})"
 msgstr "@code{plugins} (Vorgabe: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:16218
+#: doc/guix.texi:17144
 msgid "List of plugin packages to use---e.g., @code{bitlbee-discord}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:16219
+#: doc/guix.texi:17145
 #, no-wrap
 msgid "@code{extra-settings} (default: @code{\"\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:16221
+#: doc/guix.texi:17147
 msgid "Configuration snippet added as-is to the BitlBee configuration file."
 msgstr ""
 
+#. type: subsubheading
+#: doc/guix.texi:17150
+#, no-wrap
+msgid "Quassel Service"
+msgstr "Quassel-Dienst"
+
+#. type: Plain text
+#: doc/guix.texi:17156
+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:17157
+#, no-wrap
+msgid "{Scheme Variable} quassel-service-type"
+msgstr "{Scheme-Variable} quassel-service-type"
+
+#. type: defvr
+#: doc/guix.texi:17161
+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:17163
+#, no-wrap
+msgid "{Data Type} quassel-configuration"
+msgstr "{Datentyp} quassel-configuration"
+
+#. type: deftp
+#: doc/guix.texi:17165
+msgid "This is the configuration for Quassel, with the following fields:"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17167
+#, no-wrap
+msgid "@code{quassel} (default: @code{quassel})"
+msgstr "@code{quassel} (Vorgabe: @code{quassel})"
+
+#. type: table
+#: doc/guix.texi:17169
+msgid "The Quassel package to use."
+msgstr "Das zu verwendende Quassel-Paket."
+
+#. type: item
+#: doc/guix.texi:17170
+#, 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:17171
+#, no-wrap
+msgid "@code{port} (default: @code{4242})"
+msgstr "@code{port} (Vorgabe: @code{4242})"
+
+#. type: table
+#: doc/guix.texi:17175
+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:17176
+#, no-wrap
+msgid "@code{loglevel} (default: @code{\"Info\"})"
+msgstr "@code{loglevel} (Vorgabe: @code{\"Info\"})"
+
+#. type: table
+#: doc/guix.texi:17179
+msgid "The level of logging desired.  Accepted values are Debug, Info, Warning and Error."
+msgstr ""
+
 #. type: cindex
-#: doc/guix.texi:16228
+#: doc/guix.texi:17185
 #, no-wrap
 msgid "Murmur (VoIP server)"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:16229
+#: doc/guix.texi:17186
 #, no-wrap
 msgid "VoIP server"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:16233
+#: doc/guix.texi:17190
 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:16234
+#: doc/guix.texi:17191
 #, no-wrap
 msgid "{Data Type} murmur-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:16237
+#: doc/guix.texi:17194
 msgid "The service type for the Murmur server.  An example configuration can look like this:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:16246
+#: doc/guix.texi:17203
 #, no-wrap
 msgid ""
 "(service murmur-service-type\n"
 "         (murmur-configuration\n"
 "          (welcome-text\n"
-"            \"Welcome to this Mumble server running on GuixSD!\")\n"
+"            \"Welcome to this Mumble server running on Guix!\")\n"
 "          (cert-required? #t) ;disallow text password logins\n"
 "          (ssl-cert \"/etc/letsencrypt/live/mumble.example.com/fullchain.pem\")\n"
 "          (ssl-key \"/etc/letsencrypt/live/mumble.example.com/privkey.pem\")))\n"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:16250
+#: doc/guix.texi:17207
 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:16259
+#: doc/guix.texi:17216
 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:16261
+#: doc/guix.texi:17218
 msgid "Available @code{murmur-configuration} fields are:"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:16263
+#: doc/guix.texi:17220
 #, no-wrap
 msgid "@code{package} (default: @code{mumble})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:16265
+#: doc/guix.texi:17222
 msgid "Package that contains @code{bin/murmurd}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:16266
+#: doc/guix.texi:17223
 #, no-wrap
 msgid "@code{user} (default: @code{\"murmur\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:16268
+#: doc/guix.texi:17225
 msgid "User who will run the Murmur server."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:16269
+#: doc/guix.texi:17226
 #, no-wrap
 msgid "@code{group} (default: @code{\"murmur\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:16271
+#: doc/guix.texi:17228
 msgid "Group of the user who will run the murmur server."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:16272
+#: doc/guix.texi:17229
 #, no-wrap
 msgid "@code{port} (default: @code{64738})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:16274
+#: doc/guix.texi:17231
 msgid "Port on which the server will listen."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:16275
+#: doc/guix.texi:17232
 #, no-wrap
 msgid "@code{welcome-text} (default: @code{\"\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:16277
+#: doc/guix.texi:17234
 msgid "Welcome text sent to clients when they connect."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:16278
+#: doc/guix.texi:17235
 #, no-wrap
 msgid "@code{server-password} (default: @code{\"\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:16280
+#: doc/guix.texi:17237
 msgid "Password the clients have to enter in order to connect."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:16281
+#: doc/guix.texi:17238
 #, no-wrap
 msgid "@code{max-users} (default: @code{100})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:16283
+#: doc/guix.texi:17240
 msgid "Maximum of users that can be connected to the server at once."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:16284
+#: doc/guix.texi:17241
 #, no-wrap
 msgid "@code{max-user-bandwidth} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:16286
+#: doc/guix.texi:17243
 msgid "Maximum voice traffic a user can send per second."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:16287
+#: doc/guix.texi:17244
 #, no-wrap
 msgid "@code{database-file} (default: @code{\"/var/lib/murmur/db.sqlite\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:16290
+#: doc/guix.texi:17247
 msgid "File name of the sqlite database.  The service's user will become the owner of the directory."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:16291
+#: doc/guix.texi:17248
 #, no-wrap
 msgid "@code{log-file} (default: @code{\"/var/log/murmur/murmur.log\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:16294
+#: doc/guix.texi:17251
 msgid "File name of the log file.  The service's user will become the owner of the directory."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:16295
+#: doc/guix.texi:17252
 #, no-wrap
 msgid "@code{autoban-attempts} (default: @code{10})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:16298
+#: doc/guix.texi:17255
 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:16299
+#: doc/guix.texi:17256
 #, no-wrap
 msgid "@code{autoban-timeframe} (default: @code{120})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:16301
+#: doc/guix.texi:17258
 msgid "Timeframe for autoban in seconds."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:16302
+#: doc/guix.texi:17259
 #, no-wrap
 msgid "@code{autoban-time} (default: @code{300})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:16305
+#: doc/guix.texi:17262
 msgid "Amount of time in seconds for which a client gets banned when violating the autoban limits."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:16306
+#: doc/guix.texi:17263
 #, no-wrap
 msgid "@code{opus-threshold} (default: @code{100})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:16309
+#: doc/guix.texi:17266
 msgid "Percentage of clients that need to support opus before switching over to opus audio codec."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:16310
+#: doc/guix.texi:17267
 #, no-wrap
 msgid "@code{channel-nesting-limit} (default: @code{10})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:16312
+#: doc/guix.texi:17269
 msgid "How deep channels can be nested at maximum."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:16313
+#: doc/guix.texi:17270
 #, no-wrap
 msgid "@code{channelname-regex} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:16315
+#: doc/guix.texi:17272
 msgid "A string in form of a Qt regular expression that channel names must conform to."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:16316
+#: doc/guix.texi:17273
 #, no-wrap
 msgid "@code{username-regex} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:16318
+#: doc/guix.texi:17275
 msgid "A string in form of a Qt regular expression that user names must conform to."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:16319
+#: doc/guix.texi:17276
 #, no-wrap
 msgid "@code{text-message-length} (default: @code{5000})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:16321
+#: doc/guix.texi:17278
 msgid "Maximum size in bytes that a user can send in one text chat message."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:16322
+#: doc/guix.texi:17279
 #, no-wrap
 msgid "@code{image-message-length} (default: @code{(* 128 1024)})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:16324
+#: doc/guix.texi:17281
 msgid "Maximum size in bytes that a user can send in one image message."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:16325
+#: doc/guix.texi:17282
 #, no-wrap
 msgid "@code{cert-required?} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:16328
+#: doc/guix.texi:17285
 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."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:16329
+#: doc/guix.texi:17286
 #, no-wrap
 msgid "@code{remember-channel?} (default: @code{#f})"
 msgstr "@code{remember-channel?} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:16332
+#: doc/guix.texi:17289
 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:16333
+#: doc/guix.texi:17290
 #, no-wrap
 msgid "@code{allow-html?} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:16335
+#: doc/guix.texi:17292
 msgid "Should html be allowed in text messages, user comments, and channel descriptions."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:16336
+#: doc/guix.texi:17293
 #, no-wrap
 msgid "@code{allow-ping?} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:16340
+#: doc/guix.texi:17297
 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:16342
+#: doc/guix.texi:17299
 msgid "Disabling this setting will prevent public listing of the server."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:16343
+#: doc/guix.texi:17300
 #, no-wrap
 msgid "@code{bonjour?} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:16345
+#: doc/guix.texi:17302
 msgid "Should the server advertise itself in the local network through the bonjour protocol."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:16346
+#: doc/guix.texi:17303
 #, no-wrap
 msgid "@code{send-version?} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:16348
+#: doc/guix.texi:17305
 msgid "Should the murmur server version be exposed in ping requests."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:16349
+#: doc/guix.texi:17306
 #, no-wrap
 msgid "@code{log-days} (default: @code{31})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:16353
+#: doc/guix.texi:17310
 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:16354
+#: doc/guix.texi:17311
 #, no-wrap
 msgid "@code{obfuscate-ips?} (default: @code{#t})"
 msgstr "@code{obfuscate-ips?} (Vorgabe: @code{#t})"
 
 #. type: table
-#: doc/guix.texi:16356
+#: doc/guix.texi:17313
 msgid "Should logged ips be obfuscated to protect the privacy of users."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:16357
+#: doc/guix.texi:17314
 #, no-wrap
 msgid "@code{ssl-cert} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:16359
+#: doc/guix.texi:17316
 msgid "File name of the SSL/TLS certificate used for encrypted connections."
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:16362
+#: doc/guix.texi:17319
 #, no-wrap
 msgid "(ssl-cert \"/etc/letsencrypt/live/example.com/fullchain.pem\")\n"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:16363
+#: doc/guix.texi:17320
 #, no-wrap
 msgid "@code{ssl-key} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:16365
+#: doc/guix.texi:17322
 msgid "Filepath to the ssl private key used for encrypted connections."
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:16367
+#: doc/guix.texi:17324
 #, no-wrap
 msgid "(ssl-key \"/etc/letsencrypt/live/example.com/privkey.pem\")\n"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:16369
+#: doc/guix.texi:17326
 #, no-wrap
 msgid "@code{ssl-dh-params} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:16374
+#: doc/guix.texi:17331
 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:16375
+#: doc/guix.texi:17332
 #, no-wrap
 msgid "@code{ssl-ciphers} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:16378
+#: doc/guix.texi:17335
 msgid "The @code{ssl-ciphers} option chooses the cipher suites to make available for use in SSL/TLS."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:16382
+#: doc/guix.texi:17339
 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:16387
+#: doc/guix.texi:17344
 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:16391
+#: doc/guix.texi:17348
 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:16392
+#: doc/guix.texi:17349
 #, no-wrap
 msgid "@code{public-registration} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:16394
+#: doc/guix.texi:17351
 msgid "Must be a @code{<murmur-public-registration-configuration>} record or @code{#f}."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:16399
+#: doc/guix.texi:17356
 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:16401
+#: doc/guix.texi:17358
 msgid "It might take a few hours until it shows up in the public list."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:16402 doc/guix.texi:17036
+#: doc/guix.texi:17359 doc/guix.texi:18790
 #, no-wrap
 msgid "@code{file} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:16404
+#: doc/guix.texi:17361
 msgid "Optional alternative override for this configuration."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:16407
+#: doc/guix.texi:17364
 #, no-wrap
 msgid "{Data Type} murmur-public-registration-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:16409
+#: doc/guix.texi:17366
 msgid "Configuration for public registration of a murmur service."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:16413
+#: doc/guix.texi:17370
 msgid "This is a display name for your server. Not to be confused with the hostname."
 msgstr ""
 
 #. type: itemx
-#: doc/guix.texi:16414 doc/guix.texi:21859
+#: doc/guix.texi:17371 doc/guix.texi:23679
 #, no-wrap
 msgid "password"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:16417
+#: doc/guix.texi:17374
 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:16418
+#: doc/guix.texi:17375
 #, no-wrap
 msgid "url"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:16421
+#: doc/guix.texi:17378
 msgid "This should be a @code{http://} or @code{https://} link to your web site."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:16422
+#: doc/guix.texi:17379
 #, no-wrap
 msgid "@code{hostname} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:16425
+#: doc/guix.texi:17382
 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:16433
+#: doc/guix.texi:17390
 #, no-wrap
 msgid "Tailon Service"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:16437
+#: doc/guix.texi:17394
 msgid "@uref{https://tailon.readthedocs.io/, Tailon} is a web application for viewing and searching log files."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:16440
+#: doc/guix.texi:17397
 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: example
-#: doc/guix.texi:16443
+#: doc/guix.texi:17400
 #, no-wrap
 msgid "(service tailon-service-type)\n"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:16447
+#: doc/guix.texi:17404
 msgid "The following example customises more of the Tailon configuration, adding @command{sed} to the list of allowed commands."
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:16454
+#: doc/guix.texi:17411
 #, no-wrap
 msgid ""
 "(service tailon-service-type\n"
@@ -29805,34 +32349,34 @@ msgid ""
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:16457
+#: doc/guix.texi:17414
 #, no-wrap
 msgid "{Data Type} tailon-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:16460
+#: doc/guix.texi:17417
 msgid "Data type representing the configuration of Tailon.  This type has the following parameters:"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:16462
+#: doc/guix.texi:17419
 #, no-wrap
 msgid "@code{config-file} (default: @code{(tailon-configuration-file)})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:16466
+#: doc/guix.texi:17423
 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:16469
+#: doc/guix.texi:17426
 msgid "For example, to instead use a local file, the @code{local-file} function can be used:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:16474
+#: doc/guix.texi:17431
 #, no-wrap
 msgid ""
 "(service tailon-service-type\n"
@@ -29841,150 +32385,150 @@ msgid ""
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:16476
+#: doc/guix.texi:17433
 #, no-wrap
 msgid "@code{package} (default: @code{tailon})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:16478
+#: doc/guix.texi:17435
 msgid "The tailon package to use."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:16482
+#: doc/guix.texi:17439
 #, no-wrap
 msgid "{Data Type} tailon-configuration-file"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:16485
+#: doc/guix.texi:17442
 msgid "Data type representing the configuration options for Tailon.  This type has the following parameters:"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:16487
+#: doc/guix.texi:17444
 #, no-wrap
 msgid "@code{files} (default: @code{(list \"/var/log\")})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:16492
+#: doc/guix.texi:17449
 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:16493
+#: doc/guix.texi:17450
 #, no-wrap
 msgid "@code{bind} (default: @code{\"localhost:8080\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:16495
+#: doc/guix.texi:17452
 msgid "Address and port to which Tailon should bind on."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:16496
+#: doc/guix.texi:17453
 #, no-wrap
 msgid "@code{relative-root} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:16498
+#: doc/guix.texi:17455
 msgid "URL path to use for Tailon, set to @code{#f} to not use a path."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:16499
+#: doc/guix.texi:17456
 #, no-wrap
 msgid "@code{allow-transfers?} (default: @code{#t})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:16501
+#: doc/guix.texi:17458
 msgid "Allow downloading the log files in the web interface."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:16502
+#: doc/guix.texi:17459
 #, no-wrap
 msgid "@code{follow-names?} (default: @code{#t})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:16504
+#: doc/guix.texi:17461
 msgid "Allow tailing of not-yet existent files."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:16505
+#: doc/guix.texi:17462
 #, no-wrap
 msgid "@code{tail-lines} (default: @code{200})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:16507
+#: doc/guix.texi:17464
 msgid "Number of lines to read initially from each file."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:16508
+#: doc/guix.texi:17465
 #, no-wrap
 msgid "@code{allowed-commands} (default: @code{(list \"tail\" \"grep\" \"awk\")})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:16510
+#: doc/guix.texi:17467
 msgid "Commands to allow running. By default, @code{sed} is disabled."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:16511
+#: doc/guix.texi:17468
 #, no-wrap
 msgid "@code{debug?} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:16513
+#: doc/guix.texi:17470
 msgid "Set @code{debug?} to @code{#t} to show debug messages."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:16514
+#: doc/guix.texi:17471
 #, no-wrap
 msgid "@code{wrap-lines} (default: @code{#t})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:16518
+#: doc/guix.texi:17475
 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:16519
+#: doc/guix.texi:17476
 #, no-wrap
 msgid "@code{http-auth} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:16523
+#: doc/guix.texi:17480
 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:16524
+#: doc/guix.texi:17481
 #, no-wrap
 msgid "@code{users} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:16529
+#: doc/guix.texi:17486
 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: example
-#: doc/guix.texi:16535
+#: doc/guix.texi:17492
 #, no-wrap
 msgid ""
 "(tailon-configuration-file\n"
@@ -29994,35 +32538,35 @@ msgid ""
 msgstr ""
 
 #. type: subsubheading
-#: doc/guix.texi:16541
+#: doc/guix.texi:17498
 #, no-wrap
 msgid "Darkstat Service"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:16542
+#: doc/guix.texi:17499
 #, no-wrap
 msgid "darkstat"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:16545
+#: doc/guix.texi:17502
 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:16546
+#: doc/guix.texi:17503
 #, no-wrap
 msgid "{Scheme Variable} darkstat-service-type"
 msgstr ""
 
 #. type: defvar
-#: doc/guix.texi:16551
+#: doc/guix.texi:17508
 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: example
-#: doc/guix.texi:16556
+#: doc/guix.texi:17513
 #, no-wrap
 msgid ""
 "(service darkstat-service-type\n"
@@ -30031,101 +32575,101 @@ msgid ""
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:16559
+#: doc/guix.texi:17516
 #, no-wrap
 msgid "{Data Type} darkstat-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:16561
+#: doc/guix.texi:17518
 msgid "Data type representing the configuration of @command{darkstat}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:16563
+#: doc/guix.texi:17520
 #, no-wrap
 msgid "@code{package} (default: @code{darkstat})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:16565
+#: doc/guix.texi:17522
 msgid "The darkstat package to use."
 msgstr ""
 
 #. type: code{#1}
-#: doc/guix.texi:16566
+#: doc/guix.texi:17523
 #, no-wrap
 msgid "interface"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:16568
+#: doc/guix.texi:17525
 msgid "Capture traffic on the specified network interface."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:16569
+#: doc/guix.texi:17526
 #, no-wrap
 msgid "@code{port} (default: @code{\"667\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:16571
+#: doc/guix.texi:17528
 msgid "Bind the web interface to the specified port."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:16572
+#: doc/guix.texi:17529
 #, no-wrap
 msgid "@code{bind-address} (default: @code{\"127.0.0.1\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:16574 doc/guix.texi:16612
+#: doc/guix.texi:17531 doc/guix.texi:17569
 msgid "Bind the web interface to the specified address."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:16575
+#: doc/guix.texi:17532
 #, no-wrap
 msgid "@code{base} (default: @code{\"/\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:16578
+#: doc/guix.texi:17535
 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:16582
+#: doc/guix.texi:17539
 #, no-wrap
 msgid "Prometheus Node Exporter Service"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:16584
+#: doc/guix.texi:17541
 #, no-wrap
 msgid "prometheus-node-exporter"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:16589
+#: doc/guix.texi:17546
 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:16590
+#: doc/guix.texi:17547
 #, no-wrap
 msgid "{Scheme variable} prometheus-node-exporter-service-type"
 msgstr ""
 
 #. type: defvar
-#: doc/guix.texi:16595
+#: doc/guix.texi:17552
 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: example
-#: doc/guix.texi:16600
+#: doc/guix.texi:17557
 #, no-wrap
 msgid ""
 "(service prometheus-node-exporter-service-type\n"
@@ -30134,78 +32678,609 @@ msgid ""
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:16603
+#: doc/guix.texi:17560
 #, no-wrap
 msgid "{Data Type} prometheus-node-exporter-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:16605
+#: doc/guix.texi:17562
 msgid "Data type representing the configuration of @command{node_exporter}."
 msgstr "Repräsentiert die Konfiguration von @command{node_exporter}."
 
 #. type: item
-#: doc/guix.texi:16607
+#: doc/guix.texi:17564
 #, 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:16609
+#: doc/guix.texi:17566
 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:16610
+#: doc/guix.texi:17567
 #, no-wrap
 msgid "@code{web-listen-address} (default: @code{\":9100\"})"
 msgstr "@code{web-listen-address} (Vorgabe: @code{\":9100\"})"
 
+#. type: subsubheading
+#: doc/guix.texi:17573
+#, no-wrap
+msgid "Zabbix server"
+msgstr "Zabbix-Server"
+
 #. type: cindex
-#: doc/guix.texi:16618
+#: doc/guix.texi:17574
+#, no-wrap
+msgid "zabbix zabbix-server"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:17577
+msgid "Zabbix provides monitoring metrics, among others network utilization, CPU load and disk space consumption:"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17579
+#, no-wrap
+msgid "High performance, high capacity (able to monitor hundreds of thousands of devices)."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17580
+#, no-wrap
+msgid "Auto-discovery of servers and network devices and interfaces."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17581
+#, 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:17582
+#, no-wrap
+msgid "Distributed monitoring with centralized web administration."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17583
+#, no-wrap
+msgid "Native high performance agents."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17584
+#, no-wrap
+msgid "SLA, and ITIL KPI metrics on reporting."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17585
+#, no-wrap
+msgid "High-level (business) view of monitored resources through user-defined visual console screens and dashboards."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17586
+#, no-wrap
+msgid "Remote command execution through Zabbix proxies."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:17592
+msgid "Available @code{zabbix-server-configuration} fields are:"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17593
+#, no-wrap
+msgid "{@code{zabbix-server-configuration} parameter} package zabbix-server"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17595
+msgid "The zabbix-server package."
+msgstr "Das zabbix-server-Paket."
+
+#. type: deftypevr
+#: doc/guix.texi:17598
+#, no-wrap
+msgid "{@code{zabbix-server-configuration} parameter} string user"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17600
+msgid "User who will run the Zabbix server."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17602 doc/guix.texi:17609 doc/guix.texi:17623
+#: doc/guix.texi:17630 doc/guix.texi:17731 doc/guix.texi:17738
+#: doc/guix.texi:17849 doc/guix.texi:17856
+msgid "Defaults to @samp{\"zabbix\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17605
+#, no-wrap
+msgid "{@code{zabbix-server-configuration} parameter} group group"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17607
+msgid "Group who will run the Zabbix server."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17612
+#, no-wrap
+msgid "{@code{zabbix-server-configuration} parameter} string db-host"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17614 doc/guix.texi:17833
+msgid "Database host name."
+msgstr "Rechnername der Datenbank."
+
+#. type: deftypevr
+#: doc/guix.texi:17616
+msgid "Defaults to @samp{\"127.0.0.1\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17619
+#, no-wrap
+msgid "{@code{zabbix-server-configuration} parameter} string db-name"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17621 doc/guix.texi:17847
+msgid "Database name."
+msgstr "Datenbankname."
+
+#. type: deftypevr
+#: doc/guix.texi:17626
+#, no-wrap
+msgid "{@code{zabbix-server-configuration} parameter} string db-user"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17628 doc/guix.texi:17854
+msgid "Database user."
+msgstr "Benutzerkonto der Datenbank."
+
+#. type: deftypevr
+#: doc/guix.texi:17633
+#, no-wrap
+msgid "{@code{zabbix-server-configuration} parameter} string db-password"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17636
+msgid "Database password.  Please, use @code{include-files} with @code{DBPassword=SECRET} inside a specified file instead."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17641
+#, no-wrap
+msgid "{@code{zabbix-server-configuration} parameter} number db-port"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17643 doc/guix.texi:17840
+msgid "Database port."
+msgstr "Datenbank-Portnummer."
+
+#. type: deftypevr
+#: doc/guix.texi:17645 doc/guix.texi:17842
+msgid "Defaults to @samp{5432}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17648
+#, no-wrap
+msgid "{@code{zabbix-server-configuration} parameter} string log-type"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17650 doc/guix.texi:17751
+msgid "Specifies where log messages are written to:"
+msgstr ""
+
+#. type: itemize
+#: doc/guix.texi:17654 doc/guix.texi:17755
+msgid "@code{system} - syslog."
+msgstr ""
+
+#. type: itemize
+#: doc/guix.texi:17657 doc/guix.texi:17758
+msgid "@code{file} - file specified with @code{log-file} parameter."
+msgstr ""
+
+#. type: itemize
+#: doc/guix.texi:17660 doc/guix.texi:17761
+msgid "@code{console} - standard output."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17667
+#, no-wrap
+msgid "{@code{zabbix-server-configuration} parameter} string log-file"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17669 doc/guix.texi:17770
+msgid "Log file name for @code{log-type} @code{file} parameter."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17671
+msgid "Defaults to @samp{\"/var/log/zabbix/server.log\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17674
+#, no-wrap
+msgid "{@code{zabbix-server-configuration} parameter} string pid-file"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17676 doc/guix.texi:17777
+msgid "Name of PID file."
+msgstr "Name der PID-Datei."
+
+#. type: deftypevr
+#: doc/guix.texi:17678
+msgid "Defaults to @samp{\"/var/run/zabbix/zabbix_server.pid\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17681
+#, no-wrap
+msgid "{@code{zabbix-server-configuration} parameter} string ssl-ca-location"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17684
+msgid "The location of certificate authority (CA) files for SSL server certificate verification."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17686
+msgid "Defaults to @samp{\"/etc/ssl/certs/ca-certificates.crt\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17689
+#, no-wrap
+msgid "{@code{zabbix-server-configuration} parameter} string ssl-cert-location"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17691
+msgid "Location of SSL client certificates."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17693
+msgid "Defaults to @samp{\"/etc/ssl/certs\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17696
+#, no-wrap
+msgid "{@code{zabbix-server-configuration} parameter} string extra-options"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17698 doc/guix.texi:17802
+msgid "Extra options will be appended to Zabbix server configuration file."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17703
+#, no-wrap
+msgid "{@code{zabbix-server-configuration} parameter} include-files include-files"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17706 doc/guix.texi:17810
+msgid "You may include individual files or all files in a directory in the configuration file."
+msgstr ""
+
+#. type: subsubheading
+#: doc/guix.texi:17713
+#, no-wrap
+msgid "Zabbix agent"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:17714
+#, no-wrap
+msgid "zabbix zabbix-agent"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:17717
+msgid "Zabbix agent gathers information for Zabbix server."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:17721
+msgid "Available @code{zabbix-agent-configuration} fields are:"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17722
+#, no-wrap
+msgid "{@code{zabbix-agent-configuration} parameter} package zabbix-agent"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17724
+msgid "The zabbix-agent package."
+msgstr "Das zabbix-agent-Paket."
+
+#. type: deftypevr
+#: doc/guix.texi:17727
+#, no-wrap
+msgid "{@code{zabbix-agent-configuration} parameter} string user"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17729
+msgid "User who will run the Zabbix agent."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17734
+#, no-wrap
+msgid "{@code{zabbix-agent-configuration} parameter} group group"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17736
+msgid "Group who will run the Zabbix agent."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17741
+#, no-wrap
+msgid "{@code{zabbix-agent-configuration} parameter} string hostname"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17744
+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:17746
+msgid "Defaults to @samp{\"Zabbix server\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17749
+#, no-wrap
+msgid "{@code{zabbix-agent-configuration} parameter} string log-type"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17768
+#, no-wrap
+msgid "{@code{zabbix-agent-configuration} parameter} string log-file"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17772
+msgid "Defaults to @samp{\"/var/log/zabbix/agent.log\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17775
+#, no-wrap
+msgid "{@code{zabbix-agent-configuration} parameter} string pid-file"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17779
+msgid "Defaults to @samp{\"/var/run/zabbix/zabbix_agent.pid\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17782
+#, no-wrap
+msgid "{@code{zabbix-agent-configuration} parameter} list server"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17786
+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:17788 doc/guix.texi:17797
+msgid "Defaults to @samp{(\"127.0.0.1\")}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17791
+#, no-wrap
+msgid "{@code{zabbix-agent-configuration} parameter} list server-active"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17795
+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:17800
+#, no-wrap
+msgid "{@code{zabbix-agent-configuration} parameter} string extra-options"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17807
+#, no-wrap
+msgid "{@code{zabbix-agent-configuration} parameter} include-files include-files"
+msgstr ""
+
+#. type: subsubheading
+#: doc/guix.texi:17817
+#, no-wrap
+msgid "Zabbix front-end"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:17818
+#, no-wrap
+msgid "zabbix zabbix-front-end"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:17821
+msgid "This service provides a WEB interface to Zabbix server."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:17825
+msgid "Available @code{zabbix-front-end-configuration} fields are:"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17826
+#, no-wrap
+msgid "{@code{zabbix-front-end-configuration} parameter} nginx-server-configuration-list nginx"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17828 doc/guix.texi:22158
+msgid "NGINX configuration."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17831
+#, no-wrap
+msgid "{@code{zabbix-front-end-configuration} parameter} string db-host"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17838
+#, no-wrap
+msgid "{@code{zabbix-front-end-configuration} parameter} number db-port"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17845
+#, no-wrap
+msgid "{@code{zabbix-front-end-configuration} parameter} string db-name"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17852
+#, no-wrap
+msgid "{@code{zabbix-front-end-configuration} parameter} string db-user"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17859
+#, no-wrap
+msgid "{@code{zabbix-front-end-configuration} parameter} string db-password"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17861
+msgid "Database password.  Please, use @code{db-secret-file} instead."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17866
+#, no-wrap
+msgid "{@code{zabbix-front-end-configuration} parameter} string db-secret-file"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17870
+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:17875
+#, no-wrap
+msgid "{@code{zabbix-front-end-configuration} parameter} string zabbix-host"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17877
+msgid "Zabbix server hostname."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17882
+#, no-wrap
+msgid "{@code{zabbix-front-end-configuration} parameter} number zabbix-port"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17884
+msgid "Zabbix server port."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17886
+msgid "Defaults to @samp{10051}."
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:17894
 #, no-wrap
 msgid "Kerberos"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:16622
+#: doc/guix.texi:17898
 msgid "The @code{(gnu services kerberos)} module provides services relating to the authentication protocol @dfn{Kerberos}."
 msgstr ""
 
 #. type: subsubheading
-#: doc/guix.texi:16623
+#: doc/guix.texi:17899
 #, no-wrap
 msgid "Krb5 Service"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:16630
+#: doc/guix.texi:17906
 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:16634
+#: doc/guix.texi:17910
 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:16635
+#: doc/guix.texi:17911
 #, no-wrap
 msgid "{Scheme Variable} krb5-service-type"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:16637
+#: doc/guix.texi:17913
 msgid "A service type for Kerberos 5 clients."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:16641
+#: doc/guix.texi:17917
 msgid "Here is an example of its use:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:16655
+#: doc/guix.texi:17931
 #, no-wrap
 msgid ""
 "(service krb5-service-type\n"
@@ -30224,229 +33299,897 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:16659
+#: doc/guix.texi:17935
 msgid "This example provides a Kerberos@tie{}5 client configuration which:"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:16660
+#: doc/guix.texi:17936
 #, no-wrap
 msgid "Recognizes two realms, @i{viz:} ``EXAMPLE.COM'' and ``ARGRX.EDU'', both"
 msgstr ""
 
 #. type: itemize
-#: doc/guix.texi:16662
+#: doc/guix.texi:17938
 msgid "of which have distinct administration servers and key distribution centers;"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:16662
+#: doc/guix.texi:17938
 #, no-wrap
 msgid "Will default to the realm ``EXAMPLE.COM'' if the realm is not explicitly"
 msgstr ""
 
 #. type: itemize
-#: doc/guix.texi:16664
+#: doc/guix.texi:17940
 msgid "specified by clients;"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:16664
+#: doc/guix.texi:17940
 #, no-wrap
 msgid "Accepts services which only support encryption types known to be weak."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:16672
+#: doc/guix.texi:17948
 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{http://web.mit.edu/kerberos/krb5-devel/doc/admin/conf_files/krb5_conf.html,,krb5.conf} documentation."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:16674
+#: doc/guix.texi:17950
 #, no-wrap
 msgid "{Data Type} krb5-realm"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:16675
+#: doc/guix.texi:17951
 #, no-wrap
 msgid "realm, kerberos"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:16681
+#: doc/guix.texi:17957
 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:16682
+#: doc/guix.texi:17958
 #, no-wrap
 msgid "admin-server"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:16685
+#: doc/guix.texi:17961
 msgid "This field is a string identifying the host where the administration server is running."
 msgstr ""
 
 #. type: code{#1}
-#: doc/guix.texi:16686
+#: doc/guix.texi:17962
 #, no-wrap
 msgid "kdc"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:16689
+#: doc/guix.texi:17965
 msgid "This field is a string identifying the key distribution center for the realm."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:16692
+#: doc/guix.texi:17968
 #, no-wrap
 msgid "{Data Type} krb5-configuration"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:16695
+#: doc/guix.texi:17971
 #, no-wrap
 msgid "@code{allow-weak-crypto?} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:16698
+#: doc/guix.texi:17974
 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:16699
+#: doc/guix.texi:17975
 #, no-wrap
 msgid "@code{default-realm} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:16706
+#: doc/guix.texi:17982
 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:16707
+#: doc/guix.texi:17983
 #, no-wrap
 msgid "realms"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:16712
+#: doc/guix.texi:17988
 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:16716
+#: doc/guix.texi:17992
 #, no-wrap
 msgid "PAM krb5 Service"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:16717
+#: doc/guix.texi:17993
 #, no-wrap
 msgid "pam-krb5"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:16723
+#: doc/guix.texi:17999
 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:16724
+#: doc/guix.texi:18000
 #, no-wrap
 msgid "{Scheme Variable} pam-krb5-service-type"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:16726
+#: doc/guix.texi:18002
 msgid "A service type for the Kerberos 5 PAM module."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:16728
+#: doc/guix.texi:18004
 #, no-wrap
 msgid "{Data Type} pam-krb5-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:16731
+#: doc/guix.texi:18007
 msgid "Data type representing the configuration of the Kerberos 5 PAM module This type has the following parameters:"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:16732
+#: doc/guix.texi:18008
 #, no-wrap
 msgid "@code{pam-krb5} (default: @code{pam-krb5})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:16734
+#: doc/guix.texi:18010
 msgid "The pam-krb5 package to use."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:16735
+#: doc/guix.texi:18011
 #, no-wrap
 msgid "@code{minimum-uid} (default: @code{1000})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:16738
+#: doc/guix.texi:18014
 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:16745
+#: doc/guix.texi:18020
 #, no-wrap
-msgid "web"
+msgid "LDAP"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:16746
+#: doc/guix.texi:18021
 #, no-wrap
-msgid "www"
+msgid "nslcd, LDAP service"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:18028
+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:18032
+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: example
+#: doc/guix.texi:18055
+#, no-wrap
+msgid ""
+"(use-service-modules authentication)\n"
+"(use-modules (gnu system nss))\n"
+"...\n"
+"(operating-system\n"
+"  ...\n"
+"  (services\n"
+"    (cons*\n"
+"      (service nslcd-service-type)\n"
+"      (service dhcp-client-service-type)\n"
+"      %base-services))\n"
+"  (name-service-switch\n"
+"   (let ((services (list (name-service (name \"db\"))\n"
+"                         (name-service (name \"files\"))\n"
+"                         (name-service (name \"ldap\")))))\n"
+"     (name-service-switch\n"
+"      (inherit %mdns-host-lookup-nss)\n"
+"      (password services)\n"
+"      (shadow   services)\n"
+"      (group    services)\n"
+"      (netgroup services)\n"
+"      (gshadow  services)))))\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:18060
+msgid "Available @code{nslcd-configuration} fields are:"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18061
+#, no-wrap
+msgid "{@code{nslcd-configuration} parameter} package nss-pam-ldapd"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18063
+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:18066
+#, no-wrap
+msgid "{@code{nslcd-configuration} parameter} maybe-number threads"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18070
+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:18072 doc/guix.texi:18114 doc/guix.texi:18122
+#: doc/guix.texi:18130 doc/guix.texi:18138 doc/guix.texi:18147
+#: doc/guix.texi:18155 doc/guix.texi:18162 doc/guix.texi:18170
+#: doc/guix.texi:18178 doc/guix.texi:18188 doc/guix.texi:18195
+#: doc/guix.texi:18219 doc/guix.texi:18227 doc/guix.texi:18253
+#: doc/guix.texi:18262 doc/guix.texi:18271 doc/guix.texi:18280
+#: doc/guix.texi:18289 doc/guix.texi:18298 doc/guix.texi:18306
+#: doc/guix.texi:18314 doc/guix.texi:18321 doc/guix.texi:18329
+#: doc/guix.texi:18336 doc/guix.texi:18344 doc/guix.texi:18352
+#: doc/guix.texi:18361 doc/guix.texi:18370 doc/guix.texi:18378
+#: doc/guix.texi:18386 doc/guix.texi:18394 doc/guix.texi:18405
+#: doc/guix.texi:18415 doc/guix.texi:18426 doc/guix.texi:18435
+#: doc/guix.texi:18445 doc/guix.texi:18453 doc/guix.texi:18464
+#: doc/guix.texi:18473 doc/guix.texi:18483 doc/guix.texi:20701
+#: doc/guix.texi:20708 doc/guix.texi:20715 doc/guix.texi:20722
+#: doc/guix.texi:20729 doc/guix.texi:20736 doc/guix.texi:20744
+#: doc/guix.texi:20752 doc/guix.texi:20759 doc/guix.texi:20766
+#: doc/guix.texi:20773 doc/guix.texi:20780 doc/guix.texi:20810
+#: doc/guix.texi:20848 doc/guix.texi:20855 doc/guix.texi:20864
+#: doc/guix.texi:20886 doc/guix.texi:20894 doc/guix.texi:20901
+#: doc/guix.texi:21056 doc/guix.texi:21076 doc/guix.texi:21091
+#: doc/guix.texi:21098 doc/guix.texi:22896 doc/guix.texi:22904
+#: doc/guix.texi:22912 doc/guix.texi:22920 doc/guix.texi:22928
+#: doc/guix.texi:22936
+msgid "Defaults to @samp{disabled}."
+msgstr "Der Vorgabewert ist @samp{disabled} (d.h.@: deaktiviert)."
+
+#. type: deftypevr
+#: doc/guix.texi:18075
+#, no-wrap
+msgid "{@code{nslcd-configuration} parameter} string uid"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18077
+msgid "This specifies the user id with which the daemon should be run."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18079 doc/guix.texi:18086
+msgid "Defaults to @samp{\"nslcd\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18082
+#, no-wrap
+msgid "{@code{nslcd-configuration} parameter} string gid"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18084
+msgid "This specifies the group id with which the daemon should be run."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18089
+#, no-wrap
+msgid "{@code{nslcd-configuration} parameter} log-option log"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18096
+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 ""
+
+#. type: deftypevr
+#: doc/guix.texi:18098
+msgid "Defaults to @samp{(\"/var/log/nslcd\" info)}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18101
+#, no-wrap
+msgid "{@code{nslcd-configuration} parameter} list uri"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18104
+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:18106
+msgid "Defaults to @samp{(\"ldap://localhost:389/\")}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18109
+#, no-wrap
+msgid "{@code{nslcd-configuration} parameter} maybe-string ldap-version"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18112
+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:18117
+#, no-wrap
+msgid "{@code{nslcd-configuration} parameter} maybe-string binddn"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18120
+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:18125
+#, no-wrap
+msgid "{@code{nslcd-configuration} parameter} maybe-string bindpw"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18128
+msgid "Specifies the credentials with which to bind.  This option is only applicable when used with binddn."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18133
+#, no-wrap
+msgid "{@code{nslcd-configuration} parameter} maybe-string rootpwmoddn"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18136
+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:18141
+#, no-wrap
+msgid "{@code{nslcd-configuration} parameter} maybe-string rootpwmodpw"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18145
+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:18150
+#, no-wrap
+msgid "{@code{nslcd-configuration} parameter} maybe-string sasl-mech"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18153
+msgid "Specifies the SASL mechanism to be used when performing SASL authentication."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18158
+#, no-wrap
+msgid "{@code{nslcd-configuration} parameter} maybe-string sasl-realm"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18160
+msgid "Specifies the SASL realm to be used when performing SASL authentication."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18165
+#, no-wrap
+msgid "{@code{nslcd-configuration} parameter} maybe-string sasl-authcid"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18168
+msgid "Specifies the authentication identity to be used when performing SASL authentication."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18173
+#, no-wrap
+msgid "{@code{nslcd-configuration} parameter} maybe-string sasl-authzid"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18176
+msgid "Specifies the authorization identity to be used when performing SASL authentication."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18181
+#, no-wrap
+msgid "{@code{nslcd-configuration} parameter} maybe-boolean sasl-canonicalize?"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18186
+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:18191
+#, no-wrap
+msgid "{@code{nslcd-configuration} parameter} maybe-string krb5-ccname"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18193
+msgid "Set the name for the GSS-API Kerberos credentials cache."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18198
+#, no-wrap
+msgid "{@code{nslcd-configuration} parameter} string base"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18200
+msgid "The directory search base."
+msgstr "Basis für die Verzeichnissuche."
+
+#. type: deftypevr
+#: doc/guix.texi:18202
+msgid "Defaults to @samp{\"dc=example,dc=com\"}."
+msgstr "Vorgegeben ist @samp{\"dc=example,dc=com\"}."
+
+#. type: deftypevr
+#: doc/guix.texi:18205
+#, no-wrap
+msgid "{@code{nslcd-configuration} parameter} scope-option scope"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18209
+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:18211
+msgid "Defaults to @samp{(subtree)}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18214
+#, no-wrap
+msgid "{@code{nslcd-configuration} parameter} maybe-deref-option deref"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18217
+msgid "Specifies the policy for dereferencing aliases.  The default policy is to never dereference aliases."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18222
+#, no-wrap
+msgid "{@code{nslcd-configuration} parameter} maybe-boolean referrals"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18225
+msgid "Specifies whether automatic referral chasing should be enabled.  The default behaviour is to chase referrals."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18230
+#, no-wrap
+msgid "{@code{nslcd-configuration} parameter} list-of-map-entries maps"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18235
+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:18240
+#, no-wrap
+msgid "{@code{nslcd-configuration} parameter} list-of-filter-entries filters"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18243
+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:18248
+#, no-wrap
+msgid "{@code{nslcd-configuration} parameter} maybe-number bind-timelimit"
 msgstr ""
 
+#. type: deftypevr
+#: doc/guix.texi:18251
+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:18256
+#, no-wrap
+msgid "{@code{nslcd-configuration} parameter} maybe-number timelimit"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18260
+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:18265
+#, no-wrap
+msgid "{@code{nslcd-configuration} parameter} maybe-number idle-timelimit"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18269
+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:18274
+#, no-wrap
+msgid "{@code{nslcd-configuration} parameter} maybe-number reconnect-sleeptime"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18278
+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:18283
+#, no-wrap
+msgid "{@code{nslcd-configuration} parameter} maybe-number reconnect-retrytime"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18287
+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:18292
+#, no-wrap
+msgid "{@code{nslcd-configuration} parameter} maybe-ssl-option ssl"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18296
+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:18301
+#, no-wrap
+msgid "{@code{nslcd-configuration} parameter} maybe-tls-reqcert-option tls-reqcert"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18304
+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:18309
+#, no-wrap
+msgid "{@code{nslcd-configuration} parameter} maybe-string tls-cacertdir"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18312
+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:18317
+#, no-wrap
+msgid "{@code{nslcd-configuration} parameter} maybe-string tls-cacertfile"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18319
+msgid "Specifies the path to the X.509 certificate for peer authentication."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18324
+#, no-wrap
+msgid "{@code{nslcd-configuration} parameter} maybe-string tls-randfile"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18327
+msgid "Specifies the path to an entropy source.  This parameter is ignored when using GnuTLS."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18332
+#, no-wrap
+msgid "{@code{nslcd-configuration} parameter} maybe-string tls-ciphers"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18334
+msgid "Specifies the ciphers to use for TLS as a string."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18339
+#, no-wrap
+msgid "{@code{nslcd-configuration} parameter} maybe-string tls-cert"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18342
+msgid "Specifies the path to the file containing the local certificate for client TLS authentication."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18347
+#, no-wrap
+msgid "{@code{nslcd-configuration} parameter} maybe-string tls-key"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18350
+msgid "Specifies the path to the file containing the private key for client TLS authentication."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18355
+#, no-wrap
+msgid "{@code{nslcd-configuration} parameter} maybe-number pagesize"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18359
+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:18364
+#, no-wrap
+msgid "{@code{nslcd-configuration} parameter} maybe-ignore-users-option nss-initgroups-ignoreusers"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18368
+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:18373
+#, no-wrap
+msgid "{@code{nslcd-configuration} parameter} maybe-number nss-min-uid"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18376
+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:18381
+#, no-wrap
+msgid "{@code{nslcd-configuration} parameter} maybe-number nss-uid-offset"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18384
+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:18389
+#, no-wrap
+msgid "{@code{nslcd-configuration} parameter} maybe-number nss-gid-offset"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18392
+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:18397
+#, no-wrap
+msgid "{@code{nslcd-configuration} parameter} maybe-boolean nss-nested-groups"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18403
+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:18408
+#, no-wrap
+msgid "{@code{nslcd-configuration} parameter} maybe-boolean nss-getgrent-skipmembers"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18413
+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:18418
+#, no-wrap
+msgid "{@code{nslcd-configuration} parameter} maybe-boolean nss-disable-enumeration"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18424
+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:18429
+#, no-wrap
+msgid "{@code{nslcd-configuration} parameter} maybe-string validnames"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18433
+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:18438
+#, no-wrap
+msgid "{@code{nslcd-configuration} parameter} maybe-boolean ignorecase"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18443
+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:18448
+#, no-wrap
+msgid "{@code{nslcd-configuration} parameter} maybe-boolean pam-authc-ppolicy"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18451
+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:18456
+#, no-wrap
+msgid "{@code{nslcd-configuration} parameter} maybe-string pam-authc-search"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18462
+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:18467
+#, no-wrap
+msgid "{@code{nslcd-configuration} parameter} maybe-string pam-authz-search"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18471
+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:18476
+#, no-wrap
+msgid "{@code{nslcd-configuration} parameter} maybe-string pam-password-prohibit-message"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18481
+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:18486
+#, no-wrap
+msgid "{@code{nslcd-configuration} parameter} list pam-services"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18488
+msgid "List of pam service names for which LDAP authentication should suffice."
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:18499
+#, no-wrap
+msgid "web"
+msgstr "Web"
+
 #. type: cindex
-#: doc/guix.texi:16747
+#: doc/guix.texi:18500
+#, no-wrap
+msgid "www"
+msgstr "WWW"
+
+#. type: cindex
+#: doc/guix.texi:18501
 #, no-wrap
 msgid "HTTP"
-msgstr ""
+msgstr "HTTP"
 
 #. type: Plain text
-#: doc/guix.texi:16750
+#: doc/guix.texi:18504
 msgid "The @code{(gnu services web)} module provides the Apache HTTP Server, the nginx web server, and also a fastcgi wrapper daemon."
-msgstr ""
+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:16751
+#: doc/guix.texi:18505
 #, no-wrap
 msgid "Apache HTTP Server"
-msgstr ""
+msgstr "Apache-HTTP-Server"
 
 #. type: deffn
-#: doc/guix.texi:16753
+#: doc/guix.texi:18507
 #, no-wrap
 msgid "{Scheme Variable} httpd-service-type"
-msgstr ""
+msgstr "{Scheme-Variable} httpd-service-type"
 
 #. type: deffn
-#: doc/guix.texi:16757
+#: doc/guix.texi:18511
 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 ""
+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:16759 doc/guix.texi:16940
+#: doc/guix.texi:18513 doc/guix.texi:18694
 msgid "A simple example configuration is given below."
-msgstr ""
+msgstr "Es folgt ein einfaches Beispiel der Konfiguration."
 
 #. type: example
-#: doc/guix.texi:16767
+#: doc/guix.texi:18521
 #, no-wrap
 msgid ""
 "(service httpd-service-type\n"
@@ -30456,14 +34199,20 @@ msgid ""
 "               (server-name \"www.example.com\")\n"
 "               (document-root \"/srv/http/www.example.com\")))))\n"
 msgstr ""
+"(service httpd-service-type\n"
+"         (httpd-configuration\n"
+"           (config\n"
+"             (httpd-config-file\n"
+"               (server-name \"www.example.com\")\n"
+"               (document-root \"/srv/http/www.example.com\")))))\n"
 
 #. type: deffn
-#: doc/guix.texi:16771
+#: doc/guix.texi:18525
 msgid "Other services can also extend the @code{httpd-service-type} to add to the configuration."
-msgstr ""
+msgstr "Andere Dienste können den @code{httpd-service-type} auch erweitern, um etwas zur Konfiguration hinzuzufügen."
 
 #. type: example
-#: doc/guix.texi:16780 doc/guix.texi:16920
+#: doc/guix.texi:18534 doc/guix.texi:18674
 #, no-wrap
 msgid ""
 "(simple-service 'my-extra-server httpd-service-type\n"
@@ -30474,117 +34223,124 @@ msgid ""
 "                           \"ServerName \"www.example.com\n"
 "                            DocumentRoot \\\"/srv/http/www.example.com\\\"\")))))\n"
 msgstr ""
+"(simple-service 'my-extra-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"
 
 #. type: Plain text
-#: doc/guix.texi:16786
+#: doc/guix.texi:18540
 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 ""
+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:16787
+#: doc/guix.texi:18541
 #, no-wrap
 msgid "{Data Type} httpd-configuration"
-msgstr ""
+msgstr "{Datentyp} httpd-configuration"
 
 #. type: deffn
-#: doc/guix.texi:16789
+#: doc/guix.texi:18543
 msgid "This data type represents the configuration for the httpd service."
-msgstr ""
+msgstr "Dieser Datentyp repräsentiert die Konfiguration des httpd-Dienstes."
 
 #. type: item
-#: doc/guix.texi:16791
+#: doc/guix.texi:18545
 #, no-wrap
 msgid "@code{package} (default: @code{httpd})"
-msgstr ""
+msgstr "@code{package} (Vorgabe: @code{httpd})"
 
 #. type: table
-#: doc/guix.texi:16793
+#: doc/guix.texi:18547
 msgid "The httpd package to use."
-msgstr ""
+msgstr "Das zu benutzende httpd-Paket."
 
 #. type: item
-#: doc/guix.texi:16794 doc/guix.texi:16883
+#: doc/guix.texi:18548 doc/guix.texi:18637
 #, no-wrap
 msgid "@code{pid-file} (default: @code{\"/var/run/httpd\"})"
-msgstr ""
+msgstr "@code{pid-file} (Vorgabe: @code{\"/var/run/httpd\"})"
 
 #. type: table
-#: doc/guix.texi:16796
+#: doc/guix.texi:18550
 msgid "The pid file used by the shepherd-service."
-msgstr ""
+msgstr "Die vom Shepherd-Dienst benutzte PID-Datei."
 
 #. type: item
-#: doc/guix.texi:16797
+#: doc/guix.texi:18551
 #, no-wrap
 msgid "@code{config} (default: @code{(httpd-config-file)})"
-msgstr ""
+msgstr "@code{config} (Vorgabe: @code{(httpd-config-file)})"
 
 #. type: table
-#: doc/guix.texi:16802
+#: doc/guix.texi:18556
 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 ""
+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:16806
+#: doc/guix.texi:18560
 #, no-wrap
 msgid "{Data Type} httpd-module"
-msgstr ""
+msgstr "{Datentyp} httpd-module"
 
 #. type: deffn
-#: doc/guix.texi:16808
+#: doc/guix.texi:18562
 msgid "This data type represents a module for the httpd service."
-msgstr ""
+msgstr "Dieser Datentyp steht für ein Modul des httpd-Dienstes."
 
 #. type: table
-#: doc/guix.texi:16812
+#: doc/guix.texi:18566
 msgid "The name of the module."
-msgstr ""
+msgstr "Der Name des Moduls."
 
 #. type: table
-#: doc/guix.texi:16818
+#: doc/guix.texi:18572
 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 ""
+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:16822
+#: doc/guix.texi:18576
 #, no-wrap
 msgid "{Scheme Variable} %default-httpd-modules"
-msgstr ""
+msgstr "{Scheme-Variable} %default-httpd-modules"
 
 #. type: defvr
-#: doc/guix.texi:16824
+#: doc/guix.texi:18578
 msgid "A default list of @code{httpd-module} objects."
-msgstr ""
+msgstr "Eine vorgegebene Liste von @code{httpd-module}-Objekten."
 
 #. type: deffn
-#: doc/guix.texi:16826
+#: doc/guix.texi:18580
 #, no-wrap
 msgid "{Data Type} httpd-config-file"
-msgstr ""
+msgstr "{Datentyp} httpd-config-file"
 
 #. type: deffn
-#: doc/guix.texi:16828
+#: doc/guix.texi:18582
 msgid "This data type represents a configuration file for the httpd service."
-msgstr ""
+msgstr "Dieser Datentyp repräsentiert eine Konfigurationsdatei für den httpd-Dienst."
 
 #. type: item
-#: doc/guix.texi:16830
+#: doc/guix.texi:18584
 #, no-wrap
 msgid "@code{modules} (default: @code{%default-httpd-modules})"
-msgstr ""
+msgstr "@code{modules} (Vorgabe: @code{%default-httpd-modules})"
 
 #. type: table
-#: doc/guix.texi:16833
+#: doc/guix.texi:18587
 msgid "The modules to load. Additional modules can be added here, or loaded by additional configuration."
-msgstr ""
+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:16836
+#: doc/guix.texi:18590
 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 ""
+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: example
-#: doc/guix.texi:16858
+#: doc/guix.texi:18612
 #, no-wrap
 msgid ""
 "(service httpd-service-type\n"
@@ -30608,167 +34364,187 @@ msgid ""
 "          (socket \"/var/run/php-fpm.sock\")\n"
 "          (socket-group \"httpd\")))\n"
 msgstr ""
+"(service httpd-service-type\n"
+"         (httpd-configuration\n"
+"          (config\n"
+"           (httpd-config-file\n"
+"            (modules (cons*\n"
+"                      (httpd-module\n"
+"                       (name \"proxy_module\")\n"
+"                       (file \"modules/mod_proxy.so\"))\n"
+"                      (httpd-module\n"
+"                       (name \"proxy_fcgi_module\")\n"
+"                       (file \"modules/mod_proxy_fcgi.so\"))\n"
+"                      %default-httpd-modules))\n"
+"            (extra-config (list \"\\\n"
+"<FilesMatch \\\\.php$>\n"
+"    SetHandler \\\"proxy:unix:/var/run/php-fpm.sock|fcgi://localhost/\\\"\n"
+"</FilesMatch>\"))))))\n"
+"(service php-fpm-service-type\n"
+"         (php-fpm-configuration\n"
+"          (socket \"/var/run/php-fpm.sock\")\n"
+"          (socket-group \"httpd\")))\n"
 
 #. type: item
-#: doc/guix.texi:16860
+#: doc/guix.texi:18614
 #, no-wrap
 msgid "@code{server-root} (default: @code{httpd})"
-msgstr ""
+msgstr "@code{server-root} (Vorgabe: @code{httpd})"
 
 #. type: table
-#: doc/guix.texi:16864
+#: doc/guix.texi:18618
 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 ""
+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:16865
+#: doc/guix.texi:18619
 #, no-wrap
 msgid "@code{server-name} (default: @code{#f})"
-msgstr ""
+msgstr "@code{server-name} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:16869
+#: doc/guix.texi:18623
 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 ""
+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:16873
+#: doc/guix.texi:18627
 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}."
-msgstr ""
+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:16874
+#: doc/guix.texi:18628
 #, no-wrap
 msgid "@code{document-root} (default: @code{\"/srv/http\"})"
-msgstr ""
+msgstr "@code{document-root} (Vorgabe: @code{\"/srv/http\"})"
 
 #. type: table
-#: doc/guix.texi:16876
+#: doc/guix.texi:18630
 msgid "The @code{DocumentRoot} from which files will be served."
-msgstr ""
+msgstr "Das @code{DocumentRoot}-Verzeichnis, in dem sich die Dateien befinden, die man vom Server abrufen kann."
 
 #. type: item
-#: doc/guix.texi:16877
+#: doc/guix.texi:18631
 #, no-wrap
 msgid "@code{listen} (default: @code{'(\"80\")})"
-msgstr ""
+msgstr "@code{listen} (Vorgabe: @code{'(\"80\")})"
 
 #. type: table
-#: doc/guix.texi:16882
+#: doc/guix.texi:18636
 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 ""
+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:16887
+#: doc/guix.texi:18641
 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 ""
+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:16888
+#: doc/guix.texi:18642
 #, no-wrap
 msgid "@code{error-log} (default: @code{\"/var/log/httpd/error_log\"})"
-msgstr ""
+msgstr "@code{error-log} (Vorgabe: @code{\"/var/log/httpd/error_log\"})"
 
 #. type: table
-#: doc/guix.texi:16890
+#: doc/guix.texi:18644
 msgid "The @code{ErrorLog} to which the server will log errors."
-msgstr ""
+msgstr "Der Ort, an den der Server mit der @code{ErrorLog}-Direktive Fehlerprotokolle schreibt."
 
 #. type: item
-#: doc/guix.texi:16891
+#: doc/guix.texi:18645
 #, no-wrap
 msgid "@code{user} (default: @code{\"httpd\"})"
-msgstr ""
+msgstr "@code{user} (Vorgabe: @code{\"httpd\"})"
 
 #. type: table
-#: doc/guix.texi:16893
+#: doc/guix.texi:18647
 msgid "The @code{User} which the server will answer requests as."
-msgstr ""
+msgstr "Der Benutzer, als der der Server durch die @code{User}-Direktive Anfragen beantwortet."
 
 #. type: item
-#: doc/guix.texi:16894
+#: doc/guix.texi:18648
 #, no-wrap
 msgid "@code{group} (default: @code{\"httpd\"})"
-msgstr ""
+msgstr "@code{group} (Vorgabe: @code{\"httpd\"})"
 
 #. type: table
-#: doc/guix.texi:16896
+#: doc/guix.texi:18650
 msgid "The @code{Group} which the server will answer requests as."
-msgstr ""
+msgstr "Die Gruppe, mit der der Server durch die @code{Group}-Direktive Anfragen beantwortet."
 
 #. type: item
-#: doc/guix.texi:16897
+#: doc/guix.texi:18651
 #, no-wrap
 msgid "@code{extra-config} (default: @code{(list \"TypesConfig etc/httpd/mime.types\")})"
-msgstr ""
+msgstr "@code{extra-config} (Vorgabe: @code{(list \"TypesConfig etc/httpd/mime.types\")})"
 
 #. type: table
-#: doc/guix.texi:16900
+#: doc/guix.texi:18654
 msgid "A flat list of strings and G-expressions which will be added to the end of the configuration file."
-msgstr ""
+msgstr "Eine flache Liste von Zeichenketten und G-Ausdrücken, die am Ende der Konfigurationsdatei hinzugefügt werden."
 
 #. type: table
-#: doc/guix.texi:16903
+#: doc/guix.texi:18657
 msgid "Any values which the service is extended with will be appended to this list."
-msgstr ""
+msgstr "Alle Werte, mit denen dieser Dienst erweitert wird, werden an die Liste angehängt."
 
 #. type: deffn
-#: doc/guix.texi:16907
+#: doc/guix.texi:18661
 #, no-wrap
 msgid "{Data Type} httpd-virtualhost"
-msgstr ""
+msgstr "{Datentyp} httpd-virtualhost"
 
 #. type: deffn
-#: doc/guix.texi:16909
+#: doc/guix.texi:18663
 msgid "This data type represents a virtualhost configuration block for the httpd service."
-msgstr ""
+msgstr "Dieser Datentyp repräsentiert einen Konfigurationsblock für einen virtuellen Rechner (Virtual Host) des httpd-Dienstes."
 
 #. type: deffn
-#: doc/guix.texi:16911
+#: doc/guix.texi:18665
 msgid "These should be added to the extra-config for the httpd-service."
-msgstr ""
+msgstr "Sie sollten zur zusätzlichen Konfiguration extra-config des httpd-Dienstes hinzugefügt werden."
 
 #. type: code{#1}
-#: doc/guix.texi:16923
+#: doc/guix.texi:18677
 #, no-wrap
 msgid "addresses-and-ports"
-msgstr ""
+msgstr "addresses-and-ports"
 
 #. type: table
-#: doc/guix.texi:16925
+#: doc/guix.texi:18679
 msgid "The addresses and ports for the @code{VirtualHost} directive."
-msgstr ""
+msgstr "Adressen und Ports für die @code{VirtualHost}-Direktive."
 
 #. type: code{#1}
-#: doc/guix.texi:16926
+#: doc/guix.texi:18680
 #, no-wrap
 msgid "contents"
-msgstr ""
+msgstr "contents"
 
 #. type: table
-#: doc/guix.texi:16929
+#: doc/guix.texi:18683
 msgid "The contents of the @code{VirtualHost} directive, this should be a list of strings and G-expressions."
-msgstr ""
+msgstr "Der Inhalt der @code{VirtualHost}-Direktive. Er sollte als Liste von Zeichenketten und G-Ausdrücken angegeben werden."
 
 #. type: subsubheading
-#: doc/guix.texi:16933
+#: doc/guix.texi:18687
 #, no-wrap
 msgid "NGINX"
-msgstr ""
+msgstr "NGINX"
 
 #. type: deffn
-#: doc/guix.texi:16935
+#: doc/guix.texi:18689
 #, no-wrap
 msgid "{Scheme Variable} nginx-service-type"
-msgstr ""
+msgstr "{Scheme-Variable} nginx-service-type"
 
 #. type: deffn
-#: doc/guix.texi:16938
+#: doc/guix.texi:18692
 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 ""
+msgstr "Diensttyp für den @uref{https://nginx.org/,NGinx}-Webserver. Der Wert des Dienstes ist ein @code{<nginx-configuration>}-Verbundsobjekt."
 
 #. type: example
-#: doc/guix.texi:16948 doc/guix.texi:17002
+#: doc/guix.texi:18702 doc/guix.texi:18756
 #, no-wrap
 msgid ""
 "(service nginx-service-type\n"
@@ -30778,14 +34554,20 @@ msgid ""
 "                     (server-name '(\"www.example.com\"))\n"
 "                     (root \"/srv/http/www.example.com\"))))))\n"
 msgstr ""
+"(service nginx-service-type\n"
+"         (nginx-configuration\n"
+"           (server-blocks\n"
+"             (list (nginx-server-configuration\n"
+"                     (server-name '(\"www.example.com\"))\n"
+"                     (root \"/srv/http/www.example.com\"))))))\n"
 
 #. type: deffn
-#: doc/guix.texi:16953
+#: doc/guix.texi:18707
 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 ""
+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: example
-#: doc/guix.texi:16959
+#: doc/guix.texi:18713
 #, no-wrap
 msgid ""
 "(simple-service 'my-extra-server nginx-service-type\n"
@@ -30793,90 +34575,94 @@ msgid ""
 "                        (root \"/srv/http/extra-website\")\n"
 "                        (try-files (list \"$uri\" \"$uri/index.html\")))))\n"
 msgstr ""
+"(simple-service 'my-extra-server nginx-service-type\n"
+"                (list (nginx-server-configuration\n"
+"                        (root \"/srv/http/extra-website\")\n"
+"                        (try-files (list \"$uri\" \"$uri/index.html\")))))\n"
 
 #. type: Plain text
-#: doc/guix.texi:16970
+#: doc/guix.texi:18724
 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 ""
+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:16971
+#: doc/guix.texi:18725
 #, no-wrap
 msgid "{Data Type} nginx-configuration"
-msgstr ""
+msgstr "{Datentyp} nginx-configuration"
 
 #. type: deffn
-#: doc/guix.texi:16975
+#: doc/guix.texi:18729
 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 ""
+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:16977
+#: doc/guix.texi:18731
 #, no-wrap
 msgid "@code{nginx} (default: @code{nginx})"
-msgstr ""
+msgstr "@code{nginx} (Vorgabe: @code{nginx})"
 
 #. type: table
-#: doc/guix.texi:16979
+#: doc/guix.texi:18733
 msgid "The nginx package to use."
-msgstr ""
+msgstr "Das zu benutzende nginx-Paket."
 
 #. type: item
-#: doc/guix.texi:16980
+#: doc/guix.texi:18734
 #, no-wrap
 msgid "@code{log-directory} (default: @code{\"/var/log/nginx\"})"
-msgstr ""
+msgstr "@code{log-directory} (Vorgabe: @code{\"/var/log/nginx\"})"
 
 #. type: table
-#: doc/guix.texi:16982
+#: doc/guix.texi:18736
 msgid "The directory to which NGinx will write log files."
-msgstr ""
+msgstr "In welches Verzeichnis NGinx Protokolldateien schreiben wird."
 
 #. type: item
-#: doc/guix.texi:16983
+#: doc/guix.texi:18737
 #, no-wrap
 msgid "@code{run-directory} (default: @code{\"/var/run/nginx\"})"
-msgstr ""
+msgstr "@code{run-directory} (Vorgabe: @code{\"/var/run/nginx\"})"
 
 #. type: table
-#: doc/guix.texi:16986
+#: doc/guix.texi:18740
 msgid "The directory in which NGinx will create a pid file, and write temporary files."
-msgstr ""
+msgstr "In welchem Verzeichnis NGinx eine PID-Datei anlegen und temporäre Dateien ablegen wird."
 
 #. type: item
-#: doc/guix.texi:16987
+#: doc/guix.texi:18741
 #, no-wrap
 msgid "@code{server-blocks} (default: @code{'()})"
-msgstr ""
+msgstr "@code{server-blocks} (Vorgabe: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:16991
+#: doc/guix.texi:18745
 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 ""
+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:16995
+#: doc/guix.texi:18749
 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 ""
+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:17004
+#: doc/guix.texi:18758
 #, no-wrap
 msgid "@code{upstream-blocks} (default: @code{'()})"
-msgstr ""
+msgstr "@code{upstream-blocks} (Vorgabe: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:17008
+#: doc/guix.texi:18762
 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 ""
+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:17015
+#: doc/guix.texi:18769
 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 ""
+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: example
-#: doc/guix.texi:17034
+#: doc/guix.texi:18788
 #, no-wrap
 msgid ""
 "(service\n"
@@ -30897,352 +34683,363 @@ msgid ""
 "              (servers (list \"server1.example.com\"\n"
 "                             \"server2.example.com\")))))))\n"
 msgstr ""
+"(service\n"
+"  nginx-service-type\n"
+"  (nginx-configuration\n"
+"    (server-blocks\n"
+"      (list (nginx-server-configuration\n"
+"              (server-name '(\"www.example.com\"))\n"
+"              (root \"/srv/http/www.example.com\")\n"
+"              (locations\n"
+"                (list\n"
+"                  (nginx-location-configuration\n"
+"                  (uri \"/path1\")\n"
+"                  (body '(\"proxy_pass http://server-proxy;\"))))))))\n"
+"    (upstream-blocks\n"
+"      (list (nginx-upstream-configuration\n"
+"              (name \"server-proxy\")\n"
+"              (servers (list \"server1.example.com\"\n"
+"                             \"server2.example.com\")))))))\n"
 
 #. type: table
-#: doc/guix.texi:17042
+#: doc/guix.texi:18796
 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 ""
+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:17046
+#: doc/guix.texi:18800
 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 ""
+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:17047
+#: doc/guix.texi:18801
 #, no-wrap
 msgid "@code{server-names-hash-bucket-size} (default: @code{#f})"
-msgstr ""
+msgstr "@code{server-names-hash-bucket-size} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:17050
+#: doc/guix.texi:18804
 msgid "Bucket size for the server names hash tables, defaults to @code{#f} to use the size of the processors cache line."
-msgstr ""
+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:17051
+#: doc/guix.texi:18805
 #, no-wrap
 msgid "@code{server-names-hash-bucket-max-size} (default: @code{#f})"
-msgstr ""
+msgstr "@code{server-names-hash-bucket-max-size} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:17053
+#: doc/guix.texi:18807
 msgid "Maximum bucket size for the server names hash tables."
-msgstr ""
-
-#. type: item
-#: doc/guix.texi:17054
-#, no-wrap
-msgid "@code{extra-content} (default: @code{\"\"})"
-msgstr "@code{extra-content} (Vorgabe: @code{\"\"})"
+msgstr "Maximale Behältergröße für die Hashtabelle der Servernamen."
 
 #. type: table
-#: doc/guix.texi:17057
+#: doc/guix.texi:18811
 msgid "Extra content for the @code{http} block.  Should be string or a string valued G-expression."
-msgstr ""
+msgstr "Zusätzlicher Inhalt des @code{http}-Blocks. Er sollte eine Zeichenkette oder ein zeichenkettenwertiger G-Ausdruck."
 
 #. type: deftp
-#: doc/guix.texi:17061
+#: doc/guix.texi:18815
 #, no-wrap
 msgid "{Data Type} nginx-server-configuration"
-msgstr ""
+msgstr "{Datentyp} nginx-server-configuration"
 
 #. type: deftp
-#: doc/guix.texi:17064
+#: doc/guix.texi:18818
 msgid "Data type representing the configuration of an nginx server block.  This type has the following parameters:"
-msgstr ""
+msgstr "Der Datentyp, der die Konfiguration eines nginx-Serverblocks repräsentiert. Dieser Typ hat die folgenden Parameter:"
 
 #. type: item
-#: doc/guix.texi:17066
+#: doc/guix.texi:18820
 #, no-wrap
 msgid "@code{listen} (default: @code{'(\"80\" \"443 ssl\")})"
-msgstr ""
+msgstr "@code{listen} (Vorgabe: @code{'(\"80\" \"443 ssl\")})"
 
 #. type: table
-#: doc/guix.texi:17071
+#: doc/guix.texi:18825
 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 ""
+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: example
-#: doc/guix.texi:17074
+#: doc/guix.texi:18828
 #, no-wrap
 msgid "'(\"127.0.0.1:8000\" \"127.0.0.1\" \"8000\" \"*:8000\" \"localhost:8000\")\n"
-msgstr ""
+msgstr "'(\"127.0.0.1:8000\" \"127.0.0.1\" \"8000\" \"*:8000\" \"localhost:8000\")\n"
 
 #. type: item
-#: doc/guix.texi:17076
+#: doc/guix.texi:18830
 #, no-wrap
 msgid "@code{server-name} (default: @code{(list 'default)})"
-msgstr ""
+msgstr "@code{server-name} (Vorgabe: @code{(list 'default)})"
 
 #. type: table
-#: doc/guix.texi:17079
+#: doc/guix.texi:18833
 msgid "A list of server names this server represents. @code{'default} represents the default server for connections matching no other server."
-msgstr ""
+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:17080
+#: doc/guix.texi:18834
 #, no-wrap
 msgid "@code{root} (default: @code{\"/srv/http\"})"
-msgstr ""
+msgstr "@code{root} (Vorgabe: @code{\"/srv/http\"})"
 
 #. type: table
-#: doc/guix.texi:17082
+#: doc/guix.texi:18836
 msgid "Root of the website nginx will serve."
-msgstr ""
+msgstr "Wurzelverzeichnis der Webpräsenz, die über nginx abgerufen werden kann."
 
 #. type: item
-#: doc/guix.texi:17083
+#: doc/guix.texi:18837
 #, no-wrap
 msgid "@code{locations} (default: @code{'()})"
-msgstr ""
+msgstr "@code{locations} (Vorgabe: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:17087
+#: doc/guix.texi:18841
 msgid "A list of @dfn{nginx-location-configuration} or @dfn{nginx-named-location-configuration} records to use within this server block."
-msgstr ""
+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:17088
+#: doc/guix.texi:18842
 #, no-wrap
 msgid "@code{index} (default: @code{(list \"index.html\")})"
-msgstr ""
+msgstr "@code{index} (Vorgabe: @code{(list \"index.html\")})"
 
 #. type: table
-#: doc/guix.texi:17091
+#: doc/guix.texi:18845
 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 ""
+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:17092
+#: doc/guix.texi:18846
 #, no-wrap
 msgid "@code{try-files} (default: @code{'()})"
-msgstr ""
+msgstr "@code{try-files} (Vorgabe: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:17095
+#: doc/guix.texi:18849
 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 ""
+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:17096
+#: doc/guix.texi:18850
 #, no-wrap
 msgid "@code{ssl-certificate} (default: @code{#f})"
-msgstr ""
+msgstr "@code{ssl-certificate} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:17099
+#: doc/guix.texi:18853
 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 ""
+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:17100
+#: doc/guix.texi:18854
 #, no-wrap
 msgid "@code{ssl-certificate-key} (default: @code{#f})"
-msgstr ""
+msgstr "@code{ssl-certificate-key} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:17103
+#: doc/guix.texi:18857
 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 ""
+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:17104
+#: doc/guix.texi:18858
 #, no-wrap
 msgid "@code{server-tokens?} (default: @code{#f})"
-msgstr ""
+msgstr "@code{server-tokens?} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:17106
+#: doc/guix.texi:18860
 msgid "Whether the server should add its configuration to response."
-msgstr ""
+msgstr "Ob der Server Informationen über seine Konfiguration bei Antworten beilegen soll."
 
 #. type: item
-#: doc/guix.texi:17107
+#: doc/guix.texi:18861
 #, no-wrap
 msgid "@code{raw-content} (default: @code{'()})"
-msgstr ""
+msgstr "@code{raw-content} (Vorgabe: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:17109
+#: doc/guix.texi:18863
 msgid "A list of raw lines added to the server block."
-msgstr ""
+msgstr "Eine Liste von Zeilen, die unverändert in den Serverblock eingefügt werden."
 
 #. type: deftp
-#: doc/guix.texi:17113
+#: doc/guix.texi:18867
 #, no-wrap
 msgid "{Data Type} nginx-upstream-configuration"
-msgstr ""
+msgstr "{Datentyp} nginx-upstream-configuration"
 
 #. type: deftp
-#: doc/guix.texi:17116
+#: doc/guix.texi:18870
 msgid "Data type representing the configuration of an nginx @code{upstream} block.  This type has the following parameters:"
-msgstr ""
+msgstr "Der Datentyp, der die Konfiguration eines nginx-@code{upstream}-Blocks repräsentiert. Dieser Typ hat folgende Parameter:"
 
 #. type: table
-#: doc/guix.texi:17120
+#: doc/guix.texi:18874
 msgid "Name for this group of servers."
-msgstr ""
+msgstr "Der Name dieser Servergruppe."
 
 #. type: code{#1}
-#: doc/guix.texi:17121
+#: doc/guix.texi:18875
 #, no-wrap
 msgid "servers"
-msgstr ""
+msgstr "servers"
 
 #. type: table
-#: doc/guix.texi:17128
-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 ""
+#: doc/guix.texi:18882
+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:17132
+#: doc/guix.texi:18886
 #, no-wrap
 msgid "{Data Type} nginx-location-configuration"
-msgstr ""
+msgstr "{Datentyp} nginx-location-configuration"
 
 #. type: deftp
-#: doc/guix.texi:17135
+#: doc/guix.texi:18889
 msgid "Data type representing the configuration of an nginx @code{location} block.  This type has the following parameters:"
-msgstr ""
+msgstr "Der Datentyp, der die Konfiguration eines nginx-@code{location}-Blocks angibt. Der Typ hat die folgenden Parameter:"
 
 #. type: table
-#: doc/guix.texi:17139
+#: doc/guix.texi:18893
 msgid "URI which this location block matches."
-msgstr ""
+msgstr "Die URI, die auf diesen Block passt."
 
 #. type: anchor{#1}
-#: doc/guix.texi:17141
+#: doc/guix.texi:18895
 msgid "nginx-location-configuration body"
-msgstr ""
+msgstr "nginx-location-configuration body"
 
 #. type: code{#1}
-#: doc/guix.texi:17141 doc/guix.texi:17162
+#: doc/guix.texi:18895 doc/guix.texi:18916
 #, no-wrap
 msgid "body"
-msgstr ""
+msgstr "body"
 
 #. type: table
-#: doc/guix.texi:17148
+#: doc/guix.texi:18902
 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 ""
+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:17152
+#: doc/guix.texi:18906
 #, no-wrap
 msgid "{Data Type} nginx-named-location-configuration"
-msgstr ""
+msgstr "{Datentyp} nginx-named-location-configuration"
 
 #. type: deftp
-#: doc/guix.texi:17157
+#: doc/guix.texi:18911
 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 ""
+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:17161
+#: doc/guix.texi:18915
 msgid "Name to identify this location block."
-msgstr ""
+msgstr "Der Name, mit dem dieser location-Block identifiziert wird."
 
 #. type: table
-#: doc/guix.texi:17167
+#: doc/guix.texi:18921
 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 ""
+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:17171
+#: doc/guix.texi:18925
 #, no-wrap
 msgid "Varnish Cache"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:17172
+#: doc/guix.texi:18926
 #, no-wrap
 msgid "Varnish"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:17177
+#: doc/guix.texi:18931
 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:17178
+#: doc/guix.texi:18932
 #, no-wrap
 msgid "{Scheme Variable} varnish-service-type"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:17180
+#: doc/guix.texi:18934
 msgid "Service type for the Varnish daemon."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:17182
+#: doc/guix.texi:18936
 #, no-wrap
 msgid "{Data Type} varnish-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:17185
+#: doc/guix.texi:18939
 msgid "Data type representing the @code{varnish} service configuration.  This type has the following parameters:"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:17187
+#: doc/guix.texi:18941
 #, no-wrap
 msgid "@code{package} (default: @code{varnish})"
 msgstr "@code{package} (Vorgabe: @code{varnish})"
 
 #. type: table
-#: doc/guix.texi:17189
+#: doc/guix.texi:18943
 msgid "The Varnish package to use."
 msgstr "Das Varnish-Paket, was benutzt werden soll."
 
 #. type: item
-#: doc/guix.texi:17190
+#: doc/guix.texi:18944
 #, no-wrap
 msgid "@code{name} (default: @code{\"default\"})"
 msgstr "@code{name} (Vorgabe: @code{\"default\"})"
 
 #. type: table
-#: doc/guix.texi:17195
+#: doc/guix.texi:18949
 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:17198
-msgid "Pass the @code{-n} argument to other Varnish programs to connect to the named instance, e.g. @command{varnishncsa -n default}."
+#: doc/guix.texi:18952
+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:17199
+#: doc/guix.texi:18953
 #, no-wrap
 msgid "@code{backend} (default: @code{\"localhost:8080\"})"
 msgstr "@code{backend} (Vorgabe: @code{\"localhost:8080\"})"
 
 #. type: table
-#: doc/guix.texi:17201
+#: doc/guix.texi:18955
 msgid "The backend to use.  This option has no effect if @code{vcl} is set."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:17202
+#: doc/guix.texi:18956
 #, no-wrap
 msgid "@code{vcl} (default: #f)"
 msgstr "@code{vcl} (Vorgabe: #f)"
 
 #. type: table
-#: doc/guix.texi:17207
+#: doc/guix.texi:18961
 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:17211
+#: doc/guix.texi:18965
 msgid "For example, to mirror @url{http://www.gnu.org,www.gnu.org} with VCL you can do something along these lines:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:17218
+#: doc/guix.texi:18972
 #, no-wrap
 msgid ""
 "(define %gnu-mirror\n"
@@ -31254,7 +35051,7 @@ msgid ""
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:17226
+#: doc/guix.texi:18980
 #, no-wrap
 msgid ""
 "(operating-system\n"
@@ -31267,543 +35064,554 @@ msgid ""
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:17230
+#: doc/guix.texi:18984
 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:17234
+#: doc/guix.texi:18988
 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:17235
+#: doc/guix.texi:18989
 #, no-wrap
 msgid "@code{listen} (default: @code{'(\"localhost:80\")})"
 msgstr "@code{listen} (Vorgabe: @code{'(\"localhost:80\")})"
 
 #. type: table
-#: doc/guix.texi:17237
+#: doc/guix.texi:18991
 msgid "List of addresses Varnish will listen on."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:17238
+#: doc/guix.texi:18992
 #, no-wrap
 msgid "@code{storage} (default: @code{'(\"malloc,128m\")})"
 msgstr "@code{storage} (Vorgabe: @code{'(\"malloc,128m\")})"
 
 #. type: table
-#: doc/guix.texi:17240
+#: doc/guix.texi:18994
 msgid "List of storage backends that will be available in VCL."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:17241
+#: doc/guix.texi:18995
 #, no-wrap
 msgid "@code{parameters} (default: @code{'()})"
 msgstr "@code{parameters} (Vorgabe: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:17243
+#: doc/guix.texi:18997
 msgid "List of run-time parameters in the form @code{'((\"parameter\" . \"value\"))}."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:17246
+#: doc/guix.texi:19000
 msgid "Additional arguments to pass to the @command{varnishd} process."
 msgstr ""
 
 #. type: subsubheading
-#: doc/guix.texi:17250
+#: doc/guix.texi:19004
 #, no-wrap
 msgid "FastCGI"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:17251
+#: doc/guix.texi:19005
 #, no-wrap
 msgid "fastcgi"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:17252
+#: doc/guix.texi:19006
 #, no-wrap
 msgid "fcgiwrap"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:17259
+#: doc/guix.texi:19013
 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:17266
+#: doc/guix.texi:19020
 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:17267
+#: doc/guix.texi:19021
 #, no-wrap
 msgid "{Scheme Variable} fcgiwrap-service-type"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:17269
+#: doc/guix.texi:19023
 msgid "A service type for the @code{fcgiwrap} FastCGI proxy."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:17271
+#: doc/guix.texi:19025
 #, no-wrap
 msgid "{Data Type} fcgiwrap-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:17274
-msgid "Data type representing the configuration of the @code{fcgiwrap} serice.  This type has the following parameters:"
-msgstr ""
+#: doc/guix.texi:19028
+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:17275
+#: doc/guix.texi:19029
 #, no-wrap
 msgid "@code{package} (default: @code{fcgiwrap})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:17277
+#: doc/guix.texi:19031
 msgid "The fcgiwrap package to use."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:17278
+#: doc/guix.texi:19032
 #, no-wrap
 msgid "@code{socket} (default: @code{tcp:127.0.0.1:9000})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:17284
+#: doc/guix.texi:19038
 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:17285
+#: doc/guix.texi:19039
 #, no-wrap
 msgid "@code{user} (default: @code{fcgiwrap})"
 msgstr ""
 
 #. type: itemx
-#: doc/guix.texi:17286
+#: doc/guix.texi:19040
 #, no-wrap
 msgid "@code{group} (default: @code{fcgiwrap})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:17291
+#: doc/guix.texi:19045
 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:17298
+#: doc/guix.texi:19052
 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:17301
+#: doc/guix.texi:19055
 #, no-wrap
 msgid "php-fpm"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:17304
+#: doc/guix.texi:19058
 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:17306
+#: doc/guix.texi:19060
 msgid "These features include:"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:17307
+#: doc/guix.texi:19061
 #, no-wrap
 msgid "Adaptive process spawning"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:17308
+#: doc/guix.texi:19062
 #, no-wrap
 msgid "Basic statistics (similar to Apache's mod_status)"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:17309
+#: doc/guix.texi:19063
 #, no-wrap
 msgid "Advanced process management with graceful stop/start"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:17310
+#: doc/guix.texi:19064
 #, no-wrap
 msgid "Ability to start workers with different uid/gid/chroot/environment"
 msgstr ""
 
 #. type: itemize
-#: doc/guix.texi:17312
+#: doc/guix.texi:19066
 msgid "and different php.ini (replaces safe_mode)"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:17312
+#: doc/guix.texi:19066
 #, no-wrap
 msgid "Stdout & stderr logging"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:17313
+#: doc/guix.texi:19067
 #, no-wrap
 msgid "Emergency restart in case of accidental opcode cache destruction"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:17314
+#: doc/guix.texi:19068
 #, no-wrap
 msgid "Accelerated upload support"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:17315
+#: doc/guix.texi:19069
 #, no-wrap
 msgid "Support for a \"slowlog\""
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:17316
+#: doc/guix.texi:19070
 #, no-wrap
 msgid "Enhancements to FastCGI, such as fastcgi_finish_request() -"
 msgstr ""
 
 #. type: itemize
-#: doc/guix.texi:17319
+#: doc/guix.texi:19073
 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:17321
-msgid "... and much more."
+#: doc/guix.texi:19075
+msgid "...@: and much more."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:17322
+#: doc/guix.texi:19076
 #, no-wrap
 msgid "{Scheme Variable} php-fpm-service-type"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:17324
+#: doc/guix.texi:19078
 msgid "A Service type for @code{php-fpm}."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:17326
+#: doc/guix.texi:19080
 #, no-wrap
 msgid "{Data Type} php-fpm-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:17328
+#: doc/guix.texi:19082
 msgid "Data Type for php-fpm service configuration."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:17329
+#: doc/guix.texi:19083
 #, no-wrap
 msgid "@code{php} (default: @code{php})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:17331
+#: doc/guix.texi:19085
 msgid "The php package to use."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:17331
+#: doc/guix.texi:19085
 #, 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:17333
+#: doc/guix.texi:19087
 msgid "The address on which to accept FastCGI requests.  Valid syntaxes are:"
 msgstr ""
 
 #. type: code{#1}
-#: doc/guix.texi:17334
+#: doc/guix.texi:19088
 #, no-wrap
 msgid "\"ip.add.re.ss:port\""
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:17336
+#: doc/guix.texi:19090
 msgid "Listen on a TCP socket to a specific address on a specific port."
 msgstr ""
 
 #. type: code{#1}
-#: doc/guix.texi:17336
+#: doc/guix.texi:19090
 #, no-wrap
 msgid "\"port\""
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:17338
+#: doc/guix.texi:19092
 msgid "Listen on a TCP socket to all addresses on a specific port."
 msgstr ""
 
 #. type: code{#1}
-#: doc/guix.texi:17338
+#: doc/guix.texi:19092
 #, no-wrap
 msgid "\"/path/to/unix/socket\""
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:17340
+#: doc/guix.texi:19094
 msgid "Listen on a unix socket."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:17342
+#: doc/guix.texi:19096
 #, no-wrap
 msgid "@code{user} (default: @code{php-fpm})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:17344
+#: doc/guix.texi:19098
 msgid "User who will own the php worker processes."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:17344
+#: doc/guix.texi:19098
 #, no-wrap
 msgid "@code{group} (default: @code{php-fpm})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:17346
+#: doc/guix.texi:19100
 msgid "Group of the worker processes."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:17346
+#: doc/guix.texi:19100
 #, no-wrap
 msgid "@code{socket-user} (default: @code{php-fpm})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:17348
+#: doc/guix.texi:19102
 msgid "User who can speak to the php-fpm socket."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:17348
+#: doc/guix.texi:19102
 #, no-wrap
 msgid "@code{socket-group} (default: @code{php-fpm})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:17350
+#: doc/guix.texi:19104
 msgid "Group that can speak to the php-fpm socket."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:17350
+#: doc/guix.texi:19104
 #, 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:17353
+#: doc/guix.texi:19107
 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:17353
+#: doc/guix.texi:19107
 #, 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:17355
+#: doc/guix.texi:19109
 msgid "Log for the php-fpm master process."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:17355
+#: doc/guix.texi:19109
 #, no-wrap
 msgid "@code{process-manager} (default: @code{(php-fpm-dynamic-process-manager-configuration)})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:17358
+#: doc/guix.texi:19112
 msgid "Detailed settings for the php-fpm process manager.  Must be either:"
 msgstr ""
 
 #. type: code{#1}
-#: doc/guix.texi:17359
+#: doc/guix.texi:19113
 #, no-wrap
 msgid "<php-fpm-dynamic-process-manager-configuration>"
 msgstr ""
 
 #. type: code{#1}
-#: doc/guix.texi:17360
+#: doc/guix.texi:19114
 #, no-wrap
 msgid "<php-fpm-static-process-manager-configuration>"
 msgstr ""
 
 #. type: code{#1}
-#: doc/guix.texi:17361
+#: doc/guix.texi:19115
 #, no-wrap
 msgid "<php-fpm-on-demand-process-manager-configuration>"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:17363
+#: doc/guix.texi:19117
 #, no-wrap
 msgid "@code{display-errors} (default @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:17368
+#: doc/guix.texi:19122
 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:17368
+#: doc/guix.texi:19122
+#, no-wrap
+msgid "@code{timezone} (default @code{#f})"
+msgstr "@code{timezone} (Vorgabe: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:19124
+msgid "Specifies @code{php_admin_value[date.timezone]} parameter."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19124
 #, 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:17371
+#: doc/guix.texi:19127
 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:17371
+#: doc/guix.texi:19127
 #, no-wrap
 msgid "@code{file} (default @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:17374
+#: doc/guix.texi:19130
 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: deftp
-#: doc/guix.texi:17377
+#: doc/guix.texi:19133
 #, no-wrap
 msgid "{Data type} php-fpm-dynamic-process-manager-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:17381
+#: doc/guix.texi:19137
 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:17382 doc/guix.texi:17398 doc/guix.texi:17408
+#: doc/guix.texi:19138 doc/guix.texi:19154 doc/guix.texi:19164
 #, no-wrap
 msgid "@code{max-children} (default: @code{5})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:17384 doc/guix.texi:17400 doc/guix.texi:17410
+#: doc/guix.texi:19140 doc/guix.texi:19156 doc/guix.texi:19166
 msgid "Maximum of worker processes."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:17384
+#: doc/guix.texi:19140
 #, no-wrap
 msgid "@code{start-servers} (default: @code{2})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:17386
+#: doc/guix.texi:19142
 msgid "How many worker processes should be started on start-up."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:17386
+#: doc/guix.texi:19142
 #, no-wrap
 msgid "@code{min-spare-servers} (default: @code{1})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:17388
+#: doc/guix.texi:19144
 msgid "How many spare worker processes should be kept around at minimum."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:17388
+#: doc/guix.texi:19144
 #, no-wrap
 msgid "@code{max-spare-servers} (default: @code{3})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:17390
+#: doc/guix.texi:19146
 msgid "How many spare worker processes should be kept around at maximum."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:17393
+#: doc/guix.texi:19149
 #, no-wrap
 msgid "{Data type} php-fpm-static-process-manager-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:17397
+#: doc/guix.texi:19153
 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:17403
+#: doc/guix.texi:19159
 #, no-wrap
 msgid "{Data type} php-fpm-on-demand-process-manager-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:17407
+#: doc/guix.texi:19163
 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:17410
+#: doc/guix.texi:19166
 #, no-wrap
 msgid "@code{process-idle-timeout} (default: @code{10})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:17412
+#: doc/guix.texi:19168
 msgid "The time in seconds after which a process with no requests is killed."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:17416
+#: doc/guix.texi:19172
 #, no-wrap
 msgid "{Scheme Procedure} nginx-php-fpm-location @"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:17422
+#: doc/guix.texi:19178
 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:17425
+#: doc/guix.texi:19181
 msgid "A simple services setup for nginx with php can look like this:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:17438
+#: doc/guix.texi:19194
 #, no-wrap
 msgid ""
 "(services (cons* (service dhcp-client-service-type)\n"
@@ -31814,41 +35622,41 @@ msgid ""
 "                           (root \"/srv/http/\")\n"
 "                           (locations\n"
 "                            (list (nginx-php-location)))\n"
-"                           (https-port #f)\n"
+"                           (listen '(\"80\"))\n"
 "                           (ssl-certificate #f)\n"
 "                           (ssl-certificate-key #f)))\n"
 "                 %base-services))\n"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:17440
+#: doc/guix.texi:19196
 #, no-wrap
 msgid "cat-avatar-generator"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:17444
+#: doc/guix.texi:19200
 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:17445
+#: doc/guix.texi:19201
 #, no-wrap
-msgid "{Scheme Procedure} cat-avatar-generator-serice @"
-msgstr ""
+msgid "{Scheme Procedure} cat-avatar-generator-service @"
+msgstr "{Scheme-Prozedur} cat-avatar-generator-service @"
 
 #. type: deffn
-#: doc/guix.texi:17453
+#: doc/guix.texi:19209
 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:17456
+#: doc/guix.texi:19212
 msgid "A simple setup for cat-avatar-generator can look like this:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:17463
+#: doc/guix.texi:19219
 #, no-wrap
 msgid ""
 "(services (cons* (cat-avatar-generator-service\n"
@@ -31860,155 +35668,155 @@ msgid ""
 msgstr ""
 
 #. type: subsubheading
-#: doc/guix.texi:17465
+#: doc/guix.texi:19221
 #, no-wrap
 msgid "Hpcguix-web"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:17467
+#: doc/guix.texi:19223
 #, no-wrap
 msgid "hpcguix-web"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:17472
+#: doc/guix.texi:19228
 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 ""
 
 #. type: defvr
-#: doc/guix.texi:17473
+#: doc/guix.texi:19229
 #, no-wrap
 msgid "{Scheme Variable} hpcguix-web-service-type"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:17475
+#: doc/guix.texi:19231
 msgid "The service type for @code{hpcguix-web}."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:17477
+#: doc/guix.texi:19233
 #, no-wrap
 msgid "{Data Type} hpcguix-web-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:17479
+#: doc/guix.texi:19235
 msgid "Data type for the hpcguix-web service configuration."
 msgstr ""
 
 #. type: code{#1}
-#: doc/guix.texi:17481
+#: doc/guix.texi:19237
 #, no-wrap
 msgid "specs"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:17484
+#: doc/guix.texi:19240
 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:17486
+#: doc/guix.texi:19242
 #, no-wrap
 msgid "@code{title-prefix} (default: @code{\"hpcguix | \"})"
 msgstr "@code{title-prefix} (Vorgabe: @code{\"hpcguix | \"})"
 
 #. type: table
-#: doc/guix.texi:17488
+#: doc/guix.texi:19244
 msgid "The page title prefix."
 msgstr "Das Präfix der Webseitentitel."
 
 #. type: item
-#: doc/guix.texi:17489
+#: doc/guix.texi:19245
 #, no-wrap
 msgid "@code{guix-command} (default: @code{\"guix\"})"
 msgstr "@code{guix-command} (Vorgabe: @code{\"guix\"})"
 
 #. type: table
-#: doc/guix.texi:17491
+#: doc/guix.texi:19247
 msgid "The @command{guix} command."
 msgstr "Der @command{guix}-Befehl."
 
 #. type: item
-#: doc/guix.texi:17492
+#: doc/guix.texi:19248
 #, 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:17494
+#: doc/guix.texi:19250
 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:17495
+#: doc/guix.texi:19251
 #, 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:17497
+#: doc/guix.texi:19253
 msgid "Extension package for @code{hpcguix-web}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:17498
+#: doc/guix.texi:19254
 #, no-wrap
 msgid "@code{menu} (default: @code{'()})"
 msgstr "@code{menu} (Vorgabe: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:17500
+#: doc/guix.texi:19256
 msgid "Additional entry in page @code{menu}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:17501
+#: doc/guix.texi:19257
 #, no-wrap
 msgid "@code{channels} (default: @code{%default-channels})"
 msgstr "@code{channels} (Vorgabe: @code{%default-channels})"
 
 #. type: table
-#: doc/guix.texi:17503
+#: doc/guix.texi:19259
 msgid "List of channels from which the package list is built (@pxref{Channels})."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:17504
+#: doc/guix.texi:19260
 #, 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:17507
+#: doc/guix.texi:19263
 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:17512
+#: doc/guix.texi:19268
 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:17513
+#: doc/guix.texi:19269
 #, no-wrap
 msgid "@code{package} (default: @code{hpcguix-web})"
 msgstr "@code{package} (Vorgabe: @code{hpcguix-web})"
 
 #. type: table
-#: doc/guix.texi:17515
+#: doc/guix.texi:19271
 msgid "The hpcguix-web package to use."
 msgstr "Das hpcguix-web-Paket, was benutzt werden soll."
 
 #. type: Plain text
-#: doc/guix.texi:17519
+#: doc/guix.texi:19275
 msgid "A typical hpcguix-web service declaration looks like this:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:17528
+#: doc/guix.texi:19284
 #, no-wrap
 msgid ""
 "(service hpcguix-web-service-type\n"
@@ -32021,77 +35829,77 @@ msgid ""
 msgstr ""
 
 #. type: quotation
-#: doc/guix.texi:17535
+#: doc/guix.texi:19291
 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:17539
+#: doc/guix.texi:19295
 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:17544
+#: doc/guix.texi:19300
 #, no-wrap
 msgid "Web"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:17545
+#: doc/guix.texi:19301
 #, no-wrap
 msgid "HTTP, HTTPS"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:17546
+#: doc/guix.texi:19302
 #, no-wrap
 msgid "Let's Encrypt"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:17547
+#: doc/guix.texi:19303
 #, no-wrap
 msgid "TLS certificates"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:17554
+#: doc/guix.texi:19310
 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:17566
+#: doc/guix.texi:19322
 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:17573
-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)."
+#: doc/guix.texi:19329
+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:17579
+#: doc/guix.texi:19335
 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:17583
+#: doc/guix.texi:19339
 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:17584
+#: doc/guix.texi:19340
 #, no-wrap
 msgid "{Scheme Variable} certbot-service-type"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:17587
+#: doc/guix.texi:19343
 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: example
-#: doc/guix.texi:17594
+#: doc/guix.texi:19350
 #, no-wrap
 msgid ""
 "(define %nginx-deploy-hook\n"
@@ -32103,7 +35911,7 @@ msgid ""
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:17605
+#: doc/guix.texi:19361
 #, no-wrap
 msgid ""
 "(service certbot-service-type\n"
@@ -32119,180 +35927,180 @@ msgid ""
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:17608
+#: doc/guix.texi:19364
 msgid "See below for details about @code{certbot-configuration}."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:17610
+#: doc/guix.texi:19366
 #, no-wrap
 msgid "{Data Type} certbot-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:17613
+#: doc/guix.texi:19369
 msgid "Data type representing the configuration of the @code{certbot} service.  This type has the following parameters:"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:17615
+#: doc/guix.texi:19371
 #, no-wrap
 msgid "@code{package} (default: @code{certbot})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:17617
+#: doc/guix.texi:19373
 msgid "The certbot package to use."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:17618
+#: doc/guix.texi:19374
 #, no-wrap
 msgid "@code{webroot} (default: @code{/var/www})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:17621
+#: doc/guix.texi:19377
 msgid "The directory from which to serve the Let's Encrypt challenge/response files."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:17622
+#: doc/guix.texi:19378
 #, no-wrap
 msgid "@code{certificates} (default: @code{()})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:17626
+#: doc/guix.texi:19382
 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: table
-#: doc/guix.texi:17630
+#: doc/guix.texi:19386
 msgid "Mandatory email used for registration, recovery contact, and important account notifications."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:17631
+#: doc/guix.texi:19387
 #, no-wrap
 msgid "@code{rsa-key-size} (default: @code{2048})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:17633
+#: doc/guix.texi:19389
 msgid "Size of the RSA key."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:17634
+#: doc/guix.texi:19390
 #, no-wrap
 msgid "@code{default-location} (default: @i{see below})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:17643
+#: doc/guix.texi:19399
 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:17647
+#: doc/guix.texi:19403
 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:17651
+#: doc/guix.texi:19407
 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:17653
+#: doc/guix.texi:19409
 msgid "Pass @code{#f} to not issue a default location."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:17656
+#: doc/guix.texi:19412
 #, no-wrap
 msgid "{Data Type} certificate-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:17659
+#: doc/guix.texi:19415
 msgid "Data type representing the configuration of a certificate.  This type has the following parameters:"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:17661
+#: doc/guix.texi:19417
 #, no-wrap
 msgid "@code{name} (default: @i{see below})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:17665
+#: doc/guix.texi:19421
 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:17667
+#: doc/guix.texi:19423
 msgid "Its default is the first provided domain."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:17668
+#: doc/guix.texi:19424
 #, no-wrap
 msgid "@code{domains} (default: @code{()})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:17671
+#: doc/guix.texi:19427
 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:17672
+#: doc/guix.texi:19428
 #, no-wrap
 msgid "@code{deploy-hook} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:17680
+#: doc/guix.texi:19436
 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:17687
+#: doc/guix.texi:19443
 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:17689
+#: doc/guix.texi:19445
 #, no-wrap
 msgid "DNS (domain name system)"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:17690
+#: doc/guix.texi:19446
 #, no-wrap
 msgid "domain name system (DNS)"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:17698
+#: doc/guix.texi:19454
 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:17699
+#: doc/guix.texi:19455
 #, no-wrap
 msgid "Knot Service"
 msgstr "Knot-Dienst"
 
 #. type: Plain text
-#: doc/guix.texi:17703
+#: doc/guix.texi:19459
 msgid "An example configuration of an authoritative server for two zones, one master and one slave, is:"
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:17710
+#: doc/guix.texi:19466
 #, no-wrap
 msgid ""
 "(define-zone-entries example.org.zone\n"
@@ -32304,7 +36112,7 @@ msgid ""
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:17717
+#: doc/guix.texi:19473
 #, no-wrap
 msgid ""
 "(define master-zone\n"
@@ -32317,7 +36125,7 @@ msgid ""
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:17723
+#: doc/guix.texi:19479
 #, no-wrap
 msgid ""
 "(define slave-zone\n"
@@ -32329,7 +36137,7 @@ msgid ""
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:17728
+#: doc/guix.texi:19484
 #, no-wrap
 msgid ""
 "(define plop-master\n"
@@ -32340,7 +36148,7 @@ msgid ""
 msgstr ""
 
 #. type: lisp
-#: doc/guix.texi:17737
+#: doc/guix.texi:19493
 #, no-wrap
 msgid ""
 "(operating-system\n"
@@ -32354,834 +36162,834 @@ msgid ""
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:17739
+#: doc/guix.texi:19495
 #, no-wrap
 msgid "{Scheme Variable} knot-service-type"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:17741
+#: doc/guix.texi:19497
 msgid "This is the type for the Knot DNS server."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:17749
+#: doc/guix.texi:19505
 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:17751
+#: doc/guix.texi:19507
 msgid "The following data types are used to configure the Knot DNS server:"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:17753
+#: doc/guix.texi:19509
 #, no-wrap
 msgid "{Data Type} knot-key-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:17756
+#: doc/guix.texi:19512
 msgid "Data type representing a key.  This type has the following parameters:"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:17758 doc/guix.texi:17778 doc/guix.texi:17893
-#: doc/guix.texi:17919 doc/guix.texi:17954
+#: doc/guix.texi:19514 doc/guix.texi:19534 doc/guix.texi:19649
+#: doc/guix.texi:19675 doc/guix.texi:19710
 #, no-wrap
 msgid "@code{id} (default: @code{\"\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:17761
+#: doc/guix.texi:19517
 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:17762
+#: doc/guix.texi:19518
 #, no-wrap
 msgid "@code{algorithm} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:17766
+#: doc/guix.texi:19522
 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:17767
+#: doc/guix.texi:19523
 #, no-wrap
 msgid "@code{secret} (default: @code{\"\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:17769
+#: doc/guix.texi:19525
 msgid "The secret key itself."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:17773
+#: doc/guix.texi:19529
 #, no-wrap
 msgid "{Data Type} knot-acl-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:17776
+#: doc/guix.texi:19532
 msgid "Data type representing an Access Control List (ACL) configuration.  This type has the following parameters:"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:17781
+#: doc/guix.texi:19537
 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:17782 doc/guix.texi:17897
+#: doc/guix.texi:19538 doc/guix.texi:19653
 #, no-wrap
 msgid "@code{address} (default: @code{'()})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:17786
+#: doc/guix.texi:19542
 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:17787
+#: doc/guix.texi:19543
 #, no-wrap
 msgid "@code{key} (default: @code{'()})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:17791
+#: doc/guix.texi:19547
 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:17792
+#: doc/guix.texi:19548
 #, no-wrap
 msgid "@code{action} (default: @code{'()})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:17796
+#: doc/guix.texi:19552
 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:17797
+#: doc/guix.texi:19553
 #, no-wrap
 msgid "@code{deny?} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:17800
+#: doc/guix.texi:19556
 msgid "When true, the ACL defines restrictions.  Listed actions are forbidden.  When false, listed actions are allowed."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:17804
+#: doc/guix.texi:19560
 #, no-wrap
 msgid "{Data Type} zone-entry"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:17807
+#: doc/guix.texi:19563
 msgid "Data type represnting a record entry in a zone file.  This type has the following parameters:"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:17809
+#: doc/guix.texi:19565
 #, no-wrap
 msgid "@code{name} (default: @code{\"@@\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:17815
+#: doc/guix.texi:19571
 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:17816
+#: doc/guix.texi:19572
 #, no-wrap
 msgid "@code{ttl} (default: @code{\"\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:17818
+#: doc/guix.texi:19574
 msgid "The Time-To-Live (TTL) of this record.  If not set, the default TTL is used."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:17819
+#: doc/guix.texi:19575
 #, no-wrap
 msgid "@code{class} (default: @code{\"IN\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:17822
+#: doc/guix.texi:19578
 msgid "The class of the record.  Knot currently supports only @code{\"IN\"} and partially @code{\"CH\"}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:17823
+#: doc/guix.texi:19579
 #, no-wrap
 msgid "@code{type} (default: @code{\"A\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:17827
+#: doc/guix.texi:19583
 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:17828
+#: doc/guix.texi:19584
 #, no-wrap
 msgid "@code{data} (default: @code{\"\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:17832
+#: doc/guix.texi:19588
 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:17836
+#: doc/guix.texi:19592
 #, no-wrap
 msgid "{Data Type} zone-file"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:17839
+#: doc/guix.texi:19595
 msgid "Data type representing the content of a zone file.  This type has the following parameters:"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:17848
+#: doc/guix.texi:19604
 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:17849
+#: doc/guix.texi:19605
 #, no-wrap
 msgid "@code{origin} (default: @code{\"\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:17851
+#: doc/guix.texi:19607
 msgid "The name of your zone.  This parameter cannot be empty."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:17852
+#: doc/guix.texi:19608
 #, no-wrap
 msgid "@code{ns} (default: @code{\"ns\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:17857
+#: doc/guix.texi:19613
 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:17858
+#: doc/guix.texi:19614
 #, no-wrap
 msgid "@code{mail} (default: @code{\"hostmaster\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:17861
+#: doc/guix.texi:19617
 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:17862
+#: doc/guix.texi:19618
 #, no-wrap
 msgid "@code{serial} (default: @code{1})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:17866
+#: doc/guix.texi:19622
 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:17867
+#: doc/guix.texi:19623
 #, no-wrap
 msgid "@code{refresh} (default: @code{(* 2 24 3600)})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:17871
+#: doc/guix.texi:19627
 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:17872
+#: doc/guix.texi:19628
 #, no-wrap
 msgid "@code{retry} (default: @code{(* 15 60)})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:17875
+#: doc/guix.texi:19631
 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:17876
+#: doc/guix.texi:19632
 #, no-wrap
 msgid "@code{expiry} (default: @code{(* 14 24 3600)})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:17880
+#: doc/guix.texi:19636
 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:17881
+#: doc/guix.texi:19637
 #, no-wrap
 msgid "@code{nx} (default: @code{3600})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:17884
+#: doc/guix.texi:19640
 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:17888
+#: doc/guix.texi:19644
 #, no-wrap
 msgid "{Data Type} knot-remote-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:17891
+#: doc/guix.texi:19647
 msgid "Data type representing a remote configuration.  This type has the following parameters:"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:17896
+#: doc/guix.texi:19652
 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:17901
+#: doc/guix.texi:19657
 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:17902
+#: doc/guix.texi:19658
 #, no-wrap
 msgid "@code{via} (default: @code{'()})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:17906
+#: doc/guix.texi:19662
 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:17907
+#: doc/guix.texi:19663
 #, no-wrap
 msgid "@code{key} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:17910
+#: doc/guix.texi:19666
 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:17914
+#: doc/guix.texi:19670
 #, no-wrap
 msgid "{Data Type} knot-keystore-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:17917
+#: doc/guix.texi:19673
 msgid "Data type representing a keystore to hold dnssec keys.  This type has the following parameters:"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:17921
+#: doc/guix.texi:19677
 msgid "The id of the keystore.  It must not be empty."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:17922
+#: doc/guix.texi:19678
 #, no-wrap
 msgid "@code{backend} (default: @code{'pem})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:17924
+#: doc/guix.texi:19680
 msgid "The backend to store the keys in.  Can be @code{'pem} or @code{'pkcs11}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:17925
+#: doc/guix.texi:19681
 #, no-wrap
 msgid "@code{config} (default: @code{\"/var/lib/knot/keys/keys\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:17929
+#: doc/guix.texi:19685
 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 ""
 
 #. type: deftp
-#: doc/guix.texi:17933
+#: doc/guix.texi:19689
 #, no-wrap
 msgid "{Data Type} knot-policy-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:17937
+#: doc/guix.texi:19693
 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:17944
+#: doc/guix.texi:19700
 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:17950
+#: doc/guix.texi:19706
 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:17952
+#: doc/guix.texi:19708
 msgid "This type has the following parameters:"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:17956
+#: doc/guix.texi:19712
 msgid "The id of the policy.  It must not be empty."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:17957
+#: doc/guix.texi:19713
 #, no-wrap
 msgid "@code{keystore} (default: @code{\"default\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:17962
+#: doc/guix.texi:19718
 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:17963
+#: doc/guix.texi:19719
 #, no-wrap
 msgid "@code{manual?} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:17965
+#: doc/guix.texi:19721
 msgid "Whether the key management is manual or automatic."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:17966
+#: doc/guix.texi:19722
 #, no-wrap
 msgid "@code{single-type-signing?} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:17968
+#: doc/guix.texi:19724
 msgid "When @code{#t}, use the Single-Type Signing Scheme."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:17969
+#: doc/guix.texi:19725
 #, no-wrap
 msgid "@code{algorithm} (default: @code{\"ecdsap256sha256\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:17971
+#: doc/guix.texi:19727
 msgid "An algorithm of signing keys and issued signatures."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:17972
+#: doc/guix.texi:19728
 #, no-wrap
 msgid "@code{ksk-size} (default: @code{256})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:17975
+#: doc/guix.texi:19731
 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:17976
+#: doc/guix.texi:19732
 #, no-wrap
 msgid "@code{zsk-size} (default: @code{256})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:17979
+#: doc/guix.texi:19735
 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:17980
+#: doc/guix.texi:19736
 #, no-wrap
 msgid "@code{dnskey-ttl} (default: @code{'default})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:17983
+#: doc/guix.texi:19739
 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:17984
+#: doc/guix.texi:19740
 #, no-wrap
 msgid "@code{zsk-lifetime} (default: @code{(* 30 24 3600)})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:17986
+#: doc/guix.texi:19742
 msgid "The period between ZSK publication and the next rollover initiation."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:17987
+#: doc/guix.texi:19743
 #, no-wrap
 msgid "@code{propagation-delay} (default: @code{(* 24 3600)})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:17990
+#: doc/guix.texi:19746
 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:17991
+#: doc/guix.texi:19747
 #, no-wrap
 msgid "@code{rrsig-lifetime} (default: @code{(* 14 24 3600)})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:17993
+#: doc/guix.texi:19749
 msgid "A validity period of newly issued signatures."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:17994
+#: doc/guix.texi:19750
 #, no-wrap
 msgid "@code{rrsig-refresh} (default: @code{(* 7 24 3600)})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:17996
+#: doc/guix.texi:19752
 msgid "A period how long before a signature expiration the signature will be refreshed."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:17997
+#: doc/guix.texi:19753
 #, no-wrap
 msgid "@code{nsec3?} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:17999
+#: doc/guix.texi:19755
 msgid "When @code{#t}, NSEC3 will be used instead of NSEC."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:18000
+#: doc/guix.texi:19756
 #, no-wrap
 msgid "@code{nsec3-iterations} (default: @code{5})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:18002
+#: doc/guix.texi:19758
 msgid "The number of additional times the hashing is performed."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:18003
+#: doc/guix.texi:19759
 #, no-wrap
 msgid "@code{nsec3-salt-length} (default: @code{8})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:18006
+#: doc/guix.texi:19762
 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:18007
+#: doc/guix.texi:19763
 #, no-wrap
 msgid "@code{nsec3-salt-lifetime} (default: @code{(* 30 24 3600)})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:18009
+#: doc/guix.texi:19765
 msgid "The validity period of newly issued salt field."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:18013
+#: doc/guix.texi:19769
 #, no-wrap
 msgid "{Data Type} knot-zone-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:18016
+#: doc/guix.texi:19772
 msgid "Data type representing a zone served by Knot.  This type has the following parameters:"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:18018
+#: doc/guix.texi:19774
 #, no-wrap
 msgid "@code{domain} (default: @code{\"\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:18020
+#: doc/guix.texi:19776
 msgid "The domain served by this configuration.  It must not be empty."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:18021
+#: doc/guix.texi:19777
 #, no-wrap
 msgid "@code{file} (default: @code{\"\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:18024
+#: doc/guix.texi:19780
 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:18025
+#: doc/guix.texi:19781
 #, no-wrap
 msgid "@code{zone} (default: @code{(zone-file)})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:18028
+#: doc/guix.texi:19784
 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:18029
+#: doc/guix.texi:19785
 #, no-wrap
 msgid "@code{master} (default: @code{'()})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:18032
+#: doc/guix.texi:19788
 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:18033
+#: doc/guix.texi:19789
 #, no-wrap
 msgid "@code{ddns-master} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:18036
+#: doc/guix.texi:19792
 msgid "The main master.  When empty, it defaults to the first master in the list of masters."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:18037
+#: doc/guix.texi:19793
 #, no-wrap
 msgid "@code{notify} (default: @code{'()})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:18039
+#: doc/guix.texi:19795
 msgid "A list of slave remote identifiers."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:18040
+#: doc/guix.texi:19796
 #, no-wrap
 msgid "@code{acl} (default: @code{'()})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:18042
+#: doc/guix.texi:19798
 msgid "A list of acl identifiers."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:18043
+#: doc/guix.texi:19799
 #, no-wrap
 msgid "@code{semantic-checks?} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:18045
+#: doc/guix.texi:19801
 msgid "When set, this adds more semantic checks to the zone."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:18046
+#: doc/guix.texi:19802
 #, no-wrap
 msgid "@code{disable-any?} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:18048
+#: doc/guix.texi:19804
 msgid "When set, this forbids queries of the ANY type."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:18049
+#: doc/guix.texi:19805
 #, no-wrap
 msgid "@code{zonefile-sync} (default: @code{0})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:18052
+#: doc/guix.texi:19808
 msgid "The delay between a modification in memory and on disk.  0 means immediate synchronization."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:18053
+#: doc/guix.texi:19809
 #, no-wrap
 msgid "@code{serial-policy} (default: @code{'increment})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:18055
+#: doc/guix.texi:19811
 msgid "A policy between @code{'increment} and @code{'unixtime}."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:18059
+#: doc/guix.texi:19815
 #, no-wrap
 msgid "{Data Type} knot-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:18062
+#: doc/guix.texi:19818
 msgid "Data type representing the Knot configuration.  This type has the following parameters:"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:18064
+#: doc/guix.texi:19820
 #, no-wrap
 msgid "@code{knot} (default: @code{knot})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:18066
+#: doc/guix.texi:19822
 msgid "The Knot package."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:18067
+#: doc/guix.texi:19823
 #, no-wrap
 msgid "@code{run-directory} (default: @code{\"/var/run/knot\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:18069
+#: doc/guix.texi:19825
 msgid "The run directory.  This directory will be used for pid file and sockets."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:18070
+#: doc/guix.texi:19826
 #, no-wrap
 msgid "@code{listen-v4} (default: @code{\"0.0.0.0\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:18072 doc/guix.texi:18075
+#: doc/guix.texi:19828 doc/guix.texi:19831
 msgid "An ip address on which to listen."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:18073
+#: doc/guix.texi:19829
 #, no-wrap
 msgid "@code{listen-v6} (default: @code{\"::\"})"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:18076
+#: doc/guix.texi:19832
 #, no-wrap
 msgid "@code{listen-port} (default: @code{53})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:18078
+#: doc/guix.texi:19834
 msgid "A port on which to listen."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:18079
+#: doc/guix.texi:19835
 #, no-wrap
 msgid "@code{keys} (default: @code{'()})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:18081
+#: doc/guix.texi:19837
 msgid "The list of knot-key-configuration used by this configuration."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:18082
+#: doc/guix.texi:19838
 #, no-wrap
 msgid "@code{acls} (default: @code{'()})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:18084
+#: doc/guix.texi:19840
 msgid "The list of knot-acl-configuration used by this configuration."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:18085
+#: doc/guix.texi:19841
 #, no-wrap
 msgid "@code{remotes} (default: @code{'()})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:18087
+#: doc/guix.texi:19843
 msgid "The list of knot-remote-configuration used by this configuration."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:18088
+#: doc/guix.texi:19844
 #, no-wrap
 msgid "@code{zones} (default: @code{'()})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:18090
+#: doc/guix.texi:19846
 msgid "The list of knot-zone-configuration used by this configuration."
 msgstr ""
 
 #. type: subsubheading
-#: doc/guix.texi:18094
+#: doc/guix.texi:19850
 #, no-wrap
 msgid "Dnsmasq Service"
 msgstr "Dnsmasq-Dienst"
 
 #. type: deffn
-#: doc/guix.texi:18096
+#: doc/guix.texi:19852
 #, no-wrap
 msgid "{Scheme Variable} dnsmasq-service-type"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:18099
+#: doc/guix.texi:19855
 msgid "This is the type of the dnsmasq service, whose value should be an @code{dnsmasq-configuration} object as in this example:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:18105
+#: doc/guix.texi:19861
 #, no-wrap
 msgid ""
 "(service dnsmasq-service-type\n"
@@ -33191,1164 +36999,1158 @@ msgid ""
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:18108
+#: doc/guix.texi:19864
 #, no-wrap
 msgid "{Data Type} dnsmasq-configuration"
 msgstr "{Datentyp} dnsmasq-configuration"
 
 #. type: deftp
-#: doc/guix.texi:18110
+#: doc/guix.texi:19866
 msgid "Data type representing the configuration of dnsmasq."
 msgstr "Repräsentiert die dnsmasq-Konfiguration."
 
 #. type: item
-#: doc/guix.texi:18112
+#: doc/guix.texi:19868
 #, no-wrap
 msgid "@code{package} (default: @var{dnsmasq})"
 msgstr "@code{package} (Vorgabe: @var{dnsmasq})"
 
 #. type: table
-#: doc/guix.texi:18114
+#: doc/guix.texi:19870
 msgid "Package object of the dnsmasq server."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:18115
+#: doc/guix.texi:19871
 #, no-wrap
 msgid "@code{no-hosts?} (default: @code{#f})"
 msgstr "@code{no-hosts?} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:18117
+#: doc/guix.texi:19873
 msgid "When true, don't read the hostnames in /etc/hosts."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:18118
+#: doc/guix.texi:19874
 #, no-wrap
 msgid "@code{port} (default: @code{53})"
 msgstr "@code{port} (Vorgabe: @code{53})"
 
 #. type: table
-#: doc/guix.texi:18121
+#: doc/guix.texi:19877
 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:18122
+#: doc/guix.texi:19878
 #, no-wrap
 msgid "@code{local-service?} (default: @code{#t})"
 msgstr "@code{local-service?} (Vorgabe: @code{#t})"
 
 #. type: table
-#: doc/guix.texi:18125
+#: doc/guix.texi:19881
 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:18126
+#: doc/guix.texi:19882
 #, no-wrap
 msgid "@code{listen-addresses} (default: @code{'()})"
 msgstr "@code{listen-addresses} (Vorgabe: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:18128
+#: doc/guix.texi:19884
 msgid "Listen on the given IP addresses."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:18129
+#: doc/guix.texi:19885
 #, 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:18131
+#: doc/guix.texi:19887
 msgid "The file to read the IP address of the upstream nameservers from."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:18132
+#: doc/guix.texi:19888
 #, no-wrap
 msgid "@code{no-resolv?} (default: @code{#f})"
 msgstr "@code{no-resolv?} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:18134
+#: doc/guix.texi:19890
 msgid "When true, don't read @var{resolv-file}."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:18137
+#: doc/guix.texi:19893
 msgid "Specify IP address of upstream servers directly."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:18138
+#: doc/guix.texi:19894
 #, no-wrap
 msgid "@code{cache-size} (default: @code{150})"
 msgstr "@code{cache-size} (Vorgabe: @code{150})"
 
 #. type: table
-#: doc/guix.texi:18141
+#: doc/guix.texi:19897
 msgid "Set the size of dnsmasq's cache.  Setting the cache size to zero disables caching."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:18142
+#: doc/guix.texi:19898
 #, no-wrap
 msgid "@code{negative-cache?} (default: @code{#t})"
 msgstr "@code{negative-cache?} (Vorgabe: @code{#t})"
 
 #. type: table
-#: doc/guix.texi:18144
+#: doc/guix.texi:19900
 msgid "When false, disable negative caching."
 msgstr ""
 
 #. type: subsubheading
-#: doc/guix.texi:18148
+#: doc/guix.texi:19904
 #, no-wrap
 msgid "ddclient Service"
 msgstr "ddclient-Dienst"
 
 #. type: cindex
-#: doc/guix.texi:18150
+#: doc/guix.texi:19906
 #, no-wrap
 msgid "ddclient"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:18154
+#: doc/guix.texi:19910
 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:18157
+#: doc/guix.texi:19913
 msgid "The following example show instantiates the service with its default configuration:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:18160
+#: doc/guix.texi:19916
 #, no-wrap
 msgid "(service ddclient-service-type)\n"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:18169
+#: doc/guix.texi:19925
 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:18173
+#: doc/guix.texi:19929
 msgid "Available @code{ddclient-configuration} fields are:"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18174
+#: doc/guix.texi:19930
 #, no-wrap
 msgid "{@code{ddclient-configuration} parameter} package ddclient"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18176
+#: doc/guix.texi:19932
 msgid "The ddclient package."
 msgstr "Das ddclient-Paket."
 
 #. type: deftypevr
-#: doc/guix.texi:18179
+#: doc/guix.texi:19935
 #, no-wrap
 msgid "{@code{ddclient-configuration} parameter} integer daemon"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18181
+#: doc/guix.texi:19937
 msgid "The period after which ddclient will retry to check IP and domain name."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18186
+#: doc/guix.texi:19942
 #, no-wrap
 msgid "{@code{ddclient-configuration} parameter} boolean syslog"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18188
+#: doc/guix.texi:19944
 msgid "Use syslog for the output."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18193
+#: doc/guix.texi:19949
 #, no-wrap
 msgid "{@code{ddclient-configuration} parameter} string mail"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18195
+#: doc/guix.texi:19951
 msgid "Mail to user."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18197 doc/guix.texi:18204 doc/guix.texi:19532
+#: doc/guix.texi:19953 doc/guix.texi:19960 doc/guix.texi:21297
 msgid "Defaults to @samp{\"root\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18200
+#: doc/guix.texi:19956
 #, no-wrap
 msgid "{@code{ddclient-configuration} parameter} string mail-failure"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18202
+#: doc/guix.texi:19958
 msgid "Mail failed update to user."
 msgstr "Den Nutzer per Mail bei fehlgeschlagenen Aktualisierungen benachrichtigen."
 
 #. type: deftypevr
-#: doc/guix.texi:18207
+#: doc/guix.texi:19963
 #, no-wrap
 msgid "{@code{ddclient-configuration} parameter} string pid"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18209
+#: doc/guix.texi:19965
 msgid "The ddclient PID file."
 msgstr "PID-Datei für den ddclient."
 
 #. type: deftypevr
-#: doc/guix.texi:18211
+#: doc/guix.texi:19967
 msgid "Defaults to @samp{\"/var/run/ddclient/ddclient.pid\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18214
+#: doc/guix.texi:19970
 #, no-wrap
 msgid "{@code{ddclient-configuration} parameter} boolean ssl"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18216
+#: doc/guix.texi:19972
 msgid "Enable SSL support."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18221
+#: doc/guix.texi:19977
 #, no-wrap
 msgid "{@code{ddclient-configuration} parameter} string user"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18224
+#: doc/guix.texi:19980
 msgid "Specifies the user name or ID that is used when running ddclient program."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18226 doc/guix.texi:18233
+#: doc/guix.texi:19982 doc/guix.texi:19989
 msgid "Defaults to @samp{\"ddclient\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18229
+#: doc/guix.texi:19985
 #, no-wrap
 msgid "{@code{ddclient-configuration} parameter} string group"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18231
+#: doc/guix.texi:19987
 msgid "Group of the user who will run the ddclient program."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18236
+#: doc/guix.texi:19992
 #, no-wrap
 msgid "{@code{ddclient-configuration} parameter} string secret-file"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18240
+#: doc/guix.texi:19996
 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:18242
+#: doc/guix.texi:19998
 msgid "Defaults to @samp{\"/etc/ddclient/secrets.conf\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18245
+#: doc/guix.texi:20001
 #, no-wrap
 msgid "{@code{ddclient-configuration} parameter} list extra-options"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18247
+#: doc/guix.texi:20003
 msgid "Extra options will be appended to @file{ddclient.conf} file."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:18258
+#: doc/guix.texi:20014
 #, no-wrap
 msgid "VPN (virtual private network)"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:18259
+#: doc/guix.texi:20015
 #, no-wrap
 msgid "virtual private network (VPN)"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:18265
+#: doc/guix.texi:20021
 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{servire} service for your machine to host a VPN.  Both services use @uref{https://openvpn.net/, OpenVPN}."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:18266
+#: doc/guix.texi:20022
 #, no-wrap
 msgid "{Scheme Procedure} openvpn-client-service @"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:18268
+#: doc/guix.texi:20024
 msgid "[#:config (openvpn-client-configuration)]"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:18270
+#: doc/guix.texi:20026
 msgid "Return a service that runs @command{openvpn}, a VPN daemon, as a client."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:18272
+#: doc/guix.texi:20028
 #, no-wrap
 msgid "{Scheme Procedure} openvpn-server-service @"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:18274
+#: doc/guix.texi:20030
 msgid "[#:config (openvpn-server-configuration)]"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:18276
+#: doc/guix.texi:20032
 msgid "Return a service that runs @command{openvpn}, a VPN daemon, as a server."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:18278
+#: doc/guix.texi:20034
 msgid "Both can be run simultaneously."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:18283
+#: doc/guix.texi:20039
 msgid "Available @code{openvpn-client-configuration} fields are:"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18284
+#: doc/guix.texi:20040
 #, no-wrap
 msgid "{@code{openvpn-client-configuration} parameter} package openvpn"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18286 doc/guix.texi:18422
+#: doc/guix.texi:20042 doc/guix.texi:20178
 msgid "The OpenVPN package."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18289
+#: doc/guix.texi:20045
 #, no-wrap
 msgid "{@code{openvpn-client-configuration} parameter} string pid-file"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18291 doc/guix.texi:18427
+#: doc/guix.texi:20047 doc/guix.texi:20183
 msgid "The OpenVPN pid file."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18293 doc/guix.texi:18429
+#: doc/guix.texi:20049 doc/guix.texi:20185
 msgid "Defaults to @samp{\"/var/run/openvpn/openvpn.pid\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18296
+#: doc/guix.texi:20052
 #, no-wrap
 msgid "{@code{openvpn-client-configuration} parameter} proto proto"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18299 doc/guix.texi:18435
+#: doc/guix.texi:20055 doc/guix.texi:20191
 msgid "The protocol (UDP or TCP) used to open a channel between clients and servers."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18301 doc/guix.texi:18437
+#: doc/guix.texi:20057 doc/guix.texi:20193
 msgid "Defaults to @samp{udp}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18304
+#: doc/guix.texi:20060
 #, no-wrap
 msgid "{@code{openvpn-client-configuration} parameter} dev dev"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18306 doc/guix.texi:18442
+#: doc/guix.texi:20062 doc/guix.texi:20198
 msgid "The device type used to represent the VPN connection."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18308 doc/guix.texi:18444
+#: doc/guix.texi:20064 doc/guix.texi:20200
 msgid "Defaults to @samp{tun}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18311
+#: doc/guix.texi:20067
 #, no-wrap
 msgid "{@code{openvpn-client-configuration} parameter} string ca"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18313 doc/guix.texi:18449
+#: doc/guix.texi:20069 doc/guix.texi:20205
 msgid "The certificate authority to check connections against."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18315 doc/guix.texi:18451
+#: doc/guix.texi:20071 doc/guix.texi:20207
 msgid "Defaults to @samp{\"/etc/openvpn/ca.crt\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18318
+#: doc/guix.texi:20074
 #, no-wrap
 msgid "{@code{openvpn-client-configuration} parameter} string cert"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18321 doc/guix.texi:18457
+#: doc/guix.texi:20077 doc/guix.texi:20213
 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:18323 doc/guix.texi:18459
+#: doc/guix.texi:20079 doc/guix.texi:20215
 msgid "Defaults to @samp{\"/etc/openvpn/client.crt\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18326
+#: doc/guix.texi:20082
 #, no-wrap
 msgid "{@code{openvpn-client-configuration} parameter} string key"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18329 doc/guix.texi:18465
+#: doc/guix.texi:20085 doc/guix.texi:20221
 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:18331 doc/guix.texi:18467
+#: doc/guix.texi:20087 doc/guix.texi:20223
 msgid "Defaults to @samp{\"/etc/openvpn/client.key\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18334
+#: doc/guix.texi:20090
 #, no-wrap
 msgid "{@code{openvpn-client-configuration} parameter} boolean comp-lzo?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18336 doc/guix.texi:18472
+#: doc/guix.texi:20092 doc/guix.texi:20228
 msgid "Whether to use the lzo compression algorithm."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18341
+#: doc/guix.texi:20097
 #, no-wrap
 msgid "{@code{openvpn-client-configuration} parameter} boolean persist-key?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18343 doc/guix.texi:18479
+#: doc/guix.texi:20099 doc/guix.texi:20235
 msgid "Don't re-read key files across SIGUSR1 or --ping-restart."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18348
+#: doc/guix.texi:20104
 #, no-wrap
 msgid "{@code{openvpn-client-configuration} parameter} boolean persist-tun?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18351 doc/guix.texi:18487
+#: doc/guix.texi:20107 doc/guix.texi:20243
 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:18356
+#: doc/guix.texi:20112
 #, no-wrap
 msgid "{@code{openvpn-client-configuration} parameter} number verbosity"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18358 doc/guix.texi:18494
+#: doc/guix.texi:20114 doc/guix.texi:20250
 msgid "Verbosity level."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18360 doc/guix.texi:18496 doc/guix.texi:19800
-#: doc/guix.texi:20023
+#: doc/guix.texi:20116 doc/guix.texi:20252 doc/guix.texi:21565
+#: doc/guix.texi:21788
 msgid "Defaults to @samp{3}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18363
+#: doc/guix.texi:20119
 #, no-wrap
 msgid "{@code{openvpn-client-configuration} parameter} tls-auth-client tls-auth"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18366 doc/guix.texi:18502
+#: doc/guix.texi:20122 doc/guix.texi:20258
 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:18371
+#: doc/guix.texi:20127
 #, no-wrap
 msgid "{@code{openvpn-client-configuration} parameter} key-usage verify-key-usage?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18373
+#: doc/guix.texi:20129
 msgid "Whether to check the server certificate has server usage extension."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18378
+#: doc/guix.texi:20134
 #, no-wrap
 msgid "{@code{openvpn-client-configuration} parameter} bind bind?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18380
+#: doc/guix.texi:20136
 msgid "Bind to a specific local port number."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18385
+#: doc/guix.texi:20141
 #, no-wrap
 msgid "{@code{openvpn-client-configuration} parameter} resolv-retry resolv-retry?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18387
+#: doc/guix.texi:20143
 msgid "Retry resolving server address."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18392
+#: doc/guix.texi:20148
 #, no-wrap
 msgid "{@code{openvpn-client-configuration} parameter} openvpn-remote-list remote"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18394
+#: doc/guix.texi:20150
 msgid "A list of remote servers to connect to."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18398
+#: doc/guix.texi:20154
 msgid "Available @code{openvpn-remote-configuration} fields are:"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18399
+#: doc/guix.texi:20155
 #, no-wrap
 msgid "{@code{openvpn-remote-configuration} parameter} string name"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18401
+#: doc/guix.texi:20157
 msgid "Server name."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18403
+#: doc/guix.texi:20159
 msgid "Defaults to @samp{\"my-server\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18406
+#: doc/guix.texi:20162
 #, no-wrap
 msgid "{@code{openvpn-remote-configuration} parameter} number port"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18408
+#: doc/guix.texi:20164
 msgid "Port number the server listens to."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18410 doc/guix.texi:18511
+#: doc/guix.texi:20166 doc/guix.texi:20267
 msgid "Defaults to @samp{1194}."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:18419
+#: doc/guix.texi:20175
 msgid "Available @code{openvpn-server-configuration} fields are:"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18420
+#: doc/guix.texi:20176
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} package openvpn"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18425
+#: doc/guix.texi:20181
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} string pid-file"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18432
+#: doc/guix.texi:20188
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} proto proto"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18440
+#: doc/guix.texi:20196
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} dev dev"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18447
+#: doc/guix.texi:20203
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} string ca"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18454
+#: doc/guix.texi:20210
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} string cert"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18462
+#: doc/guix.texi:20218
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} string key"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18470
+#: doc/guix.texi:20226
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} boolean comp-lzo?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18477
+#: doc/guix.texi:20233
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} boolean persist-key?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18484
+#: doc/guix.texi:20240
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} boolean persist-tun?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18492
+#: doc/guix.texi:20248
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} number verbosity"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18499
+#: doc/guix.texi:20255
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} tls-auth-server tls-auth"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18507
+#: doc/guix.texi:20263
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} number port"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18509
+#: doc/guix.texi:20265
 msgid "Specifies the port number on which the server listens."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18514
+#: doc/guix.texi:20270
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} ip-mask server"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18516
+#: doc/guix.texi:20272
 msgid "An ip and mask specifying the subnet inside the virtual network."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18518
+#: doc/guix.texi:20274
 msgid "Defaults to @samp{\"10.8.0.0 255.255.255.0\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18521
+#: doc/guix.texi:20277
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} cidr6 server-ipv6"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18523
+#: doc/guix.texi:20279
 msgid "A CIDR notation specifying the IPv6 subnet inside the virtual network."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18528
+#: doc/guix.texi:20284
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} string dh"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18530
+#: doc/guix.texi:20286
 msgid "The Diffie-Hellman parameters file."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18532
+#: doc/guix.texi:20288
 msgid "Defaults to @samp{\"/etc/openvpn/dh2048.pem\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18535
+#: doc/guix.texi:20291
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} string ifconfig-pool-persist"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18537
+#: doc/guix.texi:20293
 msgid "The file that records client IPs."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18539
+#: doc/guix.texi:20295
 msgid "Defaults to @samp{\"/etc/openvpn/ipp.txt\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18542
+#: doc/guix.texi:20298
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} gateway redirect-gateway?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18544
+#: doc/guix.texi:20300
 msgid "When true, the server will act as a gateway for its clients."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18549
+#: doc/guix.texi:20305
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} boolean client-to-client?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18551
+#: doc/guix.texi:20307
 msgid "When true, clients are allowed to talk to each other inside the VPN."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18556
+#: doc/guix.texi:20312
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} keepalive keepalive"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18562
+#: doc/guix.texi:20318
 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:18565
+#: doc/guix.texi:20321
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} number max-clients"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18567
+#: doc/guix.texi:20323
 msgid "The maximum number of clients."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18572
+#: doc/guix.texi:20328
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} string status"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18575
+#: doc/guix.texi:20331
 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:18577
+#: doc/guix.texi:20333
 msgid "Defaults to @samp{\"/var/run/openvpn/status\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18580
+#: doc/guix.texi:20336
 #, no-wrap
 msgid "{@code{openvpn-server-configuration} parameter} openvpn-ccd-list client-config-dir"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18582
+#: doc/guix.texi:20338
 msgid "The list of configuration for some clients."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18586
+#: doc/guix.texi:20342
 msgid "Available @code{openvpn-ccd-configuration} fields are:"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18587
+#: doc/guix.texi:20343
 #, no-wrap
 msgid "{@code{openvpn-ccd-configuration} parameter} string name"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18589
+#: doc/guix.texi:20345
 msgid "Client name."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18591
+#: doc/guix.texi:20347
 msgid "Defaults to @samp{\"client\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18594
+#: doc/guix.texi:20350
 #, no-wrap
 msgid "{@code{openvpn-ccd-configuration} parameter} ip-mask iroute"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18596
+#: doc/guix.texi:20352
 msgid "Client own network"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18601
+#: doc/guix.texi:20357
 #, no-wrap
 msgid "{@code{openvpn-ccd-configuration} parameter} ip-mask ifconfig-push"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18603
+#: doc/guix.texi:20359
 msgid "Client VPN IP."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:18616
+#: doc/guix.texi:20372
 #, no-wrap
 msgid "NFS"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:18621
+#: doc/guix.texi:20377
 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: subsubheading
-#: doc/guix.texi:18622
+#: doc/guix.texi:20378
 #, no-wrap
 msgid "RPC Bind Service"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:18623
+#: doc/guix.texi:20379
 #, no-wrap
 msgid "rpcbind"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:18629
+#: doc/guix.texi:20385
 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:18630
+#: doc/guix.texi:20386
 #, no-wrap
 msgid "{Scheme Variable} rpcbind-service-type"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:18632
+#: doc/guix.texi:20388
 msgid "A service type for the RPC portmapper daemon."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:18635
+#: doc/guix.texi:20391
 #, no-wrap
 msgid "{Data Type} rpcbind-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:18638
+#: doc/guix.texi:20394
 msgid "Data type representing the configuration of the RPC Bind Service.  This type has the following parameters:"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:18639
+#: doc/guix.texi:20395
 #, no-wrap
 msgid "@code{rpcbind} (default: @code{rpcbind})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:18641
+#: doc/guix.texi:20397
 msgid "The rpcbind package to use."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:18642
+#: doc/guix.texi:20398
 #, no-wrap
 msgid "@code{warm-start?} (default: @code{#t})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:18646
+#: doc/guix.texi:20402
 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:18650
+#: doc/guix.texi:20406
 #, no-wrap
 msgid "Pipefs Pseudo File System"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:18651
+#: doc/guix.texi:20407
 #, no-wrap
 msgid "pipefs"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:18652
+#: doc/guix.texi:20408
 #, no-wrap
 msgid "rpc_pipefs"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:18656
+#: doc/guix.texi:20412
 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:18657
+#: doc/guix.texi:20413
 #, no-wrap
 msgid "{Scheme Variable} pipefs-service-type"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:18659
+#: doc/guix.texi:20415
 msgid "A service type for the pipefs pseudo file system."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:18661
+#: doc/guix.texi:20417
 #, no-wrap
 msgid "{Data Type} pipefs-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:18664
+#: doc/guix.texi:20420
 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:18665
+#: doc/guix.texi:20421
 #, no-wrap
 msgid "@code{mount-point} (default: @code{\"/var/lib/nfs/rpc_pipefs\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:18667
+#: doc/guix.texi:20423
 msgid "The directory to which the file system is to be attached."
 msgstr ""
 
 #. type: subsubheading
-#: doc/guix.texi:18671
+#: doc/guix.texi:20427
 #, no-wrap
 msgid "GSS Daemon Service"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:18672
+#: doc/guix.texi:20428
 #, no-wrap
 msgid "GSSD"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:18673
+#: doc/guix.texi:20429
 #, no-wrap
 msgid "GSS"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:18674
+#: doc/guix.texi:20430
 #, no-wrap
 msgid "global security system"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:18681
+#: doc/guix.texi:20437
 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:18682
+#: doc/guix.texi:20438
 #, no-wrap
 msgid "{Scheme Variable} gss-service-type"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:18684
+#: doc/guix.texi:20440
 msgid "A service type for the Global Security System (GSS) daemon."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:18686
+#: doc/guix.texi:20442
 #, no-wrap
 msgid "{Data Type} gss-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:18689
+#: doc/guix.texi:20445
 msgid "Data type representing the configuration of the GSS daemon service.  This type has the following parameters:"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:18690 doc/guix.texi:18715
+#: doc/guix.texi:20446 doc/guix.texi:20471
 #, no-wrap
 msgid "@code{nfs-utils} (default: @code{nfs-utils})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:18692
+#: doc/guix.texi:20448
 msgid "The package in which the @command{rpc.gssd} command is to be found."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:18693 doc/guix.texi:18718
+#: doc/guix.texi:20449 doc/guix.texi:20474
 #, no-wrap
 msgid "@code{pipefs-directory} (default: @code{\"/var/lib/nfs/rpc_pipefs\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:18695 doc/guix.texi:18720
+#: doc/guix.texi:20451 doc/guix.texi:20476
 msgid "The directory where the pipefs file system is mounted."
 msgstr ""
 
 #. type: subsubheading
-#: doc/guix.texi:18700
+#: doc/guix.texi:20456
 #, no-wrap
 msgid "IDMAP Daemon Service"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:18701
+#: doc/guix.texi:20457
 #, no-wrap
 msgid "idmapd"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:18702
+#: doc/guix.texi:20458
 #, no-wrap
 msgid "name mapper"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:18706
+#: doc/guix.texi:20462
 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:18707
+#: doc/guix.texi:20463
 #, no-wrap
 msgid "{Scheme Variable} idmap-service-type"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:18709
+#: doc/guix.texi:20465
 msgid "A service type for the Identity Mapper (IDMAP) daemon."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:18711
+#: doc/guix.texi:20467
 #, no-wrap
 msgid "{Data Type} idmap-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:18714
+#: doc/guix.texi:20470
 msgid "Data type representing the configuration of the IDMAP daemon service.  This type has the following parameters:"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:18717
+#: doc/guix.texi:20473
 msgid "The package in which the @command{rpc.idmapd} command is to be found."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:18721
+#: doc/guix.texi:20477
 #, no-wrap
 msgid "@code{domain} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:18725
+#: doc/guix.texi:20481
 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: cindex
-#: doc/guix.texi:18732
-#, no-wrap
-msgid "continuous integration"
-msgstr ""
-
 #. type: Plain text
-#: doc/guix.texi:18736
+#: doc/guix.texi:20492
 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:18738
+#: doc/guix.texi:20494
 msgid "The @code{(gnu services cuirass)} module provides the following service."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:18739
+#: doc/guix.texi:20495
 #, no-wrap
 msgid "{Scheme Procedure} cuirass-service-type"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:18742
+#: doc/guix.texi:20498
 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:18749
+#: doc/guix.texi:20505
 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 ""
 
 #. type: example
-#: doc/guix.texi:18777
+#: doc/guix.texi:20533
 #, no-wrap
 msgid ""
 "(define %cuirass-specs\n"
@@ -34381,7 +38183,7 @@ msgid ""
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:18781
+#: doc/guix.texi:20537
 #, no-wrap
 msgid ""
 "(service cuirass-service-type\n"
@@ -34390,1119 +38192,1105 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:18786
+#: doc/guix.texi:20542
 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:18787
+#: doc/guix.texi:20543
 #, no-wrap
 msgid "{Data Type} cuirass-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:18789
+#: doc/guix.texi:20545
 msgid "Data type representing the configuration of Cuirass."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:18791
+#: doc/guix.texi:20547
 #, no-wrap
 msgid "@code{log-file} (default: @code{\"/var/log/cuirass.log\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:18793
+#: doc/guix.texi:20549
 msgid "Location of the log file."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:18794
+#: doc/guix.texi:20550
 #, no-wrap
 msgid "@code{cache-directory} (default: @code{\"/var/cache/cuirass\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:18796
+#: doc/guix.texi:20552
 msgid "Location of the repository cache."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:18797
+#: doc/guix.texi:20553
 #, no-wrap
 msgid "@code{user} (default: @code{\"cuirass\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:18799
+#: doc/guix.texi:20555
 msgid "Owner of the @code{cuirass} process."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:18800
+#: doc/guix.texi:20556
 #, no-wrap
 msgid "@code{group} (default: @code{\"cuirass\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:18802
+#: doc/guix.texi:20558
 msgid "Owner's group of the @code{cuirass} process."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:18803
+#: doc/guix.texi:20559
 #, no-wrap
 msgid "@code{interval} (default: @code{60})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:18806
+#: doc/guix.texi:20562
 msgid "Number of seconds between the poll of the repositories followed by the Cuirass jobs."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:18807
+#: doc/guix.texi:20563
 #, 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:18810
+#: doc/guix.texi:20566
 msgid "Location of sqlite database which contains the build results and previously added specifications."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:18811
+#: doc/guix.texi:20567
 #, no-wrap
 msgid "@code{ttl} (default: @code{(* 30 24 3600)})"
 msgstr "@code{ttl} (Vorgabe: @code{(* 30 24 3600)})"
 
 #. type: table
-#: doc/guix.texi:18815
+#: doc/guix.texi:20571
 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:18816
+#: doc/guix.texi:20572
 #, no-wrap
 msgid "@code{port} (default: @code{8081})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:18818
+#: doc/guix.texi:20574
 msgid "Port number used by the HTTP server."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:18822
+#: doc/guix.texi:20578
 msgid "Listen on the network interface for @var{host}.  The default is to accept connections from localhost."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:18823
+#: doc/guix.texi:20579
 #, no-wrap
 msgid "@code{specifications} (default: @code{#~'()})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:18829
+#: doc/guix.texi:20585
 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:18830
+#: doc/guix.texi:20586
 #, no-wrap
 msgid "@code{use-substitutes?} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:18833
+#: doc/guix.texi:20589
 msgid "This allows using substitutes to avoid building every dependencies of a job from source."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:18834
+#: doc/guix.texi:20590 doc/guix.texi:25129
 #, no-wrap
 msgid "@code{one-shot?} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:18836
+#: doc/guix.texi:20592
 msgid "Only evaluate specifications and build derivations once."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:18837
+#: doc/guix.texi:20593
 #, no-wrap
 msgid "@code{fallback?} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:18840
+#: doc/guix.texi:20596
 msgid "When substituting a pre-built binary fails, fall back to building packages locally."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:18841
+#: doc/guix.texi:20597
 #, no-wrap
 msgid "@code{cuirass} (default: @code{cuirass})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:18843
+#: doc/guix.texi:20599
 msgid "The Cuirass package to use."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:18849
+#: doc/guix.texi:20605
 #, no-wrap
 msgid "tlp"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:18850
+#: doc/guix.texi:20606
 #, no-wrap
 msgid "power management with TLP"
 msgstr ""
 
 #. type: subsubheading
-#: doc/guix.texi:18851
+#: doc/guix.texi:20607
 #, no-wrap
 msgid "TLP daemon"
 msgstr "TLP-Daemon"
 
 #. type: Plain text
-#: doc/guix.texi:18855
+#: doc/guix.texi:20611
 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:18861
+#: doc/guix.texi:20617
 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{http://linrunner.de/en/tlp/tlp.html, TLP home page}."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:18862
+#: doc/guix.texi:20618
 #, no-wrap
 msgid "{Scheme Variable} tlp-service-type"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:18866
+#: doc/guix.texi:20622
 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 ""
 
 #. type: example
-#: doc/guix.texi:18868
+#: doc/guix.texi:20624
 #, no-wrap
 msgid "(service tlp-service-type)\n"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:18873
+#: doc/guix.texi:20629
 msgid "By default TLP does not need much configuration but most TLP parameters can be tweaked using @code{tlp-configuration}."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:18879
+#: doc/guix.texi:20635
 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:18889
+#: doc/guix.texi:20645
 msgid "Available @code{tlp-configuration} fields are:"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18890
+#: doc/guix.texi:20646
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} package tlp"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18892
+#: doc/guix.texi:20648
 msgid "The TLP package."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18895
+#: doc/guix.texi:20651
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} boolean tlp-enable?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18897
+#: doc/guix.texi:20653
 msgid "Set to true if you wish to enable TLP."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18902
+#: doc/guix.texi:20658
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} string tlp-default-mode"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18905
+#: doc/guix.texi:20661
 msgid "Default mode when no power supply can be detected.  Alternatives are AC and BAT."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18907
+#: doc/guix.texi:20663
 msgid "Defaults to @samp{\"AC\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18910
+#: doc/guix.texi:20666
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} non-negative-integer disk-idle-secs-on-ac"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18913
+#: doc/guix.texi:20669
 msgid "Number of seconds Linux kernel has to wait after the disk goes idle, before syncing on AC."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18918
+#: doc/guix.texi:20674
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} non-negative-integer disk-idle-secs-on-bat"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18920
+#: doc/guix.texi:20676
 msgid "Same as @code{disk-idle-ac} but on BAT mode."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18922
+#: doc/guix.texi:20678
 msgid "Defaults to @samp{2}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18925
+#: doc/guix.texi:20681
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} non-negative-integer max-lost-work-secs-on-ac"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18927
+#: doc/guix.texi:20683
 msgid "Dirty pages flushing periodicity, expressed in seconds."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18929 doc/guix.texi:19152 doc/guix.texi:20472
-#: doc/guix.texi:20480
+#: doc/guix.texi:20685 doc/guix.texi:20908 doc/guix.texi:22237
+#: doc/guix.texi:22245
 msgid "Defaults to @samp{15}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18932
+#: doc/guix.texi:20688
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} non-negative-integer max-lost-work-secs-on-bat"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18934
+#: doc/guix.texi:20690
 msgid "Same as @code{max-lost-work-secs-on-ac} but on BAT mode."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18936
+#: doc/guix.texi:20692
 msgid "Defaults to @samp{60}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18939
+#: doc/guix.texi:20695
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} maybe-space-separated-string-list cpu-scaling-governor-on-ac"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18943
+#: doc/guix.texi:20699
 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:18945 doc/guix.texi:18952 doc/guix.texi:18959
-#: doc/guix.texi:18966 doc/guix.texi:18973 doc/guix.texi:18980
-#: doc/guix.texi:18988 doc/guix.texi:18996 doc/guix.texi:19003
-#: doc/guix.texi:19010 doc/guix.texi:19017 doc/guix.texi:19024
-#: doc/guix.texi:19054 doc/guix.texi:19092 doc/guix.texi:19099
-#: doc/guix.texi:19108 doc/guix.texi:19130 doc/guix.texi:19138
-#: doc/guix.texi:19145 doc/guix.texi:19300 doc/guix.texi:19320
-#: doc/guix.texi:19335 doc/guix.texi:19342 doc/guix.texi:21131
-#: doc/guix.texi:21139 doc/guix.texi:21147 doc/guix.texi:21155
-#: doc/guix.texi:21163 doc/guix.texi:21171
-msgid "Defaults to @samp{disabled}."
-msgstr ""
-
-#. type: deftypevr
-#: doc/guix.texi:18948
+#: doc/guix.texi:20704
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} maybe-space-separated-string-list cpu-scaling-governor-on-bat"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18950
+#: doc/guix.texi:20706
 msgid "Same as @code{cpu-scaling-governor-on-ac} but on BAT mode."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18955
+#: doc/guix.texi:20711
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-scaling-min-freq-on-ac"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18957
+#: doc/guix.texi:20713
 msgid "Set the min available frequency for the scaling governor on AC."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18962
+#: doc/guix.texi:20718
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-scaling-max-freq-on-ac"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18964
+#: doc/guix.texi:20720
 msgid "Set the max available frequency for the scaling governor on AC."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18969
+#: doc/guix.texi:20725
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-scaling-min-freq-on-bat"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18971
+#: doc/guix.texi:20727
 msgid "Set the min available frequency for the scaling governor on BAT."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18976
+#: doc/guix.texi:20732
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-scaling-max-freq-on-bat"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18978
+#: doc/guix.texi:20734
 msgid "Set the max available frequency for the scaling governor on BAT."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18983
+#: doc/guix.texi:20739
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-min-perf-on-ac"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18986
+#: doc/guix.texi:20742
 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:18991
+#: doc/guix.texi:20747
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-max-perf-on-ac"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:18994
+#: doc/guix.texi:20750
 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:18999
+#: doc/guix.texi:20755
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-min-perf-on-bat"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19001
+#: doc/guix.texi:20757
 msgid "Same as @code{cpu-min-perf-on-ac} on BAT mode."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19006
+#: doc/guix.texi:20762
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-max-perf-on-bat"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19008
+#: doc/guix.texi:20764
 msgid "Same as @code{cpu-max-perf-on-ac} on BAT mode."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19013
+#: doc/guix.texi:20769
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} maybe-boolean cpu-boost-on-ac?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19015
+#: doc/guix.texi:20771
 msgid "Enable CPU turbo boost feature on AC mode."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19020
+#: doc/guix.texi:20776
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} maybe-boolean cpu-boost-on-bat?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19022
+#: doc/guix.texi:20778
 msgid "Same as @code{cpu-boost-on-ac?} on BAT mode."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19027
+#: doc/guix.texi:20783
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} boolean sched-powersave-on-ac?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19030
+#: doc/guix.texi:20786
 msgid "Allow Linux kernel to minimize the number of CPU cores/hyper-threads used under light load conditions."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19035
+#: doc/guix.texi:20791
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} boolean sched-powersave-on-bat?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19037
+#: doc/guix.texi:20793
 msgid "Same as @code{sched-powersave-on-ac?} but on BAT mode."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19042
+#: doc/guix.texi:20798
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} boolean nmi-watchdog?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19044
+#: doc/guix.texi:20800
 msgid "Enable Linux kernel NMI watchdog."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19049
+#: doc/guix.texi:20805
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} maybe-string phc-controls"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19052
+#: doc/guix.texi:20808
 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:19057
+#: doc/guix.texi:20813
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} string energy-perf-policy-on-ac"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19060
+#: doc/guix.texi:20816
 msgid "Set CPU performance versus energy saving policy on AC.  Alternatives are performance, normal, powersave."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19062 doc/guix.texi:19160 doc/guix.texi:19190
+#: doc/guix.texi:20818 doc/guix.texi:20916 doc/guix.texi:20946
 msgid "Defaults to @samp{\"performance\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19065
+#: doc/guix.texi:20821
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} string energy-perf-policy-on-bat"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19067
+#: doc/guix.texi:20823
 msgid "Same as @code{energy-perf-policy-ac} but on BAT mode."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19069 doc/guix.texi:19167
+#: doc/guix.texi:20825 doc/guix.texi:20923
 msgid "Defaults to @samp{\"powersave\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19072
+#: doc/guix.texi:20828
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} space-separated-string-list disks-devices"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19074
+#: doc/guix.texi:20830
 msgid "Hard disk devices."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19077
+#: doc/guix.texi:20833
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} space-separated-string-list disk-apm-level-on-ac"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19079
+#: doc/guix.texi:20835
 msgid "Hard disk advanced power management level."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19082
+#: doc/guix.texi:20838
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} space-separated-string-list disk-apm-level-on-bat"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19084
+#: doc/guix.texi:20840
 msgid "Same as @code{disk-apm-bat} but on BAT mode."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19087
+#: doc/guix.texi:20843
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} maybe-space-separated-string-list disk-spindown-timeout-on-ac"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19090
+#: doc/guix.texi:20846
 msgid "Hard disk spin down timeout.  One value has to be specified for each declared hard disk."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19095
+#: doc/guix.texi:20851
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} maybe-space-separated-string-list disk-spindown-timeout-on-bat"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19097
+#: doc/guix.texi:20853
 msgid "Same as @code{disk-spindown-timeout-on-ac} but on BAT mode."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19102
+#: doc/guix.texi:20858
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} maybe-space-separated-string-list disk-iosched"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19106
+#: doc/guix.texi:20862
 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:19111
+#: doc/guix.texi:20867
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} string sata-linkpwr-on-ac"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19114
+#: doc/guix.texi:20870
 msgid "SATA aggressive link power management (ALPM) level.  Alternatives are min_power, medium_power, max_performance."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19116
+#: doc/guix.texi:20872
 msgid "Defaults to @samp{\"max_performance\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19119
+#: doc/guix.texi:20875
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} string sata-linkpwr-on-bat"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19121
+#: doc/guix.texi:20877
 msgid "Same as @code{sata-linkpwr-ac} but on BAT mode."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19123
+#: doc/guix.texi:20879
 msgid "Defaults to @samp{\"min_power\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19126
+#: doc/guix.texi:20882
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} maybe-string sata-linkpwr-blacklist"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19128
+#: doc/guix.texi:20884
 msgid "Exclude specified SATA host devices for link power management."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19133
+#: doc/guix.texi:20889
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} maybe-on-off-boolean ahci-runtime-pm-on-ac?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19136
+#: doc/guix.texi:20892
 msgid "Enable Runtime Power Management for AHCI controller and disks on AC mode."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19141
+#: doc/guix.texi:20897
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} maybe-on-off-boolean ahci-runtime-pm-on-bat?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19143
+#: doc/guix.texi:20899
 msgid "Same as @code{ahci-runtime-pm-on-ac} on BAT mode."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19148
+#: doc/guix.texi:20904
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} non-negative-integer ahci-runtime-pm-timeout"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19150
+#: doc/guix.texi:20906
 msgid "Seconds of inactivity before disk is suspended."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19155
+#: doc/guix.texi:20911
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} string pcie-aspm-on-ac"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19158
+#: doc/guix.texi:20914
 msgid "PCI Express Active State Power Management level.  Alternatives are default, performance, powersave."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19163
+#: doc/guix.texi:20919
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} string pcie-aspm-on-bat"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19165
+#: doc/guix.texi:20921
 msgid "Same as @code{pcie-aspm-ac} but on BAT mode."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19170
+#: doc/guix.texi:20926
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} string radeon-power-profile-on-ac"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19173
+#: doc/guix.texi:20929
 msgid "Radeon graphics clock speed level.  Alternatives are low, mid, high, auto, default."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19175
+#: doc/guix.texi:20931
 msgid "Defaults to @samp{\"high\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19178
+#: doc/guix.texi:20934
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} string radeon-power-profile-on-bat"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19180
+#: doc/guix.texi:20936
 msgid "Same as @code{radeon-power-ac} but on BAT mode."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19182
+#: doc/guix.texi:20938
 msgid "Defaults to @samp{\"low\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19185
+#: doc/guix.texi:20941
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} string radeon-dpm-state-on-ac"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19188
+#: doc/guix.texi:20944
 msgid "Radeon dynamic power management method (DPM).  Alternatives are battery, performance."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19193
+#: doc/guix.texi:20949
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} string radeon-dpm-state-on-bat"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19195
+#: doc/guix.texi:20951
 msgid "Same as @code{radeon-dpm-state-ac} but on BAT mode."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19197
+#: doc/guix.texi:20953
 msgid "Defaults to @samp{\"battery\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19200
+#: doc/guix.texi:20956
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} string radeon-dpm-perf-level-on-ac"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19202
+#: doc/guix.texi:20958
 msgid "Radeon DPM performance level.  Alternatives are auto, low, high."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19204 doc/guix.texi:19211 doc/guix.texi:19285
+#: doc/guix.texi:20960 doc/guix.texi:20967 doc/guix.texi:21041
 msgid "Defaults to @samp{\"auto\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19207
+#: doc/guix.texi:20963
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} string radeon-dpm-perf-level-on-bat"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19209
+#: doc/guix.texi:20965
 msgid "Same as @code{radeon-dpm-perf-ac} but on BAT mode."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19214
+#: doc/guix.texi:20970
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} on-off-boolean wifi-pwr-on-ac?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19216
+#: doc/guix.texi:20972
 msgid "Wifi power saving mode."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19221
+#: doc/guix.texi:20977
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} on-off-boolean wifi-pwr-on-bat?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19223
+#: doc/guix.texi:20979
 msgid "Same as @code{wifi-power-ac?} but on BAT mode."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19228
+#: doc/guix.texi:20984
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} y-n-boolean wol-disable?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19230
+#: doc/guix.texi:20986
 msgid "Disable wake on LAN."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19235
+#: doc/guix.texi:20991
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} non-negative-integer sound-power-save-on-ac"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19238
+#: doc/guix.texi:20994
 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:19243
+#: doc/guix.texi:20999
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} non-negative-integer sound-power-save-on-bat"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19245
+#: doc/guix.texi:21001
 msgid "Same as @code{sound-powersave-ac} but on BAT mode."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19247 doc/guix.texi:19765 doc/guix.texi:19909
+#: doc/guix.texi:21003 doc/guix.texi:21530 doc/guix.texi:21674
 msgid "Defaults to @samp{1}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19250
+#: doc/guix.texi:21006
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} y-n-boolean sound-power-save-controller?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19252
+#: doc/guix.texi:21008
 msgid "Disable controller in powersaving mode on Intel HDA devices."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19257
+#: doc/guix.texi:21013
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} boolean bay-poweroff-on-bat?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19261
+#: doc/guix.texi:21017
 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:19266
+#: doc/guix.texi:21022
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} string bay-device"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19268
+#: doc/guix.texi:21024
 msgid "Name of the optical drive device to power off."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19270
+#: doc/guix.texi:21026
 msgid "Defaults to @samp{\"sr0\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19273
+#: doc/guix.texi:21029
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} string runtime-pm-on-ac"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19276
+#: doc/guix.texi:21032
 msgid "Runtime Power Management for PCI(e) bus devices.  Alternatives are on and auto."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19278
+#: doc/guix.texi:21034
 msgid "Defaults to @samp{\"on\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19281
+#: doc/guix.texi:21037
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} string runtime-pm-on-bat"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19283
+#: doc/guix.texi:21039
 msgid "Same as @code{runtime-pm-ac} but on BAT mode."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19288
+#: doc/guix.texi:21044
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} boolean runtime-pm-all?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19291
+#: doc/guix.texi:21047
 msgid "Runtime Power Management for all PCI(e) bus devices, except blacklisted ones."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19296
+#: doc/guix.texi:21052
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} maybe-space-separated-string-list runtime-pm-blacklist"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19298
+#: doc/guix.texi:21054
 msgid "Exclude specified PCI(e) device addresses from Runtime Power Management."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19303
+#: doc/guix.texi:21059
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} space-separated-string-list runtime-pm-driver-blacklist"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19306
+#: doc/guix.texi:21062
 msgid "Exclude PCI(e) devices assigned to the specified drivers from Runtime Power Management."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19309
+#: doc/guix.texi:21065
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} boolean usb-autosuspend?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19311
+#: doc/guix.texi:21067
 msgid "Enable USB autosuspend feature."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19316
+#: doc/guix.texi:21072
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} maybe-string usb-blacklist"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19318
+#: doc/guix.texi:21074
 msgid "Exclude specified devices from USB autosuspend."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19323
+#: doc/guix.texi:21079
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} boolean usb-blacklist-wwan?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19325
+#: doc/guix.texi:21081
 msgid "Exclude WWAN devices from USB autosuspend."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19330
+#: doc/guix.texi:21086
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} maybe-string usb-whitelist"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19333
+#: doc/guix.texi:21089
 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:19338
+#: doc/guix.texi:21094
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} maybe-boolean usb-autosuspend-disable-on-shutdown?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19340
+#: doc/guix.texi:21096
 msgid "Enable USB autosuspend before shutdown."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19345
+#: doc/guix.texi:21101
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} boolean restore-device-state-on-startup?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19348
+#: doc/guix.texi:21104
 msgid "Restore radio device state (bluetooth, wifi, wwan) from previous shutdown on system startup."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:19353
+#: doc/guix.texi:21109
 #, no-wrap
 msgid "thermald"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:19354
+#: doc/guix.texi:21110
 #, no-wrap
 msgid "CPU frequency scaling with thermald"
 msgstr ""
 
 #. type: subsubheading
-#: doc/guix.texi:19355
+#: doc/guix.texi:21111
 #, no-wrap
 msgid "Thermald daemon"
 msgstr "Thermald-Daemon"
 
 #. type: Plain text
-#: doc/guix.texi:19359
+#: doc/guix.texi:21115
 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:19360
+#: doc/guix.texi:21116
 #, no-wrap
 msgid "{Scheme Variable} thermald-service-type"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:19365
+#: doc/guix.texi:21121
 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:19367
+#: doc/guix.texi:21123
 #, no-wrap
 msgid "{Data Type} thermald-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:19369
+#: doc/guix.texi:21125
 msgid "Data type representing the configuration of @code{thermald-service-type}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:19371
+#: doc/guix.texi:21127
 #, no-wrap
 msgid "@code{ignore-cpuid-check?} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:19373
+#: doc/guix.texi:21129
 msgid "Ignore cpuid check for supported CPU models."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:19374
+#: doc/guix.texi:21130
 #, no-wrap
 msgid "@code{thermald} (default: @var{thermald})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:19376
+#: doc/guix.texi:21132
 msgid "Package object of thermald."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:19385
+#: doc/guix.texi:21141
 msgid "The @code{(gnu services audio)} module provides a service to start MPD (the Music Player Daemon)."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:19386
+#: doc/guix.texi:21142
 #, no-wrap
 msgid "mpd"
 msgstr ""
 
 #. type: subsubheading
-#: doc/guix.texi:19387
+#: doc/guix.texi:21143
 #, no-wrap
 msgid "Music Player Daemon"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:19392
+#: doc/guix.texi:21148
 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:19395
+#: doc/guix.texi:21151
 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: example
-#: doc/guix.texi:19401
+#: doc/guix.texi:21157
 #, no-wrap
 msgid ""
 "(service mpd-service-type\n"
@@ -35512,117 +39300,150 @@ msgid ""
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:19403
+#: doc/guix.texi:21159
 #, no-wrap
 msgid "{Scheme Variable} mpd-service-type"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:19405
+#: doc/guix.texi:21161
 msgid "The service type for @command{mpd}"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:19407
+#: doc/guix.texi:21163
 #, no-wrap
 msgid "{Data Type} mpd-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:19409
+#: doc/guix.texi:21165
 msgid "Data type representing the configuration of @command{mpd}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:19411
+#: doc/guix.texi:21167
 #, no-wrap
 msgid "@code{user} (default: @code{\"mpd\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:19413
+#: doc/guix.texi:21169
 msgid "The user to run mpd as."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:19414
+#: doc/guix.texi:21170
 #, no-wrap
 msgid "@code{music-dir} (default: @code{\"~/Music\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:19416
+#: doc/guix.texi:21172
 msgid "The directory to scan for music files."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:19417
+#: doc/guix.texi:21173
 #, no-wrap
 msgid "@code{playlist-dir} (default: @code{\"~/.mpd/playlists\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:19419
+#: doc/guix.texi:21175
 msgid "The directory to store playlists."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:19420
+#: doc/guix.texi:21176
+#, 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:21178
+msgid "The location of the music database."
+msgstr "Der Ort, an dem die Musikdatenbank gespeichert wird."
+
+#. type: item
+#: doc/guix.texi:21179
+#, no-wrap
+msgid "@code{state-file} (default: @code{\"~/.mpd/state\"})"
+msgstr "@code{state-file} (Vorgabe: @code{\"~/.mpd/state\"})"
+
+#. type: table
+#: doc/guix.texi:21181
+msgid "The location of the file that stores current MPD's state."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:21182
+#, 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:21184
+msgid "The location of the sticker database."
+msgstr "Der Ort, an dem die Sticker-Datenbank gespeichert wird."
+
+#. type: item
+#: doc/guix.texi:21185
 #, no-wrap
 msgid "@code{port} (default: @code{\"6600\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:19422
+#: doc/guix.texi:21187
 msgid "The port to run mpd on."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:19423
+#: doc/guix.texi:21188
 #, no-wrap
 msgid "@code{address} (default: @code{\"any\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:19426
+#: doc/guix.texi:21191
 msgid "The address that mpd will bind to.  To use a Unix domain socket, an absolute path can be specified here."
 msgstr ""
 
-#. type: subsubsection
-#: doc/guix.texi:19431
+#. type: subsection
+#: doc/guix.texi:21196
 #, no-wrap
 msgid "Virtualization services"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:19436
+#: doc/guix.texi:21201
 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:19437
+#: doc/guix.texi:21202
 #, no-wrap
 msgid "Libvirt daemon"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:19441
+#: doc/guix.texi:21206
 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:19442
+#: doc/guix.texi:21207
 #, no-wrap
 msgid "{Scheme Variable} libvirt-service-type"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:19445
+#: doc/guix.texi:21210
 msgid "This is the type of the @uref{https://libvirt.org, libvirt daemon}.  Its value must be a @code{libvirt-configuration}."
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:19451
+#: doc/guix.texi:21216
 #, no-wrap
 msgid ""
 "(service libvirt-service-type\n"
@@ -35632,874 +39453,874 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:19456
+#: doc/guix.texi:21221
 msgid "Available @code{libvirt-configuration} fields are:"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19457
+#: doc/guix.texi:21222
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} package libvirt"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19459
+#: doc/guix.texi:21224
 msgid "Libvirt package."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19462
+#: doc/guix.texi:21227
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} boolean listen-tls?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19465
+#: doc/guix.texi:21230
 msgid "Flag listening for secure TLS connections on the public TCP/IP port.  must set @code{listen} for this to have any effect."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19468
+#: doc/guix.texi:21233
 msgid "It is necessary to setup a CA and issue server certificates before using this capability."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19473
+#: doc/guix.texi:21238
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} boolean listen-tcp?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19476
+#: doc/guix.texi:21241
 msgid "Listen for unencrypted TCP connections on the public TCP/IP port.  must set @code{listen} for this to have any effect."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19480
+#: doc/guix.texi:21245
 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:19485
+#: doc/guix.texi:21250
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} string tls-port"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19488
+#: doc/guix.texi:21253
 msgid "Port for accepting secure TLS connections This can be a port number, or service name"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19490
+#: doc/guix.texi:21255
 msgid "Defaults to @samp{\"16514\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19493
+#: doc/guix.texi:21258
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} string tcp-port"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19496
+#: doc/guix.texi:21261
 msgid "Port for accepting insecure TCP connections This can be a port number, or service name"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19498
+#: doc/guix.texi:21263
 msgid "Defaults to @samp{\"16509\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19501
+#: doc/guix.texi:21266
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} string listen-addr"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19503
+#: doc/guix.texi:21268
 msgid "IP address or hostname used for client connections."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19505
+#: doc/guix.texi:21270
 msgid "Defaults to @samp{\"0.0.0.0\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19508
+#: doc/guix.texi:21273
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} boolean mdns-adv?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19510
+#: doc/guix.texi:21275
 msgid "Flag toggling mDNS advertisement of the libvirt service."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19513
+#: doc/guix.texi:21278
 msgid "Alternatively can disable for all services on a host by stopping the Avahi daemon."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19518
+#: doc/guix.texi:21283
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} string mdns-name"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19521
+#: doc/guix.texi:21286
 msgid "Default mDNS advertisement name.  This must be unique on the immediate broadcast network."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19523
+#: doc/guix.texi:21288
 msgid "Defaults to @samp{\"Virtualization Host <hostname>\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19526
+#: doc/guix.texi:21291
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} string unix-sock-group"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19530
+#: doc/guix.texi:21295
 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:19535
+#: doc/guix.texi:21300
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} string unix-sock-ro-perms"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19538
+#: doc/guix.texi:21303
 msgid "UNIX socket permissions for the R/O socket.  This is used for monitoring VM status only."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19540 doc/guix.texi:19558
+#: doc/guix.texi:21305 doc/guix.texi:21323
 msgid "Defaults to @samp{\"0777\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19543
+#: doc/guix.texi:21308
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} string unix-sock-rw-perms"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19547
+#: doc/guix.texi:21312
 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:19549
+#: doc/guix.texi:21314
 msgid "Defaults to @samp{\"0770\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19552
+#: doc/guix.texi:21317
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} string unix-sock-admin-perms"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19556
+#: doc/guix.texi:21321
 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:19561
+#: doc/guix.texi:21326
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} string unix-sock-dir"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19563
+#: doc/guix.texi:21328
 msgid "The directory in which sockets will be found/created."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19565
+#: doc/guix.texi:21330
 msgid "Defaults to @samp{\"/var/run/libvirt\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19568
+#: doc/guix.texi:21333
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} string auth-unix-ro"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19571
+#: doc/guix.texi:21336
 msgid "Authentication scheme for UNIX read-only sockets.  By default socket permissions allow anyone to connect"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19573 doc/guix.texi:19582
+#: doc/guix.texi:21338 doc/guix.texi:21347
 msgid "Defaults to @samp{\"polkit\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19576
+#: doc/guix.texi:21341
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} string auth-unix-rw"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19580
+#: doc/guix.texi:21345
 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:19585
+#: doc/guix.texi:21350
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} string auth-tcp"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19589
+#: doc/guix.texi:21354
 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:19591
+#: doc/guix.texi:21356
 msgid "Defaults to @samp{\"sasl\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19594
+#: doc/guix.texi:21359
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} string auth-tls"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19598
+#: doc/guix.texi:21363
 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:19601
+#: doc/guix.texi:21366
 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:19603
+#: doc/guix.texi:21368
 msgid "Defaults to @samp{\"none\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19606
+#: doc/guix.texi:21371
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} optional-list access-drivers"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19608
+#: doc/guix.texi:21373
 msgid "API access control scheme."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19611
+#: doc/guix.texi:21376
 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:19616
+#: doc/guix.texi:21381
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} string key-file"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19619
+#: doc/guix.texi:21384
 msgid "Server key file path.  If set to an empty string, then no private key is loaded."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19624
+#: doc/guix.texi:21389
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} string cert-file"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19627
+#: doc/guix.texi:21392
 msgid "Server key file path.  If set to an empty string, then no certificate is loaded."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19632
+#: doc/guix.texi:21397
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} string ca-file"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19635
+#: doc/guix.texi:21400
 msgid "Server key file path.  If set to an empty string, then no CA certificate is loaded."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19640
+#: doc/guix.texi:21405
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} string crl-file"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19643
+#: doc/guix.texi:21408
 msgid "Certificate revocation list path.  If set to an empty string, then no CRL is loaded."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19648
+#: doc/guix.texi:21413
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} boolean tls-no-sanity-cert"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19650
+#: doc/guix.texi:21415
 msgid "Disable verification of our own server certificates."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19653
+#: doc/guix.texi:21418
 msgid "When libvirtd starts it performs some sanity checks against its own certificates."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19658
+#: doc/guix.texi:21423
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} boolean tls-no-verify-cert"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19660
+#: doc/guix.texi:21425
 msgid "Disable verification of client certificates."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19664
+#: doc/guix.texi:21429
 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:19669
+#: doc/guix.texi:21434
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} optional-list tls-allowed-dn-list"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19671
+#: doc/guix.texi:21436
 msgid "Whitelist of allowed x509 Distinguished Name."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19676
+#: doc/guix.texi:21441
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} optional-list sasl-allowed-usernames"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19679
+#: doc/guix.texi:21444
 msgid "Whitelist of allowed SASL usernames.  The format for username depends on the SASL authentication mechanism."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19684
+#: doc/guix.texi:21449
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} string tls-priority"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19688
+#: doc/guix.texi:21453
 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 ""
 
 #. type: deftypevr
-#: doc/guix.texi:19690
+#: doc/guix.texi:21455
 msgid "Defaults to @samp{\"NORMAL\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19693
+#: doc/guix.texi:21458
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} integer max-clients"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19696 doc/guix.texi:20119
+#: doc/guix.texi:21461 doc/guix.texi:21884
 msgid "Maximum number of concurrent client connections to allow over all sockets combined."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19698
+#: doc/guix.texi:21463
 msgid "Defaults to @samp{5000}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19701
+#: doc/guix.texi:21466
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} integer max-queued-clients"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19705
+#: doc/guix.texi:21470
 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:19710
+#: doc/guix.texi:21475
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} integer max-anonymous-clients"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19713
+#: doc/guix.texi:21478
 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:19715 doc/guix.texi:19733 doc/guix.texi:19749
+#: doc/guix.texi:21480 doc/guix.texi:21498 doc/guix.texi:21514
 msgid "Defaults to @samp{20}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19718
+#: doc/guix.texi:21483
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} integer min-workers"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19720
+#: doc/guix.texi:21485
 msgid "Number of workers to start up initially."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19725
+#: doc/guix.texi:21490
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} integer max-workers"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19727
+#: doc/guix.texi:21492
 msgid "Maximum number of worker threads."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19731
+#: doc/guix.texi:21496
 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:19736
+#: doc/guix.texi:21501
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} integer prio-workers"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19740
+#: doc/guix.texi:21505
 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:19745
+#: doc/guix.texi:21510
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} integer max-requests"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19747
+#: doc/guix.texi:21512
 msgid "Total global limit on concurrent RPC calls."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19752
+#: doc/guix.texi:21517
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} integer max-client-requests"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19756
+#: doc/guix.texi:21521
 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:19761
+#: doc/guix.texi:21526
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} integer admin-min-workers"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19763
+#: doc/guix.texi:21528
 msgid "Same as @code{min-workers} but for the admin interface."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19768
+#: doc/guix.texi:21533
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} integer admin-max-workers"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19770
+#: doc/guix.texi:21535
 msgid "Same as @code{max-workers} but for the admin interface."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19775
+#: doc/guix.texi:21540
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} integer admin-max-clients"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19777
+#: doc/guix.texi:21542
 msgid "Same as @code{max-clients} but for the admin interface."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19782
+#: doc/guix.texi:21547
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} integer admin-max-queued-clients"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19784
+#: doc/guix.texi:21549
 msgid "Same as @code{max-queued-clients} but for the admin interface."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19789
+#: doc/guix.texi:21554
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} integer admin-max-client-requests"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19791
+#: doc/guix.texi:21556
 msgid "Same as @code{max-client-requests} but for the admin interface."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19796
+#: doc/guix.texi:21561
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} integer log-level"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19798 doc/guix.texi:20021
+#: doc/guix.texi:21563 doc/guix.texi:21786
 msgid "Logging level.  4 errors, 3 warnings, 2 information, 1 debug."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19803
+#: doc/guix.texi:21568
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} string log-filters"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19805 doc/guix.texi:20028
+#: doc/guix.texi:21570 doc/guix.texi:21793
 msgid "Logging filters."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19808 doc/guix.texi:20031
+#: doc/guix.texi:21573 doc/guix.texi:21796
 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:19812 doc/guix.texi:20035
+#: doc/guix.texi:21577 doc/guix.texi:21800
 msgid "x:name"
 msgstr ""
 
 #. type: itemize
-#: doc/guix.texi:19815 doc/guix.texi:20038
+#: doc/guix.texi:21580 doc/guix.texi:21803
 msgid "x:+name"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19825 doc/guix.texi:20048
+#: doc/guix.texi:21590 doc/guix.texi:21813
 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: itemize
-#: doc/guix.texi:19829 doc/guix.texi:19874 doc/guix.texi:20052
-#: doc/guix.texi:20097
+#: doc/guix.texi:21594 doc/guix.texi:21639 doc/guix.texi:21817
+#: doc/guix.texi:21862
 msgid "1: DEBUG"
 msgstr ""
 
 #. type: itemize
-#: doc/guix.texi:19832 doc/guix.texi:19877 doc/guix.texi:20055
-#: doc/guix.texi:20100
+#: doc/guix.texi:21597 doc/guix.texi:21642 doc/guix.texi:21820
+#: doc/guix.texi:21865
 msgid "2: INFO"
 msgstr ""
 
 #. type: itemize
-#: doc/guix.texi:19835 doc/guix.texi:19880 doc/guix.texi:20058
-#: doc/guix.texi:20103
+#: doc/guix.texi:21600 doc/guix.texi:21645 doc/guix.texi:21823
+#: doc/guix.texi:21868
 msgid "3: WARNING"
 msgstr ""
 
 #. type: itemize
-#: doc/guix.texi:19838 doc/guix.texi:19883 doc/guix.texi:20061
-#: doc/guix.texi:20106
+#: doc/guix.texi:21603 doc/guix.texi:21648 doc/guix.texi:21826
+#: doc/guix.texi:21871
 msgid "4: ERROR"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19843 doc/guix.texi:20066
+#: doc/guix.texi:21608 doc/guix.texi:21831
 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:19845 doc/guix.texi:20068
+#: doc/guix.texi:21610 doc/guix.texi:21833
 msgid "Defaults to @samp{\"3:remote 4:event\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19848
+#: doc/guix.texi:21613
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} string log-outputs"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19850 doc/guix.texi:20073
+#: doc/guix.texi:21615 doc/guix.texi:21838
 msgid "Logging outputs."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19853 doc/guix.texi:20076
+#: doc/guix.texi:21618 doc/guix.texi:21841
 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:19855 doc/guix.texi:20078
+#: doc/guix.texi:21620 doc/guix.texi:21843
 #, no-wrap
 msgid "x:stderr"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:19857 doc/guix.texi:20080
+#: doc/guix.texi:21622 doc/guix.texi:21845
 msgid "output goes to stderr"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:19858 doc/guix.texi:20081
+#: doc/guix.texi:21623 doc/guix.texi:21846
 #, no-wrap
 msgid "x:syslog:name"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:19860 doc/guix.texi:20083
+#: doc/guix.texi:21625 doc/guix.texi:21848
 msgid "use syslog for the output and use the given name as the ident"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:19861 doc/guix.texi:20084
+#: doc/guix.texi:21626 doc/guix.texi:21849
 #, no-wrap
 msgid "x:file:file_path"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:19863 doc/guix.texi:20086
+#: doc/guix.texi:21628 doc/guix.texi:21851
 msgid "output to a file, with the given filepath"
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:19864 doc/guix.texi:20087
+#: doc/guix.texi:21629 doc/guix.texi:21852
 #, no-wrap
 msgid "x:journald"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:19866 doc/guix.texi:20089
+#: doc/guix.texi:21631 doc/guix.texi:21854
 msgid "output to journald logging system"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19870 doc/guix.texi:20093
+#: doc/guix.texi:21635 doc/guix.texi:21858
 msgid "In all case the x prefix is the minimal level, acting as a filter"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19888 doc/guix.texi:20111
+#: doc/guix.texi:21653 doc/guix.texi:21876
 msgid "Multiple outputs can be defined, they just need to be separated by spaces."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19890 doc/guix.texi:20113
+#: doc/guix.texi:21655 doc/guix.texi:21878
 msgid "Defaults to @samp{\"3:stderr\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19893
+#: doc/guix.texi:21658
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} integer audit-level"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19895
+#: doc/guix.texi:21660
 msgid "Allows usage of the auditing subsystem to be altered"
 msgstr ""
 
 #. type: itemize
-#: doc/guix.texi:19899
+#: doc/guix.texi:21664
 msgid "0: disable all auditing"
 msgstr ""
 
 #. type: itemize
-#: doc/guix.texi:19902
+#: doc/guix.texi:21667
 msgid "1: enable auditing, only if enabled on host"
 msgstr ""
 
 #. type: itemize
-#: doc/guix.texi:19905
+#: doc/guix.texi:21670
 msgid "2: enable auditing, and exit if disabled on host."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19912
+#: doc/guix.texi:21677
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} boolean audit-logging"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19914
+#: doc/guix.texi:21679
 msgid "Send audit messages via libvirt logging infrastructure."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19919
+#: doc/guix.texi:21684
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} optional-string host-uuid"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19921
+#: doc/guix.texi:21686
 msgid "Host UUID.  UUID must not have all digits be the same."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19926
+#: doc/guix.texi:21691
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} string host-uuid-source"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19928
+#: doc/guix.texi:21693
 msgid "Source to read host UUID."
 msgstr ""
 
 #. type: itemize
-#: doc/guix.texi:19932
+#: doc/guix.texi:21697
 msgid "@code{smbios}: fetch the UUID from @code{dmidecode -s system-uuid}"
 msgstr ""
 
 #. type: itemize
-#: doc/guix.texi:19935
+#: doc/guix.texi:21700
 msgid "@code{machine-id}: fetch the UUID from @code{/etc/machine-id}"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19940
+#: doc/guix.texi:21705
 msgid "If @code{dmidecode} does not provide a valid UUID a temporary UUID will be generated."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19942
+#: doc/guix.texi:21707
 msgid "Defaults to @samp{\"smbios\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19945
+#: doc/guix.texi:21710
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} integer keepalive-interval"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19950
+#: doc/guix.texi:21715
 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:19955
+#: doc/guix.texi:21720
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} integer keepalive-count"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19959
+#: doc/guix.texi:21724
 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:19966
+#: doc/guix.texi:21731
 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:19971
+#: doc/guix.texi:21736
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} integer admin-keepalive-interval"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19973 doc/guix.texi:19980
+#: doc/guix.texi:21738 doc/guix.texi:21745
 msgid "Same as above but for admin interface."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19978
+#: doc/guix.texi:21743
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} integer admin-keepalive-count"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19985
+#: doc/guix.texi:21750
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} integer ovs-timeout"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19987
+#: doc/guix.texi:21752
 msgid "Timeout for Open vSwitch calls."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:19991
+#: doc/guix.texi:21756
 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:19998
+#: doc/guix.texi:21763
 #, no-wrap
 msgid "Virtlog daemon"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:20001
+#: doc/guix.texi:21766
 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:20007
+#: doc/guix.texi:21772
 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:20008
+#: doc/guix.texi:21773
 #, no-wrap
 msgid "{Scheme Variable} virtlog-service-type"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:20011
+#: doc/guix.texi:21776
 msgid "This is the type of the virtlog daemon.  Its value must be a @code{virtlog-configuration}."
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:20016
+#: doc/guix.texi:21781
 #, no-wrap
 msgid ""
 "(service virtlog-service-type\n"
@@ -36508,154 +40329,154 @@ msgid ""
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20019
+#: doc/guix.texi:21784
 #, no-wrap
 msgid "{@code{virtlog-configuration} parameter} integer log-level"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20026
+#: doc/guix.texi:21791
 #, no-wrap
 msgid "{@code{virtlog-configuration} parameter} string log-filters"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20071
+#: doc/guix.texi:21836
 #, no-wrap
 msgid "{@code{virtlog-configuration} parameter} string log-outputs"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20116
+#: doc/guix.texi:21881
 #, no-wrap
 msgid "{@code{virtlog-configuration} parameter} integer max-clients"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20121
+#: doc/guix.texi:21886
 msgid "Defaults to @samp{1024}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20124
+#: doc/guix.texi:21889
 #, no-wrap
 msgid "{@code{virtlog-configuration} parameter} integer max-size"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20126
+#: doc/guix.texi:21891
 msgid "Maximum file size before rolling over."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20128
+#: doc/guix.texi:21893
 msgid "Defaults to @samp{2MB}"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20131
+#: doc/guix.texi:21896
 #, no-wrap
 msgid "{@code{virtlog-configuration} parameter} integer max-backups"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20133
+#: doc/guix.texi:21898
 msgid "Maximum number of backup files to keep."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20135
+#: doc/guix.texi:21900
 msgid "Defaults to @samp{3}"
 msgstr ""
 
 #. type: subsubheading
-#: doc/guix.texi:20138
+#: doc/guix.texi:21903
 #, no-wrap
 msgid "Transparent Emulation with QEMU"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:20140
+#: doc/guix.texi:21905
 #, no-wrap
 msgid "emulation"
 msgstr ""
 
 #. type: code{#1}
-#: doc/guix.texi:20141
+#: doc/guix.texi:21906
 #, no-wrap
 msgid "binfmt_misc"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:20147
+#: doc/guix.texi:21912
 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 ""
 
 #. type: defvr
-#: doc/guix.texi:20148
+#: doc/guix.texi:21913
 #, no-wrap
 msgid "{Scheme Variable} qemu-binfmt-service-type"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:20153
+#: doc/guix.texi:21918
 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: example
-#: doc/guix.texi:20158
+#: doc/guix.texi:21923
 #, no-wrap
 msgid ""
 "(service qemu-binfmt-service-type\n"
 "         (qemu-binfmt-configuration\n"
-"           (platforms (lookup-qemu-platforms \"arm\" \"aarch64\" \"ppc\"))))\n"
+"           (platforms (lookup-qemu-platforms \"arm\" \"aarch64\" \"mips64el\"))))\n"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:20164
+#: doc/guix.texi:21929
 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:20166
+#: doc/guix.texi:21931
 #, no-wrap
 msgid "{Data Type} qemu-binfmt-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:20168
+#: doc/guix.texi:21933
 msgid "This is the configuration for the @code{qemu-binfmt} service."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:20170
+#: doc/guix.texi:21935
 #, no-wrap
 msgid "@code{platforms} (default: @code{'()})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20173
+#: doc/guix.texi:21938
 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:20174
+#: doc/guix.texi:21939
 #, no-wrap
 msgid "@code{guix-support?} (default: @code{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20180
+#: doc/guix.texi:21945
 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 ""
 
 #. type: table
-#: doc/guix.texi:20183
+#: doc/guix.texi:21948
 msgid "For example, let's suppose you're on an x86_64 machine and you have this service:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:20189
+#: doc/guix.texi:21954
 #, no-wrap
 msgid ""
 "(service qemu-binfmt-service-type\n"
@@ -36665,262 +40486,262 @@ msgid ""
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20192
+#: doc/guix.texi:21957
 msgid "You can run:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:20195
+#: doc/guix.texi:21960
 #, no-wrap
 msgid "guix build -s armhf-linux inkscape\n"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20202
+#: doc/guix.texi:21967
 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:20203
+#: doc/guix.texi:21968
 #, no-wrap
 msgid "@code{qemu} (default: @code{qemu})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20205
+#: doc/guix.texi:21970
 msgid "The QEMU package to use."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:20208
+#: doc/guix.texi:21973
 #, no-wrap
 msgid "{Scheme Procedure} lookup-qemu-platforms @var{platforms}@dots{}"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:20213
+#: doc/guix.texi:21978
 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:20215
+#: doc/guix.texi:21980
 #, no-wrap
 msgid "{Scheme Procedure} qemu-platform? @var{obj}"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:20217
+#: doc/guix.texi:21982
 msgid "Return true if @var{obj} is a platform object."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:20219
+#: doc/guix.texi:21984
 #, no-wrap
 msgid "{Scheme Procedure} qemu-platform-name @var{platform}"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:20221
+#: doc/guix.texi:21986
 msgid "Return the name of @var{platform}---a string such as @code{\"arm\"}."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:20233
+#: doc/guix.texi:21998
 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:20234
+#: doc/guix.texi:21999
 #, no-wrap
 msgid "{Scheme Procedure} git-daemon-service [#:config (git-daemon-configuration)]"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:20238
+#: doc/guix.texi:22003
 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:20244
+#: doc/guix.texi:22009
 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 ""
 
 #. type: deftp
-#: doc/guix.texi:20247
+#: doc/guix.texi:22012
 #, no-wrap
 msgid "{Data Type} git-daemon-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:20249
+#: doc/guix.texi:22014
 msgid "Data type representing the configuration for @code{git-daemon-service}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:20251 doc/guix.texi:20307
+#: doc/guix.texi:22016 doc/guix.texi:22072
 #, no-wrap
 msgid "@code{package} (default: @var{git})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20253 doc/guix.texi:20309
+#: doc/guix.texi:22018 doc/guix.texi:22074
 msgid "Package object of the Git distributed version control system."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:20254 doc/guix.texi:20313
+#: doc/guix.texi:22019 doc/guix.texi:22078
 #, no-wrap
 msgid "@code{export-all?} (default: @var{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20257
+#: doc/guix.texi:22022
 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:20258
+#: doc/guix.texi:22023
 #, no-wrap
 msgid "@code{base-path} (default: @file{/srv/git})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20263
+#: doc/guix.texi:22028
 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 ""
 
 #. type: item
-#: doc/guix.texi:20264
+#: doc/guix.texi:22029
 #, no-wrap
 msgid "@code{user-path} (default: @var{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20271
+#: doc/guix.texi:22036
 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 ""
 
 #. type: item
-#: doc/guix.texi:20272
+#: doc/guix.texi:22037
 #, no-wrap
 msgid "@code{listen} (default: @var{'()})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20275
+#: doc/guix.texi:22040
 msgid "Whether to listen on specific IP addresses or hostnames, defaults to all."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:20276
+#: doc/guix.texi:22041
 #, no-wrap
 msgid "@code{port} (default: @var{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20278
+#: doc/guix.texi:22043
 msgid "Whether to listen on an alternative port, which defaults to 9418."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:20279
+#: doc/guix.texi:22044
 #, no-wrap
 msgid "@code{whitelist} (default: @var{'()})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20281
+#: doc/guix.texi:22046
 msgid "If not empty, only allow access to this list of directories."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:20282
+#: doc/guix.texi:22047
 #, no-wrap
 msgid "@code{extra-options} (default: @var{'()})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20285
+#: doc/guix.texi:22050
 msgid "Extra options will be passed to @code{git daemon}, please run @command{man git-daemon} for more information."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:20299
+#: doc/guix.texi:22064
 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."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:20302
+#: doc/guix.texi:22067
 msgid "Guix has a separate configuration data type for serving Git repositories over HTTP."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:20303
+#: doc/guix.texi:22068
 #, no-wrap
 msgid "{Data Type} git-http-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:20305
+#: doc/guix.texi:22070
 msgid "Data type representing the configuration for @code{git-http-service}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:20310
+#: doc/guix.texi:22075
 #, no-wrap
 msgid "@code{git-root} (default: @file{/srv/git})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20312
+#: doc/guix.texi:22077
 msgid "Directory containing the Git repositories to expose to the world."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20316
+#: doc/guix.texi:22081
 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:20317
+#: doc/guix.texi:22082
 #, no-wrap
 msgid "@code{uri-path} (default: @file{/git/})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20322
+#: doc/guix.texi:22087
 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 ""
 
 #. type: item
-#: doc/guix.texi:20323
+#: doc/guix.texi:22088
 #, no-wrap
 msgid "@code{fcgiwrap-socket} (default: @code{127.0.0.1:9000})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:20326
+#: doc/guix.texi:22091
 msgid "The socket on which the @code{fcgiwrap} daemon is listening.  @xref{Web Services}."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:20333
+#: doc/guix.texi:22098
 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:20334
+#: doc/guix.texi:22099
 #, no-wrap
 msgid "{Scheme Procedure} git-http-nginx-location-configuration @"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:20339
+#: doc/guix.texi:22104
 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: example
-#: doc/guix.texi:20356
+#: doc/guix.texi:22121
 #, no-wrap
 msgid ""
 "(service nginx-service-type\n"
@@ -36941,1425 +40762,1420 @@ msgid ""
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:20363
+#: doc/guix.texi:22128
 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:20365
+#: doc/guix.texi:22130
 #, no-wrap
 msgid "Cgit Service"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:20367
+#: doc/guix.texi:22132
 #, no-wrap
 msgid "Cgit service"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:20368
+#: doc/guix.texi:22133
 #, no-wrap
 msgid "Git, web interface"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:20371
+#: doc/guix.texi:22136
 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:20374
+#: doc/guix.texi:22139
 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: example
-#: doc/guix.texi:20377
+#: doc/guix.texi:22142
 #, no-wrap
 msgid "(service cgit-service-type)\n"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:20381
+#: doc/guix.texi:22146
 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:20385
+#: doc/guix.texi:22150
 msgid "Available @code{cgit-configuration} fields are:"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20386
+#: doc/guix.texi:22151
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} package package"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20388
+#: doc/guix.texi:22153
 msgid "The CGIT package."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20391
+#: doc/guix.texi:22156
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} nginx-server-configuration-list nginx"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20393
-msgid "NGINX configuration."
-msgstr ""
-
-#. type: deftypevr
-#: doc/guix.texi:20396
+#: doc/guix.texi:22161
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} file-object about-filter"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20399
+#: doc/guix.texi:22164
 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:20404
+#: doc/guix.texi:22169
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} string agefile"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20407
+#: doc/guix.texi:22172
 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:20412
+#: doc/guix.texi:22177
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} file-object auth-filter"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20415
+#: doc/guix.texi:22180
 msgid "Specifies a command that will be invoked for authenticating repository access."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20420
+#: doc/guix.texi:22185
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} string branch-sort"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20423
+#: doc/guix.texi:22188
 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:20425
+#: doc/guix.texi:22190
 msgid "Defaults to @samp{\"name\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20428
+#: doc/guix.texi:22193
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} string cache-root"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20430
+#: doc/guix.texi:22195
 msgid "Path used to store the cgit cache entries."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20432
+#: doc/guix.texi:22197
 msgid "Defaults to @samp{\"/var/cache/cgit\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20435
+#: doc/guix.texi:22200
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} integer cache-static-ttl"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20438
+#: doc/guix.texi:22203
 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:20440 doc/guix.texi:20883
+#: doc/guix.texi:22205 doc/guix.texi:22648
 msgid "Defaults to @samp{-1}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20443
+#: doc/guix.texi:22208
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} integer cache-dynamic-ttl"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20446
+#: doc/guix.texi:22211
 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:20451
+#: doc/guix.texi:22216
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} integer cache-repo-ttl"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20454
+#: doc/guix.texi:22219
 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:20459
+#: doc/guix.texi:22224
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} integer cache-root-ttl"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20462
+#: doc/guix.texi:22227
 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:20467
+#: doc/guix.texi:22232
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} integer cache-scanrc-ttl"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20470
+#: doc/guix.texi:22235
 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:20475
+#: doc/guix.texi:22240
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} integer cache-about-ttl"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20478
+#: doc/guix.texi:22243
 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:20483
+#: doc/guix.texi:22248
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} integer cache-snapshot-ttl"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20486
+#: doc/guix.texi:22251
 msgid "Number which specifies the time-to-live, in minutes, for the cached version of snapshots."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20491
+#: doc/guix.texi:22256
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} integer cache-size"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20494
+#: doc/guix.texi:22259
 msgid "The maximum number of entries in the cgit cache.  When set to @samp{0}, caching is disabled."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20499
+#: doc/guix.texi:22264
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} boolean case-sensitive-sort?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20501
+#: doc/guix.texi:22266
 msgid "Sort items in the repo list case sensitively."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20506
+#: doc/guix.texi:22271
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} list clone-prefix"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20509
+#: doc/guix.texi:22274
 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:20514
+#: doc/guix.texi:22279
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} list clone-url"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20516
+#: doc/guix.texi:22281
 msgid "List of @code{clone-url} templates."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20521
+#: doc/guix.texi:22286
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} file-object commit-filter"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20523
+#: doc/guix.texi:22288
 msgid "Command which will be invoked to format commit messages."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20528
+#: doc/guix.texi:22293
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} string commit-sort"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20532 doc/guix.texi:21090
+#: doc/guix.texi:22297 doc/guix.texi:22855
 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:20534
+#: doc/guix.texi:22299
 msgid "Defaults to @samp{\"git log\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20537
+#: doc/guix.texi:22302
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} file-object css"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20539
+#: doc/guix.texi:22304
 msgid "URL which specifies the css document to include in all cgit pages."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20541
+#: doc/guix.texi:22306
 msgid "Defaults to @samp{\"/share/cgit/cgit.css\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20544
+#: doc/guix.texi:22309
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} file-object email-filter"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20548
+#: doc/guix.texi:22313
 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:20553
+#: doc/guix.texi:22318
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} boolean embedded?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20556
+#: doc/guix.texi:22321
 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:20561
+#: doc/guix.texi:22326
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} boolean enable-commit-graph?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20565
+#: doc/guix.texi:22330
 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:20570
+#: doc/guix.texi:22335
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} boolean enable-filter-overrides?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20573
+#: doc/guix.texi:22338
 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:20578
+#: doc/guix.texi:22343
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} boolean enable-follow-links?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20581
+#: doc/guix.texi:22346
 msgid "Flag which, when set to @samp{#t}, allows users to follow a file in the log view."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20586
+#: doc/guix.texi:22351
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} boolean enable-http-clone?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20589
+#: doc/guix.texi:22354
 msgid "If set to @samp{#t}, cgit will act as an dumb HTTP endpoint for Git clones."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20594
+#: doc/guix.texi:22359
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} boolean enable-index-links?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20597
+#: doc/guix.texi:22362
 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:20602
+#: doc/guix.texi:22367
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} boolean enable-index-owner?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20605
+#: doc/guix.texi:22370
 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:20610
+#: doc/guix.texi:22375
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} boolean enable-log-filecount?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20613
+#: doc/guix.texi:22378
 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:20618
+#: doc/guix.texi:22383
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} boolean enable-log-linecount?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20621
+#: doc/guix.texi:22386
 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:20626
+#: doc/guix.texi:22391
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} boolean enable-remote-branches?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20629 doc/guix.texi:21153
+#: doc/guix.texi:22394 doc/guix.texi:22918
 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:20634
+#: doc/guix.texi:22399
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} boolean enable-subject-links?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20638
+#: doc/guix.texi:22403
 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:20643
+#: doc/guix.texi:22408
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} boolean enable-html-serving?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20647
+#: doc/guix.texi:22412
 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:20652
+#: doc/guix.texi:22417
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} boolean enable-tree-linenumbers?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20655
+#: doc/guix.texi:22420
 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:20660
+#: doc/guix.texi:22425
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} boolean enable-git-config?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20663
+#: doc/guix.texi:22428
 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:20668
+#: doc/guix.texi:22433
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} file-object favicon"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20670
+#: doc/guix.texi:22435
 msgid "URL used as link to a shortcut icon for cgit."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20672
+#: doc/guix.texi:22437
 msgid "Defaults to @samp{\"/favicon.ico\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20675
+#: doc/guix.texi:22440
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} string footer"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20679
-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)."
+#: doc/guix.texi:22444
+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:20684
+#: doc/guix.texi:22449
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} string head-include"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20687
+#: doc/guix.texi:22452
 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:20692
+#: doc/guix.texi:22457
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} string header"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20695
+#: doc/guix.texi:22460
 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:20700
+#: doc/guix.texi:22465
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} file-object include"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20703
+#: doc/guix.texi:22468
 msgid "Name of a configfile to include before the rest of the current config- file is parsed."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20708
+#: doc/guix.texi:22473
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} string index-header"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20711
+#: doc/guix.texi:22476
 msgid "The content of the file specified with this option will be included verbatim above the repository index."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20716
+#: doc/guix.texi:22481
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} string index-info"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20719
+#: doc/guix.texi:22484
 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:20724
+#: doc/guix.texi:22489
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} boolean local-time?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20727
+#: doc/guix.texi:22492
 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:20732
+#: doc/guix.texi:22497
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} file-object logo"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20735
+#: doc/guix.texi:22500
 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:20737
+#: doc/guix.texi:22502
 msgid "Defaults to @samp{\"/share/cgit/cgit.png\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20740
+#: doc/guix.texi:22505
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} string logo-link"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20742 doc/guix.texi:21199
+#: doc/guix.texi:22507 doc/guix.texi:22964
 msgid "URL loaded when clicking on the cgit logo image."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20747
+#: doc/guix.texi:22512
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} file-object owner-filter"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20750
+#: doc/guix.texi:22515
 msgid "Command which will be invoked to format the Owner column of the main page."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20755
+#: doc/guix.texi:22520
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} integer max-atom-items"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20757
+#: doc/guix.texi:22522
 msgid "Number of items to display in atom feeds view."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20759 doc/guix.texi:20994 doc/guix.texi:21002
-#: doc/guix.texi:21010
+#: doc/guix.texi:22524 doc/guix.texi:22759 doc/guix.texi:22767
+#: doc/guix.texi:22775
 msgid "Defaults to @samp{10}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20762
+#: doc/guix.texi:22527
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} integer max-commit-count"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20764
+#: doc/guix.texi:22529
 msgid "Number of entries to list per page in \"log\" view."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20766 doc/guix.texi:20781
+#: doc/guix.texi:22531 doc/guix.texi:22546
 msgid "Defaults to @samp{50}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20769
+#: doc/guix.texi:22534
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} integer max-message-length"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20771
+#: doc/guix.texi:22536
 msgid "Number of commit message characters to display in \"log\" view."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20773 doc/guix.texi:20789
+#: doc/guix.texi:22538 doc/guix.texi:22554
 msgid "Defaults to @samp{80}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20776
+#: doc/guix.texi:22541
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} integer max-repo-count"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20779
+#: doc/guix.texi:22544
 msgid "Specifies the number of entries to list per page on the repository index page."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20784
+#: doc/guix.texi:22549
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} integer max-repodesc-length"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20787
+#: doc/guix.texi:22552
 msgid "Specifies the maximum number of repo description characters to display on the repository index page."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20792
+#: doc/guix.texi:22557
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} integer max-blob-size"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20794
+#: doc/guix.texi:22559
 msgid "Specifies the maximum size of a blob to display HTML for in KBytes."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20799
+#: doc/guix.texi:22564
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} string max-stats"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20802
+#: doc/guix.texi:22567
 msgid "Maximum statistics period.  Valid values are @samp{week},@samp{month}, @samp{quarter} and @samp{year}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20807
+#: doc/guix.texi:22572
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} mimetype-alist mimetype"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20809
+#: doc/guix.texi:22574
 msgid "Mimetype for the specified filename extension."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20813
+#: doc/guix.texi:22578
 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:20816
+#: doc/guix.texi:22581
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} file-object mimetype-file"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20818
+#: doc/guix.texi:22583
 msgid "Specifies the file to use for automatic mimetype lookup."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20823
+#: doc/guix.texi:22588
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} string module-link"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20826
+#: doc/guix.texi:22591
 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:20831
+#: doc/guix.texi:22596
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} boolean nocache?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20833
+#: doc/guix.texi:22598
 msgid "If set to the value @samp{#t} caching will be disabled."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20838
+#: doc/guix.texi:22603
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} boolean noplainemail?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20841
+#: doc/guix.texi:22606
 msgid "If set to @samp{#t} showing full author email addresses will be disabled."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20846
+#: doc/guix.texi:22611
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} boolean noheader?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20849
+#: doc/guix.texi:22614
 msgid "Flag which, when set to @samp{#t}, will make cgit omit the standard header on all pages."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20854
+#: doc/guix.texi:22619
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} project-list project-list"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20858
+#: doc/guix.texi:22623
 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:20863
+#: doc/guix.texi:22628
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} file-object readme"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20865
+#: doc/guix.texi:22630
 msgid "Text which will be used as default value for @code{cgit-repo-readme}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20870
+#: doc/guix.texi:22635
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} boolean remove-suffix?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20874
+#: doc/guix.texi:22639
 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:20879
+#: doc/guix.texi:22644
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} integer renamelimit"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20881
+#: doc/guix.texi:22646
 msgid "Maximum number of files to consider when detecting renames."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20886
+#: doc/guix.texi:22651
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} string repository-sort"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20888
+#: doc/guix.texi:22653
 msgid "The way in which repositories in each section are sorted."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20893
+#: doc/guix.texi:22658
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} robots-list robots"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20895
+#: doc/guix.texi:22660
 msgid "Text used as content for the @code{robots} meta-tag."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20897
+#: doc/guix.texi:22662
 msgid "Defaults to @samp{(\"noindex\" \"nofollow\")}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20900
+#: doc/guix.texi:22665
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} string root-desc"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20902
+#: doc/guix.texi:22667
 msgid "Text printed below the heading on the repository index page."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20904
+#: doc/guix.texi:22669
 msgid "Defaults to @samp{\"a fast webinterface for the git dscm\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20907
+#: doc/guix.texi:22672
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} string root-readme"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20910
+#: doc/guix.texi:22675
 msgid "The content of the file specified with this option will be included verbatim below thef \"about\" link on the repository index page."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20915
+#: doc/guix.texi:22680
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} string root-title"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20917
+#: doc/guix.texi:22682
 msgid "Text printed as heading on the repository index page."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20922
+#: doc/guix.texi:22687
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} boolean scan-hidden-path"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20928
+#: doc/guix.texi:22693
 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 ""
 
 #. type: deftypevr
-#: doc/guix.texi:20933
+#: doc/guix.texi:22698
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} list snapshots"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20936
+#: doc/guix.texi:22701
 msgid "Text which specifies the default set of snapshot formats that cgit generates links for."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20941
+#: doc/guix.texi:22706
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} repository-directory repository-directory"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20944
+#: doc/guix.texi:22709
 msgid "Name of the directory to scan for repositories (represents @code{scan-path})."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20946
+#: doc/guix.texi:22711
 msgid "Defaults to @samp{\"/srv/git\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20949
+#: doc/guix.texi:22714
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} string section"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20952 doc/guix.texi:21268
+#: doc/guix.texi:22717 doc/guix.texi:23033
 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:20957
+#: doc/guix.texi:22722
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} string section-sort"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20960
+#: doc/guix.texi:22725
 msgid "Flag which, when set to @samp{1}, will sort the sections on the repository listing by name."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20965
+#: doc/guix.texi:22730
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} integer section-from-path"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20968
+#: doc/guix.texi:22733
 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:20973
+#: doc/guix.texi:22738
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} boolean side-by-side-diffs?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20976
+#: doc/guix.texi:22741
 msgid "If set to @samp{#t} shows side-by-side diffs instead of unidiffs per default."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20981
+#: doc/guix.texi:22746
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} file-object source-filter"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20984
+#: doc/guix.texi:22749
 msgid "Specifies a command which will be invoked to format plaintext blobs in the tree view."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20989
+#: doc/guix.texi:22754
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} integer summary-branches"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20992
+#: doc/guix.texi:22757
 msgid "Specifies the number of branches to display in the repository \"summary\" view."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:20997
+#: doc/guix.texi:22762
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} integer summary-log"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21000
+#: doc/guix.texi:22765
 msgid "Specifies the number of log entries to display in the repository \"summary\" view."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21005
+#: doc/guix.texi:22770
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} integer summary-tags"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21008
+#: doc/guix.texi:22773
 msgid "Specifies the number of tags to display in the repository \"summary\" view."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21013
+#: doc/guix.texi:22778
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} string strict-export"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21016
+#: doc/guix.texi:22781
 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:21021
+#: doc/guix.texi:22786
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} string virtual-root"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21023
+#: doc/guix.texi:22788
 msgid "URL which, if specified, will be used as root for all cgit links."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21025
+#: doc/guix.texi:22790
 msgid "Defaults to @samp{\"/\"}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21028
+#: doc/guix.texi:22793
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} repository-cgit-configuration-list repositories"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21030
+#: doc/guix.texi:22795
 msgid "A list of @dfn{cgit-repo} records to use with config."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21034
+#: doc/guix.texi:22799
 msgid "Available @code{repository-cgit-configuration} fields are:"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21035
+#: doc/guix.texi:22800
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-list snapshots"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21038
+#: doc/guix.texi:22803
 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:21043
+#: doc/guix.texi:22808
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-file-object source-filter"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21045
+#: doc/guix.texi:22810
 msgid "Override the default @code{source-filter}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21050
+#: doc/guix.texi:22815
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-string url"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21052
+#: doc/guix.texi:22817
 msgid "The relative URL used to access the repository."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21057
+#: doc/guix.texi:22822
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-file-object about-filter"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21059
+#: doc/guix.texi:22824
 msgid "Override the default @code{about-filter}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21064
+#: doc/guix.texi:22829
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-string branch-sort"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21067
+#: doc/guix.texi:22832
 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:21072
+#: doc/guix.texi:22837
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-list clone-url"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21074
+#: doc/guix.texi:22839
 msgid "A list of URLs which can be used to clone repo."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21079
+#: doc/guix.texi:22844
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-file-object commit-filter"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21081
+#: doc/guix.texi:22846
 msgid "Override the default @code{commit-filter}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21086
+#: doc/guix.texi:22851
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-string commit-sort"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21095
+#: doc/guix.texi:22860
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-string defbranch"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21100
+#: doc/guix.texi:22865
 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:21105
+#: doc/guix.texi:22870
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-string desc"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21107
+#: doc/guix.texi:22872
 msgid "The value to show as repository description."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21112
+#: doc/guix.texi:22877
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-string homepage"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21114
+#: doc/guix.texi:22879
 msgid "The value to show as repository homepage."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21119
+#: doc/guix.texi:22884
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-file-object email-filter"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21121
+#: doc/guix.texi:22886
 msgid "Override the default @code{email-filter}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21126
+#: doc/guix.texi:22891
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} maybe-repo-boolean enable-commit-graph?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21129
+#: doc/guix.texi:22894
 msgid "A flag which can be used to disable the global setting @code{enable-commit-graph?}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21134
+#: doc/guix.texi:22899
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} maybe-repo-boolean enable-log-filecount?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21137
+#: doc/guix.texi:22902
 msgid "A flag which can be used to disable the global setting @code{enable-log-filecount?}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21142
+#: doc/guix.texi:22907
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} maybe-repo-boolean enable-log-linecount?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21145
+#: doc/guix.texi:22910
 msgid "A flag which can be used to disable the global setting @code{enable-log-linecount?}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21150
+#: doc/guix.texi:22915
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} maybe-repo-boolean enable-remote-branches?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21158
+#: doc/guix.texi:22923
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} maybe-repo-boolean enable-subject-links?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21161
+#: doc/guix.texi:22926
 msgid "A flag which can be used to override the global setting @code{enable-subject-links?}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21166
+#: doc/guix.texi:22931
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} maybe-repo-boolean enable-html-serving?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21169
+#: doc/guix.texi:22934
 msgid "A flag which can be used to override the global setting @code{enable-html-serving?}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21174
+#: doc/guix.texi:22939
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-boolean hide?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21177
+#: doc/guix.texi:22942
 msgid "Flag which, when set to @code{#t}, hides the repository from the repository index."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21182
+#: doc/guix.texi:22947
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-boolean ignore?"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21184
+#: doc/guix.texi:22949
 msgid "Flag which, when set to @samp{#t}, ignores the repository."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21189
+#: doc/guix.texi:22954
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-file-object logo"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21192
+#: doc/guix.texi:22957
 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:21197
+#: doc/guix.texi:22962
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-string logo-link"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21204
+#: doc/guix.texi:22969
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-file-object owner-filter"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21206
+#: doc/guix.texi:22971
 msgid "Override the default @code{owner-filter}."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21211
+#: doc/guix.texi:22976
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-string module-link"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21215
+#: doc/guix.texi:22980
 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:21220
+#: doc/guix.texi:22985
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} module-link-path module-link-path"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21224
+#: doc/guix.texi:22989
 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:21229
+#: doc/guix.texi:22994
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-string max-stats"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21231
+#: doc/guix.texi:22996
 msgid "Override the default maximum statistics period."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21236
+#: doc/guix.texi:23001
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-string name"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21238
+#: doc/guix.texi:23003
 msgid "The value to show as repository name."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21243
+#: doc/guix.texi:23008
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-string owner"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21245
+#: doc/guix.texi:23010
 msgid "A value used to identify the owner of the repository."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21250
+#: doc/guix.texi:23015
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-string path"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21252
+#: doc/guix.texi:23017
 msgid "An absolute path to the repository directory."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21257
+#: doc/guix.texi:23022
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-string readme"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21260
+#: doc/guix.texi:23025
 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:21265
+#: doc/guix.texi:23030
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-string section"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21273
+#: doc/guix.texi:23038
 #, no-wrap
 msgid "{@code{repository-cgit-configuration} parameter} repo-list extra-options"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21275 doc/guix.texi:21284
+#: doc/guix.texi:23040 doc/guix.texi:23049
 msgid "Extra options will be appended to cgitrc file."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21282
+#: doc/guix.texi:23047
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} list extra-options"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:21296
+#: doc/guix.texi:23061
 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:21298
+#: doc/guix.texi:23063
 msgid "Available @code{opaque-cgit-configuration} fields are:"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21299
+#: doc/guix.texi:23064
 #, no-wrap
 msgid "{@code{opaque-cgit-configuration} parameter} package cgit"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21301
+#: doc/guix.texi:23066
 msgid "The cgit package."
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21303
+#: doc/guix.texi:23068
 #, no-wrap
 msgid "{@code{opaque-cgit-configuration} parameter} string string"
 msgstr ""
 
 #. type: deftypevr
-#: doc/guix.texi:21305
+#: doc/guix.texi:23070
 msgid "The contents of the @code{cgitrc}, as a string."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:21309
+#: doc/guix.texi:23074
 msgid "For example, if your @code{cgitrc} is just the empty string, you could instantiate a cgit service like this:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:21314
+#: doc/guix.texi:23079
 #, no-wrap
 msgid ""
 "(service cgit-service-type\n"
@@ -38368,40 +42184,40 @@ msgid ""
 msgstr ""
 
 #. type: subsubheading
-#: doc/guix.texi:21316
+#: doc/guix.texi:23081
 #, no-wrap
 msgid "Gitolite Service"
 msgstr "Gitolite-Dienst"
 
 #. type: cindex
-#: doc/guix.texi:21318
+#: doc/guix.texi:23083
 #, no-wrap
 msgid "Gitolite service"
 msgstr "Gitolite-Dienst"
 
 #. type: cindex
-#: doc/guix.texi:21319
+#: doc/guix.texi:23084
 #, no-wrap
 msgid "Git, hosting"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:21322
+#: doc/guix.texi:23087
 msgid "@uref{http://gitolite.com/gitolite/, Gitolite} is a tool for hosting Git repositories on a central server."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:21325
+#: doc/guix.texi:23090
 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:21328
+#: doc/guix.texi:23093
 msgid "The following example will configure Gitolite using the default @code{git} user, and the provided SSH public key."
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:21335
+#: doc/guix.texi:23100
 #, no-wrap
 msgid ""
 "(service gitolite-service-type\n"
@@ -38412,300 +42228,300 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:21340
+#: doc/guix.texi:23105
 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:21343
+#: doc/guix.texi:23108
 #, no-wrap
 msgid "git clone git@@example.com:gitolite-admin\n"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:21349
+#: doc/guix.texi:23114
 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:21350
+#: doc/guix.texi:23115
 #, no-wrap
 msgid "{Data Type} gitolite-configuration"
 msgstr "{Datentyp} gitolite-configuration"
 
 #. type: deftp
-#: doc/guix.texi:21352
+#: doc/guix.texi:23117
 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:21354
+#: doc/guix.texi:23119
 #, no-wrap
 msgid "@code{package} (default: @var{gitolite})"
 msgstr "@code{package} (Vorgabe: @var{gitolite})"
 
 #. type: table
-#: doc/guix.texi:21356
+#: doc/guix.texi:23121
 msgid "Gitolite package to use."
 msgstr "Welches Gitolite-Paket benutzt werden soll."
 
 #. type: item
-#: doc/guix.texi:21357
+#: doc/guix.texi:23122
 #, no-wrap
 msgid "@code{user} (default: @var{git})"
 msgstr "@code{user} (Vorgabe: @var{git})"
 
 #. type: table
-#: doc/guix.texi:21360
+#: doc/guix.texi:23125
 msgid "User to use for Gitolite.  This will be user that you use when accessing Gitolite over SSH."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:21361
+#: doc/guix.texi:23126
 #, no-wrap
 msgid "@code{group} (default: @var{git})"
 msgstr "@code{group} (Vorgabe: @var{git})"
 
 #. type: table
-#: doc/guix.texi:21363
+#: doc/guix.texi:23128
 msgid "Group to use for Gitolite."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:21364
+#: doc/guix.texi:23129
 #, 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:21366
+#: doc/guix.texi:23131
 msgid "Directory in which to store the Gitolite configuration and repositories."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:21367
+#: doc/guix.texi:23132
 #, 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:21370
+#: doc/guix.texi:23135
 msgid "A ``file-like'' object (@pxref{G-Expressions, file-like objects}), representing the configuration for Gitolite."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:21371
+#: doc/guix.texi:23136
 #, no-wrap
 msgid "@code{admin-pubkey} (default: @var{#f})"
 msgstr "@code{admin-pubkey} (Vorgabe: @var{#f})"
 
 #. type: table
-#: doc/guix.texi:21375
+#: doc/guix.texi:23140
 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:21377
+#: doc/guix.texi:23142
 msgid "To specify the SSH key as a string, use the @code{plain-file} function."
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:21380
+#: doc/guix.texi:23145
 #, no-wrap
 msgid "(plain-file \"yourname.pub\" \"ssh-rsa AAAA... guix@@example.com\")\n"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:21385
+#: doc/guix.texi:23150
 #, no-wrap
 msgid "{Data Type} gitolite-rc-file"
 msgstr "{Datentyp} gitolite-rc-file"
 
 #. type: deftp
-#: doc/guix.texi:21387
+#: doc/guix.texi:23152
 msgid "Data type representing the Gitolite RC file."
 msgstr "Repräsentiert die Gitolie-RC-Datei."
 
 #. type: item
-#: doc/guix.texi:21389
+#: doc/guix.texi:23154
 #, no-wrap
 msgid "@code{umask} (default: @code{#o0077})"
 msgstr "@code{umask} (Vorgabe: @code{#o0077})"
 
 #. type: table
-#: doc/guix.texi:21392
+#: doc/guix.texi:23157
 msgid "This controls the permissions Gitolite sets on the repositories and their contents."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21396
+#: doc/guix.texi:23161
 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:21397
+#: doc/guix.texi:23162
 #, no-wrap
 msgid "@code{git-config-keys} (default: @code{\"\"})"
 msgstr "@code{git-config-keys} (Vorgabe: @code{\"\"})"
 
 #. type: table
-#: doc/guix.texi:21400
+#: doc/guix.texi:23165
 msgid "Gitolite allows you to set git config values using the \"config\" keyword. This setting allows control over the config keys to accept."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:21401
+#: doc/guix.texi:23166
 #, no-wrap
 msgid "@code{roles} (default: @code{'((\"READERS\" . 1) (\"WRITERS\" . ))})"
 msgstr "@code{roles} (Vorgabe: @code{'((\"READERS\" . 1) (\"WRITERS\" . ))})"
 
 #. type: table
-#: doc/guix.texi:21403
+#: doc/guix.texi:23168
 msgid "Set the role names allowed to be used by users running the perms command."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:21404
+#: doc/guix.texi:23169
 #, no-wrap
 msgid "@code{enable} (default: @code{'(\"help\" \"desc\" \"info\" \"perms\" \"writable\" \"ssh-authkeys\" \"git-config\" \"daemon\" \"gitweb\")})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21406
+#: doc/guix.texi:23171
 msgid "This setting controls the commands and features to enable within Gitolite."
 msgstr ""
 
 #. type: subsubheading
-#: doc/guix.texi:21414
+#: doc/guix.texi:23179
 #, no-wrap
 msgid "The Battle for Wesnoth Service"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:21415
+#: doc/guix.texi:23180
 #, no-wrap
 msgid "wesnothd"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:21419
+#: doc/guix.texi:23184
 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:21420
+#: doc/guix.texi:23185
 #, no-wrap
 msgid "{Scheme Variable} wesnothd-service-type"
 msgstr ""
 
 #. type: defvar
-#: doc/guix.texi:21424
+#: doc/guix.texi:23189
 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: example
-#: doc/guix.texi:21427
+#: doc/guix.texi:23192
 #, no-wrap
 msgid "(service wesnothd-service-type)\n"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:21430
+#: doc/guix.texi:23195
 #, no-wrap
 msgid "{Data Type} wesnothd-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:21432
+#: doc/guix.texi:23197
 msgid "Data type representing the configuration of @command{wesnothd}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:21434
+#: doc/guix.texi:23199
 #, no-wrap
 msgid "@code{package} (default: @code{wesnoth-server})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21436
+#: doc/guix.texi:23201
 msgid "The wesnoth server package to use."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:21437
+#: doc/guix.texi:23202
 #, no-wrap
 msgid "@code{port} (default: @code{15000})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21439
+#: doc/guix.texi:23204
 msgid "The port to bind the server to."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:21445
+#: doc/guix.texi:23210
 #, no-wrap
 msgid "fingerprint"
 msgstr ""
 
 #. type: subsubheading
-#: doc/guix.texi:21446
+#: doc/guix.texi:23211
 #, no-wrap
 msgid "Fingerprint Service"
 msgstr "Fingerabdrucklese-Dienst"
 
 #. type: Plain text
-#: doc/guix.texi:21450
-msgid "The @code{(gnu services fingerprint)} module provides a DBus service to read and identify fingerprints via a fingerprint sensor."
+#: doc/guix.texi:23215
+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:21451
+#: doc/guix.texi:23216
 #, no-wrap
 msgid "{Scheme Variable} fprintd-service-type"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:21454
+#: doc/guix.texi:23219
 msgid "The service type for @command{fprintd}, which provides the fingerprint reading capability."
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:21457
+#: doc/guix.texi:23222
 #, no-wrap
 msgid "(service fprintd-service-type)\n"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:21460
+#: doc/guix.texi:23225
 #, no-wrap
 msgid "sysctl"
 msgstr ""
 
 #. type: subsubheading
-#: doc/guix.texi:21461
+#: doc/guix.texi:23226
 #, no-wrap
 msgid "System Control Service"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:21465
+#: doc/guix.texi:23230
 msgid "The @code{(gnu services sysctl)} provides a service to configure kernel parameters at boot."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:21466
+#: doc/guix.texi:23231
 #, no-wrap
 msgid "{Scheme Variable} sysctl-service-type"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:21470
+#: doc/guix.texi:23235
 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: example
-#: doc/guix.texi:21475
+#: doc/guix.texi:23240
 #, no-wrap
 msgid ""
 "(service sysctl-service-type\n"
@@ -38714,363 +42530,442 @@ msgid ""
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:21478
+#: doc/guix.texi:23243
 #, no-wrap
 msgid "{Data Type} sysctl-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:21480
+#: doc/guix.texi:23245
 msgid "The data type representing the configuration of @command{sysctl}."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:21482
+#: doc/guix.texi:23247
 #, no-wrap
 msgid "@code{sysctl} (default: @code{(file-append procps \"/sbin/sysctl\"})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21484
+#: doc/guix.texi:23249
 msgid "The @command{sysctl} executable to use."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:21485
+#: doc/guix.texi:23250
 #, no-wrap
 msgid "@code{settings} (default: @code{'()})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21487
+#: doc/guix.texi:23252
 msgid "An association list specifies kernel parameters and their values."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:21490
+#: doc/guix.texi:23255
 #, no-wrap
 msgid "pcscd"
 msgstr ""
 
 #. type: subsubheading
-#: doc/guix.texi:21491
+#: doc/guix.texi:23256
 #, no-wrap
 msgid "PC/SC Smart Card Daemon Service"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:21498
+#: doc/guix.texi:23263
 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:21499
+#: doc/guix.texi:23264
 #, no-wrap
 msgid "{Scheme Variable} pcscd-service-type"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:21503
+#: doc/guix.texi:23268
 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: example
-#: doc/guix.texi:21506
+#: doc/guix.texi:23271
 #, no-wrap
 msgid "(service pcscd-service-type)\n"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:21509
+#: doc/guix.texi:23274
 #, no-wrap
 msgid "{Data Type} pcscd-configuration"
 msgstr "{Datentyp} pcscd-configuration"
 
 #. type: deftp
-#: doc/guix.texi:21511
+#: doc/guix.texi:23276
 msgid "The data type representing the configuration of @command{pcscd}."
 msgstr "Repräsentiert die Konfiguration von @command{pcscd}."
 
 #. type: item
-#: doc/guix.texi:21513
+#: doc/guix.texi:23278
 #, no-wrap
 msgid "@code{pcsc-lite} (default: @code{pcsc-lite})"
 msgstr "@code{pcsc-lite} (Vorgabe: @code{pcsc-lite})"
 
 #. type: table
-#: doc/guix.texi:21515
+#: doc/guix.texi:23280
 msgid "The pcsc-lite package that provides pcscd."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:21515
+#: doc/guix.texi:23280
 #, no-wrap
 msgid "@code{usb-drivers} (default: @code{(list ccid)})"
 msgstr "@code{usb-drivers} (Vorgabe: @code{(list ccid)})"
 
 #. type: table
-#: doc/guix.texi:21518
+#: doc/guix.texi:23283
 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:21521
+#: doc/guix.texi:23286
 #, no-wrap
 msgid "lirc"
 msgstr ""
 
 #. type: subsubheading
-#: doc/guix.texi:21522
+#: doc/guix.texi:23287
 #, no-wrap
 msgid "Lirc Service"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:21525
+#: doc/guix.texi:23290
 msgid "The @code{(gnu services lirc)} module provides the following service."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:21526
+#: doc/guix.texi:23291
 #, no-wrap
 msgid "{Scheme Procedure} lirc-service [#:lirc lirc] @"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:21531
+#: doc/guix.texi:23296
 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:21535
+#: doc/guix.texi:23300
 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:21538
+#: doc/guix.texi:23303
 msgid "Finally, @var{extra-options} is a list of additional command-line options passed to @command{lircd}."
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:21540
+#: doc/guix.texi:23305
 #, no-wrap
 msgid "spice"
 msgstr ""
 
 #. type: subsubheading
-#: doc/guix.texi:21541
+#: doc/guix.texi:23306
 #, no-wrap
 msgid "Spice Service"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:21544
+#: doc/guix.texi:23309
 msgid "The @code{(gnu services spice)} module provides the following service."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:21545
+#: doc/guix.texi:23310
 #, no-wrap
 msgid "{Scheme Procedure} spice-vdagent-service [#:spice-vdagent]"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:21549
+#: doc/guix.texi:23314
 msgid "Returns a service that runs @url{http://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: subsubsection
-#: doc/guix.texi:21551
+#. type: cindex
+#: doc/guix.texi:23316
+#, no-wrap
+msgid "inputattach"
+msgstr ""
+
+#. type: subsubheading
+#: doc/guix.texi:23317
+#, no-wrap
+msgid "inputattach Service"
+msgstr "inputattach-Dienst"
+
+#. type: cindex
+#: doc/guix.texi:23319
+#, no-wrap
+msgid "tablet input, for Xorg"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:23320
+#, no-wrap
+msgid "touchscreen input, for Xorg"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:23324
+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:23325
+#, no-wrap
+msgid "{Scheme Variable} inputattach-service-type"
+msgstr "{Scheme-Variable} inputattach-service-type"
+
+#. type: deffn
+#: doc/guix.texi:23328
+msgid "Type of a service that runs @command{inputattach} on a device and dispatches events from it."
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:23330
+#, no-wrap
+msgid "{Data Type} inputattach-configuration"
+msgstr "{Datentyp} inputattach-configuration"
+
+#. type: item
+#: doc/guix.texi:23332
+#, no-wrap
+msgid "@code{device-type} (default: @code{\"wacom\"})"
+msgstr "@code{device-type} (Vorgabe: @code{\"wacom\"})"
+
+#. type: table
+#: doc/guix.texi:23335
+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:23336
+#, no-wrap
+msgid "@code{device} (default: @code{\"/dev/ttyS0\"})"
+msgstr "@code{device} (Vorgabe: @code{\"/dev/ttyS0\"})"
+
+#. type: table
+#: doc/guix.texi:23338
+msgid "The device file to connect to the device."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:23339
+#, no-wrap
+msgid "@code{log-file} (default: @code{#f})"
+msgstr "@code{log-file} (Vorgabe: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:23341
+msgid "If true, this must be the name of a file to log messages to."
+msgstr ""
+
+#. type: subsection
+#: doc/guix.texi:23344
 #, no-wrap
 msgid "Dictionary Services"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:21552
+#: doc/guix.texi:23345
 #, no-wrap
 msgid "dictionary"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:21554
+#: doc/guix.texi:23347
 msgid "The @code{(gnu services dict)} module provides the following service:"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:21555
+#: doc/guix.texi:23348
 #, no-wrap
 msgid "{Scheme Procedure} dicod-service [#:config (dicod-configuration)]"
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:21558
+#: doc/guix.texi:23351
 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:21562
+#: doc/guix.texi:23355
 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."
 msgstr ""
 
 #. type: deffn
-#: doc/guix.texi:21566
+#: doc/guix.texi:23359
 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:21568
+#: doc/guix.texi:23361
 #, no-wrap
 msgid "{Data Type} dicod-configuration"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:21570
+#: doc/guix.texi:23363
 msgid "Data type representing the configuration of dicod."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:21572
+#: doc/guix.texi:23365
 #, no-wrap
 msgid "@code{dico} (default: @var{dico})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21574
+#: doc/guix.texi:23367
 msgid "Package object of the GNU Dico dictionary server."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:21575
+#: doc/guix.texi:23368
 #, no-wrap
 msgid "@code{interfaces} (default: @var{'(\"localhost\")})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21579
+#: doc/guix.texi:23372
 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:21580
+#: doc/guix.texi:23373
 #, no-wrap
 msgid "@code{handlers} (default: @var{'()})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21582
+#: doc/guix.texi:23375
 msgid "List of @code{<dicod-handler>} objects denoting handlers (module instances)."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:21583
+#: doc/guix.texi:23376
 #, no-wrap
 msgid "@code{databases} (default: @var{(list %dicod-database:gcide)})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21585
+#: doc/guix.texi:23378
 msgid "List of @code{<dicod-database>} objects denoting dictionaries to be served."
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:21588
+#: doc/guix.texi:23381
 #, no-wrap
 msgid "{Data Type} dicod-handler"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:21590
+#: doc/guix.texi:23383
 msgid "Data type representing a dictionary handler (module instance)."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21594
+#: doc/guix.texi:23387
 msgid "Name of the handler (module instance)."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:21595
+#: doc/guix.texi:23388
 #, no-wrap
 msgid "@code{module} (default: @var{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21599
+#: doc/guix.texi:23392
 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: code{#1}
-#: doc/guix.texi:21600 doc/guix.texi:21620
+#: doc/guix.texi:23393 doc/guix.texi:23413
 #, no-wrap
 msgid "options"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21602
+#: doc/guix.texi:23395
 msgid "List of strings or gexps representing the arguments for the module handler"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:21605
+#: doc/guix.texi:23398
 #, no-wrap
 msgid "{Data Type} dicod-database"
 msgstr ""
 
 #. type: deftp
-#: doc/guix.texi:21607
+#: doc/guix.texi:23400
 msgid "Data type representing a dictionary database."
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21611
+#: doc/guix.texi:23404
 msgid "Name of the database, will be used in DICT commands."
 msgstr ""
 
 #. type: code{#1}
-#: doc/guix.texi:21612
+#: doc/guix.texi:23405
 #, no-wrap
 msgid "handler"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21615
+#: doc/guix.texi:23408
 msgid "Name of the dicod handler (module instance) used by this database (@pxref{Handlers,,, dico, GNU Dico Manual})."
 msgstr ""
 
 #. type: item
-#: doc/guix.texi:21616
+#: doc/guix.texi:23409
 #, no-wrap
 msgid "@code{complex?} (default: @var{#f})"
 msgstr ""
 
 #. type: table
-#: doc/guix.texi:21619
+#: doc/guix.texi:23412
 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:21623
+#: doc/guix.texi:23416
 msgid "List of strings or gexps representing the arguments for the database (@pxref{Databases,,, dico, GNU Dico Manual})."
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:21626
+#: doc/guix.texi:23419
 #, no-wrap
 msgid "{Scheme Variable} %dicod-database:gcide"
 msgstr ""
 
 #. type: defvr
-#: doc/guix.texi:21629
+#: doc/guix.texi:23422
 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:21632
+#: doc/guix.texi:23425
 msgid "The following is an example @code{dicod-service} configuration."
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:21647
+#: doc/guix.texi:23440
 #, no-wrap
 msgid ""
 "(dicod-service #:config\n"
@@ -39089,108 +42984,169 @@ msgid ""
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:21652
+#: doc/guix.texi:23442
 #, no-wrap
-msgid "setuid programs"
+msgid "Docker"
+msgstr "Docker"
+
+#. type: subsubheading
+#: doc/guix.texi:23443
+#, no-wrap
+msgid "Docker Service"
+msgstr "Docker-Dienst"
+
+#. type: Plain text
+#: doc/guix.texi:23446
+msgid "The @code{(gnu services docker)} module provides the following service."
+msgstr "Das Modul @code{(gnu services docker)} stellt den folgenden Dienst zur Verfügung."
+
+#. type: defvr
+#: doc/guix.texi:23447
+#, no-wrap
+msgid "{Scheme Variable} docker-service-type"
+msgstr "{Scheme-Variable} docker-service-type"
+
+#. type: defvr
+#: doc/guix.texi:23452
+msgid "This is the type of the service that runs @url{http://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:23455
+#, no-wrap
+msgid "{Data Type} docker-configuration"
+msgstr "{Datentyp} docker-configuration"
+
+#. type: deftp
+#: doc/guix.texi:23457
+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:23460
+#, no-wrap
+msgid "@code{package} (default: @code{docker})"
+msgstr "@code{package} (Vorgabe: @code{docker})"
+
+#. type: table
+#: doc/guix.texi:23462
+msgid "The Docker package to use."
+msgstr "Das Docker-Paket, was benutzt werden soll."
+
+#. type: item
+#: doc/guix.texi:23463
+#, no-wrap
+msgid "@code{containerd} (default: @var{containerd})"
+msgstr "@code{containerd} (Vorgabe: @var{containerd})"
+
+#. type: table
+#: doc/guix.texi:23465
+msgid "The Containerd package to use."
+msgstr "Das Containerd-Paket, was benutzt werden soll."
+
+#. type: cindex
+#: doc/guix.texi:23472
+#, no-wrap
+msgid "setuid programs"
+msgstr "setuid-Programme"
+
 #. type: Plain text
-#: doc/guix.texi:21662
+#: doc/guix.texi:23482
 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 ""
+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)."
 
 #. type: Plain text
-#: doc/guix.texi:21669
+#: doc/guix.texi:23489
 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 ""
+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:21675
+#: doc/guix.texi:23495
 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 ""
+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:21678
+#: doc/guix.texi:23498
 #, no-wrap
 msgid "#~(string-append #$shadow \"/bin/passwd\")\n"
-msgstr ""
+msgstr "#~(string-append #$shadow \"/bin/passwd\")\n"
 
 #. type: Plain text
-#: doc/guix.texi:21682
+#: doc/guix.texi:23502
 msgid "A default set of setuid programs is defined by the @code{%setuid-programs} variable of the @code{(gnu system)} module."
-msgstr ""
+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:21683
+#: doc/guix.texi:23503
 #, no-wrap
 msgid "{Scheme Variable} %setuid-programs"
-msgstr ""
+msgstr "{Scheme-Variable} %setuid-programs"
 
 #. type: defvr
-#: doc/guix.texi:21685
+#: doc/guix.texi:23505
 msgid "A list of G-expressions denoting common programs that are setuid-root."
-msgstr ""
+msgstr "Eine Liste von G-Ausdrücken, die übliche Programme angeben, die setuid-root sein müssen."
 
 #. type: defvr
-#: doc/guix.texi:21688
+#: doc/guix.texi:23508
 msgid "The list includes commands such as @command{passwd}, @command{ping}, @command{su}, and @command{sudo}."
-msgstr ""
+msgstr "Die Liste enthält Befehle wie @command{passwd}, @command{ping}, @command{su} und @command{sudo}."
 
 #. type: Plain text
-#: doc/guix.texi:21694
+#: doc/guix.texi:23514
 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 ""
+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:21698
+#: doc/guix.texi:23518
 #, no-wrap
 msgid "HTTPS, certificates"
 msgstr "HTTPS, Zertifikate"
 
 #. type: cindex
-#: doc/guix.texi:21699
+#: doc/guix.texi:23519
 #, no-wrap
 msgid "X.509 certificates"
 msgstr "X.509-Zertifikate"
 
 #. type: cindex
-#: doc/guix.texi:21700
+#: doc/guix.texi:23520
 #, no-wrap
 msgid "TLS"
 msgstr "TLS"
 
 #. type: Plain text
-#: doc/guix.texi:21707
+#: doc/guix.texi:23527
 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 (englisch @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:21711
+#: doc/guix.texi:23531
 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:21715
+#: doc/guix.texi:23535
 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."
+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:21722
-msgid "In GuixSD, 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}).  GuixSD 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 GuixSD müssen Sie dazu ein Paket, das Zertifikate enthält, in das @code{packages}-Feld der @code{operating-system}-Deklaration des Betriebssystems hinzufügen (@pxref{operating-system Reference}). GuixSD liefert ein solches Paket mit, @code{nss-certs}, was als Teil von Mozillas »Network Security Services« angeboten wird."
+#: doc/guix.texi:23542
+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:21727
+#: doc/guix.texi:23547
 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 "Beachten Sie, dass es @emph{nicht} zu den @var{%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:21737
+#: doc/guix.texi:23557
 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:"
 
 #. type: example
-#: doc/guix.texi:21743
+#: doc/guix.texi:23563
 #, no-wrap
 msgid ""
 "$ guix package -i nss-certs\n"
@@ -39204,12 +43160,12 @@ msgstr ""
 "$ export GIT_SSL_CAINFO=\"$SSL_CERT_FILE\"\n"
 
 #. type: Plain text
-#: doc/guix.texi:21748
+#: doc/guix.texi:23568
 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:"
 
 #. type: example
-#: doc/guix.texi:21752
+#: doc/guix.texi:23572
 #, no-wrap
 msgid ""
 "$ guix package -i nss-certs\n"
@@ -39219,60 +43175,63 @@ msgstr ""
 "$ export CURL_CA_BUNDLE=\"$HOME/.guix-profile/etc/ssl/certs/ca-certificates.crt\"\n"
 
 #. type: Plain text
-#: doc/guix.texi:21756
+#: doc/guix.texi:23576
 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:21761
+#: doc/guix.texi:23581
 #, no-wrap
 msgid "name service switch"
 msgstr "Name Service Switch"
 
 #. type: cindex
-#: doc/guix.texi:21762
+#: doc/guix.texi:23582
 #, no-wrap
 msgid "NSS"
 msgstr "NSS"
 
 #. type: Plain text
-#: doc/guix.texi:21771
+#: doc/guix.texi:23591
 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 ""
+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})."
 
 #. type: Plain text
-#: doc/guix.texi:21778
+#: doc/guix.texi:23598
 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 ""
+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:21779
+#: doc/guix.texi:23599
 #, no-wrap
 msgid "nss-mdns"
-msgstr ""
+msgstr "nss-mdns"
 
 #. type: cindex
-#: doc/guix.texi:21780
+#: doc/guix.texi:23600
 #, no-wrap
 msgid ".local, host name lookup"
-msgstr ""
+msgstr ".local, Rechnernamensauflösung"
 
 #. type: Plain text
-#: doc/guix.texi:21785
+#: doc/guix.texi:23605
 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 ""
+msgstr "Zum Beispiel konfigurieren die folgenden Deklarationen den NSS so, dass er das @uref{http://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: example
-#: doc/guix.texi:21789
+#: doc/guix.texi:23609
 #, no-wrap
 msgid ""
 "(name-service-switch\n"
 "   (hosts (list %files    ;first, check /etc/hosts\n"
 "\n"
 msgstr ""
+"(name-service-switch\n"
+"   (hosts (list %files    ;zuerst in /etc/hosts nachschlagen\n"
+"\n"
 
 #. type: example
-#: doc/guix.texi:21794
+#: doc/guix.texi:23614
 #, no-wrap
 msgid ""
 "                ;; If the above did not succeed, try\n"
@@ -39281,9 +43240,14 @@ msgid ""
 "                  (name \"mdns_minimal\")\n"
 "\n"
 msgstr ""
+"                ;; Wenn das keinen Erfolg hatte, es\n"
+"                ;; mit 'mdns_minimal' versuchen.\n"
+"                (name-service\n"
+"                  (name \"mdns_minimal\")\n"
+"\n"
 
 #. type: example
-#: doc/guix.texi:21800
+#: doc/guix.texi:23620
 #, no-wrap
 msgid ""
 "                  ;; 'mdns_minimal' is authoritative for\n"
@@ -39293,9 +43257,17 @@ msgid ""
 "                             (not-found => return))))\n"
 "\n"
 msgstr ""
+"                  ;; 'mdns_minimal' ist die Autorität für\n"
+"                  ;; '.local'. Gibt es not-found (\"nicht\n"
+"                  ;; gefunden\") zurück, müssen wir die\n"
+"                  ;; nächsten Methoden gar nicht erst\n"
+"                  ;; versuchen.\n"
+"                  (reaction (lookup-specification\n"
+"                             (not-found => return))))\n"
+"\n"
 
 #. type: example
-#: doc/guix.texi:21804
+#: doc/guix.texi:23624
 #, no-wrap
 msgid ""
 "                ;; Then fall back to DNS.\n"
@@ -39303,216 +43275,229 @@ msgid ""
 "                  (name \"dns\"))\n"
 "\n"
 msgstr ""
+"                ;; Ansonsten benutzen wir DNS.\n"
+"                (name-service\n"
+"                  (name \"dns\"))\n"
+"\n"
 
 #. type: example
-#: doc/guix.texi:21808
+#: doc/guix.texi:23628
 #, no-wrap
 msgid ""
 "                ;; Finally, try with the \"full\" 'mdns'.\n"
 "                (name-service\n"
 "                  (name \"mdns\")))))\n"
 msgstr ""
+"                ;; Ein letzter Versuch mit dem\n"
+"                ;; \"vollständigen\" 'mdns'.\n"
+"                (name-service\n"
+"                  (name \"mdns\")))))\n"
 
 #. type: Plain text
-#: doc/guix.texi:21813
+#: doc/guix.texi:23633
 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 ""
+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:21821
-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} (@pxref{Networking Services, @code{avahi-service}}), 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 ""
+#: doc/guix.texi:23641
+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 "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 @var{%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:21824
+#: doc/guix.texi:23644
 msgid "For convenience, the following variables provide typical NSS configurations."
-msgstr ""
+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:21825
+#: doc/guix.texi:23645
 #, no-wrap
 msgid "{Scheme Variable} %default-nss"
-msgstr ""
+msgstr "{Scheme-Variable} %default-nss"
 
 #. type: defvr
-#: doc/guix.texi:21828
+#: doc/guix.texi:23648
 msgid "This is the default name service switch configuration, a @code{name-service-switch} object."
-msgstr ""
+msgstr "Die vorgegebene Konfiguration des Name Service Switch als ein @code{name-service-switch}-Objekt."
 
 #. type: defvr
-#: doc/guix.texi:21830
+#: doc/guix.texi:23650
 #, no-wrap
 msgid "{Scheme Variable} %mdns-host-lookup-nss"
-msgstr ""
+msgstr "{Scheme-Variable} %mdns-host-lookup-nss"
 
 #. type: defvr
-#: doc/guix.texi:21833
+#: doc/guix.texi:23653
 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 ""
+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:21843
+#: doc/guix.texi:23663
 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 ""
+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."
 
 #. type: deftp
-#: doc/guix.texi:21844
+#: doc/guix.texi:23664
 #, no-wrap
 msgid "{Data Type} name-service-switch"
-msgstr ""
+msgstr "{Datentyp} name-service-switch"
 
 #. type: deftp
-#: doc/guix.texi:21849
+#: doc/guix.texi:23669
 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 ""
+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:21851
+#: doc/guix.texi:23671
 #, no-wrap
 msgid "aliases"
-msgstr ""
+msgstr "aliases"
 
 #. type: itemx
-#: doc/guix.texi:21852
+#: doc/guix.texi:23672
 #, no-wrap
 msgid "ethers"
-msgstr ""
+msgstr "ethers"
 
 #. type: itemx
-#: doc/guix.texi:21854
+#: doc/guix.texi:23674
 #, no-wrap
 msgid "gshadow"
-msgstr ""
+msgstr "gshadow"
 
 #. type: itemx
-#: doc/guix.texi:21855
+#: doc/guix.texi:23675
 #, no-wrap
 msgid "hosts"
-msgstr ""
+msgstr "hosts"
 
 #. type: itemx
-#: doc/guix.texi:21856
+#: doc/guix.texi:23676
 #, no-wrap
 msgid "initgroups"
-msgstr ""
+msgstr "initgroups"
 
 #. type: itemx
-#: doc/guix.texi:21857
+#: doc/guix.texi:23677
 #, no-wrap
 msgid "netgroup"
-msgstr ""
+msgstr "netgroup"
 
 #. type: itemx
-#: doc/guix.texi:21858
+#: doc/guix.texi:23678
 #, no-wrap
 msgid "networks"
-msgstr ""
+msgstr "networks"
 
 #. type: itemx
-#: doc/guix.texi:21860
+#: doc/guix.texi:23680
 #, no-wrap
 msgid "public-key"
-msgstr ""
+msgstr "public-key"
 
 #. type: itemx
-#: doc/guix.texi:21861
+#: doc/guix.texi:23681
 #, no-wrap
 msgid "rpc"
-msgstr ""
+msgstr "rpc"
 
 #. type: itemx
-#: doc/guix.texi:21863
+#: doc/guix.texi:23683
 #, no-wrap
 msgid "shadow"
-msgstr ""
+msgstr "shadow"
 
 #. type: table
-#: doc/guix.texi:21866
+#: doc/guix.texi:23686
 msgid "The system databases handled by the NSS.  Each of these fields must be a list of @code{<name-service>} objects (see below)."
-msgstr ""
+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:21869
+#: doc/guix.texi:23689
 #, no-wrap
 msgid "{Data Type} name-service"
-msgstr ""
+msgstr "{Datentyp} name-service"
 
 #. type: deftp
-#: doc/guix.texi:21873
+#: doc/guix.texi:23693
 msgid "This is the data type representing an actual name service and the associated lookup action."
-msgstr ""
+msgstr "Der einen eigentlichen Namensdienst repräsentierende Datentyp zusammen mit der zugehörigen Auflösungsaktion."
 
 #. type: table
-#: doc/guix.texi:21878
+#: doc/guix.texi:23698
 msgid "A string denoting the name service (@pxref{Services in the NSS configuration,,, libc, The GNU C Library Reference Manual})."
-msgstr ""
+msgstr "Eine Zeichenkette, die den Namensdienst bezeichnet (siehe @ref{Services in the NSS configuration,,, libc, The GNU C Library Reference Manual})."
 
 #. type: table
-#: doc/guix.texi:21883
+#: doc/guix.texi:23703
 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 ""
+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:21884
+#: doc/guix.texi:23704
 #, no-wrap
 msgid "reaction"
-msgstr ""
+msgstr "reaction"
 
 #. type: table
-#: doc/guix.texi:21888
+#: doc/guix.texi:23708
 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 ""
+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:"
 
 #. type: example
-#: doc/guix.texi:21892
+#: doc/guix.texi:23712
 #, no-wrap
 msgid ""
 "(lookup-specification (unavailable => continue)\n"
 "                      (success => return))\n"
 msgstr ""
+"(lookup-specification (unavailable => continue)\n"
+"                      (success => return))\n"
 
 #. type: Plain text
-#: doc/guix.texi:21906
+#: doc/guix.texi:23726
 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 ""
+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:21915
+#: doc/guix.texi:23735
 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 ""
+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: example
-#: doc/guix.texi:21920
+#: doc/guix.texi:23740
 #, no-wrap
 msgid ""
 "(operating-system\n"
 "  ;; @dots{}\n"
 "  (initrd-modules (cons \"megaraid_sas\" %base-initrd-modules)))\n"
 msgstr ""
+"(operating-system\n"
+"  ;; @dots{}\n"
+"  (initrd-modules (cons \"megaraid_sas\" %base-initrd-modules)))\n"
 
 #. type: defvr
-#: doc/guix.texi:21922
+#: doc/guix.texi:23742
 #, no-wrap
 msgid "{Scheme Variable} %base-initrd-modules"
-msgstr ""
+msgstr "{Scheme-Variable} %base-initrd-modules"
 
 #. type: defvr
-#: doc/guix.texi:21924
+#: doc/guix.texi:23744
 msgid "This is the list of kernel modules included in the initrd by default."
-msgstr ""
+msgstr "Der Vorgabewert für die Liste der Kernel-Module, die in der initrd enthalten sein sollen."
 
 #. type: Plain text
-#: doc/guix.texi:21932
+#: doc/guix.texi:23752
 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 ""
+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:21937
+#: doc/guix.texi:23757
 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 ""
+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: example
-#: doc/guix.texi:21945
+#: doc/guix.texi:23765
 #, no-wrap
 msgid ""
 "(initrd (lambda (file-systems . rest)\n"
@@ -39522,345 +43507,378 @@ msgid ""
 "                 #:qemu-networking? #t\n"
 "                 rest)))\n"
 msgstr ""
+"(initrd (lambda (file-systems . rest)\n"
+"          ;; Eine gewöhnliche initrd, aber das Netzwerk wird\n"
+"          ;; mit den Parametern initialisiert, die QEMU\n"
+"          ;; standardmäßig erwartet.\n"
+"          (apply base-initrd file-systems\n"
+"                 #:qemu-networking? #t\n"
+"                 rest)))\n"
 
 #. type: Plain text
-#: doc/guix.texi:21950
+#: doc/guix.texi:23770
 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 ""
+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:21957
+#: doc/guix.texi:23777
 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 ""
+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:21962
+#: doc/guix.texi:23782
 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 ""
+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:21964
+#: doc/guix.texi:23784
 #, no-wrap
 msgid "--load=@var{boot}"
-msgstr ""
+msgstr "--load=@var{boot}"
 
 #. type: table
-#: doc/guix.texi:21967
+#: doc/guix.texi:23787
 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 ""
+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:21971
-msgid "GuixSD 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 ""
+#: doc/guix.texi:23791
+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:21972
+#: doc/guix.texi:23792
 #, no-wrap
 msgid "--root=@var{root}"
-msgstr ""
+msgstr "--root=@var{Wurzel}"
 
 #. type: table
-#: doc/guix.texi:21976
+#: doc/guix.texi:23796
 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 ""
+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."
 
 #. type: table
-#: doc/guix.texi:21980
+#: doc/guix.texi:23800
 msgid "Have @file{/run/booted-system} and @file{/run/current-system} point to @var{system}."
-msgstr ""
+msgstr "@file{/run/booted-system} und @file{/run/current-system} auf das @var{System} zeigen lassen."
 
 #. type: item
-#: doc/guix.texi:21981
+#: doc/guix.texi:23801
 #, no-wrap
 msgid "modprobe.blacklist=@var{modules}@dots{}"
-msgstr ""
+msgstr "modprobe.blacklist=@var{Module}@dots{}"
 
 #. type: cindex
-#: doc/guix.texi:21982
+#: doc/guix.texi:23802
 #, no-wrap
 msgid "module, black-listing"
-msgstr ""
+msgstr "Kernel-Module, Sperrliste"
 
 #. type: cindex
-#: doc/guix.texi:21983
+#: doc/guix.texi:23803
 #, no-wrap
 msgid "black list, of kernel modules"
-msgstr ""
+msgstr "Sperrliste, von Kernel-Modulen"
 
 #. type: table
-#: doc/guix.texi:21988
+#: doc/guix.texi:23808
 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 ""
+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:21989
+#: doc/guix.texi:23809
 #, no-wrap
 msgid "--repl"
-msgstr ""
+msgstr "--repl"
 
 #. type: table
-#: doc/guix.texi:21995
+#: doc/guix.texi:23815
 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 ""
+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."
 
 #. type: Plain text
-#: doc/guix.texi:22001
+#: doc/guix.texi:23821
 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 ""
+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:22004
+#: doc/guix.texi:23824
 #, no-wrap
 msgid "{Scheme Procedure} raw-initrd @var{file-systems} @"
-msgstr ""
+msgstr "{Scheme-Prozedur} raw-initrd @var{Dateisysteme} @"
 
 #. type: deffn
-#: doc/guix.texi:22016
-msgid "[#:linux-modules '()] [#:mapped-devices '()] @ [#: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:23837
+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."
+
+#. type: deffn
+#: doc/guix.texi:23843 doc/guix.texi:23867
+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:22020
+#: doc/guix.texi:23847
 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 ""
+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:22023
+#: doc/guix.texi:23850
 msgid "When @var{volatile-root?} is true, the root file system is writable but any changes to it are lost."
-msgstr ""
+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:22025
+#: doc/guix.texi:23852
 #, no-wrap
 msgid "{Scheme Procedure} base-initrd @var{file-systems} @"
-msgstr ""
+msgstr "{Scheme-Prozedur} base-initrd @var{Dateisysteme} @"
 
 #. type: deffn
-#: doc/guix.texi:22033
-msgid "[#:mapped-devices '()] [#: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 ""
+#: doc/guix.texi:23861
+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."
 
 #. type: deffn
-#: doc/guix.texi:22035
+#: doc/guix.texi:23869
 msgid "@var{qemu-networking?} and @var{volatile-root?} behaves as in @code{raw-initrd}."
-msgstr ""
+msgstr "@var{qemu-networking?} und @var{volatile-root?} verhalten sich wie bei @code{raw-initrd}."
 
 #. type: deffn
-#: doc/guix.texi:22040
+#: doc/guix.texi:23874
 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 ""
+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:22047
+#: doc/guix.texi:23881
 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 ""
+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:22048
+#: doc/guix.texi:23882
 #, no-wrap
 msgid "{Scheme Procedure} expression->initrd @var{exp} @"
-msgstr ""
+msgstr "{Scheme-Prozedur} expression->initrd @var{G-Ausdruck} @"
 
 #. type: deffn
-#: doc/guix.texi:22054
+#: doc/guix.texi:23888
 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 ""
+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."
 
 #. type: cindex
-#: doc/guix.texi:22060
+#: doc/guix.texi:23894
 #, no-wrap
 msgid "boot loader"
-msgstr ""
+msgstr "Bootloader"
 
 #. type: Plain text
-#: doc/guix.texi:22067
+#: doc/guix.texi:23901
 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 ""
+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:22072
+#: doc/guix.texi:23906
 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 ""
+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:22073
+#: doc/guix.texi:23907
 #, no-wrap
 msgid "{Data Type} bootloader-configuration"
-msgstr ""
+msgstr "{Datentyp} bootloader-configuration"
 
 #. type: deftp
-#: doc/guix.texi:22075
+#: doc/guix.texi:23909
 msgid "The type of a bootloader configuration declaration."
-msgstr ""
+msgstr "Der Typ der Deklaration einer Bootloader-Konfiguration."
 
 #. type: cindex
-#: doc/guix.texi:22079
+#: doc/guix.texi:23913
 #, no-wrap
 msgid "EFI, bootloader"
-msgstr ""
+msgstr "EFI, Bootloader"
 
 #. type: cindex
-#: doc/guix.texi:22080
+#: doc/guix.texi:23914
 #, no-wrap
 msgid "UEFI, bootloader"
-msgstr ""
+msgstr "UEFI, Bootloader"
 
 #. type: cindex
-#: doc/guix.texi:22081
+#: doc/guix.texi:23915
 #, no-wrap
 msgid "BIOS, bootloader"
-msgstr ""
+msgstr "BIOS, Bootloader"
 
 #. type: table
-#: doc/guix.texi:22085
+#: doc/guix.texi:23919
 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 ""
+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:22091
+#: doc/guix.texi:23925
 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 ""
+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:22095
+#: doc/guix.texi:23929
 msgid "@code{grub-bootloader} allows you to boot in particular Intel-based machines in ``legacy'' BIOS mode."
-msgstr ""
+msgstr "Mit @code{grub-bootloader} können Sie vor allem auf Intel-basierten Maschinen im alten »Legacy«-BIOS-Modus booten."
 
 #. type: cindex
-#: doc/guix.texi:22096
+#: doc/guix.texi:23930
 #, no-wrap
 msgid "ARM, bootloaders"
-msgstr ""
+msgstr "ARM, Bootloader"
 
 #. type: cindex
-#: doc/guix.texi:22097
+#: doc/guix.texi:23931
 #, no-wrap
 msgid "AArch64, bootloaders"
-msgstr ""
+msgstr "AArch64, Bootloader"
 
 #. type: table
-#: doc/guix.texi:22102
+#: doc/guix.texi:23936
 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{http://www.denx.de/wiki/U-Boot/, U-Boot bootloader}."
-msgstr ""
+msgstr "Verfügbare Bootloader werden in den Modulen @code{(gnu bootloader @dots{})} beschrieben. Insbesondere enthält @code{(gnu bootloader u-boot)} Definitionen für eine Vielzahl von ARM- und AArch64-Systemen, die den @uref{http://www.denx.de/wiki/U-Boot/, U-Boot-Bootloader} benutzen."
 
 #. type: table
-#: doc/guix.texi:22106
+#: doc/guix.texi:23940
 msgid "This is a string denoting the target onto which to install the bootloader."
-msgstr ""
+msgstr "Eine Zeichenkette, die angibt, auf welches Ziel der Bootloader installiert werden soll."
 
 #. type: table
-#: doc/guix.texi:22113
+#: doc/guix.texi:23947
 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 ""
+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}."
 
 #. type: item
-#: doc/guix.texi:22114
+#: doc/guix.texi:23948
 #, no-wrap
 msgid "@code{menu-entries} (default: @code{()})"
-msgstr ""
+msgstr "@code{menu-entries} (Vorgabe: @code{()})"
 
 #. type: table
-#: doc/guix.texi:22118
+#: doc/guix.texi:23952
 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 ""
+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:22119
+#: doc/guix.texi:23953
 #, no-wrap
 msgid "@code{default-entry} (default: @code{0})"
-msgstr ""
+msgstr "@code{default-entry} (Vorgabe: @code{0})"
 
 #. type: table
-#: doc/guix.texi:22122
+#: doc/guix.texi:23956
 msgid "The index of the default boot menu entry.  Index 0 is for the entry of the current system."
-msgstr ""
+msgstr "Die Position des standardmäßig ausgewählten Bootmenü-Eintrags. An Position 0 steht der Eintrag der aktuellen Systemgeneration."
 
 #. type: item
-#: doc/guix.texi:22123
+#: doc/guix.texi:23957
 #, no-wrap
 msgid "@code{timeout} (default: @code{5})"
-msgstr ""
+msgstr "@code{timeout} (Vorgabe: @code{5})"
 
 #. type: table
-#: doc/guix.texi:22126
+#: doc/guix.texi:23960
 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 ""
+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."
+
+#. type: cindex
+#: doc/guix.texi:23961
+#, no-wrap
+msgid "keyboard layout, for the bootloader"
+msgstr "Tastaturbelegung, beim Bootloader"
+
+#. type: table
+#: doc/guix.texi:23965
+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:23968
+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:23972
+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:22127
+#: doc/guix.texi:23974
 #, no-wrap
 msgid "@code{theme} (default: @var{#f})"
-msgstr ""
+msgstr "@code{theme} (Vorgabe: @var{#f})"
 
 #. type: table
-#: doc/guix.texi:22131
+#: doc/guix.texi:23978
 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 ""
+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:22132
+#: doc/guix.texi:23979
 #, no-wrap
 msgid "@code{terminal-outputs} (default: @code{'gfxterm})"
-msgstr ""
+msgstr "@code{terminal-outputs} (Vorgabe: @code{'gfxterm})"
 
 #. type: table
-#: doc/guix.texi:22139
+#: doc/guix.texi:23986
 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 ""
+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,GNU GRUB manual})."
 
 #. type: item
-#: doc/guix.texi:22140
+#: doc/guix.texi:23987
 #, no-wrap
 msgid "@code{terminal-inputs} (default: @code{'()})"
-msgstr ""
+msgstr "@code{terminal-inputs} (Vorgabe: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:22148
+#: doc/guix.texi:23995
 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 ""
+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,GNU GRUB manual})."
 
 #. type: item
-#: doc/guix.texi:22149
+#: doc/guix.texi:23996
 #, no-wrap
 msgid "@code{serial-unit} (default: @code{#f})"
-msgstr ""
+msgstr "@code{serial-unit} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:22153
+#: doc/guix.texi:24000
 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 ""
+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,GNU GRUB manual})."
 
 #. type: item
-#: doc/guix.texi:22154
+#: doc/guix.texi:24001
 #, no-wrap
 msgid "@code{serial-speed} (default: @code{#f})"
-msgstr ""
+msgstr "@code{serial-speed} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:22158
+#: doc/guix.texi:24005
 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 ""
+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,GNU GRUB manual})."
 
 #. type: cindex
-#: doc/guix.texi:22162
+#: doc/guix.texi:24009
 #, no-wrap
 msgid "dual boot"
-msgstr ""
+msgstr "Dual-Boot"
 
 #. type: cindex
-#: doc/guix.texi:22163
+#: doc/guix.texi:24010
 #, no-wrap
 msgid "boot menu"
-msgstr ""
+msgstr "Bootmenü"
 
 #. type: Plain text
-#: doc/guix.texi:22169
+#: doc/guix.texi:24016
 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 ""
+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: example
-#: doc/guix.texi:22176
+#: doc/guix.texi:24023
 #, no-wrap
 msgid ""
 "(menu-entry\n"
@@ -39869,149 +43887,150 @@ msgid ""
 "  (linux-arguments '(\"root=/dev/sda2\"))\n"
 "  (initrd \"/boot/old/initrd\"))\n"
 msgstr ""
+"(menu-entry\n"
+"  (label \"Die _andere_ Distribution\")\n"
+"  (linux \"/boot/old/vmlinux-2.6.32\")\n"
+"  (linux-arguments '(\"root=/dev/sda2\"))\n"
+"  (initrd \"/boot/old/initrd\"))\n"
 
 #. type: Plain text
-#: doc/guix.texi:22179
+#: doc/guix.texi:24026
 msgid "Details below."
-msgstr ""
+msgstr "Details finden Sie unten."
 
 #. type: deftp
-#: doc/guix.texi:22180
+#: doc/guix.texi:24027
 #, no-wrap
 msgid "{Data Type} menu-entry"
-msgstr ""
+msgstr "{Datentyp} menu-entry"
 
 #. type: deftp
-#: doc/guix.texi:22182
+#: doc/guix.texi:24029
 msgid "The type of an entry in the bootloader menu."
-msgstr ""
-
-#. type: code{#1}
-#: doc/guix.texi:22185
-#, no-wrap
-msgid "label"
-msgstr ""
+msgstr "Der Typ eines Eintrags im Bootloadermenü."
 
 #. type: table
-#: doc/guix.texi:22187
+#: doc/guix.texi:24034
 msgid "The label to show in the menu---e.g., @code{\"GNU\"}."
-msgstr ""
+msgstr "Die Beschriftung, die im Menü gezeigt werden soll — z.B.@: @code{\"GNU\"}."
 
 #. type: code{#1}
-#: doc/guix.texi:22188
+#: doc/guix.texi:24035
 #, no-wrap
 msgid "linux"
-msgstr ""
+msgstr "linux"
 
 #. type: table
-#: doc/guix.texi:22190
+#: doc/guix.texi:24037
 msgid "The Linux kernel image to boot, for example:"
-msgstr ""
+msgstr "Das Linux-Kernel-Abbild, was gebootet werden soll, zum Beispiel:"
 
 #. type: example
-#: doc/guix.texi:22193
+#: doc/guix.texi:24040
 #, no-wrap
 msgid "(file-append linux-libre \"/bzImage\")\n"
-msgstr ""
+msgstr "(file-append linux-libre \"/bzImage\")\n"
 
 #. type: table
-#: doc/guix.texi:22198
+#: doc/guix.texi:24045
 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 ""
+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, GNU GRUB manual}), zum Beispiel:"
 
 #. type: example
-#: doc/guix.texi:22201
+#: doc/guix.texi:24048
 #, no-wrap
 msgid "\"(hd0,msdos1)/boot/vmlinuz\"\n"
-msgstr ""
+msgstr "\"(hd0,msdos1)/boot/vmlinuz\"\n"
 
 #. type: table
-#: doc/guix.texi:22205
+#: doc/guix.texi:24052
 msgid "If the device is specified explicitly as above, then the @code{device} field is ignored entirely."
-msgstr ""
+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:22206
+#: doc/guix.texi:24053
 #, no-wrap
 msgid "@code{linux-arguments} (default: @code{()})"
-msgstr ""
+msgstr "@code{linux-arguments} (Vorgabe: @code{()})"
 
 #. type: table
-#: doc/guix.texi:22209
+#: doc/guix.texi:24056
 msgid "The list of extra Linux kernel command-line arguments---e.g., @code{(\"console=ttyS0\")}."
-msgstr ""
+msgstr "Die Liste zusätzlicher Linux-Kernel-Befehlszeilenargumente — z.B.@: @code{(\"console=ttyS0\")}."
 
 #. type: table
-#: doc/guix.texi:22213
+#: doc/guix.texi:24060
 msgid "A G-Expression or string denoting the file name of the initial RAM disk to use (@pxref{G-Expressions})."
-msgstr ""
+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:22213
+#: doc/guix.texi:24060
 #, no-wrap
 msgid "@code{device} (default: @code{#f})"
-msgstr ""
+msgstr "@code{device} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:22216
+#: doc/guix.texi:24063
 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 ""
+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, GNU GRUB manual})."
 
 #. type: table
-#: doc/guix.texi:22222
+#: doc/guix.texi:24069
 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 ""
+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, GNU GRUB manual}). Ein vom Betriebssystem vergebener Gerätename wie @file{/dev/sda1} ist aber @emph{nicht} erlaubt."
 
 #. type: Plain text
-#: doc/guix.texi:22229
-msgid "Fow now only GRUB has theme support. GRUB themes are created using the @code{grub-theme} form, which is not documented yet."
-msgstr ""
+#: doc/guix.texi:24076
+#, fuzzy
+#| msgid "Fow now only GRUB has theme support. GRUB themes are created using the @code{grub-theme} form, which is not documented yet."
+msgid "For now only GRUB has theme support. GRUB themes are created using the @code{grub-theme} form, which is not 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 dokumentiert ist."
 
 #. type: defvr
-#: doc/guix.texi:22234
+#: doc/guix.texi:24081
 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 ""
+msgstr "Das vorgegebene GRUB-Thema, das vom Betriebssystem benutzt wird, wenn kein @code{theme}-Feld im @code{bootloader-configuration}-Verbundsobjekt angegeben wurde."
 
 #. type: defvr
-#: doc/guix.texi:22237
+#: doc/guix.texi:24084
 msgid "It comes with a fancy background image displaying the GNU and Guix logos."
-msgstr ""
+msgstr "Es wird von einem feschen Hintergrundbild begleitet, das die Logos von GNU und Guix zeigt."
 
-#. type: subsection
-#: doc/guix.texi:22241
+#. type: section
+#: doc/guix.texi:24088
 #, no-wrap
 msgid "Invoking @code{guix system}"
 msgstr "@code{guix system} aufrufen"
 
 #. type: Plain text
-#: doc/guix.texi:22246
+#: doc/guix.texi:24093
 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:22249
+#: doc/guix.texi:24096
 #, no-wrap
 msgid "guix system @var{options}@dots{} @var{action} @var{file}\n"
 msgstr "guix system @var{Optionen}@dots{} @var{Aktion} @var{Datei}\n"
 
 #. type: Plain text
-#: doc/guix.texi:22255
+#: doc/guix.texi:24102
 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:22257
+#: doc/guix.texi:24104
 #, no-wrap
 msgid "search"
 msgstr "search"
 
 #. type: table
-#: doc/guix.texi:22260
+#: doc/guix.texi:24107
 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:22272
+#: doc/guix.texi:24119
 #, no-wrap
 msgid ""
 "$ guix system search console font\n"
@@ -40039,7 +44058,7 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix.texi:22278
+#: doc/guix.texi:24125
 #, no-wrap
 msgid ""
 "name: mingetty\n"
@@ -40057,7 +44076,7 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix.texi:22285
+#: doc/guix.texi:24132
 #, no-wrap
 msgid ""
 "name: login\n"
@@ -40077,194 +44096,254 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix.texi:22287
+#: doc/guix.texi:24134
 #, no-wrap
 msgid "@dots{}\n"
 msgstr "@dots{}\n"
 
 #. type: table
-#: doc/guix.texi:22292
+#: doc/guix.texi:24139
 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 (@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, GNU recutils manual})."
 
 #. type: item
-#: doc/guix.texi:22293
+#: doc/guix.texi:24140
 #, no-wrap
 msgid "reconfigure"
 msgstr "reconfigure"
 
 #. type: table
-#: doc/guix.texi:22298
-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 GuixSD.}."
-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 GuixSD bereits läuft.}."
+#: doc/guix.texi:24145
+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: table
-#: doc/guix.texi:22305
-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 (eg. 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})."
+#: doc/guix.texi:24152
+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:22311
+#: doc/guix.texi:24158
 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} (@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:22316
+#: doc/guix.texi:24163
 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: quotation
-#: doc/guix.texi:22324
+#: doc/guix.texi:24171
 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 (@pxref{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."
+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: item
-#: doc/guix.texi:22326
+#: doc/guix.texi:24173
 #, no-wrap
 msgid "switch-generation"
 msgstr "switch-generation"
 
 #. type: table
-#: doc/guix.texi:22335
+#: doc/guix.texi:24182
 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 "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:22339
+#: doc/guix.texi:24186
 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:22343
+#: doc/guix.texi:24190
 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:22346
+#: doc/guix.texi:24193
 #, no-wrap
 msgid "guix system switch-generation 7\n"
 msgstr "guix system switch-generation 7\n"
 
 #. type: table
-#: doc/guix.texi:22354
+#: doc/guix.texi:24201
 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:22357
+#: doc/guix.texi:24204
 #, no-wrap
 msgid "guix system switch-generation -- -1\n"
 msgstr "guix system switch-generation -- -1\n"
 
 #. type: table
-#: doc/guix.texi:22365
+#: doc/guix.texi:24212
 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."
 
 #. type: table
-#: doc/guix.texi:22367
+#: doc/guix.texi:24214
 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:22368
+#: doc/guix.texi:24215
 #, no-wrap
 msgid "roll-back"
 msgstr "roll-back"
 
 #. type: table
-#: doc/guix.texi:22374
+#: doc/guix.texi:24221
 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:22378
+#: doc/guix.texi:24225
 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:24226
+#, no-wrap
+msgid "delete-generations"
+msgstr "delete-generations"
+
+#. type: cindex
+#: doc/guix.texi:24227
+#, no-wrap
+msgid "deleting system generations"
+msgstr "Löschen von Systemgenerationen"
+
+#. type: cindex
+#: doc/guix.texi:24228
+#, no-wrap
+msgid "saving space"
+msgstr "Platz sparen"
+
 #. type: table
-#: doc/guix.texi:22383
+#: doc/guix.texi:24232
+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:24236
+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:"
+
+#. type: example
+#: doc/guix.texi:24239
+#, no-wrap
+msgid "guix system delete-generations\n"
+msgstr "guix system delete-generations\n"
+
+#. type: table
+#: doc/guix.texi:24243
+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:24246
+#, no-wrap
+msgid "guix system delete-generations 2m\n"
+msgstr "guix system delete-generations 2m\n"
+
+#. type: table
+#: doc/guix.texi:24251
+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:24256
 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:22384
+#: doc/guix.texi:24257
 #, no-wrap
 msgid "init"
 msgstr "init"
 
 #. type: table
-#: doc/guix.texi:22388
-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 GuixSD.  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 GuixSD. Zum Beispiel:"
+#: doc/guix.texi:24261
+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:22391
+#: doc/guix.texi:24264
 #, 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:22398
+#: doc/guix.texi:24271
 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}."
+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:22402
+#: doc/guix.texi:24275
 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:22403
+#: doc/guix.texi:24276
 #, no-wrap
 msgid "vm"
 msgstr "vm"
 
 #. type: cindex
-#: doc/guix.texi:22404 doc/guix.texi:22668
+#: doc/guix.texi:24277 doc/guix.texi:24545
 #, no-wrap
 msgid "virtual machine"
 msgstr "virtuelle Maschine"
 
 #. type: cindex
-#: doc/guix.texi:22405
+#: doc/guix.texi:24278
 #, no-wrap
 msgid "VM"
 msgstr "VM"
 
 #. type: anchor{#1}
-#: doc/guix.texi:22412
+#: doc/guix.texi:24282
 msgid "guix system vm"
 msgstr "guix system vm"
 
 #. type: table
-#: doc/guix.texi:22412
-msgid "Build a virtual machine that contains the operating system declared in @var{file}, and return a script to run that virtual machine (VM).  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 "Eine virtuelle Maschine (VM) erstellen, die das in der @var{Datei} deklarierte Betriebssystem enthält, und ein Skript liefern, das diese virtuelle Maschine startet. 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:"
+#: doc/guix.texi:24282
+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:24290
+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:24295
+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:22415
+#: doc/guix.texi:24298
 #, 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"
 
 #. type: table
-#: doc/guix.texi:22418
+#: doc/guix.texi:24301
 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:22423
+#: doc/guix.texi:24306
 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."
 
 #. type: table
-#: doc/guix.texi:22427
+#: doc/guix.texi:24310
 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:22431
+#: doc/guix.texi:24314
 #, no-wrap
 msgid ""
 "guix system vm my-config.scm \\\n"
@@ -40274,112 +44353,112 @@ msgstr ""
 "   --expose=$HOME --share=$HOME/tmp=/austausch\n"
 
 #. type: table
-#: doc/guix.texi:22436
+#: doc/guix.texi:24319
 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:22442
+#: doc/guix.texi:24325
 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."
 
 #. type: cindex
-#: doc/guix.texi:22443
+#: doc/guix.texi:24326
 #, no-wrap
 msgid "System images, creation in various formats"
 msgstr "System-Disk-Images, Erstellung in verschiedenen Formaten"
 
 #. type: cindex
-#: doc/guix.texi:22444
+#: doc/guix.texi:24327
 #, no-wrap
 msgid "Creating system images in various formats"
 msgstr "Erzeugen von System-Disk-Images in verschiedenen Formaten"
 
 #. type: item
-#: doc/guix.texi:22445
+#: doc/guix.texi:24328
 #, no-wrap
 msgid "vm-image"
 msgstr "vm-image"
 
 #. type: itemx
-#: doc/guix.texi:22446
+#: doc/guix.texi:24329
 #, no-wrap
 msgid "disk-image"
 msgstr "disk-image"
 
 #. type: itemx
-#: doc/guix.texi:22447
+#: doc/guix.texi:24330
 #, no-wrap
 msgid "docker-image"
 msgstr "docker-image"
 
 #. type: table
-#: doc/guix.texi:22455
+#: doc/guix.texi:24338
 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:22458
+#: doc/guix.texi:24341
 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:22462
-msgid "When using @code{vm-image}, the returned image is in qcow2 format, which the QEMU emulator can efficiently use. @xref{Running GuixSD 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 @xref{Running GuixSD in a VM} finden Sie mehr Informationen, wie Sie das Disk-Image in einer virtuellen Maschine laufen lassen."
+#: doc/guix.texi:24345
+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:22467
+#: doc/guix.texi:24350
 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:"
 
 #. type: example
-#: doc/guix.texi:22470
+#: doc/guix.texi:24353
 #, 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"
 
 #. type: table
-#: doc/guix.texi:22477
+#: doc/guix.texi:24360
 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:22483
+#: doc/guix.texi:24366
 #, no-wrap
 msgid ""
-"image_id=\"$(docker load < guixsd-docker-image.tar.gz)\"\n"
+"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 < guixsd-docker-image.tar.gz)\"\n"
+"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"
 
 #. type: table
-#: doc/guix.texi:22493
-msgid "This command starts a new Docker container from the specified image.  It will boot the GuixSD 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}."
-msgstr "Dieser Befehl startet einen neuen Docker-Container aus dem angegebenen Abbild. Damit wird das GuixSD-System auf die normale Weise hochgefahren, d.h. zunächst werden alle Dienste gestartet, die Sie in der Konfiguration des Betriebssystems angegeben haben. 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 run} die Befehlszeilenoption @option{--privileged} übergeben."
+#: doc/guix.texi:24376
+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}."
+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. 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 run} die Befehlszeilenoption @option{--privileged} übergeben."
 
 #. type: table
-#: doc/guix.texi:22501
+#: doc/guix.texi:24384
 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:22505
+#: doc/guix.texi:24388
 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."
 
 #. type: table
-#: doc/guix.texi:22509
+#: doc/guix.texi:24392
 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} (@pxref{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:"
+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:22513
+#: doc/guix.texi:24396
 #, no-wrap
 msgid ""
 "guix system container my-config.scm \\\n"
@@ -40389,394 +44468,410 @@ msgstr ""
 "   --expose=$HOME --share=$HOME/tmp=/austausch\n"
 
 #. type: quotation
-#: doc/guix.texi:22517
+#: doc/guix.texi:24400
 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:22524
+#: doc/guix.texi:24407
 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 @pxref{Common Build Options}). Des Weiteren kann als @var{Optionen} Folgendes angegeben werden:"
+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:22533
-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 GuixSD 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 von GuixSD erstellt @pxref{Building the Installation Image})."
+#: doc/guix.texi:24416
+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:22538
+#: doc/guix.texi:24421
 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 "Versuche, für das angegebene @var{System} statt für denselben Systemtyp wie auf dem Wirtssystem zu erstellen. Dies funktioniert wie bei @command{guix build} (@pxref{Invoking guix build})."
+msgstr "Versuche, 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: item
-#: doc/guix.texi:22539
+#: doc/guix.texi:24422
 #, no-wrap
 msgid "--derivation"
 msgstr "--derivation"
 
 #. type: table
-#: doc/guix.texi:22543
+#: doc/guix.texi:24426
 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: item
-#: doc/guix.texi:22544
+#: doc/guix.texi:24427
 #, no-wrap
 msgid "--file-system-type=@var{type}"
 msgstr "--file-system-type=@var{Typ}"
 
 #. type: table
-#: doc/guix.texi:22548
+#: doc/guix.texi:24431
 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."
 
 #. type: table
-#: doc/guix.texi:22550
+#: doc/guix.texi:24433
 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}."
 
 #. type: cindex
-#: doc/guix.texi:22551
+#: doc/guix.texi:24434
 #, no-wrap
 msgid "ISO-9660 format"
 msgstr "ISO-9660-Format"
 
 #. type: cindex
-#: doc/guix.texi:22552
+#: doc/guix.texi:24435
 #, no-wrap
 msgid "CD image format"
 msgstr "CD-Abbild-Format"
 
 #. type: cindex
-#: doc/guix.texi:22553
+#: doc/guix.texi:24436
 #, no-wrap
 msgid "DVD image format"
 msgstr "DVD-Abbild-Format"
 
 #. type: table
-#: doc/guix.texi:22556
+#: doc/guix.texi:24439
 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."
 
 #. type: item
-#: doc/guix.texi:22557
+#: doc/guix.texi:24440
 #, no-wrap
 msgid "--image-size=@var{size}"
 msgstr "--image-size=@var{Größe}"
 
 #. type: table
-#: doc/guix.texi:22562
+#: doc/guix.texi:24445
 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 @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})."
 
 #. type: table
-#: doc/guix.texi:22566
+#: doc/guix.texi:24449
 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: item
-#: doc/guix.texi:22572
+#: doc/guix.texi:24455
 #, no-wrap
 msgid "--skip-checks"
 msgstr "--skip-checks"
 
 #. type: table
-#: doc/guix.texi:22574
+#: doc/guix.texi:24457
 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:22581
+#: doc/guix.texi:24464
 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 (@pxref{File Systems}) und dass alle Linux-Kernelmodule, die beim Booten benötigt werden könnten, auch im @code{initrd-modules}-Feld aufgeführt sind (@pxref{Initial RAM Disk}). Mit dieser Befehlszeilenoption werden diese Tests allesamt übersprungen."
+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: cindex
+#: doc/guix.texi:24465
+#, no-wrap
+msgid "on-error"
+msgstr "on-error"
+
+#. type: cindex
+#: doc/guix.texi:24466
+#, no-wrap
+msgid "on-error strategy"
+msgstr "on-error-Strategie"
+
+#. type: cindex
+#: doc/guix.texi:24467
+#, no-wrap
+msgid "error strategy"
+msgstr "Fehlerstrategie"
 
 #. type: item
-#: doc/guix.texi:22582
+#: doc/guix.texi:24468
 #, no-wrap
 msgid "--on-error=@var{strategy}"
 msgstr "--on-error=@var{Strategie}"
 
 #. type: table
-#: doc/guix.texi:22585
+#: doc/guix.texi:24471
 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:22587
+#: doc/guix.texi:24473
 #, no-wrap
 msgid "nothing-special"
 msgstr "nothing-special"
 
 #. type: table
-#: doc/guix.texi:22589
+#: doc/guix.texi:24475
 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:22590
+#: doc/guix.texi:24476
 #, no-wrap
 msgid "backtrace"
 msgstr "backtrace"
 
 #. type: table
-#: doc/guix.texi:22592
+#: doc/guix.texi:24478
 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:22593
+#: doc/guix.texi:24479
 #, no-wrap
 msgid "debug"
 msgstr "debug"
 
 #. type: table
-#: doc/guix.texi:22599
+#: doc/guix.texi:24485
 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 @xref{Debug Commands,,, guile, GNU Guile Reference Manual} für eine Liste verfügbarer Befehle zur Fehlersuche."
-
-#. type: quotation
-#: doc/guix.texi:22609
-msgid "All the actions above, except @code{build} and @code{init}, 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 "Alle oben genannten Aktionen außer @code{build} und @code{init} 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 (@pxref{Build Environment Setup})."
+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."
 
 #. type: Plain text
-#: doc/guix.texi:22615
-msgid "Once you have built, configured, re-configured, and re-re-configured your GuixSD 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 GuixSD-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:"
+#: doc/guix.texi:24492
+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:22618
+#: doc/guix.texi:24495
 #, no-wrap
 msgid "list-generations"
 msgstr "list-generations"
 
 #. type: table
-#: doc/guix.texi:22623
+#: doc/guix.texi:24500
 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} (@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:22628
+#: doc/guix.texi:24505
 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:22631
+#: doc/guix.texi:24508
 #, no-wrap
 msgid "$ guix system list-generations 10d\n"
 msgstr "$ guix system list-generations 10d\n"
 
 #. type: Plain text
-#: doc/guix.texi:22638
+#: doc/guix.texi:24515
 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:22640
+#: doc/guix.texi:24517
 msgid "system-extension-graph"
 msgstr "system-extension-graph"
 
 #. type: item
-#: doc/guix.texi:22642
+#: doc/guix.texi:24519
 #, no-wrap
 msgid "extension-graph"
 msgstr "extension-graph"
 
 #. type: table
-#: doc/guix.texi:22647
+#: doc/guix.texi:24524
 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 (@pxref{Service Composition}, für mehr Informationen zu Diensterweiterungen)."
+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:22649
+#: doc/guix.texi:24526
 msgid "The command:"
 msgstr "Der Befehl:"
 
 #. type: example
-#: doc/guix.texi:22652
+#: doc/guix.texi:24529
 #, 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"
 
 #. type: table
-#: doc/guix.texi:22655
+#: doc/guix.texi:24532
 msgid "produces a PDF file showing the extension relations among services."
 msgstr "erzeugt eine PDF-Datei, in der die Erweiterungsrelation unter Diensten angezeigt wird."
 
 #. type: anchor{#1}
-#: doc/guix.texi:22657
+#: doc/guix.texi:24534
 msgid "system-shepherd-graph"
 msgstr "system-shepherd-graph"
 
 #. type: item
-#: doc/guix.texi:22657
+#: doc/guix.texi:24534
 #, no-wrap
 msgid "shepherd-graph"
 msgstr "shepherd-graph"
 
 #. type: table
-#: doc/guix.texi:22662
+#: doc/guix.texi:24539
 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 @xref{Shepherd Services} für mehr Informationen sowie einen Beispielgraphen."
+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: subsection
-#: doc/guix.texi:22666
+#. type: section
+#: doc/guix.texi:24543
 #, no-wrap
-msgid "Running GuixSD in a Virtual Machine"
-msgstr ""
+msgid "Running Guix in a Virtual Machine"
+msgstr "Guix in einer virtuellen Maschine betreiben"
 
 #. type: Plain text
-#: doc/guix.texi:22676
-msgid "To run GuixSD in a virtual machine (VM), one can either use the pre-built GuixSD VM image distributed at @indicateurl{https://alpha.gnu.org/gnu/guix/guixsd-vm-image-@value{VERSION}.@var{system}.xz} , or 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{http://qemu.org/, QEMU emulator} can efficiently use."
-msgstr ""
+#: doc/guix.texi:24553
+msgid "To run Guix in a virtual machine (VM), one can either use the pre-built Guix VM image distributed at @indicateurl{https://alpha.gnu.org/gnu/guix/guix-system-vm-image-@value{VERSION}.@var{system}.xz} , or 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{http://qemu.org/, QEMU emulator} can efficiently use."
+msgstr "Um Guix in einer virtuellen Maschine (VM) auszuführen, können Sie entweder das vorerstellte Guix-VM-Abbild benutzen, das auf  @indicateurl{https://alpha.gnu.org/gnu/guix/guix-system-vm-image-@value{VERSION}.@var{System}.xz} angeboten wird, oder Ihr eigenes Abbild 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{http://qemu.org/, QEMU-Emulator} effizient benutzen kann."
 
 #. type: cindex
-#: doc/guix.texi:22677
+#: doc/guix.texi:24554
 #, no-wrap
 msgid "QEMU"
-msgstr ""
+msgstr "QEMU"
 
 #. type: Plain text
-#: doc/guix.texi:22684
+#: doc/guix.texi:24561
 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 ""
+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:22689
+#: doc/guix.texi:24566
 #, no-wrap
 msgid ""
 "$ qemu-system-x86_64 \\\n"
 "   -net user -net nic,model=virtio \\\n"
 "   -enable-kvm -m 256 /tmp/qemu-image\n"
 msgstr ""
+"$ qemu-system-x86_64 \\\n"
+"   -net user -net nic,model=virtio \\\n"
+"   -enable-kvm -m 256 /tmp/qemu-image\n"
 
 #. type: Plain text
-#: doc/guix.texi:22692
+#: doc/guix.texi:24569
 msgid "Here is what each of these options means:"
-msgstr ""
+msgstr "Die Bedeutung jeder dieser Befehlszeilenoptionen ist folgende:"
 
 #. type: item
-#: doc/guix.texi:22694
+#: doc/guix.texi:24571
 #, no-wrap
 msgid "qemu-system-x86_64"
-msgstr ""
+msgstr "qemu-system-x86_64"
 
 #. type: table
-#: doc/guix.texi:22697
+#: doc/guix.texi:24574
 msgid "This specifies the hardware platform to emulate.  This should match the host."
-msgstr ""
+msgstr "Hiermit wird die zu emulierende Hardware-Plattform angegeben. Sie sollte zum Wirtsrechner passen."
 
 #. type: item
-#: doc/guix.texi:22698
+#: doc/guix.texi:24575
 #, no-wrap
 msgid "-net user"
-msgstr ""
+msgstr "-net user"
 
 #. type: table
-#: doc/guix.texi:22702
+#: doc/guix.texi:24579
 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 ""
+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."
 
 #. type: item
-#: doc/guix.texi:22703
+#: doc/guix.texi:24580
 #, no-wrap
 msgid "-net nic,model=virtio"
-msgstr ""
+msgstr "-net nic,model=virtio"
 
 #. type: table
-#: doc/guix.texi:22708
+#: doc/guix.texi:24585
 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 ""
+msgstr "Sie müssen ein Modell einer zu emulierenden Netzwerkschnittstelle angeben. Wenn Sie keine Netzwerkkarte (englisch »Network Interface Card«, kurz NIC) erzeugen lassen, wird das Booten fehlschlagen. Falls Ihre Hardware-Plattform x86_64 ist, können Sie eine Liste verfügbarer NIC-Modelle einsehen, indem Sie @command{qemu-system-x86_64 -net nic,model=help} ausführen."
 
 #. type: item
-#: doc/guix.texi:22709
+#: doc/guix.texi:24586
 #, no-wrap
 msgid "-enable-kvm"
-msgstr ""
+msgstr "-enable-kvm"
 
 #. type: table
-#: doc/guix.texi:22713
+#: doc/guix.texi:24590
 msgid "If your system has hardware virtualization extensions, enabling the virtual machine support (KVM) of the Linux kernel will make things run faster."
-msgstr ""
+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:22714
+#: doc/guix.texi:24591
 #, no-wrap
 msgid "-m 256"
-msgstr ""
+msgstr "-m 256"
 
 #. type: table
-#: doc/guix.texi:22717
+#: doc/guix.texi:24594
 msgid "RAM available to the guest OS, in mebibytes.  Defaults to 128@tie{}MiB, which may be insufficient for some operations."
-msgstr ""
+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:22718
+#: doc/guix.texi:24595
 #, no-wrap
 msgid "/tmp/qemu-image"
-msgstr ""
+msgstr "/tmp/qemu-image"
 
 #. type: table
-#: doc/guix.texi:22720
+#: doc/guix.texi:24597
 msgid "The file name of the qcow2 image."
-msgstr ""
+msgstr "Der Dateiname des qcow2-Abbilds."
 
 #. type: Plain text
-#: doc/guix.texi:22730
+#: doc/guix.texi:24607
 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 ""
+msgstr "Das voreingestellte @command{run-vm.sh}-Skript, das durch einen Aufruf von @command{guix system vm} erzeugt wird, fügt keine Befehlszeilenoption @command{-net 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` -net user}. Erwähnt werden sollte der Nachteil, dass bei Verwendung von @command{-net 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: subsubsection
-#: doc/guix.texi:22731
+#. type: subsection
+#: doc/guix.texi:24608
 #, no-wrap
 msgid "Connecting Through SSH"
-msgstr ""
+msgstr "Verbinden über SSH"
 
 #. type: Plain text
-#: doc/guix.texi:22740
+#: doc/guix.texi:24617
 msgid "To enable SSH inside a VM you need to add a SSH server like @code{(dropbear-service)} or @code{(lsh-service)} to your VM.  The @code{(lsh-service}) doesn't currently boot unsupervised.  It requires you to type some characters to initialize the randomness generator.  In addition you need to forward the SSH port, 22 by default, to the host.  You can do this with"
-msgstr ""
+msgstr "Um SSH in der virtuellen Maschine zu aktivieren, müssen Sie einen SSH-Server wie den @code{(dropbear-service)} oder den @code{(lsh-service)} zu ihr hinzufügen. Der @code{(lsh-service}) kann derzeit nicht ohne Benutzerinteraktion starten, weil der Benutzer erst ein paar Zeichen eintippen muss, um den Zufallsgenerator zu initialisieren. 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:22743
+#: doc/guix.texi:24620
 #, no-wrap
 msgid "`guix system vm config.scm` -net user,hostfwd=tcp::10022-:22\n"
-msgstr ""
+msgstr "`guix system vm config.scm` -net user,hostfwd=tcp::10022-:22\n"
 
 #. type: Plain text
-#: doc/guix.texi:22746
+#: doc/guix.texi:24623
 msgid "To connect to the VM you can run"
-msgstr ""
+msgstr "Um sich mit der virtuellen Maschine zu verbinden, benutzen Sie diesen Befehl:"
 
 #. type: example
-#: doc/guix.texi:22749
+#: doc/guix.texi:24626
 #, no-wrap
 msgid "ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -p 10022\n"
-msgstr ""
+msgstr "ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -p 10022\n"
 
 #. type: Plain text
-#: doc/guix.texi:22756
+#: doc/guix.texi:24633
 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 ""
+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: subsubsection
-#: doc/guix.texi:22757
+#. type: subsection
+#: doc/guix.texi:24634
 #, no-wrap
 msgid "Using @command{virt-viewer} with Spice"
-msgstr ""
+msgstr "@command{virt-viewer} mit Spice benutzen"
 
 #. type: Plain text
-#: doc/guix.texi:22763
+#: doc/guix.texi:24640
 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 ""
+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:22766
+#: doc/guix.texi:24643
 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 ""
+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:22772
+#: doc/guix.texi:24649
 #, no-wrap
 msgid ""
 "-device virtio-serial-pci,id=virtio-serial0,max_ports=16,bus=pci.0,addr=0x5\n"
@@ -40784,83 +44879,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:22775
+#: doc/guix.texi:24652
 msgid "You'll also need to add the @pxref{Miscellaneous Services, Spice service}."
-msgstr ""
+msgstr "Sie werden auch den @ref{Miscellaneous Services, Spice-Dienst} hinzufügen müssen."
 
 #. type: Plain text
-#: doc/guix.texi:22782
+#: doc/guix.texi:24659
 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 ""
+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:22794
+#: doc/guix.texi:24671
 #, no-wrap
 msgid "daemons"
-msgstr ""
+msgstr "Daemons"
 
 #. type: Plain text
-#: doc/guix.texi:22807
+#: doc/guix.texi:24684
 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 ""
+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:22808
+#: doc/guix.texi:24685
 #, no-wrap
 msgid "service extensions"
-msgstr ""
+msgstr "Diensterweiterungen"
 
 #. type: Plain text
-#: doc/guix.texi:22820
-msgid "GuixSD services are connected by @dfn{extensions}.  For instance, the secure shell service @emph{extends} the Shepherd---the GuixSD 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{lsh-service}}); 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 ""
+#: doc/guix.texi:24697
+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:22824
+#: doc/guix.texi:24701
 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 ""
+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:22826
+#: doc/guix.texi:24703
 msgid "@image{images/service-graph,,5in,Typical service extension graph.}"
-msgstr ""
+msgstr "@image{images/service-graph,,5in,Typischer Diensterweiterungsgraph}"
 
 #. type: cindex
-#: doc/guix.texi:22827
+#: doc/guix.texi:24704
 #, no-wrap
 msgid "system service"
-msgstr ""
+msgstr "Systemdienst"
 
 #. type: Plain text
-#: doc/guix.texi:22835
+#: doc/guix.texi:24712
 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 ""
+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:22836
+#: doc/guix.texi:24713
 #, no-wrap
 msgid "service types"
-msgstr ""
+msgstr "Diensttypen"
 
 #. type: Plain text
-#: doc/guix.texi:22842
-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 @var{lsh-service-type}, with different parameters."
-msgstr ""
+#: doc/guix.texi:24719
+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:22845
+#: doc/guix.texi:24722
 msgid "The following section describes the programming interface for service types and services."
-msgstr ""
+msgstr "Der folgende Abschnitt beschreibt die Programmierschnittstelle für Diensttypen und Dienste."
 
 #. type: Plain text
-#: doc/guix.texi:22852
+#: doc/guix.texi:24729
 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 ""
+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: example
-#: doc/guix.texi:22862
+#: doc/guix.texi:24739
 #, no-wrap
 msgid ""
 "(define guix-service-type\n"
@@ -40872,77 +44971,93 @@ 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:22866
+#: doc/guix.texi:24743
 msgid "It defines three things:"
-msgstr ""
+msgstr "Damit sind drei Dinge definiert:"
 
 #. type: enumerate
-#: doc/guix.texi:22870
+#: doc/guix.texi:24747
 msgid "A name, whose sole purpose is to make inspection and debugging easier."
-msgstr ""
+msgstr "Ein Name, der nur dazu da ist, dass man leichter die Abläufe verstehen und Fehler suchen kann."
 
 #. type: enumerate
-#: doc/guix.texi:22875
+#: doc/guix.texi:24752
 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 ""
+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:22878
+#: doc/guix.texi:24755
 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 ""
+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:22881
+#: doc/guix.texi:24758
 msgid "Optionally, a default value for instances of this type."
-msgstr ""
+msgstr "Optional kann ein Vorgabewert für Instanzen dieses Typs angegeben werden."
 
 #. type: Plain text
-#: doc/guix.texi:22884
-msgid "In this example, @var{guix-service-type} extends three services:"
-msgstr ""
+#: doc/guix.texi:24761
+#, fuzzy
+#| msgid "In this example, @var{guix-service-type} extends three services:"
+msgid "In this example, @code{guix-service-type} extends three services:"
+msgstr "In diesem Beispiel werden durch @var{guix-service-type} drei Dienste erweitert:"
 
 #. type: item
-#: doc/guix.texi:22886
+#: doc/guix.texi:24763
 #, no-wrap
 msgid "shepherd-root-service-type"
-msgstr ""
+msgstr "shepherd-root-service-type"
 
 #. type: table
-#: doc/guix.texi:22891
-msgid "The @var{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 ""
+#: doc/guix.texi:24768
+#, fuzzy
+#| msgid "The @var{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})."
+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 @var{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:22892
+#: doc/guix.texi:24769
 #, no-wrap
 msgid "account-service-type"
-msgstr ""
+msgstr "account-service-type"
 
 #. type: table
-#: doc/guix.texi:22897
-msgid "This extension for this service is computed by @var{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 ""
+#: doc/guix.texi:24774
+#, fuzzy
+#| msgid "This extension for this service is computed by @var{guix-accounts}, which returns a list of @code{user-group} and @code{user-account} objects representing the build user accounts (@pxref{Invoking guix-daemon})."
+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 @var{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:22898
+#: doc/guix.texi:24775
 #, no-wrap
 msgid "activation-service-type"
-msgstr ""
+msgstr "activation-service-type"
 
 #. type: table
-#: doc/guix.texi:22902
-msgid "Here @var{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 ""
+#: doc/guix.texi:24779
+#, fuzzy
+#| msgid "Here @var{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."
+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 @var{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:22905
+#: doc/guix.texi:24782
 msgid "A service of this type is instantiated like this:"
-msgstr ""
+msgstr "Ein Dienst dieses Typs wird dann so instanziiert:"
 
 #. type: example
-#: doc/guix.texi:22911
+#: doc/guix.texi:24788
 #, no-wrap
 msgid ""
 "(service guix-service-type\n"
@@ -40950,30 +45065,36 @@ msgid ""
 "           (build-accounts 5)\n"
 "           (use-substitutes? #f)))\n"
 msgstr ""
+"(service guix-service-type\n"
+"         (guix-configuration\n"
+"           (build-accounts 5)\n"
+"           (use-substitutes? #f)))\n"
 
 #. type: Plain text
-#: doc/guix.texi:22919
+#: doc/guix.texi:24796
 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 ""
+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: example
-#: doc/guix.texi:22922
+#: doc/guix.texi:24799
 #, no-wrap
 msgid "(service guix-service-type)\n"
-msgstr ""
+msgstr "(service guix-service-type)\n"
 
 #. type: Plain text
-#: doc/guix.texi:22926
-msgid "@var{guix-service-type} is quite simple because it extends other services but is not extensible itself."
-msgstr ""
+#: doc/guix.texi:24803
+#, fuzzy
+#| msgid "@var{guix-service-type} is quite simple because it extends other services but is not extensible itself."
+msgid "@code{guix-service-type} is quite simple because it extends other services but is not extensible itself."
+msgstr "@var{guix-service-type} ist ziemlich einfach, weil es andere Dienste erweitert, aber selbst nicht erweitert werden kann."
 
 #. type: Plain text
-#: doc/guix.texi:22930
+#: doc/guix.texi:24807
 msgid "The service type for an @emph{extensible} service looks like this:"
-msgstr ""
+msgstr "Der Diensttyp eines @emph{erweiterbaren} Dienstes sieht ungefähr so aus:"
 
 #. type: example
-#: doc/guix.texi:22937
+#: doc/guix.texi:24814
 #, no-wrap
 msgid ""
 "(define udev-service-type\n"
@@ -40983,9 +45104,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: example
-#: doc/guix.texi:22945
+#: doc/guix.texi:24822
 #, no-wrap
 msgid ""
 "                (compose concatenate)       ;concatenate the list of rules\n"
@@ -40996,149 +45123,162 @@ msgid ""
 "                              (udev udev)   ;the udev package to use\n"
 "                              (rules (append initial-rules rules)))))))))\n"
 msgstr ""
+"                (compose concatenate)     ;Liste der Regeln zusammenfügen\n"
+"                (extend (lambda (config rules) ;Konfiguration und Regeln\n"
+"                          (match config\n"
+"                            (($ <udev-configuration> udev initial-rules)\n"
+"                             (udev-configuration\n"
+"                              (udev udev) ;zu benutzendes udev-Paket\n"
+"                              (rules (append initial-rules rules)))))))))\n"
 
 #. type: Plain text
-#: doc/guix.texi:22951
-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 @var{shepherd-root-service-type}, we see two new fields:"
-msgstr ""
+#: doc/guix.texi:24828
+#, fuzzy
+#| 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 @var{shepherd-root-service-type}, we see two new fields:"
+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 @var{shepherd-root-service-type} auch zwei neue Felder."
 
 #. type: item
-#: doc/guix.texi:22953
+#: doc/guix.texi:24830
 #, no-wrap
 msgid "compose"
-msgstr ""
+msgstr "compose"
 
 #. type: table
-#: doc/guix.texi:22956
+#: doc/guix.texi:24833
 msgid "This is the procedure to @dfn{compose} the list of extensions to services of this type."
-msgstr ""
+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:22959
+#: doc/guix.texi:24836
 msgid "Services can extend the udev service by passing it lists of rules; we compose those extensions simply by concatenating them."
-msgstr ""
+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:22960
+#: doc/guix.texi:24837
 #, no-wrap
 msgid "extend"
-msgstr ""
+msgstr "extend"
 
 #. type: table
-#: doc/guix.texi:22963
+#: doc/guix.texi:24840
 msgid "This procedure defines how the value of the service is @dfn{extended} with the composition of the extensions."
-msgstr ""
+msgstr "Diese Prozedur definiert, wie der Wert des Dienstes um die Komposition mit Erweiterungen erweitert (»extended«) werden kann."
 
 #. type: table
-#: doc/guix.texi:22968
+#: doc/guix.texi:24845
 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 ""
+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:22974
+#: doc/guix.texi:24851
 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 ""
+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:22979
-msgid "There can be only one instance of an extensible service type such as @var{udev-service-type}.  If there were more, the @code{service-extension} specifications would be ambiguous."
-msgstr ""
+#: doc/guix.texi:24856
+#, fuzzy
+#| msgid "There can be only one instance of an extensible service type such as @var{udev-service-type}.  If there were more, the @code{service-extension} specifications would be ambiguous."
+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 @var{udev-service-type} geben. Wenn es mehrere gäbe, wäre es mehrdeutig, welcher Dienst durch die @code{service-extension} erweitert werden sollte."
 
 #. type: Plain text
-#: doc/guix.texi:22982
+#: doc/guix.texi:24859
 msgid "Still here? The next section provides a reference of the programming interface for services."
-msgstr ""
+msgstr "Sind Sie noch da? Der nächste Abschnitt gibt Ihnen eine Referenz der Programmierschnittstelle für Dienste."
 
 #. type: Plain text
-#: doc/guix.texi:22990
+#: doc/guix.texi:24867
 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 ""
+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:22991
+#: doc/guix.texi:24868
 #, no-wrap
 msgid "{Scheme Procedure} service @var{type} [@var{value}]"
-msgstr ""
+msgstr "{Scheme-Prozedur} service @var{Typ} [@var{Wert}]"
 
 #. type: deffn
-#: doc/guix.texi:22995
+#: doc/guix.texi:24872
 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 ""
+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:22999
+#: doc/guix.texi:24876
 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 ""
+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:23001
+#: doc/guix.texi:24878
 msgid "For instance, this:"
-msgstr ""
+msgstr "Zum Beispiel bewirken Sie hiermit:"
 
 #. type: example
-#: doc/guix.texi:23004
+#: doc/guix.texi:24881
 #, no-wrap
 msgid "(service openssh-service-type)\n"
-msgstr ""
+msgstr "(service openssh-service-type)\n"
 
 #. type: deffn
-#: doc/guix.texi:23008
+#: doc/guix.texi:24885
 msgid "is equivalent to this:"
-msgstr ""
+msgstr "dasselbe wie mit:"
 
 #. type: example
-#: doc/guix.texi:23012
+#: doc/guix.texi:24889
 #, 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:23016
+#: doc/guix.texi:24893
 msgid "In both cases the result is an instance of @code{openssh-service-type} with the default configuration."
-msgstr ""
+msgstr "In beiden Fällen ist das Ergebnis eine Instanz von @code{openssh-service-type} mit der vorgegebenen Konfiguration."
 
 #. type: deffn
-#: doc/guix.texi:23018
+#: doc/guix.texi:24895
 #, no-wrap
 msgid "{Scheme Procedure} service? @var{obj}"
-msgstr ""
+msgstr "{Scheme-Prozedur} service? @var{Objekt}"
 
 #. type: deffn
-#: doc/guix.texi:23020
+#: doc/guix.texi:24897
 msgid "Return true if @var{obj} is a service."
-msgstr ""
+msgstr "Liefert wahr zurück, wenn das @var{Objekt} ein Dienst ist."
 
 #. type: deffn
-#: doc/guix.texi:23022
+#: doc/guix.texi:24899
 #, no-wrap
 msgid "{Scheme Procedure} service-kind @var{service}"
-msgstr ""
+msgstr "{Scheme-Prozedur} service-kind @var{Dienst}"
 
 #. type: deffn
-#: doc/guix.texi:23024
+#: doc/guix.texi:24901
 msgid "Return the type of @var{service}---i.e., a @code{<service-type>} object."
-msgstr ""
+msgstr "Liefert den Typ des @var{Dienst}es — d.h.@: ein @code{<service-type>}-Objekt."
 
 #. type: deffn
-#: doc/guix.texi:23026
+#: doc/guix.texi:24903
 #, no-wrap
 msgid "{Scheme Procedure} service-value @var{service}"
-msgstr ""
+msgstr "{Scheme-Prozedur} service-value @var{Dienst}"
 
 #. type: deffn
-#: doc/guix.texi:23029
+#: doc/guix.texi:24906
 msgid "Return the value associated with @var{service}.  It represents its parameters."
-msgstr ""
+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:23032
+#: doc/guix.texi:24909
 msgid "Here is an example of how a service is created and manipulated:"
-msgstr ""
+msgstr "Hier ist ein Beispiel, wie ein Dienst erzeugt und manipuliert werden kann:"
 
 #. type: example
-#: doc/guix.texi:23041
+#: doc/guix.texi:24918
 #, no-wrap
 msgid ""
 "(define s\n"
@@ -41150,483 +45290,516 @@ msgid ""
 "            (file config-file))))\n"
 "\n"
 msgstr ""
+"(define s\n"
+"  (service nginx-service-type\n"
+"           (nginx-configuration\n"
+"            (nginx nginx)\n"
+"            (log-directory log-Verzeichnis)\n"
+"            (run-directory run-Verzeichnis)\n"
+"            (file config-Datei))))\n"
+"\n"
 
 #. type: example
-#: doc/guix.texi:23044
+#: doc/guix.texi:24921
 #, no-wrap
 msgid ""
 "(service? s)\n"
 "@result{} #t\n"
 "\n"
 msgstr ""
+"(service? s)\n"
+"@result{} #t\n"
+"\n"
 
 #. type: example
-#: doc/guix.texi:23047
+#: doc/guix.texi:24924
 #, no-wrap
 msgid ""
 "(eq? (service-kind s) nginx-service-type)\n"
 "@result{} #t\n"
 msgstr ""
+"(eq? (service-kind s) nginx-service-type)\n"
+"@result{} #t\n"
 
 #. type: Plain text
-#: doc/guix.texi:23057
-msgid "The @code{modify-services} form provides a handy way to change the parameters of some of the services of a list such as @var{%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 ""
+#: doc/guix.texi:24934
+#, fuzzy
+#| msgid "The @code{modify-services} form provides a handy way to change the parameters of some of the services of a list such as @var{%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."
+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 @var{%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."
 
 #. type: deffn
-#: doc/guix.texi:23058
+#: doc/guix.texi:24935
 #, no-wrap
 msgid "{Scheme Syntax} modify-services @var{services} @"
 msgstr "{Scheme-Syntax} modify-services @var{Dienste} @"
 
 #. type: deffn
-#: doc/guix.texi:23060
+#: doc/guix.texi:24937
 msgid "(@var{type} @var{variable} => @var{body}) @dots{}"
 msgstr "(@var{Typ} @var{Variable} => @var{Rumpf}) @dots{}"
 
 #. type: deffn
-#: doc/guix.texi:23063
+#: doc/guix.texi:24940
 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:23066
+#: doc/guix.texi:24943
 #, no-wrap
 msgid "(@var{type} @var{variable} => @var{body})\n"
 msgstr "(@var{Typ} @var{Variable} => @var{Rumpf})\n"
 
 #. type: deffn
-#: doc/guix.texi:23073
+#: doc/guix.texi:24950
 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."
+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:23080
+#: doc/guix.texi:24957
 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:23082
+#: doc/guix.texi:24959
 msgid "@xref{Using the Configuration System}, for example usage."
-msgstr "Siehe @xref{Using the Configuration System} für ein Anwendungsbeispiel."
+msgstr "Siehe @ref{Using the Configuration System} für ein Anwendungsbeispiel."
 
 #. type: Plain text
-#: doc/guix.texi:23089
+#: doc/guix.texi:24966
 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 ""
+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:23090
+#: doc/guix.texi:24967
 #, no-wrap
 msgid "{Data Type} service-type"
-msgstr ""
+msgstr "{Datentyp} service-type"
 
 #. type: cindex
-#: doc/guix.texi:23091
+#: doc/guix.texi:24968
 #, no-wrap
 msgid "service type"
-msgstr ""
+msgstr "Diensttyp"
 
 #. type: deftp
-#: doc/guix.texi:23094
+#: doc/guix.texi:24971
 msgid "This is the representation of a @dfn{service type} (@pxref{Service Types and Services})."
-msgstr ""
+msgstr "Die Repräsentation eines @dfn{Diensttypen} (siehe @ref{Service Types and Services})."
 
 #. type: table
-#: doc/guix.texi:23098
+#: doc/guix.texi:24975
 msgid "This is a symbol, used only to simplify inspection and debugging."
-msgstr ""
+msgstr "Dieses Symbol wird nur verwendet, um die Abläufe im System anzuzeigen und die Fehlersuche zu erleichtern."
 
 #. type: code{#1}
-#: doc/guix.texi:23099
+#: doc/guix.texi:24976
 #, no-wrap
 msgid "extensions"
-msgstr ""
+msgstr "extensions"
 
 #. type: table
-#: doc/guix.texi:23101
+#: doc/guix.texi:24978
 msgid "A non-empty list of @code{<service-extension>} objects (see below)."
-msgstr ""
+msgstr "Eine nicht-leere Liste von @code{<service-extension>}-Objekten (siehe unten)."
 
 #. type: item
-#: doc/guix.texi:23102
+#: doc/guix.texi:24979
 #, no-wrap
 msgid "@code{compose} (default: @code{#f})"
-msgstr ""
+msgstr "@code{compose} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:23106
+#: doc/guix.texi:24983
 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 ""
+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:23110
+#: doc/guix.texi:24987
 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 ""
+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:23111
+#: doc/guix.texi:24988
 #, no-wrap
 msgid "@code{extend} (default: @code{#f})"
-msgstr ""
+msgstr "@code{extend} (Vorgabe: @code{#f})"
 
 #. type: table
-#: doc/guix.texi:23113
+#: doc/guix.texi:24990
 msgid "If this is @code{#f}, services of this type cannot be extended."
-msgstr ""
+msgstr "Ist dies auf @code{#f} gesetzt, dann können Dienste dieses Typs nicht erweitert werden."
 
 #. type: table
-#: doc/guix.texi:23119
+#: doc/guix.texi:24996
 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 ""
+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: deftp
-#: doc/guix.texi:23122
+#: doc/guix.texi:24999
 msgid "@xref{Service Types and Services}, for examples."
-msgstr ""
+msgstr "Siehe den Abschnitt @ref{Service Types and Services} für Beispiele."
 
 #. type: deffn
-#: doc/guix.texi:23124
+#: doc/guix.texi:25001
 #, no-wrap
 msgid "{Scheme Procedure} service-extension @var{target-type} @"
-msgstr ""
+msgstr "{Scheme-Prozedur} service-extension @var{Zieltyp} @"
 
 #. type: deffn
-#: doc/guix.texi:23130
+#: doc/guix.texi:25007
 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 ""
+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:23132
+#: doc/guix.texi:25009
 #, no-wrap
 msgid "{Scheme Procedure} service-extension? @var{obj}"
-msgstr ""
+msgstr "{Scheme-Prozedur} service-extension? @var{Objekt}"
 
 #. type: deffn
-#: doc/guix.texi:23134
+#: doc/guix.texi:25011
 msgid "Return true if @var{obj} is a service extension."
-msgstr ""
+msgstr "Liefert wahr zurück, wenn das @var{Objekt} eine Diensterweiterung ist."
 
 #. type: Plain text
-#: doc/guix.texi:23140
+#: doc/guix.texi:25017
 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 ""
+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:23141
+#: doc/guix.texi:25018
 #, no-wrap
 msgid "{Scheme Procedure} simple-service @var{name} @var{target} @var{value}"
-msgstr ""
+msgstr "{Scheme-Prozedur} simple-service @var{Name} @var{Zieltyp} @var{Wert}"
 
 #. type: deffn
-#: doc/guix.texi:23145
+#: doc/guix.texi:25022
 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 ""
+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:23148
+#: doc/guix.texi:25025
 msgid "For example, this extends mcron (@pxref{Scheduled Job Execution}) with an additional job:"
-msgstr ""
+msgstr "Zum Beispiel kann mcron (siehe @ref{Scheduled Job Execution}) so um einen zusätzlichen Auftrag erweitert werden:"
 
 #. type: example
-#: doc/guix.texi:23152
+#: doc/guix.texi:25029
 #, 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:23162
+#: doc/guix.texi:25039
 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 ""
+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:23163
+#: doc/guix.texi:25040
 #, no-wrap
 msgid "{Scheme Procedure} fold-services @var{services} @"
-msgstr ""
+msgstr "{Scheme-Prozedur} fold-services @var{Dienste} @"
 
 #. type: deffn
-#: doc/guix.texi:23167
+#: doc/guix.texi:25044
 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 ""
+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:23171
+#: doc/guix.texi:25048
 msgid "Lastly, the @code{(gnu services)} module also defines several essential service types, some of which are listed below."
-msgstr ""
+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:23172
+#: doc/guix.texi:25049
 #, no-wrap
 msgid "{Scheme Variable} system-service-type"
-msgstr ""
+msgstr "{Scheme-Variable} system-service-type"
 
 #. type: defvr
-#: doc/guix.texi:23175
+#: doc/guix.texi:25052
 msgid "This is the root of the service graph.  It produces the system directory as returned by the @command{guix system build} command."
-msgstr ""
+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:23177
+#: doc/guix.texi:25054
 #, no-wrap
 msgid "{Scheme Variable} boot-service-type"
-msgstr ""
+msgstr "{Scheme-Variable} boot-service-type"
 
 #. type: defvr
-#: doc/guix.texi:23180
+#: doc/guix.texi:25057
 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 ""
+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:23182
+#: doc/guix.texi:25059
 #, no-wrap
 msgid "{Scheme Variable} etc-service-type"
-msgstr ""
+msgstr "{Scheme-Variable} etc-service-type"
 
 #. type: defvr
-#: doc/guix.texi:23186
+#: doc/guix.texi:25063
 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 ""
+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: example
-#: doc/guix.texi:23189
+#: doc/guix.texi:25066
 #, no-wrap
 msgid "(list `(\"issue\" ,(plain-file \"issue\" \"Welcome!\\n\")))\n"
-msgstr ""
+msgstr "(list `(\"issue\" ,(plain-file \"issue\" \"Willkommen!\\n\")))\n"
 
 #. type: defvr
-#: doc/guix.texi:23193
+#: doc/guix.texi:25070
 msgid "In this example, the effect would be to add an @file{/etc/issue} file pointing to the given file."
-msgstr ""
+msgstr "Dieses Beispiel würde bewirken, dass eine Datei @file{/etc/issue} auf die angegebene Datei verweist."
 
 #. type: defvr
-#: doc/guix.texi:23195
+#: doc/guix.texi:25072
 #, no-wrap
 msgid "{Scheme Variable} setuid-program-service-type"
-msgstr ""
+msgstr "{Scheme-Variable} setuid-program-service-type"
 
 #. type: defvr
-#: doc/guix.texi:23199
+#: doc/guix.texi:25076
 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 ""
+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:23201
+#: doc/guix.texi:25078
 #, no-wrap
 msgid "{Scheme Variable} profile-service-type"
-msgstr ""
+msgstr "{Scheme-Variable} profile-service-type"
 
 #. type: defvr
-#: doc/guix.texi:23205
+#: doc/guix.texi:25082
 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 ""
+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: cindex
-#: doc/guix.texi:23211
+#: doc/guix.texi:25088
 #, no-wrap
 msgid "shepherd services"
-msgstr ""
+msgstr "Shepherd-Dienste"
 
 #. type: cindex
-#: doc/guix.texi:23212
+#: doc/guix.texi:25089
 #, no-wrap
 msgid "PID 1"
-msgstr ""
+msgstr "PID 1"
 
 #. type: cindex
-#: doc/guix.texi:23213
+#: doc/guix.texi:25090
 #, no-wrap
 msgid "init system"
-msgstr ""
+msgstr "init-System"
 
 #. type: Plain text
-#: doc/guix.texi:23219
-msgid "The @code{(gnu services shepherd)} module provides a way to define services managed by the GNU@tie{}Shepherd, which is the GuixSD 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 ""
+#: doc/guix.texi:25096
+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:23225
+#: doc/guix.texi:25102
 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 ""
+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:23227
+#: doc/guix.texi:25104
 msgid "@image{images/shepherd-graph,,5in,Typical shepherd service graph.}"
-msgstr ""
+msgstr "@image{images/shepherd-graph,,5in,Typischer Shepherd-Dienstgraph}"
 
 #. type: Plain text
-#: doc/guix.texi:23231
+#: doc/guix.texi:25108
 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 ""
+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:23235
-msgid "The @var{%shepherd-root-service} is a service object representing PID@tie{}1, of type @var{shepherd-root-service-type}; it can be extended by passing it lists of @code{<shepherd-service>} objects."
-msgstr ""
+#: doc/guix.texi:25112
+#, fuzzy
+#| msgid "The @var{%shepherd-root-service} is a service object representing PID@tie{}1, of type @var{shepherd-root-service-type}; it can be extended by passing it lists of @code{<shepherd-service>} objects."
+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 @var{%shepherd-root-service} ist ein Dienstobjekt, das diesen Prozess mit PID@tie{}1 repräsentiert. Der Dienst hat den Typ @var{shepherd-root-service-type}. Man kann ihn erweitern, indem man eine Liste von @code{<shepherd-service>}-Objekten an ihn übergibt."
 
 #. type: deftp
-#: doc/guix.texi:23236
+#: doc/guix.texi:25113
 #, no-wrap
 msgid "{Data Type} shepherd-service"
-msgstr ""
+msgstr "{Datentyp} shepherd-service"
 
 #. type: deftp
-#: doc/guix.texi:23238
+#: doc/guix.texi:25115
 msgid "The data type representing a service managed by the Shepherd."
-msgstr ""
+msgstr "Der Datentyp, der einen von Shepherd verwalteten Dienst repräsentiert."
 
 #. type: code{#1}
-#: doc/guix.texi:23240
+#: doc/guix.texi:25117
 #, no-wrap
 msgid "provision"
-msgstr ""
+msgstr "provision"
 
 #. type: table
-#: doc/guix.texi:23242
+#: doc/guix.texi:25119
 msgid "This is a list of symbols denoting what the service provides."
-msgstr ""
+msgstr "Diese Liste von Symbolen gibt an, was vom Dienst angeboten wird."
 
 #. type: table
-#: doc/guix.texi:23247
+#: doc/guix.texi:25124
 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 ""
+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."
 
 #. type: item
-#: doc/guix.texi:23248
+#: doc/guix.texi:25125
 #, no-wrap
 msgid "@code{requirements} (default: @code{'()})"
-msgstr ""
+msgstr "@code{requirements} (Vorgabe: @code{'()})"
 
 #. type: table
-#: doc/guix.texi:23250
+#: doc/guix.texi:25127
 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:25128
+#, no-wrap
+msgid "one-shot services, for the Shepherd"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:25133
+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:23251
+#: doc/guix.texi:25134
 #, no-wrap
 msgid "@code{respawn?} (default: @code{#t})"
-msgstr ""
+msgstr "@code{respawn?} (Vorgabe: @code{#t})"
 
 #. type: table
-#: doc/guix.texi:23254
+#: doc/guix.texi:25137
 msgid "Whether to restart the service when it stops, for instance when the underlying process dies."
-msgstr ""
+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:23255
+#: doc/guix.texi:25138
 #, no-wrap
 msgid "start"
-msgstr ""
+msgstr "start"
 
 #. type: itemx
-#: doc/guix.texi:23256
+#: doc/guix.texi:25139
 #, no-wrap
 msgid "@code{stop} (default: @code{#~(const #f)})"
-msgstr ""
+msgstr "@code{stop} (Vorgabe: @code{#~(const #f)})"
 
 #. type: table
-#: doc/guix.texi:23262
+#: doc/guix.texi:25145
 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 ""
+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:23263
+#: doc/guix.texi:25146
 #, no-wrap
 msgid "@code{actions} (default: @code{'()})"
 msgstr "@code{actions} (Vorgabe: @code{'()})"
 
 #. type: cindex
-#: doc/guix.texi:23264
+#: doc/guix.texi:25147
 #, no-wrap
 msgid "actions, of Shepherd services"
 msgstr "Aktionen, bei Shepherd-Diensten"
 
 #. type: table
-#: doc/guix.texi:23269
+#: doc/guix.texi:25152
 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 ""
+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:23272
+#: doc/guix.texi:25155
 #, no-wrap
 msgid "herd @var{action} @var{service} [@var{arguments}@dots{}]\n"
-msgstr ""
+msgstr "herd @var{Aktion} @var{Dienst} [@var{Argumente}@dots{}]\n"
 
 #. type: table
-#: doc/guix.texi:23276
+#: doc/guix.texi:25159
 msgid "A documentation string, as shown when running:"
-msgstr ""
+msgstr "Eine Zeichenkette zur Dokumentation, die angezeigt wird, wenn man dies ausführt:"
 
 #. type: example
-#: doc/guix.texi:23279
+#: doc/guix.texi:25162
 #, no-wrap
 msgid "herd doc @var{service-name}\n"
-msgstr ""
+msgstr "herd doc @var{Dienstname}\n"
 
 #. type: table
-#: doc/guix.texi:23283
-msgid "where @var{service-name} is one of the symbols in @var{provision} (@pxref{Invoking herd,,, shepherd, The GNU Shepherd Manual})."
-msgstr ""
+#: doc/guix.texi:25166
+#, fuzzy
+#| msgid "where @var{service-name} is one of the symbols in @var{provision} (@pxref{Invoking herd,,, shepherd, The GNU Shepherd Manual})."
+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 @var{provision}-Liste sein muss (siehe @ref{Invoking herd,,, shepherd, The GNU Shepherd Manual})."
 
 #. type: item
-#: doc/guix.texi:23284
-#, no-wrap
-msgid "@code{modules} (default: @var{%default-modules})"
-msgstr ""
+#: doc/guix.texi:25167
+#, fuzzy, no-wrap
+#| msgid "@code{modules} (default: @code{%default-xorg-modules})"
+msgid "@code{modules} (default: @code{%default-modules})"
+msgstr "@code{modules} (Vorgabe: @code{%default-xorg-modules})"
 
 #. type: table
-#: doc/guix.texi:23287
+#: doc/guix.texi:25170
 msgid "This is the list of modules that must be in scope when @code{start} and @code{stop} are evaluated."
-msgstr ""
+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:23291
+#: doc/guix.texi:25174
 #, no-wrap
 msgid "{Data Type} shepherd-action"
 msgstr "{Datentyp} shepherd-action"
 
 #. type: deftp
-#: doc/guix.texi:23294
+#: doc/guix.texi:25177
 msgid "This is the data type that defines additional actions implemented by a Shepherd service (see above)."
-msgstr ""
+msgstr "Dieser Datentyp definiert zusätzliche Aktionen, die ein Shepherd-Dienst implementiert (siehe oben)."
 
 #. type: table
-#: doc/guix.texi:23298
+#: doc/guix.texi:25181
 msgid "Symbol naming the action."
 msgstr "Die Aktion bezeichnendes Symbol."
 
 #. type: table
-#: doc/guix.texi:23301
+#: doc/guix.texi:25184
 msgid "This is a documentation string for the action.  It can be viewed by running:"
-msgstr ""
+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:23304
+#: doc/guix.texi:25187
 #, no-wrap
 msgid "herd doc @var{service} action @var{action}\n"
-msgstr ""
+msgstr "herd doc @var{Dienst} action @var{Aktion}\n"
 
 #. type: item
-#: doc/guix.texi:23306
+#: doc/guix.texi:25189
 #, no-wrap
 msgid "procedure"
-msgstr ""
+msgstr "procedure"
 
 #. type: table
-#: doc/guix.texi:23310
+#: doc/guix.texi:25193
 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 ""
+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:23314
+#: doc/guix.texi:25197
 msgid "The following example defines an action called @code{say-hello} that kindly greets the user:"
-msgstr ""
+msgstr "Das folgende Beispiel definiert eine Aktion namens @code{sag-hallo}, die den Benutzer freundlich begrüßt:"
 
 #. type: example
-#: doc/guix.texi:23323
+#: doc/guix.texi:25206
 #, no-wrap
 msgid ""
 "(shepherd-action\n"
@@ -41637,14 +45810,21 @@ msgid ""
 "                         args)\n"
 "                 #t)))\n"
 msgstr ""
+"(shepherd-action\n"
+"  (name 'sag-hallo)\n"
+"  (documentation \"Sag Hallo!\")\n"
+"  (procedure #~(lambda (running . args)\n"
+"                 (format #t \"Hallo, Freund! Argumente: ~s\\n\"\n"
+"                         args)\n"
+"                 #t)))\n"
 
 #. type: deftp
-#: doc/guix.texi:23326
+#: doc/guix.texi:25209
 msgid "Assuming this action is added to the @code{example} service, then you can do:"
-msgstr ""
+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:23332
+#: doc/guix.texi:25215
 #, no-wrap
 msgid ""
 "# herd say-hello example\n"
@@ -41652,81 +45832,85 @@ msgid ""
 "# herd say-hello example a b c\n"
 "Hello, friend! arguments: (\"a\" \"b\" \"c\")\n"
 msgstr ""
+"# herd sag-hallo beispiel\n"
+"Hallo, Freund! Argumente: ()\n"
+"# herd sag-hallo beispiel a b c\n"
+"Hallo, Freund! Argumente: (\"a\" \"b\" \"c\")\n"
 
 #. type: deftp
-#: doc/guix.texi:23337
+#: doc/guix.texi:25220
 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 ""
+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:23339
+#: doc/guix.texi:25222
 #, no-wrap
 msgid "{Scheme Variable} shepherd-root-service-type"
-msgstr ""
+msgstr "{Scheme-Variable} shepherd-root-service-type"
 
 #. type: defvr
-#: doc/guix.texi:23341
+#: doc/guix.texi:25224
 msgid "The service type for the Shepherd ``root service''---i.e., PID@tie{}1."
-msgstr ""
+msgstr "Der Diensttyp für den Shepherd-»Wurzeldienst« — also für PID@tie{}1."
 
 #. type: defvr
-#: doc/guix.texi:23345
+#: doc/guix.texi:25228
 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 ""
+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:23347
+#: doc/guix.texi:25230
 #, no-wrap
 msgid "{Scheme Variable} %shepherd-root-service"
-msgstr ""
+msgstr "{Scheme-Variable} %shepherd-root-service"
 
 #. type: defvr
-#: doc/guix.texi:23349
+#: doc/guix.texi:25232
 msgid "This service represents PID@tie{}1."
-msgstr ""
+msgstr "Dieser Dienst repräsentiert PID@tie{}1."
 
 #. type: cindex
-#: doc/guix.texi:23355
+#: doc/guix.texi:25238
 #, no-wrap
 msgid "documentation, searching for"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:23356
+#: doc/guix.texi:25239
 #, no-wrap
 msgid "searching for documentation"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:23357
+#: doc/guix.texi:25240
 #, no-wrap
 msgid "Info, documentation format"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:23358
+#: doc/guix.texi:25241
 #, no-wrap
 msgid "man pages"
 msgstr ""
 
 #. type: cindex
-#: doc/guix.texi:23359
+#: doc/guix.texi:25242
 #, no-wrap
 msgid "manual pages"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:23366
+#: doc/guix.texi:25249
 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:23370
+#: doc/guix.texi:25253
 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:23378
+#: doc/guix.texi:25261
 #, no-wrap
 msgid ""
 "$ info -k TLS\n"
@@ -41738,12 +45922,12 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:23382
+#: doc/guix.texi:25265
 msgid "The command below searches for the same keyword in man pages:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:23388
+#: doc/guix.texi:25271
 #, no-wrap
 msgid ""
 "$ man -k TLS\n"
@@ -41753,108 +45937,108 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:23394
+#: doc/guix.texi:25277
 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:23397
+#: doc/guix.texi:25280
 msgid "Once you have these results, you can view the relevant documentation by running, say:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:23400
+#: doc/guix.texi:25283
 #, no-wrap
 msgid "$ info \"(gnutls)Core TLS API\"\n"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:23404
+#: doc/guix.texi:25287
 msgid "or:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:23407
+#: doc/guix.texi:25290
 #, no-wrap
 msgid "$ man certtool\n"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:23415
+#: doc/guix.texi:25298
 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:23419
+#: doc/guix.texi:25302
 #, no-wrap
 msgid "debugging files"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:23425
+#: doc/guix.texi:25308
 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:23433
+#: doc/guix.texi:25316
 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:23440
+#: doc/guix.texi:25323
 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:23448
+#: doc/guix.texi:25331
 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:23451
+#: doc/guix.texi:25334
 #, no-wrap
 msgid "guix package -i glibc:debug guile:debug\n"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:23457
+#: doc/guix.texi:25340
 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:23460
+#: doc/guix.texi:25343
 #, no-wrap
 msgid "(gdb) set debug-file-directory ~/.guix-profile/lib/debug\n"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:23464
+#: doc/guix.texi:25347
 msgid "From there on, GDB will pick up debugging information from the @code{.debug} files under @file{~/.guix-profile/lib/debug}."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:23471
+#: doc/guix.texi:25354
 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:23480
+#: doc/guix.texi:25363
 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 ""
 
 #. type: cindex
-#: doc/guix.texi:23485
+#: doc/guix.texi:25368
 #, no-wrap
 msgid "security updates"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:23494
+#: doc/guix.texi:25377
 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:23501
+#: doc/guix.texi:25384
 #, no-wrap
 msgid ""
 "$ guix lint -c cve\n"
@@ -41865,44 +46049,44 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:23504
+#: doc/guix.texi:25387
 msgid "@xref{Invoking guix lint}, for more information."
 msgstr ""
 
 #. type: quotation
-#: doc/guix.texi:23508
+#: doc/guix.texi:25391
 msgid "As of version @value{VERSION}, the feature described below is considered ``beta''."
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:23518
+#: doc/guix.texi:25401
 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:23519
+#: doc/guix.texi:25402
 #, no-wrap
 msgid "grafts"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:23527
+#: doc/guix.texi:25410
 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:23528
+#: doc/guix.texi:25411
 #, no-wrap
 msgid "replacements of packages, for grafts"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:23534
-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 @var{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:"
+#: doc/guix.texi:25417
+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: example
-#: doc/guix.texi:23541
+#: doc/guix.texi:25424
 #, no-wrap
 msgid ""
 "(define bash\n"
@@ -41913,612 +46097,120 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:23551
-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 @var{bash-fixed} instead of @var{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."
+#: doc/guix.texi:25434
+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:23559
-msgid "Currently, the length of the name and version of the graft and that of the package it replaces (@var{bash-fixed} and @var{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."
+#: doc/guix.texi:25442
+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:23563
+#: doc/guix.texi:25446
 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:23566
+#: doc/guix.texi:25449
 #, no-wrap
 msgid "guix build bash --no-grafts\n"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:23570
+#: doc/guix.texi:25453
 msgid "returns the store file name of the original Bash, whereas:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:23573
+#: doc/guix.texi:25456
 #, no-wrap
 msgid "guix build bash\n"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:23578
+#: doc/guix.texi:25461
 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:23581
+#: doc/guix.texi:25464
 msgid "To verify which Bash your whole profile refers to, you can run (@pxref{Invoking guix gc}):"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:23584
+#: doc/guix.texi:25467
 #, no-wrap
 msgid "guix gc -R `readlink -f ~/.guix-profile` | grep bash\n"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:23589
-msgid "@dots{} and compare the store file names that you get with those above.  Likewise for a complete GuixSD system generation:"
+#: doc/guix.texi:25472
+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:23592
+#: doc/guix.texi:25475
 #, no-wrap
 msgid "guix gc -R `guix system build my-config.scm` | grep bash\n"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:23596
+#: doc/guix.texi:25479
 msgid "Lastly, to check which Bash running processes are using, you can use the @command{lsof} command:"
 msgstr ""
 
 #. type: example
-#: doc/guix.texi:23599
+#: doc/guix.texi:25482
 #, no-wrap
 msgid "lsof | grep /gnu/store/.*bash\n"
 msgstr ""
 
-#. type: Plain text
-#: doc/guix.texi:23616
-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 ""
-
-#. type: Plain text
-#: doc/guix.texi:23623
-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 package -i 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 ""
-
-#. type: cindex
-#: doc/guix.texi:23625
-#, no-wrap
-msgid "package module search path"
-msgstr ""
-
-#. type: Plain text
-#: doc/guix.texi:23634
-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 ""
-
-#. type: enumerate
-#: doc/guix.texi:23641
-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 ""
-
-#. type: enumerate
-#: doc/guix.texi:23647
-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 ""
-
-#. type: Plain text
-#: doc/guix.texi:23650
-msgid "@code{GUIX_PACKAGE_PATH} works similarly to other search path variables:"
-msgstr ""
-
-#. type: defvr
-#: doc/guix.texi:23651
-#, no-wrap
-msgid "{Environment Variable} GUIX_PACKAGE_PATH"
-msgstr ""
-
-#. type: defvr
-#: doc/guix.texi:23655
-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 ""
-
-#. type: Plain text
-#: doc/guix.texi:23663
-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 ""
-
-#. type: cindex
-#: doc/guix.texi:23667
-#, no-wrap
-msgid "packages, creating"
-msgstr ""
-
-#. type: Plain text
-#: doc/guix.texi:23672
-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.  @xref{Contributing}, for additional information on how you can help."
-msgstr ""
-
-#. type: Plain text
-#: doc/guix.texi:23680
-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 ""
-
-#. type: Plain text
-#: doc/guix.texi:23689
-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 ""
-
-#. type: Plain text
-#: doc/guix.texi:23695
-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 ""
-
-#. type: example
-#: doc/guix.texi:23698
-#, no-wrap
-msgid "./pre-inst-env guix build gnew --keep-failed\n"
-msgstr ""
-
-#. type: Plain text
-#: doc/guix.texi:23704
-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 ""
-
-#. type: Plain text
-#: doc/guix.texi:23709
-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 ""
-
-#. type: example
-#: doc/guix.texi:23712
-#, no-wrap
-msgid "./pre-inst-env guile -c '(use-modules (gnu packages gnew))'\n"
-msgstr ""
-
-#. type: Plain text
-#: doc/guix.texi:23720
-msgid "Once your package builds correctly, please send us a patch (@pxref{Contributing}).  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 ""
-
-#. type: cindex
-#: doc/guix.texi:23721
-#, no-wrap
-msgid "substituter"
-msgstr ""
-
-#. type: Plain text
-#: doc/guix.texi:23728
-msgid "Users can obtain the new package definition simply by running @command{guix pull} (@pxref{Invoking guix pull}).  When @code{hydra.gnu.org} 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 ""
-
-#. type: cindex
-#: doc/guix.texi:23745
-#, no-wrap
-msgid "free software"
-msgstr ""
-
-#. type: Plain text
-#: doc/guix.texi:23753
-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 ""
-
-#. type: Plain text
-#: doc/guix.texi:23759
-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 ""
-
-#. type: Plain text
-#: doc/guix.texi:23767
-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 ""
-
-#. type: cindex
-#: doc/guix.texi:23772
-#, no-wrap
-msgid "package name"
-msgstr ""
-
-#. type: Plain text
-#: doc/guix.texi:23780
-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 ""
-
-#. type: Plain text
-#: doc/guix.texi:23785
-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 ""
-
-#. type: Plain text
-#: doc/guix.texi:23790
-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 ""
-
-#. type: Plain text
-#: doc/guix.texi:23792
-msgid "Font package names are handled differently, @pxref{Fonts}."
-msgstr ""
-
-#. type: cindex
-#: doc/guix.texi:23797
-#, no-wrap
-msgid "package version"
-msgstr ""
-
-#. type: Plain text
-#: doc/guix.texi:23806
-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 ""
-
-#. type: Plain text
-#: doc/guix.texi:23809
-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/guix.texi:23811
-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: example
-#: doc/guix.texi:23823
-#, no-wrap
-msgid ""
-"(define-public gtk+\n"
-"  (package\n"
-"    (name \"gtk+\")\n"
-"    (version \"3.9.12\")\n"
-"    ...))\n"
-"(define-public gtk+-2\n"
-"  (package\n"
-"    (name \"gtk+\")\n"
-"    (version \"2.24.20\")\n"
-"    ...))\n"
-msgstr ""
-"(define-public gtk+\n"
-"  (package\n"
-"    (name \"gtk+\")\n"
-"    (version \"3.9.12\")\n"
-"    ...))\n"
-"(define-public gtk+-2\n"
-"  (package\n"
-"    (name \"gtk+\")\n"
-"    (version \"2.24.20\")\n"
-"    ...))\n"
-
-#. type: Plain text
-#: doc/guix.texi:23825
-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: example
-#: doc/guix.texi:23831
-#, no-wrap
-msgid ""
-"(define-public gtk+-3.8\n"
-"  (package\n"
-"    (name \"gtk+\")\n"
-"    (version \"3.8.2\")\n"
-"    ...))\n"
-msgstr ""
-"(define-public gtk+-3.8\n"
-"  (package\n"
-"    (name \"gtk+\")\n"
-"    (version \"3.8.2\")\n"
-"    ...))\n"
-
-#. type: cindex
-#: doc/guix.texi:23835
-#, no-wrap
-msgid "version number, for VCS snapshots"
-msgstr ""
-
-#. type: Plain text
-#: doc/guix.texi:23841
-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 ""
-
-#. type: Plain text
-#: doc/guix.texi:23849
-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 ""
-
-#. type: example
-#: doc/guix.texi:23858
-#, no-wrap
-msgid ""
-"2.0.11-3.cabba9e\n"
-"  ^    ^    ^\n"
-"  |    |    `-- upstream commit ID\n"
-"  |    |\n"
-"  |    `--- Guix package revision\n"
-"  |\n"
-"latest upstream version\n"
-msgstr ""
-
-#. type: Plain text
-#: doc/guix.texi:23867
-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 ""
-
-#. type: example
-#: doc/guix.texi:23883
-#, no-wrap
-msgid ""
-"(define my-package\n"
-"  (let ((commit \"c3f29bc928d5900971f65965feaae59e1272a3f7\")\n"
-"        (revision \"1\"))          ;Guix package revision\n"
-"    (package\n"
-"      (version (git-version \"0.9\" revision commit))\n"
-"      (source (origin\n"
-"                (method git-fetch)\n"
-"                (uri (git-reference\n"
-"                      (url \"git://example.org/my-package.git\")\n"
-"                      (commit commit)))\n"
-"                (sha256 (base32 \"1mbikn@dots{}\"))\n"
-"                (file-name (git-file-name name version))))\n"
-"      ;; @dots{}\n"
-"      )))\n"
-msgstr ""
-
-#. type: cindex
-#: doc/guix.texi:23888
-#, no-wrap
-msgid "package description"
-msgstr ""
-
-#. type: cindex
-#: doc/guix.texi:23889
-#, no-wrap
-msgid "package synopsis"
-msgstr ""
-
-#. type: Plain text
-#: doc/guix.texi:23896
-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 ""
-
-#. type: Plain text
-#: doc/guix.texi:23904
-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 ""
-
-#. type: Plain text
-#: doc/guix.texi:23914
-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 ""
-
-#. type: Plain text
-#: doc/guix.texi:23922
-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 ""
-
-#. type: cindex
-#: doc/guix.texi:23923
-#, no-wrap
-msgid "Texinfo markup, in package descriptions"
-msgstr ""
-
-#. type: Plain text
-#: doc/guix.texi:23932
-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 ""
-
-#. type: Plain text
-#: doc/guix.texi:23938
-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 ""
-
-#. type: Plain text
-#: doc/guix.texi:23943
-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 ""
-
-#. type: lisp
-#: doc/guix.texi:23949
-#, no-wrap
-msgid ""
-"(package\n"
-"  ;; @dots{}\n"
-"  (synopsis \"This is translatable\")\n"
-"  (description (string-append \"This is \" \"*not*\" \" translatable.\")))\n"
-msgstr ""
-
-#. type: Plain text
-#: doc/guix.texi:23957
-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 ""
-
-#. type: example
-#: doc/guix.texi:23962
-#, no-wrap
-msgid ""
-";; TRANSLATORS: \"X11 resize-and-rotate\" should not be translated.\n"
-"(description \"ARandR is designed to provide a simple visual front end\n"
-"for the X11 resize-and-rotate (RandR) extension. @dots{}\")\n"
-msgstr ""
-
-#. type: cindex
-#: doc/guix.texi:23968
-#, no-wrap
-msgid "python"
-msgstr ""
-
-#. type: Plain text
-#: doc/guix.texi:23974
-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 ""
-
-#. type: Plain text
-#: doc/guix.texi:23980
-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 ""
-
-#. type: Plain text
-#: doc/guix.texi:23986
-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 ""
-
-#. type: subsubsection
-#: doc/guix.texi:23987
-#, no-wrap
-msgid "Specifying Dependencies"
-msgstr ""
-
 #. type: cindex
-#: doc/guix.texi:23988
-#, no-wrap
-msgid "inputs, for Python packages"
-msgstr ""
-
-#. type: Plain text
-#: doc/guix.texi:23993
-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 ""
-
-#. type: Plain text
-#: doc/guix.texi:23999
-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 ""
-
-#. type: itemize
-#: doc/guix.texi:24007
-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 ""
-
-#. type: itemize
-#: doc/guix.texi:24013
-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 ""
-
-#. type: itemize
-#: doc/guix.texi:24021
-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 ""
-
-#. type: itemize
-#: doc/guix.texi:24025
-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 ""
-
-#. type: itemize
-#: doc/guix.texi:24030
-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 ""
-
-#. type: itemize
-#: doc/guix.texi:24036
-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 ""
-
-#. type: cindex
-#: doc/guix.texi:24043
-#, no-wrap
-msgid "perl"
-msgstr ""
-
-#. type: Plain text
-#: doc/guix.texi:24054
-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 ""
-
-#. type: cindex
-#: doc/guix.texi:24059
-#, no-wrap
-msgid "java"
-msgstr ""
-
-#. type: Plain text
-#: doc/guix.texi:24062
-msgid "Java programs standing for themselves are named as any other package, using the lowercase upstream name."
-msgstr ""
-
-#. type: Plain text
-#: doc/guix.texi:24068
-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 ""
-
-#. type: Plain text
-#: doc/guix.texi:24074
-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 ""
-
-#. type: Plain text
-#: doc/guix.texi:24085
-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 ""
-
-#. type: Plain text
-#: doc/guix.texi:24089
-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/guix.texi:24097
-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 ""
-
-#. type: Plain text
-#: doc/guix.texi:24106
-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 ""
-
-#. type: Plain text
-#: doc/guix.texi:24112
-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 ""
-
-#. type: cindex
-#: doc/guix.texi:24120
+#: doc/guix.texi:25490
 #, no-wrap
 msgid "bootstrapping"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:24130
+#: doc/guix.texi:25500
 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:24131 doc/guix.texi:24253
+#: doc/guix.texi:25501 doc/guix.texi:25623
 #, no-wrap
 msgid "bootstrap binaries"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:24141
+#: doc/guix.texi:25511
 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:24144
+#: doc/guix.texi:25514
 msgid "These bootstrap binaries are ``taken for granted'', though we can also re-create them if needed (more on that later)."
 msgstr ""
 
-#. type: unnumberedsubsec
-#: doc/guix.texi:24145
+#. type: unnumberedsec
+#: doc/guix.texi:25515
 #, no-wrap
 msgid "Preparing to Use the Bootstrap Binaries"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:24150
+#: doc/guix.texi:25520
 msgid "@image{images/bootstrap-graph,6in,,Dependency graph of the early bootstrap derivations}"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:24155
+#: doc/guix.texi:25525
 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:24160
+#: doc/guix.texi:25530
 #, no-wrap
 msgid ""
 "guix graph -t derivation \\\n"
@@ -42527,43 +46219,43 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:24169
+#: doc/guix.texi:25539
 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:24178
+#: doc/guix.texi:25548
 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:24190
+#: doc/guix.texi:25560
 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 ""
 
 #. type: Plain text
-#: doc/guix.texi:24194
+#: doc/guix.texi:25564
 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 ""
 
-#. type: unnumberedsubsec
-#: doc/guix.texi:24196
+#. type: unnumberedsec
+#: doc/guix.texi:25566
 #, no-wrap
 msgid "Building the Build Tools"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:24205
+#: doc/guix.texi:25575
 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:24212
+#: doc/guix.texi:25582
 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:24217
+#: doc/guix.texi:25587
 #, no-wrap
 msgid ""
 "guix graph -t bag \\\n"
@@ -42572,154 +46264,235 @@ msgid ""
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:24224
+#: doc/guix.texi:25594
 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 ""
 
 #. type: Plain text
-#: doc/guix.texi:24226
+#: doc/guix.texi:25596
 msgid "@image{images/bootstrap-packages,6in,,Dependency graph of the early packages}"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:24232
+#: doc/guix.texi:25602
 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 ""
 
 #. type: Plain text
-#: doc/guix.texi:24237
+#: doc/guix.texi:25607
 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 ""
 
 #. type: Plain text
-#: doc/guix.texi:24243
+#: doc/guix.texi:25613
 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 ""
 
 #. type: Plain text
-#: doc/guix.texi:24249
+#: doc/guix.texi:25619
 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 ""
 
-#. type: unnumberedsubsec
-#: doc/guix.texi:24251
+#. type: unnumberedsec
+#: doc/guix.texi:25621
 #, no-wrap
 msgid "Building the Bootstrap Binaries"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:24258
+#: doc/guix.texi:25628
 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 ""
 
 #. type: Plain text
-#: doc/guix.texi:24262
+#: doc/guix.texi:25632
 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 ""
 
 #. type: example
-#: doc/guix.texi:24265
+#: doc/guix.texi:25635
 #, no-wrap
 msgid "guix build bootstrap-tarballs\n"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:24270
+#: doc/guix.texi:25640
 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 ""
 
 #. type: Plain text
-#: doc/guix.texi:24276
+#: doc/guix.texi:25646
 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: unnumberedsubsec
-#: doc/guix.texi:24277
+#. type: unnumberedsec
+#: doc/guix.texi:25647
 #, no-wrap
 msgid "Reducing the Set of Bootstrap Binaries"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:24285
+#: doc/guix.texi:25655
 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 ""
 
 #. type: Plain text
-#: doc/guix.texi:24291
+#: doc/guix.texi:25661
 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:24297
+#: doc/guix.texi:25667
 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 ""
 
-#. type: section
-#: doc/guix.texi:24300
+#. type: chapter
+#: doc/guix.texi:25670
 #, no-wrap
 msgid "Porting to a New Platform"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:24309
+#: doc/guix.texi:25679
 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:24314
+#: doc/guix.texi:25684
 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:24317
+#: doc/guix.texi:25687
 #, no-wrap
 msgid "guix build --target=armv5tel-linux-gnueabi bootstrap-tarballs\n"
 msgstr ""
 
 #. type: Plain text
-#: doc/guix.texi:24324
+#: doc/guix.texi:25694
 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:24333
+#: doc/guix.texi:25703
 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:24342
+#: doc/guix.texi:25712
 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 ""
 
 #. type: include
-#: doc/guix.texi:24344
+#: doc/guix.texi:25714
 #, no-wrap
 msgid "contributing.texi"
 msgstr "contributing.de.texi"
 
 #. type: Plain text
-#: doc/guix.texi:24357
+#: doc/guix.texi:25727
 msgid "Guix is based on the @uref{http://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 ""
+msgstr "Guix baut auf dem @uref{http://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:24360
+#: doc/guix.texi:25730
 msgid "The Nix-based software distributions, Nixpkgs and NixOS, have also been an inspiration for Guix."
-msgstr ""
+msgstr "Die Nix-basierten Software-Distributionen Nixpkgs und NixOS waren auch eine Inspiration für Guix."
 
 #. type: Plain text
-#: doc/guix.texi:24366
+#: doc/guix.texi:25736
 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 ""
+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:24371
+#: doc/guix.texi:25741
 #, no-wrap
 msgid "license, GNU Free Documentation License"
-msgstr ""
+msgstr "Lizenz, GNU-Lizenz für freie Dokumentation"
 
 #. type: include
-#: doc/guix.texi:24372
+#: doc/guix.texi:25742
 #, no-wrap
 msgid "fdl-1.3.texi"
 msgstr "fdl-1.3.texi"
+
+#~ 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 "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."
+
+#~ msgid "@code{modules} (default: @var{%default-modules})"
+#~ msgstr "@code{modules} (Vorgabe: @var{%default-modules})"
+
+#~ msgid "Software for your friendly GNU system."
+#~ msgstr "Software für Ihr freundliches GNU-System."
+
+#~ msgid "The real thing."
+#~ msgstr "Die Hauptsache."
+
+#~ msgid "GuixSD"
+#~ msgstr "GuixSD"
+
+#~ msgid "Note that 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}."
+#~ msgstr "Beachten Sie, dass es in diesem Abschnitt um die Installation des Paketverwaltungswerkzeugs geht, welche auf einem laufenden GNU/Linux-System vollzogen werden kann. Falls Sie stattdessen das vollständige GNU-Betriebssystem installieren möchten, werfen Sie einen Blick in den Abschnitt @ref{System Installation}."
+
+#~ msgid "We provide a @uref{https://git.savannah.gnu.org/cgit/guix.git/plain/etc/guix-install.sh, shell installer script}, which automates the download, installation, and initial configuration of Guix.  It should be run as the root user."
+#~ msgstr "Wir bieten ein @uref{https://git.savannah.gnu.org/cgit/guix.git/plain/etc/guix-install.sh, Installations-Skript für die Shell} an, 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."
+
+#~ msgid "later, including 2.2.x;"
+#~ msgstr "neuer, einschließlich 2.2.x,"
+
+#~ msgid "Installing @url{http://savannah.nongnu.org/projects/guile-json/, Guile-JSON} will allow you to use the @command{guix import pypi} command (@pxref{Invoking guix import}).  It is of interest primarily for developers and not for casual users."
+#~ msgstr "Wenn Sie @url{http://savannah.nongnu.org/projects/guile-json/, Guile-JSON} installieren, können Sie den Befehl @command{guix import pypi} benutzen (siehe @ref{Invoking guix import}). Das spielt hauptsächlich für Entwickler und @emph{nicht} für Gelegenheitsnutzer eine Rolle."
+
+#~ msgid "attempt to use impure library, error message"
+#~ msgstr "Versuch, unreine Bibliothek zu benutzen, Fehlermeldung"
+
+#~ msgid "Produce verbose output.  In particular, emit the build log of the environment on the standard error port."
+#~ msgstr "Erzeugt ausführliche Textausgaben. Insbesondere wird auch das Erstellungsprotokoll der Umgebung auf dem Standard-Fehler-Port (stderr) ausgegeben."
+
+#~ 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 "Derzeit, als dieser Text geschrieben wurde, wird @code{berlin.guixsd.org} ausgebaut, um besser skalieren zu können, aber Sie könnten es ausprobieren. Dahinter stecken 20 x86_64-/i686-Erstellungsknoten, die Substitute früher anbieten könnten als @code{mirror.hydra.gnu.org}."
+
+#~ msgid "@code{self-native-input?} (default: @code{#f})"
+#~ msgstr "@code{self-native-input?} (Vorgabe: @code{#f})"
+
+#~ msgid "... yields the graph of packages that depend on OCaml."
+#~ msgstr "…@: ergibt den Graphen der Pakete, die von OCaml abhängen."
+
+#~ msgid "@command{guix environment} also supports all of the common build options that @command{guix build} supports (@pxref{Common Build Options})."
+#~ msgstr "@command{guix environment} unterstützt auch alle gemeinsamen Erstellungsoptionen, die @command{guix build} unterstützt (siehe @ref{Common Build Options})."
+
+#~ 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 "upgrading GuixSD"
+#~ msgstr "GuixSD aktualisieren"
+
+#~ msgid "(cons* (avahi-service) (lsh-service) %base-services)\n"
+#~ msgstr "(cons* (avahi-service) (lsh-service) %base-services)\n"
+
+#~ msgid "keyboard"
+#~ msgstr "Tastatur"
+
+#~ msgid "{Scheme Procedure} console-keymap-service @var{files} ..."
+#~ msgstr "{Scheme-Prozedur} console-keymap-service @var{Dateien} ..."
+
+#~ 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."
diff --git a/po/doc/guix-manual.es.po b/po/doc/guix-manual.es.po
new file mode 100644
index 0000000000..84afa47587
--- /dev/null
+++ b/po/doc/guix-manual.es.po
@@ -0,0 +1,47521 @@
+# Spanish translations for guix package
+# Copyright (C) 2019 the authors of Guix (msgids)
+# This file is distributed under the same license as the guix package.
+# Miguel Ángel Arruga Vivas <rosen644835@gmail.com>, 2019.
+# ######################################################################
+#
+#  * MAC (mandatory access control): ¿control de acceso mandatorio? Me suena fatal
+#  * Regexp y match: He intentado dejar regexp y usar "aceptado
+#    por"/"correspondiente con la expresión regular para match.
+#  * build: se ha usado construcción, a diferencia de la compilación,
+#    como un proceso más amplio.
+#  * cache: caché
+#  * chroot: Se ha dejado igual.
+#  * closure: He tomado clausura de wikipedia...
+#  * command(-line): (línea de) orden(es). No me suena bien de todos
+#    modos, ¡comprobar Bash!
+#  * commit: revisión
+#  * copy-on-write: Copia-durante-escritura
+#  * graft: injerto
+#  * home (directory): ¿¿??
+#  * host: ¿dirección? A veces máquina.
+#  * keybox: Se ha dejado igual, comprobar si es el nombre del formato o
+#    un nombre normal.
+#  * login: ingreso al sistema
+#  * maintainer: responsable
+#  * manifest: manifiesto
+#  * mapped device: ¿dispositivo traducido?
+#  * override: Anular, forzar.
+#  * shell: Se ha dejado igual.
+#  * upstream: ¿proveedoras?
+#
+# ######################################################################
+# 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í.
+msgid ""
+msgstr ""
+"Project-Id-Version: guix-manual 1.0.0-pre2\n"
+"Report-Msgid-Bugs-To: ludo@gnu.org\n"
+"POT-Creation-Date: 2019-04-24 13:22+0200\n"
+"PO-Revision-Date: 2019-04-25 00:55+0200\n"
+"Last-Translator: Miguel Ángel Arruga Vivas <rosen644835@gmail.com>\n"
+"Language-Team: Spanish <es@tp.org.es>\n"
+"Language: es\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Bugs: Report translation errors to the Language-Team address.\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. #-#-#-#-#  contributing.pot (guix 1.0.0-pre2)  #-#-#-#-#
+#. type: chapter
+#. #-#-#-#-#  guix.pot (guix 1.0.0-pre2)  #-#-#-#-#
+#. type: menuentry
+#: doc/contributing.texi:1 doc/contributing.texi:2 doc/guix.texi:134
+#, no-wrap
+msgid "Contributing"
+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})."
+
+#. type: cindex
+#: doc/contributing.texi:10
+#, no-wrap
+msgid "code of conduct, of contributors"
+msgstr "código de conducta, de contribuidoras"
+
+#. type: cindex
+#: doc/contributing.texi:11
+#, no-wrap
+msgid "contributor covenant"
+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{http://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{http://contributor-coventant.org}. Se puede encontrar una versión local en el fichero @file{CODE-OF-CONDUCT} del árbol de fuentes."
+
+#. type: Plain text
+#: doc/contributing.texi:21
+msgid "Contributors are not required to use their legal name in patches and on-line communication; they can use any name or pseudonym of their choice."
+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:29 doc/contributing.texi:31 doc/contributing.texi:32
+#, no-wrap
+msgid "Building from Git"
+msgstr "Construcción desde Git"
+
+#. type: menuentry
+#: doc/contributing.texi:29
+msgid "The latest and greatest."
+msgstr "Lo último y mejor."
+
+#. type: section
+#: doc/contributing.texi:29 doc/contributing.texi:103
+#: doc/contributing.texi:104
+#, no-wrap
+msgid "Running Guix Before It Is Installed"
+msgstr "Ejecución de Guix antes de estar instalado"
+
+#. type: menuentry
+#: doc/contributing.texi:29
+msgid "Hacker tricks."
+msgstr "Trucos de hacker."
+
+#. type: section
+#: doc/contributing.texi:29 doc/contributing.texi:167
+#: doc/contributing.texi:168
+#, no-wrap
+msgid "The Perfect Setup"
+msgstr "La configuración perfecta"
+
+#. type: menuentry
+#: doc/contributing.texi:29
+msgid "The right tools."
+msgstr "Las herramientas adecuadas."
+
+#. type: section
+#: doc/contributing.texi:29 doc/contributing.texi:231
+#: doc/contributing.texi:232
+#, no-wrap
+msgid "Packaging Guidelines"
+msgstr "Guías de empaquetamiento"
+
+#. type: menuentry
+#: doc/contributing.texi:29
+msgid "Growing the distribution."
+msgstr "Crecimiento de la distribución."
+
+#. type: section
+#: doc/contributing.texi:29 doc/contributing.texi:680
+#: doc/contributing.texi:681
+#, no-wrap
+msgid "Coding Style"
+msgstr "Estilo de codificación"
+
+#. type: menuentry
+#: doc/contributing.texi:29
+msgid "Hygiene of the contributor."
+msgstr "Higiene de la contribuidora."
+
+#. type: section
+#: doc/contributing.texi:29 doc/contributing.texi:778
+#: doc/contributing.texi:779
+#, no-wrap
+msgid "Submitting Patches"
+msgstr "Envío de parches"
+
+#. type: menuentry
+#: doc/contributing.texi:29
+msgid "Share your work."
+msgstr "Comparta su trabajo."
+
+#. type: Plain text
+#: doc/contributing.texi:36
+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:39
+#, 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/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 "Cuando se compila Guix de una copia de trabajo local (checkout), se requieren los siguientes paquetes, además de los mencionados en las instrucciones de instalación (@pxref{Requirements})."
+
+#. type: item
+#: doc/contributing.texi:46
+#, no-wrap
+msgid "@url{http://gnu.org/software/autoconf/, GNU Autoconf};"
+msgstr "@url{http://gnu.org/software/autoconf/, GNU Autoconf};"
+
+#. type: item
+#: doc/contributing.texi:47
+#, no-wrap
+msgid "@url{http://gnu.org/software/automake/, GNU Automake};"
+msgstr "@url{http://gnu.org/software/automake/, GNU Automake};"
+
+#. type: item
+#: doc/contributing.texi:48
+#, no-wrap
+msgid "@url{http://gnu.org/software/gettext/, GNU Gettext};"
+msgstr "@url{http://gnu.org/software/gettext/, GNU Gettext};"
+
+#. type: item
+#: doc/contributing.texi:49
+#, no-wrap
+msgid "@url{http://gnu.org/software/texinfo/, GNU Texinfo};"
+msgstr "@url{http://gnu.org/software/texinfo/, GNU Texinfo};"
+
+#. type: item
+#: doc/contributing.texi:50
+#, no-wrap
+msgid "@url{http://www.graphviz.org/, Graphviz};"
+msgstr "@url{http://www.graphviz.org/, Graphviz};"
+
+#. type: item
+#: doc/contributing.texi:51
+#, no-wrap
+msgid "@url{http://www.gnu.org/software/help2man/, GNU Help2man (optional)}."
+msgstr "@url{http://www.gnu.org/software/help2man/, GNU Help2man (opcional)}."
+
+#. 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 "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:61
+#, no-wrap
+msgid "guix environment guix\n"
+msgstr "guix environment guix\n"
+
+#. 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{Invoking guix environment}, para más información sobre esa orden. Se pueden añadir dependencias adicionales con la opción @option{--ad-hoc}:"
+
+#. type: example
+#: doc/contributing.texi:68
+#, no-wrap
+msgid "guix environment guix --ad-hoc help2man git strace\n"
+msgstr "guix environment guix --ad-hoc help2man git strace\n"
+
+#. type: Plain text
+#: doc/contributing.texi:72
+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:75
+#, 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
+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. Asegurese 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:"
+
+#. type: example
+#: doc/contributing.texi:87
+#, 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
+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: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 "Entonces, ejecute @command{./configure} como siempre. Asegurese de pasar @code{--localstatedir=@var{directorio}}, donde @var{directorio} es el valor de @code{localstatedir} usado por su instalación actual (@pxref{The Store}, para información sobre esto)."
+
+#. type: Plain text
+#: doc/contributing.texi:101
+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:110
+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: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 "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, como en@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:125
+#, 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"
+
+#. type: Plain text
+#: doc/contributing.texi:129
+msgid "Similarly, for a Guile session using the Guix modules:"
+msgstr "De manera similar, para una sesión de Guile que use los módulos Guix:"
+
+#. type: example
+#: doc/contributing.texi:132
+#, no-wrap
+msgid ""
+"$ ./pre-inst-env guile -c '(use-modules (guix utils)) (pk (%current-system))'\n"
+"\n"
+msgstr ""
+"$ ./pre-inst-env guile -c '(use-modules (guix utils)) (pk (%current-system))'\n"
+"\n"
+
+#. type: example
+#: doc/contributing.texi:134
+#, no-wrap
+msgid ";;; (\"x86_64-linux\")\n"
+msgstr ";;; (\"x86_64-linux\")\n"
+
+#. type: cindex
+#: doc/contributing.texi:137
+#, no-wrap
+msgid "REPL"
+msgstr "REPL"
+
+#. type: cindex
+#: doc/contributing.texi:138
+#, no-wrap
+msgid "read-eval-print loop"
+msgstr "entorno interactivo"
+
+#. type: Plain text
+#: doc/contributing.texi:141
+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:156
+#, no-wrap
+msgid ""
+"$ ./pre-inst-env guile\n"
+"scheme@@(guile-user)> ,use(guix)\n"
+"scheme@@(guile-user)> ,use(gnu)\n"
+"scheme@@(guile-user)> (define snakes\n"
+"                       (fold-packages\n"
+"                         (lambda (package lst)\n"
+"                           (if (string-prefix? \"python\"\n"
+"                                               (package-name package))\n"
+"                               (cons package lst)\n"
+"                               lst))\n"
+"                         '()))\n"
+"scheme@@(guile-user)> (length snakes)\n"
+"$1 = 361\n"
+msgstr ""
+"$ ./pre-inst-env guile\n"
+"scheme@@(guile-user)> ,use(guix)\n"
+"scheme@@(guile-user)> ,use(gnu)\n"
+"scheme@@(guile-user)> (define serpientes\n"
+"                       (fold-packages\n"
+"                         (lambda (paquete lst)\n"
+"                           (if (string-prefix? \"python\"\n"
+"                                               (package-name paquete))\n"
+"                               (cons paquete lst)\n"
+"                               lst))\n"
+"                         '()))\n"
+"scheme@@(guile-user)> (length serpientes)\n"
+"$1 = 361\n"
+
+#. type: Plain text
+#: doc/contributing.texi:160
+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}."
+
+#. type: Plain text
+#: doc/contributing.texi:165
+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: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:"
+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{http://www.gnu.org/software/emacs, Emacs}, empoderado por el maravilloso @url{http://nongnu.org/geiser, Geiser}. Para configurarlo, ejecute:"
+
+#. type: example
+#: doc/contributing.texi:178
+#, 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
+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:"
+
+#. type: lisp
+#: doc/contributing.texi:192
+#, no-wrap
+msgid ""
+";; @r{Assuming the Guix checkout is in ~/src/guix.}\n"
+"(with-eval-after-load 'geiser-guile\n"
+"  (add-to-list 'geiser-guile-load-path \"~/src/guix\"))\n"
+msgstr ""
+";; @r{Suponiendo que la copia de trabajo de Guix está en ~/src/guix.}\n"
+"(with-eval-after-load 'geiser-guile\n"
+"  (add-to-list 'geiser-guile-load-path \"~/src/guix\"))\n"
+
+# TODO: (MAAV) ¿Neat? ¿Qué traducción hay?
+#. 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."
+msgstr "Para realmente editar el código, Emacs tiene un modo limpio para Scheme. 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:201
+#, no-wrap
+msgid "code snippets"
+msgstr "fragmentos de código"
+
+#. type: cindex
+#: doc/contributing.texi:202
+#, no-wrap
+msgid "templates"
+msgstr "plantillas"
+
+# FUZZY
+# TODO: (MAAV) ¿Boilerplate?
+#. type: cindex
+#: doc/contributing.texi:203
+#, no-wrap
+msgid "reducing boilerplate"
+msgstr "reducir la verborrea"
+
+#. 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 "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{http://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:215
+#, no-wrap
+msgid ""
+";; @r{Assuming the Guix checkout is in ~/src/guix.}\n"
+"(with-eval-after-load 'yasnippet\n"
+"  (add-to-list 'yas-snippet-dirs \"~/src/guix/etc/snippets\"))\n"
+msgstr ""
+";; @r{Suponiendo que la copia de trabajo de Guix está en ~/src/guix.}\n"
+"(with-eval-after-load 'yasnippet\n"
+"  (add-to-list 'yas-snippet-dirs \"~/src/guix/etc/snippets\"))\n"
+
+#. type: Plain text
+#: doc/contributing.texi:223
+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."
+
+#. type: Plain text
+#: doc/contributing.texi:229
+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:234
+#, no-wrap
+msgid "packages, creating"
+msgstr "paquetes, creación"
+
+#. type: Plain text
+#: doc/contributing.texi:238
+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:246
+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."
+
+#. type: Plain text
+#: doc/contributing.texi:255
+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:261
+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}):"
+
+#. type: example
+#: doc/contributing.texi:264
+#, no-wrap
+msgid "./pre-inst-env guix build gnew --keep-failed\n"
+msgstr "./pre-inst-env guix build gnuevo --keep-failed\n"
+
+# FUZZY
+# MAAV: Log
+#. type: Plain text
+#: doc/contributing.texi:270
+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:275
+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:"
+
+#. type: example
+#: doc/contributing.texi:278
+#, 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: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 "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{http://hydra.gnu.org/jobset/gnu/master, nuestro sistema de integración continua}."
+
+#. type: cindex
+#: doc/contributing.texi:287
+#, no-wrap
+msgid "substituter"
+msgstr "servidor de sustituciones"
+
+#. type: Plain text
+#: doc/contributing.texi:294
+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:305 doc/contributing.texi:307
+#: doc/contributing.texi:308
+#, no-wrap
+msgid "Software Freedom"
+msgstr "Libertad del software"
+
+#. type: menuentry
+#: doc/contributing.texi:305
+msgid "What may go into the distribution."
+msgstr "Qué puede entrar en la distribución."
+
+#. type: subsection
+#: doc/contributing.texi:305 doc/contributing.texi:335
+#: doc/contributing.texi:336
+#, no-wrap
+msgid "Package Naming"
+msgstr "Nombrado de paquetes"
+
+#. type: menuentry
+#: doc/contributing.texi:305
+msgid "What's in a name?"
+msgstr "¿Qué hay en un nombre?"
+
+#. type: subsection
+#: doc/contributing.texi:305 doc/contributing.texi:360
+#: doc/contributing.texi:361
+#, no-wrap
+msgid "Version Numbers"
+msgstr "Versiones numéricas"
+
+#. type: menuentry
+#: doc/contributing.texi:305
+msgid "When the name is not enough."
+msgstr "Cuando el nombre no es suficiente."
+
+#. type: subsection
+#: doc/contributing.texi:305 doc/contributing.texi:451
+#: doc/contributing.texi:452
+#, no-wrap
+msgid "Synopses and Descriptions"
+msgstr "Sinopsis y descripciones"
+
+#. type: menuentry
+#: doc/contributing.texi:305
+msgid "Helping users find the right package."
+msgstr "Ayudar a las usuarias a encontrar el paquete adecuado."
+
+#. type: subsection
+#: doc/contributing.texi:305 doc/contributing.texi:531
+#: doc/contributing.texi:532
+#, no-wrap
+msgid "Python Modules"
+msgstr "Módulos Python"
+
+#. type: menuentry
+#: doc/contributing.texi:305
+msgid "A touch of British comedy."
+msgstr "Un toque de comedia británica."
+
+#. type: subsection
+#: doc/contributing.texi:305 doc/contributing.texi:606
+#: doc/contributing.texi:607
+#, no-wrap
+msgid "Perl Modules"
+msgstr "Módulos Perl"
+
+#. type: menuentry
+#: doc/contributing.texi:305
+msgid "Little pearls."
+msgstr "Pequeñas perlas."
+
+#. type: subsection
+#: doc/contributing.texi:305 doc/contributing.texi:622
+#: doc/contributing.texi:623
+#, no-wrap
+msgid "Java Packages"
+msgstr "Paquetes Java"
+
+#. type: menuentry
+#: doc/contributing.texi:305
+msgid "Coffee break."
+msgstr "La parada del café."
+
+#. type: subsection
+#: doc/contributing.texi:305 doc/contributing.texi:642
+#: doc/contributing.texi:643
+#, no-wrap
+msgid "Fonts"
+msgstr "Tipografías"
+
+# XXX: (MAAV) Mmmm, es difícil traducir esta...
+#. type: menuentry
+#: doc/contributing.texi:305
+msgid "Fond of fonts."
+msgstr "Amor por las letras."
+
+#. type: cindex
+#: doc/contributing.texi:311
+#, no-wrap
+msgid "free software"
+msgstr "software libre"
+
+# FUZZY
+# MAAV: Comprobar traducción de la página de GNU
+#. 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 "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{http://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 proporcionan únicamente software que permite estas cuatro libertades."
+
+# FUZZY
+# MAAV: Comprobar traducción de la página de GNU
+#. 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 "Además, la distribución GNU sigue las @url{http://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 el tratamiento de 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:333
+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:338
+#, no-wrap
+msgid "package name"
+msgstr "nombre de paquete"
+
+#. type: Plain text
+#: doc/contributing.texi:346
+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:351
+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:356
+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:358
+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:363
+#, no-wrap
+msgid "package version"
+msgstr "versión de paquete"
+
+#. type: Plain text
+#: doc/contributing.texi:372
+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:375
+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:377
+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: example
+#: doc/contributing.texi:389
+#, no-wrap
+msgid ""
+"(define-public gtk+\n"
+"  (package\n"
+"    (name \"gtk+\")\n"
+"    (version \"3.9.12\")\n"
+"    ...))\n"
+"(define-public gtk+-2\n"
+"  (package\n"
+"    (name \"gtk+\")\n"
+"    (version \"2.24.20\")\n"
+"    ...))\n"
+msgstr ""
+"(define-public gtk+\n"
+"  (package\n"
+"    (name \"gtk+\")\n"
+"    (version \"3.9.12\")\n"
+"    ...))\n"
+"(define-public gtk+-2\n"
+"  (package\n"
+"    (name \"gtk+\")\n"
+"    (version \"2.24.20\")\n"
+"    ...))\n"
+
+#. type: Plain text
+#: doc/contributing.texi:391
+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: example
+#: doc/contributing.texi:397
+#, no-wrap
+msgid ""
+"(define-public gtk+-3.8\n"
+"  (package\n"
+"    (name \"gtk+\")\n"
+"    (version \"3.8.2\")\n"
+"    ...))\n"
+msgstr ""
+"(define-public gtk+-3.8\n"
+"  (package\n"
+"    (name \"gtk+\")\n"
+"    (version \"3.8.2\")\n"
+"    ...))\n"
+
+#. type: cindex
+#: doc/contributing.texi:401
+#, no-wrap
+msgid "version number, for VCS snapshots"
+msgstr "número de versión, para revisiones de VCS"
+
+#. type: Plain text
+#: doc/contributing.texi:407
+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:415
+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 tamié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:424
+#, no-wrap
+msgid ""
+"2.0.11-3.cabba9e\n"
+"  ^    ^    ^\n"
+"  |    |    `-- upstream commit ID\n"
+"  |    |\n"
+"  |    `--- Guix package revision\n"
+"  |\n"
+"latest upstream version\n"
+msgstr ""
+"2.0.11-3.cabba9e\n"
+"  ^    ^    ^\n"
+"  |    |    `-- ID de revisión original\n"
+"  |    |\n"
+"  |    `--- revisión del paquete Guix\n"
+"  |\n"
+"última versión de publicación\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 "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: example
+#: doc/contributing.texi:449
+#, no-wrap
+msgid ""
+"(define my-package\n"
+"  (let ((commit \"c3f29bc928d5900971f65965feaae59e1272a3f7\")\n"
+"        (revision \"1\"))          ;Guix package revision\n"
+"    (package\n"
+"      (version (git-version \"0.9\" revision commit))\n"
+"      (source (origin\n"
+"                (method git-fetch)\n"
+"                (uri (git-reference\n"
+"                      (url \"git://example.org/my-package.git\")\n"
+"                      (commit commit)))\n"
+"                (sha256 (base32 \"1mbikn@dots{}\"))\n"
+"                (file-name (git-file-name name version))))\n"
+"      ;; @dots{}\n"
+"      )))\n"
+msgstr ""
+"(define mi-paquete\n"
+"  (let ((commit \"c3f29bc928d5900971f65965feaae59e1272a3f7\")\n"
+"        (revision \"1\"))          ;Revisión Guix del paquete\n"
+"    (package\n"
+"      (version (git-version \"0.9\" revision commit))\n"
+"      (source (origin\n"
+"                (method git-fetch)\n"
+"                (uri (git-reference\n"
+"                      (url \"git://example.org/mi-paquete.git\")\n"
+"                      (commit commit)))\n"
+"                (sha256 (base32 \"1mbikn@dots{}\"))\n"
+"                (file-name (git-file-name name version))))\n"
+"      ;; @dots{}\n"
+"      )))\n"
+
+#. type: cindex
+#: doc/contributing.texi:454
+#, no-wrap
+msgid "package description"
+msgstr "descripción de paquete"
+
+#. type: cindex
+#: doc/contributing.texi:455
+#, no-wrap
+msgid "package synopsis"
+msgstr "sinopsis de paquete"
+
+#. type: Plain text
+#: doc/contributing.texi:462
+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:470
+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 que aceptadas por un patrón''."
+
+#. type: Plain text
+#: doc/contributing.texi:480
+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 esperablemente proporciona a la usuaria una mejor idea sobre si esto es lo que está buscando."
+
+#. type: Plain text
+#: doc/contributing.texi:488
+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:489
+#, no-wrap
+msgid "Texinfo markup, in package descriptions"
+msgstr "marcado Texinfo, en descripciones de paquetes"
+
+#. type: Plain text
+#: doc/contributing.texi:498
+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: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 "Las sinopsis y descripciones son traducidas por voluntarias @uref{http://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:509
+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:515
+#, no-wrap
+msgid ""
+"(package\n"
+"  ;; @dots{}\n"
+"  (synopsis \"This is translatable\")\n"
+"  (description (string-append \"This is \" \"*not*\" \" translatable.\")))\n"
+msgstr ""
+"(package\n"
+"  ;; @dots{}\n"
+"  (synopsis \"Esto es traducible\")\n"
+"  (description (string-append \"Esto \" \"*no*\" \" es traducible.\")))\n"
+
+#. type: Plain text
+#: doc/contributing.texi:523
+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:528
+#, no-wrap
+msgid ""
+";; TRANSLATORS: \"X11 resize-and-rotate\" should not be translated.\n"
+"(description \"ARandR is designed to provide a simple visual front end\n"
+"for the X11 resize-and-rotate (RandR) extension. @dots{}\")\n"
+msgstr ""
+
+#. type: cindex
+#: doc/contributing.texi:534
+#, no-wrap
+msgid "python"
+msgstr "python"
+
+#. type: Plain text
+#: doc/contributing.texi:540
+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: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 "Algunos módulos son compatibles únicamente con una versión de Python, otros con ambas. Si el paquete Foo compila sólo con Python 3, lo llamamos @code{python-foo}; si compila sólo con Python 2, lo llamamos @code{python2-foo}. Si es compatible con ambas versiones, creamos dos paquetes con los nombres correspondientes."
+
+#. type: Plain text
+#: doc/contributing.texi:552
+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:553
+#, no-wrap
+msgid "Specifying Dependencies"
+msgstr "Especificación de dependencias"
+
+#. type: cindex
+#: doc/contributing.texi:554
+#, no-wrap
+msgid "inputs, for Python packages"
+msgstr "entradas, para paquetes Python"
+
+#. type: Plain text
+#: doc/contributing.texi:559
+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}."
+
+#. type: Plain text
+#: doc/contributing.texi:565
+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:573
+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:579
+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}."
+
+#. type: itemize
+#: doc/contributing.texi:587
+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:591
+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:596
+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:602
+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:609
+#, no-wrap
+msgid "perl"
+msgstr "perl"
+
+#. type: Plain text
+#: doc/contributing.texi:620
+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:625
+#, no-wrap
+msgid "java"
+msgstr "java"
+
+#. type: Plain text
+#: doc/contributing.texi:628
+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:634
+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:640
+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:645 doc/guix.texi:1657
+#, no-wrap
+msgid "fonts"
+msgstr "tipografías"
+
+#. type: Plain text
+#: doc/contributing.texi:651
+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:655
+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:663
+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:672
+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:678
+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:686
+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:692 doc/contributing.texi:694
+#: doc/contributing.texi:695
+#, no-wrap
+msgid "Programming Paradigm"
+msgstr "Paradigma de programación"
+
+#. type: menuentry
+#: doc/contributing.texi:692
+msgid "How to compose your elements."
+msgstr "Cómo componer sus elementos."
+
+#. type: subsection
+#: doc/contributing.texi:692 doc/contributing.texi:701
+#: doc/contributing.texi:702
+#, no-wrap
+msgid "Modules"
+msgstr "Módulos"
+
+#. type: menuentry
+#: doc/contributing.texi:692
+msgid "Where to store your code?"
+msgstr "¿Dónde almacenar su código?"
+
+#. type: subsection
+#: doc/contributing.texi:692 doc/contributing.texi:712
+#: doc/contributing.texi:713
+#, no-wrap
+msgid "Data Types and Pattern Matching"
+msgstr "Tipos de datos y reconocimiento de patrones"
+
+#. type: menuentry
+#: doc/contributing.texi:692
+msgid "Implementing data structures."
+msgstr "Implementación de estructuras de datos."
+
+#. type: subsection
+#: doc/contributing.texi:692 doc/contributing.texi:726
+#: doc/contributing.texi:727
+#, no-wrap
+msgid "Formatting Code"
+msgstr "Formato del código"
+
+#. type: menuentry
+#: doc/contributing.texi:692
+msgid "Writing conventions."
+msgstr "Convenciones de escritura."
+
+#. type: Plain text
+#: doc/contributing.texi:700
+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:708
+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:711
+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:720
+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:725
+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:729
+#, no-wrap
+msgid "formatting code"
+msgstr "dar formato al código"
+
+#. type: cindex
+#: doc/contributing.texi:730
+#, no-wrap
+msgid "coding style"
+msgstr "estilo de codificación"
+
+#. 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 "Cuando escribimos código Scheme, seguimos la sabiduría común entre las programadoras Scheme. En general, seguimos las @url{http://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:744
+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})."
+
+#. type: cindex
+#: doc/contributing.texi:745
+#, no-wrap
+msgid "indentation, of code"
+msgstr "indentación, de código"
+
+#. type: cindex
+#: doc/contributing.texi:746
+#, no-wrap
+msgid "formatting, of code"
+msgstr "formato, de código"
+
+#. type: Plain text
+#: doc/contributing.texi:749
+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:752
+#, 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"
+
+#. type: Plain text
+#: doc/contributing.texi:758
+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:"
+
+#. type: example
+#: doc/contributing.texi:761
+#, no-wrap
+msgid "./etc/indent-code.el gnu/services/@var{file}.scm\n"
+msgstr "./etc/indent-code.el gnu/services/@var{fichero}.scm\n"
+
+#. type: cindex
+#: doc/contributing.texi:763
+#, no-wrap
+msgid "Vim, Scheme code editing"
+msgstr "Vim, edición de código Scheme"
+
+#. type: Plain text
+#: doc/contributing.texi:769
+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:773
+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:776
+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: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 "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}."
+
+#. 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 "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:796
+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:799
+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:806
+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}."
+
+#. type: enumerate
+#: doc/contributing.texi:810
+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:815
+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:819
+msgid "Make sure the package builds on your platform, using @code{guix build @var{package}}."
+msgstr "Asegurese de que el paquete compile en su plataforma, usando @code{guix build @var{package}}."
+
+#. type: enumerate
+#: doc/contributing.texi:826
+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: example
+#: doc/contributing.texi:832
+#, 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"
+msgstr ""
+"(service qemu-binfmt-service-type\n"
+" (qemu-binfmt-configuration\n"
+"   (platforms (lookup-qemu-platforms \"arm\" \"aarch64\" \"mips64el\"))\n"
+"   (guix-support? #t)))\n"
+
+#. type: enumerate
+#: doc/contributing.texi:835
+msgid "Then reconfigure your system."
+msgstr "Una vez hecho esto, reconfigure su sistema."
+
+#. type: enumerate
+#: doc/contributing.texi:840
+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 "Enotonces 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:844
+#, 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:847
+#, no-wrap
+msgid "bundling"
+msgstr "empaquetamientos"
+
+#. type: enumerate
+#: doc/contributing.texi:850
+msgid "Make sure the package does not use bundled copies of software already available as separate packages."
+msgstr "Asegurese de que el paquete no usa copias empaquetadas de software ya disponible como paquetes separados."
+
+#. type: enumerate
+#: doc/contributing.texi:859
+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:868
+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:873
+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:875
+#, no-wrap
+msgid "branching strategy"
+msgstr "estrategia de ramas"
+
+#. type: cindex
+#: doc/contributing.texi:876
+#, no-wrap
+msgid "rebuild scheduling strategy"
+msgstr "estrategia de planificación de reconstrucciones"
+
+#. type: enumerate
+#: doc/contributing.texi:879
+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:881
+#, no-wrap
+msgid "300 dependent packages or less"
+msgstr "300 paquetes dependientes o menos"
+
+#. type: table
+#: doc/contributing.texi:883
+msgid "@code{master} branch (non-disruptive changes)."
+msgstr "rama @code{master} (cambios no disruptivos)."
+
+#. type: item
+#: doc/contributing.texi:884
+#, no-wrap
+msgid "between 300 and 1,200 dependent packages"
+msgstr "entre 300 y 1.200 paquetes dependientes"
+
+#. 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 "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})."
+
+#. type: item
+#: doc/contributing.texi:890
+#, no-wrap
+msgid "more than 1,200 dependent packages"
+msgstr "más de 1.200 paquetes dependientes"
+
+#. 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 "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."
+
+#. 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 "Todas estas ramas son @uref{https://hydra.gnu.org/project/gnu, 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:908
+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:910
+#, no-wrap
+msgid "determinism, of build processes"
+msgstr "determinismo, del proceso de construcción"
+
+#. type: cindex
+#: doc/contributing.texi:911
+#, no-wrap
+msgid "reproducible builds, checking"
+msgstr "construcciones reproducibles, comprobar"
+
+#. type: enumerate
+#: doc/contributing.texi:915
+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:918
+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:921
+#, no-wrap
+msgid "guix build --rounds=2 my-package\n"
+msgstr "guix build --rounds=2 mi-paquete\n"
+
+#. type: enumerate
+#: doc/contributing.texi:925
+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:935
+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}."
+
+# TODO (MAAV): And so forth?
+#. type: enumerate
+#: doc/contributing.texi:941
+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 lecura 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:945
+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:948
+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:953
+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:961
+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: 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 "Cuando publique un parche a 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."
+
+#. type: Plain text
+#: doc/contributing.texi:974
+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:975 doc/contributing.texi:977
+#, no-wrap
+msgid "Sending a Patch Series"
+msgstr "Envío de una serie de parches"
+
+#. type: cindex
+#: doc/contributing.texi:977
+#, no-wrap
+msgid "patch series"
+msgstr "series de parches"
+
+#. type: code{#1}
+#: doc/contributing.texi:978
+#, no-wrap
+msgid "git send-email"
+msgstr "git send-email"
+
+#. type: code{#1}
+#: doc/contributing.texi:979
+#, 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 "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."
+
+#. type: Plain text
+#: doc/guix.texi:7
+msgid "@documentencoding UTF-8"
+msgstr ""
+"@documentencoding UTF-8\n"
+"@documentlanguage es\n"
+"@frenchspacing on"
+
+#. type: title
+#: doc/guix.texi:7 doc/guix.texi:87
+#, no-wrap
+msgid "GNU Guix Reference Manual"
+msgstr "Manual de referencia de GNU Guix"
+
+#. type: include
+#: doc/guix.texi:10
+#, no-wrap
+msgid "version.texi"
+msgstr "version-es.texi"
+
+#. type: copying
+#: doc/guix.texi:61
+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@*"
+msgstr "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 Miguel Ángel Arruga Vivas (traducción)@*"
+
+#. type: copying
+#: doc/guix.texi:68
+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:70
+#, no-wrap
+msgid "System administration"
+msgstr "Administración del sistema"
+
+#. type: menuentry
+#: doc/guix.texi:77
+msgid "Guix: (guix)"
+msgstr "Guix: (guix.es)"
+
+#. type: menuentry
+#: doc/guix.texi:77
+msgid "Manage installed software and system configuration."
+msgstr "Gestión del software instalado y la configuración del sistema."
+
+#. type: menuentry
+#: doc/guix.texi:77
+msgid "guix package: (guix)Invoking guix package"
+msgstr "guix package: (guix.es)Llamar a guix package"
+
+#. type: menuentry
+#: doc/guix.texi:77
+msgid "Installing, removing, and upgrading packages."
+msgstr "Instalación, borrado y actualización de paquetes."
+
+#. type: menuentry
+#: doc/guix.texi:77
+msgid "guix gc: (guix)Invoking guix gc"
+msgstr "guix gc: (guix.es)Llamar a guix gc"
+
+#. type: menuentry
+#: doc/guix.texi:77
+msgid "Reclaiming unused disk space."
+msgstr "Reclamar espacio de disco sin usar."
+
+#. type: menuentry
+#: doc/guix.texi:77
+msgid "guix pull: (guix)Invoking guix pull"
+msgstr "guix pull: (guix.es)Llamar a guix pull"
+
+#. type: menuentry
+#: doc/guix.texi:77
+msgid "Update the list of available packages."
+msgstr "Actualización de la lista disponible de paquetes."
+
+#. type: menuentry
+#: doc/guix.texi:77
+msgid "guix system: (guix)Invoking guix system"
+msgstr "guix system: (guix.es)Llamar a guix system"
+
+#. type: menuentry
+#: doc/guix.texi:77
+msgid "Manage the operating system configuration."
+msgstr "Gestión de la configuración del sistema operativo."
+
+#. type: dircategory
+#: doc/guix.texi:79
+#, no-wrap
+msgid "Software development"
+msgstr "Desarrollo de software"
+
+#. type: menuentry
+#: doc/guix.texi:84
+msgid "guix environment: (guix)Invoking guix environment"
+msgstr "guix environment: (guix.es)Llamar a guix environment"
+
+#. type: menuentry
+#: doc/guix.texi:84
+msgid "Building development environments with Guix."
+msgstr "Construcción de entornos de desarrollo con Guix."
+
+#. type: menuentry
+#: doc/guix.texi:84
+msgid "guix build: (guix)Invoking guix build"
+msgstr "guix build: (guix.es)Llamar a guix build"
+
+#. type: menuentry
+#: doc/guix.texi:84
+msgid "Building packages."
+msgstr "Construcción de paquetes."
+
+#. type: menuentry
+#: doc/guix.texi:84
+msgid "guix pack: (guix)Invoking guix pack"
+msgstr "guix pack: (guix.es)Llamar a guix pack"
+
+# FUZZY
+#. type: menuentry
+#: doc/guix.texi:84
+msgid "Creating binary bundles."
+msgstr "Creación de empaquetados binarios."
+
+#. type: subtitle
+#: doc/guix.texi:88
+#, no-wrap
+msgid "Using the GNU Guix Functional Package Manager"
+msgstr "Uso del gestor de paquetes funcional GNU Guix."
+
+#. type: author
+#: doc/guix.texi:89
+#, no-wrap
+msgid "The GNU Guix Developers"
+msgstr "Las desarrolladoras de GNU Guix"
+
+#. type: titlepage
+#: doc/guix.texi:95
+msgid "Edition @value{EDITION} @* @value{UPDATED} @*"
+msgstr "Edición @value{EDITION} @* @value{UPDATED} @*"
+
+#. type: node
+#: doc/guix.texi:102
+#, no-wrap
+msgid "Top"
+msgstr "Top"
+
+#. type: top
+#: doc/guix.texi:103
+#, no-wrap
+msgid "GNU Guix"
+msgstr "GNU Guix"
+
+#. type: Plain text
+#: doc/guix.texi:107
+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:118
+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}."
+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}) e 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"
+"\n"
+"Si encuentra fallos en esta traducción le rogamos que nos lo comunique mediante @uref{https://translationproject.org/team/es.html, la información de contacto del equipo de traducción}."
+
+#. type: chapter
+#: doc/guix.texi:134 doc/guix.texi:144 doc/guix.texi:307 doc/guix.texi:308
+#, no-wrap
+msgid "Introduction"
+msgstr "Introducción"
+
+#. type: menuentry
+#: doc/guix.texi:134
+msgid "What is Guix about?"
+msgstr "¿Qué es esto de Guix?"
+
+#. type: chapter
+#: doc/guix.texi:134 doc/guix.texi:149 doc/guix.texi:466 doc/guix.texi:467
+#, no-wrap
+msgid "Installation"
+msgstr "Instalación"
+
+#. type: menuentry
+#: doc/guix.texi:134
+msgid "Installing Guix."
+msgstr "Instalar Guix."
+
+#. type: chapter
+#: doc/guix.texi:134 doc/guix.texi:164 doc/guix.texi:1760 doc/guix.texi:1761
+#, no-wrap
+msgid "System Installation"
+msgstr "Instalación del sistema"
+
+#. type: menuentry
+#: doc/guix.texi:134
+msgid "Installing the whole operating system."
+msgstr "Instalar el sistema operativo completo."
+
+#. type: chapter
+#: doc/guix.texi:134 doc/guix.texi:181 doc/guix.texi:2471 doc/guix.texi:2472
+#, no-wrap
+msgid "Package Management"
+msgstr "Gestión de paquetes"
+
+#. type: menuentry
+#: doc/guix.texi:134
+msgid "Package installation, upgrade, etc."
+msgstr "Instalación de paquetes, actualización, etc."
+
+#. type: chapter
+#: doc/guix.texi:134 doc/guix.texi:203 doc/guix.texi:4303 doc/guix.texi:4304
+#, no-wrap
+msgid "Development"
+msgstr "Desarrollo"
+
+#. type: menuentry
+#: doc/guix.texi:134
+msgid "Guix-aided software development."
+msgstr "Desarrollo de software asistido por Guix"
+
+#. type: chapter
+#: doc/guix.texi:134 doc/guix.texi:208 doc/guix.texi:4927 doc/guix.texi:4928
+#, no-wrap
+msgid "Programming Interface"
+msgstr "Interfaz programática"
+
+#. type: menuentry
+#: doc/guix.texi:134
+msgid "Using Guix in Scheme."
+msgstr "Uso de Guix en Scheme."
+
+#. type: chapter
+#: doc/guix.texi:134 doc/guix.texi:224 doc/guix.texi:7556 doc/guix.texi:7557
+#, no-wrap
+msgid "Utilities"
+msgstr "Utilidades"
+
+#. type: menuentry
+#: doc/guix.texi:134
+msgid "Package management commands."
+msgstr "Órdenes de gestión de paquetes."
+
+#. type: chapter
+#: doc/guix.texi:134 doc/guix.texi:249 doc/guix.texi:10167 doc/guix.texi:10168
+#, no-wrap
+msgid "System Configuration"
+msgstr "Configuración del sistema"
+
+#. type: menuentry
+#: doc/guix.texi:134
+msgid "Configuring the operating system."
+msgstr "Configurar el sistema operativo."
+
+#. type: chapter
+#: doc/guix.texi:134 doc/guix.texi:25235 doc/guix.texi:25236
+#, no-wrap
+msgid "Documentation"
+msgstr "Documentación"
+
+#. type: menuentry
+#: doc/guix.texi:134
+msgid "Browsing software user manuals."
+msgstr "Navegar por los manuales de usuaria del software."
+
+#. type: chapter
+#: doc/guix.texi:134 doc/guix.texi:25299 doc/guix.texi:25300
+#, no-wrap
+msgid "Installing Debugging Files"
+msgstr "Instalación de ficheros de depuración"
+
+#. type: menuentry
+#: doc/guix.texi:134
+msgid "Feeding the debugger."
+msgstr "Alimentación del depurador."
+
+#. type: chapter
+#: doc/guix.texi:134 doc/guix.texi:25365 doc/guix.texi:25366
+#, no-wrap
+msgid "Security Updates"
+msgstr "Actualizaciones de seguridad"
+
+#. type: menuentry
+#: doc/guix.texi:134
+msgid "Deploying security fixes quickly."
+msgstr "Desplegar correcciones de seguridad rápidamente."
+
+#. type: chapter
+#: doc/guix.texi:134 doc/guix.texi:25485 doc/guix.texi:25486
+#, no-wrap
+msgid "Bootstrapping"
+msgstr "Lanzamiento inicial"
+
+#. type: menuentry
+#: doc/guix.texi:134
+msgid "GNU/Linux built from scratch."
+msgstr "GNU/Linux construido de cero."
+
+# TODO: (MAAV) A mejorar
+#. type: node
+#: doc/guix.texi:134 doc/guix.texi:25669
+#, no-wrap
+msgid "Porting"
+msgstr "Transportar"
+
+# TODO: (MAAV) A mejorar
+#. type: menuentry
+#: doc/guix.texi:134
+msgid "Targeting another platform or kernel."
+msgstr "Adaptación para otra plataforma o núcleo."
+
+#. type: menuentry
+#: doc/guix.texi:134
+msgid "Your help needed!"
+msgstr "¡Se necesita su ayuda!"
+
+#. type: chapter
+#: doc/guix.texi:139 doc/guix.texi:25717 doc/guix.texi:25718
+#, no-wrap
+msgid "Acknowledgments"
+msgstr "Reconocimientos"
+
+#. type: menuentry
+#: doc/guix.texi:139
+msgid "Thanks!"
+msgstr "¡Gracias!"
+
+#. type: appendix
+#: doc/guix.texi:139 doc/guix.texi:25739 doc/guix.texi:25740
+#, no-wrap
+msgid "GNU Free Documentation License"
+msgstr "Licencia de documentación libre GNU"
+
+#. type: menuentry
+#: doc/guix.texi:139
+msgid "The license of this manual."
+msgstr "La licencia de este manual."
+
+#. type: unnumbered
+#: doc/guix.texi:139 doc/guix.texi:25745 doc/guix.texi:25746
+#, no-wrap
+msgid "Concept Index"
+msgstr "Índice de conceptos"
+
+#. type: menuentry
+#: doc/guix.texi:139
+msgid "Concepts."
+msgstr "Conceptos."
+
+#. type: unnumbered
+#: doc/guix.texi:139 doc/guix.texi:25749 doc/guix.texi:25750
+#, no-wrap
+msgid "Programming Index"
+msgstr "Índice programático"
+
+#. type: menuentry
+#: doc/guix.texi:139
+msgid "Data types, functions, and variables."
+msgstr "Tipos de datos, funciones y variables."
+
+#. type: menuentry
+#: doc/guix.texi:142
+msgid "--- The Detailed Node Listing ---"
+msgstr "--- La lista detallada de nodos ---"
+
+#. type: section
+#: doc/guix.texi:147 doc/guix.texi:334 doc/guix.texi:336 doc/guix.texi:337
+#, no-wrap
+msgid "Managing Software the Guix Way"
+msgstr "La forma de gestión de software de Guix"
+
+#. type: menuentry
+#: doc/guix.texi:147 doc/guix.texi:334
+msgid "What's special."
+msgstr "Qué es especial."
+
+#. type: section
+#: doc/guix.texi:147 doc/guix.texi:334 doc/guix.texi:391 doc/guix.texi:392
+#, no-wrap
+msgid "GNU Distribution"
+msgstr "Distribución GNU"
+
+#. type: menuentry
+#: doc/guix.texi:147 doc/guix.texi:334
+msgid "The packages and tools."
+msgstr "Los paquetes y herramientas."
+
+#. type: section
+#: doc/guix.texi:156 doc/guix.texi:505 doc/guix.texi:507 doc/guix.texi:508
+#, no-wrap
+msgid "Binary Installation"
+msgstr "Instalación binaria"
+
+#. type: menuentry
+#: doc/guix.texi:156 doc/guix.texi:505
+msgid "Getting Guix running in no time!"
+msgstr "¡Poner Guix en funcionamiento en nada de tiempo!"
+
+#. type: section
+#: doc/guix.texi:156 doc/guix.texi:505 doc/guix.texi:706 doc/guix.texi:707
+#, no-wrap
+msgid "Requirements"
+msgstr "Requisitos"
+
+#. type: menuentry
+#: doc/guix.texi:156 doc/guix.texi:505
+msgid "Software needed to build and run Guix."
+msgstr "Software necesario para construir y ejecutar Guix."
+
+#. type: section
+#: doc/guix.texi:156 doc/guix.texi:505 doc/guix.texi:790 doc/guix.texi:791
+#, no-wrap
+msgid "Running the Test Suite"
+msgstr "Ejecución de la batería de pruebas"
+
+#. type: menuentry
+#: doc/guix.texi:156 doc/guix.texi:505
+msgid "Testing Guix."
+msgstr "Probar Guix."
+
+#. type: section
+#: doc/guix.texi:156 doc/guix.texi:158 doc/guix.texi:505 doc/guix.texi:855
+#: doc/guix.texi:856
+#, no-wrap
+msgid "Setting Up the Daemon"
+msgstr "Preparación del daemon"
+
+#. type: menuentry
+#: doc/guix.texi:156 doc/guix.texi:505
+msgid "Preparing the build daemon's environment."
+msgstr "Preparar el entorno del daemon de construcción."
+
+#. type: node
+#: doc/guix.texi:156 doc/guix.texi:505 doc/guix.texi:1286
+#, no-wrap
+msgid "Invoking guix-daemon"
+msgstr "Invocación de guix-daemon"
+
+#. type: menuentry
+#: doc/guix.texi:156 doc/guix.texi:505
+msgid "Running the build daemon."
+msgstr "Ejecutar el daemon de construcción."
+
+#. type: section
+#: doc/guix.texi:156 doc/guix.texi:505 doc/guix.texi:1554 doc/guix.texi:1555
+#, no-wrap
+msgid "Application Setup"
+msgstr "Configuración de la aplicación"
+
+#. type: menuentry
+#: doc/guix.texi:156 doc/guix.texi:505
+msgid "Application-specific setup."
+msgstr "Configuración específica de la aplicación."
+
+#. type: subsection
+#: doc/guix.texi:162 doc/guix.texi:875 doc/guix.texi:877 doc/guix.texi:878
+#, no-wrap
+msgid "Build Environment Setup"
+msgstr "Configuración del entorno de construcción"
+
+#. type: menuentry
+#: doc/guix.texi:162 doc/guix.texi:875
+msgid "Preparing the isolated build environment."
+msgstr "Preparar el entorno aislado de construcción."
+
+#. type: node
+#: doc/guix.texi:162 doc/guix.texi:875 doc/guix.texi:994
+#, no-wrap
+msgid "Daemon Offload Setup"
+msgstr "Configuración de delegación del daemon"
+
+#. type: menuentry
+#: doc/guix.texi:162 doc/guix.texi:875
+msgid "Offloading builds to remote machines."
+msgstr "Delegar construcciones a máquinas remotas."
+
+#. type: subsection
+#: doc/guix.texi:162 doc/guix.texi:875 doc/guix.texi:1200 doc/guix.texi:1201
+#, no-wrap
+msgid "SELinux Support"
+msgstr "Soporte de SELinux"
+
+#. type: menuentry
+#: doc/guix.texi:162 doc/guix.texi:875
+msgid "Using an SELinux policy for the daemon."
+msgstr "Uso de una política SELinux para el daemon."
+
+#. type: section
+#: doc/guix.texi:174 doc/guix.texi:1236 doc/guix.texi:1794 doc/guix.texi:1796
+#: doc/guix.texi:1797
+#, no-wrap
+msgid "Limitations"
+msgstr "Limitaciones"
+
+#. type: menuentry
+#: doc/guix.texi:174 doc/guix.texi:1794
+msgid "What you can expect."
+msgstr "Qué puede esperar."
+
+#. type: section
+#: doc/guix.texi:174 doc/guix.texi:1794 doc/guix.texi:1825 doc/guix.texi:1826
+#, no-wrap
+msgid "Hardware Considerations"
+msgstr "Consideraciones sobre el hardware"
+
+#. type: menuentry
+#: doc/guix.texi:174 doc/guix.texi:1794
+msgid "Supported hardware."
+msgstr "Hardware soportado."
+
+#. type: section
+#: doc/guix.texi:174 doc/guix.texi:1794 doc/guix.texi:1860 doc/guix.texi:1861
+#, no-wrap
+msgid "USB Stick and DVD Installation"
+msgstr "Instalación desde memoria USB y DVD"
+
+#. type: menuentry
+#: doc/guix.texi:174 doc/guix.texi:1794
+msgid "Preparing the installation medium."
+msgstr "Preparar el medio de instalación."
+
+#. type: section
+#: doc/guix.texi:174 doc/guix.texi:1794 doc/guix.texi:1959 doc/guix.texi:1960
+#, no-wrap
+msgid "Preparing for Installation"
+msgstr "Preparación para la instalación"
+
+#. type: menuentry
+#: doc/guix.texi:174 doc/guix.texi:1794
+msgid "Networking, partitioning, etc."
+msgstr "Red, particionado, etc."
+
+#. type: section
+#: doc/guix.texi:174 doc/guix.texi:1794 doc/guix.texi:1982 doc/guix.texi:1983
+#, no-wrap
+msgid "Guided Graphical Installation"
+msgstr "Instalación gráfica guiada"
+
+# TODO: Easy...
+#. type: menuentry
+#: doc/guix.texi:174 doc/guix.texi:1794
+msgid "Easy graphical installation."
+msgstr "Instalación gráfica fácil."
+
+#. type: section
+#: doc/guix.texi:174 doc/guix.texi:176 doc/guix.texi:1794 doc/guix.texi:2013
+#: doc/guix.texi:2014
+#, no-wrap
+msgid "Manual Installation"
+msgstr "Instalación manual"
+
+# FUZZY
+#. type: menuentry
+#: doc/guix.texi:174 doc/guix.texi:1794
+msgid "Manual installation for wizards."
+msgstr "Instalación manual para artistas del teclado."
+
+#. type: section
+#: doc/guix.texi:174 doc/guix.texi:1794 doc/guix.texi:2356 doc/guix.texi:2357
+#, no-wrap
+msgid "After System Installation"
+msgstr "Tras la instalación del sistema"
+
+# FUZZY
+#. type: menuentry
+#: doc/guix.texi:174 doc/guix.texi:1794
+msgid "When installation succeeded."
+msgstr "Cuando la instalación ha finalizado satisfactoriamente."
+
+#. type: node
+#: doc/guix.texi:174 doc/guix.texi:1794 doc/guix.texi:2384
+#, 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:174 doc/guix.texi:1794
+msgid "Guix System playground."
+msgstr "El patio de recreo del sistema Guix."
+
+#. type: section
+#: doc/guix.texi:174 doc/guix.texi:1794 doc/guix.texi:2438 doc/guix.texi:2439
+#, no-wrap
+msgid "Building the Installation Image"
+msgstr "Construcción de la imagen de instalación"
+
+#. type: menuentry
+#: doc/guix.texi:174 doc/guix.texi:1794
+msgid "How this comes to be."
+msgstr "Cómo esto llega a ser."
+
+# FUZZY
+#. type: node
+#: doc/guix.texi:179 doc/guix.texi:2031 doc/guix.texi:2033
+#, no-wrap
+msgid "Keyboard Layout and Networking and Partitioning"
+msgstr "Distribución de teclado y red y particionado"
+
+#. type: menuentry
+#: doc/guix.texi:179 doc/guix.texi:2031
+msgid "Initial setup."
+msgstr "Configuración inicial."
+
+#. type: subsection
+#: doc/guix.texi:179 doc/guix.texi:2031 doc/guix.texi:2268 doc/guix.texi:2269
+#, no-wrap
+msgid "Proceeding with the Installation"
+msgstr "Procedimiento de instalación"
+
+#. type: menuentry
+#: doc/guix.texi:179 doc/guix.texi:2031
+msgid "Installing."
+msgstr "Instalación."
+
+#. type: section
+#: doc/guix.texi:192 doc/guix.texi:2503 doc/guix.texi:2505 doc/guix.texi:2506
+#, no-wrap
+msgid "Features"
+msgstr "Características"
+
+#. type: menuentry
+#: doc/guix.texi:192 doc/guix.texi:2503
+msgid "How Guix will make your life brighter."
+msgstr "Cómo Guix dará brillo a su vida."
+
+#. type: node
+#: doc/guix.texi:192 doc/guix.texi:2503 doc/guix.texi:2591
+#, no-wrap
+msgid "Invoking guix package"
+msgstr "Invocación de guix package"
+
+#. type: menuentry
+#: doc/guix.texi:192 doc/guix.texi:2503
+msgid "Package installation, removal, etc."
+msgstr "Instalación de paquetes, borrado, etc."
+
+#. type: section
+#: doc/guix.texi:192 doc/guix.texi:194 doc/guix.texi:2503 doc/guix.texi:3072
+#: doc/guix.texi:3073
+#, no-wrap
+msgid "Substitutes"
+msgstr "Sustituciones"
+
+#. type: menuentry
+#: doc/guix.texi:192 doc/guix.texi:2503
+msgid "Downloading pre-built binaries."
+msgstr "Descargar binarios pre-construidos."
+
+#. type: section
+#: doc/guix.texi:192 doc/guix.texi:2503 doc/guix.texi:3300 doc/guix.texi:3301
+#, no-wrap
+msgid "Packages with Multiple Outputs"
+msgstr "Paquetes con múltiples salidas"
+
+#. type: menuentry
+#: doc/guix.texi:192 doc/guix.texi:2503
+msgid "Single source package, multiple outputs."
+msgstr "Un único paquete de fuentes, múltiples salidas."
+
+#. type: node
+#: doc/guix.texi:192 doc/guix.texi:2503 doc/guix.texi:3354
+#, no-wrap
+msgid "Invoking guix gc"
+msgstr "Invocación de guix gc"
+
+#. type: menuentry
+#: doc/guix.texi:192 doc/guix.texi:2503
+msgid "Running the garbage collector."
+msgstr "Ejecutar el recolector de basura."
+
+#. type: node
+#: doc/guix.texi:192 doc/guix.texi:2503 doc/guix.texi:3560
+#, no-wrap
+msgid "Invoking guix pull"
+msgstr "Invocación de guix pull"
+
+#. type: menuentry
+#: doc/guix.texi:192 doc/guix.texi:2503
+msgid "Fetching the latest Guix and distribution."
+msgstr "Obtener la última versión de Guix y la distribución."
+
+#. type: section
+#: doc/guix.texi:192 doc/guix.texi:2503 doc/guix.texi:3715 doc/guix.texi:3716
+#, no-wrap
+msgid "Channels"
+msgstr "Canales"
+
+#. type: menuentry
+#: doc/guix.texi:192 doc/guix.texi:2503
+msgid "Customizing the package collection."
+msgstr "Personalizar el recolector de basura."
+
+#. type: section
+#: doc/guix.texi:192 doc/guix.texi:2503 doc/guix.texi:3928 doc/guix.texi:3929
+#, no-wrap
+msgid "Inferiors"
+msgstr "Inferiores"
+
+#. type: menuentry
+#: doc/guix.texi:192 doc/guix.texi:2503
+msgid "Interacting with another revision of Guix."
+msgstr "Interactuar con otra revisión de Guix."
+
+#. type: node
+#: doc/guix.texi:192 doc/guix.texi:2503 doc/guix.texi:4056
+#, no-wrap
+msgid "Invoking guix describe"
+msgstr "Invocación de guix describe"
+
+#. type: menuentry
+#: doc/guix.texi:192 doc/guix.texi:2503
+msgid "Display information about your Guix revision."
+msgstr "Muestra información acerca de su revisión de Guix."
+
+#. type: node
+#: doc/guix.texi:192 doc/guix.texi:2503 doc/guix.texi:4137
+#, no-wrap
+msgid "Invoking guix archive"
+msgstr "Invocación de guix archive"
+
+#. type: menuentry
+#: doc/guix.texi:192 doc/guix.texi:2503
+msgid "Exporting and importing store files."
+msgstr "Exportar e importar ficheros del almacén."
+
+#. type: subsection
+#: doc/guix.texi:201 doc/guix.texi:3095 doc/guix.texi:3097 doc/guix.texi:3098
+#, no-wrap
+msgid "Official Substitute Server"
+msgstr "Servidor oficial de sustituciones."
+
+#. type: menuentry
+#: doc/guix.texi:201 doc/guix.texi:3095
+msgid "One particular source of substitutes."
+msgstr "Una fuente particular de sustituciones."
+
+#. type: subsection
+#: doc/guix.texi:201 doc/guix.texi:3095 doc/guix.texi:3127 doc/guix.texi:3128
+#, no-wrap
+msgid "Substitute Server Authorization"
+msgstr "Autorización de servidores de sustituciones"
+
+#. type: menuentry
+#: doc/guix.texi:201 doc/guix.texi:3095
+msgid "How to enable or disable substitutes."
+msgstr "Cómo habilitar o deshabilitar sustituciones."
+
+#. type: subsection
+#: doc/guix.texi:201 doc/guix.texi:3095 doc/guix.texi:3195 doc/guix.texi:3196
+#, no-wrap
+msgid "Substitute Authentication"
+msgstr "Verificación de sustituciones"
+
+#. type: menuentry
+#: doc/guix.texi:201 doc/guix.texi:3095
+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:201 doc/guix.texi:3095 doc/guix.texi:3230 doc/guix.texi:3231
+#, no-wrap
+msgid "Proxy Settings"
+msgstr "Configuración de la pasarela."
+
+#. type: menuentry
+#: doc/guix.texi:201 doc/guix.texi:3095
+msgid "How to get substitutes via proxy."
+msgstr "Cómo obtener sustituciones a través de una pasarela."
+
+#. type: subsection
+#: doc/guix.texi:201 doc/guix.texi:3095 doc/guix.texi:3242 doc/guix.texi:3243
+#, no-wrap
+msgid "Substitution Failure"
+msgstr "Fallos en las sustituciones"
+
+#. type: menuentry
+#: doc/guix.texi:201 doc/guix.texi:3095
+msgid "What happens when substitution fails."
+msgstr "Qué pasa cuando una sustitución falla."
+
+#. type: subsection
+#: doc/guix.texi:201 doc/guix.texi:3095 doc/guix.texi:3270 doc/guix.texi:3271
+#, no-wrap
+msgid "On Trusting Binaries"
+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:201 doc/guix.texi:3095
+msgid "How can you trust that binary blob?"
+msgstr "¿Cómo puede usted confiar en esa masa informe de datos binarios?"
+
+#. type: node
+#: doc/guix.texi:206 doc/guix.texi:4320 doc/guix.texi:4322
+#, no-wrap
+msgid "Invoking guix environment"
+msgstr "Invocación de guix environment"
+
+#. type: menuentry
+#: doc/guix.texi:206 doc/guix.texi:4320
+msgid "Setting up development environments."
+msgstr "Configurar entornos de desarrollo."
+
+#. type: node
+#: doc/guix.texi:206 doc/guix.texi:4320 doc/guix.texi:4661
+#, no-wrap
+msgid "Invoking guix pack"
+msgstr "Invocación de guix pack"
+
+#. type: menuentry
+#: doc/guix.texi:206 doc/guix.texi:4320
+msgid "Creating software bundles."
+msgstr "Creación de empaquetados de software."
+
+#. type: section
+#: doc/guix.texi:217 doc/guix.texi:4964 doc/guix.texi:4966 doc/guix.texi:4967
+#, no-wrap
+msgid "Package Modules"
+msgstr "Módulos de paquetes"
+
+#. type: menuentry
+#: doc/guix.texi:217 doc/guix.texi:4964
+msgid "Packages from the programmer's viewpoint."
+msgstr "Paquetes bajo el punto de vista del programador."
+
+#. type: section
+#: doc/guix.texi:217 doc/guix.texi:219 doc/guix.texi:4964 doc/guix.texi:5028
+#: doc/guix.texi:5029
+#, no-wrap
+msgid "Defining Packages"
+msgstr "Definición de paquetes"
+
+#. type: menuentry
+#: doc/guix.texi:217 doc/guix.texi:4964
+msgid "Defining new packages."
+msgstr "Definir nuevos paquetes."
+
+#. type: section
+#: doc/guix.texi:217 doc/guix.texi:4964 doc/guix.texi:5532 doc/guix.texi:5533
+#, no-wrap
+msgid "Build Systems"
+msgstr "Sistemas de construcción"
+
+#. type: menuentry
+#: doc/guix.texi:217 doc/guix.texi:4964
+msgid "Specifying how packages are built."
+msgstr "Especificar como se construyen los paquetes."
+
+#. type: section
+#: doc/guix.texi:217 doc/guix.texi:4964 doc/guix.texi:6270 doc/guix.texi:6271
+#, no-wrap
+msgid "The Store"
+msgstr "El almacén"
+
+#. type: menuentry
+#: doc/guix.texi:217 doc/guix.texi:4964
+msgid "Manipulating the package store."
+msgstr "Manipular el almacén de paquetes."
+
+#. type: section
+#: doc/guix.texi:217 doc/guix.texi:4964 doc/guix.texi:6420 doc/guix.texi:6421
+#, no-wrap
+msgid "Derivations"
+msgstr "Derivaciones"
+
+#. type: menuentry
+#: doc/guix.texi:217 doc/guix.texi:4964
+msgid "Low-level interface to package derivations."
+msgstr "Interfaz de bajo nivel de las derivaciones de los paquetes."
+
+#. type: section
+#: doc/guix.texi:217 doc/guix.texi:4964 doc/guix.texi:6614 doc/guix.texi:6615
+#, no-wrap
+msgid "The Store Monad"
+msgstr "La mónada del almacén"
+
+#. type: menuentry
+#: doc/guix.texi:217 doc/guix.texi:4964
+msgid "Purely functional interface to the store."
+msgstr "Interfaz puramente funcional del almacén."
+
+#. type: section
+#: doc/guix.texi:217 doc/guix.texi:4964 doc/guix.texi:6929 doc/guix.texi:6930
+#, no-wrap
+msgid "G-Expressions"
+msgstr "Expresiones-G"
+
+#. type: menuentry
+#: doc/guix.texi:217 doc/guix.texi:4964
+msgid "Manipulating build expressions."
+msgstr "Manipular expresiones de construcción."
+
+#. type: node
+#: doc/guix.texi:217 doc/guix.texi:4964 doc/guix.texi:7503
+#, no-wrap
+msgid "Invoking guix repl"
+msgstr "Invocación de guix repl"
+
+# FUZZY
+# MAAV: Creo que es muy local...
+#. type: menuentry
+#: doc/guix.texi:217 doc/guix.texi:4964
+msgid "Fiddling with Guix interactively."
+msgstr "Enredar con Guix interactivamente."
+
+#. type: node
+#: doc/guix.texi:222 doc/guix.texi:5297 doc/guix.texi:5300
+#, no-wrap
+msgid "package Reference"
+msgstr "Referencia de «package»"
+
+#. type: menuentry
+#: doc/guix.texi:222 doc/guix.texi:5297
+msgid "The package data type."
+msgstr "El tipo de datos de los paquetes."
+
+#. type: node
+#: doc/guix.texi:222 doc/guix.texi:5297 doc/guix.texi:5444
+#, no-wrap
+msgid "origin Reference"
+msgstr "Referencia de «origin»"
+
+#. type: menuentry
+#: doc/guix.texi:222 doc/guix.texi:5297
+msgid "The origin data type."
+msgstr "El tipo de datos de orígenes."
+
+#. type: node
+#: doc/guix.texi:240 doc/guix.texi:7580 doc/guix.texi:7582
+#, no-wrap
+msgid "Invoking guix build"
+msgstr "Invocación de guix build"
+
+#. type: menuentry
+#: doc/guix.texi:240 doc/guix.texi:7580
+msgid "Building packages from the command line."
+msgstr "Construir paquetes desde la línea de órdenes."
+
+#. type: node
+#: doc/guix.texi:240 doc/guix.texi:7580 doc/guix.texi:8233
+#, no-wrap
+msgid "Invoking guix edit"
+msgstr "Invocación de guix edit"
+
+#. type: menuentry
+#: doc/guix.texi:240 doc/guix.texi:7580
+msgid "Editing package definitions."
+msgstr "Editar las definiciones de paquetes."
+
+#. type: node
+#: doc/guix.texi:240 doc/guix.texi:7580 doc/guix.texi:8259
+#, no-wrap
+msgid "Invoking guix download"
+msgstr "Invocación de guix download"
+
+#. type: menuentry
+#: doc/guix.texi:240 doc/guix.texi:7580
+msgid "Downloading a file and printing its hash."
+msgstr "Descargar un fichero e imprimir su hash."
+
+#. type: node
+#: doc/guix.texi:240 doc/guix.texi:7580 doc/guix.texi:8312
+#, no-wrap
+msgid "Invoking guix hash"
+msgstr "Invocación de guix hash"
+
+#. type: menuentry
+#: doc/guix.texi:240 doc/guix.texi:7580
+msgid "Computing the cryptographic hash of a file."
+msgstr "Calcular el hash criptográfico de un fichero."
+
+#. type: node
+#: doc/guix.texi:240 doc/guix.texi:7580 doc/guix.texi:8374
+#, no-wrap
+msgid "Invoking guix import"
+msgstr "Invocación de guix import"
+
+#. type: menuentry
+#: doc/guix.texi:240 doc/guix.texi:7580
+msgid "Importing package definitions."
+msgstr "Importar definiciones de paquetes."
+
+#. type: node
+#: doc/guix.texi:240 doc/guix.texi:7580 doc/guix.texi:8772
+#, no-wrap
+msgid "Invoking guix refresh"
+msgstr "Invocación de guix refresh"
+
+#. type: menuentry
+#: doc/guix.texi:240 doc/guix.texi:7580
+msgid "Updating package definitions."
+msgstr "Actualizar definiciones de paquetes."
+
+#. type: node
+#: doc/guix.texi:240 doc/guix.texi:7580 doc/guix.texi:9083
+#, no-wrap
+msgid "Invoking guix lint"
+msgstr "Invocación de guix lint"
+
+#. type: menuentry
+#: doc/guix.texi:240 doc/guix.texi:7580
+msgid "Finding errors in package definitions."
+msgstr "Encontrar errores en definiciones de paquetes."
+
+#. type: node
+#: doc/guix.texi:240 doc/guix.texi:7580 doc/guix.texi:9199
+#, no-wrap
+msgid "Invoking guix size"
+msgstr "Invocación de guix size"
+
+#. type: menuentry
+#: doc/guix.texi:240 doc/guix.texi:7580
+msgid "Profiling disk usage."
+msgstr "Perfilar el uso del disco."
+
+#. type: node
+#: doc/guix.texi:240 doc/guix.texi:7580 doc/guix.texi:9323
+#, no-wrap
+msgid "Invoking guix graph"
+msgstr "Invocación de guix graph"
+
+#. type: menuentry
+#: doc/guix.texi:240 doc/guix.texi:7580
+msgid "Visualizing the graph of packages."
+msgstr "Visualizar el grafo de paquetes."
+
+#. type: node
+#: doc/guix.texi:240 doc/guix.texi:7580 doc/guix.texi:9526
+#, no-wrap
+msgid "Invoking guix publish"
+msgstr "Invocación de guix publish"
+
+#. type: menuentry
+#: doc/guix.texi:240 doc/guix.texi:7580
+msgid "Sharing substitutes."
+msgstr "Compartir sustituciones."
+
+#. type: node
+#: doc/guix.texi:240 doc/guix.texi:7580 doc/guix.texi:9743
+#, no-wrap
+msgid "Invoking guix challenge"
+msgstr "Invocación de guix challenge"
+
+#. type: menuentry
+#: doc/guix.texi:240 doc/guix.texi:7580
+msgid "Challenging substitute servers."
+msgstr "Poner a prueba servidores de sustituciones."
+
+#. type: node
+#: doc/guix.texi:240 doc/guix.texi:7580 doc/guix.texi:9882
+#, no-wrap
+msgid "Invoking guix copy"
+msgstr "Invocación de guix copy"
+
+#. type: menuentry
+#: doc/guix.texi:240 doc/guix.texi:7580
+msgid "Copying to and from a remote store."
+msgstr "Copiar a y desde un almacén remoto."
+
+#. type: node
+#: doc/guix.texi:240 doc/guix.texi:7580 doc/guix.texi:9945
+#, no-wrap
+msgid "Invoking guix container"
+msgstr "Invocación de guix container"
+
+#. type: menuentry
+#: doc/guix.texi:240 doc/guix.texi:7580
+msgid "Process isolation."
+msgstr "Aislamiento de procesos."
+
+#. type: node
+#: doc/guix.texi:240 doc/guix.texi:7580 doc/guix.texi:9999
+#, no-wrap
+msgid "Invoking guix weather"
+msgstr "Invocación de guix weather"
+
+#. type: menuentry
+#: doc/guix.texi:240 doc/guix.texi:7580
+msgid "Assessing substitute availability."
+msgstr "Comprobar la disponibilidad de sustituciones."
+
+#. type: node
+#: doc/guix.texi:240 doc/guix.texi:7580 doc/guix.texi:10110
+#, no-wrap
+msgid "Invoking guix processes"
+msgstr "Invocación de guix processes"
+
+#. type: menuentry
+#: doc/guix.texi:240 doc/guix.texi:7580
+msgid "Listing client processes."
+msgstr "Enumerar los procesos cliente."
+
+#. type: section
+#: doc/guix.texi:242 doc/guix.texi:7583
+#, no-wrap
+msgid "Invoking @command{guix build}"
+msgstr "Invocación de @command{guix build}"
+
+#. type: subsection
+#: doc/guix.texi:247 doc/guix.texi:7634 doc/guix.texi:7636 doc/guix.texi:7637
+#, no-wrap
+msgid "Common Build Options"
+msgstr "Opciones comunes de construcción"
+
+#. type: menuentry
+#: doc/guix.texi:247 doc/guix.texi:7634
+msgid "Build options for most commands."
+msgstr "Opciones de construcción para la mayoría de órdenes."
+
+#. type: subsection
+#: doc/guix.texi:247 doc/guix.texi:7634 doc/guix.texi:7792 doc/guix.texi:7793
+#, no-wrap
+msgid "Package Transformation Options"
+msgstr "Opciones de transformación de paquetes"
+
+#. type: menuentry
+#: doc/guix.texi:247 doc/guix.texi:7634
+msgid "Creating variants of packages."
+msgstr "Crear variantes de paquetes."
+
+#. type: subsection
+#: doc/guix.texi:247 doc/guix.texi:7634 doc/guix.texi:7941 doc/guix.texi:7942
+#, no-wrap
+msgid "Additional Build Options"
+msgstr "Opciones de construcción adicionales"
+
+#. type: menuentry
+#: doc/guix.texi:247 doc/guix.texi:7634
+msgid "Options specific to 'guix build'."
+msgstr "Opciones específicas de 'guix build'."
+
+#. type: subsection
+#: doc/guix.texi:247 doc/guix.texi:7634 doc/guix.texi:8153 doc/guix.texi:8154
+#, no-wrap
+msgid "Debugging Build Failures"
+msgstr "Depuración de fallos de construcción"
+
+#. type: menuentry
+#: doc/guix.texi:247 doc/guix.texi:7634
+msgid "Real life packaging experience."
+msgstr "Experiencia de empaquetamiento en la vida real."
+
+#. type: section
+#: doc/guix.texi:266 doc/guix.texi:10209 doc/guix.texi:10211
+#: doc/guix.texi:10212
+#, no-wrap
+msgid "Using the Configuration System"
+msgstr "Uso de la configuración del sistema"
+
+#. type: menuentry
+#: doc/guix.texi:266 doc/guix.texi:10209
+msgid "Customizing your GNU system."
+msgstr "Personalizar su sistema GNU."
+
+#. type: node
+#: doc/guix.texi:266 doc/guix.texi:10209 doc/guix.texi:10447
+#, no-wrap
+msgid "operating-system Reference"
+msgstr "Referencia de «operating-system»"
+
+#. type: menuentry
+#: doc/guix.texi:266 doc/guix.texi:10209
+msgid "Detail of operating-system declarations."
+msgstr "Detalle de las declaraciones de sistema operativo."
+
+#. type: section
+#: doc/guix.texi:266 doc/guix.texi:10209 doc/guix.texi:10651
+#: doc/guix.texi:10652
+#, no-wrap
+msgid "File Systems"
+msgstr "Sistemas de ficheros"
+
+#. type: menuentry
+#: doc/guix.texi:266 doc/guix.texi:10209
+msgid "Configuring file system mounts."
+msgstr "Configurar el montaje de sistemas de ficheros."
+
+# TODO: (MAAV) Comprobar como se ha hecho en otros proyectos.
+#. type: section
+#: doc/guix.texi:266 doc/guix.texi:10209 doc/guix.texi:10816
+#: doc/guix.texi:10817
+#, no-wrap
+msgid "Mapped Devices"
+msgstr "Dispositivos traducidos"
+
+#. type: menuentry
+#: doc/guix.texi:266 doc/guix.texi:10209
+msgid "Block device extra processing."
+msgstr "Procesamiento extra de dispositivos de bloques."
+
+#. type: section
+#: doc/guix.texi:266 doc/guix.texi:10209 doc/guix.texi:10937
+#: doc/guix.texi:10938
+#, no-wrap
+msgid "User Accounts"
+msgstr "Cuentas de usuaria"
+
+#. type: menuentry
+#: doc/guix.texi:266 doc/guix.texi:10209
+msgid "Specifying user accounts."
+msgstr "Especificar las cuentas de usuaria."
+
+#. type: section
+#: doc/guix.texi:266 doc/guix.texi:2040 doc/guix.texi:10209
+#: doc/guix.texi:11090 doc/guix.texi:11091
+#, no-wrap
+msgid "Keyboard Layout"
+msgstr "Distribución de teclado"
+
+#. type: menuentry
+#: doc/guix.texi:266 doc/guix.texi:10209
+msgid "How the system interprets key strokes."
+msgstr "Cómo interpreta el sistema las pulsaciones del teclado."
+
+#. type: section
+#: doc/guix.texi:266 doc/guix.texi:1562 doc/guix.texi:10209
+#: doc/guix.texi:11222 doc/guix.texi:11223
+#, no-wrap
+msgid "Locales"
+msgstr "Localizaciones"
+
+#. type: menuentry
+#: doc/guix.texi:266 doc/guix.texi:10209
+msgid "Language and cultural convention settings."
+msgstr "Configuración de idioma y convenciones culturales."
+
+#. type: section
+#: doc/guix.texi:266 doc/guix.texi:268 doc/guix.texi:10209 doc/guix.texi:11362
+#: doc/guix.texi:11363
+#, no-wrap
+msgid "Services"
+msgstr "Servicios"
+
+#. type: menuentry
+#: doc/guix.texi:266 doc/guix.texi:10209
+msgid "Specifying system services."
+msgstr "Especificar los servicios del sistema."
+
+#. type: section
+#: doc/guix.texi:266 doc/guix.texi:10209 doc/guix.texi:23469
+#: doc/guix.texi:23470
+#, no-wrap
+msgid "Setuid Programs"
+msgstr "Programas con setuid"
+
+#. type: menuentry
+#: doc/guix.texi:266 doc/guix.texi:10209
+msgid "Programs running with root privileges."
+msgstr "Programas que se ejecutan con privilegios de root."
+
+#. type: section
+#: doc/guix.texi:266 doc/guix.texi:1707 doc/guix.texi:10209
+#: doc/guix.texi:23515 doc/guix.texi:23516
+#, no-wrap
+msgid "X.509 Certificates"
+msgstr "Certificados X.509"
+
+# TODO: ¡Comprobar traducciones de auth!
+#. type: menuentry
+#: doc/guix.texi:266 doc/guix.texi:10209
+msgid "Authenticating HTTPS servers."
+msgstr "Verificar servidores HTTPS."
+
+# TODO: Comprobar traducción de libc
+#. type: section
+#: doc/guix.texi:266 doc/guix.texi:1605 doc/guix.texi:10209
+#: doc/guix.texi:23578 doc/guix.texi:23579
+#, no-wrap
+msgid "Name Service Switch"
+msgstr "Selector de servicios de nombres"
+
+#. type: menuentry
+#: doc/guix.texi:266 doc/guix.texi:10209
+msgid "Configuring libc's name service switch."
+msgstr "Configurar el selector de servicios de nombres de libc."
+
+#. type: section
+#: doc/guix.texi:266 doc/guix.texi:10209 doc/guix.texi:23716
+#: doc/guix.texi:23717
+#, no-wrap
+msgid "Initial RAM Disk"
+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:266 doc/guix.texi:10209
+msgid "Linux-Libre bootstrapping."
+msgstr "Arranque de Linux-Libre."
+
+#. type: section
+#: doc/guix.texi:266 doc/guix.texi:10209 doc/guix.texi:23890
+#: doc/guix.texi:23891
+#, no-wrap
+msgid "Bootloader Configuration"
+msgstr "Configuración del gestor de arranque"
+
+#. type: menuentry
+#: doc/guix.texi:266 doc/guix.texi:10209
+msgid "Configuring the boot loader."
+msgstr "Configurar el gestor de arranque."
+
+#. type: node
+#: doc/guix.texi:266 doc/guix.texi:10209 doc/guix.texi:24087
+#, no-wrap
+msgid "Invoking guix system"
+msgstr "Invocación de guix system"
+
+#. type: menuentry
+#: doc/guix.texi:266 doc/guix.texi:10209
+msgid "Instantiating a system configuration."
+msgstr "Instanciar una configuración del sistema."
+
+#. type: node
+#: doc/guix.texi:266 doc/guix.texi:10209 doc/guix.texi:24542
+#, no-wrap
+msgid "Running Guix in a VM"
+msgstr "Ejecutar Guix en una máquina virtual"
+
+#. type: menuentry
+#: doc/guix.texi:266 doc/guix.texi:10209
+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:266 doc/guix.texi:297 doc/guix.texi:10209 doc/guix.texi:24653
+#: doc/guix.texi:24654
+#, no-wrap
+msgid "Defining Services"
+msgstr "Definición de servicios"
+
+#. type: menuentry
+#: doc/guix.texi:266 doc/guix.texi:10209
+msgid "Adding new service definitions."
+msgstr "Añadir nuevas definiciones de servicios."
+
+#. type: subsection
+#: doc/guix.texi:295 doc/guix.texi:11439 doc/guix.texi:11441
+#: doc/guix.texi:11442
+#, no-wrap
+msgid "Base Services"
+msgstr "Servicios base"
+
+#. type: menuentry
+#: doc/guix.texi:295 doc/guix.texi:11439
+msgid "Essential system services."
+msgstr "Servicios esenciales del sistema."
+
+#. type: subsection
+#: doc/guix.texi:295 doc/guix.texi:11439 doc/guix.texi:12234
+#: doc/guix.texi:12235
+#, no-wrap
+msgid "Scheduled Job Execution"
+msgstr "Ejecución de tareas programadas"
+
+#. type: menuentry
+#: doc/guix.texi:295 doc/guix.texi:11439
+msgid "The mcron service."
+msgstr "El servicio mcron."
+
+# TODO: (MAAV) Comprobar otras traducciones.
+#. type: subsection
+#: doc/guix.texi:295 doc/guix.texi:11439 doc/guix.texi:12335
+#: doc/guix.texi:12336
+#, no-wrap
+msgid "Log Rotation"
+msgstr "Rotación del registro de mensajes"
+
+#. type: menuentry
+#: doc/guix.texi:295 doc/guix.texi:11439
+msgid "The rottlog service."
+msgstr "El servicio rottlog."
+
+#. type: subsection
+#: doc/guix.texi:295 doc/guix.texi:11439 doc/guix.texi:12437
+#: doc/guix.texi:12438
+#, no-wrap
+msgid "Networking Services"
+msgstr "Servicios de red"
+
+#. type: menuentry
+#: doc/guix.texi:295 doc/guix.texi:11439
+msgid "Network setup, SSH daemon, etc."
+msgstr "Configuración de red, daemon SSH, etc."
+
+# XXX: Dudas de traducción...
+#. type: subsection
+#: doc/guix.texi:295 doc/guix.texi:11439 doc/guix.texi:13382
+#: doc/guix.texi:13383
+#, 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:295 doc/guix.texi:11439
+msgid "Graphical display."
+msgstr "Interfaz gráfica."
+
+#. type: subsection
+#: doc/guix.texi:295 doc/guix.texi:11439 doc/guix.texi:13696
+#: doc/guix.texi:13697
+#, no-wrap
+msgid "Printing Services"
+msgstr "Servicios de impresión"
+
+#. type: menuentry
+#: doc/guix.texi:295 doc/guix.texi:11439
+msgid "Local and remote printer support."
+msgstr "Soporte de impresoras locales y remotas."
+
+#. type: subsection
+#: doc/guix.texi:295 doc/guix.texi:11439 doc/guix.texi:14537
+#: doc/guix.texi:14538
+#, no-wrap
+msgid "Desktop Services"
+msgstr "Servicios de escritorio"
+
+#. type: menuentry
+#: doc/guix.texi:295 doc/guix.texi:11439
+msgid "D-Bus and desktop services."
+msgstr "D-Bus y servicios de escritorio."
+
+#. type: subsection
+#: doc/guix.texi:295 doc/guix.texi:11439 doc/guix.texi:14938
+#: doc/guix.texi:14939
+#, no-wrap
+msgid "Sound Services"
+msgstr "Servicios de sonido"
+
+#. type: menuentry
+#: doc/guix.texi:295 doc/guix.texi:11439
+msgid "ALSA and Pulseaudio services."
+msgstr "Servicios de ALSA y Pulseaudio."
+
+#. type: subsection
+#: doc/guix.texi:295 doc/guix.texi:11439 doc/guix.texi:15019
+#: doc/guix.texi:15020
+#, no-wrap
+msgid "Database Services"
+msgstr "Servicios de bases de datos"
+
+#. type: menuentry
+#: doc/guix.texi:295 doc/guix.texi:11439
+msgid "SQL databases, key-value stores, etc."
+msgstr "Bases de datos SQL, almacenes de clave-valor, etc."
+
+#. type: subsection
+#: doc/guix.texi:295 doc/guix.texi:11439 doc/guix.texi:15179
+#: doc/guix.texi:15180
+#, no-wrap
+msgid "Mail Services"
+msgstr "Servicios de correo"
+
+#. type: menuentry
+#: doc/guix.texi:295 doc/guix.texi:11439
+msgid "IMAP, POP3, SMTP, and all that."
+msgstr "IMAP, POP3, SMTP y todo eso."
+
+#. type: subsection
+#: doc/guix.texi:295 doc/guix.texi:11439 doc/guix.texi:16680
+#: doc/guix.texi:16681
+#, no-wrap
+msgid "Messaging Services"
+msgstr "Servicios de mensajería"
+
+#. type: menuentry
+#: doc/guix.texi:295 doc/guix.texi:11439
+msgid "Messaging services."
+msgstr "Servicios de mensajería."
+
+#. type: subsection
+#: doc/guix.texi:295 doc/guix.texi:11439 doc/guix.texi:17182
+#: doc/guix.texi:17183
+#, no-wrap
+msgid "Telephony Services"
+msgstr "Servicios de telefonía"
+
+#. type: menuentry
+#: doc/guix.texi:295 doc/guix.texi:11439
+msgid "Telephony services."
+msgstr "Servicios de telefonía."
+
+#. type: subsection
+#: doc/guix.texi:295 doc/guix.texi:11439 doc/guix.texi:17387
+#: doc/guix.texi:17388
+#, no-wrap
+msgid "Monitoring Services"
+msgstr "Servicios de monitorización"
+
+#. type: menuentry
+#: doc/guix.texi:295 doc/guix.texi:11439
+msgid "Monitoring services."
+msgstr "Servicios de monitorización."
+
+#. type: subsection
+#: doc/guix.texi:295 doc/guix.texi:11439 doc/guix.texi:17892
+#: doc/guix.texi:17893
+#, no-wrap
+msgid "Kerberos Services"
+msgstr "Servicios Kerberos"
+
+#. type: menuentry
+#: doc/guix.texi:295 doc/guix.texi:11439
+msgid "Kerberos services."
+msgstr "Servicios Kerberos."
+
+#. type: subsection
+#: doc/guix.texi:295 doc/guix.texi:11439 doc/guix.texi:18496
+#: doc/guix.texi:18497
+#, no-wrap
+msgid "Web Services"
+msgstr "Servicios Web"
+
+#. type: menuentry
+#: doc/guix.texi:295 doc/guix.texi:11439
+msgid "Web servers."
+msgstr "Servidores Web."
+
+#. type: subsection
+#: doc/guix.texi:295 doc/guix.texi:11439 doc/guix.texi:19297
+#: doc/guix.texi:19298
+#, no-wrap
+msgid "Certificate Services"
+msgstr "Servicios de certificados"
+
+#. type: menuentry
+#: doc/guix.texi:295 doc/guix.texi:11439
+msgid "TLS certificates via Let's Encrypt."
+msgstr "Certificados TLS via Let's Encrypt."
+
+#. type: subsection
+#: doc/guix.texi:295 doc/guix.texi:11439 doc/guix.texi:19443
+#: doc/guix.texi:19444
+#, no-wrap
+msgid "DNS Services"
+msgstr "Servicios DNS"
+
+#. type: menuentry
+#: doc/guix.texi:295 doc/guix.texi:11439
+msgid "DNS daemons."
+msgstr "Demonios DNS."
+
+#. type: subsection
+#: doc/guix.texi:295 doc/guix.texi:11439 doc/guix.texi:20012
+#: doc/guix.texi:20013
+#, no-wrap
+msgid "VPN Services"
+msgstr "Servicios VPN"
+
+#. type: menuentry
+#: doc/guix.texi:295 doc/guix.texi:11439
+msgid "VPN daemons."
+msgstr "Demonios VPN."
+
+#. type: subsection
+#: doc/guix.texi:295 doc/guix.texi:11439 doc/guix.texi:20370
+#: doc/guix.texi:20371
+#, no-wrap
+msgid "Network File System"
+msgstr "Sistema de ficheros en red"
+
+#. type: menuentry
+#: doc/guix.texi:295 doc/guix.texi:11439
+msgid "NFS related services."
+msgstr "Servicios relacionados con NFS."
+
+#. type: subsection
+#: doc/guix.texi:295 doc/guix.texi:11439 doc/guix.texi:20485
+#: doc/guix.texi:20486
+#, no-wrap
+msgid "Continuous Integration"
+msgstr "Integración continua"
+
+#. type: menuentry
+#: doc/guix.texi:295 doc/guix.texi:11439
+msgid "The Cuirass service."
+msgstr "El servicio Cuirass."
+
+#. type: subsection
+#: doc/guix.texi:295 doc/guix.texi:11439 doc/guix.texi:20602
+#: doc/guix.texi:20603
+#, no-wrap
+msgid "Power Management Services"
+msgstr "Servicios de gestión de energía"
+
+#. type: menuentry
+#: doc/guix.texi:295 doc/guix.texi:11439
+msgid "Extending battery life."
+msgstr "Extender la vida de la batería."
+
+#. type: subsection
+#: doc/guix.texi:295 doc/guix.texi:11439 doc/guix.texi:21136
+#: doc/guix.texi:21137
+#, no-wrap
+msgid "Audio Services"
+msgstr "Servicios de audio"
+
+#. type: menuentry
+#: doc/guix.texi:295 doc/guix.texi:11439
+msgid "The MPD."
+msgstr "El MPD."
+
+#. type: node
+#: doc/guix.texi:295 doc/guix.texi:11439 doc/guix.texi:21195
+#, no-wrap
+msgid "Virtualization Services"
+msgstr "Servicios de virtualización"
+
+#. type: menuentry
+#: doc/guix.texi:295 doc/guix.texi:11439
+msgid "Virtualization services."
+msgstr "Servicios de virtualización."
+
+#. type: subsection
+#: doc/guix.texi:295 doc/guix.texi:11439 doc/guix.texi:21988
+#: doc/guix.texi:21989
+#, no-wrap
+msgid "Version Control Services"
+msgstr "Servicios de control de versiones"
+
+#. type: menuentry
+#: doc/guix.texi:295 doc/guix.texi:11439
+msgid "Providing remote access to Git repositories."
+msgstr "Proporcionar acceso remoto a repositorios Git."
+
+#. type: subsection
+#: doc/guix.texi:295 doc/guix.texi:11439 doc/guix.texi:23176
+#: doc/guix.texi:23177
+#, no-wrap
+msgid "Game Services"
+msgstr "Servicios de juegos"
+
+#. type: menuentry
+#: doc/guix.texi:295 doc/guix.texi:11439
+msgid "Game servers."
+msgstr "Servidores de juegos."
+
+# FUZZY
+#. type: subsection
+#: doc/guix.texi:295 doc/guix.texi:11439 doc/guix.texi:23207
+#: doc/guix.texi:23208
+#, no-wrap
+msgid "Miscellaneous Services"
+msgstr "Servicios misceláneos"
+
+#. type: menuentry
+#: doc/guix.texi:295 doc/guix.texi:11439
+msgid "Other services."
+msgstr "Otros servicios."
+
+#. type: subsection
+#: doc/guix.texi:302 doc/guix.texi:24665 doc/guix.texi:24667
+#: doc/guix.texi:24668
+#, no-wrap
+msgid "Service Composition"
+msgstr "Composición de servicios"
+
+#. type: menuentry
+#: doc/guix.texi:302 doc/guix.texi:24665
+msgid "The model for composing services."
+msgstr "El modelo para la composición de servicios."
+
+#. type: subsection
+#: doc/guix.texi:302 doc/guix.texi:24665 doc/guix.texi:24723
+#: doc/guix.texi:24724
+#, no-wrap
+msgid "Service Types and Services"
+msgstr "Tipos de servicios y servicios"
+
+#. type: menuentry
+#: doc/guix.texi:302 doc/guix.texi:24665
+msgid "Types and services."
+msgstr "Tipos y servicios"
+
+#. type: subsection
+#: doc/guix.texi:302 doc/guix.texi:24665 doc/guix.texi:24860
+#: doc/guix.texi:24861
+#, no-wrap
+msgid "Service Reference"
+msgstr "Referencia de servicios"
+
+#. type: menuentry
+#: doc/guix.texi:302 doc/guix.texi:24665
+msgid "API reference."
+msgstr "Referencia de la API."
+
+#. type: subsection
+#: doc/guix.texi:302 doc/guix.texi:24665 doc/guix.texi:25085
+#: doc/guix.texi:25086
+#, no-wrap
+msgid "Shepherd Services"
+msgstr "Servicios de Shepherd"
+
+#. type: menuentry
+#: doc/guix.texi:302 doc/guix.texi:24665
+msgid "A particular type of service."
+msgstr "Un tipo de servicio particular."
+
+#. type: cindex
+#: doc/guix.texi:310
+#, no-wrap
+msgid "purpose"
+msgstr "propósito"
+
+#. type: Plain text
+#: doc/guix.texi:318
+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, ``gi:ks'' en el alfabeto fonético internacional (IPA).} es una herramienta de gestión de paquetes y una distribucion 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:319 doc/guix.texi:394
+#, no-wrap
+msgid "Guix System"
+msgstr "Sistema Guix"
+
+# FUZZY
+#. type: cindex
+#: doc/guix.texi:320
+#, no-wrap
+msgid "GuixSD, now Guix System"
+msgstr "GuixSD, ahora sistema Guix"
+
+#. type: cindex
+#: doc/guix.texi:321
+#, no-wrap
+msgid "Guix System Distribution, now Guix System"
+msgstr "Distribución de Sistema Guix, ahora sistema Guix"
+
+#. type: Plain text
+#: doc/guix.texi:330
+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:339
+#, no-wrap
+msgid "user interfaces"
+msgstr "interfaces de usuaria"
+
+#. type: Plain text
+#: doc/guix.texi:345
+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:345
+#, no-wrap
+msgid "build daemon"
+msgstr "daemon de construcción"
+
+# FIXME
+#. type: Plain text
+#: doc/guix.texi:349
+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:350
+#, no-wrap
+msgid "extensibility of the distribution"
+msgstr "extensibilidad de la distribución"
+
+#. type: cindex
+#: doc/guix.texi:351 doc/guix.texi:4988
+#, no-wrap
+msgid "customization, of packages"
+msgstr "personalización, de paquetes"
+
+#. type: Plain text
+#: doc/guix.texi:360
+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:361
+#, no-wrap
+msgid "functional package management"
+msgstr "gestión de paquetes funcional"
+
+#. type: cindex
+#: doc/guix.texi:362
+#, no-wrap
+msgid "isolation"
+msgstr "aislamiento"
+
+#. type: Plain text
+#: doc/guix.texi:377
+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:378 doc/guix.texi:6273
+#, no-wrap
+msgid "store"
+msgstr "almacén"
+
+# FUZZY
+#. type: Plain text
+#: doc/guix.texi:385
+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."
+
+#. type: Plain text
+#: doc/guix.texi:389
+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:404
+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."
+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{http://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:410
+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}):"
+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 puede navegarse @url{http://www.gnu.org/software/guix/packages,en línea} o ejecutando @command{guix package} (@pxref{Invoking guix package}):"
+
+#. type: example
+#: doc/guix.texi:413
+#, no-wrap
+msgid "guix package --list-available\n"
+msgstr "guix package --list-available\n"
+
+#. type: Plain text
+#: doc/guix.texi:419
+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:421
+msgid "Packages are currently available on the following platforms:"
+msgstr "Actualmente hay paquetes disponibles para las siguientes plataformas:"
+
+#. type: item
+#: doc/guix.texi:424 doc/guix.texi:1869
+#, no-wrap
+msgid "x86_64-linux"
+msgstr "x86_64-linux"
+
+#. type: table
+#: doc/guix.texi:426
+msgid "Intel/AMD @code{x86_64} architecture, Linux-Libre kernel;"
+msgstr "arquitectura @code{x86_64} de Intel/AMD, núcleo Linux-Libre;"
+
+#. type: item
+#: doc/guix.texi:427 doc/guix.texi:1872
+#, no-wrap
+msgid "i686-linux"
+msgstr "i686-linux"
+
+#. type: table
+#: doc/guix.texi:429
+msgid "Intel 32-bit architecture (IA32), Linux-Libre kernel;"
+msgstr "arquitectura de 32-bits Intel (IA32), núcleo Linux-Libre;"
+
+#. type: item
+#: doc/guix.texi:430
+#, no-wrap
+msgid "armhf-linux"
+msgstr "armhf-linux"
+
+#. type: table
+#: doc/guix.texi:434
+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."
+
+#. type: item
+#: doc/guix.texi:435
+#, no-wrap
+msgid "aarch64-linux"
+msgstr "aarch64-linux"
+
+# FUZZY
+#. type: table
+#: doc/guix.texi:439
+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 "procesadores de 64-bits ARMv8 little-endian, núcleo Linux-Libre. Está actualmente en una fase experimental, con soporte limitado. @xref{Contributing}, para cómo ayudar."
+
+#. type: item
+#: doc/guix.texi:440
+#, no-wrap
+msgid "mips64el-linux"
+msgstr "mips64el-linux"
+
+#. type: table
+#: doc/guix.texi:443
+msgid "little-endian 64-bit MIPS processors, specifically the Loongson series, n32 ABI, and Linux-Libre kernel."
+msgstr "procesadores MIPS 64-bits little-endian, específicamente las series Loongson, n32 ABI, y núcleo Linux-Libre."
+
+#. type: Plain text
+#: doc/guix.texi:453
+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:456
+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:460
+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:463
+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:469
+#, no-wrap
+msgid "installing Guix"
+msgstr "instalar Guix"
+
+#. type: quotation
+#: doc/guix.texi:471 doc/guix.texi:1540 doc/guix.texi:1771 doc/guix.texi:1976
+#: doc/guix.texi:2178 doc/guix.texi:2373 doc/guix.texi:3152 doc/guix.texi:3932
+#: doc/guix.texi:4148 doc/guix.texi:4437 doc/guix.texi:4669 doc/guix.texi:4816
+#: doc/guix.texi:6292 doc/guix.texi:6360 doc/guix.texi:8046 doc/guix.texi:8058
+#: doc/guix.texi:9949 doc/guix.texi:10486 doc/guix.texi:11030
+#: doc/guix.texi:13484 doc/guix.texi:19286 doc/guix.texi:23969
+#: doc/guix.texi:24164 doc/guix.texi:24283 doc/guix.texi:24398
+#: doc/guix.texi:25388
+#, no-wrap
+msgid "Note"
+msgstr "Nota"
+
+# FUZZY
+#. type: quotation
+#: doc/guix.texi:481
+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.\"\n"
+"\"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, desdea 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:483 doc/guix.texi:1557
+#, no-wrap
+msgid "foreign distro"
+msgstr "distribución distinta"
+
+#. type: cindex
+#: doc/guix.texi:484
+#, no-wrap
+msgid "directories related to foreign distro"
+msgstr "directorios relacionados con una distribución distinta"
+
+#. type: Plain text
+#: doc/guix.texi:489
+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."
+
+#. type: Plain text
+#: doc/guix.texi:492
+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:497
+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: cindex
+#: doc/guix.texi:510
+#, no-wrap
+msgid "installing Guix from binaries"
+msgstr "instalar Guix desde binarios"
+
+#. type: cindex
+#: doc/guix.texi:511
+#, no-wrap
+msgid "installer script"
+msgstr "guión del instalador"
+
+# TODO: (MAAV) repensar
+#. type: Plain text
+#: doc/guix.texi:517
+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."
+
+# TODO: (MAAV) repensar
+#. type: Plain text
+#: doc/guix.texi:519
+msgid "Installing goes along these lines:"
+msgstr "La instalación consiste más o menos en los siguientes pasos:"
+
+#. type: cindex
+#: doc/guix.texi:522
+#, no-wrap
+msgid "downloading Guix binary"
+msgstr "descargar el binario de Guix"
+
+# TODO: (MAAV) and so on -> ¿y demás?
+#. type: enumerate
+#: doc/guix.texi:527
+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 "Descargue el archivador con los binarios de @indicateurl{https://alpha.gnu.org/gnu/guix/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."
+
+#. type: enumerate
+#: doc/guix.texi:531
+msgid "Make sure to download the associated @file{.sig} file and to verify the authenticity of the tarball against it, along these lines:"
+msgstr "Asegurese de descargar el fichero @file{.sig} asociado y de verificar la autenticidad del archivador con él, más o menos así:"
+
+#. type: example
+#: doc/guix.texi:535
+#, no-wrap
+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{sistema}.tar.xz.sig\n"
+"$ gpg --verify guix-binary-@value{VERSION}.@var{sistema}.tar.xz.sig\n"
+
+#. type: Plain text
+#: doc/guix.texi:539 doc/guix.texi:1887
+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:543 doc/guix.texi:1891
+#, no-wrap
+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"
+
+#. type: Plain text
+#: doc/guix.texi:548 doc/guix.texi:1896
+msgid "and rerun the @code{gpg --verify} command."
+msgstr "y vuelva a ejecutar la orden @code{gpg --verify}."
+
+#. type: enumerate
+#: doc/guix.texi:552
+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:558
+#, no-wrap
+msgid ""
+"# cd /tmp\n"
+"# tar --warning=no-timestamp -xf \\\n"
+"     guix-binary-@value{VERSION}.@var{system}.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{sistema}.tar.xz\n"
+"# mv var/guix /var/ && mv gnu /\n"
+
+#. type: enumerate
+#: doc/guix.texi:563
+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)."
+
+#. type: enumerate
+#: doc/guix.texi:566
+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."
+
+# TODO (MAAV): Revisar
+#. type: enumerate
+#: doc/guix.texi:576
+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, haciendolo por tanto reproducible."
+
+#. type: enumerate
+#: doc/guix.texi:580
+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:585
+#, no-wrap
+msgid ""
+"# mkdir -p ~root/.config/guix\n"
+"# ln -sf /var/guix/profiles/per-user/root/current-guix \\\n"
+"         ~root/.config/guix/current\n"
+msgstr ""
+"# mkdir -p ~root/.config/guix\n"
+"# ln -sf /var/guix/profiles/per-user/root/current-guix \\\n"
+"         ~root/.config/guix/current\n"
+
+#. type: enumerate
+#: doc/guix.texi:589
+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:"
+
+#. type: example
+#: doc/guix.texi:593
+#, no-wrap
+msgid ""
+"# GUIX_PROFILE=\"`echo ~root`/.config/guix/current\" ; \\\n"
+"  source $GUIX_PROFILE/etc/profile\n"
+msgstr ""
+"# GUIX_PROFILE=\"`echo ~root`/.config/guix/current\" ; \\\n"
+"  source $GUIX_PROFILE/etc/profile\n"
+
+#. type: enumerate
+#: doc/guix.texi:598
+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:601
+msgid "Run the daemon, and set it to automatically start on boot."
+msgstr "Ejecute el daemon, y configurelo para iniciarse automáticamente al arranque."
+
+#. type: enumerate
+#: doc/guix.texi:604
+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 conseguirlo con estas órdenes:"
+
+#. type: example
+#: doc/guix.texi:616
+#, no-wrap
+msgid ""
+"# 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"
+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"
+
+#. type: itemize
+#: doc/guix.texi:619 doc/guix.texi:9733
+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:625
+#, no-wrap
+msgid ""
+"# initctl reload-configuration\n"
+"# cp ~root/.config/guix/current/lib/upstart/system/guix-daemon.conf \\\n"
+"     /etc/init/\n"
+"# start guix-daemon\n"
+msgstr ""
+"# initctl reload-configuration\n"
+"# cp ~root/.config/guix/current/lib/upstart/system/guix-daemon.conf \\\n"
+"     /etc/init/\n"
+"# start guix-daemon\n"
+
+#. type: enumerate
+#: doc/guix.texi:628
+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:632
+#, no-wrap
+msgid ""
+"# ~root/.config/guix/current/bin/guix-daemon \\\n"
+"       --build-users-group=guixbuild\n"
+msgstr ""
+"# ~root/.config/guix/current/bin/guix-daemon \\\n"
+"       --build-users-group=guixbuild\n"
+
+#. type: enumerate
+#: doc/guix.texi:637
+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:642
+#, no-wrap
+msgid ""
+"# mkdir -p /usr/local/bin\n"
+"# cd /usr/local/bin\n"
+"# ln -s /var/guix/profiles/per-user/root/current-guix/bin/guix\n"
+msgstr ""
+"# mkdir -p /usr/local/bin\n"
+"# cd /usr/local/bin\n"
+"# ln -s /var/guix/profiles/per-user/root/current-guix/bin/guix\n"
+
+#. type: enumerate
+#: doc/guix.texi:646
+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:652
+#, no-wrap
+msgid ""
+"# mkdir -p /usr/local/share/info\n"
+"# cd /usr/local/share/info\n"
+"# for i in /var/guix/profiles/per-user/root/current-guix/share/info/* ;\n"
+"  do ln -s $i ; done\n"
+msgstr ""
+"# mkdir -p /usr/local/share/info\n"
+"# cd /usr/local/share/info\n"
+"# for i in /var/guix/profiles/per-user/root/current-guix/share/info/* ;\n"
+"  do ln -s $i ; done\n"
+
+#. type: enumerate
+#: doc/guix.texi:658
+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:660 doc/guix.texi:3131 doc/guix.texi:11948
+#, no-wrap
+msgid "substitutes, authorization thereof"
+msgstr "sustituciones, autorización de las mismas"
+
+#. type: enumerate
+#: doc/guix.texi:663
+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:667
+#, no-wrap
+msgid ""
+"# guix archive --authorize < \\\n"
+"     ~root/.config/guix/current/share/guix/@value{SUBSTITUTE-SERVER}.pub\n"
+msgstr ""
+"# guix archive --authorize < \\\n"
+"     ~root/.config/guix/current/share/guix/@value{SUBSTITUTE-SERVER}.pub\n"
+
+#. type: enumerate
+#: doc/guix.texi:672
+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 prepar su entorno de Guix para el uso, @pxref{Application Setup}."
+
+#. type: Plain text
+#: doc/guix.texi:675
+msgid "Voilà, the installation is complete!"
+msgstr "Voilà, ¡la instalación está completa!"
+
+#. type: Plain text
+#: doc/guix.texi:678
+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:681
+#, no-wrap
+msgid "# guix package -i hello\n"
+msgstr "# guix package -i hello\n"
+
+#. type: Plain text
+#: doc/guix.texi:688
+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 "El paquete @code{guix} debe permanecer disponible en el perfil de @code{root}, o podría verse sujeto a la recolección de basura---en cuyo caso se encontraría seriamente lastrada por la falta de la orden @command{guix}. En otras palabras, no borre @code{guix} ejecutando @code{guix package -r guix}."
+
+#. type: Plain text
+#: doc/guix.texi:691
+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:694
+#, 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:698
+msgid "...@: which, in turn, runs:"
+msgstr "...@: que a su vez ejecuta:"
+
+#. type: example
+#: doc/guix.texi:702
+#, no-wrap
+msgid ""
+"guix pack -s @var{system} --localstatedir \\\n"
+"  --profile-name=current-guix guix\n"
+msgstr ""
+"guix pack -s @var{sistema} --localstatedir \\\n"
+"  --profile-name=current-guix guix\n"
+
+#. type: Plain text
+#: doc/guix.texi:705
+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:713
+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."
+
+#. type: cindex
+#: doc/guix.texi:714
+#, no-wrap
+msgid "official website"
+msgstr "página web oficial"
+
+#. type: Plain text
+#: doc/guix.texi:717
+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/}."
+
+#. type: Plain text
+#: doc/guix.texi:719
+msgid "GNU Guix depends on the following packages:"
+msgstr "GNU Guix depende de los siguientes paquetes:"
+
+#. type: item
+#: doc/guix.texi:721
+#, no-wrap
+msgid "@url{http://gnu.org/software/guile/, GNU Guile}, version 2.2.x;"
+msgstr "@url{http://gnu.org/software/guile/, GNU Guile}, versión 2.2.x;"
+
+#. type: item
+#: doc/guix.texi:722
+#, 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:724
+msgid "0.1.0 or later;"
+msgstr "0.1.0 o posterior;"
+
+# TODO: (MAAV): ¿bindings?
+#. type: itemize
+#: doc/guix.texi:728
+msgid "@uref{http://gnutls.org/, GnuTLS}, specifically its Guile bindings (@pxref{Guile Preparations, how to install the GnuTLS bindings for Guile,, gnutls-guile, GnuTLS-Guile});"
+msgstr "@uref{http://gnutls.org/, GnuTLS}, específicamente su API Guile (@pxref{Guile Preparations, how to install the GnuTLS bindings for Guile,, gnutls-guile, GnuTLS-Guile});"
+
+#. type: itemize
+#: doc/guix.texi:731
+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:735
+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:735
+#, no-wrap
+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:736
+#, no-wrap
+msgid "@url{http://zlib.net, zlib};"
+msgstr "@url{http://zlib.net, zlib};"
+
+#. type: item
+#: doc/guix.texi:737
+#, no-wrap
+msgid "@url{http://www.gnu.org/software/make/, GNU Make}."
+msgstr "@url{http://www.gnu.org/software/make/, GNU Make}."
+
+#. type: Plain text
+#: doc/guix.texi:741
+msgid "The following dependencies are optional:"
+msgstr "Las siguientes dependencias son opcionales:"
+
+#. type: itemize
+#: doc/guix.texi:749
+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 "Las características de delegación de construcciones (@pxref{Daemon Offload Setup}) y de @command{guix copy} (@pxref{Invoking guix copy}) dependen de @uref{https://github.com/artyom-poptsov/guile-ssh, Guile-SSH}, versión 0.10.2 o posterior."
+
+# TODO: (MAAV) log
+#. type: itemize
+#: doc/guix.texi:753
+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 log de construcción."
+
+#. type: Plain text
+#: doc/guix.texi:757
+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:"
+
+#. type: item
+#: doc/guix.texi:759
+#, no-wrap
+msgid "@url{http://gnupg.org/, GNU libgcrypt};"
+msgstr "@url{http://gnupg.org/, GNU libgcrypt};"
+
+#. type: item
+#: doc/guix.texi:760
+#, no-wrap
+msgid "@url{http://sqlite.org, SQLite 3};"
+msgstr "@url{http://sqlite.org, SQLite 3};"
+
+# FUZZY
+#. type: item
+#: doc/guix.texi:761
+#, no-wrap
+msgid "@url{http://gcc.gnu.org, GCC's g++}, with support for the"
+msgstr "@url{http://gcc.gnu.org, g++ de GCC} con soporte para el"
+
+#. type: itemize
+#: doc/guix.texi:763
+msgid "C++11 standard."
+msgstr "estándar C++11"
+
+#. type: cindex
+#: doc/guix.texi:765
+#, no-wrap
+msgid "state directory"
+msgstr "directorio de estado"
+
+#. type: Plain text
+#: doc/guix.texi:773
+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 "Cuando se configura Guix en un sistema que ya tiene una instalación de Guix, asegurese 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}). 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:774
+#, no-wrap
+msgid "Nix, compatibility"
+msgstr "Nix, compatibilidad"
+
+#. type: Plain text
+#: doc/guix.texi:779
+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."
+msgstr "Cuando está disponible una instalación en funcionamiento del @url{http://nixos.org/nix/, gestor de paquetes Nix}, puede a su vez configurar Guix con @code{--disable-daemon}. En ese caso, Nix reemplaza las tres dependencias anteriores."
+
+#. type: Plain text
+#: doc/guix.texi:789
+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 es compatible con Nix, así que es posible compartir el mismo almacén entre ambos. Para hacerlo debe pasar a @command{configure} no solo el mismo valor de @code{--with-store-dir}, sino también el mismo valor de @code{--localstatedir}. El último es esencial debido a que especifica la base de datos donde se encuentran almacenados los metadatos del almacén, entre otras cosas. Los valores predeterminados para Nix son @code{--with-store-dir=/nix/store} y @code{--localstatedir=/nix/var}. Fíjese que no se requiere @code{--disable-daemon} si su objetivo es compartir el almacén con Nix."
+
+#. type: cindex
+#: doc/guix.texi:793
+#, no-wrap
+msgid "test suite"
+msgstr "batería de pruebas"
+
+#. type: Plain text
+#: doc/guix.texi:799
+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:802
+#, no-wrap
+msgid "make check\n"
+msgstr "make check\n"
+
+# TODO (MAAV): caché
+#. type: Plain text
+#: doc/guix.texi:809
+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:812
+msgid "It is also possible to run a subset of the tests by defining the @code{TESTS} makefile variable as in this example:"
+msgstr "Tambien es posible ejecutar un subconjunto de las pruebas definiendo la variable de makefile @code{TESTS} como en el ejemplo:"
+
+#. type: example
+#: doc/guix.texi:815
+#, 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:820
+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:"
+
+#. type: example
+#: doc/guix.texi:823
+#, 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:829
+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."
+
+#. type: Plain text
+#: doc/guix.texi:833
+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:836
+#, no-wrap
+msgid "make check-system\n"
+msgstr "make check-system\n"
+
+#. type: Plain text
+#: doc/guix.texi:840
+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:843
+#, 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:851
+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:854
+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:858
+#, no-wrap
+msgid "daemon"
+msgstr "daemon"
+
+# TODO: (MAAV) repasar
+#. type: Plain text
+#: doc/guix.texi:866
+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:870
+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 tambien @ref{Substitutes}, para información sobre cómo permitir al daemon descargar binarios pre-construidos."
+
+#. type: cindex
+#: doc/guix.texi:880 doc/guix.texi:1303
+#, no-wrap
+msgid "build environment"
+msgstr "entorno de construcción"
+
+#. type: Plain text
+#: doc/guix.texi:888
+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:889
+#, no-wrap
+msgid "build users"
+msgstr "usuarias de construcción"
+
+#. type: Plain text
+#: doc/guix.texi:900
+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})."
+
+#. type: Plain text
+#: doc/guix.texi:903
+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:915
+#, no-wrap
+msgid ""
+"# groupadd --system guixbuild\n"
+"# for i in `seq -w 1 10`;\n"
+"  do\n"
+"    useradd -g guixbuild -G guixbuild           \\\n"
+"            -d /var/empty -s `which nologin`    \\\n"
+"            -c \"Guix build user $i\" --system    \\\n"
+"            guixbuilder$i;\n"
+"  done\n"
+msgstr ""
+"# groupadd --system guixbuild\n"
+"# for i in `seq -w 1 10`;\n"
+"  do\n"
+"    useradd -g guixbuild -G guixbuild                      \\\n"
+"            -d /var/empty -s `which nologin`               \\\n"
+"            -c \"Usuaria de construcción Guix $i\" --system  \\\n"
+"            guixbuilder$i;\n"
+"  done\n"
+
+#. type: Plain text
+#: doc/guix.texi:925
+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:934
+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}.}:"
+
+#. type: example
+#: doc/guix.texi:937 doc/guix.texi:1296
+#, no-wrap
+msgid "# guix-daemon --build-users-group=guixbuild\n"
+msgstr "# guix-daemon --build-users-group=guixbuild\n"
+
+#. type: cindex
+#: doc/guix.texi:939 doc/guix.texi:1301
+#, no-wrap
+msgid "chroot"
+msgstr "chroot"
+
+# FUZZY
+#. type: Plain text
+#: doc/guix.texi:944
+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:952
+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.}"
+
+#. type: itemize
+#: doc/guix.texi:956
+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:960
+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:963
+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:967
+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:970
+msgid "a writable @file{/tmp} directory."
+msgstr "un directorio @file{/tmp} con permisos de escritura."
+
+#. type: Plain text
+#: doc/guix.texi:979
+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."
+
+#. type: vindex
+#: doc/guix.texi:980 doc/guix.texi:3233
+#, no-wrap
+msgid "http_proxy"
+msgstr "http_proxy"
+
+#. type: Plain text
+#: doc/guix.texi:984
+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})."
+
+#. type: Plain text
+#: doc/guix.texi:992
+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}."
+
+# FUZZY
+#. type: subsection
+#: doc/guix.texi:995
+#, no-wrap
+msgid "Using the Offload Facility"
+msgstr "Uso de la facilidad de descarga de trabajo"
+
+#. type: cindex
+#: doc/guix.texi:997
+#, no-wrap
+msgid "offloading"
+msgstr "delegando trabajo"
+
+# FUZZY
+#. type: cindex
+#: doc/guix.texi:998 doc/guix.texi:1359
+#, no-wrap
+msgid "build hook"
+msgstr "hook de construcción"
+
+# FUZZY
+#. type: Plain text
+#: doc/guix.texi:1012
+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{hook 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."
+
+#. type: Plain text
+#: doc/guix.texi:1014
+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:"
+
+#. type: example
+#: doc/guix.texi:1022
+#, no-wrap
+msgid ""
+"(list (build-machine\n"
+"        (name \"eightysix.example.org\")\n"
+"        (system \"x86_64-linux\")\n"
+"        (host-key \"ssh-ed25519 AAAAC3Nza@dots{}\")\n"
+"        (user \"bob\")\n"
+"        (speed 2.))     ;incredibly fast!\n"
+"\n"
+msgstr ""
+"(list (build-machine\n"
+"        (name \"ochentayseis.example.org\")\n"
+"        (system \"x86_64-linux\")\n"
+"        (host-key \"ssh-ed25519 AAAAC3Nza@dots{}\")\n"
+"        (user \"rober\")\n"
+"        (speed 2.))     ;¡increíblemente rápida!\n"
+"\n"
+
+#. type: example
+#: doc/guix.texi:1031
+#, no-wrap
+msgid ""
+"      (build-machine\n"
+"        (name \"meeps.example.org\")\n"
+"        (system \"mips64el-linux\")\n"
+"        (host-key \"ssh-rsa AAAAB3Nza@dots{}\")\n"
+"        (user \"alice\")\n"
+"        (private-key\n"
+"         (string-append (getenv \"HOME\")\n"
+"                        \"/.ssh/identity-for-guix\"))))\n"
+msgstr ""
+"      (build-machine\n"
+"        (name \"mimips.example.org\")\n"
+"        (system \"mips64el-linux\")\n"
+"        (host-key \"ssh-rsa AAAAB3Nza@dots{}\")\n"
+"        (user \"alicia\")\n"
+"        (private-key\n"
+"         (string-append (getenv \"HOME\")\n"
+"                        \"/.ssh/identidad-para-guix\"))))\n"
+
+#. type: Plain text
+#: doc/guix.texi:1037
+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}."
+
+#. type: Plain text
+#: doc/guix.texi:1046
+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 hook @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:1047
+#, no-wrap
+msgid "{Data Type} build-machine"
+msgstr "{Tipo de datos} build-machine"
+
+#. type: deftp
+#: doc/guix.texi:1050
+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:1053 doc/guix.texi:5310 doc/guix.texi:10972
+#: doc/guix.texi:11054 doc/guix.texi:11281 doc/guix.texi:12865
+#: doc/guix.texi:17368 doc/guix.texi:17953 doc/guix.texi:18564
+#: doc/guix.texi:18872 doc/guix.texi:18913 doc/guix.texi:23385
+#: doc/guix.texi:23402 doc/guix.texi:23695 doc/guix.texi:24973
+#: doc/guix.texi:25179
+#, no-wrap
+msgid "name"
+msgstr "name"
+
+#. type: table
+#: doc/guix.texi:1055
+msgid "The host name of the remote machine."
+msgstr "El nombre de red de la máquina remota."
+
+#. type: item
+#: doc/guix.texi:1056
+#, no-wrap
+msgid "system"
+msgstr "system"
+
+#. type: table
+#: doc/guix.texi:1058
+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\"}."
+
+#. type: code{#1}
+#: doc/guix.texi:1059 doc/guix.texi:12875
+#, no-wrap
+msgid "user"
+msgstr "user"
+
+#. type: table
+#: doc/guix.texi:1063
+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 a usar cuando se conecte 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:1064
+#, no-wrap
+msgid "host-key"
+msgstr "host-key"
+
+#. type: table
+#: doc/guix.texi:1068
+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:1071
+#, 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:1076
+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}."
+
+#. type: table
+#: doc/guix.texi:1081
+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}):"
+
+#. type: example
+#: doc/guix.texi:1085
+#, no-wrap
+msgid ""
+"$ 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"
+"ssh-rsa AAAAB3NzaC1yc2EAAAAEOp8FoQAAAQEAs1eB46LV@dots{}\n"
+
+#. type: deftp
+#: doc/guix.texi:1090
+msgid "A number of optional fields may be specified:"
+msgstr "Ciertos número de campos opcionales pueden ser especificados:"
+
+#. type: item
+#: doc/guix.texi:1093
+#, no-wrap
+msgid "@code{port} (default: @code{22})"
+msgstr "@code{port} (predeterminado: @code{22})"
+
+#. type: table
+#: doc/guix.texi:1095
+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:1096
+#, 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:1099
+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."
+
+#. type: table
+#: doc/guix.texi:1102
+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}. Asegurese de que existe si usa el valor predeterminado."
+
+#. type: item
+#: doc/guix.texi:1103
+#, no-wrap
+msgid "@code{compression} (default: @code{\"zlib@@openssh.com,zlib\"})"
+msgstr "@code{compression} (predeterminado: @code{\"zlib@@openssh.com,zlib\"})"
+
+#. type: item
+#: doc/guix.texi:1104 doc/guix.texi:12168
+#, no-wrap
+msgid "@code{compression-level} (default: @code{3})"
+msgstr "@code{compression-level} (predeterminado: @code{3})"
+
+#. type: table
+#: doc/guix.texi:1106
+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:1109
+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."
+
+#. type: item
+#: doc/guix.texi:1110
+#, 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:1113
+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."
+
+#. type: item
+#: doc/guix.texi:1114
+#, no-wrap
+msgid "@code{parallel-builds} (default: @code{1})"
+msgstr "@code{parallel-builds} (predeterminadas: @code{1})"
+
+#. type: table
+#: doc/guix.texi:1116
+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:1117
+#, no-wrap
+msgid "@code{speed} (default: @code{1.0})"
+msgstr "@code{speed} (predeterminado: @code{1.0})"
+
+#. type: table
+#: doc/guix.texi:1120
+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:1121
+#, no-wrap
+msgid "@code{features} (default: @code{'()})"
+msgstr "@code{features} (predeterminadas: @code{'()})"
+
+#. type: table
+#: doc/guix.texi:1126
+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:1132
+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:1135
+#, no-wrap
+msgid "ssh build-machine guix repl --version\n"
+msgstr "ssh build-machine guix repl --version\n"
+
+#. type: Plain text
+#: doc/guix.texi:1142
+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}):"
+
+#. type: example
+#: doc/guix.texi:1145
+#, no-wrap
+msgid "# guix archive --generate-key\n"
+msgstr "# guix archive --generate-key\n"
+
+#. type: Plain text
+#: doc/guix.texi:1150
+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:1153
+#, 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:1157
+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."
+
+#. type: Plain text
+#: doc/guix.texi:1163
+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."
+
+#. type: cindex
+#: doc/guix.texi:1164
+#, no-wrap
+msgid "offload test"
+msgstr "prueba de delegación"
+
+#. type: Plain text
+#: doc/guix.texi:1167
+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:1170
+#, no-wrap
+msgid "# guix offload test\n"
+msgstr "# guix offload test\n"
+
+#. type: Plain text
+#: doc/guix.texi:1176
+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:1179
+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 especifiquelo en la línea de órdenes:"
+
+#. type: example
+#: doc/guix.texi:1182
+#, no-wrap
+msgid "# guix offload test machines-qualif.scm\n"
+msgstr "# guix offload test otras-maquinas.scm\n"
+
+#. type: Plain text
+#: doc/guix.texi:1186
+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:1189
+#, 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:1191
+#, no-wrap
+msgid "offload status"
+msgstr "estado de delegación"
+
+#. type: Plain text
+#: doc/guix.texi:1194
+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:1197
+#, no-wrap
+msgid "# guix offload status\n"
+msgstr "# guix offload status\n"
+
+#. type: cindex
+#: doc/guix.texi:1203
+#, no-wrap
+msgid "SELinux, daemon policy"
+msgstr "SELinux, política del daemon"
+
+# FUZZY
+#. type: cindex
+#: doc/guix.texi:1204
+#, no-wrap
+msgid "mandatory access control, SELinux"
+msgstr "control de acceso mandatorio, SELinux"
+
+#. type: cindex
+#: doc/guix.texi:1205
+#, no-wrap
+msgid "security, guix-daemon"
+msgstr "seguridad, guix-daemon"
+
+#. type: Plain text
+#: doc/guix.texi:1211
+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."
+
+#. type: subsubsection
+#: doc/guix.texi:1212
+#, no-wrap
+msgid "Installing the SELinux policy"
+msgstr "Instalación de la política de SELinux"
+
+#. type: cindex
+#: doc/guix.texi:1213
+#, no-wrap
+msgid "SELinux, policy installation"
+msgstr "SELinux, instalación de la política"
+
+#. type: Plain text
+#: doc/guix.texi:1215
+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:1218
+#, no-wrap
+msgid "semodule -i etc/guix-daemon.cil\n"
+msgstr "semodule -i etc/guix-daemon.cil\n"
+
+#. type: Plain text
+#: doc/guix.texi:1222
+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."
+
+#. type: Plain text
+#: doc/guix.texi:1227
+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:"
+
+#. type: example
+#: doc/guix.texi:1230
+#, 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:1235
+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."
+
+#. type: cindex
+#: doc/guix.texi:1237
+#, no-wrap
+msgid "SELinux, limitations"
+msgstr "SELinux, limitaciones"
+
+# FUZZY
+#. type: Plain text
+#: doc/guix.texi:1242
+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:1249
+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:1260
+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."
+
+#. type: enumerate
+#: doc/guix.texi:1265
+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 extra, ya que SELinux trata los sockets de red de forma diferente a los ficheros."
+
+#. type: enumerate
+#: doc/guix.texi:1276
+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."
+
+#. type: enumerate
+#: doc/guix.texi:1284
+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."
+
+#. type: section
+#: doc/guix.texi:1287
+#, no-wrap
+msgid "Invoking @command{guix-daemon}"
+msgstr "Invocación de @command{guix-daemon}"
+
+#. type: Plain text
+#: doc/guix.texi:1293
+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:1300
+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:1302
+#, no-wrap
+msgid "container, build environment"
+msgstr "contenedor, entorno de construcción"
+
+#. type: cindex
+#: doc/guix.texi:1304 doc/guix.texi:2553 doc/guix.texi:3214 doc/guix.texi:9746
+#, no-wrap
+msgid "reproducible builds"
+msgstr "construcciones reproducibles"
+
+#. type: Plain text
+#: doc/guix.texi:1316
+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})."
+
+#. type: Plain text
+#: doc/guix.texi:1322
+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}."
+
+#. type: Plain text
+#: doc/guix.texi:1326
+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:1332
+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:1334
+msgid "The following command-line options are supported:"
+msgstr "Se aceptan las siguientes opciones de línea de ordenes:"
+
+#. type: item
+#: doc/guix.texi:1336
+#, no-wrap
+msgid "--build-users-group=@var{group}"
+msgstr "--build-users-group=@var{grupo}"
+
+#. type: table
+#: doc/guix.texi:1339
+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:1340 doc/guix.texi:7696
+#, no-wrap
+msgid "--no-substitutes"
+msgstr "--no-substitutes"
+
+#. type: cindex
+#: doc/guix.texi:1341 doc/guix.texi:2565 doc/guix.texi:3075
+#, no-wrap
+msgid "substitutes"
+msgstr "sustituciones"
+
+#. type: table
+#: doc/guix.texi:1345 doc/guix.texi:7700
+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:1349
+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})."
+
+#. type: item
+#: doc/guix.texi:1350 doc/guix.texi:7683 doc/guix.texi:9290 doc/guix.texi:9871
+#: doc/guix.texi:10061
+#, no-wrap
+msgid "--substitute-urls=@var{urls}"
+msgstr "--substitute-urls=@var{urls}"
+
+#. type: anchor{#1}
+#: doc/guix.texi:1355
+msgid "daemon-substitute-urls"
+msgstr "daemon-substitute-urls"
+
+#. type: table
+#: doc/guix.texi:1355
+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:1358
+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: item
+#: doc/guix.texi:1360 doc/guix.texi:7721
+#, no-wrap
+msgid "--no-build-hook"
+msgstr "--no-build-hook"
+
+# FUZZY
+#. type: table
+#: doc/guix.texi:1362
+msgid "Do not use the @dfn{build hook}."
+msgstr "No usa el @dfn{hook de construcción}."
+
+#. type: table
+#: doc/guix.texi:1366
+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 "El hook de construcción es un programa auxiliar que el daemon puede lanzar y al cual envía las peticiones de construcción. Este mecanismo se utiliza para delegar construcciones a otras máquinas (@pxref{Daemon Offload Setup})."
+
+#. type: item
+#: doc/guix.texi:1367
+#, no-wrap
+msgid "--cache-failures"
+msgstr "--cache-failures"
+
+# FUZZY
+#. type: table
+#: doc/guix.texi:1369
+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:1374
+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:1375 doc/guix.texi:7750
+#, no-wrap
+msgid "--cores=@var{n}"
+msgstr "--cores=@var{n}"
+
+#. type: itemx
+#: doc/guix.texi:1376 doc/guix.texi:7751
+#, no-wrap
+msgid "-c @var{n}"
+msgstr "-c @var{n}"
+
+#. type: table
+#: doc/guix.texi:1379
+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:1383
+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})."
+
+#. type: table
+#: doc/guix.texi:1387
+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}."
+
+#. type: item
+#: doc/guix.texi:1388 doc/guix.texi:7755
+#, no-wrap
+msgid "--max-jobs=@var{n}"
+msgstr "--max-jobs=@var{n}"
+
+#. type: itemx
+#: doc/guix.texi:1389 doc/guix.texi:7756
+#, no-wrap
+msgid "-M @var{n}"
+msgstr "-M @var{n}"
+
+#. type: table
+#: doc/guix.texi:1394
+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:1395 doc/guix.texi:7726
+#, no-wrap
+msgid "--max-silent-time=@var{seconds}"
+msgstr "--max-silent-time=@var{segundos}"
+
+#. type: table
+#: doc/guix.texi:1398 doc/guix.texi:7729
+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:1400 doc/guix.texi:1409
+msgid "The default value is @code{0}, which disables the timeout."
+msgstr "El valor predeterminado es @code{0}, que deshabilita el plazo."
+
+#. type: table
+#: doc/guix.texi:1403
+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}})."
+
+#. type: item
+#: doc/guix.texi:1404 doc/guix.texi:7733
+#, no-wrap
+msgid "--timeout=@var{seconds}"
+msgstr "--timeout=@var{segundos}"
+
+#. type: table
+#: doc/guix.texi:1407 doc/guix.texi:7736
+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:1412
+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}})."
+
+#. type: item
+#: doc/guix.texi:1413
+#, no-wrap
+msgid "--rounds=@var{N}"
+msgstr "--rounds=@var{N}"
+
+#. type: table
+#: doc/guix.texi:1418
+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:1422 doc/guix.texi:8095
+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:1423
+#, no-wrap
+msgid "--debug"
+msgstr "--debug"
+
+#. type: table
+#: doc/guix.texi:1425
+msgid "Produce debugging output."
+msgstr "Produce salida de depuración."
+
+# FUZZY: overridden
+#. type: table
+#: doc/guix.texi:1429
+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})."
+
+#. type: item
+#: doc/guix.texi:1430
+#, no-wrap
+msgid "--chroot-directory=@var{dir}"
+msgstr "--chroot-directory=@var{dir}"
+
+# FUZZY: chroot!
+#. type: table
+#: doc/guix.texi:1432
+msgid "Add @var{dir} to the build chroot."
+msgstr "Añade @var{dir} al chroot de construcción."
+
+#. type: table
+#: doc/guix.texi:1438
+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, asegurese que cada derivación declara todas las entradas que necesita."
+
+#. type: item
+#: doc/guix.texi:1439
+#, no-wrap
+msgid "--disable-chroot"
+msgstr "--disable-chroot"
+
+# FUZZY
+#. type: table
+#: doc/guix.texi:1441
+msgid "Disable chroot builds."
+msgstr "Deshabilita las construcciones en un chroot."
+
+#. type: table
+#: doc/guix.texi:1446
+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:1447
+#, no-wrap
+msgid "--log-compression=@var{type}"
+msgstr "--log-compression=@var{tipo}"
+
+# FUZZY: Log
+#. type: table
+#: doc/guix.texi:1450
+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:1454
+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."
+
+#. type: item
+#: doc/guix.texi:1455
+#, no-wrap
+msgid "--disable-deduplication"
+msgstr "--disable-deduplication"
+
+#. type: cindex
+#: doc/guix.texi:1456 doc/guix.texi:3548
+#, no-wrap
+msgid "deduplication"
+msgstr "deduplicación"
+
+#. type: table
+#: doc/guix.texi:1458
+msgid "Disable automatic file ``deduplication'' in the store."
+msgstr "Deshabilita la ``deduplicación'' automática en el almacén."
+
+#. type: table
+#: doc/guix.texi:1465
+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 deshabilita esta optimización."
+
+#. type: item
+#: doc/guix.texi:1466
+#, no-wrap
+msgid "--gc-keep-outputs[=yes|no]"
+msgstr "--gc-keep-outputs[=yes|no]"
+
+#. type: table
+#: doc/guix.texi:1469
+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 vias."
+
+#. type: cindex
+#: doc/guix.texi:1470 doc/guix.texi:3365
+#, no-wrap
+msgid "GC roots"
+msgstr "GC, raíces del recolector de basura"
+
+#. type: cindex
+#: doc/guix.texi:1471 doc/guix.texi:3366
+#, no-wrap
+msgid "garbage collector roots"
+msgstr "raíces del recolector de basura"
+
+#. type: table
+#: doc/guix.texi:1476
+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 raices del recolector de basura."
+
+#. type: item
+#: doc/guix.texi:1477
+#, no-wrap
+msgid "--gc-keep-derivations[=yes|no]"
+msgstr "--gc-keep-derivations[=yes|no]"
+
+#. type: table
+#: doc/guix.texi:1480
+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:1485
+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."
+
+#. type: table
+#: doc/guix.texi:1493
+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."
+
+#. type: item
+#: doc/guix.texi:1494
+#, no-wrap
+msgid "--impersonate-linux-2.6"
+msgstr "--impersonate-linux-2.6"
+
+#. type: table
+#: doc/guix.texi:1497
+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."
+
+#. type: table
+#: doc/guix.texi:1500
+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:1501
+#, no-wrap
+msgid "--lose-logs"
+msgstr "--lose-logs"
+
+#. type: table
+#: doc/guix.texi:1504
+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}."
+
+#. type: item
+#: doc/guix.texi:1505 doc/guix.texi:3694 doc/guix.texi:4562 doc/guix.texi:4855
+#: doc/guix.texi:8039 doc/guix.texi:9317 doc/guix.texi:9516
+#: doc/guix.texi:10066 doc/guix.texi:23797 doc/guix.texi:24417
+#, no-wrap
+msgid "--system=@var{system}"
+msgstr "--system=@var{sistema}"
+
+#. type: table
+#: doc/guix.texi:1509
+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:1510 doc/guix.texi:7541
+#, no-wrap
+msgid "--listen=@var{endpoint}"
+msgstr "--listen=@var{destino}"
+
+#. type: table
+#: doc/guix.texi:1515
+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 "Escucha 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:"
+
+#. type: item
+#: doc/guix.texi:1517
+#, no-wrap
+msgid "--listen=/gnu/var/daemon"
+msgstr "--listen=/gnu/var/daemon"
+
+#. type: table
+#: doc/guix.texi:1520
+msgid "Listen for connections on the @file{/gnu/var/daemon} Unix-domain socket, creating it if needed."
+msgstr "Escucha por conexiones en el socket de dominio Unix @file{/gnu/var/daemon}, creandolo si es necesario."
+
+#. type: item
+#: doc/guix.texi:1521
+#, no-wrap
+msgid "--listen=localhost"
+msgstr "--listen=localhost"
+
+#. type: cindex
+#: doc/guix.texi:1522 doc/guix.texi:6322
+#, no-wrap
+msgid "daemon, remote access"
+msgstr "daemon, acceso remoto"
+
+#. type: cindex
+#: doc/guix.texi:1523 doc/guix.texi:6323
+#, no-wrap
+msgid "remote access to the daemon"
+msgstr "acceso remoto al daemon"
+
+# FUZZY
+#. type: cindex
+#: doc/guix.texi:1524 doc/guix.texi:6324
+#, no-wrap
+msgid "daemon, cluster setup"
+msgstr "daemon, configuración en cluster"
+
+# FUZZY
+#. type: cindex
+#: doc/guix.texi:1525 doc/guix.texi:6325
+#, no-wrap
+msgid "clusters, daemon setup"
+msgstr "daemon, configuración en cluster"
+
+#. type: table
+#: doc/guix.texi:1528
+msgid "Listen for TCP connections on the network interface corresponding to @code{localhost}, on port 44146."
+msgstr "Escucha conexiones TCP en la interfaz de red correspondiente a @code{localhost}, en el puerto 44146."
+
+#. type: item
+#: doc/guix.texi:1529
+#, no-wrap
+msgid "--listen=128.0.0.42:1234"
+msgstr "--listen=128.0.0.42:1234"
+
+#. type: table
+#: doc/guix.texi:1532
+msgid "Listen for TCP connections on the network interface corresponding to @code{128.0.0.42}, on port 1234."
+msgstr "Escucha conexiones TCP en la interfaz de red correspondiente a @code{128.0.0.42}, en el puerto 1234."
+
+#. type: table
+#: doc/guix.texi:1539
+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}})."
+
+#. type: quotation
+#: doc/guix.texi:1546
+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."
+
+#. type: table
+#: doc/guix.texi:1551
+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}."
+
+#. type: Plain text
+#: doc/guix.texi:1561
+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:1565
+msgid "locales-and-locpath"
+msgstr "locales-and-locpath"
+
+#. type: cindex
+#: doc/guix.texi:1565
+#, no-wrap
+msgid "locales, when not on Guix System"
+msgstr "localizaciones, cuando no se está en el sistema Guix"
+
+#. type: vindex
+#: doc/guix.texi:1566 doc/guix.texi:11265
+#, no-wrap
+msgid "LOCPATH"
+msgstr "LOCPATH"
+
+#. type: vindex
+#: doc/guix.texi:1567
+#, no-wrap
+msgid "GUIX_LOCPATH"
+msgstr "GUIX_LOCPATH"
+
+#. type: Plain text
+#: doc/guix.texi:1572
+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}:"
+
+#. type: example
+#: doc/guix.texi:1576
+#, no-wrap
+msgid ""
+"$ guix package -i glibc-locales\n"
+"$ export GUIX_LOCPATH=$HOME/.guix-profile/lib/locale\n"
+msgstr ""
+"$ guix package -i glibc-locales\n"
+"$ export GUIX_LOCPATH=$HOME/.guix-profile/lib/locale\n"
+
+#. type: Plain text
+#: doc/guix.texi:1582
+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 "Fíjese que el paquete @code{glibc-locales} contiene datos para todas las localizaciones que ofrece GNU@tie{}libc y pesa alrededor de 110@tie{}MiB. Alternativamente, @code{glibc-utf8-locales} es más pequeño pero limitado a localizaciones UTF-8."
+
+#. type: Plain text
+#: doc/guix.texi:1586
+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:"
+
+#. type: enumerate
+#: doc/guix.texi:1593
+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."
+
+#. type: enumerate
+#: doc/guix.texi:1600
+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."
+
+#. type: Plain text
+#: doc/guix.texi:1604
+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:1607
+#, 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:1608
+#, 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:1609
+#, 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:1610
+#, no-wrap
+msgid "name service caching daemon (nscd)"
+msgstr "daemon de caché del servicio de nombres (ncsd)"
+
+#. type: Plain text
+#: doc/guix.texi:1617
+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:1618
+#, no-wrap
+msgid "nsswitch.conf"
+msgstr "nsswitch.conf"
+
+#. type: Plain text
+#: doc/guix.texi:1623
+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:1624
+#, no-wrap
+msgid "Network information service (NIS)"
+msgstr "Servicio de información de red (NIS)"
+
+#. type: cindex
+#: doc/guix.texi:1625
+#, no-wrap
+msgid "NIS (Network information service)"
+msgstr "NIS (servicio de información de red)"
+
+#. type: Plain text
+#: doc/guix.texi:1634
+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:1644
+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)."
+
+# FUZZY
+#. type: Plain text
+#: doc/guix.texi:1649
+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:1654
+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."
+
+#. type: subsection
+#: doc/guix.texi:1655
+#, no-wrap
+msgid "X11 Fonts"
+msgstr "Tipografías X11"
+
+#. type: Plain text
+#: doc/guix.texi:1665
+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}."
+
+#. type: Plain text
+#: doc/guix.texi:1672
+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:1675
+#, no-wrap
+msgid "guix package -i font-adobe-source-han-sans:cn\n"
+msgstr "guix package -i font-adobe-source-han-sans:cn\n"
+
+#. type: code{#1}
+#: doc/guix.texi:1677
+#, no-wrap
+msgid "xterm"
+msgstr "xterm"
+
+#. type: Plain text
+#: doc/guix.texi:1681
+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:1684
+#, 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:1688
+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:1693
+#, 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:1695
+#, no-wrap
+msgid "xlsfonts"
+msgstr "xlsfonts"
+
+#. type: Plain text
+#: doc/guix.texi:1698
+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:1699
+#, no-wrap
+msgid "fc-cache"
+msgstr "fc-cache"
+
+# FUZZY
+#. type: cindex
+#: doc/guix.texi:1700
+#, no-wrap
+msgid "font cache"
+msgstr "caché de tipografías"
+
+#. type: Plain text
+#: doc/guix.texi:1706
+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 "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 -f}. La orden @code{fc-cache} es proporcionada por el paquete @code{fontconfig}."
+
+#. type: code{#1}
+#: doc/guix.texi:1709 doc/guix.texi:23536
+#, no-wrap
+msgid "nss-certs"
+msgstr "nss-certs"
+
+#. type: Plain text
+#: doc/guix.texi:1712
+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:1717
+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:1718
+#, no-wrap
+msgid "Emacs Packages"
+msgstr "Paquetes Emacs"
+
+#. type: code{#1}
+#: doc/guix.texi:1720
+#, no-wrap
+msgid "emacs"
+msgstr "emacs"
+
+#. type: Plain text
+#: doc/guix.texi:1731
+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})."
+
+#. type: Plain text
+#: doc/guix.texi:1737
+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 "Por defecto, Emacs (el instalado con Guix) ``sabe'' donde se alojan estos paquetes, para que usted no tenga que realizar ninguna configuración. 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:1738
+#, no-wrap
+msgid "The GCC toolchain"
+msgstr "La cadena de herramientas de GCC"
+
+#. type: cindex
+#: doc/guix.texi:1740
+#, no-wrap
+msgid "GCC"
+msgstr "GCC"
+
+#. type: cindex
+#: doc/guix.texi:1741
+#, no-wrap
+msgid "ld-wrapper"
+msgstr "ld-wrapper"
+
+#. type: Plain text
+#: doc/guix.texi:1750
+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."
+
+#. type: Plain text
+#: doc/guix.texi:1756
+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}."
+
+#. type: cindex
+#: doc/guix.texi:1763
+#, no-wrap
+msgid "installing Guix System"
+msgstr "instalación del sistema Guix"
+
+#. type: cindex
+#: doc/guix.texi:1764
+#, no-wrap
+msgid "Guix System, installation"
+msgstr "sistema Guix, instalación"
+
+#. type: Plain text
+#: doc/guix.texi:1769
+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:1778
+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:1781
+msgid "Alternately, 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:1802
+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:1805
+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:1809
+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:1813
+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:1818
+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:1823
+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
+#. type: cindex
+#: doc/guix.texi:1828
+#, no-wrap
+msgid "hardware support on Guix System"
+msgstr "soporte de hardware en el sistema Guix"
+
+#. type: Plain text
+#: doc/guix.texi:1837
+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."
+
+#. type: cindex
+#: doc/guix.texi:1838
+#, no-wrap
+msgid "WiFi, hardware support"
+msgstr "WiFi, soporte hardware"
+
+#. type: Plain text
+#: doc/guix.texi:1847
+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:1848
+#, no-wrap
+msgid "RYF, Respects Your Freedom"
+msgstr "RYF, Respeta Su Libertad"
+
+#. type: Plain text
+#: doc/guix.texi:1854
+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:1858
+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:1867
+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 "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{https://alpha.gnu.org/gnu/guix/guix-system-install-@value{VERSION}.@var{sistema}.iso.xz}, donde @var{sistema} es uno de los siguientes valores:"
+
+#. type: table
+#: doc/guix.texi:1871
+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:1874
+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:1879
+msgid "Make sure to download the associated @file{.sig} file and to verify the authenticity of the image against it, along these lines:"
+msgstr "Asegurese de descargar el fichero @file{.sig} asociado y de verificar la autenticidad de la imagen contra él, más o menos así:"
+
+#. type: example
+#: doc/guix.texi:1883
+#, no-wrap
+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{sistema}.iso.xz.sig\n"
+"$ gpg --verify guix-system-install-@value{VERSION}.@var{sistema}.iso.xz.sig\n"
+
+#. type: Plain text
+#: doc/guix.texi:1899
+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:1900
+#, no-wrap
+msgid "Copying to a USB Stick"
+msgstr "Copiado en una memoria USB"
+
+#. type: Plain text
+#: doc/guix.texi:1903
+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:1907 doc/guix.texi:1932
+msgid "Decompress the image using the @command{xz} command:"
+msgstr "Descomprima la imagen usando la orden @command{xz}:"
+
+#. type: example
+#: doc/guix.texi:1910 doc/guix.texi:1935
+#, 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"
+
+#. type: enumerate
+#: doc/guix.texi:1916
+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:1920
+#, no-wrap
+msgid ""
+"dd if=guix-system-install-@value{VERSION}.@var{system}.iso of=/dev/sdX\n"
+"sync\n"
+msgstr ""
+"dd if=guix-system-install-@value{VERSION}.@var{sistema}.iso of=/dev/sdX\n"
+"sync\n"
+
+#. type: enumerate
+#: doc/guix.texi:1923
+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:1925
+#, no-wrap
+msgid "Burning on a DVD"
+msgstr "Grabación en un DVD"
+
+#. type: Plain text
+#: doc/guix.texi:1928
+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:1941
+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 escribible en su máquina, y determine el nombre del dispositivo. Asumiendo que la unidad DVD es @file{/dev/srX}, copie la imagen con:"
+
+#. type: example
+#: doc/guix.texi:1944
+#, 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"
+
+#. type: enumerate
+#: doc/guix.texi:1947
+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:1949
+#, no-wrap
+msgid "Booting"
+msgstr "Arranque"
+
+#. type: Plain text
+#: doc/guix.texi:1954
+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 "Una vez hecho esto, debe ser capaz de reiniciar el sistema y arrancar desde la memoria USB o el DVD. Lo primero habitualmente requiere que introducirse en la BIOS o en el menú de arranque UEFI, donde se puede seleccionar el arranque desde la memoria USB."
+
+#. type: Plain text
+#: doc/guix.texi:1957
+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:1967
+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 "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:1975
+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."
+
+#. type: quotation
+#: doc/guix.texi:1980
+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:1987
+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:1992
+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:1994
+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:1999
+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."
+
+#. type: Plain text
+#: doc/guix.texi:2001
+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:2004
+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:2006
+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:2011
+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:2021
+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 puensa que no es para usted, considere el uso del instalador gráfico guiado (@pxref{Guided Graphical Installation})."
+
+#. type: Plain text
+#: doc/guix.texi:2027
+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})."
+
+#. type: subsection
+#: doc/guix.texi:2034
+#, no-wrap
+msgid "Keyboard Layout, Networking, and Partitioning"
+msgstr "Distribución de teclado, red y particionado"
+
+#. type: Plain text
+#: doc/guix.texi:2039
+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:2042 doc/guix.texi:11093
+#, no-wrap
+msgid "keyboard layout"
+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:2046
+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:2049
+#, no-wrap
+msgid "loadkeys dvorak\n"
+msgstr "loadkeys es\n"
+
+#. type: Plain text
+#: doc/guix.texi:2054
+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."
+
+#. type: subsubsection
+#: doc/guix.texi:2055
+#, no-wrap
+msgid "Networking"
+msgstr "Red"
+
+#. type: Plain text
+#: doc/guix.texi:2058
+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:2061
+#, no-wrap
+msgid "ifconfig -a\n"
+msgstr "ifconfig -a\n"
+
+#. type: Plain text
+#: doc/guix.texi:2065
+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:2068
+#, no-wrap
+msgid "ip a\n"
+msgstr "ip a\n"
+
+#. type: Plain text
+#: doc/guix.texi:2075
+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:2077
+#, no-wrap
+msgid "Wired connection"
+msgstr "Conexión por cable"
+
+#. type: table
+#: doc/guix.texi:2080
+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:2083
+#, no-wrap
+msgid "ifconfig @var{interface} up\n"
+msgstr "ifconfig @var{interfaz} up\n"
+
+#. type: item
+#: doc/guix.texi:2085
+#, no-wrap
+msgid "Wireless connection"
+msgstr "Conexión sin cable"
+
+#. type: cindex
+#: doc/guix.texi:2086 doc/guix.texi:12524
+#, no-wrap
+msgid "wireless"
+msgstr "sin cables"
+
+#. type: cindex
+#: doc/guix.texi:2087 doc/guix.texi:12525
+#, no-wrap
+msgid "WiFi"
+msgstr "WiFi"
+
+#. type: table
+#: doc/guix.texi:2092
+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}:"
+
+#. type: example
+#: doc/guix.texi:2095
+#, no-wrap
+msgid "nano wpa_supplicant.conf\n"
+msgstr "nano wpa_supplicant.conf\n"
+
+#. type: table
+#: doc/guix.texi:2100
+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:"
+
+#. type: example
+#: doc/guix.texi:2107
+#, no-wrap
+msgid ""
+"network=@{\n"
+"  ssid=\"@var{my-ssid}\"\n"
+"  key_mgmt=WPA-PSK\n"
+"  psk=\"the network's secret passphrase\"\n"
+"@}\n"
+msgstr ""
+"network=@{\n"
+"  ssid=\"@var{mi-ssid}\"\n"
+"  key_mgmt=WPA-PSK\n"
+"  psk=\"la contraseña de la red\"\n"
+"@}\n"
+
+#. type: table
+#: doc/guix.texi:2112
+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 ejecutelo 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:2115
+#, 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:2118
+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:2120
+#, no-wrap
+msgid "DHCP"
+msgstr "DHCP"
+
+#. type: Plain text
+#: doc/guix.texi:2123
+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:2126
+#, no-wrap
+msgid "dhclient -v @var{interface}\n"
+msgstr "dhclient -v @var{interfaz}\n"
+
+#. type: Plain text
+#: doc/guix.texi:2129
+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:2132
+#, no-wrap
+msgid "ping -c 3 gnu.org\n"
+msgstr "ping -c 3 gnu.org\n"
+
+#. type: Plain text
+#: doc/guix.texi:2136
+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:2137
+#, no-wrap
+msgid "installing over SSH"
+msgstr "instalación por SSH"
+
+#. type: Plain text
+#: doc/guix.texi:2140
+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:2143
+#, no-wrap
+msgid "herd start ssh-daemon\n"
+msgstr "herd start ssh-daemon\n"
+
+#. type: Plain text
+#: doc/guix.texi:2147
+msgid "Make sure to either set a password with @command{passwd}, or configure OpenSSH public key authentication before logging in."
+msgstr "Asegurese 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."
+
+#. type: subsubsection
+#: doc/guix.texi:2148
+#, no-wrap
+msgid "Disk Partitioning"
+msgstr "Particionado de discos"
+
+#. type: Plain text
+#: doc/guix.texi:2152
+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:2157
+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}. Ejecutelo y configure el mapa de particiones deseado en su disco:"
+
+#. type: example
+#: doc/guix.texi:2160
+#, no-wrap
+msgid "cfdisk\n"
+msgstr "cfdisk\n"
+
+#. type: Plain text
+#: doc/guix.texi:2166
+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), asegurese de tener una partición de arranque BIOS disponible (@pxref{BIOS installation,,, grub, GNU GRUB manual})."
+
+#. type: cindex
+#: doc/guix.texi:2167
+#, no-wrap
+msgid "EFI, installation"
+msgstr "EFI, instalación"
+
+#. type: cindex
+#: doc/guix.texi:2168
+#, no-wrap
+msgid "UEFI, installation"
+msgstr "UEFI, instalación"
+
+#. type: cindex
+#: doc/guix.texi:2169
+#, no-wrap
+msgid "ESP, EFI system partition"
+msgstr "ESP, partición del sistema EFI"
+
+#. type: Plain text
+#: doc/guix.texi:2173
+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:2176
+#, 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:2179 doc/guix.texi:23926
+#, no-wrap
+msgid "grub-bootloader"
+msgstr "grub-bootloader"
+
+#. type: vindex
+#: doc/guix.texi:2180 doc/guix.texi:23920
+#, no-wrap
+msgid "grub-efi-bootloader"
+msgstr "grub-efi-bootloader"
+
+#. type: quotation
+#: doc/guix.texi:2187
+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:2195
+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 "Una vez haya terminado con el particionado de la unidad de disco deseada, tiene que crear un sistema de ficheros en la o las particiónes relevantes@footnote{Actualmente el sistema Guix únicamente permite sistemas de ficheros ext4 y btrfs. En particular, el código que lee UUIDs del sistema de ficheros y etiquetas únicamente funciona para dichos sistemas de ficheros.}. Para la ESP, si tiene una y asumiendo que es @file{/dev/sda1}, ejecute:"
+
+#. type: example
+#: doc/guix.texi:2198
+#, no-wrap
+msgid "mkfs.fat -F32 /dev/sda1\n"
+msgstr "mkfs.fat -F32 /dev/sda1\n"
+
+#. type: Plain text
+#: doc/guix.texi:2206
+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:"
+
+#. type: example
+#: doc/guix.texi:2209
+#, 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:2211 doc/guix.texi:10355
+#, no-wrap
+msgid "encrypted disk"
+msgstr "disco cifrado"
+
+#. type: Plain text
+#: doc/guix.texi:2218
+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:2223
+#, no-wrap
+msgid ""
+"cryptsetup luksFormat /dev/sda2\n"
+"cryptsetup open --type luks /dev/sda2 my-partition\n"
+"mkfs.ext4 -L my-root /dev/mapper/my-partition\n"
+msgstr ""
+"cryptsetup luksFormat /dev/sda2\n"
+"cryptsetup open --type luks /dev/sda1 mi-particion\n"
+"mkfs.ext4 -L mi-raiz /dev/mapper/mi-particion\n"
+
+#. type: Plain text
+#: doc/guix.texi:2228
+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):"
+
+#. type: example
+#: doc/guix.texi:2231
+#, no-wrap
+msgid "mount LABEL=my-root /mnt\n"
+msgstr "mount LABEL=mi-raiz /mnt\n"
+
+#. type: Plain text
+#: doc/guix.texi:2237
+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."
+
+#. type: Plain text
+#: doc/guix.texi:2242
+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}), asegurese de inicializarla con @command{mkswap}. Asumiendo que tuviese una partición de intercambio en @file{/dev/sda3}, ejecutaría:"
+
+#. type: example
+#: doc/guix.texi:2246
+#, no-wrap
+msgid ""
+"mkswap /dev/sda3\n"
+"swapon /dev/sda3\n"
+msgstr ""
+"mkswap /dev/sda3\n"
+"swapon /dev/sda3\n"
+
+#. type: Plain text
+#: doc/guix.texi:2254
+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 diferir. Para obtener más detalles, véanse las páginas de manual para @command{mkswap} y @command{swapon}.}:"
+
+#. type: example
+#: doc/guix.texi:2262
+#, no-wrap
+msgid ""
+"# This is 10 GiB of swap space.  Adjust \"count\" to change the size.\n"
+"dd if=/dev/zero of=/mnt/swapfile bs=1MiB count=10240\n"
+"# For security, make the file readable and writable only by root.\n"
+"chmod 600 /mnt/swapfile\n"
+"mkswap /mnt/swapfile\n"
+"swapon /mnt/swapfile\n"
+msgstr ""
+"# Esto son 10GiB de espacio de intercambio. Ajuste \"count\" para\n"
+"# cambiar el tamaño.\n"
+"dd if=/dev/zero of=/mnt/swapfile bs=1MiB count=10240\n"
+"# Por seguridad, se mantiene el fichero únicamente legible y\n"
+"# escribible por root.\n"
+"chmod 600 /mnt/swapfile\n"
+"mkswap /mnt/swapfile\n"
+"swapon /mnt/swapfile\n"
+
+#. type: Plain text
+#: doc/guix.texi:2267
+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 "Fijese 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."
+
+#. type: Plain text
+#: doc/guix.texi:2273
+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:2276
+#, no-wrap
+msgid "herd start cow-store /mnt\n"
+msgstr "herd start cow-store /mnt\n"
+
+#. type: Plain text
+#: doc/guix.texi:2283
+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."
+
+#. type: Plain text
+#: doc/guix.texi:2294
+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."
+
+#. type: Plain text
+#: doc/guix.texi:2301
+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:"
+
+#. type: example
+#: doc/guix.texi:2306
+#, no-wrap
+msgid ""
+"# mkdir /mnt/etc\n"
+"# cp /etc/configuration/desktop.scm /mnt/etc/config.scm\n"
+"# nano /mnt/etc/config.scm\n"
+msgstr ""
+"# mkdir /mnt/etc\n"
+"# cp /etc/configuration/desktop.scm /mnt/etc/config.scm\n"
+"# nano /mnt/etc/config.scm\n"
+
+#. type: Plain text
+#: doc/guix.texi:2310
+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:"
+
+#. type: itemize
+#: doc/guix.texi:2321
+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 "Asegurese 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}; asegurese de que la ruta está actualmente montada y haya una entrada @code{file-system} especificada en su configuración."
+
+#. type: itemize
+#: doc/guix.texi:2327
+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 "Asegurese 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}."
+
+#. type: itemize
+#: doc/guix.texi:2331
+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, asegurese de añadir un campo @code{mapped-devices} para describirlas (@pxref{Mapped Devices})."
+
+#. type: Plain text
+#: doc/guix.texi:2336
+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}):"
+
+#. type: example
+#: doc/guix.texi:2339
+#, 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:2346
+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."
+
+#. type: Plain text
+#: doc/guix.texi:2354
+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:2361
+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:2365
+#, no-wrap
+msgid ""
+"guix pull\n"
+"sudo guix system reconfigure /etc/config.scm\n"
+msgstr ""
+"guix pull\n"
+"sudo guix system reconfigure /etc/config.scm\n"
+
+#. type: Plain text
+#: doc/guix.texi:2371
+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:2374
+#, no-wrap
+msgid "sudo vs. @command{guix pull}"
+msgstr "sudo y @command{guix pull}"
+
+#. type: quotation
+#: doc/guix.texi:2378
+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{}}."
+
+#. type: Plain text
+#: doc/guix.texi:2382
+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!"
+
+#. type: section
+#: doc/guix.texi:2385
+#, no-wrap
+msgid "Installing Guix in a Virtual Machine"
+msgstr "Instalación de Guix en una máquina virtual"
+
+#. type: cindex
+#: doc/guix.texi:2387
+#, no-wrap
+msgid "virtual machine, Guix System installation"
+msgstr "máquina virtual, instalación del sistema Guix"
+
+#. type: cindex
+#: doc/guix.texi:2388
+#, no-wrap
+msgid "virtual private server (VPS)"
+msgstr "servidor virtual privado (VPS)"
+
+#. type: cindex
+#: doc/guix.texi:2389
+#, no-wrap
+msgid "VPS (virtual private server)"
+msgstr "VPS (servidor virtual privado)"
+
+#. type: Plain text
+#: doc/guix.texi:2393
+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:2396
+msgid "To boot a @uref{http://qemu.org/,QEMU} VM for installing Guix System in a disk image, follow these steps:"
+msgstr "Si quiere arrancar una VM @uref{http://qemu.org/,QEMU} para instalar el sistema Guix en una imagen de disco, siga estos pasos:"
+
+#. type: enumerate
+#: doc/guix.texi:2401
+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:2405
+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:2408
+#, no-wrap
+msgid "qemu-img create -f qcow2 guixsd.img 50G\n"
+msgstr "qemu-img create -f qcow2 guixsd.img 50G\n"
+
+#. type: enumerate
+#: doc/guix.texi:2412
+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."
+
+#. type: enumerate
+#: doc/guix.texi:2415
+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:2421
+#, 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"
+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{sistema}.iso \\\n"
+"  -drive file=guixsd.img\n"
+
+#. type: enumerate
+#: doc/guix.texi:2424
+msgid "The ordering of the drives matters."
+msgstr "El orden de las unidades importa."
+
+#. type: enumerate
+#: doc/guix.texi:2428
+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 "En la consola de la VM, pulse rápidamente la tecla @kbd{F12} para entrar al menú de arranque. Pulse la tecla @kbd{2} y la tecla @kbd{RET} para confirmar su selección."
+
+#. type: enumerate
+#: doc/guix.texi:2432
+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:2437
+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 "Una vez complete la instalación, puede arrancar el sistema que está en la imagen @file{guixsd.img}. @xref{Running Guix in a VM}, para información sobre cómo hacerlo."
+
+#. type: cindex
+#: doc/guix.texi:2441
+#, no-wrap
+msgid "installation image"
+msgstr "imagen de instalación"
+
+#. type: Plain text
+#: doc/guix.texi:2444
+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:2448
+#, 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"
+
+#. type: Plain text
+#: doc/guix.texi:2453
+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:2454
+#, 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:2458
+msgid "Many ARM boards require a specific variant of the @uref{http://www.denx.de/wiki/U-Boot/, U-Boot} bootloader."
+msgstr "Muchas placas ARM necesitan una variante específica del cargador de arranque @uref{http://www.denx.de/wiki/U-Boot/, U-Boot}."
+
+#. type: Plain text
+#: doc/guix.texi:2462
+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:2465
+#, 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:2469
+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."
+
+#. type: cindex
+#: doc/guix.texi:2474
+#, no-wrap
+msgid "packages"
+msgstr "paquetes"
+
+#. type: Plain text
+#: doc/guix.texi:2479
+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:2487
+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:2490
+#, no-wrap
+msgid "guix package -i emacs-guix\n"
+msgstr "guix package -i emacs-guix\n"
+
+#. type: Plain text
+#: doc/guix.texi:2511
+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:2516
+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:2524
+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:2528
+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:2529 doc/guix.texi:2607
+#, no-wrap
+msgid "transactions"
+msgstr "transacciones"
+
+#. type: Plain text
+#: doc/guix.texi:2536
+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:2544
+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:2551
+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 qué paquetes están siendo todavía referenciados por los perfiles de usuarias, y eliminar aquellos que, de forma demostrable, no están referenciados (@pxref{Invoking guix gc}). Las usuarias pueden también borrar explícitamente generaciones antiguas de su perfil para que los paquetes referenciados en ellas puedan ser recolectadas."
+
+#. type: cindex
+#: doc/guix.texi:2552 doc/guix.texi:4059
+#, no-wrap
+msgid "reproducibility"
+msgstr "reproducibilidad"
+
+#. type: Plain text
+#: doc/guix.texi:2564
+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})."
+
+#. type: Plain text
+#: doc/guix.texi:2575
+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:2581
+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:2582
+#, no-wrap
+msgid "replication, of software environments"
+msgstr "replicación, de entornos de software"
+
+#. type: cindex
+#: doc/guix.texi:2583
+#, no-wrap
+msgid "provenance tracking, of software artifacts"
+msgstr "seguimiento de procedencia, de artefactos de software"
+
+#. type: Plain text
+#: doc/guix.texi:2590
+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:2592
+#, no-wrap
+msgid "Invoking @command{guix package}"
+msgstr "Invocación de @command{guix package}"
+
+#. type: cindex
+#: doc/guix.texi:2594
+#, no-wrap
+msgid "installing packages"
+msgstr "instalar paquetes"
+
+#. type: cindex
+#: doc/guix.texi:2595
+#, no-wrap
+msgid "removing packages"
+msgstr "borrar paquetes"
+
+#. type: cindex
+#: doc/guix.texi:2596
+#, no-wrap
+msgid "package installation"
+msgstr "instalación de paquetes"
+
+#. type: cindex
+#: doc/guix.texi:2597
+#, no-wrap
+msgid "package removal"
+msgstr "borrado de paquetes"
+
+#. type: Plain text
+#: doc/guix.texi:2603
+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:2606
+#, no-wrap
+msgid "guix package @var{options}\n"
+msgstr "guix package @var{opciones}\n"
+
+#. type: Plain text
+#: doc/guix.texi:2612
+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:2615
+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:2618
+#, no-wrap
+msgid "guix package -r lua -i guile guile-cairo\n"
+msgstr "guix package -r lua -i guile guile-cairo\n"
+
+#. type: Plain text
+#: doc/guix.texi:2624
+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:2625
+#, no-wrap
+msgid "profile"
+msgstr "perfil"
+
+# TODO (MAAV): De nuevo "and so on".
+#. type: Plain text
+#: doc/guix.texi:2631
+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."
+
+#. type: cindex
+#: doc/guix.texi:2631 doc/guix.texi:2828
+#, no-wrap
+msgid "search paths"
+msgstr "rutas de búsqueda"
+
+#. type: Plain text
+#: doc/guix.texi:2636
+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 "Si no está usando la Distribución de Sistema Guix, considere añadir las siguientes líneas a su @file{~/.bash_profile} (@pxref{Bash Startup Files,,, bash, The GNU Bash Reference Manual}) de modo que los shell lanzados a partir de entonces obtengan todas las definiciones de variables de entorno correctas:"
+
+#. type: example
+#: doc/guix.texi:2640
+#, no-wrap
+msgid ""
+"GUIX_PROFILE=\"$HOME/.guix-profile\" ; \\\n"
+"source \"$HOME/.guix-profile/etc/profile\"\n"
+msgstr ""
+"GUIX_PROFILE=\"$HOME/.guix-profile\" ; \\\n"
+"source \"$HOME/.guix-profile/etc/profile\"\n"
+
+#. type: Plain text
+#: doc/guix.texi:2651
+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}."
+
+#. type: Plain text
+#: doc/guix.texi:2653
+msgid "The @var{options} can be among the following:"
+msgstr "Las @var{opciones} pueden ser las siguientes:"
+
+#. type: item
+#: doc/guix.texi:2656
+#, no-wrap
+msgid "--install=@var{package} @dots{}"
+msgstr "--install=@var{paquete} @dots{}"
+
+#. type: itemx
+#: doc/guix.texi:2657
+#, no-wrap
+msgid "-i @var{package} @dots{}"
+msgstr "-i @var{paquete} @dots{}"
+
+#. type: table
+#: doc/guix.texi:2659
+msgid "Install the specified @var{package}s."
+msgstr "Instala los @var{paquete}s especificados."
+
+#. type: table
+#: doc/guix.texi:2664
+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:2672
+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:2673
+#, no-wrap
+msgid "propagated inputs"
+msgstr "entradas propagadas"
+
+# TODO: ¡Comprobar traducción del enlace!
+#. type: table
+#: doc/guix.texi:2679
+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:2686
+msgid "package-cmd-propagated-inputs"
+msgstr "package-cmd-propagated-inputs"
+
+#. type: table
+#: doc/guix.texi:2686
+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."
+
+# FUZZY
+#. type: table
+#: doc/guix.texi:2691
+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í."
+
+#. type: item
+#: doc/guix.texi:2692
+#, no-wrap
+msgid "--install-from-expression=@var{exp}"
+msgstr "--install-from-expression=@var{exp}"
+
+#. type: itemx
+#: doc/guix.texi:2693
+#, no-wrap
+msgid "-e @var{exp}"
+msgstr "-e @var{exp}"
+
+#. type: table
+#: doc/guix.texi:2695
+msgid "Install the package @var{exp} evaluates to."
+msgstr "Instala el paquete al que @var{exp} evalúa."
+
+#. type: table
+#: doc/guix.texi:2700
+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 evalue a un objeto @code{<package>}. Esta opción es notablemente útil para desambiguar entre variantes con el mismo nombre que un paquete, con expresiones como @code{(@@ (gnu packages base) guile-final)}."
+
+#. type: table
+#: doc/guix.texi:2704
+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:2705
+#, no-wrap
+msgid "--install-from-file=@var{file}"
+msgstr "--install-from-file=@var{fichero}"
+
+#. type: itemx
+#: doc/guix.texi:2706 doc/guix.texi:7956
+#, no-wrap
+msgid "-f @var{file}"
+msgstr "-f @var{fichero}"
+
+#. type: table
+#: doc/guix.texi:2708
+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}."
+
+#. type: table
+#: doc/guix.texi:2711 doc/guix.texi:4496
+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}):"
+
+#. type: example
+#: doc/guix.texi:2714 doc/guix.texi:7965
+#, no-wrap
+msgid "@verbatiminclude package-hello.scm\n"
+msgstr "@verbatiminclude package-hello.scm\n"
+
+#. type: table
+#: doc/guix.texi:2720
+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})."
+
+#. type: item
+#: doc/guix.texi:2721
+#, no-wrap
+msgid "--remove=@var{package} @dots{}"
+msgstr "--remove=@var{paquete} @dots{}"
+
+#. type: itemx
+#: doc/guix.texi:2722
+#, no-wrap
+msgid "-r @var{package} @dots{}"
+msgstr "-r @var{paquete} @dots{}"
+
+#. type: table
+#: doc/guix.texi:2724
+msgid "Remove the specified @var{package}s."
+msgstr "Borra los @var{paquete}s especificados."
+
+#. type: table
+#: doc/guix.texi:2729
+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}."
+
+#. type: item
+#: doc/guix.texi:2730
+#, no-wrap
+msgid "--upgrade[=@var{regexp} @dots{}]"
+msgstr "--upgrade[=@var{regexp} @dots{}]"
+
+#. type: itemx
+#: doc/guix.texi:2731
+#, no-wrap
+msgid "-u [@var{regexp} @dots{}]"
+msgstr "-u [@var{regexp} @dots{}]"
+
+#. type: cindex
+#: doc/guix.texi:2732
+#, no-wrap
+msgid "upgrading packages"
+msgstr "actualizar paquetes"
+
+#. type: table
+#: doc/guix.texi:2736
+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."
+
+#. type: table
+#: doc/guix.texi:2741
+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: item
+#: doc/guix.texi:2742
+#, no-wrap
+msgid "--do-not-upgrade[=@var{regexp} @dots{}]"
+msgstr "--do-not-upgrade[=@var{regexp} @dots{}]"
+
+#. type: table
+#: doc/guix.texi:2747
+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'':"
+
+#. type: example
+#: doc/guix.texi:2750
+#, 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:2752
+#, no-wrap
+msgid "profile-manifest"
+msgstr "profile-manifest"
+
+#. type: item
+#: doc/guix.texi:2752 doc/guix.texi:4501 doc/guix.texi:4842 doc/guix.texi:8889
+#: doc/guix.texi:10072
+#, no-wrap
+msgid "--manifest=@var{file}"
+msgstr "--manifest=@var{fichero}"
+
+#. type: itemx
+#: doc/guix.texi:2753 doc/guix.texi:4502 doc/guix.texi:4843 doc/guix.texi:8890
+#, no-wrap
+msgid "-m @var{file}"
+msgstr "-m @var{fichero}"
+
+#. type: cindex
+#: doc/guix.texi:2754
+#, no-wrap
+msgid "profile declaration"
+msgstr "declaración del perfil"
+
+# FUZZY
+#. type: cindex
+#: doc/guix.texi:2755
+#, no-wrap
+msgid "profile manifest"
+msgstr "manifiesto del perfil"
+
+#. type: table
+#: doc/guix.texi:2758
+msgid "Create a new generation of the profile from the manifest object returned by the Scheme code in @var{file}."
+msgstr "Crea una nueva generación del perfil desde el objeto de manifiesto devuelto por el código Scheme en @var{fichero}."
+
+# TODO (MAAV): And so on.
+#. type: table
+#: doc/guix.texi:2764
+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."
+
+#. type: table
+#: doc/guix.texi:2768
+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:"
+
+#. type: findex
+#: doc/guix.texi:2769
+#, no-wrap
+msgid "packages->manifest"
+msgstr "packages->manifest"
+
+#. type: example
+#: doc/guix.texi:2772
+#, no-wrap
+msgid ""
+"(use-package-modules guile emacs)\n"
+"\n"
+msgstr ""
+"(use-package-modules guile emacs)\n"
+"\n"
+
+#. type: example
+#: doc/guix.texi:2778
+#, no-wrap
+msgid ""
+"(packages->manifest\n"
+" (list emacs\n"
+"       guile-2.0\n"
+"       ;; Use a specific package output.\n"
+"       (list guile-2.0 \"debug\")))\n"
+msgstr ""
+"(packages->manifest\n"
+" (list emacs\n"
+"       guile-2.0\n"
+"       ;; Usa una salida específica del paquete.\n"
+"       (list guile-2.0 \"debug\")))\n"
+
+#. type: findex
+#: doc/guix.texi:2780
+#, no-wrap
+msgid "specifications->manifest"
+msgstr "specifications->manifest"
+
+#. type: table
+#: doc/guix.texi:2787
+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: example
+#: doc/guix.texi:2791
+#, no-wrap
+msgid ""
+"(specifications->manifest\n"
+" '(\"emacs\" \"guile@@2.2\" \"guile@@2.2:debug\"))\n"
+msgstr ""
+"(specifications->manifest\n"
+" '(\"emacs\" \"guile@@2.2\" \"guile@@2.2:debug\"))\n"
+
+#. type: item
+#: doc/guix.texi:2793
+#, no-wrap
+msgid "--roll-back"
+msgstr "--roll-back"
+
+#. type: cindex
+#: doc/guix.texi:2794 doc/guix.texi:24216
+#, no-wrap
+msgid "rolling back"
+msgstr "vuelta atrás"
+
+#. type: cindex
+#: doc/guix.texi:2795
+#, no-wrap
+msgid "undoing transactions"
+msgstr "deshacer transacciones"
+
+#. type: cindex
+#: doc/guix.texi:2796
+#, no-wrap
+msgid "transactions, undoing"
+msgstr "transacciones, deshaciendo"
+
+#. type: table
+#: doc/guix.texi:2799
+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."
+
+#. type: table
+#: doc/guix.texi:2802
+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."
+
+#. type: table
+#: doc/guix.texi:2806
+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."
+
+#. type: table
+#: doc/guix.texi:2810
+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:2811
+#, no-wrap
+msgid "--switch-generation=@var{pattern}"
+msgstr "--switch-generation=@var{patrón}"
+
+#. type: itemx
+#: doc/guix.texi:2812
+#, no-wrap
+msgid "-S @var{pattern}"
+msgstr "-S @var{patrón}"
+
+#. type: cindex
+#: doc/guix.texi:2813 doc/guix.texi:3008 doc/guix.texi:24174
+#, no-wrap
+msgid "generations"
+msgstr "generaciones"
+
+#. type: table
+#: doc/guix.texi:2815
+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:2821
+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}."
+
+#. type: table
+#: doc/guix.texi:2826
+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."
+
+#. type: item
+#: doc/guix.texi:2827
+#, no-wrap
+msgid "--search-paths[=@var{kind}]"
+msgstr "--search-paths[=@var{tipo}]"
+
+#. type: table
+#: doc/guix.texi:2833
+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."
+
+#. type: table
+#: doc/guix.texi:2841
+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."
+
+#. type: table
+#: doc/guix.texi:2844
+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:"
+
+#. type: example
+#: doc/guix.texi:2847
+#, no-wrap
+msgid "$ eval `guix package --search-paths`\n"
+msgstr "$ eval `guix package --search-paths`\n"
+
+#. type: table
+#: doc/guix.texi:2853
+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:2856
+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:2861
+#, no-wrap
+msgid ""
+"$ guix package -p foo -i guile\n"
+"$ guix package -p bar -i guile-json\n"
+"$ guix package -p foo -p bar --search-paths\n"
+msgstr ""
+"$ guix package -p foo -i guile\n"
+"$ guix package -p bar -i guile-json\n"
+"$ guix package -p foo -p bar --search-paths\n"
+
+#. type: table
+#: doc/guix.texi:2866
+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."
+
+#. type: item
+#: doc/guix.texi:2868 doc/guix.texi:3685 doc/guix.texi:4132
+#, no-wrap
+msgid "--profile=@var{profile}"
+msgstr "--profile=@var{perfil}"
+
+#. type: itemx
+#: doc/guix.texi:2869 doc/guix.texi:3686 doc/guix.texi:4133
+#, no-wrap
+msgid "-p @var{profile}"
+msgstr "-p @var{perfil}"
+
+#. type: table
+#: doc/guix.texi:2871
+msgid "Use @var{profile} instead of the user's default profile."
+msgstr "Usa @var{perfil} en vez del perfil predeterminado de la usuaria."
+
+#. type: cindex
+#: doc/guix.texi:2872
+#, no-wrap
+msgid "collisions, in a profile"
+msgstr "colisiones, en un perfil"
+
+#. type: cindex
+#: doc/guix.texi:2873
+#, no-wrap
+msgid "colliding packages in profiles"
+msgstr "paquetes con colisiones en perfiles"
+
+#. type: cindex
+#: doc/guix.texi:2874
+#, no-wrap
+msgid "profile collisions"
+msgstr "colisiones del perfil"
+
+#. type: item
+#: doc/guix.texi:2875
+#, no-wrap
+msgid "--allow-collisions"
+msgstr "--allow-collisions"
+
+#. type: table
+#: doc/guix.texi:2877
+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:2881
+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:2882 doc/guix.texi:3702 doc/guix.texi:4916
+#, no-wrap
+msgid "--bootstrap"
+msgstr "--bootstrap"
+
+#. type: table
+#: doc/guix.texi:2885
+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:2891
+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:2894
+#, no-wrap
+msgid "--search=@var{regexp}"
+msgstr "--search=@var{regexp}"
+
+#. type: itemx
+#: doc/guix.texi:2895
+#, no-wrap
+msgid "-s @var{regexp}"
+msgstr "-s @var{regexp}"
+
+#. type: cindex
+#: doc/guix.texi:2896
+#, no-wrap
+msgid "searching for packages"
+msgstr "buscar paquetes"
+
+#. type: table
+#: doc/guix.texi:2902
+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:2905
+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:2911
+#, no-wrap
+msgid ""
+"$ guix package -s malloc | recsel -p name,version,relevance\n"
+"name: jemalloc\n"
+"version: 4.5.0\n"
+"relevance: 6\n"
+"\n"
+msgstr ""
+"$ guix package -s malloc | recsel -p name,version,relevance\n"
+"name: jemalloc\n"
+"version: 4.5.0\n"
+"relevance: 6\n"
+"\n"
+
+#. type: example
+#: doc/guix.texi:2915
+#, no-wrap
+msgid ""
+"name: glibc\n"
+"version: 2.25\n"
+"relevance: 1\n"
+"\n"
+msgstr ""
+"name: glibc\n"
+"version: 2.25\n"
+"relevance: 1\n"
+"\n"
+
+#. type: example
+#: doc/guix.texi:2919
+#, no-wrap
+msgid ""
+"name: libgc\n"
+"version: 7.6.0\n"
+"relevance: 1\n"
+msgstr ""
+"name: libgc\n"
+"version: 7.6.0\n"
+"relevance: 1\n"
+
+#. type: table
+#: doc/guix.texi:2923
+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:2927
+#, no-wrap
+msgid ""
+"$ guix package -s \"\" | recsel -p name -e 'license ~ \"LGPL 3\"'\n"
+"name: elfutils\n"
+"\n"
+msgstr ""
+"$ guix package -s \"\" | recsel -p name -e 'license ~ \"LGPL 3\"'\n"
+"name: elfutils\n"
+"\n"
+
+#. type: example
+#: doc/guix.texi:2930
+#, no-wrap
+msgid ""
+"name: gmp\n"
+"@dots{}\n"
+msgstr ""
+"name: gmp\n"
+"@dots{}\n"
+
+# TODO: Revisar cuando guix-packages se traduzca...
+#. type: table
+#: doc/guix.texi:2935
+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 "Es también posible refinar los resultados de búsqueda usando varias opciones @code{-s}. Por ejemplo, la siguiente orden devuelve un lista de juegos de mesa (board en inglés):"
+
+# TODO: Revisar cuando guix-packages se traduzca...
+#. type: example
+#: doc/guix.texi:2940
+#, no-wrap
+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"
+
+# TODO: Revisar cuando guix-packages se traduzca...
+#. type: table
+#: doc/guix.texi:2946
+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:2950
+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:2954
+#, no-wrap
+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"
+
+#. type: table
+#: doc/guix.texi:2959
+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:2960
+#, no-wrap
+msgid "--show=@var{package}"
+msgstr "--show=@var{paquete}"
+
+#. type: table
+#: doc/guix.texi:2964
+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:2969
+#, no-wrap
+msgid ""
+"$ guix package --show=python | recsel -p name,version\n"
+"name: python\n"
+"version: 2.7.6\n"
+"\n"
+msgstr ""
+"$ guix package --show=python | recsel -p name,version\n"
+"name: python\n"
+"version: 2.7.6\n"
+"\n"
+
+#. type: example
+#: doc/guix.texi:2972
+#, no-wrap
+msgid ""
+"name: python\n"
+"version: 3.3.5\n"
+msgstr ""
+"name: python\n"
+"version: 3.3.5\n"
+
+#. type: table
+#: doc/guix.texi:2976
+msgid "You may also specify the full name of a package to only get details about a specific version of it:"
+msgstr "Tambien puede especificar el nombre completo de un paquete para únicamente obtener detalles sobre una versión específica:"
+
+#. type: example
+#: doc/guix.texi:2980
+#, no-wrap
+msgid ""
+"$ guix package --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"
+
+#. type: item
+#: doc/guix.texi:2984
+#, no-wrap
+msgid "--list-installed[=@var{regexp}]"
+msgstr "--list-installed[=@var{regexp}]"
+
+#. type: itemx
+#: doc/guix.texi:2985
+#, no-wrap
+msgid "-I [@var{regexp}]"
+msgstr "-I [@var{regexp}]"
+
+#. type: table
+#: doc/guix.texi:2989
+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:2995
+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:2996
+#, no-wrap
+msgid "--list-available[=@var{regexp}]"
+msgstr "--list-available[=@var{regexp}]"
+
+#. type: itemx
+#: doc/guix.texi:2997
+#, no-wrap
+msgid "-A [@var{regexp}]"
+msgstr "-A [@var{regexp}]"
+
+#. type: table
+#: doc/guix.texi:3001
+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 "Enumera los paquetes disponibles actualmente en la distribución para este sistema (@pxref{GNU Distribution}). Cuando se especifica @var{regexp}, enumera únicamente paquetes instalados cuyo nombre coincide con @var{regexp}."
+
+#. type: table
+#: doc/guix.texi:3005
+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:3006 doc/guix.texi:3675
+#, no-wrap
+msgid "--list-generations[=@var{pattern}]"
+msgstr "--list-generations[=@var{patrón}]"
+
+#. type: itemx
+#: doc/guix.texi:3007 doc/guix.texi:3676
+#, no-wrap
+msgid "-l [@var{pattern}]"
+msgstr "-l [@var{patrón}]"
+
+#. type: table
+#: doc/guix.texi:3013
+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:3018
+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:3021
+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. Patrones válidos incluyen:"
+
+#. type: item
+#: doc/guix.texi:3023
+#, 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:3026
+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."
+
+#. type: itemize
+#: doc/guix.texi:3029
+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."
+
+#. type: item
+#: doc/guix.texi:3030
+#, no-wrap
+msgid "@emph{Ranges}.  @code{--list-generations=2..9} prints the"
+msgstr "@emph{Rangos}.  @code{--list-generations=2..9} imprime"
+
+#. type: itemize
+#: doc/guix.texi:3033
+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:3037
+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."
+
+#. type: item
+#: doc/guix.texi:3038
+#, 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:3042
+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."
+
+#. type: item
+#: doc/guix.texi:3044
+#, no-wrap
+msgid "--delete-generations[=@var{pattern}]"
+msgstr "--delete-generations[=@var{patrón}]"
+
+#. type: itemx
+#: doc/guix.texi:3045
+#, no-wrap
+msgid "-d [@var{pattern}]"
+msgstr "-d [@var{patrón}]"
+
+#. type: table
+#: doc/guix.texi:3048
+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:3054
+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."
+
+#. type: table
+#: doc/guix.texi:3057
+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:3060
+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."
+
+#. type: Plain text
+#: doc/guix.texi:3071
+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})."
+
+#. type: cindex
+#: doc/guix.texi:3076
+#, no-wrap
+msgid "pre-built binaries"
+msgstr "binarios pre-construidos"
+
+#. type: Plain text
+#: doc/guix.texi:3082
+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:3087
+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:3100
+#, no-wrap
+msgid "hydra"
+msgstr "hydra"
+
+#. type: cindex
+#: doc/guix.texi:3101
+#, no-wrap
+msgid "build farm"
+msgstr "granja de construcción"
+
+# FUZZY: overridden
+# TODO: cliente
+#. type: Plain text
+#: doc/guix.texi:3111
+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:3117
+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:3126
+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 "Las sustituciones de la granja de construcción oficial están habilitadas por defecto cuando se usa la Distribución de sistema Guix (@pxref{GNU Distribution}). No obstante, están deshabilitadas por defecto cuando se usa Guix en una distribución anfitriona, a menos que las haya habilitado explícitamente via uno de los pasos recomendados de instalación (@pxref{Installation}). Los siguientes párrafos describen como habilitar o deshabilitar sustituciones para la granja oficial de construcción; el mismo procedimiento puede usarse para habilitar sustituciones de cualquier otro servidor que las proporcione."
+
+#. type: cindex
+#: doc/guix.texi:3130
+#, no-wrap
+msgid "security"
+msgstr "seguridad"
+
+#. type: cindex
+#: doc/guix.texi:3132
+#, no-wrap
+msgid "access control list (ACL), for substitutes"
+msgstr "listas de control de acceso (ACL), para sustituciones"
+
+#. type: cindex
+#: doc/guix.texi:3133
+#, no-wrap
+msgid "ACL (access control list), for substitutes"
+msgstr "ACL (listas de control de acceso), para sustituciones"
+
+#. type: Plain text
+#: doc/guix.texi:3140
+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: Plain text
+#: doc/guix.texi:3147
+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í:"
+
+#. type: example
+#: doc/guix.texi:3150
+#, 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: quotation
+#: doc/guix.texi:3156
+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}."
+
+#. type: Plain text
+#: doc/guix.texi:3160
+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:3169
+#, no-wrap
+msgid ""
+"$ guix build emacs --dry-run\n"
+"The following derivations would be built:\n"
+"   /gnu/store/yr7bnx8xwcayd6j95r2clmkdl1qh688w-emacs-24.3.drv\n"
+"   /gnu/store/x8qsh1hlhgjx6cwsjyvybnfv2i37z23w-dbus-1.6.4.tar.gz.drv\n"
+"   /gnu/store/1ixwp12fl950d15h2cj11c73733jay0z-alsa-lib-1.0.27.1.tar.bz2.drv\n"
+"   /gnu/store/nlma1pw0p603fpfiqy7kn4zm105r5dmw-util-linux-2.21.drv\n"
+"@dots{}\n"
+msgstr ""
+"$ guix build emacs --dry-run\n"
+"The following derivations would be built:\n"
+"   /gnu/store/yr7bnx8xwcayd6j95r2clmkdl1qh688w-emacs-24.3.drv\n"
+"   /gnu/store/x8qsh1hlhgjx6cwsjyvybnfv2i37z23w-dbus-1.6.4.tar.gz.drv\n"
+"   /gnu/store/1ixwp12fl950d15h2cj11c73733jay0z-alsa-lib-1.0.27.1.tar.bz2.drv\n"
+"   /gnu/store/nlma1pw0p603fpfiqy7kn4zm105r5dmw-util-linux-2.21.drv\n"
+"@dots{}\n"
+
+#. type: Plain text
+#: doc/guix.texi:3173
+msgid "to something like:"
+msgstr "a algo así:"
+
+#. type: example
+#: doc/guix.texi:3182
+#, no-wrap
+msgid ""
+"$ guix build emacs --dry-run\n"
+"112.3 MB would be downloaded:\n"
+"   /gnu/store/pk3n22lbq6ydamyymqkkz7i69wiwjiwi-emacs-24.3\n"
+"   /gnu/store/2ygn4ncnhrpr61rssa6z0d9x22si0va3-libjpeg-8d\n"
+"   /gnu/store/71yz6lgx4dazma9dwn2mcjxaah9w77jq-cairo-1.12.16\n"
+"   /gnu/store/7zdhgp0n1518lvfn8mb96sxqfmvqrl7v-libxrender-0.9.7\n"
+"@dots{}\n"
+msgstr ""
+"$ guix build emacs --dry-run\n"
+"112.3 MB would be downloaded:\n"
+"   /gnu/store/pk3n22lbq6ydamyymqkkz7i69wiwjiwi-emacs-24.3\n"
+"   /gnu/store/2ygn4ncnhrpr61rssa6z0d9x22si0va3-libjpeg-8d\n"
+"   /gnu/store/71yz6lgx4dazma9dwn2mcjxaah9w77jq-cairo-1.12.16\n"
+"   /gnu/store/7zdhgp0n1518lvfn8mb96sxqfmvqrl7v-libxrender-0.9.7\n"
+"@dots{}\n"
+
+#. type: Plain text
+#: doc/guix.texi:3187
+msgid "This indicates that substitutes from @code{@value{SUBSTITUTE-SERVER}} are usable and will be downloaded, when possible, for future builds."
+msgstr "Esto indica que las sustituciones de @code{@value{SUBSTITUTE-SERVER}} son usables y serán descargadas, cuando sea posible, para construcciones futuras."
+
+#. type: cindex
+#: doc/guix.texi:3188
+#, no-wrap
+msgid "substitutes, how to disable"
+msgstr "sustituciones, cómo deshabilitarlas"
+
+#. type: Plain text
+#: doc/guix.texi:3194
+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 deshabilitado globalmente ejecutando @code{guix-daemon} con @code{--no-subsitutes} (@pxref{Invoking guix-daemon}). También puede ser deshabilitado temporalmente pasando la opción @code{--no-substitutes} a @command{guix package}, @command{guix build} y otras herramientas de línea de órdenes."
+
+#. type: cindex
+#: doc/guix.texi:3198
+#, no-wrap
+msgid "digital signatures"
+msgstr "firmas digitales"
+
+#. type: Plain text
+#: doc/guix.texi:3202
+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:3208
+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:3211
+#, 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:3222
+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)."
+
+#. type: Plain text
+#: doc/guix.texi:3229
+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:3241
+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}."
+
+#. type: Plain text
+#: doc/guix.texi:3250
+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:3264
+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 deshabilitadas 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}."
+
+#. type: Plain text
+#: doc/guix.texi:3269
+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:3273
+#, no-wrap
+msgid "trust, of pre-built binaries"
+msgstr "confianza, de binarios pre-construidos"
+
+#. type: Plain text
+#: doc/guix.texi:3283
+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:3295
+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 reconstruyendolas localmente (@pxref{build-check, @command{guix build --check}})."
+
+#. type: Plain text
+#: doc/guix.texi:3299
+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:3303
+#, no-wrap
+msgid "multiple-output packages"
+msgstr "paquetes de salida múltiple"
+
+#. type: cindex
+#: doc/guix.texi:3304
+#, no-wrap
+msgid "package outputs"
+msgstr "salidas del paquete"
+
+#. type: cindex
+#: doc/guix.texi:3305
+#, no-wrap
+msgid "outputs"
+msgstr "salidas"
+
+#. type: Plain text
+#: doc/guix.texi:3315
+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 "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 package -i 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."
+
+#. type: Plain text
+#: doc/guix.texi:3323
+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:"
+
+#. type: example
+#: doc/guix.texi:3326
+#, no-wrap
+msgid "guix package -i glib\n"
+msgstr "guix package -i glib\n"
+
+#. type: item
+#: doc/guix.texi:3328 doc/guix.texi:25157 doc/guix.texi:25182
+#, no-wrap
+msgid "documentation"
+msgstr "documentación"
+
+#. type: Plain text
+#: doc/guix.texi:3330
+msgid "The command to install its documentation is:"
+msgstr "La orden que instala su documentación es:"
+
+#. type: example
+#: doc/guix.texi:3333
+#, no-wrap
+msgid "guix package -i glib:doc\n"
+msgstr "guix package -i glib:doc\n"
+
+# FUZZY
+#
+# MAAV: No me gusta el término IGU en realidad... pero GUI no es mejor.
+#. type: Plain text
+#: doc/guix.texi:3344
+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:3352
+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})."
+
+#. type: section
+#: doc/guix.texi:3355
+#, no-wrap
+msgid "Invoking @command{guix gc}"
+msgstr "Invocación de @command{guix gc}"
+
+#. type: cindex
+#: doc/guix.texi:3357
+#, no-wrap
+msgid "garbage collector"
+msgstr "recolector de basura"
+
+#. type: cindex
+#: doc/guix.texi:3358
+#, no-wrap
+msgid "disk space"
+msgstr "espacio en disco"
+
+#. type: Plain text
+#: doc/guix.texi:3364
+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!"
+
+# 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:3375
+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."
+
+#. type: Plain text
+#: doc/guix.texi:3381
+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 referenciadas por dichas generaciones puede ser reclamada. Esto se consigue ejecutando @code{guix package --delete-generations} (@pxref{Invoking guix package})."
+
+#. type: Plain text
+#: doc/guix.texi:3385
+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:3388
+#, no-wrap
+msgid "guix gc -F 5G\n"
+msgstr "guix gc -F 5G\n"
+
+#. type: Plain text
+#: doc/guix.texi:3397
+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:3403
+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:"
+
+#. type: item
+#: doc/guix.texi:3405
+#, no-wrap
+msgid "--collect-garbage[=@var{min}]"
+msgstr "--collect-garbage[=@var{min}]"
+
+#. type: itemx
+#: doc/guix.texi:3406
+#, no-wrap
+msgid "-C [@var{min}]"
+msgstr "-C [@var{min}]"
+
+#. type: table
+#: doc/guix.texi:3410
+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."
+
+#. type: table
+#: doc/guix.texi:3415
+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:3417
+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:3418
+#, no-wrap
+msgid "--free-space=@var{free}"
+msgstr "--free-space=@var{libre}"
+
+#. type: itemx
+#: doc/guix.texi:3419
+#, no-wrap
+msgid "-F @var{free}"
+msgstr "-F @var{libre}"
+
+#. type: table
+#: doc/guix.texi:3423
+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:3426
+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:3427
+#, no-wrap
+msgid "--delete-generations[=@var{duration}]"
+msgstr "--delete-generations[=@var{duración}]"
+
+#. type: itemx
+#: doc/guix.texi:3428
+#, no-wrap
+msgid "-d [@var{duration}]"
+msgstr "-d [@var{duración}]"
+
+#. type: table
+#: doc/guix.texi:3432
+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:3436
+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:3439
+#, no-wrap
+msgid "guix gc -d 2m -F 10G\n"
+msgstr "guix gc -d 2m -F 10G\n"
+
+#. type: item
+#: doc/guix.texi:3441
+#, no-wrap
+msgid "--delete"
+msgstr "--delete"
+
+#. type: itemx
+#: doc/guix.texi:3442
+#, no-wrap
+msgid "-D"
+msgstr "-D"
+
+#. type: table
+#: doc/guix.texi:3446
+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."
+
+#. type: item
+#: doc/guix.texi:3447
+#, no-wrap
+msgid "--list-failures"
+msgstr "--list-failures"
+
+# FUZZY
+#. type: table
+#: doc/guix.texi:3449
+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:3453
+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:3454
+#, no-wrap
+msgid "--list-roots"
+msgstr "--list-roots"
+
+# FUZZY
+#. type: table
+#: doc/guix.texi:3457
+msgid "List the GC roots owned by the user; when run as root, list @emph{all} the GC roots."
+msgstr "Enumera las raices del recolector de basura poseidas por la usuaria; cuando se ejecuta como root, enumera @emph{todas} las raices del recolector de basura."
+
+#. type: item
+#: doc/guix.texi:3458
+#, no-wrap
+msgid "--clear-failures"
+msgstr "--clear-failures"
+
+#. type: table
+#: doc/guix.texi:3460
+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:3463
+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:3464
+#, no-wrap
+msgid "--list-dead"
+msgstr "--list-dead"
+
+#. type: table
+#: doc/guix.texi:3467
+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."
+
+#. type: item
+#: doc/guix.texi:3468
+#, no-wrap
+msgid "--list-live"
+msgstr "--list-live"
+
+#. type: table
+#: doc/guix.texi:3470
+msgid "Show the list of live store files and directories."
+msgstr "Muestra la lista de ficheros y directorios del almacén vivos."
+
+#. type: Plain text
+#: doc/guix.texi:3474
+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:"
+
+#. type: item
+#: doc/guix.texi:3477
+#, no-wrap
+msgid "--references"
+msgstr "--references"
+
+#. type: itemx
+#: doc/guix.texi:3478
+#, no-wrap
+msgid "--referrers"
+msgstr "--referrers"
+
+#. type: cindex
+#: doc/guix.texi:3479 doc/guix.texi:9328
+#, no-wrap
+msgid "package dependencies"
+msgstr "dependencias de un paquete"
+
+#. type: table
+#: doc/guix.texi:3482
+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."
+
+#. type: item
+#: doc/guix.texi:3483
+#, no-wrap
+msgid "--requisites"
+msgstr "--requisites"
+
+#. type: itemx
+#: doc/guix.texi:3484 doc/guix.texi:4782
+#, no-wrap
+msgid "-R"
+msgstr "-R"
+
+#. type: item
+#: doc/guix.texi:3485 doc/guix.texi:9204 doc/guix.texi:9232 doc/guix.texi:9300
+#, no-wrap
+msgid "closure"
+msgstr "clausura"
+
+#. type: table
+#: doc/guix.texi:3490
+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 requistos 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."
+
+#. type: table
+#: doc/guix.texi:3494
+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:3495
+#, no-wrap
+msgid "--derivers"
+msgstr "--derivers"
+
+#. type: item
+#: doc/guix.texi:3496 doc/guix.texi:4943 doc/guix.texi:9429
+#, no-wrap
+msgid "derivation"
+msgstr "derivación"
+
+#. type: table
+#: doc/guix.texi:3499
+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:3501
+msgid "For example, this command:"
+msgstr "Por ejemplo, esta orden:"
+
+#. type: example
+#: doc/guix.texi:3504
+#, 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:3509
+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."
+
+#. type: table
+#: doc/guix.texi:3513
+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."
+
+#. type: Plain text
+#: doc/guix.texi:3517
+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:3520
+#, no-wrap
+msgid "--verify[=@var{options}]"
+msgstr "--verify[=@var{opciones}]"
+
+#. type: cindex
+#: doc/guix.texi:3521
+#, no-wrap
+msgid "integrity, of the store"
+msgstr "integridad, del almacén"
+
+#. type: cindex
+#: doc/guix.texi:3522
+#, no-wrap
+msgid "integrity checking"
+msgstr "comprobación de integridad"
+
+#. type: table
+#: doc/guix.texi:3524
+msgid "Verify the integrity of the store."
+msgstr "Verifica la integridad del almacén."
+
+#. type: table
+#: doc/guix.texi:3527
+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:3530
+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:3536
+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."
+
+#. type: cindex
+#: doc/guix.texi:3537
+#, no-wrap
+msgid "repairing the store"
+msgstr "reparar el almacén"
+
+#. type: cindex
+#: doc/guix.texi:3538 doc/guix.texi:8098
+#, no-wrap
+msgid "corruption, recovering from"
+msgstr "corrupción, recuperarse de"
+
+#. type: table
+#: doc/guix.texi:3546
+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:3547
+#, no-wrap
+msgid "--optimize"
+msgstr "--optimize"
+
+#. type: table
+#: doc/guix.texi:3551
+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}."
+
+#. type: table
+#: doc/guix.texi:3557
+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}."
+
+#. type: section
+#: doc/guix.texi:3561
+#, no-wrap
+msgid "Invoking @command{guix pull}"
+msgstr "Invocación de @command{guix pull}"
+
+#. type: cindex
+#: doc/guix.texi:3563
+#, no-wrap
+msgid "upgrading Guix"
+msgstr "actualizar Guix"
+
+#. type: cindex
+#: doc/guix.texi:3564
+#, no-wrap
+msgid "updating Guix"
+msgstr "actualizar la versión de Guix"
+
+#. type: command{#1}
+#: doc/guix.texi:3565
+#, no-wrap
+msgid "guix pull"
+msgstr "guix pull"
+
+#. type: cindex
+#: doc/guix.texi:3566
+#, no-wrap
+msgid "pull"
+msgstr "pull"
+
+#. type: Plain text
+#: doc/guix.texi:3574
+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."
+
+#. type: Plain text
+#: doc/guix.texi:3580
+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:3586
+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."
+msgstr "Cualquier usuaria puede actualizar su copia de Guix usando @command{guix pull}, y el efecto está limitado a la usuaria que ejecutó @command{guix pull}. Por ejemplo, cuando la usuaria @code{root} ejecuta @command{guix pull}, esto no tiene ningún efecto en la versión del Guix que la usuaria @code{alicia} ve, y viceversa."
+
+#. type: Plain text
+#: doc/guix.texi:3592
+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, asegurese 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:3596
+#, no-wrap
+msgid ""
+"export PATH=\"$HOME/.config/guix/current/bin:$PATH\"\n"
+"export INFOPATH=\"$HOME/.config/guix/current/share/info:$INFOPATH\"\n"
+msgstr ""
+"export PATH=\"$HOME/.config/guix/current/bin:$PATH\"\n"
+"export INFOPATH=\"$HOME/.config/guix/current/share/info:$INFOPATH\"\n"
+
+#. type: Plain text
+#: doc/guix.texi:3600
+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:"
+
+# TODO: Revisar cuando se traduzcan las herramientas
+#. type: example
+#: doc/guix.texi:3608
+#, no-wrap
+msgid ""
+"$ guix pull -l\n"
+"Generation 1\tJun 10 2018 00:18:18\n"
+"  guix 65956ad\n"
+"    repository URL: https://git.savannah.gnu.org/git/guix.git\n"
+"    branch: origin/master\n"
+"    commit: 65956ad3526ba09e1f7a40722c96c6ef7c0936fe\n"
+"\n"
+msgstr ""
+"$ guix pull -l\n"
+"Generation 1\tJun 10 2018 00:18:18\n"
+"  guix 65956ad\n"
+"    repository URL: https://git.savannah.gnu.org/git/guix.git\n"
+"    branch: origin/master\n"
+"    commit: 65956ad3526ba09e1f7a40722c96c6ef7c0936fe\n"
+"\n"
+
+# TODO: Revisar cuando se traduzcan las herramientas
+#. type: example
+#: doc/guix.texi:3618
+#, no-wrap
+msgid ""
+"Generation 2\tJun 11 2018 11:02:49\n"
+"  guix e0cc7f6\n"
+"    repository URL: https://git.savannah.gnu.org/git/guix.git\n"
+"    branch: origin/master\n"
+"    commit: e0cc7f669bec22c37481dd03a7941c7d11a64f1d\n"
+"  2 new packages: keepalived, libnfnetlink\n"
+"  6 packages upgraded: emacs-nix-mode@@2.0.4,\n"
+"    guile2.0-guix@@0.14.0-12.77a1aac, guix@@0.14.0-12.77a1aac,\n"
+"    heimdal@@7.5.0, milkytracker@@1.02.00, nix@@2.0.4\n"
+"\n"
+msgstr ""
+"Generation 2\tJun 11 2018 11:02:49\n"
+"  guix e0cc7f6\n"
+"    repository URL: https://git.savannah.gnu.org/git/guix.git\n"
+"    branch: origin/master\n"
+"    commit: e0cc7f669bec22c37481dd03a7941c7d11a64f1d\n"
+"  2 new packages: keepalived, libnfnetlink\n"
+"  6 packages upgraded: emacs-nix-mode@@2.0.4,\n"
+"    guile2.0-guix@@0.14.0-12.77a1aac, guix@@0.14.0-12.77a1aac,\n"
+"    heimdal@@7.5.0, milkytracker@@1.02.00, nix@@2.0.4\n"
+"\n"
+
+# TODO: Revisar cuando se traduzcan las herramientas
+#. type: example
+#: doc/guix.texi:3626
+#, no-wrap
+msgid ""
+"Generation 3\tJun 13 2018 23:31:07\t(current)\n"
+"  guix 844cc1c\n"
+"    repository URL: https://git.savannah.gnu.org/git/guix.git\n"
+"    branch: origin/master\n"
+"    commit: 844cc1c8f394f03b404c5bb3aee086922373490c\n"
+"  28 new packages: emacs-helm-ls-git, emacs-helm-mu, @dots{}\n"
+"  69 packages upgraded: borg@@1.1.6, cheese@@3.28.0, @dots{}\n"
+msgstr ""
+"Generation 3\tJun 13 2018 23:31:07\t(current)\n"
+"  guix 844cc1c\n"
+"    repository URL: https://git.savannah.gnu.org/git/guix.git\n"
+"    branch: origin/master\n"
+"    commit: 844cc1c8f394f03b404c5bb3aee086922373490c\n"
+"  28 new packages: emacs-helm-ls-git, emacs-helm-mu, @dots{}\n"
+"  69 packages upgraded: borg@@1.1.6, cheese@@3.28.0, @dots{}\n"
+
+#. type: Plain text
+#: doc/guix.texi:3630
+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."
+
+#. type: Plain text
+#: doc/guix.texi:3635
+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 "El perfil @code{~/.config/guix/current} funciona como cualquier otro perfil creado por @command{guix package} (@pxref{Invoking guix package}). Esto es, puede enumerar generaciones, volver a una generación previa---es decir, el Guix anterior---y más:"
+
+#. type: example
+#: doc/guix.texi:3641
+#, no-wrap
+msgid ""
+"$ guix package -p ~/.config/guix/current --roll-back\n"
+"switched from generation 3 to 2\n"
+"$ guix package -p ~/.config/guix/current --delete-generations=1\n"
+"deleting /var/guix/profiles/per-user/charlie/current-guix-1-link\n"
+msgstr ""
+"$ guix package -p ~/.config/guix/current --roll-back\n"
+"switched from generation 3 to 2\n"
+"$ guix package -p ~/.config/guix/current --delete-generations=1\n"
+"deleting /var/guix/profiles/per-user/carlos/current-guix-1-link\n"
+
+#. type: Plain text
+#: doc/guix.texi:3645
+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:3647
+#, no-wrap
+msgid "--url=@var{url}"
+msgstr "--url=@var{url}"
+
+#. type: itemx
+#: doc/guix.texi:3648
+#, no-wrap
+msgid "--commit=@var{commit}"
+msgstr "--commit=@var{revisión}"
+
+#. type: itemx
+#: doc/guix.texi:3649
+#, no-wrap
+msgid "--branch=@var{branch}"
+msgstr "--branch=@var{rama}"
+
+#. type: table
+#: doc/guix.texi:3653
+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:3654 doc/guix.texi:3719
+#, no-wrap
+msgid "@file{channels.scm}, configuration file"
+msgstr "@file{channels.scm}, fichero de configuración"
+
+#. type: cindex
+#: doc/guix.texi:3655 doc/guix.texi:3720
+#, no-wrap
+msgid "configuration file for channels"
+msgstr "fichero de configuración de canales"
+
+#. type: table
+#: doc/guix.texi:3659
+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)."
+
+#. type: item
+#: doc/guix.texi:3660
+#, no-wrap
+msgid "--channels=@var{file}"
+msgstr "--channels=@var{fichero}"
+
+#. type: itemx
+#: doc/guix.texi:3661
+#, no-wrap
+msgid "-C @var{file}"
+msgstr "-C @var{fichero}"
+
+#. type: table
+#: doc/guix.texi:3666
+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 "Lee la lista de canales de @var{fichero} en vez de @file{~/.config/guix/channels.scm}. @var{fichero} debe contener código Scheme que evalue a una lista de objetos channel. @xref{Channels}, para más información."
+
+#. type: item
+#: doc/guix.texi:3667
+#, no-wrap
+msgid "--news"
+msgstr "--news"
+
+#. type: itemx
+#: doc/guix.texi:3668 doc/guix.texi:4580
+#, no-wrap
+msgid "-N"
+msgstr "-N"
+
+#. type: table
+#: doc/guix.texi:3670
+msgid "Display the list of packages added or upgraded since the previous generation."
+msgstr "Muestra la lista de paquetes añadidos o actualizados desde la generación anterior."
+
+# FUZZY
+#. type: table
+#: doc/guix.texi:3674
+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 "Esta es la misma información que la que muestra @command{guix pull} cuando termina, 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:3681
+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:3684
+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:3688
+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:3689 doc/guix.texi:7674
+#, no-wrap
+msgid "--dry-run"
+msgstr "--dry-run"
+
+#. type: itemx
+#: doc/guix.texi:3690 doc/guix.texi:7675
+#, no-wrap
+msgid "-n"
+msgstr "-n"
+
+#. type: table
+#: doc/guix.texi:3693
+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:3695 doc/guix.texi:4563 doc/guix.texi:4856 doc/guix.texi:8040
+#: doc/guix.texi:9318 doc/guix.texi:9517 doc/guix.texi:10067
+#: doc/guix.texi:24418
+#, no-wrap
+msgid "-s @var{system}"
+msgstr "-s @var{sistema}"
+
+#. type: table
+#: doc/guix.texi:3698 doc/guix.texi:4859
+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:3699 doc/guix.texi:9875
+#, no-wrap
+msgid "--verbose"
+msgstr "--verbose"
+
+#. type: table
+#: doc/guix.texi:3701
+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:3705
+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:3711
+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:3714
+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:3718 doc/guix.texi:4121
+#, no-wrap
+msgid "channels"
+msgstr "channels"
+
+#. type: cindex
+#: doc/guix.texi:3721
+#, no-wrap
+msgid "@command{guix pull}, configuration file"
+msgstr "@command{guix pull}, fichero de configuración"
+
+#. type: cindex
+#: doc/guix.texi:3722
+#, no-wrap
+msgid "configuration of @command{guix pull}"
+msgstr "configuración de @command{guix pull}"
+
+#. type: Plain text
+#: doc/guix.texi:3731
+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:3732
+#, no-wrap
+msgid "Using a Custom Guix Channel"
+msgstr "Uso de un canal de Guix personalizado"
+
+#. type: Plain text
+#: doc/guix.texi:3739
+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:3746
+#, 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:3751
+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}."
+
+#. type: subsection
+#: doc/guix.texi:3752
+#, no-wrap
+msgid "Specifying Additional Channels"
+msgstr "Especificación de canales adicionales"
+
+#. type: cindex
+#: doc/guix.texi:3754
+#, no-wrap
+msgid "extending the package collection (channels)"
+msgstr "extender la colección de paquetes (canales)"
+
+#. type: cindex
+#: doc/guix.texi:3755
+#, no-wrap
+msgid "personal packages (channels)"
+msgstr "paquetes personales (canales)"
+
+#. type: cindex
+#: doc/guix.texi:3756
+#, no-wrap
+msgid "channels, for personal packages"
+msgstr "canales, para paquetes personales"
+
+#. type: Plain text
+#: doc/guix.texi:3764
+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:3768
+#, no-wrap
+msgid "Warning"
+msgstr "Aviso"
+
+#. type: quotation
+#: doc/guix.texi:3772
+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:3780
+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:3789
+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:3793
+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:3800
+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:3805
+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:3806
+#, no-wrap
+msgid "%default-channels"
+msgstr "%default-channels"
+
+#. type: lisp
+#: doc/guix.texi:3813
+#, 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"
+
+#. type: Plain text
+#: doc/guix.texi:3823
+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:3838
+#, 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"
+
+# FUZZY
+#. type: Plain text
+#: doc/guix.texi:3846
+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:3857
+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 uncanal, 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:3858
+#, no-wrap
+msgid "dependencies, channels"
+msgstr "dependencias, canales"
+
+#. type: cindex
+#: doc/guix.texi:3859
+#, no-wrap
+msgid "meta-data, channels"
+msgstr "metadatos, canales"
+
+#. type: subsection
+#: doc/guix.texi:3860
+#, no-wrap
+msgid "Declaring Channel Dependencies"
+msgstr "Declaración de dependencias de canales"
+
+#. type: Plain text
+#: doc/guix.texi:3866
+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:3868
+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:3880
+#, 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:3886
+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:3890
+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: subsection
+#: doc/guix.texi:3891
+#, no-wrap
+msgid "Replicating Guix"
+msgstr "Replicación de Guix"
+
+#. type: cindex
+#: doc/guix.texi:3893
+#, no-wrap
+msgid "pinning, channels"
+msgstr "clavar, canales"
+
+#. type: cindex
+#: doc/guix.texi:3894 doc/guix.texi:4060
+#, no-wrap
+msgid "replicating Guix"
+msgstr "replicar Guix"
+
+#. type: cindex
+#: doc/guix.texi:3895
+#, no-wrap
+msgid "reproducibility, of Guix"
+msgstr "reproducibilidad, de Guix"
+
+#. type: Plain text
+#: doc/guix.texi:3900
+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:3911
+#, 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 ""
+";; 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:3915
+msgid "The @command{guix describe --format=channels} command can even generate this list of channels directly (@pxref{Invoking guix describe})."
+msgstr "La orden @command{guix describe --format=channels} puede incluso generar esta lista de canales directamente (@pxref{Invoking guix describe})."
+
+#. type: Plain text
+#: doc/guix.texi:3922
+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, transitiamente, a todo el código fuente de cada paquete que define."
+
+#. type: Plain text
+#: doc/guix.texi:3927
+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, permitiendole 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: quotation
+#: doc/guix.texi:3935
+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:3937 doc/guix.texi:7520
+#, no-wrap
+msgid "inferiors"
+msgstr "inferiores"
+
+#. type: cindex
+#: doc/guix.texi:3938
+#, no-wrap
+msgid "composition of Guix revisions"
+msgstr "composición de revisiones de Guix"
+
+#. type: Plain text
+#: doc/guix.texi:3943
+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:3944 doc/guix.texi:4009
+#, no-wrap
+msgid "inferior packages"
+msgstr "paquetes inferiores"
+
+#. type: Plain text
+#: doc/guix.texi:3950
+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:3960
+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:3964
+#, no-wrap
+msgid ""
+"(use-modules (guix inferior) (guix channels)\n"
+"             (srfi srfi-1))   ;for 'first'\n"
+"\n"
+msgstr ""
+"(use-modules (guix inferior) (guix channels)\n"
+"             (srfi srfi-1))   ;para 'first'\n"
+"\n"
+
+#. type: lisp
+#: doc/guix.texi:3973
+#, no-wrap
+msgid ""
+"(define channels\n"
+"  ;; This is the old revision from which we want to\n"
+"  ;; extract guile-json.\n"
+"  (list (channel\n"
+"         (name 'guix)\n"
+"         (url \"https://git.savannah.gnu.org/git/guix.git\")\n"
+"         (commit\n"
+"          \"65956ad3526ba09e1f7a40722c96c6ef7c0936fe\"))))\n"
+"\n"
+msgstr ""
+"(define channels\n"
+"  ;; Esta es la revisión antigua de donde queremos\n"
+"  ;; extraer guile-json.\n"
+"  (list (channel\n"
+"         (name 'guix)\n"
+"         (url \"https://git.savannah.gnu.org/git/guix.git\")\n"
+"         (commit\n"
+"          \"65956ad3526ba09e1f7a40722c96c6ef7c0936fe\"))))\n"
+"\n"
+
+#. type: lisp
+#: doc/guix.texi:3977
+#, no-wrap
+msgid ""
+"(define inferior\n"
+"  ;; An inferior representing the above revision.\n"
+"  (inferior-for-channels channels))\n"
+"\n"
+msgstr ""
+"(define inferior\n"
+"  ;; Un inferior que representa la revisión previa.\n"
+"  (inferior-for-channels channels))\n"
+"\n"
+
+#. type: lisp
+#: doc/guix.texi:3983
+#, no-wrap
+msgid ""
+";; Now create a manifest with the current \"guile\" package\n"
+";; and the old \"guile-json\" package.\n"
+"(packages->manifest\n"
+" (list (first (lookup-inferior-packages inferior \"guile-json\"))\n"
+"       (specification->package \"guile\")))\n"
+msgstr ""
+";; Ahora crea un manifiesto con el paquete \"guile\" actual\n"
+";; y el antiguo paquete \"guile-json\".\n"
+"(packages->manifest\n"
+" (list (first (lookup-inferior-packages inferior \"guile-json\"))\n"
+"       (specification->package \"guile\")))\n"
+
+#. type: Plain text
+#: doc/guix.texi:3988
+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:3991
+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:3992
+#, no-wrap
+msgid "{Scheme Procedure} inferior-for-channels @var{channels} @"
+msgstr "{Procedimiento Scheme} inferior-for-channels @var{canales} @"
+
+#. type: deffn
+#: doc/guix.texi:3997
+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:4000
+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:4002
+#, no-wrap
+msgid "{Scheme Procedure} open-inferior @var{directory} @"
+msgstr "{Procedimiento Scheme} open-inferior @var{directorio} @"
+
+#. type: deffn
+#: doc/guix.texi:4007
+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:4012
+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:4013
+#, no-wrap
+msgid "{Scheme Procedure} inferior-packages @var{inferior}"
+msgstr "{Procedimiento Scheme} inferior-packages @var{inferior}"
+
+#. type: deffn
+#: doc/guix.texi:4015
+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:4017
+#, 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:4022
+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:4024
+#, no-wrap
+msgid "{Scheme Procedure} inferior-package? @var{obj}"
+msgstr "{Procedimiento Scheme} inferior-package? @var{obj}"
+
+#. type: deffn
+#: doc/guix.texi:4026
+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:4028
+#, no-wrap
+msgid "{Scheme Procedure} inferior-package-name @var{package}"
+msgstr "{Procedimiento Scheme} inferior-package-name @var{paquete}"
+
+#. type: deffnx
+#: doc/guix.texi:4029
+#, no-wrap
+msgid "{Scheme Procedure} inferior-package-version @var{package}"
+msgstr "{Procedimiento Scheme} inferior-package-version @var{paquete}"
+
+#. type: deffnx
+#: doc/guix.texi:4030
+#, no-wrap
+msgid "{Scheme Procedure} inferior-package-synopsis @var{package}"
+msgstr "{Procedimiento Scheme} inferior-package-synopsis @var{paquete}"
+
+#. type: deffnx
+#: doc/guix.texi:4031
+#, no-wrap
+msgid "{Scheme Procedure} inferior-package-description @var{package}"
+msgstr "{Procedimiento Scheme} inferior-package-description @var{paquete}"
+
+#. type: deffnx
+#: doc/guix.texi:4032
+#, 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:4033
+#, no-wrap
+msgid "{Scheme Procedure} inferior-package-location @var{package}"
+msgstr "{Procedimiento Scheme} inferior-package-location @var{paquete}"
+
+#. type: deffnx
+#: doc/guix.texi:4034
+#, no-wrap
+msgid "{Scheme Procedure} inferior-package-inputs @var{package}"
+msgstr "{Procedimiento Scheme} inferior-package-inputs @var{paquete}"
+
+#. type: deffnx
+#: doc/guix.texi:4035
+#, 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:4036
+#, 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:4037
+#, 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:4038
+#, 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:4039
+#, 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:4040
+#, no-wrap
+msgid "{Scheme Procedure} inferior-package-search-paths @var{package}"
+msgstr "{Procedimiento Scheme} inferior-package-search-paths @var{paquete}"
+
+#. type: deffn
+#: doc/guix.texi:4045
+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 pquete (@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:4055
+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."
+
+#. type: section
+#: doc/guix.texi:4057
+#, no-wrap
+msgid "Invoking @command{guix describe}"
+msgstr "Invocación de @command{guix describe}"
+
+#. type: Plain text
+#: doc/guix.texi:4068
+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:4072
+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:4080
+#, no-wrap
+msgid ""
+"$ guix describe\n"
+"Generation 10\tSep 03 2018 17:32:44\t(current)\n"
+"  guix e0fa68c\n"
+"    repository URL: https://git.savannah.gnu.org/git/guix.git\n"
+"    branch: master\n"
+"    commit: e0fa68c7718fffd33d81af415279d6ddb518f727\n"
+msgstr ""
+"$ guix describe\n"
+"Generation 10\tSep 03 2018 17:32:44\t(current)\n"
+"  guix e0fa68c\n"
+"    repository URL: https://git.savannah.gnu.org/git/guix.git\n"
+"    branch: master\n"
+"    commit: e0fa68c7718fffd33d81af415279d6ddb518f727\n"
+
+#. type: Plain text
+#: doc/guix.texi:4089
+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:4092
+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:4100
+#, 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"
+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"
+
+#. type: Plain text
+#: doc/guix.texi:4109
+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 pasarselo a @command{guix pull -C} en otra máquina o en un momento futuro, lo cual 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:4112
+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:4114 doc/guix.texi:4758
+#, no-wrap
+msgid "--format=@var{format}"
+msgstr "--format=@var{formato}"
+
+#. type: itemx
+#: doc/guix.texi:4115 doc/guix.texi:4759
+#, no-wrap
+msgid "-f @var{format}"
+msgstr "-f @var{formato}"
+
+#. type: table
+#: doc/guix.texi:4117
+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:4119
+#, no-wrap
+msgid "human"
+msgstr "human"
+
+#. type: table
+#: doc/guix.texi:4121
+msgid "produce human-readable output;"
+msgstr "produce salida legible por humanos;"
+
+#. type: table
+#: doc/guix.texi:4125
+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:4125 doc/guix.texi:8557
+#, no-wrap
+msgid "json"
+msgstr "json"
+
+#. type: cindex
+#: doc/guix.texi:4126
+#, no-wrap
+msgid "JSON"
+msgstr "JSON"
+
+#. type: table
+#: doc/guix.texi:4128
+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:4128
+#, no-wrap
+msgid "recutils"
+msgstr "recutils"
+
+#. type: table
+#: doc/guix.texi:4130
+msgid "produce a list of channel specifications in Recutils format."
+msgstr "produce una lista de especificaciones de canales en formato Recutils."
+
+#. type: table
+#: doc/guix.texi:4135
+msgid "Display information about @var{profile}."
+msgstr "Muestra información acerca del @var{perfil}."
+
+#. type: section
+#: doc/guix.texi:4138
+#, no-wrap
+msgid "Invoking @command{guix archive}"
+msgstr "Invocación de @command{guix archive}"
+
+#. type: command{#1}
+#: doc/guix.texi:4140
+#, no-wrap
+msgid "guix archive"
+msgstr "guix archive"
+
+#. type: cindex
+#: doc/guix.texi:4141
+#, no-wrap
+msgid "archive"
+msgstr "archive"
+
+#. type: Plain text
+#: doc/guix.texi:4147
+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."
+
+#. type: quotation
+#: doc/guix.texi:4151
+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:4153
+#, no-wrap
+msgid "exporting store items"
+msgstr "exportar elementos del almacén"
+
+#. type: Plain text
+#: doc/guix.texi:4155
+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:"
+
+#. type: example
+#: doc/guix.texi:4158
+#, 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:4165
+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}:"
+
+#. type: example
+#: doc/guix.texi:4168
+#, 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:4173
+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:4176
+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:4179
+#, 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:4184
+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:4188
+#, 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 otra-maquina guix-archive --import\n"
+
+#. type: Plain text
+#: doc/guix.texi:4198
+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})."
+
+#. type: cindex
+#: doc/guix.texi:4199
+#, no-wrap
+msgid "nar, archive format"
+msgstr "nar, formato de archivo"
+
+#. type: cindex
+#: doc/guix.texi:4200
+#, no-wrap
+msgid "normalized archive (nar)"
+msgstr "archivo normalizado (nar)"
+
+#. type: Plain text
+#: doc/guix.texi:4210
+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."
+
+#. type: Plain text
+#: doc/guix.texi:4216
+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:4218
+msgid "The main options are:"
+msgstr "Las opciones principales son:"
+
+#. type: item
+#: doc/guix.texi:4220
+#, no-wrap
+msgid "--export"
+msgstr "--export"
+
+#. type: table
+#: doc/guix.texi:4223
+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."
+
+#. type: table
+#: doc/guix.texi:4226
+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}."
+
+#. type: itemx
+#: doc/guix.texi:4227 doc/guix.texi:8345 doc/guix.texi:8442 doc/guix.texi:8467
+#: doc/guix.texi:8662 doc/guix.texi:8703 doc/guix.texi:8750
+#, no-wrap
+msgid "-r"
+msgstr "-r"
+
+#. type: item
+#: doc/guix.texi:4228 doc/guix.texi:8344 doc/guix.texi:8441 doc/guix.texi:8466
+#: doc/guix.texi:8661 doc/guix.texi:8702 doc/guix.texi:8749 doc/guix.texi:8806
+#, no-wrap
+msgid "--recursive"
+msgstr "--recursive"
+
+#. type: table
+#: doc/guix.texi:4233
+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."
+
+#. type: item
+#: doc/guix.texi:4234
+#, no-wrap
+msgid "--import"
+msgstr "--import"
+
+#. type: table
+#: doc/guix.texi:4239
+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)."
+
+#. type: item
+#: doc/guix.texi:4240
+#, no-wrap
+msgid "--missing"
+msgstr "--missing"
+
+#. type: table
+#: doc/guix.texi:4244
+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."
+
+#. type: item
+#: doc/guix.texi:4245
+#, no-wrap
+msgid "--generate-key[=@var{parameters}]"
+msgstr "--generate-key[=@var{parámetros}]"
+
+#. type: cindex
+#: doc/guix.texi:4246
+#, no-wrap
+msgid "signing, archives"
+msgstr "firmar, archivos"
+
+#. type: table
+#: doc/guix.texi:4251
+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."
+
+#. type: table
+#: doc/guix.texi:4261
+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:4262
+#, no-wrap
+msgid "--authorize"
+msgstr "--authorize"
+
+#. type: cindex
+#: doc/guix.texi:4263
+#, no-wrap
+msgid "authorizing, archives"
+msgstr "autorizar, archivos"
+
+#. type: table
+#: doc/guix.texi:4267
+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}."
+
+#. type: table
+#: doc/guix.texi:4274
+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)}."
+msgstr "La lista de claves autorizadas se mantiene en el fichero editable por personas @file{/etc/guix/acl}. El fichero contiene @url{http://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{http://theworld.com/~cme/spki.txt, Infraestructura Simple de Clave Pública (SPKI)}."
+
+#. type: item
+#: doc/guix.texi:4275
+#, no-wrap
+msgid "--extract=@var{directory}"
+msgstr "--extract=@var{directorio}"
+
+#. type: itemx
+#: doc/guix.texi:4276
+#, no-wrap
+msgid "-x @var{directory}"
+msgstr "-x @var{directorio}"
+
+#. type: table
+#: doc/guix.texi:4280
+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:4283
+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:4288
+#, no-wrap
+msgid ""
+"$ wget -O - \\\n"
+"  https://@value{SUBSTITUTE-SERVER}/nar/@dots{}-emacs-24.5 \\\n"
+"  | bunzip2 | 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"
+
+#. type: table
+#: doc/guix.texi:4295
+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:4298
+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."
+
+#. type: cindex
+#: doc/guix.texi:4306
+#, no-wrap
+msgid "software development"
+msgstr "desarrollo de software"
+
+#. type: Plain text
+#: doc/guix.texi:4310
+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:4316
+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:4323
+#, no-wrap
+msgid "Invoking @command{guix environment}"
+msgstr "Invocación de @command{guix environment}"
+
+#. type: cindex
+#: doc/guix.texi:4325
+#, no-wrap
+msgid "reproducible build environments"
+msgstr "entornos de construcción reproducibles"
+
+#. type: cindex
+#: doc/guix.texi:4326
+#, no-wrap
+msgid "development environments"
+msgstr "entornos de desarrollo"
+
+#. type: command{#1}
+#: doc/guix.texi:4327
+#, no-wrap
+msgid "guix environment"
+msgstr "guix environment"
+
+#. type: cindex
+#: doc/guix.texi:4328
+#, no-wrap
+msgid "environment, package build environment"
+msgstr "entorno, entorno de construcción de paquetes"
+
+#. type: Plain text
+#: doc/guix.texi:4334
+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: Plain text
+#: doc/guix.texi:4336 doc/guix.texi:7594 doc/guix.texi:8322 doc/guix.texi:8389
+#: doc/guix.texi:9178 doc/guix.texi:9551 doc/guix.texi:9856 doc/guix.texi:9922
+#: doc/guix.texi:9961
+msgid "The general syntax is:"
+msgstr "La sintaxis general es:"
+
+#. type: example
+#: doc/guix.texi:4339
+#, 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:4343
+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:4346
+#, no-wrap
+msgid "guix environment guile\n"
+msgstr "guix environment guile\n"
+
+#. type: Plain text
+#: doc/guix.texi:4363
+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.}."
+
+#. type: vindex
+#: doc/guix.texi:4364
+#, no-wrap
+msgid "GUIX_ENVIRONMENT"
+msgstr "GUIX_ENVIRONMENT"
+
+# FUZZY
+# MAAV (TODO): Prompt, comprobar bash...
+#. type: Plain text
+#: doc/guix.texi:4370
+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}):"
+
+#. type: example
+#: doc/guix.texi:4376
+#, no-wrap
+msgid ""
+"if [ -n \"$GUIX_ENVIRONMENT\" ]\n"
+"then\n"
+"    export PS1=\"\\u@@\\h \\w [dev]\\$ \"\n"
+"fi\n"
+msgstr ""
+"if [ -n \"$GUIX_ENVIRONMENT\" ]\n"
+"then\n"
+"    export PS1=\"\\u@@\\h \\w [dev]\\$ \"\n"
+"fi\n"
+
+#. type: Plain text
+#: doc/guix.texi:4380
+msgid "...@: or to browse the profile:"
+msgstr "...@: o para explorar el perfil:"
+
+#. type: example
+#: doc/guix.texi:4383
+#, no-wrap
+msgid "$ ls \"$GUIX_ENVIRONMENT/bin\"\n"
+msgstr "$ ls \"$GUIX_ENVIRONMENT/bin\"\n"
+
+#. type: Plain text
+#: doc/guix.texi:4389
+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:4392
+#, no-wrap
+msgid "guix environment guile emacs\n"
+msgstr "guix environment guile emacs\n"
+
+#. type: Plain text
+#: doc/guix.texi:4397
+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 puede invorcarse usando el valor @code{--} para separar la orden del resto de los parámetros:"
+
+#. type: example
+#: doc/guix.texi:4400
+#, no-wrap
+msgid "guix environment guile -- make -j4\n"
+msgstr "guix environment guile -- make -j4\n"
+
+#. type: Plain text
+#: doc/guix.texi:4406
+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:4409
+#, 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:4420
+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:"
+
+#. type: example
+#: doc/guix.texi:4423
+#, no-wrap
+msgid "guix environment guix --ad-hoc git strace\n"
+msgstr "guix environment guix --ad-hoc git strace\n"
+
+#. type: Plain text
+#: doc/guix.texi:4432
+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:4435
+#, 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:4439
+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."
+
+#. type: Plain text
+#: doc/guix.texi:4442
+msgid "The available options are summarized below."
+msgstr "Las opciones disponibles se resumen a continuación."
+
+#. type: item
+#: doc/guix.texi:4444 doc/guix.texi:8109 doc/guix.texi:24450
+#, no-wrap
+msgid "--root=@var{file}"
+msgstr "--root=@var{fichero}"
+
+#. type: itemx
+#: doc/guix.texi:4445 doc/guix.texi:8110 doc/guix.texi:24451
+#, no-wrap
+msgid "-r @var{file}"
+msgstr "-r @var{fichero}"
+
+#. type: cindex
+#: doc/guix.texi:4446
+#, no-wrap
+msgid "persistent environment"
+msgstr "entorno persistente"
+
+#. type: cindex
+#: doc/guix.texi:4447
+#, no-wrap
+msgid "garbage collector root, for environments"
+msgstr "raíz del recolector de basura, para entornos"
+
+# FUZZY
+#. type: table
+#: doc/guix.texi:4450
+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."
+
+#. type: table
+#: doc/guix.texi:4453
+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:4459
+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 raices del recolector de basura."
+
+#. type: item
+#: doc/guix.texi:4460 doc/guix.texi:4834 doc/guix.texi:7967 doc/guix.texi:8848
+#: doc/guix.texi:9506 doc/guix.texi:24409
+#, no-wrap
+msgid "--expression=@var{expr}"
+msgstr "--expression=@var{expr}"
+
+#. type: itemx
+#: doc/guix.texi:4461 doc/guix.texi:4835 doc/guix.texi:7968 doc/guix.texi:8849
+#: doc/guix.texi:9507 doc/guix.texi:24410
+#, no-wrap
+msgid "-e @var{expr}"
+msgstr "-e @var{expr}"
+
+#. type: table
+#: doc/guix.texi:4464
+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:4466
+msgid "For example, running:"
+msgstr "Por ejemplo, ejecutando:"
+
+#. type: example
+#: doc/guix.texi:4469
+#, 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:4473
+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:4475
+msgid "Running:"
+msgstr "Ejecutar:"
+
+#. type: example
+#: doc/guix.texi:4478
+#, 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:4481
+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:4484
+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:4487
+#, 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:4489
+#, no-wrap
+msgid "--load=@var{file}"
+msgstr "--load=@var{fichero}"
+
+#. type: itemx
+#: doc/guix.texi:4490
+#, no-wrap
+msgid "-l @var{file}"
+msgstr "-l @var{fichero}"
+
+#. type: table
+#: doc/guix.texi:4493
+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."
+
+#. type: example
+#: doc/guix.texi:4499
+#, no-wrap
+msgid "@verbatiminclude environment-gdb.scm\n"
+msgstr "@verbatiminclude environment-gdb.scm\n"
+
+#. type: table
+#: doc/guix.texi:4505
+msgid "Create an environment for the packages contained in the manifest object returned by the Scheme code in @var{file}."
+msgstr "Crea un entorno para los paquetes contenidos en el objeto manifest devuelto por el código Scheme en @var{file}."
+
+#. type: table
+#: doc/guix.texi:4509
+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."
+
+#. type: item
+#: doc/guix.texi:4510
+#, no-wrap
+msgid "--ad-hoc"
+msgstr "--ad-hoc"
+
+#. type: table
+#: doc/guix.texi:4515
+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:4517
+msgid "For instance, the command:"
+msgstr "Por ejemplo, la orden:"
+
+#. type: example
+#: doc/guix.texi:4520
+#, 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:4524
+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:4529
+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:4535
+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."
+
+#. type: item
+#: doc/guix.texi:4536
+#, no-wrap
+msgid "--pure"
+msgstr "--pure"
+
+# FUZZY
+#. type: table
+#: doc/guix.texi:4540
+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:4541
+#, no-wrap
+msgid "--preserve=@var{regexp}"
+msgstr "--preserve=@var{regexp}"
+
+#. type: itemx
+#: doc/guix.texi:4542
+#, no-wrap
+msgid "-E @var{regexp}"
+msgstr "-E @var{regexp}"
+
+# FUZZY
+#. type: table
+#: doc/guix.texi:4547
+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:4551
+#, no-wrap
+msgid ""
+"guix environment --pure --preserve=^SLURM --ad-hoc openmpi @dots{} \\\n"
+"  -- mpirun @dots{}\n"
+msgstr ""
+"guix environment --pure --preserve=^SLURM --ad-hoc openmpi @dots{} \\\n"
+"  -- mpirun @dots{}\n"
+
+#. type: table
+#: doc/guix.texi:4557
+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.)."
+
+#. type: item
+#: doc/guix.texi:4558
+#, no-wrap
+msgid "--search-paths"
+msgstr "--search-paths"
+
+# FUZZY
+#. type: table
+#: doc/guix.texi:4561
+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:4565
+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:4566
+#, no-wrap
+msgid "--container"
+msgstr "--container"
+
+#. type: itemx
+#: doc/guix.texi:4567
+#, no-wrap
+msgid "-C"
+msgstr "-C"
+
+#. type: item
+#: doc/guix.texi:4568 doc/guix.texi:9947 doc/guix.texi:24377
+#, no-wrap
+msgid "container"
+msgstr "container"
+
+#. type: table
+#: doc/guix.texi:4574
+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."
+
+#. type: table
+#: doc/guix.texi:4578
+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:4579
+#, no-wrap
+msgid "--network"
+msgstr "--network"
+
+#. type: table
+#: doc/guix.texi:4584
+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:4585
+#, no-wrap
+msgid "--link-profile"
+msgstr "--link-profile"
+
+#. type: itemx
+#: doc/guix.texi:4586
+#, no-wrap
+msgid "-P"
+msgstr "-P"
+
+#. type: table
+#: doc/guix.texi:4593
+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."
+
+#. type: table
+#: doc/guix.texi:4600
+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."
+
+#. type: item
+#: doc/guix.texi:4601 doc/guix.texi:9619
+#, no-wrap
+msgid "--user=@var{user}"
+msgstr "--user=@var{usuaria}"
+
+#. type: itemx
+#: doc/guix.texi:4602 doc/guix.texi:9620
+#, no-wrap
+msgid "-u @var{user}"
+msgstr "-u @var{usuaria}"
+
+# FUZZY
+#. type: table
+#: doc/guix.texi:4609
+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:4614
+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."
+
+#. type: example
+#: doc/guix.texi:4621
+#, no-wrap
+msgid ""
+"# will expose paths as /home/foo/wd, /home/foo/test, and /home/foo/target\n"
+"cd $HOME/wd\n"
+"guix environment --container --user=foo \\\n"
+"     --expose=$HOME/test \\\n"
+"     --expose=/tmp/target=$HOME/target\n"
+msgstr ""
+"# expondrá las rutas /home/foo/ddt, /home/foo/prueba y /home/foo/objetivo\n"
+"cd $HOME/ddt\n"
+"guix environment --container --user=foo \\\n"
+"     --expose=$HOME/prueba \\\n"
+"     --expose=/tmp/objetivo=$HOME/objetivo\n"
+
+# FUZZY
+# MAAV (TODO): ¿Cómo traducir el "not one in and of itself"?
+#. type: table
+#: doc/guix.texi:4626
+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:4627
+#, no-wrap
+msgid "--expose=@var{source}[=@var{target}]"
+msgstr "--expose=@var{fuente}[=@var{destino}]"
+
+#. type: table
+#: doc/guix.texi:4632
+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 "Para contenedores, expone el sistema de ficheros @var{fuente} del sistema anfitrión como un sistema de ficheros de solo-lectura @var{destino} dentro del contenedor. Si no se especifica @var{destino}, @var{fuente} se usa como el punto de montaje en el contenedor."
+
+#. type: table
+#: doc/guix.texi:4636
+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:4639
+#, 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: item
+#: doc/guix.texi:4641
+#, no-wrap
+msgid "--share=@var{source}[=@var{target}]"
+msgstr "--share=@var{fuente}[=@var{destino}]"
+
+#. type: table
+#: doc/guix.texi:4646
+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."
+
+#. type: table
+#: doc/guix.texi:4650
+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}:"
+
+#. type: example
+#: doc/guix.texi:4653
+#, no-wrap
+msgid "guix environment --container --share=$HOME=/exchange --ad-hoc guile -- guile\n"
+msgstr "guix environment --container --share=$HOME=/intercambio --ad-hoc guile -- guile\n"
+
+#. type: Plain text
+#: doc/guix.texi:4660
+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:4662
+#, no-wrap
+msgid "Invoking @command{guix pack}"
+msgstr "Invocación de @command{guix pack}"
+
+#. type: Plain text
+#: doc/guix.texi:4668
+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:4673
+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:4675
+#, no-wrap
+msgid "pack"
+msgstr "pack"
+
+#. type: cindex
+#: doc/guix.texi:4676
+#, no-wrap
+msgid "bundle"
+msgstr "empaquetado"
+
+#. type: cindex
+#: doc/guix.texi:4677
+#, no-wrap
+msgid "application bundle"
+msgstr "aplicación empaquetada"
+
+#. type: cindex
+#: doc/guix.texi:4678
+#, no-wrap
+msgid "software bundle"
+msgstr "empaquetado de software"
+
+#. type: Plain text
+#: doc/guix.texi:4687
+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:4690
+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:4695
+#, no-wrap
+msgid ""
+"$ guix pack guile emacs geiser\n"
+"@dots{}\n"
+"/gnu/store/@dots{}-pack.tar.gz\n"
+msgstr ""
+"$ guix pack guile emacs geiser\n"
+"@dots{}\n"
+"/gnu/store/@dots{}-pack.tar.gz\n"
+
+#. type: Plain text
+#: doc/guix.texi:4703
+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:4708
+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:4711
+#, 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:4715
+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:4716
+#, no-wrap
+msgid "relocatable binaries, with @command{guix pack}"
+msgstr "binarios relocalizables, con @command{guix pack}"
+
+#. type: Plain text
+#: doc/guix.texi:4724
+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 relocalizables}, 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}."
+
+#. type: cindex
+#: doc/guix.texi:4725
+#, no-wrap
+msgid "Docker, build an image with guix pack"
+msgstr "Docker, construir una imagen con guix pack"
+
+#. type: Plain text
+#: doc/guix.texi:4728
+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:4731
+#, no-wrap
+msgid "guix pack -f docker guile emacs geiser\n"
+msgstr "guix pack -f docker guile emacs geiser\n"
+
+#. type: Plain text
+#: doc/guix.texi:4738
+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 "El resultado es un archivador tar que puede ser pasado a la orden @command{docker load}. 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:4739
+#, no-wrap
+msgid "Singularity, build an image with guix pack"
+msgstr "Singularity, construir una imagen con guix pack"
+
+#. type: cindex
+#: doc/guix.texi:4740
+#, no-wrap
+msgid "SquashFS, build an image with guix pack"
+msgstr "SquashFS, construir una imagen con guix pack"
+
+#. type: Plain text
+#: doc/guix.texi:4743
+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:4746
+#, no-wrap
+msgid "guix pack -f squashfs guile emacs geiser\n"
+msgstr "guix pack -f squashfs guile emacs geiser\n"
+
+#. type: Plain text
+#: doc/guix.texi:4754
+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}."
+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{http://singularity.lbl.gov, entorno de ejecución de contenedores Singularity}, usando órdenes como @command{singularity shell} o @command{singularity exec}."
+
+#. type: Plain text
+#: doc/guix.texi:4756
+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:4761
+msgid "Produce a pack in the given @var{format}."
+msgstr "Produce un empaquetado en el @var{formato} específico."
+
+#. type: table
+#: doc/guix.texi:4763
+msgid "The available formats are:"
+msgstr "Los formatos disponibles son:"
+
+#. type: item
+#: doc/guix.texi:4765
+#, no-wrap
+msgid "tarball"
+msgstr "tarball"
+
+#. type: table
+#: doc/guix.texi:4768
+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:4769
+#, no-wrap
+msgid "docker"
+msgstr "docker"
+
+#. type: table
+#: doc/guix.texi:4773
+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 "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}."
+
+#. type: item
+#: doc/guix.texi:4774
+#, no-wrap
+msgid "squashfs"
+msgstr "squashfs"
+
+#. type: table
+#: doc/guix.texi:4778
+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."
+
+# FUZZY
+#. type: cindex
+#: doc/guix.texi:4780
+#, no-wrap
+msgid "relocatable binaries"
+msgstr "binarios reposicionables"
+
+#. type: item
+#: doc/guix.texi:4781
+#, no-wrap
+msgid "--relocatable"
+msgstr "--relocatable"
+
+#. type: table
+#: doc/guix.texi:4785
+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 posicionar en cualquier lugar de la jerarquía del sistema de ficheros, y ejecutarse desde allí."
+
+# FUZZY
+#. type: table
+#: doc/guix.texi:4793
+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."
+
+#. type: table
+#: doc/guix.texi:4795
+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:4798
+#, 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:4803
+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:4807
+#, no-wrap
+msgid ""
+"tar xf pack.tar.gz\n"
+"./mybin/sh\n"
+msgstr ""
+"tar xf pack.tar.gz\n"
+"./mibin/sh\n"
+
+#. type: table
+#: doc/guix.texi:4815
+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:4821
+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 deshabilitan."
+
+# FUZZY
+#. type: quotation
+#: doc/guix.texi:4826
+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."
+
+#. type: quotation
+#: doc/guix.texi:4832
+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."
+
+#. type: table
+#: doc/guix.texi:4837 doc/guix.texi:8851 doc/guix.texi:9509
+msgid "Consider the package @var{expr} evaluates to."
+msgstr "Considera el paquete al que evalúa @var{expr}"
+
+#. type: table
+#: doc/guix.texi:4841
+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}})."
+
+#. type: table
+#: doc/guix.texi:4846
+msgid "Use the packages contained in the manifest object returned by the Scheme code in @var{file}."
+msgstr "Usa los paquetes contenidos en el objeto manifest devuelto por el código Scheme en @var{file}."
+
+#. type: table
+#: doc/guix.texi:4854
+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."
+
+#. type: item
+#: doc/guix.texi:4860 doc/guix.texi:8073
+#, no-wrap
+msgid "--target=@var{triplet}"
+msgstr "--target=@var{tripleta}"
+
+#. type: cindex
+#: doc/guix.texi:4861 doc/guix.texi:5207 doc/guix.texi:8074
+#, no-wrap
+msgid "cross-compilation"
+msgstr "compilación cruzada"
+
+#. type: table
+#: doc/guix.texi:4865 doc/guix.texi:8078
+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})."
+
+#. type: item
+#: doc/guix.texi:4866
+#, no-wrap
+msgid "--compression=@var{tool}"
+msgstr "--compression=@var{herramienta}"
+
+#. type: itemx
+#: doc/guix.texi:4867
+#, no-wrap
+msgid "-C @var{tool}"
+msgstr "-C @var{herramienta}"
+
+#. type: table
+#: doc/guix.texi:4870
+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."
+
+#. type: item
+#: doc/guix.texi:4871
+#, no-wrap
+msgid "--symlink=@var{spec}"
+msgstr "--symlink=@var{spec}"
+
+#. type: itemx
+#: doc/guix.texi:4872
+#, no-wrap
+msgid "-S @var{spec}"
+msgstr "-S @var{spec}"
+
+#. type: table
+#: doc/guix.texi:4875
+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:4879
+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:4882
+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:4883
+#, no-wrap
+msgid "--save-provenance"
+msgstr "--save-provenance"
+
+#. type: table
+#: doc/guix.texi:4887
+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:4893
+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."
+
+# FUZZY
+#. type: table
+#: doc/guix.texi:4899
+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 está habilitada de forma predeterminada debido a que, como las marcas de tiempo, la información de procedencia no aporta 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."
+
+#. type: item
+#: doc/guix.texi:4900
+#, no-wrap
+msgid "--localstatedir"
+msgstr "--localstatedir"
+
+#. type: itemx
+#: doc/guix.texi:4901
+#, no-wrap
+msgid "--profile-name=@var{name}"
+msgstr "--profile-name=@var{nombre}"
+
+#. type: table
+#: doc/guix.texi:4906
+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:4912
+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:4915
+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: table
+#: doc/guix.texi:4919
+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:4924
+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: Plain text
+#: doc/guix.texi:4936
+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:4942
+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 "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:4951
+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:4954
+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: Plain text
+#: doc/guix.texi:4980
+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:4987
+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 package -i 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 package -i 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:4989
+#, no-wrap
+msgid "package module search path"
+msgstr "ruta de búsqueda de módulos de paquetes"
+
+#. type: Plain text
+#: doc/guix.texi:4998
+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:"
+
+#. type: enumerate
+#: doc/guix.texi:5005
+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."
+
+#. type: enumerate
+#: doc/guix.texi:5011
+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:5014
+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:"
+
+#. type: defvr
+#: doc/guix.texi:5015
+#, no-wrap
+msgid "{Environment Variable} GUIX_PACKAGE_PATH"
+msgstr "{Variable de entorno} GUIX_PACKAGE_PATH"
+
+#. type: defvr
+#: doc/guix.texi:5019
+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:5027
+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:5035
+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: example
+#: doc/guix.texi:5043
+#, no-wrap
+msgid ""
+"(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"
+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: example
+#: doc/guix.texi:5062
+#, no-wrap
+msgid ""
+"(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 \"http://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 \"http://www.gnu.org/software/hello/\")\n"
+"    (license gpl3+)))\n"
+
+#. type: Plain text
+#: doc/guix.texi:5072
+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:5076
+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:5082
+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})."
+
+#. type: Plain text
+#: doc/guix.texi:5084
+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:5091
+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."
+
+#. type: itemize
+#: doc/guix.texi:5094
+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:5101
+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})."
+
+#. type: cindex
+#: doc/guix.texi:5102
+#, no-wrap
+msgid "patches"
+msgstr "parches"
+
+#. type: itemize
+#: doc/guix.texi:5106
+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:5108
+#, no-wrap
+msgid "GNU Build System"
+msgstr "Sistema de construcción GNU"
+
+#. type: itemize
+#: doc/guix.texi:5114
+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}."
+
+#. type: itemize
+#: doc/guix.texi:5120
+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}."
+
+#. type: findex
+#: doc/guix.texi:5121 doc/guix.texi:5124
+#, no-wrap
+msgid "quote"
+msgstr "quote"
+
+# FUZZY
+# MAAV: Es el concepto, pero no me convence.
+#. type: cindex
+#: doc/guix.texi:5122
+#, no-wrap
+msgid "quoting"
+msgstr "creación de literales"
+
+#. type: findex
+#: doc/guix.texi:5123
+#, no-wrap
+msgid "'"
+msgstr "'"
+
+#. type: itemize
+#: doc/guix.texi:5132
+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:5138
+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:5144
+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>}."
+
+#. type: cindex
+#: doc/guix.texi:5145
+#, no-wrap
+msgid "backquote (quasiquote)"
+msgstr "acento grave (quasiquote)"
+
+#. type: findex
+#: doc/guix.texi:5146
+#, no-wrap
+msgid "`"
+msgstr "`"
+
+#. type: findex
+#: doc/guix.texi:5147
+#, no-wrap
+msgid "quasiquote"
+msgstr "quasiquote"
+
+#. type: cindex
+#: doc/guix.texi:5148
+#, no-wrap
+msgid "comma (unquote)"
+msgstr "coma (unquote)"
+
+#. type: findex
+#: doc/guix.texi:5149
+#, no-wrap
+msgid ","
+msgstr ","
+
+#. type: findex
+#: doc/guix.texi:5150
+#, no-wrap
+msgid "unquote"
+msgstr "unquote"
+
+#. type: findex
+#: doc/guix.texi:5151
+#, no-wrap
+msgid ",@@"
+msgstr ",@@"
+
+#. type: findex
+#: doc/guix.texi:5152
+#, no-wrap
+msgid "unquote-splicing"
+msgstr "unquote-splicing"
+
+#. type: itemize
+#: doc/guix.texi:5158
+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:5162
+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})."
+
+#. type: itemize
+#: doc/guix.texi:5166
+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:5169
+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:5180
+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:5180
+#, no-wrap
+msgid "GUIX_PACKAGE_PATH"
+msgstr "GUIX_PACKAGE_PATH"
+
+#. type: Plain text
+#: doc/guix.texi:5184
+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:5188
+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:5194
+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})."
+
+#. type: deffn
+#: doc/guix.texi:5195
+#, 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:5198
+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:5204
+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:5210
+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:5211
+#, no-wrap
+msgid "{Scheme Procedure} package-cross-derivation @var{store} @"
+msgstr "{Procedimiento Scheme} package-cross-derivation @var{almacén} @"
+
+#. type: deffn
+#: doc/guix.texi:5215
+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:5220
+msgid "@var{target} must be a valid GNU triplet denoting the target hardware and operating system, such as @code{\"mips64el-linux-gnu\"} (@pxref{Configuration Names, GNU configuration triplets,, configure, GNU Configure and Build System})."
+msgstr "@var{plataforma} debe ser una tripleta GNU válida que denote el hardware y sistema operativo objetivo, como @code{\"mips64el-linux-gnu\"} (@pxref{Configuration Names, GNU configuration triplets,, configure, GNU Configure and Build System})."
+
+#. type: cindex
+#: doc/guix.texi:5222
+#, no-wrap
+msgid "package transformations"
+msgstr "transformación de paquetes"
+
+#. type: cindex
+#: doc/guix.texi:5223
+#, no-wrap
+msgid "input rewriting"
+msgstr "reescritura de la entrada"
+
+#. type: cindex
+#: doc/guix.texi:5224
+#, no-wrap
+msgid "dependency tree rewriting"
+msgstr "reescritura del árbol de dependencias"
+
+#. type: Plain text
+#: doc/guix.texi:5228
+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:5229
+#, no-wrap
+msgid "{Scheme Procedure} package-input-rewriting @var{replacements} @"
+msgstr "{Procedimiento Scheme} package-input-rewriting @var{reemplazos} @"
+
+#. type: deffn
+#: doc/guix.texi:5236
+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:5239
+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:5243
+msgid "Consider this example:"
+msgstr "Considere este ejemplo:"
+
+#. type: example
+#: doc/guix.texi:5249
+#, 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: example
+#: doc/guix.texi:5252
+#, 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:5260
+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:5263
+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:5264
+#, 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:5270
+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."
+
+#. type: Plain text
+#: doc/guix.texi:5273
+msgid "The example above could be rewritten this way:"
+msgstr "El ejemplo previo podría ser reescrito de esta forma:"
+
+#. type: example
+#: doc/guix.texi:5278
+#, 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:5283
+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:5287
+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:5288
+#, 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:5292
+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."
+
+#. type: subsection
+#: doc/guix.texi:5301
+#, no-wrap
+msgid "@code{package} Reference"
+msgstr "Referencia de @code{package}"
+
+#. type: Plain text
+#: doc/guix.texi:5305
+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:5306
+#, no-wrap
+msgid "{Data Type} package"
+msgstr "{Tipo de datos} package"
+
+#. type: deftp
+#: doc/guix.texi:5308
+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:5312
+msgid "The name of the package, as a string."
+msgstr "El nombre del paquete, como una cadena."
+
+#. type: code{#1}
+#: doc/guix.texi:5313
+#, no-wrap
+msgid "version"
+msgstr "version"
+
+#. type: table
+#: doc/guix.texi:5315
+msgid "The version of the package, as a string."
+msgstr "La versión del paquete, como una cadena."
+
+#. type: code{#1}
+#: doc/guix.texi:5316 doc/guix.texi:9103 doc/guix.texi:10847
+#: doc/guix.texi:11285
+#, no-wrap
+msgid "source"
+msgstr "source"
+
+#. type: table
+#: doc/guix.texi:5323
+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}})."
+
+#. type: code{#1}
+#: doc/guix.texi:5324
+#, no-wrap
+msgid "build-system"
+msgstr "build-system"
+
+#. type: table
+#: doc/guix.texi:5327
+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:5328 doc/guix.texi:12883
+#, no-wrap
+msgid "@code{arguments} (default: @code{'()})"
+msgstr "@code{arguments} (predeterminados: @code{'()})"
+
+#. type: table
+#: doc/guix.texi:5331
+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:5332
+#, no-wrap
+msgid "@code{inputs} (default: @code{'()})"
+msgstr "@code{inputs} (predeterminadas: @code{'()})"
+
+#. type: itemx
+#: doc/guix.texi:5333
+#, no-wrap
+msgid "@code{native-inputs} (default: @code{'()})"
+msgstr "@code{native-inputs} (predeterminadas: @code{'()})"
+
+#. type: itemx
+#: doc/guix.texi:5334
+#, no-wrap
+msgid "@code{propagated-inputs} (default: @code{'()})"
+msgstr "@code{propagated-inputs} (predeterminadas: @code{'()})"
+
+#. type: cindex
+#: doc/guix.texi:5335
+#, no-wrap
+msgid "inputs, of packages"
+msgstr "entradas, de paquetes"
+
+#. type: table
+#: doc/guix.texi:5343
+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: example
+#: doc/guix.texi:5348
+#, 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\"))  ;la salida \"bin\" de Glib\n"
+
+#. type: cindex
+#: doc/guix.texi:5350
+#, no-wrap
+msgid "cross compilation, package dependencies"
+msgstr "compilación cruzada, dependencias de paquetes"
+
+#. type: table
+#: doc/guix.texi:5356
+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 cruzadamente, 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:5361
+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:5368
+msgid "package-propagated-inputs"
+msgstr "package-propagated-inputs"
+
+#. type: table
+#: doc/guix.texi:5368
+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)."
+
+#. type: table
+#: doc/guix.texi:5372
+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}."
+
+#. type: table
+#: doc/guix.texi:5379
+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}."
+
+#. type: item
+#: doc/guix.texi:5380
+#, no-wrap
+msgid "@code{outputs} (default: @code{'(\"out\")})"
+msgstr "@code{outputs} (predeterminada: @code{'(\"out\")})"
+
+#. type: table
+#: doc/guix.texi:5383
+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:5384
+#, no-wrap
+msgid "@code{native-search-paths} (default: @code{'()})"
+msgstr "@code{native-search-paths} (predeterminadas: @code{'()})"
+
+#. type: itemx
+#: doc/guix.texi:5385
+#, no-wrap
+msgid "@code{search-paths} (default: @code{'()})"
+msgstr "@code{search-paths} (predeterminadas: @code{'()})"
+
+#. type: table
+#: doc/guix.texi:5388
+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:5389
+#, no-wrap
+msgid "@code{replacement} (default: @code{#f})"
+msgstr "@code{replacement} (predeterminado: @code{1.0})"
+
+#. type: table
+#: doc/guix.texi:5393
+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:5394 doc/guix.texi:9095
+#, no-wrap
+msgid "synopsis"
+msgstr "synopsis"
+
+#. type: table
+#: doc/guix.texi:5396
+msgid "A one-line description of the package."
+msgstr "Una descripción en una línea del paquete."
+
+#. type: item
+#: doc/guix.texi:5397 doc/guix.texi:9096 doc/guix.texi:24846
+#, no-wrap
+msgid "description"
+msgstr "description"
+
+#. type: table
+#: doc/guix.texi:5399
+msgid "A more elaborate description of the package."
+msgstr "Una descripción más elaborada del paquete."
+
+#. type: code{#1}
+#: doc/guix.texi:5400
+#, no-wrap
+msgid "license"
+msgstr "license"
+
+#. type: cindex
+#: doc/guix.texi:5401
+#, no-wrap
+msgid "license, of packages"
+msgstr "licencia, de paquetes"
+
+#. type: table
+#: doc/guix.texi:5404
+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:5405 doc/guix.texi:9104
+#, no-wrap
+msgid "home-page"
+msgstr "home-page"
+
+#. type: table
+#: doc/guix.texi:5407
+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:5408
+#, no-wrap
+msgid "@code{supported-systems} (default: @var{%supported-systems})"
+msgstr "@code{supported-systems} (predeterminados: @code{%supported-systems})"
+
+# FUZZY
+#. type: table
+#: doc/guix.texi:5411
+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:5412
+#, no-wrap
+msgid "@code{maintainers} (default: @code{'()})"
+msgstr "@code{maintainers} (predeterminadas: @code{'()})"
+
+#. type: table
+#: doc/guix.texi:5414
+msgid "The list of maintainers of the package, as @code{maintainer} objects."
+msgstr "La lista de responsables del paquete, como objetos @code{maintainer}."
+
+#. type: item
+#: doc/guix.texi:5415
+#, 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:5419
+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:5422
+#, no-wrap
+msgid "{Scheme Syntax} this-package"
+msgstr "{Sintaxis Scheme} this-package"
+
+#. type: deffn
+#: doc/guix.texi:5425
+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:5428
+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: example
+#: doc/guix.texi:5433
+#, no-wrap
+msgid ""
+"(package\n"
+"  (name \"guile\")\n"
+"  ;; ...\n"
+"\n"
+msgstr ""
+"(package\n"
+"  (name \"guile\")\n"
+"  ;; ...\n"
+"\n"
+
+#. type: example
+#: doc/guix.texi:5439
+#, no-wrap
+msgid ""
+"  ;; 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"
+msgstr ""
+"  ;; Cuando se compila de forma cruzada, Guile, por ejemplo\n"
+"  ;; depende de una versión nativa de sí mismo. Añadirla aquí.\n"
+"  (native-inputs (if (%current-target-system)\n"
+"                     `((\"self\" ,this-package))\n"
+"                     '())))\n"
+
+#. type: deffn
+#: doc/guix.texi:5442
+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: subsection
+#: doc/guix.texi:5445
+#, no-wrap
+msgid "@code{origin} Reference"
+msgstr "Referencia de @code{origin}"
+
+#. type: Plain text
+#: doc/guix.texi:5449
+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})."
+
+#. type: deftp
+#: doc/guix.texi:5450
+#, no-wrap
+msgid "{Data Type} origin"
+msgstr "{Tipo de datos} origin"
+
+#. type: deftp
+#: doc/guix.texi:5452
+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:5454 doc/guix.texi:18891
+#, no-wrap
+msgid "uri"
+msgstr "uri"
+
+#. type: table
+#: doc/guix.texi:5459
+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 válidos de @code{uri} son: una cadena que contiene una URL, o una lista de cadenas."
+
+#. type: code{#1}
+#: doc/guix.texi:5460
+#, no-wrap
+msgid "method"
+msgstr "method"
+
+#. type: table
+#: doc/guix.texi:5462
+msgid "A procedure that handles the URI."
+msgstr "Un procedimiento que maneja el URI."
+
+# FUZZY
+# MAAV: No tengo mucha idea de cómo encajarlo...
+#. type: table
+#: doc/guix.texi:5464
+msgid "Examples include:"
+msgstr "Algunos ejemplos son:"
+
+#. type: item
+#: doc/guix.texi:5466
+#, no-wrap
+msgid "@var{url-fetch} from @code{(guix download)}"
+msgstr "@var{url-fetch} de @code{(guix download)}"
+
+#. type: table
+#: doc/guix.texi:5469
+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:5470 doc/guix.texi:8362
+#, no-wrap
+msgid "git-fetch"
+msgstr "git-fetch"
+
+#. type: item
+#: doc/guix.texi:5471
+#, no-wrap
+msgid "@var{git-fetch} from @code{(guix git-download)}"
+msgstr "@var{git-fetch} de @code{(guix git-download)}"
+
+# FUZZY
+#. type: table
+#: doc/guix.texi:5475
+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: example
+#: doc/guix.texi:5480
+#, 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"
+
+#. type: code{#1}
+#: doc/guix.texi:5483
+#, no-wrap
+msgid "sha256"
+msgstr "sha256"
+
+#. type: table
+#: doc/guix.texi:5487
+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."
+
+#. type: table
+#: doc/guix.texi:5491
+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:5492
+#, no-wrap
+msgid "@code{file-name} (default: @code{#f})"
+msgstr "@code{file-name} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:5498
+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."
+
+#. type: item
+#: doc/guix.texi:5499
+#, no-wrap
+msgid "@code{patches} (default: @code{'()})"
+msgstr "@code{patches} (predeterminados: @code{'()})"
+
+#. type: table
+#: doc/guix.texi:5502
+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."
+
+#. type: table
+#: doc/guix.texi:5506
+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 varlo de @code{%current-system} o @code{%current-target-system}."
+
+#. type: item
+#: doc/guix.texi:5507
+#, no-wrap
+msgid "@code{snippet} (default: @code{#f})"
+msgstr "@code{snippet} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:5511
+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:5512
+#, no-wrap
+msgid "@code{patch-flags} (default: @code{'(\"-p1\")})"
+msgstr "@code{patch-flags} (predeterminadas: @code{'(\"-p1\")})"
+
+#. type: table
+#: doc/guix.texi:5515
+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:5516
+#, no-wrap
+msgid "@code{patch-inputs} (default: @code{#f})"
+msgstr "@code{patch-inputs} (predeterminada: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:5520
+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:5521
+#, no-wrap
+msgid "@code{modules} (default: @code{'()})"
+msgstr "@code{modules} (predeterminados: @code{'()})"
+
+#. type: table
+#: doc/guix.texi:5524
+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:5525
+#, no-wrap
+msgid "@code{patch-guile} (default: @code{#f})"
+msgstr "@code{patch-guile} (predeterminado: @code{#f})"
+
+# FUZZY
+# MAAV: Sensible -> sensato no aporta mucho ni queda muy bien.
+#. type: table
+#: doc/guix.texi:5528
+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: cindex
+#: doc/guix.texi:5535
+#, no-wrap
+msgid "build system"
+msgstr "sistema de construcción"
+
+#. type: Plain text
+#: doc/guix.texi:5540
+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:5544
+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:5545
+#, no-wrap
+msgid "bag (low-level package representation)"
+msgstr "bag (representación de paquetes de bajo nivel)"
+
+#. type: Plain text
+#: doc/guix.texi:5552
+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})."
+
+#. type: Plain text
+#: doc/guix.texi:5560
+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:5564
+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 "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:5565
+#, no-wrap
+msgid "{Scheme Variable} gnu-build-system"
+msgstr "{Variable Scheme} gnu-build-system"
+
+#. type: defvr
+#: doc/guix.texi:5569
+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} 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:5570 doc/guix.texi:6232
+#, no-wrap
+msgid "build phases"
+msgstr "fases de construcción"
+
+#. type: defvr
+#: doc/guix.texi:5577
+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:5579
+#, no-wrap
+msgid "unpack"
+msgstr "unpack"
+
+#. type: table
+#: doc/guix.texi:5583
+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:5584
+#, no-wrap
+msgid "patch-source-shebangs"
+msgstr "patch-source-shebangs"
+
+#. type: table
+#: doc/guix.texi:5588
+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}."
+
+#. type: item
+#: doc/guix.texi:5589 doc/guix.texi:6190 doc/guix.texi:6238
+#, no-wrap
+msgid "configure"
+msgstr "configure"
+
+#. type: table
+#: doc/guix.texi:5593
+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}."
+
+#. type: item
+#: doc/guix.texi:5594 doc/guix.texi:5783 doc/guix.texi:6195 doc/guix.texi:6242
+#: doc/guix.texi:24252
+#, no-wrap
+msgid "build"
+msgstr "build"
+
+#. type: table
+#: doc/guix.texi:5598
+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:5599 doc/guix.texi:5793 doc/guix.texi:6199
+#, no-wrap
+msgid "check"
+msgstr "check"
+
+#. type: table
+#: doc/guix.texi:5604
+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:5605 doc/guix.texi:5801 doc/guix.texi:6203 doc/guix.texi:6246
+#, no-wrap
+msgid "install"
+msgstr "install"
+
+#. type: table
+#: doc/guix.texi:5607
+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:5608
+#, no-wrap
+msgid "patch-shebangs"
+msgstr "patch-shebangs"
+
+#. type: table
+#: doc/guix.texi:5610
+msgid "Patch shebangs on the installed executable files."
+msgstr "Sustituye las secuencias ``#!'' en los ficheros ejecutables instalados."
+
+#. type: item
+#: doc/guix.texi:5611
+#, no-wrap
+msgid "strip"
+msgstr "strip"
+
+#. type: table
+#: doc/guix.texi:5615
+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), copiandolos a la salida @code{debug} cuando esté disponible (@pxref{Installing Debugging Files})."
+
+#. type: vindex
+#: doc/guix.texi:5617
+#, no-wrap
+msgid "%standard-phases"
+msgstr "%standard-phases"
+
+#. type: defvr
+#: doc/guix.texi:5622
+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 "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 la fase real."
+
+#. type: defvr
+#: doc/guix.texi:5625
+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:5628
+#, 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:5632
+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}."
+
+#. type: defvr
+#: doc/guix.texi:5639
+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:5646
+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 "Se han definido 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:5647
+#, no-wrap
+msgid "{Scheme Variable} ant-build-system"
+msgstr "{Variable Scheme} ant-build-system"
+
+#. type: defvr
+#: doc/guix.texi:5651
+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{http://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{http://ant.apache.org/, la herramienta de construcción Ant}."
+
+#. type: defvr
+#: doc/guix.texi:5656
+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:5662
+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."
+
+#. type: defvr
+#: doc/guix.texi:5670
+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."
+
+#. type: defvr
+#: doc/guix.texi:5674
+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:5677
+#, no-wrap
+msgid "{Scheme Variable} android-ndk-build-system"
+msgstr "{Variable Scheme} androd-ndk-build-system"
+
+#. type: cindex
+#: doc/guix.texi:5678
+#, no-wrap
+msgid "Android distribution"
+msgstr "distribución Android"
+
+#. type: cindex
+#: doc/guix.texi:5679
+#, no-wrap
+msgid "Android NDK build system"
+msgstr "Sistema de construcción NDK de Android"
+
+#. type: defvr
+#: doc/guix.texi:5683
+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:5687
+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\"."
+
+# FUZZY
+#. type: defvr
+#: doc/guix.texi:5690
+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."
+
+# FUZZY
+#. type: defvr
+#: doc/guix.texi:5693
+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."
+
+#. type: defvr
+#: doc/guix.texi:5696
+#, no-wrap
+msgid "{Scheme Variable} asdf-build-system/source"
+msgstr "{Variable Scheme} asdf-build-system/source"
+
+#. type: defvrx
+#: doc/guix.texi:5697
+#, no-wrap
+msgid "{Scheme Variable} asdf-build-system/sbcl"
+msgstr "{Variable Scheme} asdf-build-system/sbcl"
+
+#. type: defvrx
+#: doc/guix.texi:5698
+#, no-wrap
+msgid "{Scheme Variable} asdf-build-system/ecl"
+msgstr "{Variable Scheme} asdf-build-system/ecl"
+
+#. type: defvr
+#: doc/guix.texi:5704
+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:5711
+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:5715
+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:5719
+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:5724
+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:5731
+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:5740
+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}."
+
+#. type: defvr
+#: doc/guix.texi:5744
+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:5747
+#, no-wrap
+msgid "{Scheme Variable} cargo-build-system"
+msgstr "{Variable Scheme} cargo-build-system"
+
+#. type: cindex
+#: doc/guix.texi:5748
+#, no-wrap
+msgid "Rust programming language"
+msgstr "lenguaje de programación Rust"
+
+#. type: cindex
+#: doc/guix.texi:5749
+#, no-wrap
+msgid "Cargo (Rust build system)"
+msgstr "Cargo (sistema de construcción de Rust)"
+
+#. type: defvr
+#: doc/guix.texi:5753
+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:5758
+msgid "In its @code{configure} phase, this build system replaces dependencies specified in the @file{Carto.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}."
+
+#. type: cindex
+#: doc/guix.texi:5760
+#, no-wrap
+msgid "Clojure (programming language)"
+msgstr "Clojure (lenguaje de programación)"
+
+#. type: cindex
+#: doc/guix.texi:5761
+#, no-wrap
+msgid "simple Clojure build system"
+msgstr "sistema de construcción simple de Clojure"
+
+#. type: defvr
+#: doc/guix.texi:5762
+#, no-wrap
+msgid "{Scheme Variable} clojure-build-system"
+msgstr "{Variable Scheme} clojure-build-system"
+
+#. type: defvr
+#: doc/guix.texi:5767
+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:5771
+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:5777
+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:5780
+msgid "This build system is an extension of @var{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:5792
+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."
+
+#. type: table
+#: doc/guix.texi:5800
+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:5803
+msgid "This phase installs all jars built previously."
+msgstr "Esta fase instala todos los archivadores jar construidos previamente."
+
+#. type: defvr
+#: doc/guix.texi:5806
+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:5809
+#, no-wrap
+msgid "install-doc"
+msgstr "install-doc"
+
+#. type: table
+#: doc/guix.texi:5814
+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 "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."
+
+#. type: defvr
+#: doc/guix.texi:5817
+#, no-wrap
+msgid "{Scheme Variable} cmake-build-system"
+msgstr "{Variable Scheme} cmake-build-system"
+
+#. type: defvr
+#: doc/guix.texi:5821
+msgid "This variable is exported by @code{(guix build-system cmake)}.  It implements the build procedure for packages using the @url{http://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{http://www.cmake.org, herramienta de construcción CMake}."
+
+#. type: defvr
+#: doc/guix.texi:5825
+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:5832
+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:5834
+#, no-wrap
+msgid "{Scheme Variable} dune-build-system"
+msgstr "{Variable Scheme} dune-build-system"
+
+#. type: defvr
+#: doc/guix.texi:5841
+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:5845
+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:5849
+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:5853
+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:5858
+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:5860
+#, no-wrap
+msgid "{Scheme Variable} go-build-system"
+msgstr "{Variable Scheme} go-build-system"
+
+#. type: defvr
+#: doc/guix.texi:5865
+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:5876
+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 referenciados, y proporciona una forma de referenciar 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."
+
+# FUZZY
+#. type: defvr
+#: doc/guix.texi:5881
+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."
+
+#. type: defvr
+#: doc/guix.texi:5883
+#, no-wrap
+msgid "{Scheme Variable} glib-or-gtk-build-system"
+msgstr "{Variable Scheme} glib-or-gtk-build-system"
+
+#. type: defvr
+#: doc/guix.texi:5886
+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:5889
+msgid "This build system adds the following two phases to the ones defined by @var{gnu-build-system}:"
+msgstr "Este sistema de construcción añade las siguientes dos fases a las definidas en @var{gnu-build-system}:"
+
+#. type: item
+#: doc/guix.texi:5891 doc/guix.texi:6219
+#, no-wrap
+msgid "glib-or-gtk-wrap"
+msgstr "glib-or-gtk-wrap"
+
+#. type: table
+#: doc/guix.texi:5898
+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}."
+
+#. type: table
+#: doc/guix.texi:5905
+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:5906 doc/guix.texi:6223
+#, no-wrap
+msgid "glib-or-gtk-compile-schemas"
+msgstr "glib-or-gtk-compile-schemas"
+
+#. type: table
+#: doc/guix.texi:5914
+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:5917
+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:5919
+#, no-wrap
+msgid "{Scheme Variable} guile-build-system"
+msgstr "{Variable Scheme} guile-build-system"
+
+#. type: defvr
+#: doc/guix.texi:5926
+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."
+
+#. type: defvr
+#: doc/guix.texi:5929
+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}."
+
+#. type: defvr
+#: doc/guix.texi:5932
+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:5934
+#, no-wrap
+msgid "{Scheme Variable} minify-build-system"
+msgstr "{Variable Scheme} minify-build-system"
+
+# FUZZY
+#. type: defvr
+#: doc/guix.texi:5937
+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:5943
+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."
+
+# FUZZY
+#. type: defvr
+#: doc/guix.texi:5947
+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."
+
+#. type: defvr
+#: doc/guix.texi:5949
+#, no-wrap
+msgid "{Scheme Variable} ocaml-build-system"
+msgstr "{Variable Scheme} ocaml-build-system"
+
+#. type: defvr
+#: doc/guix.texi:5955
+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:5965
+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 habilitación de las pruebas si no están deshabilitadas. 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:5970
+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}."
+
+#. type: defvr
+#: doc/guix.texi:5974
+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}."
+
+#. type: defvr
+#: doc/guix.texi:5982
+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."
+
+# FUZZY
+# MAAV (TODO): Está un poco mal escrito... :(
+#. type: defvr
+#: doc/guix.texi:5990
+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, que no es el comportamiento deseado en guix. En particular, intentarán instalar ficheros @file{.so} en su directorio de módulos, normalmente lo adecuado puesto que es el directorio del compilador de OCaml. No obstante, en guix estas bibliotecas no se pueden encontrar allí y usamos @code{CAML_LD_LIBRARY_PATH}. Esta variable apunta a @file{lib/ocaml/site-lib/stubslibs} y allí es donde las bibliotecas @file{.so} deben instalarse."
+
+#. type: defvr
+#: doc/guix.texi:5992
+#, no-wrap
+msgid "{Scheme Variable} python-build-system"
+msgstr "{Variable Scheme} python-build-system"
+
+#. type: defvr
+#: doc/guix.texi:5997
+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:6001
+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."
+
+#. type: defvr
+#: doc/guix.texi:6007
+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:6012
+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 "Por defecto guix llama a @code{setup.py} bajo el control de @code{setuptools} de manera similar a @command{pip}. Algunos paquetes no son compatibles con setuptools (y pip), por lo que puede deshabilitar esta configuración estableciendo el parámetro @code{#:use-setuptools} a @code{#f}."
+
+#. type: defvr
+#: doc/guix.texi:6014
+#, no-wrap
+msgid "{Scheme Variable} perl-build-system"
+msgstr "{Variable Scheme} perl-build-system"
+
+#. type: defvr
+#: doc/guix.texi:6026
+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 invertirse especificando @code{#t} en el parámetro @code{#:make-maker?}."
+
+#. type: defvr
+#: doc/guix.texi:6030
+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:6032
+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:6034
+#, no-wrap
+msgid "{Scheme Variable} r-build-system"
+msgstr "{Variable Scheme} r-build-system"
+
+#. type: defvr
+#: doc/guix.texi:6042
+msgid "This variable is exported by @code{(guix build-system r)}.  It implements the build procedure used by @uref{http://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{http://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}."
+
+#. type: defvr
+#: doc/guix.texi:6044
+#, no-wrap
+msgid "{Scheme Variable} rakudo-build-system"
+msgstr "{Variable Scheme} rakudo-build-system"
+
+# FUZZY
+#. type: defvr
+#: doc/guix.texi:6052
+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?}."
+
+#. type: defvr
+#: doc/guix.texi:6060
+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:6062
+#, no-wrap
+msgid "{Scheme Variable} texlive-build-system"
+msgstr "{Variable Scheme} texlive-build-system"
+
+#. type: defvr
+#: doc/guix.texi:6067
+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."
+
+#. type: defvr
+#: doc/guix.texi:6076
+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."
+
+#. type: defvr
+#: doc/guix.texi:6079
+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."
+
+#. type: defvr
+#: doc/guix.texi:6081
+#, no-wrap
+msgid "{Scheme Variable} ruby-build-system"
+msgstr "{Variable Scheme} ruby-build-system"
+
+#. type: defvr
+#: doc/guix.texi:6085
+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:6093
+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, directorios y archivadores tar pueden referenciarse 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:6097
+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:6099
+#, no-wrap
+msgid "{Scheme Variable} waf-build-system"
+msgstr "{Variable Scheme} waf-build-system"
+
+#. type: defvr
+#: doc/guix.texi:6105
+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:6109
+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:6111
+#, no-wrap
+msgid "{Scheme Variable} scons-build-system"
+msgstr "{Variable Scheme} scons-build-system"
+
+#. type: defvr
+#: doc/guix.texi:6117
+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:6122
+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 "Las opciones adicionales a pasar a @code{scons} se pueden especificar con el parámetro @code{#:scons-flags}. 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:6124
+#, no-wrap
+msgid "{Scheme Variable} haskell-build-system"
+msgstr "{Variable Scheme} haskell-build-system"
+
+# FUZZY
+#. type: defvr
+#: doc/guix.texi:6138
+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."
+
+#. type: defvr
+#: doc/guix.texi:6141
+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:6143
+#, no-wrap
+msgid "{Scheme Variable} dub-build-system"
+msgstr "{Variable Scheme} dub-build-system"
+
+#. type: defvr
+#: doc/guix.texi:6148
+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."
+
+#. type: defvr
+#: doc/guix.texi:6151
+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:6153
+#, no-wrap
+msgid "{Scheme Variable} emacs-build-system"
+msgstr "{Variable Scheme} emacs-build-system"
+
+#. type: defvr
+#: doc/guix.texi:6157
+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:6164
+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 "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}. Cada paquete se instala en su propio directorio bajo @file{share/emacs/site-lisp/guix.d}."
+
+#. type: defvr
+#: doc/guix.texi:6166
+#, no-wrap
+msgid "{Scheme Variable} font-build-system"
+msgstr "{Variable Scheme} font-build-system"
+
+#. type: defvr
+#: doc/guix.texi:6172
+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."
+
+#. type: defvr
+#: doc/guix.texi:6174
+#, no-wrap
+msgid "{Scheme Variable} meson-build-system"
+msgstr "{Variable Scheme} meson-build-system"
+
+#. type: defvr
+#: doc/guix.texi:6178
+msgid "This variable is exported by @code{(guix build-system meson)}.  It implements the build procedure for packages that use @url{http://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{http://mesonbuild.com, Meson} como su sistema de construcción."
+
+#. type: defvr
+#: doc/guix.texi:6184
+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:6187
+msgid "This build system is an extension of @var{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:6194
+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}."
+
+#. type: table
+#: doc/guix.texi:6198
+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:6202
+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:6205
+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:6208
+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:6211
+#, no-wrap
+msgid "fix-runpath"
+msgstr "fix-runpath"
+
+#. type: table
+#: doc/guix.texi:6218
+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:6222 doc/guix.texi:6226
+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:6229
+#, no-wrap
+msgid "{Scheme Variable} linux-module-build-system"
+msgstr "{Variable Scheme} linux-module-build-system"
+
+#. type: defvr
+#: doc/guix.texi:6231
+msgid "@var{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:6235
+msgid "This build system is an extension of @var{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:6241
+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:6245
+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:6249
+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."
+
+#. type: defvr
+#: doc/guix.texi:6254
+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 nucleo 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)."
+
+#. type: Plain text
+#: doc/guix.texi:6260
+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:6261
+#, no-wrap
+msgid "{Scheme Variable} trivial-build-system"
+msgstr "{Variable Scheme} trivial-build-system"
+
+#. type: defvr
+#: doc/guix.texi:6263
+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:6268
+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:6274
+#, no-wrap
+msgid "store items"
+msgstr "elementos del almacén"
+
+#. type: cindex
+#: doc/guix.texi:6275
+#, no-wrap
+msgid "store paths"
+msgstr "rutas del almacén"
+
+#. type: Plain text
+#: doc/guix.texi:6286
+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:6291
+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:6296
+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})."
+
+#. type: quotation
+#: doc/guix.texi:6300
+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:6307
+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}."
+
+#. type: defvr
+#: doc/guix.texi:6308
+#, no-wrap
+msgid "{Environment Variable} GUIX_DAEMON_SOCKET"
+msgstr "{Variable de entorno} GUIX_DAEMON_SOCKET"
+
+#. type: defvr
+#: doc/guix.texi:6313
+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:"
+
+#. type: code{#1}
+#: doc/guix.texi:6315 doc/guix.texi:18567
+#, no-wrap
+msgid "file"
+msgstr "file"
+
+#. type: itemx
+#: doc/guix.texi:6316
+#, no-wrap
+msgid "unix"
+msgstr "unix"
+
+#. type: table
+#: doc/guix.texi:6320
+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:6321
+#, no-wrap
+msgid "guix"
+msgstr "guix"
+
+#. type: table
+#: doc/guix.texi:6329
+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:6332
+#, no-wrap
+msgid "guix://master.guix.example.org:1234\n"
+msgstr "guix://principal.guix.example.org:1234\n"
+
+#. type: table
+#: doc/guix.texi:6337
+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:6341
+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}})."
+
+#. type: item
+#: doc/guix.texi:6342
+#, no-wrap
+msgid "ssh"
+msgstr "ssh"
+
+#. type: cindex
+#: doc/guix.texi:6343
+#, no-wrap
+msgid "SSH access to build daemons"
+msgstr "acceso SSH a los daemons de construcción"
+
+#. type: table
+#: doc/guix.texi:6347
+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 "Estas URI le permiten conectarse a un daemon remoto sobre SSH@footnote{Esta característica necesita Guile-SSH (@pxref{Requirements}).}. Una URL típica debería ser algo así:"
+
+#. type: example
+#: doc/guix.texi:6350
+#, no-wrap
+msgid "ssh://charlie@@guix.example.org:22\n"
+msgstr "ssh://carlos@@guix.example.org:22\n"
+
+#. type: table
+#: doc/guix.texi:6354
+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})."
+
+#. type: defvr
+#: doc/guix.texi:6357
+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:6364
+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:6367
+#, 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:6372
+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."
+
+#. type: deffn
+#: doc/guix.texi:6375
+msgid "@var{file} defaults to @var{%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 @var{%default-socket-path}, que ese la ruta esperada según las opciones pasadas a @code{configure}."
+
+#. type: deffn
+#: doc/guix.texi:6377
+#, no-wrap
+msgid "{Scheme Procedure} close-connection @var{server}"
+msgstr "{Procedimiento Scheme} close-connection @var{servidor}"
+
+#. type: deffn
+#: doc/guix.texi:6379
+msgid "Close the connection to @var{server}."
+msgstr "Cierra la conexión al @var{servidor}."
+
+#. type: defvr
+#: doc/guix.texi:6381
+#, no-wrap
+msgid "{Scheme Variable} current-build-output-port"
+msgstr "{Variable Scheme} current-build-output-port"
+
+#. type: defvr
+#: doc/guix.texi:6384
+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:6388
+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:6389
+#, 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:6390
+#, no-wrap
+msgid "invalid store items"
+msgstr "elementos inválidos del almacén"
+
+#. type: deffn
+#: doc/guix.texi:6395
+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 ejemlo debido a que es el resultado de una construcción interumpida o fallida)."
+
+#. type: deffn
+#: doc/guix.texi:6398
+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:6400
+#, 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:6404
+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 referenciadas por la ruta del almacén resultante."
+
+#. type: deffn
+#: doc/guix.texi:6406
+#, no-wrap
+msgid "{Scheme Procedure} build-derivations @var{server} @var{derivations}"
+msgstr "{Procedimiento Scheme} build-derivations @var{servidor} @var{derivaciones}"
+
+#. type: deffn
+#: doc/guix.texi:6410
+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 "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."
+
+#. type: Plain text
+#: doc/guix.texi:6416
+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 "Fijese 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:6419
+msgid "This section is currently incomplete."
+msgstr "Esta sección actualmente está incompleta."
+
+#. type: cindex
+#: doc/guix.texi:6423
+#, no-wrap
+msgid "derivations"
+msgstr "derivaciones"
+
+# FUZZY
+# TODO: piece -> pieza...
+#. type: Plain text
+#: doc/guix.texi:6427
+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:6432
+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."
+
+#. type: cindex
+#: doc/guix.texi:6434
+#, no-wrap
+msgid "build-time dependencies"
+msgstr "tiempo de construcción, dependencias"
+
+#. type: cindex
+#: doc/guix.texi:6435
+#, no-wrap
+msgid "dependencies, build-time"
+msgstr "dependencias, tiempo de construcción"
+
+#. type: itemize
+#: doc/guix.texi:6439
+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.)."
+
+#. type: itemize
+#: doc/guix.texi:6442
+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:6446
+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."
+
+#. type: itemize
+#: doc/guix.texi:6449
+msgid "A list of environment variables to be defined."
+msgstr "Una lista de variables de entorno a ser definidas."
+
+#. type: cindex
+#: doc/guix.texi:6452
+#, no-wrap
+msgid "derivation path"
+msgstr "ruta de derivación"
+
+#. type: Plain text
+#: doc/guix.texi:6460
+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})."
+
+#. type: cindex
+#: doc/guix.texi:6461
+#, no-wrap
+msgid "fixed-output derivations"
+msgstr "derivaciones de salida fija"
+
+#. type: Plain text
+#: doc/guix.texi:6468
+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."
+
+#. type: item
+#: doc/guix.texi:6469 doc/guix.texi:9456
+#, no-wrap
+msgid "references"
+msgstr "references"
+
+#. type: cindex
+#: doc/guix.texi:6470
+#, no-wrap
+msgid "run-time dependencies"
+msgstr "tiempo de ejecución, dependencias"
+
+#. type: cindex
+#: doc/guix.texi:6471
+#, no-wrap
+msgid "dependencies, run-time"
+msgstr "dependencias, tiempo de ejecución"
+
+# FUZZY
+#. type: Plain text
+#: doc/guix.texi:6478
+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."
+
+#. type: Plain text
+#: doc/guix.texi:6483
+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:6484
+#, 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:6493
+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"
+"  [#:recursive? #f] [#:inputs '()] [#:env-vars '()] @\n"
+"  [#:system (%current-system)] [#:references-graphs #f] @\n"
+"  [#:allowed-references #f] [#:disallowed-references #f] @\n"
+"  [#:leaked-env-vars #f] [#:local-build? #f] @\n"
+"  [#:substitutable? #t] [#:properties '()]\n"
+"Construye una derivación con los parámetros proporcionados, y devuelve el objeto @code{<derivation>} resultante."
+
+#. type: deffn
+#: doc/guix.texi:6500
+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."
+
+#. type: deffn
+#: doc/guix.texi:6505
+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."
+
+#. type: deffn
+#: doc/guix.texi:6510
+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:6517
+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."
+
+#. type: deffn
+#: doc/guix.texi:6522
+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:6527
+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:6530
+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:6536
+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:6541
+#, no-wrap
+msgid ""
+"(use-modules (guix utils)\n"
+"             (guix store)\n"
+"             (guix derivations))\n"
+"\n"
+msgstr ""
+"(use-modules (guix utils)\n"
+"             (guix store)\n"
+"             (guix derivations))\n"
+"\n"
+
+#. type: lisp
+#: doc/guix.texi:6550
+#, no-wrap
+msgid ""
+"(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"
+msgstr ""
+"(let ((constructor   ; añade el guión de Bash al almacén\n"
+"        (add-text-to-store store \"mi-constructor.sh\"\n"
+"                           \"echo hola mundo > $out\\n\" '())))\n"
+"  (derivation almacen \"foo\"\n"
+"              bash `(\"-e\" ,builder)\n"
+"              #:inputs `((,bash) (,constructor))\n"
+"              #:env-vars '((\"HOME\" . \"/sindirectorio\"))))\n"
+"@result{} #<derivation /gnu/store/@dots{}-foo.drv => /gnu/store/@dots{}-foo>\n"
+
+#. type: Plain text
+#: doc/guix.texi:6557
+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:6562
+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:6563
+#, no-wrap
+msgid "{Scheme Procedure} build-expression->derivation @var{store} @"
+msgstr "{Procedimiento Scheme} build-expression->derivation @var{almacén} @"
+
+#. type: deffn
+#: doc/guix.texi:6579
+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"
+"  [#:system (%current-system)] [#:inputs '()] @\n"
+"  [#:outputs '(\"out\")] [#:hash #f] [#:hash-algo #f] @\n"
+"  [#:recursive? #f] [#:env-vars '()] [#:modules '()] @\n"
+"  [#:references-graphs #f] [#:allowed-references #f] @\n"
+"  [#:disallowed-references #f] @\n"
+"  [#:local-build? #f] [#:substitutable? #t] [#:guile-for-build #f]\n"
+"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 tupletas @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:6587
+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:6591
+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:6596
+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:6601
+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:"
+
+#. type: lisp
+#: doc/guix.texi:6609
+#, no-wrap
+msgid ""
+"(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"
+msgstr ""
+"(let ((constructor '(let ((salida (assoc-ref %outputs \"out\")))\n"
+"                      (mkdir salida)    ; crea /gnu/store/@dots{}-goo\n"
+"                      (call-with-output-file (string-append salida \"/prueba\")\n"
+"                        (lambda (p)\n"
+"                          (display '(hola guix) p))))))\n"
+"  (build-expression->derivation almacen \"goo\" constructor))\n"
+"\n"
+
+#. type: lisp
+#: doc/guix.texi:6611
+#, 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:6617
+#, no-wrap
+msgid "monad"
+msgstr "mónada"
+
+# FUZZY
+# TODO: Side effect
+#. type: Plain text
+#: doc/guix.texi:6623
+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:6629
+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:6630
+#, no-wrap
+msgid "monadic values"
+msgstr "valores monádicos"
+
+#. type: cindex
+#: doc/guix.texi:6631
+#, no-wrap
+msgid "monadic functions"
+msgstr "funciones monádicas"
+
+#. type: Plain text
+#: doc/guix.texi:6641
+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:6643
+msgid "Consider this ``normal'' procedure:"
+msgstr "Considere este procedimiento ``normal'':"
+
+#. type: example
+#: doc/guix.texi:6652
+#, no-wrap
+msgid ""
+"(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"
+msgstr ""
+"(define (enlace-sh almacen)\n"
+"  ;; Devuelve una derivación que enlaza el ejecutable 'bash'.\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:6656
+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: example
+#: doc/guix.texi:6664
+#, no-wrap
+msgid ""
+"(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"
+msgstr ""
+"(define (enlace-sh)\n"
+"  ;; Lo mismo, pero devuelve un valor monádico.\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:6671
+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:6675
+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: example
+#: doc/guix.texi:6681
+#, no-wrap
+msgid ""
+"(define (sh-symlink)\n"
+"  (gexp->derivation \"sh\"\n"
+"                    #~(symlink (string-append #$bash \"/bin/bash\")\n"
+"                               #$output)))\n"
+msgstr ""
+"(define (enlace-sh)\n"
+"  (gexp->derivation \"sh\"\n"
+"                    #~(symlink (string-append #$bash \"/bin/bash\")\n"
+"                               #$output)))\n"
+
+# FUZZY
+# TODO: Necesita repensarse.
+#. type: Plain text
+#: doc/guix.texi:6690
+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: example
+#: doc/guix.texi:6694
+#, no-wrap
+msgid ""
+"(run-with-store (open-connection) (sh-symlink))\n"
+"@result{} /gnu/store/...-sh-symlink\n"
+msgstr ""
+"(run-with-store (open-connection) (enlace-sh))\n"
+"@result{} /gnu/store/...-enlace-para-sh\n"
+
+#. type: Plain text
+#: doc/guix.texi:6700
+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:"
+
+#. type: example
+#: doc/guix.texi:6704
+#, 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:6708
+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:6717
+#, no-wrap
+msgid ""
+"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"
+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:6722
+msgid "Note that non-monadic values cannot be returned in the @code{store-monad} REPL."
+msgstr "Fijese que los valores no-monádicos no pueden devolverse en el entorno interactivo @code{store-monad}."
+
+#. type: Plain text
+#: doc/guix.texi:6725
+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:6726
+#, 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:6729
+msgid "Evaluate any @code{>>=} or @code{return} forms in @var{body} as being in @var{monad}."
+msgstr "Evalua cualquier forma @code{>>=} o @code{return} en @var{cuerpo} como estando en @var{mónada}."
+
+#. type: deffn
+#: doc/guix.texi:6731
+#, no-wrap
+msgid "{Scheme Syntax} return @var{val}"
+msgstr "{Sintaxis Scheme} return @var{val}"
+
+#. type: deffn
+#: doc/guix.texi:6733
+msgid "Return a monadic value that encapsulates @var{val}."
+msgstr "Devuelve el valor monádico que encapsula @var{val}."
+
+#. type: deffn
+#: doc/guix.texi:6735
+#, no-wrap
+msgid "{Scheme Syntax} >>= @var{mval} @var{mproc} ..."
+msgstr "{Sintaxis Scheme} >>= @var{mval} @var{mproc} ..."
+
+#. type: deffn
+#: doc/guix.texi:6742
+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: example
+#: doc/guix.texi:6750
+#, no-wrap
+msgid ""
+"(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"
+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"
+"  'un-estado)\n"
+"\n"
+
+#. type: example
+#: doc/guix.texi:6753
+#, no-wrap
+msgid ""
+"@result{} 4\n"
+"@result{} some-state\n"
+msgstr ""
+"@result{} 4\n"
+"@result{} un-estado\n"
+
+#. type: deffn
+#: doc/guix.texi:6756
+#, 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:6758
+msgid "@var{body} ..."
+msgstr "@var{cuerpo} ..."
+
+#. type: deffnx
+#: doc/guix.texi:6758
+#, 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:6770
+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:6773
+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:6775
+#, no-wrap
+msgid "{Scheme System} mbegin @var{monad} @var{mexp} ..."
+msgstr "{Sistema Scheme} mbegin @var{mónada} @var{mexp} ..."
+
+#. type: deffn
+#: doc/guix.texi:6779
+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:6783
+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:6785
+#, 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:6790
+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:6792
+#, 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:6797
+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:6799
+#, no-wrap
+msgid "state monad"
+msgstr "mónada de estado"
+
+#. type: Plain text
+#: doc/guix.texi:6803
+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:6804
+#, no-wrap
+msgid "{Scheme Variable} %state-monad"
+msgstr "{Variable Scheme} %state-monad"
+
+#. type: defvr
+#: doc/guix.texi:6807
+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:6811
+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: example
+#: doc/guix.texi:6818
+#, no-wrap
+msgid ""
+"(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"
+msgstr ""
+"(define (cuadrado 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: example
+#: doc/guix.texi:6822
+#, 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 cuadrado (iota 3))) 0)\n"
+"@result{} (0 1 4)\n"
+"@result{} 3\n"
+
+#. type: defvr
+#: doc/guix.texi:6826
+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}."
+
+#. type: deffn
+#: doc/guix.texi:6828
+#, no-wrap
+msgid "{Monadic Procedure} current-state"
+msgstr "{Procedimiento monádico} current-state"
+
+#. type: deffn
+#: doc/guix.texi:6830
+msgid "Return the current state as a monadic value."
+msgstr "Devuelve el estado actual como un valor monádico."
+
+#. type: deffn
+#: doc/guix.texi:6832
+#, no-wrap
+msgid "{Monadic Procedure} set-current-state @var{value}"
+msgstr "{Procedimiento monádico} set-current-state @var{valor}"
+
+#. type: deffn
+#: doc/guix.texi:6835
+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:6837
+#, no-wrap
+msgid "{Monadic Procedure} state-push @var{value}"
+msgstr "{Procedimiento monádico} state-push @var{valor}"
+
+#. type: deffn
+#: doc/guix.texi:6840
+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:6842
+#, no-wrap
+msgid "{Monadic Procedure} state-pop"
+msgstr "{Procedimiento monádico} state-pop"
+
+#. type: deffn
+#: doc/guix.texi:6845
+msgid "Pop a value from the current state and return it as a monadic value.  The state is assumed to be a list."
+msgstr "Desapila un valor del estado actual y lo devuelve como un valor monádico. El estado se asume que es una lista."
+
+#. type: deffn
+#: doc/guix.texi:6847
+#, 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:6850
+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:6854
+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:6855
+#, no-wrap
+msgid "{Scheme Variable} %store-monad"
+msgstr "{Variable Scheme} %store-monad"
+
+#. type: defvr
+#: doc/guix.texi:6857
+msgid "The store monad---an alias for @var{%state-monad}."
+msgstr "La mónada del almacén---un alias para @var{%state-monad}."
+
+#. type: defvr
+#: doc/guix.texi:6861
+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'' pasandolo al procedimiento @code{run-with-store} (vea más adelante)."
+
+#. type: deffn
+#: doc/guix.texi:6863
+#, 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:6866
+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:6868
+#, 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:6872
+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."
+
+#. type: deffn
+#: doc/guix.texi:6874
+#, 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:6878
+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."
+
+#. type: deffn
+#: doc/guix.texi:6880
+#, no-wrap
+msgid "{Monadic Procedure} interned-file @var{file} [@var{name}] @"
+msgstr "{Procedimiento monádico} interned-file @var{fichero} [@var{nombre}] @"
+
+#. type: deffn
+#: doc/guix.texi:6885
+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."
+
+#. type: deffn
+#: doc/guix.texi:6889 doc/guix.texi:7302
+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."
+
+#. type: deffn
+#: doc/guix.texi:6894 doc/guix.texi:7307
+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."
+
+#. type: deffn
+#: doc/guix.texi:6896
+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:"
+
+#. type: example
+#: doc/guix.texi:6902
+#, no-wrap
+msgid ""
+"(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"
+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: example
+#: doc/guix.texi:6904
+#, 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:6910
+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:6911
+#, no-wrap
+msgid "{Monadic Procedure} package-file @var{package} [@var{file}] @"
+msgstr "{Procedimiento monádico} package-file @var{paquete} [@var{fichero}] @"
+
+#. type: deffn
+#: doc/guix.texi:6919
+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."
+
+#. type: deffn
+#: doc/guix.texi:6921
+#, 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:6922
+#, no-wrap
+msgid "{Monadic Procedure} package->cross-derivation @var{package} @"
+msgstr "{Procedimiento monádico} package->cross-derivation @var{paquete} @"
+
+#. type: deffn
+#: doc/guix.texi:6926
+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:6932
+#, no-wrap
+msgid "G-expression"
+msgstr "expresión-G"
+
+# FUZZY
+#. type: cindex
+#: doc/guix.texi:6933
+#, no-wrap
+msgid "build code quoting"
+msgstr "escape de código de construcción"
+
+#. type: Plain text
+#: doc/guix.texi:6939
+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:6940
+#, no-wrap
+msgid "strata of code"
+msgstr "estratos de código"
+
+#. type: Plain text
+#: doc/guix.texi:6952
+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."
+
+#. type: Plain text
+#: doc/guix.texi:6959
+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:6968
+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:6973
+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."
+
+#. type: itemize
+#: doc/guix.texi:6978
+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."
+
+#. type: itemize
+#: doc/guix.texi:6983
+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:6985 doc/guix.texi:7489
+#, 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:6995
+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)."
+
+#. type: Plain text
+#: doc/guix.texi:6997
+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: example
+#: doc/guix.texi:7005
+#, no-wrap
+msgid ""
+"(define build-exp\n"
+"  #~(begin\n"
+"      (mkdir #$output)\n"
+"      (chdir #$output)\n"
+"      (symlink (string-append #$coreutils \"/bin/ls\")\n"
+"               \"list-files\")))\n"
+msgstr ""
+"(define exp-construccion\n"
+"  #~(begin\n"
+"      (mkdir #$output)\n"
+"      (chdir #$output)\n"
+"      (symlink (string-append #$coreutils \"/bin/ls\")\n"
+"               \"enumera-ficheros\")))\n"
+
+#. type: Plain text
+#: doc/guix.texi:7010
+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: example
+#: doc/guix.texi:7013
+#, no-wrap
+msgid "(gexp->derivation \"the-thing\" build-exp)\n"
+msgstr "(gexp->derivation \"la-cosa\" exp-construccion)\n"
+
+#. type: Plain text
+#: doc/guix.texi:7021
+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:7022
+#, no-wrap
+msgid "cross compilation"
+msgstr "compilación cruzada"
+
+#. type: Plain text
+#: doc/guix.texi:7028
+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: example
+#: doc/guix.texi:7038
+#, no-wrap
+msgid ""
+"(gexp->derivation \"vi\"\n"
+"   #~(begin\n"
+"       (mkdir #$output)\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"
+msgstr ""
+"(gexp->derivation \"vi\"\n"
+"   #~(begin\n"
+"       (mkdir #$output)\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"
+
+#. type: Plain text
+#: doc/guix.texi:7044
+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:7045
+#, no-wrap
+msgid "imported modules, for gexps"
+msgstr "módulos importados, para expresiones-G"
+
+#. type: findex
+#: doc/guix.texi:7046
+#, no-wrap
+msgid "with-imported-modules"
+msgstr "with-imported-modules"
+
+#. type: Plain text
+#: doc/guix.texi:7051
+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: example
+#: doc/guix.texi:7062
+#, no-wrap
+msgid ""
+"(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"
+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 \"directorio-vacio\"\n"
+"                    #~(begin\n"
+"                        #$build\n"
+"                        (display \"éxito!\\n\")\n"
+"                        #t)))\n"
+
+#. type: Plain text
+#: doc/guix.texi:7068
+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:7069
+#, no-wrap
+msgid "module closure"
+msgstr "clausura de módulos"
+
+#. type: findex
+#: doc/guix.texi:7070
+#, no-wrap
+msgid "source-module-closure"
+msgstr "source-module-closure"
+
+#. type: Plain text
+#: doc/guix.texi:7077
+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:"
+
+#. type: example
+#: doc/guix.texi:7080
+#, no-wrap
+msgid ""
+"(use-modules (guix modules))   ;for 'source-module-closure'\n"
+"\n"
+msgstr ""
+"(use-modules (guix modules))   ;para 'source-module-closure'\n"
+"\n"
+
+#. type: example
+#: doc/guix.texi:7089
+#, no-wrap
+msgid ""
+"(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"
+msgstr ""
+"(with-imported-modules (source-module-closure\n"
+"                         '((guix build utils)\n"
+"                           (gnu build vm)))\n"
+"  (gexp->derivation \"algo-con-maq-virtuales\"\n"
+"                    #~(begin\n"
+"                        (use-modules (guix build utils)\n"
+"                                     (gnu build vm))\n"
+"                        @dots{})))\n"
+
+#. type: cindex
+#: doc/guix.texi:7091
+#, no-wrap
+msgid "extensions, for gexps"
+msgstr "extensiones, para expresiones G"
+
+#. type: findex
+#: doc/guix.texi:7092
+#, no-wrap
+msgid "with-extensions"
+msgstr "with-extensions"
+
+#. type: Plain text
+#: doc/guix.texi:7097
+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: example
+#: doc/guix.texi:7100
+#, no-wrap
+msgid ""
+"(use-modules (gnu packages guile))  ;for 'guile-json'\n"
+"\n"
+msgstr ""
+"(use-modules (gnu packages guile))  ;para 'guile-json'\n"
+"\n"
+
+#. type: example
+#: doc/guix.texi:7106
+#, no-wrap
+msgid ""
+"(with-extensions (list guile-json)\n"
+"  (gexp->derivation \"something-with-json\"\n"
+"                    #~(begin\n"
+"                        (use-modules (json))\n"
+"                        @dots{})))\n"
+msgstr ""
+"(with-extensions (list guile-json)\n"
+"  (gexp->derivation \"algo-con-json\"\n"
+"                    #~(begin\n"
+"                        (use-modules (json))\n"
+"                        @dots{})))\n"
+
+#. type: Plain text
+#: doc/guix.texi:7109
+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:7110
+#, no-wrap
+msgid "{Scheme Syntax} #~@var{exp}"
+msgstr "{Sintaxis Scheme} #~@var{exp}"
+
+#. type: deffnx
+#: doc/guix.texi:7111
+#, no-wrap
+msgid "{Scheme Syntax} (gexp @var{exp})"
+msgstr "{Sintaxis Scheme} (gexp @var{exp})"
+
+#. type: deffn
+#: doc/guix.texi:7114
+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:7116
+#, no-wrap
+msgid "#$@var{obj}"
+msgstr "#$@var{obj}"
+
+#. type: itemx
+#: doc/guix.texi:7117
+#, no-wrap
+msgid "(ungexp @var{obj})"
+msgstr "(ungexp @var{obj})"
+
+#. type: table
+#: doc/guix.texi:7122
+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}."
+
+#. type: table
+#: doc/guix.texi:7125
+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:7128
+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:7130
+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:7131
+#, no-wrap
+msgid "#$@var{obj}:@var{output}"
+msgstr "#$@var{obj}:@var{salida}"
+
+#. type: itemx
+#: doc/guix.texi:7132
+#, no-wrap
+msgid "(ungexp @var{obj} @var{output})"
+msgstr "(ungexp @var{obj} @var{salida})"
+
+#. type: table
+#: doc/guix.texi:7136
+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:7137
+#, no-wrap
+msgid "#+@var{obj}"
+msgstr "#+@var{obj}"
+
+#. type: itemx
+#: doc/guix.texi:7138
+#, no-wrap
+msgid "#+@var{obj}:output"
+msgstr "#+@var{obj}:salida"
+
+#. type: itemx
+#: doc/guix.texi:7139
+#, no-wrap
+msgid "(ungexp-native @var{obj})"
+msgstr "(ungexp-native @var{obj})"
+
+#. type: itemx
+#: doc/guix.texi:7140
+#, no-wrap
+msgid "(ungexp-native @var{obj} @var{output})"
+msgstr "(ungexp-native @var{obj} @var{salida})"
+
+#. type: table
+#: doc/guix.texi:7143
+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 "Lo mismo 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:7144
+#, no-wrap
+msgid "#$output[:@var{output}]"
+msgstr "#$output[:@var{salida}]"
+
+#. type: itemx
+#: doc/guix.texi:7145
+#, no-wrap
+msgid "(ungexp output [@var{output}])"
+msgstr "(ungexp output [@var{salida}])"
+
+#. type: table
+#: doc/guix.texi:7148
+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:7150
+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:7151
+#, no-wrap
+msgid "#$@@@var{lst}"
+msgstr "#$@@@var{lst}"
+
+#. type: itemx
+#: doc/guix.texi:7152
+#, no-wrap
+msgid "(ungexp-splicing @var{lst})"
+msgstr "(ungexp-splicing @var{lst})"
+
+#. type: table
+#: doc/guix.texi:7155
+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:7156
+#, no-wrap
+msgid "#+@@@var{lst}"
+msgstr "#+@@@var{lst}"
+
+#. type: itemx
+#: doc/guix.texi:7157
+#, no-wrap
+msgid "(ungexp-native-splicing @var{lst})"
+msgstr "(ungexp-native-splicing @var{lst})"
+
+#. type: table
+#: doc/guix.texi:7160
+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:7165
+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)."
+
+#. type: deffn
+#: doc/guix.texi:7167
+#, 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:7170
+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:7174
+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:"
+
+#. type: example
+#: doc/guix.texi:7180
+#, no-wrap
+msgid ""
+"`((guix build utils)\n"
+"  (guix gcrypt)\n"
+"  ((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:7185
+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."
+
+#. type: deffn
+#: doc/guix.texi:7189
+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:7191
+#, 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:7196
+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:7201
+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:7203
+#, no-wrap
+msgid "{Scheme Procedure} gexp? @var{obj}"
+msgstr "{Procedimiento Scheme} gexp? @var{obj}"
+
+#. type: deffn
+#: doc/guix.texi:7205
+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:7211
+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)."
+
+#. type: deffn
+#: doc/guix.texi:7212
+#, 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:7230
+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] @\n"
+"  [#:hash #f] [#:hash-algo #f] @\n"
+"  [#:recursive? #f] [#:env-vars '()] [#:modules '()] @\n"
+"  [#:module-path @var{%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"
+"  [#: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}."
+
+#. type: deffn
+#: doc/guix.texi:7238
+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:7241
+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 a usar 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:7244
+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:7247
+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:7254
+#, no-wrap
+msgid ""
+"(@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"
+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"
+
+#. type: deffn
+#: doc/guix.texi:7260
+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."
+
+#. type: deffn
+#: doc/guix.texi:7266
+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:7269
+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:7271
+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:7273
+#, no-wrap
+msgid "file-like objects"
+msgstr "objetos tipo-fichero"
+
+# FUZZY
+#. type: Plain text
+#: doc/guix.texi:7278
+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:"
+
+#. type: example
+#: doc/guix.texi:7282
+#, no-wrap
+msgid ""
+"#~(system* #$(file-append glibc \"/sbin/nscd\") \"-f\"\n"
+"           #$(local-file \"/tmp/my-nscd.conf\"))\n"
+msgstr ""
+"#~(system* #$(file-append glibc \"/sbin/nscd\") \"-f\"\n"
+"           #$(local-file \"/tmp/mi-nscd.conf\"))\n"
+
+#. type: Plain text
+#: doc/guix.texi:7291
+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."
+
+#. type: deffn
+#: doc/guix.texi:7292
+#, no-wrap
+msgid "{Scheme Procedure} local-file @var{file} [@var{name}] @"
+msgstr "{Procedimiento Scheme} local-file @var{fichero} [@var{nombre}] @"
+
+#. type: deffn
+#: doc/guix.texi:7298
+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}."
+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. @var{fichero} se añadirá al almacén bajo @var{nombre}---por defecto el nombre base de @var{fichero}."
+
+#. type: deffn
+#: doc/guix.texi:7310
+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:7312
+#, 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:7315
+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."
+
+#. type: deffn
+#: doc/guix.texi:7317
+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:7319
+#, 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:7324
+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)]\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}."
+
+#. type: deffn
+#: doc/guix.texi:7326
+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:7328
+#, 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:7333
+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}."
+msgstr ""
+"[#:guile (default-guile)] [#:module-path %load-path]\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:7336
+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: example
+#: doc/guix.texi:7339
+#, no-wrap
+msgid ""
+"(use-modules (guix gexp) (gnu packages base))\n"
+"\n"
+msgstr ""
+"(use-modules (guix gexp) (gnu packages base))\n"
+"\n"
+
+#. type: example
+#: doc/guix.texi:7343
+#, no-wrap
+msgid ""
+"(gexp->script \"list-files\"\n"
+"              #~(execl #$(file-append coreutils \"/bin/ls\")\n"
+"                       \"ls\"))\n"
+msgstr ""
+"(gexp->script \"enumera-ficheros\"\n"
+"              #~(execl #$(file-append coreutils \"/bin/ls\")\n"
+"                       \"ls\"))\n"
+
+#. type: deffn
+#: doc/guix.texi:7348
+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í:"
+
+#. type: example
+#: doc/guix.texi:7353
+#, no-wrap
+msgid ""
+"#!/gnu/store/@dots{}-guile-2.0.11/bin/guile -ds\n"
+"!#\n"
+"(execl \"/gnu/store/@dots{}-coreutils-8.22\"/bin/ls\" \"ls\")\n"
+msgstr ""
+"#!/gnu/store/@dots{}-guile-2.0.11/bin/guile -ds\n"
+"!#\n"
+"(execl \"/gnu/store/@dots{}-coreutils-8.22\"/bin/ls\" \"ls\")\n"
+
+#. type: deffn
+#: doc/guix.texi:7356
+#, 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:7361
+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:7363
+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:7365
+#, no-wrap
+msgid "{Monadic Procedure} gexp->file @var{name} @var{exp} @"
+msgstr "{Procedimiento monádico} gexp->file @var{nombre} @var{exp} @"
+
+# FUZZY
+# MAAV: Splice no consigo encajarlo bien...
+#. type: deffn
+#: doc/guix.texi:7372
+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."
+
+#. type: deffn
+#: doc/guix.texi:7377
+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}."
+
+#. type: deffn
+#: doc/guix.texi:7380
+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."
+
+#. type: deffn
+#: doc/guix.texi:7382
+#, no-wrap
+msgid "{Scheme Procedure} scheme-file @var{name} @var{exp} [#:splice? #f]"
+msgstr "{Procedimiento Scheme} scheme-file @var{nombre} @var{exp} [#:splice? #f]"
+
+#. type: deffn
+#: doc/guix.texi:7385
+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}."
+
+#. type: deffn
+#: doc/guix.texi:7387
+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:7389
+#, 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:7395
+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."
+
+#. type: deffn
+#: doc/guix.texi:7400
+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:"
+
+#. type: example
+#: doc/guix.texi:7408
+#, no-wrap
+msgid ""
+"(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"
+msgstr ""
+"(define (perfil.sh)\n"
+"  ;; Devuelve el nombre de un guión shell en el almacén\n"
+"  ;; que establece la variable de entorno 'PATH'\n"
+"  (text-file* \"perfil.sh\"\n"
+"              \"export PATH=\" coreutils \"/bin:\"\n"
+"              grep \"/bin:\" sed \"/bin\\n\"))\n"
+
+#. type: deffn
+#: doc/guix.texi:7413
+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."
+
+#. type: deffn
+#: doc/guix.texi:7415
+#, 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:7419
+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:"
+
+#. type: example
+#: doc/guix.texi:7423
+#, no-wrap
+msgid ""
+"(mixed-text-file \"profile\"\n"
+"                 \"export PATH=\" coreutils \"/bin:\" grep \"/bin\")\n"
+msgstr ""
+"(mixed-text-file \"perfil\"\n"
+"                 \"export PATH=\" coreutils \"/bin:\" grep \"/bin\")\n"
+
+#. type: deffn
+#: doc/guix.texi:7426
+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:7428
+#, no-wrap
+msgid "{Scheme Procedure} file-union @var{name} @var{files}"
+msgstr "{Procedimiento Scheme} file-union @var{nombre} @var{ficheros}"
+
+#. type: deffn
+#: doc/guix.texi:7433
+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 a usar en el nuevo directorio y el segundo elemento es una expresión-G que denota el fichero de destino. Aquí está un ejemplo:"
+
+#. type: example
+#: doc/guix.texi:7440
+#, no-wrap
+msgid ""
+"(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"
+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:7443
+msgid "This yields an @code{etc} directory containing these two files."
+msgstr "Esto emite un directorio @code{etc} que contiene estos dos ficheros."
+
+#. type: deffn
+#: doc/guix.texi:7445
+#, 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:7448
+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:"
+
+#. type: example
+#: doc/guix.texi:7451
+#, 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:7454
+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:7456
+#, 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:7460
+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."
+
+#. type: deffn
+#: doc/guix.texi:7462
+msgid "As an example, consider this gexp:"
+msgstr "Como un ejemplo, considere esta expresión-G:"
+
+#. type: example
+#: doc/guix.texi:7467
+#, no-wrap
+msgid ""
+"(gexp->script \"run-uname\"\n"
+"              #~(system* #$(file-append coreutils\n"
+"                                        \"/bin/uname\")))\n"
+msgstr ""
+"(gexp->script \"ejecuta-uname\"\n"
+"              #~(system* #$(file-append coreutils\n"
+"                                        \"/bin/uname\")))\n"
+
+#. type: deffn
+#: doc/guix.texi:7470
+msgid "The same effect could be achieved with:"
+msgstr "El mismo efecto podría conseguirse con:"
+
+#. type: example
+#: doc/guix.texi:7475
+#, no-wrap
+msgid ""
+"(gexp->script \"run-uname\"\n"
+"              #~(system* (string-append #$coreutils\n"
+"                                        \"/bin/uname\")))\n"
+msgstr ""
+"(gexp->script \"ejecuta-uname\"\n"
+"              #~(system* (string-append #$coreutils\n"
+"                                        \"/bin/uname\")))\n"
+
+#. type: deffn
+#: doc/guix.texi:7481
+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}."
+
+#. type: Plain text
+#: doc/guix.texi:7488
+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:7494
+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:7495
+#, 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:7501
+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]\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>}."
+
+#. type: section
+#: doc/guix.texi:7504
+#, no-wrap
+msgid "Invoking @command{guix repl}"
+msgstr "Invocación de @command{guix repl}"
+
+#. type: cindex
+#: doc/guix.texi:7506
+#, no-wrap
+msgid "REPL, read-eval-print loop"
+msgstr "REPL, bucle de lectura-evaluación-impresión"
+
+# FUZZY
+#. type: Plain text
+#: doc/guix.texi:7512
+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:"
+
+#. type: example
+#: doc/guix.texi:7518
+#, no-wrap
+msgid ""
+"$ 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"
+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"
+
+# FUZZY
+#. type: Plain text
+#: doc/guix.texi:7525
+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:7527
+msgid "The available options are as follows:"
+msgstr "Las opciones disponibles son las siguientes:"
+
+#. type: item
+#: doc/guix.texi:7529 doc/guix.texi:9489
+#, no-wrap
+msgid "--type=@var{type}"
+msgstr "--type=@var{tipo}"
+
+#. type: itemx
+#: doc/guix.texi:7530 doc/guix.texi:9490 doc/guix.texi:24428
+#, no-wrap
+msgid "-t @var{type}"
+msgstr "-t @var{tipo}"
+
+#. type: table
+#: doc/guix.texi:7532
+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:7534
+#, no-wrap
+msgid "guile"
+msgstr "guile"
+
+#. type: table
+#: doc/guix.texi:7536
+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:7536
+#, no-wrap
+msgid "machine"
+msgstr "machine"
+
+#. type: table
+#: doc/guix.texi:7539
+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:7545
+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:7547
+#, no-wrap
+msgid "--listen=tcp:37146"
+msgstr "--listen=tcp:37146"
+
+#. type: table
+#: doc/guix.texi:7549
+msgid "Accept connections on localhost on port 37146."
+msgstr "Acepta conexiones locales por el puerto 37146."
+
+#. type: item
+#: doc/guix.texi:7550
+#, no-wrap
+msgid "--listen=unix:/tmp/socket"
+msgstr "--listen=unix:/tmp/socket"
+
+#. type: table
+#: doc/guix.texi:7552
+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: Plain text
+#: doc/guix.texi:7563
+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:7585
+#, no-wrap
+msgid "package building"
+msgstr "construcción de paquetes"
+
+#. type: command{#1}
+#: doc/guix.texi:7586
+#, no-wrap
+msgid "guix build"
+msgstr "guix build"
+
+#. type: Plain text
+#: doc/guix.texi:7592
+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:7597
+#, 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:7602
+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:7605
+#, no-wrap
+msgid "guix build emacs guile\n"
+msgstr "guix build emacs guile\n"
+
+#. type: Plain text
+#: doc/guix.texi:7608
+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:7612
+#, 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:7620
+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:7625
+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 la desambiguación entre varios paquetes del mismo nombre o si se necesitan variaciones del paquete."
+
+#. type: Plain text
+#: doc/guix.texi:7628
+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:7643
+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: item
+#: doc/guix.texi:7646
+#, no-wrap
+msgid "--load-path=@var{directory}"
+msgstr "--load-path=@var{directorio}"
+
+#. type: itemx
+#: doc/guix.texi:7647
+#, no-wrap
+msgid "-L @var{directory}"
+msgstr "-L @var{directorio}"
+
+#. type: table
+#: doc/guix.texi:7650
+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:7653
+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:7654
+#, no-wrap
+msgid "--keep-failed"
+msgstr "--keep-failed"
+
+#. type: itemx
+#: doc/guix.texi:7655
+#, no-wrap
+msgid "-K"
+msgstr "-K"
+
+# FUZZY
+#. type: table
+#: doc/guix.texi:7661
+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:7665
+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 "Esta opción no tiene efecto cuando se conecta a un daemon remoto con una URI @code{guix://} (@pxref{The Store, the @code{GUIX_DAEMON_SOCKET} variable})."
+
+#. type: item
+#: doc/guix.texi:7666
+#, no-wrap
+msgid "--keep-going"
+msgstr "--keep-going"
+
+#. type: itemx
+#: doc/guix.texi:7667
+#, no-wrap
+msgid "-k"
+msgstr "-k"
+
+#. type: table
+#: doc/guix.texi:7670
+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:7673
+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:7677
+msgid "Do not build the derivations."
+msgstr "No construye las derivaciones."
+
+#. type: anchor{#1}
+#: doc/guix.texi:7679
+msgid "fallback-option"
+msgstr "fallback-option"
+
+#. type: item
+#: doc/guix.texi:7679
+#, no-wrap
+msgid "--fallback"
+msgstr "--fallback"
+
+#. type: table
+#: doc/guix.texi:7682
+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:7688
+msgid "client-substitute-urls"
+msgstr "client-substitute-urls"
+
+#. type: table
+#: doc/guix.texi:7688
+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:7692
+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:7695
+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 deshabilitadas."
+
+#. type: item
+#: doc/guix.texi:7701
+#, no-wrap
+msgid "--no-grafts"
+msgstr "--no-grafts"
+
+#. type: table
+#: doc/guix.texi:7705
+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:7706
+#, no-wrap
+msgid "--rounds=@var{n}"
+msgstr "--rounds=@var{n}"
+
+#. type: table
+#: doc/guix.texi:7709
+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:7714
+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:7720
+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."
+
+#. type: table
+#: doc/guix.texi:7725
+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 "No intenta delegar construcciones a través del ``hook de construcción'' del daemon (@pxref{Daemon Offload Setup}). Es decir, siempre realiza las construcciones de manera local en vez de delegando construcciones a máquinas remotas."
+
+#. type: table
+#: doc/guix.texi:7732
+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:7739
+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}})."
+
+# FUZZY
+#. type: cindex
+#: doc/guix.texi:7742
+#, no-wrap
+msgid "verbosity, of the command-line tools"
+msgstr "nivel de detalle de los mensajes, de las herramientas de línea de órdenes"
+
+# FUZZY
+# TODO: (MAAV) Log
+#. type: cindex
+#: doc/guix.texi:7743
+#, no-wrap
+msgid "build logs, verbosity"
+msgstr "registro de construcción, nivel de descripción"
+
+#. type: item
+#: doc/guix.texi:7744
+#, no-wrap
+msgid "-v @var{level}"
+msgstr "-v @var{nivel}"
+
+#. type: itemx
+#: doc/guix.texi:7745
+#, no-wrap
+msgid "--verbosity=@var{level}"
+msgstr "--verbosity=@var{nivel}"
+
+# FUZZY
+#. type: table
+#: doc/guix.texi:7749
+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:7754
+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:7760
+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}."
+
+#. type: item
+#: doc/guix.texi:7761
+#, no-wrap
+msgid "--debug=@var{level}"
+msgstr "--debug=@var{nivel}"
+
+#. type: table
+#: doc/guix.texi:7765
+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:7772
+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:7776
+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}."
+
+#. type: defvr
+#: doc/guix.texi:7777
+#, no-wrap
+msgid "{Environment Variable} GUIX_BUILD_OPTIONS"
+msgstr "{Variable de entorno} GUIX_BUILD_OPTIONS"
+
+#. type: defvr
+#: doc/guix.texi:7782
+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:7785
+#, 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:7789
+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:7795
+#, no-wrap
+msgid "package variants"
+msgstr "variaciones de paquetes"
+
+#. type: Plain text
+#: doc/guix.texi:7803
+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: item
+#: doc/guix.texi:7806
+#, no-wrap
+msgid "--with-source=@var{source}"
+msgstr "--with-source=@var{fuente}"
+
+#. type: itemx
+#: doc/guix.texi:7807
+#, no-wrap
+msgid "--with-source=@var{package}=@var{source}"
+msgstr "--with-source=@var{paquete}=@var{fuente}"
+
+#. type: itemx
+#: doc/guix.texi:7808
+#, 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:7813
+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})."
+
+#. type: table
+#: doc/guix.texi:7819
+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:7822
+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:7827
+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:7830
+#, 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:7834
+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:"
+
+#. type: example
+#: doc/guix.texi:7837
+#, 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:7840
+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:7844
+#, 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:7846
+#, no-wrap
+msgid "--with-input=@var{package}=@var{replacement}"
+msgstr "--with-input=@var{paquete}=@var{reemplazo}"
+
+#. type: table
+#: doc/guix.texi:7851
+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:7855
+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:7858
+#, 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:7863
+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:7866
+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:7867
+#, no-wrap
+msgid "--with-graft=@var{package}=@var{replacement}"
+msgstr "--with-graft=@var{paquete}=@var{reemplazo}"
+
+#. type: table
+#: doc/guix.texi:7873
+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."
+
+#. type: table
+#: doc/guix.texi:7877
+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:7880
+#, 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:7889
+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: item
+#: doc/guix.texi:7890
+#, no-wrap
+msgid "--with-git-url=@var{package}=@var{url}"
+msgstr "--with-git-url=@var{paquete}=@var{url}"
+
+#. type: cindex
+#: doc/guix.texi:7891
+#, no-wrap
+msgid "Git, using the latest commit"
+msgstr "Git, usar la última revisión"
+
+#. type: cindex
+#: doc/guix.texi:7892
+#, no-wrap
+msgid "latest commit, building"
+msgstr "última revisión, construcción"
+
+#. type: table
+#: doc/guix.texi:7896
+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:7899
+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:7903
+#, 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:7907
+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)."
+
+#. type: cindex
+#: doc/guix.texi:7908 doc/guix.texi:20488
+#, no-wrap
+msgid "continuous integration"
+msgstr "integración continua"
+
+#. type: table
+#: doc/guix.texi:7914
+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:7918
+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:7919
+#, no-wrap
+msgid "--with-branch=@var{package}=@var{branch}"
+msgstr "--with-branch=@var{paquete}=@var{rama}"
+
+#. type: table
+#: doc/guix.texi:7925
+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}."
+
+#. type: table
+#: doc/guix.texi:7930
+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:7933
+#, 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:7935
+#, no-wrap
+msgid "--with-commit=@var{package}=@var{commit}"
+msgstr "--with-commit=@var{paquete}=@var{revisión}"
+
+#. type: table
+#: doc/guix.texi:7939
+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 "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."
+
+#. type: Plain text
+#: doc/guix.texi:7946
+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:7949
+#, no-wrap
+msgid "--quiet"
+msgstr "--quiet"
+
+#. type: itemx
+#: doc/guix.texi:7950
+#, no-wrap
+msgid "-q"
+msgstr "-q"
+
+# FUZZY
+# MAAV (TODO): Log
+#. type: table
+#: doc/guix.texi:7954
+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}."
+
+#. type: item
+#: doc/guix.texi:7955
+#, no-wrap
+msgid "--file=@var{file}"
+msgstr "--file=@var{fichero}"
+
+#. type: table
+#: doc/guix.texi:7959
+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, file-like objects})."
+
+#. type: table
+#: doc/guix.texi:7962
+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}):"
+
+#. type: table
+#: doc/guix.texi:7970
+msgid "Build the package or derivation @var{expr} evaluates to."
+msgstr "Construye el paquete o derivación al que @var{expr} evaulua."
+
+#. type: table
+#: doc/guix.texi:7974
+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:7978
+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:7982
+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:7983
+#, no-wrap
+msgid "--source"
+msgstr "--source"
+
+#. type: itemx
+#: doc/guix.texi:7984
+#, no-wrap
+msgid "-S"
+msgstr "-S"
+
+#. type: table
+#: doc/guix.texi:7987
+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:7991
+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:7995
+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})."
+
+#. type: item
+#: doc/guix.texi:7996
+#, no-wrap
+msgid "--sources"
+msgstr "--sources"
+
+# FUZZY
+#. type: table
+#: doc/guix.texi:8003
+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}, permitiendole 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:"
+
+#. type: item
+#: doc/guix.texi:8005 doc/guix.texi:9367
+#, no-wrap
+msgid "package"
+msgstr "package"
+
+# FUZZY
+#. type: table
+#: doc/guix.texi:8008
+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}."
+
+#. type: item
+#: doc/guix.texi:8009 doc/guix.texi:13821
+#, no-wrap
+msgid "all"
+msgstr "all"
+
+#. type: table
+#: doc/guix.texi:8012
+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:8018
+#, no-wrap
+msgid ""
+"$ guix build --sources tzdata\n"
+"The following derivations will be built:\n"
+"   /gnu/store/@dots{}-tzdata2015b.tar.gz.drv\n"
+"   /gnu/store/@dots{}-tzcode2015b.tar.gz.drv\n"
+msgstr ""
+"$ guix build --sources tzdata\n"
+"The following derivations will be built:\n"
+"   /gnu/store/@dots{}-tzdata2015b.tar.gz.drv\n"
+"   /gnu/store/@dots{}-tzcode2015b.tar.gz.drv\n"
+
+#. type: item
+#: doc/guix.texi:8020
+#, no-wrap
+msgid "transitive"
+msgstr "transitive"
+
+#. type: table
+#: doc/guix.texi:8024
+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:8035
+#, no-wrap
+msgid ""
+"$ guix build --sources=transitive tzdata\n"
+"The following derivations will be built:\n"
+"   /gnu/store/@dots{}-tzcode2015b.tar.gz.drv\n"
+"   /gnu/store/@dots{}-findutils-4.4.2.tar.xz.drv\n"
+"   /gnu/store/@dots{}-grep-2.21.tar.xz.drv\n"
+"   /gnu/store/@dots{}-coreutils-8.23.tar.xz.drv\n"
+"   /gnu/store/@dots{}-make-4.1.tar.xz.drv\n"
+"   /gnu/store/@dots{}-bash-4.3.tar.xz.drv\n"
+"@dots{}\n"
+msgstr ""
+"$ guix build --sources=transitive tzdata\n"
+"The following derivations will be built:\n"
+"   /gnu/store/@dots{}-tzcode2015b.tar.gz.drv\n"
+"   /gnu/store/@dots{}-findutils-4.4.2.tar.xz.drv\n"
+"   /gnu/store/@dots{}-grep-2.21.tar.xz.drv\n"
+"   /gnu/store/@dots{}-coreutils-8.23.tar.xz.drv\n"
+"   /gnu/store/@dots{}-make-4.1.tar.xz.drv\n"
+"   /gnu/store/@dots{}-bash-4.3.tar.xz.drv\n"
+"@dots{}\n"
+
+# FUZZY
+#. type: table
+#: doc/guix.texi:8045
+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:8050
+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."
+
+#. type: table
+#: doc/guix.texi:8057
+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."
+
+# FUZZY
+# MAAV (TODO): Chipset
+#. type: quotation
+#: doc/guix.texi:8062
+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á habilitada incondicionalmente en máquinas @code{aarch64-linux}, aunque determinados procesadores aarch64 no permiten esta funcionalidad, notablemente el ThunderX."
+
+#. type: table
+#: doc/guix.texi:8068
+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á habilitada (@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:8072
+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 pueden delegarse también a una máquina remota de la arquitectura correcta. @xref{Daemon Offload Setup}, para más información sobre delegación."
+
+#. type: anchor{#1}
+#: doc/guix.texi:8080
+msgid "build-check"
+msgstr "build-check"
+
+#. type: item
+#: doc/guix.texi:8080
+#, no-wrap
+msgid "--check"
+msgstr "--check"
+
+#. type: cindex
+#: doc/guix.texi:8081
+#, no-wrap
+msgid "determinism, checking"
+msgstr "determinismo, comprobación"
+
+#. type: cindex
+#: doc/guix.texi:8082
+#, no-wrap
+msgid "reproducibility, checking"
+msgstr "reproducibilidad, comprobación"
+
+#. type: table
+#: doc/guix.texi:8086
+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:8091
+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:8096
+#, no-wrap
+msgid "--repair"
+msgstr "--repair"
+
+#. type: cindex
+#: doc/guix.texi:8097
+#, no-wrap
+msgid "repairing store items"
+msgstr "reparar elementos del almacén"
+
+#. type: table
+#: doc/guix.texi:8101
+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 reconstruyendolos."
+
+#. type: table
+#: doc/guix.texi:8103
+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:8104
+#, no-wrap
+msgid "--derivations"
+msgstr "--derivations"
+
+#. type: itemx
+#: doc/guix.texi:8105 doc/guix.texi:24423
+#, no-wrap
+msgid "-d"
+msgstr "-d"
+
+#. type: table
+#: doc/guix.texi:8108
+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:8111
+#, no-wrap
+msgid "GC roots, adding"
+msgstr "GC, añadir raíces"
+
+#. type: cindex
+#: doc/guix.texi:8112
+#, no-wrap
+msgid "garbage collector roots, adding"
+msgstr "raíces del recolector de basura, añadir"
+
+#. type: table
+#: doc/guix.texi:8115 doc/guix.texi:24454
+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."
+
+#. type: table
+#: doc/guix.texi:8121
+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."
+
+#. type: item
+#: doc/guix.texi:8122
+#, no-wrap
+msgid "--log-file"
+msgstr "--log-file"
+
+# FUZZY
+# TODO: (MAAV) Log
+#. type: cindex
+#: doc/guix.texi:8123
+#, no-wrap
+msgid "build logs, access"
+msgstr "logs de construcción, acceso"
+
+# FUZZY
+# TODO: (MAAV) Log
+#. type: table
+#: doc/guix.texi:8127
+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."
+
+#. type: table
+#: doc/guix.texi:8130
+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:8136
+#, no-wrap
+msgid ""
+"guix build --log-file `guix build -d guile`\n"
+"guix build --log-file `guix build guile`\n"
+"guix build --log-file guile\n"
+"guix build --log-file -e '(@@ (gnu packages guile) guile-2.0)'\n"
+msgstr ""
+"guix build --log-file `guix build -d guile`\n"
+"guix build --log-file `guix build guile`\n"
+"guix build --log-file guile\n"
+"guix build --log-file -e '(@@ (gnu packages guile) guile-2.0)'\n"
+
+#. type: table
+#: doc/guix.texi:8141
+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})."
+
+# FUZZY
+# TODO: (MAAV) Log
+#. type: table
+#: doc/guix.texi:8144
+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:8148
+#, no-wrap
+msgid ""
+"$ guix build --log-file gdb -s mips64el-linux\n"
+"https://@value{SUBSTITUTE-SERVER}/log/@dots{}-gdb-7.10\n"
+msgstr ""
+"$ guix build --log-file gdb -s mips64el-linux\n"
+"https://@value{SUBSTITUTE-SERVER}/log/@dots{}-gdb-7.10\n"
+
+# FUZZY
+# TODO: (MAAV) Log
+#. type: table
+#: doc/guix.texi:8151
+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:8156
+#, no-wrap
+msgid "build failures, debugging"
+msgstr "fallos de construcción, depuración"
+
+#. type: Plain text
+#: doc/guix.texi:8162
+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:8167
+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}})."
+
+#. type: Plain text
+#: doc/guix.texi:8173
+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í:"
+
+#. type: example
+#: doc/guix.texi:8180
+#, no-wrap
+msgid ""
+"$ guix build foo -K\n"
+"@dots{} @i{build fails}\n"
+"$ cd /tmp/guix-build-foo.drv-0\n"
+"$ source ./environment-variables\n"
+"$ cd foo-1.2\n"
+msgstr ""
+"$ guix build foo -K\n"
+"@dots{} @i{build fails}\n"
+"$ cd /tmp/guix-build-foo.drv-0\n"
+"$ source ./environment-variables\n"
+"$ cd foo-1.2\n"
+
+#. type: Plain text
+#: doc/guix.texi:8184
+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:8190
+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:8193
+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:8201
+#, no-wrap
+msgid ""
+"$ guix build -K foo\n"
+"@dots{}\n"
+"$ cd /tmp/guix-build-foo.drv-0\n"
+"$ guix environment --no-grafts -C foo --ad-hoc strace gdb\n"
+"[env]# source ./environment-variables\n"
+"[env]# cd foo-1.2\n"
+msgstr ""
+"$ guix build -K foo\n"
+"@dots{}\n"
+"$ cd /tmp/guix-build-foo.drv-0\n"
+"$ guix environment --no-grafts -C foo --ad-hoc strace gdb\n"
+"[env]# source ./environment-variables\n"
+"[env]# cd foo-1.2\n"
+
+#. type: Plain text
+#: doc/guix.texi:8210
+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 "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:8213
+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:8216
+#, no-wrap
+msgid "[env]# rm /bin/sh\n"
+msgstr "[env]# rm /bin/sh\n"
+
+#. type: Plain text
+#: doc/guix.texi:8220
+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:8223
+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:8226
+#, 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:8231
+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:8234
+#, no-wrap
+msgid "Invoking @command{guix edit}"
+msgstr "Invocación de @command{guix edit}"
+
+#. type: command{#1}
+#: doc/guix.texi:8236
+#, no-wrap
+msgid "guix edit"
+msgstr "guix edit"
+
+#. type: cindex
+#: doc/guix.texi:8237
+#, no-wrap
+msgid "package definition, editing"
+msgstr "definición de paquete, edición"
+
+#. type: Plain text
+#: doc/guix.texi:8242
+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:"
+
+#. type: example
+#: doc/guix.texi:8245
+#, no-wrap
+msgid "guix edit gcc@@4.9 vim\n"
+msgstr "guix edit gcc@@4.9 vim\n"
+
+#. type: Plain text
+#: doc/guix.texi:8251
+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."
+
+#. type: Plain text
+#: doc/guix.texi:8257
+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."
+
+#. type: section
+#: doc/guix.texi:8260
+#, no-wrap
+msgid "Invoking @command{guix download}"
+msgstr "Invocación de @command{guix download}"
+
+#. type: command{#1}
+#: doc/guix.texi:8262
+#, no-wrap
+msgid "guix download"
+msgstr "guix download"
+
+#. type: cindex
+#: doc/guix.texi:8263
+#, no-wrap
+msgid "downloading package sources"
+msgstr "descargando las fuentes de paquetes"
+
+#. type: Plain text
+#: doc/guix.texi:8270
+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."
+
+#. type: Plain text
+#: doc/guix.texi:8277
+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})."
+
+#. type: Plain text
+#: doc/guix.texi:8285
+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:8290
+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}."
+
+#. type: Plain text
+#: doc/guix.texi:8292 doc/guix.texi:9609
+msgid "The following options are available:"
+msgstr "Las siguientes opciones están disponibles:"
+
+#. type: item
+#: doc/guix.texi:8294 doc/guix.texi:8333
+#, no-wrap
+msgid "--format=@var{fmt}"
+msgstr "--format=@var{fmt}"
+
+#. type: itemx
+#: doc/guix.texi:8295 doc/guix.texi:8334
+#, no-wrap
+msgid "-f @var{fmt}"
+msgstr "-f @var{fmt}"
+
+#. type: table
+#: doc/guix.texi:8298
+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:8299
+#, no-wrap
+msgid "--no-check-certificate"
+msgstr "--no-check-certificate"
+
+#. type: table
+#: doc/guix.texi:8301
+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:8305
+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 intercepción (``man-in-the-middle'')."
+
+#. type: item
+#: doc/guix.texi:8306
+#, no-wrap
+msgid "--output=@var{file}"
+msgstr "--output=@var{fichero}"
+
+#. type: itemx
+#: doc/guix.texi:8307
+#, no-wrap
+msgid "-o @var{file}"
+msgstr "-o @var{fichero}"
+
+#. type: table
+#: doc/guix.texi:8310
+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."
+
+#. type: section
+#: doc/guix.texi:8313
+#, no-wrap
+msgid "Invoking @command{guix hash}"
+msgstr "Invocación de @command{guix hash}"
+
+#. type: command{#1}
+#: doc/guix.texi:8315
+#, no-wrap
+msgid "guix hash"
+msgstr "guix hash"
+
+#. type: Plain text
+#: doc/guix.texi:8320
+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})."
+
+#. type: example
+#: doc/guix.texi:8325
+#, no-wrap
+msgid "guix hash @var{option} @var{file}\n"
+msgstr "guix hash @var{opciones} @var{fichero}\n"
+
+#. type: Plain text
+#: doc/guix.texi:8330
+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:"
+
+#. type: table
+#: doc/guix.texi:8336
+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:8339
+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})."
+
+#. type: table
+#: doc/guix.texi:8343
+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:8347
+msgid "Compute the hash on @var{file} recursively."
+msgstr "Calcula el hash de @var{fichero} recursivamente."
+
+#. type: table
+#: doc/guix.texi:8356
+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})."
+
+#. type: item
+#: doc/guix.texi:8357
+#, no-wrap
+msgid "--exclude-vcs"
+msgstr "--exclude-vcs"
+
+#. type: itemx
+#: doc/guix.texi:8358
+#, no-wrap
+msgid "-x"
+msgstr "-x"
+
+#. type: table
+#: doc/guix.texi:8361
+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: table
+#: doc/guix.texi:8366
+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:8371
+#, no-wrap
+msgid ""
+"$ git clone http://example.org/foo.git\n"
+"$ cd foo\n"
+"$ guix hash -rx .\n"
+msgstr ""
+"$ git clone http://example.org/foo.git\n"
+"$ cd foo\n"
+"$ guix hash -rx .\n"
+
+#. type: cindex
+#: doc/guix.texi:8375 doc/guix.texi:8380
+#, no-wrap
+msgid "Invoking @command{guix import}"
+msgstr "Invocación de @command{guix import}"
+
+#. type: cindex
+#: doc/guix.texi:8377
+#, no-wrap
+msgid "importing packages"
+msgstr "importar paquetes"
+
+#. type: cindex
+#: doc/guix.texi:8378
+#, no-wrap
+msgid "package import"
+msgstr "importación de un paquete"
+
+#. type: cindex
+#: doc/guix.texi:8379
+#, no-wrap
+msgid "package conversion"
+msgstr "conversión de un paquete"
+
+#. type: Plain text
+#: doc/guix.texi:8387
+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:8392
+#, 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:8398
+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{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}. Actualmente, los ``importadores'' disponibles son:"
+
+#. type: item
+#: doc/guix.texi:8400 doc/guix.texi:8900
+#, no-wrap
+msgid "gnu"
+msgstr "gnu"
+
+# FUZZY
+#. type: table
+#: doc/guix.texi:8404
+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:8407
+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:8410
+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:8413
+#, no-wrap
+msgid "guix import gnu hello\n"
+msgstr "guix import gnu hello\n"
+
+#. type: table
+#: doc/guix.texi:8416 doc/guix.texi:8643 doc/guix.texi:8693 doc/guix.texi:8722
+msgid "Specific command-line options are:"
+msgstr "Las opciones específicas de línea de ordenes son:"
+
+#. type: item
+#: doc/guix.texi:8418 doc/guix.texi:9049
+#, no-wrap
+msgid "--key-download=@var{policy}"
+msgstr "--key-download=@var{política}"
+
+# FUZZY
+#. type: table
+#: doc/guix.texi:8422
+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}}."
+
+#. type: item
+#: doc/guix.texi:8424 doc/guix.texi:8425 doc/guix.texi:8918
+#, no-wrap
+msgid "pypi"
+msgstr "pypi"
+
+# FUZZY
+#. type: table
+#: doc/guix.texi:8432
+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:8435
+msgid "The command below imports metadata for the @code{itsdangerous} Python package:"
+msgstr "La siguiente orden importa los meta-datos para el paquete de Python @code{itsdangerous}:"
+
+#. type: example
+#: doc/guix.texi:8438
+#, no-wrap
+msgid "guix import pypi itsdangerous\n"
+msgstr "guix import pypi itsdangerous\n"
+
+#. type: table
+#: doc/guix.texi:8446 doc/guix.texi:8471 doc/guix.texi:8666 doc/guix.texi:8707
+#: doc/guix.texi:8754
+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:8448 doc/guix.texi:8449 doc/guix.texi:8920
+#, no-wrap
+msgid "gem"
+msgstr "gem"
+
+#. type: table
+#: doc/guix.texi:8458
+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:8460
+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:8463
+#, no-wrap
+msgid "guix import gem rails\n"
+msgstr "guix import gem rails\n"
+
+#. type: item
+#: doc/guix.texi:8473 doc/guix.texi:8916
+#, no-wrap
+msgid "cpan"
+msgstr "cpan"
+
+#. type: cindex
+#: doc/guix.texi:8474
+#, no-wrap
+msgid "CPAN"
+msgstr "CPAN"
+
+#. type: table
+#: doc/guix.texi:8482
+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:8485
+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}:"
+
+#. type: example
+#: doc/guix.texi:8488
+#, no-wrap
+msgid "guix import cpan Acme::Boolean\n"
+msgstr "guix import cpan Acme::Boolean\n"
+
+#. type: item
+#: doc/guix.texi:8490 doc/guix.texi:8912
+#, no-wrap
+msgid "cran"
+msgstr "cran"
+
+#. type: cindex
+#: doc/guix.texi:8491
+#, no-wrap
+msgid "CRAN"
+msgstr "CRAN"
+
+#. type: cindex
+#: doc/guix.texi:8492
+#, no-wrap
+msgid "Bioconductor"
+msgstr "Bioconductor"
+
+#. type: table
+#: doc/guix.texi:8496
+msgid "Import metadata from @uref{https://cran.r-project.org/, CRAN}, the central repository for the @uref{http://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{http://r-project.org, entorno estadístico y gráfico GNU@tie{}R}."
+
+#. type: table
+#: doc/guix.texi:8498
+msgid "Information is extracted from the @code{DESCRIPTION} file of the package."
+msgstr "La información se extrae del fichero @code{DESCRIPTION} del paquete."
+
+#. type: table
+#: doc/guix.texi:8501
+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}:"
+
+#. type: example
+#: doc/guix.texi:8504
+#, no-wrap
+msgid "guix import cran Cairo\n"
+msgstr "guix import cran Cairo\n"
+
+#. type: table
+#: doc/guix.texi:8509
+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."
+
+# FUZZY
+# MAAV (TODO): High-throughput
+#. type: table
+#: doc/guix.texi:8514
+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."
+
+#. type: table
+#: doc/guix.texi:8517
+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."
+
+#. type: table
+#: doc/guix.texi:8520
+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}:"
+
+#. type: example
+#: doc/guix.texi:8523
+#, no-wrap
+msgid "guix import cran --archive=bioconductor GenomicRanges\n"
+msgstr "guix import cran --archive=bioconductor GenomicRanges\n"
+
+#. type: item
+#: doc/guix.texi:8525
+#, no-wrap
+msgid "texlive"
+msgstr "texlive"
+
+#. type: cindex
+#: doc/guix.texi:8526
+#, no-wrap
+msgid "TeX Live"
+msgstr "Tex Live"
+
+#. type: cindex
+#: doc/guix.texi:8527
+#, no-wrap
+msgid "CTAN"
+msgstr "CTAN"
+
+# FUZZY
+#. type: table
+#: doc/guix.texi:8531
+msgid "Import metadata from @uref{http://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{http://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:8536
+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:8539
+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:8542
+#, no-wrap
+msgid "guix import texlive fontspec\n"
+msgstr "guix import texlive fontspec\n"
+
+#. type: table
+#: doc/guix.texi:8548
+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."
+
+#. type: table
+#: doc/guix.texi:8552
+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:8555
+#, no-wrap
+msgid "guix import texlive --archive=generic ifxetex\n"
+msgstr "guix import texlive --archive=generic ifxetex\n"
+
+#. type: cindex
+#: doc/guix.texi:8558
+#, no-wrap
+msgid "JSON, import"
+msgstr "JSON, importación"
+
+#. type: table
+#: doc/guix.texi:8561
+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:"
+
+#. type: example
+#: doc/guix.texi:8574
+#, no-wrap
+msgid ""
+"@{\n"
+"  \"name\": \"hello\",\n"
+"  \"version\": \"2.10\",\n"
+"  \"source\": \"mirror://gnu/hello/hello-2.10.tar.gz\",\n"
+"  \"build-system\": \"gnu\",\n"
+"  \"home-page\": \"https://www.gnu.org/software/hello/\",\n"
+"  \"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"
+"@}\n"
+msgstr ""
+"@{\n"
+"  \"name\": \"hello\",\n"
+"  \"version\": \"2.10\",\n"
+"  \"source\": \"mirror://gnu/hello/hello-2.10.tar.gz\",\n"
+"  \"build-system\": \"gnu\",\n"
+"  \"home-page\": \"https://www.gnu.org/software/hello/\",\n"
+"  \"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"
+"@}\n"
+
+#. type: table
+#: doc/guix.texi:8580
+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:8583
+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:8596
+#, no-wrap
+msgid ""
+"@{\n"
+"  @dots{}\n"
+"  \"source\": @{\n"
+"    \"method\": \"url-fetch\",\n"
+"    \"uri\": \"mirror://gnu/hello/hello-2.10.tar.gz\",\n"
+"    \"sha256\": @{\n"
+"      \"base32\": \"0ssi1wpaf7plaswqqjwigppsg5fyh99vdlb9kzl7c9lng89ndq1i\"\n"
+"    @}\n"
+"  @}\n"
+"  @dots{}\n"
+"@}\n"
+msgstr ""
+"@{\n"
+"  @dots{}\n"
+"  \"source\": @{\n"
+"    \"method\": \"url-fetch\",\n"
+"    \"uri\": \"mirror://gnu/hello/hello-2.10.tar.gz\",\n"
+"    \"sha256\": @{\n"
+"      \"base32\": \"0ssi1wpaf7plaswqqjwigppsg5fyh99vdlb9kzl7c9lng89ndq1i\"\n"
+"    @}\n"
+"  @}\n"
+"  @dots{}\n"
+"@}\n"
+
+#. type: table
+#: doc/guix.texi:8600
+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'':"
+
+#. type: example
+#: doc/guix.texi:8603
+#, no-wrap
+msgid "guix import json hello.json\n"
+msgstr "guix import json hello.json\n"
+
+#. type: item
+#: doc/guix.texi:8605
+#, no-wrap
+msgid "nix"
+msgstr "nix"
+
+#. type: table
+#: doc/guix.texi:8614
+msgid "Import metadata from a local copy of the source of the @uref{http://nixos.org/nixpkgs/, Nixpkgs distribution}@footnote{This relies on the @command{nix-instantiate} command of @uref{http://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{http://nixos.org/nixpkgs/, distribución Nixpkgs}@footnote{Esto depende de la orden @command{nix-instantiate} de @uref{http://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:8617
+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:8619
+msgid "Usually, you will first need to do:"
+msgstr "Habitualmente, tendrá que ejecutar primero:"
+
+#. type: example
+#: doc/guix.texi:8622
+#, no-wrap
+msgid "export NIX_REMOTE=daemon\n"
+msgstr "export NIX_REMOTE=daemon\n"
+
+#. type: table
+#: doc/guix.texi:8626
+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:8630
+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:8633
+#, 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:8635 doc/guix.texi:8636 doc/guix.texi:8924
+#, no-wrap
+msgid "hackage"
+msgstr "hackage"
+
+#. type: table
+#: doc/guix.texi:8641
+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."
+
+#. type: item
+#: doc/guix.texi:8645
+#, no-wrap
+msgid "--stdin"
+msgstr "--stdin"
+
+#. type: itemx
+#: doc/guix.texi:8646
+#, no-wrap
+msgid "-s"
+msgstr "-s"
+
+#. type: table
+#: doc/guix.texi:8648
+msgid "Read a Cabal file from standard input."
+msgstr "Lee un fichero Cabal por la entrada estándar."
+
+#. type: item
+#: doc/guix.texi:8648 doc/guix.texi:8695
+#, no-wrap
+msgid "--no-test-dependencies"
+msgstr "--no-test-dependencies"
+
+#. type: itemx
+#: doc/guix.texi:8649 doc/guix.texi:8696
+#, no-wrap
+msgid "-t"
+msgstr "-t"
+
+#. type: table
+#: doc/guix.texi:8651 doc/guix.texi:8698
+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:8651
+#, no-wrap
+msgid "--cabal-environment=@var{alist}"
+msgstr "--cabal-environment=@var{alist}"
+
+#. type: itemx
+#: doc/guix.texi:8652
+#, no-wrap
+msgid "-e @var{alist}"
+msgstr "-e @var{alist}"
+
+#. type: table
+#: doc/guix.texi:8661
+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:8671
+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}:"
+
+#. type: example
+#: doc/guix.texi:8674
+#, 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:8678
+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:8681
+#, 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:8683 doc/guix.texi:8684 doc/guix.texi:8926
+#, no-wrap
+msgid "stackage"
+msgstr "stackage"
+
+#. type: table
+#: doc/guix.texi:8691
+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:8698
+#, no-wrap
+msgid "--lts-version=@var{version}"
+msgstr "--lts-version=@var{versión}"
+
+#. type: itemx
+#: doc/guix.texi:8699
+#, no-wrap
+msgid "-l @var{version}"
+msgstr "-l @var{versión}"
+
+#. type: table
+#: doc/guix.texi:8702
+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:8711
+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:"
+
+#. type: example
+#: doc/guix.texi:8714
+#, 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:8716 doc/guix.texi:8717 doc/guix.texi:8910
+#, no-wrap
+msgid "elpa"
+msgstr "elpa"
+
+#. type: table
+#: doc/guix.texi:8720
+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:8724
+#, no-wrap
+msgid "--archive=@var{repo}"
+msgstr "--archive=@var{repo}"
+
+#. type: itemx
+#: doc/guix.texi:8725
+#, no-wrap
+msgid "-a @var{repo}"
+msgstr "-a @var{repo}"
+
+#. type: table
+#: doc/guix.texi:8729
+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:8733
+msgid "@uref{http://elpa.gnu.org/packages, GNU}, selected by the @code{gnu} identifier.  This is the default."
+msgstr "@uref{http://elpa.gnu.org/packages, GNU}, seleccionado con el identificador @code{gnu}. Es el predeterminado."
+
+#. type: itemize
+#: doc/guix.texi:8739
+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:8743
+msgid "@uref{http://stable.melpa.org/packages, MELPA-Stable}, selected by the @code{melpa-stable} identifier."
+msgstr "@uref{http://stable.melpa.org/packages, MELPA-Stable}, seleccionado con el identificador @code{melpa-stable}."
+
+#. type: itemize
+#: doc/guix.texi:8747
+msgid "@uref{http://melpa.org/packages, MELPA}, selected by the @code{melpa} identifier."
+msgstr "@uref{http://melpa.org/packages, MELPA}, seleccionado con el identificador @code{melpa}."
+
+#. type: item
+#: doc/guix.texi:8756 doc/guix.texi:8757 doc/guix.texi:8928
+#, no-wrap
+msgid "crate"
+msgstr "crate"
+
+#. type: table
+#: doc/guix.texi:8760
+msgid "Import metadata from the crates.io Rust package repository @uref{https://crates.io, crates.io}."
+msgstr "Importa metadatos desde el repositorio de paquetes Rust @uref{https://crates.io, crates.io}."
+
+#. type: item
+#: doc/guix.texi:8761
+#, no-wrap
+msgid "opam"
+msgstr "opam"
+
+#. type: cindex
+#: doc/guix.texi:8762
+#, no-wrap
+msgid "OPAM"
+msgstr "OPAM"
+
+#. type: cindex
+#: doc/guix.texi:8763
+#, no-wrap
+msgid "OCaml"
+msgstr "OCaml"
+
+#. type: table
+#: doc/guix.texi:8766
+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:8771
+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:8773
+#, no-wrap
+msgid "Invoking @command{guix refresh}"
+msgstr "Invocación de @command{guix refresh}"
+
+#. type: command{#1}
+#: doc/guix.texi:8775
+#, no-wrap
+msgid "guix refresh"
+msgstr "guix refresh"
+
+#. type: Plain text
+#: doc/guix.texi:8780
+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:8785
+#, 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"
+
+# FUZZY
+#. type: Plain text
+#: doc/guix.texi:8789
+msgid "Alternately, 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:8794
+#, 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"
+
+# FUZZY
+# MAAV: No me gusta esa última exclamación realmente... :(
+#. type: Plain text
+#: doc/guix.texi:8803
+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 contactarnos para añadir un método nuevo!"
+
+#. type: table
+#: doc/guix.texi:8808
+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:8816
+#, no-wrap
+msgid ""
+"$ 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"
+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:8824
+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: example
+#: doc/guix.texi:8831
+#, no-wrap
+msgid ""
+"(define-public network-manager\n"
+"  (package\n"
+"    (name \"network-manager\")\n"
+"    ;; @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:8843
+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 "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. 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:8845
+msgid "The following options are supported:"
+msgstr "Se aceptan las siguientes opciones:"
+
+#. type: table
+#: doc/guix.texi:8853 doc/guix.texi:9511
+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:8856
+#, 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:8860
+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:8861
+#, no-wrap
+msgid "--update"
+msgstr "--update"
+
+#. type: itemx
+#: doc/guix.texi:8862
+#, no-wrap
+msgid "-u"
+msgstr "-u"
+
+#. type: table
+#: doc/guix.texi:8866
+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}):"
+
+#. type: example
+#: doc/guix.texi:8869
+#, 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:8872
+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:8873
+#, no-wrap
+msgid "--select=[@var{subset}]"
+msgstr "--select=[@var{subconjunto}]"
+
+#. type: itemx
+#: doc/guix.texi:8874
+#, no-wrap
+msgid "-s @var{subset}"
+msgstr "-s @var{subconjunto}"
+
+#. type: table
+#: doc/guix.texi:8877
+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:8884
+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:8888
+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:8893
+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."
+
+#. type: item
+#: doc/guix.texi:8894
+#, no-wrap
+msgid "--type=@var{updater}"
+msgstr "--type=@var{actualizador}"
+
+#. type: itemx
+#: doc/guix.texi:8895
+#, no-wrap
+msgid "-t @var{updater}"
+msgstr "-t @var{actualizador}"
+
+#. type: table
+#: doc/guix.texi:8898
+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:8902
+msgid "the updater for GNU packages;"
+msgstr "el actualizador de paquetes GNU;"
+
+#. type: item
+#: doc/guix.texi:8902
+#, no-wrap
+msgid "gnome"
+msgstr "gnome"
+
+#. type: table
+#: doc/guix.texi:8904
+msgid "the updater for GNOME packages;"
+msgstr "el actualizador para paquetes GNOME;"
+
+#. type: item
+#: doc/guix.texi:8904
+#, no-wrap
+msgid "kde"
+msgstr "kde"
+
+#. type: table
+#: doc/guix.texi:8906
+msgid "the updater for KDE packages;"
+msgstr "el actualizador para paquetes KDE;"
+
+#. type: item
+#: doc/guix.texi:8906
+#, no-wrap
+msgid "xorg"
+msgstr "xorg"
+
+#. type: table
+#: doc/guix.texi:8908
+msgid "the updater for X.org packages;"
+msgstr "el actualizador para paquetes X.org;"
+
+#. type: item
+#: doc/guix.texi:8908
+#, no-wrap
+msgid "kernel.org"
+msgstr "kernel.org"
+
+#. type: table
+#: doc/guix.texi:8910
+msgid "the updater for packages hosted on kernel.org;"
+msgstr "el actualizador para paquetes alojados en kernel.org;"
+
+#. type: table
+#: doc/guix.texi:8912
+msgid "the updater for @uref{http://elpa.gnu.org/, ELPA} packages;"
+msgstr "el actualizador para paquetes @uref{http://elpa.gnu.org/, ELPA};"
+
+#. type: table
+#: doc/guix.texi:8914
+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:8914
+#, no-wrap
+msgid "bioconductor"
+msgstr "bioconductor"
+
+#. type: table
+#: doc/guix.texi:8916
+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:8918
+msgid "the updater for @uref{http://www.cpan.org/, CPAN} packages;"
+msgstr "el actualizador para paquetes @uref{http://www.cpan.org/, CPAN};"
+
+#. type: table
+#: doc/guix.texi:8920
+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:8922
+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:8922
+#, no-wrap
+msgid "github"
+msgstr "github"
+
+#. type: table
+#: doc/guix.texi:8924
+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:8926
+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:8928
+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:8930
+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:8930
+#, no-wrap
+msgid "launchpad"
+msgstr "launchpad"
+
+#. type: table
+#: doc/guix.texi:8932
+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:8936
+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:8941
+#, no-wrap
+msgid ""
+"$ guix refresh --type=elpa,cran\n"
+"gnu/packages/statistics.scm:819:13: r-testthat would be upgraded from 0.10.0 to 0.11.0\n"
+"gnu/packages/emacs.scm:856:13: emacs-auctex would be upgraded from 11.88.6 to 11.88.9\n"
+msgstr ""
+"$ guix refresh --type=elpa,cran\n"
+"gnu/packages/statistics.scm:819:13: r-testthat would be upgraded from 0.10.0 to 0.11.0\n"
+"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:8947
+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:8950
+#, 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:8956
+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."
+
+#. type: Plain text
+#: doc/guix.texi:8961
+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:8964
+#, no-wrap
+msgid "--list-updaters"
+msgstr "--list-updaters"
+
+#. type: itemx
+#: doc/guix.texi:8965
+#, no-wrap
+msgid "-L"
+msgstr "-L"
+
+#. type: table
+#: doc/guix.texi:8967
+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:8970
+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:8971
+#, no-wrap
+msgid "--list-dependent"
+msgstr "--list-dependent"
+
+#. type: itemx
+#: doc/guix.texi:8972 doc/guix.texi:9188
+#, no-wrap
+msgid "-l"
+msgstr "-l"
+
+#. type: table
+#: doc/guix.texi:8975
+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:8979
+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:8985
+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."
+
+# FUZZY
+# TODO: Actualizar cuando se traduzcan las herramientas
+#. type: example
+#: doc/guix.texi:8990
+#, no-wrap
+msgid ""
+"$ guix refresh --list-dependent flex\n"
+"Building the following 120 packages would ensure 213 dependent packages are rebuilt:\n"
+"hop@@2.4.0 geiser@@0.4 notmuch@@0.18 mu@@0.9.9.5 cflow@@1.4 idutils@@4.6 @dots{}\n"
+msgstr ""
+"$ guix refresh --list-dependent flex\n"
+"Building the following 120 packages would ensure 213 dependent packages are rebuilt:\n"
+"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:8994
+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:8997
+#, no-wrap
+msgid "--list-transitive"
+msgstr "--list-transitive"
+
+# FUZZY
+#. type: table
+#: doc/guix.texi:8999
+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:9004
+#, no-wrap
+msgid ""
+"$ guix refresh --list-transitive flex\n"
+"flex@@2.6.4 depends on the following 25 packages: perl@@5.28.0 help2man@@1.47.6\n"
+"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"
+msgstr ""
+"$ guix refresh --list-transitive flex\n"
+"flex@@2.6.4 depends on the following 25 packages: perl@@5.28.0 help2man@@1.47.6\n"
+"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:9010
+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:9012
+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:9015
+#, no-wrap
+msgid "--gpg=@var{command}"
+msgstr "--gpg=@var{orden}"
+
+#. type: table
+#: doc/guix.texi:9018
+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:9019
+#, no-wrap
+msgid "--keyring=@var{file}"
+msgstr "--keyring=@var{fichero}"
+
+#. type: table
+#: doc/guix.texi:9025
+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)."
+
+#. type: table
+#: doc/guix.texi:9031
+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:9034
+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:"
+
+#. type: example
+#: doc/guix.texi:9037
+#, 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:9040
+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:9044
+#, 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 mianillo.kbx \\\n"
+"  --recv-keys @value{OPENPGP-SIGNING-KEY-ID}\n"
+
+#. type: table
+#: doc/guix.texi:9048
+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:9052
+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:9054 doc/guix.texi:15982
+#, no-wrap
+msgid "always"
+msgstr "always"
+
+#. type: table
+#: doc/guix.texi:9057
+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:9058 doc/guix.texi:15984
+#, no-wrap
+msgid "never"
+msgstr "never"
+
+#. type: table
+#: doc/guix.texi:9060
+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:9061
+#, no-wrap
+msgid "interactive"
+msgstr "interactive"
+
+#. type: table
+#: doc/guix.texi:9064
+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:9066
+#, no-wrap
+msgid "--key-server=@var{host}"
+msgstr "--key-server=@var{dirección}"
+
+#. type: table
+#: doc/guix.texi:9068
+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:9081
+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 acabará por rechazar 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."
+
+#. type: section
+#: doc/guix.texi:9084
+#, no-wrap
+msgid "Invoking @command{guix lint}"
+msgstr "Invocación de @command{guix lint}"
+
+#. type: command{#1}
+#: doc/guix.texi:9086
+#, no-wrap
+msgid "guix lint"
+msgstr "guix lint"
+
+#. type: cindex
+#: doc/guix.texi:9087
+#, no-wrap
+msgid "package, checking for errors"
+msgstr "paquete, comprobación de errores"
+
+#. type: Plain text
+#: doc/guix.texi:9093
+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. Los @dfn{comprobadores} disponibles incluyen (véase @code{--list-checkers} para una lista completa):"
+
+#. type: table
+#: doc/guix.texi:9099
+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:9100
+#, no-wrap
+msgid "inputs-should-be-native"
+msgstr "inputs-should-be-native"
+
+#. type: table
+#: doc/guix.texi:9102
+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:9105
+#, no-wrap
+msgid "mirror-url"
+msgstr "mirror-url"
+
+#. type: itemx
+#: doc/guix.texi:9106
+#, no-wrap
+msgid "github-url"
+msgstr "github-url"
+
+#. type: itemx
+#: doc/guix.texi:9107
+#, no-wrap
+msgid "source-file-name"
+msgstr "source-file-name"
+
+#. type: table
+#: doc/guix.texi:9114
+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})."
+
+#. type: item
+#: doc/guix.texi:9115
+#, no-wrap
+msgid "source-unstable-tarball"
+msgstr "source-unstable-tarball"
+
+#. type: table
+#: doc/guix.texi:9119
+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: item
+#: doc/guix.texi:9120
+#, no-wrap
+msgid "cve"
+msgstr "cve"
+
+#. type: cindex
+#: doc/guix.texi:9121 doc/guix.texi:25369
+#, no-wrap
+msgid "security vulnerabilities"
+msgstr "vulnerabilidades de seguridad"
+
+#. type: cindex
+#: doc/guix.texi:9122
+#, no-wrap
+msgid "CVE, Common Vulnerabilities and Exposures"
+msgstr "CVE, vulnerabilidades y exposiciones comunes"
+
+#. type: table
+#: doc/guix.texi:9127
+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 "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/download.cfm#CVE_FEED, publicadas por el NIST de EEUU}."
+
+#. type: table
+#: doc/guix.texi:9129
+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:9133
+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:9135
+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:9140
+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:9145
+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 "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 difieren del nombre o versión que usa Guix, como en este ejemplo:"
+
+#. type: example
+#: doc/guix.texi:9153
+#, no-wrap
+msgid ""
+"(package\n"
+"  (name \"grub\")\n"
+"  ;; @dots{}\n"
+"  ;; CPE calls this package \"grub2\".\n"
+"  (properties '((cpe-name . \"grub2\")\n"
+"                (cpe-version . \"2.3\")))\n"
+msgstr ""
+"(package\n"
+"  (name \"grub\")\n"
+"  ;; @dots{}\n"
+"  ;; CPE llama a este paquete \"grub2\".\n"
+"  (properties '((cpe-name . \"grub2\")\n"
+"                (cpe-version . \"2.3\")))\n"
+
+#. type: table
+#: doc/guix.texi:9160
+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: example
+#: doc/guix.texi:9170
+#, no-wrap
+msgid ""
+"(package\n"
+"  (name \"t1lib\")\n"
+"  ;; @dots{}\n"
+"  ;; These CVEs no longer apply and can be safely ignored.\n"
+"  (properties `((lint-hidden-cve . (\"CVE-2011-0433\"\n"
+"                                    \"CVE-2011-1553\"\n"
+"                                    \"CVE-2011-1554\"\n"
+"                                    \"CVE-2011-5244\")))))\n"
+msgstr ""
+"(package\n"
+"  (name \"t1lib\")\n"
+"  ;; @dots{}\n"
+"  ;; Estas alertas de CVE no aplican y pueden ignorarse\n"
+"  ;; con seguridad.\n"
+"  (properties `((lint-hidden-cve . (\"CVE-2011-0433\"\n"
+"                                    \"CVE-2011-1553\"\n"
+"                                    \"CVE-2011-1554\"\n"
+"                                    \"CVE-2011-5244\")))))\n"
+
+#. type: item
+#: doc/guix.texi:9172
+#, no-wrap
+msgid "formatting"
+msgstr "formatting"
+
+#. type: table
+#: doc/guix.texi:9175
+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:9181
+#, 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:9185
+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:9187
+#, no-wrap
+msgid "--list-checkers"
+msgstr "--list-checkers"
+
+#. type: table
+#: doc/guix.texi:9191
+msgid "List and describe all the available checkers that will be run on packages and exit."
+msgstr "Enumera y describe todos los comprobadores disponibles que se ejecutarán sobre los paquetes y finaliza."
+
+#. type: item
+#: doc/guix.texi:9192
+#, no-wrap
+msgid "--checkers"
+msgstr "--checkers"
+
+#. type: itemx
+#: doc/guix.texi:9193
+#, no-wrap
+msgid "-c"
+msgstr "-c"
+
+#. type: table
+#: doc/guix.texi:9196
+msgid "Only enable the checkers specified in a comma-separated list using the names returned by @code{--list-checkers}."
+msgstr "Habilita únicamente los comprobadores especificados en una lista separada por comas que use los nombres devueltos por @code{--list-checkers}."
+
+#. type: section
+#: doc/guix.texi:9200
+#, no-wrap
+msgid "Invoking @command{guix size}"
+msgstr "Invocación de @command{guix size}"
+
+#. type: cindex
+#: doc/guix.texi:9202
+#, no-wrap
+msgid "size"
+msgstr "tamaño"
+
+#. type: cindex
+#: doc/guix.texi:9203
+#, no-wrap
+msgid "package size"
+msgstr "tamaño del paquete"
+
+#. type: command{#1}
+#: doc/guix.texi:9205
+#, no-wrap
+msgid "guix size"
+msgstr "guix size"
+
+#. type: Plain text
+#: doc/guix.texi:9212
+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:9217
+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:"
+
+# FUZZY
+# TODO: Actualizar cuando se traduzca guix
+#. type: example
+#: doc/guix.texi:9230
+#, no-wrap
+msgid ""
+"$ guix size coreutils\n"
+"store item                               total    self\n"
+"/gnu/store/@dots{}-gcc-5.5.0-lib           60.4    30.1  38.1%\n"
+"/gnu/store/@dots{}-glibc-2.27              30.3    28.8  36.6%\n"
+"/gnu/store/@dots{}-coreutils-8.28          78.9    15.0  19.0%\n"
+"/gnu/store/@dots{}-gmp-6.1.2               63.1     2.7   3.4%\n"
+"/gnu/store/@dots{}-bash-static-4.4.12       1.5     1.5   1.9%\n"
+"/gnu/store/@dots{}-acl-2.2.52              61.1     0.4   0.5%\n"
+"/gnu/store/@dots{}-attr-2.4.47             60.6     0.2   0.3%\n"
+"/gnu/store/@dots{}-libcap-2.25             60.5     0.2   0.2%\n"
+"total: 78.9 MiB\n"
+msgstr ""
+"$ guix size coreutils\n"
+"store item                               total    self\n"
+"/gnu/store/@dots{}-gcc-5.5.0-lib           60.4    30.1  38.1%\n"
+"/gnu/store/@dots{}-glibc-2.27              30.3    28.8  36.6%\n"
+"/gnu/store/@dots{}-coreutils-8.28          78.9    15.0  19.0%\n"
+"/gnu/store/@dots{}-gmp-6.1.2               63.1     2.7   3.4%\n"
+"/gnu/store/@dots{}-bash-static-4.4.12       1.5     1.5   1.9%\n"
+"/gnu/store/@dots{}-acl-2.2.52              61.1     0.4   0.5%\n"
+"/gnu/store/@dots{}-attr-2.4.47             60.6     0.2   0.3%\n"
+"/gnu/store/@dots{}-libcap-2.25             60.5     0.2   0.2%\n"
+"total: 78.9 MiB\n"
+
+#. type: Plain text
+#: doc/guix.texi:9236
+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:9239
+#, no-wrap
+msgid "$ guix gc -R /gnu/store/@dots{}-coreutils-8.23\n"
+msgstr "$ guix gc -R /gnu/store/@dots{}-coreutils-8.23\n"
+
+# FUZZY
+# TODO: Actualizar cuando se traduzca guix
+#. type: Plain text
+#: doc/guix.texi:9247
+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:9253
+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:9262
+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:9267
+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:9269
+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:9279
+#, no-wrap
+msgid ""
+"$ 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"
+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:9285
+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:9287
+msgid "The available options are:"
+msgstr "Las opciones disponibles son:"
+
+#. type: table
+#: doc/guix.texi:9293
+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:9294
+#, no-wrap
+msgid "--sort=@var{key}"
+msgstr "--sort=@var{clave}"
+
+#. type: table
+#: doc/guix.texi:9296
+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:9298
+#, no-wrap
+msgid "self"
+msgstr "self"
+
+#. type: table
+#: doc/guix.texi:9300
+msgid "the size of each item (the default);"
+msgstr "el tamaño de cada elemento (predeterminada);"
+
+#. type: table
+#: doc/guix.texi:9302
+msgid "the total size of the item's closure."
+msgstr "el tamaño total de la clausura del elemento."
+
+#. type: item
+#: doc/guix.texi:9304
+#, no-wrap
+msgid "--map-file=@var{file}"
+msgstr "--map-file=@var{fichero}"
+
+#. type: table
+#: doc/guix.texi:9306
+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}."
+
+#. type: table
+#: doc/guix.texi:9308
+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:9311
+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:9316
+msgid "This option requires that @uref{http://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{http://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:9320
+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:9324
+#, no-wrap
+msgid "Invoking @command{guix graph}"
+msgstr "Invocación de @command{guix graph}"
+
+#. type: cindex
+#: doc/guix.texi:9326
+#, no-wrap
+msgid "DAG"
+msgstr "GAD (DAG en Inglés)"
+
+#. type: command{#1}
+#: doc/guix.texi:9327
+#, no-wrap
+msgid "guix graph"
+msgstr "guix graph"
+
+# TODO (MAAV): chord diagram -> diagrama de acorde?
+#. type: Plain text
+#: doc/guix.texi:9341
+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{http://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{http://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{http://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 acorde'' 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{http://www.opencypher.org/, openCypher}. La sintaxis general es:"
+
+#. type: example
+#: doc/guix.texi:9344
+#, 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:9349
+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:"
+
+#. type: example
+#: doc/guix.texi:9352
+#, 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:9355
+msgid "The output looks like this:"
+msgstr "La salida es algo así:"
+
+#. type: Plain text
+#: doc/guix.texi:9357
+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:9359
+msgid "Nice little graph, no?"
+msgstr "Bonito y pequeño grafo, ¿no?"
+
+#. type: Plain text
+#: doc/guix.texi:9365
+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, permitiendole seleccionar el nivel de detalle:"
+
+#. type: table
+#: doc/guix.texi:9371
+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:9372
+#, no-wrap
+msgid "reverse-package"
+msgstr "reverse-package"
+
+#. type: table
+#: doc/guix.texi:9374
+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:9377
+#, no-wrap
+msgid "guix graph --type=reverse-package ocaml\n"
+msgstr "guix graph --type=reverse-package ocaml\n"
+
+#. type: table
+#: doc/guix.texi:9382
+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:9387
+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:9388
+#, no-wrap
+msgid "bag-emerged"
+msgstr "bag-emerged"
+
+#. type: table
+#: doc/guix.texi:9390
+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:9392
+msgid "For instance, the following command:"
+msgstr "Por ejemplo, la siguiente orden:"
+
+#. type: example
+#: doc/guix.texi:9395
+#, 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"
+
+#. type: table
+#: doc/guix.texi:9398
+msgid "...@: yields this bigger graph:"
+msgstr "...@: emite este grafo más grande:"
+
+#. type: table
+#: doc/guix.texi:9400
+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:9403
+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:9407
+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, fijese 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:9408
+#, no-wrap
+msgid "bag"
+msgstr "bag"
+
+#. type: table
+#: doc/guix.texi:9411
+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:9412
+#, no-wrap
+msgid "bag-with-origins"
+msgstr "bag-with-origins"
+
+#. type: table
+#: doc/guix.texi:9414
+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:9415
+#, no-wrap
+msgid "reverse-bag"
+msgstr "reverse-bag"
+
+#. type: table
+#: doc/guix.texi:9418
+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:9421
+#, no-wrap
+msgid "guix graph -t reverse-bag dune\n"
+msgstr "guix graph -t reverse-bag dune\n"
+
+#. type: table
+#: doc/guix.texi:9428
+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:9434
+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:9437
+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:"
+
+#. type: example
+#: doc/guix.texi:9440
+#, 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-configuracion.scm`\n"
+
+#. type: item
+#: doc/guix.texi:9442
+#, no-wrap
+msgid "module"
+msgstr "module"
+
+#. type: table
+#: doc/guix.texi:9446
+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:9449
+#, 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"
+
+#. type: Plain text
+#: doc/guix.texi:9454
+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:9459
+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:9462
+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:9466
+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!):"
+
+#. type: example
+#: doc/guix.texi:9469
+#, 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:9471
+#, no-wrap
+msgid "referrers"
+msgstr "referrers"
+
+#. type: table
+#: doc/guix.texi:9474
+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:9480
+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:9483
+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: Plain text
+#: doc/guix.texi:9487
+msgid "The available options are the following:"
+msgstr "Las opciones disponibles son las siguientes:"
+
+#. type: table
+#: doc/guix.texi:9493
+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:9494
+#, no-wrap
+msgid "--list-types"
+msgstr "--list-types"
+
+#. type: table
+#: doc/guix.texi:9496
+msgid "List the supported graph types."
+msgstr "Enumera los tipos de grafos implementados."
+
+#. type: item
+#: doc/guix.texi:9497
+#, no-wrap
+msgid "--backend=@var{backend}"
+msgstr "--backend=@var{motor}"
+
+#. type: itemx
+#: doc/guix.texi:9498
+#, no-wrap
+msgid "-b @var{backend}"
+msgstr "-b @var{motor}"
+
+#. type: table
+#: doc/guix.texi:9500
+msgid "Produce a graph using the selected @var{backend}."
+msgstr "Produce un grafo usando el @var{motor} seleccionado."
+
+#. type: item
+#: doc/guix.texi:9501
+#, no-wrap
+msgid "--list-backends"
+msgstr "--list-backends"
+
+#. type: table
+#: doc/guix.texi:9503
+msgid "List the supported graph backends."
+msgstr "Enumera los motores de grafos implementados."
+
+#. type: table
+#: doc/guix.texi:9505
+msgid "Currently, the available backends are Graphviz and d3.js."
+msgstr "Actualmente, los motores disponibles son Graphviz y d3.js."
+
+#. type: example
+#: doc/guix.texi:9514
+#, 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:9519
+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:9522
+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: section
+#: doc/guix.texi:9527
+#, no-wrap
+msgid "Invoking @command{guix publish}"
+msgstr "Invocación de @command{guix publish}"
+
+#. type: command{#1}
+#: doc/guix.texi:9529
+#, no-wrap
+msgid "guix publish"
+msgstr "guix publish"
+
+#. type: Plain text
+#: doc/guix.texi:9533
+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:9539
+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 "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 Hydra, el software detrás de la granja de construcción @code{@value{SUBSTITUTE-SERVER}}."
+
+#. type: Plain text
+#: doc/guix.texi:9545
+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."
+
+#. type: Plain text
+#: doc/guix.texi:9549
+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:9554
+#, no-wrap
+msgid "guix publish @var{options}@dots{}\n"
+msgstr "guix publish @var{opciones}@dots{}\n"
+
+#. type: Plain text
+#: doc/guix.texi:9558
+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:9561
+#, no-wrap
+msgid "guix publish\n"
+msgstr "guix publish\n"
+
+#. type: Plain text
+#: doc/guix.texi:9565
+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:9568
+#, no-wrap
+msgid "guix-daemon --substitute-urls=http://example.org:8080\n"
+msgstr "guix-daemon --substitute-urls=http://example.org:8080\n"
+
+#. type: Plain text
+#: doc/guix.texi:9577
+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 habilita 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:9584
+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})."
+
+#. type: example
+#: doc/guix.texi:9587
+#, 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:9591
+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'')."
+
+# TODO: (MAAV) Log
+#. type: cindex
+#: doc/guix.texi:9592
+#, no-wrap
+msgid "build logs, publication"
+msgstr "logs de construcción, publicación"
+
+#. type: Plain text
+#: doc/guix.texi:9594
+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:9597
+#, 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:9607
+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."
+
+#. type: item
+#: doc/guix.texi:9611
+#, no-wrap
+msgid "--port=@var{port}"
+msgstr "--port=@var{puerto}"
+
+#. type: itemx
+#: doc/guix.texi:9612
+#, no-wrap
+msgid "-p @var{port}"
+msgstr "-p @var{puerto}"
+
+#. type: table
+#: doc/guix.texi:9614
+msgid "Listen for HTTP requests on @var{port}."
+msgstr "Escucha peticiones HTTP en @var{puerto}."
+
+#. type: item
+#: doc/guix.texi:9615 doc/guix.texi:20575
+#, no-wrap
+msgid "--listen=@var{host}"
+msgstr "--listen=@var{dirección}"
+
+#. type: table
+#: doc/guix.texi:9618
+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:9623
+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:9624
+#, no-wrap
+msgid "--compression[=@var{level}]"
+msgstr "--compression[=@var{nivel}]"
+
+#. type: itemx
+#: doc/guix.texi:9625
+#, no-wrap
+msgid "-C [@var{level}]"
+msgstr "-C [@var{nivel}]"
+
+#. type: table
+#: doc/guix.texi:9630
+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 "Comprime los datos con el @var{nivel} dado. Cuando el @var{nivel} es cero, deshabilita 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."
+
+# FUZZY
+#. type: table
+#: doc/guix.texi:9639
+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."
+
+#. type: item
+#: doc/guix.texi:9640
+#, no-wrap
+msgid "--cache=@var{directory}"
+msgstr "--cache=@var{directorio}"
+
+#. type: itemx
+#: doc/guix.texi:9641
+#, no-wrap
+msgid "-c @var{directory}"
+msgstr "-c @var{directorio}"
+
+# FUZZY
+#. type: table
+#: doc/guix.texi:9644
+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:9652
+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á habilitada, 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:9660
+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."
+
+#. type: table
+#: doc/guix.texi:9664
+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:9667
+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:9668
+#, no-wrap
+msgid "--workers=@var{N}"
+msgstr "--workers=@var{N}"
+
+#. type: table
+#: doc/guix.texi:9671
+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:9672
+#, no-wrap
+msgid "--ttl=@var{ttl}"
+msgstr "--ttl=@var{ttl}"
+
+# FUZZY
+# TODO: ¿Habría que indicar que la duración es en inglés?
+#. type: table
+#: doc/guix.texi:9676
+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:9681
+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:9685
+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:9686
+#, no-wrap
+msgid "--nar-path=@var{path}"
+msgstr "--nar-path=@var{ruta}"
+
+# TODO: Comprobar
+#. type: table
+#: doc/guix.texi:9689
+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:9693
+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:9694
+#, no-wrap
+msgid "--public-key=@var{file}"
+msgstr "--public-key=@var{fichero}"
+
+#. type: itemx
+#: doc/guix.texi:9695
+#, no-wrap
+msgid "--private-key=@var{file}"
+msgstr "--private-key=@var{fichero}"
+
+#. type: table
+#: doc/guix.texi:9698
+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."
+
+#. type: table
+#: doc/guix.texi:9705
+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}."
+
+#. type: item
+#: doc/guix.texi:9706
+#, no-wrap
+msgid "--repl[=@var{port}]"
+msgstr "--repl[=@var{puerto}]"
+
+#. type: itemx
+#: doc/guix.texi:9707
+#, no-wrap
+msgid "-r [@var{port}]"
+msgstr "-r [@var{puerto}]"
+
+#. type: table
+#: doc/guix.texi:9711
+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:9717
+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 "Habilitar @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:9720
+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:9724
+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:9729
+#, no-wrap
+msgid ""
+"# ln -s ~root/.guix-profile/lib/systemd/system/guix-publish.service \\\n"
+"        /etc/systemd/system/\n"
+"# systemctl start guix-publish && systemctl enable guix-publish\n"
+msgstr ""
+"# ln -s ~root/.guix-profile/lib/systemd/system/guix-publish.service \\\n"
+"        /etc/systemd/system/\n"
+"# systemctl start guix-publish && systemctl enable guix-publish\n"
+
+#. type: example
+#: doc/guix.texi:9737
+#, no-wrap
+msgid ""
+"# ln -s ~root/.guix-profile/lib/upstart/system/guix-publish.conf /etc/init/\n"
+"# start guix-publish\n"
+msgstr ""
+"# ln -s ~root/.guix-profile/lib/upstart/system/guix-publish.conf /etc/init/\n"
+"# start guix-publish\n"
+
+#. type: itemize
+#: doc/guix.texi:9741
+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:9744
+#, no-wrap
+msgid "Invoking @command{guix challenge}"
+msgstr "Invocación de @command{guix challenge}"
+
+#. type: cindex
+#: doc/guix.texi:9747
+#, no-wrap
+msgid "verifiable builds"
+msgstr "construcciones verificables"
+
+#. type: command{#1}
+#: doc/guix.texi:9748
+#, no-wrap
+msgid "guix challenge"
+msgstr "guix challenge"
+
+# FUZZY
+#. type: cindex
+#: doc/guix.texi:9749
+#, no-wrap
+msgid "challenge"
+msgstr "reto (challenge)"
+
+#. type: Plain text
+#: doc/guix.texi:9754
+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:9762
+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:9771
+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."
+
+#. type: Plain text
+#: doc/guix.texi:9773
+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:9790
+#, no-wrap
+msgid ""
+"$ guix challenge --substitute-urls=\"https://@value{SUBSTITUTE-SERVER} https://guix.example.org\"\n"
+"updating list of substitutes from 'https://@value{SUBSTITUTE-SERVER}'... 100.0%\n"
+"updating list of substitutes from 'https://guix.example.org'... 100.0%\n"
+"/gnu/store/@dots{}-openssl-1.0.2d contents differ:\n"
+"  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"
+"\n"
+msgstr ""
+"$ guix challenge --substitute-urls=\"https://@value{SUBSTITUTE-SERVER} https://guix.example.org\"\n"
+"updating list of substitutes from 'https://@value{SUBSTITUTE-SERVER}'... 100.0%\n"
+"updating list of substitutes from 'https://guix.example.org'... 100.0%\n"
+"/gnu/store/@dots{}-openssl-1.0.2d contents differ:\n"
+"  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"
+"\n"
+
+#. type: smallexample
+#: doc/guix.texi:9792
+#, no-wrap
+msgid ""
+"@dots{}\n"
+"\n"
+msgstr ""
+"@dots{}\n"
+"\n"
+
+# FUZZY
+# TODO: Actualizar cuando se traduzca guix
+#. type: smallexample
+#: doc/guix.texi:9797
+#, no-wrap
+msgid ""
+"6,406 store items were analyzed:\n"
+"  - 4,749 (74.1%) were identical\n"
+"  - 525 (8.2%) differed\n"
+"  - 1,132 (17.7%) were inconclusive\n"
+msgstr ""
+"6,406 store items were analyzed:\n"
+"  - 4,749 (74.1%) were identical\n"
+"  - 525 (8.2%) differed\n"
+"  - 1,132 (17.7%) were inconclusive\n"
+
+#. type: Plain text
+#: doc/guix.texi:9805
+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:9806
+#, no-wrap
+msgid "non-determinism, in package builds"
+msgstr "no-determinismo, en la construcción de paquetes"
+
+#. type: Plain text
+#: doc/guix.texi:9817
+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:9820
+msgid "To find out what is wrong with this Git binary, we can do something along these lines (@pxref{Invoking guix archive}):"
+msgstr "Para encontrar cuál es el problema con este binario Git, podemos hacer algo parecido a esto (@pxref{Invoking guix archive}):"
+
+#. type: example
+#: doc/guix.texi:9825
+#, no-wrap
+msgid ""
+"$ wget -q -O - https://@value{SUBSTITUTE-SERVER}/nar/@dots{}-git-2.5.0 \\\n"
+"   | 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"
+"$ diff -ur --no-dereference /gnu/store/@dots{}-git.2.5.0 /tmp/git\n"
+
+#. type: Plain text
+#: doc/guix.texi:9834
+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 ficheros binarios difieren, 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."
+
+#. type: Plain text
+#: doc/guix.texi:9842
+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:9846
+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:9849
+#, no-wrap
+msgid "$ guix challenge @var{package}\n"
+msgstr "$ guix challenge @var{paquete}\n"
+
+#. type: Plain text
+#: doc/guix.texi:9854
+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:9859
+#, 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:9866
+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)."
+
+#. type: Plain text
+#: doc/guix.texi:9868
+msgid "The one option that matters is:"
+msgstr "La única opción de importancia es:"
+
+#. type: table
+#: doc/guix.texi:9874
+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: itemx
+#: doc/guix.texi:9876
+#, no-wrap
+msgid "-v"
+msgstr "-v"
+
+#. type: table
+#: doc/guix.texi:9879
+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:9883
+#, no-wrap
+msgid "Invoking @command{guix copy}"
+msgstr "Invocación de @command{guix copy}"
+
+#. type: cindex
+#: doc/guix.texi:9885
+#, no-wrap
+msgid "copy, of store items, over SSH"
+msgstr "copiar, elementos del almacén, por SSH"
+
+#. type: cindex
+#: doc/guix.texi:9886
+#, no-wrap
+msgid "SSH, copy of store items"
+msgstr "SSH, copiar elementos del almacén"
+
+#. type: cindex
+#: doc/guix.texi:9887
+#, no-wrap
+msgid "sharing store items across machines"
+msgstr "compartir elementos del almacén entre máquinas"
+
+#. type: cindex
+#: doc/guix.texi:9888
+#, no-wrap
+msgid "transferring store items across machines"
+msgstr "transferir elementos del almacén entre máquinas"
+
+#. type: Plain text
+#: doc/guix.texi:9895
+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:9899
+#, no-wrap
+msgid ""
+"guix copy --to=@var{user}@@@var{host} \\\n"
+"          coreutils `readlink -f ~/.guix-profile`\n"
+msgstr ""
+"guix copy --to=@var{usuaria}@@@var{dirección} \\\n"
+"          coreutils `readlink -f ~/.guix-profile`\n"
+
+#. type: Plain text
+#: doc/guix.texi:9903
+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:9906
+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:9909
+#, no-wrap
+msgid "guix copy --from=@var{host} libreoffice gimp\n"
+msgstr "guix copy --from=@var{dirección} libreoffice gimp\n"
+
+# FUZZY
+# MAAV (TODO): Authentication -> ¿identificación aquí?
+#. type: Plain text
+#: doc/guix.texi:9914
+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:9920
+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:9925
+#, 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:9928
+msgid "You must always specify one of the following options:"
+msgstr "Siempre debe especificar una de las siguientes opciones:"
+
+#. type: item
+#: doc/guix.texi:9930
+#, no-wrap
+msgid "--to=@var{spec}"
+msgstr "--to=@var{spec}"
+
+#. type: itemx
+#: doc/guix.texi:9931
+#, no-wrap
+msgid "--from=@var{spec}"
+msgstr "--from=@var{spec}"
+
+#. type: table
+#: doc/guix.texi:9935
+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:9939
+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:9943
+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:9946
+#, no-wrap
+msgid "Invoking @command{guix container}"
+msgstr "Invocación de @command{guix container}"
+
+#. type: command{#1}
+#: doc/guix.texi:9948
+#, no-wrap
+msgid "guix container"
+msgstr "guix container"
+
+#. type: quotation
+#: doc/guix.texi:9952
+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:9959
+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:9964
+#, 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:9968
+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:9970
+msgid "The following actions are available:"
+msgstr "Las siguientes acciones están disponibles:"
+
+#. type: item
+#: doc/guix.texi:9972
+#, no-wrap
+msgid "exec"
+msgstr "exec"
+
+#. type: table
+#: doc/guix.texi:9974
+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:9976
+msgid "The syntax is:"
+msgstr "La sintaxis es:"
+
+#. type: example
+#: doc/guix.texi:9979
+#, 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:9985
+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}."
+
+#. type: table
+#: doc/guix.texi:9989
+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:9992
+#, 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:9996
+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:10000
+#, no-wrap
+msgid "Invoking @command{guix weather}"
+msgstr "Invocación de @command{guix weather}"
+
+#. type: Plain text
+#: doc/guix.texi:10009
+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:10010
+#, no-wrap
+msgid "statistics, for substitutes"
+msgstr "estadísticas, para sustituciones"
+
+#. type: cindex
+#: doc/guix.texi:10011
+#, no-wrap
+msgid "availability of substitutes"
+msgstr "disponibilidad de sustituciones"
+
+#. type: cindex
+#: doc/guix.texi:10012
+#, no-wrap
+msgid "substitute availability"
+msgstr "disponibilidad de sustituciones"
+
+#. type: cindex
+#: doc/guix.texi:10013
+#, no-wrap
+msgid "weather, substitute availability"
+msgstr "weather, disponibilidad de sustituciones"
+
+#. type: Plain text
+#: doc/guix.texi:10015
+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:10027
+#, no-wrap
+msgid ""
+"$ guix weather --substitute-urls=https://guix.example.org\n"
+"computing 5,872 package derivations for x86_64-linux...\n"
+"looking for 6,128 store items on https://guix.example.org..\n"
+"updating list of substitutes from 'https://guix.example.org'... 100.0%\n"
+"https://guix.example.org\n"
+"  43.4% substitutes available (2,658 out of 6,128)\n"
+"  7,032.5 MiB of nars (compressed)\n"
+"  19,824.2 MiB on disk (uncompressed)\n"
+"  0.030 seconds per request (182.9 seconds in total)\n"
+"  33.5 requests per second\n"
+"\n"
+msgstr ""
+"$ guix weather --substitute-urls=https://guix.example.org\n"
+"computing 5,872 package derivations for x86_64-linux...\n"
+"looking for 6,128 store items on https://guix.example.org..\n"
+"updating list of substitutes from 'https://guix.example.org'... 100.0%\n"
+"https://guix.example.org\n"
+"  43.4% substitutes available (2,658 out of 6,128)\n"
+"  7,032.5 MiB of nars (compressed)\n"
+"  19,824.2 MiB on disk (uncompressed)\n"
+"  0.030 seconds per request (182.9 seconds in total)\n"
+"  33.5 requests per second\n"
+"\n"
+
+# FUZZY
+# TODO: Actualizar cuando se traduzca guix
+#. type: example
+#: doc/guix.texi:10037
+#, no-wrap
+msgid ""
+"  9.8% (342 out of 3,470) of the missing items are queued\n"
+"  867 queued builds\n"
+"      x86_64-linux: 518 (59.7%)\n"
+"      i686-linux: 221 (25.5%)\n"
+"      aarch64-linux: 128 (14.8%)\n"
+"  build rate: 23.41 builds per hour\n"
+"      x86_64-linux: 11.16 builds per hour\n"
+"      i686-linux: 6.03 builds per hour\n"
+"      aarch64-linux: 6.41 builds per hour\n"
+msgstr ""
+"  9.8% (342 out of 3,470) of the missing items are queued\n"
+"  867 queued builds\n"
+"      x86_64-linux: 518 (59.7%)\n"
+"      i686-linux: 221 (25.5%)\n"
+"      aarch64-linux: 128 (14.8%)\n"
+"  build rate: 23.41 builds per hour\n"
+"      x86_64-linux: 11.16 builds per hour\n"
+"      i686-linux: 6.03 builds per hour\n"
+"      aarch64-linux: 6.41 builds per hour\n"
+
+#. type: cindex
+#: doc/guix.texi:10039
+#, no-wrap
+msgid "continuous integration, statistics"
+msgstr "integración continua, estadísticas"
+
+#. type: Plain text
+#: doc/guix.texi:10050
+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 habilitadas, 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:10056
+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: Plain text
+#: doc/guix.texi:10059
+msgid "Among other things, it is possible to query specific system types and specific package sets.  The available options are listed below."
+msgstr "Entre otras cosas, es posible consultar tipos específicos de sistema y conjuntos específicos de paquetes. Las opciones disponibles se enumeran a continuación."
+
+#. type: table
+#: doc/guix.texi:10065
+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:10071
+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:10077
+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})."
+
+#. type: item
+#: doc/guix.texi:10078
+#, no-wrap
+msgid "--coverage[=@var{count}]"
+msgstr "--coverage[=@var{numero}]"
+
+#. type: itemx
+#: doc/guix.texi:10079
+#, no-wrap
+msgid "-c [@var{count}]"
+msgstr "-c [@var{numero}]"
+
+# FUZZY
+#. type: table
+#: doc/guix.texi:10085
+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í:"
+
+# TODO: Traducción de la interfaz
+#. type: example
+#: doc/guix.texi:10099
+#, no-wrap
+msgid ""
+"$ guix weather --substitute-urls=https://ci.guix.info -c 10\n"
+"computing 8,983 package derivations for x86_64-linux...\n"
+"looking for 9,343 store items on https://ci.guix.info...\n"
+"updating substitutes from 'https://ci.guix.info'... 100.0%\n"
+"https://ci.guix.info\n"
+"  64.7% substitutes available (6,047 out of 9,343)\n"
+"@dots{}\n"
+"2502 packages are missing from 'https://ci.guix.info' for 'x86_64-linux', among which:\n"
+"    58  kcoreaddons@@5.49.0      /gnu/store/@dots{}-kcoreaddons-5.49.0\n"
+"    46  qgpgme@@1.11.1           /gnu/store/@dots{}-qgpgme-1.11.1\n"
+"    37  perl-http-cookiejar@@0.008  /gnu/store/@dots{}-perl-http-cookiejar-0.008\n"
+"    @dots{}\n"
+msgstr ""
+"$ guix weather --substitute-urls=https://ci.guix.info -c 10\n"
+"computing 8,983 package derivations for x86_64-linux...\n"
+"looking for 9,343 store items on https://ci.guix.info...\n"
+"updating substitutes from 'https://ci.guix.info'... 100.0%\n"
+"https://ci.guix.info\n"
+"  64.7% substitutes available (6,047 out of 9,343)\n"
+"@dots{}\n"
+"2502 packages are missing from 'https://ci.guix.info' for 'x86_64-linux', among which:\n"
+"    58  kcoreaddons@@5.49.0      /gnu/store/@dots{}-kcoreaddons-5.49.0\n"
+"    46  qgpgme@@1.11.1           /gnu/store/@dots{}-qgpgme-1.11.1\n"
+"    37  perl-http-cookiejar@@0.008  /gnu/store/@dots{}-perl-http-cookiejar-0.008\n"
+"    @dots{}\n"
+
+#. type: table
+#: doc/guix.texi:10104
+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:10108
+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: section
+#: doc/guix.texi:10111
+#, no-wrap
+msgid "Invoking @command{guix processes}"
+msgstr "Invocación de @command{guix processes}"
+
+#. type: Plain text
+#: doc/guix.texi:10119
+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:10125
+#, no-wrap
+msgid ""
+"$ sudo guix processes\n"
+"SessionPID: 19002\n"
+"ClientPID: 19090\n"
+"ClientCommand: guix environment --ad-hoc python\n"
+"\n"
+msgstr ""
+"$ sudo guix processes\n"
+"SessionPID: 19002\n"
+"ClientPID: 19090\n"
+"ClientCommand: guix environment --ad-hoc python\n"
+"\n"
+
+# FUZZY
+# TODO: Actualizar cuando se traduzca guix
+#. type: example
+#: doc/guix.texi:10129
+#, no-wrap
+msgid ""
+"SessionPID: 19402\n"
+"ClientPID: 19367\n"
+"ClientCommand: guix publish -u guix-publish -p 3000 -C 9 @dots{}\n"
+"\n"
+msgstr ""
+"SessionPID: 19402\n"
+"ClientPID: 19367\n"
+"ClientCommand: guix publish -u guix-publish -p 3000 -C 9 @dots{}\n"
+"\n"
+
+# FUZZY
+# TODO: Actualizar cuando se traduzca guix
+#. type: example
+#: doc/guix.texi:10139
+#, no-wrap
+msgid ""
+"SessionPID: 19444\n"
+"ClientPID: 19419\n"
+"ClientCommand: cuirass --cache-directory /var/cache/cuirass @dots{}\n"
+"LockHeld: /gnu/store/@dots{}-perl-ipc-cmd-0.96.lock\n"
+"LockHeld: /gnu/store/@dots{}-python-six-bootstrap-1.11.0.lock\n"
+"LockHeld: /gnu/store/@dots{}-libjpeg-turbo-2.0.0.lock\n"
+"ChildProcess: 20495: guix offload x86_64-linux 7200 1 28800\n"
+"ChildProcess: 27733: guix offload x86_64-linux 7200 1 28800\n"
+"ChildProcess: 27793: guix offload x86_64-linux 7200 1 28800\n"
+msgstr ""
+"SessionPID: 19444\n"
+"ClientPID: 19419\n"
+"ClientCommand: cuirass --cache-directory /var/cache/cuirass @dots{}\n"
+"LockHeld: /gnu/store/@dots{}-perl-ipc-cmd-0.96.lock\n"
+"LockHeld: /gnu/store/@dots{}-python-six-bootstrap-1.11.0.lock\n"
+"LockHeld: /gnu/store/@dots{}-libjpeg-turbo-2.0.0.lock\n"
+"ChildProcess: 20495: guix offload x86_64-linux 7200 1 28800\n"
+"ChildProcess: 27733: guix offload x86_64-linux 7200 1 28800\n"
+"ChildProcess: 27793: guix offload x86_64-linux 7200 1 28800\n"
+
+# FUZZY
+# TODO: Actualizar cuando se traduzca guix
+#. type: Plain text
+#: doc/guix.texi:10146
+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:10153
+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:10158
+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:10164
+#, no-wrap
+msgid ""
+"$ sudo guix processes | \\\n"
+"    recsel -p ClientPID,ClientCommand -e 'LockHeld ~ \"perl\"'\n"
+"ClientPID: 19419\n"
+"ClientCommand: cuirass --cache-directory /var/cache/cuirass @dots{}\n"
+msgstr ""
+"$ sudo guix processes | \\\n"
+"    recsel -p ClientPID,ClientCommand -e 'LockHeld ~ \"perl\"'\n"
+"ClientPID: 19419\n"
+"ClientCommand: cuirass --cache-directory /var/cache/cuirass @dots{}\n"
+
+#. type: cindex
+#: doc/guix.texi:10170
+#, no-wrap
+msgid "system configuration"
+msgstr "configuración del sistema"
+
+#. type: Plain text
+#: doc/guix.texi:10176
+msgid "The Guix System Distribution 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 "La Distribución de 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:10186
+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:10191
+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:10219
+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:"
+
+#. type: findex
+#: doc/guix.texi:10220
+#, no-wrap
+msgid "operating-system"
+msgstr "operating-system"
+
+#. type: include
+#: doc/guix.texi:10222
+#, no-wrap
+msgid "os-config-bare-bones.texi"
+msgstr "os-config-bare-bones.texi"
+
+#. type: Plain text
+#: doc/guix.texi:10229
+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:10234
+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:10235
+#, no-wrap
+msgid "Bootloader"
+msgstr "Cargador de arranque"
+
+#. type: cindex
+#: doc/guix.texi:10237
+#, no-wrap
+msgid "legacy boot, on Intel machines"
+msgstr "arranque obsoleto, en máquinas Intel"
+
+#. type: cindex
+#: doc/guix.texi:10238
+#, no-wrap
+msgid "BIOS boot, on Intel machines"
+msgstr "arranque por BIOS, en máquinas Intel"
+
+#. type: cindex
+#: doc/guix.texi:10239
+#, no-wrap
+msgid "UEFI boot"
+msgstr "arranque UEFI"
+
+#. type: cindex
+#: doc/guix.texi:10240
+#, no-wrap
+msgid "EFI boot"
+msgstr "arranque EFI"
+
+#. type: Plain text
+#: doc/guix.texi:10246
+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: example
+#: doc/guix.texi:10251
+#, no-wrap
+msgid ""
+"(bootloader-configuration\n"
+"  (bootloader grub-efi-bootloader)\n"
+"  (target \"/boot/efi\"))\n"
+msgstr ""
+"(bootloader-configuration\n"
+"  (bootloader grub-efi-bootloader)\n"
+"  (target \"/boot/efi\"))\n"
+
+#. type: Plain text
+#: doc/guix.texi:10255
+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:10256
+#, no-wrap
+msgid "Globally-Visible Packages"
+msgstr "Paquetes visibles globalmente"
+
+#. type: vindex
+#: doc/guix.texi:10258
+#, no-wrap
+msgid "%base-packages"
+msgstr "%base-packages"
+
+#. type: Plain text
+#: doc/guix.texi:10271
+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 "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 @var{%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:10275
+#, no-wrap
+msgid ""
+"(use-modules (gnu packages))\n"
+"(use-modules (gnu packages dns))\n"
+"\n"
+msgstr ""
+"(use-modules (gnu packages))\n"
+"(use-modules (gnu packages dns))\n"
+"\n"
+
+#. type: lisp
+#: doc/guix.texi:10280
+#, no-wrap
+msgid ""
+"(operating-system\n"
+"  ;; ...\n"
+"  (packages (cons (list bind \"utils\")\n"
+"                  %base-packages)))\n"
+msgstr ""
+"(operating-system\n"
+"  ;; ...\n"
+"  (packages (cons (list bind \"utils\")\n"
+"                  %base-packages)))\n"
+
+#. type: findex
+#: doc/guix.texi:10282
+#, no-wrap
+msgid "specification->package"
+msgstr "specification->package"
+
+#. type: Plain text
+#: doc/guix.texi:10291
+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:10294
+#, no-wrap
+msgid ""
+"(use-modules (gnu packages))\n"
+"\n"
+msgstr ""
+"(use-modules (gnu packages))\n"
+"\n"
+
+#. type: lisp
+#: doc/guix.texi:10300
+#, no-wrap
+msgid ""
+"(operating-system\n"
+"  ;; ...\n"
+"  (packages (append (map specification->package\n"
+"                         '(\"tcpdump\" \"htop\" \"gnupg@@2.0\"))\n"
+"                    %base-packages)))\n"
+msgstr ""
+"(operating-system\n"
+"  ;; ...\n"
+"  (packages (append (map specification->package\n"
+"                         '(\"tcpdump\" \"htop\" \"gnupg@@2.0\"))\n"
+"                    %base-packages)))\n"
+
+#. type: unnumberedsubsec
+#: doc/guix.texi:10302
+#, no-wrap
+msgid "System Services"
+msgstr "Servicios del sistema"
+
+#. type: cindex
+#: doc/guix.texi:10304 doc/guix.texi:23682 doc/guix.texi:24670
+#, no-wrap
+msgid "services"
+msgstr "services"
+
+#. type: vindex
+#: doc/guix.texi:10305
+#, no-wrap
+msgid "%base-services"
+msgstr "%base-services"
+
+# FUZZY
+#. type: Plain text
+#: doc/guix.texi:10315
+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})."
+
+#. type: cindex
+#: doc/guix.texi:10316
+#, no-wrap
+msgid "customization, of services"
+msgstr "personalización, de servicios"
+
+#. type: findex
+#: doc/guix.texi:10317
+#, no-wrap
+msgid "modify-services"
+msgstr "modify-services"
+
+#. type: Plain text
+#: doc/guix.texi:10321
+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:10326
+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 "Por ejemplo, supongamos que quiere modificar @code{guix-daemon} y Mingetty (el punto de acceso al sistema por consola) en la lista @var{%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:10339
+#, no-wrap
+msgid ""
+"(define %my-services\n"
+"  ;; My very own list of 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"
+"    (mingetty-service-type config =>\n"
+"                           (mingetty-configuration\n"
+"                            (inherit config)))))\n"
+"\n"
+msgstr ""
+"(define %mis-servicios\n"
+"  ;; Mi propia lista de servicios\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"
+"    (mingetty-service-type config =>\n"
+"                           (mingetty-configuration\n"
+"                            (inherit config)))))\n"
+"\n"
+
+#. type: lisp
+#: doc/guix.texi:10343
+#, no-wrap
+msgid ""
+"(operating-system\n"
+"  ;; @dots{}\n"
+"  (services %my-services))\n"
+msgstr ""
+"(operating-system\n"
+"  ;; @dots{}\n"
+"  (services %mis-servicios))\n"
+
+#. type: Plain text
+#: doc/guix.texi:10354
+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 "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 @var{%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 evalue 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:10361
+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:10363
+#, no-wrap
+msgid "os-config-desktop.texi"
+msgstr "os-config-desktop.texi"
+
+#. type: Plain text
+#: doc/guix.texi:10368
+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:10370
+#, no-wrap
+msgid "os-config-lightweight-desktop.texi"
+msgstr "os-config-lightweight-desktop.texi"
+
+#. type: Plain text
+#: doc/guix.texi:10376
+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}."
+
+# FUZZY
+#. type: Plain text
+#: doc/guix.texi:10380
+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}, para la lista exacta de servicios proporcionados por @var{%desktop-services}. @xref{X.509 Certificates}, para información sobre el paquete @code{nss-certs} usado aquí."
+
+#. type: Plain text
+#: doc/guix.texi:10387
+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 "De nuevo, @var{%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 @var{%desktop-services} excepto el servicio Avahi:"
+
+#. type: example
+#: doc/guix.texi:10392
+#, no-wrap
+msgid ""
+"(remove (lambda (service)\n"
+"          (eq? (service-kind service) avahi-service-type))\n"
+"        %desktop-services)\n"
+msgstr ""
+"(remove (lambda (service)\n"
+"          (eq? (service-kind service) avahi-service-type))\n"
+"        %desktop-services)\n"
+
+#. type: unnumberedsubsec
+#: doc/guix.texi:10394
+#, no-wrap
+msgid "Instantiating the System"
+msgstr "Instanciación del sistema"
+
+#. type: Plain text
+#: doc/guix.texi:10401
+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{my-conf-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:10409
+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."
+
+#. type: cindex
+#: doc/guix.texi:10410
+#, no-wrap
+msgid "roll-back, of the operating system"
+msgstr "vuelta-atrás, del sistema operativo"
+
+#. type: Plain text
+#: doc/guix.texi:10420
+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, permitiendole 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:10426
+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:10427
+#, no-wrap
+msgid "The Programming Interface"
+msgstr "La interfaz programática"
+
+#. type: Plain text
+#: doc/guix.texi:10432
+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:10433
+#, no-wrap
+msgid "{Monadic Procedure} operating-system-derivation os"
+msgstr "{Procedimiento monádico} operating-system-derivation so"
+
+#. type: deffn
+#: doc/guix.texi:10436
+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:10440
+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}."
+
+# FUZZY
+#. type: Plain text
+#: doc/guix.texi:10445
+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. ¡Asegurese de echarle un vistazo!"
+
+#. type: section
+#: doc/guix.texi:10448
+#, no-wrap
+msgid "@code{operating-system} Reference"
+msgstr "Referencia de @code{operating-system}"
+
+#. type: Plain text
+#: doc/guix.texi:10453
+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:10454
+#, no-wrap
+msgid "{Data Type} operating-system"
+msgstr "{Tipo de datos} operating-system"
+
+#. type: deftp
+#: doc/guix.texi:10458
+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:10460
+#, no-wrap
+msgid "@code{kernel} (default: @var{linux-libre})"
+msgstr "@code{kernel} (predeterminado: @code{linux-libre})"
+
+#. type: table
+#: doc/guix.texi:10464
+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.}."
+
+#. type: item
+#: doc/guix.texi:10465
+#, no-wrap
+msgid "@code{kernel-arguments} (default: @code{'(\"quiet\")})"
+msgstr "@code{kernel-arguments} (predeterminados: @code{'(\"quiet\")})"
+
+#. type: table
+#: doc/guix.texi:10468
+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:10469 doc/guix.texi:23893 doc/guix.texi:23912
+#, no-wrap
+msgid "bootloader"
+msgstr "bootloader"
+
+#. type: table
+#: doc/guix.texi:10471
+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:10472 doc/guix.texi:24032
+#, no-wrap
+msgid "label"
+msgstr "label"
+
+#. type: table
+#: doc/guix.texi:10475
+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:10476 doc/guix.texi:13643 doc/guix.texi:23962
+#, no-wrap
+msgid "@code{keyboard-layout} (default: @code{#f})"
+msgstr "@code{keyboard-layout} (predeterminada: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:10480
+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 a usar en 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:10485
+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})."
+
+# FUZZY
+#. type: quotation
+#: doc/guix.texi:10492
+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 tampo 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:10494
+#, 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:10495 doc/guix.texi:23719 doc/guix.texi:23822
+#: doc/guix.texi:24057
+#, no-wrap
+msgid "initrd"
+msgstr "initrd"
+
+#. type: cindex
+#: doc/guix.texi:10496 doc/guix.texi:23720 doc/guix.texi:23823
+#, no-wrap
+msgid "initial RAM disk"
+msgstr "disco inicial de RAM"
+
+#. type: table
+#: doc/guix.texi:10499
+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}."
+
+#. type: item
+#: doc/guix.texi:10500
+#, no-wrap
+msgid "@code{initrd} (default: @code{base-initrd})"
+msgstr "@code{initrd} (predeterminado: @code{base-initrd})"
+
+# FUZZY
+#. type: table
+#: doc/guix.texi:10504
+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}."
+
+#. type: item
+#: doc/guix.texi:10505
+#, no-wrap
+msgid "@code{firmware} (default: @var{%base-firmware})"
+msgstr "@code{firmware} (predeterminado: @code{%base-firmware})"
+
+#. type: cindex
+#: doc/guix.texi:10506
+#, no-wrap
+msgid "firmware"
+msgstr "firmware"
+
+#. type: table
+#: doc/guix.texi:10508
+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:10513
+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:10514
+#, no-wrap
+msgid "host-name"
+msgstr "host-name"
+
+#. type: table
+#: doc/guix.texi:10516
+msgid "The host name."
+msgstr "El nombre de la máquina."
+
+#. type: code{#1}
+#: doc/guix.texi:10517
+#, no-wrap
+msgid "hosts-file"
+msgstr "hosts-file"
+
+#. type: cindex
+#: doc/guix.texi:10518
+#, no-wrap
+msgid "hosts file"
+msgstr "el fichero hosts"
+
+#. type: table
+#: doc/guix.texi:10523
+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}."
+
+#. type: item
+#: doc/guix.texi:10524
+#, no-wrap
+msgid "@code{mapped-devices} (default: @code{'()})"
+msgstr "@code{mapped-devices} (predeterminados: @code{'()})"
+
+# TODO (MAAV): Comprobar.
+#. type: table
+#: doc/guix.texi:10526
+msgid "A list of mapped devices.  @xref{Mapped Devices}."
+msgstr "Una lista de dispositivos traducidos. @xref{Mapped Devices}."
+
+#. type: code{#1}
+#: doc/guix.texi:10527
+#, no-wrap
+msgid "file-systems"
+msgstr "file-systems"
+
+#. type: table
+#: doc/guix.texi:10529
+msgid "A list of file systems.  @xref{File Systems}."
+msgstr "Una lista de sistemas de ficheros. @xref{File Systems}."
+
+#. type: item
+#: doc/guix.texi:10530
+#, 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:10531
+#, no-wrap
+msgid "swap devices"
+msgstr "dispositivos de intercambio"
+
+#. type: table
+#: doc/guix.texi:10538
+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 a usar 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}."
+
+#. type: item
+#: doc/guix.texi:10539
+#, no-wrap
+msgid "@code{users} (default: @code{%base-user-accounts})"
+msgstr "@code{users} (predeterminadas: @code{%base-user-accounts})"
+
+#. type: itemx
+#: doc/guix.texi:10540
+#, no-wrap
+msgid "@code{groups} (default: @var{%base-groups})"
+msgstr "@code{groups} (predeterminados: @var{%base-groups})"
+
+#. type: table
+#: doc/guix.texi:10542
+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:10545
+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:10546
+#, no-wrap
+msgid "@code{skeletons} (default: @code{(default-skeletons)})"
+msgstr "@code{skeletons} (predeterminados: @code{(default-skeletons)})"
+
+# FUZZY
+#. type: table
+#: doc/guix.texi:10550
+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."
+
+#. type: table
+#: doc/guix.texi:10552
+msgid "For instance, a valid value may look like this:"
+msgstr "Por ejemplo, un valor válido puede parecer algo así:"
+
+#. type: example
+#: doc/guix.texi:10558
+#, no-wrap
+msgid ""
+"`((\".bashrc\" ,(plain-file \"bashrc\" \"echo Hello\\n\"))\n"
+"  (\".guile\" ,(plain-file \"guile\"\n"
+"                         \"(use-modules (ice-9 readline))\n"
+"                          (activate-readline)\")))\n"
+msgstr ""
+"`((\".bashrc\" ,(plain-file \"bashrc\" \"echo Hola\\n\"))\n"
+"  (\".guile\" ,(plain-file \"guile\"\n"
+"                         \"(use-modules (ice-9 readline))\n"
+"                          (activate-readline)\")))\n"
+
+#. type: item
+#: doc/guix.texi:10560
+#, no-wrap
+msgid "@code{issue} (default: @var{%default-issue})"
+msgstr "@code{issue} (predeterminado: @var{%default-issue})"
+
+#. type: table
+#: doc/guix.texi:10563
+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."
+
+#. type: item
+#: doc/guix.texi:10564
+#, no-wrap
+msgid "@code{packages} (default: @var{%base-packages})"
+msgstr "@code{packages} (predeterminados: @var{%base-packages})"
+
+#. type: table
+#: doc/guix.texi:10567
+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}."
+
+# FUZZY
+#. type: table
+#: doc/guix.texi:10571
+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:10572
+#, no-wrap
+msgid "timezone"
+msgstr "timezone"
+
+#. type: table
+#: doc/guix.texi:10574
+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:10578
+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:10579
+#, no-wrap
+msgid "@code{locale} (default: @code{\"en_US.utf8\"})"
+msgstr "@code{locale} (predeterminado: @code{\"en_US.utf8\"})"
+
+#. type: table
+#: doc/guix.texi:10582
+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:10583
+#, no-wrap
+msgid "@code{locale-definitions} (default: @var{%default-locale-definitions})"
+msgstr "@code{locale-definitions} (predeterminadas: @var{%default-locale-definitions})"
+
+#. type: table
+#: doc/guix.texi:10586
+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:10587
+#, 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:10591
+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:10592
+#, no-wrap
+msgid "@code{name-service-switch} (default: @var{%default-nss})"
+msgstr "@code{name-service-switch} (predeterminado: @var{%default-nss})"
+
+# FUZZY
+# TODO: Comprobar libc
+#. type: table
+#: doc/guix.texi:10596
+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:10597
+#, no-wrap
+msgid "@code{services} (default: @var{%base-services})"
+msgstr "considera"
+
+#. type: table
+#: doc/guix.texi:10599
+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:10600
+#, no-wrap
+msgid "essential services"
+msgstr "servicios esenciales"
+
+#. type: item
+#: doc/guix.texi:10601
+#, no-wrap
+msgid "@code{essential-services} (default: ...)"
+msgstr "@code{essential-services} (predeterminados: ...)"
+
+# FUZZY
+#. type: table
+#: doc/guix.texi:10606
+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:10607
+#, 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:10608
+#, no-wrap
+msgid "PAM"
+msgstr "PAM"
+
+# FUZZY
+# TODO: Comprobar PAM
+#. type: cindex
+#: doc/guix.texi:10609
+#, no-wrap
+msgid "pluggable authentication modules"
+msgstr "módulos de verificación conectables"
+
+#. type: table
+#: doc/guix.texi:10612
+msgid "Linux @dfn{pluggable authentication module} (PAM) services."
+msgstr "Servicios de los @dfn{módulos de verificación conectables} (PAM) de Linux."
+
+#. type: item
+#: doc/guix.texi:10613
+#, no-wrap
+msgid "@code{setuid-programs} (default: @var{%setuid-programs})"
+msgstr "@code{setuid-programs} (predeterminados: @var{%setuid-programs})"
+
+# FUZZY
+#. type: table
+#: doc/guix.texi:10616
+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:10617
+#, no-wrap
+msgid "@code{sudoers-file} (default: @var{%sudoers-specification})"
+msgstr "@code{sudoers-file} (predeterminado: @var{%sudoers-specification})"
+
+#. type: cindex
+#: doc/guix.texi:10618
+#, no-wrap
+msgid "sudoers file"
+msgstr "fichero sudoers"
+
+#. type: table
+#: doc/guix.texi:10621
+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}})."
+
+#. type: table
+#: doc/guix.texi:10626
+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}."
+
+#. type: deffn
+#: doc/guix.texi:10629
+#, no-wrap
+msgid "{Scheme Syntax} this-operating-system"
+msgstr "{Tipo de datos} this-operating-system"
+
+# FUZZY
+#. type: deffn
+#: doc/guix.texi:10632
+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:10635
+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: example
+#: doc/guix.texi:10638 doc/guix.texi:13297
+#, no-wrap
+msgid ""
+"(use-modules (gnu) (guix))\n"
+"\n"
+msgstr ""
+"(use-modules (gnu) (guix))\n"
+"\n"
+
+#. type: example
+#: doc/guix.texi:10643
+#, no-wrap
+msgid ""
+"(operating-system\n"
+"  ;; ...\n"
+"  (label (package-full-name\n"
+"          (operating-system-kernel this-operating-system))))\n"
+msgstr ""
+"(operating-system\n"
+"  ;; ...\n"
+"  (label (package-full-name\n"
+"          (operating-system-kernel this-operating-system))))\n"
+
+#. type: deffn
+#: doc/guix.texi:10647
+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:10658
+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:"
+
+#. type: example
+#: doc/guix.texi:10664
+#, no-wrap
+msgid ""
+"(file-system\n"
+"  (mount-point \"/home\")\n"
+"  (device \"/dev/sda3\")\n"
+"  (type \"ext4\"))\n"
+msgstr ""
+"(file-system\n"
+"  (mount-point \"/home\")\n"
+"  (device \"/dev/sda3\")\n"
+"  (type \"ext4\"))\n"
+
+#. type: Plain text
+#: doc/guix.texi:10668
+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:10669
+#, no-wrap
+msgid "{Data Type} file-system"
+msgstr "{Tipo de datos} file-system"
+
+#. type: deftp
+#: doc/guix.texi:10672
+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:"
+
+#. type: item
+#: doc/guix.texi:10674 doc/guix.texi:10860
+#, no-wrap
+msgid "type"
+msgstr "type"
+
+#. type: table
+#: doc/guix.texi:10677
+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\"}."
+
+#. type: code{#1}
+#: doc/guix.texi:10678
+#, no-wrap
+msgid "mount-point"
+msgstr "mount-point"
+
+# FUZZY
+#. type: table
+#: doc/guix.texi:10680
+msgid "This designates the place where the file system is to be mounted."
+msgstr "Designa la ruta donde el sistema de ficheros debe montarse."
+
+#. type: code{#1}
+#: doc/guix.texi:10681
+#, no-wrap
+msgid "device"
+msgstr "device"
+
+#. type: table
+#: doc/guix.texi:10691
+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{Fijese 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:10692
+#, no-wrap
+msgid "file-system-label"
+msgstr "file-system-label"
+
+#. type: table
+#: doc/guix.texi:10697
+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}:"
+
+#. type: example
+#: doc/guix.texi:10703
+#, no-wrap
+msgid ""
+"(file-system\n"
+"  (mount-point \"/home\")\n"
+"  (type \"ext4\")\n"
+"  (device (file-system-label \"my-home\")))\n"
+msgstr ""
+"(file-system\n"
+"  (mount-point \"/home\")\n"
+"  (type \"ext4\")\n"
+"  (device (file-system-label \"mi-home\")))\n"
+
+#. type: findex
+#: doc/guix.texi:10705
+#, no-wrap
+msgid "uuid"
+msgstr "uuid"
+
+#. type: table
+#: doc/guix.texi:10713
+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:"
+
+#. type: example
+#: doc/guix.texi:10719
+#, no-wrap
+msgid ""
+"(file-system\n"
+"  (mount-point \"/home\")\n"
+"  (type \"ext4\")\n"
+"  (device (uuid \"4dab5feb-d176-45de-b287-9b0a6e4c01cb\")))\n"
+msgstr ""
+"(file-system\n"
+"  (mount-point \"/home\")\n"
+"  (type \"ext4\")\n"
+"  (device (uuid \"4dab5feb-d176-45de-b287-9b0a6e4c01cb\")))\n"
+
+#. type: table
+#: doc/guix.texi:10727
+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."
+
+#. type: item
+#: doc/guix.texi:10728
+#, no-wrap
+msgid "@code{flags} (default: @code{'()})"
+msgstr "@code{flags} (predeterminadas: @code{'()})"
+
+# FUZZY
+#. type: table
+#: doc/guix.texi:10733
+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), and @code{no-exec} (disallow program execution.)"
+msgstr "Una lista de símbolos que denotan opciones del montaje. Las opciones reconocidas incluyen @code{read-only} (modo de sólo lectura), @code{bind-mount} (montaje enlazado), @code{no-dev} (prohibición del acceso a ficheros especiales), @code{no-suid} (ignora los bits setuid y setgid) y @code{no-exec} (prohibición de la ejecución de programas)."
+
+#. type: item
+#: doc/guix.texi:10734
+#, no-wrap
+msgid "@code{options} (default: @code{#f})"
+msgstr "@code{options} (predeterminadas: @code{#f})"
+
+# FUZZY
+#. type: table
+#: doc/guix.texi:10736
+msgid "This is either @code{#f}, or a string denoting mount options."
+msgstr "Esto es o bien @code{#f}, o bien una cadena que contiene opciones de montaje."
+
+#. type: item
+#: doc/guix.texi:10737
+#, no-wrap
+msgid "@code{mount?} (default: @code{#t})"
+msgstr "@code{mount?} (predeterminado: @code{#t})"
+
+# FUZZY
+#. type: table
+#: doc/guix.texi:10742
+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."
+
+#. type: item
+#: doc/guix.texi:10743
+#, no-wrap
+msgid "@code{needed-for-boot?} (default: @code{#f})"
+msgstr "@code{needed-for-boot?} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:10748
+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."
+
+#. type: item
+#: doc/guix.texi:10749
+#, no-wrap
+msgid "@code{check?} (default: @code{#t})"
+msgstr "@code{check?} (predeterminado: @code{#t})"
+
+#. type: table
+#: doc/guix.texi:10752
+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."
+
+#. type: item
+#: doc/guix.texi:10753
+#, no-wrap
+msgid "@code{create-mount-point?} (default: @code{#f})"
+msgstr "@code{create-mount-point?} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:10755
+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:10756
+#, no-wrap
+msgid "@code{dependencies} (default: @code{'()})"
+msgstr "@code{dependencies} (predeterminadas: @code{'()})"
+
+#. type: table
+#: doc/guix.texi:10760
+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 deben abrirse antes (y desmontarse o cerrarse después) que el declarado."
+
+#. type: table
+#: doc/guix.texi:10764
+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:10767
+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})."
+
+#. type: Plain text
+#: doc/guix.texi:10772
+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:10773
+#, no-wrap
+msgid "{Scheme Variable} %base-file-systems"
+msgstr "{Variable Scheme} %base-file-systems"
+
+#. type: defvr
+#: doc/guix.texi:10778
+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."
+
+#. type: defvr
+#: doc/guix.texi:10780
+#, no-wrap
+msgid "{Scheme Variable} %pseudo-terminal-file-system"
+msgstr "{Variable Scheme} %pseudo-terminal-file-systems"
+
+#. type: defvr
+#: doc/guix.texi:10786
+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}."
+
+#. type: defvr
+#: doc/guix.texi:10788
+#, no-wrap
+msgid "{Scheme Variable} %shared-memory-file-system"
+msgstr "{Variable Scheme} %shared-memory-file-system"
+
+#. type: defvr
+#: doc/guix.texi:10792
+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})."
+
+#. type: defvr
+#: doc/guix.texi:10794
+#, no-wrap
+msgid "{Scheme Variable} %immutable-store"
+msgstr "{Variable Scheme} %immutable-store"
+
+#. type: defvr
+#: doc/guix.texi:10799
+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."
+
+#. type: defvr
+#: doc/guix.texi:10802
+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:10804
+#, no-wrap
+msgid "{Scheme Variable} %binary-format-file-system"
+msgstr "{Variable Scheme} %binary-format-file-system"
+
+#. type: defvr
+#: doc/guix.texi:10808
+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}."
+
+#. type: defvr
+#: doc/guix.texi:10810
+#, no-wrap
+msgid "{Scheme Variable} %fuse-control-file-system"
+msgstr "{Variable Scheme} %fuse-control-file-system"
+
+#. type: defvr
+#: doc/guix.texi:10814
+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}."
+
+#. type: cindex
+#: doc/guix.texi:10819
+#, 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:10820
+#, no-wrap
+msgid "mapped devices"
+msgstr "dispositivos traducidos"
+
+#. type: Plain text
+#: doc/guix.texi:10838
+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."
+
+#. type: Plain text
+#: doc/guix.texi:10841
+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:10842
+#, no-wrap
+msgid "{Data Type} mapped-device"
+msgstr "{Tipo de datos} mapped-device"
+
+#. type: deftp
+#: doc/guix.texi:10845
+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:10851
+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:10852 doc/guix.texi:23937
+#, no-wrap
+msgid "target"
+msgstr "target"
+
+#. type: table
+#: doc/guix.texi:10859
+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:10863
+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:10866
+#, no-wrap
+msgid "{Scheme Variable} luks-device-mapping"
+msgstr "{Variable Scheme} luks-device-mapping"
+
+#. type: defvr
+#: doc/guix.texi:10870
+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:10872
+#, no-wrap
+msgid "{Scheme Variable} raid-device-mapping"
+msgstr "{Variable Scheme} raid-device-mapping"
+
+#. type: defvr
+#: doc/guix.texi:10877
+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:10879
+#, no-wrap
+msgid "disk encryption"
+msgstr "cifrado de disco"
+
+#. type: cindex
+#: doc/guix.texi:10880
+#, no-wrap
+msgid "LUKS"
+msgstr "LUKS"
+
+#. type: Plain text
+#: doc/guix.texi:10888
+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: example
+#: doc/guix.texi:10894
+#, no-wrap
+msgid ""
+"(mapped-device\n"
+"  (source \"/dev/sda3\")\n"
+"  (target \"home\")\n"
+"  (type luks-device-mapping))\n"
+msgstr ""
+"(mapped-device\n"
+"  (source \"/dev/sda3\")\n"
+"  (target \"home\")\n"
+"  (type luks-device-mapping))\n"
+
+#. type: Plain text
+#: doc/guix.texi:10899
+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:10902
+#, no-wrap
+msgid "cryptsetup luksUUID /dev/sda3\n"
+msgstr "cryptsetup luksUUID /dev/sda3\n"
+
+#. type: Plain text
+#: doc/guix.texi:10905
+msgid "and use it as follows:"
+msgstr "y usarlo como sigue:"
+
+#. type: example
+#: doc/guix.texi:10911
+#, no-wrap
+msgid ""
+"(mapped-device\n"
+"  (source (uuid \"cb67fc72-0d54-4c88-9d4b-b225f30b0f44\"))\n"
+"  (target \"home\")\n"
+"  (type luks-device-mapping))\n"
+msgstr ""
+"(mapped-device\n"
+"  (source (uuid \"cb67fc72-0d54-4c88-9d4b-b225f30b0f44\"))\n"
+"  (target \"home\")\n"
+"  (type luks-device-mapping))\n"
+
+# FUZZY
+#. type: cindex
+#: doc/guix.texi:10913
+#, no-wrap
+msgid "swap encryption"
+msgstr "cifrado del intercambio"
+
+# TODO: Comprobar traducción.
+#. type: Plain text
+#: doc/guix.texi:10919
+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."
+
+#. type: Plain text
+#: doc/guix.texi:10922
+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: example
+#: doc/guix.texi:10928
+#, no-wrap
+msgid ""
+"(mapped-device\n"
+"  (source (list \"/dev/sda1\" \"/dev/sdb1\"))\n"
+"  (target \"/dev/md0\")\n"
+"  (type raid-device-mapping))\n"
+msgstr ""
+"(mapped-device\n"
+"  (source (list \"/dev/sda1\" \"/dev/sdb1\"))\n"
+"  (target \"/dev/md0\")\n"
+"  (type raid-device-mapping))\n"
+
+#. type: Plain text
+#: doc/guix.texi:10935
+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:10940
+#, no-wrap
+msgid "users"
+msgstr "usuarias"
+
+#. type: cindex
+#: doc/guix.texi:10941
+#, no-wrap
+msgid "accounts"
+msgstr "cuentas"
+
+#. type: cindex
+#: doc/guix.texi:10942
+#, no-wrap
+msgid "user accounts"
+msgstr "cuentas de usuaria"
+
+#. type: Plain text
+#: doc/guix.texi:10946
+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: example
+#: doc/guix.texi:10957
+#, no-wrap
+msgid ""
+"(user-account\n"
+"  (name \"alice\")\n"
+"  (group \"users\")\n"
+"  (supplementary-groups '(\"wheel\"   ;allow use of sudo, etc.\n"
+"                          \"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"
+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"
+"                          \"cdrom\")) ;el veterano CD-ROM\n"
+"  (comment \"hermana de Roberto\")\n"
+"  (home-directory \"/home/alicia\"))\n"
+
+#. type: Plain text
+#: doc/guix.texi:10966
+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:10967
+#, no-wrap
+msgid "{Data Type} user-account"
+msgstr "{Tipo de datos} user-account"
+
+#. type: deftp
+#: doc/guix.texi:10970
+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:10974
+msgid "The name of the user account."
+msgstr "El nombre de la cuenta de usuaria."
+
+#. type: itemx
+#: doc/guix.texi:10975 doc/guix.texi:23673
+#, no-wrap
+msgid "group"
+msgstr "group"
+
+#. type: cindex
+#: doc/guix.texi:10976 doc/guix.texi:11043
+#, no-wrap
+msgid "groups"
+msgstr "grupos"
+
+#. type: table
+#: doc/guix.texi:10979
+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:10980
+#, no-wrap
+msgid "@code{supplementary-groups} (default: @code{'()})"
+msgstr "@code{supplementary-groups} (predeterminados: @code{'()})"
+
+#. type: table
+#: doc/guix.texi:10983
+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:10984
+#, no-wrap
+msgid "@code{uid} (default: @code{#f})"
+msgstr "@code{uid} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:10988
+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:10989
+#, no-wrap
+msgid "@code{comment} (default: @code{\"\"})"
+msgstr "@code{comment} (predeterminado: @code{\"\"})"
+
+#. type: table
+#: doc/guix.texi:10991
+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:10992
+#, no-wrap
+msgid "home-directory"
+msgstr "home-directory"
+
+#. type: table
+#: doc/guix.texi:10994
+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:10995
+#, no-wrap
+msgid "@code{create-home-directory?} (default: @code{#t})"
+msgstr "@code{create-home-directory?} (predeterminado: @code{#t})"
+
+#. type: table
+#: doc/guix.texi:10998
+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:10999
+#, no-wrap
+msgid "@code{shell} (default: Bash)"
+msgstr "@code{shell} (predeterminado: Bash)"
+
+#. type: table
+#: doc/guix.texi:11002
+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})."
+
+#. type: item
+#: doc/guix.texi:11003 doc/guix.texi:11061
+#, no-wrap
+msgid "@code{system?} (default: @code{#f})"
+msgstr "@code{system?} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:11007
+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:11009
+msgid "user-account-password"
+msgstr "user-account-password"
+
+#. type: cindex
+#: doc/guix.texi:11009
+#, no-wrap
+msgid "password, for user accounts"
+msgstr "contraseña, para cuentas de usuaria"
+
+#. type: item
+#: doc/guix.texi:11010 doc/guix.texi:11065
+#, no-wrap
+msgid "@code{password} (default: @code{#f})"
+msgstr "@code{password} (predeterminada: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:11016
+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 reinicios y reconfiguraciones."
+
+#. type: table
+#: doc/guix.texi:11020
+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: example
+#: doc/guix.texi:11025
+#, no-wrap
+msgid ""
+"(user-account\n"
+"  (name \"charlie\")\n"
+"  (group \"users\")\n"
+"\n"
+msgstr ""
+"(user-account\n"
+"  (name \"carlos\")\n"
+"  (group \"users\")\n"
+"\n"
+
+#. type: example
+#: doc/guix.texi:11028
+#, no-wrap
+msgid ""
+"  ;; Specify a SHA-512-hashed initial password.\n"
+"  (password (crypt \"InitialPassword!\" \"$6$abc\")))\n"
+msgstr ""
+"  ;; Especifica una contraseña inicial mediante un hash SHA-512.\n"
+"  (password (crypt \"ContraseñaInicial!\" \"$6$abc\")))\n"
+
+#. type: quotation
+#: doc/guix.texi:11034
+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."
+
+#. type: table
+#: doc/guix.texi:11039
+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:11045
+msgid "User group declarations are even simpler:"
+msgstr "Las declaraciones de grupos incluso son más simples:"
+
+#. type: example
+#: doc/guix.texi:11048
+#, no-wrap
+msgid "(user-group (name \"students\"))\n"
+msgstr "(user-group (name \"estudiantes\"))\n"
+
+#. type: deftp
+#: doc/guix.texi:11050
+#, no-wrap
+msgid "{Data Type} user-group"
+msgstr "{Tipo de datos} user-group"
+
+#. type: deftp
+#: doc/guix.texi:11052
+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:11056
+msgid "The name of the group."
+msgstr "El nombre del grupo."
+
+#. type: item
+#: doc/guix.texi:11057
+#, no-wrap
+msgid "@code{id} (default: @code{#f})"
+msgstr "@code{id} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:11060
+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:11064
+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:11068
+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:11074
+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:11075
+#, no-wrap
+msgid "{Scheme Variable} %base-groups"
+msgstr "{Variable Scheme} %base-groups"
+
+#. type: defvr
+#: doc/guix.texi:11080
+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:11082
+#, no-wrap
+msgid "{Scheme Variable} %base-user-accounts"
+msgstr "{Variable Scheme} %base-user-accounts"
+
+#. type: defvr
+#: doc/guix.texi:11085
+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:11088
+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."
+
+# FUZZY
+#
+# MAAV: Suena fatal... :(
+#. type: cindex
+#: doc/guix.texi:11094
+#, no-wrap
+msgid "keymap"
+msgstr "asociación de teclas"
+
+# FUZZY
+#. type: Plain text
+#: doc/guix.texi:11102
+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 germanoparlantes habitualmente prefieren la distribución QWERTZ alemana, las francoparlantes 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:11103
+#, no-wrap
+msgid "keyboard layout, definition"
+msgstr "distribución de teclado, definición"
+
+#. type: Plain text
+#: doc/guix.texi:11105
+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:11112
+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:11117
+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:11121
+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:11125
+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:11126
+#, no-wrap
+msgid "XKB, keyboard layouts"
+msgstr "XKB, distribuciones de teclado"
+
+#. type: Plain text
+#: doc/guix.texi:11134
+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:"
+
+#. type: example
+#: doc/guix.texi:11139
+#, no-wrap
+msgid ""
+";; The German QWERTZ layout.  Here we assume a standard\n"
+";; \"pc105\" keyboard model.\n"
+"(keyboard-layout \"de\")\n"
+"\n"
+msgstr ""
+";; La distribución QWERTZ alemana. Se asume un modelo de\n"
+";; teclado \"pc105\" estándar.\n"
+"(keyboard-layout \"de\")\n"
+"\n"
+
+#. type: example
+#: doc/guix.texi:11142
+#, no-wrap
+msgid ""
+";; The bépo variant of the French layout.\n"
+"(keyboard-layout \"fr\" \"bepo\")\n"
+"\n"
+msgstr ""
+";; La variante bépo de la distribución francesa.\n"
+"(keyboard-layout \"fr\" \"bepo\")\n"
+"\n"
+
+#. type: example
+#: doc/guix.texi:11145
+#, no-wrap
+msgid ""
+";; The Catalan layout.\n"
+"(keyboard-layout \"es\" \"cat\")\n"
+"\n"
+msgstr ""
+";; La distribución catalana.\n"
+"(keyboard-layout \"es\" \"cat\")\n"
+"\n"
+
+#. type: example
+#: doc/guix.texi:11152
+#, no-wrap
+msgid ""
+";; The Latin American Spanish layout.  In addition, the\n"
+";; \"Caps Lock\" key is used as an additional \"Ctrl\" key,\n"
+";; and the \"Menu\" key is used as a \"Compose\" key to enter\n"
+";; accented letters.\n"
+"(keyboard-layout \"latam\"\n"
+"                 #:options '(\"ctrl:nocaps\" \"compose:menu\"))\n"
+"\n"
+msgstr ""
+";; La distribución de teclado de latinoamérica. Además,\n"
+";; la tecla \"Bloq Mayús\" se usa como una tecla \"Ctrl\"\n"
+";; adicional, y la tecla \"Menú\" se usa como una tecla\n"
+";; \"Componer/Compose\" para introducir letras acentuadas.\n"
+"(keyboard-layout \"latam\"\n"
+"                 #:options '(\"ctrl:nocaps\" \"compose:menu\"))\n"
+"\n"
+
+#. type: example
+#: doc/guix.texi:11155
+#, no-wrap
+msgid ""
+";; The Russian layout for a ThinkPad keyboard.\n"
+"(keyboard-layout \"ru\" #:model \"thinkpad\")\n"
+"\n"
+msgstr ""
+";; La distribución rusa para un teclado ThinkPad.\n"
+"(keyboard-layout \"ru\" #:model \"thinkpad\")\n"
+"\n"
+
+#. type: example
+#: doc/guix.texi:11160
+#, no-wrap
+msgid ""
+";; The \"US international\" layout, which is the US layout plus\n"
+";; dead keys to enter accented characters.  This is for an\n"
+";; Apple MacBook keyboard.\n"
+"(keyboard-layout \"us\" \"intl\" #:model \"macbook78\")\n"
+msgstr ""
+";; La distribución estadounidense internacional, la cual es\n"
+";; la distribución estadounidense junto a teclas muertas para\n"
+";; introducir caracteres acentuados. Esta es para un teclado\n"
+";; Apple MackBook.\n"
+"(keyboard-layout \"us\" \"intl\" #:model \"macbook78\")\n"
+
+#. type: Plain text
+#: doc/guix.texi:11164
+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éaseel 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:11165
+#, no-wrap
+msgid "keyboard layout, configuration"
+msgstr "distribución de teclado, configuración"
+
+#. type: Plain text
+#: doc/guix.texi:11169
+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:11170
+#, no-wrap
+msgid "set-xorg-configuration"
+msgstr "set-xorg-configuration"
+
+#. type: lisp
+#: doc/guix.texi:11174
+#, no-wrap
+msgid ""
+";; Using the Turkish layout for the bootloader, the console,\n"
+";; and for Xorg.\n"
+"\n"
+msgstr ""
+";; Usando la distribución turca para el cargador de\n"
+";; arranque, la consola y Xorg.\n"
+"\n"
+
+#. type: lisp
+#: doc/guix.texi:11186
+#, no-wrap
+msgid ""
+"(operating-system\n"
+"  ;; ...\n"
+"  (keyboard-layout (keyboard-layout \"tr\"))  ;for the console\n"
+"  (bootloader (bootloader-configuration\n"
+"                (bootloader grub-efi-bootloader)\n"
+"                (target \"/boot/efi\")\n"
+"                (keyboard-layout keyboard-layout))) ;for GRUB\n"
+"  (services (cons (set-xorg-configuration\n"
+"                    (xorg-configuration             ;for Xorg\n"
+"                      (keyboard-layout keyboard-layout)))\n"
+"                  %desktop-services)))\n"
+msgstr ""
+"(operating-system\n"
+"  ;; ...\n"
+"  (keyboard-layout (keyboard-layout \"tr\"))  ;para la consola\n"
+"  (bootloader (bootloader-configuration\n"
+"                (bootloader grub-efi-bootloader)\n"
+"                (target \"/boot/efi\")\n"
+"                (keyboard-layout keyboard-layout))) ;para GRUB\n"
+"  (services (cons (set-xorg-configuration\n"
+"                    (xorg-configuration             ;para Xorg\n"
+"                      (keyboard-layout keyboard-layout)))\n"
+"                  %desktop-services)))\n"
+
+#. type: Plain text
+#: doc/guix.texi:11193
+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:11196
+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:11201
+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:11206
+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:11209
+#, no-wrap
+msgid "setxkbmap us dvorak\n"
+msgstr "setxkbmap us dvorak\n"
+
+#. type: itemize
+#: doc/guix.texi:11216
+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:11219
+#, no-wrap
+msgid "loadkeys fr-bepo\n"
+msgstr "loadkeys fr-bepo\n"
+
+#. type: cindex
+#: doc/guix.texi:11225
+#, no-wrap
+msgid "locale"
+msgstr "localización"
+
+#. type: Plain text
+#: doc/guix.texi:11232
+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:11233
+#, no-wrap
+msgid "locale definition"
+msgstr "definición de localización"
+
+#. type: Plain text
+#: doc/guix.texi:11237
+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:11246
+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:11249
+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: example
+#: doc/guix.texi:11254
+#, no-wrap
+msgid ""
+"(cons (locale-definition\n"
+"        (name \"fy_DE.utf8\") (source \"fy_DE\"))\n"
+"      %default-locale-definitions)\n"
+msgstr ""
+"(cons (locale-definition\n"
+"        (name \"fy_DE.utf8\") (source \"fy_DE\"))\n"
+"      %default-locale-definitions)\n"
+
+#. type: Plain text
+#: doc/guix.texi:11258
+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: example
+#: doc/guix.texi:11263
+#, no-wrap
+msgid ""
+"(list (locale-definition\n"
+"        (name \"ja_JP.eucjp\") (source \"ja_JP\")\n"
+"        (charset \"EUC-JP\")))\n"
+msgstr ""
+"(list (locale-definition\n"
+"        (name \"ja_JP.eucjp\") (source \"ja_JP\")\n"
+"        (charset \"EUC-JP\")))\n"
+
+#. type: Plain text
+#: doc/guix.texi:11272
+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})."
+
+#. type: Plain text
+#: doc/guix.texi:11275
+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:11276
+#, no-wrap
+msgid "{Data Type} locale-definition"
+msgstr "{Tipo de datos} locale-definition"
+
+#. type: deftp
+#: doc/guix.texi:11278
+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:11284
+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:11288
+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. Esto típicamente es la parte @code{@var{idioma}_@var{territorio}} del nombre de localización."
+
+#. type: item
+#: doc/guix.texi:11289
+#, no-wrap
+msgid "@code{charset} (default: @code{\"UTF-8\"})"
+msgstr "@code{charset} (predeterminado: @code{\"UTF-8\"})"
+
+#. type: table
+#: doc/guix.texi:11293
+msgid "The ``character set'' or ``code set'' for that locale, @uref{http://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{http://www.iana.org/assignments/character-sets, como se define por IANA}."
+
+#. type: defvr
+#: doc/guix.texi:11297
+#, no-wrap
+msgid "{Scheme Variable} %default-locale-definitions"
+msgstr "{Variable Scheme} %default-locale-definitions"
+
+#. type: defvr
+#: doc/guix.texi:11301
+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:11302
+#, no-wrap
+msgid "locale name"
+msgstr "nombre de localización"
+
+#. type: cindex
+#: doc/guix.texi:11303
+#, no-wrap
+msgid "normalized codeset in locale names"
+msgstr "codificación normalizada en los nombres de localizaciones"
+
+#. type: defvr
+#: doc/guix.texi:11309
+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:11311
+#, no-wrap
+msgid "Locale Data Compatibility Considerations"
+msgstr "Consideraciones sobre la compatibilidad de datos de localización"
+
+#. type: cindex
+#: doc/guix.texi:11313
+#, no-wrap
+msgid "incompatibility, of locale data"
+msgstr "incompatibilidad, de datos de localización"
+
+#. type: Plain text
+#: doc/guix.texi:11320
+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:11332
+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."
+
+#. type: Plain text
+#: doc/guix.texi:11337
+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:11341
+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})."
+
+#. type: Plain text
+#: doc/guix.texi:11348
+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: example
+#: doc/guix.texi:11351
+#, no-wrap
+msgid ""
+"(use-package-modules base)\n"
+"\n"
+msgstr ""
+"(use-package-modules base)\n"
+"\n"
+
+#. type: example
+#: doc/guix.texi:11355
+#, no-wrap
+msgid ""
+"(operating-system\n"
+"  ;; @dots{}\n"
+"  (locale-libcs (list glibc-2.21 (canonical-package glibc))))\n"
+msgstr ""
+"(operating-system\n"
+"  ;; @dots{}\n"
+"  (locale-libcs (list glibc-2.21 (canonical-package glibc))))\n"
+
+#. type: Plain text
+#: doc/guix.texi:11360
+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:11365
+#, no-wrap
+msgid "system services"
+msgstr "servicios del sistema"
+
+#. type: Plain text
+#: doc/guix.texi:11371
+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:11378
+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:11381
+#, no-wrap
+msgid "# herd status\n"
+msgstr "# herd status\n"
+
+#. type: Plain text
+#: doc/guix.texi:11386
+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:11390
+#, no-wrap
+msgid ""
+"# herd doc nscd\n"
+"Run libc's name service cache daemon (nscd).\n"
+"\n"
+msgstr ""
+"# herd doc nscd\n"
+"Run libc's name service cache daemon (nscd).\n"
+"\n"
+
+# FUZZY
+# MAAV: Actualizar cuando se traduzcan los servicios.
+#. type: example
+#: doc/guix.texi:11393
+#, no-wrap
+msgid ""
+"# herd doc nscd action invalidate\n"
+"invalidate: Invalidate the given cache--e.g., 'hosts' for host name lookups.\n"
+msgstr ""
+"# herd doc nscd action invalidate\n"
+"invalidate: Invalidate the given cache--e.g., 'hosts' for host name lookups.\n"
+
+#. type: Plain text
+#: doc/guix.texi:11398
+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:11405
+#, no-wrap
+msgid ""
+"# herd stop nscd\n"
+"Service nscd has been stopped.\n"
+"# herd restart xorg-server\n"
+"Service xorg-server has been stopped.\n"
+"Service xorg-server has been started.\n"
+msgstr ""
+"# herd stop nscd\n"
+"Service nscd has been stopped.\n"
+"# herd restart xorg-server\n"
+"Service xorg-server has been stopped.\n"
+"Service xorg-server has been started.\n"
+
+#. type: Plain text
+#: doc/guix.texi:11410
+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:11439 doc/guix.texi:18018 doc/guix.texi:18019
+#, no-wrap
+msgid "LDAP Services"
+msgstr "Servicios LDAP"
+
+#. type: menuentry
+#: doc/guix.texi:11439
+msgid "LDAP services."
+msgstr "Servicios LDAP."
+
+#. type: Plain text
+#: doc/guix.texi:11447
+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:11448
+#, no-wrap
+msgid "{Scheme Variable} %base-services"
+msgstr "{Variable Scheme} %base-services"
+
+#. type: defvr
+#: doc/guix.texi:11454
+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:11459
+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 "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 @var{%base-services}, de esta forma:"
+
+#. type: example
+#: doc/guix.texi:11464
+#, no-wrap
+msgid ""
+"(append (list (service avahi-service-type)\n"
+"              (service openssh-service-type))\n"
+"        %base-services)\n"
+msgstr ""
+"(append (list (service avahi-service-type)\n"
+"              (service openssh-service-type))\n"
+"        %base-services)\n"
+
+#. type: defvr
+#: doc/guix.texi:11467
+#, no-wrap
+msgid "{Scheme Variable} special-files-service-type"
+msgstr "{Variable Scheme} special-files-service-type"
+
+#. type: defvr
+#: doc/guix.texi:11470
+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}."
+
+#. type: defvr
+#: doc/guix.texi:11474
+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:"
+
+#. type: file{#1}
+#: doc/guix.texi:11475
+#, no-wrap
+msgid "/bin/sh"
+msgstr "/bin/sh"
+
+#. type: cindex
+#: doc/guix.texi:11476
+#, no-wrap
+msgid "@file{sh}, in @file{/bin}"
+msgstr "@file{sh}, en @file{/bin}"
+
+#. type: example
+#: doc/guix.texi:11479
+#, no-wrap
+msgid "`((\"/bin/sh\" ,(file-append @var{bash} \"/bin/sh\")))\n"
+msgstr "`((\"/bin/sh\" ,(file-append @var{bash} \"/bin/sh\")))\n"
+
+#. type: file{#1}
+#: doc/guix.texi:11481
+#, no-wrap
+msgid "/usr/bin/env"
+msgstr "/usr/bin/env"
+
+#. type: cindex
+#: doc/guix.texi:11482
+#, no-wrap
+msgid "@file{env}, in @file{/usr/bin}"
+msgstr "@file{env}, en @file{/usr/bin}"
+
+#. type: defvr
+#: doc/guix.texi:11485
+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: example
+#: doc/guix.texi:11489
+#, no-wrap
+msgid ""
+"`((\"/bin/sh\" ,(file-append @var{bash} \"/bin/sh\"))\n"
+"  (\"/usr/bin/env\" ,(file-append @var{coreutils} \"/bin/env\")))\n"
+msgstr ""
+"`((\"/bin/sh\" ,(file-append @var{bash} \"/bin/sh\"))\n"
+"  (\"/usr/bin/env\" ,(file-append @var{coreutils} \"/bin/env\")))\n"
+
+#. type: defvr
+#: doc/guix.texi:11496
+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)."
+
+#. type: deffn
+#: doc/guix.texi:11498
+#, no-wrap
+msgid "{Scheme Procedure} extra-special-file @var{file} @var{target}"
+msgstr "{Procedimiento Scheme} extra-special-file @var{fichero} @var{destino}"
+
+#. type: deffn
+#: doc/guix.texi:11500
+msgid "Use @var{target} as the ``special file'' @var{file}."
+msgstr "Usa @var{destino} como el ``fichero especial'' @var{fichero}."
+
+#. type: deffn
+#: doc/guix.texi:11504
+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: example
+#: doc/guix.texi:11508
+#, no-wrap
+msgid ""
+"(extra-special-file \"/usr/bin/env\"\n"
+"                    (file-append coreutils \"/bin/env\"))\n"
+msgstr ""
+"(extra-special-file \"/usr/bin/env\"\n"
+"                    (file-append coreutils \"/bin/env\"))\n"
+
+#. type: deffn
+#: doc/guix.texi:11511
+#, no-wrap
+msgid "{Scheme Procedure} host-name-service @var{name}"
+msgstr "{Procedimiento Scheme} host-name-service @var{nombre}"
+
+#. type: deffn
+#: doc/guix.texi:11513
+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: deffn
+#: doc/guix.texi:11515
+#, no-wrap
+msgid "{Scheme Procedure} login-service @var{config}"
+msgstr "{Procedimiento Scheme} login-service @var{config}"
+
+#. type: deffn
+#: doc/guix.texi:11519
+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:11521
+#, no-wrap
+msgid "{Data Type} login-configuration"
+msgstr "{Tipo de datos} login-configuration"
+
+#. type: deftp
+#: doc/guix.texi:11523
+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:11526
+#, no-wrap
+msgid "motd"
+msgstr "motd"
+
+#. type: cindex
+#: doc/guix.texi:11527
+#, no-wrap
+msgid "message of the day"
+msgstr "mensaje del día"
+
+#. type: table
+#: doc/guix.texi:11529
+msgid "A file-like object containing the ``message of the day''."
+msgstr "Un objeto tipo-fichero que contiene el ``mensaje del día''."
+
+#. type: item
+#: doc/guix.texi:11530 doc/guix.texi:13462
+#, no-wrap
+msgid "@code{allow-empty-passwords?} (default: @code{#t})"
+msgstr "@code{allow-empty-passwords?} (predeterminado: @code{#t})"
+
+#. type: table
+#: doc/guix.texi:11533
+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:11537
+#, no-wrap
+msgid "{Scheme Procedure} mingetty-service @var{config}"
+msgstr "{Procedimiento Scheme} mingetty-service @var{config}"
+
+#. type: deffn
+#: doc/guix.texi:11541
+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:11543
+#, no-wrap
+msgid "{Data Type} mingetty-configuration"
+msgstr "{Tipo de datos} mingetty-configuration"
+
+#. type: deftp
+#: doc/guix.texi:11546
+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:11549 doc/guix.texi:11585
+#, no-wrap
+msgid "tty"
+msgstr "tty"
+
+#. type: table
+#: doc/guix.texi:11551
+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\"}."
+
+#. type: item
+#: doc/guix.texi:11552 doc/guix.texi:11614 doc/guix.texi:11773
+#, no-wrap
+msgid "@code{auto-login} (default: @code{#f})"
+msgstr "@code{auto-login} (predeterminado: @code{#f})"
+
+# FUZZY
+#. type: table
+#: doc/guix.texi:11556
+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:11557
+#, no-wrap
+msgid "@code{login-program} (default: @code{#f})"
+msgstr "@code{login-program} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:11561
+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:11562
+#, no-wrap
+msgid "@code{login-pause?} (default: @code{#f})"
+msgstr "@code{login-pause?} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:11565
+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:11566
+#, no-wrap
+msgid "@code{mingetty} (default: @var{mingetty})"
+msgstr "@code{mingetty} (predeterminado: @var{mingetty})"
+
+#. type: table
+#: doc/guix.texi:11568
+msgid "The Mingetty package to use."
+msgstr "El paquete Mingetty usado."
+
+#. type: deffn
+#: doc/guix.texi:11572
+#, no-wrap
+msgid "{Scheme Procedure} agetty-service @var{config}"
+msgstr "{Procedure Scheme} agetty-service @var{config}"
+
+#. type: deffn
+#: doc/guix.texi:11576
+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:11578
+#, no-wrap
+msgid "{Data Type} agetty-configuration"
+msgstr "{Tipo de datos} agetty-configuration"
+
+#. type: deftp
+#: doc/guix.texi:11582
+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:11589
+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:11593
+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:11597
+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:11601
+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 adecuados."
+
+#. type: item
+#: doc/guix.texi:11602
+#, no-wrap
+msgid "@code{baud-rate} (default: @code{#f})"
+msgstr "@code{baud-rate} (predeterminado: @code{#f})"
+
+# FUZZY
+# MAAV: Baud rate -> tasa de transmisión?
+#. type: table
+#: doc/guix.texi:11605
+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:11606
+#, no-wrap
+msgid "@code{term} (default: @code{#f})"
+msgstr "@code{term} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:11609
+msgid "A string containing the value used for the @code{TERM} environment variable."
+msgstr "Una cadena que contenga el valor a usar para la variable de entorno @code{TERM}."
+
+#. type: item
+#: doc/guix.texi:11610
+#, no-wrap
+msgid "@code{eight-bits?} (default: @code{#f})"
+msgstr "@code{eight-bits?} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:11613
+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á deshabilitada."
+
+#. type: table
+#: doc/guix.texi:11617 doc/guix.texi:11776
+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:11618
+#, no-wrap
+msgid "@code{no-reset?} (default: @code{#f})"
+msgstr "@code{no-reset?} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:11620
+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:11621
+#, no-wrap
+msgid "@code{host} (default: @code{#f})"
+msgstr "@code{host} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:11624
+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}."
+
+#. type: item
+#: doc/guix.texi:11625
+#, no-wrap
+msgid "@code{remote?} (default: @code{#f})"
+msgstr "@code{remote?} (predeterminado: @code{#f})"
+
+# FUZZY
+# TODO (MAAV): Fakehost
+#. type: table
+#: doc/guix.texi:11629
+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:11630
+#, no-wrap
+msgid "@code{flow-control?} (default: @code{#f})"
+msgstr "@code{flow-control?} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:11632
+msgid "When set to @code{#t}, enable hardware (RTS/CTS) flow control."
+msgstr "Cuando es @code{#t}, habilita el control de flujo hardware (RTS/CTS)."
+
+#. type: item
+#: doc/guix.texi:11633
+#, no-wrap
+msgid "@code{no-issue?} (default: @code{#f})"
+msgstr "@code{no-issue?} (predeterminado: @code{#f})"
+
+# FUZZY
+#. type: table
+#: doc/guix.texi:11636
+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."
+
+#. type: item
+#: doc/guix.texi:11637
+#, no-wrap
+msgid "@code{init-string} (default: @code{#f})"
+msgstr "@code{init-string} (predeterminada: @code{#f})"
+
+# FUZZY
+#. type: table
+#: doc/guix.texi:11640
+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:11641
+#, no-wrap
+msgid "@code{no-clear?} (default: @code{#f})"
+msgstr "@code{no-clear?} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:11644
+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:11645
+#, 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:11649
+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:11650
+#, no-wrap
+msgid "@code{local-line} (default: @code{#f})"
+msgstr "@code{local-line} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:11654
+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:11655
+#, no-wrap
+msgid "@code{extract-baud?} (default: @code{#f})"
+msgstr "@code{extract-baud?} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:11658
+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:11659
+#, no-wrap
+msgid "@code{skip-login?} (default: @code{#f})"
+msgstr "@code{skip-login?} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:11663
+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:11664
+#, no-wrap
+msgid "@code{no-newline?} (default: @code{#f})"
+msgstr "@code{no-newline?} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:11667
+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}."
+
+#. type: item
+#: doc/guix.texi:11669
+#, no-wrap
+msgid "@code{login-options} (default: @code{#f})"
+msgstr "@code{login-options} (predeterminadas: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:11674
+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:11675
+#, no-wrap
+msgid "@code{login-pause} (default: @code{#f})"
+msgstr "@code{login-pause} (predeterminada: @code{#f})"
+
+# FUZZY
+#. type: table
+#: doc/guix.texi:11679
+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:11680
+#, no-wrap
+msgid "@code{chroot} (default: @code{#f})"
+msgstr "@code{chroot} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:11683
+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:11684
+#, no-wrap
+msgid "@code{hangup?} (default: @code{#f})"
+msgstr "@code{hangup?} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:11687
+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:11688
+#, no-wrap
+msgid "@code{keep-baud?} (default: @code{#f})"
+msgstr "@code{keep-baud?} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:11692
+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 caracter @key{BREAK}."
+
+#. type: item
+#: doc/guix.texi:11693
+#, no-wrap
+msgid "@code{timeout} (default: @code{#f})"
+msgstr "@code{timeout} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:11696
+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:11697
+#, no-wrap
+msgid "@code{detect-case?} (default: @code{#f})"
+msgstr "@code{detect-case?} (predeterminado: @code{#f})"
+
+# FUZZY
+#. type: table
+#: doc/guix.texi:11703
+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 máyú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:11704
+#, no-wrap
+msgid "@code{wait-cr?} (default: @code{#f})"
+msgstr "@code{wait-cr?} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:11709
+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 caracter 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:11710
+#, no-wrap
+msgid "@code{no-hints?} (default: @code{#f})"
+msgstr "@code{no-hints?} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:11713
+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:11714
+#, no-wrap
+msgid "@code{no-hostname?} (default: @code{#f})"
+msgstr "@code{no-hostname?} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:11717
+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:11718
+#, no-wrap
+msgid "@code{long-hostname?} (default: @code{#f})"
+msgstr "@code{long-hostname?} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:11722
+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:11723
+#, no-wrap
+msgid "@code{erase-characters} (default: @code{#f})"
+msgstr "@code{erase-characters} (predeterminado: @code{#f})"
+
+# FUZZY
+#. type: table
+#: doc/guix.texi:11726
+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 caracter anterior cuando la usuaria introduce su nombre de ingreso."
+
+#. type: item
+#: doc/guix.texi:11727
+#, no-wrap
+msgid "@code{kill-characters} (default: @code{#f})"
+msgstr "@code{kill-characters} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:11731
+msgid "This option accepts a string that should be interpreted to mean \"ignore all previous characters\" (also called a \"kill\" character) when the 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 caracter «kill») cuando la usuaria introduce su nombre de ingreso."
+
+#. type: item
+#: doc/guix.texi:11732
+#, no-wrap
+msgid "@code{chdir} (default: @code{#f})"
+msgstr "@code{chdir} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:11735
+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:11736
+#, no-wrap
+msgid "@code{delay} (default: @code{#f})"
+msgstr "@code{delay} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:11739
+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:11740
+#, no-wrap
+msgid "@code{nice} (default: @code{#f})"
+msgstr "@code{nice} (predeterminado: @code{#f})"
+
+# FUZZY
+#
+# TODO (MAAV): Nice
+#. type: table
+#: doc/guix.texi:11743
+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:11744 doc/guix.texi:11975 doc/guix.texi:12662
+#: doc/guix.texi:18998
+#, no-wrap
+msgid "@code{extra-options} (default: @code{'()})"
+msgstr "@code{extra-options} (predeterminadas: @code{'()})"
+
+#. type: table
+#: doc/guix.texi:11747
+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:11751
+#, no-wrap
+msgid "{Scheme Procedure} kmscon-service-type @var{config}"
+msgstr "{Procedimiento Scheme} kmscon-service-type @var{config}"
+
+#. type: deffn
+#: doc/guix.texi:11755
+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:11757
+#, no-wrap
+msgid "{Data Type} kmscon-configuration"
+msgstr "{Tipo de datos} kmscon-configuration"
+
+#. type: deftp
+#: doc/guix.texi:11760
+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:11763
+#, no-wrap
+msgid "virtual-terminal"
+msgstr "virtual-terminal"
+
+#. type: table
+#: doc/guix.texi:11765
+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\"}."
+
+#. type: item
+#: doc/guix.texi:11766
+#, 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:11769
+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:11770
+#, no-wrap
+msgid "@code{login-arguments} (default: @code{'(\"-p\")})"
+msgstr "@code{login-arguments} (predeterminados: @code{'(\"-p\")})"
+
+#. type: table
+#: doc/guix.texi:11772
+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:11777
+#, no-wrap
+msgid "@code{hardware-acceleration?} (default: #f)"
+msgstr "@code{hardware-acceleration?} (predeterminado: #f)"
+
+#. type: table
+#: doc/guix.texi:11779
+msgid "Whether to use hardware acceleration."
+msgstr "Determina si se usará aceleración hardware."
+
+#. type: item
+#: doc/guix.texi:11780
+#, no-wrap
+msgid "@code{kmscon} (default: @var{kmscon})"
+msgstr "@code{kmscon} (predeterminado: @var{kmscon})"
+
+#. type: table
+#: doc/guix.texi:11782
+msgid "The Kmscon package to use."
+msgstr "El paquete Kmscon usado."
+
+# TODO: Comprobar traducción de libc
+#. type: cindex
+#: doc/guix.texi:11786
+#, no-wrap
+msgid "name service cache daemon"
+msgstr "daemon de caché del servicio de nombres"
+
+#. type: cindex
+#: doc/guix.texi:11787
+#, no-wrap
+msgid "nscd"
+msgstr "nscd"
+
+#. type: deffn
+#: doc/guix.texi:11788
+#, 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:11793
+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:11795
+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:11797
+#, no-wrap
+msgid "invalidate"
+msgstr "invalidate"
+
+#. type: cindex
+#: doc/guix.texi:11798
+#, no-wrap
+msgid "cache invalidation, nscd"
+msgstr "invalidación de caché, nscd"
+
+#. type: cindex
+#: doc/guix.texi:11799
+#, no-wrap
+msgid "nscd, cache invalidation"
+msgstr "nscd, invalidación de caché"
+
+#. type: table
+#: doc/guix.texi:11801
+msgid "This invalidate the given cache.  For instance, running:"
+msgstr "Esto invalida la caché dada. Por ejemplo, ejecutar:"
+
+#. type: example
+#: doc/guix.texi:11804
+#, no-wrap
+msgid "herd invalidate nscd hosts\n"
+msgstr "herd invalidate nscd hosts\n"
+
+#. type: table
+#: doc/guix.texi:11808
+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:11809
+#, no-wrap
+msgid "statistics"
+msgstr "statistics"
+
+#. type: table
+#: doc/guix.texi:11812
+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:11816
+#, no-wrap
+msgid "{Scheme Variable} %nscd-default-configuration"
+msgstr "{Variable Scheme} %nscd-default-configuration"
+
+#. type: defvr
+#: doc/guix.texi:11820
+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 ""
+
+#. type: deftp
+#: doc/guix.texi:11822
+#, no-wrap
+msgid "{Data Type} nscd-configuration"
+msgstr "{Tipo de datos} nscd-configuration"
+
+#. type: deftp
+#: doc/guix.texi:11825
+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:11828
+#, no-wrap
+msgid "@code{name-services} (default: @code{'()})"
+msgstr "@code{name-services} (predeterminados: @code{'()})"
+
+#. type: table
+#: doc/guix.texi:11831
+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:11832
+#, no-wrap
+msgid "@code{glibc} (default: @var{glibc})"
+msgstr "@code{glibc} (predeterminada: @var{glibc})"
+
+#. type: table
+#: doc/guix.texi:11835
+msgid "Package object denoting the GNU C Library providing the @command{nscd} command."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:11836
+#, no-wrap
+msgid "@code{log-file} (default: @code{\"/var/log/nscd.log\"})"
+msgstr "@code{log-file} (predeterminado: @code{\"/var/log/nscd.log\"})"
+
+#. type: table
+#: doc/guix.texi:11839
+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:11840
+#, no-wrap
+msgid "@code{debug-level} (default: @code{0})"
+msgstr "@code{debug-level} (predeterminado: @code{0})"
+
+#. type: table
+#: doc/guix.texi:11843
+msgid "Integer denoting the debugging levels.  Higher numbers mean that more debugging output is logged."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:11844
+#, no-wrap
+msgid "@code{caches} (default: @var{%nscd-default-caches})"
+msgstr "@code{caches} (predeterminadas: @var{%nscd-default-caches})"
+
+#. type: table
+#: doc/guix.texi:11847
+msgid "List of @code{<nscd-cache>} objects denoting things to be cached; see below."
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:11851
+#, no-wrap
+msgid "{Data Type} nscd-cache"
+msgstr "{Tipo de datos} nscd-cache"
+
+#. type: deftp
+#: doc/guix.texi:11853
+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:11856 doc/guix.texi:15022
+#, no-wrap
+msgid "database"
+msgstr "base de datos"
+
+#. type: table
+#: doc/guix.texi:11861
+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:11862
+#, no-wrap
+msgid "positive-time-to-live"
+msgstr "positive-time-to-live"
+
+#. type: itemx
+#: doc/guix.texi:11863
+#, no-wrap
+msgid "@code{negative-time-to-live} (default: @code{20})"
+msgstr "@code{negative-time-to-live} (predeterminado: @code{20})"
+
+#. type: table
+#: doc/guix.texi:11866
+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:11867
+#, no-wrap
+msgid "@code{check-files?} (default: @code{#t})"
+msgstr "@code{check-files?} (predeterminado: @code{#t})"
+
+#. type: table
+#: doc/guix.texi:11870
+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}."
+
+#. type: table
+#: doc/guix.texi:11874
+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:11875
+#, no-wrap
+msgid "@code{persistent?} (default: @code{#t})"
+msgstr "@code{persistent?} (predeterminada: @code{#t})"
+
+#. type: table
+#: doc/guix.texi:11877
+msgid "Whether the cache should be stored persistently on disk."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:11878
+#, no-wrap
+msgid "@code{shared?} (default: @code{#t})"
+msgstr "@code{shared?} (predeterminado: @code{#t})"
+
+#. type: table
+#: doc/guix.texi:11880
+msgid "Whether the cache should be shared among users."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:11881
+#, 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:11883
+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:11890
+#, no-wrap
+msgid "{Scheme Variable} %nscd-default-caches"
+msgstr "{Variable Scheme} %nscd-default-caches"
+
+#. type: defvr
+#: doc/guix.texi:11893
+msgid "List of @code{<nscd-cache>} objects used by default by @code{nscd-configuration} (see above)."
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:11899
+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:11902
+msgid "syslog-configuration-type"
+msgstr "syslog-configuration-type"
+
+#. type: cindex
+#: doc/guix.texi:11902 doc/guix.texi:11918
+#, no-wrap
+msgid "syslog"
+msgstr "syslog"
+
+# FUZZY
+# MAAV (TODO): Log
+#. type: cindex
+#: doc/guix.texi:11903 doc/guix.texi:12340
+#, no-wrap
+msgid "logging"
+msgstr "logging"
+
+#. type: deftp
+#: doc/guix.texi:11904
+#, no-wrap
+msgid "{Data Type} syslog-configuration"
+msgstr "{Tipo de datos} syslog-configuration"
+
+#. type: deftp
+#: doc/guix.texi:11906
+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:11908
+#, 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:11910
+msgid "The syslog daemon to use."
+msgstr "El daemon syslog usado."
+
+#. type: item
+#: doc/guix.texi:11911
+#, 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:11913
+msgid "The syslog configuration file to use."
+msgstr "El fichero de configuración de syslog usado."
+
+#. type: anchor{#1}
+#: doc/guix.texi:11918
+msgid "syslog-service"
+msgstr "syslog-service"
+
+#. type: deffn
+#: doc/guix.texi:11919
+#, no-wrap
+msgid "{Scheme Procedure} syslog-service @var{config}"
+msgstr "{Procedimiento Scheme} syslog-service @var{config}"
+
+#. type: deffn
+#: doc/guix.texi:11921
+msgid "Return a service that runs a syslog daemon according to @var{config}."
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:11924
+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."
+
+#. type: defvr
+#: doc/guix.texi:11926
+#, no-wrap
+msgid "{Scheme Variable} guix-service-type"
+msgstr "{Variable Scheme} guix-service-type"
+
+#. type: defvr
+#: doc/guix.texi:11930
+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:11933
+msgid "guix-configuration-type"
+msgstr "guix-configuration-type"
+
+#. type: deftp
+#: doc/guix.texi:11933
+#, no-wrap
+msgid "{Data Type} guix-configuration"
+msgstr "{Tipo de datos} guix-configuration"
+
+#. type: deftp
+#: doc/guix.texi:11936
+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:11938
+#, no-wrap
+msgid "@code{guix} (default: @var{guix})"
+msgstr "@code{guix} (predeterminado: @var{guix})"
+
+#. type: table
+#: doc/guix.texi:11940 doc/guix.texi:12160
+msgid "The Guix package to use."
+msgstr "El paquete Guix usado."
+
+#. type: item
+#: doc/guix.texi:11941
+#, no-wrap
+msgid "@code{build-group} (default: @code{\"guixbuild\"})"
+msgstr "@code{build-group} (predeterminado: @code{\"guixbuild\"})"
+
+#. type: table
+#: doc/guix.texi:11943
+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:11944
+#, no-wrap
+msgid "@code{build-accounts} (default: @code{10})"
+msgstr "@code{build-accounts} (predeterminadas: @code{10})"
+
+#. type: table
+#: doc/guix.texi:11946
+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:11947
+#, no-wrap
+msgid "@code{authorize-key?} (default: @code{#t})"
+msgstr "@code{authorize-key?} (predeterminado: @code{#t})"
+
+#. type: table
+#: doc/guix.texi:11952
+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: vindex
+#: doc/guix.texi:11953
+#, no-wrap
+msgid "%default-authorized-guix-keys"
+msgstr "%default-authorized-guix-keys"
+
+#. type: item
+#: doc/guix.texi:11954
+#, no-wrap
+msgid "@code{authorized-keys} (default: @var{%default-authorized-guix-keys})"
+msgstr "@code{authorized-keys} (predeterminadas: @var{%default-authorized-guix-keys})"
+
+#. type: table
+#: doc/guix.texi:11958
+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})."
+
+#. type: item
+#: doc/guix.texi:11959
+#, no-wrap
+msgid "@code{use-substitutes?} (default: @code{#t})"
+msgstr "@code{use-substitutes?} (predeterminado: @code{#t})"
+
+#. type: table
+#: doc/guix.texi:11961
+msgid "Whether to use substitutes."
+msgstr "Determina si se usarán sustituciones."
+
+#. type: item
+#: doc/guix.texi:11962
+#, no-wrap
+msgid "@code{substitute-urls} (default: @var{%default-substitute-urls})"
+msgstr "@code{substitute-urls} (predeterminado: @var{%default-substitute-urls})"
+
+#. type: table
+#: doc/guix.texi:11964
+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: item
+#: doc/guix.texi:11965
+#, no-wrap
+msgid "@code{max-silent-time} (default: @code{0})"
+msgstr "@code{max-silent-time} (predeterminado: @code{0})"
+
+#. type: itemx
+#: doc/guix.texi:11966
+#, no-wrap
+msgid "@code{timeout} (default: @code{0})"
+msgstr "@code{timeout} (predeterminado: @code{0})"
+
+# FUZZY
+#. type: table
+#: doc/guix.texi:11970
+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:11971
+#, no-wrap
+msgid "@code{log-compression} (default: @code{'bzip2})"
+msgstr "@code{log-compression} (predeterminado: @code{'bzip2})"
+
+# FUZZY
+#. type: table
+#: doc/guix.texi:11974
+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:11977
+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:11978
+#, 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:11981
+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}."
+
+#. type: item
+#: doc/guix.texi:11982
+#, no-wrap
+msgid "@code{http-proxy} (default: @code{#f})"
+msgstr "@code{http-proxy} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:11985
+msgid "The HTTP proxy used for downloading fixed-output derivations and substitutes."
+msgstr "El proxy HTTP que se usa para la descarga de derivaciones de salida fija y sustituciones."
+
+#. type: item
+#: doc/guix.texi:11986
+#, no-wrap
+msgid "@code{tmpdir} (default: @code{#f})"
+msgstr "@code{tmpdir} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:11988
+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:11992
+#, 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:11997
+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 @var{udev-rule} and @var{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 @var{udev-rule} y @var{file->udev-rule} de @code{(gnu services base)} simplifican la creación de dichos ficheros de reglas."
+
+#. type: deffn
+#: doc/guix.texi:11999
+#, no-wrap
+msgid "{Scheme Procedure} udev-rule [@var{file-name} @var{contents}]"
+msgstr "{Procedimiento Scheme} udev-rule [@var{nombre-fichero} @var{contenido}]"
+
+#. type: deffn
+#: doc/guix.texi:12002
+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}."
+
+#. type: deffn
+#: doc/guix.texi:12006
+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."
+
+#. type: example
+#: doc/guix.texi:12014
+#, no-wrap
+msgid ""
+"(define %example-udev-rule\n"
+"  (udev-rule\n"
+"    \"90-usb-thing.rules\"\n"
+"    (string-append \"ACTION==\\\"add\\\", SUBSYSTEM==\\\"usb\\\", \"\n"
+"                   \"ATTR@{product@}==\\\"Example\\\", \"\n"
+"                   \"RUN+=\\\"/path/to/script\\\"\")))\n"
+msgstr ""
+"(define %regla-ejemplo-udev\n"
+"  (udev-rule\n"
+"    \"90-usb-cosa.rules\"\n"
+"    (string-append \"ACTION==\\\"add\\\", SUBSYSTEM==\\\"usb\\\", \"\n"
+"                   \"ATTR@{product@}==\\\"Ejemplo\\\", \"\n"
+"                   \"RUN+=\\\"/ruta/al/ejecutable\\\"\")))\n"
+
+#. type: deffn
+#: doc/guix.texi:12018
+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: Plain text
+#: doc/guix.texi:12021
+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."
+
+#. type: example
+#: doc/guix.texi:12031
+#, 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"
+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"
+
+#. type: deffn
+#: doc/guix.texi:12033
+#, no-wrap
+msgid "{Scheme Procedure} file->udev-rule [@var{file-name} @var{file}]"
+msgstr "{Procedimiento Scheme} file->udev-rule [@var{nombre-fichero} @var{fichero}]"
+
+#. type: deffn
+#: doc/guix.texi:12036
+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."
+
+#. type: deffn
+#: doc/guix.texi:12038
+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."
+
+#. type: example
+#: doc/guix.texi:12043
+#, no-wrap
+msgid ""
+"(use-modules (guix download)     ;for url-fetch\n"
+"             (guix packages)     ;for origin\n"
+"             ;; @dots{})\n"
+"\n"
+msgstr ""
+"(use-modules (guix download)     ;para url-fetch\n"
+"             (guix packages)     ;para origin\n"
+"             ;; @dots{})\n"
+"\n"
+
+#. type: example
+#: doc/guix.texi:12054
+#, no-wrap
+msgid ""
+"(define %android-udev-rules\n"
+"  (file->udev-rule\n"
+"    \"51-android-udev.rules\"\n"
+"    (let ((version \"20170910\"))\n"
+"      (origin\n"
+"       (method url-fetch)\n"
+"       (uri (string-append \"https://raw.githubusercontent.com/M0Rf30/\"\n"
+"                           \"android-udev-rules/\" version \"/51-android.rules\"))\n"
+"       (sha256\n"
+"        (base32 \"0lmmagpyb6xsq6zcr2w1cyx9qmjqmajkvrdbhjx32gqf1d9is003\"))))))\n"
+msgstr ""
+"(define %reglas-android-udev\n"
+"  (file->udev-rule\n"
+"    \"51-android-udev.rules\"\n"
+"    (let ((version \"20170910\"))\n"
+"      (origin\n"
+"       (method url-fetch)\n"
+"       (uri (string-append \"https://raw.githubusercontent.com/M0Rf30/\"\n"
+"                           \"android-udev-rules/\" version \"/51-android.rules\"))\n"
+"       (sha256\n"
+"        (base32 \"0lmmagpyb6xsq6zcr2w1cyx9qmjqmajkvrdbhjx32gqf1d9is003\"))))))\n"
+
+#. type: Plain text
+#: doc/guix.texi:12063
+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:12072
+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}."
+
+#. type: example
+#: doc/guix.texi:12077
+#, no-wrap
+msgid ""
+"(use-modules (gnu packages android)  ;for android-udev-rules\n"
+"             (gnu system shadow)     ;for user-group\n"
+"             ;; @dots{})\n"
+"\n"
+msgstr ""
+"(use-modules (gnu packages android)  ;para android-udev-rules\n"
+"             (gnu system shadow)     ;para user-group\n"
+"             ;; @dots{})\n"
+"\n"
+
+#. type: example
+#: doc/guix.texi:12086
+#, no-wrap
+msgid ""
+"(operating-system\n"
+"  ;; @dots{}\n"
+"  (users (cons (user-acount\n"
+"                ;; @dots{}\n"
+"                (supplementary-groups\n"
+"                 '(\"adbusers\"   ;for adb\n"
+"                   \"wheel\" \"netdev\" \"audio\" \"video\"))\n"
+"                ;; @dots{})))\n"
+"\n"
+msgstr ""
+"(operating-system\n"
+"  ;; @dots{}\n"
+"  (users (cons (user-acount\n"
+"                ;; @dots{}\n"
+"                (supplementary-groups\n"
+"                 '(\"adbusers\"   ;para adb\n"
+"                   \"wheel\" \"netdev\" \"audio\" \"video\"))\n"
+"                ;; @dots{})))\n"
+"\n"
+
+#. type: example
+#: doc/guix.texi:12089
+#, 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:12091
+#, no-wrap
+msgid ""
+"  ;; @dots{}\n"
+"\n"
+msgstr ""
+"  ;; @dots{}\n"
+"\n"
+
+#. type: example
+#: doc/guix.texi:12099
+#, 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"
+
+#. type: defvr
+#: doc/guix.texi:12101
+#, no-wrap
+msgid "{Scheme Variable} urandom-seed-service-type"
+msgstr "{Variable Scheme} urandom-seed-service-type"
+
+# FUZZY
+#. type: defvr
+#: doc/guix.texi:12106
+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."
+
+#. type: defvr
+#: doc/guix.texi:12108
+#, no-wrap
+msgid "{Scheme Variable} %random-seed-file"
+msgstr "{Variable Scheme} %random-seed-file"
+
+#. type: defvr
+#: doc/guix.texi:12112
+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}."
+
+#. type: cindex
+#: doc/guix.texi:12114
+#, no-wrap
+msgid "mouse"
+msgstr "ratón"
+
+#. type: cindex
+#: doc/guix.texi:12115
+#, no-wrap
+msgid "gpm"
+msgstr "gpm"
+
+#. type: defvr
+#: doc/guix.texi:12116
+#, no-wrap
+msgid "{Scheme Variable} gpm-service-type"
+msgstr "{Variable Scheme} gpm-service-type"
+
+#. type: defvr
+#: doc/guix.texi:12121
+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:12124
+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 ""
+
+#. type: deftp
+#: doc/guix.texi:12126
+#, no-wrap
+msgid "{Data Type} gpm-configuration"
+msgstr "{Tipo de datos} gpm-configuration"
+
+#. type: deftp
+#: doc/guix.texi:12128
+msgid "Data type representing the configuration of GPM."
+msgstr "Tipo de datos que representa la configuración de GPM."
+
+#. type: item
+#: doc/guix.texi:12130
+#, no-wrap
+msgid "@code{options} (default: @code{%default-gpm-options})"
+msgstr "@code{opciones} (predeterminadas: @code{%default-gpm-options})"
+
+#. type: table
+#: doc/guix.texi:12135
+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:12136
+#, no-wrap
+msgid "@code{gpm} (default: @code{gpm})"
+msgstr "@code{gpm} (predeterminado: @code{gpm})"
+
+#. type: table
+#: doc/guix.texi:12138
+msgid "The GPM package to use."
+msgstr "El paquete GPM usado."
+
+#. type: anchor{#1}
+#: doc/guix.texi:12143
+msgid "guix-publish-service-type"
+msgstr "guix-publish-service-type"
+
+#. type: deffn
+#: doc/guix.texi:12143
+#, no-wrap
+msgid "{Scheme Variable} guix-publish-service-type"
+msgstr "{Variable Scheme} guix-publish-service-type"
+
+#. type: deffn
+#: doc/guix.texi:12147
+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 ""
+
+#. type: deffn
+#: doc/guix.texi:12151
+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:12153
+#, no-wrap
+msgid "{Data Type} guix-publish-configuration"
+msgstr "{Tipo de datos} guix-publish-configuration"
+
+#. type: deftp
+#: doc/guix.texi:12156
+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:12158
+#, no-wrap
+msgid "@code{guix} (default: @code{guix})"
+msgstr "@code{guix} (predeterminado: @code{guix})"
+
+#. type: item
+#: doc/guix.texi:12161
+#, no-wrap
+msgid "@code{port} (default: @code{80})"
+msgstr "@code{port} (predeterminado: @code{80})"
+
+#. type: table
+#: doc/guix.texi:12163
+msgid "The TCP port to listen for connections."
+msgstr "El puerto TCP en el que se esperan conexiones."
+
+#. type: item
+#: doc/guix.texi:12164
+#, no-wrap
+msgid "@code{host} (default: @code{\"localhost\"})"
+msgstr "@code{host} (predeterminado: @code{\"localhost\"})"
+
+# FUZZY
+#. type: table
+#: doc/guix.texi:12167
+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: table
+#: doc/guix.texi:12172
+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 ""
+
+#. type: item
+#: doc/guix.texi:12173
+#, no-wrap
+msgid "@code{nar-path} (default: @code{\"nar\"})"
+msgstr "@code{nar-path} (predeterminado: @code{\"nar\"})"
+
+#. type: table
+#: doc/guix.texi:12176
+msgid "The URL path at which ``nars'' can be fetched.  @xref{Invoking guix publish, @code{--nar-path}}, for details."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:12177
+#, no-wrap
+msgid "@code{cache} (default: @code{#f})"
+msgstr "@code{cache} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:12183
+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:12184
+#, no-wrap
+msgid "@code{workers} (default: @code{#f})"
+msgstr "@code{workers} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:12188
+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:12189
+#, no-wrap
+msgid "@code{ttl} (default: @code{#f})"
+msgstr "@code{ttl} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:12193
+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:12197
+msgid "rngd-service"
+msgstr "rngd-service"
+
+#. type: deffn
+#: doc/guix.texi:12197
+#, no-wrap
+msgid "{Scheme Procedure} rngd-service [#:rng-tools @var{rng-tools}] @"
+msgstr "{Procedimiento Scheme} rngd-service [#:rng-tools @var{rng-tools}] @"
+
+#. type: deffn
+#: doc/guix.texi:12202
+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:12205
+msgid "pam-limits-service"
+msgstr "pam-limits-service"
+
+#. type: cindex
+#: doc/guix.texi:12205
+#, no-wrap
+msgid "session limits"
+msgstr "límites por sesión"
+
+#. type: cindex
+#: doc/guix.texi:12206
+#, no-wrap
+msgid "ulimit"
+msgstr "ulimit"
+
+#. type: cindex
+#: doc/guix.texi:12207
+#, no-wrap
+msgid "priority"
+msgstr "prioridad"
+
+#. type: cindex
+#: doc/guix.texi:12208
+#, no-wrap
+msgid "realtime"
+msgstr "tiempo real"
+
+#. type: cindex
+#: doc/guix.texi:12209
+#, no-wrap
+msgid "jackd"
+msgstr "jackd"
+
+#. type: deffn
+#: doc/guix.texi:12210
+#, no-wrap
+msgid "{Scheme Procedure} pam-limits-service [#:limits @code{'()}]"
+msgstr "{Procedimiento Scheme} pam-limits-service [#:limits @code{'()}]"
+
+#. type: deffn
+#: doc/guix.texi:12217
+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:12220
+msgid "The following limits definition sets two hard and soft limits for all login sessions of users in the @code{realtime} group:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:12226
+#, no-wrap
+msgid ""
+"(pam-limits-service\n"
+" (list\n"
+"  (pam-limits-entry \"@@realtime\" 'both 'rtprio 99)\n"
+"  (pam-limits-entry \"@@realtime\" 'both 'memlock 'unlimited)))\n"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:12232
+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:12237
+#, no-wrap
+msgid "cron"
+msgstr "cron"
+
+#. type: cindex
+#: doc/guix.texi:12238
+#, no-wrap
+msgid "mcron"
+msgstr "mcron"
+
+#. type: cindex
+#: doc/guix.texi:12239
+#, no-wrap
+msgid "scheduling jobs"
+msgstr "planificación de trabajos"
+
+#. type: Plain text
+#: doc/guix.texi:12246
+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:12254
+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:12258
+#, no-wrap
+msgid ""
+"(use-modules (guix) (gnu) (gnu services mcron))\n"
+"(use-package-modules base idutils)\n"
+"\n"
+msgstr ""
+"(use-modules (guix) (gnu) (gnu services mcron))\n"
+"(use-package-modules base idutils)\n"
+"\n"
+
+#. type: lisp
+#: doc/guix.texi:12267
+#, no-wrap
+msgid ""
+"(define updatedb-job\n"
+"  ;; Run 'updatedb' at 3AM every day.  Here we write the\n"
+"  ;; job's action as a Scheme procedure.\n"
+"  #~(job '(next-hour '(3))\n"
+"         (lambda ()\n"
+"           (execl (string-append #$findutils \"/bin/updatedb\")\n"
+"                  \"updatedb\"\n"
+"                  \"--prunepaths=/tmp /var/tmp /gnu/store\"))))\n"
+"\n"
+msgstr ""
+"(define trabajo-updatedb\n"
+"  ;; Ejecuta 'updatedb' a las 3AM cada día. Aquí escribimos\n"
+"  ;; las acciones del trabajo como un procedimiento Scheme.\n"
+"  #~(job '(next-hour '(3))\n"
+"         (lambda ()\n"
+"           (execl (string-append #$findutils \"/bin/updatedb\")\n"
+"                  \"updatedb\"\n"
+"                  \"--prunepaths=/tmp /var/tmp /gnu/store\"))))\n"
+"\n"
+
+#. type: lisp
+#: doc/guix.texi:12273
+#, no-wrap
+msgid ""
+"(define garbage-collector-job\n"
+"  ;; Collect garbage 5 minutes after midnight every day.\n"
+"  ;; The job's action is a shell command.\n"
+"  #~(job \"5 0 * * *\"            ;Vixie cron syntax\n"
+"         \"guix gc -F 1G\"))\n"
+"\n"
+msgstr ""
+"(define trabajo-recolector-basura\n"
+"  ;; Recolecta basura 5 minutos después de media noche,\n"
+"  ;; todos los días. La acción del trabajo es una orden\n"
+"  ;; del shell.\n"
+"  #~(job \"5 0 * * *\"            ;sintaxis de Vixie cron\n"
+"         \"guix gc -F 1G\"))\n"
+"\n"
+
+#. type: lisp
+#: doc/guix.texi:12280
+#, no-wrap
+msgid ""
+"(define idutils-job\n"
+"  ;; Update the index database as user \"charlie\" at 12:15PM\n"
+"  ;; and 19:15PM.  This runs from the user's home directory.\n"
+"  #~(job '(next-minute-from (next-hour '(12 19)) '(15))\n"
+"         (string-append #$idutils \"/bin/mkid src\")\n"
+"         #:user \"charlie\"))\n"
+"\n"
+msgstr ""
+"(define trabajo-idutils\n"
+"  ;; Actualiza el índice de la base de datos como \"carlos\" a las\n"
+"  ;; 12:15 y a las 19:15.  Esto se ejecuta desde su directorio.\n"
+"  #~(job '(next-minute-from (next-hour '(12 19)) '(15))\n"
+"         (string-append #$idutils \"/bin/mkid src\")\n"
+"         #:user \"carlos\"))\n"
+"\n"
+
+#. type: lisp
+#: doc/guix.texi:12289
+#, no-wrap
+msgid ""
+"(operating-system\n"
+"  ;; @dots{}\n"
+"  (services (cons (service mcron-service-type\n"
+"                           (mcron-configuration\n"
+"                            (jobs (list garbage-collector-job\n"
+"                                        updatedb-job\n"
+"                                        idutils-job))))\n"
+"                  %base-services)))\n"
+msgstr ""
+"(operating-system\n"
+"  ;; @dots{}\n"
+"  (services (cons (service mcron-service-type\n"
+"                           (mcron-configuration\n"
+"                            (jobs (list trabajo-recolector-basura\n"
+"                                        trabajo-updatedb\n"
+"                                        trabajo-idutils))))\n"
+"                  %base-services)))\n"
+
+#. type: Plain text
+#: doc/guix.texi:12294
+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:12297
+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:12300
+#, no-wrap
+msgid "# herd schedule mcron\n"
+msgstr "# herd schedule mcron\n"
+
+#. type: Plain text
+#: doc/guix.texi:12305
+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:12308
+#, no-wrap
+msgid "# herd schedule mcron 10\n"
+msgstr "# herd schedule mcron 10\n"
+
+#. type: defvr
+#: doc/guix.texi:12310
+#, no-wrap
+msgid "{Scheme Variable} mcron-service-type"
+msgstr "{Variable Scheme} mcron-service-type"
+
+#. type: defvr
+#: doc/guix.texi:12313
+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:12318
+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:12320
+#, no-wrap
+msgid "{Data Type} mcron-configuration"
+msgstr "{Tipo de datos} mcron-configuration"
+
+#. type: deftp
+#: doc/guix.texi:12322
+msgid "Data type representing the configuration of mcron."
+msgstr "Tipo de datos que representa la configuración de mcron."
+
+#. type: item
+#: doc/guix.texi:12324
+#, no-wrap
+msgid "@code{mcron} (default: @var{mcron})"
+msgstr "@code{mcron} (predeterminado: @var{mcron})"
+
+#. type: table
+#: doc/guix.texi:12326
+msgid "The mcron package to use."
+msgstr "El paquete mcron usado."
+
+#. type: code{#1}
+#: doc/guix.texi:12327 doc/guix.texi:12386
+#, no-wrap
+msgid "jobs"
+msgstr "jobs"
+
+#. type: table
+#: doc/guix.texi:12331
+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:12338
+#, no-wrap
+msgid "rottlog"
+msgstr "rottlog"
+
+# TODO: (MAAV) Comprobar otras traducciones.
+#. type: cindex
+#: doc/guix.texi:12339
+#, no-wrap
+msgid "log rotation"
+msgstr "rotación de logs"
+
+#. type: Plain text
+#: doc/guix.texi:12346
+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:12349
+msgid "The example below defines an operating system that provides log rotation with the default settings, for commonly encountered log files."
+msgstr ""
+
+#. type: lisp
+#: doc/guix.texi:12354
+#, no-wrap
+msgid ""
+"(use-modules (guix) (gnu))\n"
+"(use-service-modules admin mcron)\n"
+"(use-package-modules base idutils)\n"
+"\n"
+msgstr ""
+"(use-modules (guix) (gnu))\n"
+"(use-service-modules admin mcron)\n"
+"(use-package-modules base idutils)\n"
+"\n"
+
+#. type: lisp
+#: doc/guix.texi:12359
+#, no-wrap
+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"
+
+#. type: defvr
+#: doc/guix.texi:12361
+#, no-wrap
+msgid "{Scheme Variable} rottlog-service-type"
+msgstr "{Variable Scheme} rottlog-service-type"
+
+#. type: defvr
+#: doc/guix.texi:12364
+msgid "This is the type of the Rottlog service, whose value is a @code{rottlog-configuration} object."
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:12367
+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:12370
+msgid "This service type can define mcron jobs (@pxref{Scheduled Job Execution}) to run the rottlog service."
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:12372
+#, no-wrap
+msgid "{Data Type} rottlog-configuration"
+msgstr "{Tipo de datos} rottlog-configuration"
+
+#. type: deftp
+#: doc/guix.texi:12374
+msgid "Data type representing the configuration of rottlog."
+msgstr "Tipo de datos que representa la configuración de rottlog."
+
+#. type: item
+#: doc/guix.texi:12376
+#, no-wrap
+msgid "@code{rottlog} (default: @code{rottlog})"
+msgstr "@code{rottlog} (predeterminado: @code{rottlog})"
+
+#. type: table
+#: doc/guix.texi:12378
+msgid "The Rottlog package to use."
+msgstr "El paquete Rottlog usado."
+
+#. type: item
+#: doc/guix.texi:12379
+#, 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:12382
+msgid "The Rottlog configuration file to use (@pxref{Mandatory RC Variables,,, rottlog, GNU Rot[t]log Manual})."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:12383
+#, no-wrap
+msgid "@code{rotations} (default: @code{%default-rotations})"
+msgstr "@code{rotations} (predeterminadas: @code{%default-rotations})"
+
+#. type: table
+#: doc/guix.texi:12385
+msgid "A list of @code{log-rotation} objects as defined below."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:12389
+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:12392
+#, no-wrap
+msgid "{Data Type} log-rotation"
+msgstr "{Tipo de datos} log-rotation"
+
+# FUZZY
+#. type: deftp
+#: doc/guix.texi:12394
+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."
+
+#. type: deftp
+#: doc/guix.texi:12398
+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: example
+#: doc/guix.texi:12407
+#, no-wrap
+msgid ""
+"(log-rotation\n"
+"  (frequency 'daily)\n"
+"  (files '(\"/var/log/apache/*\"))\n"
+"  (options '(\"storedir apache-archives\"\n"
+"             \"rotate 6\"\n"
+"             \"notifempty\"\n"
+"             \"nocompress\")))\n"
+msgstr ""
+"(log-rotation\n"
+"  (frequency 'daily)\n"
+"  (files '(\"/var/log/apache/*\"))\n"
+"  (options '(\"storedir apache-archives\"\n"
+"             \"rotate 6\"\n"
+"             \"notifempty\"\n"
+"             \"nocompress\")))\n"
+
+#. type: deftp
+#: doc/guix.texi:12410
+msgid "The list of fields is as follows:"
+msgstr "La lista de campos es como sigue:"
+
+#. type: item
+#: doc/guix.texi:12412
+#, no-wrap
+msgid "@code{frequency} (default: @code{'weekly})"
+msgstr "@code{frequency} (predeterminada: @code{'weekly})"
+
+#. type: table
+#: doc/guix.texi:12414
+msgid "The log rotation frequency, a symbol."
+msgstr "La frecuencia de rotación de logs, un símbolo."
+
+#. type: code{#1}
+#: doc/guix.texi:12415
+#, no-wrap
+msgid "files"
+msgstr "files"
+
+# FUZZY
+#. type: table
+#: doc/guix.texi:12417
+msgid "The list of files or file glob patterns to rotate."
+msgstr "La lista de ficheros o patrones extendidos de fichero a rotar."
+
+#. type: item
+#: doc/guix.texi:12418
+#, no-wrap
+msgid "@code{options} (default: @code{'()})"
+msgstr "@code{options} (predeterminadas: @code{'()})"
+
+#. type: table
+#: doc/guix.texi:12421
+msgid "The list of rottlog options for this rotation (@pxref{Configuration parameters,,, rottlog, GNU Rot[t]lg Manual})."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:12422
+#, no-wrap
+msgid "@code{post-rotate} (default: @code{#f})"
+msgstr "@code{post-rotate} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:12424
+msgid "Either @code{#f} or a gexp to execute once the rotation has completed."
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:12427
+#, no-wrap
+msgid "{Scheme Variable} %default-rotations"
+msgstr "{Variable Scheme} %default-rotations"
+
+#. type: defvr
+#: doc/guix.texi:12430
+msgid "Specifies weekly rotation of @var{%rotated-files} and a couple of other files."
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:12432
+#, no-wrap
+msgid "{Scheme Variable} %rotated-files"
+msgstr "{Variable Scheme} %rotated-files"
+
+#. type: defvr
+#: doc/guix.texi:12435
+msgid "The list of syslog-controlled files to be rotated.  By default it is: @code{'(\"/var/log/messages\" \"/var/log/secure\")}."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:12442
+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:12443
+#, no-wrap
+msgid "DHCP, networking service"
+msgstr "DHCP, servicio de red"
+
+#. type: defvr
+#: doc/guix.texi:12444
+#, no-wrap
+msgid "{Scheme Variable} dhcp-client-service-type"
+msgstr "{Variable Scheme} dhcp-client-service-type"
+
+#. type: defvr
+#: doc/guix.texi:12448
+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:12450
+#, no-wrap
+msgid "{Scheme Procedure} dhcpd-service-type"
+msgstr "{Procedimiento Scheme} dhcpd-service-type"
+
+#. type: deffn
+#: doc/guix.texi:12454
+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: example
+#: doc/guix.texi:12460
+#, no-wrap
+msgid ""
+"(service dhcpd-service-type\n"
+"         (dhcpd-configuration\n"
+"          (config-file (local-file \"my-dhcpd.conf\"))\n"
+"          (interfaces '(\"enp0s25\"))))\n"
+msgstr ""
+"(service dhcpd-service-type\n"
+"         (dhcpd-configuration\n"
+"          (config-file (local-file \"mi-dhcpd.conf\"))\n"
+"          (interfaces '(\"enp0s25\"))))\n"
+
+#. type: deftp
+#: doc/guix.texi:12463
+#, no-wrap
+msgid "{Data Type} dhcpd-configuration"
+msgstr "{Tipo de datos} dhcpd-configuration"
+
+#. type: item
+#: doc/guix.texi:12465
+#, no-wrap
+msgid "@code{package} (default: @code{isc-dhcp})"
+msgstr "@code{package} (predeterminado: @code{isc-dhcp})"
+
+#. type: table
+#: doc/guix.texi:12470
+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{http://www.isc.org/products/DHCP, ISC's DHCP server}."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:12470 doc/guix.texi:12659 doc/guix.texi:16612
+#, no-wrap
+msgid "@code{config-file} (default: @code{#f})"
+msgstr "@code{config-file} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:12475
+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:12475
+#, no-wrap
+msgid "@code{version} (default: @code{\"4\"})"
+msgstr "@code{version} (predeterminada: @code{\"4\"})"
+
+#. type: table
+#: doc/guix.texi:12480
+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:12480
+#, no-wrap
+msgid "@code{run-directory} (default: @code{\"/run/dhcpd\"})"
+msgstr "@code{run-directory} (predeterminado: @code{\"/run/dhcpd\"})"
+
+#. type: table
+#: doc/guix.texi:12483
+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:12483
+#, 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:12486
+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:12486
+#, no-wrap
+msgid "@code{interfaces} (default: @code{'()})"
+msgstr "@code{interfaces} (predeterminadas: @code{'()})"
+
+#. type: table
+#: doc/guix.texi:12492
+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:12495
+#, no-wrap
+msgid "{Scheme Variable} static-networking-service-type"
+msgstr "{Variable Scheme} static-networking-service-type"
+
+#. type: defvr
+#: doc/guix.texi:12498
+msgid "This is the type for statically-configured network interfaces."
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:12500
+#, 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:12508
+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:12513
+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:12515
+msgid "For example:"
+msgstr "Por ejemplo:"
+
+#. type: example
+#: doc/guix.texi:12520
+#, no-wrap
+msgid ""
+"(static-networking-service \"eno1\" \"192.168.1.82\"\n"
+"                           #:gateway \"192.168.1.2\"\n"
+"                           #:name-servers '(\"192.168.1.2\"))\n"
+msgstr ""
+"(static-networking-service \"eno1\" \"192.168.1.82\"\n"
+"                           #:gateway \"192.168.1.2\"\n"
+"                           #:name-servers '(\"192.168.1.2\"))\n"
+
+#. type: cindex
+#: doc/guix.texi:12523
+#, no-wrap
+msgid "wicd"
+msgstr "wicd"
+
+#. type: cindex
+#: doc/guix.texi:12526
+#, no-wrap
+msgid "network management"
+msgstr "gestión de red"
+
+#. type: deffn
+#: doc/guix.texi:12527
+#, no-wrap
+msgid "{Scheme Procedure} wicd-service [#:wicd @var{wicd}]"
+msgstr "{Procedimiento Scheme} wicd-service [#:wicd @var{wicd}]"
+
+#. type: deffn
+#: doc/guix.texi:12530
+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:12535
+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:12537
+#, no-wrap
+msgid "ModemManager"
+msgstr "ModemManager"
+
+#. type: defvr
+#: doc/guix.texi:12539
+#, no-wrap
+msgid "{Scheme Variable} modem-manager-service-type"
+msgstr "{Variable Scheme} modem-manager-service-type"
+
+#. type: defvr
+#: doc/guix.texi:12544
+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:12547 doc/guix.texi:12569
+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:12549
+#, no-wrap
+msgid "{Data Type} modem-manager-configuration"
+msgstr "{Tipo de datos} modem-manager-configuration"
+
+#. type: deftp
+#: doc/guix.texi:12551
+msgid "Data type representing the configuration of ModemManager."
+msgstr "Tipo de datos que representa la configuración de ModemManager."
+
+#. type: item
+#: doc/guix.texi:12553
+#, no-wrap
+msgid "@code{modem-manager} (default: @code{modem-manager})"
+msgstr "@code{modem-manager} (predeterminado: @code{modem-manager})"
+
+#. type: table
+#: doc/guix.texi:12555
+msgid "The ModemManager package to use."
+msgstr "El paquete de ModemManager usado."
+
+#. type: cindex
+#: doc/guix.texi:12559
+#, no-wrap
+msgid "NetworkManager"
+msgstr "NetworkManager"
+
+#. type: defvr
+#: doc/guix.texi:12561
+#, no-wrap
+msgid "{Scheme Variable} network-manager-service-type"
+msgstr "{Variable Scheme} network-manager-service-type"
+
+#. type: defvr
+#: doc/guix.texi:12566
+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:12571
+#, no-wrap
+msgid "{Data Type} network-manager-configuration"
+msgstr "{Tipo de datos} network-manager-configuration"
+
+#. type: deftp
+#: doc/guix.texi:12573
+msgid "Data type representing the configuration of NetworkManager."
+msgstr "Tipo de datos que representa la configuración de NetworkManager."
+
+#. type: item
+#: doc/guix.texi:12575
+#, no-wrap
+msgid "@code{network-manager} (default: @code{network-manager})"
+msgstr "@code{network-manager} (predeterminado: @code{network-manager})"
+
+#. type: table
+#: doc/guix.texi:12577
+msgid "The NetworkManager package to use."
+msgstr "El paquete de NetworkManager usado."
+
+#. type: item
+#: doc/guix.texi:12578
+#, no-wrap
+msgid "@code{dns} (default: @code{\"default\"})"
+msgstr "@code{dns} (predeterminado: @code{\"default\"})"
+
+#. type: table
+#: doc/guix.texi:12581
+msgid "Processing mode for DNS, which affects how NetworkManager uses the @code{resolv.conf} configuration file."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:12583
+#, no-wrap
+msgid "default"
+msgstr "default"
+
+#. type: table
+#: doc/guix.texi:12586
+msgid "NetworkManager will update @code{resolv.conf} to reflect the nameservers provided by currently active connections."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:12587
+#, no-wrap
+msgid "dnsmasq"
+msgstr "dnsmasq"
+
+#. type: table
+#: doc/guix.texi:12591
+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 ""
+
+#. type: item
+#: doc/guix.texi:12592 doc/guix.texi:13818
+#, no-wrap
+msgid "none"
+msgstr "none"
+
+#. type: table
+#: doc/guix.texi:12594
+msgid "NetworkManager will not modify @code{resolv.conf}."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:12596
+#, no-wrap
+msgid "@code{vpn-plugins} (default: @code{'()})"
+msgstr "@code{vpn-plugins} (predeterminados: @code{'()})"
+
+#. type: table
+#: doc/guix.texi:12600
+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:12604
+#, no-wrap
+msgid "Connman"
+msgstr "Connman"
+
+#. type: deffn
+#: doc/guix.texi:12605
+#, no-wrap
+msgid "{Scheme Variable} connman-service-type"
+msgstr "{Variable Scheme} connman-service-type"
+
+#. type: deffn
+#: doc/guix.texi:12608
+msgid "This is the service type to run @url{https://01.org/connman,Connman}, a network connection manager."
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:12611
+msgid "Its value must be an @code{connman-configuration} record as in this example:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:12616
+#, no-wrap
+msgid ""
+"(service connman-service-type\n"
+"         (connman-configuration\n"
+"           (disable-vpn? #t)))\n"
+msgstr ""
+"(service connman-service-type\n"
+"         (connman-configuration\n"
+"           (disable-vpn? #t)))\n"
+
+#. type: deffn
+#: doc/guix.texi:12619
+msgid "See below for details about @code{connman-configuration}."
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:12621
+#, no-wrap
+msgid "{Data Type} connman-configuration"
+msgstr "{Tipo de datos} connman-configuration"
+
+#. type: deftp
+#: doc/guix.texi:12623
+msgid "Data Type representing the configuration of connman."
+msgstr "Tipo de datos que representa la configuración de connman."
+
+#. type: item
+#: doc/guix.texi:12625
+#, no-wrap
+msgid "@code{connman} (default: @var{connman})"
+msgstr "@code{connman} (predeterminado: @var{connman})"
+
+#. type: table
+#: doc/guix.texi:12627
+msgid "The connman package to use."
+msgstr "El paquete connman usado."
+
+#. type: item
+#: doc/guix.texi:12628
+#, no-wrap
+msgid "@code{disable-vpn?} (default: @code{#f})"
+msgstr "@code{disable-vpn?} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:12630
+msgid "When true, disable connman's vpn plugin."
+msgstr "Cuando es verdadero, deshabilita el módulo vpn de connman."
+
+#. type: cindex
+#: doc/guix.texi:12633
+#, no-wrap
+msgid "WPA Supplicant"
+msgstr "WPA Supplicant"
+
+#. type: defvr
+#: doc/guix.texi:12634
+#, no-wrap
+msgid "{Scheme Variable} wpa-supplicant-service-type"
+msgstr "{Variable Scheme} wpa-supplicant-service-type"
+
+#. type: defvr
+#: doc/guix.texi:12638
+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:12640
+#, no-wrap
+msgid "{Data Type} wpa-supplicant-configuration"
+msgstr "{Tipo de datos} wpa-supplicant-configuration"
+
+#. type: deftp
+#: doc/guix.texi:12642
+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:12644
+msgid "It takes the following parameters:"
+msgstr "Toma los siguientes parámetros:"
+
+#. type: item
+#: doc/guix.texi:12646
+#, no-wrap
+msgid "@code{wpa-supplicant} (default: @code{wpa-supplicant})"
+msgstr "@code{wpa-supplicant} (predeterminado: @code{wpa-supplicant})"
+
+#. type: table
+#: doc/guix.texi:12648
+msgid "The WPA Supplicant package to use."
+msgstr "El paquete de WPA Supplicant usado."
+
+#. type: item
+#: doc/guix.texi:12649
+#, no-wrap
+msgid "@code{dbus?} (default: @code{#t})"
+msgstr "@code{dbus?} (predeterminado: @code{#t})"
+
+#. type: table
+#: doc/guix.texi:12651
+msgid "Whether to listen for requests on D-Bus."
+msgstr "Si se escuchan o no peticiones en D-Bus."
+
+#. type: item
+#: doc/guix.texi:12652
+#, 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:12654
+msgid "Where to store the PID file."
+msgstr "Dónde se almacena el fichero con el PID."
+
+#. type: item
+#: doc/guix.texi:12655
+#, no-wrap
+msgid "@code{interface} (default: @code{#f})"
+msgstr "@code{interface} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:12658
+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:12661
+msgid "Optional configuration file to use."
+msgstr "Fichero de configuración opcional usado."
+
+#. type: table
+#: doc/guix.texi:12664
+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:12667
+#, no-wrap
+msgid "iptables"
+msgstr "iptables"
+
+#. type: defvr
+#: doc/guix.texi:12668
+#, no-wrap
+msgid "{Scheme Variable} iptables-service-type"
+msgstr "{Variable Scheme} iptables-service-type"
+
+#. type: defvr
+#: doc/guix.texi:12674
+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 ""
+
+# TODO: Revisar
+#. type: lisp
+#: doc/guix.texi:12694
+#, no-wrap
+msgid ""
+"(service iptables-service-type\n"
+"         (iptables-configuration\n"
+"          (ipv4-rules (plain-file \"iptables.rules\" \"*filter\n"
+":INPUT ACCEPT\n"
+":FORWARD ACCEPT\n"
+":OUTPUT ACCEPT\n"
+"-A INPUT -p tcp --dport 22 -j ACCEPT\n"
+"-A INPUT -j REJECT --reject-with icmp-port-unreachable\n"
+"COMMIT\n"
+"\"))\n"
+"          (ipv6-rules (plain-file \"ip6tables.rules\" \"*filter\n"
+":INPUT ACCEPT\n"
+":FORWARD ACCEPT\n"
+":OUTPUT ACCEPT\n"
+"-A INPUT -p tcp --dport 22 -j ACCEPT\n"
+"-A INPUT -j REJECT --reject-with icmp6-port-unreachable\n"
+"COMMIT\n"
+"\"))))\n"
+msgstr ""
+"(service iptables-service-type\n"
+"         (iptables-configuration\n"
+"          (ipv4-rules (plain-file \"iptables.rules\" \"*filter\n"
+":INPUT ACCEPT\n"
+":FORWARD ACCEPT\n"
+":OUTPUT ACCEPT\n"
+"-A INPUT -p tcp --dport 22 -j ACCEPT\n"
+"-A INPUT -j REJECT --reject-with icmp-port-unreachable\n"
+"COMMIT\n"
+"\"))\n"
+"          (ipv6-rules (plain-file \"ip6tables.rules\" \"*filter\n"
+":INPUT ACCEPT\n"
+":FORWARD ACCEPT\n"
+":OUTPUT ACCEPT\n"
+"-A INPUT -p tcp --dport 22 -j ACCEPT\n"
+"-A INPUT -j REJECT --reject-with icmp6-port-unreachable\n"
+"COMMIT\n"
+"\"))))\n"
+
+#. type: deftp
+#: doc/guix.texi:12697
+#, no-wrap
+msgid "{Data Type} iptables-configuration"
+msgstr "{Tipo de datos} iptables-configuration"
+
+#. type: deftp
+#: doc/guix.texi:12699
+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:12701
+#, no-wrap
+msgid "@code{iptables} (default: @code{iptables})"
+msgstr "@code{iptables} (predeterminado: @code{iptables})"
+
+#. type: table
+#: doc/guix.texi:12704
+msgid "The iptables package that provides @code{iptables-restore} and @code{ip6tables-restore}."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:12704
+#, no-wrap
+msgid "@code{ipv4-rules} (default: @code{%iptables-accept-all-rules})"
+msgstr "@code{ipv4-rules} (predeterminado: @code{%iptables-accept-all-rules})"
+
+#. type: table
+#: doc/guix.texi:12708
+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:12708
+#, 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:12712
+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:12715
+#, no-wrap
+msgid "NTP (Network Time Protocol), service"
+msgstr "NTP (protocolo de tiempo de red), servicio"
+
+#. type: cindex
+#: doc/guix.texi:12716
+#, no-wrap
+msgid "real time clock"
+msgstr "reloj de tiempo real"
+
+#. type: defvr
+#: doc/guix.texi:12717
+#, no-wrap
+msgid "{Scheme Variable} ntp-service-type"
+msgstr "{Variable Scheme} ntp-service-type"
+
+#. type: defvr
+#: doc/guix.texi:12721
+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 ""
+
+#. type: defvr
+#: doc/guix.texi:12724
+msgid "The value of this service is an @code{ntpd-configuration} object, as described below."
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:12726
+#, no-wrap
+msgid "{Data Type} ntp-configuration"
+msgstr "{Tipo de datos} ntp-configuration"
+
+#. type: deftp
+#: doc/guix.texi:12728
+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:12730
+#, no-wrap
+msgid "@code{servers} (default: @code{%ntp-servers})"
+msgstr "@code{servers} (predeterminados: @code{%ntp-servers})"
+
+#. type: table
+#: doc/guix.texi:12733
+msgid "This is the list of servers (host names) with which @command{ntpd} will be synchronized."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:12734 doc/guix.texi:12795
+#, no-wrap
+msgid "@code{allow-large-adjustment?} (default: @code{#f})"
+msgstr "@code{allow-large-adjustment?} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:12737
+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:12738
+#, no-wrap
+msgid "@code{ntp} (default: @code{ntp})"
+msgstr "@code{ntp} (predeterminado: @code{ntp})"
+
+#. type: table
+#: doc/guix.texi:12740
+msgid "The NTP package to use."
+msgstr "El paquete NTP usado."
+
+#. type: defvr
+#: doc/guix.texi:12743
+#, no-wrap
+msgid "{Scheme Variable} %ntp-servers"
+msgstr "{Variable Scheme} %ntp-servers"
+
+#. type: defvr
+#: doc/guix.texi:12746
+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: cindex
+#: doc/guix.texi:12748
+#, no-wrap
+msgid "OpenNTPD"
+msgstr "OpenNTPD"
+
+#. type: deffn
+#: doc/guix.texi:12749
+#, no-wrap
+msgid "{Scheme Procedure} openntpd-service-type"
+msgstr "{Procedimiento Scheme} openntpd-service-type"
+
+#. type: deffn
+#: doc/guix.texi:12753
+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: example
+#: doc/guix.texi:12763
+#, no-wrap
+msgid ""
+"(service\n"
+" openntpd-service-type\n"
+" (openntpd-configuration\n"
+"  (listen-on '(\"127.0.0.1\" \"::1\"))\n"
+"  (sensor '(\"udcf0 correction 70000\"))\n"
+"  (constraint-from '(\"www.gnu.org\"))\n"
+"  (constraints-from '(\"https://www.google.com/\"))\n"
+"  (allow-large-adjustment? #t)))\n"
+"\n"
+msgstr ""
+"(service\n"
+" openntpd-service-type\n"
+" (openntpd-configuration\n"
+"  (listen-on '(\"127.0.0.1\" \"::1\"))\n"
+"  (sensor '(\"udcf0 correction 70000\"))\n"
+"  (constraint-from '(\"www.gnu.org\"))\n"
+"  (constraints-from '(\"https://www.google.com/\"))\n"
+"  (allow-large-adjustment? #t)))\n"
+"\n"
+
+#. type: deftp
+#: doc/guix.texi:12767
+#, no-wrap
+msgid "{Data Type} openntpd-configuration"
+msgstr "{Tipo de datos} openntpd-configuration"
+
+#. type: item
+#: doc/guix.texi:12769
+#, 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:12771
+msgid "The openntpd executable to use."
+msgstr "El ejecutable openntpd usado."
+
+#. type: item
+#: doc/guix.texi:12771
+#, 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:12773
+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:12773
+#, no-wrap
+msgid "@code{query-from} (default: @code{'()})"
+msgstr "@code{query-from} (predeterminadas: @code{'()})"
+
+#. type: table
+#: doc/guix.texi:12775
+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:12775
+#, no-wrap
+msgid "@code{sensor} (default: @code{'()})"
+msgstr "@code{sensor} (predeterminados: @code{'()})"
+
+#. type: table
+#: doc/guix.texi:12780
+msgid "Specify a list of timedelta sensor devices ntpd should use.  @code{ntpd} will listen to each sensor that acutally exists and ignore non-existant ones.  See @uref{https://man.openbsd.org/ntpd.conf, upstream documentation} for more information."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:12780
+#, no-wrap
+msgid "@code{server} (default: @var{%ntp-servers})"
+msgstr "@code{server} (predeterminadas: @var{%ntp-servers})"
+
+#. type: table
+#: doc/guix.texi:12782
+msgid "Specify a list of IP addresses or hostnames of NTP servers to synchronize to."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:12782 doc/guix.texi:19891
+#, no-wrap
+msgid "@code{servers} (default: @code{'()})"
+msgstr "@code{servers} (predeterminados: @code{'()})"
+
+#. type: table
+#: doc/guix.texi:12784
+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:12784
+#, no-wrap
+msgid "@code{constraint-from} (default: @code{'()})"
+msgstr "@code{constraint-from} (predeterminado: @code{'()})"
+
+#. type: table
+#: doc/guix.texi:12791
+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:12791
+#, no-wrap
+msgid "@code{constraints-from} (default: @code{'()})"
+msgstr "@code{constraints-from} (predeterminadas: @code{'()})"
+
+#. type: table
+#: doc/guix.texi:12795
+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: table
+#: doc/guix.texi:12798
+msgid "Determines if @code{ntpd} is allowed to make an initial adjustment of more than 180 seconds."
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:12801
+#, no-wrap
+msgid "inetd"
+msgstr "inetd"
+
+#. type: deffn
+#: doc/guix.texi:12802
+#, no-wrap
+msgid "{Scheme variable} inetd-service-type"
+msgstr "{Variable Scheme} inetd-service-type"
+
+#. type: deffn
+#: doc/guix.texi:12807
+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:12813
+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: example
+#: doc/guix.texi:12836
+#, no-wrap
+msgid ""
+"(service\n"
+" inetd-service-type\n"
+" (inetd-configuration\n"
+"  (entries (list\n"
+"            (inetd-entry\n"
+"             (name \"echo\")\n"
+"             (socket-type 'stream)\n"
+"             (protocol \"tcp\")\n"
+"             (wait? #f)\n"
+"             (user \"root\"))\n"
+"            (inetd-entry\n"
+"             (node \"127.0.0.1\")\n"
+"             (name \"smtp\")\n"
+"             (socket-type 'stream)\n"
+"             (protocol \"tcp\")\n"
+"             (wait? #f)\n"
+"             (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"
+msgstr ""
+"(service\n"
+" inetd-service-type\n"
+" (inetd-configuration\n"
+"  (entries (list\n"
+"            (inetd-entry\n"
+"             (name \"echo\")\n"
+"             (socket-type 'stream)\n"
+"             (protocol \"tcp\")\n"
+"             (wait? #f)\n"
+"             (user \"root\"))\n"
+"            (inetd-entry\n"
+"             (node \"127.0.0.1\")\n"
+"             (name \"smtp\")\n"
+"             (socket-type 'stream)\n"
+"             (protocol \"tcp\")\n"
+"             (wait? #f)\n"
+"             (user \"root\")\n"
+"             (program (file-append openssh \"/bin/ssh\"))\n"
+"             (arguments\n"
+"              '(\"ssh\" \"-qT\" \"-i\" \"/ruta/a/la/clave_ssh\"\n"
+"                \"-W\" \"smtp-server:25\" \"usuaria@@máquina\")))))\n"
+
+#. type: deffn
+#: doc/guix.texi:12839
+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:12841
+#, no-wrap
+msgid "{Data Type} inetd-configuration"
+msgstr "{Tipo de datos} inetd-configuration"
+
+#. type: deftp
+#: doc/guix.texi:12843
+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:12845
+#, 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:12847
+msgid "The @command{inetd} executable to use."
+msgstr "El ejecutable @command{inetd} usado."
+
+#. type: item
+#: doc/guix.texi:12848 doc/guix.texi:19597
+#, no-wrap
+msgid "@code{entries} (default: @code{'()})"
+msgstr "@code{entries} (predeterminadas: @code{'()})"
+
+#. type: table
+#: doc/guix.texi:12851
+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:12854
+#, no-wrap
+msgid "{Data Type} inetd-entry"
+msgstr "{Tipo de datos} inetd-entry"
+
+#. type: deftp
+#: doc/guix.texi:12858
+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:12860
+#, no-wrap
+msgid "@code{node} (default: @code{#f})"
+msgstr "@code{node} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:12865
+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:12867
+msgid "A string, the name must correspond to an entry in @code{/etc/services}."
+msgstr ""
+
+#. type: code{#1}
+#: doc/guix.texi:12867
+#, no-wrap
+msgid "socket-type"
+msgstr "socket-type"
+
+#. type: table
+#: doc/guix.texi:12870
+msgid "One of @code{'stream}, @code{'dgram}, @code{'raw}, @code{'rdm} or @code{'seqpacket}."
+msgstr ""
+
+#. type: code{#1}
+#: doc/guix.texi:12870
+#, no-wrap
+msgid "protocol"
+msgstr "protocol"
+
+#. type: table
+#: doc/guix.texi:12872
+msgid "A string, must correspond to an entry in @code{/etc/protocols}."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:12872
+#, no-wrap
+msgid "@code{wait?} (default: @code{#t})"
+msgstr "@code{wait?} (predeterminado: @code{#t})"
+
+#. type: table
+#: doc/guix.texi:12875
+msgid "Whether @command{inetd} should wait for the server to exit before listening to new service requests."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:12880
+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:12880
+#, no-wrap
+msgid "@code{program} (default: @code{\"internal\"})"
+msgstr "@code{program} (predeterminado: @code{\"internal\"})"
+
+#. type: table
+#: doc/guix.texi:12883
+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:12888
+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:12892
+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:12894
+#, no-wrap
+msgid "Tor"
+msgstr "Tor"
+
+#. type: defvr
+#: doc/guix.texi:12895
+#, no-wrap
+msgid "{Scheme Variable} tor-service-type"
+msgstr "{Variable Scheme} tor-service-type"
+
+#. type: defvr
+#: doc/guix.texi:12900
+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:12903
+#, no-wrap
+msgid "{Data Type} tor-configuration"
+msgstr "{Tipo de datos} tor-configuration"
+
+#. type: item
+#: doc/guix.texi:12905
+#, no-wrap
+msgid "@code{tor} (default: @code{tor})"
+msgstr "@code{tor} (predeterminado: @code{tor})"
+
+#. type: table
+#: doc/guix.texi:12910
+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:12911
+#, 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:12917
+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:12918
+#, no-wrap
+msgid "@code{hidden-services} (default: @code{'()})"
+msgstr "@code{hidden-services} (predeterminados: @code{'()})"
+
+#. type: table
+#: doc/guix.texi:12924
+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:12925
+#, no-wrap
+msgid "@code{socks-socket-type} (default: @code{'tcp})"
+msgstr "@code{socks-socket-type} (predeterminado: @code{'tcp})"
+
+#. type: table
+#: doc/guix.texi:12932
+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:12937
+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:12940
+#, no-wrap
+msgid "hidden service"
+msgstr "servicio oculto"
+
+#. type: deffn
+#: doc/guix.texi:12941
+#, 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:12944
+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{¶elación}. @var{relación} es una lista de tuplas puerto/máquina, como:"
+
+#. type: example
+#: doc/guix.texi:12948
+#, no-wrap
+msgid ""
+" '((22 \"127.0.0.1:22\")\n"
+"   (80 \"127.0.0.1:8080\"))\n"
+msgstr ""
+" '((22 \"127.0.0.1:22\")\n"
+"   (80 \"127.0.0.1:8080\"))\n"
+
+#. type: deffn
+#: doc/guix.texi:12952
+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:12956
+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."
+
+#. type: deffn
+#: doc/guix.texi:12959
+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:12962
+msgid "The @code{(gnu services rsync)} module provides the following services:"
+msgstr "El módulo @code{(gnu services rsync)} proporciona los siguientes servicios:"
+
+#. type: Plain text
+#: doc/guix.texi:12966
+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:12967
+#, no-wrap
+msgid "{Scheme Variable} rsync-service-type"
+msgstr "{Variable Scheme} rsync-service-type"
+
+#. type: deffn
+#: doc/guix.texi:12970
+msgid "This is the type for the @uref{https://rsync.samba.org, rsync} rsync daemon, @command{rsync-configuration} record as in this example:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:12973
+#, no-wrap
+msgid "(service rsync-service-type)\n"
+msgstr "(service rsync-service-type)\n"
+
+#. type: deffn
+#: doc/guix.texi:12976
+msgid "See below for details about @code{rsync-configuration}."
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:12978
+#, no-wrap
+msgid "{Data Type} rsync-configuration"
+msgstr "{Tipo de datos} rsync-configuration"
+
+#. type: deftp
+#: doc/guix.texi:12980
+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:12982
+#, no-wrap
+msgid "@code{package} (default: @var{rsync})"
+msgstr "@code{package} (predeterminado: @var{rsync})"
+
+#. type: table
+#: doc/guix.texi:12984
+msgid "@code{rsync} package to use."
+msgstr "Paquete @code{rsync} usado."
+
+#. type: item
+#: doc/guix.texi:12985
+#, no-wrap
+msgid "@code{port-number} (default: @code{873})"
+msgstr "@code{port-number} (predeterminado: @code{873})"
+
+#. type: table
+#: doc/guix.texi:12989
+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:12990
+#, 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:12992
+msgid "Name of the file where @command{rsync} writes its PID."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:12993
+#, no-wrap
+msgid "@code{lock-file} (default: @code{\"/var/run/rsyncd/rsyncd.lock\"})"
+msgstr "@code{lock-file} (predeterminado: @code{\"/var/run/rsyncd/rsyncd.lock\"})"
+
+#. type: table
+#: doc/guix.texi:12995
+msgid "Name of the file where @command{rsync} writes its lock file."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:12996
+#, no-wrap
+msgid "@code{log-file} (default: @code{\"/var/log/rsyncd.log\"})"
+msgstr "@code{log-file} (predeterminado: @code{\"/var/log/rsyncd.log\"})"
+
+#. type: table
+#: doc/guix.texi:12998
+msgid "Name of the file where @command{rsync} writes its log file."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:12999
+#, no-wrap
+msgid "@code{use-chroot?} (default: @var{#t})"
+msgstr "@code{use-chroot?} (predeterminado: @var{#t})"
+
+#. type: table
+#: doc/guix.texi:13001
+msgid "Whether to use chroot for @command{rsync} shared directory."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13002
+#, no-wrap
+msgid "@code{share-path} (default: @file{/srv/rsync})"
+msgstr "@code{share-path} (predeterminado: @file{/srv/rsync})"
+
+#. type: table
+#: doc/guix.texi:13004
+msgid "Location of the @command{rsync} shared directory."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13005
+#, no-wrap
+msgid "@code{share-comment} (default: @code{\"Rsync share\"})"
+msgstr "@code{share-comment} (predeterminado: @code{\"Rsync share\"})"
+
+#. type: table
+#: doc/guix.texi:13007
+msgid "Comment of the @command{rsync} shared directory."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13008
+#, no-wrap
+msgid "@code{read-only?} (default: @var{#f})"
+msgstr "@code{read-only?} (predeterminado: @var{#f})"
+
+#. type: table
+#: doc/guix.texi:13010
+msgid "Read-write permissions to shared directory."
+msgstr "Permisos de lectura/escritura en el directorio compartido."
+
+#. type: item
+#: doc/guix.texi:13011
+#, no-wrap
+msgid "@code{timeout} (default: @code{300})"
+msgstr "@code{timeout} (predeterminado: @code{300})"
+
+# FUZZY
+#. type: table
+#: doc/guix.texi:13013
+msgid "I/O timeout in seconds."
+msgstr "Plazo de la E/S en segundos."
+
+#. type: item
+#: doc/guix.texi:13014
+#, no-wrap
+msgid "@code{user} (default: @var{\"root\"})"
+msgstr "@code{user} (predeterminada: @var{\"root\"})"
+
+#. type: table
+#: doc/guix.texi:13016
+msgid "Owner of the @code{rsync} process."
+msgstr "Propietaria del proceso @code{rsync}."
+
+#. type: item
+#: doc/guix.texi:13017
+#, no-wrap
+msgid "@code{group} (default: @var{\"root\"})"
+msgstr "@code{group} (predeterminado: @var{\"root\"})"
+
+#. type: table
+#: doc/guix.texi:13019
+msgid "Group of the @code{rsync} process."
+msgstr "Grupo del proceso @code{rsync}."
+
+#. type: item
+#: doc/guix.texi:13020
+#, no-wrap
+msgid "@code{uid} (default: @var{\"rsyncd\"})"
+msgstr "@code{uid} (predeterminado: @var{\"rsyncd\"})"
+
+# FUZZY
+#. type: table
+#: doc/guix.texi:13023
+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:13024
+#, no-wrap
+msgid "@code{gid} (default: @var{\"rsyncd\"})"
+msgstr "@code{gid} (predeterminado: @var{\"rsyncd\"})"
+
+#. type: table
+#: doc/guix.texi:13026
+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:13031
+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:13031 doc/guix.texi:13070 doc/guix.texi:24610
+#, no-wrap
+msgid "SSH"
+msgstr "SSH"
+
+#. type: cindex
+#: doc/guix.texi:13032 doc/guix.texi:13071 doc/guix.texi:24611
+#, no-wrap
+msgid "SSH server"
+msgstr "servidor SSH"
+
+#. type: deffn
+#: doc/guix.texi:13034
+#, 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:13043
+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"
+"  [#:allow-empty-passwords? #f] [#:root-login? #f] @\n"
+"  [#: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."
+
+#. type: deffn
+#: doc/guix.texi:13049
+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:13053
+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:13058
+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:13062
+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:13066
+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:13068
+msgid "The other options should be self-descriptive."
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:13072
+#, no-wrap
+msgid "{Scheme Variable} openssh-service-type"
+msgstr "{Variable Scheme} openssh-service-type"
+
+#. type: deffn
+#: doc/guix.texi:13076
+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: example
+#: doc/guix.texi:13085
+#, no-wrap
+msgid ""
+"(service openssh-service-type\n"
+"         (openssh-configuration\n"
+"           (x11-forwarding? #t)\n"
+"           (permit-root-login 'without-password)\n"
+"           (authorized-keys\n"
+"             `((\"alice\" ,(local-file \"alice.pub\"))\n"
+"               (\"bob\" ,(local-file \"bob.pub\"))))))\n"
+msgstr ""
+"(service openssh-service-type\n"
+"         (openssh-configuration\n"
+"           (x11-forwarding? #t)\n"
+"           (permit-root-login 'without-password)\n"
+"           (authorized-keys\n"
+"             `((\"alicia\" ,(local-file \"alicia.pub\"))\n"
+"               (\"rober\" ,(local-file \"rober.pub\"))))))\n"
+
+#. type: deffn
+#: doc/guix.texi:13088
+msgid "See below for details about @code{openssh-configuration}."
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:13091
+msgid "This service can be extended with extra authorized keys, as in this example:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:13096
+#, no-wrap
+msgid ""
+"(service-extension openssh-service-type\n"
+"                   (const `((\"charlie\"\n"
+"                             ,(local-file \"charlie.pub\")))))\n"
+msgstr ""
+"(service-extension openssh-service-type\n"
+"                   (const `((\"carlos\"\n"
+"                             ,(local-file \"carlos.pub\")))))\n"
+
+#. type: deftp
+#: doc/guix.texi:13099
+#, no-wrap
+msgid "{Data Type} openssh-configuration"
+msgstr "{Tipo de datos} openssh-configuration"
+
+#. type: deftp
+#: doc/guix.texi:13101
+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:13103
+#, 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:13105
+msgid "Name of the file where @command{sshd} writes its PID."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13106
+#, no-wrap
+msgid "@code{port-number} (default: @code{22})"
+msgstr "@code{port-number} (predeterminado: @code{22})"
+
+# FUZZY
+#. type: table
+#: doc/guix.texi:13108
+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:13109
+#, no-wrap
+msgid "@code{permit-root-login} (default: @code{#f})"
+msgstr "@code{permit-root-login} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:13114
+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:13115 doc/guix.texi:13276
+#, no-wrap
+msgid "@code{allow-empty-passwords?} (default: @code{#f})"
+msgstr "@code{allow-empty-passwords?} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:13118
+msgid "When true, users with empty passwords may log in.  When false, they may not."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13119 doc/guix.texi:13279
+#, no-wrap
+msgid "@code{password-authentication?} (default: @code{#t})"
+msgstr "@code{password-authentication?} (predeterminado: @code{#t})"
+
+#. type: table
+#: doc/guix.texi:13122
+msgid "When true, users may log in with their password.  When false, they have other authentication methods."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13123
+#, no-wrap
+msgid "@code{public-key-authentication?} (default: @code{#t})"
+msgstr "@code{public-key-authentication?} (predeterminado: @code{#t})"
+
+#. type: table
+#: doc/guix.texi:13126
+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:13129
+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:13130
+#, no-wrap
+msgid "@code{x11-forwarding?} (default: @code{#f})"
+msgstr "@code{x11-forwarding?} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:13134
+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:13135
+#, no-wrap
+msgid "@code{allow-agent-forwarding?} (default: @code{#t})"
+msgstr "@code{allow-agent-forwarding?} (predeterminado: @code{#t})"
+
+#. type: table
+#: doc/guix.texi:13137
+msgid "Whether to allow agent forwarding."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13138
+#, no-wrap
+msgid "@code{allow-tcp-forwarding?} (default: @code{#t})"
+msgstr "@code{allow-tcp-forwarding?} (predeterminado: @code{#t})"
+
+#. type: table
+#: doc/guix.texi:13140
+msgid "Whether to allow TCP forwarding."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13141
+#, no-wrap
+msgid "@code{gateway-ports?} (default: @code{#f})"
+msgstr "@code{gateway-ports?} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:13143
+msgid "Whether to allow gateway ports."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13144
+#, no-wrap
+msgid "@code{challenge-response-authentication?} (default: @code{#f})"
+msgstr "@code{challenge-response-authentication?} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:13147
+msgid "Specifies whether challenge response authentication is allowed (e.g.@: via PAM)."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13148
+#, no-wrap
+msgid "@code{use-pam?} (default: @code{#t})"
+msgstr "@code{use-pam?} (predeterminado: @code{#t})"
+
+#. type: table
+#: doc/guix.texi:13154
+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:13159
+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:13160
+#, no-wrap
+msgid "@code{print-last-log?} (default: @code{#t})"
+msgstr "@code{print-last-log?} (predeterminado: @code{#t})"
+
+#. type: table
+#: doc/guix.texi:13163
+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:13164
+#, no-wrap
+msgid "@code{subsystems} (default: @code{'((\"sftp\" \"internal-sftp\"))})"
+msgstr "@code{subsystems} (predeterminados: @code{'((\"sftp\" \"internal-sftp\"))})"
+
+#. type: table
+#: doc/guix.texi:13166
+msgid "Configures external subsystems (e.g.@: file transfer daemon)."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:13170
+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:13173
+msgid "The command @command{internal-sftp} implements an in-process SFTP server.  Alternately, one can specify the @command{sftp-server} command:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:13178
+#, no-wrap
+msgid ""
+"(service openssh-service-type\n"
+"         (openssh-configuration\n"
+"          (subsystems\n"
+"           `((\"sftp\" ,(file-append openssh \"/libexec/sftp-server\"))))))\n"
+msgstr ""
+"(service openssh-service-type\n"
+"         (openssh-configuration\n"
+"          (subsystems\n"
+"           `((\"sftp\" ,(file-append openssh \"/libexec/sftp-server\"))))))\n"
+
+#. type: item
+#: doc/guix.texi:13180
+#, no-wrap
+msgid "@code{accepted-environment} (default: @code{'()})"
+msgstr "@code{accepted-environment} (predeterminado: @code{'()})"
+
+#. type: table
+#: doc/guix.texi:13182
+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:13185
+msgid "Each string gets on its own line.  See the @code{AcceptEnv} option in @code{man sshd_config}."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:13190
+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 ""
+
+#. type: example
+#: doc/guix.texi:13195
+#, no-wrap
+msgid ""
+"(service openssh-service-type\n"
+"         (openssh-configuration\n"
+"           (accepted-environment '(\"COLORTERM\"))))\n"
+msgstr ""
+"(service openssh-service-type\n"
+"         (openssh-configuration\n"
+"           (accepted-environment '(\"COLORTERM\"))))\n"
+
+#. type: item
+#: doc/guix.texi:13197
+#, no-wrap
+msgid "@code{authorized-keys} (default: @code{'()})"
+msgstr "@code{authorized-keys} (predeterminadas: @code{'()})"
+
+#. type: cindex
+#: doc/guix.texi:13198
+#, no-wrap
+msgid "authorized keys, SSH"
+msgstr "claves autorizadas, SSH"
+
+#. type: cindex
+#: doc/guix.texi:13199
+#, no-wrap
+msgid "SSH authorized keys"
+msgstr "SSH, claves autorizadas"
+
+#. type: table
+#: doc/guix.texi:13203
+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: example
+#: doc/guix.texi:13210
+#, no-wrap
+msgid ""
+"(openssh-configuration\n"
+"  (authorized-keys\n"
+"    `((\"rekado\" ,(local-file \"rekado.pub\"))\n"
+"      (\"chris\" ,(local-file \"chris.pub\"))\n"
+"      (\"root\" ,(local-file \"rekado.pub\") ,(local-file \"chris.pub\")))))\n"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:13215
+msgid "registers the specified public keys for user accounts @code{rekado}, @code{chris}, and @code{root}."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:13218
+msgid "Additional authorized keys can be specified @i{via} @code{service-extension}."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:13221
+msgid "Note that this does @emph{not} interfere with the use of @file{~/.ssh/authorized_keys}."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13222
+#, no-wrap
+msgid "@code{log-level} (default: @code{'info})"
+msgstr "@code{log-level} (predeterminado: @code{'info})"
+
+#. type: table
+#: doc/guix.texi:13226
+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:13227 doc/guix.texi:18808
+#, no-wrap
+msgid "@code{extra-content} (default: @code{\"\"})"
+msgstr "@code{extra-content} (predeterminado: @code{\"\"})"
+
+#. type: table
+#: doc/guix.texi:13232
+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: example
+#: doc/guix.texi:13238
+#, no-wrap
+msgid ""
+"(openssh-configuration\n"
+"  (extra-content \"\\\n"
+"Match Address 192.168.0.1\n"
+"  PermitRootLogin yes\"))\n"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:13243
+#, no-wrap
+msgid "{Scheme Procedure} dropbear-service [@var{config}]"
+msgstr "{Procedimiento Scheme} dropbear-service [@var{config}]"
+
+#. type: deffn
+#: doc/guix.texi:13247
+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:13250
+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: example
+#: doc/guix.texi:13254
+#, no-wrap
+msgid ""
+"(dropbear-service (dropbear-configuration\n"
+"                    (port-number 1234)))\n"
+msgstr ""
+"(dropbear-service (dropbear-configuration\n"
+"                    (port-number 1234)))\n"
+
+#. type: deftp
+#: doc/guix.texi:13257
+#, no-wrap
+msgid "{Data Type} dropbear-configuration"
+msgstr "{Tipo de datos} dropbear-configuration"
+
+#. type: deftp
+#: doc/guix.texi:13259
+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:13261
+#, no-wrap
+msgid "@code{dropbear} (default: @var{dropbear})"
+msgstr "@code{dropbear} (predeterminado: @var{dropbear})"
+
+#. type: table
+#: doc/guix.texi:13263
+msgid "The Dropbear package to use."
+msgstr "El paquete de Dropbear usado."
+
+#. type: item
+#: doc/guix.texi:13264
+#, no-wrap
+msgid "@code{port-number} (default: 22)"
+msgstr "@code{port-number} (predeterminado: 22)"
+
+#. type: table
+#: doc/guix.texi:13266
+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:13267
+#, no-wrap
+msgid "@code{syslog-output?} (default: @code{#t})"
+msgstr "@code{syslog-output?} (predeterminado: @code{#t})"
+
+#. type: table
+#: doc/guix.texi:13269
+msgid "Whether to enable syslog output."
+msgstr "Determina si habilitar la salida a syslog."
+
+#. type: item
+#: doc/guix.texi:13270
+#, 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:13272
+msgid "File name of the daemon's PID file."
+msgstr "El nombre de fichero del fichero de PID del daemon."
+
+#. type: item
+#: doc/guix.texi:13273
+#, no-wrap
+msgid "@code{root-login?} (default: @code{#f})"
+msgstr "@code{root-login?} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:13275
+msgid "Whether to allow @code{root} logins."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:13278
+msgid "Whether to allow empty passwords."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:13281
+msgid "Whether to enable password-based authentication."
+msgstr "Determina si se usará identificación basada en contraseña."
+
+#. type: defvr
+#: doc/guix.texi:13284
+#, no-wrap
+msgid "{Scheme Variable} %facebook-host-aliases"
+msgstr "{Variable Scheme} %facebook-host-aliases"
+
+#. type: defvr
+#: doc/guix.texi:13290
+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:13294
+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: example
+#: doc/guix.texi:13307
+#, no-wrap
+msgid ""
+"(operating-system\n"
+"  (host-name \"mymachine\")\n"
+"  ;; ...\n"
+"  (hosts-file\n"
+"    ;; Create a /etc/hosts file with aliases for \"localhost\"\n"
+"    ;; and \"mymachine\", as well as for Facebook servers.\n"
+"    (plain-file \"hosts\"\n"
+"                (string-append (local-host-aliases host-name)\n"
+"                               %facebook-host-aliases))))\n"
+msgstr ""
+"(operating-system\n"
+"  (host-name \"micompu\")\n"
+"  ;; ...\n"
+"  (hosts-file\n"
+"    ;; Crea un fichero /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:13311
+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:13314
+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:13315
+#, no-wrap
+msgid "{Scheme Variable} avahi-service-type"
+msgstr "{Variable Scheme} avahi-service-type"
+
+#. type: defvr
+#: doc/guix.texi:13320
+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{http://avahi.org/}).  Its value must be a @code{zero-configuration} record---see below."
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:13325
+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 ""
+
+#. type: defvr
+#: doc/guix.texi:13328
+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:13330
+#, no-wrap
+msgid "{Data Type} avahi-configuration"
+msgstr "{Tipo de datos} avahi-configuration"
+
+#. type: deftp
+#: doc/guix.texi:13332
+msgid "Data type representation the configuration for Avahi."
+msgstr "Tipo de datos que representa la configuración de Avahi."
+
+#. type: item
+#: doc/guix.texi:13335
+#, no-wrap
+msgid "@code{host-name} (default: @code{#f})"
+msgstr "@code{host-name} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:13338
+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:13339
+#, no-wrap
+msgid "@code{publish?} (default: @code{#t})"
+msgstr "@code{publish?} (predeterminado: @code{#t})"
+
+#. type: table
+#: doc/guix.texi:13342
+msgid "When true, allow host names and services to be published (broadcast) over the network."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13343
+#, no-wrap
+msgid "@code{publish-workstation?} (default: @code{#t})"
+msgstr "@code{publish-workstation?} (predeterminado: @code{#t})"
+
+#. type: table
+#: doc/guix.texi:13347
+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:13350
+#, no-wrap
+msgid "avahi-browse _workstation._tcp\n"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13352
+#, no-wrap
+msgid "@code{wide-area?} (default: @code{#f})"
+msgstr "@code{wide-area?} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:13354
+msgid "When true, DNS-SD over unicast DNS is enabled."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13355
+#, no-wrap
+msgid "@code{ipv4?} (default: @code{#t})"
+msgstr "@code{ipv4?} (predeterminado: @code{#t})"
+
+#. type: itemx
+#: doc/guix.texi:13356
+#, no-wrap
+msgid "@code{ipv6?} (default: @code{#t})"
+msgstr "@code{ipv6?} (predeterminado: @code{#t})"
+
+#. type: table
+#: doc/guix.texi:13358
+msgid "These fields determine whether to use IPv4/IPv6 sockets."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13359
+#, no-wrap
+msgid "@code{domains-to-browse} (default: @code{'()})"
+msgstr "@code{domains-to-browse} (predeterminado: @code{'()})"
+
+#. type: table
+#: doc/guix.texi:13361
+msgid "This is a list of domains to browse."
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:13364
+#, no-wrap
+msgid "{Scheme Variable} openvswitch-service-type"
+msgstr "{Variable Scheme} openvswitch-service-type"
+
+#. type: deffn
+#: doc/guix.texi:13368
+msgid "This is the type of the @uref{http://www.openvswitch.org, Open vSwitch} service, whose value should be an @code{openvswitch-configuration} object."
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:13370
+#, no-wrap
+msgid "{Data Type} openvswitch-configuration"
+msgstr "{Tipo de datos} openvswitch-configuration"
+
+#. type: deftp
+#: doc/guix.texi:13374
+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:13376
+#, no-wrap
+msgid "@code{package} (default: @var{openvswitch})"
+msgstr "@code{package} (predeterminado: @var{openvswitch})"
+
+#. type: table
+#: doc/guix.texi:13378
+msgid "Package object of the Open vSwitch."
+msgstr "El objeto paquete de Open vSwitch."
+
+#. type: cindex
+#: doc/guix.texi:13385
+#, no-wrap
+msgid "X11"
+msgstr "X11"
+
+# XXX: Dudas de traducción...
+#. type: cindex
+#: doc/guix.texi:13386
+#, no-wrap
+msgid "X Window System"
+msgstr "Sistema de ventanas X"
+
+#. type: cindex
+#: doc/guix.texi:13387 doc/guix.texi:13603
+#, no-wrap
+msgid "login manager"
+msgstr "gestor de ingreso en el sistema"
+
+#. type: Plain text
+#: doc/guix.texi:13392
+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:13393
+#, no-wrap
+msgid "GDM"
+msgstr "GDM"
+
+#. type: cindex
+#: doc/guix.texi:13394
+#, no-wrap
+msgid "GNOME, login manager"
+msgstr "GNOME, gestor de ingreso al sistema"
+
+#. type: Plain text
+#: doc/guix.texi:13398
+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:13399
+#, no-wrap
+msgid "window manager"
+msgstr "gestor de ventanas"
+
+#. type: Plain text
+#: doc/guix.texi:13404
+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:13405
+#, no-wrap
+msgid "{Scheme Variable} gdm-service-type"
+msgstr "{Variable Scheme} gdm-service-type"
+
+#. type: defvr
+#: doc/guix.texi:13410
+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:13411
+#, no-wrap
+msgid "session types (X11)"
+msgstr "tipos de sesión (X11)"
+
+#. type: cindex
+#: doc/guix.texi:13412
+#, no-wrap
+msgid "X11 session types"
+msgstr "X11, tipos de sesión"
+
+#. type: defvr
+#: doc/guix.texi:13418
+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:13422
+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:13424
+#, no-wrap
+msgid "{Data Type} gdm-configuration"
+msgstr "{Tipo de datos} gdm-configuration"
+
+#. type: item
+#: doc/guix.texi:13426 doc/guix.texi:13465
+#, no-wrap
+msgid "@code{auto-login?} (default: @code{#f})"
+msgstr "@code{auto-login?} (predeterminado: @code{#f})"
+
+#. type: itemx
+#: doc/guix.texi:13427
+#, no-wrap
+msgid "@code{default-user} (default: @code{#f})"
+msgstr "@code{default-user} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:13429
+msgid "When @code{auto-login?} is false, GDM presents a log-in screen."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:13432
+msgid "When @code{auto-login?} is true, GDM logs in directly as @code{default-user}."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13433
+#, no-wrap
+msgid "@code{gnome-shell-assets} (default: ...)"
+msgstr "@code{gnome-shell-assets} (predeterminados: ...)"
+
+#. type: table
+#: doc/guix.texi:13435
+msgid "List of GNOME Shell assets needed by GDM: icon theme, fonts, etc."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13436
+#, no-wrap
+msgid "@code{xorg-configuration} (default: @code{(xorg-configuration)})"
+msgstr "@code{xorg-configuration} (predeterminada: @code{(xorg-configuration)})"
+
+#. type: table
+#: doc/guix.texi:13438 doc/guix.texi:13492 doc/guix.texi:13569
+msgid "Configuration of the Xorg graphical server."
+msgstr "Configuración del servidor gráfico Xorg."
+
+#. type: item
+#: doc/guix.texi:13439
+#, no-wrap
+msgid "@code{xsession} (default: @code{(xinitrc)})"
+msgstr "@code{xsession} (predeterminado: @code{(xinitrc)})"
+
+#. type: table
+#: doc/guix.texi:13441 doc/guix.texi:13584
+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:13442
+#, 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:13444
+msgid "File name of the @code{dbus-daemon} executable."
+msgstr "El nombre de fichero del ejecutable @code{dbus-daemon}."
+
+#. type: item
+#: doc/guix.texi:13445
+#, no-wrap
+msgid "@code{gdm} (default: @code{gdm})"
+msgstr "@code{gdm} (predeterminado: @code{gdm})"
+
+#. type: table
+#: doc/guix.texi:13447
+msgid "The GDM package to use."
+msgstr "El paquete GDM usado."
+
+#. type: defvr
+#: doc/guix.texi:13450
+#, no-wrap
+msgid "{Scheme Variable} slim-service-type"
+msgstr "{Variable Scheme} slim-service-type"
+
+# FUZZY
+#. type: defvr
+#: doc/guix.texi:13452
+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."
+
+#. type: defvr
+#: doc/guix.texi:13456
+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: deftp
+#: doc/guix.texi:13458
+#, no-wrap
+msgid "{Data Type} slim-configuration"
+msgstr "{Tipo de datos} slim-configuration"
+
+#. type: deftp
+#: doc/guix.texi:13460
+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:13464
+msgid "Whether to allow logins with empty passwords."
+msgstr ""
+
+#. type: itemx
+#: doc/guix.texi:13466
+#, no-wrap
+msgid "@code{default-user} (default: @code{\"\"})"
+msgstr "@code{default-user} (predeterminado: @code{\"\"})"
+
+#. type: table
+#: doc/guix.texi:13468
+msgid "When @code{auto-login?} is false, SLiM presents a log-in screen."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:13471
+msgid "When @code{auto-login?} is true, SLiM logs in directly as @code{default-user}."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13472
+#, no-wrap
+msgid "@code{theme} (default: @code{%default-slim-theme})"
+msgstr "@code{theme} (predeterminado: @code{%default-slim-theme})"
+
+#. type: itemx
+#: doc/guix.texi:13473
+#, 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:13475
+msgid "The graphical theme to use and its name."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13476
+#, no-wrap
+msgid "@code{auto-login-session} (default: @code{#f})"
+msgstr "@code{auto-login-session} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:13479
+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:13483
+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:13488
+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:13490 doc/guix.texi:13567
+#, no-wrap
+msgid "@code{xorg-configuration} (default @code{(xorg-configuration)})"
+msgstr "@code{xorg-configuration} (predeterminada @code{(xorg-configuration)})"
+
+#. type: item
+#: doc/guix.texi:13493
+#, no-wrap
+msgid "@code{xauth} (default: @code{xauth})"
+msgstr "@code{xauth} (predeterminado: @code{xauth})"
+
+#. type: table
+#: doc/guix.texi:13495
+msgid "The XAuth package to use."
+msgstr "El paquete XAuth usado."
+
+#. type: item
+#: doc/guix.texi:13496
+#, no-wrap
+msgid "@code{shepherd} (default: @code{shepherd})"
+msgstr "@code{shepherd} (predeterminado: @code{shepherd})"
+
+#. type: table
+#: doc/guix.texi:13499
+msgid "The Shepherd package used when invoking @command{halt} and @command{reboot}."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13500
+#, no-wrap
+msgid "@code{sessreg} (default: @code{sessreg})"
+msgstr "@code{sessreg} (predeterminado: @code{sessreg})"
+
+#. type: table
+#: doc/guix.texi:13502
+msgid "The sessreg package used in order to register the session."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13503
+#, no-wrap
+msgid "@code{slim} (default: @code{slim})"
+msgstr "@code{slim} (predeterminado: @code{slim})"
+
+#. type: table
+#: doc/guix.texi:13505
+msgid "The SLiM package to use."
+msgstr "El paquete SLiM usado."
+
+#. type: defvr
+#: doc/guix.texi:13508 doc/guix.texi:24077
+#, no-wrap
+msgid "{Scheme Variable} %default-theme"
+msgstr "{Variable Scheme} %default-theme"
+
+#. type: defvrx
+#: doc/guix.texi:13509
+#, no-wrap
+msgid "{Scheme Variable} %default-theme-name"
+msgstr "{Variable Scheme} %default-theme-name"
+
+#. type: defvr
+#: doc/guix.texi:13511
+msgid "The default SLiM theme and its name."
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:13514
+#, no-wrap
+msgid "{Data Type} sddm-configuration"
+msgstr "{Tipo de datos} sddm-configuration"
+
+#. type: deftp
+#: doc/guix.texi:13516
+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."
+
+#. type: item
+#: doc/guix.texi:13518
+#, no-wrap
+msgid "@code{display-server} (default: \"x11\")"
+msgstr "@code{display-server} (predeterminado: \"x11\")"
+
+#. type: table
+#: doc/guix.texi:13521
+msgid "Select display server to use for the greeter. Valid values are \"x11\" or \"wayland\"."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13522
+#, no-wrap
+msgid "@code{numlock} (default: \"on\")"
+msgstr "@code{numlock} (predeterminado: \"on\")"
+
+#. type: table
+#: doc/guix.texi:13524
+msgid "Valid values are \"on\", \"off\" or \"none\"."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13525
+#, 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:13527
+msgid "Command to run when halting."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13528
+#, 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:13530
+msgid "Command to run when rebooting."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13531
+#, no-wrap
+msgid "@code{theme} (default \"maldives\")"
+msgstr "@code{theme} (predeterminado \"maldives\")"
+
+#. type: table
+#: doc/guix.texi:13533
+msgid "Theme to use. Default themes provided by SDDM are \"elarun\" or \"maldives\"."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13534
+#, 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:13536
+msgid "Directory to look for themes."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13537
+#, 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\")"
+
+#. type: table
+#: doc/guix.texi:13539
+msgid "Directory to look for faces."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13540
+#, 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:13542
+msgid "Default PATH to use."
+msgstr "El valor predeterminado del PATH."
+
+#. type: item
+#: doc/guix.texi:13543
+#, no-wrap
+msgid "@code{minimum-uid} (default 1000)"
+msgstr "@code{minimum-uid} (predeterminado 1000)"
+
+#. type: table
+#: doc/guix.texi:13545
+msgid "Minimum UID to display in SDDM."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13546
+#, no-wrap
+msgid "@code{maximum-uid} (default 2000)"
+msgstr "@code{maximum-uid} (predeterminado 2000)"
+
+#. type: table
+#: doc/guix.texi:13548
+msgid "Maximum UID to display in SDDM"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13549
+#, no-wrap
+msgid "@code{remember-last-user?} (default #t)"
+msgstr "@code{remember-last-user?} (predeterminado #t)"
+
+#. type: table
+#: doc/guix.texi:13551
+msgid "Remember last user."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13552
+#, no-wrap
+msgid "@code{remember-last-session?} (default #t)"
+msgstr "@code{remember-last-session?} (predeterminado #t)"
+
+#. type: table
+#: doc/guix.texi:13554
+msgid "Remember last session."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13555
+#, no-wrap
+msgid "@code{hide-users} (default \"\")"
+msgstr "@code{hide-users} (predeterminado \"\")"
+
+#. type: table
+#: doc/guix.texi:13557
+msgid "Usernames to hide from SDDM greeter."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13558
+#, 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:13560
+msgid "Users with shells listed will be hidden from the SDDM greeter."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13561
+#, 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:13563
+msgid "Script to run before starting a wayland session."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13564
+#, 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:13566
+msgid "Directory to look for desktop files starting wayland sessions."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13570
+#, 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:13572
+msgid "Path to xauth."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13573
+#, 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:13575
+msgid "Path to Xephyr."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13576
+#, 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:13578
+msgid "Script to run after starting xorg-server."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13579
+#, 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:13581
+msgid "Script to run before stopping xorg-server."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13582
+#, no-wrap
+msgid "@code{xsession-command} (default: @code{xinitrc})"
+msgstr "@code{xsession-command} (predeterminado: @code{xinitrc})"
+
+#. type: item
+#: doc/guix.texi:13585
+#, 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:13587
+msgid "Directory to look for desktop files starting X sessions."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13588
+#, no-wrap
+msgid "@code{minimum-vt} (default: 7)"
+msgstr "@code{minimum-vt} (predeterminado: 7)"
+
+#. type: table
+#: doc/guix.texi:13590
+msgid "Minimum VT to use."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13591
+#, no-wrap
+msgid "@code{auto-login-user} (default \"\")"
+msgstr "@code{auto-login-user} (predeterminado \"\")"
+
+#. type: table
+#: doc/guix.texi:13593
+msgid "User to use for auto-login."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13594
+#, no-wrap
+msgid "@code{auto-login-session} (default \"\")"
+msgstr "@code{auto-login-session} (predeterminado \"\")"
+
+#. type: table
+#: doc/guix.texi:13596
+msgid "Desktop file to use for auto-login."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13597
+#, no-wrap
+msgid "@code{relogin?} (default #f)"
+msgstr "@code{relogin?} (predeterminado #f)"
+
+#. type: table
+#: doc/guix.texi:13599
+msgid "Relogin after logout."
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:13604
+#, no-wrap
+msgid "X11 login"
+msgstr "X11, ingreso al sistema"
+
+#. type: deffn
+#: doc/guix.texi:13605
+#, no-wrap
+msgid "{Scheme Procedure} sddm-service config"
+msgstr "{Procedimiento Scheme} sddm-service config"
+
+#. type: deffn
+#: doc/guix.texi:13608
+msgid "Return a service that spawns the SDDM graphical login manager for config of type @code{<sddm-configuration>}."
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:13613
+#, no-wrap
+msgid ""
+"  (sddm-service (sddm-configuration\n"
+"                 (auto-login-user \"Alice\")\n"
+"                 (auto-login-session \"xfce.desktop\")))\n"
+msgstr ""
+"  (sddm-service (sddm-configuration\n"
+"                 (auto-login-user \"Alicia\")\n"
+"                 (auto-login-session \"xfce.desktop\")))\n"
+
+#. type: cindex
+#: doc/guix.texi:13616
+#, no-wrap
+msgid "Xorg, configuration"
+msgstr "Xorg, configuración"
+
+#. type: deftp
+#: doc/guix.texi:13617
+#, no-wrap
+msgid "{Data Type} xorg-configuration"
+msgstr "{Tipo de datos} xorg-configuration"
+
+#. type: deftp
+#: doc/guix.texi:13622
+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 ""
+
+#. type: item
+#: doc/guix.texi:13624
+#, no-wrap
+msgid "@code{modules} (default: @code{%default-xorg-modules})"
+msgstr "@code{modules} (predeterminados: @code{%default-xorg-modules})"
+
+#. type: table
+#: doc/guix.texi:13627
+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:13628
+#, no-wrap
+msgid "@code{fonts} (default: @code{%default-xorg-fonts})"
+msgstr "@code{fonts} (predeterminadas: @code{%default-xorg-fonts})"
+
+#. type: table
+#: doc/guix.texi:13630
+msgid "This is a list of font directories to add to the server's @dfn{font path}."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13631
+#, no-wrap
+msgid "@code{drivers} (default: @code{'()})"
+msgstr "@code{drivers} (predeterminados: @code{'()})"
+
+#. type: table
+#: doc/guix.texi:13635
+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:13636
+#, no-wrap
+msgid "@code{resolutions} (default: @code{'()})"
+msgstr "@code{resolutions} (predeterminadas: @code{'()})"
+
+#. type: table
+#: doc/guix.texi:13640
+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:13641
+#, no-wrap
+msgid "keyboard layout, for Xorg"
+msgstr "distribución de teclado, para Xorg"
+
+#. type: cindex
+#: doc/guix.texi:13642
+#, no-wrap
+msgid "keymap, for Xorg"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:13646
+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:13650
+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:13651
+#, no-wrap
+msgid "@code{extra-config} (default: @code{'()})"
+msgstr "@code{extra-config} (predeterminada: @code{'()})"
+
+#. type: table
+#: doc/guix.texi:13654
+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:13655
+#, no-wrap
+msgid "@code{server} (default: @code{xorg-server})"
+msgstr "@code{server} (predeterminado: @code{xorg-server})"
+
+#. type: table
+#: doc/guix.texi:13657
+msgid "This is the package providing the Xorg server."
+msgstr "Este es el paquete que proporciona el servidor Xorg."
+
+#. type: item
+#: doc/guix.texi:13658
+#, 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:13661
+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:13664
+#, no-wrap
+msgid "{Scheme Procedure} set-xorg-configuration @var{config} @"
+msgstr "{Procedimiento Scheme} set-xorg-configuration @var{config} @"
+
+#. type: deffn
+#: doc/guix.texi:13668
+msgid "[@var{login-manager-service-type}] Tell the log-in manager (of type @var{login-manager-service-type}) to use @var{config}, an <xorg-configuration> record."
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:13672
+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:13674
+#, no-wrap
+msgid "{Scheme Procedure} xorg-start-command [@var{config}]"
+msgstr "{Procedimiento Scheme} xorg-start-command [@var{config}]"
+
+#. type: deffn
+#: doc/guix.texi:13678
+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:13680
+msgid "Usually the X server is started by a login manager."
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:13683
+#, 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:13687
+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:13690
+#, no-wrap
+msgid "(screen-locker-service xlockmore \"xlock\")\n"
+msgstr "(screen-locker-service xlockmore \"xlock\")\n"
+
+#. type: deffn
+#: doc/guix.texi:13693
+msgid "makes the good ol' XlockMore usable."
+msgstr "permite usar el viejo XlockMore."
+
+# FUZZY
+# TODO (MAAV): Soporte...
+#. type: cindex
+#: doc/guix.texi:13699
+#, no-wrap
+msgid "printer support with CUPS"
+msgstr "soporte de impresión con CUPS"
+
+# FUZZY
+# TODO (MAAV): Soporte...
+#. type: Plain text
+#: doc/guix.texi:13703
+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:"
+
+#. type: deffn
+#: doc/guix.texi:13704
+#, no-wrap
+msgid "{Scheme Variable} cups-service-type"
+msgstr "{Variable Scheme} cups-service-type"
+
+#. type: deffn
+#: doc/guix.texi:13708
+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: example
+#: doc/guix.texi:13710
+#, no-wrap
+msgid "(service cups-service-type)\n"
+msgstr "(service cups-service-type)\n"
+
+#. type: Plain text
+#: doc/guix.texi:13720
+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:13725
+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: example
+#: doc/guix.texi:13732
+#, no-wrap
+msgid ""
+"(service cups-service-type\n"
+"         (cups-configuration\n"
+"           (web-interface? #t)\n"
+"           (extensions\n"
+"             (list cups-filters escpr hplip-minimal))))\n"
+msgstr ""
+"(service cups-service-type\n"
+"         (cups-configuration\n"
+"           (web-interface? #t)\n"
+"           (extensions\n"
+"             (list cups-filters escpr hplip-minimal))))\n"
+
+#. type: Plain text
+#: doc/guix.texi:13737
+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:13744
+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:13755
+msgid "Available @code{cups-configuration} fields are:"
+msgstr "Los campos disponibles de @code{cups-configuration} son:"
+
+#. type: deftypevr
+#: doc/guix.texi:13756
+#, fuzzy, no-wrap
+msgid "{@code{cups-configuration} parameter} package cups"
+msgstr "{parámetro de @code{cups-configuration}} package cups"
+
+#. type: deftypevr
+#: doc/guix.texi:13758 doc/guix.texi:14515
+msgid "The CUPS package."
+msgstr "El paquete CUPS."
+
+#. type: deftypevr
+#: doc/guix.texi:13760
+#, fuzzy, no-wrap
+msgid "{@code{cups-configuration} parameter} package-list extensions"
+msgstr "{parámetro de @code{cups-configuration}} package-list extensions"
+
+#. type: deftypevr
+#: doc/guix.texi:13762
+msgid "Drivers and other extensions to the CUPS package."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:13764
+#, fuzzy, no-wrap
+msgid "{@code{cups-configuration} parameter} files-configuration files-configuration"
+msgstr "{parámetro de @code{cups-configuration}} files-configuration files-configuration"
+
+#. type: deftypevr
+#: doc/guix.texi:13767
+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:13769
+msgid "Available @code{files-configuration} fields are:"
+msgstr "Los campos disponibles de @code{files-configuration} son:"
+
+#. type: deftypevr
+#: doc/guix.texi:13770
+#, fuzzy, no-wrap
+msgid "{@code{files-configuration} parameter} log-location access-log"
+msgstr "{parámetro de @code{files-configuration}} log-location access-log"
+
+#. type: deftypevr
+#: doc/guix.texi:13778
+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:13780
+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:13782
+#, fuzzy, no-wrap
+msgid "{@code{files-configuration} parameter} file-name cache-dir"
+msgstr "{parámetro de @code{files-configuration}} file-name cache-dir"
+
+#. type: deftypevr
+#: doc/guix.texi:13784
+msgid "Where CUPS should cache data."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:13786
+msgid "Defaults to @samp{\"/var/cache/cups\"}."
+msgstr "El valor predeterminado es @samp{\"/var/cache/cups\"}."
+
+#. type: deftypevr
+#: doc/guix.texi:13788
+#, fuzzy, 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:13791
+msgid "Specifies the permissions for all configuration files that the scheduler writes."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:13797
+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:13799
+msgid "Defaults to @samp{\"0640\"}."
+msgstr "El valor predeterminado es @samp{\"0640\"}."
+
+#. type: deftypevr
+#: doc/guix.texi:13801
+#, fuzzy, no-wrap
+msgid "{@code{files-configuration} parameter} log-location error-log"
+msgstr "{parámetro de @code{files-configuration}} log-location error-log"
+
+#. type: deftypevr
+#: doc/guix.texi:13809
+msgid "Defines the error 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-error_log}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:13811
+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:13813
+#, fuzzy, no-wrap
+msgid "{@code{files-configuration} parameter} string fatal-errors"
+msgstr "{parámetro de @code{files-configuration}} string fatal-errors"
+
+#. type: deftypevr
+#: doc/guix.texi:13816
+msgid "Specifies which errors are fatal, causing the scheduler to exit.  The kind strings are:"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:13820
+msgid "No errors are fatal."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:13823
+msgid "All of the errors below are fatal."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13824
+#, no-wrap
+msgid "browse"
+msgstr "browse"
+
+#. type: table
+#: doc/guix.texi:13827
+msgid "Browsing initialization errors are fatal, for example failed connections to the DNS-SD daemon."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13828
+#, no-wrap
+msgid "config"
+msgstr "config"
+
+# FUZZY
+#. type: table
+#: doc/guix.texi:13830
+msgid "Configuration file syntax errors are fatal."
+msgstr "Los errores de sintaxis en el fichero de configuración son fatales."
+
+#. type: item
+#: doc/guix.texi:13831
+#, no-wrap
+msgid "listen"
+msgstr "listen"
+
+#. type: table
+#: doc/guix.texi:13834
+msgid "Listen or Port errors are fatal, except for IPv6 failures on the loopback or @code{any} addresses."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13835
+#, no-wrap
+msgid "log"
+msgstr "log"
+
+#. type: table
+#: doc/guix.texi:13837
+msgid "Log file creation or write errors are fatal."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13838
+#, no-wrap
+msgid "permissions"
+msgstr "permissions"
+
+#. type: table
+#: doc/guix.texi:13841
+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:13844
+msgid "Defaults to @samp{\"all -browse\"}."
+msgstr "El valor predeterminado es @samp{\"all -browse\"}."
+
+#. type: deftypevr
+#: doc/guix.texi:13846
+#, fuzzy, no-wrap
+msgid "{@code{files-configuration} parameter} boolean file-device?"
+msgstr "{parámetro de @code{files-configuration}} boolean file-device?"
+
+#. type: deftypevr
+#: doc/guix.texi:13849
+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:13851 doc/guix.texi:13921 doc/guix.texi:13957
+#: doc/guix.texi:13969 doc/guix.texi:13975 doc/guix.texi:13991
+#: doc/guix.texi:14079 doc/guix.texi:14173 doc/guix.texi:14489
+#: doc/guix.texi:14502 doc/guix.texi:20124 doc/guix.texi:20138
+#: doc/guix.texi:20260 doc/guix.texi:20281 doc/guix.texi:20302
+#: doc/guix.texi:20309 doc/guix.texi:20354 doc/guix.texi:20361
+#: doc/guix.texi:20788 doc/guix.texi:20802 doc/guix.texi:20974
+#: doc/guix.texi:21019 doc/guix.texi:21106 doc/guix.texi:21247
+#: doc/guix.texi:21280 doc/guix.texi:21420 doc/guix.texi:21431
+#: doc/guix.texi:21681 doc/guix.texi:22323 doc/guix.texi:22332
+#: doc/guix.texi:22340 doc/guix.texi:22348 doc/guix.texi:22364
+#: doc/guix.texi:22380 doc/guix.texi:22388 doc/guix.texi:22396
+#: doc/guix.texi:22405 doc/guix.texi:22414 doc/guix.texi:22430
+#: doc/guix.texi:22494 doc/guix.texi:22600 doc/guix.texi:22608
+#: doc/guix.texi:22616 doc/guix.texi:22641 doc/guix.texi:22695
+#: doc/guix.texi:22743 doc/guix.texi:22944 doc/guix.texi:22951
+msgid "Defaults to @samp{#f}."
+msgstr "El valor predeterminado es @samp{#f}"
+
+#. type: deftypevr
+#: doc/guix.texi:13853
+#, fuzzy, no-wrap
+msgid "{@code{files-configuration} parameter} string group"
+msgstr "{parámetro de @code{files-configuration}} string group"
+
+#. type: deftypevr
+#: doc/guix.texi:13856
+msgid "Specifies the group name or ID that will be used when executing external programs."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:13858 doc/guix.texi:13938
+msgid "Defaults to @samp{\"lp\"}."
+msgstr "El valor predeterminado es @samp{\"lp\"}."
+
+#. type: deftypevr
+#: doc/guix.texi:13860
+#, fuzzy, 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:13862
+msgid "Specifies the permissions for all log files that the scheduler writes."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:13864
+msgid "Defaults to @samp{\"0644\"}."
+msgstr "El valor predeterminado es @samp{\"0644\"}."
+
+#. type: deftypevr
+#: doc/guix.texi:13866
+#, fuzzy, no-wrap
+msgid "{@code{files-configuration} parameter} log-location page-log"
+msgstr "{parámetro de @code{files-configuration}} log-location page-log"
+
+#. type: deftypevr
+#: doc/guix.texi:13874
+msgid "Defines the page 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-page_log}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:13876
+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:13878
+#, fuzzy, 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:13881
+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:13883
+msgid "Defaults to @samp{\"remroot\"}."
+msgstr "El valor predeterminado es @samp{\"remroot\"}."
+
+#. type: deftypevr
+#: doc/guix.texi:13885
+#, fuzzy, no-wrap
+msgid "{@code{files-configuration} parameter} file-name request-root"
+msgstr "{parámetro de @code{files-configuration}} file-name request-root"
+
+#. type: deftypevr
+#: doc/guix.texi:13888
+msgid "Specifies the directory that contains print jobs and other HTTP request data."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:13890
+msgid "Defaults to @samp{\"/var/spool/cups\"}."
+msgstr "El valor predeterminado es @samp{\"/var/spool/cups\"}."
+
+#. type: deftypevr
+#: doc/guix.texi:13892
+#, fuzzy, no-wrap
+msgid "{@code{files-configuration} parameter} sandboxing sandboxing"
+msgstr "{parámetro de @code{files-configuration}} sandboxing sandboxing"
+
+#. type: deftypevr
+#: doc/guix.texi:13897
+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:13899
+msgid "Defaults to @samp{strict}."
+msgstr "El valor predeterminado es @samp{strict}."
+
+#. type: deftypevr
+#: doc/guix.texi:13901
+#, fuzzy, no-wrap
+msgid "{@code{files-configuration} parameter} file-name server-keychain"
+msgstr "{parámetro de @code{files-configuration}} file-name server-keychain"
+
+#. type: deftypevr
+#: doc/guix.texi:13906
+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 ""
+
+#. type: deftypevr
+#: doc/guix.texi:13908
+msgid "Defaults to @samp{\"/etc/cups/ssl\"}."
+msgstr "El valor predeterminado es @samp{\"/etc/cups/ssl\"}."
+
+#. type: deftypevr
+#: doc/guix.texi:13910
+#, fuzzy, no-wrap
+msgid "{@code{files-configuration} parameter} file-name server-root"
+msgstr "{parámetro de @code{files-configuration}} file-name server-root"
+
+#. type: deftypevr
+#: doc/guix.texi:13912
+msgid "Specifies the directory containing the server configuration files."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:13914
+msgid "Defaults to @samp{\"/etc/cups\"}."
+msgstr "El valor predeterminado es @samp{\"/etc/cups\"}."
+
+#. type: deftypevr
+#: doc/guix.texi:13916
+#, fuzzy, 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:13919
+msgid "Specifies whether the scheduler calls fsync(2) after writing configuration or state files."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:13923
+#, fuzzy, no-wrap
+msgid "{@code{files-configuration} parameter} space-separated-string-list system-group"
+msgstr "{parámetro de @code{files-configuration}} space-separated-string-list system-group"
+
+#. type: deftypevr
+#: doc/guix.texi:13925
+msgid "Specifies the group(s) to use for @code{@@SYSTEM} group authentication."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:13927
+#, fuzzy, no-wrap
+msgid "{@code{files-configuration} parameter} file-name temp-dir"
+msgstr "{parámetro de @code{files-configuration}} file-name temp-dir"
+
+#. type: deftypevr
+#: doc/guix.texi:13929
+msgid "Specifies the directory where temporary files are stored."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:13931
+msgid "Defaults to @samp{\"/var/spool/cups/tmp\"}."
+msgstr "El valor predeterminado es @samp{\"/var/spool/cups/tmp\"}."
+
+#. type: deftypevr
+#: doc/guix.texi:13933
+#, fuzzy, no-wrap
+msgid "{@code{files-configuration} parameter} string user"
+msgstr "{parámetro de @code{files-configuration}} string user"
+
+#. type: deftypevr
+#: doc/guix.texi:13936
+msgid "Specifies the user name or ID that is used when running external programs."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:13941
+#, fuzzy, no-wrap
+msgid "{@code{cups-configuration} parameter} access-log-level access-log-level"
+msgstr "{parámetro de @code{cups-configuration}} access-log-level access-log-level"
+
+#. type: deftypevr
+#: doc/guix.texi:13948
+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:13950
+msgid "Defaults to @samp{actions}."
+msgstr "El valor predeterminado es @samp{actions}."
+
+#. type: deftypevr
+#: doc/guix.texi:13952
+#, fuzzy, no-wrap
+msgid "{@code{cups-configuration} parameter} boolean auto-purge-jobs?"
+msgstr "{parámetro de @code{cups-configuration}} boolean auto-purge-jobs?"
+
+#. type: deftypevr
+#: doc/guix.texi:13955
+msgid "Specifies whether to purge job history data automatically when it is no longer required for quotas."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:13959
+#, fuzzy, no-wrap
+msgid "{@code{cups-configuration} parameter} browse-local-protocols browse-local-protocols"
+msgstr "{parámetro de @code{cups-configuration}} browse-local-protocols browse-local-protocols"
+
+#. type: deftypevr
+#: doc/guix.texi:13961
+msgid "Specifies which protocols to use for local printer sharing."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:13963
+msgid "Defaults to @samp{dnssd}."
+msgstr "El valor predeterminado es @samp{dnssd}."
+
+#. type: deftypevr
+#: doc/guix.texi:13965
+#, fuzzy, 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:13967
+msgid "Specifies whether the CUPS web interface is advertised."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:13971
+#, fuzzy, no-wrap
+msgid "{@code{cups-configuration} parameter} boolean browsing?"
+msgstr "{parámetro de @code{cups-configuration}} boolean browsing?"
+
+#. type: deftypevr
+#: doc/guix.texi:13973
+msgid "Specifies whether shared printers are advertised."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:13977
+#, fuzzy, no-wrap
+msgid "{@code{cups-configuration} parameter} string classification"
+msgstr "{parámetro de @code{cups-configuration}} string classification"
+
+#. type: deftypevr
+#: doc/guix.texi:13982
+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:13984 doc/guix.texi:14321 doc/guix.texi:15924
+#: doc/guix.texi:15936 doc/guix.texi:17638 doc/guix.texi:17664
+#: doc/guix.texi:17700 doc/guix.texi:17765 doc/guix.texi:17804
+#: doc/guix.texi:17863 doc/guix.texi:17872 doc/guix.texi:21386
+#: doc/guix.texi:21394 doc/guix.texi:21402 doc/guix.texi:21410
+#: doc/guix.texi:21688 doc/guix.texi:22166 doc/guix.texi:22174
+#: doc/guix.texi:22182 doc/guix.texi:22290 doc/guix.texi:22315
+#: doc/guix.texi:22446 doc/guix.texi:22454 doc/guix.texi:22462
+#: doc/guix.texi:22470 doc/guix.texi:22478 doc/guix.texi:22486
+#: doc/guix.texi:22509 doc/guix.texi:22517 doc/guix.texi:22569
+#: doc/guix.texi:22585 doc/guix.texi:22593 doc/guix.texi:22632
+#: doc/guix.texi:22655 doc/guix.texi:22677 doc/guix.texi:22684
+#: doc/guix.texi:22719 doc/guix.texi:22727 doc/guix.texi:22751
+#: doc/guix.texi:22783 doc/guix.texi:22812 doc/guix.texi:22819
+#: doc/guix.texi:22826 doc/guix.texi:22834 doc/guix.texi:22848
+#: doc/guix.texi:22857 doc/guix.texi:22867 doc/guix.texi:22874
+#: doc/guix.texi:22881 doc/guix.texi:22888 doc/guix.texi:22959
+#: doc/guix.texi:22966 doc/guix.texi:22973 doc/guix.texi:22982
+#: doc/guix.texi:22998 doc/guix.texi:23005 doc/guix.texi:23012
+#: doc/guix.texi:23019 doc/guix.texi:23027 doc/guix.texi:23035
+msgid "Defaults to @samp{\"\"}."
+msgstr "El valor predeterminado es @samp{\"\"}."
+
+#. type: deftypevr
+#: doc/guix.texi:13986
+#, fuzzy, no-wrap
+msgid "{@code{cups-configuration} parameter} boolean classify-override?"
+msgstr "{parámetro de @code{cups-configuration}} boolean classify-override?"
+
+#. type: deftypevr
+#: doc/guix.texi:13989
+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:13993
+#, fuzzy, no-wrap
+msgid "{@code{cups-configuration} parameter} default-auth-type default-auth-type"
+msgstr "{parámetro de @code{cups-configuration}} default-auth-type default-auth-type"
+
+#. type: deftypevr
+#: doc/guix.texi:13995
+msgid "Specifies the default type of authentication to use."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:13997
+msgid "Defaults to @samp{Basic}."
+msgstr "El valor predeterminado es @samp{Basic}."
+
+#. type: deftypevr
+#: doc/guix.texi:13999
+#, fuzzy, no-wrap
+msgid "{@code{cups-configuration} parameter} default-encryption default-encryption"
+msgstr "{parámetro de @code{cups-configuration}} default-encryption default-encryption"
+
+#. type: deftypevr
+#: doc/guix.texi:14001
+msgid "Specifies whether encryption will be used for authenticated requests."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14003
+msgid "Defaults to @samp{Required}."
+msgstr "El valor predeterminado es @samp{Required}."
+
+#. type: deftypevr
+#: doc/guix.texi:14005
+#, fuzzy, 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:14007
+msgid "Specifies the default language to use for text and web content."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14009
+msgid "Defaults to @samp{\"en\"}."
+msgstr "El valor predeterminado es @samp{\"en\"}."
+
+#. type: deftypevr
+#: doc/guix.texi:14011
+#, fuzzy, no-wrap
+msgid "{@code{cups-configuration} parameter} string default-paper-size"
+msgstr "{parámetro de @code{cups-configuration}} string default-paper-size"
+
+#. type: deftypevr
+#: doc/guix.texi:14016
+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:14018
+msgid "Defaults to @samp{\"Auto\"}."
+msgstr "El valor predeterminado es @samp{\"Auto\"}."
+
+#. type: deftypevr
+#: doc/guix.texi:14020
+#, fuzzy, 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:14022
+msgid "Specifies the default access policy to use."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14024
+msgid "Defaults to @samp{\"default\"}."
+msgstr "El valor predeterminado es @samp{\"default\"}."
+
+#. type: deftypevr
+#: doc/guix.texi:14026
+#, fuzzy, 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:14028
+msgid "Specifies whether local printers are shared by default."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14030 doc/guix.texi:14110 doc/guix.texi:14406
+#: doc/guix.texi:19946 doc/guix.texi:19974 doc/guix.texi:20094
+#: doc/guix.texi:20101 doc/guix.texi:20109 doc/guix.texi:20131
+#: doc/guix.texi:20145 doc/guix.texi:20230 doc/guix.texi:20237
+#: doc/guix.texi:20245 doc/guix.texi:20655 doc/guix.texi:20795
+#: doc/guix.texi:20981 doc/guix.texi:20988 doc/guix.texi:21010
+#: doc/guix.texi:21049 doc/guix.texi:21069 doc/guix.texi:21083
+#: doc/guix.texi:21235 doc/guix.texi:22268 doc/guix.texi:22356
+#: doc/guix.texi:22372 doc/guix.texi:22422
+msgid "Defaults to @samp{#t}."
+msgstr "El valor predeterminado es @samp{#t}"
+
+#. type: deftypevr
+#: doc/guix.texi:14032
+#, fuzzy, no-wrap
+msgid "{@code{cups-configuration} parameter} non-negative-integer dirty-clean-interval"
+msgstr "{parámetro de @code{cups-configuration}} non-negative-integer dirty-clean-interval"
+
+#. type: deftypevr
+#: doc/guix.texi:14036
+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:14038 doc/guix.texi:14086 doc/guix.texi:14095
+#: doc/guix.texi:14116 doc/guix.texi:14413
+msgid "Defaults to @samp{30}."
+msgstr "El valor predeterminado es @samp{30}."
+
+#. type: deftypevr
+#: doc/guix.texi:14040
+#, fuzzy, no-wrap
+msgid "{@code{cups-configuration} parameter} error-policy error-policy"
+msgstr "{parámetro de @code{cups-configuration}} error-policy error-policy"
+
+#. type: deftypevr
+#: doc/guix.texi:14046
+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 ""
+
+#. type: deftypevr
+#: doc/guix.texi:14048
+msgid "Defaults to @samp{stop-printer}."
+msgstr "El valor predeterminado es @samp{stop-printer}."
+
+#. type: deftypevr
+#: doc/guix.texi:14050
+#, fuzzy, no-wrap
+msgid "{@code{cups-configuration} parameter} non-negative-integer filter-limit"
+msgstr "{parámetro de @code{cups-configuration}} non-negative-integer filter-limit"
+
+#. type: deftypevr
+#: doc/guix.texi:14058
+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:14060 doc/guix.texi:14068 doc/guix.texi:14123
+#: doc/guix.texi:14239 doc/guix.texi:14253 doc/guix.texi:14260
+#: doc/guix.texi:15366 doc/guix.texi:15382 doc/guix.texi:16028
+#: doc/guix.texi:16040 doc/guix.texi:20671 doc/guix.texi:20996
+#: doc/guix.texi:22261 doc/guix.texi:22561 doc/guix.texi:22735
+msgid "Defaults to @samp{0}."
+msgstr "El valor predeterminado es @samp{0}."
+
+#. type: deftypevr
+#: doc/guix.texi:14062
+#, fuzzy, no-wrap
+msgid "{@code{cups-configuration} parameter} non-negative-integer filter-nice"
+msgstr "{parámetro de @code{cups-configuration}} non-negative-integer filter-nice"
+
+#. type: deftypevr
+#: doc/guix.texi:14066
+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:14070
+#, fuzzy, no-wrap
+msgid "{@code{cups-configuration} parameter} host-name-lookups host-name-lookups"
+msgstr "{parámetro de @code{cups-configuration}} host-name-lookups host-name-lookups"
+
+#. type: deftypevr
+#: doc/guix.texi:14077
+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:14081
+#, fuzzy, no-wrap
+msgid "{@code{cups-configuration} parameter} non-negative-integer job-kill-delay"
+msgstr "{parámetro de @code{cups-configuration}} non-negative-integer job-kill-delay"
+
+#. type: deftypevr
+#: doc/guix.texi:14084
+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:14088
+#, fuzzy, no-wrap
+msgid "{@code{cups-configuration} parameter} non-negative-integer job-retry-interval"
+msgstr "{parámetro de @code{cups-configuration}} non-negative-integer job-retry-interval"
+
+#. type: deftypevr
+#: doc/guix.texi:14093
+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:14097
+#, fuzzy, no-wrap
+msgid "{@code{cups-configuration} parameter} non-negative-integer job-retry-limit"
+msgstr "{parámetro de @code{cups-configuration}} non-negative-integer job-retry-limit"
+
+#. type: deftypevr
+#: doc/guix.texi:14102
+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:14104 doc/guix.texi:21487 doc/guix.texi:21507
+#: doc/guix.texi:21523 doc/guix.texi:21537 doc/guix.texi:21544
+#: doc/guix.texi:21551 doc/guix.texi:21558 doc/guix.texi:21717
+#: doc/guix.texi:21733 doc/guix.texi:21740 doc/guix.texi:21747
+#: doc/guix.texi:21758 doc/guix.texi:22213 doc/guix.texi:22221
+#: doc/guix.texi:22229 doc/guix.texi:22253
+msgid "Defaults to @samp{5}."
+msgstr "El valor predeterminado es @samp{5}."
+
+#. type: deftypevr
+#: doc/guix.texi:14106
+#, fuzzy, no-wrap
+msgid "{@code{cups-configuration} parameter} boolean keep-alive?"
+msgstr "{parámetro de @code{cups-configuration}} boolean keep-alive?"
+
+#. type: deftypevr
+#: doc/guix.texi:14108
+msgid "Specifies whether to support HTTP keep-alive connections."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14112
+#, fuzzy, no-wrap
+msgid "{@code{cups-configuration} parameter} non-negative-integer keep-alive-timeout"
+msgstr "{parámetro de @code{cups-configuration}} non-negative-integer keep-alive-timeout"
+
+#. type: deftypevr
+#: doc/guix.texi:14114
+msgid "Specifies how long an idle client connection remains open, in seconds."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14118
+#, fuzzy, no-wrap
+msgid "{@code{cups-configuration} parameter} non-negative-integer limit-request-body"
+msgstr "{parámetro de @code{cups-configuration}} non-negative-integer limit-request-body"
+
+#. type: deftypevr
+#: doc/guix.texi:14121
+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:14125
+#, fuzzy, no-wrap
+msgid "{@code{cups-configuration} parameter} multiline-string-list listen"
+msgstr "{parámetro de @code{cups-configuration}} multiline-string-list listen"
+
+#. type: deftypevr
+#: doc/guix.texi:14132
+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:14134
+#, fuzzy, no-wrap
+msgid "{@code{cups-configuration} parameter} non-negative-integer listen-back-log"
+msgstr "{parámetro de @code{cups-configuration}} non-negative-integer listen-back-log"
+
+#. type: deftypevr
+#: doc/guix.texi:14141
+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:14143
+msgid "Defaults to @samp{128}."
+msgstr "El valor predeterminado es @samp{128}."
+
+#. type: deftypevr
+#: doc/guix.texi:14145
+#, fuzzy, no-wrap
+msgid "{@code{cups-configuration} parameter} location-access-control-list location-access-controls"
+msgstr "{parámetro de @code{cups-configuration}} location-access-control-list location-access-controls"
+
+#. type: deftypevr
+#: doc/guix.texi:14147
+msgid "Specifies a set of additional access controls."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14149
+msgid "Available @code{location-access-controls} fields are:"
+msgstr "Los campos disponibles de @code{location-access-controls} son:"
+
+#. type: deftypevr
+#: doc/guix.texi:14150
+#, fuzzy, no-wrap
+msgid "{@code{location-access-controls} parameter} file-name path"
+msgstr "{parámetro de @code{location-access-controls}} file-name path"
+
+#. type: deftypevr
+#: doc/guix.texi:14152
+msgid "Specifies the URI path to which the access control applies."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14154
+#, fuzzy, no-wrap
+msgid "{@code{location-access-controls} parameter} access-control-list access-controls"
+msgstr "{parámetro de @code{location-access-controls}} access-control-list access-controls"
+
+#. type: deftypevr
+#: doc/guix.texi:14157
+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:14159 doc/guix.texi:14165 doc/guix.texi:14179
+#: doc/guix.texi:14186 doc/guix.texi:14328 doc/guix.texi:14387
+#: doc/guix.texi:14471 doc/guix.texi:14482 doc/guix.texi:16514
+#: doc/guix.texi:17708 doc/guix.texi:17812 doc/guix.texi:18237
+#: doc/guix.texi:18245 doc/guix.texi:18490 doc/guix.texi:20005
+#: doc/guix.texi:20152 doc/guix.texi:20340 doc/guix.texi:21378
+#: doc/guix.texi:21438 doc/guix.texi:21446 doc/guix.texi:22276
+#: doc/guix.texi:22283 doc/guix.texi:22625 doc/guix.texi:22703
+#: doc/guix.texi:22797 doc/guix.texi:22805 doc/guix.texi:22841
+#: doc/guix.texi:22991 doc/guix.texi:23042 doc/guix.texi:23051
+msgid "Defaults to @samp{()}."
+msgstr "El valor predeterminado es @samp{()}."
+
+#. type: deftypevr
+#: doc/guix.texi:14161
+#, fuzzy, no-wrap
+msgid "{@code{location-access-controls} parameter} method-access-control-list method-access-controls"
+msgstr "{parámetro de @code{location-access-controls}} method-access-control-list method-access-controls"
+
+#. type: deftypevr
+#: doc/guix.texi:14163
+msgid "Access controls for method-specific access to this path."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14167
+msgid "Available @code{method-access-controls} fields are:"
+msgstr "Los campos disponibles de @code{method-access-controls} son:"
+
+#. type: deftypevr
+#: doc/guix.texi:14168
+#, fuzzy, no-wrap
+msgid "{@code{method-access-controls} parameter} boolean reverse?"
+msgstr "{parámetro de @code{method-access-controls}} boolean reverse?"
+
+#. type: deftypevr
+#: doc/guix.texi:14171
+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:14175
+#, fuzzy, no-wrap
+msgid "{@code{method-access-controls} parameter} method-list methods"
+msgstr "{parámetro de @code{method-access-controls}} method-list methods"
+
+#. type: deftypevr
+#: doc/guix.texi:14177
+msgid "Methods to which this access control applies."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14181
+#, fuzzy, no-wrap
+msgid "{@code{method-access-controls} parameter} access-control-list access-controls"
+msgstr "{parámetro de @code{method-access-controls}} access-control-list access-controls"
+
+#. type: deftypevr
+#: doc/guix.texi:14184
+msgid "Access control directives, as a list of strings.  Each string should be one directive, such as \"Order allow,deny\"."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14190
+#, fuzzy, no-wrap
+msgid "{@code{cups-configuration} parameter} non-negative-integer log-debug-history"
+msgstr "{parámetro de @code{cups-configuration}} non-negative-integer log-debug-history"
+
+#. type: deftypevr
+#: doc/guix.texi:14194
+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:14196 doc/guix.texi:14217 doc/guix.texi:14224
+#: doc/guix.texi:16274 doc/guix.texi:20325
+msgid "Defaults to @samp{100}."
+msgstr "El valor predeterminado es @samp{100}."
+
+#. type: deftypevr
+#: doc/guix.texi:14198
+#, fuzzy, no-wrap
+msgid "{@code{cups-configuration} parameter} log-level log-level"
+msgstr "{parámetro de @code{cups-configuration}} log-level log-level"
+
+#. type: deftypevr
+#: doc/guix.texi:14201
+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:14203
+msgid "Defaults to @samp{info}."
+msgstr "El valor predeterminado es @samp{info}"
+
+#. type: deftypevr
+#: doc/guix.texi:14205
+#, fuzzy, no-wrap
+msgid "{@code{cups-configuration} parameter} log-time-format log-time-format"
+msgstr "{parámetro de @code{cups-configuration}} log-time-format log-time-format"
+
+#. type: deftypevr
+#: doc/guix.texi:14208
+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:14210
+msgid "Defaults to @samp{standard}."
+msgstr "El valor predeterminado es @samp{standard}."
+
+#. type: deftypevr
+#: doc/guix.texi:14212
+#, fuzzy, no-wrap
+msgid "{@code{cups-configuration} parameter} non-negative-integer max-clients"
+msgstr "{parámetro de @code{cups-configuration}} non-negative-integer max-clients"
+
+#. type: deftypevr
+#: doc/guix.texi:14215
+msgid "Specifies the maximum number of simultaneous clients that are allowed by the scheduler."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14219
+#, fuzzy, no-wrap
+msgid "{@code{cups-configuration} parameter} non-negative-integer max-clients-per-host"
+msgstr "{parámetro de @code{cups-configuration}} non-negative-integer max-clients-per-host"
+
+#. type: deftypevr
+#: doc/guix.texi:14222
+msgid "Specifies the maximum number of simultaneous clients that are allowed from a single address."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14226
+#, fuzzy, no-wrap
+msgid "{@code{cups-configuration} parameter} non-negative-integer max-copies"
+msgstr "{parámetro de @code{cups-configuration}} non-negative-integer max-copies"
+
+#. type: deftypevr
+#: doc/guix.texi:14229
+msgid "Specifies the maximum number of copies that a user can print of each job."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14231
+msgid "Defaults to @samp{9999}."
+msgstr "El valor predeterminado es @samp{9999}."
+
+#. type: deftypevr
+#: doc/guix.texi:14233
+#, fuzzy, no-wrap
+msgid "{@code{cups-configuration} parameter} non-negative-integer max-hold-time"
+msgstr "{parámetro de @code{cups-configuration}} non-negative-integer max-hold-time"
+
+#. type: deftypevr
+#: doc/guix.texi:14237
+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:14241
+#, fuzzy, no-wrap
+msgid "{@code{cups-configuration} parameter} non-negative-integer max-jobs"
+msgstr "{parámetro de @code{cups-configuration}} non-negative-integer max-jobs"
+
+#. type: deftypevr
+#: doc/guix.texi:14244
+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:14246
+msgid "Defaults to @samp{500}."
+msgstr "El valor predeterminado es @samp{500}."
+
+#. type: deftypevr
+#: doc/guix.texi:14248
+#, fuzzy, no-wrap
+msgid "{@code{cups-configuration} parameter} non-negative-integer max-jobs-per-printer"
+msgstr "{parámetro de @code{cups-configuration}} non-negative-integer max-jobs-per-printer"
+
+#. type: deftypevr
+#: doc/guix.texi:14251
+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:14255
+#, fuzzy, no-wrap
+msgid "{@code{cups-configuration} parameter} non-negative-integer max-jobs-per-user"
+msgstr "{parámetro de @code{cups-configuration}} non-negative-integer max-jobs-per-user"
+
+#. type: deftypevr
+#: doc/guix.texi:14258
+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:14262
+#, fuzzy, no-wrap
+msgid "{@code{cups-configuration} parameter} non-negative-integer max-job-time"
+msgstr "{parámetro de @code{cups-configuration}} non-negative-integer max-job-time"
+
+#. type: deftypevr
+#: doc/guix.texi:14265
+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:14267
+msgid "Defaults to @samp{10800}."
+msgstr "El valor predeterminado es @samp{10800}."
+
+#. type: deftypevr
+#: doc/guix.texi:14269
+#, fuzzy, no-wrap
+msgid "{@code{cups-configuration} parameter} non-negative-integer max-log-size"
+msgstr "{parámetro de @code{cups-configuration}} non-negative-integer max-log-size"
+
+#. type: deftypevr
+#: doc/guix.texi:14272
+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:14274
+msgid "Defaults to @samp{1048576}."
+msgstr "El valor predeterminado es @samp{1048576}."
+
+#. type: deftypevr
+#: doc/guix.texi:14276
+#, fuzzy, no-wrap
+msgid "{@code{cups-configuration} parameter} non-negative-integer multiple-operation-timeout"
+msgstr "{parámetro de @code{cups-configuration}} non-negative-integer multiple-operation-timeout"
+
+#. type: deftypevr
+#: doc/guix.texi:14279
+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:14281 doc/guix.texi:14495 doc/guix.texi:19939
+msgid "Defaults to @samp{300}."
+msgstr "El valor predeterminado es @samp{300}."
+
+#. type: deftypevr
+#: doc/guix.texi:14283
+#, fuzzy, 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:14288
+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:14290
+#, no-wrap
+msgid "%%"
+msgstr "%%"
+
+# FUZZY
+#. type: table
+#: doc/guix.texi:14292
+msgid "insert a single percent character"
+msgstr "inserta literalmente un simbolo de porcentaje"
+
+#. type: item
+#: doc/guix.texi:14293
+#, no-wrap
+msgid "%@{name@}"
+msgstr "%@{nombre@}"
+
+#. type: table
+#: doc/guix.texi:14295
+msgid "insert the value of the specified IPP attribute"
+msgstr "inserta el valor del atributo IPP especificado"
+
+#. type: item
+#: doc/guix.texi:14296
+#, no-wrap
+msgid "%C"
+msgstr "%C"
+
+#. type: table
+#: doc/guix.texi:14298
+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:14299
+#, no-wrap
+msgid "%P"
+msgstr "%P"
+
+#. type: table
+#: doc/guix.texi:14301
+msgid "insert the current page number"
+msgstr "inserta el número de página actual"
+
+#. type: item
+#: doc/guix.texi:14302
+#, no-wrap
+msgid "%T"
+msgstr "%T"
+
+# FUZZY
+#. type: table
+#: doc/guix.texi:14304
+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:14305
+#, no-wrap
+msgid "%j"
+msgstr "%j"
+
+#. type: table
+#: doc/guix.texi:14307
+msgid "insert the job ID"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:14308 doc/guix.texi:15884
+#, no-wrap
+msgid "%p"
+msgstr "%p"
+
+#. type: table
+#: doc/guix.texi:14310
+msgid "insert the printer name"
+msgstr "inserta el nombre de impresora"
+
+#. type: item
+#: doc/guix.texi:14311 doc/guix.texi:15907
+#, no-wrap
+msgid "%u"
+msgstr "%u"
+
+#. type: table
+#: doc/guix.texi:14313
+msgid "insert the username"
+msgstr "inserta el nombre de usuaria"
+
+#. type: deftypevr
+#: doc/guix.texi:14319
+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:14323
+#, fuzzy, no-wrap
+msgid "{@code{cups-configuration} parameter} environment-variables environment-variables"
+msgstr "{parámetro de @code{cups-configuration}} environment-variables environment-variables"
+
+#. type: deftypevr
+#: doc/guix.texi:14326
+msgid "Passes the specified environment variable(s) to child processes; a list of strings."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14330
+#, fuzzy, no-wrap
+msgid "{@code{cups-configuration} parameter} policy-configuration-list policies"
+msgstr "{parámetro de @code{cups-configuration}} policy-configuration-list policies"
+
+#. type: deftypevr
+#: doc/guix.texi:14332
+msgid "Specifies named access control policies."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14334
+msgid "Available @code{policy-configuration} fields are:"
+msgstr "Los campos disponibles de @code{policy-configuration} son:"
+
+#. type: deftypevr
+#: doc/guix.texi:14335
+#, fuzzy, no-wrap
+msgid "{@code{policy-configuration} parameter} string name"
+msgstr "{parámetro de @code{policy-configuration}} string name"
+
+#. type: deftypevr
+#: doc/guix.texi:14337
+msgid "Name of the policy."
+msgstr "El nombre de la política."
+
+#. type: deftypevr
+#: doc/guix.texi:14339
+#, fuzzy, no-wrap
+msgid "{@code{policy-configuration} parameter} string job-private-access"
+msgstr "{parámetro de @code{policy-configuration}} string job-private-access"
+
+#. type: deftypevr
+#: doc/guix.texi:14349
+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:14351 doc/guix.texi:14373
+msgid "Defaults to @samp{\"@@OWNER @@SYSTEM\"}."
+msgstr "El valor predeterminado es @samp{\"@@OWNER @@SYSTEM\"}."
+
+#. type: deftypevr
+#: doc/guix.texi:14353
+#, fuzzy, no-wrap
+msgid "{@code{policy-configuration} parameter} string job-private-values"
+msgstr "{parámetro de @code{policy-configuration}} string job-private-values"
+
+#. type: deftypevr
+#: doc/guix.texi:14356 doc/guix.texi:14378
+msgid "Specifies the list of job values to make private, or @code{all}, @code{default}, or @code{none}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14359
+#, fuzzy
+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:14361
+#, fuzzy, 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:14371
+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:14375
+#, fuzzy, 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:14381
+#, fuzzy
+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\"}."
+
+#. type: deftypevr
+#: doc/guix.texi:14383
+#, fuzzy, no-wrap
+msgid "{@code{policy-configuration} parameter} operation-access-control-list access-controls"
+msgstr "{parámetro de @code{policy-configuration}} operation-access-control-list access-controls"
+
+#. type: deftypevr
+#: doc/guix.texi:14385
+msgid "Access control by IPP operation."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14390
+#, fuzzy, no-wrap
+msgid "{@code{cups-configuration} parameter} boolean-or-non-negative-integer preserve-job-files"
+msgstr "{parámetro de @code{cups-configuration}} boolean-or-non-negative-integer preserve-job-files"
+
+#. type: deftypevr
+#: doc/guix.texi:14395
+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:14397
+msgid "Defaults to @samp{86400}."
+msgstr "El valor predeterminado es @samp{86400}."
+
+#. type: deftypevr
+#: doc/guix.texi:14399
+#, fuzzy, no-wrap
+msgid "{@code{cups-configuration} parameter} boolean-or-non-negative-integer preserve-job-history"
+msgstr "{parámetro de @code{cups-configuration}} boolean-or-non-negative-integer preserve-job-history"
+
+#. type: deftypevr
+#: doc/guix.texi:14404
+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:14408
+#, fuzzy, no-wrap
+msgid "{@code{cups-configuration} parameter} non-negative-integer reload-timeout"
+msgstr "{parámetro de @code{cups-configuration}} non-negative-integer reload-timeout"
+
+#. type: deftypevr
+#: doc/guix.texi:14411
+msgid "Specifies the amount of time to wait for job completion before restarting the scheduler."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14415
+#, fuzzy, no-wrap
+msgid "{@code{cups-configuration} parameter} string rip-cache"
+msgstr "{parámetro de @code{cups-configuration}} string rip-cache"
+
+#. type: deftypevr
+#: doc/guix.texi:14418
+msgid "Specifies the maximum amount of memory to use when converting documents into bitmaps for a printer."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14420
+msgid "Defaults to @samp{\"128m\"}."
+msgstr "El valor predeterminado es @samp{\"128m\"}."
+
+#. type: deftypevr
+#: doc/guix.texi:14422
+#, fuzzy, 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:14424
+msgid "Specifies the email address of the server administrator."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14426
+msgid "Defaults to @samp{\"root@@localhost.localdomain\"}."
+msgstr "El valor predeterminado es @samp{\"root@@localhost.localdomain\"}."
+
+#. type: deftypevr
+#: doc/guix.texi:14428
+#, fuzzy, no-wrap
+msgid "{@code{cups-configuration} parameter} host-name-list-or-* server-alias"
+msgstr "{parámetro de @code{cups-configuration}} host-name-list-or-* server-alias"
+
+#. type: deftypevr
+#: doc/guix.texi:14436
+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:14438
+msgid "Defaults to @samp{*}."
+msgstr "El valor predeterminado es @samp{*}."
+
+#. type: deftypevr
+#: doc/guix.texi:14440
+#, fuzzy, no-wrap
+msgid "{@code{cups-configuration} parameter} string server-name"
+msgstr "{parámetro de @code{cups-configuration}} string server-name"
+
+#. type: deftypevr
+#: doc/guix.texi:14442
+msgid "Specifies the fully-qualified host name of the server."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14444 doc/guix.texi:17835 doc/guix.texi:17879
+msgid "Defaults to @samp{\"localhost\"}."
+msgstr "El valor predeterminado es @samp{\"localhost\"}."
+
+#. type: deftypevr
+#: doc/guix.texi:14446
+#, fuzzy, 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:14454
+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:14456
+msgid "Defaults to @samp{Minimal}."
+msgstr "El valor predeterminado es @samp{Minimal}."
+
+#. type: deftypevr
+#: doc/guix.texi:14458
+#, fuzzy, no-wrap
+msgid "{@code{cups-configuration} parameter} string set-env"
+msgstr "{parámetro de @code{cups-configuration}} string set-env"
+
+#. type: deftypevr
+#: doc/guix.texi:14460
+msgid "Set the specified environment variable to be passed to child processes."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14462
+msgid "Defaults to @samp{\"variable value\"}."
+msgstr "El valor predeterminado es @samp{\"variable value\"}."
+
+#. type: deftypevr
+#: doc/guix.texi:14464
+#, fuzzy, no-wrap
+msgid "{@code{cups-configuration} parameter} multiline-string-list ssl-listen"
+msgstr "{parámetro de @code{cups-configuration}} multiline-string-list ssl-listen"
+
+#. type: deftypevr
+#: doc/guix.texi:14469
+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:14473
+#, fuzzy, no-wrap
+msgid "{@code{cups-configuration} parameter} ssl-options ssl-options"
+msgstr "{parámetro de @code{cups-configuration}} ssl-options ssl-options"
+
+#. type: deftypevr
+#: doc/guix.texi:14480
+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 ""
+
+#. type: deftypevr
+#: doc/guix.texi:14484
+#, fuzzy, no-wrap
+msgid "{@code{cups-configuration} parameter} boolean strict-conformance?"
+msgstr "{parámetro de @code{cups-configuration}} boolean strict-conformance?"
+
+#. type: deftypevr
+#: doc/guix.texi:14487
+msgid "Specifies whether the scheduler requires clients to strictly adhere to the IPP specifications."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14491
+#, fuzzy, no-wrap
+msgid "{@code{cups-configuration} parameter} non-negative-integer timeout"
+msgstr "{parámetro de @code{cups-configuration}} non-negative-integer timeout"
+
+#. type: deftypevr
+#: doc/guix.texi:14493
+msgid "Specifies the HTTP request timeout, in seconds."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14498
+#, fuzzy, no-wrap
+msgid "{@code{cups-configuration} parameter} boolean web-interface?"
+msgstr "{parámetro de @code{cups-configuration}} boolean web-interface?"
+
+#. type: deftypevr
+#: doc/guix.texi:14500
+msgid "Specifies whether the web interface is enabled."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:14510
+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:14512
+msgid "Available @code{opaque-cups-configuration} fields are:"
+msgstr "Los campos disponibles de @code{opaque-cups-configuration} son:"
+
+#. type: deftypevr
+#: doc/guix.texi:14513
+#, fuzzy, no-wrap
+msgid "{@code{opaque-cups-configuration} parameter} package cups"
+msgstr "{parámetro de @code{opaque-cups-configuration}} package cups"
+
+#. type: deftypevr
+#: doc/guix.texi:14517
+#, fuzzy, 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:14519
+msgid "The contents of the @code{cupsd.conf}, as a string."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14521
+#, fuzzy, 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:14523
+msgid "The contents of the @code{cups-files.conf} file, as a string."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:14528
+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: example
+#: doc/guix.texi:14534
+#, no-wrap
+msgid ""
+"(service cups-service-type\n"
+"         (opaque-cups-configuration\n"
+"           (cupsd.conf cupsd.conf)\n"
+"           (cups-files.conf cups-files.conf)))\n"
+msgstr ""
+"(service cups-service-type\n"
+"         (opaque-cups-configuration\n"
+"           (cupsd.conf cupsd.conf)\n"
+"           (cups-files.conf cups-files.conf)))\n"
+
+#. type: Plain text
+#: doc/guix.texi:14545
+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:14549
+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:14550
+#, no-wrap
+msgid "{Scheme Variable} %desktop-services"
+msgstr "{Variable Scheme} %desktop-services"
+
+#. type: defvr
+#: doc/guix.texi:14553
+msgid "This is a list of services that builds upon @var{%base-services} and adds or adjusts services for a typical ``desktop'' setup."
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:14563
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:14568
+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} 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:14591
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:14600
+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:14601
+#, no-wrap
+msgid "{Scheme Variable} gnome-desktop-service-type"
+msgstr "{Variable Scheme} gnome-desktop-service-type"
+
+#. type: defvr
+#: doc/guix.texi:14605
+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:14608
+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:14610
+#, no-wrap
+msgid "{Data Type} gnome-desktop-configuration"
+msgstr "{Tipo de datos} gnome-desktop-configuration"
+
+#. type: deftp
+#: doc/guix.texi:14612
+msgid "Configuration record for the GNOME desktop environment."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:14614
+#, no-wrap
+msgid "@code{gnome} (default @code{gnome})"
+msgstr "@code{gnome} (predeterminado @code{gnome})"
+
+#. type: table
+#: doc/guix.texi:14616
+msgid "The GNOME package to use."
+msgstr "El paquete GNOME usado."
+
+#. type: defvr
+#: doc/guix.texi:14619
+#, no-wrap
+msgid "{Scheme Variable} xfce-desktop-service-type"
+msgstr "{Variable Scheme} xfce-desktop-service-type"
+
+#. type: defvr
+#: doc/guix.texi:14623
+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:14628
+msgid "This service that 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:14630
+#, no-wrap
+msgid "{Data Type} xfce-desktop-configuration"
+msgstr "{Tipo de datos} xfce-desktop-configuration"
+
+#. type: deftp
+#: doc/guix.texi:14632
+msgid "Configuration record for the Xfce desktop environment."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:14634
+#, no-wrap
+msgid "@code{xfce} (default @code{xfce})"
+msgstr "@code{xfce} (predeterminado @code{xfce})"
+
+#. type: table
+#: doc/guix.texi:14636
+msgid "The Xfce package to use."
+msgstr "El paquete Xfce usado."
+
+#. type: deffn
+#: doc/guix.texi:14639
+#, no-wrap
+msgid "{Scheme Variable} mate-desktop-service-type"
+msgstr "{Variable Scheme} mate-desktop-service-type"
+
+#. type: deffn
+#: doc/guix.texi:14643
+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:14647
+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:14649
+#, no-wrap
+msgid "{Data Type} mate-desktop-configuration"
+msgstr "{Tipo de datos} mate-desktop-configuration"
+
+#. type: deftp
+#: doc/guix.texi:14651
+msgid "Configuration record for the MATE desktop environment."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:14653
+#, no-wrap
+msgid "@code{mate} (default @code{mate})"
+msgstr "@code{mate} (predeterminado: @code{mate})"
+
+#. type: table
+#: doc/guix.texi:14655
+msgid "The MATE package to use."
+msgstr "El paquete MATE usado."
+
+#. type: deffn
+#: doc/guix.texi:14658
+#, no-wrap
+msgid "{Scheme Variable} enlightenment-desktop-service-type"
+msgstr "{Variable Scheme} enlightenment-desktop-service-type"
+
+#. type: deffn
+#: doc/guix.texi:14661
+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:14663
+#, no-wrap
+msgid "{Data Type} enlightenment-desktop-service-configuration"
+msgstr "{Tipo de datos} enlightenment-desktop-service-configuration"
+
+#. type: item
+#: doc/guix.texi:14665
+#, no-wrap
+msgid "@code{enlightenment} (default @code{enlightenment})"
+msgstr "@code{enlightenment} (predeterminado @code{enlightenment})"
+
+#. type: table
+#: doc/guix.texi:14667
+msgid "The enlightenment package to use."
+msgstr "El paquete enlightenment usado."
+
+#. type: Plain text
+#: doc/guix.texi:14675
+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: example
+#: doc/guix.texi:14686
+#, no-wrap
+msgid ""
+"(use-modules (gnu))\n"
+"(use-service-modules desktop)\n"
+"(operating-system\n"
+"  ...\n"
+"  ;; cons* adds items to the list given as its last argument.\n"
+"  (services (cons* (service gnome-desktop-service-type)\n"
+"                   (service xfce-desktop-service)\n"
+"                   %desktop-services))\n"
+"  ...)\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:14690
+msgid "These desktop environments will then be available as options in the graphical login window."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:14694
+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:14695
+#, no-wrap
+msgid "{Scheme Procedure} dbus-service [#:dbus @var{dbus}] [#:services '()]"
+msgstr "{Procedimiento Scheme} dbus-service [#:dbus @var{dbus}] [#:services '()]"
+
+#. type: deffn
+#: doc/guix.texi:14698
+msgid "Return a service that runs the ``system bus'', using @var{dbus}, with support for @var{services}."
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:14702
+msgid "@uref{http://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:14707
+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:14709
+#, no-wrap
+msgid "{Scheme Procedure} elogind-service [#:config @var{config}]"
+msgstr "{Procedimiento Scheme} elogind-service [#:config @var{config}]"
+
+#. type: deffn
+#: doc/guix.texi:14715
+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:14719
+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:14724
+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:14726
+#, no-wrap
+msgid "kill-user-processes?"
+msgstr "kill-user-processes?"
+
+#. type: code{#1}
+#: doc/guix.texi:14728 doc/guix.texi:14746 doc/guix.texi:14748
+#: doc/guix.texi:14750 doc/guix.texi:14762
+msgid "#f"
+msgstr "#f"
+
+#. type: item
+#: doc/guix.texi:14728
+#, no-wrap
+msgid "kill-only-users"
+msgstr "kill-only-users"
+
+#. type: code{#1}
+#: doc/guix.texi:14730 doc/guix.texi:14768
+msgid "()"
+msgstr "()"
+
+#. type: item
+#: doc/guix.texi:14730
+#, no-wrap
+msgid "kill-exclude-users"
+msgstr "kill-exclude-users"
+
+#. type: code{#1}
+#: doc/guix.texi:14732
+msgid "(\"root\")"
+msgstr "(\"root\")"
+
+#. type: item
+#: doc/guix.texi:14732
+#, no-wrap
+msgid "inhibit-delay-max-seconds"
+msgstr "inhibit-delay-max-seconds"
+
+#. type: code{#1}
+#: doc/guix.texi:14734
+msgid "5"
+msgstr "5"
+
+#. type: item
+#: doc/guix.texi:14734
+#, no-wrap
+msgid "handle-power-key"
+msgstr "handle-power-key"
+
+#. type: code{#1}
+#: doc/guix.texi:14736
+msgid "poweroff"
+msgstr "poweroff"
+
+#. type: item
+#: doc/guix.texi:14736
+#, no-wrap
+msgid "handle-suspend-key"
+msgstr "handle-suspend-key"
+
+#. type: code{#1}
+#: doc/guix.texi:14738 doc/guix.texi:14742
+msgid "suspend"
+msgstr "suspend"
+
+#. type: item
+#: doc/guix.texi:14738
+#, no-wrap
+msgid "handle-hibernate-key"
+msgstr "handle-hibernate-key"
+
+#. type: code{#1}
+#: doc/guix.texi:14740
+msgid "hibernate"
+msgstr "hibernate"
+
+#. type: item
+#: doc/guix.texi:14740
+#, no-wrap
+msgid "handle-lid-switch"
+msgstr "handle-lid-switch"
+
+#. type: item
+#: doc/guix.texi:14742
+#, no-wrap
+msgid "handle-lid-switch-docked"
+msgstr "handle-lid-switch-docked"
+
+#. type: code{#1}
+#: doc/guix.texi:14744 doc/guix.texi:14756
+msgid "ignore"
+msgstr "ignore"
+
+#. type: item
+#: doc/guix.texi:14744
+#, no-wrap
+msgid "power-key-ignore-inhibited?"
+msgstr "power-key-ignore-inhibited?"
+
+#. type: item
+#: doc/guix.texi:14746
+#, no-wrap
+msgid "suspend-key-ignore-inhibited?"
+msgstr "suspend-key-ignore-inhibited?"
+
+#. type: item
+#: doc/guix.texi:14748
+#, no-wrap
+msgid "hibernate-key-ignore-inhibited?"
+msgstr "hibernate-key-ignore-inhibited?"
+
+#. type: item
+#: doc/guix.texi:14750
+#, no-wrap
+msgid "lid-switch-ignore-inhibited?"
+msgstr "lid-switch-ignore-inhibited?"
+
+#. type: code{#1}
+#: doc/guix.texi:14752 doc/guix.texi:14764
+msgid "#t"
+msgstr "#t"
+
+#. type: item
+#: doc/guix.texi:14752
+#, no-wrap
+msgid "holdoff-timeout-seconds"
+msgstr "holdoff-timeout-seconds"
+
+#. type: code{#1}
+#: doc/guix.texi:14754
+msgid "30"
+msgstr "30"
+
+#. type: item
+#: doc/guix.texi:14754
+#, no-wrap
+msgid "idle-action"
+msgstr "idle-action"
+
+#. type: item
+#: doc/guix.texi:14756
+#, no-wrap
+msgid "idle-action-seconds"
+msgstr "idle-action-seconds"
+
+#. type: code{#1}
+#: doc/guix.texi:14758
+msgid "(* 30 60)"
+msgstr "(* 30 60)"
+
+#. type: item
+#: doc/guix.texi:14758
+#, no-wrap
+msgid "runtime-directory-size-percent"
+msgstr "runtime-directory-size-percent"
+
+#. type: code{#1}
+#: doc/guix.texi:14760
+msgid "10"
+msgstr "10"
+
+#. type: item
+#: doc/guix.texi:14760
+#, no-wrap
+msgid "runtime-directory-size"
+msgstr "runtime-directory-size"
+
+#. type: item
+#: doc/guix.texi:14762
+#, no-wrap
+msgid "remove-ipc?"
+msgstr "remove-ipc?"
+
+#. type: item
+#: doc/guix.texi:14764
+#, no-wrap
+msgid "suspend-state"
+msgstr "suspend-state"
+
+#. type: code{#1}
+#: doc/guix.texi:14766
+msgid "(\"mem\" \"standby\" \"freeze\")"
+msgstr "(\"mem\" \"standby\" \"freeze\")"
+
+#. type: item
+#: doc/guix.texi:14766
+#, no-wrap
+msgid "suspend-mode"
+msgstr "suspend-mode"
+
+#. type: item
+#: doc/guix.texi:14768
+#, no-wrap
+msgid "hibernate-state"
+msgstr "hibernate-state"
+
+#. type: code{#1}
+#: doc/guix.texi:14770 doc/guix.texi:14774
+msgid "(\"disk\")"
+msgstr "(\"disk\")"
+
+#. type: item
+#: doc/guix.texi:14770
+#, no-wrap
+msgid "hibernate-mode"
+msgstr "hibernate-mode"
+
+#. type: code{#1}
+#: doc/guix.texi:14772
+msgid "(\"platform\" \"shutdown\")"
+msgstr "(\"platform\" \"shutdown\")"
+
+#. type: item
+#: doc/guix.texi:14772
+#, no-wrap
+msgid "hybrid-sleep-state"
+msgstr "hybrid-sleep-state"
+
+#. type: item
+#: doc/guix.texi:14774
+#, no-wrap
+msgid "hybrid-sleep-mode"
+msgstr "hybrid-sleep-mode"
+
+#. type: code{#1}
+#: doc/guix.texi:14776
+msgid "(\"suspend\" \"platform\" \"shutdown\")"
+msgstr "(\"suspend\" \"platform\" \"shutdown\")"
+
+#. type: deffn
+#: doc/guix.texi:14779
+#, no-wrap
+msgid "{Scheme Procedure} accountsservice-service @"
+msgstr "{Procedimiento Scheme} accountsservice-service @"
+
+#. type: deffn
+#: doc/guix.texi:14787
+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:14790
+msgid "The @var{accountsservice} keyword argument is the @code{accountsservice} package to expose as a service."
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:14792
+#, no-wrap
+msgid "{Scheme Procedure} polkit-service @"
+msgstr "{Procedimiento Scheme} polkit-service @"
+
+#. type: deffn
+#: doc/guix.texi:14801
+msgid "[#:polkit @var{polkit}] Return a service that runs the @uref{http://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:14803
+#, no-wrap
+msgid "{Scheme Variable} upower-service-type"
+msgstr "{Variable Scheme} upower-service-type"
+
+#. type: defvr
+#: doc/guix.texi:14807
+msgid "Service that runs @uref{http://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:14810
+msgid "It implements the @code{org.freedesktop.UPower} D-Bus interface, and is notably used by GNOME."
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:14812
+#, no-wrap
+msgid "{Data Type} upower-configuration"
+msgstr "{Tipo de datos} upower-configuration"
+
+#. type: deftp
+#: doc/guix.texi:14814
+msgid "Data type representation the configuration for UPower."
+msgstr "Tipo de datos que representa la configuración de UPower."
+
+#. type: item
+#: doc/guix.texi:14817
+#, no-wrap
+msgid "@code{upower} (default: @var{upower})"
+msgstr "@code{upower} (predeterminado: @var{upower})"
+
+#. type: table
+#: doc/guix.texi:14819
+msgid "Package to use for @code{upower}."
+msgstr "Paquete usado para @code{upower}."
+
+#. type: item
+#: doc/guix.texi:14820
+#, no-wrap
+msgid "@code{watts-up-pro?} (default: @code{#f})"
+msgstr "@code{watts-up-pro?} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:14822
+msgid "Enable the Watts Up Pro device."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:14823
+#, no-wrap
+msgid "@code{poll-batteries?} (default: @code{#t})"
+msgstr "@code{poll-batteries?} (predeterminado: @code{#t})"
+
+#. type: table
+#: doc/guix.texi:14825
+msgid "Enable polling the kernel for battery level changes."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:14826
+#, no-wrap
+msgid "@code{ignore-lid?} (default: @code{#f})"
+msgstr "@code{ignore-lid?} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:14828
+msgid "Ignore the lid state, this can be useful if it's incorrect on a device."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:14829
+#, 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:14832
+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:14833
+#, no-wrap
+msgid "@code{percentage-low} (default: @code{10})"
+msgstr "@code{percentage-low} (predeterminado: @code{10})"
+
+#. type: table
+#: doc/guix.texi:14836
+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:14837
+#, no-wrap
+msgid "@code{percentage-critical} (default: @code{3})"
+msgstr "@code{percentage-critical} (predeterminado: @code{3})"
+
+#. type: table
+#: doc/guix.texi:14840
+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:14841
+#, no-wrap
+msgid "@code{percentage-action} (default: @code{2})"
+msgstr "@code{percentage-action} (predeterminado: @code{2})"
+
+#. type: table
+#: doc/guix.texi:14844
+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:14845
+#, no-wrap
+msgid "@code{time-low} (default: @code{1200})"
+msgstr "@code{time-low} (predeterminado: @code{1200})"
+
+#. type: table
+#: doc/guix.texi:14848
+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:14849
+#, no-wrap
+msgid "@code{time-critical} (default: @code{300})"
+msgstr "@code{time-critical} (predeterminado: @code{300})"
+
+#. type: table
+#: doc/guix.texi:14852
+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:14853
+#, no-wrap
+msgid "@code{time-action} (default: @code{120})"
+msgstr "@code{time-action} (predeterminado: @code{120})"
+
+#. type: table
+#: doc/guix.texi:14856
+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:14857
+#, 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:14860
+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:14862
+msgid "Possible values are:"
+msgstr "Los valores posibles son:"
+
+#. type: code{#1}
+#: doc/guix.texi:14866
+msgid "'power-off"
+msgstr "'power-off"
+
+#. type: code{#1}
+#: doc/guix.texi:14869
+msgid "'hibernate"
+msgstr "'hibernate"
+
+#. type: itemize
+#: doc/guix.texi:14872
+msgid "@code{'hybrid-sleep}."
+msgstr "@code{'hybrid-sleep}."
+
+#. type: deffn
+#: doc/guix.texi:14877
+#, no-wrap
+msgid "{Scheme Procedure} udisks-service [#:udisks @var{udisks}]"
+msgstr "{Procedimiento Scheme} udisks-service [#:udisks @var{udisks}]"
+
+#. type: deffn
+#: doc/guix.texi:14882
+msgid "Return a service for @uref{http://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 ""
+
+#. type: deffn
+#: doc/guix.texi:14884
+#, no-wrap
+msgid "{Scheme Procedure} colord-service [#:colord @var{colord}]"
+msgstr "{Procedimiento Scheme} colord-service [#:colord @var{colord}]"
+
+#. type: deffn
+#: doc/guix.texi:14890
+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{http://www.freedesktop.org/software/colord/, the colord web site} for more information."
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:14892
+#, no-wrap
+msgid "{Scheme Procedure} geoclue-application name [#:allowed? #t] [#:system? #f] [#:users '()]"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:14901
+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: defvr
+#: doc/guix.texi:14903
+#, no-wrap
+msgid "{Scheme Variable} %standard-geoclue-applications"
+msgstr "{Variable Scheme} %standard-geoclue-applications"
+
+#. type: defvr
+#: doc/guix.texi:14910
+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:14912
+#, no-wrap
+msgid "{Scheme Procedure} geoclue-service [#:colord @var{colord}] @"
+msgstr "{Procedimiento Scheme} geoclue-service [#:colord @var{colord}] @"
+
+#. type: deffn
+#: doc/guix.texi:14925
+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:14927
+#, no-wrap
+msgid "{Scheme Procedure} bluetooth-service [#:bluez @var{bluez}] @"
+msgstr "{Procedimiento Scheme} bluetooth-service [#:bluez @var{bluez}] @"
+
+#. type: deffn
+#: doc/guix.texi:14934
+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:14936
+msgid "Users need to be in the @code{lp} group to access the D-Bus service."
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:14941
+#, no-wrap
+msgid "sound support"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:14942
+#, no-wrap
+msgid "ALSA"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:14943
+#, no-wrap
+msgid "PulseAudio, sound support"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:14948
+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:14949
+#, no-wrap
+msgid "{Scheme Variable} alsa-service-type"
+msgstr "{Variable Scheme} alsa-service-type"
+
+#. type: deffn
+#: doc/guix.texi:14954
+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: example
+#: doc/guix.texi:14957
+#, no-wrap
+msgid "(service alsa-service-type)\n"
+msgstr "(service alsa-service-type)\n"
+
+#. type: deffn
+#: doc/guix.texi:14960
+msgid "See below for details about @code{alsa-configuration}."
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:14962
+#, no-wrap
+msgid "{Data Type} alsa-configuration"
+msgstr "{Tipo de datos} alsa-configuration"
+
+#. type: deftp
+#: doc/guix.texi:14964
+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:14966
+#, no-wrap
+msgid "@code{alsa-plugins} (default: @var{alsa-plugins})"
+msgstr "@code{alsa-plugins} (predeterminados: @var{alsa-plugins})"
+
+#. type: table
+#: doc/guix.texi:14968
+msgid "@code{alsa-plugins} package to use."
+msgstr "El paquete @code{alsa-plugins} usado."
+
+#. type: item
+#: doc/guix.texi:14969
+#, no-wrap
+msgid "@code{pulseaudio?} (default: @var{#t})"
+msgstr "@code{pulseaudio?} (predeterminado: @var{#t})"
+
+#. type: table
+#: doc/guix.texi:14972
+msgid "Whether ALSA applications should transparently be made to use the @uref{http://www.pulseaudio.org/, PulseAudio} sound server."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:14976
+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:14977
+#, no-wrap
+msgid "@code{extra-options} (default: @var{\"\"})"
+msgstr "@code{extra-options} (predeterminado: @var{\"\"})"
+
+#. type: table
+#: doc/guix.texi:14979
+msgid "String to append to the @file{/etc/asound.conf} file."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:14985
+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:14991
+#, no-wrap
+msgid ""
+"# In guix, we have to specify the absolute path for plugins.\n"
+"pcm_type.jack @{\n"
+"  lib \"/home/alice/.guix-profile/lib/alsa-lib/libasound_module_pcm_jack.so\"\n"
+"@}\n"
+"\n"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:15000
+#, no-wrap
+msgid ""
+"# Routing ALSA to jack:\n"
+"# <http://jackaudio.org/faq/routing_alsa.html>.\n"
+"pcm.rawjack @{\n"
+"  type jack\n"
+"  playback_ports @{\n"
+"    0 system:playback_1\n"
+"    1 system:playback_2\n"
+"  @}\n"
+"\n"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:15006
+#, no-wrap
+msgid ""
+"  capture_ports @{\n"
+"    0 system:capture_1\n"
+"    1 system:capture_2\n"
+"  @}\n"
+"@}\n"
+"\n"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:15013
+#, no-wrap
+msgid ""
+"pcm.!default @{\n"
+"  type plug\n"
+"  slave @{\n"
+"    pcm \"rawjack\"\n"
+"  @}\n"
+"@}\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:15017
+msgid "See @uref{https://www.alsa-project.org/main/index.php/Asoundrc} for the details."
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:15023
+#, no-wrap
+msgid "SQL"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:15025
+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:15026
+#, no-wrap
+msgid "{Scheme Procedure} postgresql-service [#:postgresql postgresql] @"
+msgstr "{Procedimiento Scheme} postgresql-service [#:postgresql postgresql] @"
+
+#. type: deffn
+#: doc/guix.texi:15031
+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:15035
+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: cindex
+#: doc/guix.texi:15036
+#, no-wrap
+msgid "postgresql extension-packages"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:15041
+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:15042
+#, no-wrap
+msgid "postgis"
+msgstr "postgis"
+
+#. type: example
+#: doc/guix.texi:15045
+#, no-wrap
+msgid ""
+"(use-package-modules databases geo)\n"
+"\n"
+msgstr ""
+"(use-package-modules databases geo)\n"
+"\n"
+
+#. type: example
+#: doc/guix.texi:15055
+#, no-wrap
+msgid ""
+"(operating-system\n"
+"  ...\n"
+"  ;; postgresql is required to run `psql' but postgis is not required for\n"
+"  ;; proper operation.\n"
+"  (packages (cons* postgresql %base-packages))\n"
+"  (services\n"
+"    (cons*\n"
+"      (postgresql-service #:extension-packages (list postgis))\n"
+"      %base-services)))\n"
+msgstr ""
+"(operating-system\n"
+"  ...\n"
+"  ;; postgresql es necesario para ejecutar `psql' pero no se necesita\n"
+"  ;; postgis para un funcionamiento correcto.\n"
+"  (packages (cons* postgresql %base-packages))\n"
+"  (services\n"
+"    (cons*\n"
+"      (postgresql-service #:extension-packages (list postgis))\n"
+"      %base-services)))\n"
+
+#. type: deffn
+#: doc/guix.texi:15059
+msgid "Then the extension becomes visible and you can initialise an empty geographic database in this way:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:15066
+#, no-wrap
+msgid ""
+"psql -U postgres\n"
+"> create database postgistest;\n"
+"> \\connect postgistest;\n"
+"> create extension postgis;\n"
+"> create extension postgis_topology;\n"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:15071
+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:15073
+#, no-wrap
+msgid "{Scheme Procedure} mysql-service [#:config (mysql-configuration)]"
+msgstr "{Procedimiento Scheme} mysql-service [#:config (mysql-configuration)]"
+
+#. type: deffn
+#: doc/guix.texi:15076
+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:15079
+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:15081
+#, no-wrap
+msgid "{Data Type} mysql-configuration"
+msgstr "{Tipo de datos} mysql-configuration"
+
+#. type: deftp
+#: doc/guix.texi:15083
+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:15085
+#, no-wrap
+msgid "@code{mysql} (default: @var{mariadb})"
+msgstr "@code{mysql} (predeterminado: @var{mariadb})"
+
+#. type: table
+#: doc/guix.texi:15088
+msgid "Package object of the MySQL database server, can be either @var{mariadb} or @var{mysql}."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:15091
+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:15092
+#, no-wrap
+msgid "@code{port} (default: @code{3306})"
+msgstr "@code{port} (predeterminado: @code{3306})"
+
+#. type: table
+#: doc/guix.texi:15094
+msgid "TCP port on which the database server listens for incoming connections."
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:15097
+#, no-wrap
+msgid "{Scheme Variable} memcached-service-type"
+msgstr "{Variable Scheme} memcached-service-type"
+
+#. type: defvr
+#: doc/guix.texi:15101
+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: example
+#: doc/guix.texi:15105
+#, no-wrap
+msgid "(service memcached-service-type)\n"
+msgstr "(service memcached-service-type)\n"
+
+#. type: deftp
+#: doc/guix.texi:15107
+#, no-wrap
+msgid "{Data Type} memcached-configuration"
+msgstr "{Tipo de datos} memcached-configuration"
+
+#. type: deftp
+#: doc/guix.texi:15109
+msgid "Data type representing the configuration of memcached."
+msgstr "Tipo de datos que representa la configuración de memcached."
+
+#. type: item
+#: doc/guix.texi:15111
+#, no-wrap
+msgid "@code{memcached} (default: @code{memcached})"
+msgstr "@code{memcached} (predeterminado: @code{memcached})"
+
+#. type: table
+#: doc/guix.texi:15113
+msgid "The Memcached package to use."
+msgstr "El paquete de Memcached usado."
+
+#. type: item
+#: doc/guix.texi:15114
+#, 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:15116
+msgid "Network interfaces on which to listen."
+msgstr "Interfaces de red por las que se esperan conexiones."
+
+#. type: item
+#: doc/guix.texi:15117
+#, no-wrap
+msgid "@code{tcp-port} (default: @code{11211})"
+msgstr "@code{tcp-port} (predeterminado: @code{11211})"
+
+#. type: table
+#: doc/guix.texi:15119
+msgid "Port on which to accept connections on,"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:15120
+#, no-wrap
+msgid "@code{udp-port} (default: @code{11211})"
+msgstr "@code{udp-port} (predeterminado: @code{11211})"
+
+#. type: table
+#: doc/guix.texi:15123
+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:15124
+#, no-wrap
+msgid "@code{additional-options} (default: @code{'()})"
+msgstr "@code{additional-options} (predeterminadas: @code{'()})"
+
+#. type: table
+#: doc/guix.texi:15126
+msgid "Additional command line options to pass to @code{memcached}."
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:15129
+#, no-wrap
+msgid "{Scheme Variable} mongodb-service-type"
+msgstr "{Variable Scheme} mongodb-service-type"
+
+#. type: defvr
+#: doc/guix.texi:15132
+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: example
+#: doc/guix.texi:15136
+#, no-wrap
+msgid "(service mongodb-service-type)\n"
+msgstr "(service mongodb-service-type)\n"
+
+#. type: deftp
+#: doc/guix.texi:15138
+#, no-wrap
+msgid "{Data Type} mongodb-configuration"
+msgstr "{Tipo de datos} mongodb-configuration"
+
+#. type: deftp
+#: doc/guix.texi:15140
+msgid "Data type representing the configuration of mongodb."
+msgstr "Tipo de datos que representa la configuración de GPM."
+
+#. type: item
+#: doc/guix.texi:15142
+#, no-wrap
+msgid "@code{mongodb} (default: @code{mongodb})"
+msgstr "@code{mongodb} (predeterminado: @code{mongodb})"
+
+#. type: table
+#: doc/guix.texi:15144
+msgid "The MongoDB package to use."
+msgstr "El paquete MongoDB usado."
+
+#. type: item
+#: doc/guix.texi:15145
+#, 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:15147
+msgid "The configuration file for MongoDB."
+msgstr "El fichero de configuración de MongoDB."
+
+#. type: item
+#: doc/guix.texi:15148
+#, no-wrap
+msgid "@code{data-directory} (default: @code{\"/var/lib/mongodb\"})"
+msgstr "@code{data-directory} (predeterminado: @code{\"/var/lib/mongodb\"})"
+
+#. type: table
+#: doc/guix.texi:15152
+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:15155
+#, no-wrap
+msgid "{Scheme Variable} redis-service-type"
+msgstr "{Variable Scheme} redis-service-type"
+
+#. type: defvr
+#: doc/guix.texi:15158
+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:15160
+#, no-wrap
+msgid "{Data Type} redis-configuration"
+msgstr "{Tipo de datos} redis-configuration"
+
+#. type: deftp
+#: doc/guix.texi:15162
+msgid "Data type representing the configuration of redis."
+msgstr "Tipo de datos que representa la configuración de redis."
+
+#. type: item
+#: doc/guix.texi:15164
+#, no-wrap
+msgid "@code{redis} (default: @code{redis})"
+msgstr "@code{redis} (predeterminado: @code{redis})"
+
+#. type: table
+#: doc/guix.texi:15166
+msgid "The Redis package to use."
+msgstr "El paquete Redis usado."
+
+#. type: item
+#: doc/guix.texi:15167
+#, 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:15169
+msgid "Network interface on which to listen."
+msgstr "La interfaz de red en la que se escucha."
+
+#. type: item
+#: doc/guix.texi:15170
+#, no-wrap
+msgid "@code{port} (default: @code{6379})"
+msgstr "@code{port} (predeterminado: @code{6379})"
+
+#. type: table
+#: doc/guix.texi:15173
+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:15174
+#, no-wrap
+msgid "@code{working-directory} (default: @code{\"/var/lib/redis\"})"
+msgstr "@code{working-directory} (predeterminado: @code{\"/var/lib/redis\"})"
+
+#. type: table
+#: doc/guix.texi:15176
+msgid "Directory in which to store the database and related files."
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:15182
+#, no-wrap
+msgid "mail"
+msgstr "correo"
+
+#. type: code{#1}
+#: doc/guix.texi:15183 doc/guix.texi:19383
+#, no-wrap
+msgid "email"
+msgstr "email"
+
+#. type: Plain text
+#: doc/guix.texi:15188
+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:15189
+#, no-wrap
+msgid "Dovecot Service"
+msgstr "Servicio Dovecot"
+
+#. type: deffn
+#: doc/guix.texi:15191
+#, no-wrap
+msgid "{Scheme Procedure} dovecot-service [#:config (dovecot-configuration)]"
+msgstr "{Procedimiento Scheme} dovecot-service [#:config (dovecot-configuration)]"
+
+#. type: deffn
+#: doc/guix.texi:15193
+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:15203
+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:15206
+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: example
+#: doc/guix.texi:15211
+#, no-wrap
+msgid ""
+"(dovecot-service #:config\n"
+"                 (dovecot-configuration\n"
+"                  (mail-location \"maildir:~/.mail\")))\n"
+msgstr ""
+"(dovecot-service #:config\n"
+"                 (dovecot-configuration\n"
+"                  (mail-location \"maildir:~/.correo\")))\n"
+
+#. type: Plain text
+#: doc/guix.texi:15219
+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:15229
+msgid "Available @code{dovecot-configuration} fields are:"
+msgstr "Los campos disponibles de @code{dovecot-configuration} son:"
+
+#. type: deftypevr
+#: doc/guix.texi:15230
+#, fuzzy, no-wrap
+msgid "{@code{dovecot-configuration} parameter} package dovecot"
+msgstr "{parámetro de @code{dovecot-configuration}} package dovecot"
+
+#. type: deftypevr
+#: doc/guix.texi:15232 doc/guix.texi:16538
+msgid "The dovecot package."
+msgstr "El paquete dovecot."
+
+#. type: deftypevr
+#: doc/guix.texi:15234
+#, fuzzy, no-wrap
+msgid "{@code{dovecot-configuration} parameter} comma-separated-string-list listen"
+msgstr "{parámetro de @code{dovecot-configuration}} comma-separated-string-list listen"
+
+#. type: deftypevr
+#: doc/guix.texi:15240
+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:15242
+#, fuzzy, no-wrap
+msgid "{@code{dovecot-configuration} parameter} protocol-configuration-list protocols"
+msgstr "{parámetro de @code{dovecot-configuration}} protocol-configuration-list protocols"
+
+#. type: deftypevr
+#: doc/guix.texi:15245
+msgid "List of protocols we want to serve.  Available protocols include @samp{imap}, @samp{pop3}, and @samp{lmtp}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15247
+msgid "Available @code{protocol-configuration} fields are:"
+msgstr "Los campos disponibles de @code{protocol-configuration} son:"
+
+#. type: deftypevr
+#: doc/guix.texi:15248
+#, fuzzy, no-wrap
+msgid "{@code{protocol-configuration} parameter} string name"
+msgstr "{parámetro de @code{protocol-configuration}} string name"
+
+#. type: deftypevr
+#: doc/guix.texi:15250
+msgid "The name of the protocol."
+msgstr "El nombre del protocolo."
+
+#. type: deftypevr
+#: doc/guix.texi:15252
+#, fuzzy, 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:15256
+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:15258
+#, fuzzy, no-wrap
+msgid "{@code{protocol-configuration} parameter} space-separated-string-list mail-plugins"
+msgstr "{parámetro de @code{protocol-configuration}} space-separated-string-list mail-plugins"
+
+#. type: deftypevr
+#: doc/guix.texi:15260
+msgid "Space separated list of plugins to load."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15262
+#, fuzzy, no-wrap
+msgid "{@code{protocol-configuration} parameter} non-negative-integer mail-max-userip-connections"
+msgstr "{parámetro de @code{protocol-configuration}} non-negative-integer mail-max-userip-connections"
+
+#. type: deftypevr
+#: doc/guix.texi:15266
+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:15270
+#, fuzzy, no-wrap
+msgid "{@code{dovecot-configuration} parameter} service-configuration-list services"
+msgstr "{parámetro de @code{dovecot-configuration}} service-configuration-list services"
+
+#. type: deftypevr
+#: doc/guix.texi:15274
+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:15276
+msgid "Available @code{service-configuration} fields are:"
+msgstr "Los campos disponibles de @code{service-configuration} son:"
+
+#. type: deftypevr
+#: doc/guix.texi:15277
+#, fuzzy, no-wrap
+msgid "{@code{service-configuration} parameter} string kind"
+msgstr "{parámetro de @code{service-configuration}} string kind"
+
+#. type: deftypevr
+#: doc/guix.texi:15282
+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:15284
+#, fuzzy, no-wrap
+msgid "{@code{service-configuration} parameter} listener-configuration-list listeners"
+msgstr "{parámetro de @code{service-configuration}} listener-configuration-list listeners"
+
+#. type: deftypevr
+#: doc/guix.texi:15289
+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:15291
+msgid "Available @code{unix-listener-configuration} fields are:"
+msgstr "Los campos disponibles de @code{unix-listener-configuration} son:"
+
+#. type: deftypevr
+#: doc/guix.texi:15292
+#, fuzzy, 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:15295 doc/guix.texi:15318
+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:15297
+#, fuzzy, 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:15300 doc/guix.texi:15323
+msgid "The access mode for the socket.  Defaults to @samp{\"0600\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15302
+#, fuzzy, 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:15305 doc/guix.texi:15328
+msgid "The user to own the socket.  Defaults to @samp{\"\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15307
+#, fuzzy, 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:15310 doc/guix.texi:15333
+msgid "The group to own the socket.  Defaults to @samp{\"\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15314
+msgid "Available @code{fifo-listener-configuration} fields are:"
+msgstr "Los campos disponibles de @code{fifo-listener-configuration} son:"
+
+#. type: deftypevr
+#: doc/guix.texi:15315
+#, fuzzy, 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:15320
+#, fuzzy, 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:15325
+#, fuzzy, 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:15330
+#, fuzzy, 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:15337
+msgid "Available @code{inet-listener-configuration} fields are:"
+msgstr "Los campos disponibles de @code{inet-listener-configuration} son:"
+
+#. type: deftypevr
+#: doc/guix.texi:15338
+#, fuzzy, 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:15340
+msgid "The protocol to listen for."
+msgstr "El protocolo con el que se esperan las conexiones."
+
+#. type: deftypevr
+#: doc/guix.texi:15342
+#, fuzzy, 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:15345
+msgid "The address on which to listen, or empty for all addresses.  Defaults to @samp{\"\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15347
+#, fuzzy, no-wrap
+msgid "{@code{inet-listener-configuration} parameter} non-negative-integer port"
+msgstr "{parámetro de @code{inet-listener-configuration}} non-negative-integer port"
+
+#. type: deftypevr
+#: doc/guix.texi:15349
+msgid "The port on which to listen."
+msgstr "El puerto en el que esperarán conexiones."
+
+#. type: deftypevr
+#: doc/guix.texi:15351
+#, fuzzy, 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:15355
+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:15359
+#, fuzzy, no-wrap
+msgid "{@code{service-configuration} parameter} non-negative-integer client-limit"
+msgstr "{parámetro de @code{service-configuration}} non-negative-integer client-limit"
+
+#. type: deftypevr
+#: doc/guix.texi:15364
+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:15369
+#, fuzzy, no-wrap
+msgid "{@code{service-configuration} parameter} non-negative-integer service-count"
+msgstr "{parámetro de @code{service-configuration}} non-negative-integer service-count"
+
+#. type: deftypevr
+#: doc/guix.texi:15374
+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:15377
+#, fuzzy, no-wrap
+msgid "{@code{service-configuration} parameter} non-negative-integer process-limit"
+msgstr "{parámetro de @code{service-configuration}} non-negative-integer process-limit"
+
+#. type: deftypevr
+#: doc/guix.texi:15380
+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:15385
+#, fuzzy, no-wrap
+msgid "{@code{service-configuration} parameter} non-negative-integer process-min-avail"
+msgstr "{parámetro de @code{service-configuration}} non-negative-integer process-min-avail"
+
+#. type: deftypevr
+#: doc/guix.texi:15388
+msgid "Number of processes to always keep waiting for more connections.  Defaults to @samp{0}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15390
+#, fuzzy, no-wrap
+msgid "{@code{service-configuration} parameter} non-negative-integer vsz-limit"
+msgstr "{parámetro de @code{service-configuration}} non-negative-integer vsz-limit"
+
+#. type: deftypevr
+#: doc/guix.texi:15394
+msgid "If you set @samp{service-count 0}, you probably need to grow this.  Defaults to @samp{256000000}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15398
+#, fuzzy, 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:15401
+msgid "Dict configuration, as created by the @code{dict-configuration} constructor."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15403
+msgid "Available @code{dict-configuration} fields are:"
+msgstr "Los campos disponibles de @code{dict-configuration} son:"
+
+#. type: deftypevr
+#: doc/guix.texi:15404
+#, fuzzy, no-wrap
+msgid "{@code{dict-configuration} parameter} free-form-fields entries"
+msgstr "{parámetro de @code{dict-configuration}} free-form-fields entries"
+
+#. type: deftypevr
+#: doc/guix.texi:15407
+msgid "A list of key-value pairs that this dict should hold.  Defaults to @samp{()}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15411
+#, fuzzy, no-wrap
+msgid "{@code{dovecot-configuration} parameter} passdb-configuration-list passdbs"
+msgstr "{parámetro de @code{dovecot-configuration}} passdb-configuration-list passdbs"
+
+#. type: deftypevr
+#: doc/guix.texi:15414
+msgid "A list of passdb configurations, each one created by the @code{passdb-configuration} constructor."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15416
+msgid "Available @code{passdb-configuration} fields are:"
+msgstr "Los campos disponibles de @code{passdb-configuration} son:"
+
+#. type: deftypevr
+#: doc/guix.texi:15417
+#, fuzzy, no-wrap
+msgid "{@code{passdb-configuration} parameter} string driver"
+msgstr "{parámetro de @code{passdb-configuration}} string driver"
+
+#. type: deftypevr
+#: doc/guix.texi:15422
+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:15424
+#, fuzzy, no-wrap
+msgid "{@code{passdb-configuration} parameter} space-separated-string-list args"
+msgstr "{parámetro de @code{passdb-configuration}} space-separated-string-list args"
+
+#. type: deftypevr
+#: doc/guix.texi:15427
+msgid "Space separated list of arguments to the passdb driver.  Defaults to @samp{\"\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15431
+#, fuzzy, no-wrap
+msgid "{@code{dovecot-configuration} parameter} userdb-configuration-list userdbs"
+msgstr "{parámetro de @code{dovecot-configuration}} userdb-configuration-list userdbs"
+
+#. type: deftypevr
+#: doc/guix.texi:15434
+msgid "List of userdb configurations, each one created by the @code{userdb-configuration} constructor."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15436
+msgid "Available @code{userdb-configuration} fields are:"
+msgstr "Los campos disponibles de @code{userdb-configuration} son:"
+
+#. type: deftypevr
+#: doc/guix.texi:15437
+#, fuzzy, no-wrap
+msgid "{@code{userdb-configuration} parameter} string driver"
+msgstr "{parámetro de @code{userdb-configuration}} string driver"
+
+#. type: deftypevr
+#: doc/guix.texi:15441
+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:15443
+#, fuzzy, no-wrap
+msgid "{@code{userdb-configuration} parameter} space-separated-string-list args"
+msgstr "{parámetro de @code{userdb-configuration}} space-separated-string-list args"
+
+#. type: deftypevr
+#: doc/guix.texi:15446
+msgid "Space separated list of arguments to the userdb driver.  Defaults to @samp{\"\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15448
+#, fuzzy, no-wrap
+msgid "{@code{userdb-configuration} parameter} free-form-args override-fields"
+msgstr "{parámetro de @code{userdb-configuration}} free-form-args override-fields"
+
+#. type: deftypevr
+#: doc/guix.texi:15451
+msgid "Override fields from passwd.  Defaults to @samp{()}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15455
+#, fuzzy, 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:15458
+msgid "Plug-in configuration, created by the @code{plugin-configuration} constructor."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15460
+#, fuzzy, no-wrap
+msgid "{@code{dovecot-configuration} parameter} list-of-namespace-configuration namespaces"
+msgstr "{parámetro de @code{dovecot-configuration}} list-of-namespace-configuration namespaces"
+
+#. type: deftypevr
+#: doc/guix.texi:15463
+msgid "List of namespaces.  Each item in the list is created by the @code{namespace-configuration} constructor."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15465
+msgid "Available @code{namespace-configuration} fields are:"
+msgstr "Los campos disponibles de @code{namespace-configuration} son:"
+
+#. type: deftypevr
+#: doc/guix.texi:15466
+#, fuzzy, no-wrap
+msgid "{@code{namespace-configuration} parameter} string name"
+msgstr "{parámetro de @code{namespace-configuration}} string name"
+
+#. type: deftypevr
+#: doc/guix.texi:15468
+msgid "Name for this namespace."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15470
+#, fuzzy, no-wrap
+msgid "{@code{namespace-configuration} parameter} string type"
+msgstr "{parámetro de @code{namespace-configuration}} string type"
+
+#. type: deftypevr
+#: doc/guix.texi:15473
+msgid "Namespace type: @samp{private}, @samp{shared} or @samp{public}.  Defaults to @samp{\"private\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15475
+#, fuzzy, no-wrap
+msgid "{@code{namespace-configuration} parameter} string separator"
+msgstr "{parámetro de @code{namespace-configuration}} string separator"
+
+#. type: deftypevr
+#: doc/guix.texi:15481
+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:15483
+#, fuzzy, no-wrap
+msgid "{@code{namespace-configuration} parameter} string prefix"
+msgstr "{parámetro de @code{namespace-configuration}} string prefix"
+
+#. type: deftypevr
+#: doc/guix.texi:15487
+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:15489
+#, fuzzy, no-wrap
+msgid "{@code{namespace-configuration} parameter} string location"
+msgstr "{parámetro de @code{namespace-configuration}} string location"
+
+#. type: deftypevr
+#: doc/guix.texi:15493
+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:15495
+#, fuzzy, no-wrap
+msgid "{@code{namespace-configuration} parameter} boolean inbox?"
+msgstr "{parámetro de @code{namespace-configuration}} boolean inbox?"
+
+#. type: deftypevr
+#: doc/guix.texi:15499
+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:15501
+#, fuzzy, no-wrap
+msgid "{@code{namespace-configuration} parameter} boolean hidden?"
+msgstr "{parámetro de @code{namespace-configuration}} boolean hidden?"
+
+#. type: deftypevr
+#: doc/guix.texi:15509
+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:15511
+#, fuzzy, no-wrap
+msgid "{@code{namespace-configuration} parameter} boolean list?"
+msgstr "{parámetro de @code{namespace-configuration}} boolean list?"
+
+#. type: deftypevr
+#: doc/guix.texi:15517
+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:15519
+#, fuzzy, no-wrap
+msgid "{@code{namespace-configuration} parameter} boolean subscriptions?"
+msgstr "{parámetro de @code{namespace-configuration}} boolean subscriptions?"
+
+#. type: deftypevr
+#: doc/guix.texi:15524
+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:15526
+#, fuzzy, no-wrap
+msgid "{@code{namespace-configuration} parameter} mailbox-configuration-list mailboxes"
+msgstr "{parámetro de @code{namespace-configuration}} mailbox-configuration-list mailboxes"
+
+#. type: deftypevr
+#: doc/guix.texi:15529
+msgid "List of predefined mailboxes in this namespace.  Defaults to @samp{()}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15531
+msgid "Available @code{mailbox-configuration} fields are:"
+msgstr "Los campos disponibles de @code{mailbox-configuration} son:"
+
+#. type: deftypevr
+#: doc/guix.texi:15532
+#, fuzzy, no-wrap
+msgid "{@code{mailbox-configuration} parameter} string name"
+msgstr "{parámetro de @code{mailbox-configuration}} string name"
+
+#. type: deftypevr
+#: doc/guix.texi:15534
+msgid "Name for this mailbox."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15536
+#, fuzzy, no-wrap
+msgid "{@code{mailbox-configuration} parameter} string auto"
+msgstr "{parámetro de @code{mailbox-configuration}} string auto"
+
+#. type: deftypevr
+#: doc/guix.texi:15540
+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:15542
+#, fuzzy, no-wrap
+msgid "{@code{mailbox-configuration} parameter} space-separated-string-list special-use"
+msgstr "{parámetro de @code{mailbox-configuration}} space-separated-string-list special-use"
+
+#. type: deftypevr
+#: doc/guix.texi:15547
+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:15553
+#, fuzzy, no-wrap
+msgid "{@code{dovecot-configuration} parameter} file-name base-dir"
+msgstr "{parámetro de @code{dovecot-configuration}} file-name base-dir"
+
+#. type: deftypevr
+#: doc/guix.texi:15556
+msgid "Base directory where to store runtime data.  Defaults to @samp{\"/var/run/dovecot/\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15558
+#, fuzzy, 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:15561
+msgid "Greeting message for clients.  Defaults to @samp{\"Dovecot ready.\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15563
+#, fuzzy, no-wrap
+msgid "{@code{dovecot-configuration} parameter} space-separated-string-list login-trusted-networks"
+msgstr "{parámetro de @code{dovecot-configuration}} space-separated-string-list login-trusted-networks"
+
+#. type: deftypevr
+#: doc/guix.texi:15570
+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:15572
+#, fuzzy, no-wrap
+msgid "{@code{dovecot-configuration} parameter} space-separated-string-list login-access-sockets"
+msgstr "{parámetro de @code{dovecot-configuration}} space-separated-string-list login-access-sockets"
+
+#. type: deftypevr
+#: doc/guix.texi:15575
+msgid "List of login access check sockets (e.g.@: tcpwrap).  Defaults to @samp{()}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15577
+#, fuzzy, 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:15583
+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:15585
+#, fuzzy, 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:15591
+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:15593
+#, fuzzy, no-wrap
+msgid "{@code{dovecot-configuration} parameter} non-negative-integer doveadm-worker-count"
+msgstr "{parámetro de @code{dovecot-configuration}} non-negative-integer doveadm-worker-count"
+
+#. type: deftypevr
+#: doc/guix.texi:15597
+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:15599
+#, fuzzy, 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:15602
+msgid "UNIX socket or host:port used for connecting to doveadm server.  Defaults to @samp{\"doveadm-server\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15604
+#, fuzzy, no-wrap
+msgid "{@code{dovecot-configuration} parameter} space-separated-string-list import-environment"
+msgstr "{parámetro de @code{dovecot-configuration}} space-separated-string-list import-environment"
+
+#. type: deftypevr
+#: doc/guix.texi:15608
+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:15610
+#, fuzzy, 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:15617
+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:15619
+#, fuzzy, no-wrap
+msgid "{@code{dovecot-configuration} parameter} non-negative-integer auth-cache-size"
+msgstr "{parámetro de @code{dovecot-configuration}} non-negative-integer auth-cache-size"
+
+#. type: deftypevr
+#: doc/guix.texi:15624
+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:15626
+#, fuzzy, 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:15634
+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:15636
+#, fuzzy, 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:15640
+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:15642
+#, fuzzy, no-wrap
+msgid "{@code{dovecot-configuration} parameter} space-separated-string-list auth-realms"
+msgstr "{parámetro de @code{dovecot-configuration}} space-separated-string-list auth-realms"
+
+#. type: deftypevr
+#: doc/guix.texi:15648
+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:15650
+#, fuzzy, 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:15655
+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:15657
+#, fuzzy, 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:15664
+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:15666
+#, fuzzy, 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:15672
+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:15674
+#, fuzzy, 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:15681
+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:15683
+#, fuzzy, 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:15691
+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:15693
+#, fuzzy, 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:15697
+msgid "Username to use for users logging in with ANONYMOUS SASL mechanism.  Defaults to @samp{\"anonymous\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15699
+#, fuzzy, no-wrap
+msgid "{@code{dovecot-configuration} parameter} non-negative-integer auth-worker-max-count"
+msgstr "{parámetro de @code{dovecot-configuration}} non-negative-integer auth-worker-max-count"
+
+#. type: deftypevr
+#: doc/guix.texi:15704
+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:15706
+#, fuzzy, no-wrap
+msgid "{@code{dovecot-configuration} parameter} string auth-gssapi-hostname"
+msgstr "{parámetro de @code{dovecot-configuration}} string auth-gssapi-hostname"
+
+#. type: deftypevr
+#: doc/guix.texi:15711
+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:15713
+#, fuzzy, no-wrap
+msgid "{@code{dovecot-configuration} parameter} string auth-krb5-keytab"
+msgstr "{parámetro de @code{dovecot-configuration}} string auth-krb5-keytab"
+
+#. type: deftypevr
+#: doc/guix.texi:15719
+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:15721
+#, fuzzy, no-wrap
+msgid "{@code{dovecot-configuration} parameter} boolean auth-use-winbind?"
+msgstr "{parámetro de @code{dovecot-configuration}} boolean auth-use-winbind?"
+
+#. type: deftypevr
+#: doc/guix.texi:15726
+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:15728
+#, fuzzy, no-wrap
+msgid "{@code{dovecot-configuration} parameter} file-name auth-winbind-helper-path"
+msgstr "{parámetro de @code{dovecot-configuration}} file-name auth-winbind-helper-path"
+
+#. type: deftypevr
+#: doc/guix.texi:15731
+msgid "Path for Samba's @samp{ntlm-auth} helper binary.  Defaults to @samp{\"/usr/bin/ntlm_auth\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15733
+#, fuzzy, 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:15736
+msgid "Time to delay before replying to failed authentications.  Defaults to @samp{\"2 secs\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15738
+#, fuzzy, 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:15742
+msgid "Require a valid SSL client certificate or the authentication fails.  Defaults to @samp{#f}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15744
+#, fuzzy, 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:15749
+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:15751
+#, fuzzy, no-wrap
+msgid "{@code{dovecot-configuration} parameter} space-separated-string-list auth-mechanisms"
+msgstr "{parámetro de @code{dovecot-configuration}} space-separated-string-list auth-mechanisms"
+
+#. type: deftypevr
+#: doc/guix.texi:15757
+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:15759
+#, fuzzy, no-wrap
+msgid "{@code{dovecot-configuration} parameter} space-separated-string-list director-servers"
+msgstr "{parámetro de @code{dovecot-configuration}} space-separated-string-list director-servers"
+
+#. type: deftypevr
+#: doc/guix.texi:15764
+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:15766
+#, fuzzy, no-wrap
+msgid "{@code{dovecot-configuration} parameter} space-separated-string-list director-mail-servers"
+msgstr "{parámetro de @code{dovecot-configuration}} space-separated-string-list director-mail-servers"
+
+#. type: deftypevr
+#: doc/guix.texi:15770
+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:15772
+#, fuzzy, 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:15776
+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:15778
+#, fuzzy, 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:15783
+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:15785
+#, fuzzy, 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:15789
+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:15791
+#, fuzzy, 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:15795
+msgid "Log file to use for informational messages.  Defaults to @samp{log-path}.  Defaults to @samp{\"\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15797
+#, fuzzy, 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:15801
+msgid "Log file to use for debug messages.  Defaults to @samp{info-log-path}.  Defaults to @samp{\"\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15803
+#, fuzzy, no-wrap
+msgid "{@code{dovecot-configuration} parameter} string syslog-facility"
+msgstr "{parámetro de @code{dovecot-configuration}} string syslog-facility"
+
+#. type: deftypevr
+#: doc/guix.texi:15808
+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:15810
+#, fuzzy, 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:15814
+msgid "Log unsuccessful authentication attempts and the reasons why they failed.  Defaults to @samp{#f}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15816
+#, fuzzy, no-wrap
+msgid "{@code{dovecot-configuration} parameter} boolean auth-verbose-passwords?"
+msgstr "{parámetro de @code{dovecot-configuration}} boolean auth-verbose-passwords?"
+
+#. type: deftypevr
+#: doc/guix.texi:15823
+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{#f}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15825
+#, fuzzy, no-wrap
+msgid "{@code{dovecot-configuration} parameter} boolean auth-debug?"
+msgstr "{parámetro de @code{dovecot-configuration}} boolean auth-debug?"
+
+#. type: deftypevr
+#: doc/guix.texi:15829
+msgid "Even more verbose logging for debugging purposes.  Shows for example SQL queries.  Defaults to @samp{#f}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15831
+#, fuzzy, no-wrap
+msgid "{@code{dovecot-configuration} parameter} boolean auth-debug-passwords?"
+msgstr "{parámetro de @code{dovecot-configuration}} boolean auth-debug-passwords?"
+
+#. type: deftypevr
+#: doc/guix.texi:15836
+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:15838
+#, fuzzy, no-wrap
+msgid "{@code{dovecot-configuration} parameter} boolean mail-debug?"
+msgstr "{parámetro de @code{dovecot-configuration}} boolean mail-debug?"
+
+#. type: deftypevr
+#: doc/guix.texi:15842
+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:15844
+#, fuzzy, 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:15847
+msgid "Show protocol level SSL errors.  Defaults to @samp{#f}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15849
+#, fuzzy, 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:15853
+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:15855
+#, fuzzy, no-wrap
+msgid "{@code{dovecot-configuration} parameter} space-separated-string-list login-log-format-elements"
+msgstr "{parámetro de @code{dovecot-configuration}} space-separated-string-list login-log-format-elements"
+
+#. type: deftypevr
+#: doc/guix.texi:15859
+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:15861
+#, fuzzy, 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:15865
+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:15867
+#, fuzzy, 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:15871
+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:15873
+#, fuzzy, 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:15875
+msgid "Format to use for logging mail deliveries.  You can use variables:"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:15876
+#, no-wrap
+msgid "%$"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:15878
+msgid "Delivery status message (e.g.@: @samp{saved to INBOX})"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:15878
+#, no-wrap
+msgid "%m"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:15880
+msgid "Message-ID"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:15880 doc/guix.texi:16412
+#, no-wrap
+msgid "%s"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:15882
+msgid "Subject"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:15882
+#, no-wrap
+msgid "%f"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:15884
+msgid "From address"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:15886
+msgid "Physical size"
+msgstr "Tamaño físico"
+
+#. type: item
+#: doc/guix.texi:15886
+#, no-wrap
+msgid "%w"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:15888
+msgid "Virtual size."
+msgstr "Tamaño virtual."
+
+#. type: deftypevr
+#: doc/guix.texi:15890
+msgid "Defaults to @samp{\"msgid=%m: %$\"}."
+msgstr "El valor predeterminado es @samp{\"msgid=%m: %$\"}."
+
+#. type: deftypevr
+#: doc/guix.texi:15892
+#, fuzzy, no-wrap
+msgid "{@code{dovecot-configuration} parameter} string mail-location"
+msgstr "{parámetro de @code{dovecot-configuration}} string mail-location"
+
+#. type: deftypevr
+#: doc/guix.texi:15897
+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:15903
+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 ""
+
+#. type: deftypevr
+#: doc/guix.texi:15905
+msgid "There are a few special variables you can use, eg.:"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:15909
+msgid "username"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:15909 doc/guix.texi:16408
+#, no-wrap
+msgid "%n"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:15911
+msgid "user part in user@@domain, same as %u if there's no domain"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:15911
+#, no-wrap
+msgid "%d"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:15913
+msgid "domain part in user@@domain, empty if there's no domain"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:15913
+#, no-wrap
+msgid "%h"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:15915
+msgid "home director"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15918
+msgid "See doc/wiki/Variables.txt for full list.  Some examples:"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:15919
+#, no-wrap
+msgid "maildir:~/Maildir"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:15920
+#, no-wrap
+msgid "mbox:~/mail:INBOX=/var/mail/%u"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:15921
+#, no-wrap
+msgid "mbox:/var/mail/%d/%1n/%n:INDEX=/var/indexes/%d/%1n/%"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15926
+#, fuzzy, no-wrap
+msgid "{@code{dovecot-configuration} parameter} string mail-uid"
+msgstr "{parámetro de @code{dovecot-configuration}} string mail-uid"
+
+#. type: deftypevr
+#: doc/guix.texi:15931
+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:15933
+#, fuzzy, 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:15938
+#, fuzzy, no-wrap
+msgid "{@code{dovecot-configuration} parameter} string mail-privileged-group"
+msgstr "{parámetro de @code{dovecot-configuration}} string mail-privileged-group"
+
+#. type: deftypevr
+#: doc/guix.texi:15944
+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 ""
+
+#. type: deftypevr
+#: doc/guix.texi:15946
+#, fuzzy, no-wrap
+msgid "{@code{dovecot-configuration} parameter} string mail-access-groups"
+msgstr "{parámetro de @code{dovecot-configuration}} string mail-access-groups"
+
+#. type: deftypevr
+#: doc/guix.texi:15954
+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 ""
+
+#. type: deftypevr
+#: doc/guix.texi:15956
+#, fuzzy, no-wrap
+msgid "{@code{dovecot-configuration} parameter} boolean mail-full-filesystem-access?"
+msgstr "{parámetro de @code{dovecot-configuration}} boolean mail-full-filesystem-access?"
+
+#. type: deftypevr
+#: doc/guix.texi:15962
+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 ""
+
+#. type: deftypevr
+#: doc/guix.texi:15964
+#, fuzzy, 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:15968
+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 ""
+
+#. type: deftypevr
+#: doc/guix.texi:15970
+#, fuzzy, no-wrap
+msgid "{@code{dovecot-configuration} parameter} boolean dotlock-use-excl?"
+msgstr "{parámetro de @code{dovecot-configuration}} boolean dotlock-use-excl?"
+
+#. type: deftypevr
+#: doc/guix.texi:15975
+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:15977
+#, fuzzy, 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:15979
+msgid "When to use fsync() or fdatasync() calls:"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:15980
+#, no-wrap
+msgid "optimized"
+msgstr "optimized"
+
+#. type: table
+#: doc/guix.texi:15982
+msgid "Whenever necessary to avoid losing important data"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:15984
+msgid "Useful with e.g.@: NFS when write()s are delayed"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:15986
+msgid "Never use it (best performance, but crashes can lose data)."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15988
+msgid "Defaults to @samp{\"optimized\"}."
+msgstr "El valor predeterminado es @samp{\"optimized\"}."
+
+#. type: deftypevr
+#: doc/guix.texi:15990
+#, fuzzy, no-wrap
+msgid "{@code{dovecot-configuration} parameter} boolean mail-nfs-storage?"
+msgstr "{parámetro de @code{dovecot-configuration}} boolean mail-nfs-storage?"
+
+#. type: deftypevr
+#: doc/guix.texi:15995
+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:15997
+#, fuzzy, 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:16001
+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:16003
+#, fuzzy, no-wrap
+msgid "{@code{dovecot-configuration} parameter} string lock-method"
+msgstr "{parámetro de @code{dovecot-configuration}} string lock-method"
+
+#. type: deftypevr
+#: doc/guix.texi:16009
+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:16011
+#, fuzzy, no-wrap
+msgid "{@code{dovecot-configuration} parameter} file-name mail-temp-dir"
+msgstr "{parámetro de @code{dovecot-configuration}} file-name mail-temp-dir"
+
+#. type: deftypevr
+#: doc/guix.texi:16015
+msgid "Directory in which LDA/LMTP temporarily stores incoming mails >128 kB.  Defaults to @samp{\"/tmp\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16017
+#, fuzzy, no-wrap
+msgid "{@code{dovecot-configuration} parameter} non-negative-integer first-valid-uid"
+msgstr "{parámetro de @code{dovecot-configuration}} non-negative-integer first-valid-uid"
+
+#. type: deftypevr
+#: doc/guix.texi:16023
+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:16025
+#, fuzzy, no-wrap
+msgid "{@code{dovecot-configuration} parameter} non-negative-integer last-valid-uid"
+msgstr "{parámetro de @code{dovecot-configuration}} non-negative-integer last-valid-uid"
+
+#. type: deftypevr
+#: doc/guix.texi:16030
+#, fuzzy, no-wrap
+msgid "{@code{dovecot-configuration} parameter} non-negative-integer first-valid-gid"
+msgstr "{parámetro de @code{dovecot-configuration}} non-negative-integer first-valid-gid"
+
+#. type: deftypevr
+#: doc/guix.texi:16035
+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:16037
+#, fuzzy, no-wrap
+msgid "{@code{dovecot-configuration} parameter} non-negative-integer last-valid-gid"
+msgstr "{parámetro de @code{dovecot-configuration}} non-negative-integer last-valid-gid"
+
+#. type: deftypevr
+#: doc/guix.texi:16042
+#, fuzzy, no-wrap
+msgid "{@code{dovecot-configuration} parameter} non-negative-integer mail-max-keyword-length"
+msgstr "{parámetro de @code{dovecot-configuration}} non-negative-integer mail-max-keyword-length"
+
+#. type: deftypevr
+#: doc/guix.texi:16046
+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:16048
+#, fuzzy, no-wrap
+msgid "{@code{dovecot-configuration} parameter} colon-separated-file-name-list valid-chroot-dirs"
+msgstr "{parámetro de @code{dovecot-configuration}} colon-separated-file-name-list valid-chroot-dirs"
+
+#. type: deftypevr
+#: doc/guix.texi:16058
+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 ""
+
+#. type: deftypevr
+#: doc/guix.texi:16060
+#, fuzzy, 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:16069
+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 ""
+
+#. type: deftypevr
+#: doc/guix.texi:16071
+#, fuzzy, no-wrap
+msgid "{@code{dovecot-configuration} parameter} file-name auth-socket-path"
+msgstr "{parámetro de @code{dovecot-configuration}} file-name auth-socket-path"
+
+#. type: deftypevr
+#: doc/guix.texi:16075
+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:16077
+#, fuzzy, no-wrap
+msgid "{@code{dovecot-configuration} parameter} file-name mail-plugin-dir"
+msgstr "{parámetro de @code{dovecot-configuration}} file-name mail-plugin-dir"
+
+#. type: deftypevr
+#: doc/guix.texi:16080
+msgid "Directory where to look up mail plugins.  Defaults to @samp{\"/usr/lib/dovecot\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16082
+#, fuzzy, no-wrap
+msgid "{@code{dovecot-configuration} parameter} space-separated-string-list mail-plugins"
+msgstr "{parámetro de @code{dovecot-configuration}} space-separated-string-list mail-plugins"
+
+#. type: deftypevr
+#: doc/guix.texi:16086
+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:16088
+#, fuzzy, no-wrap
+msgid "{@code{dovecot-configuration} parameter} non-negative-integer mail-cache-min-mail-count"
+msgstr "{parámetro de @code{dovecot-configuration}} non-negative-integer mail-cache-min-mail-count"
+
+#. type: deftypevr
+#: doc/guix.texi:16093
+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:16095
+#, fuzzy, no-wrap
+msgid "{@code{dovecot-configuration} parameter} string mailbox-idle-check-interval"
+msgstr "{parámetro de @code{dovecot-configuration}} string mailbox-idle-check-interval"
+
+#. type: deftypevr
+#: doc/guix.texi:16102
+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:16104
+#, fuzzy, no-wrap
+msgid "{@code{dovecot-configuration} parameter} boolean mail-save-crlf?"
+msgstr "{parámetro de @code{dovecot-configuration}} boolean mail-save-crlf?"
+
+#. type: deftypevr
+#: doc/guix.texi:16111
+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:16113
+#, fuzzy, no-wrap
+msgid "{@code{dovecot-configuration} parameter} boolean maildir-stat-dirs?"
+msgstr "{parámetro de @code{dovecot-configuration}} boolean maildir-stat-dirs?"
+
+#. type: deftypevr
+#: doc/guix.texi:16121
+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:16123
+#, fuzzy, no-wrap
+msgid "{@code{dovecot-configuration} parameter} boolean maildir-copy-with-hardlinks?"
+msgstr "{parámetro de @code{dovecot-configuration}} boolean maildir-copy-with-hardlinks?"
+
+#. type: deftypevr
+#: doc/guix.texi:16128
+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:16130
+#, fuzzy, no-wrap
+msgid "{@code{dovecot-configuration} parameter} boolean maildir-very-dirty-syncs?"
+msgstr "{parámetro de @code{dovecot-configuration}} boolean maildir-very-dirty-syncs?"
+
+#. type: deftypevr
+#: doc/guix.texi:16135
+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:16137
+#, fuzzy, no-wrap
+msgid "{@code{dovecot-configuration} parameter} space-separated-string-list mbox-read-locks"
+msgstr "{parámetro de @code{dovecot-configuration}} space-separated-string-list mbox-read-locks"
+
+#. type: deftypevr
+#: doc/guix.texi:16140
+msgid "Which locking methods to use for locking mbox.  There are four available:"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:16142
+#, no-wrap
+msgid "dotlock"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:16146
+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:16146
+#, no-wrap
+msgid "dotlock-try"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:16149
+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:16149
+#, no-wrap
+msgid "fcntl"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:16151
+msgid "Use this if possible.  Works with NFS too if lockd is used."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:16151
+#, no-wrap
+msgid "flock"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:16153 doc/guix.texi:16155
+msgid "May not exist in all systems.  Doesn't work with NFS."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:16153
+#, no-wrap
+msgid "lockf"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16161
+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:16163
+#, fuzzy, no-wrap
+msgid "{@code{dovecot-configuration} parameter} space-separated-string-list mbox-write-locks"
+msgstr "{parámetro de @code{dovecot-configuration}} space-separated-string-list mbox-write-locks"
+
+#. type: deftypevr
+#: doc/guix.texi:16167
+#, fuzzy, 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:16170
+msgid "Maximum time to wait for lock (all of them) before aborting.  Defaults to @samp{\"5 mins\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16172
+#, fuzzy, 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:16176
+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:16178
+#, fuzzy, 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:16189
+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:16191
+#, fuzzy, no-wrap
+msgid "{@code{dovecot-configuration} parameter} boolean mbox-very-dirty-syncs?"
+msgstr "{parámetro de @code{dovecot-configuration}} boolean mbox-very-dirty-syncs?"
+
+#. type: deftypevr
+#: doc/guix.texi:16196
+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:16198
+#, fuzzy, no-wrap
+msgid "{@code{dovecot-configuration} parameter} boolean mbox-lazy-writes?"
+msgstr "{parámetro de @code{dovecot-configuration}} boolean mbox-lazy-writes?"
+
+#. type: deftypevr
+#: doc/guix.texi:16204
+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:16206
+#, fuzzy, no-wrap
+msgid "{@code{dovecot-configuration} parameter} non-negative-integer mbox-min-index-size"
+msgstr "{parámetro de @code{dovecot-configuration}} non-negative-integer mbox-min-index-size"
+
+#. type: deftypevr
+#: doc/guix.texi:16211
+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:16213
+#, fuzzy, no-wrap
+msgid "{@code{dovecot-configuration} parameter} non-negative-integer mdbox-rotate-size"
+msgstr "{parámetro de @code{dovecot-configuration}} non-negative-integer mdbox-rotate-size"
+
+#. type: deftypevr
+#: doc/guix.texi:16216
+msgid "Maximum dbox file size until it's rotated.  Defaults to @samp{10000000}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16218
+#, fuzzy, no-wrap
+msgid "{@code{dovecot-configuration} parameter} string mdbox-rotate-interval"
+msgstr "{parámetro de @code{dovecot-configuration}} string mdbox-rotate-interval"
+
+#. type: deftypevr
+#: doc/guix.texi:16223
+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:16225
+#, fuzzy, 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:16230
+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:16232
+#, fuzzy, no-wrap
+msgid "{@code{dovecot-configuration} parameter} string mail-attachment-dir"
+msgstr "{parámetro de @code{dovecot-configuration}} string mail-attachment-dir"
+
+#. type: deftypevr
+#: doc/guix.texi:16236
+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:16238
+msgid "WARNING: This feature hasn't been tested much yet.  Use at your own risk."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16241
+msgid "Directory root where to store mail attachments.  Disabled, if empty.  Defaults to @samp{\"\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16243
+#, fuzzy, no-wrap
+msgid "{@code{dovecot-configuration} parameter} non-negative-integer mail-attachment-min-size"
+msgstr "{parámetro de @code{dovecot-configuration}} non-negative-integer mail-attachment-min-size"
+
+#. type: deftypevr
+#: doc/guix.texi:16248
+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:16250
+#, fuzzy, 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:16252
+msgid "File system backend to use for saving attachments:"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:16253
+#, no-wrap
+msgid "posix"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:16255
+msgid "No SiS done by Dovecot (but this might help FS's own deduplication)"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:16255
+#, no-wrap
+msgid "sis posix"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:16257
+msgid "SiS with immediate byte-by-byte comparison during saving"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:16257
+#, no-wrap
+msgid "sis-queue posix"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:16259
+msgid "SiS with delayed comparison and deduplication."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16261
+msgid "Defaults to @samp{\"sis posix\"}."
+msgstr "El valor predeterminado es @samp{\"sis posix\"}."
+
+#. type: deftypevr
+#: doc/guix.texi:16263
+#, fuzzy, 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:16269
+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:16271
+#, fuzzy, no-wrap
+msgid "{@code{dovecot-configuration} parameter} non-negative-integer default-process-limit"
+msgstr "{parámetro de @code{dovecot-configuration}} non-negative-integer default-process-limit"
+
+#. type: deftypevr
+#: doc/guix.texi:16276
+#, fuzzy, no-wrap
+msgid "{@code{dovecot-configuration} parameter} non-negative-integer default-client-limit"
+msgstr "{parámetro de @code{dovecot-configuration}} non-negative-integer default-client-limit"
+
+#. type: deftypevr
+#: doc/guix.texi:16279 doc/guix.texi:21472
+msgid "Defaults to @samp{1000}."
+msgstr "El valor predeterminado es @samp{1000}."
+
+#. type: deftypevr
+#: doc/guix.texi:16281
+#, fuzzy, no-wrap
+msgid "{@code{dovecot-configuration} parameter} non-negative-integer default-vsz-limit"
+msgstr "{parámetro de @code{dovecot-configuration}} non-negative-integer default-vsz-limit"
+
+#. type: deftypevr
+#: doc/guix.texi:16286
+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:16288
+#, fuzzy, no-wrap
+msgid "{@code{dovecot-configuration} parameter} string default-login-user"
+msgstr "{parámetro de @code{dovecot-configuration}} string default-login-user"
+
+#. type: deftypevr
+#: doc/guix.texi:16293
+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:16295
+#, fuzzy, no-wrap
+msgid "{@code{dovecot-configuration} parameter} string default-internal-user"
+msgstr "{parámetro de @code{dovecot-configuration}} string default-internal-user"
+
+#. type: deftypevr
+#: doc/guix.texi:16300
+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:16302
+#, fuzzy, no-wrap
+msgid "{@code{dovecot-configuration} parameter} string ssl?"
+msgstr "{parámetro de @code{dovecot-configuration}} string ssl?"
+
+#. type: deftypevr
+#: doc/guix.texi:16305
+msgid "SSL/TLS support: yes, no, required.  <doc/wiki/SSL.txt>.  Defaults to @samp{\"required\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16307
+#, fuzzy, no-wrap
+msgid "{@code{dovecot-configuration} parameter} string ssl-cert"
+msgstr "{parámetro de @code{dovecot-configuration}} string ssl-cert"
+
+#. type: deftypevr
+#: doc/guix.texi:16310
+msgid "PEM encoded X.509 SSL/TLS certificate (public key).  Defaults to @samp{\"</etc/dovecot/default.pem\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16312
+#, fuzzy, no-wrap
+msgid "{@code{dovecot-configuration} parameter} string ssl-key"
+msgstr "{parámetro de @code{dovecot-configuration}} string ssl-key"
+
+#. type: deftypevr
+#: doc/guix.texi:16317
+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:16319
+#, fuzzy, 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:16325
+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:16327
+#, fuzzy, 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:16333
+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:16335
+#, fuzzy, 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:16338
+msgid "Require that CRL check succeeds for client certificates.  Defaults to @samp{#t}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16340
+#, fuzzy, 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:16344
+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:16346
+#, fuzzy, 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:16351
+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:16353
+#, fuzzy, 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:16356
+msgid "Minimum SSL protocol version to accept.  Defaults to @samp{\"TLSv1\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16358
+#, fuzzy, 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:16361
+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:16363
+#, fuzzy, 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:16366
+msgid "SSL crypto device to use, for valid values run \"openssl engine\".  Defaults to @samp{\"\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16368
+#, fuzzy, no-wrap
+msgid "{@code{dovecot-configuration} parameter} string postmaster-address"
+msgstr "{parámetro de @code{dovecot-configuration}} string postmaster-address"
+
+#. type: deftypevr
+#: doc/guix.texi:16372
+msgid "Address to use when sending rejection mails.  %d expands to recipient domain.  Defaults to @samp{\"postmaster@@%d\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16374
+#, fuzzy, no-wrap
+msgid "{@code{dovecot-configuration} parameter} string hostname"
+msgstr "{parámetro de @code{dovecot-configuration}} string hostname"
+
+#. type: deftypevr
+#: doc/guix.texi:16378
+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:16380
+#, fuzzy, no-wrap
+msgid "{@code{dovecot-configuration} parameter} boolean quota-full-tempfail?"
+msgstr "{parámetro de @code{dovecot-configuration}} boolean quota-full-tempfail?"
+
+#. type: deftypevr
+#: doc/guix.texi:16384
+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:16386
+#, fuzzy, no-wrap
+msgid "{@code{dovecot-configuration} parameter} file-name sendmail-path"
+msgstr "{parámetro de @code{dovecot-configuration}} file-name sendmail-path"
+
+#. type: deftypevr
+#: doc/guix.texi:16389
+msgid "Binary to use for sending mails.  Defaults to @samp{\"/usr/sbin/sendmail\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16391
+#, fuzzy, no-wrap
+msgid "{@code{dovecot-configuration} parameter} string submission-host"
+msgstr "{parámetro de @code{dovecot-configuration}} string submission-host"
+
+#. type: deftypevr
+#: doc/guix.texi:16395
+msgid "If non-empty, send mails via this SMTP host[:port] instead of sendmail.  Defaults to @samp{\"\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16397
+#, fuzzy, 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:16401
+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:16403
+#, fuzzy, 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:16406
+msgid "Human readable error message for rejection mails.  You can use variables:"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:16410
+msgid "CRLF"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:16410
+#, no-wrap
+msgid "%r"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:16412
+msgid "reason"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:16414
+msgid "original subject"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:16414
+#, no-wrap
+msgid "%t"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:16416
+msgid "recipient"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16418
+#, fuzzy
+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:16420
+#, fuzzy, no-wrap
+msgid "{@code{dovecot-configuration} parameter} string recipient-delimiter"
+msgstr "{parámetro de @code{dovecot-configuration}} string recipient-delimiter"
+
+#. type: deftypevr
+#: doc/guix.texi:16424
+msgid "Delimiter character between local-part and detail in email address.  Defaults to @samp{\"+\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16426
+#, fuzzy, no-wrap
+msgid "{@code{dovecot-configuration} parameter} string lda-original-recipient-header"
+msgstr "{parámetro de @code{dovecot-configuration}} string lda-original-recipient-header"
+
+#. type: deftypevr
+#: doc/guix.texi:16432
+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:16434
+#, fuzzy, 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:16438
+msgid "Should saving a mail to a nonexistent mailbox automatically create it?.  Defaults to @samp{#f}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16440
+#, fuzzy, 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:16444
+msgid "Should automatically created mailboxes be also automatically subscribed?.  Defaults to @samp{#f}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16446
+#, fuzzy, no-wrap
+msgid "{@code{dovecot-configuration} parameter} non-negative-integer imap-max-line-length"
+msgstr "{parámetro de @code{dovecot-configuration}} non-negative-integer imap-max-line-length"
+
+#. type: deftypevr
+#: doc/guix.texi:16452
+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:16454
+#, fuzzy, no-wrap
+msgid "{@code{dovecot-configuration} parameter} string imap-logout-format"
+msgstr "{parámetro de @code{dovecot-configuration}} string imap-logout-format"
+
+#. type: deftypevr
+#: doc/guix.texi:16456
+msgid "IMAP logout format string:"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:16457
+#, no-wrap
+msgid "%i"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:16459
+msgid "total number of bytes read from client"
+msgstr "número total de bytes leídos del cliente"
+
+#. type: item
+#: doc/guix.texi:16459
+#, no-wrap
+msgid "%o"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:16461
+msgid "total number of bytes sent to client."
+msgstr "número total de bytes enviados al cliente."
+
+#. type: deftypevr
+#: doc/guix.texi:16464
+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:16466
+#, fuzzy, no-wrap
+msgid "{@code{dovecot-configuration} parameter} string imap-capability"
+msgstr "{parámetro de @code{dovecot-configuration}} string imap-capability"
+
+#. type: deftypevr
+#: doc/guix.texi:16470
+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:16472
+#, fuzzy, no-wrap
+msgid "{@code{dovecot-configuration} parameter} string imap-idle-notify-interval"
+msgstr "{parámetro de @code{dovecot-configuration}} string imap-idle-notify-interval"
+
+#. type: deftypevr
+#: doc/guix.texi:16476
+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:16478
+#, fuzzy, 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:16484
+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:16486
+#, fuzzy, 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:16489
+msgid "ID fields sent by client to log.  * means everything.  Defaults to @samp{\"\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16491
+#, fuzzy, no-wrap
+msgid "{@code{dovecot-configuration} parameter} space-separated-string-list imap-client-workarounds"
+msgstr "{parámetro de @code{dovecot-configuration}} space-separated-string-list imap-client-workarounds"
+
+#. type: deftypevr
+#: doc/guix.texi:16493
+msgid "Workarounds for various client bugs:"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:16495
+#, no-wrap
+msgid "delay-newmail"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:16502
+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:16503
+#, no-wrap
+msgid "tb-extra-mailbox-sep"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:16507
+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:16508
+#, no-wrap
+msgid "tb-lsub-flags"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:16512
+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:16516
+#, fuzzy, 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:16519
+msgid "Host allowed in URLAUTH URLs sent by client.  \"*\" allows all.  Defaults to @samp{\"\"}."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:16527
+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:16533
+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:16535
+msgid "Available @code{opaque-dovecot-configuration} fields are:"
+msgstr "Los campos disponibles de @code{opaque-dovecot-configuration} son:"
+
+#. type: deftypevr
+#: doc/guix.texi:16536
+#, fuzzy, 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:16540
+#, fuzzy, 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:16542
+msgid "The contents of the @code{dovecot.conf}, as a string."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:16546
+msgid "For example, if your @code{dovecot.conf} is just the empty string, you could instantiate a dovecot service like this:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:16551
+#, no-wrap
+msgid ""
+"(dovecot-service #:config\n"
+"                 (opaque-dovecot-configuration\n"
+"                  (string \"\")))\n"
+msgstr ""
+"(dovecot-service #:config\n"
+"                 (opaque-dovecot-configuration\n"
+"                  (string \"\")))\n"
+
+#. type: subsubheading
+#: doc/guix.texi:16553
+#, no-wrap
+msgid "OpenSMTPD Service"
+msgstr "Servicio OpenSMTPD"
+
+#. type: deffn
+#: doc/guix.texi:16555
+#, no-wrap
+msgid "{Scheme Variable} opensmtpd-service-type"
+msgstr "{Variable Scheme} opensmtpd-service-type"
+
+#. type: deffn
+#: doc/guix.texi:16559
+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: example
+#: doc/guix.texi:16564
+#, no-wrap
+msgid ""
+"(service opensmtpd-service-type\n"
+"         (opensmtpd-configuration\n"
+"           (config-file (local-file \"./my-smtpd.conf\"))))\n"
+msgstr ""
+"(service opensmtpd-service-type\n"
+"         (opensmtpd-configuration\n"
+"           (config-file (local-file \"./mi-smtpd.conf\"))))\n"
+
+#. type: deftp
+#: doc/guix.texi:16567
+#, no-wrap
+msgid "{Data Type} opensmtpd-configuration"
+msgstr "{Tipo de datos} opensmtpd-configuration"
+
+#. type: deftp
+#: doc/guix.texi:16569
+msgid "Data type representing the configuration of opensmtpd."
+msgstr "Tipo de datos que representa la configuración de opensmtpd."
+
+#. type: item
+#: doc/guix.texi:16571
+#, no-wrap
+msgid "@code{package} (default: @var{opensmtpd})"
+msgstr "@code{package} (predeterminado: @var{opensmtpd})"
+
+#. type: table
+#: doc/guix.texi:16573
+msgid "Package object of the OpenSMTPD SMTP server."
+msgstr "El objeto paquete del servidor SMTP OpenSMTPD."
+
+#. type: item
+#: doc/guix.texi:16574
+#, no-wrap
+msgid "@code{config-file} (default: @var{%default-opensmtpd-file})"
+msgstr "@code{config-file} (predeterminado: @var{%default-opensmtpd-file})"
+
+#. type: table
+#: doc/guix.texi:16579
+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:16583
+#, no-wrap
+msgid "Exim Service"
+msgstr "Servicio Exim"
+
+#. type: cindex
+#: doc/guix.texi:16585
+#, no-wrap
+msgid "mail transfer agent (MTA)"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:16586
+#, no-wrap
+msgid "MTA (mail transfer agent)"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:16587
+#, no-wrap
+msgid "SMTP"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:16589
+#, no-wrap
+msgid "{Scheme Variable} exim-service-type"
+msgstr "{Variable Scheme} exim-service-type"
+
+#. type: deffn
+#: doc/guix.texi:16593
+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: example
+#: doc/guix.texi:16598
+#, no-wrap
+msgid ""
+"(service exim-service-type\n"
+"         (exim-configuration\n"
+"           (config-file (local-file \"./my-exim.conf\"))))\n"
+msgstr ""
+"(service exim-service-type\n"
+"         (exim-configuration\n"
+"           (config-file (local-file \"./mi-exim.conf\"))))\n"
+
+#. type: Plain text
+#: doc/guix.texi:16604
+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:16605
+#, no-wrap
+msgid "{Data Type} exim-configuration"
+msgstr "{Tipo de datos} exim-configuration"
+
+#. type: deftp
+#: doc/guix.texi:16607
+msgid "Data type representing the configuration of exim."
+msgstr "Tipo de datos que representa la configuración de exim."
+
+#. type: item
+#: doc/guix.texi:16609
+#, no-wrap
+msgid "@code{package} (default: @var{exim})"
+msgstr "@code{package} (predeterminado: @var{exim})"
+
+#. type: table
+#: doc/guix.texi:16611
+msgid "Package object of the Exim server."
+msgstr "El objeto paquete del servidor Exim."
+
+#. type: table
+#: doc/guix.texi:16618
+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:16622
+#, no-wrap
+msgid "Mail Aliases Service"
+msgstr "Servicios de alias de correo"
+
+#. type: cindex
+#: doc/guix.texi:16624
+#, no-wrap
+msgid "email aliases"
+msgstr "correo electrónico, alias"
+
+#. type: cindex
+#: doc/guix.texi:16625
+#, no-wrap
+msgid "aliases, for email addresses"
+msgstr "alias, para direcciones de correo electrónico"
+
+#. type: deffn
+#: doc/guix.texi:16627
+#, no-wrap
+msgid "{Scheme Variable} mail-aliases-service-type"
+msgstr "{Variable Scheme} mail-aliases-service-type"
+
+#. type: deffn
+#: doc/guix.texi:16630
+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: example
+#: doc/guix.texi:16635
+#, no-wrap
+msgid ""
+"(service mail-aliases-service-type\n"
+"         '((\"postmaster\" \"bob\")\n"
+"           (\"bob\" \"bob@@example.com\" \"bob@@example2.com\")))\n"
+msgstr ""
+"(service mail-aliases-service-type\n"
+"         '((\"postmaster\" \"rober\")\n"
+"           (\"rober\" \"rober@@example.com\" \"rober@@example2.com\")))\n"
+
+#. type: Plain text
+#: doc/guix.texi:16643
+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:16649
+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:16650 doc/guix.texi:16651
+#, no-wrap
+msgid "GNU Mailutils IMAP4 Daemon"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:16653
+#, no-wrap
+msgid "{Scheme Variable} imap4d-service-type"
+msgstr "{Variable Scheme} imap4d-service-type"
+
+#. type: deffn
+#: doc/guix.texi:16657
+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: example
+#: doc/guix.texi:16662
+#, no-wrap
+msgid ""
+"(service imap4d-service-type\n"
+"         (imap4d-configuration\n"
+"           (config-file (local-file \"imap4d.conf\"))))\n"
+msgstr ""
+"(service imap4d-service-type\n"
+"         (imap4d-configuration\n"
+"           (config-file (local-file \"imap4d.conf\"))))\n"
+
+#. type: deftp
+#: doc/guix.texi:16665
+#, no-wrap
+msgid "{Data Type} imap4d-configuration"
+msgstr "{Tipo de datos} imap4d-configuration"
+
+#. type: deftp
+#: doc/guix.texi:16667
+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:16669
+#, no-wrap
+msgid "@code{package} (default: @code{mailutils})"
+msgstr "@code{package} (predeterminado: @code{mailutils})"
+
+#. type: table
+#: doc/guix.texi:16671
+msgid "The package that provides @command{imap4d}."
+msgstr "El paquete que proporciona @command{imap4d}."
+
+#. type: item
+#: doc/guix.texi:16672
+#, 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:16676
+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:16683
+#, no-wrap
+msgid "messaging"
+msgstr "mensajería"
+
+#. type: cindex
+#: doc/guix.texi:16684
+#, no-wrap
+msgid "jabber"
+msgstr "jabber"
+
+#. type: cindex
+#: doc/guix.texi:16685
+#, no-wrap
+msgid "XMPP"
+msgstr "XMPP"
+
+#. type: Plain text
+#: doc/guix.texi:16688
+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."
+
+#. type: subsubheading
+#: doc/guix.texi:16689
+#, no-wrap
+msgid "Prosody Service"
+msgstr "Servicio Prosody"
+
+#. type: deffn
+#: doc/guix.texi:16691
+#, no-wrap
+msgid "{Scheme Variable} prosody-service-type"
+msgstr "{Variable Scheme} prosody-service-type"
+
+#. type: deffn
+#: doc/guix.texi:16695
+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: example
+#: doc/guix.texi:16710
+#, no-wrap
+msgid ""
+"(service prosody-service-type\n"
+"         (prosody-configuration\n"
+"          (modules-enabled (cons \"groups\" \"mam\" %default-modules-enabled))\n"
+"          (int-components\n"
+"           (list\n"
+"            (int-component-configuration\n"
+"             (hostname \"conference.example.net\")\n"
+"             (plugin \"muc\")\n"
+"             (mod-muc (mod-muc-configuration)))))\n"
+"          (virtualhosts\n"
+"           (list\n"
+"            (virtualhost-configuration\n"
+"             (domain \"example.net\"))))))\n"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:16713
+msgid "See below for details about @code{prosody-configuration}."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:16719
+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:16722
+msgid "You can perform various sanity checks on the generated configuration with the @code{prosodyctl check} command."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:16726
+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:16729
+#, no-wrap
+msgid "prosodyctl --root cert import /etc/letsencrypt/live\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:16736
+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:16740
+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:16743
+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:16753
+msgid "Available @code{prosody-configuration} fields are:"
+msgstr "Los campos disponibles de @code{prosody-configuration} son:"
+
+#. type: deftypevr
+#: doc/guix.texi:16754
+#, fuzzy, no-wrap
+msgid "{@code{prosody-configuration} parameter} package prosody"
+msgstr "{parámetro de @code{prosody-configuration}} package prosody"
+
+#. type: deftypevr
+#: doc/guix.texi:16756
+msgid "The Prosody package."
+msgstr "El paquete Prosody."
+
+#. type: deftypevr
+#: doc/guix.texi:16758
+#, fuzzy, no-wrap
+msgid "{@code{prosody-configuration} parameter} file-name data-path"
+msgstr "{parámetro de @code{prosody-configuration}} file-name data-path"
+
+#. type: deftypevr
+#: doc/guix.texi:16762
+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:16764
+#, fuzzy, no-wrap
+msgid "{@code{prosody-configuration} parameter} file-object-list plugin-paths"
+msgstr "{parámetro de @code{prosody-configuration}} file-object-list plugin-paths"
+
+#. type: deftypevr
+#: doc/guix.texi:16768
+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:16770
+#, fuzzy, no-wrap
+msgid "{@code{prosody-configuration} parameter} file-name certificates"
+msgstr "{parámetro de @code{prosody-configuration}} file-name certificates"
+
+#. type: deftypevr
+#: doc/guix.texi:16775
+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:16777
+#, fuzzy, no-wrap
+msgid "{@code{prosody-configuration} parameter} string-list admins"
+msgstr "{parámetro de @code{prosody-configuration}} string-list admins"
+
+#. type: deftypevr
+#: doc/guix.texi:16783
+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:16785
+#, fuzzy, no-wrap
+msgid "{@code{prosody-configuration} parameter} boolean use-libevent?"
+msgstr "{parámetro de @code{prosody-configuration}} boolean use-libevent?"
+
+#. type: deftypevr
+#: doc/guix.texi:16789
+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:16791
+#, fuzzy, no-wrap
+msgid "{@code{prosody-configuration} parameter} module-list modules-enabled"
+msgstr "{parámetro de @code{prosody-configuration}} module-list modules-enabled"
+
+#. type: deftypevr
+#: doc/guix.texi:16797
+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:16799
+#, fuzzy, no-wrap
+msgid "{@code{prosody-configuration} parameter} string-list modules-disabled"
+msgstr "{parámetro de @code{prosody-configuration}} string-list modules-disabled"
+
+#. type: deftypevr
+#: doc/guix.texi:16803
+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:16805
+#, fuzzy, 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:16810
+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:16812
+#, fuzzy, 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:16816
+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:16818
+#, fuzzy, no-wrap
+msgid "{@code{prosody-configuration} parameter} maybe-ssl-configuration ssl"
+msgstr "{parámetro de @code{prosody-configuration}} maybe-ssl-configuration ssl"
+
+#. type: deftypevr
+#: doc/guix.texi:16823
+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:16825
+msgid "Available @code{ssl-configuration} fields are:"
+msgstr "Los campos disponibles de @code{ssl-configuration} son:"
+
+#. type: deftypevr
+#: doc/guix.texi:16826
+#, fuzzy, 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:16828
+msgid "This determines what handshake to use."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16830
+#, fuzzy, no-wrap
+msgid "{@code{ssl-configuration} parameter} maybe-file-name key"
+msgstr "{parámetro de @code{ssl-configuration}} maybe-file-name key"
+
+#. type: deftypevr
+#: doc/guix.texi:16832
+msgid "Path to your private key file."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16834
+#, fuzzy, no-wrap
+msgid "{@code{ssl-configuration} parameter} maybe-file-name certificate"
+msgstr "{parámetro de @code{ssl-configuration}} maybe-file-name certificate"
+
+#. type: deftypevr
+#: doc/guix.texi:16836
+msgid "Path to your certificate file."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16838
+#, fuzzy, no-wrap
+msgid "{@code{ssl-configuration} parameter} file-object capath"
+msgstr "{parámetro de @code{ssl-configuration}} file-object capath"
+
+#. type: deftypevr
+#: doc/guix.texi:16842
+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:16844
+#, fuzzy, 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:16847
+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:16849
+#, fuzzy, no-wrap
+msgid "{@code{ssl-configuration} parameter} maybe-string-list verify"
+msgstr "{parámetro de @code{ssl-configuration}} maybe-string-list verify"
+
+#. type: deftypevr
+#: doc/guix.texi:16852
+msgid "A list of verification options (these mostly map to OpenSSL's @code{set_verify()} flags)."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16854
+#, fuzzy, no-wrap
+msgid "{@code{ssl-configuration} parameter} maybe-string-list options"
+msgstr "{parámetro de @code{ssl-configuration}} maybe-string-list options"
+
+#. type: deftypevr
+#: doc/guix.texi:16858
+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:16860
+#, fuzzy, no-wrap
+msgid "{@code{ssl-configuration} parameter} maybe-non-negative-integer depth"
+msgstr "{parámetro de @code{ssl-configuration}} maybe-non-negative-integer depth"
+
+#. type: deftypevr
+#: doc/guix.texi:16863
+msgid "How long a chain of certificate authorities to check when looking for a trusted root certificate."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16865
+#, fuzzy, no-wrap
+msgid "{@code{ssl-configuration} parameter} maybe-string ciphers"
+msgstr "{parámetro de @code{ssl-configuration}} maybe-string ciphers"
+
+#. type: deftypevr
+#: doc/guix.texi:16868
+msgid "An OpenSSL cipher string.  This selects what ciphers Prosody will offer to clients, and in what order."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16870
+#, fuzzy, no-wrap
+msgid "{@code{ssl-configuration} parameter} maybe-file-name dhparam"
+msgstr "{parámetro de @code{ssl-configuration}} maybe-file-name dhparam"
+
+#. type: deftypevr
+#: doc/guix.texi:16874
+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:16876
+#, fuzzy, no-wrap
+msgid "{@code{ssl-configuration} parameter} maybe-string curve"
+msgstr "{parámetro de @code{ssl-configuration}} maybe-string curve"
+
+#. type: deftypevr
+#: doc/guix.texi:16879
+msgid "Curve for Elliptic curve Diffie-Hellman. Prosody's default is @samp{\"secp384r1\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16881
+#, fuzzy, no-wrap
+msgid "{@code{ssl-configuration} parameter} maybe-string-list verifyext"
+msgstr "{parámetro de @code{ssl-configuration}} maybe-string-list verifyext"
+
+#. type: deftypevr
+#: doc/guix.texi:16883
+msgid "A list of \"extra\" verification options."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16885
+#, fuzzy, 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:16887
+msgid "Password for encrypted private keys."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16891
+#, fuzzy, 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:16895
+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:16897
+#, fuzzy, no-wrap
+msgid "{@code{prosody-configuration} parameter} string-list disable-sasl-mechanisms"
+msgstr "{parámetro de @code{prosody-configuration}} string-list disable-sasl-mechanisms"
+
+#. type: deftypevr
+#: doc/guix.texi:16901
+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:16903
+#, fuzzy, 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:16907
+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:16909
+#, fuzzy, 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:16915
+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:16917
+#, fuzzy, no-wrap
+msgid "{@code{prosody-configuration} parameter} string-list s2s-insecure-domains"
+msgstr "{parámetro de @code{prosody-configuration}} string-list s2s-insecure-domains"
+
+#. type: deftypevr
+#: doc/guix.texi:16923
+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:16925
+#, fuzzy, no-wrap
+msgid "{@code{prosody-configuration} parameter} string-list s2s-secure-domains"
+msgstr "{parámetro de @code{prosody-configuration}} string-list s2s-secure-domains"
+
+#. type: deftypevr
+#: doc/guix.texi:16930
+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:16932
+#, fuzzy, no-wrap
+msgid "{@code{prosody-configuration} parameter} string authentication"
+msgstr "{parámetro de @code{prosody-configuration}} string authentication"
+
+#. type: deftypevr
+#: doc/guix.texi:16940
+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:16942
+#, fuzzy, 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:16946
+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:16948
+#, fuzzy, no-wrap
+msgid "{@code{prosody-configuration} parameter} file-name pidfile"
+msgstr "{parámetro de @code{prosody-configuration}} file-name pidfile"
+
+#. type: deftypevr
+#: doc/guix.texi:16951
+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:16953
+#, fuzzy, no-wrap
+msgid "{@code{prosody-configuration} parameter} maybe-non-negative-integer http-max-content-size"
+msgstr "{parámetro de @code{prosody-configuration}} maybe-non-negative-integer http-max-content-size"
+
+#. type: deftypevr
+#: doc/guix.texi:16955
+msgid "Maximum allowed size of the HTTP body (in bytes)."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16957
+#, fuzzy, 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:16962
+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:16964
+#, fuzzy, no-wrap
+msgid "{@code{prosody-configuration} parameter} virtualhost-configuration-list virtualhosts"
+msgstr "{parámetro de @code{prosody-configuration}} virtualhost-configuration-list virtualhosts"
+
+#. type: deftypevr
+#: doc/guix.texi:16969
+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:16975
+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 ""
+
+#. type: deftypevr
+#: doc/guix.texi:16977
+msgid "See @url{https://prosody.im/doc/configure#virtual_host_settings}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16979
+msgid "Available @code{virtualhost-configuration} fields are:"
+msgstr "Los campos disponibles de @code{virtualhost-configuration} son:"
+
+#. type: deftypevr
+#: doc/guix.texi:16981 doc/guix.texi:17003 doc/guix.texi:17056
+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:16981
+#, fuzzy, no-wrap
+msgid "{@code{virtualhost-configuration} parameter} string domain"
+msgstr "{parámetro de @code{virtualhost-configuration}} string domain"
+
+#. type: deftypevr
+#: doc/guix.texi:16983
+msgid "Domain you wish Prosody to serve."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16987
+#, fuzzy, no-wrap
+msgid "{@code{prosody-configuration} parameter} int-component-configuration-list int-components"
+msgstr "{parámetro de @code{prosody-configuration}} int-component-configuration-list int-components"
+
+#. type: deftypevr
+#: doc/guix.texi:16992
+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:16996
+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:16999
+msgid "See @url{https://prosody.im/doc/components}.  Defaults to @samp{()}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17001
+msgid "Available @code{int-component-configuration} fields are:"
+msgstr "Los campos disponibles de @code{int-component-configuration} son:"
+
+#. type: deftypevr
+#: doc/guix.texi:17003
+#, fuzzy, 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:17005 doc/guix.texi:17062
+msgid "Hostname of the component."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17007
+#, fuzzy, 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:17009
+msgid "Plugin you wish to use for the component."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17011
+#, fuzzy, 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"
+
+#. type: deftypevr
+#: doc/guix.texi:17014
+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:17018
+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:17020
+msgid "See also @url{https://prosody.im/doc/modules/mod_muc}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17022
+msgid "Available @code{mod-muc-configuration} fields are:"
+msgstr "Los campos disponibles de @code{mod-muc-configuration} son:"
+
+#. type: deftypevr
+#: doc/guix.texi:17023
+#, fuzzy, no-wrap
+msgid "{@code{mod-muc-configuration} parameter} string name"
+msgstr "{parámetro de @code{mod-muc-configuration}} string name"
+
+#. type: deftypevr
+#: doc/guix.texi:17026
+msgid "The name to return in service discovery responses.  Defaults to @samp{\"Prosody Chatrooms\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17028
+#, fuzzy, no-wrap
+msgid "{@code{mod-muc-configuration} parameter} string-or-boolean restrict-room-creation"
+msgstr "{parámetro de @code{mod-muc-configuration}} string-or-boolean restrict-room-creation"
+
+#. type: deftypevr
+#: doc/guix.texi:17035
+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:17037
+#, fuzzy, no-wrap
+msgid "{@code{mod-muc-configuration} parameter} non-negative-integer max-history-messages"
+msgstr "{parámetro de @code{mod-muc-configuration}} non-negative-integer max-history-messages"
+
+#. type: deftypevr
+#: doc/guix.texi:17041
+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:17047
+#, fuzzy, no-wrap
+msgid "{@code{prosody-configuration} parameter} ext-component-configuration-list ext-components"
+msgstr "{parámetro de @code{prosody-configuration}} ext-component-configuration-list ext-components"
+
+#. type: deftypevr
+#: doc/guix.texi:17052
+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:17054
+msgid "Available @code{ext-component-configuration} fields are:"
+msgstr "Los campos disponibles de @code{ext-component-configuration} son:"
+
+#. type: deftypevr
+#: doc/guix.texi:17056
+#, fuzzy, 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:17058
+msgid "Password which the component will use to log in."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17060
+#, fuzzy, 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:17066
+#, fuzzy, no-wrap
+msgid "{@code{prosody-configuration} parameter} non-negative-integer-list component-ports"
+msgstr "{parámetro de @code{prosody-configuration}} non-negative-integer-list component-ports"
+
+#. type: deftypevr
+#: doc/guix.texi:17069
+msgid "Port(s) Prosody listens on for component connections.  Defaults to @samp{(5347)}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17071
+#, fuzzy, 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:17074
+msgid "Interface Prosody listens on for component connections.  Defaults to @samp{\"127.0.0.1\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17076
+#, fuzzy, 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:17078
+msgid "Raw content that will be added to the configuration file."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:17086
+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:17087
+#, fuzzy, 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:17089
+msgid "The prosody package."
+msgstr "El paquete prosody."
+
+#. type: deftypevr
+#: doc/guix.texi:17091
+#, fuzzy, 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:17093
+msgid "The contents of the @code{prosody.cfg.lua} to use."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:17097
+msgid "For example, if your @code{prosody.cfg.lua} is just the empty string, you could instantiate a prosody service like this:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:17102
+#, no-wrap
+msgid ""
+"(service prosody-service-type\n"
+"         (opaque-prosody-configuration\n"
+"          (prosody.cfg.lua \"\")))\n"
+msgstr ""
+"(service prosody-service-type\n"
+"         (opaque-prosody-configuration\n"
+"          (prosody.cfg.lua \"\")))\n"
+
+#. type: subsubheading
+#: doc/guix.texi:17106
+#, no-wrap
+msgid "BitlBee Service"
+msgstr "Servicio BitlBee"
+
+#. type: cindex
+#: doc/guix.texi:17108 doc/guix.texi:17152
+#, no-wrap
+msgid "IRC (Internet Relay Chat)"
+msgstr "IRC (Internet Relay Chat)"
+
+#. type: cindex
+#: doc/guix.texi:17109
+#, no-wrap
+msgid "IRC gateway"
+msgstr "pasarela IRC"
+
+#. type: Plain text
+#: doc/guix.texi:17112
+msgid "@url{http://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:17113
+#, no-wrap
+msgid "{Scheme Variable} bitlbee-service-type"
+msgstr "{Variable Scheme} bitlbee-service-type"
+
+#. type: defvr
+#: doc/guix.texi:17117
+msgid "This is the service type for the @url{http://bitlbee.org,BitlBee} IRC gateway daemon.  Its value is a @code{bitlbee-configuration} (see below)."
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:17120
+msgid "To have BitlBee listen on port 6667 on localhost, add this line to your services:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:17123
+#, no-wrap
+msgid "(service bitlbee-service-type)\n"
+msgstr "(service bitlbee-service-type)\n"
+
+#. type: deftp
+#: doc/guix.texi:17126
+#, no-wrap
+msgid "{Data Type} bitlbee-configuration"
+msgstr "{Tipo de datos} bitlbee-configuration"
+
+#. type: deftp
+#: doc/guix.texi:17128
+msgid "This is the configuration for BitlBee, with the following fields:"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17130
+#, 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:17131
+#, no-wrap
+msgid "@code{port} (default: @code{6667})"
+msgstr "@code{port} (predeterminado: @code{6667})"
+
+#. type: table
+#: doc/guix.texi:17134
+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:17138
+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:17139
+#, no-wrap
+msgid "@code{package} (default: @code{bitlbee})"
+msgstr "@code{package} (predeterminado: @code{bitlbee})"
+
+#. type: table
+#: doc/guix.texi:17141
+msgid "The BitlBee package to use."
+msgstr "El paquete BitlBee usado."
+
+#. type: item
+#: doc/guix.texi:17142
+#, no-wrap
+msgid "@code{plugins} (default: @code{'()})"
+msgstr "@code{plugins} (predeterminados: @code{'()})"
+
+#. type: table
+#: doc/guix.texi:17144
+msgid "List of plugin packages to use---e.g., @code{bitlbee-discord}."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17145
+#, no-wrap
+msgid "@code{extra-settings} (default: @code{\"\"})"
+msgstr "@code{extra-settings} (predeterminado: @code{\"\"})"
+
+#. type: table
+#: doc/guix.texi:17147
+msgid "Configuration snippet added as-is to the BitlBee configuration file."
+msgstr ""
+
+#. type: subsubheading
+#: doc/guix.texi:17150
+#, no-wrap
+msgid "Quassel Service"
+msgstr "Servicio Quassel"
+
+#. type: Plain text
+#: doc/guix.texi:17156
+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:17157
+#, no-wrap
+msgid "{Scheme Variable} quassel-service-type"
+msgstr "{Variable Scheme} quassel-service-type"
+
+#. type: defvr
+#: doc/guix.texi:17161
+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:17163
+#, no-wrap
+msgid "{Data Type} quassel-configuration"
+msgstr "{Tipo de datos} quassel-configuration"
+
+#. type: deftp
+#: doc/guix.texi:17165
+msgid "This is the configuration for Quassel, with the following fields:"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17167
+#, no-wrap
+msgid "@code{quassel} (default: @code{quassel})"
+msgstr "@code{quassel} (predeterminado: @code{quassel})"
+
+#. type: table
+#: doc/guix.texi:17169
+msgid "The Quassel package to use."
+msgstr "El paquete Quassel usado."
+
+#. type: item
+#: doc/guix.texi:17170
+#, 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:17171
+#, no-wrap
+msgid "@code{port} (default: @code{4242})"
+msgstr "@code{port} (predeterminado: @code{4242})"
+
+#. type: table
+#: doc/guix.texi:17175
+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:17176
+#, no-wrap
+msgid "@code{loglevel} (default: @code{\"Info\"})"
+msgstr "@code{loglevel} (predeterminado: @code{\"Info\"})"
+
+#. type: table
+#: doc/guix.texi:17179
+msgid "The level of logging desired.  Accepted values are Debug, Info, Warning and Error."
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:17185
+#, no-wrap
+msgid "Murmur (VoIP server)"
+msgstr "Murmur (servidor VoIP)"
+
+#. type: cindex
+#: doc/guix.texi:17186
+#, no-wrap
+msgid "VoIP server"
+msgstr "servidor VoIP"
+
+#. type: Plain text
+#: doc/guix.texi:17190
+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:17191
+#, no-wrap
+msgid "{Data Type} murmur-configuration"
+msgstr "{Tipo de datos} murmur-configuration"
+
+#. type: deftp
+#: doc/guix.texi:17194
+msgid "The service type for the Murmur server.  An example configuration can look like this:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:17203
+#, no-wrap
+msgid ""
+"(service murmur-service-type\n"
+"         (murmur-configuration\n"
+"          (welcome-text\n"
+"            \"Welcome to this Mumble server running on Guix!\")\n"
+"          (cert-required? #t) ;disallow text password logins\n"
+"          (ssl-cert \"/etc/letsencrypt/live/mumble.example.com/fullchain.pem\")\n"
+"          (ssl-key \"/etc/letsencrypt/live/mumble.example.com/privkey.pem\")))\n"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:17207
+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:17216
+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:17218
+msgid "Available @code{murmur-configuration} fields are:"
+msgstr "Los campos disponibles de @code{murmur-configuration} son:"
+
+#. type: item
+#: doc/guix.texi:17220
+#, no-wrap
+msgid "@code{package} (default: @code{mumble})"
+msgstr "@code{package} (predeterminado: @code{mumble})"
+
+#. type: table
+#: doc/guix.texi:17222
+msgid "Package that contains @code{bin/murmurd}."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17223
+#, no-wrap
+msgid "@code{user} (default: @code{\"murmur\"})"
+msgstr "@code{user} (predeterminado: @code{\"murmur\"})"
+
+#. type: table
+#: doc/guix.texi:17225
+msgid "User who will run the Murmur server."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17226
+#, no-wrap
+msgid "@code{group} (default: @code{\"murmur\"})"
+msgstr "@code{group} (predeterminado: @code{\"murmur\"})"
+
+#. type: table
+#: doc/guix.texi:17228
+msgid "Group of the user who will run the murmur server."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17229
+#, no-wrap
+msgid "@code{port} (default: @code{64738})"
+msgstr "@code{port} (predeterminado: @code{64738})"
+
+#. type: table
+#: doc/guix.texi:17231
+msgid "Port on which the server will listen."
+msgstr "Puerto en el que escucha el servidor."
+
+#. type: item
+#: doc/guix.texi:17232
+#, no-wrap
+msgid "@code{welcome-text} (default: @code{\"\"})"
+msgstr "@code{welcome-text} (predeterminado: @code{\"\"})"
+
+#. type: table
+#: doc/guix.texi:17234
+msgid "Welcome text sent to clients when they connect."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17235
+#, no-wrap
+msgid "@code{server-password} (default: @code{\"\"})"
+msgstr "@code{server-password} (predeterminada: @code{\"\"})"
+
+#. type: table
+#: doc/guix.texi:17237
+msgid "Password the clients have to enter in order to connect."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17238
+#, no-wrap
+msgid "@code{max-users} (default: @code{100})"
+msgstr "@code{max-users} (predeterminados: @code{100})"
+
+#. type: table
+#: doc/guix.texi:17240
+msgid "Maximum of users that can be connected to the server at once."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17241
+#, no-wrap
+msgid "@code{max-user-bandwidth} (default: @code{#f})"
+msgstr "@code{max-user-bandwidth} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:17243
+msgid "Maximum voice traffic a user can send per second."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17244
+#, 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:17247
+msgid "File name of the sqlite database.  The service's user will become the owner of the directory."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17248
+#, 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:17251
+msgid "File name of the log file.  The service's user will become the owner of the directory."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17252
+#, no-wrap
+msgid "@code{autoban-attempts} (default: @code{10})"
+msgstr "@code{autoban-attempts} (predeterminados: @code{10})"
+
+#. type: table
+#: doc/guix.texi:17255
+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:17256
+#, no-wrap
+msgid "@code{autoban-timeframe} (default: @code{120})"
+msgstr "@code{autoban-timeframe} (predeterminado: @code{120})"
+
+#. type: table
+#: doc/guix.texi:17258
+msgid "Timeframe for autoban in seconds."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17259
+#, no-wrap
+msgid "@code{autoban-time} (default: @code{300})"
+msgstr "@code{autoban-time} (predeterminado: @code{300})"
+
+#. type: table
+#: doc/guix.texi:17262
+msgid "Amount of time in seconds for which a client gets banned when violating the autoban limits."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17263
+#, no-wrap
+msgid "@code{opus-threshold} (default: @code{100})"
+msgstr "@code{opus-threshold} (predeterminado: @code{100})"
+
+#. type: table
+#: doc/guix.texi:17266
+msgid "Percentage of clients that need to support opus before switching over to opus audio codec."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17267
+#, no-wrap
+msgid "@code{channel-nesting-limit} (default: @code{10})"
+msgstr "@code{channel-nesting-limit} (predeterminado: @code{10})"
+
+#. type: table
+#: doc/guix.texi:17269
+msgid "How deep channels can be nested at maximum."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17270
+#, no-wrap
+msgid "@code{channelname-regex} (default: @code{#f})"
+msgstr "@code{channelname-regex} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:17272
+msgid "A string in form of a Qt regular expression that channel names must conform to."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17273
+#, no-wrap
+msgid "@code{username-regex} (default: @code{#f})"
+msgstr "@code{username-regex} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:17275
+msgid "A string in form of a Qt regular expression that user names must conform to."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17276
+#, no-wrap
+msgid "@code{text-message-length} (default: @code{5000})"
+msgstr "@code{text-message-length} (predeterminado: @code{5000})"
+
+#. type: table
+#: doc/guix.texi:17278
+msgid "Maximum size in bytes that a user can send in one text chat message."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17279
+#, 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:17281
+msgid "Maximum size in bytes that a user can send in one image message."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17282
+#, no-wrap
+msgid "@code{cert-required?} (default: @code{#f})"
+msgstr "@code{cert-required?} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:17285
+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."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17286
+#, no-wrap
+msgid "@code{remember-channel?} (default: @code{#f})"
+msgstr "@code{remember-channel?} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:17289
+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:17290
+#, no-wrap
+msgid "@code{allow-html?} (default: @code{#f})"
+msgstr "@code{allow-html?} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:17292
+msgid "Should html be allowed in text messages, user comments, and channel descriptions."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17293
+#, no-wrap
+msgid "@code{allow-ping?} (default: @code{#f})"
+msgstr "@code{allow-ping?} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:17297
+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:17299
+msgid "Disabling this setting will prevent public listing of the server."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17300
+#, no-wrap
+msgid "@code{bonjour?} (default: @code{#f})"
+msgstr "@code{bonjour?} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:17302
+msgid "Should the server advertise itself in the local network through the bonjour protocol."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17303
+#, no-wrap
+msgid "@code{send-version?} (default: @code{#f})"
+msgstr "@code{send-version?} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:17305
+msgid "Should the murmur server version be exposed in ping requests."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17306
+#, no-wrap
+msgid "@code{log-days} (default: @code{31})"
+msgstr "@code{log-days} (predeterminado: @code{31})"
+
+#. type: table
+#: doc/guix.texi:17310
+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:17311
+#, no-wrap
+msgid "@code{obfuscate-ips?} (default: @code{#t})"
+msgstr "@code{obfuscate-ips?} (predeterminado: @code{#t})"
+
+#. type: table
+#: doc/guix.texi:17313
+msgid "Should logged ips be obfuscated to protect the privacy of users."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17314
+#, no-wrap
+msgid "@code{ssl-cert} (default: @code{#f})"
+msgstr "@code{ssl-cert} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:17316
+msgid "File name of the SSL/TLS certificate used for encrypted connections."
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:17319
+#, no-wrap
+msgid "(ssl-cert \"/etc/letsencrypt/live/example.com/fullchain.pem\")\n"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17320
+#, no-wrap
+msgid "@code{ssl-key} (default: @code{#f})"
+msgstr "@code{ssl-key} (predeterminada: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:17322
+msgid "Filepath to the ssl private key used for encrypted connections."
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:17324
+#, no-wrap
+msgid "(ssl-key \"/etc/letsencrypt/live/example.com/privkey.pem\")\n"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17326
+#, no-wrap
+msgid "@code{ssl-dh-params} (default: @code{#f})"
+msgstr "@code{ssl-dh-params} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:17331
+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:17332
+#, no-wrap
+msgid "@code{ssl-ciphers} (default: @code{#f})"
+msgstr "@code{ssl-ciphers} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:17335
+msgid "The @code{ssl-ciphers} option chooses the cipher suites to make available for use in SSL/TLS."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:17339
+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:17344
+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:17348
+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:17349
+#, no-wrap
+msgid "@code{public-registration} (default: @code{#f})"
+msgstr "@code{public-registration} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:17351
+msgid "Must be a @code{<murmur-public-registration-configuration>} record or @code{#f}."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:17356
+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:17358
+msgid "It might take a few hours until it shows up in the public list."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17359 doc/guix.texi:18790
+#, no-wrap
+msgid "@code{file} (default: @code{#f})"
+msgstr "@code{file} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:17361
+msgid "Optional alternative override for this configuration."
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:17364
+#, no-wrap
+msgid "{Data Type} murmur-public-registration-configuration"
+msgstr "{Tipo de datos} murmur-public-registration-configuration"
+
+#. type: deftp
+#: doc/guix.texi:17366
+msgid "Configuration for public registration of a murmur service."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:17370
+msgid "This is a display name for your server. Not to be confused with the hostname."
+msgstr ""
+
+#. type: itemx
+#: doc/guix.texi:17371 doc/guix.texi:23679
+#, no-wrap
+msgid "password"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:17374
+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:17375
+#, no-wrap
+msgid "url"
+msgstr "url"
+
+#. type: table
+#: doc/guix.texi:17378
+msgid "This should be a @code{http://} or @code{https://} link to your web site."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17379
+#, no-wrap
+msgid "@code{hostname} (default: @code{#f})"
+msgstr "@code{hostname} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:17382
+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:17390
+#, no-wrap
+msgid "Tailon Service"
+msgstr "Servicio Tailon"
+
+#. type: Plain text
+#: doc/guix.texi:17394
+msgid "@uref{https://tailon.readthedocs.io/, Tailon} is a web application for viewing and searching log files."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:17397
+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: example
+#: doc/guix.texi:17400
+#, no-wrap
+msgid "(service tailon-service-type)\n"
+msgstr "(service tailon-service-type)\n"
+
+#. type: Plain text
+#: doc/guix.texi:17404
+msgid "The following example customises more of the Tailon configuration, adding @command{sed} to the list of allowed commands."
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:17411
+#, no-wrap
+msgid ""
+"(service tailon-service-type\n"
+"         (tailon-configuration\n"
+"           (config-file\n"
+"             (tailon-configuration-file\n"
+"               (allowed-commands '(\"tail\" \"grep\" \"awk\" \"sed\"))))))\n"
+msgstr ""
+"(service tailon-service-type\n"
+"         (tailon-configuration\n"
+"           (config-file\n"
+"             (tailon-configuration-file\n"
+"               (allowed-commands '(\"tail\" \"grep\" \"awk\" \"sed\"))))))\n"
+
+#. type: deftp
+#: doc/guix.texi:17414
+#, no-wrap
+msgid "{Data Type} tailon-configuration"
+msgstr "{Tipo de datos} tailon-configuration"
+
+#. type: deftp
+#: doc/guix.texi:17417
+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:17419
+#, 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:17423
+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:17426
+msgid "For example, to instead use a local file, the @code{local-file} function can be used:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:17431
+#, no-wrap
+msgid ""
+"(service tailon-service-type\n"
+"         (tailon-configuration\n"
+"           (config-file (local-file \"./my-tailon.conf\"))))\n"
+msgstr ""
+"(service tailon-service-type\n"
+"         (tailon-configuration\n"
+"           (config-file (local-file \"./mi-tailon.conf\"))))\n"
+
+#. type: item
+#: doc/guix.texi:17433
+#, no-wrap
+msgid "@code{package} (default: @code{tailon})"
+msgstr "@code{package} (predeterminado: @code{tailon})"
+
+#. type: table
+#: doc/guix.texi:17435
+msgid "The tailon package to use."
+msgstr "El paquete tailon usado."
+
+#. type: deftp
+#: doc/guix.texi:17439
+#, no-wrap
+msgid "{Data Type} tailon-configuration-file"
+msgstr "{Tipo de datos} tailon-configuration-file"
+
+#. type: deftp
+#: doc/guix.texi:17442
+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:17444
+#, no-wrap
+msgid "@code{files} (default: @code{(list \"/var/log\")})"
+msgstr "@code{files} (predeterminados: @code{(list \"/var/log\")})"
+
+#. type: table
+#: doc/guix.texi:17449
+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:17450
+#, no-wrap
+msgid "@code{bind} (default: @code{\"localhost:8080\"})"
+msgstr "@code{bind} (predeterminado: @code{\"localhost:8080\"})"
+
+#. type: table
+#: doc/guix.texi:17452
+msgid "Address and port to which Tailon should bind on."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17453
+#, no-wrap
+msgid "@code{relative-root} (default: @code{#f})"
+msgstr "@code{relative-root} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:17455
+msgid "URL path to use for Tailon, set to @code{#f} to not use a path."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17456
+#, no-wrap
+msgid "@code{allow-transfers?} (default: @code{#t})"
+msgstr "@code{allow-transfers?} (predeterminado: @code{#t})"
+
+#. type: table
+#: doc/guix.texi:17458
+msgid "Allow downloading the log files in the web interface."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17459
+#, no-wrap
+msgid "@code{follow-names?} (default: @code{#t})"
+msgstr "@code{follow-names?} (predeterminado: @code{#t})"
+
+#. type: table
+#: doc/guix.texi:17461
+msgid "Allow tailing of not-yet existent files."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17462
+#, no-wrap
+msgid "@code{tail-lines} (default: @code{200})"
+msgstr "@code{tail-lines} (predeterminado: @code{200})"
+
+#. type: table
+#: doc/guix.texi:17464
+msgid "Number of lines to read initially from each file."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17465
+#, 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:17467
+msgid "Commands to allow running. By default, @code{sed} is disabled."
+msgstr "Órdenes cuya ejecución está permitida. Por defecto, @code{sed} está deshabilitado."
+
+#. type: item
+#: doc/guix.texi:17468
+#, no-wrap
+msgid "@code{debug?} (default: @code{#f})"
+msgstr "@code{debug?} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:17470
+msgid "Set @code{debug?} to @code{#t} to show debug messages."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17471
+#, no-wrap
+msgid "@code{wrap-lines} (default: @code{#t})"
+msgstr "@code{wrap-lines} (predeterminado: @code{#t})"
+
+#. type: table
+#: doc/guix.texi:17475
+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:17476
+#, no-wrap
+msgid "@code{http-auth} (default: @code{#f})"
+msgstr "@code{http-auth} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:17480
+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:17481
+#, no-wrap
+msgid "@code{users} (default: @code{#f})"
+msgstr "@code{users} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:17486
+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: example
+#: doc/guix.texi:17492
+#, no-wrap
+msgid ""
+"(tailon-configuration-file\n"
+"  (http-auth \"basic\")\n"
+"  (users     '((\"user1\" . \"password1\")\n"
+"               (\"user2\" . \"password2\"))))\n"
+msgstr ""
+"(tailon-configuration-file\n"
+"  (http-auth \"basic\")\n"
+"  (users     '((\"usuaria1\" . \"contraseña1\")\n"
+"               (\"usuaria2\" . \"contraseña2\"))))\n"
+
+#. type: subsubheading
+#: doc/guix.texi:17498
+#, no-wrap
+msgid "Darkstat Service"
+msgstr "Servicio Darkstat"
+
+#. type: cindex
+#: doc/guix.texi:17499
+#, no-wrap
+msgid "darkstat"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:17502
+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:17503
+#, no-wrap
+msgid "{Scheme Variable} darkstat-service-type"
+msgstr "{Variable Scheme} darkstat-service-type"
+
+#. type: defvar
+#: doc/guix.texi:17508
+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: example
+#: doc/guix.texi:17513
+#, no-wrap
+msgid ""
+"(service darkstat-service-type\n"
+"         (darkstat-configuration\n"
+"           (interface \"eno1\")))\n"
+msgstr ""
+"(service darkstat-service-type\n"
+"         (darkstat-configuration\n"
+"           (interface \"eno1\")))\n"
+
+#. type: deftp
+#: doc/guix.texi:17516
+#, no-wrap
+msgid "{Data Type} darkstat-configuration"
+msgstr "{Tipo de datos} darkstat-configuration"
+
+#. type: deftp
+#: doc/guix.texi:17518
+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:17520
+#, no-wrap
+msgid "@code{package} (default: @code{darkstat})"
+msgstr "@code{package} (predeterminado: @code{darkstat})"
+
+#. type: table
+#: doc/guix.texi:17522
+msgid "The darkstat package to use."
+msgstr "El paquete darkstat usado."
+
+#. type: code{#1}
+#: doc/guix.texi:17523
+#, no-wrap
+msgid "interface"
+msgstr "interface"
+
+#. type: table
+#: doc/guix.texi:17525
+msgid "Capture traffic on the specified network interface."
+msgstr "Captura el tráfico en la interfaz de red especificada."
+
+#. type: item
+#: doc/guix.texi:17526
+#, no-wrap
+msgid "@code{port} (default: @code{\"667\"})"
+msgstr "@code{port} (predeterminado: @code{\"667\"})"
+
+#. type: table
+#: doc/guix.texi:17528
+msgid "Bind the web interface to the specified port."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17529
+#, 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:17531 doc/guix.texi:17569
+msgid "Bind the web interface to the specified address."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17532
+#, no-wrap
+msgid "@code{base} (default: @code{\"/\"})"
+msgstr "@code{base} (predeterminada: @code{\"/\"})"
+
+#. type: table
+#: doc/guix.texi:17535
+msgid "Specify the path of the base URL.  This can be useful if @command{darkstat} is accessed via a reverse proxy."
+msgstr ""
+
+# FUZZY
+#. type: subsubheading
+#: doc/guix.texi:17539
+#, no-wrap
+msgid "Prometheus Node Exporter Service"
+msgstr "Servicio del exportador de nodos Prometheus"
+
+#. type: cindex
+#: doc/guix.texi:17541
+#, no-wrap
+msgid "prometheus-node-exporter"
+msgstr "prometheus-node-exporter"
+
+#. type: Plain text
+#: doc/guix.texi:17546
+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:17547
+#, no-wrap
+msgid "{Scheme variable} prometheus-node-exporter-service-type"
+msgstr "{Variable Scheme} prometheus-node-exporter-service-type"
+
+#. type: defvar
+#: doc/guix.texi:17552
+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: example
+#: doc/guix.texi:17557
+#, no-wrap
+msgid ""
+"(service prometheus-node-exporter-service-type\n"
+"         (prometheus-node-exporter-configuration\n"
+"           (web-listen-address \":9100\")))\n"
+msgstr ""
+"(service prometheus-node-exporter-service-type\n"
+"         (prometheus-node-exporter-configuration\n"
+"           (web-listen-address \":9100\")))\n"
+
+#. type: deftp
+#: doc/guix.texi:17560
+#, no-wrap
+msgid "{Data Type} prometheus-node-exporter-configuration"
+msgstr "{Tipo de datos} prometheus-node-exporter-configuration"
+
+#. type: deftp
+#: doc/guix.texi:17562
+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:17564
+#, 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:17566
+msgid "The prometheus-node-exporter package to use."
+msgstr "El paquete prometheus-node-exporter usado."
+
+#. type: item
+#: doc/guix.texi:17567
+#, no-wrap
+msgid "@code{web-listen-address} (default: @code{\":9100\"})"
+msgstr "@code{web-listen-address} (predeterminada: @code{\":9100\"})"
+
+#. type: subsubheading
+#: doc/guix.texi:17573
+#, no-wrap
+msgid "Zabbix server"
+msgstr "Servidor Zabbix"
+
+#. type: cindex
+#: doc/guix.texi:17574
+#, no-wrap
+msgid "zabbix zabbix-server"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:17577
+msgid "Zabbix provides monitoring metrics, among others network utilization, CPU load and disk space consumption:"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17579
+#, no-wrap
+msgid "High performance, high capacity (able to monitor hundreds of thousands of devices)."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17580
+#, no-wrap
+msgid "Auto-discovery of servers and network devices and interfaces."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17581
+#, 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:17582
+#, no-wrap
+msgid "Distributed monitoring with centralized web administration."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17583
+#, no-wrap
+msgid "Native high performance agents."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17584
+#, no-wrap
+msgid "SLA, and ITIL KPI metrics on reporting."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17585
+#, no-wrap
+msgid "High-level (business) view of monitored resources through user-defined visual console screens and dashboards."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17586
+#, no-wrap
+msgid "Remote command execution through Zabbix proxies."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:17592
+msgid "Available @code{zabbix-server-configuration} fields are:"
+msgstr "Los campos disponibles de @code{zabbix-server-configuration} son:"
+
+#. type: deftypevr
+#: doc/guix.texi:17593
+#, fuzzy, 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:17595
+msgid "The zabbix-server package."
+msgstr "El paquete zabbix-server."
+
+#. type: deftypevr
+#: doc/guix.texi:17598
+#, fuzzy, 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:17600
+msgid "User who will run the Zabbix server."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17602 doc/guix.texi:17609 doc/guix.texi:17623
+#: doc/guix.texi:17630 doc/guix.texi:17731 doc/guix.texi:17738
+#: doc/guix.texi:17849 doc/guix.texi:17856
+msgid "Defaults to @samp{\"zabbix\"}."
+msgstr "El valor predeterminado es @samp{\"zabbix\"}."
+
+#. type: deftypevr
+#: doc/guix.texi:17605
+#, fuzzy, no-wrap
+msgid "{@code{zabbix-server-configuration} parameter} group group"
+msgstr "{parámetro de @code{zabbix-server-configuration}} group group"
+
+#. type: deftypevr
+#: doc/guix.texi:17607
+msgid "Group who will run the Zabbix server."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17612
+#, fuzzy, 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:17614 doc/guix.texi:17833
+msgid "Database host name."
+msgstr "El nombre de máquina de la base de datos."
+
+#. type: deftypevr
+#: doc/guix.texi:17616
+msgid "Defaults to @samp{\"127.0.0.1\"}."
+msgstr "El valor predeterminado es @samp{\"127.0.0.1\"}."
+
+#. type: deftypevr
+#: doc/guix.texi:17619
+#, fuzzy, 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:17621 doc/guix.texi:17847
+msgid "Database name."
+msgstr "Nombre de la base de datos."
+
+#. type: deftypevr
+#: doc/guix.texi:17626
+#, fuzzy, 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:17628 doc/guix.texi:17854
+msgid "Database user."
+msgstr "Usuaria de la base de datos."
+
+#. type: deftypevr
+#: doc/guix.texi:17633
+#, fuzzy, 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:17636
+msgid "Database password.  Please, use @code{include-files} with @code{DBPassword=SECRET} inside a specified file instead."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17641
+#, fuzzy, 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:17643 doc/guix.texi:17840
+msgid "Database port."
+msgstr "Puerto de la base de datos."
+
+#. type: deftypevr
+#: doc/guix.texi:17645 doc/guix.texi:17842
+msgid "Defaults to @samp{5432}."
+msgstr "El valor predeterminado es @samp{5432}."
+
+#. type: deftypevr
+#: doc/guix.texi:17648
+#, fuzzy, 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:17650 doc/guix.texi:17751
+msgid "Specifies where log messages are written to:"
+msgstr ""
+
+#. type: itemize
+#: doc/guix.texi:17654 doc/guix.texi:17755
+msgid "@code{system} - syslog."
+msgstr ""
+
+#. type: itemize
+#: doc/guix.texi:17657 doc/guix.texi:17758
+msgid "@code{file} - file specified with @code{log-file} parameter."
+msgstr ""
+
+#. type: itemize
+#: doc/guix.texi:17660 doc/guix.texi:17761
+msgid "@code{console} - standard output."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17667
+#, fuzzy, 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:17669 doc/guix.texi:17770
+msgid "Log file name for @code{log-type} @code{file} parameter."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17671
+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:17674
+#, fuzzy, 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:17676 doc/guix.texi:17777
+msgid "Name of PID file."
+msgstr "Nombre del fichero de PID."
+
+#. type: deftypevr
+#: doc/guix.texi:17678
+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:17681
+#, fuzzy, 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:17684
+msgid "The location of certificate authority (CA) files for SSL server certificate verification."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17686
+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:17689
+#, fuzzy, 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:17691
+msgid "Location of SSL client certificates."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17693
+msgid "Defaults to @samp{\"/etc/ssl/certs\"}."
+msgstr "El valor predeterminado es @samp{\"/etc/ssl/certs\"}."
+
+#. type: deftypevr
+#: doc/guix.texi:17696
+#, fuzzy, 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:17698 doc/guix.texi:17802
+msgid "Extra options will be appended to Zabbix server configuration file."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17703
+#, fuzzy, no-wrap
+msgid "{@code{zabbix-server-configuration} parameter} include-files include-files"
+msgstr "{parámetro de @code{zabbix-server-configuration}} include-files include-files"
+
+#. type: deftypevr
+#: doc/guix.texi:17706 doc/guix.texi:17810
+msgid "You may include individual files or all files in a directory in the configuration file."
+msgstr ""
+
+#. type: subsubheading
+#: doc/guix.texi:17713
+#, no-wrap
+msgid "Zabbix agent"
+msgstr "Agente Zabbix"
+
+#. type: cindex
+#: doc/guix.texi:17714
+#, no-wrap
+msgid "zabbix zabbix-agent"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:17717
+msgid "Zabbix agent gathers information for Zabbix server."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:17721
+msgid "Available @code{zabbix-agent-configuration} fields are:"
+msgstr "Los campos disponibles de @code{zabbix-agent-configuration} son:"
+
+#. type: deftypevr
+#: doc/guix.texi:17722
+#, fuzzy, 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:17724
+msgid "The zabbix-agent package."
+msgstr "El paquete zabbix-agent."
+
+#. type: deftypevr
+#: doc/guix.texi:17727
+#, fuzzy, 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:17729
+msgid "User who will run the Zabbix agent."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17734
+#, fuzzy, no-wrap
+msgid "{@code{zabbix-agent-configuration} parameter} group group"
+msgstr "{parámetro de @code{zabbix-agent-configuration}} group group"
+
+#. type: deftypevr
+#: doc/guix.texi:17736
+msgid "Group who will run the Zabbix agent."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17741
+#, fuzzy, 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:17744
+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:17746
+msgid "Defaults to @samp{\"Zabbix server\"}."
+msgstr "El valor predeterminado es @samp{\"Zabbix server\"}."
+
+#. type: deftypevr
+#: doc/guix.texi:17749
+#, fuzzy, 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:17768
+#, fuzzy, 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:17772
+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:17775
+#, fuzzy, 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:17779
+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:17782
+#, fuzzy, no-wrap
+msgid "{@code{zabbix-agent-configuration} parameter} list server"
+msgstr "{parámetro de @code{zabbix-agent-configuration}} list server"
+
+#. type: deftypevr
+#: doc/guix.texi:17786
+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:17788 doc/guix.texi:17797
+msgid "Defaults to @samp{(\"127.0.0.1\")}."
+msgstr "El valor predeterminado es @samp{\"127.0.0.1\"}."
+
+#. type: deftypevr
+#: doc/guix.texi:17791
+#, fuzzy, no-wrap
+msgid "{@code{zabbix-agent-configuration} parameter} list server-active"
+msgstr "{parámetro de @code{zabbix-agent-configuration}} list server-active"
+
+#. type: deftypevr
+#: doc/guix.texi:17795
+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:17800
+#, fuzzy, 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:17807
+#, fuzzy, no-wrap
+msgid "{@code{zabbix-agent-configuration} parameter} include-files include-files"
+msgstr "{parámetro de @code{zabbix-agent-configuration}} include-files include-files"
+
+#. type: subsubheading
+#: doc/guix.texi:17817
+#, no-wrap
+msgid "Zabbix front-end"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:17818
+#, no-wrap
+msgid "zabbix zabbix-front-end"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:17821
+msgid "This service provides a WEB interface to Zabbix server."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:17825
+#, fuzzy
+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:17826
+#, fuzzy, no-wrap
+msgid "{@code{zabbix-front-end-configuration} parameter} nginx-server-configuration-list nginx"
+msgstr "{parámetro de @code{zabbix-front-end-configuration}} nginx-server-configuration-list nginx"
+
+#. type: deftypevr
+#: doc/guix.texi:17828 doc/guix.texi:22158
+msgid "NGINX configuration."
+msgstr "Configuración de NGINX."
+
+#. type: deftypevr
+#: doc/guix.texi:17831
+#, fuzzy, 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:17838
+#, fuzzy, 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:17845
+#, fuzzy, 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:17852
+#, fuzzy, 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:17859
+#, fuzzy, 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:17861
+msgid "Database password.  Please, use @code{db-secret-file} instead."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17866
+#, fuzzy, 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"
+
+#. type: deftypevr
+#: doc/guix.texi:17870
+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:17875
+#, fuzzy, 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:17877
+msgid "Zabbix server hostname."
+msgstr "Nombre de máquina del servidor Zabbix."
+
+#. type: deftypevr
+#: doc/guix.texi:17882
+#, fuzzy, 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:17884
+msgid "Zabbix server port."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17886
+msgid "Defaults to @samp{10051}."
+msgstr "El valor predeterminado es @samp{10051}."
+
+#. type: cindex
+#: doc/guix.texi:17894
+#, no-wrap
+msgid "Kerberos"
+msgstr "Kerberos"
+
+#. type: Plain text
+#: doc/guix.texi:17898
+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:17899
+#, no-wrap
+msgid "Krb5 Service"
+msgstr "Servicio Krb5"
+
+#. type: Plain text
+#: doc/guix.texi:17906
+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:17910
+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:17911
+#, no-wrap
+msgid "{Scheme Variable} krb5-service-type"
+msgstr "{Variable Scheme} krb5-service-type"
+
+#. type: defvr
+#: doc/guix.texi:17913
+msgid "A service type for Kerberos 5 clients."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:17917
+msgid "Here is an example of its use:"
+msgstr "Este es un ejemplo de su uso:"
+
+#. type: lisp
+#: doc/guix.texi:17931
+#, no-wrap
+msgid ""
+"(service krb5-service-type\n"
+"         (krb5-configuration\n"
+"          (default-realm \"EXAMPLE.COM\")\n"
+"          (allow-weak-crypto? #t)\n"
+"          (realms (list\n"
+"                   (krb5-realm\n"
+"                    (name \"EXAMPLE.COM\")\n"
+"                    (admin-server \"groucho.example.com\")\n"
+"                    (kdc \"karl.example.com\"))\n"
+"                   (krb5-realm\n"
+"                    (name \"ARGRX.EDU\")\n"
+"                    (admin-server \"kerb-admin.argrx.edu\")\n"
+"                    (kdc \"keys.argrx.edu\"))))))\n"
+msgstr ""
+"(service krb5-service-type\n"
+"         (krb5-configuration\n"
+"          (default-realm \"EXAMPLE.COM\")\n"
+"          (allow-weak-crypto? #t)\n"
+"          (realms (list\n"
+"                   (krb5-realm\n"
+"                    (name \"EXAMPLE.COM\")\n"
+"                    (admin-server \"groucho.example.com\")\n"
+"                    (kdc \"karl.example.com\"))\n"
+"                   (krb5-realm\n"
+"                    (name \"ARGRX.EDU\")\n"
+"                    (admin-server \"kerb-admin.argrx.edu\")\n"
+"                    (kdc \"keys.argrx.edu\"))))))\n"
+
+#. type: Plain text
+#: doc/guix.texi:17935
+msgid "This example provides a Kerberos@tie{}5 client configuration which:"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17936
+#, no-wrap
+msgid "Recognizes two realms, @i{viz:} ``EXAMPLE.COM'' and ``ARGRX.EDU'', both"
+msgstr ""
+
+#. type: itemize
+#: doc/guix.texi:17938
+msgid "of which have distinct administration servers and key distribution centers;"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17938
+#, no-wrap
+msgid "Will default to the realm ``EXAMPLE.COM'' if the realm is not explicitly"
+msgstr ""
+
+#. type: itemize
+#: doc/guix.texi:17940
+msgid "specified by clients;"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17940
+#, no-wrap
+msgid "Accepts services which only support encryption types known to be weak."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:17948
+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{http://web.mit.edu/kerberos/krb5-devel/doc/admin/conf_files/krb5_conf.html,,krb5.conf} documentation."
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:17950
+#, no-wrap
+msgid "{Data Type} krb5-realm"
+msgstr "{Tipo de datos} krb5-realm"
+
+#. type: cindex
+#: doc/guix.texi:17951
+#, fuzzy, no-wrap
+msgid "realm, kerberos"
+msgstr "realm, kerberos"
+
+#. type: table
+#: doc/guix.texi:17957
+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:17958
+#, no-wrap
+msgid "admin-server"
+msgstr "admin-server"
+
+#. type: table
+#: doc/guix.texi:17961
+msgid "This field is a string identifying the host where the administration server is running."
+msgstr ""
+
+#. type: code{#1}
+#: doc/guix.texi:17962
+#, no-wrap
+msgid "kdc"
+msgstr "kdc"
+
+#. type: table
+#: doc/guix.texi:17965
+msgid "This field is a string identifying the key distribution center for the realm."
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:17968
+#, no-wrap
+msgid "{Data Type} krb5-configuration"
+msgstr "{Tipo de datos} krb5-configuration"
+
+#. type: item
+#: doc/guix.texi:17971
+#, no-wrap
+msgid "@code{allow-weak-crypto?} (default: @code{#f})"
+msgstr "@code{allow-weak-crypto?} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:17974
+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:17975
+#, no-wrap
+msgid "@code{default-realm} (default: @code{#f})"
+msgstr "@code{default-realm} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:17982
+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:17983
+#, no-wrap
+msgid "realms"
+msgstr "realms"
+
+#. type: table
+#: doc/guix.texi:17988
+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:17992
+#, no-wrap
+msgid "PAM krb5 Service"
+msgstr "Servicio PAM krb5"
+
+#. type: cindex
+#: doc/guix.texi:17993
+#, no-wrap
+msgid "pam-krb5"
+msgstr "pam-krb5"
+
+#. type: Plain text
+#: doc/guix.texi:17999
+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:18000
+#, no-wrap
+msgid "{Scheme Variable} pam-krb5-service-type"
+msgstr "{Variable Scheme} pam-krb5-service-type"
+
+#. type: defvr
+#: doc/guix.texi:18002
+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:18004
+#, no-wrap
+msgid "{Data Type} pam-krb5-configuration"
+msgstr "{Tipo de datos} pam-krb5-configuration"
+
+#. type: deftp
+#: doc/guix.texi:18007
+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:18008
+#, no-wrap
+msgid "@code{pam-krb5} (default: @code{pam-krb5})"
+msgstr "@code{pam-krb5} (predeterminado: @code{pam-krb5})"
+
+#. type: table
+#: doc/guix.texi:18010
+msgid "The pam-krb5 package to use."
+msgstr "El paquete pam-krb5 usado."
+
+#. type: item
+#: doc/guix.texi:18011
+#, no-wrap
+msgid "@code{minimum-uid} (default: @code{1000})"
+msgstr "@code{minimum-uid} (predeterminado: @code{1000})"
+
+#. type: table
+#: doc/guix.texi:18014
+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:18020
+#, no-wrap
+msgid "LDAP"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:18021
+#, no-wrap
+msgid "nslcd, LDAP service"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:18028
+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:18032
+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: example
+#: doc/guix.texi:18055
+#, no-wrap
+msgid ""
+"(use-service-modules authentication)\n"
+"(use-modules (gnu system nss))\n"
+"...\n"
+"(operating-system\n"
+"  ...\n"
+"  (services\n"
+"    (cons*\n"
+"      (service nslcd-service-type)\n"
+"      (service dhcp-client-service-type)\n"
+"      %base-services))\n"
+"  (name-service-switch\n"
+"   (let ((services (list (name-service (name \"db\"))\n"
+"                         (name-service (name \"files\"))\n"
+"                         (name-service (name \"ldap\")))))\n"
+"     (name-service-switch\n"
+"      (inherit %mdns-host-lookup-nss)\n"
+"      (password services)\n"
+"      (shadow   services)\n"
+"      (group    services)\n"
+"      (netgroup services)\n"
+"      (gshadow  services)))))\n"
+msgstr ""
+"(use-service-modules authentication)\n"
+"(use-modules (gnu system nss))\n"
+"...\n"
+"(operating-system\n"
+"  ...\n"
+"  (services\n"
+"    (cons*\n"
+"      (service nslcd-service-type)\n"
+"      (service dhcp-client-service-type)\n"
+"      %base-services))\n"
+"  (name-service-switch\n"
+"   (let ((services (list (name-service (name \"db\"))\n"
+"                         (name-service (name \"files\"))\n"
+"                         (name-service (name \"ldap\")))))\n"
+"     (name-service-switch\n"
+"      (inherit %mdns-host-lookup-nss)\n"
+"      (password services)\n"
+"      (shadow   services)\n"
+"      (group    services)\n"
+"      (netgroup services)\n"
+"      (gshadow  services)))))\n"
+
+#. type: Plain text
+#: doc/guix.texi:18060
+msgid "Available @code{nslcd-configuration} fields are:"
+msgstr "Los campos disponibles de @code{nslcd-configuration} son:"
+
+#. type: deftypevr
+#: doc/guix.texi:18061
+#, fuzzy, 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:18063
+msgid "The @code{nss-pam-ldapd} package to use."
+msgstr "El paquete @code{nss-pam-ldapd} usado."
+
+#. type: deftypevr
+#: doc/guix.texi:18066
+#, fuzzy, 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:18070
+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:18072 doc/guix.texi:18114 doc/guix.texi:18122
+#: doc/guix.texi:18130 doc/guix.texi:18138 doc/guix.texi:18147
+#: doc/guix.texi:18155 doc/guix.texi:18162 doc/guix.texi:18170
+#: doc/guix.texi:18178 doc/guix.texi:18188 doc/guix.texi:18195
+#: doc/guix.texi:18219 doc/guix.texi:18227 doc/guix.texi:18253
+#: doc/guix.texi:18262 doc/guix.texi:18271 doc/guix.texi:18280
+#: doc/guix.texi:18289 doc/guix.texi:18298 doc/guix.texi:18306
+#: doc/guix.texi:18314 doc/guix.texi:18321 doc/guix.texi:18329
+#: doc/guix.texi:18336 doc/guix.texi:18344 doc/guix.texi:18352
+#: doc/guix.texi:18361 doc/guix.texi:18370 doc/guix.texi:18378
+#: doc/guix.texi:18386 doc/guix.texi:18394 doc/guix.texi:18405
+#: doc/guix.texi:18415 doc/guix.texi:18426 doc/guix.texi:18435
+#: doc/guix.texi:18445 doc/guix.texi:18453 doc/guix.texi:18464
+#: doc/guix.texi:18473 doc/guix.texi:18483 doc/guix.texi:20701
+#: doc/guix.texi:20708 doc/guix.texi:20715 doc/guix.texi:20722
+#: doc/guix.texi:20729 doc/guix.texi:20736 doc/guix.texi:20744
+#: doc/guix.texi:20752 doc/guix.texi:20759 doc/guix.texi:20766
+#: doc/guix.texi:20773 doc/guix.texi:20780 doc/guix.texi:20810
+#: doc/guix.texi:20848 doc/guix.texi:20855 doc/guix.texi:20864
+#: doc/guix.texi:20886 doc/guix.texi:20894 doc/guix.texi:20901
+#: doc/guix.texi:21056 doc/guix.texi:21076 doc/guix.texi:21091
+#: doc/guix.texi:21098 doc/guix.texi:22896 doc/guix.texi:22904
+#: doc/guix.texi:22912 doc/guix.texi:22920 doc/guix.texi:22928
+#: doc/guix.texi:22936
+msgid "Defaults to @samp{disabled}."
+msgstr "El valor predeterminado es @samp{disabled}."
+
+#. type: deftypevr
+#: doc/guix.texi:18075
+#, fuzzy, no-wrap
+msgid "{@code{nslcd-configuration} parameter} string uid"
+msgstr "{parámetro de @code{nslcd-configuration}} string uid"
+
+#. type: deftypevr
+#: doc/guix.texi:18077
+msgid "This specifies the user id with which the daemon should be run."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18079 doc/guix.texi:18086
+msgid "Defaults to @samp{\"nslcd\"}."
+msgstr "El valor predeterminado es @samp{\"nslcd\"}."
+
+#. type: deftypevr
+#: doc/guix.texi:18082
+#, fuzzy, no-wrap
+msgid "{@code{nslcd-configuration} parameter} string gid"
+msgstr "{parámetro de @code{nslcd-configuration}} string gid"
+
+#. type: deftypevr
+#: doc/guix.texi:18084
+msgid "This specifies the group id with which the daemon should be run."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18089
+#, fuzzy, no-wrap
+msgid "{@code{nslcd-configuration} parameter} log-option log"
+msgstr "{parámetro de @code{nslcd-configuration}} log-option log"
+
+#. type: deftypevr
+#: doc/guix.texi:18096
+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 ""
+
+#. type: deftypevr
+#: doc/guix.texi:18098
+msgid "Defaults to @samp{(\"/var/log/nslcd\" info)}."
+msgstr "El valor predeterminado es @samp{(\"/var/log/nslcd\" info)}."
+
+#. type: deftypevr
+#: doc/guix.texi:18101
+#, fuzzy, no-wrap
+msgid "{@code{nslcd-configuration} parameter} list uri"
+msgstr "{parámetro de @code{nslcd-configuration}} list uri"
+
+#. type: deftypevr
+#: doc/guix.texi:18104
+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:18106
+msgid "Defaults to @samp{(\"ldap://localhost:389/\")}."
+msgstr "El valor predeterminado es @samp{\"ldap://localhost:389/\"}."
+
+#. type: deftypevr
+#: doc/guix.texi:18109
+#, fuzzy, 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:18112
+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:18117
+#, fuzzy, 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:18120
+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:18125
+#, fuzzy, no-wrap
+msgid "{@code{nslcd-configuration} parameter} maybe-string bindpw"
+msgstr "{parámetro de @code{nslcd-configuration}} maybe-string bindpw"
+
+#. type: deftypevr
+#: doc/guix.texi:18128
+msgid "Specifies the credentials with which to bind.  This option is only applicable when used with binddn."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18133
+#, fuzzy, no-wrap
+msgid "{@code{nslcd-configuration} parameter} maybe-string rootpwmoddn"
+msgstr "{parámetro de @code{nslcd-configuration}} maybe-string rootpwmoddn"
+
+#. type: deftypevr
+#: doc/guix.texi:18136
+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:18141
+#, fuzzy, no-wrap
+msgid "{@code{nslcd-configuration} parameter} maybe-string rootpwmodpw"
+msgstr "{parámetro de @code{nslcd-configuration}} maybe-string rootpwmodpw"
+
+#. type: deftypevr
+#: doc/guix.texi:18145
+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:18150
+#, fuzzy, no-wrap
+msgid "{@code{nslcd-configuration} parameter} maybe-string sasl-mech"
+msgstr "{parámetro de @code{nslcd-configuration}} maybe-string sasl-mech"
+
+#. type: deftypevr
+#: doc/guix.texi:18153
+msgid "Specifies the SASL mechanism to be used when performing SASL authentication."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18158
+#, fuzzy, no-wrap
+msgid "{@code{nslcd-configuration} parameter} maybe-string sasl-realm"
+msgstr "{parámetro de @code{nslcd-configuration}} maybe-string sasl-realm"
+
+#. type: deftypevr
+#: doc/guix.texi:18160
+msgid "Specifies the SASL realm to be used when performing SASL authentication."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18165
+#, fuzzy, no-wrap
+msgid "{@code{nslcd-configuration} parameter} maybe-string sasl-authcid"
+msgstr "{parámetro de @code{nslcd-configuration}} maybe-string sasl-authcid"
+
+#. type: deftypevr
+#: doc/guix.texi:18168
+msgid "Specifies the authentication identity to be used when performing SASL authentication."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18173
+#, fuzzy, no-wrap
+msgid "{@code{nslcd-configuration} parameter} maybe-string sasl-authzid"
+msgstr "{parámetro de @code{nslcd-configuration}} maybe-string sasl-authzid"
+
+#. type: deftypevr
+#: doc/guix.texi:18176
+msgid "Specifies the authorization identity to be used when performing SASL authentication."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18181
+#, fuzzy, no-wrap
+msgid "{@code{nslcd-configuration} parameter} maybe-boolean sasl-canonicalize?"
+msgstr "{parámetro de @code{nslcd-configuration}} maybe-boolean sasl-canonicalize?"
+
+#. type: deftypevr
+#: doc/guix.texi:18186
+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:18191
+#, fuzzy, no-wrap
+msgid "{@code{nslcd-configuration} parameter} maybe-string krb5-ccname"
+msgstr "{parámetro de @code{nslcd-configuration}} maybe-string krb5-ccname"
+
+#. type: deftypevr
+#: doc/guix.texi:18193
+msgid "Set the name for the GSS-API Kerberos credentials cache."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18198
+#, fuzzy, no-wrap
+msgid "{@code{nslcd-configuration} parameter} string base"
+msgstr "{parámetro de @code{nslcd-configuration}} string base"
+
+#. type: deftypevr
+#: doc/guix.texi:18200
+msgid "The directory search base."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18202
+msgid "Defaults to @samp{\"dc=example,dc=com\"}."
+msgstr "El valor predeterminado es @samp{\"dc=example,dc=com\"}."
+
+#. type: deftypevr
+#: doc/guix.texi:18205
+#, fuzzy, no-wrap
+msgid "{@code{nslcd-configuration} parameter} scope-option scope"
+msgstr "{parámetro de @code{nslcd-configuration}} scope-option scope"
+
+#. type: deftypevr
+#: doc/guix.texi:18209
+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:18211
+msgid "Defaults to @samp{(subtree)}."
+msgstr "El valor predeterminado es @samp{(subtree)}."
+
+#. type: deftypevr
+#: doc/guix.texi:18214
+#, fuzzy, 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:18217
+msgid "Specifies the policy for dereferencing aliases.  The default policy is to never dereference aliases."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18222
+#, fuzzy, 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:18225
+msgid "Specifies whether automatic referral chasing should be enabled.  The default behaviour is to chase referrals."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18230
+#, fuzzy, no-wrap
+msgid "{@code{nslcd-configuration} parameter} list-of-map-entries maps"
+msgstr "{parámetro de @code{nslcd-configuration}} list-of-map-entries maps"
+
+#. type: deftypevr
+#: doc/guix.texi:18235
+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:18240
+#, fuzzy, no-wrap
+msgid "{@code{nslcd-configuration} parameter} list-of-filter-entries filters"
+msgstr "{parámetro de @code{nslcd-configuration}} list-of-filter-entries filters"
+
+#. type: deftypevr
+#: doc/guix.texi:18243
+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:18248
+#, fuzzy, 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:18251
+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:18256
+#, fuzzy, no-wrap
+msgid "{@code{nslcd-configuration} parameter} maybe-number timelimit"
+msgstr "{parámetro de @code{nslcd-configuration}} maybe-number timelimit"
+
+#. type: deftypevr
+#: doc/guix.texi:18260
+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:18265
+#, fuzzy, no-wrap
+msgid "{@code{nslcd-configuration} parameter} maybe-number idle-timelimit"
+msgstr "{parámetro de @code{nslcd-configuration}} maybe-number idle-timelimit"
+
+#. type: deftypevr
+#: doc/guix.texi:18269
+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:18274
+#, fuzzy, no-wrap
+msgid "{@code{nslcd-configuration} parameter} maybe-number reconnect-sleeptime"
+msgstr "{parámetro de @code{nslcd-configuration}} maybe-number reconnect-sleeptime"
+
+#. type: deftypevr
+#: doc/guix.texi:18278
+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:18283
+#, fuzzy, no-wrap
+msgid "{@code{nslcd-configuration} parameter} maybe-number reconnect-retrytime"
+msgstr "{parámetro de @code{nslcd-configuration}} maybe-number reconnect-retrytime"
+
+#. type: deftypevr
+#: doc/guix.texi:18287
+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:18292
+#, fuzzy, no-wrap
+msgid "{@code{nslcd-configuration} parameter} maybe-ssl-option ssl"
+msgstr "{parámetro de @code{nslcd-configuration}} maybe-ssl-option ssl"
+
+#. type: deftypevr
+#: doc/guix.texi:18296
+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:18301
+#, fuzzy, 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:18304
+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:18309
+#, fuzzy, 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:18312
+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:18317
+#, fuzzy, no-wrap
+msgid "{@code{nslcd-configuration} parameter} maybe-string tls-cacertfile"
+msgstr "{parámetro de @code{nslcd-configuration}} maybe-string tls-cacertfile"
+
+#. type: deftypevr
+#: doc/guix.texi:18319
+msgid "Specifies the path to the X.509 certificate for peer authentication."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18324
+#, fuzzy, 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:18327
+msgid "Specifies the path to an entropy source.  This parameter is ignored when using GnuTLS."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18332
+#, fuzzy, 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:18334
+msgid "Specifies the ciphers to use for TLS as a string."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18339
+#, fuzzy, 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:18342
+msgid "Specifies the path to the file containing the local certificate for client TLS authentication."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18347
+#, fuzzy, 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:18350
+msgid "Specifies the path to the file containing the private key for client TLS authentication."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18355
+#, fuzzy, no-wrap
+msgid "{@code{nslcd-configuration} parameter} maybe-number pagesize"
+msgstr "{parámetro de @code{nslcd-configuration}} maybe-number pagesize"
+
+#. type: deftypevr
+#: doc/guix.texi:18359
+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:18364
+#, fuzzy, 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"
+
+#. type: deftypevr
+#: doc/guix.texi:18368
+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:18373
+#, fuzzy, no-wrap
+msgid "{@code{nslcd-configuration} parameter} maybe-number nss-min-uid"
+msgstr "{parámetro de @code{nslcd-configuration}} maybe-number nss-min-uid"
+
+#. type: deftypevr
+#: doc/guix.texi:18376
+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:18381
+#, fuzzy, no-wrap
+msgid "{@code{nslcd-configuration} parameter} maybe-number nss-uid-offset"
+msgstr "{parámetro de @code{nslcd-configuration}} maybe-number nss-uid-offset"
+
+#. type: deftypevr
+#: doc/guix.texi:18384
+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:18389
+#, fuzzy, 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:18392
+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:18397
+#, fuzzy, 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:18403
+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:18408
+#, fuzzy, no-wrap
+msgid "{@code{nslcd-configuration} parameter} maybe-boolean nss-getgrent-skipmembers"
+msgstr "{parámetro de @code{nslcd-configuration}} maybe-boolean nss-getgrent-skipmembers"
+
+#. type: deftypevr
+#: doc/guix.texi:18413
+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:18418
+#, fuzzy, no-wrap
+msgid "{@code{nslcd-configuration} parameter} maybe-boolean nss-disable-enumeration"
+msgstr "{parámetro de @code{nslcd-configuration}} maybe-boolean nss-disable-enumeration"
+
+#. type: deftypevr
+#: doc/guix.texi:18424
+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:18429
+#, fuzzy, no-wrap
+msgid "{@code{nslcd-configuration} parameter} maybe-string validnames"
+msgstr "{parámetro de @code{nslcd-configuration}} maybe-string validnames"
+
+#. type: deftypevr
+#: doc/guix.texi:18433
+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:18438
+#, fuzzy, no-wrap
+msgid "{@code{nslcd-configuration} parameter} maybe-boolean ignorecase"
+msgstr "{parámetro de @code{nslcd-configuration}} maybe-boolean ignorecase"
+
+#. type: deftypevr
+#: doc/guix.texi:18443
+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:18448
+#, fuzzy, 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:18451
+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:18456
+#, fuzzy, no-wrap
+msgid "{@code{nslcd-configuration} parameter} maybe-string pam-authc-search"
+msgstr "{parámetro de @code{nslcd-configuration}} maybe-string pam-authc-search"
+
+#. type: deftypevr
+#: doc/guix.texi:18462
+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:18467
+#, fuzzy, 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:18471
+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:18476
+#, fuzzy, 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:18481
+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:18486
+#, fuzzy, no-wrap
+msgid "{@code{nslcd-configuration} parameter} list pam-services"
+msgstr "{parámetro de @code{nslcd-configuration}} list pam-services"
+
+#. type: deftypevr
+#: doc/guix.texi:18488
+msgid "List of pam service names for which LDAP authentication should suffice."
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:18499
+#, no-wrap
+msgid "web"
+msgstr "web"
+
+#. type: cindex
+#: doc/guix.texi:18500
+#, no-wrap
+msgid "www"
+msgstr "www"
+
+#. type: cindex
+#: doc/guix.texi:18501
+#, no-wrap
+msgid "HTTP"
+msgstr "HTTP"
+
+#. type: Plain text
+#: doc/guix.texi:18504
+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:18505
+#, no-wrap
+msgid "Apache HTTP Server"
+msgstr "Servidor HTTP Apache"
+
+#. type: deffn
+#: doc/guix.texi:18507
+#, no-wrap
+msgid "{Scheme Variable} httpd-service-type"
+msgstr "{Variable Scheme} httpd-service-type"
+
+#. type: deffn
+#: doc/guix.texi:18511
+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:18513 doc/guix.texi:18694
+msgid "A simple example configuration is given below."
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:18521
+#, no-wrap
+msgid ""
+"(service httpd-service-type\n"
+"         (httpd-configuration\n"
+"           (config\n"
+"             (httpd-config-file\n"
+"               (server-name \"www.example.com\")\n"
+"               (document-root \"/srv/http/www.example.com\")))))\n"
+msgstr ""
+"(service httpd-service-type\n"
+"         (httpd-configuration\n"
+"           (config\n"
+"             (httpd-config-file\n"
+"               (server-name \"www.example.com\")\n"
+"               (document-root \"/srv/http/www.example.com\")))))\n"
+
+#. type: deffn
+#: doc/guix.texi:18525
+msgid "Other services can also extend the @code{httpd-service-type} to add to the configuration."
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:18534 doc/guix.texi:18674
+#, no-wrap
+msgid ""
+"(simple-service 'my-extra-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"
+msgstr ""
+"(simple-service 'mi-servidor-extra 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"
+
+#. type: Plain text
+#: doc/guix.texi:18540
+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:18541
+#, no-wrap
+msgid "{Data Type} httpd-configuration"
+msgstr "{Tipo de datos} httpd-configuration"
+
+#. type: deffn
+#: doc/guix.texi:18543
+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:18545
+#, no-wrap
+msgid "@code{package} (default: @code{httpd})"
+msgstr "@code{package} (predeterminado: @code{httpd})"
+
+#. type: table
+#: doc/guix.texi:18547
+msgid "The httpd package to use."
+msgstr "El paquete httpd usado."
+
+#. type: item
+#: doc/guix.texi:18548 doc/guix.texi:18637
+#, 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:18550
+msgid "The pid file used by the shepherd-service."
+msgstr "El fichero pid usado por el servicio de Shepherd."
+
+#. type: item
+#: doc/guix.texi:18551
+#, no-wrap
+msgid "@code{config} (default: @code{(httpd-config-file)})"
+msgstr "@code{config} (predeterminado: @code{(httpd-config-file)})"
+
+#. type: table
+#: doc/guix.texi:18556
+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:18560
+#, no-wrap
+msgid "{Data Type} httpd-module"
+msgstr "{Tipo de datos} httpd-module"
+
+#. type: deffn
+#: doc/guix.texi:18562
+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:18566
+msgid "The name of the module."
+msgstr "El nombre del módulo."
+
+#. type: table
+#: doc/guix.texi:18572
+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:18576
+#, no-wrap
+msgid "{Scheme Variable} %default-httpd-modules"
+msgstr "{Variable Scheme} %default-httpd-modules"
+
+#. type: defvr
+#: doc/guix.texi:18578
+msgid "A default list of @code{httpd-module} objects."
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:18580
+#, no-wrap
+msgid "{Data Type} httpd-config-file"
+msgstr "{Tipo de datos} httpd-config-file"
+
+#. type: deffn
+#: doc/guix.texi:18582
+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."
+
+#. type: item
+#: doc/guix.texi:18584
+#, no-wrap
+msgid "@code{modules} (default: @code{%default-httpd-modules})"
+msgstr "@code{modules} (predeterminados: @code{%default-httpd-modules})"
+
+#. type: table
+#: doc/guix.texi:18587
+msgid "The modules to load. Additional modules can be added here, or loaded by additional configuration."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:18590
+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: example
+#: doc/guix.texi:18612
+#, no-wrap
+msgid ""
+"(service httpd-service-type\n"
+"         (httpd-configuration\n"
+"          (config\n"
+"           (httpd-config-file\n"
+"            (modules (cons*\n"
+"                      (httpd-module\n"
+"                       (name \"proxy_module\")\n"
+"                       (file \"modules/mod_proxy.so\"))\n"
+"                      (httpd-module\n"
+"                       (name \"proxy_fcgi_module\")\n"
+"                       (file \"modules/mod_proxy_fcgi.so\"))\n"
+"                      %default-httpd-modules))\n"
+"            (extra-config (list \"\\\n"
+"<FilesMatch \\\\.php$>\n"
+"    SetHandler \\\"proxy:unix:/var/run/php-fpm.sock|fcgi://localhost/\\\"\n"
+"</FilesMatch>\"))))))\n"
+"(service php-fpm-service-type\n"
+"         (php-fpm-configuration\n"
+"          (socket \"/var/run/php-fpm.sock\")\n"
+"          (socket-group \"httpd\")))\n"
+msgstr ""
+"(service httpd-service-type\n"
+"         (httpd-configuration\n"
+"          (config\n"
+"           (httpd-config-file\n"
+"            (modules (cons*\n"
+"                      (httpd-module\n"
+"                       (name \"proxy_module\")\n"
+"                       (file \"modules/mod_proxy.so\"))\n"
+"                      (httpd-module\n"
+"                       (name \"proxy_fcgi_module\")\n"
+"                       (file \"modules/mod_proxy_fcgi.so\"))\n"
+"                      %default-httpd-modules))\n"
+"            (extra-config (list \"\\\n"
+"<FilesMatch \\\\.php$>\n"
+"    SetHandler \\\"proxy:unix:/var/run/php-fpm.sock|fcgi://localhost/\\\"\n"
+"</FilesMatch>\"))))))\n"
+"(service php-fpm-service-type\n"
+"         (php-fpm-configuration\n"
+"          (socket \"/var/run/php-fpm.sock\")\n"
+"          (socket-group \"httpd\")))\n"
+
+#. type: item
+#: doc/guix.texi:18614
+#, no-wrap
+msgid "@code{server-root} (default: @code{httpd})"
+msgstr "@code{server-root} (predeterminado: @code{httpd})"
+
+#. type: table
+#: doc/guix.texi:18618
+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:18619
+#, no-wrap
+msgid "@code{server-name} (default: @code{#f})"
+msgstr "@code{server-name} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:18623
+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:18627
+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}."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:18628
+#, no-wrap
+msgid "@code{document-root} (default: @code{\"/srv/http\"})"
+msgstr "@code{document-root} (predeterminado: @code{\"/srv/http\"})"
+
+#. type: table
+#: doc/guix.texi:18630
+msgid "The @code{DocumentRoot} from which files will be served."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:18631
+#, no-wrap
+msgid "@code{listen} (default: @code{'(\"80\")})"
+msgstr "@code{listen} (predeterminado: @code{'(\"80\")})"
+
+#. type: table
+#: doc/guix.texi:18636
+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:18641
+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:18642
+#, no-wrap
+msgid "@code{error-log} (default: @code{\"/var/log/httpd/error_log\"})"
+msgstr "@code{error-log} (predeterminado: @code{\"/var/log/httpd/error_log\"})"
+
+#. type: table
+#: doc/guix.texi:18644
+msgid "The @code{ErrorLog} to which the server will log errors."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:18645
+#, no-wrap
+msgid "@code{user} (default: @code{\"httpd\"})"
+msgstr "@code{user} (predeterminada: @code{\"httpd\"})"
+
+#. type: table
+#: doc/guix.texi:18647
+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:18648
+#, no-wrap
+msgid "@code{group} (default: @code{\"httpd\"})"
+msgstr "@code{group} (predeterminado: @code{\"httpd\"})"
+
+#. type: table
+#: doc/guix.texi:18650
+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:18651
+#, 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:18654
+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:18657
+msgid "Any values which the service is extended with will be appended to this list."
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:18661
+#, no-wrap
+msgid "{Data Type} httpd-virtualhost"
+msgstr "{Tipo de datos} httpd-virtualhost"
+
+#. type: deffn
+#: doc/guix.texi:18663
+msgid "This data type represents a virtualhost configuration block for the httpd service."
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:18665
+msgid "These should be added to the extra-config for the httpd-service."
+msgstr ""
+
+#. type: code{#1}
+#: doc/guix.texi:18677
+#, no-wrap
+msgid "addresses-and-ports"
+msgstr "addresses-and-ports"
+
+#. type: table
+#: doc/guix.texi:18679
+msgid "The addresses and ports for the @code{VirtualHost} directive."
+msgstr ""
+
+#. type: code{#1}
+#: doc/guix.texi:18680
+#, no-wrap
+msgid "contents"
+msgstr "contents"
+
+#. type: table
+#: doc/guix.texi:18683
+msgid "The contents of the @code{VirtualHost} directive, this should be a list of strings and G-expressions."
+msgstr ""
+
+#. type: subsubheading
+#: doc/guix.texi:18687
+#, no-wrap
+msgid "NGINX"
+msgstr "NGINX"
+
+#. type: deffn
+#: doc/guix.texi:18689
+#, no-wrap
+msgid "{Scheme Variable} nginx-service-type"
+msgstr "{Variable Scheme} nginx-service-type"
+
+#. type: deffn
+#: doc/guix.texi:18692
+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: example
+#: doc/guix.texi:18702 doc/guix.texi:18756
+#, no-wrap
+msgid ""
+"(service nginx-service-type\n"
+"         (nginx-configuration\n"
+"           (server-blocks\n"
+"             (list (nginx-server-configuration\n"
+"                     (server-name '(\"www.example.com\"))\n"
+"                     (root \"/srv/http/www.example.com\"))))))\n"
+msgstr ""
+"(service nginx-service-type\n"
+"         (nginx-configuration\n"
+"           (server-blocks\n"
+"             (list (nginx-server-configuration\n"
+"                     (server-name '(\"www.example.com\"))\n"
+"                     (root \"/srv/http/www.example.com\"))))))\n"
+
+#. type: deffn
+#: doc/guix.texi:18707
+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: example
+#: doc/guix.texi:18713
+#, no-wrap
+msgid ""
+"(simple-service 'my-extra-server nginx-service-type\n"
+"                (list (nginx-server-configuration\n"
+"                        (root \"/srv/http/extra-website\")\n"
+"                        (try-files (list \"$uri\" \"$uri/index.html\")))))\n"
+msgstr ""
+"(simple-service 'mi-servidor-extra nginx-service-type\n"
+"                (list (nginx-server-configuration\n"
+"                        (root \"/srv/http/sitio-extra\")\n"
+"                        (try-files (list \"$uri\" \"$uri/index.html\")))))\n"
+
+#. type: Plain text
+#: doc/guix.texi:18724
+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:18725
+#, no-wrap
+msgid "{Data Type} nginx-configuration"
+msgstr "{Tipo de datos} nginx-configuration"
+
+#. type: deffn
+#: doc/guix.texi:18729
+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:18731
+#, no-wrap
+msgid "@code{nginx} (default: @code{nginx})"
+msgstr "@code{nginx} (predeterminado: @code{nginx})"
+
+#. type: table
+#: doc/guix.texi:18733
+msgid "The nginx package to use."
+msgstr "El paquete nginx usado."
+
+#. type: item
+#: doc/guix.texi:18734
+#, no-wrap
+msgid "@code{log-directory} (default: @code{\"/var/log/nginx\"})"
+msgstr "@code{log-directory} (predeterminado: @code{\"/var/log/nginx\"})"
+
+#. type: table
+#: doc/guix.texi:18736
+msgid "The directory to which NGinx will write log files."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:18737
+#, no-wrap
+msgid "@code{run-directory} (default: @code{\"/var/run/nginx\"})"
+msgstr "@code{run-directory} (predeterminado: @code{\"/var/run/nginx\"})"
+
+#. type: table
+#: doc/guix.texi:18740
+msgid "The directory in which NGinx will create a pid file, and write temporary files."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:18741
+#, no-wrap
+msgid "@code{server-blocks} (default: @code{'()})"
+msgstr "@code{server-blocks} (predeterminados: @code{'()})"
+
+#. type: table
+#: doc/guix.texi:18745
+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:18749
+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:18758
+#, no-wrap
+msgid "@code{upstream-blocks} (default: @code{'()})"
+msgstr "@code{upstream-blocks} (predeterminados: @code{'()})"
+
+#. type: table
+#: doc/guix.texi:18762
+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:18769
+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: example
+#: doc/guix.texi:18788
+#, no-wrap
+msgid ""
+"(service\n"
+"  nginx-service-type\n"
+"  (nginx-configuration\n"
+"    (server-blocks\n"
+"      (list (nginx-server-configuration\n"
+"              (server-name '(\"www.example.com\"))\n"
+"              (root \"/srv/http/www.example.com\")\n"
+"              (locations\n"
+"                (list\n"
+"                  (nginx-location-configuration\n"
+"                  (uri \"/path1\")\n"
+"                  (body '(\"proxy_pass http://server-proxy;\"))))))))\n"
+"    (upstream-blocks\n"
+"      (list (nginx-upstream-configuration\n"
+"              (name \"server-proxy\")\n"
+"              (servers (list \"server1.example.com\"\n"
+"                             \"server2.example.com\")))))))\n"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:18796
+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:18800
+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:18801
+#, no-wrap
+msgid "@code{server-names-hash-bucket-size} (default: @code{#f})"
+msgstr "@code{server-names-hash-bucket-size} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:18804
+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:18805
+#, no-wrap
+msgid "@code{server-names-hash-bucket-max-size} (default: @code{#f})"
+msgstr "@code{server-names-hash-bucket-max-size} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:18807
+msgid "Maximum bucket size for the server names hash tables."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:18811
+msgid "Extra content for the @code{http} block.  Should be string or a string valued G-expression."
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:18815
+#, no-wrap
+msgid "{Data Type} nginx-server-configuration"
+msgstr "{Tipo de datos} nginx-server-configuration"
+
+#. type: deftp
+#: doc/guix.texi:18818
+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:18820
+#, no-wrap
+msgid "@code{listen} (default: @code{'(\"80\" \"443 ssl\")})"
+msgstr "@code{listen} (predeterminadas: @code{'(\"80\" \"443 ssl\")})"
+
+#. type: table
+#: doc/guix.texi:18825
+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: example
+#: doc/guix.texi:18828
+#, 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:18830
+#, no-wrap
+msgid "@code{server-name} (default: @code{(list 'default)})"
+msgstr "@code{server-name} (predeterminados: @code{(list 'default)})"
+
+#. type: table
+#: doc/guix.texi:18833
+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:18834
+#, no-wrap
+msgid "@code{root} (default: @code{\"/srv/http\"})"
+msgstr "@code{root} (predeterminada: @code{\"/srv/http\"})"
+
+#. type: table
+#: doc/guix.texi:18836
+msgid "Root of the website nginx will serve."
+msgstr "Raíz del sitio web que nginx proporcionará."
+
+#. type: item
+#: doc/guix.texi:18837
+#, no-wrap
+msgid "@code{locations} (default: @code{'()})"
+msgstr "@code{locations} (predeterminado: @code{'()})"
+
+#. type: table
+#: doc/guix.texi:18841
+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:18842
+#, no-wrap
+msgid "@code{index} (default: @code{(list \"index.html\")})"
+msgstr "@code{index} (predeterminado: @code{(list \"index.html\")})"
+
+#. type: table
+#: doc/guix.texi:18845
+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:18846
+#, no-wrap
+msgid "@code{try-files} (default: @code{'()})"
+msgstr "@code{try-files} (predeterminado: @code{'()})"
+
+#. type: table
+#: doc/guix.texi:18849
+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:18850
+#, no-wrap
+msgid "@code{ssl-certificate} (default: @code{#f})"
+msgstr "@code{ssl-certificate} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:18853
+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:18854
+#, no-wrap
+msgid "@code{ssl-certificate-key} (default: @code{#f})"
+msgstr "@code{ssl-certificate-key} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:18857
+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:18858
+#, no-wrap
+msgid "@code{server-tokens?} (default: @code{#f})"
+msgstr "@code{server-tokens?} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:18860
+msgid "Whether the server should add its configuration to response."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:18861
+#, no-wrap
+msgid "@code{raw-content} (default: @code{'()})"
+msgstr "@code{raw-content} (predeterminado: @code{'()})"
+
+#. type: table
+#: doc/guix.texi:18863
+msgid "A list of raw lines added to the server block."
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:18867
+#, no-wrap
+msgid "{Data Type} nginx-upstream-configuration"
+msgstr "{Tipo de datos} nginx-upstream-configuration"
+
+#. type: deftp
+#: doc/guix.texi:18870
+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:18874
+msgid "Name for this group of servers."
+msgstr ""
+
+#. type: code{#1}
+#: doc/guix.texi:18875
+#, no-wrap
+msgid "servers"
+msgstr "servers"
+
+#. type: table
+#: doc/guix.texi:18882
+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:18886
+#, no-wrap
+msgid "{Data Type} nginx-location-configuration"
+msgstr "{Tipo de datos} nginx-location-configuration"
+
+#. type: deftp
+#: doc/guix.texi:18889
+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:18893
+msgid "URI which this location block matches."
+msgstr ""
+
+#. type: anchor{#1}
+#: doc/guix.texi:18895
+msgid "nginx-location-configuration body"
+msgstr "nginx-location-configuration body"
+
+#. type: code{#1}
+#: doc/guix.texi:18895 doc/guix.texi:18916
+#, no-wrap
+msgid "body"
+msgstr "body"
+
+#. type: table
+#: doc/guix.texi:18902
+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:18906
+#, no-wrap
+msgid "{Data Type} nginx-named-location-configuration"
+msgstr "{Tipo de datos} nginx-named-location-configuration"
+
+#. type: deftp
+#: doc/guix.texi:18911
+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:18915
+msgid "Name to identify this location block."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:18921
+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:18925
+#, no-wrap
+msgid "Varnish Cache"
+msgstr "Caché Varnish"
+
+#. type: cindex
+#: doc/guix.texi:18926
+#, no-wrap
+msgid "Varnish"
+msgstr "Varnish"
+
+#. type: Plain text
+#: doc/guix.texi:18931
+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:18932
+#, no-wrap
+msgid "{Scheme Variable} varnish-service-type"
+msgstr "{Variable Scheme} varnish-service-type"
+
+#. type: defvr
+#: doc/guix.texi:18934
+msgid "Service type for the Varnish daemon."
+msgstr "Tipo de servicio para el daemon Varnish."
+
+#. type: deftp
+#: doc/guix.texi:18936
+#, no-wrap
+msgid "{Data Type} varnish-configuration"
+msgstr "{Tipo de datos} varnish-configuration"
+
+#. type: deftp
+#: doc/guix.texi:18939
+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:18941
+#, no-wrap
+msgid "@code{package} (default: @code{varnish})"
+msgstr "@code{package} (predeterminado: @code{varnish})"
+
+#. type: table
+#: doc/guix.texi:18943
+msgid "The Varnish package to use."
+msgstr "El paquete Varnish usado."
+
+#. type: item
+#: doc/guix.texi:18944
+#, no-wrap
+msgid "@code{name} (default: @code{\"default\"})"
+msgstr "@code{name} (predeterminado: @code{\"default\"})"
+
+#. type: table
+#: doc/guix.texi:18949
+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:18952
+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:18953
+#, no-wrap
+msgid "@code{backend} (default: @code{\"localhost:8080\"})"
+msgstr "@code{backend} (predeterminado: @code{\"localhost:8080\"})"
+
+#. type: table
+#: doc/guix.texi:18955
+msgid "The backend to use.  This option has no effect if @code{vcl} is set."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:18956
+#, no-wrap
+msgid "@code{vcl} (default: #f)"
+msgstr "@code{vcl} (predeterminado: #f)"
+
+#. type: table
+#: doc/guix.texi:18961
+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:18965
+msgid "For example, to mirror @url{http://www.gnu.org,www.gnu.org} with VCL you can do something along these lines:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:18972
+#, no-wrap
+msgid ""
+"(define %gnu-mirror\n"
+"  (plain-file\n"
+"   \"gnu.vcl\"\n"
+"   \"vcl 4.1;\n"
+"backend gnu @{ .host = \"www.gnu.org\"; @}\"))\n"
+"\n"
+msgstr ""
+"(define %espejo-gnu\n"
+"  (plain-file\n"
+"   \"gnu.vcl\"\n"
+"   \"vcl 4.1;\n"
+"backend gnu @{ .host = \"www.gnu.org\"; @}\"))\n"
+"\n"
+
+#. type: example
+#: doc/guix.texi:18980
+#, no-wrap
+msgid ""
+"(operating-system\n"
+"  ...\n"
+"  (services (cons (service varnish-service-type\n"
+"                           (varnish-configuration\n"
+"                            (listen '(\":80\"))\n"
+"                            (vcl %gnu-mirror)))\n"
+"                  %base-services)))\n"
+msgstr ""
+"(operating-system\n"
+"  ...\n"
+"  (services (cons (service varnish-service-type\n"
+"                           (varnish-configuration\n"
+"                            (listen '(\":80\"))\n"
+"                            (vcl %espejo-gnu)))\n"
+"                  %base-services)))\n"
+
+#. type: table
+#: doc/guix.texi:18984
+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:18988
+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:18989
+#, no-wrap
+msgid "@code{listen} (default: @code{'(\"localhost:80\")})"
+msgstr "@code{listen} (predeterminada: @code{'(\"localhost:80\")})"
+
+#. type: table
+#: doc/guix.texi:18991
+msgid "List of addresses Varnish will listen on."
+msgstr "Lista de direcciones en las que Varnish escucha."
+
+#. type: item
+#: doc/guix.texi:18992
+#, no-wrap
+msgid "@code{storage} (default: @code{'(\"malloc,128m\")})"
+msgstr "@code{storage} (predeterminado: @code{'(\"malloc,128m\")})"
+
+#. type: table
+#: doc/guix.texi:18994
+msgid "List of storage backends that will be available in VCL."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:18995
+#, no-wrap
+msgid "@code{parameters} (default: @code{'()})"
+msgstr "@code{parameters} (predeterminados: @code{'()})"
+
+#. type: table
+#: doc/guix.texi:18997
+msgid "List of run-time parameters in the form @code{'((\"parameter\" . \"value\"))}."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:19000
+msgid "Additional arguments to pass to the @command{varnishd} process."
+msgstr "Parámetros adicionales a proporcional al proceso @command{varnishd}."
+
+#. type: subsubheading
+#: doc/guix.texi:19004
+#, no-wrap
+msgid "FastCGI"
+msgstr "FastCGI"
+
+#. type: cindex
+#: doc/guix.texi:19005
+#, no-wrap
+msgid "fastcgi"
+msgstr "fastcgi"
+
+#. type: cindex
+#: doc/guix.texi:19006
+#, no-wrap
+msgid "fcgiwrap"
+msgstr "fcgiwrap"
+
+#. type: Plain text
+#: doc/guix.texi:19013
+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:19020
+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:19021
+#, no-wrap
+msgid "{Scheme Variable} fcgiwrap-service-type"
+msgstr "{Variable Scheme} fcgiwrap-service-type"
+
+#. type: defvr
+#: doc/guix.texi:19023
+msgid "A service type for the @code{fcgiwrap} FastCGI proxy."
+msgstr "El tipo de servicio para el proxy FastCGI @code{fcgiwrap}."
+
+#. type: deftp
+#: doc/guix.texi:19025
+#, no-wrap
+msgid "{Data Type} fcgiwrap-configuration"
+msgstr "{Tipo de datos} fcgiwrap-configuration"
+
+#. type: deftp
+#: doc/guix.texi:19028
+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:19029
+#, no-wrap
+msgid "@code{package} (default: @code{fcgiwrap})"
+msgstr "@code{package} (predeterminado: @code{fcgiwrap})"
+
+#. type: table
+#: doc/guix.texi:19031
+msgid "The fcgiwrap package to use."
+msgstr "El paquete fcgiwrap usado."
+
+#. type: item
+#: doc/guix.texi:19032
+#, 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:19038
+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:19039
+#, no-wrap
+msgid "@code{user} (default: @code{fcgiwrap})"
+msgstr "@code{user} (predeterminado: @code{fcgiwrap})"
+
+#. type: itemx
+#: doc/guix.texi:19040
+#, no-wrap
+msgid "@code{group} (default: @code{fcgiwrap})"
+msgstr "@code{group} (predeterminado: @code{fcgiwrap})"
+
+#. type: table
+#: doc/guix.texi:19045
+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:19052
+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:19055
+#, no-wrap
+msgid "php-fpm"
+msgstr "php-fpm"
+
+#. type: Plain text
+#: doc/guix.texi:19058
+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:19060
+msgid "These features include:"
+msgstr "Estas características incluyen:"
+
+#. type: item
+#: doc/guix.texi:19061
+#, no-wrap
+msgid "Adaptive process spawning"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19062
+#, no-wrap
+msgid "Basic statistics (similar to Apache's mod_status)"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19063
+#, no-wrap
+msgid "Advanced process management with graceful stop/start"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19064
+#, no-wrap
+msgid "Ability to start workers with different uid/gid/chroot/environment"
+msgstr ""
+
+#. type: itemize
+#: doc/guix.texi:19066
+msgid "and different php.ini (replaces safe_mode)"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19066
+#, no-wrap
+msgid "Stdout & stderr logging"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19067
+#, no-wrap
+msgid "Emergency restart in case of accidental opcode cache destruction"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19068
+#, no-wrap
+msgid "Accelerated upload support"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19069
+#, no-wrap
+msgid "Support for a \"slowlog\""
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19070
+#, no-wrap
+msgid "Enhancements to FastCGI, such as fastcgi_finish_request() -"
+msgstr ""
+
+#. type: itemize
+#: doc/guix.texi:19073
+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:19075
+msgid "...@: and much more."
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:19076
+#, no-wrap
+msgid "{Scheme Variable} php-fpm-service-type"
+msgstr "{Variable Scheme} php-fpm-service-type"
+
+#. type: defvr
+#: doc/guix.texi:19078
+msgid "A Service type for @code{php-fpm}."
+msgstr "Un tipo de servicio para @code{php-fpm}."
+
+#. type: deftp
+#: doc/guix.texi:19080
+#, no-wrap
+msgid "{Data Type} php-fpm-configuration"
+msgstr "{Tipo de datos} php-fpm-configuration"
+
+#. type: deftp
+#: doc/guix.texi:19082
+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:19083
+#, no-wrap
+msgid "@code{php} (default: @code{php})"
+msgstr "@code{php} (predeterminado: @code{php})"
+
+#. type: table
+#: doc/guix.texi:19085
+msgid "The php package to use."
+msgstr "El paquete php usado."
+
+#. type: item
+#: doc/guix.texi:19085
+#, 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:19087
+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:19088
+#, no-wrap
+msgid "\"ip.add.re.ss:port\""
+msgstr "\"dir.ecc.ión.ip:puerto\""
+
+#. type: table
+#: doc/guix.texi:19090
+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:19090
+#, no-wrap
+msgid "\"port\""
+msgstr "\"puerto\""
+
+#. type: table
+#: doc/guix.texi:19092
+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:19092
+#, no-wrap
+msgid "\"/path/to/unix/socket\""
+msgstr "\"/ruta/a/socket/unix\""
+
+#. type: table
+#: doc/guix.texi:19094
+msgid "Listen on a unix socket."
+msgstr "Escucha en un socket Unix."
+
+#. type: item
+#: doc/guix.texi:19096
+#, no-wrap
+msgid "@code{user} (default: @code{php-fpm})"
+msgstr "@code{user} (predeterminada: @code{php-fpm})"
+
+#. type: table
+#: doc/guix.texi:19098
+msgid "User who will own the php worker processes."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19098
+#, no-wrap
+msgid "@code{group} (default: @code{php-fpm})"
+msgstr "@code{group} (predeterminado: @code{php-fpm})"
+
+# FUZZY
+#. type: table
+#: doc/guix.texi:19100
+#, fuzzy
+msgid "Group of the worker processes."
+msgstr "Grupo de los procesos de trabajo."
+
+#. type: item
+#: doc/guix.texi:19100
+#, no-wrap
+msgid "@code{socket-user} (default: @code{php-fpm})"
+msgstr "@code{socket-user} (predeterminado: @code{php-fpm})"
+
+#. type: table
+#: doc/guix.texi:19102
+msgid "User who can speak to the php-fpm socket."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19102
+#, no-wrap
+msgid "@code{socket-group} (default: @code{php-fpm})"
+msgstr "@code{socket-group} (predeterminado: @code{php-fpm})"
+
+#. type: table
+#: doc/guix.texi:19104
+msgid "Group that can speak to the php-fpm socket."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19104
+#, 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\")})"
+
+#. type: table
+#: doc/guix.texi:19107
+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:19107
+#, 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:19109
+msgid "Log for the php-fpm master process."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19109
+#, 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)})"
+
+#. type: table
+#: doc/guix.texi:19112
+msgid "Detailed settings for the php-fpm process manager.  Must be either:"
+msgstr ""
+
+#. type: code{#1}
+#: doc/guix.texi:19113
+#, no-wrap
+msgid "<php-fpm-dynamic-process-manager-configuration>"
+msgstr "<php-fpm-dynamic-process-manager-configuration>"
+
+#. type: code{#1}
+#: doc/guix.texi:19114
+#, no-wrap
+msgid "<php-fpm-static-process-manager-configuration>"
+msgstr "<php-fpm-static-process-manager-configuration>"
+
+#. type: code{#1}
+#: doc/guix.texi:19115
+#, no-wrap
+msgid "<php-fpm-on-demand-process-manager-configuration>"
+msgstr "<php-fpm-on-demand-process-manager-configuration>"
+
+#. type: item
+#: doc/guix.texi:19117
+#, no-wrap
+msgid "@code{display-errors} (default @code{#f})"
+msgstr "@code{display-errors} (predeterminado @code{#f})"
+
+#. type: table
+#: doc/guix.texi:19122
+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:19122
+#, no-wrap
+msgid "@code{timezone} (default @code{#f})"
+msgstr "@code{timezone} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:19124
+msgid "Specifies @code{php_admin_value[date.timezone]} parameter."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19124
+#, 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:19127
+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:19127
+#, no-wrap
+msgid "@code{file} (default @code{#f})"
+msgstr "@code{file} (predeterminado @code{#f})"
+
+#. type: table
+#: doc/guix.texi:19130
+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: deftp
+#: doc/guix.texi:19133
+#, no-wrap
+msgid "{Data type} php-fpm-dynamic-process-manager-configuration"
+msgstr "{Tipo de datos} php-fpm-dynamic-process-manager-configuration"
+
+#. type: deftp
+#: doc/guix.texi:19137
+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:19138 doc/guix.texi:19154 doc/guix.texi:19164
+#, no-wrap
+msgid "@code{max-children} (default: @code{5})"
+msgstr "@code{max-children} (predeterminados: @code{5})"
+
+#. type: table
+#: doc/guix.texi:19140 doc/guix.texi:19156 doc/guix.texi:19166
+msgid "Maximum of worker processes."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19140
+#, no-wrap
+msgid "@code{start-servers} (default: @code{2})"
+msgstr "@code{start-servers} (predeterminados: @code{2})"
+
+#. type: table
+#: doc/guix.texi:19142
+msgid "How many worker processes should be started on start-up."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19142
+#, no-wrap
+msgid "@code{min-spare-servers} (default: @code{1})"
+msgstr "@code{min-spare-servers} (predeterminado: @code{1})"
+
+#. type: table
+#: doc/guix.texi:19144
+msgid "How many spare worker processes should be kept around at minimum."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19144
+#, no-wrap
+msgid "@code{max-spare-servers} (default: @code{3})"
+msgstr "@code{max-spare-servers} (predeterminados: @code{3})"
+
+#. type: table
+#: doc/guix.texi:19146
+msgid "How many spare worker processes should be kept around at maximum."
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:19149
+#, 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:19153
+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:19159
+#, 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:19163
+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:19166
+#, no-wrap
+msgid "@code{process-idle-timeout} (default: @code{10})"
+msgstr "@code{process-idle-timeout} (predeterminado: @code{10})"
+
+#. type: table
+#: doc/guix.texi:19168
+msgid "The time in seconds after which a process with no requests is killed."
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:19172
+#, no-wrap
+msgid "{Scheme Procedure} nginx-php-fpm-location @"
+msgstr "{Procedimiento Scheme} nginx-php-fpm-location @"
+
+#. type: deffn
+#: doc/guix.texi:19178
+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:19181
+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: example
+#: doc/guix.texi:19194
+#, no-wrap
+msgid ""
+"(services (cons* (service dhcp-client-service-type)\n"
+"                 (service php-fpm-service-type)\n"
+"                 (service nginx-service-type\n"
+"                          (nginx-server-configuration\n"
+"                           (server-name '(\"example.com\"))\n"
+"                           (root \"/srv/http/\")\n"
+"                           (locations\n"
+"                            (list (nginx-php-location)))\n"
+"                           (listen '(\"80\"))\n"
+"                           (ssl-certificate #f)\n"
+"                           (ssl-certificate-key #f)))\n"
+"                 %base-services))\n"
+msgstr ""
+"(services (cons* (service dhcp-client-service-type)\n"
+"                 (service php-fpm-service-type)\n"
+"                 (service nginx-service-type\n"
+"                          (nginx-server-configuration\n"
+"                           (server-name '(\"example.com\"))\n"
+"                           (root \"/srv/http/\")\n"
+"                           (locations\n"
+"                            (list (nginx-php-location)))\n"
+"                           (listen '(\"80\"))\n"
+"                           (ssl-certificate #f)\n"
+"                           (ssl-certificate-key #f)))\n"
+"                 %base-services))\n"
+
+#. type: cindex
+#: doc/guix.texi:19196
+#, no-wrap
+msgid "cat-avatar-generator"
+msgstr "cat-avatar-generator"
+
+#. type: Plain text
+#: doc/guix.texi:19200
+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:19201
+#, no-wrap
+msgid "{Scheme Procedure} cat-avatar-generator-service @"
+msgstr "{Procedimiento Scheme} cat-avatar-generator-service @"
+
+#. type: deffn
+#: doc/guix.texi:19209
+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:19212
+msgid "A simple setup for cat-avatar-generator can look like this:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:19219
+#, no-wrap
+msgid ""
+"(services (cons* (cat-avatar-generator-service\n"
+"                  #:configuration\n"
+"                  (nginx-server-configuration\n"
+"                    (server-name '(\"example.com\"))))\n"
+"                 ...\n"
+"                 %base-services))\n"
+msgstr ""
+"(services (cons* (cat-avatar-generator-service\n"
+"                  #:configuration\n"
+"                  (nginx-server-configuration\n"
+"                    (server-name '(\"example.com\"))))\n"
+"                 ...\n"
+"                 %base-services))\n"
+
+#. type: subsubheading
+#: doc/guix.texi:19221
+#, no-wrap
+msgid "Hpcguix-web"
+msgstr "Hpcguix-web"
+
+#. type: cindex
+#: doc/guix.texi:19223
+#, no-wrap
+msgid "hpcguix-web"
+msgstr "hpcguix-web"
+
+#. type: Plain text
+#: doc/guix.texi:19228
+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 ""
+
+#. type: defvr
+#: doc/guix.texi:19229
+#, no-wrap
+msgid "{Scheme Variable} hpcguix-web-service-type"
+msgstr "{Variable Scheme} hpcguix-web-service-type"
+
+#. type: defvr
+#: doc/guix.texi:19231
+msgid "The service type for @code{hpcguix-web}."
+msgstr "El tipo de servicio para @code{hpcguix-web}."
+
+#. type: deftp
+#: doc/guix.texi:19233
+#, no-wrap
+msgid "{Data Type} hpcguix-web-configuration"
+msgstr "{Tipo de datos} hpcguix-web-configuration"
+
+#. type: deftp
+#: doc/guix.texi:19235
+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:19237
+#, no-wrap
+msgid "specs"
+msgstr "specs"
+
+#. type: table
+#: doc/guix.texi:19240
+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:19242
+#, no-wrap
+msgid "@code{title-prefix} (default: @code{\"hpcguix | \"})"
+msgstr "@code{title-prefix} (predeterminado: @code{\"hpcguix | \"})"
+
+#. type: table
+#: doc/guix.texi:19244
+msgid "The page title prefix."
+msgstr "El prefijo del título de la página."
+
+#. type: item
+#: doc/guix.texi:19245
+#, no-wrap
+msgid "@code{guix-command} (default: @code{\"guix\"})"
+msgstr "@code{guix-command} (predeterminada: @code{\"guix\"})"
+
+#. type: table
+#: doc/guix.texi:19247
+msgid "The @command{guix} command."
+msgstr "La orden @command{guix}."
+
+#. type: item
+#: doc/guix.texi:19248
+#, no-wrap
+msgid "@code{package-filter-proc} (default: @code{(const #t)})"
+msgstr "@code{package-filter-proc} (predeterminado: @code{(const #t)})"
+
+#. type: table
+#: doc/guix.texi:19250
+msgid "A procedure specifying how to filter packages that are displayed."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19251
+#, 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:19253
+msgid "Extension package for @code{hpcguix-web}."
+msgstr "Paquete de extensión para @code{hpcguix-web}."
+
+#. type: item
+#: doc/guix.texi:19254
+#, no-wrap
+msgid "@code{menu} (default: @code{'()})"
+msgstr "@code{menu} (predeterminadas: @code{'()})"
+
+#. type: table
+#: doc/guix.texi:19256
+msgid "Additional entry in page @code{menu}."
+msgstr "Entradas adicionales en el menú de la página."
+
+#. type: item
+#: doc/guix.texi:19257
+#, no-wrap
+msgid "@code{channels} (default: @code{%default-channels})"
+msgstr "@code{channels} (predeterminados: @code{%default-channels})"
+
+#. type: table
+#: doc/guix.texi:19259
+msgid "List of channels from which the package list is built (@pxref{Channels})."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19260
+#, 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:19263
+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:19268
+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:19269
+#, no-wrap
+msgid "@code{package} (default: @code{hpcguix-web})"
+msgstr "@code{package} (predeterminado: @code{hpcguix-web})"
+
+#. type: table
+#: doc/guix.texi:19271
+msgid "The hpcguix-web package to use."
+msgstr "El paquete hpcguix-web usado."
+
+#. type: Plain text
+#: doc/guix.texi:19275
+msgid "A typical hpcguix-web service declaration looks like this:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:19284
+#, no-wrap
+msgid ""
+"(service hpcguix-web-service-type\n"
+"         (hpcguix-web-configuration\n"
+"          (specs\n"
+"           #~(define site-config\n"
+"               (hpcweb-configuration\n"
+"                (title-prefix \"Guix-HPC - \")\n"
+"                (menu '((\"/about\" \"ABOUT\"))))))))\n"
+msgstr ""
+"(service hpcguix-web-service-type\n"
+"         (hpcguix-web-configuration\n"
+"          (specs\n"
+"           #~(define site-config\n"
+"               (hpcweb-configuration\n"
+"                (title-prefix \"Guix-HPC - \")\n"
+"                (menu '((\"/about\" \"ABOUT\"))))))))\n"
+
+#. type: quotation
+#: doc/guix.texi:19291
+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:19295
+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:19300
+#, no-wrap
+msgid "Web"
+msgstr "Web"
+
+#. type: cindex
+#: doc/guix.texi:19301
+#, no-wrap
+msgid "HTTP, HTTPS"
+msgstr "HTTP, HTTPS"
+
+#. type: cindex
+#: doc/guix.texi:19302
+#, no-wrap
+msgid "Let's Encrypt"
+msgstr "Let's Encrypt"
+
+#. type: cindex
+#: doc/guix.texi:19303
+#, no-wrap
+msgid "TLS certificates"
+msgstr "certificados TLS"
+
+#. type: Plain text
+#: doc/guix.texi:19310
+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:19322
+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:19329
+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:19335
+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:19339
+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:19340
+#, no-wrap
+msgid "{Scheme Variable} certbot-service-type"
+msgstr "{Variable Scheme} certbot-service-type"
+
+#. type: defvr
+#: doc/guix.texi:19343
+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: example
+#: doc/guix.texi:19350
+#, no-wrap
+msgid ""
+"(define %nginx-deploy-hook\n"
+"  (program-file\n"
+"   \"nginx-deploy-hook\"\n"
+"   #~(let ((pid (call-with-input-file \"/var/run/nginx/pid\" read)))\n"
+"       (kill pid SIGHUP))))\n"
+"\n"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:19361
+#, no-wrap
+msgid ""
+"(service certbot-service-type\n"
+"         (certbot-configuration\n"
+"          (email \"foo@@example.net\")\n"
+"          (certificates\n"
+"           (list\n"
+"            (certificate-configuration\n"
+"             (domains '(\"example.net\" \"www.example.net\"))\n"
+"             (deploy-hook %nginx-deploy-hook))\n"
+"            (certificate-configuration\n"
+"             (domains '(\"bar.example.net\")))))))\n"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:19364
+msgid "See below for details about @code{certbot-configuration}."
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:19366
+#, no-wrap
+msgid "{Data Type} certbot-configuration"
+msgstr "{Tipo de datos} certbot-configuration"
+
+#. type: deftp
+#: doc/guix.texi:19369
+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:19371
+#, no-wrap
+msgid "@code{package} (default: @code{certbot})"
+msgstr "@code{package} (predeterminado: @code{certbot})"
+
+#. type: table
+#: doc/guix.texi:19373
+msgid "The certbot package to use."
+msgstr "El paquete certbot usado."
+
+#. type: item
+#: doc/guix.texi:19374
+#, no-wrap
+msgid "@code{webroot} (default: @code{/var/www})"
+msgstr "@code{webroot} (predeterminado: @code{/var/www})"
+
+#. type: table
+#: doc/guix.texi:19377
+msgid "The directory from which to serve the Let's Encrypt challenge/response files."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19378
+#, no-wrap
+msgid "@code{certificates} (default: @code{()})"
+msgstr "@code{certificates} (predeterminados: @code{()})"
+
+#. type: table
+#: doc/guix.texi:19382
+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: table
+#: doc/guix.texi:19386
+msgid "Mandatory email used for registration, recovery contact, and important account notifications."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19387
+#, no-wrap
+msgid "@code{rsa-key-size} (default: @code{2048})"
+msgstr "@code{rsa-key-size} (predeterminado: @code{2048})"
+
+#. type: table
+#: doc/guix.texi:19389
+msgid "Size of the RSA key."
+msgstr "Tamaño de la clave RSA."
+
+#. type: item
+#: doc/guix.texi:19390
+#, no-wrap
+msgid "@code{default-location} (default: @i{see below})"
+msgstr "@code{default-location} (predeterminada: @i{vea a continuación})"
+
+#. type: table
+#: doc/guix.texi:19399
+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:19403
+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:19407
+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:19409
+msgid "Pass @code{#f} to not issue a default location."
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:19412
+#, no-wrap
+msgid "{Data Type} certificate-configuration"
+msgstr "{Tipo de datos} certificate-configuration"
+
+#. type: deftp
+#: doc/guix.texi:19415
+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:19417
+#, no-wrap
+msgid "@code{name} (default: @i{see below})"
+msgstr "@code{name} (predeterminado: @i{vea a continuación})"
+
+#. type: table
+#: doc/guix.texi:19421
+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:19423
+msgid "Its default is the first provided domain."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19424
+#, no-wrap
+msgid "@code{domains} (default: @code{()})"
+msgstr "@code{domains} (predeterminado: @code{()})"
+
+#. type: table
+#: doc/guix.texi:19427
+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:19428
+#, no-wrap
+msgid "@code{deploy-hook} (default: @code{#f})"
+msgstr "@code{deploy-hook} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:19436
+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:19443
+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:19445
+#, no-wrap
+msgid "DNS (domain name system)"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:19446
+#, no-wrap
+msgid "domain name system (DNS)"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:19454
+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:19455
+#, no-wrap
+msgid "Knot Service"
+msgstr "Servicio Knot"
+
+#. type: Plain text
+#: doc/guix.texi:19459
+msgid "An example configuration of an authoritative server for two zones, one master and one slave, is:"
+msgstr ""
+
+#. type: lisp
+#: doc/guix.texi:19466
+#, no-wrap
+msgid ""
+"(define-zone-entries example.org.zone\n"
+";; Name TTL Class Type Data\n"
+"  (\"@@\"  \"\"  \"IN\"  \"A\"  \"127.0.0.1\")\n"
+"  (\"@@\"  \"\"  \"IN\"  \"NS\" \"ns\")\n"
+"  (\"ns\" \"\"  \"IN\"  \"A\"  \"127.0.0.1\"))\n"
+"\n"
+msgstr ""
+
+#. type: lisp
+#: doc/guix.texi:19473
+#, no-wrap
+msgid ""
+"(define master-zone\n"
+"  (knot-zone-configuration\n"
+"    (domain \"example.org\")\n"
+"    (zone (zone-file\n"
+"            (origin \"example.org\")\n"
+"            (entries example.org.zone)))))\n"
+"\n"
+msgstr ""
+
+#. type: lisp
+#: doc/guix.texi:19479
+#, no-wrap
+msgid ""
+"(define slave-zone\n"
+"  (knot-zone-configuration\n"
+"    (domain \"plop.org\")\n"
+"    (dnssec-policy \"default\")\n"
+"    (master (list \"plop-master\"))))\n"
+"\n"
+msgstr ""
+
+#. type: lisp
+#: doc/guix.texi:19484
+#, no-wrap
+msgid ""
+"(define plop-master\n"
+"  (knot-remote-configuration\n"
+"    (id \"plop-master\")\n"
+"    (address (list \"208.76.58.171\"))))\n"
+"\n"
+msgstr ""
+
+#. type: lisp
+#: doc/guix.texi:19493
+#, no-wrap
+msgid ""
+"(operating-system\n"
+"  ;; ...\n"
+"  (services (cons* (service knot-service-type\n"
+"                     (knot-configuration\n"
+"                       (remotes (list plop-master))\n"
+"                       (zones (list master-zone slave-zone))))\n"
+"                   ;; ...\n"
+"                   %base-services)))\n"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:19495
+#, no-wrap
+msgid "{Scheme Variable} knot-service-type"
+msgstr "{Variable Scheme} knot-service-type"
+
+#. type: deffn
+#: doc/guix.texi:19497
+msgid "This is the type for the Knot DNS server."
+msgstr "Este es el tipo de datos para el servidor DNS Knot."
+
+#. type: deffn
+#: doc/guix.texi:19505
+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:19507
+msgid "The following data types are used to configure the Knot DNS server:"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:19509
+#, no-wrap
+msgid "{Data Type} knot-key-configuration"
+msgstr "{Tipo de datos} knot-key-configuration"
+
+#. type: deftp
+#: doc/guix.texi:19512
+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:19514 doc/guix.texi:19534 doc/guix.texi:19649
+#: doc/guix.texi:19675 doc/guix.texi:19710
+#, no-wrap
+msgid "@code{id} (default: @code{\"\"})"
+msgstr "@code{id} (predeterminado: @code{\"\"})"
+
+#. type: table
+#: doc/guix.texi:19517
+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:19518
+#, no-wrap
+msgid "@code{algorithm} (default: @code{#f})"
+msgstr "@code{algorithm} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:19522
+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:19523
+#, no-wrap
+msgid "@code{secret} (default: @code{\"\"})"
+msgstr "@code{secret} (predeterminado: @code{\"\"})"
+
+#. type: table
+#: doc/guix.texi:19525
+msgid "The secret key itself."
+msgstr "La clave secreta en sí."
+
+#. type: deftp
+#: doc/guix.texi:19529
+#, no-wrap
+msgid "{Data Type} knot-acl-configuration"
+msgstr "{Tipo de datos} knot-acl-configuration"
+
+#. type: deftp
+#: doc/guix.texi:19532
+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:"
+
+#. type: table
+#: doc/guix.texi:19537
+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:19538 doc/guix.texi:19653
+#, no-wrap
+msgid "@code{address} (default: @code{'()})"
+msgstr "@code{address} (predeterminada: @code{'()})"
+
+#. type: table
+#: doc/guix.texi:19542
+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:19543
+#, no-wrap
+msgid "@code{key} (default: @code{'()})"
+msgstr "@code{key} (predeterminada: @code{'()})"
+
+#. type: table
+#: doc/guix.texi:19547
+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:19548
+#, no-wrap
+msgid "@code{action} (default: @code{'()})"
+msgstr "@code{action} (predeterminada: @code{'()})"
+
+#. type: table
+#: doc/guix.texi:19552
+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:19553
+#, no-wrap
+msgid "@code{deny?} (default: @code{#f})"
+msgstr "@code{deny?} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:19556
+msgid "When true, the ACL defines restrictions.  Listed actions are forbidden.  When false, listed actions are allowed."
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:19560
+#, no-wrap
+msgid "{Data Type} zone-entry"
+msgstr "{Tipo de datos} zone-entry"
+
+#. type: deftp
+#: doc/guix.texi:19563
+msgid "Data type represnting 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:"
+
+#. type: item
+#: doc/guix.texi:19565
+#, no-wrap
+msgid "@code{name} (default: @code{\"@@\"})"
+msgstr "@code{name} (predeterminado: @code{\"@@\"})"
+
+#. type: table
+#: doc/guix.texi:19571
+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:19572
+#, no-wrap
+msgid "@code{ttl} (default: @code{\"\"})"
+msgstr "@code{ttl} (predeterminado: @code{\"\"})"
+
+#. type: table
+#: doc/guix.texi:19574
+msgid "The Time-To-Live (TTL) of this record.  If not set, the default TTL is used."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19575
+#, no-wrap
+msgid "@code{class} (default: @code{\"IN\"})"
+msgstr "@code{class} (predeterminada: @code{\"IN\"})"
+
+#. type: table
+#: doc/guix.texi:19578
+msgid "The class of the record.  Knot currently supports only @code{\"IN\"} and partially @code{\"CH\"}."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19579
+#, no-wrap
+msgid "@code{type} (default: @code{\"A\"})"
+msgstr "@code{type} (predeterminado: @code{\"A\"})"
+
+#. type: table
+#: doc/guix.texi:19583
+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:19584
+#, no-wrap
+msgid "@code{data} (default: @code{\"\"})"
+msgstr "@code{data} (predeterminados: @code{\"\"})"
+
+#. type: table
+#: doc/guix.texi:19588
+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:19592
+#, no-wrap
+msgid "{Data Type} zone-file"
+msgstr "{Tipo de datos} zone-file"
+
+#. type: deftp
+#: doc/guix.texi:19595
+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:"
+
+#. type: table
+#: doc/guix.texi:19604
+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:19605
+#, no-wrap
+msgid "@code{origin} (default: @code{\"\"})"
+msgstr "@code{origin} (predeterminado: @code{\"\"})"
+
+#. type: table
+#: doc/guix.texi:19607
+msgid "The name of your zone.  This parameter cannot be empty."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19608
+#, no-wrap
+msgid "@code{ns} (default: @code{\"ns\"})"
+msgstr "@code{ns} (predeterminado: @code{\"ns\"})"
+
+#. type: table
+#: doc/guix.texi:19613
+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:19614
+#, no-wrap
+msgid "@code{mail} (default: @code{\"hostmaster\"})"
+msgstr "@code{mail} (predeterminado: @code{\"hostmaster\"})"
+
+#. type: table
+#: doc/guix.texi:19617
+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:19618
+#, no-wrap
+msgid "@code{serial} (default: @code{1})"
+msgstr "@code{serial} (predeterminado: @code{1})"
+
+#. type: table
+#: doc/guix.texi:19622
+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:19623
+#, no-wrap
+msgid "@code{refresh} (default: @code{(* 2 24 3600)})"
+msgstr "@code{refresh} (predeterminado: @code{(* 2 24 3600)})"
+
+#. type: table
+#: doc/guix.texi:19627
+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:19628
+#, no-wrap
+msgid "@code{retry} (default: @code{(* 15 60)})"
+msgstr "@code{retry} (predeterminado: @code{(* 15 60)})"
+
+#. type: table
+#: doc/guix.texi:19631
+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:19632
+#, no-wrap
+msgid "@code{expiry} (default: @code{(* 14 24 3600)})"
+msgstr "@code{expiry} (predeterminado: @code{(* 14 24 3600)})"
+
+#. type: table
+#: doc/guix.texi:19636
+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:19637
+#, no-wrap
+msgid "@code{nx} (default: @code{3600})"
+msgstr "@code{nx} (predeterminado: @code{3600})"
+
+#. type: table
+#: doc/guix.texi:19640
+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:19644
+#, no-wrap
+msgid "{Data Type} knot-remote-configuration"
+msgstr "{Tipo de datos} knot-remote-configuration"
+
+#. type: deftp
+#: doc/guix.texi:19647
+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:19652
+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:19657
+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:19658
+#, no-wrap
+msgid "@code{via} (default: @code{'()})"
+msgstr "@code{via} (predeterminada: @code{'()})"
+
+#. type: table
+#: doc/guix.texi:19662
+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:19663
+#, no-wrap
+msgid "@code{key} (default: @code{#f})"
+msgstr "@code{key} (predeterminada: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:19666
+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:19670
+#, no-wrap
+msgid "{Data Type} knot-keystore-configuration"
+msgstr "{Tipo de datos} knot-keystore-configuration"
+
+#. type: deftp
+#: doc/guix.texi:19673
+msgid "Data type representing a keystore to hold dnssec keys.  This type has the following parameters:"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:19677
+msgid "The id of the keystore.  It must not be empty."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19678
+#, no-wrap
+msgid "@code{backend} (default: @code{'pem})"
+msgstr "@code{backend} (predeterminado: @code{'pem})"
+
+#. type: table
+#: doc/guix.texi:19680
+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:19681
+#, no-wrap
+msgid "@code{config} (default: @code{\"/var/lib/knot/keys/keys\"})"
+msgstr "@code{config} (predeterminada: @code{\"/var/lib/knot/keys/keys\"})"
+
+#. type: table
+#: doc/guix.texi:19685
+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 ""
+
+#. type: deftp
+#: doc/guix.texi:19689
+#, no-wrap
+msgid "{Data Type} knot-policy-configuration"
+msgstr "{Tipo de datos} knot-policy-configuration"
+
+#. type: deftp
+#: doc/guix.texi:19693
+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:19700
+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:19706
+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:19708
+msgid "This type has the following parameters:"
+msgstr "Este tipo tiene los siguientes parámetros:"
+
+#. type: table
+#: doc/guix.texi:19712
+msgid "The id of the policy.  It must not be empty."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19713
+#, no-wrap
+msgid "@code{keystore} (default: @code{\"default\"})"
+msgstr "@code{keystore} (predeterminado: @code{\"default\"})"
+
+#. type: table
+#: doc/guix.texi:19718
+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:19719
+#, no-wrap
+msgid "@code{manual?} (default: @code{#f})"
+msgstr "@code{manual?} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:19721
+msgid "Whether the key management is manual or automatic."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19722
+#, no-wrap
+msgid "@code{single-type-signing?} (default: @code{#f})"
+msgstr "@code{single-type-signing?} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:19724
+msgid "When @code{#t}, use the Single-Type Signing Scheme."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19725
+#, no-wrap
+msgid "@code{algorithm} (default: @code{\"ecdsap256sha256\"})"
+msgstr "@code{algorithm} (predeterminado: @code{\"ecdsap256sha256\"})"
+
+#. type: table
+#: doc/guix.texi:19727
+msgid "An algorithm of signing keys and issued signatures."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19728
+#, no-wrap
+msgid "@code{ksk-size} (default: @code{256})"
+msgstr "@code{ksk-size} (predeterminado: @code{256})"
+
+#. type: table
+#: doc/guix.texi:19731
+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:19732
+#, no-wrap
+msgid "@code{zsk-size} (default: @code{256})"
+msgstr "@code{zsk-size} (predeterminado: @code{256})"
+
+#. type: table
+#: doc/guix.texi:19735
+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:19736
+#, no-wrap
+msgid "@code{dnskey-ttl} (default: @code{'default})"
+msgstr "@code{dnskey-ttl} (predeterminado: @code{'default})"
+
+#. type: table
+#: doc/guix.texi:19739
+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:19740
+#, no-wrap
+msgid "@code{zsk-lifetime} (default: @code{(* 30 24 3600)})"
+msgstr "@code{zsk-lifetime} (predeterminado: @code{(* 30 24 3600)})"
+
+#. type: table
+#: doc/guix.texi:19742
+msgid "The period between ZSK publication and the next rollover initiation."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19743
+#, no-wrap
+msgid "@code{propagation-delay} (default: @code{(* 24 3600)})"
+msgstr "@code{propagation-delay} (predeterminado: @code{(* 24 3600)})"
+
+#. type: table
+#: doc/guix.texi:19746
+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:19747
+#, no-wrap
+msgid "@code{rrsig-lifetime} (default: @code{(* 14 24 3600)})"
+msgstr "@code{rrsig-lifetime} (predeterminado: @code{(* 14 24 3600)})"
+
+#. type: table
+#: doc/guix.texi:19749
+msgid "A validity period of newly issued signatures."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19750
+#, 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:19752
+msgid "A period how long before a signature expiration the signature will be refreshed."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19753
+#, no-wrap
+msgid "@code{nsec3?} (default: @code{#f})"
+msgstr "@code{nsec3?} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:19755
+msgid "When @code{#t}, NSEC3 will be used instead of NSEC."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19756
+#, no-wrap
+msgid "@code{nsec3-iterations} (default: @code{5})"
+msgstr "@code{nsec3-iterations} (predeterminado: @code{5})"
+
+#. type: table
+#: doc/guix.texi:19758
+msgid "The number of additional times the hashing is performed."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19759
+#, no-wrap
+msgid "@code{nsec3-salt-length} (default: @code{8})"
+msgstr "@code{nsec3-salt-length} (predeterminado: @code{8})"
+
+#. type: table
+#: doc/guix.texi:19762
+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:19763
+#, no-wrap
+msgid "@code{nsec3-salt-lifetime} (default: @code{(* 30 24 3600)})"
+msgstr "@code{nsec3-salt-lifetime} (predeterminado: @code{(* 30 24 3600)})"
+
+#. type: table
+#: doc/guix.texi:19765
+msgid "The validity period of newly issued salt field."
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:19769
+#, no-wrap
+msgid "{Data Type} knot-zone-configuration"
+msgstr "{Tipo de datos} knot-zone-configuration"
+
+#. type: deftp
+#: doc/guix.texi:19772
+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:19774
+#, no-wrap
+msgid "@code{domain} (default: @code{\"\"})"
+msgstr "@code{domain} (predeterminado: @code{\"\"})"
+
+#. type: table
+#: doc/guix.texi:19776
+msgid "The domain served by this configuration.  It must not be empty."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19777
+#, no-wrap
+msgid "@code{file} (default: @code{\"\"})"
+msgstr "@code{file} (predeterminado: @code{\"\"})"
+
+#. type: table
+#: doc/guix.texi:19780
+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:19781
+#, no-wrap
+msgid "@code{zone} (default: @code{(zone-file)})"
+msgstr "@code{zone} (predeterminado: @code{(zone-file)})"
+
+#. type: table
+#: doc/guix.texi:19784
+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:19785
+#, no-wrap
+msgid "@code{master} (default: @code{'()})"
+msgstr "@code{master} (predeterminado: @code{'()})"
+
+#. type: table
+#: doc/guix.texi:19788
+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:19789
+#, no-wrap
+msgid "@code{ddns-master} (default: @code{#f})"
+msgstr "@code{ddns-master} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:19792
+msgid "The main master.  When empty, it defaults to the first master in the list of masters."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19793
+#, no-wrap
+msgid "@code{notify} (default: @code{'()})"
+msgstr "@code{notify} (predeterminado: @code{'()})"
+
+#. type: table
+#: doc/guix.texi:19795
+msgid "A list of slave remote identifiers."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19796
+#, no-wrap
+msgid "@code{acl} (default: @code{'()})"
+msgstr "@code{acl} (predeterminado: @code{'()})"
+
+#. type: table
+#: doc/guix.texi:19798
+msgid "A list of acl identifiers."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19799
+#, no-wrap
+msgid "@code{semantic-checks?} (default: @code{#f})"
+msgstr "@code{semantic-checks?} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:19801
+msgid "When set, this adds more semantic checks to the zone."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19802
+#, no-wrap
+msgid "@code{disable-any?} (default: @code{#f})"
+msgstr "@code{disable-any?} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:19804
+msgid "When set, this forbids queries of the ANY type."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19805
+#, no-wrap
+msgid "@code{zonefile-sync} (default: @code{0})"
+msgstr "@code{zonefile-sync} (predeterminado: @code{0})"
+
+#. type: table
+#: doc/guix.texi:19808
+msgid "The delay between a modification in memory and on disk.  0 means immediate synchronization."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19809
+#, no-wrap
+msgid "@code{serial-policy} (default: @code{'increment})"
+msgstr "@code{serial-policy} (predeterminado: @code{'increment})"
+
+#. type: table
+#: doc/guix.texi:19811
+msgid "A policy between @code{'increment} and @code{'unixtime}."
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:19815
+#, no-wrap
+msgid "{Data Type} knot-configuration"
+msgstr "{Tipo de datos} knot-configuration"
+
+#. type: deftp
+#: doc/guix.texi:19818
+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:19820
+#, no-wrap
+msgid "@code{knot} (default: @code{knot})"
+msgstr "@code{knot} (predeterminado: @code{knot})"
+
+#. type: table
+#: doc/guix.texi:19822
+msgid "The Knot package."
+msgstr "El paquete Knot."
+
+#. type: item
+#: doc/guix.texi:19823
+#, no-wrap
+msgid "@code{run-directory} (default: @code{\"/var/run/knot\"})"
+msgstr "@code{run-directory} (predeterminado: @code{\"/var/run/knot\"})"
+
+#. type: table
+#: doc/guix.texi:19825
+msgid "The run directory.  This directory will be used for pid file and sockets."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19826
+#, 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:19828 doc/guix.texi:19831
+msgid "An ip address on which to listen."
+msgstr "La dirección IP en la que escuchar."
+
+#. type: item
+#: doc/guix.texi:19829
+#, no-wrap
+msgid "@code{listen-v6} (default: @code{\"::\"})"
+msgstr "@code{listen-v6} (predeterminada: @code{\"::\"})"
+
+#. type: item
+#: doc/guix.texi:19832
+#, no-wrap
+msgid "@code{listen-port} (default: @code{53})"
+msgstr "@code{listen-port} (predeterminado: @code{53})"
+
+#. type: table
+#: doc/guix.texi:19834
+msgid "A port on which to listen."
+msgstr "El puerto en el que escuchar."
+
+#. type: item
+#: doc/guix.texi:19835
+#, no-wrap
+msgid "@code{keys} (default: @code{'()})"
+msgstr "@code{keys} (predeterminada: @code{'()})"
+
+#. type: table
+#: doc/guix.texi:19837
+msgid "The list of knot-key-configuration used by this configuration."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19838
+#, no-wrap
+msgid "@code{acls} (default: @code{'()})"
+msgstr "@code{acls} (predeterminado: @code{'()})"
+
+#. type: table
+#: doc/guix.texi:19840
+msgid "The list of knot-acl-configuration used by this configuration."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19841
+#, no-wrap
+msgid "@code{remotes} (default: @code{'()})"
+msgstr "@code{remotes} (predeterminada: @code{'()})"
+
+#. type: table
+#: doc/guix.texi:19843
+msgid "The list of knot-remote-configuration used by this configuration."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19844
+#, no-wrap
+msgid "@code{zones} (default: @code{'()})"
+msgstr "@code{zones} (predeterminada: @code{'()})"
+
+#. type: table
+#: doc/guix.texi:19846
+msgid "The list of knot-zone-configuration used by this configuration."
+msgstr ""
+
+#. type: subsubheading
+#: doc/guix.texi:19850
+#, no-wrap
+msgid "Dnsmasq Service"
+msgstr "Servicio Dnsmasq"
+
+#. type: deffn
+#: doc/guix.texi:19852
+#, no-wrap
+msgid "{Scheme Variable} dnsmasq-service-type"
+msgstr "{Variable Scheme} dnsmasq-service-type"
+
+#. type: deffn
+#: doc/guix.texi:19855
+msgid "This is the type of the dnsmasq service, whose value should be an @code{dnsmasq-configuration} object as in this example:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:19861
+#, no-wrap
+msgid ""
+"(service dnsmasq-service-type\n"
+"         (dnsmasq-configuration\n"
+"           (no-resolv? #t)\n"
+"           (servers '(\"192.168.1.1\"))))\n"
+msgstr ""
+"(service dnsmasq-service-type\n"
+"         (dnsmasq-configuration\n"
+"           (no-resolv? #t)\n"
+"           (servers '(\"192.168.1.1\"))))\n"
+
+#. type: deftp
+#: doc/guix.texi:19864
+#, no-wrap
+msgid "{Data Type} dnsmasq-configuration"
+msgstr "{Tipo de datos} dnsmasq-configuration"
+
+#. type: deftp
+#: doc/guix.texi:19866
+msgid "Data type representing the configuration of dnsmasq."
+msgstr "Tipo de datos que representa la configuración de dnsmasq."
+
+#. type: item
+#: doc/guix.texi:19868
+#, no-wrap
+msgid "@code{package} (default: @var{dnsmasq})"
+msgstr "@code{package} (predeterminado: @var{dnsmasq})"
+
+#. type: table
+#: doc/guix.texi:19870
+msgid "Package object of the dnsmasq server."
+msgstr "El objeto paquete del servidor dnsmasq."
+
+#. type: item
+#: doc/guix.texi:19871
+#, no-wrap
+msgid "@code{no-hosts?} (default: @code{#f})"
+msgstr "@code{no-hosts?} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:19873
+msgid "When true, don't read the hostnames in /etc/hosts."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19874
+#, no-wrap
+msgid "@code{port} (default: @code{53})"
+msgstr "@code{port} (predeterminado: @code{53})"
+
+#. type: table
+#: doc/guix.texi:19877
+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:19878
+#, no-wrap
+msgid "@code{local-service?} (default: @code{#t})"
+msgstr "@code{local-service?} (predeterminado: @code{#t})"
+
+#. type: table
+#: doc/guix.texi:19881
+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:19882
+#, no-wrap
+msgid "@code{listen-addresses} (default: @code{'()})"
+msgstr "@code{listen-addresses} (predeterminadas: @code{'()})"
+
+#. type: table
+#: doc/guix.texi:19884
+msgid "Listen on the given IP addresses."
+msgstr "Escucha en las direcciones IP proporcionadas."
+
+#. type: item
+#: doc/guix.texi:19885
+#, no-wrap
+msgid "@code{resolv-file} (default: @code{\"/etc/resolv.conf\"})"
+msgstr "@code{resolv-file} (predeterminado: @code{\"/etc/resolv.conf\"})"
+
+#. type: table
+#: doc/guix.texi:19887
+msgid "The file to read the IP address of the upstream nameservers from."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19888
+#, no-wrap
+msgid "@code{no-resolv?} (default: @code{#f})"
+msgstr "@code{no-resolv?} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:19890
+msgid "When true, don't read @var{resolv-file}."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:19893
+msgid "Specify IP address of upstream servers directly."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19894
+#, no-wrap
+msgid "@code{cache-size} (default: @code{150})"
+msgstr "@code{cache-size} (predeterminado: @code{150})"
+
+#. type: table
+#: doc/guix.texi:19897
+msgid "Set the size of dnsmasq's cache.  Setting the cache size to zero disables caching."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19898
+#, no-wrap
+msgid "@code{negative-cache?} (default: @code{#t})"
+msgstr "@code{negative-cache?} (predeterminado: @code{#t})"
+
+#. type: table
+#: doc/guix.texi:19900
+msgid "When false, disable negative caching."
+msgstr ""
+
+#. type: subsubheading
+#: doc/guix.texi:19904
+#, no-wrap
+msgid "ddclient Service"
+msgstr "Servicio ddclient"
+
+#. type: cindex
+#: doc/guix.texi:19906
+#, no-wrap
+msgid "ddclient"
+msgstr "ddclient"
+
+#. type: Plain text
+#: doc/guix.texi:19910
+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:19913
+msgid "The following example show instantiates the service with its default configuration:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:19916
+#, no-wrap
+msgid "(service ddclient-service-type)\n"
+msgstr "(service ddclient-service-type)\n"
+
+#. type: Plain text
+#: doc/guix.texi:19925
+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:19929
+msgid "Available @code{ddclient-configuration} fields are:"
+msgstr "Los campos disponibles de @code{ddclient-configuration} son:"
+
+#. type: deftypevr
+#: doc/guix.texi:19930
+#, fuzzy, no-wrap
+msgid "{@code{ddclient-configuration} parameter} package ddclient"
+msgstr "{parámetro de @code{ddclient-configuration}} package ddclient"
+
+#. type: deftypevr
+#: doc/guix.texi:19932
+msgid "The ddclient package."
+msgstr "El paquete ddclient."
+
+#. type: deftypevr
+#: doc/guix.texi:19935
+#, fuzzy, no-wrap
+msgid "{@code{ddclient-configuration} parameter} integer daemon"
+msgstr "{parámetro de @code{ddclient-configuration}} integer daemon"
+
+#. type: deftypevr
+#: doc/guix.texi:19937
+msgid "The period after which ddclient will retry to check IP and domain name."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:19942
+#, fuzzy, no-wrap
+msgid "{@code{ddclient-configuration} parameter} boolean syslog"
+msgstr "{parámetro de @code{ddclient-configuration}} boolean syslog"
+
+#. type: deftypevr
+#: doc/guix.texi:19944
+msgid "Use syslog for the output."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:19949
+#, fuzzy, no-wrap
+msgid "{@code{ddclient-configuration} parameter} string mail"
+msgstr "{parámetro de @code{ddclient-configuration}} string mail"
+
+#. type: deftypevr
+#: doc/guix.texi:19951
+msgid "Mail to user."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:19953 doc/guix.texi:19960 doc/guix.texi:21297
+msgid "Defaults to @samp{\"root\"}."
+msgstr "El valor predeterminado es @samp{\"root\"}."
+
+#. type: deftypevr
+#: doc/guix.texi:19956
+#, fuzzy, 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:19958
+msgid "Mail failed update to user."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:19963
+#, fuzzy, no-wrap
+msgid "{@code{ddclient-configuration} parameter} string pid"
+msgstr "{parámetro de @code{ddclient-configuration}} string pid"
+
+#. type: deftypevr
+#: doc/guix.texi:19965
+msgid "The ddclient PID file."
+msgstr "El fichero de PID de ddclient."
+
+#. type: deftypevr
+#: doc/guix.texi:19967
+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:19970
+#, fuzzy, no-wrap
+msgid "{@code{ddclient-configuration} parameter} boolean ssl"
+msgstr "{parámetro de @code{ddclient-configuration}} boolean ssl"
+
+#. type: deftypevr
+#: doc/guix.texi:19972
+msgid "Enable SSL support."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:19977
+#, fuzzy, no-wrap
+msgid "{@code{ddclient-configuration} parameter} string user"
+msgstr "{parámetro de @code{ddclient-configuration}} string user"
+
+#. type: deftypevr
+#: doc/guix.texi:19980
+msgid "Specifies the user name or ID that is used when running ddclient program."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:19982 doc/guix.texi:19989
+msgid "Defaults to @samp{\"ddclient\"}."
+msgstr "El valor predeterminado es @samp{\"ddclient\"}."
+
+#. type: deftypevr
+#: doc/guix.texi:19985
+#, fuzzy, no-wrap
+msgid "{@code{ddclient-configuration} parameter} string group"
+msgstr "{parámetro de @code{ddclient-configuration}} string group"
+
+#. type: deftypevr
+#: doc/guix.texi:19987
+msgid "Group of the user who will run the ddclient program."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:19992
+#, fuzzy, no-wrap
+msgid "{@code{ddclient-configuration} parameter} string secret-file"
+msgstr "{parámetro de @code{ddclient-configuration}} string secret-file"
+
+#. type: deftypevr
+#: doc/guix.texi:19996
+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:19998
+msgid "Defaults to @samp{\"/etc/ddclient/secrets.conf\"}."
+msgstr "El valor predeterminado es @samp{\"/etc/ddclient/secrets.conf\"}."
+
+#. type: deftypevr
+#: doc/guix.texi:20001
+#, fuzzy, no-wrap
+msgid "{@code{ddclient-configuration} parameter} list extra-options"
+msgstr "{parámetro de @code{ddclient-configuration}} list extra-options"
+
+#. type: deftypevr
+#: doc/guix.texi:20003
+msgid "Extra options will be appended to @file{ddclient.conf} file."
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:20014
+#, no-wrap
+msgid "VPN (virtual private network)"
+msgstr "VPN (red virtual privada)"
+
+#. type: cindex
+#: doc/guix.texi:20015
+#, no-wrap
+msgid "virtual private network (VPN)"
+msgstr "red virtual privada (VPN)"
+
+#. type: Plain text
+#: doc/guix.texi:20021
+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{servire} service for your machine to host a VPN.  Both services use @uref{https://openvpn.net/, OpenVPN}."
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:20022
+#, no-wrap
+msgid "{Scheme Procedure} openvpn-client-service @"
+msgstr "{Procedimiento Scheme} openvpn-client-service @"
+
+#. type: deffn
+#: doc/guix.texi:20024
+msgid "[#:config (openvpn-client-configuration)]"
+msgstr "[#:config (openvpn-client-configuration)]"
+
+#. type: deffn
+#: doc/guix.texi:20026
+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:20028
+#, no-wrap
+msgid "{Scheme Procedure} openvpn-server-service @"
+msgstr "{Procedimiento Scheme} openvpn-server-service @"
+
+#. type: deffn
+#: doc/guix.texi:20030
+msgid "[#:config (openvpn-server-configuration)]"
+msgstr "[#:config (openvpn-server-configuration)]"
+
+#. type: deffn
+#: doc/guix.texi:20032
+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:20034
+msgid "Both can be run simultaneously."
+msgstr "Pueden ejecutarse simultáneamente."
+
+#. type: Plain text
+#: doc/guix.texi:20039
+msgid "Available @code{openvpn-client-configuration} fields are:"
+msgstr "Los campos disponibles de @code{openvpn-client-configuration} son:"
+
+#. type: deftypevr
+#: doc/guix.texi:20040
+#, fuzzy, 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:20042 doc/guix.texi:20178
+msgid "The OpenVPN package."
+msgstr "El paquete OpenVPN."
+
+#. type: deftypevr
+#: doc/guix.texi:20045
+#, fuzzy, 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:20047 doc/guix.texi:20183
+msgid "The OpenVPN pid file."
+msgstr "El fichero de pid de OpenVPN."
+
+#. type: deftypevr
+#: doc/guix.texi:20049 doc/guix.texi:20185
+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:20052
+#, fuzzy, no-wrap
+msgid "{@code{openvpn-client-configuration} parameter} proto proto"
+msgstr "{parámetro de @code{openvpn-client-configuration}} proto proto"
+
+#. type: deftypevr
+#: doc/guix.texi:20055 doc/guix.texi:20191
+msgid "The protocol (UDP or TCP) used to open a channel between clients and servers."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20057 doc/guix.texi:20193
+msgid "Defaults to @samp{udp}."
+msgstr "El valor predeterminado es @samp{udp}."
+
+#. type: deftypevr
+#: doc/guix.texi:20060
+#, fuzzy, no-wrap
+msgid "{@code{openvpn-client-configuration} parameter} dev dev"
+msgstr "{parámetro de @code{openvpn-client-configuration}} dev dev"
+
+#. type: deftypevr
+#: doc/guix.texi:20062 doc/guix.texi:20198
+msgid "The device type used to represent the VPN connection."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20064 doc/guix.texi:20200
+msgid "Defaults to @samp{tun}."
+msgstr "El valor predeterminado es @samp{tun}."
+
+#. type: deftypevr
+#: doc/guix.texi:20067
+#, fuzzy, 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:20069 doc/guix.texi:20205
+msgid "The certificate authority to check connections against."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20071 doc/guix.texi:20207
+msgid "Defaults to @samp{\"/etc/openvpn/ca.crt\"}."
+msgstr "El valor predeterminado es @samp{\"/etc/openvpn/ca.crt\"}."
+
+#. type: deftypevr
+#: doc/guix.texi:20074
+#, fuzzy, 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:20077 doc/guix.texi:20213
+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:20079 doc/guix.texi:20215
+msgid "Defaults to @samp{\"/etc/openvpn/client.crt\"}."
+msgstr "El valor predeterminado es @samp{\"/etc/openvpn/client.crt\"}."
+
+#. type: deftypevr
+#: doc/guix.texi:20082
+#, fuzzy, 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:20085 doc/guix.texi:20221
+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:20087 doc/guix.texi:20223
+msgid "Defaults to @samp{\"/etc/openvpn/client.key\"}."
+msgstr "El valor predeterminado es @samp{\"/etc/openvpn/client.key\"}."
+
+#. type: deftypevr
+#: doc/guix.texi:20090
+#, fuzzy, 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:20092 doc/guix.texi:20228
+msgid "Whether to use the lzo compression algorithm."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20097
+#, fuzzy, no-wrap
+msgid "{@code{openvpn-client-configuration} parameter} boolean persist-key?"
+msgstr "{parámetro de @code{openvpn-client-configuration}} boolean persist-key?"
+
+#. type: deftypevr
+#: doc/guix.texi:20099 doc/guix.texi:20235
+msgid "Don't re-read key files across SIGUSR1 or --ping-restart."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20104
+#, fuzzy, 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:20107 doc/guix.texi:20243
+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:20112
+#, fuzzy, 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:20114 doc/guix.texi:20250
+msgid "Verbosity level."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20116 doc/guix.texi:20252 doc/guix.texi:21565
+#: doc/guix.texi:21788
+msgid "Defaults to @samp{3}."
+msgstr "El valor predeterminado es @samp{3}."
+
+#. type: deftypevr
+#: doc/guix.texi:20119
+#, fuzzy, no-wrap
+msgid "{@code{openvpn-client-configuration} parameter} tls-auth-client tls-auth"
+msgstr "{parámetro de @code{openvpn-client-configuration}} tls-auth-client tls-auth"
+
+#. type: deftypevr
+#: doc/guix.texi:20122 doc/guix.texi:20258
+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:20127
+#, fuzzy, 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?"
+
+#. type: deftypevr
+#: doc/guix.texi:20129
+msgid "Whether to check the server certificate has server usage extension."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20134
+#, fuzzy, no-wrap
+msgid "{@code{openvpn-client-configuration} parameter} bind bind?"
+msgstr "{parámetro de @code{openvpn-client-configuration}} bind bind?"
+
+#. type: deftypevr
+#: doc/guix.texi:20136
+msgid "Bind to a specific local port number."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20141
+#, fuzzy, 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:20143
+msgid "Retry resolving server address."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20148
+#, fuzzy, no-wrap
+msgid "{@code{openvpn-client-configuration} parameter} openvpn-remote-list remote"
+msgstr "{parámetro de @code{openvpn-client-configuration}} openvpn-remote-list remote"
+
+#. type: deftypevr
+#: doc/guix.texi:20150
+msgid "A list of remote servers to connect to."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20154
+msgid "Available @code{openvpn-remote-configuration} fields are:"
+msgstr "Los campos disponibles de @code{openvpn-remote-configuration} son:"
+
+#. type: deftypevr
+#: doc/guix.texi:20155
+#, fuzzy, 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:20157
+msgid "Server name."
+msgstr "Nombre del servidor."
+
+#. type: deftypevr
+#: doc/guix.texi:20159
+msgid "Defaults to @samp{\"my-server\"}."
+msgstr "El valor predeterminado es @samp{\"my-server\"}."
+
+#. type: deftypevr
+#: doc/guix.texi:20162
+#, fuzzy, 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:20164
+msgid "Port number the server listens to."
+msgstr "Puerto en el que escucha el servidor."
+
+#. type: deftypevr
+#: doc/guix.texi:20166 doc/guix.texi:20267
+msgid "Defaults to @samp{1194}."
+msgstr "El valor predeterminado es @samp{1194}."
+
+#. type: Plain text
+#: doc/guix.texi:20175
+#, fuzzy
+msgid "Available @code{openvpn-server-configuration} fields are:"
+msgstr "Los campos disponibles de @code{openvpn-server-configuration} son:"
+
+#. type: deftypevr
+#: doc/guix.texi:20176
+#, fuzzy, 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:20181
+#, fuzzy, 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:20188
+#, fuzzy, no-wrap
+msgid "{@code{openvpn-server-configuration} parameter} proto proto"
+msgstr "{parámetro de @code{openvpn-server-configuration}} proto proto"
+
+#. type: deftypevr
+#: doc/guix.texi:20196
+#, fuzzy, no-wrap
+msgid "{@code{openvpn-server-configuration} parameter} dev dev"
+msgstr "{parámetro de @code{openvpn-server-configuration}} dev dev"
+
+#. type: deftypevr
+#: doc/guix.texi:20203
+#, fuzzy, 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:20210
+#, fuzzy, 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:20218
+#, fuzzy, 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:20226
+#, fuzzy, 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:20233
+#, fuzzy, 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:20240
+#, fuzzy, 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:20248
+#, fuzzy, 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:20255
+#, fuzzy, no-wrap
+msgid "{@code{openvpn-server-configuration} parameter} tls-auth-server tls-auth"
+msgstr "{parámetro de @code{openvpn-server-configuration}} tls-auth-server tls-auth"
+
+#. type: deftypevr
+#: doc/guix.texi:20263
+#, fuzzy, 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:20265
+msgid "Specifies the port number on which the server listens."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20270
+#, fuzzy, no-wrap
+msgid "{@code{openvpn-server-configuration} parameter} ip-mask server"
+msgstr "{parámetro de @code{openvpn-server-configuration}} ip-mask server"
+
+#. type: deftypevr
+#: doc/guix.texi:20272
+msgid "An ip and mask specifying the subnet inside the virtual network."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20274
+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:20277
+#, fuzzy, 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:20279
+msgid "A CIDR notation specifying the IPv6 subnet inside the virtual network."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20284
+#, fuzzy, 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:20286
+msgid "The Diffie-Hellman parameters file."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20288
+msgid "Defaults to @samp{\"/etc/openvpn/dh2048.pem\"}."
+msgstr "El valor predeterminado es @samp{\"/etc/openvpn/dh2048.pem\"}."
+
+#. type: deftypevr
+#: doc/guix.texi:20291
+#, fuzzy, 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:20293
+msgid "The file that records client IPs."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20295
+msgid "Defaults to @samp{\"/etc/openvpn/ipp.txt\"}."
+msgstr "El valor predeterminado es @samp{\"/etc/openvpn/ipp.txt\"}."
+
+#. type: deftypevr
+#: doc/guix.texi:20298
+#, fuzzy, 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:20300
+msgid "When true, the server will act as a gateway for its clients."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20305
+#, fuzzy, 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:20307
+msgid "When true, clients are allowed to talk to each other inside the VPN."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20312
+#, fuzzy, 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:20318
+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:20321
+#, fuzzy, 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:20323
+msgid "The maximum number of clients."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20328
+#, fuzzy, 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:20331
+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:20333
+msgid "Defaults to @samp{\"/var/run/openvpn/status\"}."
+msgstr "El valor predeterminado es @samp{\"/var/run/openvpn/status\"}."
+
+#. type: deftypevr
+#: doc/guix.texi:20336
+#, fuzzy, no-wrap
+msgid "{@code{openvpn-server-configuration} parameter} openvpn-ccd-list client-config-dir"
+msgstr "{parámetro de @code{openvpn-server-configuration}} openvpn-ccd-list client-config-dir"
+
+#. type: deftypevr
+#: doc/guix.texi:20338
+msgid "The list of configuration for some clients."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20342
+msgid "Available @code{openvpn-ccd-configuration} fields are:"
+msgstr "Los campos disponibles de @code{openvpn-ccd-configuration} son:"
+
+#. type: deftypevr
+#: doc/guix.texi:20343
+#, fuzzy, 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:20345
+msgid "Client name."
+msgstr "Nombre del cliente."
+
+#. type: deftypevr
+#: doc/guix.texi:20347
+msgid "Defaults to @samp{\"client\"}."
+msgstr "El valor predeterminado es @samp{\"client\"}."
+
+#. type: deftypevr
+#: doc/guix.texi:20350
+#, fuzzy, no-wrap
+msgid "{@code{openvpn-ccd-configuration} parameter} ip-mask iroute"
+msgstr "{parámetro de @code{openvpn-ccd-configuration}} ip-mask iroute"
+
+# FUZZY
+#. type: deftypevr
+#: doc/guix.texi:20352
+msgid "Client own network"
+msgstr "Red propia del cliente"
+
+#. type: deftypevr
+#: doc/guix.texi:20357
+#, fuzzy, no-wrap
+msgid "{@code{openvpn-ccd-configuration} parameter} ip-mask ifconfig-push"
+msgstr "{parámetro de @code{openvpn-ccd-configuration}} ip-mask ifconfig-push"
+
+# FUZZY
+#. type: deftypevr
+#: doc/guix.texi:20359
+#, fuzzy
+msgid "Client VPN IP."
+msgstr "IP de la VPN del cliente."
+
+#. type: cindex
+#: doc/guix.texi:20372
+#, no-wrap
+msgid "NFS"
+msgstr "NFS"
+
+#. type: Plain text
+#: doc/guix.texi:20377
+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: subsubheading
+#: doc/guix.texi:20378
+#, no-wrap
+msgid "RPC Bind Service"
+msgstr "Servicio RPC Bind"
+
+#. type: cindex
+#: doc/guix.texi:20379
+#, no-wrap
+msgid "rpcbind"
+msgstr "rpcbind"
+
+#. type: Plain text
+#: doc/guix.texi:20385
+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:20386
+#, no-wrap
+msgid "{Scheme Variable} rpcbind-service-type"
+msgstr "{Variable Scheme} rpcbind-service-type"
+
+#. type: defvr
+#: doc/guix.texi:20388
+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:20391
+#, no-wrap
+msgid "{Data Type} rpcbind-configuration"
+msgstr "{Tipo de datos} rpcbind-configuration"
+
+#. type: deftp
+#: doc/guix.texi:20394
+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:20395
+#, no-wrap
+msgid "@code{rpcbind} (default: @code{rpcbind})"
+msgstr "@code{rpcbind} (predeterminado: @code{rpcbind})"
+
+#. type: table
+#: doc/guix.texi:20397
+msgid "The rpcbind package to use."
+msgstr "El paquete rpcbind usado."
+
+#. type: item
+#: doc/guix.texi:20398
+#, no-wrap
+msgid "@code{warm-start?} (default: @code{#t})"
+msgstr "@code{warm-start?} (predeterminado: @code{#t})"
+
+#. type: table
+#: doc/guix.texi:20402
+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:20406
+#, no-wrap
+msgid "Pipefs Pseudo File System"
+msgstr "Pseudo-sistema de ficheros pipefs"
+
+#. type: cindex
+#: doc/guix.texi:20407
+#, no-wrap
+msgid "pipefs"
+msgstr "pipefs"
+
+#. type: cindex
+#: doc/guix.texi:20408
+#, no-wrap
+msgid "rpc_pipefs"
+msgstr "rpc_pipefs"
+
+#. type: Plain text
+#: doc/guix.texi:20412
+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:20413
+#, no-wrap
+msgid "{Scheme Variable} pipefs-service-type"
+msgstr "{Variable Scheme} pipefs-service-type"
+
+#. type: defvr
+#: doc/guix.texi:20415
+msgid "A service type for the pipefs pseudo file system."
+msgstr "Un tipo de servicio para el pseudo-sistema de ficheros pipefs."
+
+#. type: deftp
+#: doc/guix.texi:20417
+#, no-wrap
+msgid "{Data Type} pipefs-configuration"
+msgstr "{Tipo de datos} pipefs-configuration"
+
+#. type: deftp
+#: doc/guix.texi:20420
+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:"
+
+#. type: item
+#: doc/guix.texi:20421
+#, 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:20423
+msgid "The directory to which the file system is to be attached."
+msgstr "El directorio al que se debe asociar el sistema de ficheros."
+
+#. type: subsubheading
+#: doc/guix.texi:20427
+#, no-wrap
+msgid "GSS Daemon Service"
+msgstr "Servicio del daemon GSS"
+
+#. type: cindex
+#: doc/guix.texi:20428
+#, no-wrap
+msgid "GSSD"
+msgstr "GSSD"
+
+#. type: cindex
+#: doc/guix.texi:20429
+#, no-wrap
+msgid "GSS"
+msgstr "GSS"
+
+#. type: cindex
+#: doc/guix.texi:20430
+#, no-wrap
+msgid "global security system"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:20437
+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:20438
+#, no-wrap
+msgid "{Scheme Variable} gss-service-type"
+msgstr "{Variable Scheme} gss-service-type"
+
+#. type: defvr
+#: doc/guix.texi:20440
+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:20442
+#, no-wrap
+msgid "{Data Type} gss-configuration"
+msgstr "{Tipo de datos} gss-configuration"
+
+#. type: deftp
+#: doc/guix.texi:20445
+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: item
+#: doc/guix.texi:20446 doc/guix.texi:20471
+#, no-wrap
+msgid "@code{nfs-utils} (default: @code{nfs-utils})"
+msgstr "@code{nfs-utils} (predeterminado: @code{nfs-utils})"
+
+#. type: table
+#: doc/guix.texi:20448
+msgid "The package in which the @command{rpc.gssd} command is to be found."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:20449 doc/guix.texi:20474
+#, 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:20451 doc/guix.texi:20476
+msgid "The directory where the pipefs file system is mounted."
+msgstr "El directorio donde el sistema de ficheros pipefs debe montarse."
+
+#. type: subsubheading
+#: doc/guix.texi:20456
+#, no-wrap
+msgid "IDMAP Daemon Service"
+msgstr "Servicio del daemon IDMAP"
+
+#. type: cindex
+#: doc/guix.texi:20457
+#, no-wrap
+msgid "idmapd"
+msgstr "idmapd"
+
+#. type: cindex
+#: doc/guix.texi:20458
+#, no-wrap
+msgid "name mapper"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:20462
+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:20463
+#, no-wrap
+msgid "{Scheme Variable} idmap-service-type"
+msgstr "{Variable Scheme} idmap-service-type"
+
+# FUZZY
+# TODO (MAAV): Mejorar traducción...
+#. type: defvr
+#: doc/guix.texi:20465
+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:20467
+#, no-wrap
+msgid "{Data Type} idmap-configuration"
+msgstr "{Tipo de datos} idmap-configuration"
+
+#. type: deftp
+#: doc/guix.texi:20470
+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:20473
+msgid "The package in which the @command{rpc.idmapd} command is to be found."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:20477
+#, no-wrap
+msgid "@code{domain} (default: @code{#f})"
+msgstr "@code{domain} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:20481
+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: Plain text
+#: doc/guix.texi:20492
+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:20494
+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:20495
+#, no-wrap
+msgid "{Scheme Procedure} cuirass-service-type"
+msgstr "{Procedimiento Scheme} cuirass-service-type"
+
+#. type: defvr
+#: doc/guix.texi:20498
+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:20505
+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 ""
+
+#. type: example
+#: doc/guix.texi:20533
+#, no-wrap
+msgid ""
+"(define %cuirass-specs\n"
+"  #~(list\n"
+"     '((#:name . \"my-manifest\")\n"
+"       (#:load-path-inputs . (\"guix\"))\n"
+"       (#:package-path-inputs . (\"custom-packages\"))\n"
+"       (#:proc-input . \"guix\")\n"
+"       (#:proc-file . \"build-aux/cuirass/gnu-system.scm\")\n"
+"       (#:proc . cuirass-jobs)\n"
+"       (#:proc-args . ((subset . \"manifests\")\n"
+"                       (systems . (\"x86_64-linux\"))\n"
+"                       (manifests . ((\"config\" . \"guix/manifest.scm\")))))\n"
+"       (#:inputs . (((#:name . \"guix\")\n"
+"                     (#:url . \"git://git.savannah.gnu.org/guix.git\")\n"
+"                     (#:load-path . \".\")\n"
+"                     (#:branch . \"master\")\n"
+"                     (#:no-compile? . #t))\n"
+"                    ((#:name . \"config\")\n"
+"                     (#:url . \"git://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"
+"                     (#:load-path . \".\")\n"
+"                     (#:branch . \"master\")\n"
+"                     (#:no-compile? . #t)))))))\n"
+"\n"
+msgstr ""
+"(define %especificacion-de-cuirass\n"
+"  #~(list\n"
+"     '((#:name . \"mi-manifiesto\")\n"
+"       (#:load-path-inputs . (\"guix\"))\n"
+"       (#:package-path-inputs . (\"paquetes-personalizados\"))\n"
+"       (#:proc-input . \"guix\")\n"
+"       (#:proc-file . \"build-aux/cuirass/gnu-system.scm\")\n"
+"       (#:proc . cuirass-jobs)\n"
+"       (#:proc-args . ((subset . \"manifests\")\n"
+"                       (systems . (\"x86_64-linux\"))\n"
+"                       (manifests . ((\"config\" . \"guix/manifest.scm\")))))\n"
+"       (#:inputs . (((#:name . \"guix\")\n"
+"                     (#:url . \"git://git.savannah.gnu.org/guix.git\")\n"
+"                     (#:load-path . \".\")\n"
+"                     (#:branch . \"master\")\n"
+"                     (#:no-compile? . #t))\n"
+"                    ((#:name . \"config\")\n"
+"                     (#:url . \"git://git.example.org/config.git\")\n"
+"                     (#:load-path . \".\")\n"
+"                     (#:branch . \"master\")\n"
+"                     (#:no-compile? . #t))\n"
+"                    ((#:name . \"paquetes-personalizados\")\n"
+"                     (#:url . \"git://git.example.org/paquetes-personalizados.git\")\n"
+"                     (#:load-path . \".\")\n"
+"                     (#:branch . \"master\")\n"
+"                     (#:no-compile? . #t)))))))\n"
+"\n"
+
+#. type: example
+#: doc/guix.texi:20537
+#, no-wrap
+msgid ""
+"(service cuirass-service-type\n"
+"         (cuirass-configuration\n"
+"          (specifications %cuirass-specs)))\n"
+msgstr ""
+"(service cuirass-service-type\n"
+"         (cuirass-configuration\n"
+"          (specifications %especificacion-de-cuirass)))\n"
+
+#. type: Plain text
+#: doc/guix.texi:20542
+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:20543
+#, no-wrap
+msgid "{Data Type} cuirass-configuration"
+msgstr "{Tipo de datos} cuirass-configuration"
+
+#. type: deftp
+#: doc/guix.texi:20545
+msgid "Data type representing the configuration of Cuirass."
+msgstr "Tipo de datos que representa la configuración de Cuirass."
+
+#. type: item
+#: doc/guix.texi:20547
+#, 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:20549
+msgid "Location of the log file."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:20550
+#, 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:20552
+msgid "Location of the repository cache."
+msgstr "Localización de la caché del repositorio."
+
+#. type: item
+#: doc/guix.texi:20553
+#, no-wrap
+msgid "@code{user} (default: @code{\"cuirass\"})"
+msgstr "@code{user} (predeterminado: @code{\"cuirass\"})"
+
+#. type: table
+#: doc/guix.texi:20555
+msgid "Owner of the @code{cuirass} process."
+msgstr "Propietaria del proceso @code{cuirass}."
+
+#. type: item
+#: doc/guix.texi:20556
+#, no-wrap
+msgid "@code{group} (default: @code{\"cuirass\"})"
+msgstr "@code{group} (predeterminado: @code{\"cuirass\"})"
+
+#. type: table
+#: doc/guix.texi:20558
+msgid "Owner's group of the @code{cuirass} process."
+msgstr "Grupo propietario del proceso @code{cuirass}."
+
+#. type: item
+#: doc/guix.texi:20559
+#, no-wrap
+msgid "@code{interval} (default: @code{60})"
+msgstr "@code{interval} (predeterminado: @code{60})"
+
+#. type: table
+#: doc/guix.texi:20562
+msgid "Number of seconds between the poll of the repositories followed by the Cuirass jobs."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:20563
+#, 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:20566
+msgid "Location of sqlite database which contains the build results and previously added specifications."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:20567
+#, no-wrap
+msgid "@code{ttl} (default: @code{(* 30 24 3600)})"
+msgstr "@code{ttl} (predeterminado: @code{(* 30 24 3600)})"
+
+#. type: table
+#: doc/guix.texi:20571
+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:20572
+#, no-wrap
+msgid "@code{port} (default: @code{8081})"
+msgstr "@code{port} (predeterminado: @code{8081})"
+
+#. type: table
+#: doc/guix.texi:20574
+msgid "Port number used by the HTTP server."
+msgstr "Número de puerto usado por el servidor HTTP."
+
+#. type: table
+#: doc/guix.texi:20578
+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:20579
+#, no-wrap
+msgid "@code{specifications} (default: @code{#~'()})"
+msgstr "@code{specifications} (predeterminada: @code{#~'()})"
+
+#. type: table
+#: doc/guix.texi:20585
+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:20586
+#, no-wrap
+msgid "@code{use-substitutes?} (default: @code{#f})"
+msgstr "@code{use-substitutes?} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:20589
+msgid "This allows using substitutes to avoid building every dependencies of a job from source."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:20590 doc/guix.texi:25129
+#, no-wrap
+msgid "@code{one-shot?} (default: @code{#f})"
+msgstr "@code{one-shot?} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:20592
+msgid "Only evaluate specifications and build derivations once."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:20593
+#, no-wrap
+msgid "@code{fallback?} (default: @code{#f})"
+msgstr "@code{fallback?} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:20596
+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: item
+#: doc/guix.texi:20597
+#, no-wrap
+msgid "@code{cuirass} (default: @code{cuirass})"
+msgstr "@code{cuirass} (predeterminado: @code{cuirass})"
+
+#. type: table
+#: doc/guix.texi:20599
+msgid "The Cuirass package to use."
+msgstr "El paquete Cuirass usado."
+
+#. type: cindex
+#: doc/guix.texi:20605
+#, no-wrap
+msgid "tlp"
+msgstr "tlp"
+
+#. type: cindex
+#: doc/guix.texi:20606
+#, no-wrap
+msgid "power management with TLP"
+msgstr "gestión de energía con TLP"
+
+#. type: subsubheading
+#: doc/guix.texi:20607
+#, no-wrap
+msgid "TLP daemon"
+msgstr "Daemon TLP"
+
+#. type: Plain text
+#: doc/guix.texi:20611
+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:20617
+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{http://linrunner.de/en/tlp/tlp.html, TLP home page}."
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:20618
+#, no-wrap
+msgid "{Scheme Variable} tlp-service-type"
+msgstr "{Variable Scheme} tlp-service-type"
+
+#. type: deffn
+#: doc/guix.texi:20622
+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 ""
+
+#. type: example
+#: doc/guix.texi:20624
+#, no-wrap
+msgid "(service tlp-service-type)\n"
+msgstr "(service tlp-service-type)\n"
+
+#. type: Plain text
+#: doc/guix.texi:20629
+msgid "By default TLP does not need much configuration but most TLP parameters can be tweaked using @code{tlp-configuration}."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:20635
+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:20645
+msgid "Available @code{tlp-configuration} fields are:"
+msgstr "Los campos disponibles de @code{tlp-configuration} son:"
+
+#. type: deftypevr
+#: doc/guix.texi:20646
+#, fuzzy, no-wrap
+msgid "{@code{tlp-configuration} parameter} package tlp"
+msgstr "{parámetro de @code{tlp-configuration}} package tlp"
+
+#. type: deftypevr
+#: doc/guix.texi:20648
+msgid "The TLP package."
+msgstr "El paquete TLP."
+
+#. type: deftypevr
+#: doc/guix.texi:20651
+#, fuzzy, 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:20653
+msgid "Set to true if you wish to enable TLP."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20658
+#, fuzzy, 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:20661
+msgid "Default mode when no power supply can be detected.  Alternatives are AC and BAT."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20663
+msgid "Defaults to @samp{\"AC\"}."
+msgstr "El valor predeterminado es @samp{\"AC\"}."
+
+#. type: deftypevr
+#: doc/guix.texi:20666
+#, fuzzy, no-wrap
+msgid "{@code{tlp-configuration} parameter} non-negative-integer disk-idle-secs-on-ac"
+msgstr "{parámetro de @code{tlp-configuration}} non-negative-integer disk-idle-secs-on-ac"
+
+#. type: deftypevr
+#: doc/guix.texi:20669
+msgid "Number of seconds Linux kernel has to wait after the disk goes idle, before syncing on AC."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20674
+#, fuzzy, no-wrap
+msgid "{@code{tlp-configuration} parameter} non-negative-integer disk-idle-secs-on-bat"
+msgstr "{parámetro de @code{tlp-configuration}} non-negative-integer disk-idle-secs-on-bat"
+
+#. type: deftypevr
+#: doc/guix.texi:20676
+msgid "Same as @code{disk-idle-ac} but on BAT mode."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20678
+msgid "Defaults to @samp{2}."
+msgstr "El valor predeterminado es @samp{2}."
+
+#. type: deftypevr
+#: doc/guix.texi:20681
+#, fuzzy, no-wrap
+msgid "{@code{tlp-configuration} parameter} non-negative-integer max-lost-work-secs-on-ac"
+msgstr "{parámetro de @code{tlp-configuration}} non-negative-integer max-lost-work-secs-on-ac"
+
+#. type: deftypevr
+#: doc/guix.texi:20683
+msgid "Dirty pages flushing periodicity, expressed in seconds."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20685 doc/guix.texi:20908 doc/guix.texi:22237
+#: doc/guix.texi:22245
+msgid "Defaults to @samp{15}."
+msgstr "El valor predeterminado es @samp{15}."
+
+#. type: deftypevr
+#: doc/guix.texi:20688
+#, fuzzy, no-wrap
+msgid "{@code{tlp-configuration} parameter} non-negative-integer max-lost-work-secs-on-bat"
+msgstr "{parámetro de @code{tlp-configuration}} non-negative-integer max-lost-work-secs-on-bat"
+
+#. type: deftypevr
+#: doc/guix.texi:20690
+msgid "Same as @code{max-lost-work-secs-on-ac} but on BAT mode."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20692
+msgid "Defaults to @samp{60}."
+msgstr "El valor predeterminado es @samp{60}."
+
+#. type: deftypevr
+#: doc/guix.texi:20695
+#, fuzzy, 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-space-separated-string-list cpu-scaling-governor-on-ac"
+
+#. type: deftypevr
+#: doc/guix.texi:20699
+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:20704
+#, fuzzy, 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-space-separated-string-list cpu-scaling-governor-on-bat"
+
+#. type: deftypevr
+#: doc/guix.texi:20706
+msgid "Same as @code{cpu-scaling-governor-on-ac} but on BAT mode."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20711
+#, fuzzy, 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-non-negative-integer cpu-scaling-min-freq-on-ac"
+
+#. type: deftypevr
+#: doc/guix.texi:20713
+msgid "Set the min available frequency for the scaling governor on AC."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20718
+#, fuzzy, 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-non-negative-integer cpu-scaling-max-freq-on-ac"
+
+#. type: deftypevr
+#: doc/guix.texi:20720
+msgid "Set the max available frequency for the scaling governor on AC."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20725
+#, fuzzy, 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-non-negative-integer cpu-scaling-min-freq-on-bat"
+
+#. type: deftypevr
+#: doc/guix.texi:20727
+msgid "Set the min available frequency for the scaling governor on BAT."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20732
+#, fuzzy, 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-non-negative-integer cpu-scaling-max-freq-on-bat"
+
+#. type: deftypevr
+#: doc/guix.texi:20734
+msgid "Set the max available frequency for the scaling governor on BAT."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20739
+#, fuzzy, no-wrap
+msgid "{@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-min-perf-on-ac"
+msgstr "{parámetro de @code{tlp-configuration}} maybe-non-negative-integer cpu-min-perf-on-ac"
+
+#. type: deftypevr
+#: doc/guix.texi:20742
+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:20747
+#, fuzzy, no-wrap
+msgid "{@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-max-perf-on-ac"
+msgstr "{parámetro de @code{tlp-configuration}} maybe-non-negative-integer cpu-max-perf-on-ac"
+
+#. type: deftypevr
+#: doc/guix.texi:20750
+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:20755
+#, fuzzy, no-wrap
+msgid "{@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-min-perf-on-bat"
+msgstr "{parámetro de @code{tlp-configuration}} maybe-non-negative-integer cpu-min-perf-on-bat"
+
+#. type: deftypevr
+#: doc/guix.texi:20757
+msgid "Same as @code{cpu-min-perf-on-ac} on BAT mode."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20762
+#, fuzzy, no-wrap
+msgid "{@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-max-perf-on-bat"
+msgstr "{parámetro de @code{tlp-configuration}} maybe-non-negative-integer cpu-max-perf-on-bat"
+
+#. type: deftypevr
+#: doc/guix.texi:20764
+msgid "Same as @code{cpu-max-perf-on-ac} on BAT mode."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20769
+#, fuzzy, 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:20771
+msgid "Enable CPU turbo boost feature on AC mode."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20776
+#, fuzzy, 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:20778
+msgid "Same as @code{cpu-boost-on-ac?} on BAT mode."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20783
+#, fuzzy, 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:20786
+msgid "Allow Linux kernel to minimize the number of CPU cores/hyper-threads used under light load conditions."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20791
+#, fuzzy, 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:20793
+msgid "Same as @code{sched-powersave-on-ac?} but on BAT mode."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20798
+#, fuzzy, no-wrap
+msgid "{@code{tlp-configuration} parameter} boolean nmi-watchdog?"
+msgstr "{parámetro de @code{tlp-configuration}} boolean nmi-watchdog?"
+
+#. type: deftypevr
+#: doc/guix.texi:20800
+msgid "Enable Linux kernel NMI watchdog."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20805
+#, fuzzy, no-wrap
+msgid "{@code{tlp-configuration} parameter} maybe-string phc-controls"
+msgstr "{parámetro de @code{tlp-configuration}} maybe-string phc-controls"
+
+#. type: deftypevr
+#: doc/guix.texi:20808
+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:20813
+#, fuzzy, 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:20816
+msgid "Set CPU performance versus energy saving policy on AC.  Alternatives are performance, normal, powersave."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20818 doc/guix.texi:20916 doc/guix.texi:20946
+msgid "Defaults to @samp{\"performance\"}."
+msgstr "El valor predeterminado es @samp{\"performance\"}."
+
+#. type: deftypevr
+#: doc/guix.texi:20821
+#, fuzzy, 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:20823
+msgid "Same as @code{energy-perf-policy-ac} but on BAT mode."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20825 doc/guix.texi:20923
+msgid "Defaults to @samp{\"powersave\"}."
+msgstr "El valor predeterminado es @samp{\"powersave\"}."
+
+#. type: deftypevr
+#: doc/guix.texi:20828
+#, fuzzy, no-wrap
+msgid "{@code{tlp-configuration} parameter} space-separated-string-list disks-devices"
+msgstr "{parámetro de @code{tlp-configuration}} space-separated-string-list disks-devices"
+
+#. type: deftypevr
+#: doc/guix.texi:20830
+msgid "Hard disk devices."
+msgstr "Dispositivos de disco duro."
+
+#. type: deftypevr
+#: doc/guix.texi:20833
+#, fuzzy, no-wrap
+msgid "{@code{tlp-configuration} parameter} space-separated-string-list disk-apm-level-on-ac"
+msgstr "{parámetro de @code{tlp-configuration}} space-separated-string-list disk-apm-level-on-ac"
+
+#. type: deftypevr
+#: doc/guix.texi:20835
+msgid "Hard disk advanced power management level."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20838
+#, fuzzy, no-wrap
+msgid "{@code{tlp-configuration} parameter} space-separated-string-list disk-apm-level-on-bat"
+msgstr "{parámetro de @code{tlp-configuration}} space-separated-string-list disk-apm-level-on-bat"
+
+#. type: deftypevr
+#: doc/guix.texi:20840
+msgid "Same as @code{disk-apm-bat} but on BAT mode."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20843
+#, fuzzy, 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-space-separated-string-list disk-spindown-timeout-on-ac"
+
+#. type: deftypevr
+#: doc/guix.texi:20846
+msgid "Hard disk spin down timeout.  One value has to be specified for each declared hard disk."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20851
+#, fuzzy, 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-space-separated-string-list disk-spindown-timeout-on-bat"
+
+#. type: deftypevr
+#: doc/guix.texi:20853
+msgid "Same as @code{disk-spindown-timeout-on-ac} but on BAT mode."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20858
+#, fuzzy, no-wrap
+msgid "{@code{tlp-configuration} parameter} maybe-space-separated-string-list disk-iosched"
+msgstr "{parámetro de @code{tlp-configuration}} maybe-space-separated-string-list disk-iosched"
+
+#. type: deftypevr
+#: doc/guix.texi:20862
+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:20867
+#, fuzzy, 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:20870
+msgid "SATA aggressive link power management (ALPM) level.  Alternatives are min_power, medium_power, max_performance."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20872
+msgid "Defaults to @samp{\"max_performance\"}."
+msgstr "El valor predeterminado es @samp{\"max_performance\"}."
+
+#. type: deftypevr
+#: doc/guix.texi:20875
+#, fuzzy, 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:20877
+msgid "Same as @code{sata-linkpwr-ac} but on BAT mode."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20879
+msgid "Defaults to @samp{\"min_power\"}."
+msgstr "El valor predeterminado es @samp{\"min_power\"}."
+
+#. type: deftypevr
+#: doc/guix.texi:20882
+#, fuzzy, 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:20884
+msgid "Exclude specified SATA host devices for link power management."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20889
+#, fuzzy, 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:20892
+msgid "Enable Runtime Power Management for AHCI controller and disks on AC mode."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20897
+#, fuzzy, 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:20899
+msgid "Same as @code{ahci-runtime-pm-on-ac} on BAT mode."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20904
+#, fuzzy, no-wrap
+msgid "{@code{tlp-configuration} parameter} non-negative-integer ahci-runtime-pm-timeout"
+msgstr "{parámetro de @code{tlp-configuration}} non-negative-integer ahci-runtime-pm-timeout"
+
+#. type: deftypevr
+#: doc/guix.texi:20906
+msgid "Seconds of inactivity before disk is suspended."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20911
+#, fuzzy, 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:20914
+msgid "PCI Express Active State Power Management level.  Alternatives are default, performance, powersave."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20919
+#, fuzzy, 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:20921
+msgid "Same as @code{pcie-aspm-ac} but on BAT mode."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20926
+#, fuzzy, 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:20929
+msgid "Radeon graphics clock speed level.  Alternatives are low, mid, high, auto, default."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20931
+msgid "Defaults to @samp{\"high\"}."
+msgstr "El valor predeterminado es @samp{\"high\"}."
+
+#. type: deftypevr
+#: doc/guix.texi:20934
+#, fuzzy, 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:20936
+msgid "Same as @code{radeon-power-ac} but on BAT mode."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20938
+msgid "Defaults to @samp{\"low\"}."
+msgstr "El valor predeterminado es @samp{\"low\"}."
+
+#. type: deftypevr
+#: doc/guix.texi:20941
+#, fuzzy, 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:20944
+msgid "Radeon dynamic power management method (DPM).  Alternatives are battery, performance."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20949
+#, fuzzy, 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:20951
+msgid "Same as @code{radeon-dpm-state-ac} but on BAT mode."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20953
+msgid "Defaults to @samp{\"battery\"}."
+msgstr "El valor predeterminado es @samp{\"battery\"}."
+
+#. type: deftypevr
+#: doc/guix.texi:20956
+#, fuzzy, 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:20958
+msgid "Radeon DPM performance level.  Alternatives are auto, low, high."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20960 doc/guix.texi:20967 doc/guix.texi:21041
+msgid "Defaults to @samp{\"auto\"}."
+msgstr "El valor predeterminado es @samp{\"auto\"}."
+
+#. type: deftypevr
+#: doc/guix.texi:20963
+#, fuzzy, 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:20965
+msgid "Same as @code{radeon-dpm-perf-ac} but on BAT mode."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20970
+#, fuzzy, 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?"
+
+#. type: deftypevr
+#: doc/guix.texi:20972
+msgid "Wifi power saving mode."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20977
+#, fuzzy, 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:20979
+msgid "Same as @code{wifi-power-ac?} but on BAT mode."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20984
+#, fuzzy, no-wrap
+msgid "{@code{tlp-configuration} parameter} y-n-boolean wol-disable?"
+msgstr "{parámetro de @code{tlp-configuration}} y-n-boolean wol-disable?"
+
+#. type: deftypevr
+#: doc/guix.texi:20986
+msgid "Disable wake on LAN."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20991
+#, fuzzy, no-wrap
+msgid "{@code{tlp-configuration} parameter} non-negative-integer sound-power-save-on-ac"
+msgstr "{parámetro de @code{tlp-configuration}} non-negative-integer sound-power-save-on-ac"
+
+#. type: deftypevr
+#: doc/guix.texi:20994
+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:20999
+#, fuzzy, no-wrap
+msgid "{@code{tlp-configuration} parameter} non-negative-integer sound-power-save-on-bat"
+msgstr "{parámetro de @code{tlp-configuration}} non-negative-integer sound-power-save-on-bat"
+
+#. type: deftypevr
+#: doc/guix.texi:21001
+msgid "Same as @code{sound-powersave-ac} but on BAT mode."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21003 doc/guix.texi:21530 doc/guix.texi:21674
+msgid "Defaults to @samp{1}."
+msgstr "El valor predeterminado es @samp{1}."
+
+#. type: deftypevr
+#: doc/guix.texi:21006
+#, fuzzy, 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:21008
+msgid "Disable controller in powersaving mode on Intel HDA devices."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21013
+#, fuzzy, 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:21017
+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:21022
+#, fuzzy, 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:21024
+msgid "Name of the optical drive device to power off."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21026
+msgid "Defaults to @samp{\"sr0\"}."
+msgstr "El valor predeterminado es @samp{\"sr0\"}."
+
+#. type: deftypevr
+#: doc/guix.texi:21029
+#, fuzzy, 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:21032
+msgid "Runtime Power Management for PCI(e) bus devices.  Alternatives are on and auto."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21034
+msgid "Defaults to @samp{\"on\"}."
+msgstr "El valor predeterminado es @samp{\"on\"}."
+
+#. type: deftypevr
+#: doc/guix.texi:21037
+#, fuzzy, 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:21039
+msgid "Same as @code{runtime-pm-ac} but on BAT mode."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21044
+#, fuzzy, 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:21047
+msgid "Runtime Power Management for all PCI(e) bus devices, except blacklisted ones."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21052
+#, fuzzy, no-wrap
+msgid "{@code{tlp-configuration} parameter} maybe-space-separated-string-list runtime-pm-blacklist"
+msgstr "{parámetro de @code{tlp-configuration}} maybe-space-separated-string-list runtime-pm-blacklist"
+
+#. type: deftypevr
+#: doc/guix.texi:21054
+msgid "Exclude specified PCI(e) device addresses from Runtime Power Management."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21059
+#, fuzzy, no-wrap
+msgid "{@code{tlp-configuration} parameter} space-separated-string-list runtime-pm-driver-blacklist"
+msgstr "{parámetro de @code{tlp-configuration}} space-separated-string-list runtime-pm-driver-blacklist"
+
+#. type: deftypevr
+#: doc/guix.texi:21062
+msgid "Exclude PCI(e) devices assigned to the specified drivers from Runtime Power Management."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21065
+#, fuzzy, 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:21067
+msgid "Enable USB autosuspend feature."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21072
+#, fuzzy, 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:21074
+msgid "Exclude specified devices from USB autosuspend."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21079
+#, fuzzy, 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:21081
+msgid "Exclude WWAN devices from USB autosuspend."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21086
+#, fuzzy, 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:21089
+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:21094
+#, fuzzy, 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:21096
+msgid "Enable USB autosuspend before shutdown."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21101
+#, fuzzy, 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:21104
+msgid "Restore radio device state (bluetooth, wifi, wwan) from previous shutdown on system startup."
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:21109
+#, no-wrap
+msgid "thermald"
+msgstr "thermald"
+
+#. type: cindex
+#: doc/guix.texi:21110
+#, no-wrap
+msgid "CPU frequency scaling with thermald"
+msgstr "escalado de frecuencia de la CPU con thermald"
+
+#. type: subsubheading
+#: doc/guix.texi:21111
+#, no-wrap
+msgid "Thermald daemon"
+msgstr "Daemon Thermald"
+
+#. type: Plain text
+#: doc/guix.texi:21115
+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:21116
+#, no-wrap
+msgid "{Scheme Variable} thermald-service-type"
+msgstr "{Variable Scheme} thermald-service-type"
+
+#. type: defvr
+#: doc/guix.texi:21121
+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:21123
+#, no-wrap
+msgid "{Data Type} thermald-configuration"
+msgstr "{Tipo de datos} thermald-configuration"
+
+#. type: deftp
+#: doc/guix.texi:21125
+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:21127
+#, no-wrap
+msgid "@code{ignore-cpuid-check?} (default: @code{#f})"
+msgstr "@code{ignore-cpuid-check?} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:21129
+msgid "Ignore cpuid check for supported CPU models."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:21130
+#, no-wrap
+msgid "@code{thermald} (default: @var{thermald})"
+msgstr "@code{thermald} (predeterminado: @var{thermald})"
+
+#. type: table
+#: doc/guix.texi:21132
+msgid "Package object of thermald."
+msgstr "El objeto paquete de thermald."
+
+#. type: Plain text
+#: doc/guix.texi:21141
+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:21142
+#, no-wrap
+msgid "mpd"
+msgstr "mpd"
+
+#. type: subsubheading
+#: doc/guix.texi:21143
+#, no-wrap
+msgid "Music Player Daemon"
+msgstr "Daemon de reproducción de música (MPD)"
+
+#. type: Plain text
+#: doc/guix.texi:21148
+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:21151
+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: example
+#: doc/guix.texi:21157
+#, no-wrap
+msgid ""
+"(service mpd-service-type\n"
+"         (mpd-configuration\n"
+"          (user \"bob\")\n"
+"          (port \"6666\")))\n"
+msgstr ""
+"(service mpd-service-type\n"
+"         (mpd-configuration\n"
+"          (user \"rober\")\n"
+"          (port \"6666\")))\n"
+
+#. type: defvr
+#: doc/guix.texi:21159
+#, no-wrap
+msgid "{Scheme Variable} mpd-service-type"
+msgstr "{Variable Scheme} mpd-service-type"
+
+#. type: defvr
+#: doc/guix.texi:21161
+msgid "The service type for @command{mpd}"
+msgstr "El tipo de servicio para @command{mpd}."
+
+#. type: deftp
+#: doc/guix.texi:21163
+#, no-wrap
+msgid "{Data Type} mpd-configuration"
+msgstr "{Tipo de datos} mpd-configuration"
+
+#. type: deftp
+#: doc/guix.texi:21165
+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:21167
+#, no-wrap
+msgid "@code{user} (default: @code{\"mpd\"})"
+msgstr "@code{user} (predeterminada: @code{\"mpd\"})"
+
+#. type: table
+#: doc/guix.texi:21169
+msgid "The user to run mpd as."
+msgstr "Usuaria que ejecuta mpd."
+
+#. type: item
+#: doc/guix.texi:21170
+#, no-wrap
+msgid "@code{music-dir} (default: @code{\"~/Music\"})"
+msgstr "@code{music-dir} (predeterminado: @code{\"~/Music\"})"
+
+#. type: table
+#: doc/guix.texi:21172
+msgid "The directory to scan for music files."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:21173
+#, no-wrap
+msgid "@code{playlist-dir} (default: @code{\"~/.mpd/playlists\"})"
+msgstr "@code{playlist-dir} (predeterminado: @code{\"~/.mpd/playlists\"})"
+
+#. type: table
+#: doc/guix.texi:21175
+msgid "The directory to store playlists."
+msgstr "El directorio para almacenar listas de reproducción."
+
+#. type: item
+#: doc/guix.texi:21176
+#, 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:21178
+msgid "The location of the music database."
+msgstr "La localización de la base de datos de música."
+
+#. type: item
+#: doc/guix.texi:21179
+#, no-wrap
+msgid "@code{state-file} (default: @code{\"~/.mpd/state\"})"
+msgstr "@code{state-file} (predeterminado: @code{\"~/.mpd/state\"})"
+
+#. type: table
+#: doc/guix.texi:21181
+msgid "The location of the file that stores current MPD's state."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:21182
+#, no-wrap
+msgid "@code{sticker-file} (default: @code{\"~/.mpd/sticker.sql\"})"
+msgstr "@code{sticker-file} (predeterminado: @code{\"~/.mpd/sticker.sql\"})"
+
+#. type: table
+#: doc/guix.texi:21184
+msgid "The location of the sticker database."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:21185
+#, no-wrap
+msgid "@code{port} (default: @code{\"6600\"})"
+msgstr "@code{port} (predeterminado: @code{\"6600\"})"
+
+#. type: table
+#: doc/guix.texi:21187
+msgid "The port to run mpd on."
+msgstr "Puerto sobre el que se ejecuta mpd."
+
+#. type: item
+#: doc/guix.texi:21188
+#, no-wrap
+msgid "@code{address} (default: @code{\"any\"})"
+msgstr "@code{address} (predeterminada: @code{\"any\"})"
+
+#. type: table
+#: doc/guix.texi:21191
+msgid "The address that mpd will bind to.  To use a Unix domain socket, an absolute path can be specified here."
+msgstr ""
+
+#. type: subsection
+#: doc/guix.texi:21196
+#, no-wrap
+msgid "Virtualization services"
+msgstr "Servicios de virtualización"
+
+#. type: Plain text
+#: doc/guix.texi:21201
+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:21202
+#, no-wrap
+msgid "Libvirt daemon"
+msgstr "Demonio Libvirt"
+
+#. type: Plain text
+#: doc/guix.texi:21206
+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:21207
+#, no-wrap
+msgid "{Scheme Variable} libvirt-service-type"
+msgstr "{Variable Scheme} libvirt-service-type"
+
+#. type: deffn
+#: doc/guix.texi:21210
+msgid "This is the type of the @uref{https://libvirt.org, libvirt daemon}.  Its value must be a @code{libvirt-configuration}."
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:21216
+#, no-wrap
+msgid ""
+"(service libvirt-service-type\n"
+"         (libvirt-configuration\n"
+"          (unix-sock-group \"libvirt\")\n"
+"          (tls-port \"16555\")))\n"
+msgstr ""
+"(service libvirt-service-type\n"
+"         (libvirt-configuration\n"
+"          (unix-sock-group \"libvirt\")\n"
+"          (tls-port \"16555\")))\n"
+
+#. type: Plain text
+#: doc/guix.texi:21221
+msgid "Available @code{libvirt-configuration} fields are:"
+msgstr "Los campos disponibles de @code{libvirt-configuration} son:"
+
+#. type: deftypevr
+#: doc/guix.texi:21222
+#, fuzzy, no-wrap
+msgid "{@code{libvirt-configuration} parameter} package libvirt"
+msgstr "{parámetro de @code{libvirt-configuration}} package libvirt"
+
+#. type: deftypevr
+#: doc/guix.texi:21224
+msgid "Libvirt package."
+msgstr "Paquete libvirt."
+
+#. type: deftypevr
+#: doc/guix.texi:21227
+#, fuzzy, no-wrap
+msgid "{@code{libvirt-configuration} parameter} boolean listen-tls?"
+msgstr "{parámetro de @code{libvirt-configuration}} boolean listen-tls?"
+
+#. type: deftypevr
+#: doc/guix.texi:21230
+msgid "Flag listening for secure TLS connections on the public TCP/IP port.  must set @code{listen} for this to have any effect."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21233
+msgid "It is necessary to setup a CA and issue server certificates before using this capability."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21238
+#, fuzzy, no-wrap
+msgid "{@code{libvirt-configuration} parameter} boolean listen-tcp?"
+msgstr "{parámetro de @code{libvirt-configuration}} boolean listen-tcp?"
+
+#. type: deftypevr
+#: doc/guix.texi:21241
+msgid "Listen for unencrypted TCP connections on the public TCP/IP port.  must set @code{listen} for this to have any effect."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21245
+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:21250
+#, fuzzy, no-wrap
+msgid "{@code{libvirt-configuration} parameter} string tls-port"
+msgstr "{parámetro de @code{libvirt-configuration}} string tls-port"
+
+#. type: deftypevr
+#: doc/guix.texi:21253
+msgid "Port for accepting secure TLS connections This can be a port number, or service name"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21255
+msgid "Defaults to @samp{\"16514\"}."
+msgstr "El valor predeterminado es @samp{\"16514\"}."
+
+#. type: deftypevr
+#: doc/guix.texi:21258
+#, fuzzy, no-wrap
+msgid "{@code{libvirt-configuration} parameter} string tcp-port"
+msgstr "{parámetro de @code{libvirt-configuration}} string tcp-port"
+
+#. type: deftypevr
+#: doc/guix.texi:21261
+msgid "Port for accepting insecure TCP connections This can be a port number, or service name"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21263
+msgid "Defaults to @samp{\"16509\"}."
+msgstr "El valor predeterminado es @samp{\"16509\"}."
+
+#. type: deftypevr
+#: doc/guix.texi:21266
+#, fuzzy, 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:21268
+msgid "IP address or hostname used for client connections."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21270
+msgid "Defaults to @samp{\"0.0.0.0\"}."
+msgstr "El valor predeterminado es @samp{\"0.0.0.0\"}."
+
+#. type: deftypevr
+#: doc/guix.texi:21273
+#, fuzzy, 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:21275
+msgid "Flag toggling mDNS advertisement of the libvirt service."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21278
+msgid "Alternatively can disable for all services on a host by stopping the Avahi daemon."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21283
+#, fuzzy, no-wrap
+msgid "{@code{libvirt-configuration} parameter} string mdns-name"
+msgstr "{parámetro de @code{libvirt-configuration}} string mdns-name"
+
+#. type: deftypevr
+#: doc/guix.texi:21286
+msgid "Default mDNS advertisement name.  This must be unique on the immediate broadcast network."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21288
+msgid "Defaults to @samp{\"Virtualization Host <hostname>\"}."
+msgstr "El valor predeterminado es @samp{\"Virtualization Host <hostname>\"}.<"
+
+#. type: deftypevr
+#: doc/guix.texi:21291
+#, fuzzy, 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:21295
+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:21300
+#, fuzzy, 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:21303
+msgid "UNIX socket permissions for the R/O socket.  This is used for monitoring VM status only."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21305 doc/guix.texi:21323
+msgid "Defaults to @samp{\"0777\"}."
+msgstr "El valor predeterminado es @samp{\"0777\"}."
+
+#. type: deftypevr
+#: doc/guix.texi:21308
+#, fuzzy, 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:21312
+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:21314
+msgid "Defaults to @samp{\"0770\"}."
+msgstr "El valor predeterminado es @samp{\"0770\"}."
+
+#. type: deftypevr
+#: doc/guix.texi:21317
+#, fuzzy, no-wrap
+msgid "{@code{libvirt-configuration} parameter} string unix-sock-admin-perms"
+msgstr "{parámetro de @code{libvirt-configuration}} string unix-sock-admin-perms"
+
+#. type: deftypevr
+#: doc/guix.texi:21321
+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:21326
+#, fuzzy, no-wrap
+msgid "{@code{libvirt-configuration} parameter} string unix-sock-dir"
+msgstr "{parámetro de @code{libvirt-configuration}} string unix-sock-dir"
+
+#. type: deftypevr
+#: doc/guix.texi:21328
+msgid "The directory in which sockets will be found/created."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21330
+msgid "Defaults to @samp{\"/var/run/libvirt\"}."
+msgstr "El valor predeterminado es @samp{\"/var/run/libvirt\"}."
+
+#. type: deftypevr
+#: doc/guix.texi:21333
+#, fuzzy, no-wrap
+msgid "{@code{libvirt-configuration} parameter} string auth-unix-ro"
+msgstr "{parámetro de @code{libvirt-configuration}} string auth-unix-ro"
+
+#. type: deftypevr
+#: doc/guix.texi:21336
+msgid "Authentication scheme for UNIX read-only sockets.  By default socket permissions allow anyone to connect"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21338 doc/guix.texi:21347
+msgid "Defaults to @samp{\"polkit\"}."
+msgstr "El valor predeterminado es @samp{\"polkit\"}."
+
+#. type: deftypevr
+#: doc/guix.texi:21341
+#, fuzzy, 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:21345
+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:21350
+#, fuzzy, 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:21354
+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:21356
+msgid "Defaults to @samp{\"sasl\"}."
+msgstr "El valor predeterminado es @samp{\"sasl\"}."
+
+#. type: deftypevr
+#: doc/guix.texi:21359
+#, fuzzy, 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:21363
+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:21366
+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:21368
+msgid "Defaults to @samp{\"none\"}."
+msgstr "El valor predeterminado es @samp{\"none\"}."
+
+#. type: deftypevr
+#: doc/guix.texi:21371
+#, fuzzy, no-wrap
+msgid "{@code{libvirt-configuration} parameter} optional-list access-drivers"
+msgstr "{parámetro de @code{libvirt-configuration}} optional-list access-drivers"
+
+#. type: deftypevr
+#: doc/guix.texi:21373
+msgid "API access control scheme."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21376
+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:21381
+#, fuzzy, 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:21384
+msgid "Server key file path.  If set to an empty string, then no private key is loaded."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21389
+#, fuzzy, 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:21392
+msgid "Server key file path.  If set to an empty string, then no certificate is loaded."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21397
+#, fuzzy, 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:21400
+msgid "Server key file path.  If set to an empty string, then no CA certificate is loaded."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21405
+#, fuzzy, no-wrap
+msgid "{@code{libvirt-configuration} parameter} string crl-file"
+msgstr "{parámetro de @code{libvirt-configuration}} string crl-file"
+
+#. type: deftypevr
+#: doc/guix.texi:21408
+msgid "Certificate revocation list path.  If set to an empty string, then no CRL is loaded."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21413
+#, fuzzy, 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:21415
+msgid "Disable verification of our own server certificates."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21418
+msgid "When libvirtd starts it performs some sanity checks against its own certificates."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21423
+#, fuzzy, 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:21425
+msgid "Disable verification of client certificates."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21429
+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:21434
+#, fuzzy, no-wrap
+msgid "{@code{libvirt-configuration} parameter} optional-list tls-allowed-dn-list"
+msgstr "{parámetro de @code{libvirt-configuration}} optional-list tls-allowed-dn-list"
+
+#. type: deftypevr
+#: doc/guix.texi:21436
+msgid "Whitelist of allowed x509 Distinguished Name."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21441
+#, fuzzy, no-wrap
+msgid "{@code{libvirt-configuration} parameter} optional-list sasl-allowed-usernames"
+msgstr "{parámetro de @code{libvirt-configuration}} optional-list sasl-allowed-usernames"
+
+#. type: deftypevr
+#: doc/guix.texi:21444
+msgid "Whitelist of allowed SASL usernames.  The format for username depends on the SASL authentication mechanism."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21449
+#, fuzzy, no-wrap
+msgid "{@code{libvirt-configuration} parameter} string tls-priority"
+msgstr "{parámetro de @code{libvirt-configuration}} string tls-priority"
+
+#. type: deftypevr
+#: doc/guix.texi:21453
+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 ""
+
+#. type: deftypevr
+#: doc/guix.texi:21455
+msgid "Defaults to @samp{\"NORMAL\"}."
+msgstr "El valor predeterminado es @samp{\"NORMAL\"}."
+
+#. type: deftypevr
+#: doc/guix.texi:21458
+#, fuzzy, 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:21461 doc/guix.texi:21884
+msgid "Maximum number of concurrent client connections to allow over all sockets combined."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21463
+msgid "Defaults to @samp{5000}."
+msgstr "El valor predeterminado es @samp{5000}."
+
+#. type: deftypevr
+#: doc/guix.texi:21466
+#, fuzzy, no-wrap
+msgid "{@code{libvirt-configuration} parameter} integer max-queued-clients"
+msgstr "{parámetro de @code{libvirt-configuration}} integer max-queued-clients"
+
+#. type: deftypevr
+#: doc/guix.texi:21470
+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:21475
+#, fuzzy, 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:21478
+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:21480 doc/guix.texi:21498 doc/guix.texi:21514
+msgid "Defaults to @samp{20}."
+msgstr "El valor predeterminado es @samp{20}."
+
+#. type: deftypevr
+#: doc/guix.texi:21483
+#, fuzzy, 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:21485
+msgid "Number of workers to start up initially."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21490
+#, fuzzy, 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:21492
+msgid "Maximum number of worker threads."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21496
+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:21501
+#, fuzzy, no-wrap
+msgid "{@code{libvirt-configuration} parameter} integer prio-workers"
+msgstr "{parámetro de @code{libvirt-configuration}} integer prio-workers"
+
+#. type: deftypevr
+#: doc/guix.texi:21505
+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:21510
+#, fuzzy, 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:21512
+msgid "Total global limit on concurrent RPC calls."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21517
+#, fuzzy, 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:21521
+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:21526
+#, fuzzy, 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:21528
+msgid "Same as @code{min-workers} but for the admin interface."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21533
+#, fuzzy, 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:21535
+msgid "Same as @code{max-workers} but for the admin interface."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21540
+#, fuzzy, 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:21542
+msgid "Same as @code{max-clients} but for the admin interface."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21547
+#, fuzzy, 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:21549
+msgid "Same as @code{max-queued-clients} but for the admin interface."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21554
+#, fuzzy, 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:21556
+msgid "Same as @code{max-client-requests} but for the admin interface."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21561
+#, fuzzy, 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:21563 doc/guix.texi:21786
+msgid "Logging level.  4 errors, 3 warnings, 2 information, 1 debug."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21568
+#, fuzzy, no-wrap
+msgid "{@code{libvirt-configuration} parameter} string log-filters"
+msgstr "{parámetro de @code{libvirt-configuration}} string log-filters"
+
+# FUZZY
+# MAAV (TODO): Log
+#. type: deftypevr
+#: doc/guix.texi:21570 doc/guix.texi:21793
+msgid "Logging filters."
+msgstr "Filtros de log."
+
+#. type: deftypevr
+#: doc/guix.texi:21573 doc/guix.texi:21796
+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:21577 doc/guix.texi:21800
+msgid "x:name"
+msgstr "x:nombre"
+
+#. type: itemize
+#: doc/guix.texi:21580 doc/guix.texi:21803
+msgid "x:+name"
+msgstr "x:+nombre"
+
+#. type: deftypevr
+#: doc/guix.texi:21590 doc/guix.texi:21813
+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: itemize
+#: doc/guix.texi:21594 doc/guix.texi:21639 doc/guix.texi:21817
+#: doc/guix.texi:21862
+msgid "1: DEBUG"
+msgstr ""
+
+#. type: itemize
+#: doc/guix.texi:21597 doc/guix.texi:21642 doc/guix.texi:21820
+#: doc/guix.texi:21865
+msgid "2: INFO"
+msgstr ""
+
+#. type: itemize
+#: doc/guix.texi:21600 doc/guix.texi:21645 doc/guix.texi:21823
+#: doc/guix.texi:21868
+msgid "3: WARNING"
+msgstr ""
+
+#. type: itemize
+#: doc/guix.texi:21603 doc/guix.texi:21648 doc/guix.texi:21826
+#: doc/guix.texi:21871
+msgid "4: ERROR"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21608 doc/guix.texi:21831
+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:21610 doc/guix.texi:21833
+msgid "Defaults to @samp{\"3:remote 4:event\"}."
+msgstr "El valor predeterminado es @samp{\"3:remote 4:event\"}."
+
+#. type: deftypevr
+#: doc/guix.texi:21613
+#, fuzzy, no-wrap
+msgid "{@code{libvirt-configuration} parameter} string log-outputs"
+msgstr "{parámetro de @code{libvirt-configuration}} string log-outputs"
+
+# FUZZY
+# MAAV (TODO): Log
+#. type: deftypevr
+#: doc/guix.texi:21615 doc/guix.texi:21838
+msgid "Logging outputs."
+msgstr "Salidas de log."
+
+# FUZZY
+# MAAV (TODO): Log
+#. type: deftypevr
+#: doc/guix.texi:21618 doc/guix.texi:21841
+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:21620 doc/guix.texi:21843
+#, no-wrap
+msgid "x:stderr"
+msgstr "x:stderr"
+
+#. type: table
+#: doc/guix.texi:21622 doc/guix.texi:21845
+msgid "output goes to stderr"
+msgstr "la salida va a stderr"
+
+#. type: item
+#: doc/guix.texi:21623 doc/guix.texi:21846
+#, no-wrap
+msgid "x:syslog:name"
+msgstr "x:syslog:nombre"
+
+#. type: table
+#: doc/guix.texi:21625 doc/guix.texi:21848
+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:21626 doc/guix.texi:21849
+#, no-wrap
+msgid "x:file:file_path"
+msgstr "x:file:ruta_fichero"
+
+#. type: table
+#: doc/guix.texi:21628 doc/guix.texi:21851
+msgid "output to a file, with the given filepath"
+msgstr "encamina la salida a un fichero, con la ruta proporcionada"
+
+#. type: item
+#: doc/guix.texi:21629 doc/guix.texi:21852
+#, no-wrap
+msgid "x:journald"
+msgstr "x:journald"
+
+# FUZZY
+#. type: table
+#: doc/guix.texi:21631 doc/guix.texi:21854
+msgid "output to journald logging system"
+msgstr "usa el sistema de logging journald"
+
+#. type: deftypevr
+#: doc/guix.texi:21635 doc/guix.texi:21858
+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 actua como filtro"
+
+#. type: deftypevr
+#: doc/guix.texi:21653 doc/guix.texi:21876
+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:21655 doc/guix.texi:21878
+msgid "Defaults to @samp{\"3:stderr\"}."
+msgstr "El valor predeterminado es @samp{\"3:stderr\"}."
+
+#. type: deftypevr
+#: doc/guix.texi:21658
+#, fuzzy, 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:21660
+msgid "Allows usage of the auditing subsystem to be altered"
+msgstr ""
+
+#. type: itemize
+#: doc/guix.texi:21664
+msgid "0: disable all auditing"
+msgstr ""
+
+#. type: itemize
+#: doc/guix.texi:21667
+msgid "1: enable auditing, only if enabled on host"
+msgstr ""
+
+#. type: itemize
+#: doc/guix.texi:21670
+msgid "2: enable auditing, and exit if disabled on host."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21677
+#, fuzzy, 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:21679
+msgid "Send audit messages via libvirt logging infrastructure."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21684
+#, fuzzy, no-wrap
+msgid "{@code{libvirt-configuration} parameter} optional-string host-uuid"
+msgstr "{parámetro de @code{libvirt-configuration}} optional-string host-uuid"
+
+#. type: deftypevr
+#: doc/guix.texi:21686
+msgid "Host UUID.  UUID must not have all digits be the same."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21691
+#, fuzzy, 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:21693
+msgid "Source to read host UUID."
+msgstr ""
+
+#. type: itemize
+#: doc/guix.texi:21697
+msgid "@code{smbios}: fetch the UUID from @code{dmidecode -s system-uuid}"
+msgstr ""
+
+#. type: itemize
+#: doc/guix.texi:21700
+msgid "@code{machine-id}: fetch the UUID from @code{/etc/machine-id}"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21705
+msgid "If @code{dmidecode} does not provide a valid UUID a temporary UUID will be generated."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21707
+msgid "Defaults to @samp{\"smbios\"}."
+msgstr "El valor predeterminado es @samp{\"smbios\"}."
+
+#. type: deftypevr
+#: doc/guix.texi:21710
+#, fuzzy, 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:21715
+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:21720
+#, fuzzy, 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:21724
+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:21731
+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:21736
+#, fuzzy, 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:21738 doc/guix.texi:21745
+msgid "Same as above but for admin interface."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21743
+#, fuzzy, 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:21750
+#, fuzzy, no-wrap
+msgid "{@code{libvirt-configuration} parameter} integer ovs-timeout"
+msgstr "{parámetro de @code{libvirt-configuration}} integer ovs-timeout"
+
+#. type: deftypevr
+#: doc/guix.texi:21752
+msgid "Timeout for Open vSwitch calls."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21756
+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:21763
+#, no-wrap
+msgid "Virtlog daemon"
+msgstr "Daemon Virtlog"
+
+#. type: Plain text
+#: doc/guix.texi:21766
+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:21772
+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:21773
+#, no-wrap
+msgid "{Scheme Variable} virtlog-service-type"
+msgstr "{Variable Scheme} virtlog-service-type"
+
+#. type: deffn
+#: doc/guix.texi:21776
+msgid "This is the type of the virtlog daemon.  Its value must be a @code{virtlog-configuration}."
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:21781
+#, no-wrap
+msgid ""
+"(service virtlog-service-type\n"
+"         (virtlog-configuration\n"
+"          (max-clients 1000)))\n"
+msgstr ""
+"(service virtlog-service-type\n"
+"         (virtlog-configuration\n"
+"          (max-clients 1000)))\n"
+
+#. type: deftypevr
+#: doc/guix.texi:21784
+#, fuzzy, 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:21791
+#, fuzzy, no-wrap
+msgid "{@code{virtlog-configuration} parameter} string log-filters"
+msgstr "{parámetro de @code{virtlog-configuration}} string log-filters"
+
+#. type: deftypevr
+#: doc/guix.texi:21836
+#, fuzzy, no-wrap
+msgid "{@code{virtlog-configuration} parameter} string log-outputs"
+msgstr "{parámetro de @code{virtlog-configuration}} string log-outputs"
+
+#. type: deftypevr
+#: doc/guix.texi:21881
+#, fuzzy, 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:21886
+msgid "Defaults to @samp{1024}."
+msgstr "El valor predeterminado es @samp{1024}."
+
+#. type: deftypevr
+#: doc/guix.texi:21889
+#, fuzzy, 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:21891
+msgid "Maximum file size before rolling over."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21893
+msgid "Defaults to @samp{2MB}"
+msgstr "El valor predeterminado es @samp{2MB}."
+
+#. type: deftypevr
+#: doc/guix.texi:21896
+#, fuzzy, no-wrap
+msgid "{@code{virtlog-configuration} parameter} integer max-backups"
+msgstr "{parámetro de @code{virtlog-configuration}} integer max-backups"
+
+#. type: deftypevr
+#: doc/guix.texi:21898
+msgid "Maximum number of backup files to keep."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21900
+msgid "Defaults to @samp{3}"
+msgstr "El valor predeterminado es @samp{3}."
+
+#. type: subsubheading
+#: doc/guix.texi:21903
+#, no-wrap
+msgid "Transparent Emulation with QEMU"
+msgstr "Emulación transparente con QEMU"
+
+#. type: cindex
+#: doc/guix.texi:21905
+#, no-wrap
+msgid "emulation"
+msgstr "emulación"
+
+#. type: code{#1}
+#: doc/guix.texi:21906
+#, no-wrap
+msgid "binfmt_misc"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:21912
+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 ""
+
+#. type: defvr
+#: doc/guix.texi:21913
+#, no-wrap
+msgid "{Scheme Variable} qemu-binfmt-service-type"
+msgstr "{Variable Scheme} qemu-binfmt-service-type"
+
+#. type: defvr
+#: doc/guix.texi:21918
+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: example
+#: doc/guix.texi:21923
+#, no-wrap
+msgid ""
+"(service qemu-binfmt-service-type\n"
+"         (qemu-binfmt-configuration\n"
+"           (platforms (lookup-qemu-platforms \"arm\" \"aarch64\" \"mips64el\"))))\n"
+msgstr ""
+"(service qemu-binfmt-service-type\n"
+"         (qemu-binfmt-configuration\n"
+"           (platforms (lookup-qemu-platforms \"arm\" \"aarch64\" \"mips64el\"))))\n"
+
+#. type: defvr
+#: doc/guix.texi:21929
+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:21931
+#, no-wrap
+msgid "{Data Type} qemu-binfmt-configuration"
+msgstr "{Tipo de datos} qemu-binfmt-configuration"
+
+#. type: deftp
+#: doc/guix.texi:21933
+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:21935
+#, no-wrap
+msgid "@code{platforms} (default: @code{'()})"
+msgstr "@code{platforms} (predeterminadas: @code{'()})"
+
+#. type: table
+#: doc/guix.texi:21938
+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:21939
+#, no-wrap
+msgid "@code{guix-support?} (default: @code{#f})"
+msgstr "@code{guix-support?} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:21945
+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 ""
+
+#. type: table
+#: doc/guix.texi:21948
+msgid "For example, let's suppose you're on an x86_64 machine and you have this service:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:21954
+#, no-wrap
+msgid ""
+"(service qemu-binfmt-service-type\n"
+"         (qemu-binfmt-configuration\n"
+"           (platforms (lookup-qemu-platforms \"arm\"))\n"
+"           (guix-support? #t)))\n"
+msgstr ""
+"(service qemu-binfmt-service-type\n"
+"         (qemu-binfmt-configuration\n"
+"           (platforms (lookup-qemu-platforms \"arm\"))\n"
+"           (guix-support? #t)))\n"
+
+#. type: table
+#: doc/guix.texi:21957
+msgid "You can run:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:21960
+#, no-wrap
+msgid "guix build -s armhf-linux inkscape\n"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:21967
+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:21968
+#, no-wrap
+msgid "@code{qemu} (default: @code{qemu})"
+msgstr "@code{qemu} (predeterminado: @code{qemu})"
+
+#. type: table
+#: doc/guix.texi:21970
+msgid "The QEMU package to use."
+msgstr "El paquete QEMU usado."
+
+#. type: deffn
+#: doc/guix.texi:21973
+#, 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:21978
+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:21980
+#, no-wrap
+msgid "{Scheme Procedure} qemu-platform? @var{obj}"
+msgstr "{Procedimiento Scheme} qemu-platform? @var{obj}"
+
+#. type: deffn
+#: doc/guix.texi:21982
+msgid "Return true if @var{obj} is a platform object."
+msgstr "Devuelve verdadero si @var{obj} es un objeto plataforma."
+
+#. type: deffn
+#: doc/guix.texi:21984
+#, no-wrap
+msgid "{Scheme Procedure} qemu-platform-name @var{platform}"
+msgstr "{Procedimiento Scheme} qemu-platform-name @var{plataforma}"
+
+#. type: deffn
+#: doc/guix.texi:21986
+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\"}."
+
+#. type: Plain text
+#: doc/guix.texi:21998
+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:21999
+#, 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:22003
+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."
+
+#. type: deffn
+#: doc/guix.texi:22009
+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 ""
+
+#. type: deftp
+#: doc/guix.texi:22012
+#, no-wrap
+msgid "{Data Type} git-daemon-configuration"
+msgstr "{Tipo de datos} git-daemon-configuration"
+
+#. type: deftp
+#: doc/guix.texi:22014
+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:22016 doc/guix.texi:22072
+#, no-wrap
+msgid "@code{package} (default: @var{git})"
+msgstr "@code{package} (predeterminado: @var{git})"
+
+#. type: table
+#: doc/guix.texi:22018 doc/guix.texi:22074
+msgid "Package object of the Git distributed version control system."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:22019 doc/guix.texi:22078
+#, no-wrap
+msgid "@code{export-all?} (default: @var{#f})"
+msgstr "@code{export-all?} (predeterminado: @var{#f})"
+
+#. type: table
+#: doc/guix.texi:22022
+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:22023
+#, no-wrap
+msgid "@code{base-path} (default: @file{/srv/git})"
+msgstr "@code{base-path} (predeterminado: @file{/srv/git})"
+
+#. type: table
+#: doc/guix.texi:22028
+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 ""
+
+#. type: item
+#: doc/guix.texi:22029
+#, no-wrap
+msgid "@code{user-path} (default: @var{#f})"
+msgstr "@code{user-path} (predeterminado: @var{#f})"
+
+#. type: table
+#: doc/guix.texi:22036
+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 ""
+
+#. type: item
+#: doc/guix.texi:22037
+#, no-wrap
+msgid "@code{listen} (default: @var{'()})"
+msgstr "@code{listen} (predeterminado: @var{'()})"
+
+#. type: table
+#: doc/guix.texi:22040
+msgid "Whether to listen on specific IP addresses or hostnames, defaults to all."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:22041
+#, no-wrap
+msgid "@code{port} (default: @var{#f})"
+msgstr "@code{port} (predeterminado: @var{#f})"
+
+#. type: table
+#: doc/guix.texi:22043
+msgid "Whether to listen on an alternative port, which defaults to 9418."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:22044
+#, no-wrap
+msgid "@code{whitelist} (default: @var{'()})"
+msgstr "@code{whitelist} (predeterminado: @var{'()})"
+
+#. type: table
+#: doc/guix.texi:22046
+msgid "If not empty, only allow access to this list of directories."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:22047
+#, no-wrap
+msgid "@code{extra-options} (default: @var{'()})"
+msgstr "@code{extra-options} (predeterminadas: @var{'()})"
+
+#. type: table
+#: doc/guix.texi:22050
+msgid "Extra options will be passed to @code{git daemon}, please run @command{man git-daemon} for more information."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:22064
+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."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:22067
+msgid "Guix has a separate configuration data type for serving Git repositories over HTTP."
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:22068
+#, no-wrap
+msgid "{Data Type} git-http-configuration"
+msgstr "{Tipo de datos} git-http-configuration"
+
+#. type: deftp
+#: doc/guix.texi:22070
+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}."
+
+#. type: item
+#: doc/guix.texi:22075
+#, no-wrap
+msgid "@code{git-root} (default: @file{/srv/git})"
+msgstr "@code{git-root} (predeterminada: @file{/srv/git})"
+
+#. type: table
+#: doc/guix.texi:22077
+msgid "Directory containing the Git repositories to expose to the world."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:22081
+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:22082
+#, no-wrap
+msgid "@code{uri-path} (default: @file{/git/})"
+msgstr "@code{uri-path} (predeterminada: @file{/git/})"
+
+#. type: table
+#: doc/guix.texi:22087
+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 ""
+
+#. type: item
+#: doc/guix.texi:22088
+#, 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:22091
+msgid "The socket on which the @code{fcgiwrap} daemon is listening.  @xref{Web Services}."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:22098
+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:22099
+#, no-wrap
+msgid "{Scheme Procedure} git-http-nginx-location-configuration @"
+msgstr "{Procedimiento Scheme} git-http-nginx-location-configuration @"
+
+#. type: deffn
+#: doc/guix.texi:22104
+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: example
+#: doc/guix.texi:22121
+#, no-wrap
+msgid ""
+"(service nginx-service-type\n"
+"         (nginx-configuration\n"
+"          (server-blocks\n"
+"           (list\n"
+"            (nginx-server-configuration\n"
+"             (listen '(\"443 ssl\"))\n"
+"             (server-name \"git.my-host.org\")\n"
+"             (ssl-certificate\n"
+"              \"/etc/letsencrypt/live/git.my-host.org/fullchain.pem\")\n"
+"             (ssl-certificate-key\n"
+"              \"/etc/letsencrypt/live/git.my-host.org/privkey.pem\")\n"
+"             (locations\n"
+"              (list\n"
+"               (git-http-nginx-location-configuration\n"
+"                (git-http-configuration (uri-path \"/\"))))))))))\n"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:22128
+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:22130
+#, no-wrap
+msgid "Cgit Service"
+msgstr "Servicio Cgit"
+
+#. type: cindex
+#: doc/guix.texi:22132
+#, no-wrap
+msgid "Cgit service"
+msgstr "servicio Cgit"
+
+#. type: cindex
+#: doc/guix.texi:22133
+#, no-wrap
+msgid "Git, web interface"
+msgstr "Git, interfaz web"
+
+#. type: Plain text
+#: doc/guix.texi:22136
+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:22139
+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: example
+#: doc/guix.texi:22142
+#, no-wrap
+msgid "(service cgit-service-type)\n"
+msgstr "(service cgit-service-type)\n"
+
+#. type: Plain text
+#: doc/guix.texi:22146
+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:22150
+msgid "Available @code{cgit-configuration} fields are:"
+msgstr "Los campos disponibles de @code{cgit-configuration} son:"
+
+#. type: deftypevr
+#: doc/guix.texi:22151
+#, fuzzy, no-wrap
+msgid "{@code{cgit-configuration} parameter} package package"
+msgstr "{parámetro de @code{cgit-configuration}} package package"
+
+#. type: deftypevr
+#: doc/guix.texi:22153
+msgid "The CGIT package."
+msgstr "El paquete CGIT."
+
+#. type: deftypevr
+#: doc/guix.texi:22156
+#, fuzzy, no-wrap
+msgid "{@code{cgit-configuration} parameter} nginx-server-configuration-list nginx"
+msgstr "{parámetro de @code{cgit-configuration}} nginx-server-configuration-list nginx"
+
+#. type: deftypevr
+#: doc/guix.texi:22161
+#, fuzzy, 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:22164
+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:22169
+#, fuzzy, no-wrap
+msgid "{@code{cgit-configuration} parameter} string agefile"
+msgstr "{parámetro de @code{cgit-configuration}} string agefile"
+
+#. type: deftypevr
+#: doc/guix.texi:22172
+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:22177
+#, fuzzy, no-wrap
+msgid "{@code{cgit-configuration} parameter} file-object auth-filter"
+msgstr "{parámetro de @code{cgit-configuration}} file-object auth-filter"
+
+#. type: deftypevr
+#: doc/guix.texi:22180
+msgid "Specifies a command that will be invoked for authenticating repository access."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22185
+#, fuzzy, 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:22188
+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:22190
+msgid "Defaults to @samp{\"name\"}."
+msgstr "El valor predeterminado es @samp{\"name\"}."
+
+#. type: deftypevr
+#: doc/guix.texi:22193
+#, fuzzy, 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:22195
+msgid "Path used to store the cgit cache entries."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22197
+msgid "Defaults to @samp{\"/var/cache/cgit\"}."
+msgstr "El valor predeterminado es @samp{\"/var/cache/cgit\"}."
+
+#. type: deftypevr
+#: doc/guix.texi:22200
+#, fuzzy, no-wrap
+msgid "{@code{cgit-configuration} parameter} integer cache-static-ttl"
+msgstr "{parámetro de @code{cgit-configuration}} integer cache-static-ttl"
+
+#. type: deftypevr
+#: doc/guix.texi:22203
+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:22205 doc/guix.texi:22648
+msgid "Defaults to @samp{-1}."
+msgstr "El valor predeterminado es @samp{-1}."
+
+#. type: deftypevr
+#: doc/guix.texi:22208
+#, fuzzy, no-wrap
+msgid "{@code{cgit-configuration} parameter} integer cache-dynamic-ttl"
+msgstr "{parámetro de @code{cgit-configuration}} integer cache-dynamic-ttl"
+
+#. type: deftypevr
+#: doc/guix.texi:22211
+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:22216
+#, fuzzy, 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:22219
+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:22224
+#, fuzzy, 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:22227
+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:22232
+#, fuzzy, no-wrap
+msgid "{@code{cgit-configuration} parameter} integer cache-scanrc-ttl"
+msgstr "{parámetro de @code{cgit-configuration}} integer cache-scanrc-ttl"
+
+#. type: deftypevr
+#: doc/guix.texi:22235
+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:22240
+#, fuzzy, no-wrap
+msgid "{@code{cgit-configuration} parameter} integer cache-about-ttl"
+msgstr "{parámetro de @code{cgit-configuration}} integer cache-about-ttl"
+
+#. type: deftypevr
+#: doc/guix.texi:22243
+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:22248
+#, fuzzy, 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:22251
+msgid "Number which specifies the time-to-live, in minutes, for the cached version of snapshots."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22256
+#, fuzzy, 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:22259
+msgid "The maximum number of entries in the cgit cache.  When set to @samp{0}, caching is disabled."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22264
+#, fuzzy, no-wrap
+msgid "{@code{cgit-configuration} parameter} boolean case-sensitive-sort?"
+msgstr "{parámetro de @code{cgit-configuration}} boolean case-sensitive-sort?"
+
+#. type: deftypevr
+#: doc/guix.texi:22266
+msgid "Sort items in the repo list case sensitively."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22271
+#, fuzzy, no-wrap
+msgid "{@code{cgit-configuration} parameter} list clone-prefix"
+msgstr "{parámetro de @code{cgit-configuration}} list clone-prefix"
+
+#. type: deftypevr
+#: doc/guix.texi:22274
+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:22279
+#, fuzzy, no-wrap
+msgid "{@code{cgit-configuration} parameter} list clone-url"
+msgstr "{parámetro de @code{cgit-configuration}} list clone-url"
+
+#. type: deftypevr
+#: doc/guix.texi:22281
+msgid "List of @code{clone-url} templates."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22286
+#, fuzzy, no-wrap
+msgid "{@code{cgit-configuration} parameter} file-object commit-filter"
+msgstr "{parámetro de @code{cgit-configuration}} file-object commit-filter"
+
+#. type: deftypevr
+#: doc/guix.texi:22288
+msgid "Command which will be invoked to format commit messages."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22293
+#, fuzzy, no-wrap
+msgid "{@code{cgit-configuration} parameter} string commit-sort"
+msgstr "{parámetro de @code{cgit-configuration}} string commit-sort"
+
+#. type: deftypevr
+#: doc/guix.texi:22297 doc/guix.texi:22855
+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:22299
+msgid "Defaults to @samp{\"git log\"}."
+msgstr "El valor predeterminado es @samp{\"git log\"}."
+
+#. type: deftypevr
+#: doc/guix.texi:22302
+#, fuzzy, 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:22304
+msgid "URL which specifies the css document to include in all cgit pages."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22306
+msgid "Defaults to @samp{\"/share/cgit/cgit.css\"}."
+msgstr "El valor predeterminado es @samp{\"/share/cgit/cgit.css\"}."
+
+#. type: deftypevr
+#: doc/guix.texi:22309
+#, fuzzy, 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:22313
+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:22318
+#, fuzzy, no-wrap
+msgid "{@code{cgit-configuration} parameter} boolean embedded?"
+msgstr "{parámetro de @code{cgit-configuration}} boolean embedded?"
+
+#. type: deftypevr
+#: doc/guix.texi:22321
+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:22326
+#, fuzzy, 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:22330
+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:22335
+#, fuzzy, 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:22338
+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:22343
+#, fuzzy, 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:22346
+msgid "Flag which, when set to @samp{#t}, allows users to follow a file in the log view."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22351
+#, fuzzy, no-wrap
+msgid "{@code{cgit-configuration} parameter} boolean enable-http-clone?"
+msgstr "{parámetro de @code{cgit-configuration}} boolean enable-http-clone?"
+
+#. type: deftypevr
+#: doc/guix.texi:22354
+msgid "If set to @samp{#t}, cgit will act as an dumb HTTP endpoint for Git clones."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22359
+#, fuzzy, no-wrap
+msgid "{@code{cgit-configuration} parameter} boolean enable-index-links?"
+msgstr "{parámetro de @code{cgit-configuration}} boolean enable-index-links?"
+
+#. type: deftypevr
+#: doc/guix.texi:22362
+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:22367
+#, fuzzy, no-wrap
+msgid "{@code{cgit-configuration} parameter} boolean enable-index-owner?"
+msgstr "{parámetro de @code{cgit-configuration}} boolean enable-index-owner?"
+
+#. type: deftypevr
+#: doc/guix.texi:22370
+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:22375
+#, fuzzy, 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:22378
+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:22383
+#, fuzzy, 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:22386
+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:22391
+#, fuzzy, 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:22394 doc/guix.texi:22918
+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:22399
+#, fuzzy, no-wrap
+msgid "{@code{cgit-configuration} parameter} boolean enable-subject-links?"
+msgstr "{parámetro de @code{cgit-configuration}} boolean enable-subject-links?"
+
+#. type: deftypevr
+#: doc/guix.texi:22403
+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:22408
+#, fuzzy, no-wrap
+msgid "{@code{cgit-configuration} parameter} boolean enable-html-serving?"
+msgstr "{parámetro de @code{cgit-configuration}} boolean enable-html-serving?"
+
+#. type: deftypevr
+#: doc/guix.texi:22412
+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:22417
+#, fuzzy, no-wrap
+msgid "{@code{cgit-configuration} parameter} boolean enable-tree-linenumbers?"
+msgstr "{parámetro de @code{cgit-configuration}} boolean enable-tree-linenumbers?"
+
+#. type: deftypevr
+#: doc/guix.texi:22420
+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:22425
+#, fuzzy, no-wrap
+msgid "{@code{cgit-configuration} parameter} boolean enable-git-config?"
+msgstr "{parámetro de @code{cgit-configuration}} boolean enable-git-config?"
+
+#. type: deftypevr
+#: doc/guix.texi:22428
+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:22433
+#, fuzzy, no-wrap
+msgid "{@code{cgit-configuration} parameter} file-object favicon"
+msgstr "{parámetro de @code{cgit-configuration}} file-object favicon"
+
+#. type: deftypevr
+#: doc/guix.texi:22435
+msgid "URL used as link to a shortcut icon for cgit."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22437
+msgid "Defaults to @samp{\"/favicon.ico\"}."
+msgstr "El valor predeterminado es @samp{\"/favicon.ico\"}."
+
+#. type: deftypevr
+#: doc/guix.texi:22440
+#, fuzzy, no-wrap
+msgid "{@code{cgit-configuration} parameter} string footer"
+msgstr "{parámetro de @code{cgit-configuration}} string footer"
+
+#. type: deftypevr
+#: doc/guix.texi:22444
+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:22449
+#, fuzzy, 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:22452
+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:22457
+#, fuzzy, no-wrap
+msgid "{@code{cgit-configuration} parameter} string header"
+msgstr "{parámetro de @code{cgit-configuration}} string header"
+
+#. type: deftypevr
+#: doc/guix.texi:22460
+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:22465
+#, fuzzy, 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:22468
+msgid "Name of a configfile to include before the rest of the current config- file is parsed."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22473
+#, fuzzy, 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:22476
+msgid "The content of the file specified with this option will be included verbatim above the repository index."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22481
+#, fuzzy, no-wrap
+msgid "{@code{cgit-configuration} parameter} string index-info"
+msgstr "{parámetro de @code{cgit-configuration}} string index-info"
+
+#. type: deftypevr
+#: doc/guix.texi:22484
+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:22489
+#, fuzzy, no-wrap
+msgid "{@code{cgit-configuration} parameter} boolean local-time?"
+msgstr "{parámetro de @code{cgit-configuration}} boolean local-time?"
+
+#. type: deftypevr
+#: doc/guix.texi:22492
+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:22497
+#, fuzzy, 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:22500
+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:22502
+msgid "Defaults to @samp{\"/share/cgit/cgit.png\"}."
+msgstr "El valor predeterminado es @samp{\"/share/cgit/cgit.png\"}."
+
+#. type: deftypevr
+#: doc/guix.texi:22505
+#, fuzzy, 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:22507 doc/guix.texi:22964
+msgid "URL loaded when clicking on the cgit logo image."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22512
+#, fuzzy, no-wrap
+msgid "{@code{cgit-configuration} parameter} file-object owner-filter"
+msgstr "{parámetro de @code{cgit-configuration}} file-object owner-filter"
+
+#. type: deftypevr
+#: doc/guix.texi:22515
+msgid "Command which will be invoked to format the Owner column of the main page."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22520
+#, fuzzy, no-wrap
+msgid "{@code{cgit-configuration} parameter} integer max-atom-items"
+msgstr "{parámetro de @code{cgit-configuration}} integer max-atom-items"
+
+#. type: deftypevr
+#: doc/guix.texi:22522
+msgid "Number of items to display in atom feeds view."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22524 doc/guix.texi:22759 doc/guix.texi:22767
+#: doc/guix.texi:22775
+msgid "Defaults to @samp{10}."
+msgstr "El valor predeterminado es @samp{10}."
+
+#. type: deftypevr
+#: doc/guix.texi:22527
+#, fuzzy, 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:22529
+msgid "Number of entries to list per page in \"log\" view."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22531 doc/guix.texi:22546
+msgid "Defaults to @samp{50}."
+msgstr "El valor predeterminado es @samp{50}."
+
+#. type: deftypevr
+#: doc/guix.texi:22534
+#, fuzzy, 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:22536
+msgid "Number of commit message characters to display in \"log\" view."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22538 doc/guix.texi:22554
+msgid "Defaults to @samp{80}."
+msgstr "El valor predeterminado es @samp{80}."
+
+#. type: deftypevr
+#: doc/guix.texi:22541
+#, fuzzy, 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:22544
+msgid "Specifies the number of entries to list per page on the repository index page."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22549
+#, fuzzy, 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:22552
+msgid "Specifies the maximum number of repo description characters to display on the repository index page."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22557
+#, fuzzy, no-wrap
+msgid "{@code{cgit-configuration} parameter} integer max-blob-size"
+msgstr "{parámetro de @code{cgit-configuration}} integer max-blob-size"
+
+#. type: deftypevr
+#: doc/guix.texi:22559
+msgid "Specifies the maximum size of a blob to display HTML for in KBytes."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22564
+#, fuzzy, 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:22567
+msgid "Maximum statistics period.  Valid values are @samp{week},@samp{month}, @samp{quarter} and @samp{year}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22572
+#, fuzzy, 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:22574
+msgid "Mimetype for the specified filename extension."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22578
+#, fuzzy
+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:22581
+#, fuzzy, no-wrap
+msgid "{@code{cgit-configuration} parameter} file-object mimetype-file"
+msgstr "{parámetro de @code{cgit-configuration}} file-object mimetype-file"
+
+#. type: deftypevr
+#: doc/guix.texi:22583
+msgid "Specifies the file to use for automatic mimetype lookup."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22588
+#, fuzzy, no-wrap
+msgid "{@code{cgit-configuration} parameter} string module-link"
+msgstr "{parámetro de @code{cgit-configuration}} string module-link"
+
+#. type: deftypevr
+#: doc/guix.texi:22591
+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:22596
+#, fuzzy, no-wrap
+msgid "{@code{cgit-configuration} parameter} boolean nocache?"
+msgstr "{parámetro de @code{cgit-configuration}} boolean nocache?"
+
+#. type: deftypevr
+#: doc/guix.texi:22598
+msgid "If set to the value @samp{#t} caching will be disabled."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22603
+#, fuzzy, no-wrap
+msgid "{@code{cgit-configuration} parameter} boolean noplainemail?"
+msgstr "{parámetro de @code{cgit-configuration}} boolean noplainemail?"
+
+#. type: deftypevr
+#: doc/guix.texi:22606
+msgid "If set to @samp{#t} showing full author email addresses will be disabled."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22611
+#, fuzzy, no-wrap
+msgid "{@code{cgit-configuration} parameter} boolean noheader?"
+msgstr "{parámetro de @code{cgit-configuration}} boolean noheader?"
+
+#. type: deftypevr
+#: doc/guix.texi:22614
+msgid "Flag which, when set to @samp{#t}, will make cgit omit the standard header on all pages."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22619
+#, fuzzy, no-wrap
+msgid "{@code{cgit-configuration} parameter} project-list project-list"
+msgstr "{parámetro de @code{cgit-configuration}} project-list project-list"
+
+#. type: deftypevr
+#: doc/guix.texi:22623
+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:22628
+#, fuzzy, 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:22630
+msgid "Text which will be used as default value for @code{cgit-repo-readme}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22635
+#, fuzzy, 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:22639
+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:22644
+#, fuzzy, no-wrap
+msgid "{@code{cgit-configuration} parameter} integer renamelimit"
+msgstr "{parámetro de @code{cgit-configuration}} integer renamelimit"
+
+#. type: deftypevr
+#: doc/guix.texi:22646
+msgid "Maximum number of files to consider when detecting renames."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22651
+#, fuzzy, 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:22653
+msgid "The way in which repositories in each section are sorted."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22658
+#, fuzzy, no-wrap
+msgid "{@code{cgit-configuration} parameter} robots-list robots"
+msgstr "{parámetro de @code{cgit-configuration}} robots-list robots"
+
+#. type: deftypevr
+#: doc/guix.texi:22660
+msgid "Text used as content for the @code{robots} meta-tag."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22662
+msgid "Defaults to @samp{(\"noindex\" \"nofollow\")}."
+msgstr "El valor predeterminado es @samp{(\"noindex\" \"nofollow\")}."
+
+#. type: deftypevr
+#: doc/guix.texi:22665
+#, fuzzy, 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:22667
+msgid "Text printed below the heading on the repository index page."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22669
+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:22672
+#, fuzzy, 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:22675
+msgid "The content of the file specified with this option will be included verbatim below thef \"about\" link on the repository index page."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22680
+#, fuzzy, 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:22682
+msgid "Text printed as heading on the repository index page."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22687
+#, fuzzy, no-wrap
+msgid "{@code{cgit-configuration} parameter} boolean scan-hidden-path"
+msgstr "{parámetro de @code{cgit-configuration}} boolean scan-hidden-path"
+
+#. type: deftypevr
+#: doc/guix.texi:22693
+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 ""
+
+#. type: deftypevr
+#: doc/guix.texi:22698
+#, fuzzy, no-wrap
+msgid "{@code{cgit-configuration} parameter} list snapshots"
+msgstr "{parámetro de @code{cgit-configuration}} list snapshots"
+
+#. type: deftypevr
+#: doc/guix.texi:22701
+msgid "Text which specifies the default set of snapshot formats that cgit generates links for."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22706
+#, fuzzy, no-wrap
+msgid "{@code{cgit-configuration} parameter} repository-directory repository-directory"
+msgstr "{parámetro de @code{cgit-configuration}} repository-directory repository-directory"
+
+#. type: deftypevr
+#: doc/guix.texi:22709
+msgid "Name of the directory to scan for repositories (represents @code{scan-path})."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22711
+msgid "Defaults to @samp{\"/srv/git\"}."
+msgstr "El valor predeterminado es @samp{\"/srv/git\"}."
+
+#. type: deftypevr
+#: doc/guix.texi:22714
+#, fuzzy, no-wrap
+msgid "{@code{cgit-configuration} parameter} string section"
+msgstr "{parámetro de @code{cgit-configuration}} string section"
+
+#. type: deftypevr
+#: doc/guix.texi:22717 doc/guix.texi:23033
+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:22722
+#, fuzzy, 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:22725
+msgid "Flag which, when set to @samp{1}, will sort the sections on the repository listing by name."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22730
+#, fuzzy, no-wrap
+msgid "{@code{cgit-configuration} parameter} integer section-from-path"
+msgstr "{parámetro de @code{cgit-configuration}} integer section-from-path"
+
+#. type: deftypevr
+#: doc/guix.texi:22733
+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:22738
+#, fuzzy, no-wrap
+msgid "{@code{cgit-configuration} parameter} boolean side-by-side-diffs?"
+msgstr "{parámetro de @code{cgit-configuration}} boolean side-by-side-diffs?"
+
+#. type: deftypevr
+#: doc/guix.texi:22741
+msgid "If set to @samp{#t} shows side-by-side diffs instead of unidiffs per default."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22746
+#, fuzzy, no-wrap
+msgid "{@code{cgit-configuration} parameter} file-object source-filter"
+msgstr "{parámetro de @code{cgit-configuration}} file-object source-filter"
+
+#. type: deftypevr
+#: doc/guix.texi:22749
+msgid "Specifies a command which will be invoked to format plaintext blobs in the tree view."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22754
+#, fuzzy, 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:22757
+msgid "Specifies the number of branches to display in the repository \"summary\" view."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22762
+#, fuzzy, 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:22765
+msgid "Specifies the number of log entries to display in the repository \"summary\" view."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22770
+#, fuzzy, no-wrap
+msgid "{@code{cgit-configuration} parameter} integer summary-tags"
+msgstr "{parámetro de @code{cgit-configuration}} integer summary-tags"
+
+#. type: deftypevr
+#: doc/guix.texi:22773
+msgid "Specifies the number of tags to display in the repository \"summary\" view."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22778
+#, fuzzy, 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:22781
+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:22786
+#, fuzzy, 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:22788
+msgid "URL which, if specified, will be used as root for all cgit links."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22790
+msgid "Defaults to @samp{\"/\"}."
+msgstr "El valor predeterminado es @samp{\"/\"}."
+
+#. type: deftypevr
+#: doc/guix.texi:22793
+#, fuzzy, no-wrap
+msgid "{@code{cgit-configuration} parameter} repository-cgit-configuration-list repositories"
+msgstr "{parámetro de @code{cgit-configuration}} repository-cgit-configuration-list repositories"
+
+#. type: deftypevr
+#: doc/guix.texi:22795
+msgid "A list of @dfn{cgit-repo} records to use with config."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22799
+msgid "Available @code{repository-cgit-configuration} fields are:"
+msgstr "Los campos disponibles de @code{repository-cgit-configuration} son:"
+
+#. type: deftypevr
+#: doc/guix.texi:22800
+#, fuzzy, no-wrap
+msgid "{@code{repository-cgit-configuration} parameter} repo-list snapshots"
+msgstr "{parámetro de @code{repository-cgit-configuration}} repo-list snapshots"
+
+#. type: deftypevr
+#: doc/guix.texi:22803
+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:22808
+#, fuzzy, 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:22810
+msgid "Override the default @code{source-filter}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22815
+#, fuzzy, 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:22817
+msgid "The relative URL used to access the repository."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22822
+#, fuzzy, 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"
+
+#. type: deftypevr
+#: doc/guix.texi:22824
+msgid "Override the default @code{about-filter}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22829
+#, fuzzy, 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:22832
+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:22837
+#, fuzzy, 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:22839
+msgid "A list of URLs which can be used to clone repo."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22844
+#, fuzzy, 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"
+
+#. type: deftypevr
+#: doc/guix.texi:22846
+msgid "Override the default @code{commit-filter}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22851
+#, fuzzy, 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:22860
+#, fuzzy, no-wrap
+msgid "{@code{repository-cgit-configuration} parameter} repo-string defbranch"
+msgstr "{parámetro de @code{repository-cgit-configuration}} repo-string defbranch"
+
+#. type: deftypevr
+#: doc/guix.texi:22865
+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:22870
+#, fuzzy, 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:22872
+msgid "The value to show as repository description."
+msgstr "El valor a mostrar como descripción del repositorio."
+
+#. type: deftypevr
+#: doc/guix.texi:22877
+#, fuzzy, 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:22879
+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:22884
+#, fuzzy, 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"
+
+#. type: deftypevr
+#: doc/guix.texi:22886
+msgid "Override the default @code{email-filter}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22891
+#, fuzzy, 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:22894
+msgid "A flag which can be used to disable the global setting @code{enable-commit-graph?}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22899
+#, fuzzy, 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:22902
+msgid "A flag which can be used to disable the global setting @code{enable-log-filecount?}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22907
+#, fuzzy, 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:22910
+msgid "A flag which can be used to disable the global setting @code{enable-log-linecount?}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22915
+#, fuzzy, 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:22923
+#, fuzzy, 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:22926
+msgid "A flag which can be used to override the global setting @code{enable-subject-links?}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22931
+#, fuzzy, 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:22934
+msgid "A flag which can be used to override the global setting @code{enable-html-serving?}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22939
+#, fuzzy, 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:22942
+msgid "Flag which, when set to @code{#t}, hides the repository from the repository index."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22947
+#, fuzzy, 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:22949
+msgid "Flag which, when set to @samp{#t}, ignores the repository."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22954
+#, fuzzy, 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:22957
+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:22962
+#, fuzzy, 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:22969
+#, fuzzy, 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"
+
+#. type: deftypevr
+#: doc/guix.texi:22971
+msgid "Override the default @code{owner-filter}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22976
+#, fuzzy, 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:22980
+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:22985
+#, fuzzy, no-wrap
+msgid "{@code{repository-cgit-configuration} parameter} module-link-path module-link-path"
+msgstr "{parámetro de @code{repository-cgit-configuration}} module-link-path module-link-path"
+
+#. type: deftypevr
+#: doc/guix.texi:22989
+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:22994
+#, fuzzy, no-wrap
+msgid "{@code{repository-cgit-configuration} parameter} repo-string max-stats"
+msgstr "{parámetro de @code{repository-cgit-configuration}} repo-string max-stats"
+
+#. type: deftypevr
+#: doc/guix.texi:22996
+msgid "Override the default maximum statistics period."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:23001
+#, fuzzy, 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:23003
+msgid "The value to show as repository name."
+msgstr "El valor a mostrar como nombre del repositorio."
+
+#. type: deftypevr
+#: doc/guix.texi:23008
+#, fuzzy, 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:23010
+msgid "A value used to identify the owner of the repository."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:23015
+#, fuzzy, 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:23017
+msgid "An absolute path to the repository directory."
+msgstr "La ruta absoluta al directorio del repositorio."
+
+#. type: deftypevr
+#: doc/guix.texi:23022
+#, fuzzy, no-wrap
+msgid "{@code{repository-cgit-configuration} parameter} repo-string readme"
+msgstr "{parámetro de @code{repository-cgit-configuration}} repo-string readme"
+
+#. type: deftypevr
+#: doc/guix.texi:23025
+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:23030
+#, fuzzy, 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:23038
+#, fuzzy, 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:23040 doc/guix.texi:23049
+msgid "Extra options will be appended to cgitrc file."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:23047
+#, fuzzy, no-wrap
+msgid "{@code{cgit-configuration} parameter} list extra-options"
+msgstr "{parámetro de @code{cgit-configuration}} list extra-options"
+
+#. type: Plain text
+#: doc/guix.texi:23061
+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:23063
+msgid "Available @code{opaque-cgit-configuration} fields are:"
+msgstr "Los campos disponibles de @code{opaque-cgit-configuration} son:"
+
+#. type: deftypevr
+#: doc/guix.texi:23064
+#, fuzzy, 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:23066
+msgid "The cgit package."
+msgstr "El paquete cgit."
+
+#. type: deftypevr
+#: doc/guix.texi:23068
+#, fuzzy, 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:23070
+msgid "The contents of the @code{cgitrc}, as a string."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:23074
+msgid "For example, if your @code{cgitrc} is just the empty string, you could instantiate a cgit service like this:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:23079
+#, no-wrap
+msgid ""
+"(service cgit-service-type\n"
+"         (opaque-cgit-configuration\n"
+"          (cgitrc \"\")))\n"
+msgstr ""
+"(service cgit-service-type\n"
+"         (opaque-cgit-configuration\n"
+"          (cgitrc \"\")))\n"
+
+#. type: subsubheading
+#: doc/guix.texi:23081
+#, no-wrap
+msgid "Gitolite Service"
+msgstr "Servicio Gitolite"
+
+#. type: cindex
+#: doc/guix.texi:23083
+#, no-wrap
+msgid "Gitolite service"
+msgstr "servicio Gitolite"
+
+#. type: cindex
+#: doc/guix.texi:23084
+#, no-wrap
+msgid "Git, hosting"
+msgstr "Git, alojamiento"
+
+#. type: Plain text
+#: doc/guix.texi:23087
+msgid "@uref{http://gitolite.com/gitolite/, Gitolite} is a tool for hosting Git repositories on a central server."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:23090
+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:23093
+msgid "The following example will configure Gitolite using the default @code{git} user, and the provided SSH public key."
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:23100
+#, no-wrap
+msgid ""
+"(service gitolite-service-type\n"
+"         (gitolite-configuration\n"
+"           (admin-pubkey (plain-file\n"
+"                           \"yourname.pub\"\n"
+"                           \"ssh-rsa AAAA... guix@@example.com\"))))\n"
+msgstr ""
+"(service gitolite-service-type\n"
+"         (gitolite-configuration\n"
+"           (admin-pubkey (plain-file\n"
+"                           \"sunombre.pub\"\n"
+"                           \"ssh-rsa AAAA... guix@@example.com\"))))\n"
+
+#. type: Plain text
+#: doc/guix.texi:23105
+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:23108
+#, 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:23114
+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:23115
+#, no-wrap
+msgid "{Data Type} gitolite-configuration"
+msgstr "{Tipo de datos} gitolite-configuration"
+
+#. type: deftp
+#: doc/guix.texi:23117
+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:23119
+#, no-wrap
+msgid "@code{package} (default: @var{gitolite})"
+msgstr "@code{package} (predeterminado: @var{gitolite})"
+
+#. type: table
+#: doc/guix.texi:23121
+msgid "Gitolite package to use."
+msgstr "Paquete Gitolite usado."
+
+#. type: item
+#: doc/guix.texi:23122
+#, no-wrap
+msgid "@code{user} (default: @var{git})"
+msgstr "@code{user} (predeterminado: @var{git})"
+
+#. type: table
+#: doc/guix.texi:23125
+msgid "User to use for Gitolite.  This will be user that you use when accessing Gitolite over SSH."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:23126
+#, no-wrap
+msgid "@code{group} (default: @var{git})"
+msgstr "@code{group} (predeterminado: @var{git})"
+
+#. type: table
+#: doc/guix.texi:23128
+msgid "Group to use for Gitolite."
+msgstr "Grupo usado por Gitolite."
+
+#. type: item
+#: doc/guix.texi:23129
+#, 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:23131
+msgid "Directory in which to store the Gitolite configuration and repositories."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:23132
+#, 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:23135
+msgid "A ``file-like'' object (@pxref{G-Expressions, file-like objects}), representing the configuration for Gitolite."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:23136
+#, no-wrap
+msgid "@code{admin-pubkey} (default: @var{#f})"
+msgstr "@code{admin-pubkey} (predeterminada: @var{#f})"
+
+#. type: table
+#: doc/guix.texi:23140
+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:23142
+msgid "To specify the SSH key as a string, use the @code{plain-file} function."
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:23145
+#, no-wrap
+msgid "(plain-file \"yourname.pub\" \"ssh-rsa AAAA... guix@@example.com\")\n"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:23150
+#, no-wrap
+msgid "{Data Type} gitolite-rc-file"
+msgstr "{Tipo de datos} gitolite-rc-file"
+
+#. type: deftp
+#: doc/guix.texi:23152
+msgid "Data type representing the Gitolite RC file."
+msgstr "Tipo de datos que representa el fichero RC de Gitolite."
+
+#. type: item
+#: doc/guix.texi:23154
+#, no-wrap
+msgid "@code{umask} (default: @code{#o0077})"
+msgstr "@code{umask} (predeterminada: @code{#o0077})"
+
+#. type: table
+#: doc/guix.texi:23157
+msgid "This controls the permissions Gitolite sets on the repositories and their contents."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:23161
+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:23162
+#, no-wrap
+msgid "@code{git-config-keys} (default: @code{\"\"})"
+msgstr "@code{git-config-keys} (predeterminadas: @code{\"\"})"
+
+#. type: table
+#: doc/guix.texi:23165
+msgid "Gitolite allows you to set git config values using the \"config\" keyword. This setting allows control over the config keys to accept."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:23166
+#, no-wrap
+msgid "@code{roles} (default: @code{'((\"READERS\" . 1) (\"WRITERS\" . ))})"
+msgstr "@code{roles} (predeterminados: @code{'((\"READERS\" . 1) (\"WRITERS\" . ))})"
+
+#. type: table
+#: doc/guix.texi:23168
+msgid "Set the role names allowed to be used by users running the perms command."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:23169
+#, no-wrap
+msgid "@code{enable} (default: @code{'(\"help\" \"desc\" \"info\" \"perms\" \"writable\" \"ssh-authkeys\" \"git-config\" \"daemon\" \"gitweb\")})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:23171
+msgid "This setting controls the commands and features to enable within Gitolite."
+msgstr ""
+
+#. type: subsubheading
+#: doc/guix.texi:23179
+#, no-wrap
+msgid "The Battle for Wesnoth Service"
+msgstr "El servicio de La batalla por Wesnoth"
+
+#. type: cindex
+#: doc/guix.texi:23180
+#, no-wrap
+msgid "wesnothd"
+msgstr "wesnothd"
+
+#. type: Plain text
+#: doc/guix.texi:23184
+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:23185
+#, no-wrap
+msgid "{Scheme Variable} wesnothd-service-type"
+msgstr "{Variable Scheme} wesnothd-service-type"
+
+#. type: defvar
+#: doc/guix.texi:23189
+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: example
+#: doc/guix.texi:23192
+#, no-wrap
+msgid "(service wesnothd-service-type)\n"
+msgstr "(service wesnothd-service-type)\n"
+
+#. type: deftp
+#: doc/guix.texi:23195
+#, no-wrap
+msgid "{Data Type} wesnothd-configuration"
+msgstr "{Tipo de datos} wesnothd-configuration"
+
+#. type: deftp
+#: doc/guix.texi:23197
+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:23199
+#, no-wrap
+msgid "@code{package} (default: @code{wesnoth-server})"
+msgstr "@code{package} (predeterminado: @code{wesnoth-server})"
+
+#. type: table
+#: doc/guix.texi:23201
+msgid "The wesnoth server package to use."
+msgstr "El paquete del servidor wesnoth usado."
+
+#. type: item
+#: doc/guix.texi:23202
+#, no-wrap
+msgid "@code{port} (default: @code{15000})"
+msgstr "@code{port} (predeterminado: @code{15000})"
+
+# FUZZY
+#. type: table
+#: doc/guix.texi:23204
+msgid "The port to bind the server to."
+msgstr "Número de puerto usado por el servidor."
+
+#. type: cindex
+#: doc/guix.texi:23210
+#, no-wrap
+msgid "fingerprint"
+msgstr "huella dactilar"
+
+#. type: subsubheading
+#: doc/guix.texi:23211
+#, no-wrap
+msgid "Fingerprint Service"
+msgstr "Servicio de huella dactilar"
+
+#. type: Plain text
+#: doc/guix.texi:23215
+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:23216
+#, no-wrap
+msgid "{Scheme Variable} fprintd-service-type"
+msgstr "{Variable Scheme} fprintd-service-type"
+
+#. type: defvr
+#: doc/guix.texi:23219
+msgid "The service type for @command{fprintd}, which provides the fingerprint reading capability."
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:23222
+#, no-wrap
+msgid "(service fprintd-service-type)\n"
+msgstr "(service fprintd-service-type)\n"
+
+#. type: cindex
+#: doc/guix.texi:23225
+#, no-wrap
+msgid "sysctl"
+msgstr "sysctl"
+
+#. type: subsubheading
+#: doc/guix.texi:23226
+#, no-wrap
+msgid "System Control Service"
+msgstr "Servicios de control del sistema"
+
+#. type: Plain text
+#: doc/guix.texi:23230
+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:23231
+#, no-wrap
+msgid "{Scheme Variable} sysctl-service-type"
+msgstr "{Variable Scheme} sysctl-service-type"
+
+#. type: defvr
+#: doc/guix.texi:23235
+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: example
+#: doc/guix.texi:23240
+#, no-wrap
+msgid ""
+"(service sysctl-service-type\n"
+"         (sysctl-configuration\n"
+"           (settings '((\"net.ipv4.ip_forward\" . \"1\")))))\n"
+msgstr ""
+"(service sysctl-service-type\n"
+"         (sysctl-configuration\n"
+"           (settings '((\"net.ipv4.ip_forward\" . \"1\")))))\n"
+
+#. type: deftp
+#: doc/guix.texi:23243
+#, no-wrap
+msgid "{Data Type} sysctl-configuration"
+msgstr "{Tipo de datos} sysctl-configuration"
+
+#. type: deftp
+#: doc/guix.texi:23245
+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:23247
+#, 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:23249
+msgid "The @command{sysctl} executable to use."
+msgstr "El ejecutable @command{sysctl} usado."
+
+#. type: item
+#: doc/guix.texi:23250
+#, no-wrap
+msgid "@code{settings} (default: @code{'()})"
+msgstr "@code{settings} (predeterminados: @code{'()})"
+
+#. type: table
+#: doc/guix.texi:23252
+msgid "An association list specifies kernel parameters and their values."
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:23255
+#, no-wrap
+msgid "pcscd"
+msgstr "pcscd"
+
+#. type: subsubheading
+#: doc/guix.texi:23256
+#, no-wrap
+msgid "PC/SC Smart Card Daemon Service"
+msgstr "Servicio del daemon de tarjetas inteligentes PC/SC"
+
+#. type: Plain text
+#: doc/guix.texi:23263
+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:23264
+#, no-wrap
+msgid "{Scheme Variable} pcscd-service-type"
+msgstr "{Variable Scheme} pcscd-service-type"
+
+#. type: defvr
+#: doc/guix.texi:23268
+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: example
+#: doc/guix.texi:23271
+#, no-wrap
+msgid "(service pcscd-service-type)\n"
+msgstr "(service pcscd-service-type)\n"
+
+#. type: deftp
+#: doc/guix.texi:23274
+#, no-wrap
+msgid "{Data Type} pcscd-configuration"
+msgstr "{Tipo de datos} pcscd-configuration"
+
+#. type: deftp
+#: doc/guix.texi:23276
+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:23278
+#, no-wrap
+msgid "@code{pcsc-lite} (default: @code{pcsc-lite})"
+msgstr "@code{pcsc-lite} (predeterminado: @code{pcsc-lite})"
+
+#. type: table
+#: doc/guix.texi:23280
+msgid "The pcsc-lite package that provides pcscd."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:23280
+#, no-wrap
+msgid "@code{usb-drivers} (default: @code{(list ccid)})"
+msgstr "@code{usb-drivers} (predeterminado: @code{(list ccid)})"
+
+#. type: table
+#: doc/guix.texi:23283
+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:23286
+#, no-wrap
+msgid "lirc"
+msgstr ""
+
+#. type: subsubheading
+#: doc/guix.texi:23287
+#, no-wrap
+msgid "Lirc Service"
+msgstr "Servicio Lirc"
+
+#. type: Plain text
+#: doc/guix.texi:23290
+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:23291
+#, no-wrap
+msgid "{Scheme Procedure} lirc-service [#:lirc lirc] @"
+msgstr "{Procedimiento Scheme} lirc-service [#:lirc lirc] @"
+
+#. type: deffn
+#: doc/guix.texi:23296
+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:23300
+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:23303
+msgid "Finally, @var{extra-options} is a list of additional command-line options passed to @command{lircd}."
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:23305
+#, no-wrap
+msgid "spice"
+msgstr "spice"
+
+#. type: subsubheading
+#: doc/guix.texi:23306
+#, no-wrap
+msgid "Spice Service"
+msgstr "Servicio Spice"
+
+#. type: Plain text
+#: doc/guix.texi:23309
+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:23310
+#, no-wrap
+msgid "{Scheme Procedure} spice-vdagent-service [#:spice-vdagent]"
+msgstr "{Procedimiento Scheme} spice-vdagent-service [#:spice-vdagent]"
+
+#. type: deffn
+#: doc/guix.texi:23314
+msgid "Returns a service that runs @url{http://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:23316
+#, no-wrap
+msgid "inputattach"
+msgstr "inputattach"
+
+#. type: subsubheading
+#: doc/guix.texi:23317
+#, no-wrap
+msgid "inputattach Service"
+msgstr "Servicio inputattach"
+
+# FUZZY
+#. type: cindex
+#: doc/guix.texi:23319
+#, no-wrap
+msgid "tablet input, for Xorg"
+msgstr "entrada de tablet, para Xorg"
+
+#. type: cindex
+#: doc/guix.texi:23320
+#, no-wrap
+msgid "touchscreen input, for Xorg"
+msgstr "entrada de pantalla táctil, para Xorg"
+
+#. type: Plain text
+#: doc/guix.texi:23324
+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:23325
+#, no-wrap
+msgid "{Scheme Variable} inputattach-service-type"
+msgstr "{Variable Scheme} inputattach-service-type"
+
+#. type: deffn
+#: doc/guix.texi:23328
+msgid "Type of a service that runs @command{inputattach} on a device and dispatches events from it."
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:23330
+#, no-wrap
+msgid "{Data Type} inputattach-configuration"
+msgstr "{Tipo de datos} inputattach-configuration"
+
+#. type: item
+#: doc/guix.texi:23332
+#, no-wrap
+msgid "@code{device-type} (default: @code{\"wacom\"})"
+msgstr "@code{device-type} (predeterminado: @code{\"wacom\"})"
+
+#. type: table
+#: doc/guix.texi:23335
+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:23336
+#, no-wrap
+msgid "@code{device} (default: @code{\"/dev/ttyS0\"})"
+msgstr "@code{device} (predeterminado: @code{\"/dev/ttyS0\"})"
+
+#. type: table
+#: doc/guix.texi:23338
+msgid "The device file to connect to the device."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:23339
+#, no-wrap
+msgid "@code{log-file} (default: @code{#f})"
+msgstr "@code{log-file} (predeterminado: @code{#f})"
+
+# FUZZY
+#. type: table
+#: doc/guix.texi:23341
+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."
+
+#. type: subsection
+#: doc/guix.texi:23344
+#, no-wrap
+msgid "Dictionary Services"
+msgstr "Servicios de diccionario"
+
+#. type: cindex
+#: doc/guix.texi:23345
+#, no-wrap
+msgid "dictionary"
+msgstr "diccionario"
+
+#. type: Plain text
+#: doc/guix.texi:23347
+msgid "The @code{(gnu services dict)} module provides the following service:"
+msgstr "El módulo @code{(gnu services dict)} proporciona el servicio siguiente:"
+
+#. type: deffn
+#: doc/guix.texi:23348
+#, no-wrap
+msgid "{Scheme Procedure} dicod-service [#:config (dicod-configuration)]"
+msgstr "{Procedimiento Scheme} dicod-service [#:config (dicod-configuration)]"
+
+#. type: deffn
+#: doc/guix.texi:23351
+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:23355
+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."
+msgstr "El parámetro opcional @var{config} especifica la configuración para @command{dicod}, que debe ser un objeto @code{<dicod-configuration>}, por defecto proporciona el diccionario colaborativo internacional de Inglés de GNU."
+
+#. type: deffn
+#: doc/guix.texi:23359
+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:23361
+#, no-wrap
+msgid "{Data Type} dicod-configuration"
+msgstr "{Tipo de datos} dicod-configuration"
+
+#. type: deftp
+#: doc/guix.texi:23363
+msgid "Data type representing the configuration of dicod."
+msgstr "Tipo de datos que representa la configuración de dicod."
+
+#. type: item
+#: doc/guix.texi:23365
+#, no-wrap
+msgid "@code{dico} (default: @var{dico})"
+msgstr "@code{dico} (predeterminado: @var{dico})"
+
+#. type: table
+#: doc/guix.texi:23367
+msgid "Package object of the GNU Dico dictionary server."
+msgstr "El objeto paquete del servidor de diccionario GNU Dico."
+
+#. type: item
+#: doc/guix.texi:23368
+#, no-wrap
+msgid "@code{interfaces} (default: @var{'(\"localhost\")})"
+msgstr "@code{interfaces} (predeterminada: @var{'(\"localhost\")})"
+
+#. type: table
+#: doc/guix.texi:23372
+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:23373
+#, no-wrap
+msgid "@code{handlers} (default: @var{'()})"
+msgstr "@code{handlers} (predeterminados: @var{'()})"
+
+#. type: table
+#: doc/guix.texi:23375
+msgid "List of @code{<dicod-handler>} objects denoting handlers (module instances)."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:23376
+#, 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:23378
+msgid "List of @code{<dicod-database>} objects denoting dictionaries to be served."
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:23381
+#, no-wrap
+msgid "{Data Type} dicod-handler"
+msgstr "{Tipo de datos} dicod-handler"
+
+# FUZZY
+#. type: deftp
+#: doc/guix.texi:23383
+#, fuzzy
+msgid "Data type representing a dictionary handler (module instance)."
+msgstr "Tipo de datos que representa un manejador de diccionario (instancia del módulo)."
+
+#. type: table
+#: doc/guix.texi:23387
+#, fuzzy
+msgid "Name of the handler (module instance)."
+msgstr "Nombre del manejador (instancia del módulo)."
+
+#. type: item
+#: doc/guix.texi:23388
+#, no-wrap
+msgid "@code{module} (default: @var{#f})"
+msgstr "@code{module} (predeterminado: @var{#f})"
+
+#. type: table
+#: doc/guix.texi:23392
+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: code{#1}
+#: doc/guix.texi:23393 doc/guix.texi:23413
+#, no-wrap
+msgid "options"
+msgstr "options"
+
+#. type: table
+#: doc/guix.texi:23395
+msgid "List of strings or gexps representing the arguments for the module handler"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:23398
+#, no-wrap
+msgid "{Data Type} dicod-database"
+msgstr "{Tipo de datos} dicod-database"
+
+#. type: deftp
+#: doc/guix.texi:23400
+msgid "Data type representing a dictionary database."
+msgstr "Tipo de datos que representa una base de datos de diccionario."
+
+#. type: table
+#: doc/guix.texi:23404
+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:23405
+#, no-wrap
+msgid "handler"
+msgstr "handler"
+
+#. type: table
+#: doc/guix.texi:23408
+msgid "Name of the dicod handler (module instance) used by this database (@pxref{Handlers,,, dico, GNU Dico Manual})."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:23409
+#, no-wrap
+msgid "@code{complex?} (default: @var{#f})"
+msgstr "@code{complex?} (predeterminado: @var{#f})"
+
+#. type: table
+#: doc/guix.texi:23412
+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:23416
+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:23419
+#, no-wrap
+msgid "{Scheme Variable} %dicod-database:gcide"
+msgstr "{Variable Scheme} %dicod-database:gcide"
+
+#. type: defvr
+#: doc/guix.texi:23422
+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:23425
+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: example
+#: doc/guix.texi:23440
+#, no-wrap
+msgid ""
+"(dicod-service #:config\n"
+"  (dicod-configuration\n"
+"   (handlers (list (dicod-handler\n"
+"                    (name \"wordnet\")\n"
+"                    (module \"dictorg\")\n"
+"                    (options\n"
+"                     (list #~(string-append \"dbdir=\" #$wordnet))))))\n"
+"   (databases (list (dicod-database\n"
+"                     (name \"wordnet\")\n"
+"                     (complex? #t)\n"
+"                     (handler \"wordnet\")\n"
+"                     (options '(\"database=wn\")))\n"
+"                    %dicod-database:gcide))))\n"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:23442
+#, no-wrap
+msgid "Docker"
+msgstr "Docker"
+
+#. type: subsubheading
+#: doc/guix.texi:23443
+#, no-wrap
+msgid "Docker Service"
+msgstr "Servicio Docker"
+
+#. type: Plain text
+#: doc/guix.texi:23446
+msgid "The @code{(gnu services docker)} module provides the following service."
+msgstr "El módulo @code{(gnu services docker)} proporciona el siguiente servicio."
+
+#. type: defvr
+#: doc/guix.texi:23447
+#, no-wrap
+msgid "{Scheme Variable} docker-service-type"
+msgstr "{Variable Scheme} docker-service-type"
+
+# FUZZY
+#. type: defvr
+#: doc/guix.texi:23452
+msgid "This is the type of the service that runs @url{http://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{http://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:23455
+#, no-wrap
+msgid "{Data Type} docker-configuration"
+msgstr "{Tipo de datos} docker-configuration"
+
+#. type: deftp
+#: doc/guix.texi:23457
+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:23460
+#, no-wrap
+msgid "@code{package} (default: @code{docker})"
+msgstr "@code{package} (predeterminado: @code{docker})"
+
+#. type: table
+#: doc/guix.texi:23462
+msgid "The Docker package to use."
+msgstr "El paquete de Docker usado."
+
+#. type: item
+#: doc/guix.texi:23463
+#, no-wrap
+msgid "@code{containerd} (default: @var{containerd})"
+msgstr "@code{containerd} (predeterminado: @var{containerd})"
+
+#. type: table
+#: doc/guix.texi:23465
+msgid "The Containerd package to use."
+msgstr "El paquete Containerd usado."
+
+#. type: cindex
+#: doc/guix.texi:23472
+#, no-wrap
+msgid "setuid programs"
+msgstr "programas con setuid"
+
+#. type: Plain text
+#: doc/guix.texi:23482
+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)."
+
+#. type: Plain text
+#: doc/guix.texi:23489
+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."
+
+#. type: Plain text
+#: doc/guix.texi:23495
+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:23498
+#, no-wrap
+msgid "#~(string-append #$shadow \"/bin/passwd\")\n"
+msgstr "#~(string-append #$shadow \"/bin/passwd\")\n"
+
+#. type: Plain text
+#: doc/guix.texi:23502
+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:23503
+#, no-wrap
+msgid "{Scheme Variable} %setuid-programs"
+msgstr "{Variable Scheme} %setuid-programs"
+
+# FUZZY
+#. type: defvr
+#: doc/guix.texi:23505
+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:23508
+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:23514
+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 estan en el almacén."
+
+#. type: cindex
+#: doc/guix.texi:23518
+#, no-wrap
+msgid "HTTPS, certificates"
+msgstr "HTTPS, certificados"
+
+#. type: cindex
+#: doc/guix.texi:23519
+#, no-wrap
+msgid "X.509 certificates"
+msgstr "certificados X.509"
+
+#. type: cindex
+#: doc/guix.texi:23520
+#, no-wrap
+msgid "TLS"
+msgstr "TLS"
+
+# FUZZY
+#. type: Plain text
+#: doc/guix.texi:23527
+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:23531
+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:23535
+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:23542
+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:23547
+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 "Fíjese que @emph{no} es parte de @var{%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:23557
+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:"
+
+#. type: example
+#: doc/guix.texi:23563
+#, no-wrap
+msgid ""
+"$ guix package -i 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 package -i 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:23568
+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:"
+
+#. type: example
+#: doc/guix.texi:23572
+#, no-wrap
+msgid ""
+"$ guix package -i nss-certs\n"
+"$ export CURL_CA_BUNDLE=\"$HOME/.guix-profile/etc/ssl/certs/ca-certificates.crt\"\n"
+msgstr ""
+"$ guix package -i nss-certs\n"
+"$ export CURL_CA_BUNDLE=\"$HOME/.guix-profile/etc/ssl/certs/ca-certificates.crt\"\n"
+
+# FUZZY
+#. type: Plain text
+#: doc/guix.texi:23576
+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:23581
+#, no-wrap
+msgid "name service switch"
+msgstr "selector de servicios de nombres"
+
+#. type: cindex
+#: doc/guix.texi:23582
+#, no-wrap
+msgid "NSS"
+msgstr "NSS"
+
+# FUZZY
+#. type: Plain text
+#: doc/guix.texi:23591
+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})."
+
+#. type: Plain text
+#: doc/guix.texi:23598
+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:23599
+#, no-wrap
+msgid "nss-mdns"
+msgstr "nss-mdns"
+
+#. type: cindex
+#: doc/guix.texi:23600
+#, no-wrap
+msgid ".local, host name lookup"
+msgstr ".local, búsqueda de nombres de máquina"
+
+#. type: Plain text
+#: doc/guix.texi:23605
+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 "Como ejemplo, la siguiente declaración configura NSS para usar el @uref{http://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: example
+#: doc/guix.texi:23609
+#, no-wrap
+msgid ""
+"(name-service-switch\n"
+"   (hosts (list %files    ;first, check /etc/hosts\n"
+"\n"
+msgstr ""
+"(name-service-switch\n"
+"   (hosts (list %files    ;primero, comprueba /etc/hosts\n"
+"\n"
+
+#. type: example
+#: doc/guix.texi:23614
+#, no-wrap
+msgid ""
+"                ;; If the above did not succeed, try\n"
+"                ;; with 'mdns_minimal'.\n"
+"                (name-service\n"
+"                  (name \"mdns_minimal\")\n"
+"\n"
+msgstr ""
+"                ;; Si lo anterior no funcionó, prueba\n"
+"                ;; con 'mdns_minimal'.\n"
+"                (name-service\n"
+"                  (name \"mdns_minimal\")\n"
+"\n"
+
+#. type: example
+#: doc/guix.texi:23620
+#, no-wrap
+msgid ""
+"                  ;; 'mdns_minimal' is authoritative for\n"
+"                  ;; '.local'.  When it returns \"not found\",\n"
+"                  ;; no need to try the next methods.\n"
+"                  (reaction (lookup-specification\n"
+"                             (not-found => return))))\n"
+"\n"
+msgstr ""
+"                  ;; 'mdns_minimal' tiene autoridad sobre\n"
+"                  ;; '.local'.  Cuando devuelve 'not-found,\n"
+"                  ;; no es necesario intentarlo con los\n"
+"                  ;; métodos siguientes.\n"
+"                  (reaction (lookup-specification\n"
+"                             (not-found => return))))\n"
+"\n"
+
+#. type: example
+#: doc/guix.texi:23624
+#, no-wrap
+msgid ""
+"                ;; Then fall back to DNS.\n"
+"                (name-service\n"
+"                  (name \"dns\"))\n"
+"\n"
+msgstr ""
+"                ;; Si no, usa DNS.\n"
+"                (name-service\n"
+"                  (name \"dns\"))\n"
+"\n"
+
+#. type: example
+#: doc/guix.texi:23628
+#, no-wrap
+msgid ""
+"                ;; Finally, try with the \"full\" 'mdns'.\n"
+"                (name-service\n"
+"                  (name \"mdns\")))))\n"
+msgstr ""
+"                ;; Finalmente, prueba con 'mdns' \"al completo\".\n"
+"                (name-service\n"
+"                  (name \"mdns\")))))\n"
+
+#. type: Plain text
+#: doc/guix.texi:23633
+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:23641
+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 "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 @var{%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:23644
+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:23645
+#, no-wrap
+msgid "{Scheme Variable} %default-nss"
+msgstr "{Variable Scheme} %default-nss"
+
+#. type: defvr
+#: doc/guix.texi:23648
+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:23650
+#, no-wrap
+msgid "{Scheme Variable} %mdns-host-lookup-nss"
+msgstr "{Variable Scheme} %mdns-host-lookup-nss"
+
+#. type: defvr
+#: doc/guix.texi:23653
+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:23663
+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}."
+
+#. type: deftp
+#: doc/guix.texi:23664
+#, no-wrap
+msgid "{Data Type} name-service-switch"
+msgstr "{Tipo de datos} name-service-switch"
+
+#. type: deftp
+#: doc/guix.texi:23669
+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:23671
+#, no-wrap
+msgid "aliases"
+msgstr "aliases"
+
+#. type: itemx
+#: doc/guix.texi:23672
+#, no-wrap
+msgid "ethers"
+msgstr "ethers"
+
+#. type: itemx
+#: doc/guix.texi:23674
+#, no-wrap
+msgid "gshadow"
+msgstr "gshadow"
+
+#. type: itemx
+#: doc/guix.texi:23675
+#, no-wrap
+msgid "hosts"
+msgstr "hosts"
+
+#. type: itemx
+#: doc/guix.texi:23676
+#, no-wrap
+msgid "initgroups"
+msgstr "initgroups"
+
+#. type: itemx
+#: doc/guix.texi:23677
+#, no-wrap
+msgid "netgroup"
+msgstr "netgroup"
+
+#. type: itemx
+#: doc/guix.texi:23678
+#, no-wrap
+msgid "networks"
+msgstr "networks"
+
+#. type: itemx
+#: doc/guix.texi:23680
+#, no-wrap
+msgid "public-key"
+msgstr "public-key"
+
+#. type: itemx
+#: doc/guix.texi:23681
+#, no-wrap
+msgid "rpc"
+msgstr "rpc"
+
+#. type: itemx
+#: doc/guix.texi:23683
+#, no-wrap
+msgid "shadow"
+msgstr "shadow"
+
+#. type: table
+#: doc/guix.texi:23686
+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:23689
+#, no-wrap
+msgid "{Data Type} name-service"
+msgstr "{Tipo de datos} name-service"
+
+#. type: deftp
+#: doc/guix.texi:23693
+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:23698
+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:23703
+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 "Fijese 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:23704
+#, no-wrap
+msgid "reaction"
+msgstr "reaction"
+
+#. type: table
+#: doc/guix.texi:23708
+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: example
+#: doc/guix.texi:23712
+#, no-wrap
+msgid ""
+"(lookup-specification (unavailable => continue)\n"
+"                      (success => return))\n"
+msgstr ""
+"(lookup-specification (unavailable => continue)\n"
+"                      (success => return))\n"
+
+#. type: Plain text
+#: doc/guix.texi:23726
+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."
+
+#. type: Plain text
+#: doc/guix.texi:23735
+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 nucleo Linux-libre deben estar disponibles en el initrd. En particular, aquñi es donde se debe enumerar los módulos que controlen realmente el disco duro deonde 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:"
+
+#. type: example
+#: doc/guix.texi:23740
+#, no-wrap
+msgid ""
+"(operating-system\n"
+"  ;; @dots{}\n"
+"  (initrd-modules (cons \"megaraid_sas\" %base-initrd-modules)))\n"
+msgstr ""
+"(operating-system\n"
+"  ;; @dots{}\n"
+"  (initrd-modules (cons \"megaraid_sas\" %base-initrd-modules)))\n"
+
+#. type: defvr
+#: doc/guix.texi:23742
+#, no-wrap
+msgid "{Scheme Variable} %base-initrd-modules"
+msgstr "{Variable Scheme} %base-initrd-modules"
+
+#. type: defvr
+#: doc/guix.texi:23744
+msgid "This is the list of kernel modules included in the initrd by default."
+msgstr "Esta es la lista de módulos del nucleo que se incluyen en el initrd predeterminado."
+
+#. type: Plain text
+#: doc/guix.texi:23752
+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:23757
+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 nucleo que deben cargarse durante el arranque, puede definir el campo @code{initrd} de la declaración de sistema operativo de esta forma:"
+
+#. type: example
+#: doc/guix.texi:23765
+#, no-wrap
+msgid ""
+"(initrd (lambda (file-systems . rest)\n"
+"          ;; Create a standard initrd but set up networking\n"
+"          ;; with the parameters QEMU expects by default.\n"
+"          (apply base-initrd file-systems\n"
+"                 #:qemu-networking? #t\n"
+"                 rest)))\n"
+msgstr ""
+"(initrd (lambda (sistemas-de-ficheros . 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"
+"                 #:qemu-networking? #t\n"
+"                 resto)))\n"
+
+# FUZZY
+# MAAV (TODO): Live... Debería traducirlo
+#. type: Plain text
+#: doc/guix.texi:23770
+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."
+
+# FUZZY
+#. type: Plain text
+#: doc/guix.texi:23777
+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 nucleo 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 nucleo 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:23782
+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:"
+
+#. type: item
+#: doc/guix.texi:23784
+#, no-wrap
+msgid "--load=@var{boot}"
+msgstr "--load=@var{arranque}"
+
+#. type: table
+#: doc/guix.texi:23787
+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."
+
+# FUZZY
+#. type: table
+#: doc/guix.texi:23791
+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:23792
+#, no-wrap
+msgid "--root=@var{root}"
+msgstr "--root=@var{raíz}"
+
+#. type: table
+#: doc/guix.texi:23796
+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."
+
+#. type: table
+#: doc/guix.texi:23800
+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:23801
+#, no-wrap
+msgid "modprobe.blacklist=@var{modules}@dots{}"
+msgstr "modprobe.blacklist=@var{módulos}@dots{}"
+
+#. type: cindex
+#: doc/guix.texi:23802
+#, no-wrap
+msgid "module, black-listing"
+msgstr "módulo, lista negra"
+
+#. type: cindex
+#: doc/guix.texi:23803
+#, no-wrap
+msgid "black list, of kernel modules"
+msgstr "lista negra, de módulos del núcleo"
+
+#. type: table
+#: doc/guix.texi:23808
+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}."
+
+#. type: item
+#: doc/guix.texi:23809
+#, no-wrap
+msgid "--repl"
+msgstr "--repl"
+
+# FUZZY
+#. type: table
+#: doc/guix.texi:23815
+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."
+
+# FUZZY
+#. type: Plain text
+#: doc/guix.texi:23821
+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."
+
+#. type: deffn
+#: doc/guix.texi:23824
+#, no-wrap
+msgid "{Scheme Procedure} raw-initrd @var{file-systems} @"
+msgstr "{Procedimiento Scheme} raw-initrd @var{sistemas-de-ficheros} @"
+
+#. type: deffn
+#: doc/guix.texi:23837
+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]\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."
+
+#. type: deffn
+#: doc/guix.texi:23843 doc/guix.texi:23867
+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."
+
+#. type: deffn
+#: doc/guix.texi:23847
+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:23850
+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á."
+
+#. type: deffn
+#: doc/guix.texi:23852
+#, no-wrap
+msgid "{Scheme Procedure} base-initrd @var{file-systems} @"
+msgstr "{Procedimiento Scheme} base-initrd @var{sistemas-de-ficheros} @"
+
+#. type: deffn
+#: doc/guix.texi:23861
+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 '()]\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}."
+
+#. type: deffn
+#: doc/guix.texi:23869
+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:23874
+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 nucleo necesarios para @var{sistemas-de-ficheros} y para las opciones proporcionadas. Módulos del nucleo 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:23881
+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:23882
+#, no-wrap
+msgid "{Scheme Procedure} expression->initrd @var{exp} @"
+msgstr "{Procedimiento Scheme} expression->initrd @var{exp} @"
+
+#. type: deffn
+#: doc/guix.texi:23888
+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\"]\n"
+"Devuelve como un objeto tipo-fichero el initrd de Linux (un archivador cpio comprimido con gzip) que contiene @var{guile} y que evalua 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:23894
+#, no-wrap
+msgid "boot loader"
+msgstr "cargador de arranque"
+
+#. type: Plain text
+#: doc/guix.texi:23901
+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:23906
+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:23907
+#, no-wrap
+msgid "{Data Type} bootloader-configuration"
+msgstr "{Tipo de datos} bootloader-configuration"
+
+#. type: deftp
+#: doc/guix.texi:23909
+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:23913
+#, no-wrap
+msgid "EFI, bootloader"
+msgstr "EFI, cargador de arranque"
+
+#. type: cindex
+#: doc/guix.texi:23914
+#, no-wrap
+msgid "UEFI, bootloader"
+msgstr "UEFI, cargador de arranque"
+
+#. type: cindex
+#: doc/guix.texi:23915
+#, no-wrap
+msgid "BIOS, bootloader"
+msgstr "BIOS, cargador de arranque"
+
+#. type: table
+#: doc/guix.texi:23919
+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 a usar, 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:23925
+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:23929
+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: cindex
+#: doc/guix.texi:23930
+#, no-wrap
+msgid "ARM, bootloaders"
+msgstr "ARM, cargadores de arranque"
+
+#. type: cindex
+#: doc/guix.texi:23931
+#, no-wrap
+msgid "AArch64, bootloaders"
+msgstr "AArch64, cargadores de arranque"
+
+#. type: table
+#: doc/guix.texi:23936
+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{http://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{http://www.denx.de/wiki/U-Boot/, cargador de arranque U-Boot}."
+
+#. type: table
+#: doc/guix.texi:23940
+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:23947
+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}."
+
+#. type: item
+#: doc/guix.texi:23948
+#, no-wrap
+msgid "@code{menu-entries} (default: @code{()})"
+msgstr "@code{menu-entries} (predeterminadas: @code{()})"
+
+# FUZZY
+#. type: table
+#: doc/guix.texi:23952
+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 vacia 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:23953
+#, no-wrap
+msgid "@code{default-entry} (default: @code{0})"
+msgstr "@code{default-entry} (predeterminada: @code{0})"
+
+#. type: table
+#: doc/guix.texi:23956
+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:23957
+#, no-wrap
+msgid "@code{timeout} (default: @code{5})"
+msgstr "@code{timeout} (predeterminado: @code{5})"
+
+#. type: table
+#: doc/guix.texi:23960
+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:23961
+#, no-wrap
+msgid "keyboard layout, for the bootloader"
+msgstr "distribución de teclado, para el gestor de arranque"
+
+#. type: table
+#: doc/guix.texi:23965
+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:23968
+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:23972
+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:23974
+#, no-wrap
+msgid "@code{theme} (default: @var{#f})"
+msgstr "@code{theme} (predeterminado: @var{#f})"
+
+#. type: table
+#: doc/guix.texi:23978
+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 describa el tema a usar. 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:23979
+#, no-wrap
+msgid "@code{terminal-outputs} (default: @code{'gfxterm})"
+msgstr "@code{terminal-outputs} (predeterminada: @code{'gfxterm})"
+
+#. type: table
+#: doc/guix.texi:23986
+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:23987
+#, no-wrap
+msgid "@code{terminal-inputs} (default: @code{'()})"
+msgstr "@code{terminal-inputs} (predeterminadas: @code{'()})"
+
+# FUZZY
+#. type: table
+#: doc/guix.texi:23995
+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 platafroma 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:23996
+#, no-wrap
+msgid "@code{serial-unit} (default: @code{#f})"
+msgstr "@code{serial-unit} (predeterminada: @code{#f})"
+
+# FUZZY
+#. type: table
+#: doc/guix.texi:24000
+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:24001
+#, no-wrap
+msgid "@code{serial-speed} (default: @code{#f})"
+msgstr "@code{serial-speed} (predeterminada: @code{#f})"
+
+# FUZZY
+#. type: table
+#: doc/guix.texi:24005
+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:24009
+#, no-wrap
+msgid "dual boot"
+msgstr "arranque dual"
+
+#. type: cindex
+#: doc/guix.texi:24010
+#, no-wrap
+msgid "boot menu"
+msgstr "menú de arranque"
+
+#. type: Plain text
+#: doc/guix.texi:24016
+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: example
+#: doc/guix.texi:24023
+#, no-wrap
+msgid ""
+"(menu-entry\n"
+"  (label \"The Other Distro\")\n"
+"  (linux \"/boot/old/vmlinux-2.6.32\")\n"
+"  (linux-arguments '(\"root=/dev/sda2\"))\n"
+"  (initrd \"/boot/old/initrd\"))\n"
+msgstr ""
+"(menu-entry\n"
+"  (label \"La otra distribución\")\n"
+"  (linux \"/boot/old/vmlinux-2.6.32\")\n"
+"  (linux-arguments '(\"root=/dev/sda2\"))\n"
+"  (initrd \"/boot/old/initrd\"))\n"
+
+#. type: Plain text
+#: doc/guix.texi:24026
+msgid "Details below."
+msgstr "Los detalles se encuentran a continuación."
+
+#. type: deftp
+#: doc/guix.texi:24027
+#, no-wrap
+msgid "{Data Type} menu-entry"
+msgstr "{Tipo de datos} menu-entry"
+
+#. type: deftp
+#: doc/guix.texi:24029
+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:24034
+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:24035
+#, no-wrap
+msgid "linux"
+msgstr "linux"
+
+#. type: table
+#: doc/guix.texi:24037
+msgid "The Linux kernel image to boot, for example:"
+msgstr "La imagen del núcleo Linux a arrancar, por ejemplo:"
+
+#. type: example
+#: doc/guix.texi:24040
+#, no-wrap
+msgid "(file-append linux-libre \"/bzImage\")\n"
+msgstr "(file-append linux-libre \"/bzImage\")\n"
+
+#. type: table
+#: doc/guix.texi:24045
+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:24048
+#, no-wrap
+msgid "\"(hd0,msdos1)/boot/vmlinuz\"\n"
+msgstr "\"(hd0,msdos1)/boot/vmlinuz\"\n"
+
+#. type: table
+#: doc/guix.texi:24052
+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:24053
+#, no-wrap
+msgid "@code{linux-arguments} (default: @code{()})"
+msgstr "@code{linux-arguments} (predeterminados: @code{()})"
+
+#. type: table
+#: doc/guix.texi:24056
+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: table
+#: doc/guix.texi:24060
+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 a usar (@pxref{G-Expressions})."
+
+#. type: item
+#: doc/guix.texi:24060
+#, no-wrap
+msgid "@code{device} (default: @code{#f})"
+msgstr "@code{device} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:24063
+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:24069
+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}."
+
+#. type: Plain text
+#: doc/guix.texi:24076
+msgid "For now only GRUB has theme support. GRUB themes are created using the @code{grub-theme} form, which is not documented yet."
+msgstr "De momento únicamente GRUB permite el uso de temas. Los temas de GRUB se crean mediante el uso de la forma @code{grub-theme}, la cual todavía no está documentada."
+
+#. type: defvr
+#: doc/guix.texi:24081
+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: defvr
+#: doc/guix.texi:24084
+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: section
+#: doc/guix.texi:24088
+#, no-wrap
+msgid "Invoking @code{guix system}"
+msgstr "Invocación de @code{guix system}"
+
+#. type: Plain text
+#: doc/guix.texi:24093
+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:24096
+#, 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"
+
+#. type: Plain text
+#: doc/guix.texi:24102
+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:"
+
+#. type: item
+#: doc/guix.texi:24104
+#, no-wrap
+msgid "search"
+msgstr "search"
+
+#. type: table
+#: doc/guix.texi:24107
+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:24119
+#, no-wrap
+msgid ""
+"$ guix system search console font\n"
+"name: console-fonts\n"
+"location: gnu/services/base.scm:729: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"
+"\n"
+msgstr ""
+"$ guix system search console font\n"
+"name: console-fonts\n"
+"location: gnu/services/base.scm:729: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"
+"\n"
+
+# FUZZY
+# TODO: Actualizar cuando se traduzca guix[-packages]
+#. type: example
+#: doc/guix.texi:24125
+#, no-wrap
+msgid ""
+"name: mingetty\n"
+"location: gnu/services/base.scm:1048: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:1048:2\n"
+"extends: shepherd-root\n"
+"description: Provide console login using the `mingetty' program.\n"
+"relevance: 2\n"
+"\n"
+
+# FUZZY
+# TODO: Actualizar cuando se traduzca guix[-packages]
+#. type: example
+#: doc/guix.texi:24132
+#, no-wrap
+msgid ""
+"name: login\n"
+"location: gnu/services/base.scm:775:2\n"
+"extends: pam\n"
+"description: Provide a console log-in service as specified by its\n"
+"+ configuration value, a `login-configuration' object.\n"
+"relevance: 2\n"
+"\n"
+msgstr ""
+"name: login\n"
+"location: gnu/services/base.scm:775:2\n"
+"extends: pam\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:24134
+#, no-wrap
+msgid "@dots{}\n"
+msgstr "@dots{}\n"
+
+#. type: table
+#: doc/guix.texi:24139
+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:24140
+#, no-wrap
+msgid "reconfigure"
+msgstr "reconfigure"
+
+# FUZZY
+# TODO
+#. type: table
+#: doc/guix.texi:24145
+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.}."
+
+#. type: table
+#: doc/guix.texi:24152
+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})."
+
+# FUZZY
+#. type: table
+#: doc/guix.texi:24158
+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:24163
+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: quotation
+#: doc/guix.texi:24171
+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: item
+#: doc/guix.texi:24173
+#, no-wrap
+msgid "switch-generation"
+msgstr "switch-generation"
+
+#. type: table
+#: doc/guix.texi:24182
+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 "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:24186
+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."
+
+#. type: table
+#: doc/guix.texi:24190
+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:24193
+#, no-wrap
+msgid "guix system switch-generation 7\n"
+msgstr "guix system switch-generation 7\n"
+
+#. type: table
+#: doc/guix.texi:24201
+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:24204
+#, no-wrap
+msgid "guix system switch-generation -- -1\n"
+msgstr "guix system switch-generation -- -1\n"
+
+# FUZZY
+#. type: table
+#: doc/guix.texi:24212
+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:24214
+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:24215
+#, no-wrap
+msgid "roll-back"
+msgstr "roll-back"
+
+#. type: table
+#: doc/guix.texi:24221
+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:24225
+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:24226
+#, no-wrap
+msgid "delete-generations"
+msgstr "delete-generations"
+
+#. type: cindex
+#: doc/guix.texi:24227
+#, no-wrap
+msgid "deleting system generations"
+msgstr "borrado de generaciones del sistema"
+
+#. type: cindex
+#: doc/guix.texi:24228
+#, no-wrap
+msgid "saving space"
+msgstr "ahorro de espacio"
+
+# FUZZY
+#. type: table
+#: doc/guix.texi:24232
+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:24236
+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:"
+
+#. type: example
+#: doc/guix.texi:24239
+#, no-wrap
+msgid "guix system delete-generations\n"
+msgstr "guix system delete-generations\n"
+
+#. type: table
+#: doc/guix.texi:24243
+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:24246
+#, no-wrap
+msgid "guix system delete-generations 2m\n"
+msgstr "guix system delete-generations 2m\n"
+
+#. type: table
+#: doc/guix.texi:24251
+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:24256
+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."
+
+#. type: item
+#: doc/guix.texi:24257
+#, no-wrap
+msgid "init"
+msgstr "init"
+
+#. type: table
+#: doc/guix.texi:24261
+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:"
+
+#. type: example
+#: doc/guix.texi:24264
+#, no-wrap
+msgid "guix system init my-os-config.scm /mnt\n"
+msgstr "guix system init mi-conf-del-so.scm /mnt\n"
+
+#. type: table
+#: doc/guix.texi:24271
+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-conf-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}."
+
+#. type: table
+#: doc/guix.texi:24275
+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:24276
+#, no-wrap
+msgid "vm"
+msgstr "vm"
+
+#. type: cindex
+#: doc/guix.texi:24277 doc/guix.texi:24545
+#, no-wrap
+msgid "virtual machine"
+msgstr "máquina virtual"
+
+#. type: cindex
+#: doc/guix.texi:24278
+#, no-wrap
+msgid "VM"
+msgstr "VM"
+
+#. type: anchor{#1}
+#: doc/guix.texi:24282
+msgid "guix system vm"
+msgstr "guix system vm"
+
+#. type: table
+#: doc/guix.texi:24282
+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)."
+
+#. type: quotation
+#: doc/guix.texi:24290
+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. Especificamente, 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:24295
+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:24298
+#, 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"
+
+#. type: table
+#: doc/guix.texi:24301
+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:24306
+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."
+
+#. type: table
+#: doc/guix.texi:24310
+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:24314
+#, no-wrap
+msgid ""
+"guix system vm my-config.scm \\\n"
+"   --expose=$HOME --share=$HOME/tmp=/exchange\n"
+msgstr ""
+"guix system vm mi-configuracion.scm \\\n"
+"   --expose=$HOME --share=$HOME/tmp=/intercambio\n"
+
+#. type: table
+#: doc/guix.texi:24319
+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:24325
+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."
+
+#. type: cindex
+#: doc/guix.texi:24326
+#, no-wrap
+msgid "System images, creation in various formats"
+msgstr "Imágenes de sistema, creación en varios formatos"
+
+#. type: cindex
+#: doc/guix.texi:24327
+#, 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:24328
+#, no-wrap
+msgid "vm-image"
+msgstr "vm-image"
+
+#. type: itemx
+#: doc/guix.texi:24329
+#, no-wrap
+msgid "disk-image"
+msgstr "disk-image"
+
+#. type: itemx
+#: doc/guix.texi:24330
+#, no-wrap
+msgid "docker-image"
+msgstr "docker-image"
+
+#. type: table
+#: doc/guix.texi:24338
+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 imagenes 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:24341
+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}."
+
+#. type: table
+#: doc/guix.texi:24345
+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:24350
+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:"
+
+#. type: example
+#: doc/guix.texi:24353
+#, 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"
+
+#. type: table
+#: doc/guix.texi:24360
+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:"
+
+#. type: example
+#: doc/guix.texi:24366
+#, 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"
+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"
+
+# FUZZY
+#. type: table
+#: doc/guix.texi:24376
+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}."
+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. 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 run}."
+
+# FUZZY
+#. type: table
+#: doc/guix.texi:24384
+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."
+
+#. type: table
+#: doc/guix.texi:24388
+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:24392
+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}:"
+
+#. type: example
+#: doc/guix.texi:24396
+#, no-wrap
+msgid ""
+"guix system container my-config.scm \\\n"
+"   --expose=$HOME --share=$HOME/tmp=/exchange\n"
+msgstr ""
+"guix system container mi-configuracion.scm \\\n"
+"   --expose=$HOME --share=$HOME/tmp=/intercambio\n"
+
+#. type: quotation
+#: doc/guix.texi:24400
+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:24407
+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:24416
+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})."
+
+# FUZZY
+#. type: table
+#: doc/guix.texi:24421
+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: item
+#: doc/guix.texi:24422
+#, no-wrap
+msgid "--derivation"
+msgstr "--derivation"
+
+#. type: table
+#: doc/guix.texi:24426
+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."
+
+#. type: item
+#: doc/guix.texi:24427
+#, no-wrap
+msgid "--file-system-type=@var{type}"
+msgstr "--file-system-type=@var{tipo}"
+
+#. type: table
+#: doc/guix.texi:24431
+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."
+
+#. type: table
+#: doc/guix.texi:24433
+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}."
+
+#. type: cindex
+#: doc/guix.texi:24434
+#, no-wrap
+msgid "ISO-9660 format"
+msgstr "ISO-9660, formato"
+
+#. type: cindex
+#: doc/guix.texi:24435
+#, no-wrap
+msgid "CD image format"
+msgstr "CD, formato de imagen"
+
+#. type: cindex
+#: doc/guix.texi:24436
+#, no-wrap
+msgid "DVD image format"
+msgstr "DVD, formato de imagen"
+
+#. type: table
+#: doc/guix.texi:24439
+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."
+
+#. type: item
+#: doc/guix.texi:24440
+#, no-wrap
+msgid "--image-size=@var{size}"
+msgstr "--image-size=@var{tamaño}"
+
+#. type: table
+#: doc/guix.texi:24445
+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:24449
+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}."
+
+#. type: item
+#: doc/guix.texi:24455
+#, no-wrap
+msgid "--skip-checks"
+msgstr "--skip-checks"
+
+#. type: table
+#: doc/guix.texi:24457
+msgid "Skip pre-installation safety checks."
+msgstr "Omite las comprobaciones de seguridad previas a la instalación."
+
+#. type: table
+#: doc/guix.texi:24464
+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."
+
+#. type: cindex
+#: doc/guix.texi:24465
+#, no-wrap
+msgid "on-error"
+msgstr "on-error"
+
+#. type: cindex
+#: doc/guix.texi:24466
+#, no-wrap
+msgid "on-error strategy"
+msgstr "estrategia «on-error»"
+
+#. type: cindex
+#: doc/guix.texi:24467
+#, no-wrap
+msgid "error strategy"
+msgstr "estrategia en caso de error"
+
+#. type: item
+#: doc/guix.texi:24468
+#, no-wrap
+msgid "--on-error=@var{strategy}"
+msgstr "--on-error=@var{estrategia}"
+
+#. type: table
+#: doc/guix.texi:24471
+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:"
+
+#. type: item
+#: doc/guix.texi:24473
+#, no-wrap
+msgid "nothing-special"
+msgstr "nothing-special"
+
+#. type: table
+#: doc/guix.texi:24475
+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:24476
+#, no-wrap
+msgid "backtrace"
+msgstr "backtrace"
+
+#. type: table
+#: doc/guix.texi:24478
+msgid "Likewise, but also display a backtrace."
+msgstr "Del mismo modo, pero también muestra la secuencia de llamadas."
+
+#. type: item
+#: doc/guix.texi:24479
+#, no-wrap
+msgid "debug"
+msgstr "debug"
+
+#. type: table
+#: doc/guix.texi:24485
+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 llamads, @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:24492
+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:24495
+#, no-wrap
+msgid "list-generations"
+msgstr "list-generations"
+
+#. type: table
+#: doc/guix.texi:24500
+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:24505
+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:24508
+#, no-wrap
+msgid "$ guix system list-generations 10d\n"
+msgstr "$ guix system list-generations 10d\n"
+
+# FUZZY
+#. type: Plain text
+#: doc/guix.texi:24515
+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:24517
+msgid "system-extension-graph"
+msgstr "system-extension-graph"
+
+#. type: item
+#: doc/guix.texi:24519
+#, no-wrap
+msgid "extension-graph"
+msgstr "extension-graph"
+
+#. type: table
+#: doc/guix.texi:24524
+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)."
+
+#. type: table
+#: doc/guix.texi:24526
+msgid "The command:"
+msgstr "La orden:"
+
+#. type: example
+#: doc/guix.texi:24529
+#, 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"
+
+#. type: table
+#: doc/guix.texi:24532
+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."
+
+#. type: anchor{#1}
+#: doc/guix.texi:24534
+msgid "system-shepherd-graph"
+msgstr "system-shepherd-graph"
+
+#. type: item
+#: doc/guix.texi:24534
+#, no-wrap
+msgid "shepherd-graph"
+msgstr "shepherd-graph"
+
+#. type: table
+#: doc/guix.texi:24539
+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."
+
+#. type: section
+#: doc/guix.texi:24543
+#, no-wrap
+msgid "Running Guix in a Virtual Machine"
+msgstr "Ejecución de Guix en una máquina virtual"
+
+#. type: Plain text
+#: doc/guix.texi:24553
+msgid "To run Guix in a virtual machine (VM), one can either use the pre-built Guix VM image distributed at @indicateurl{https://alpha.gnu.org/gnu/guix/guix-system-vm-image-@value{VERSION}.@var{system}.xz} , or 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{http://qemu.org/, QEMU emulator} can efficiently use."
+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{https://alpha.gnu.org/gnu/guix/guix-system-vm-image-@value{VERSION}.@var{sistema}.xz}, o construir su propia imagen de máquina virtual mediante el uso de @command{guix system vm-image} (@pxref{Invoking guix system}). La imagen generada está en formato qcow2, el cual el @uref{http://qemu.org/, emulador QEMU} puede usar eficientemente."
+
+#. type: cindex
+#: doc/guix.texi:24554
+#, no-wrap
+msgid "QEMU"
+msgstr "QEMU"
+
+#. type: Plain text
+#: doc/guix.texi:24561
+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:24566
+#, no-wrap
+msgid ""
+"$ qemu-system-x86_64 \\\n"
+"   -net user -net nic,model=virtio \\\n"
+"   -enable-kvm -m 256 /tmp/qemu-image\n"
+msgstr ""
+"$ qemu-system-x86_64 \\\n"
+"   -net user -net nic,model=virtio \\\n"
+"   -enable-kvm -m 256 /tmp/imagen-qemu\n"
+
+#. type: Plain text
+#: doc/guix.texi:24569
+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:24571
+#, no-wrap
+msgid "qemu-system-x86_64"
+msgstr "qemu-system-x86_64"
+
+#. type: table
+#: doc/guix.texi:24574
+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:24575
+#, no-wrap
+msgid "-net user"
+msgstr "-net user"
+
+# FUZZY FUZZY
+#. type: table
+#: doc/guix.texi:24579
+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 "Habilita la pila de red en modo de usuaria sin privilegios. El SO virtualizado puede acceder al anfitrión pero no al revés. Esta es la forma más simple de poner en línea un SO virtualizado."
+
+#. type: item
+#: doc/guix.texi:24580
+#, no-wrap
+msgid "-net nic,model=virtio"
+msgstr "-net nic,model=virtio"
+
+#. type: table
+#: doc/guix.texi:24585
+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 "Debe crear una interfaz de red del modelo proporcionado. Si la crea, el arranque fallará. Asumiendo que su plataforma hardware sea x86_64, puede obtener una lista de modelos de interfaz de red disponibles ejecutando @command{qemu-system-x86_64 -net nic,model=help}."
+
+#. type: item
+#: doc/guix.texi:24586
+#, no-wrap
+msgid "-enable-kvm"
+msgstr "-enable-kvm"
+
+#. type: table
+#: doc/guix.texi:24590
+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:24591
+#, no-wrap
+msgid "-m 256"
+msgstr "-m 256"
+
+#. type: table
+#: doc/guix.texi:24594
+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:24595
+#, no-wrap
+msgid "/tmp/qemu-image"
+msgstr "/tmp/imagen-qemu"
+
+#. type: table
+#: doc/guix.texi:24597
+msgid "The file name of the qcow2 image."
+msgstr "El nombre de fichero de la imagen qcow2."
+
+#. type: Plain text
+#: doc/guix.texi:24607
+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 "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{-net user} por defecto. 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` -net user}. Un punto importante a tener en cuenta del uso de @command{-net 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:24608
+#, no-wrap
+msgid "Connecting Through SSH"
+msgstr "Conexión a través de SSH"
+
+#. type: Plain text
+#: doc/guix.texi:24617
+msgid "To enable SSH inside a VM you need to add a SSH server like @code{(dropbear-service)} or @code{(lsh-service)} to your VM.  The @code{(lsh-service}) doesn't currently boot unsupervised.  It requires you to type some characters to initialize the randomness generator.  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{(dropbear-service)} o @code{(lsh-service)} en su máquina virtual. El servicio @code{(lsh-service)} no arranca actualmente sin supervisión, ya que precisa de entrada para inicializar el generador de aleatoriedad. Además tiene que redirigir el puerto SSH, 22 el predeterminado, a la máquina anfitriona. Puede hacerlo con"
+
+#. type: example
+#: doc/guix.texi:24620
+#, 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"
+
+#. type: Plain text
+#: doc/guix.texi:24623
+msgid "To connect to the VM you can run"
+msgstr "Para conectarse a la máquina virtual puede ejecutar"
+
+#. type: example
+#: doc/guix.texi:24626
+#, 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:24633
+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."
+
+#. type: subsection
+#: doc/guix.texi:24634
+#, no-wrap
+msgid "Using @command{virt-viewer} with Spice"
+msgstr "Uso de @command{virt-viewer} con Spice"
+
+#. type: Plain text
+#: doc/guix.texi:24640
+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:24643
+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:24649
+#, no-wrap
+msgid ""
+"-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"
+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:24652
+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}."
+
+# FUZZY
+#. type: Plain text
+#: doc/guix.texi:24659
+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:24671
+#, no-wrap
+msgid "daemons"
+msgstr "daemons"
+
+# FUZZY
+#. type: Plain text
+#: doc/guix.texi:24684
+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, @i{grosso modo}, 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:24685
+#, no-wrap
+msgid "service extensions"
+msgstr "extensiones de servicios"
+
+#. type: Plain text
+#: doc/guix.texi:24697
+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 proporcionandole 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:24701
+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:24703
+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:24704
+#, no-wrap
+msgid "system service"
+msgstr "servicio del sistema"
+
+#. type: Plain text
+#: doc/guix.texi:24712
+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:24713
+#, no-wrap
+msgid "service types"
+msgstr "tipos de servicio"
+
+#. type: Plain text
+#: doc/guix.texi:24719
+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:24722
+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:24729
+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: example
+#: doc/guix.texi:24739
+#, no-wrap
+msgid ""
+"(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"
+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:24743
+msgid "It defines three things:"
+msgstr "Define tres cosas:"
+
+#. type: enumerate
+#: doc/guix.texi:24747
+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:24752
+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:24755
+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:24758
+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:24761
+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:24763
+#, no-wrap
+msgid "shepherd-root-service-type"
+msgstr "shepherd-root-service-type"
+
+#. type: table
+#: doc/guix.texi:24768
+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:24769
+#, no-wrap
+msgid "account-service-type"
+msgstr "account-service-type"
+
+# FUZZY
+#. type: table
+#: doc/guix.texi:24774
+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:24775
+#, no-wrap
+msgid "activation-service-type"
+msgstr "activation-service-type"
+
+#. type: table
+#: doc/guix.texi:24779
+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:24782
+msgid "A service of this type is instantiated like this:"
+msgstr "Un servicio de este tipo se puede instanciar de esta manera:"
+
+#. type: example
+#: doc/guix.texi:24788
+#, no-wrap
+msgid ""
+"(service guix-service-type\n"
+"         (guix-configuration\n"
+"           (build-accounts 5)\n"
+"           (use-substitutes? #f)))\n"
+msgstr ""
+"(service guix-service-type\n"
+"         (guix-configuration\n"
+"           (build-accounts 5)\n"
+"           (use-substitutes? #f)))\n"
+
+#. type: Plain text
+#: doc/guix.texi:24796
+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: example
+#: doc/guix.texi:24799
+#, no-wrap
+msgid "(service guix-service-type)\n"
+msgstr "(service guix-service-type)\n"
+
+#. type: Plain text
+#: doc/guix.texi:24803
+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:24807
+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: example
+#: doc/guix.texi:24814
+#, no-wrap
+msgid ""
+"(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"
+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: example
+#: doc/guix.texi:24822
+#, no-wrap
+msgid ""
+"                (compose concatenate)       ;concatenate the list of rules\n"
+"                (extend (lambda (config rules)\n"
+"                          (match config\n"
+"                            (($ <udev-configuration> udev initial-rules)\n"
+"                             (udev-configuration\n"
+"                              (udev udev)   ;the udev package to use\n"
+"                              (rules (append initial-rules rules)))))))))\n"
+msgstr ""
+"                (compose concatenate)       ;concatena la lista de reglas\n"
+"                (extend (lambda (config rules)\n"
+"                          (match config\n"
+"                            (($ <udev-configuration> udev initial-rules)\n"
+"                             (udev-configuration\n"
+"                              (udev udev)   ;el paquete udev a usar\n"
+"                              (rules (append initial-rules rules)))))))))\n"
+
+#. type: Plain text
+#: doc/guix.texi:24828
+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:24830
+#, no-wrap
+msgid "compose"
+msgstr "compose"
+
+#. type: table
+#: doc/guix.texi:24833
+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:24836
+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 simplemente concatenandolas."
+
+#. type: item
+#: doc/guix.texi:24837
+#, no-wrap
+msgid "extend"
+msgstr "extend"
+
+# FUZZY
+#. type: table
+#: doc/guix.texi:24840
+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:24845
+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:24851
+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:24856
+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:24859
+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:24867
+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:24868
+#, no-wrap
+msgid "{Scheme Procedure} service @var{type} [@var{value}]"
+msgstr "{Procedimiento Scheme} service @var{tipo} [@var{valor}]"
+
+#. type: deffn
+#: doc/guix.texi:24872
+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; represental los parámetros de esta instancia de servicio particular."
+
+#. type: deffn
+#: doc/guix.texi:24876
+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:24878
+msgid "For instance, this:"
+msgstr "Por ejemplo, esto:"
+
+#. type: example
+#: doc/guix.texi:24881
+#, no-wrap
+msgid "(service openssh-service-type)\n"
+msgstr "(service openssh-service-type)\n"
+
+#. type: deffn
+#: doc/guix.texi:24885
+msgid "is equivalent to this:"
+msgstr "es equivalente a esto:"
+
+#. type: example
+#: doc/guix.texi:24889
+#, 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:24893
+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:24895
+#, no-wrap
+msgid "{Scheme Procedure} service? @var{obj}"
+msgstr "{Procedimiento Scheme} service? @var{obj}"
+
+#. type: deffn
+#: doc/guix.texi:24897
+msgid "Return true if @var{obj} is a service."
+msgstr "Devuelve verdadero si @var{obj} es un servicio."
+
+#. type: deffn
+#: doc/guix.texi:24899
+#, no-wrap
+msgid "{Scheme Procedure} service-kind @var{service}"
+msgstr "{Procedimiento Scheme} service-kind @var{servicio}"
+
+#. type: deffn
+#: doc/guix.texi:24901
+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:24903
+#, no-wrap
+msgid "{Scheme Procedure} service-value @var{service}"
+msgstr "{Procedimiento Scheme} service-value @var{servicio}"
+
+#. type: deffn
+#: doc/guix.texi:24906
+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:24909
+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: example
+#: doc/guix.texi:24918
+#, no-wrap
+msgid ""
+"(define s\n"
+"  (service nginx-service-type\n"
+"           (nginx-configuration\n"
+"            (nginx nginx)\n"
+"            (log-directory log-directory)\n"
+"            (run-directory run-directory)\n"
+"            (file config-file))))\n"
+"\n"
+msgstr ""
+"(define s\n"
+"  (service nginx-service-type\n"
+"           (nginx-configuration\n"
+"            (nginx nginx)\n"
+"            (log-directory log-directory)\n"
+"            (run-directory run-directory)\n"
+"            (file config-file))))\n"
+"\n"
+
+#. type: example
+#: doc/guix.texi:24921
+#, no-wrap
+msgid ""
+"(service? s)\n"
+"@result{} #t\n"
+"\n"
+msgstr ""
+"(service? s)\n"
+"@result{} #t\n"
+"\n"
+
+#. type: example
+#: doc/guix.texi:24924
+#, no-wrap
+msgid ""
+"(eq? (service-kind s) nginx-service-type)\n"
+"@result{} #t\n"
+msgstr ""
+"(eq? (service-kind s) nginx-service-type)\n"
+"@result{} #t\n"
+
+#. type: Plain text
+#: doc/guix.texi:24934
+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:24935
+#, no-wrap
+msgid "{Scheme Syntax} modify-services @var{services} @"
+msgstr "{Sintaxis Scheme} modify-services @var{servicios} @"
+
+#. type: deffn
+#: doc/guix.texi:24937
+msgid "(@var{type} @var{variable} => @var{body}) @dots{}"
+msgstr "(@var{tipo} @var{variable} => @var{cuerpo}) @dots{}"
+
+#. type: deffn
+#: doc/guix.texi:24940
+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:24943
+#, no-wrap
+msgid "(@var{type} @var{variable} => @var{body})\n"
+msgstr "(@var{tipo} @var{variable} => @var{cuerpo})\n"
+
+#. type: deffn
+#: doc/guix.texi:24950
+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:24957
+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:24959
+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:24966
+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:24967
+#, no-wrap
+msgid "{Data Type} service-type"
+msgstr "{Tipo de datos} service-type"
+
+#. type: cindex
+#: doc/guix.texi:24968
+#, no-wrap
+msgid "service type"
+msgstr "tipo de servicio"
+
+#. type: deftp
+#: doc/guix.texi:24971
+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:24975
+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:24976
+#, no-wrap
+msgid "extensions"
+msgstr "extensions"
+
+#. type: table
+#: doc/guix.texi:24978
+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:24979
+#, no-wrap
+msgid "@code{compose} (default: @code{#f})"
+msgstr "@code{compose} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:24983
+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:24987
+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:24988
+#, no-wrap
+msgid "@code{extend} (default: @code{#f})"
+msgstr "@code{extend} (predeterminado: @code{#f})"
+
+#. type: table
+#: doc/guix.texi:24990
+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:24996
+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: deftp
+#: doc/guix.texi:24999
+msgid "@xref{Service Types and Services}, for examples."
+msgstr "@xref{Service Types and Services}, para ejemplos."
+
+#. type: deffn
+#: doc/guix.texi:25001
+#, no-wrap
+msgid "{Scheme Procedure} service-extension @var{target-type} @"
+msgstr "{Procedimiento Scheme} service-extension @var{tipo-deseado} @"
+
+#. type: deffn
+#: doc/guix.texi:25007
+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"
+"\n"
+"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:25009
+#, no-wrap
+msgid "{Scheme Procedure} service-extension? @var{obj}"
+msgstr "{Procedimiento Scheme} service-extension? @var{obj}"
+
+#. type: deffn
+#: doc/guix.texi:25011
+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:25017
+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:25018
+#, 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:25022
+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:25025
+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: example
+#: doc/guix.texi:25029
+#, no-wrap
+msgid ""
+"(simple-service 'my-mcron-job mcron-service-type\n"
+"                #~(job '(next-hour (3)) \"guix gc -F 2G\"))\n"
+msgstr ""
+"(simple-service 'mi-tarea-mcron mcron-service-type\n"
+"                #~(job '(next-hour (3)) \"guix gc -F 2G\"))\n"
+
+#. type: Plain text
+#: doc/guix.texi:25039
+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:25040
+#, no-wrap
+msgid "{Scheme Procedure} fold-services @var{services} @"
+msgstr "{Procedimiento Scheme} fold-services @var{servicios} @"
+
+# FUZZY
+# MAAV (TODO): Repensar
+#. type: deffn
+#: doc/guix.texi:25044
+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:25048
+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:25049
+#, no-wrap
+msgid "{Scheme Variable} system-service-type"
+msgstr "{Variable Scheme} system-service-type"
+
+#. type: defvr
+#: doc/guix.texi:25052
+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:25054
+#, no-wrap
+msgid "{Scheme Variable} boot-service-type"
+msgstr "{Variable Scheme} boot-service-type"
+
+#. type: defvr
+#: doc/guix.texi:25057
+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."
+
+#. type: defvr
+#: doc/guix.texi:25059
+#, no-wrap
+msgid "{Scheme Variable} etc-service-type"
+msgstr "{Variable Scheme} etc-service-type"
+
+#. type: defvr
+#: doc/guix.texi:25063
+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:"
+
+#. type: example
+#: doc/guix.texi:25066
+#, 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:25070
+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 ejecto sería la adición de un fichero @file{/etc/issue} que apunta al fichero proporcionado."
+
+#. type: defvr
+#: doc/guix.texi:25072
+#, no-wrap
+msgid "{Scheme Variable} setuid-program-service-type"
+msgstr "{Variable Scheme} setuid-program-service-type"
+
+#. type: defvr
+#: doc/guix.texi:25076
+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})."
+
+#. type: defvr
+#: doc/guix.texi:25078
+#, no-wrap
+msgid "{Scheme Variable} profile-service-type"
+msgstr "{Variable Scheme} profile-service-type"
+
+#. type: defvr
+#: doc/guix.texi:25082
+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: cindex
+#: doc/guix.texi:25088
+#, no-wrap
+msgid "shepherd services"
+msgstr "servicios de shepherd"
+
+#. type: cindex
+#: doc/guix.texi:25089
+#, no-wrap
+msgid "PID 1"
+msgstr "PID 1"
+
+#. type: cindex
+#: doc/guix.texi:25090
+#, no-wrap
+msgid "init system"
+msgstr "sistema de inicio"
+
+#. type: Plain text
+#: doc/guix.texi:25096
+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:25102
+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:"
+
+#. type: Plain text
+#: doc/guix.texi:25104
+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:25108
+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:25112
+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:25113
+#, no-wrap
+msgid "{Data Type} shepherd-service"
+msgstr "{Tipo de datos} shepherd-service"
+
+#. type: deftp
+#: doc/guix.texi:25115
+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:25117
+#, no-wrap
+msgid "provision"
+msgstr "provision"
+
+#. type: table
+#: doc/guix.texi:25119
+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:25124
+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:25125
+#, no-wrap
+msgid "@code{requirements} (default: @code{'()})"
+msgstr "@code{requirements} (predeterminados: @code{'()})"
+
+#. type: table
+#: doc/guix.texi:25127
+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:25128
+#, no-wrap
+msgid "one-shot services, for the Shepherd"
+msgstr "servicios one-shot, para Shepherd"
+
+#. type: table
+#: doc/guix.texi:25133
+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:25134
+#, no-wrap
+msgid "@code{respawn?} (default: @code{#t})"
+msgstr "@code{respawn?} (predeterminado: @code{#t})"
+
+# FUZZY
+#. type: table
+#: doc/guix.texi:25137
+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:25138
+#, no-wrap
+msgid "start"
+msgstr "start"
+
+#. type: itemx
+#: doc/guix.texi:25139
+#, no-wrap
+msgid "@code{stop} (default: @code{#~(const #f)})"
+msgstr "@code{stop} (predeterminado: @code{#~(const #f)})"
+
+#. type: table
+#: doc/guix.texi:25145
+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})."
+
+#. type: item
+#: doc/guix.texi:25146
+#, no-wrap
+msgid "@code{actions} (default: @code{'()})"
+msgstr "@code{actions} (predeterminadas: @code{'()})"
+
+#. type: cindex
+#: doc/guix.texi:25147
+#, no-wrap
+msgid "actions, of Shepherd services"
+msgstr "acciones, de servicios de Shepherd"
+
+#. type: table
+#: doc/guix.texi:25152
+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:25155
+#, 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: table
+#: doc/guix.texi:25159
+msgid "A documentation string, as shown when running:"
+msgstr "Una cadena de documentación, que se mostrará al ejecutar:"
+
+#. type: example
+#: doc/guix.texi:25162
+#, no-wrap
+msgid "herd doc @var{service-name}\n"
+msgstr "herd doc @var{nombre-del-servicio}\n"
+
+#. type: table
+#: doc/guix.texi:25166
+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:25167
+#, no-wrap
+msgid "@code{modules} (default: @code{%default-modules})"
+msgstr "@code{modules} (predeterminados: @code{%default-modules})"
+
+#. type: table
+#: doc/guix.texi:25170
+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:25174
+#, no-wrap
+msgid "{Data Type} shepherd-action"
+msgstr "{Tipo de datos} shepherd-action"
+
+# FUZZY
+#. type: deftp
+#: doc/guix.texi:25177
+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:25181
+msgid "Symbol naming the action."
+msgstr "Símbolo que nombra la acción."
+
+#. type: table
+#: doc/guix.texi:25184
+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:25187
+#, 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:25189
+#, no-wrap
+msgid "procedure"
+msgstr "procedure"
+
+#. type: table
+#: doc/guix.texi:25193
+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 evalua 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:25197
+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: example
+#: doc/guix.texi:25206
+#, no-wrap
+msgid ""
+"(shepherd-action\n"
+"  (name 'say-hello)\n"
+"  (documentation \"Say hi!\")\n"
+"  (procedure #~(lambda (running . args)\n"
+"                 (format #t \"Hello, friend! arguments: ~s\\n\"\n"
+"                         args)\n"
+"                 #t)))\n"
+msgstr ""
+"(shepherd-action\n"
+"  (name 'di-hola)\n"
+"  (documentation \"¡Di hola!\")\n"
+"  (procedure #~(lambda (running . args)\n"
+"                 (format #t \"¡Hola, compa! parámetros: ~s\\n\"\n"
+"                         args)\n"
+"                 #t)))\n"
+
+#. type: deftp
+#: doc/guix.texi:25209
+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:25215
+#, no-wrap
+msgid ""
+"# herd say-hello example\n"
+"Hello, friend! arguments: ()\n"
+"# herd say-hello example a b c\n"
+"Hello, friend! arguments: (\"a\" \"b\" \"c\")\n"
+msgstr ""
+"# herd di-hola ejemplo\n"
+"¡Hola, compa! parámetros: ()\n"
+"# herd di-hola ejemplo a b c\n"
+"¡Hola, compa! parámetros: (\"a\" \"b\" \"c\")\n"
+
+#. type: deftp
+#: doc/guix.texi:25220
+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:25222
+#, no-wrap
+msgid "{Scheme Variable} shepherd-root-service-type"
+msgstr "{Variable Scheme} shepherd-root-service-type"
+
+#. type: defvr
+#: doc/guix.texi:25224
+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:25228
+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:25230
+#, no-wrap
+msgid "{Scheme Variable} %shepherd-root-service"
+msgstr "{Variable Scheme} %shepherd-root-service"
+
+#. type: defvr
+#: doc/guix.texi:25232
+msgid "This service represents PID@tie{}1."
+msgstr "Este servicio representa el PID@tie{}1."
+
+#. type: cindex
+#: doc/guix.texi:25238
+#, no-wrap
+msgid "documentation, searching for"
+msgstr "documentación, búsqueda"
+
+#. type: cindex
+#: doc/guix.texi:25239
+#, no-wrap
+msgid "searching for documentation"
+msgstr "búsqueda de documentación"
+
+#. type: cindex
+#: doc/guix.texi:25240
+#, no-wrap
+msgid "Info, documentation format"
+msgstr "Info, formato de documentación"
+
+#. type: cindex
+#: doc/guix.texi:25241
+#, no-wrap
+msgid "man pages"
+msgstr "páginas man"
+
+#. type: cindex
+#: doc/guix.texi:25242
+#, no-wrap
+msgid "manual pages"
+msgstr "páginas de manual"
+
+#. type: Plain text
+#: doc/guix.texi:25249
+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:25253
+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:25261
+#, no-wrap
+msgid ""
+"$ 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"
+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:25265
+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:25271
+#, no-wrap
+msgid ""
+"$ man -k TLS\n"
+"SSL (7)              - OpenSSL SSL/TLS library\n"
+"certtool (1)         - GnuTLS certificate tool\n"
+"@dots {}\n"
+msgstr ""
+"$ man -k TLS\n"
+"SSL (7)              - OpenSSL SSL/TLS library\n"
+"certtool (1)         - GnuTLS certificate tool\n"
+"@dots {}\n"
+
+#. type: Plain text
+#: doc/guix.texi:25277
+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:25280
+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:25283
+#, no-wrap
+msgid "$ info \"(gnutls)Core TLS API\"\n"
+msgstr "$ info \"(gnutls)Core TLS API\"\n"
+
+#. type: Plain text
+#: doc/guix.texi:25287
+msgid "or:"
+msgstr "o:"
+
+#. type: example
+#: doc/guix.texi:25290
+#, no-wrap
+msgid "$ man certtool\n"
+msgstr "$ man certtool\n"
+
+#. type: Plain text
+#: doc/guix.texi:25298
+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:25302
+#, no-wrap
+msgid "debugging files"
+msgstr "ficheros de depuración"
+
+#. type: Plain text
+#: doc/guix.texi:25308
+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:25316
+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:25323
+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})."
+
+#. type: Plain text
+#: doc/guix.texi:25331
+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:25334
+#, no-wrap
+msgid "guix package -i glibc:debug guile:debug\n"
+msgstr "guix package -i glibc:debug guile:debug\n"
+
+#. type: Plain text
+#: doc/guix.texi:25340
+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}):"
+
+#. type: example
+#: doc/guix.texi:25343
+#, 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:25347
+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}."
+
+#. type: Plain text
+#: doc/guix.texi:25354
+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:25363
+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})."
+
+#. type: cindex
+#: doc/guix.texi:25368
+#, no-wrap
+msgid "security updates"
+msgstr "actualizaciones de seguridad"
+
+#. type: Plain text
+#: doc/guix.texi:25377
+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 parchearse. 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:"
+
+# FUZZY
+# TODO: Actualizar con la traducción del cliente
+#. type: smallexample
+#: doc/guix.texi:25384
+#, no-wrap
+msgid ""
+"$ guix lint -c cve\n"
+"gnu/packages/base.scm:652:2: glibc@@2.21: probably vulnerable to CVE-2015-1781, CVE-2015-7547\n"
+"gnu/packages/gcc.scm:334:2: gcc@@4.9.3: probably vulnerable to CVE-2015-5276\n"
+"gnu/packages/image.scm:312:2: openjpeg@@2.1.0: probably vulnerable to CVE-2016-1923, CVE-2016-1924\n"
+"@dots{}\n"
+msgstr ""
+"$ guix lint -c cve\n"
+"gnu/packages/base.scm:652:2: glibc@@2.21: probably vulnerable to CVE-2015-1781, CVE-2015-7547\n"
+"gnu/packages/gcc.scm:334:2: gcc@@4.9.3: probably vulnerable to CVE-2015-5276\n"
+"gnu/packages/image.scm:312:2: openjpeg@@2.1.0: probably vulnerable to CVE-2016-1923, CVE-2016-1924\n"
+"@dots{}\n"
+
+#. type: Plain text
+#: doc/guix.texi:25387
+msgid "@xref{Invoking guix lint}, for more information."
+msgstr "@xref{Invoking guix lint}, para más información."
+
+#. type: quotation
+#: doc/guix.texi:25391
+msgid "As of version @value{VERSION}, the feature described below is considered ``beta''."
+msgstr "En la versión @value{VERSION}, esta característica descrita a continuación se considera en estado ``beta''."
+
+#. type: Plain text
+#: doc/guix.texi:25401
+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:25402
+#, no-wrap
+msgid "grafts"
+msgstr "injertos (grafts en inglés)"
+
+#. type: Plain text
+#: doc/guix.texi:25410
+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:25411
+#, no-wrap
+msgid "replacements of packages, for grafts"
+msgstr "reemplazos de paquetes, para injertos"
+
+#. type: Plain text
+#: doc/guix.texi:25417
+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: example
+#: doc/guix.texi:25424
+#, no-wrap
+msgid ""
+"(define bash\n"
+"  (package\n"
+"    (name \"bash\")\n"
+"    ;; @dots{}\n"
+"    (replacement bash-fixed)))\n"
+msgstr ""
+"(define bash\n"
+"  (package\n"
+"    (name \"bash\")\n"
+"    ;; @dots{}\n"
+"    (replacement bash-fixed)))\n"
+
+#. type: Plain text
+#: doc/guix.texi:25434
+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:25442
+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."
+
+#. type: Plain text
+#: doc/guix.texi:25446
+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:25449
+#, no-wrap
+msgid "guix build bash --no-grafts\n"
+msgstr "guix build bash --no-grafts\n"
+
+#. type: Plain text
+#: doc/guix.texi:25453
+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:"
+
+#. type: example
+#: doc/guix.texi:25456
+#, no-wrap
+msgid "guix build bash\n"
+msgstr "guix build bash\n"
+
+#. type: Plain text
+#: doc/guix.texi:25461
+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."
+
+#. type: Plain text
+#: doc/guix.texi:25464
+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:25467
+#, 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:25472
+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:"
+
+#. type: example
+#: doc/guix.texi:25475
+#, no-wrap
+msgid "guix gc -R `guix system build my-config.scm` | grep bash\n"
+msgstr "guix gc -R `guix system build mi-configuracion.scm` | grep bash\n"
+
+#. type: Plain text
+#: doc/guix.texi:25479
+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:25482
+#, no-wrap
+msgid "lsof | grep /gnu/store/.*bash\n"
+msgstr "lsof | grep /gnu/store/.*bash\n"
+
+#. type: cindex
+#: doc/guix.texi:25490
+#, no-wrap
+msgid "bootstrapping"
+msgstr "lanzamiento inicial"
+
+#. type: Plain text
+#: doc/guix.texi:25500
+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:25501 doc/guix.texi:25623
+#, no-wrap
+msgid "bootstrap binaries"
+msgstr "binarios del lanzamiento inicial"
+
+#. type: Plain text
+#: doc/guix.texi:25511
+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:25514
+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: unnumberedsec
+#: doc/guix.texi:25515
+#, no-wrap
+msgid "Preparing to Use the Bootstrap Binaries"
+msgstr "Preparación para usar los binarios del lanzamiento inicial"
+
+#. type: Plain text
+#: doc/guix.texi:25520
+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:25525
+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:25530
+#, no-wrap
+msgid ""
+"guix graph -t derivation \\\n"
+"  -e '(@@@@ (gnu packages bootstrap) %bootstrap-gcc)' \\\n"
+"  | dot -Tps > t.ps\n"
+msgstr ""
+"guix graph -t derivation \\\n"
+"  -e '(@@@@ (gnu packages bootstrap) %bootstrap-gcc)' \\\n"
+"  | dot -Tps > t.ps\n"
+
+#. type: Plain text
+#: doc/guix.texi:25539
+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})."
+
+#. type: Plain text
+#: doc/guix.texi:25548
+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:25560
+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})."
+
+#. type: Plain text
+#: doc/guix.texi:25564
+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 "Finalmente, los archivadores tar son extraídos por las derivaciones @code{gcc-bootstrap-0.drv}, @code{glibc-bootstrap-0.drv}, etcétera, hasta el punto en el que disponemos de una cadena de herramientas C funcional."
+
+#. type: unnumberedsec
+#: doc/guix.texi:25566
+#, no-wrap
+msgid "Building the Build Tools"
+msgstr "Construcción de las herramientas de construcción"
+
+#. type: Plain text
+#: doc/guix.texi:25575
+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)}."
+
+#. type: Plain text
+#: doc/guix.texi:25582
+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:25587
+#, no-wrap
+msgid ""
+"guix graph -t bag \\\n"
+"  -e '(@@@@ (gnu packages commencement)\n"
+"          glibc-final-with-bootstrap-bash)' | dot -Tps > t.ps\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:25594
+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."
+
+#. type: Plain text
+#: doc/guix.texi:25596
+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:25602
+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:25607
+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."
+
+#. type: Plain text
+#: doc/guix.texi:25613
+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."
+
+#. type: Plain text
+#: doc/guix.texi:25619
+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:25621
+#, no-wrap
+msgid "Building the Bootstrap Binaries"
+msgstr "Construir los binarios de lanzamiento"
+
+#. type: Plain text
+#: doc/guix.texi:25628
+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:25632
+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 siguiente orden construye los archivadores que contienen los binarios de lanzamiento (Guile, Binutils, GCC, libc, y un archivador que contiene una mezcla de Coreutils y otras herramientas básicas de línea de órdenes):"
+
+#. type: example
+#: doc/guix.texi:25635
+#, no-wrap
+msgid "guix build bootstrap-tarballs\n"
+msgstr "guix build bootstrap-tarballs\n"
+
+#. type: Plain text
+#: doc/guix.texi:25640
+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 generados son aquellos que son referenciados en el módulo @code{(gnu packages bootstrap)} mencionado al inicio de esta sección."
+
+#. type: Plain text
+#: doc/guix.texi:25646
+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:25647
+#, no-wrap
+msgid "Reducing the Set of Bootstrap Binaries"
+msgstr "Reducción del conjunto de binarios de lanzamiento"
+
+#. type: Plain text
+#: doc/guix.texi:25655
+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 "Nuestros binarios de lanzamiento actualmente incluyen GCC, Guile, etc. ¡Eso es un montón de código binario! ¿Por qué es eso un problema? Es un problema porque esos chorros 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:25661
+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:25667
+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 "El @uref{http://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. ¡Su ayuda es bienvenida!"
+
+# FUZZY
+#. type: chapter
+#: doc/guix.texi:25670
+#, no-wrap
+msgid "Porting to a New Platform"
+msgstr "Transportar a una nueva plataforma"
+
+# FUZZY
+#. type: Plain text
+#: doc/guix.texi:25679
+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:25684
+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:25687
+#, 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:25694
+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."
+
+#. type: Plain text
+#: doc/guix.texi:25703
+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:25712
+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."
+
+#. type: include
+#: doc/guix.texi:25714
+#, no-wrap
+msgid "contributing.texi"
+msgstr "contributing.es.texi"
+
+#. type: Plain text
+#: doc/guix.texi:25727
+msgid "Guix is based on the @uref{http://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{http://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."
+
+#. type: Plain text
+#: doc/guix.texi:25730
+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:25736
+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, haciendose cargo de la infraestructura, proporcionando arte y temas, haciendo sugerencias, y más---¡gracias!"
+
+#. type: cindex
+#: doc/guix.texi:25741
+#, no-wrap
+msgid "license, GNU Free Documentation License"
+msgstr "licencia, GNU Free Documentation License"
+
+#. type: include
+#: doc/guix.texi:25742
+#, no-wrap
+msgid "fdl-1.3.texi"
+msgstr "fdl-1.3.texi"
+
+#~ msgid "Software for your friendly GNU system."
+#~ msgstr "Software para su amigable sistema GNU."
+
+#~ msgid "The real thing."
+#~ msgstr "La cosa en sí."
+
+#~ msgid "Note that 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}."
+#~ msgstr "Tenga en cuenta que esta sección concierne a la instalación del gestor de paquetes, lo que puede ser hecho encima de un sistema GNU/Linux ya en ejecución. Si, en cambio, desea una instalación completa del sistema operativo GNU, @pxref{System Installation}."
+
+#~ msgid "We provide a @uref{https://git.savannah.gnu.org/cgit/guix.git/plain/etc/guix-install.sh, shell installer script}, which automates the download, installation, and initial configuration of Guix.  It should be run as the root user."
+#~ msgstr "Proveemos un @uref{https://git.savannah.gnu.org/cgit/guix.git/plain/etc/guix-install.sh, guión de instalación para el shell}, el cual automatiza la descarga, instalación y configuración inicial de Guix. Debe ser ejecutado como la usuaria root."
+
+#~ msgid "later, including 2.2.x;"
+#~ msgstr "posterior, incluyendo 2.2.x;"
+
+# TODO (MAAV) primarily
+#~ msgid "Installing @url{http://savannah.nongnu.org/projects/guile-json/, Guile-JSON} will allow you to use the @command{guix import pypi} command (@pxref{Invoking guix import}).  It is of interest primarily for developers and not for casual users."
+#~ msgstr "Instalar @url{http://savannah.nongnu.org/projects/guile-json/, Guile-JSON} le permitirá usar la orden @command{guix import pypy} (@pxref{Invoking guix import}). Es de interés principalmente para desarrolladoras y no para usuarias ocasionales."
+
+#~ msgid "attempt to use impure library, error message"
+#~ msgstr "intentando usar una biblioteca impura, mensaje de error"
+
+#~ msgid "Produce verbose output.  In particular, emit the build log of the environment on the standard error port."
+#~ msgstr "Produce salida prolija. En particular, emite el log de construcción del entorno en el puerto de error estándar."
+
+#~ msgid "@code{self-native-input?} (default: @code{#f})"
+#~ msgstr "@code{self-native-input?} (predeterminado: @code{#f})"
+
+#~ 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] 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"
+#~ "  [#:recursive? #f] [#:inputs '()] [#:env-vars '()] @\n"
+#~ "  [#:system (%current-system)] [#:references-graphs #f] @\n"
+#~ "  [#:allowed-references #f] [#:disallowed-references #f] @\n"
+#~ "  [#:leaked-env-vars #f] [#:local-build? #f] @\n"
+#~ "  [#:substitutable? #t]\n"
+#~ "Construye una derivación con los parámetros proporcionados, y devuelve el objeto @code{<derivation>} resultante."
+
+#~ msgid "... yields the graph of packages that depend on OCaml."
+#~ msgstr "... emite el grafo de paquetes que dependen de OCaml."
+
+#~ msgid "@command{guix environment} also supports all of the common build options that @command{guix build} supports (@pxref{Common Build Options})."
+#~ msgstr "@command{guix environment} también acepta todas las opciones de construcción comunes que acepta @command{guix build} (@pxref{Common Build Options})."
+
+#~ msgid "GuixSD itself is currently only available on @code{i686} and @code{x86_64}."
+#~ msgstr "GuixSD está actualmente disponible únicamente en @code{i686} y @code{x86_64}."
+
+# TODO (MAAV) ¿Diferencia entre update y upgrade?
+#~ msgid "upgrading GuixSD"
+#~ msgstr "actualizar GuixSD"
+
+#~ msgid "(cons* (avahi-service) (lsh-service) %base-services)\n"
+#~ msgstr "(cons* (avahi-service) (lsh-service) %base-services)\n"
+
+#~ msgid "keyboard"
+#~ msgstr "teclado"
+
+#~ msgid "{Scheme Procedure} console-keymap-service @var{files} ..."
+#~ msgstr "{Scheme Procedure} console-keymap-service @var{ficheros} ..."
+
+#~ msgid "(console-keymap-service \"dvorak\")\n"
+#~ msgstr "(console-keymap-service \"dvorak\")\n"
+
+#~ msgid "{Scheme Procedure} mcron-service @var{jobs} [#:mcron @var{mcron}]"
+#~ msgstr "{Procedimiento Scheme} mcron-service @var{trabajos} [#:mcron @var{mcron}]"
+
+#~ msgid "Return an mcron service running @var{mcron} that schedules @var{jobs}, a list of gexps denoting mcron job specifications."
+#~ msgstr "Devuelve un servicio mcron ejecutando @var{mcron} que planifica @var{trabajos}, una lista de expresiones-G denotando especificaciones de trabajos de mcron."
+
+#~ msgid "This is a shorthand for:"
+#~ msgstr "Esto es una abreviación de:"
+
+#~ msgid ""
+#~ "(service mcron-service-type\n"
+#~ "         (mcron-configuration (mcron mcron) (jobs jobs)))\n"
+#~ msgstr ""
+#~ "(service mcron-service-type\n"
+#~ "         (mcron-configuration (mcron mcron) (jobs trabajos)))\n"
+
+#~ msgid "{Scheme Procedure} tor-service [@var{config-file}] [#:tor @var{tor}]"
+#~ msgstr "{Procedimiento Scheme} tor-service [@var{fichero-de-configuración}] [#:tor @var{tor}]"
+
+#~ msgid "{Scheme Procedure} avahi-service [#:avahi @var{avahi}] @"
+#~ msgstr "{Procedimiento Scheme} avahi-service [#:avahi @var{avahi}] @"
+
+#~ msgid "@code{startx} (default: @code{(xorg-start-command)})"
+#~ msgstr "@code{startx} (predeterminado: @code{(xorg-start-command)})"
+
+#~ msgid "@code{xorg-server-path} (default @code{xorg-start-command})"
+#~ msgstr "@code{xorg-server-path} (predeterminado @code{xorg-start-command})"
+
+#~ msgid "@code{xserver-arguments} (default \"-nolisten tcp\")"
+#~ msgstr "@code{xserver-arguments} (predeterminados \"-nolisten tcp\")"
+
+#~ msgid ""
+#~ "(define bepo-evdev\n"
+#~ "  \"Section \\\"InputClass\\\"\n"
+#~ "        Identifier \\\"evdev keyboard catchall\\\"\n"
+#~ "        Driver \\\"evdev\\\"\n"
+#~ "        MatchIsKeyboard \\\"on\\\"\n"
+#~ "        Option \\\"xkb_layout\\\" \\\"fr\\\"\n"
+#~ "        Option \\\"xkb_variant\\\" \\\"bepo\\\"\n"
+#~ "EndSection\")\n"
+#~ "\n"
+#~ msgstr ""
+#~ "(define bepo-evdev\n"
+#~ "  \"Section \\\"InputClass\\\"\n"
+#~ "        Identifier \\\"evdev keyboard catchall\\\"\n"
+#~ "        Driver \\\"evdev\\\"\n"
+#~ "        MatchIsKeyboard \\\"on\\\"\n"
+#~ "        Option \\\"xkb_layout\\\" \\\"fr\\\"\n"
+#~ "        Option \\\"xkb_variant\\\" \\\"bepo\\\"\n"
+#~ "EndSection\")\n"
+#~ "\n"
+
+#~ msgid ""
+#~ "(operating-system\n"
+#~ "  ...\n"
+#~ "  (services\n"
+#~ "    (modify-services %desktop-services\n"
+#~ "      (slim-service-type config =>\n"
+#~ "        (slim-configuration\n"
+#~ "          (inherit config)\n"
+#~ "          (startx (xorg-start-command\n"
+#~ "                   #:configuration-file\n"
+#~ "                   (xorg-configuration-file\n"
+#~ "                     #:extra-config\n"
+#~ "                     (list bepo-evdev)))))))))\n"
+#~ msgstr ""
+#~ "(operating-system\n"
+#~ "  ...\n"
+#~ "  (services\n"
+#~ "    (modify-services %desktop-services\n"
+#~ "      (slim-service-type config =>\n"
+#~ "        (slim-configuration\n"
+#~ "          (inherit config)\n"
+#~ "          (startx (xorg-start-command\n"
+#~ "                   #:configuration-file\n"
+#~ "                   (xorg-configuration-file\n"
+#~ "                     #:extra-config\n"
+#~ "                     (list bepo-evdev)))))))))\n"
+
+#~ msgid "{Scheme Procedure} gnome-desktop-service"
+#~ msgstr "{Procedimiento Scheme} gnome-desktop-service"
+
+#~ msgid "{Scheme Procedure} xfce-desktop-service"
+#~ msgstr "{Procedimiento Scheme} xfce-desktop-service"
+
+#~ msgid "{Scheme Procedure} mate-desktop-service"
+#~ msgstr "{Procedimiento Scheme} mate-desktop-service"
+
+#~ msgid "{Scheme Procedure} upower-service [#:upower @var{upower}] @"
+#~ msgstr "{Procedimiento Scheme} upower-service [#:upower @var{upower}] @"
+
+#~ 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 "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.@footnote{Si quiere configurar @command{guix} para usar su copia de trabajo Git, puede apuntar el enlace @file{~/.config/guix/latest} a su directorio de trabajo de Git. Si es la única usuaria de su sistema, tal vez deba considerar modificar el enlace @file{/root/.config/guix/latest} para que apunte a @file{.config/guix/latest}; de esta manera siempre usará el mismo @command{guix} que su usuaria.}"
+
+#~ msgid "The TLP tool."
+#~ msgstr "La herramienta TLP."
+
+#~ msgid "Make @code{root}'s profile available under @file{~root/.guix-profile}:"
+#~ msgstr "Ponga el perfil de @code{root} disponible bajo @file{~root/.guix-profile}:"
+
+#~ msgid "Download Guix from the Git repository at @var{url}."
+#~ msgstr "Descarga Guix del repositorio Git en @var{url}"
+
+#~ msgid "GUIX_PULL_URL"
+#~ msgstr "GUIX_PULL_URL"
+
+#~ msgid "By default, the source is taken from its canonical Git repository at @code{gnu.org}, for the stable branch of Guix.  To use a different source, set the @code{GUIX_PULL_URL} environment variable."
+#~ msgstr "Por defecto, las fuentes se obtienen del repositorio canónico Git en @code{gnu.org}, para la rama estable de Guix. Para usar una fuente diferente, fije el valor de la variable de entorno @code{GUIX_PULL_URL}."
+
+#~ msgid "Deploy the tip of @var{branch}, the name of a Git branch available on the repository at @var{url}."
+#~ msgstr "Despliega la punta de la @var{rama}, el nombre de una rama Git disponible en el repositorio en @var{url}."
+
+#~ 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."
+
+#~ 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}."
+
+#~ msgid "UEFI"
+#~ msgstr "UEFI"
+
+#~ msgid "@code{title} (default: @code{'device})"
+#~ msgstr "@code{title} (predeterminado: @code{'device})"
+
+#~ msgid "{Scheme Procedure} guix-service @var{config}"
+#~ msgstr "{Procedimiento Scheme} guix-service @var{config}"
+
+#~ msgid "{Scheme Procedure} gpm-service [#:gpm @var{gpm}] @"
+#~ msgstr "{Procedimiento Scheme} gpm-service [#:gpm @var{gpm}] @"
+
+#~ msgid "This service is not part of @var{%base-services}."
+#~ msgstr "Este servicio no es parte de @var{%base-services}."
+
+#~ msgid "{Scheme Procedure} dhcp-client-service [#:dhcp @var{isc-dhcp}]"
+#~ msgstr "{Procedimiento Scheme} dhcp-client-service [#:dhcp @var{isc-dhcp}]"
+
+#~ msgid ""
+#~ "(use-modules (gnu services networking))\n"
+#~ "\n"
+#~ msgstr ""
+#~ "(use-modules (gnu services networking))\n"
+#~ "\n"
+
+#~ msgid "(service wpa-supplicant-service-type)\n"
+#~ msgstr "(service wpa-supplicant-service-type)\n"
+
+#~ msgid "{Scheme Procedure} ntp-service [#:ntp @var{ntp}] @"
+#~ msgstr "{Procedimiento Scheme} ntp-service [#:ntp @var{ntp}] @"
+
+#~ msgid "List of host names used as the default NTP servers."
+#~ msgstr "Lista de nombres de máquinas usados como servidores NTP predeterminados."
+
+#~ msgid "@code{load-path} (default: @code{'()})"
+#~ msgstr "@code{load-path} (predeterminado: @code{'()})"
+
+#~ msgid "@code{modules} (default: @var{%default-modules})"
+#~ msgstr "@code{modules} (predeterminados: @var{%default-modules})"
+
+#~ msgid "More than 8,500 packages are available, but you might occasionally find that a useful package is missing."
+#~ msgstr "Más de 8.500 paquetes están disponibles, pero ocasionalmente puede encontrarse que falta algún paquete útil."
+
+#~ 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 "La instalación no incluye una interfaz gráfica de usuaria y requiere familiaridad con GNU/Linux (vea las siguientes subsecciones para entender qué significa eso)."
+
+#~ 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 "En la versión @value{VERSION}, el sistema Guix no está listo para producción. Puede contener errores y le faltan características importantes. Por lo tanto, si está buscando un sistema de producción estable que respete su libertad de computación como usuaria, una buena solución en este punto es considerar @url{http://www.gnu.org/distros/free-distros.html, una distribución GNU/Linux más establecida}. Esperamos que pronto pueda cambiar al sistema Guix sin miedos, por supuesto. Mientras tanto, puede seguir usando su distribución y probar el gestor de paquetes sobre ella (@pxref{Installation})."
diff --git a/po/doc/guix-manual.fr.po b/po/doc/guix-manual.fr.po
index 3b164eead5..7f0e332b71 100644
--- a/po/doc/guix-manual.fr.po
+++ b/po/doc/guix-manual.fr.po
@@ -6,10 +6,10 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: guix-manual 0.16.0.1\n"
+"Project-Id-Version: guix-manual 1.0.0-pre2\n"
 "Report-Msgid-Bugs-To: ludo@gnu.org\n"
-"POT-Creation-Date: 2018-11-28 22:35+0100\n"
-"PO-Revision-Date: 2019-02-17 19:00+0100\n"
+"POT-Creation-Date: 2019-04-24 13:22+0200\n"
+"PO-Revision-Date: 2019-04-24 21:45+0200\n"
 "Last-Translator: Julien Lepiller <julien@lepiller.eu>\n"
 "Language-Team: French <traduc@traduc.org>\n"
 "Language: fr\n"
@@ -20,12 +20,11 @@ msgstr ""
 "X-Bugs: Report translation errors to the Language-Team address.\n"
 "X-Generator: Offlate 0.1\n"
 
-#. #-#-#-#-#  contributing.pot (guix 0.16.0tp2)  #-#-#-#-#
+#. #-#-#-#-#  contributing.pot (guix 1.0.0-pre2)  #-#-#-#-#
 #. type: chapter
-#. #-#-#-#-#  guix.pot (guix 0.15.0.3784-e9926-dirty)  #-#-#-#-#
+#. #-#-#-#-#  guix.pot (guix 1.0.0-pre2)  #-#-#-#-#
 #. type: menuentry
-#: doc/contributing.texi:1 doc/contributing.texi:2 doc/guix.texi:122
-#: doc/guix.texi:298
+#: doc/contributing.texi:1 doc/contributing.texi:2 doc/guix.texi:134
 #, no-wrap
 msgid "Contributing"
 msgstr "Contribuer"
@@ -57,204 +56,200 @@ msgstr "Nous souhaitons fournir un environnement chaleureux, amical et sans harc
 msgid "Contributors are not required to use their legal name in patches and on-line communication; they can use any name or pseudonym of their choice."
 msgstr "Les contributeurs n'ont pas besoin d'utiliser leur nom légal dans leurs correctifs et leurs communications en ligne ; ils peuvent utiliser n'importe quel nom ou pseudonyme de leur choix."
 
-#. #-#-#-#-#  contributing.pot (guix 0.16.0tp2)  #-#-#-#-#
 #. type: section
-#. #-#-#-#-#  guix.pot (guix 0.15.0.3784-e9926-dirty)  #-#-#-#-#
-#. type: menuentry
-#: doc/contributing.texi:28 doc/contributing.texi:30 doc/contributing.texi:31
-#: doc/guix.texi:304
+#: doc/contributing.texi:29 doc/contributing.texi:31 doc/contributing.texi:32
 #, no-wrap
 msgid "Building from Git"
 msgstr "Construire depuis Git"
 
 #. type: menuentry
-#: doc/contributing.texi:28 doc/guix.texi:304
+#: doc/contributing.texi:29
 msgid "The latest and greatest."
-msgstr "toujours le plus récent."
+msgstr "Toujours le plus récent."
 
-#. #-#-#-#-#  contributing.pot (guix 0.16.0tp2)  #-#-#-#-#
 #. type: section
-#. #-#-#-#-#  guix.pot (guix 0.15.0.3784-e9926-dirty)  #-#-#-#-#
-#. type: menuentry
-#: doc/contributing.texi:28 doc/contributing.texi:102
-#: doc/contributing.texi:103 doc/guix.texi:304
+#: doc/contributing.texi:29 doc/contributing.texi:103
+#: doc/contributing.texi:104
 #, no-wrap
 msgid "Running Guix Before It Is Installed"
 msgstr "Lancer Guix avant qu'il ne soit installé"
 
 #. type: menuentry
-#: doc/contributing.texi:28 doc/guix.texi:304
+#: doc/contributing.texi:29
 msgid "Hacker tricks."
 msgstr "Astuces pour les hackers."
 
-#. #-#-#-#-#  contributing.pot (guix 0.16.0tp2)  #-#-#-#-#
 #. type: section
-#. #-#-#-#-#  guix.pot (guix 0.15.0.3784-e9926-dirty)  #-#-#-#-#
-#. type: menuentry
-#: doc/contributing.texi:28 doc/contributing.texi:166
-#: doc/contributing.texi:167 doc/guix.texi:304
+#: doc/contributing.texi:29 doc/contributing.texi:167
+#: doc/contributing.texi:168
 #, no-wrap
 msgid "The Perfect Setup"
 msgstr "La configuration parfaite"
 
 #. type: menuentry
-#: doc/contributing.texi:28 doc/guix.texi:304
+#: doc/contributing.texi:29
 msgid "The right tools."
 msgstr "Les bons outils."
 
-#. #-#-#-#-#  contributing.pot (guix 0.16.0tp2)  #-#-#-#-#
 #. type: section
-#. #-#-#-#-#  guix.pot (guix 0.15.0.3784-e9926-dirty)  #-#-#-#-#
+#: doc/contributing.texi:29 doc/contributing.texi:231
+#: doc/contributing.texi:232
+#, no-wrap
+msgid "Packaging Guidelines"
+msgstr "Consignes d'empaquetage"
+
 #. type: menuentry
-#: doc/contributing.texi:28 doc/contributing.texi:226
-#: doc/contributing.texi:227 doc/guix.texi:304 doc/guix.texi:306
+#: doc/contributing.texi:29
+msgid "Growing the distribution."
+msgstr "Faire grandir la distribution."
+
+#. type: section
+#: doc/contributing.texi:29 doc/contributing.texi:680
+#: doc/contributing.texi:681
 #, no-wrap
 msgid "Coding Style"
 msgstr "Style de code"
 
 #. type: menuentry
-#: doc/contributing.texi:28 doc/guix.texi:304
+#: doc/contributing.texi:29
 msgid "Hygiene of the contributor."
 msgstr "Hygiène du contributeur."
 
-#. #-#-#-#-#  contributing.pot (guix 0.16.0tp2)  #-#-#-#-#
 #. type: section
-#. #-#-#-#-#  guix.pot (guix 0.15.0.3784-e9926-dirty)  #-#-#-#-#
-#. type: menuentry
-#: doc/contributing.texi:28 doc/contributing.texi:324
-#: doc/contributing.texi:325 doc/guix.texi:304
+#: doc/contributing.texi:29 doc/contributing.texi:778
+#: doc/contributing.texi:779
 #, no-wrap
 msgid "Submitting Patches"
 msgstr "Envoyer des correctifs"
 
 #. type: menuentry
-#: doc/contributing.texi:28 doc/guix.texi:304
+#: doc/contributing.texi:29
 msgid "Share your work."
 msgstr "Partager votre travail."
 
 #. type: Plain text
-#: doc/contributing.texi:35
+#: doc/contributing.texi:36
 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:38
+#: doc/contributing.texi:39
 #, 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/contributing.texi:43
+#: 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})."
 
 #. type: item
-#: doc/contributing.texi:45
+#: doc/contributing.texi:46
 #, no-wrap
 msgid "@url{http://gnu.org/software/autoconf/, GNU Autoconf};"
 msgstr "@url{http://gnu.org/software/autoconf/, GNU Autoconf};"
 
 #. type: item
-#: doc/contributing.texi:46
+#: doc/contributing.texi:47
 #, no-wrap
 msgid "@url{http://gnu.org/software/automake/, GNU Automake};"
 msgstr "@url{http://gnu.org/software/automake/, GNU Automake};"
 
 #. type: item
-#: doc/contributing.texi:47
+#: doc/contributing.texi:48
 #, no-wrap
 msgid "@url{http://gnu.org/software/gettext/, GNU Gettext};"
 msgstr "@url{http://gnu.org/software/gettext/, GNU Gettext};"
 
 #. type: item
-#: doc/contributing.texi:48
+#: doc/contributing.texi:49
 #, no-wrap
 msgid "@url{http://gnu.org/software/texinfo/, GNU Texinfo};"
 msgstr "@url{http://gnu.org/software/texinfo/, GNU Texinfo};"
 
 #. type: item
-#: doc/contributing.texi:49
+#: doc/contributing.texi:50
 #, no-wrap
 msgid "@url{http://www.graphviz.org/, Graphviz};"
 msgstr "@url{http://www.graphviz.org/, Graphviz};"
 
 #. type: item
-#: doc/contributing.texi:50
+#: doc/contributing.texi:51
 #, no-wrap
 msgid "@url{http://www.gnu.org/software/help2man/, GNU Help2man (optional)}."
 msgstr "@url{http://www.gnu.org/software/help2man/, GNU Help2man (facultatif)}."
 
 #. type: Plain text
-#: doc/contributing.texi:57
+#: 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: example
-#: doc/contributing.texi:60
+#: doc/contributing.texi:61
 #, no-wrap
 msgid "guix environment guix\n"
 msgstr "guix environment guix\n"
 
 #. type: Plain text
-#: doc/contributing.texi:64
+#: 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} :"
 
 #. type: example
-#: doc/contributing.texi:67
+#: doc/contributing.texi:68
 #, no-wrap
 msgid "guix environment guix --ad-hoc help2man git strace\n"
 msgstr "guix environment guix --ad-hoc help2man git strace\n"
 
 #. type: Plain text
-#: doc/contributing.texi:71
+#: doc/contributing.texi:72
 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:74
+#: doc/contributing.texi:75
 #, 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:83
+#: doc/contributing.texi:84
 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:86
+#: doc/contributing.texi:87
 #, no-wrap
 msgid "export ACLOCAL_PATH=/usr/share/aclocal\n"
 msgstr "export ACLOCAL_PATH=/usr/share/aclocal\n"
 
 #. type: Plain text
-#: doc/contributing.texi:90
+#: doc/contributing.texi:91
 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:95
+#: 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)."
 
 #. type: Plain text
-#: doc/contributing.texi:100
+#: doc/contributing.texi:101
 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:109
+#: doc/contributing.texi:110
 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 final » de celui parfois haut en couleur de « développeur »."
 
 #. type: Plain text
-#: doc/contributing.texi:120
+#: 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.} :"
 
 #. type: example
-#: doc/contributing.texi:124
+#: doc/contributing.texi:125
 #, no-wrap
 msgid ""
 "$ sudo -E ./pre-inst-env guix-daemon --build-users-group=guixbuild\n"
@@ -264,12 +259,12 @@ msgstr ""
 "$ ./pre-inst-env guix build hello\n"
 
 #. type: Plain text
-#: doc/contributing.texi:128
+#: doc/contributing.texi:129
 msgid "Similarly, 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:131
+#: doc/contributing.texi:132
 #, no-wrap
 msgid ""
 "$ ./pre-inst-env guile -c '(use-modules (guix utils)) (pk (%current-system))'\n"
@@ -279,30 +274,30 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/contributing.texi:133
+#: doc/contributing.texi:134
 #, no-wrap
 msgid ";;; (\"x86_64-linux\")\n"
 msgstr ";;; (\"x86_64-linux\")\n"
 
 #. type: cindex
-#: doc/contributing.texi:136
+#: doc/contributing.texi:137
 #, no-wrap
 msgid "REPL"
 msgstr "REPL"
 
 #. type: cindex
-#: doc/contributing.texi:137
+#: doc/contributing.texi:138
 #, no-wrap
 msgid "read-eval-print loop"
 msgstr "read-eval-print loop"
 
 #. type: Plain text
-#: doc/contributing.texi:140
+#: doc/contributing.texi:141
 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:155
+#: doc/contributing.texi:156
 #, no-wrap
 msgid ""
 "$ ./pre-inst-env guile\n"
@@ -334,27 +329,33 @@ msgstr ""
 "$1 = 361\n"
 
 #. type: Plain text
-#: doc/contributing.texi:159
+#: doc/contributing.texi:160
 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:164
+#: doc/contributing.texi:165
 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:174
-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}."
-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}."
+#: 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:"
+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
+#, 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:182
+#: doc/contributing.texi:187
 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:187
+#: doc/contributing.texi:192
 #, no-wrap
 msgid ""
 ";; @r{Assuming the Guix checkout is in ~/src/guix.}\n"
@@ -366,35 +367,35 @@ msgstr ""
 "  (add-to-list 'geiser-guile-load-path \"~/src/guix\"))\n"
 
 #. type: Plain text
-#: doc/contributing.texi:195
+#: 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."
 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:196
+#: doc/contributing.texi:201
 #, no-wrap
 msgid "code snippets"
 msgstr "extraits de code"
 
 #. type: cindex
-#: doc/contributing.texi:197
+#: doc/contributing.texi:202
 #, no-wrap
 msgid "templates"
 msgstr "modèles"
 
 #. type: cindex
-#: doc/contributing.texi:198
+#: doc/contributing.texi:203
 #, no-wrap
 msgid "reducing boilerplate"
 msgstr "réduire la quantité de code commun"
 
 #. type: Plain text
-#: doc/contributing.texi:205
+#: 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."
 
 #. type: lisp
-#: doc/contributing.texi:210
+#: doc/contributing.texi:215
 #, no-wrap
 msgid ""
 ";; @r{Assuming the Guix checkout is in ~/src/guix.}\n"
@@ -406,407 +407,1006 @@ msgstr ""
 "  (add-to-list 'yas-snippet-dirs \"~/src/guix/etc/snippets\"))\n"
 
 #. type: Plain text
-#: doc/contributing.texi:218
+#: doc/contributing.texi:223
 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:224
+#: doc/contributing.texi:229
 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
+#, no-wrap
+msgid "packages, creating"
+msgstr "paquets, création"
+
 #. type: Plain text
-#: doc/contributing.texi:232
+#: doc/contributing.texi:238
+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
+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."
+
+#. type: Plain text
+#: doc/contributing.texi:255
+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
+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
+#, 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
+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
+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
+#, 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}."
+
+#. type: cindex
+#: doc/contributing.texi:287
+#, no-wrap
+msgid "substituter"
+msgstr "substitution"
+
+#. type: Plain text
+#: doc/contributing.texi:294
+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
+#, no-wrap
+msgid "Software Freedom"
+msgstr "Liberté logiciel"
+
+#. type: menuentry
+#: doc/contributing.texi:305
+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
+#, no-wrap
+msgid "Package Naming"
+msgstr "Conventions de nommage"
+
+#. type: menuentry
+#: doc/contributing.texi:305
+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
+#, no-wrap
+msgid "Version Numbers"
+msgstr "Numéros de version"
+
+#. type: menuentry
+#: doc/contributing.texi:305
+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
+#, no-wrap
+msgid "Synopses and Descriptions"
+msgstr "Synopsis et descriptions"
+
+#. type: menuentry
+#: doc/contributing.texi:305
+msgid "Helping users find the right package."
+msgstr "Aider les utilisateurs à trouver le bon paquet."
+
+#. type: subsection
+#: doc/contributing.texi:305 doc/contributing.texi:531
+#: doc/contributing.texi:532
+#, no-wrap
+msgid "Python Modules"
+msgstr "Modules python"
+
+#. type: menuentry
+#: doc/contributing.texi:305
+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
+#, no-wrap
+msgid "Perl Modules"
+msgstr "Modules perl"
+
+#. type: menuentry
+#: doc/contributing.texi:305
+msgid "Little pearls."
+msgstr "Petites perles."
+
+#. type: subsection
+#: doc/contributing.texi:305 doc/contributing.texi:622
+#: doc/contributing.texi:623
+#, no-wrap
+msgid "Java Packages"
+msgstr "Paquets java"
+
+#. type: menuentry
+#: doc/contributing.texi:305
+msgid "Coffee break."
+msgstr "Pause café."
+
+#. type: subsection
+#: doc/contributing.texi:305 doc/contributing.texi:642
+#: doc/contributing.texi:643
+#, no-wrap
+msgid "Fonts"
+msgstr "Polices de caractères"
+
+#. type: menuentry
+#: doc/contributing.texi:305
+msgid "Fond of fonts."
+msgstr "À fond les fontes."
+
+#. type: cindex
+#: doc/contributing.texi:311
+#, 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 utilisateurs puissent utiliser leur ordinateur en toute liberté.  GNU est un @dfn{logiciel libre}, ce qui signifie que les utilisateur ont les @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."
+
+#. 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."
+
+#. type: Plain text
+#: doc/contributing.texi:333
+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
+#, no-wrap
+msgid "package name"
+msgstr "nom du paquet"
+
+#. type: Plain text
+#: doc/contributing.texi:346
+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
+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
+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
+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
+#, no-wrap
+msgid "package version"
+msgstr "version du paquet"
+
+#. type: Plain text
+#: doc/contributing.texi:372
+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
+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
+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
+#, no-wrap
+msgid ""
+"(define-public gtk+\n"
+"  (package\n"
+"    (name \"gtk+\")\n"
+"    (version \"3.9.12\")\n"
+"    ...))\n"
+"(define-public gtk+-2\n"
+"  (package\n"
+"    (name \"gtk+\")\n"
+"    (version \"2.24.20\")\n"
+"    ...))\n"
+msgstr ""
+"(define-public gtk+\n"
+"  (package\n"
+"    (name \"gtk+\")\n"
+"    (version \"3.9.12\")\n"
+"    ...))\n"
+"(define-public gtk+-2\n"
+"  (package\n"
+"    (name \"gtk+\")\n"
+"    (version \"2.24.20\")\n"
+"    ...))\n"
+
+#. type: Plain text
+#: doc/contributing.texi:391
+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 :"
+
+#. type: example
+#: doc/contributing.texi:397
+#, no-wrap
+msgid ""
+"(define-public gtk+-3.8\n"
+"  (package\n"
+"    (name \"gtk+\")\n"
+"    (version \"3.8.2\")\n"
+"    ...))\n"
+msgstr ""
+"(define-public gtk+-3.8\n"
+"  (package\n"
+"    (name \"gtk+\")\n"
+"    (version \"3.8.2\")\n"
+"    ...))\n"
+
+#. type: cindex
+#: doc/contributing.texi:401
+#, 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
+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
+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
+#, no-wrap
+msgid ""
+"2.0.11-3.cabba9e\n"
+"  ^    ^    ^\n"
+"  |    |    `-- upstream commit ID\n"
+"  |    |\n"
+"  |    `--- Guix package revision\n"
+"  |\n"
+"latest upstream version\n"
+msgstr ""
+"2.0.11-3.cabba9e\n"
+"  ^    ^    ^\n"
+"  |    |    `-- ID du commit en amont\n"
+"  |    |\n"
+"  |    `--- révision du paquet Guix\n"
+"  |\n"
+"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 :"
+
+#. type: example
+#: doc/contributing.texi:449
+#, no-wrap
+msgid ""
+"(define my-package\n"
+"  (let ((commit \"c3f29bc928d5900971f65965feaae59e1272a3f7\")\n"
+"        (revision \"1\"))          ;Guix package revision\n"
+"    (package\n"
+"      (version (git-version \"0.9\" revision commit))\n"
+"      (source (origin\n"
+"                (method git-fetch)\n"
+"                (uri (git-reference\n"
+"                      (url \"git://example.org/my-package.git\")\n"
+"                      (commit commit)))\n"
+"                (sha256 (base32 \"1mbikn@dots{}\"))\n"
+"                (file-name (git-file-name name version))))\n"
+"      ;; @dots{}\n"
+"      )))\n"
+msgstr ""
+"(define my-package\n"
+"  (let ((commit \"c3f29bc928d5900971f65965feaae59e1272a3f7\")\n"
+"        (revision \"1\"))          ;révision du paquet Guix\n"
+"    (package\n"
+"      (version (git-version \"0.9\" revision commit))\n"
+"      (source (origin\n"
+"                (method git-fetch)\n"
+"                (uri (git-reference\n"
+"                      (url \"git://example.org/my-package.git\")\n"
+"                      (commit commit)))\n"
+"                (sha256 (base32 \"1mbikn@dots{}\"))\n"
+"                (file-name (git-file-name name version))))\n"
+"      ;; @dots{}\n"
+"      )))\n"
+
+#. type: cindex
+#: doc/contributing.texi:454
+#, no-wrap
+msgid "package description"
+msgstr "description du paquet"
+
+#. type: cindex
+#: doc/contributing.texi:455
+#, no-wrap
+msgid "package synopsis"
+msgstr "résumé du paquet"
+
+#. type: Plain text
+#: doc/contributing.texi:462
+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 utilisateurs à déterminer si un paquet donner correspond à leurs besoins.  En conséquence, les mainteneurs doivent prêter attention à leur contenu."
+
+#. type: Plain text
+#: doc/contributing.texi:470
+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
+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 à l'utilisateur pour savoir si c'est ce qu'il recherche."
+
+#. type: Plain text
+#: doc/contributing.texi:488
+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 pour les utilisateurs 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
+#, no-wrap
+msgid "Texinfo markup, in package descriptions"
+msgstr "balisage texinfo, dans les descriptions de paquets"
+
+#. type: Plain text
+#: doc/contributing.texi:498
+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 interfaces utilisateurs 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 d'utilisateurs possible puissent les lire dans leur langue natale.  Les interfaces utilisateurs 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
+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
+#, no-wrap
+msgid ""
+"(package\n"
+"  ;; @dots{}\n"
+"  (synopsis \"This is translatable\")\n"
+"  (description (string-append \"This is \" \"*not*\" \" translatable.\")))\n"
+msgstr ""
+"(package\n"
+"  ;; @dots{}\n"
+"  (synopsis \"Ceci est traduisible\")\n"
+"  (description (string-append \"Ceci n'est \" \"*pas*\" \" traduisible.\")))\n"
+
+#. type: Plain text
+#: doc/contributing.texi:523
+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, donc en tant que packageur, faîtes encore plus attention à vos résumés et descriptions car chaque changement peut demander d'autant plus de travail de la part des traducteurs.  Pour les aider, il est possible de donner des recommandations ou des instructions qu'ils pourront voir en insérant des commentaires spéciaux comme ceci (@pxref{xgettext Invocation,,, gettext, GNU Gettext}) :"
+
+#. type: example
+#: doc/contributing.texi:528
+#, no-wrap
+msgid ""
+";; TRANSLATORS: \"X11 resize-and-rotate\" should not be translated.\n"
+"(description \"ARandR is designed to provide a simple visual front end\n"
+"for the X11 resize-and-rotate (RandR) extension. @dots{}\")\n"
+msgstr ""
+";; TRANSLATORS: \"X11 resize-and-rotate\" should not be translated.\n"
+"(description \"ARandR is designed to provide a simple visual front end\n"
+"for the X11 resize-and-rotate (RandR) extension. @dots{}\")\n"
+
+#. type: cindex
+#: doc/contributing.texi:534
+#, no-wrap
+msgid "python"
+msgstr "python"
+
+#. type: Plain text
+#: doc/contributing.texi:540
+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."
+
+#. type: Plain text
+#: doc/contributing.texi:552
+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
+#, no-wrap
+msgid "Specifying Dependencies"
+msgstr "Spécifier les dépendances"
+
+#. type: cindex
+#: doc/contributing.texi:554
+#, no-wrap
+msgid "inputs, for Python packages"
+msgstr "entrées, pour les paquets Python"
+
+#. type: Plain text
+#: doc/contributing.texi:559
+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
+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
+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
+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
+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
+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
+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
+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
+#, no-wrap
+msgid "perl"
+msgstr "perl"
+
+#. type: Plain text
+#: doc/contributing.texi:620
+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
+#, no-wrap
+msgid "java"
+msgstr "java"
+
+#. type: Plain text
+#: doc/contributing.texi:628
+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
+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
+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:1657
+#, no-wrap
+msgid "fonts"
+msgstr "polices"
+
+#. type: Plain text
+#: doc/contributing.texi:651
+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 n esont en général par installées par un utilisateurs 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
+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'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
+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
+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
+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
 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."
 
-#. #-#-#-#-#  contributing.pot (guix 0.16.0tp2)  #-#-#-#-#
 #. type: subsection
-#. #-#-#-#-#  guix.pot (guix 0.15.0.3784-e9926-dirty)  #-#-#-#-#
-#. type: menuentry
-#: doc/contributing.texi:238 doc/contributing.texi:240
-#: doc/contributing.texi:241 doc/guix.texi:311
+#: doc/contributing.texi:692 doc/contributing.texi:694
+#: doc/contributing.texi:695
 #, no-wrap
 msgid "Programming Paradigm"
 msgstr "Paradigme de programmation"
 
 #. type: menuentry
-#: doc/contributing.texi:238 doc/guix.texi:311
+#: doc/contributing.texi:692
 msgid "How to compose your elements."
 msgstr "Comment composer vos éléments."
 
-#. #-#-#-#-#  contributing.pot (guix 0.16.0tp2)  #-#-#-#-#
 #. type: subsection
-#. #-#-#-#-#  guix.pot (guix 0.15.0.3784-e9926-dirty)  #-#-#-#-#
-#. type: menuentry
-#: doc/contributing.texi:238 doc/contributing.texi:247
-#: doc/contributing.texi:248 doc/guix.texi:311
+#: doc/contributing.texi:692 doc/contributing.texi:701
+#: doc/contributing.texi:702
 #, no-wrap
 msgid "Modules"
 msgstr "Modules"
 
 #. type: menuentry
-#: doc/contributing.texi:238 doc/guix.texi:311
+#: doc/contributing.texi:692
 msgid "Where to store your code?"
 msgstr "Où stocker votre code ?"
 
-#. #-#-#-#-#  contributing.pot (guix 0.16.0tp2)  #-#-#-#-#
 #. type: subsection
-#. #-#-#-#-#  guix.pot (guix 0.15.0.3784-e9926-dirty)  #-#-#-#-#
-#. type: menuentry
-#: doc/contributing.texi:238 doc/contributing.texi:258
-#: doc/contributing.texi:259 doc/guix.texi:311
+#: doc/contributing.texi:692 doc/contributing.texi:712
+#: doc/contributing.texi:713
 #, no-wrap
 msgid "Data Types and Pattern Matching"
 msgstr "Types de données et reconnaissance de motif"
 
 #. type: menuentry
-#: doc/contributing.texi:238 doc/guix.texi:311
+#: doc/contributing.texi:692
 msgid "Implementing data structures."
 msgstr "Implémenter des structures de données."
 
-#. #-#-#-#-#  contributing.pot (guix 0.16.0tp2)  #-#-#-#-#
 #. type: subsection
-#. #-#-#-#-#  guix.pot (guix 0.15.0.3784-e9926-dirty)  #-#-#-#-#
-#. type: menuentry
-#: doc/contributing.texi:238 doc/contributing.texi:272
-#: doc/contributing.texi:273 doc/guix.texi:311
+#: doc/contributing.texi:692 doc/contributing.texi:726
+#: doc/contributing.texi:727
 #, no-wrap
 msgid "Formatting Code"
 msgstr "Formatage du code"
 
 #. type: menuentry
-#: doc/contributing.texi:238 doc/guix.texi:311
+#: doc/contributing.texi:692
 msgid "Writing conventions."
 msgstr "Conventions d'écriture."
 
 #. type: Plain text
-#: doc/contributing.texi:246
+#: doc/contributing.texi:700
 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:254
+#: doc/contributing.texi:708
 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:257
+#: doc/contributing.texi:711
 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:266
+#: doc/contributing.texi:720
 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:271
+#: doc/contributing.texi:725
 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:275
+#: doc/contributing.texi:729
 #, no-wrap
 msgid "formatting code"
 msgstr "formater le code"
 
 #. type: cindex
-#: doc/contributing.texi:276
+#: doc/contributing.texi:730
 #, no-wrap
 msgid "coding style"
 msgstr "style de code"
 
 #. type: Plain text
-#: doc/contributing.texi:283
+#: 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."
 
 #. type: Plain text
-#: doc/contributing.texi:290
+#: doc/contributing.texi:744
 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:291
+#: doc/contributing.texi:745
 #, no-wrap
 msgid "indentation, of code"
 msgstr "indentation, du code"
 
 #. type: cindex
-#: doc/contributing.texi:292
+#: doc/contributing.texi:746
 #, no-wrap
 msgid "formatting, of code"
 msgstr "formatage, du code"
 
 #. type: Plain text
-#: doc/contributing.texi:295
+#: doc/contributing.texi:749
 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:298
+#: doc/contributing.texi:752
 #, 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:304
+#: doc/contributing.texi:758
 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:307
+#: doc/contributing.texi:761
 #, 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:309
+#: doc/contributing.texi:763
 #, no-wrap
 msgid "Vim, Scheme code editing"
 msgstr "Vim, édition de code Scheme"
 
 #. type: Plain text
-#: doc/contributing.texi:315
+#: doc/contributing.texi:769
 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:319
+#: doc/contributing.texi:773
 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:322
+#: doc/contributing.texi:776
 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."
 
 #. type: Plain text
-#: doc/contributing.texi:331
+#: 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}."
 
 #. type: Plain text
-#: doc/contributing.texi:338
+#: 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})."
 
 #. type: Plain text
-#: doc/contributing.texi:342
+#: doc/contributing.texi:796
 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:345
+#: doc/contributing.texi:799
 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:352
+#: doc/contributing.texi:806
 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 du paquet logiciel fournissent une signature cryptographique pour l'archive, faîtes 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:356
+#: doc/contributing.texi:810
 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:361
+#: doc/contributing.texi:815
 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:365
+#: doc/contributing.texi:819
 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
+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
+#, 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"
+msgstr ""
+"(service qemu-binfmt-service-type\n"
+" (qemu-binfmt-configuration\n"
+"   (platforms (lookup-qemu-platforms \"arm\" \"aarch64\" \"mips64el\"))\n"
+"   (guix-support? #t)))\n"
+
+#. type: enumerate
+#: doc/contributing.texi:835
+msgid "Then reconfigure your system."
+msgstr "Puis reconfigurez votre système."
+
+#. type: enumerate
+#: doc/contributing.texi:840
+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
+#, 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:367
+#: doc/contributing.texi:847
 #, no-wrap
 msgid "bundling"
 msgstr "construction groupée"
 
 #. type: enumerate
-#: doc/contributing.texi:370
+#: doc/contributing.texi:850
 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:379
+#: doc/contributing.texi:859
 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 de leurs utilisateurs.  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:386
-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."
-msgstr "Regardez le profile 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.  Il peut aussi aider à déterminer s'il faut découper le paquet (@pxref{Des paquets avec plusieurs résultats}) et quelle dépendance facultative utiliser."
+#: doc/contributing.texi:868
+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:391
+#: doc/contributing.texi:873
 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:393
+#: doc/contributing.texi:875
 #, no-wrap
 msgid "branching strategy"
 msgstr "stratégie de branche"
 
 #. type: cindex
-#: doc/contributing.texi:394
+#: doc/contributing.texi:876
 #, no-wrap
 msgid "rebuild scheduling strategy"
 msgstr "stratégie de planification des reconstructions"
 
 #. type: enumerate
-#: doc/contributing.texi:397
+#: doc/contributing.texi:879
 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:399
+#: doc/contributing.texi:881
 #, no-wrap
 msgid "300 dependent packages or less"
 msgstr "300 paquets dépendants ou moins"
 
 #. type: table
-#: doc/contributing.texi:401
+#: doc/contributing.texi:883
 msgid "@code{master} branch (non-disruptive changes)."
 msgstr "branche @code{master} (changements non-disruptifs)."
 
 #. type: item
-#: doc/contributing.texi:402
+#: doc/contributing.texi:884
 #, no-wrap
 msgid "between 300 and 1,200 dependent packages"
 msgstr "entre 300 et 1 200 paquets dépendants"
 
 #. type: table
-#: doc/contributing.texi:407
+#: 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})."
 
 #. type: item
-#: doc/contributing.texi:408
+#: doc/contributing.texi:890
 #, no-wrap
 msgid "more than 1,200 dependent packages"
 msgstr "plus de 1 200 paquets dépendants"
 
 #. type: table
-#: doc/contributing.texi:412
+#: 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."
 
 #. type: enumerate
-#: doc/contributing.texi:419
+#: 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 utilisateurs et réduit la fenêtre pendant laquelle les binaires pré-construits ne sont pas disponibles."
 
 #. type: enumerate
-#: doc/contributing.texi:426
+#: doc/contributing.texi:908
 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:428
+#: doc/contributing.texi:910
 #, no-wrap
 msgid "determinism, of build processes"
 msgstr "déterminisme, du processus de construction"
 
 #. type: cindex
-#: doc/contributing.texi:429
+#: doc/contributing.texi:911
 #, no-wrap
 msgid "reproducible builds, checking"
 msgstr "construction reproductibles, vérification"
 
 #. type: enumerate
-#: doc/contributing.texi:433
+#: doc/contributing.texi:915
 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:436
+#: doc/contributing.texi:918
 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:439
+#: doc/contributing.texi:921
 #, no-wrap
 msgid "guix build --rounds=2 my-package\n"
 msgstr "guix build --rounds=2 mon-paquet\n"
 
 #. type: enumerate
-#: doc/contributing.texi:443
+#: doc/contributing.texi:925
 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:453
-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{hydra.gnu.org} 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é commités et construits par @code{hydra.gnu.org} 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}.  Puis 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}."
+#: doc/contributing.texi:935
+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:459
+#: doc/contributing.texi:941
 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:463
+#: doc/contributing.texi:945
 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:466
+#: doc/contributing.texi:948
 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:471
+#: doc/contributing.texi:953
 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:479
+#: doc/contributing.texi:961
 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: Plain text
-#: doc/contributing.texi:489
+#: 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."
 
 #. type: Plain text
-#: doc/contributing.texi:492
+#: doc/contributing.texi:974
 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:493 doc/contributing.texi:495
+#: doc/contributing.texi:975 doc/contributing.texi:977
 #, no-wrap
 msgid "Sending a Patch Series"
 msgstr "Envoyer une série de correctifs"
 
 #. type: cindex
-#: doc/contributing.texi:495
+#: doc/contributing.texi:977
 #, no-wrap
 msgid "patch series"
 msgstr "série de correctifs"
 
 #. type: code{#1}
-#: doc/contributing.texi:496
+#: doc/contributing.texi:978
 #, no-wrap
 msgid "git send-email"
 msgstr "git send-email"
 
 #. type: code{#1}
-#: doc/contributing.texi:497
+#: doc/contributing.texi:979
 #, no-wrap
 msgid "git-send-email"
 msgstr "git-send-email"
 
 #. type: Plain text
-#: doc/contributing.texi:505
+#: 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."
 
@@ -819,7 +1419,7 @@ msgstr ""
 "@frenchspacing on"
 
 #. type: title
-#: doc/guix.texi:7 doc/guix.texi:83
+#: doc/guix.texi:7 doc/guix.texi:87
 #, no-wrap
 msgid "GNU Guix Reference Manual"
 msgstr "Manuel de référence de GNU Guix"
@@ -831,1885 +1431,1959 @@ msgid "version.texi"
 msgstr "version-fr.texi"
 
 #. type: copying
-#: doc/guix.texi:57
-msgid "Copyright @copyright{} 2012, 2013, 2014, 2015, 2016, 2017, 2018 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 Ricardo Wurmus@* Copyright @copyright{} 2016 Ben Woodcroft@* Copyright @copyright{} 2016, 2017, 2018 Chris Marusich@* Copyright @copyright{} 2016, 2017, 2018 Efraim Flashner@* Copyright @copyright{} 2016 John Darrington@* Copyright @copyright{} 2016, 2017 Nils Gillmann@* Copyright @copyright{} 2016, 2017, 2018 Jan Nieuwenhuizen@* Copyright @copyright{} 2016 Julien Lepiller@* Copyright @copyright{} 2016 Alex ter Weele@* 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 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@*"
-msgstr "Copyright @copyright{} 2012, 2013, 2014, 2015, 2016, 2017, 2018 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 Ricardo Wurmus@* Copyright @copyright{} 2016 Ben Woodcroft@* Copyright @copyright{} 2016, 2017, 2018 Chris Marusich@* Copyright @copyright{} 2016, 2017, 2018 Efraim Flashner@* Copyright @copyright{} 2016 John Darrington@* Copyright @copyright{} 2016, 2017 Nils Gillmann@* Copyright @copyright{} 2016, 2017, 2018 Jan Nieuwenhuizen@* Copyright @copyright{} 2016 Julien Lepiller@* Copyright @copyright{} 2016 Alex ter Weele@* 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 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@*"
+#: doc/guix.texi:61
+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@*"
+msgstr "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@*"
 
 #. type: copying
-#: doc/guix.texi:64
+#: doc/guix.texi:68
 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:66
+#: doc/guix.texi:70
 #, no-wrap
 msgid "System administration"
 msgstr "Administration système"
 
 #. type: menuentry
-#: doc/guix.texi:73
+#: doc/guix.texi:77
 msgid "Guix: (guix)"
 msgstr "Guix: (guix.fr)"
 
 #. type: menuentry
-#: doc/guix.texi:73
+#: doc/guix.texi:77
 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:73
+#: doc/guix.texi:77
 msgid "guix package: (guix)Invoking guix package"
 msgstr "guix package : (guix.fr)Invoquer guix package"
 
 #. type: menuentry
-#: doc/guix.texi:73
+#: doc/guix.texi:77
 msgid "Installing, removing, and upgrading packages."
 msgstr "Installer, supprimer et mettre à jour des paquets."
 
 #. type: menuentry
-#: doc/guix.texi:73
+#: doc/guix.texi:77
 msgid "guix gc: (guix)Invoking guix gc"
 msgstr "guix gc : (guix.fr)Invoquer guix gc"
 
 #. type: menuentry
-#: doc/guix.texi:73
+#: doc/guix.texi:77
 msgid "Reclaiming unused disk space."
 msgstr "Récupérer de l'espace disque inutilisé."
 
 #. type: menuentry
-#: doc/guix.texi:73
+#: doc/guix.texi:77
 msgid "guix pull: (guix)Invoking guix pull"
 msgstr "guix pull : (guix.fr)Invoquer guix pull"
 
 #. type: menuentry
-#: doc/guix.texi:73
+#: doc/guix.texi:77
 msgid "Update the list of available packages."
 msgstr "Mettre à jour la liste des paquets disponibles."
 
 #. type: menuentry
-#: doc/guix.texi:73
+#: doc/guix.texi:77
 msgid "guix system: (guix)Invoking guix system"
 msgstr "guix system : (guix.fr)Invoquer guix system"
 
 #. type: menuentry
-#: doc/guix.texi:73
+#: doc/guix.texi:77
 msgid "Manage the operating system configuration."
 msgstr "Gérer la configuration du système d'exploitation."
 
 #. type: dircategory
-#: doc/guix.texi:75
+#: doc/guix.texi:79
 #, no-wrap
 msgid "Software development"
 msgstr "Développement logiciel"
 
 #. type: menuentry
-#: doc/guix.texi:80
+#: doc/guix.texi:84
 msgid "guix environment: (guix)Invoking guix environment"
 msgstr "guix environment : (guix.fr)Invoquer guix environment"
 
 #. type: menuentry
-#: doc/guix.texi:80
+#: doc/guix.texi:84
 msgid "Building development environments with Guix."
 msgstr "Construire des environnements de construction avec Guix."
 
 #. type: menuentry
-#: doc/guix.texi:80
+#: doc/guix.texi:84
 msgid "guix build: (guix)Invoking guix build"
 msgstr "guix build : (guix.fr)Invoquer guix build"
 
 #. type: menuentry
-#: doc/guix.texi:80
+#: doc/guix.texi:84
 msgid "Building packages."
 msgstr "Construire des paquets."
 
 #. type: menuentry
-#: doc/guix.texi:80
+#: doc/guix.texi:84
 msgid "guix pack: (guix)Invoking guix pack"
 msgstr "guix pack : (guix.fr) Invoquer guix pack"
 
 #. type: menuentry
-#: doc/guix.texi:80
+#: doc/guix.texi:84
 msgid "Creating binary bundles."
 msgstr "Créer des lots binaires."
 
 #. type: subtitle
-#: doc/guix.texi:84
+#: doc/guix.texi:88
 #, no-wrap
 msgid "Using the GNU Guix Functional Package Manager"
 msgstr "Utiliser le gestionnaire de paquet fonctionnel GNU Guix"
 
 #. type: author
-#: doc/guix.texi:85
+#: doc/guix.texi:89
 #, no-wrap
 msgid "The GNU Guix Developers"
 msgstr "Les développeurs de GNU Guix"
 
 #. type: titlepage
-#: doc/guix.texi:91
+#: doc/guix.texi:95
 msgid "Edition @value{EDITION} @* @value{UPDATED} @*"
 msgstr "Édition @value{EDITION} @* @value{UPDATED} @*"
 
 #. type: node
-#: doc/guix.texi:98
+#: doc/guix.texi:102
 #, no-wrap
 msgid "Top"
 msgstr "Top"
 
 #. type: top
-#: doc/guix.texi:99
+#: doc/guix.texi:103
 #, no-wrap
 msgid "GNU Guix"
 msgstr "GNU Guix"
 
 #. type: Plain text
-#: doc/guix.texi:103
+#: doc/guix.texi:107
 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:113
-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 "Ce manuel est aussi disponible en anglais (@pxref{Top,,, guix, GNU Guix Reference Manual}) et en allemand (@pxref{Top,,, guix.de, Referenzhandbuch zu 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}."
+#: doc/guix.texi:118
+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}."
+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参考手册}) et en espagnol (@pxref{Top,,, guix.es, Manual de referencia de 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:122 doc/guix.texi:316 doc/guix.texi:317
+#: doc/guix.texi:134 doc/guix.texi:144 doc/guix.texi:307 doc/guix.texi:308
 #, no-wrap
 msgid "Introduction"
 msgstr "Introduction"
 
 #. type: menuentry
-#: doc/guix.texi:122
+#: doc/guix.texi:134
 msgid "What is Guix about?"
 msgstr "Qu'est-ce que Guix ?"
 
 #. type: chapter
-#: doc/guix.texi:122 doc/guix.texi:132 doc/guix.texi:390 doc/guix.texi:391
+#: doc/guix.texi:134 doc/guix.texi:149 doc/guix.texi:466 doc/guix.texi:467
 #, no-wrap
 msgid "Installation"
 msgstr "Installation"
 
 #. type: menuentry
-#: doc/guix.texi:122
+#: doc/guix.texi:134
 msgid "Installing Guix."
 msgstr "Installer Guix."
 
 #. type: chapter
-#: doc/guix.texi:122 doc/guix.texi:147 doc/guix.texi:1695 doc/guix.texi:1696
+#: doc/guix.texi:134 doc/guix.texi:164 doc/guix.texi:1760 doc/guix.texi:1761
+#, no-wrap
+msgid "System Installation"
+msgstr "Installation du système"
+
+#. type: menuentry
+#: doc/guix.texi:134
+msgid "Installing the whole operating system."
+msgstr "Installer le système d'exploitation complet."
+
+#. type: chapter
+#: doc/guix.texi:134 doc/guix.texi:181 doc/guix.texi:2471 doc/guix.texi:2472
 #, no-wrap
 msgid "Package Management"
 msgstr "Gestion de paquets"
 
 #. type: menuentry
-#: doc/guix.texi:122
+#: doc/guix.texi:134
 msgid "Package installation, upgrade, etc."
 msgstr "Installation des paquets, mises à jour, etc."
 
 #. type: chapter
-#: doc/guix.texi:122 doc/guix.texi:170 doc/guix.texi:3687 doc/guix.texi:3688
+#: doc/guix.texi:134 doc/guix.texi:203 doc/guix.texi:4303 doc/guix.texi:4304
+#, no-wrap
+msgid "Development"
+msgstr "Développement"
+
+#. type: menuentry
+#: doc/guix.texi:134
+msgid "Guix-aided software development."
+msgstr "Développement logiciel simplifié par Guix."
+
+#. type: chapter
+#: doc/guix.texi:134 doc/guix.texi:208 doc/guix.texi:4927 doc/guix.texi:4928
 #, no-wrap
 msgid "Programming Interface"
 msgstr "Interface de programmation"
 
 #. type: menuentry
-#: doc/guix.texi:122
+#: doc/guix.texi:134
 msgid "Using Guix in Scheme."
 msgstr "Utiliser Guix en Scheme."
 
 #. type: chapter
-#: doc/guix.texi:122 doc/guix.texi:185 doc/guix.texi:6129 doc/guix.texi:6130
+#: doc/guix.texi:134 doc/guix.texi:224 doc/guix.texi:7556 doc/guix.texi:7557
 #, no-wrap
 msgid "Utilities"
 msgstr "Utilitaires"
 
 #. type: menuentry
-#: doc/guix.texi:122
+#: doc/guix.texi:134
 msgid "Package management commands."
 msgstr "Commandes de gestion de paquets."
 
 #. type: chapter
-#: doc/guix.texi:122 doc/guix.texi:211 doc/guix.texi:8915 doc/guix.texi:8916
+#: doc/guix.texi:134 doc/guix.texi:249 doc/guix.texi:10167 doc/guix.texi:10168
 #, no-wrap
-msgid "GNU Distribution"
-msgstr "Distribution GNU"
+msgid "System Configuration"
+msgstr "Configuration système"
+
+#. type: menuentry
+#: doc/guix.texi:134
+msgid "Configuring the operating system."
+msgstr "Configurer le système d'exploitation."
+
+#. type: chapter
+#: doc/guix.texi:134 doc/guix.texi:25235 doc/guix.texi:25236
+#, no-wrap
+msgid "Documentation"
+msgstr "Documentation"
+
+#. type: menuentry
+#: doc/guix.texi:134
+msgid "Browsing software user manuals."
+msgstr "Visualiser les manuels d'utilisateur des logiciels."
+
+#. type: chapter
+#: doc/guix.texi:134 doc/guix.texi:25299 doc/guix.texi:25300
+#, no-wrap
+msgid "Installing Debugging Files"
+msgstr "Installer les fichiers de débogage"
+
+#. type: menuentry
+#: doc/guix.texi:134
+msgid "Feeding the debugger."
+msgstr "Nourrir le débogueur."
+
+#. type: chapter
+#: doc/guix.texi:134 doc/guix.texi:25365 doc/guix.texi:25366
+#, no-wrap
+msgid "Security Updates"
+msgstr "Mises à jour de sécurité"
 
 #. type: menuentry
-#: doc/guix.texi:122
-msgid "Software for your friendly GNU system."
-msgstr "Des logiciels pour un système GNU convivial."
+#: doc/guix.texi:134
+msgid "Deploying security fixes quickly."
+msgstr "Déployer des correctifs de sécurité rapidement."
+
+#. type: chapter
+#: doc/guix.texi:134 doc/guix.texi:25485 doc/guix.texi:25486
+#, no-wrap
+msgid "Bootstrapping"
+msgstr "Bootstrapping"
 
 #. type: menuentry
-#: doc/guix.texi:122
+#: doc/guix.texi:134
+msgid "GNU/Linux built from scratch."
+msgstr "GNU/Linux depuis zéro."
+
+#. type: node
+#: doc/guix.texi:134 doc/guix.texi:25669
+#, no-wrap
+msgid "Porting"
+msgstr "Porter"
+
+#. type: menuentry
+#: doc/guix.texi:134
+msgid "Targeting another platform or kernel."
+msgstr "Cibler une autre plateforme ou un autre noyau."
+
+#. type: menuentry
+#: doc/guix.texi:134
 msgid "Your help needed!"
 msgstr "Nous avons besoin de votre aide !"
 
 #. type: chapter
-#: doc/guix.texi:127 doc/guix.texi:24347 doc/guix.texi:24348
+#: doc/guix.texi:139 doc/guix.texi:25717 doc/guix.texi:25718
 #, no-wrap
 msgid "Acknowledgments"
 msgstr "Remerciements"
 
 #. type: menuentry
-#: doc/guix.texi:127
+#: doc/guix.texi:139
 msgid "Thanks!"
 msgstr "Merci !"
 
 #. type: appendix
-#: doc/guix.texi:127 doc/guix.texi:24369 doc/guix.texi:24370
+#: doc/guix.texi:139 doc/guix.texi:25739 doc/guix.texi:25740
 #, no-wrap
 msgid "GNU Free Documentation License"
 msgstr "La licence GNU Free Documentation"
 
 #. type: menuentry
-#: doc/guix.texi:127
+#: doc/guix.texi:139
 msgid "The license of this manual."
 msgstr "La licence de ce manuel."
 
 #. type: unnumbered
-#: doc/guix.texi:127 doc/guix.texi:24375 doc/guix.texi:24376
+#: doc/guix.texi:139 doc/guix.texi:25745 doc/guix.texi:25746
 #, no-wrap
 msgid "Concept Index"
 msgstr "Index des concepts"
 
 #. type: menuentry
-#: doc/guix.texi:127
+#: doc/guix.texi:139
 msgid "Concepts."
 msgstr "Les concepts."
 
 #. type: unnumbered
-#: doc/guix.texi:127 doc/guix.texi:24379 doc/guix.texi:24380
+#: doc/guix.texi:139 doc/guix.texi:25749 doc/guix.texi:25750
 #, no-wrap
 msgid "Programming Index"
 msgstr "Index de programmation"
 
 #. type: menuentry
-#: doc/guix.texi:127
+#: doc/guix.texi:139
 msgid "Data types, functions, and variables."
 msgstr "Types de données, fonctions et variables."
 
 #. type: menuentry
-#: doc/guix.texi:130
+#: doc/guix.texi:142
 msgid "--- The Detailed Node Listing ---"
 msgstr "--- Liste détaillée des nœuds ---"
 
 #. type: section
-#: doc/guix.texi:139 doc/guix.texi:424 doc/guix.texi:426 doc/guix.texi:427
+#: doc/guix.texi:147 doc/guix.texi:334 doc/guix.texi:336 doc/guix.texi:337
+#, no-wrap
+msgid "Managing Software the Guix Way"
+msgstr "Gérer ses logiciels avec Guix"
+
+#. type: menuentry
+#: doc/guix.texi:147 doc/guix.texi:334
+msgid "What's special."
+msgstr "Ce qui est spécial."
+
+#. type: section
+#: doc/guix.texi:147 doc/guix.texi:334 doc/guix.texi:391 doc/guix.texi:392
+#, no-wrap
+msgid "GNU Distribution"
+msgstr "Distribution GNU"
+
+#. type: menuentry
+#: doc/guix.texi:147 doc/guix.texi:334
+msgid "The packages and tools."
+msgstr "Les paquets et les outils."
+
+#. type: section
+#: doc/guix.texi:156 doc/guix.texi:505 doc/guix.texi:507 doc/guix.texi:508
 #, no-wrap
 msgid "Binary Installation"
 msgstr "Installation binaire"
 
 #. type: menuentry
-#: doc/guix.texi:139 doc/guix.texi:424
+#: doc/guix.texi:156 doc/guix.texi:505
 msgid "Getting Guix running in no time!"
 msgstr "Commencer à utiliser Guix en un rien de temps !"
 
 #. type: section
-#: doc/guix.texi:139 doc/guix.texi:424 doc/guix.texi:630 doc/guix.texi:631
+#: doc/guix.texi:156 doc/guix.texi:505 doc/guix.texi:706 doc/guix.texi:707
 #, no-wrap
 msgid "Requirements"
 msgstr "Prérequis"
 
 #. type: menuentry
-#: doc/guix.texi:139 doc/guix.texi:424
+#: doc/guix.texi:156 doc/guix.texi:505
 msgid "Software needed to build and run Guix."
 msgstr "Logiciels requis pour construire et lancer Guix."
 
 #. type: section
-#: doc/guix.texi:139 doc/guix.texi:424 doc/guix.texi:717 doc/guix.texi:718
+#: doc/guix.texi:156 doc/guix.texi:505 doc/guix.texi:790 doc/guix.texi:791
 #, no-wrap
 msgid "Running the Test Suite"
 msgstr "Lancer la suite de tests"
 
 #. type: menuentry
-#: doc/guix.texi:139 doc/guix.texi:424
+#: doc/guix.texi:156 doc/guix.texi:505
 msgid "Testing Guix."
 msgstr "Tester Guix."
 
 #. type: section
-#: doc/guix.texi:139 doc/guix.texi:141 doc/guix.texi:424 doc/guix.texi:782
-#: doc/guix.texi:783
+#: doc/guix.texi:156 doc/guix.texi:158 doc/guix.texi:505 doc/guix.texi:855
+#: doc/guix.texi:856
 #, no-wrap
 msgid "Setting Up the Daemon"
 msgstr "Paramétrer le démon"
 
 #. type: menuentry
-#: doc/guix.texi:139 doc/guix.texi:424
+#: doc/guix.texi:156 doc/guix.texi:505
 msgid "Preparing the build daemon's environment."
 msgstr "Préparer l'environnement du démon de construction."
 
 #. type: node
-#: doc/guix.texi:139 doc/guix.texi:424 doc/guix.texi:1215
+#: doc/guix.texi:156 doc/guix.texi:505 doc/guix.texi:1286
 #, no-wrap
 msgid "Invoking guix-daemon"
 msgstr "Invoquer guix-daemon"
 
 #. type: menuentry
-#: doc/guix.texi:139 doc/guix.texi:424
+#: doc/guix.texi:156 doc/guix.texi:505
 msgid "Running the build daemon."
 msgstr "Lancer le démon de construction."
 
 #. type: section
-#: doc/guix.texi:139 doc/guix.texi:424 doc/guix.texi:1484 doc/guix.texi:1485
+#: doc/guix.texi:156 doc/guix.texi:505 doc/guix.texi:1554 doc/guix.texi:1555
 #, no-wrap
 msgid "Application Setup"
 msgstr "Réglages applicatifs"
 
 #. type: menuentry
-#: doc/guix.texi:139 doc/guix.texi:424
+#: doc/guix.texi:156 doc/guix.texi:505
 msgid "Application-specific setup."
 msgstr "Réglages spécifiques pour les application."
 
 #. type: subsection
-#: doc/guix.texi:145 doc/guix.texi:802 doc/guix.texi:804 doc/guix.texi:805
+#: doc/guix.texi:162 doc/guix.texi:875 doc/guix.texi:877 doc/guix.texi:878
 #, no-wrap
 msgid "Build Environment Setup"
 msgstr "Réglages de l'environnement de construction"
 
 #. type: menuentry
-#: doc/guix.texi:145 doc/guix.texi:802
+#: doc/guix.texi:162 doc/guix.texi:875
 msgid "Preparing the isolated build environment."
 msgstr "Préparer l'environnement de construction isolé."
 
 #. type: node
-#: doc/guix.texi:145 doc/guix.texi:802 doc/guix.texi:921
+#: doc/guix.texi:162 doc/guix.texi:875 doc/guix.texi:994
 #, no-wrap
 msgid "Daemon Offload Setup"
 msgstr "Réglages du délestage du démon"
 
 #. type: menuentry
-#: doc/guix.texi:145 doc/guix.texi:802
+#: doc/guix.texi:162 doc/guix.texi:875
 msgid "Offloading builds to remote machines."
 msgstr "Envoyer des constructions à des machines distantes."
 
 #. type: subsection
-#: doc/guix.texi:145 doc/guix.texi:802 doc/guix.texi:1129 doc/guix.texi:1130
+#: doc/guix.texi:162 doc/guix.texi:875 doc/guix.texi:1200 doc/guix.texi:1201
 #, no-wrap
 msgid "SELinux Support"
 msgstr "Support de SELinux"
 
 #. type: menuentry
-#: doc/guix.texi:145 doc/guix.texi:802
+#: doc/guix.texi:162 doc/guix.texi:875
 msgid "Using an SELinux policy for the daemon."
 msgstr "Utiliser une politique SELinux pour le démon."
 
 #. type: section
-#: doc/guix.texi:159 doc/guix.texi:1728 doc/guix.texi:1730 doc/guix.texi:1731
+#: doc/guix.texi:174 doc/guix.texi:1236 doc/guix.texi:1794 doc/guix.texi:1796
+#: doc/guix.texi:1797
+#, no-wrap
+msgid "Limitations"
+msgstr "Limitations"
+
+#. type: menuentry
+#: doc/guix.texi:174 doc/guix.texi:1794
+msgid "What you can expect."
+msgstr "Ce à quoi vous attendre."
+
+#. type: section
+#: doc/guix.texi:174 doc/guix.texi:1794 doc/guix.texi:1825 doc/guix.texi:1826
+#, no-wrap
+msgid "Hardware Considerations"
+msgstr "Considérations matérielles"
+
+#. type: menuentry
+#: doc/guix.texi:174 doc/guix.texi:1794
+msgid "Supported hardware."
+msgstr "Matériel supporté."
+
+#. type: section
+#: doc/guix.texi:174 doc/guix.texi:1794 doc/guix.texi:1860 doc/guix.texi:1861
+#, no-wrap
+msgid "USB Stick and DVD Installation"
+msgstr "Installation depuis une clef USB ou un DVD"
+
+#. type: menuentry
+#: doc/guix.texi:174 doc/guix.texi:1794
+msgid "Preparing the installation medium."
+msgstr "Préparer le média d'installation."
+
+#. type: section
+#: doc/guix.texi:174 doc/guix.texi:1794 doc/guix.texi:1959 doc/guix.texi:1960
+#, no-wrap
+msgid "Preparing for Installation"
+msgstr "Préparer l'installation"
+
+#. type: menuentry
+#: doc/guix.texi:174 doc/guix.texi:1794
+msgid "Networking, partitioning, etc."
+msgstr "Réseau, partitionnement, etc."
+
+#. type: section
+#: doc/guix.texi:174 doc/guix.texi:1794 doc/guix.texi:1982 doc/guix.texi:1983
+#, no-wrap
+msgid "Guided Graphical Installation"
+msgstr "Installation graphique guidée"
+
+#. type: menuentry
+#: doc/guix.texi:174 doc/guix.texi:1794
+msgid "Easy graphical installation."
+msgstr "Installation graphique facile."
+
+#. type: section
+#: doc/guix.texi:174 doc/guix.texi:176 doc/guix.texi:1794 doc/guix.texi:2013
+#: doc/guix.texi:2014
+#, no-wrap
+msgid "Manual Installation"
+msgstr "Installation manuelle"
+
+#. type: menuentry
+#: doc/guix.texi:174 doc/guix.texi:1794
+msgid "Manual installation for wizards."
+msgstr "Installation manuelle pour les sorciers."
+
+#. type: section
+#: doc/guix.texi:174 doc/guix.texi:1794 doc/guix.texi:2356 doc/guix.texi:2357
+#, no-wrap
+msgid "After System Installation"
+msgstr "Après l'installation du système"
+
+#. type: menuentry
+#: doc/guix.texi:174 doc/guix.texi:1794
+msgid "When installation succeeded."
+msgstr "Une fois que l'installation a réussi."
+
+#. type: node
+#: doc/guix.texi:174 doc/guix.texi:1794 doc/guix.texi:2384
+#, no-wrap
+msgid "Installing Guix in a VM"
+msgstr "Installer Guix dans une VM"
+
+#. type: menuentry
+#: doc/guix.texi:174 doc/guix.texi:1794
+msgid "Guix System playground."
+msgstr "Jouer avec le système Guix."
+
+#. type: section
+#: doc/guix.texi:174 doc/guix.texi:1794 doc/guix.texi:2438 doc/guix.texi:2439
+#, no-wrap
+msgid "Building the Installation Image"
+msgstr "Construire l'image d'installation"
+
+#. type: menuentry
+#: doc/guix.texi:174 doc/guix.texi:1794
+msgid "How this comes to be."
+msgstr "D'où vient tout cela."
+
+#. type: node
+#: doc/guix.texi:179 doc/guix.texi:2031 doc/guix.texi:2033
+#, no-wrap
+msgid "Keyboard Layout and Networking and Partitioning"
+msgstr "Disposition du clavier réseau et partitionnement"
+
+#. type: menuentry
+#: doc/guix.texi:179 doc/guix.texi:2031
+msgid "Initial setup."
+msgstr "Paramètres initiaux."
+
+#. type: subsection
+#: doc/guix.texi:179 doc/guix.texi:2031 doc/guix.texi:2268 doc/guix.texi:2269
+#, no-wrap
+msgid "Proceeding with the Installation"
+msgstr "Effectuer l'installation"
+
+#. type: menuentry
+#: doc/guix.texi:179 doc/guix.texi:2031
+msgid "Installing."
+msgstr "Installer."
+
+#. type: section
+#: doc/guix.texi:192 doc/guix.texi:2503 doc/guix.texi:2505 doc/guix.texi:2506
 #, no-wrap
 msgid "Features"
 msgstr "Fonctionnalités"
 
 #. type: menuentry
-#: doc/guix.texi:159 doc/guix.texi:1728
+#: doc/guix.texi:192 doc/guix.texi:2503
 msgid "How Guix will make your life brighter."
 msgstr "Comment Guix va rendre votre vie plus heureuse."
 
 #. type: node
-#: doc/guix.texi:159 doc/guix.texi:1728 doc/guix.texi:1816
+#: doc/guix.texi:192 doc/guix.texi:2503 doc/guix.texi:2591
 #, no-wrap
 msgid "Invoking guix package"
 msgstr "Invoquer guix package"
 
 #. type: menuentry
-#: doc/guix.texi:159 doc/guix.texi:1728
+#: doc/guix.texi:192 doc/guix.texi:2503
 msgid "Package installation, removal, etc."
 msgstr "Installation, suppression, etc.@: de paquets."
 
 #. type: section
-#: doc/guix.texi:159 doc/guix.texi:161 doc/guix.texi:1728 doc/guix.texi:2300
-#: doc/guix.texi:2301
+#: doc/guix.texi:192 doc/guix.texi:194 doc/guix.texi:2503 doc/guix.texi:3072
+#: doc/guix.texi:3073
 #, no-wrap
 msgid "Substitutes"
 msgstr "Substituts"
 
 #. type: menuentry
-#: doc/guix.texi:159 doc/guix.texi:1728
+#: doc/guix.texi:192 doc/guix.texi:2503
 msgid "Downloading pre-built binaries."
 msgstr "Télécharger des binaire déjà construits."
 
 #. type: section
-#: doc/guix.texi:159 doc/guix.texi:1728 doc/guix.texi:2533 doc/guix.texi:2534
+#: doc/guix.texi:192 doc/guix.texi:2503 doc/guix.texi:3300 doc/guix.texi:3301
 #, no-wrap
 msgid "Packages with Multiple Outputs"
 msgstr "Des paquets avec plusieurs résultats"
 
 #. type: menuentry
-#: doc/guix.texi:159 doc/guix.texi:1728
+#: doc/guix.texi:192 doc/guix.texi:2503
 msgid "Single source package, multiple outputs."
 msgstr "Un seul paquet source, plusieurs résultats."
 
 #. type: node
-#: doc/guix.texi:159 doc/guix.texi:1728 doc/guix.texi:2587
+#: doc/guix.texi:192 doc/guix.texi:2503 doc/guix.texi:3354
 #, no-wrap
 msgid "Invoking guix gc"
 msgstr "Invoquer guix gc"
 
 #. type: menuentry
-#: doc/guix.texi:159 doc/guix.texi:1728
+#: doc/guix.texi:192 doc/guix.texi:2503
 msgid "Running the garbage collector."
 msgstr "Lancer le ramasse-miettes."
 
 #. type: node
-#: doc/guix.texi:159 doc/guix.texi:1728 doc/guix.texi:2775
+#: doc/guix.texi:192 doc/guix.texi:2503 doc/guix.texi:3560
 #, no-wrap
 msgid "Invoking guix pull"
 msgstr "Invoquer guix pull"
 
 #. type: menuentry
-#: doc/guix.texi:159 doc/guix.texi:1728
+#: doc/guix.texi:192 doc/guix.texi:2503
 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:159 doc/guix.texi:1728 doc/guix.texi:2916 doc/guix.texi:2917
+#: doc/guix.texi:192 doc/guix.texi:2503 doc/guix.texi:3715 doc/guix.texi:3716
 #, no-wrap
 msgid "Channels"
 msgstr "Canaux"
 
 #. type: menuentry
-#: doc/guix.texi:159 doc/guix.texi:1728
+#: doc/guix.texi:192 doc/guix.texi:2503
 msgid "Customizing the package collection."
 msgstr "Personnaliser la collection des paquets."
 
 #. type: section
-#: doc/guix.texi:159 doc/guix.texi:1728 doc/guix.texi:3086 doc/guix.texi:3087
+#: doc/guix.texi:192 doc/guix.texi:2503 doc/guix.texi:3928 doc/guix.texi:3929
 #, no-wrap
 msgid "Inferiors"
 msgstr "Inférieurs"
 
 #. type: menuentry
-#: doc/guix.texi:159 doc/guix.texi:1728
+#: doc/guix.texi:192 doc/guix.texi:2503
 msgid "Interacting with another revision of Guix."
 msgstr "Interagir avec une autre révision de Guix."
 
 #. type: node
-#: doc/guix.texi:159 doc/guix.texi:1728 doc/guix.texi:3214
+#: doc/guix.texi:192 doc/guix.texi:2503 doc/guix.texi:4056
 #, no-wrap
 msgid "Invoking guix describe"
 msgstr "Invoquer guix describe"
 
 #. type: menuentry
-#: doc/guix.texi:159 doc/guix.texi:1728
+#: doc/guix.texi:192 doc/guix.texi:2503
 msgid "Display information about your Guix revision."
 msgstr "Affiche des informations sur la révision Guix actuelle."
 
 #. type: node
-#: doc/guix.texi:159 doc/guix.texi:1728 doc/guix.texi:3295
-#, no-wrap
-msgid "Invoking guix pack"
-msgstr "Invoquer guix pack"
-
-#. type: menuentry
-#: doc/guix.texi:159 doc/guix.texi:1728
-msgid "Creating software bundles."
-msgstr "Créer des lots de logiciels."
-
-#. type: node
-#: doc/guix.texi:159 doc/guix.texi:1728 doc/guix.texi:3522
+#: doc/guix.texi:192 doc/guix.texi:2503 doc/guix.texi:4137
 #, no-wrap
 msgid "Invoking guix archive"
 msgstr "Invoquer guix archive"
 
 #. type: menuentry
-#: doc/guix.texi:159 doc/guix.texi:1728
+#: doc/guix.texi:192 doc/guix.texi:2503
 msgid "Exporting and importing store files."
 msgstr "Exporter et importer des fichiers du dépôt."
 
 #. type: subsection
-#: doc/guix.texi:168 doc/guix.texi:2323 doc/guix.texi:2325 doc/guix.texi:2326
+#: doc/guix.texi:201 doc/guix.texi:3095 doc/guix.texi:3097 doc/guix.texi:3098
 #, no-wrap
 msgid "Official Substitute Server"
 msgstr "Serveur de substituts officiel"
 
 #. type: menuentry
-#: doc/guix.texi:168 doc/guix.texi:2323
+#: doc/guix.texi:201 doc/guix.texi:3095
 msgid "One particular source of substitutes."
 msgstr "Une source particulière de substituts."
 
 #. type: subsection
-#: doc/guix.texi:168 doc/guix.texi:2323 doc/guix.texi:2355 doc/guix.texi:2356
+#: doc/guix.texi:201 doc/guix.texi:3095 doc/guix.texi:3127 doc/guix.texi:3128
 #, no-wrap
 msgid "Substitute Server Authorization"
 msgstr "Autoriser un serveur de substituts"
 
 #. type: menuentry
-#: doc/guix.texi:168 doc/guix.texi:2323
+#: doc/guix.texi:201 doc/guix.texi:3095
 msgid "How to enable or disable substitutes."
 msgstr "Comment activer ou désactiver les substituts."
 
 #. type: subsection
-#: doc/guix.texi:168 doc/guix.texi:2323 doc/guix.texi:2428 doc/guix.texi:2429
+#: doc/guix.texi:201 doc/guix.texi:3095 doc/guix.texi:3195 doc/guix.texi:3196
 #, no-wrap
 msgid "Substitute Authentication"
 msgstr "Authentification des substituts"
 
 #. type: menuentry
-#: doc/guix.texi:168 doc/guix.texi:2323
+#: doc/guix.texi:201 doc/guix.texi:3095
 msgid "How Guix verifies substitutes."
 msgstr "Comment Guix vérifie les substituts."
 
 #. type: subsection
-#: doc/guix.texi:168 doc/guix.texi:2323 doc/guix.texi:2463 doc/guix.texi:2464
+#: doc/guix.texi:201 doc/guix.texi:3095 doc/guix.texi:3230 doc/guix.texi:3231
 #, no-wrap
 msgid "Proxy Settings"
 msgstr "Paramètres de serveur mandataire"
 
 #. type: menuentry
-#: doc/guix.texi:168 doc/guix.texi:2323
+#: doc/guix.texi:201 doc/guix.texi:3095
 msgid "How to get substitutes via proxy."
 msgstr "Comment récupérer des substituts à travers un serveur mandataire."
 
 #. type: subsection
-#: doc/guix.texi:168 doc/guix.texi:2323 doc/guix.texi:2475 doc/guix.texi:2476
+#: doc/guix.texi:201 doc/guix.texi:3095 doc/guix.texi:3242 doc/guix.texi:3243
 #, no-wrap
 msgid "Substitution Failure"
 msgstr "Échec de substitution"
 
 #. type: menuentry
-#: doc/guix.texi:168 doc/guix.texi:2323
+#: doc/guix.texi:201 doc/guix.texi:3095
 msgid "What happens when substitution fails."
 msgstr "Qu'arrive-t-il quand la substitution échoue."
 
 #. type: subsection
-#: doc/guix.texi:168 doc/guix.texi:2323 doc/guix.texi:2503 doc/guix.texi:2504
+#: doc/guix.texi:201 doc/guix.texi:3095 doc/guix.texi:3270 doc/guix.texi:3271
 #, no-wrap
 msgid "On Trusting Binaries"
 msgstr "De la confiance en des binaires"
 
 #. type: menuentry
-#: doc/guix.texi:168 doc/guix.texi:2323
+#: doc/guix.texi:201 doc/guix.texi:3095
 msgid "How can you trust that binary blob?"
 msgstr "Comment pouvez-vous avoir confiance en un paquet binaire ?"
 
+#. type: node
+#: doc/guix.texi:206 doc/guix.texi:4320 doc/guix.texi:4322
+#, no-wrap
+msgid "Invoking guix environment"
+msgstr "Invoquer guix environment"
+
+#. type: menuentry
+#: doc/guix.texi:206 doc/guix.texi:4320
+msgid "Setting up development environments."
+msgstr "Mettre en place des environnements de développement."
+
+#. type: node
+#: doc/guix.texi:206 doc/guix.texi:4320 doc/guix.texi:4661
+#, no-wrap
+msgid "Invoking guix pack"
+msgstr "Invoquer guix pack"
+
+#. type: menuentry
+#: doc/guix.texi:206 doc/guix.texi:4320
+msgid "Creating software bundles."
+msgstr "Créer des lots de logiciels."
+
 #. type: section
-#: doc/guix.texi:178 doc/guix.texi:180 doc/guix.texi:3723 doc/guix.texi:3725
-#: doc/guix.texi:3726
+#: doc/guix.texi:217 doc/guix.texi:4964 doc/guix.texi:4966 doc/guix.texi:4967
+#, no-wrap
+msgid "Package Modules"
+msgstr "Modules de paquets"
+
+#. type: menuentry
+#: doc/guix.texi:217 doc/guix.texi:4964
+msgid "Packages from the programmer's viewpoint."
+msgstr "Les paquets du point de vu du programmeur."
+
+#. type: section
+#: doc/guix.texi:217 doc/guix.texi:219 doc/guix.texi:4964 doc/guix.texi:5028
+#: doc/guix.texi:5029
 #, no-wrap
 msgid "Defining Packages"
 msgstr "Définition des paquets"
 
 #. type: menuentry
-#: doc/guix.texi:178 doc/guix.texi:3723
+#: doc/guix.texi:217 doc/guix.texi:4964
 msgid "Defining new packages."
 msgstr "Définir de nouveaux paquets."
 
 #. type: section
-#: doc/guix.texi:178 doc/guix.texi:3723 doc/guix.texi:4189 doc/guix.texi:4190
+#: doc/guix.texi:217 doc/guix.texi:4964 doc/guix.texi:5532 doc/guix.texi:5533
 #, no-wrap
 msgid "Build Systems"
 msgstr "Systèmes de construction"
 
 #. type: menuentry
-#: doc/guix.texi:178 doc/guix.texi:3723
+#: doc/guix.texi:217 doc/guix.texi:4964
 msgid "Specifying how packages are built."
 msgstr "Spécifier comment construire les paquets."
 
 #. type: section
-#: doc/guix.texi:178 doc/guix.texi:3723 doc/guix.texi:4856 doc/guix.texi:4857
+#: doc/guix.texi:217 doc/guix.texi:4964 doc/guix.texi:6270 doc/guix.texi:6271
 #, no-wrap
 msgid "The Store"
 msgstr "Le dépôt"
 
 #. type: menuentry
-#: doc/guix.texi:178 doc/guix.texi:3723
+#: doc/guix.texi:217 doc/guix.texi:4964
 msgid "Manipulating the package store."
 msgstr "Manipuler le dépôt de paquets."
 
 #. type: section
-#: doc/guix.texi:178 doc/guix.texi:3723 doc/guix.texi:5006 doc/guix.texi:5007
+#: doc/guix.texi:217 doc/guix.texi:4964 doc/guix.texi:6420 doc/guix.texi:6421
 #, no-wrap
 msgid "Derivations"
 msgstr "Dérivations"
 
 #. type: menuentry
-#: doc/guix.texi:178 doc/guix.texi:3723
+#: doc/guix.texi:217 doc/guix.texi:4964
 msgid "Low-level interface to package derivations."
 msgstr "Interface de bas-niveau avec les dérivations de paquets."
 
 #. type: section
-#: doc/guix.texi:178 doc/guix.texi:3723 doc/guix.texi:5187 doc/guix.texi:5188
+#: doc/guix.texi:217 doc/guix.texi:4964 doc/guix.texi:6614 doc/guix.texi:6615
 #, no-wrap
 msgid "The Store Monad"
 msgstr "La monade du dépôt"
 
 #. type: menuentry
-#: doc/guix.texi:178 doc/guix.texi:3723
+#: doc/guix.texi:217 doc/guix.texi:4964
 msgid "Purely functional interface to the store."
 msgstr "Interface purement fonctionnelle avec le dépôt."
 
 #. type: section
-#: doc/guix.texi:178 doc/guix.texi:3723 doc/guix.texi:5502 doc/guix.texi:5503
+#: doc/guix.texi:217 doc/guix.texi:4964 doc/guix.texi:6929 doc/guix.texi:6930
 #, no-wrap
 msgid "G-Expressions"
 msgstr "G-Expressions"
 
 #. type: menuentry
-#: doc/guix.texi:178 doc/guix.texi:3723
+#: doc/guix.texi:217 doc/guix.texi:4964
 msgid "Manipulating build expressions."
 msgstr "Manipuler les expressions de construction."
 
 #. type: node
-#: doc/guix.texi:178 doc/guix.texi:3723 doc/guix.texi:6076
+#: doc/guix.texi:217 doc/guix.texi:4964 doc/guix.texi:7503
 #, no-wrap
 msgid "Invoking guix repl"
 msgstr "Invoquer guix repl"
 
 #. type: menuentry
-#: doc/guix.texi:178 doc/guix.texi:3723
+#: doc/guix.texi:217 doc/guix.texi:4964
 msgid "Fiddling with Guix interactively."
 msgstr "S'amuser avec Guix de manière interactive."
 
 #. type: node
-#: doc/guix.texi:183 doc/guix.texi:3971 doc/guix.texi:3974
+#: doc/guix.texi:222 doc/guix.texi:5297 doc/guix.texi:5300
 #, no-wrap
 msgid "package Reference"
-msgstr "Référence de paquet"
+msgstr "Référence des paquets"
 
 #. type: menuentry
-#: doc/guix.texi:183 doc/guix.texi:3971
+#: doc/guix.texi:222 doc/guix.texi:5297
 msgid "The package data type."
 msgstr "Le type de donnée des paquets."
 
 #. type: node
-#: doc/guix.texi:183 doc/guix.texi:3971 doc/guix.texi:4101
+#: doc/guix.texi:222 doc/guix.texi:5297 doc/guix.texi:5444
 #, no-wrap
 msgid "origin Reference"
-msgstr "Référence d'origine"
+msgstr "Référence des origines"
 
 #. type: menuentry
-#: doc/guix.texi:183 doc/guix.texi:3971
+#: doc/guix.texi:222 doc/guix.texi:5297
 msgid "The origin data type."
 msgstr "Le type de données d'origine."
 
 #. type: node
-#: doc/guix.texi:202 doc/guix.texi:6154 doc/guix.texi:6156
+#: doc/guix.texi:240 doc/guix.texi:7580 doc/guix.texi:7582
 #, no-wrap
 msgid "Invoking guix build"
 msgstr "Invoquer guix build"
 
 #. type: menuentry
-#: doc/guix.texi:202 doc/guix.texi:6154
+#: doc/guix.texi:240 doc/guix.texi:7580
 msgid "Building packages from the command line."
 msgstr "Construire des paquets depuis la ligne de commande."
 
 #. type: node
-#: doc/guix.texi:202 doc/guix.texi:6154 doc/guix.texi:6746
+#: doc/guix.texi:240 doc/guix.texi:7580 doc/guix.texi:8233
 #, no-wrap
 msgid "Invoking guix edit"
 msgstr "Invoquer guix edit"
 
 #. type: menuentry
-#: doc/guix.texi:202 doc/guix.texi:6154
+#: doc/guix.texi:240 doc/guix.texi:7580
 msgid "Editing package definitions."
 msgstr "Modifier les définitions de paquets."
 
 #. type: node
-#: doc/guix.texi:202 doc/guix.texi:6154 doc/guix.texi:6772
+#: doc/guix.texi:240 doc/guix.texi:7580 doc/guix.texi:8259
 #, no-wrap
 msgid "Invoking guix download"
 msgstr "Invoquer guix download"
 
 #. type: menuentry
-#: doc/guix.texi:202 doc/guix.texi:6154
+#: doc/guix.texi:240 doc/guix.texi:7580
 msgid "Downloading a file and printing its hash."
 msgstr "Télécharger un fichier et afficher son hash."
 
 #. type: node
-#: doc/guix.texi:202 doc/guix.texi:6154 doc/guix.texi:6825
+#: doc/guix.texi:240 doc/guix.texi:7580 doc/guix.texi:8312
 #, no-wrap
 msgid "Invoking guix hash"
 msgstr "Invoquer guix hash"
 
 #. type: menuentry
-#: doc/guix.texi:202 doc/guix.texi:6154
+#: doc/guix.texi:240 doc/guix.texi:7580
 msgid "Computing the cryptographic hash of a file."
 msgstr "Calculer le hash cryptographique d'un fichier."
 
 #. type: node
-#: doc/guix.texi:202 doc/guix.texi:6154 doc/guix.texi:6887
+#: doc/guix.texi:240 doc/guix.texi:7580 doc/guix.texi:8374
 #, no-wrap
 msgid "Invoking guix import"
 msgstr "Invoquer guix import"
 
 #. type: menuentry
-#: doc/guix.texi:202 doc/guix.texi:6154
+#: doc/guix.texi:240 doc/guix.texi:7580
 msgid "Importing package definitions."
 msgstr "Importer des définitions de paquets."
 
 #. type: node
-#: doc/guix.texi:202 doc/guix.texi:6154 doc/guix.texi:7292
+#: doc/guix.texi:240 doc/guix.texi:7580 doc/guix.texi:8772
 #, no-wrap
 msgid "Invoking guix refresh"
 msgstr "Invoquer guix refresh"
 
 #. type: menuentry
-#: doc/guix.texi:202 doc/guix.texi:6154
+#: doc/guix.texi:240 doc/guix.texi:7580
 msgid "Updating package definitions."
 msgstr "Mettre à jour les définitions de paquets."
 
 #. type: node
-#: doc/guix.texi:202 doc/guix.texi:6154 doc/guix.texi:7569
+#: doc/guix.texi:240 doc/guix.texi:7580 doc/guix.texi:9083
 #, no-wrap
 msgid "Invoking guix lint"
 msgstr "Invoquer guix lint"
 
 #. type: menuentry
-#: doc/guix.texi:202 doc/guix.texi:6154
+#: doc/guix.texi:240 doc/guix.texi:7580
 msgid "Finding errors in package definitions."
 msgstr "Trouver des erreurs dans les définitions de paquets."
 
 #. type: node
-#: doc/guix.texi:202 doc/guix.texi:6154 doc/guix.texi:7678
+#: doc/guix.texi:240 doc/guix.texi:7580 doc/guix.texi:9199
 #, no-wrap
 msgid "Invoking guix size"
 msgstr "Invoquer guix size"
 
 #. type: menuentry
-#: doc/guix.texi:202 doc/guix.texi:6154
+#: doc/guix.texi:240 doc/guix.texi:7580
 msgid "Profiling disk usage."
 msgstr "Profiler l'utilisation du disque."
 
 #. type: node
-#: doc/guix.texi:202 doc/guix.texi:6154 doc/guix.texi:7802
+#: doc/guix.texi:240 doc/guix.texi:7580 doc/guix.texi:9323
 #, no-wrap
 msgid "Invoking guix graph"
 msgstr "Invoquer guix graph"
 
 #. type: menuentry
-#: doc/guix.texi:202 doc/guix.texi:6154
+#: doc/guix.texi:240 doc/guix.texi:7580
 msgid "Visualizing the graph of packages."
 msgstr "Visualiser le graphe des paquets."
 
 #. type: node
-#: doc/guix.texi:202 doc/guix.texi:6154 doc/guix.texi:7988
-#, no-wrap
-msgid "Invoking guix environment"
-msgstr "Invoquer guix environment"
-
-#. type: menuentry
-#: doc/guix.texi:202 doc/guix.texi:6154
-msgid "Setting up development environments."
-msgstr "Mettre en place des environnements de développement."
-
-#. type: node
-#: doc/guix.texi:202 doc/guix.texi:6154 doc/guix.texi:8307
+#: doc/guix.texi:240 doc/guix.texi:7580 doc/guix.texi:9526
 #, no-wrap
 msgid "Invoking guix publish"
 msgstr "Invoquer guix publish"
 
 #. type: menuentry
-#: doc/guix.texi:202 doc/guix.texi:6154
+#: doc/guix.texi:240 doc/guix.texi:7580
 msgid "Sharing substitutes."
 msgstr "Partager des substituts."
 
 #. type: node
-#: doc/guix.texi:202 doc/guix.texi:6154 doc/guix.texi:8524
+#: doc/guix.texi:240 doc/guix.texi:7580 doc/guix.texi:9743
 #, no-wrap
 msgid "Invoking guix challenge"
 msgstr "Invoquer guix challenge"
 
 #. type: menuentry
-#: doc/guix.texi:202 doc/guix.texi:6154
+#: doc/guix.texi:240 doc/guix.texi:7580
 msgid "Challenging substitute servers."
 msgstr "Défier les serveurs de substituts."
 
 #. type: node
-#: doc/guix.texi:202 doc/guix.texi:6154 doc/guix.texi:8663
+#: doc/guix.texi:240 doc/guix.texi:7580 doc/guix.texi:9882
 #, no-wrap
 msgid "Invoking guix copy"
 msgstr "Invoquer guix copy"
 
 #. type: menuentry
-#: doc/guix.texi:202 doc/guix.texi:6154
+#: doc/guix.texi:240 doc/guix.texi:7580
 msgid "Copying to and from a remote store."
 msgstr "Copier vers et depuis un dépôt distant."
 
 #. type: node
-#: doc/guix.texi:202 doc/guix.texi:6154 doc/guix.texi:8726
+#: doc/guix.texi:240 doc/guix.texi:7580 doc/guix.texi:9945
 #, no-wrap
 msgid "Invoking guix container"
 msgstr "Invoquer guix container"
 
 #. type: menuentry
-#: doc/guix.texi:202 doc/guix.texi:6154
+#: doc/guix.texi:240 doc/guix.texi:7580
 msgid "Process isolation."
 msgstr "Isolation de processus."
 
 #. type: node
-#: doc/guix.texi:202 doc/guix.texi:6154 doc/guix.texi:8780
+#: doc/guix.texi:240 doc/guix.texi:7580 doc/guix.texi:9999
 #, no-wrap
 msgid "Invoking guix weather"
 msgstr "Invoquer guix weather"
 
 #. type: menuentry
-#: doc/guix.texi:202 doc/guix.texi:6154
+#: doc/guix.texi:240 doc/guix.texi:7580
 msgid "Assessing substitute availability."
 msgstr "Mesurer la disponibilité des substituts."
 
 #. type: node
-#: doc/guix.texi:202 doc/guix.texi:6154 doc/guix.texi:8858
+#: doc/guix.texi:240 doc/guix.texi:7580 doc/guix.texi:10110
 #, no-wrap
 msgid "Invoking guix processes"
 msgstr "Invoquer guix processes"
 
 #. type: menuentry
-#: doc/guix.texi:202 doc/guix.texi:6154
+#: doc/guix.texi:240 doc/guix.texi:7580
 msgid "Listing client processes."
 msgstr "Lister les processus clients."
 
 #. type: section
-#: doc/guix.texi:204 doc/guix.texi:6157
+#: doc/guix.texi:242 doc/guix.texi:7583
 #, no-wrap
 msgid "Invoking @command{guix build}"
 msgstr "Invoquer @command{guix build}"
 
 #. type: subsection
-#: doc/guix.texi:209 doc/guix.texi:6208 doc/guix.texi:6210 doc/guix.texi:6211
+#: doc/guix.texi:247 doc/guix.texi:7634 doc/guix.texi:7636 doc/guix.texi:7637
 #, no-wrap
 msgid "Common Build Options"
 msgstr "Options de construction communes"
 
 #. type: menuentry
-#: doc/guix.texi:209 doc/guix.texi:6208
+#: doc/guix.texi:247 doc/guix.texi:7634
 msgid "Build options for most commands."
 msgstr "Options de construction pour la plupart des commandes."
 
 #. type: subsection
-#: doc/guix.texi:209 doc/guix.texi:6208 doc/guix.texi:6356 doc/guix.texi:6357
+#: doc/guix.texi:247 doc/guix.texi:7634 doc/guix.texi:7792 doc/guix.texi:7793
 #, no-wrap
 msgid "Package Transformation Options"
 msgstr "Options de transformation de paquets"
 
 #. type: menuentry
-#: doc/guix.texi:209 doc/guix.texi:6208
+#: doc/guix.texi:247 doc/guix.texi:7634
 msgid "Creating variants of packages."
 msgstr "Créer des variantes de paquets."
 
 #. type: subsection
-#: doc/guix.texi:209 doc/guix.texi:6208 doc/guix.texi:6456 doc/guix.texi:6457
+#: doc/guix.texi:247 doc/guix.texi:7634 doc/guix.texi:7941 doc/guix.texi:7942
 #, no-wrap
 msgid "Additional Build Options"
 msgstr "Options de construction supplémentaires"
 
 #. type: menuentry
-#: doc/guix.texi:209 doc/guix.texi:6208
+#: doc/guix.texi:247 doc/guix.texi:7634
 msgid "Options specific to 'guix build'."
 msgstr "Options spécifiques à « guix build »."
 
 #. type: subsection
-#: doc/guix.texi:209 doc/guix.texi:6208 doc/guix.texi:6666 doc/guix.texi:6667
+#: doc/guix.texi:247 doc/guix.texi:7634 doc/guix.texi:8153 doc/guix.texi:8154
 #, no-wrap
 msgid "Debugging Build Failures"
 msgstr "Débogage des échecs de construction"
 
 #. type: menuentry
-#: doc/guix.texi:209 doc/guix.texi:6208
+#: doc/guix.texi:247 doc/guix.texi:7634
 msgid "Real life packaging experience."
 msgstr "La vie d'un empaqueteur."
 
 #. type: section
-#: doc/guix.texi:221 doc/guix.texi:223 doc/guix.texi:8987 doc/guix.texi:8992
-#: doc/guix.texi:8993
-#, no-wrap
-msgid "System Installation"
-msgstr "Installation du système"
-
-#. type: menuentry
-#: doc/guix.texi:221 doc/guix.texi:8987
-msgid "Installing the whole operating system."
-msgstr "Installer le système d'exploitation complet."
-
-#. type: section
-#: doc/guix.texi:221 doc/guix.texi:233 doc/guix.texi:8987 doc/guix.texi:9636
-#: doc/guix.texi:9637
-#, no-wrap
-msgid "System Configuration"
-msgstr "Configuration système"
-
-#. type: menuentry
-#: doc/guix.texi:221 doc/guix.texi:8987
-msgid "Configuring the operating system."
-msgstr "Configurer le système d'exploitation."
-
-#. type: section
-#: doc/guix.texi:221 doc/guix.texi:8987 doc/guix.texi:23352
-#: doc/guix.texi:23353
-#, no-wrap
-msgid "Documentation"
-msgstr "Documentation"
-
-#. type: menuentry
-#: doc/guix.texi:221 doc/guix.texi:8987
-msgid "Browsing software user manuals."
-msgstr "Visualiser les manuels d'utilisateur des logiciels."
-
-#. type: section
-#: doc/guix.texi:221 doc/guix.texi:8987 doc/guix.texi:23416
-#: doc/guix.texi:23417
-#, no-wrap
-msgid "Installing Debugging Files"
-msgstr "Installer les fichiers de débogage"
-
-#. type: menuentry
-#: doc/guix.texi:221 doc/guix.texi:8987
-msgid "Feeding the debugger."
-msgstr "Nourrir le débogueur."
-
-#. type: section
-#: doc/guix.texi:221 doc/guix.texi:8987 doc/guix.texi:23482
-#: doc/guix.texi:23483
-#, no-wrap
-msgid "Security Updates"
-msgstr "Mises à jour de sécurité"
-
-#. type: menuentry
-#: doc/guix.texi:221 doc/guix.texi:8987
-msgid "Deploying security fixes quickly."
-msgstr "Déployer des correctifs de sécurité rapidement."
-
-#. type: section
-#: doc/guix.texi:221 doc/guix.texi:8987 doc/guix.texi:23602
-#: doc/guix.texi:23603
-#, no-wrap
-msgid "Package Modules"
-msgstr "Modules de paquets"
-
-#. type: menuentry
-#: doc/guix.texi:221 doc/guix.texi:8987
-msgid "Packages from the programmer's viewpoint."
-msgstr "Les paquets du point de vu du programmeur."
-
-#. type: section
-#: doc/guix.texi:221 doc/guix.texi:287 doc/guix.texi:8987 doc/guix.texi:23664
-#: doc/guix.texi:23665
-#, no-wrap
-msgid "Packaging Guidelines"
-msgstr "Consignes d'empaquetage"
-
-#. type: menuentry
-#: doc/guix.texi:221 doc/guix.texi:8987
-msgid "Growing the distribution."
-msgstr "Faire grandir la distribution."
-
-#. type: section
-#: doc/guix.texi:221 doc/guix.texi:8987 doc/guix.texi:24115
-#: doc/guix.texi:24116
-#, no-wrap
-msgid "Bootstrapping"
-msgstr "Bootstrapping"
-
-#. type: menuentry
-#: doc/guix.texi:221 doc/guix.texi:8987
-msgid "GNU/Linux built from scratch."
-msgstr "GNU/Linux depuis zéro."
-
-#. type: node
-#: doc/guix.texi:221 doc/guix.texi:8987 doc/guix.texi:24299
-#, no-wrap
-msgid "Porting"
-msgstr "Porter"
-
-#. type: menuentry
-#: doc/guix.texi:221 doc/guix.texi:8987
-msgid "Targeting another platform or kernel."
-msgstr "Cibler une autre plateforme ou un autre noyau."
-
-#. type: subsection
-#: doc/guix.texi:231 doc/guix.texi:1165 doc/guix.texi:9024 doc/guix.texi:9026
-#: doc/guix.texi:9027
-#, no-wrap
-msgid "Limitations"
-msgstr "Limitations"
-
-#. type: menuentry
-#: doc/guix.texi:231 doc/guix.texi:9024
-msgid "What you can expect."
-msgstr "Ce à quoi vous attendre."
-
-#. type: subsection
-#: doc/guix.texi:231 doc/guix.texi:9024 doc/guix.texi:9070 doc/guix.texi:9071
-#, no-wrap
-msgid "Hardware Considerations"
-msgstr "Considérations matérielles"
-
-#. type: menuentry
-#: doc/guix.texi:231 doc/guix.texi:9024
-msgid "Supported hardware."
-msgstr "Matériel supporté."
-
-#. type: subsection
-#: doc/guix.texi:231 doc/guix.texi:9024 doc/guix.texi:9105 doc/guix.texi:9106
-#, no-wrap
-msgid "USB Stick and DVD Installation"
-msgstr "Installation depuis une clef USB ou un DVD"
-
-#. type: menuentry
-#: doc/guix.texi:231 doc/guix.texi:9024
-msgid "Preparing the installation medium."
-msgstr "Préparer le média d'installation."
-
-#. type: subsection
-#: doc/guix.texi:231 doc/guix.texi:9024 doc/guix.texi:9204 doc/guix.texi:9205
-#, no-wrap
-msgid "Preparing for Installation"
-msgstr "Préparer l'installation"
-
-#. type: menuentry
-#: doc/guix.texi:231 doc/guix.texi:9024
-msgid "Networking, partitioning, etc."
-msgstr "Réseau, partitionnement, etc."
-
-#. type: subsection
-#: doc/guix.texi:231 doc/guix.texi:9024 doc/guix.texi:9454 doc/guix.texi:9455
-#, no-wrap
-msgid "Proceeding with the Installation"
-msgstr "Effectuer l'installation"
-
-#. type: menuentry
-#: doc/guix.texi:231 doc/guix.texi:9024
-msgid "The real thing."
-msgstr "Pour de vrai."
-
-#. type: node
-#: doc/guix.texi:231 doc/guix.texi:9024 doc/guix.texi:9551
-#, no-wrap
-msgid "Installing GuixSD in a VM"
-msgstr "Installer GuixSD dans une VM"
-
-#. type: menuentry
-#: doc/guix.texi:231 doc/guix.texi:9024
-msgid "GuixSD playground."
-msgstr "Jouer avec GuixSD@."
-
-#. type: subsection
-#: doc/guix.texi:231 doc/guix.texi:9024 doc/guix.texi:9605 doc/guix.texi:9606
-#, no-wrap
-msgid "Building the Installation Image"
-msgstr "Construire l'image d'installation"
-
-#. type: menuentry
-#: doc/guix.texi:231 doc/guix.texi:9024
-msgid "How this comes to be."
-msgstr "D'où vient tout cela."
-
-#. type: subsection
-#: doc/guix.texi:249 doc/guix.texi:9677 doc/guix.texi:9679 doc/guix.texi:9680
+#: doc/guix.texi:266 doc/guix.texi:10209 doc/guix.texi:10211
+#: doc/guix.texi:10212
 #, no-wrap
 msgid "Using the Configuration System"
 msgstr "Utiliser le système de configuration"
 
 #. type: menuentry
-#: doc/guix.texi:249 doc/guix.texi:9677
+#: doc/guix.texi:266 doc/guix.texi:10209
 msgid "Customizing your GNU system."
 msgstr "Personnaliser votre système GNU@."
 
 #. type: node
-#: doc/guix.texi:249 doc/guix.texi:9677 doc/guix.texi:9915
+#: doc/guix.texi:266 doc/guix.texi:10209 doc/guix.texi:10447
 #, no-wrap
 msgid "operating-system Reference"
 msgstr "Référence de système d'exploitation"
 
 #. type: menuentry
-#: doc/guix.texi:249 doc/guix.texi:9677
+#: doc/guix.texi:266 doc/guix.texi:10209
 msgid "Detail of operating-system declarations."
 msgstr "Détail sur la déclaration de système d'exploitation."
 
-#. type: subsection
-#: doc/guix.texi:249 doc/guix.texi:9677 doc/guix.texi:10069
-#: doc/guix.texi:10070
+#. type: section
+#: doc/guix.texi:266 doc/guix.texi:10209 doc/guix.texi:10651
+#: doc/guix.texi:10652
 #, no-wrap
 msgid "File Systems"
 msgstr "Systèmes de fichiers"
 
 #. type: menuentry
-#: doc/guix.texi:249 doc/guix.texi:9677
+#: doc/guix.texi:266 doc/guix.texi:10209
 msgid "Configuring file system mounts."
 msgstr "Configurer les montages de systèmes de fichiers."
 
-#. type: subsection
-#: doc/guix.texi:249 doc/guix.texi:9677 doc/guix.texi:10234
-#: doc/guix.texi:10235
+#. type: section
+#: doc/guix.texi:266 doc/guix.texi:10209 doc/guix.texi:10816
+#: doc/guix.texi:10817
 #, no-wrap
 msgid "Mapped Devices"
 msgstr "Périphériques mappés"
 
 #. type: menuentry
-#: doc/guix.texi:249 doc/guix.texi:9677
+#: doc/guix.texi:266 doc/guix.texi:10209
 msgid "Block device extra processing."
 msgstr "Gestion des périphériques de bloc."
 
-#. type: subsection
-#: doc/guix.texi:249 doc/guix.texi:9677 doc/guix.texi:10355
-#: doc/guix.texi:10356
+#. type: section
+#: doc/guix.texi:266 doc/guix.texi:10209 doc/guix.texi:10937
+#: doc/guix.texi:10938
 #, no-wrap
 msgid "User Accounts"
 msgstr "Comptes utilisateurs"
 
 #. type: menuentry
-#: doc/guix.texi:249 doc/guix.texi:9677
+#: doc/guix.texi:266 doc/guix.texi:10209
 msgid "Specifying user accounts."
 msgstr "Spécifier des comptes utilisateurs."
 
-#. type: subsection
-#: doc/guix.texi:249 doc/guix.texi:1492 doc/guix.texi:9677 doc/guix.texi:10490
-#: doc/guix.texi:10491
+#. type: section
+#: doc/guix.texi:266 doc/guix.texi:2040 doc/guix.texi:10209
+#: doc/guix.texi:11090 doc/guix.texi:11091
+#, no-wrap
+msgid "Keyboard Layout"
+msgstr "Disposition du clavier"
+
+#. type: menuentry
+#: doc/guix.texi:266 doc/guix.texi:10209
+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:266 doc/guix.texi:1562 doc/guix.texi:10209
+#: doc/guix.texi:11222 doc/guix.texi:11223
 #, no-wrap
 msgid "Locales"
 msgstr "Régionalisation"
 
 #. type: menuentry
-#: doc/guix.texi:249 doc/guix.texi:9677
+#: doc/guix.texi:266 doc/guix.texi:10209
 msgid "Language and cultural convention settings."
 msgstr "Paramétrer la langue et les conventions culturelles."
 
-#. type: subsection
-#: doc/guix.texi:249 doc/guix.texi:251 doc/guix.texi:9677 doc/guix.texi:10630
-#: doc/guix.texi:10631
+#. type: section
+#: doc/guix.texi:266 doc/guix.texi:268 doc/guix.texi:10209 doc/guix.texi:11362
+#: doc/guix.texi:11363
 #, no-wrap
 msgid "Services"
 msgstr "Services"
 
 #. type: menuentry
-#: doc/guix.texi:249 doc/guix.texi:9677
+#: doc/guix.texi:266 doc/guix.texi:10209
 msgid "Specifying system services."
 msgstr "Spécifier les services du système."
 
-#. type: subsection
-#: doc/guix.texi:249 doc/guix.texi:9677 doc/guix.texi:21649
-#: doc/guix.texi:21650
+#. type: section
+#: doc/guix.texi:266 doc/guix.texi:10209 doc/guix.texi:23469
+#: doc/guix.texi:23470
 #, no-wrap
 msgid "Setuid Programs"
 msgstr "Programmes setuid"
 
 #. type: menuentry
-#: doc/guix.texi:249 doc/guix.texi:9677
+#: doc/guix.texi:266 doc/guix.texi:10209
 msgid "Programs running with root privileges."
 msgstr "Programmes tournant avec les privilèges root."
 
-#. type: subsection
-#: doc/guix.texi:249 doc/guix.texi:1637 doc/guix.texi:9677 doc/guix.texi:21695
-#: doc/guix.texi:21696
+#. type: section
+#: doc/guix.texi:266 doc/guix.texi:1707 doc/guix.texi:10209
+#: doc/guix.texi:23515 doc/guix.texi:23516
 #, no-wrap
 msgid "X.509 Certificates"
 msgstr "Certificats X.509"
 
 #. type: menuentry
-#: doc/guix.texi:249 doc/guix.texi:9677
+#: doc/guix.texi:266 doc/guix.texi:10209
 msgid "Authenticating HTTPS servers."
 msgstr "Authentifier les serveurs HTTPS@."
 
-#. type: subsection
-#: doc/guix.texi:249 doc/guix.texi:1535 doc/guix.texi:9677 doc/guix.texi:21758
-#: doc/guix.texi:21759
+#. type: section
+#: doc/guix.texi:266 doc/guix.texi:1605 doc/guix.texi:10209
+#: doc/guix.texi:23578 doc/guix.texi:23579
 #, no-wrap
 msgid "Name Service Switch"
 msgstr "Name Service Switch"
 
 #. type: menuentry
-#: doc/guix.texi:249 doc/guix.texi:9677
+#: doc/guix.texi:266 doc/guix.texi:10209
 msgid "Configuring libc's name service switch."
 msgstr "Configurer le « name service switch » de la libc."
 
-#. type: subsection
-#: doc/guix.texi:249 doc/guix.texi:9677 doc/guix.texi:21896
-#: doc/guix.texi:21897
+#. type: section
+#: doc/guix.texi:266 doc/guix.texi:10209 doc/guix.texi:23716
+#: doc/guix.texi:23717
 #, no-wrap
 msgid "Initial RAM Disk"
 msgstr "Disque de RAM initial"
 
 #. type: menuentry
-#: doc/guix.texi:249 doc/guix.texi:9677
+#: doc/guix.texi:266 doc/guix.texi:10209
 msgid "Linux-Libre bootstrapping."
 msgstr "Démarrage de Linux-Libre."
 
-#. type: subsection
-#: doc/guix.texi:249 doc/guix.texi:9677 doc/guix.texi:22056
-#: doc/guix.texi:22057
+#. type: section
+#: doc/guix.texi:266 doc/guix.texi:10209 doc/guix.texi:23890
+#: doc/guix.texi:23891
 #, no-wrap
 msgid "Bootloader Configuration"
 msgstr "Configuration du chargeur d'amorçage"
 
 #. type: menuentry
-#: doc/guix.texi:249 doc/guix.texi:9677
+#: doc/guix.texi:266 doc/guix.texi:10209
 msgid "Configuring the boot loader."
 msgstr "Configurer le chargeur d'amorçage."
 
 #. type: node
-#: doc/guix.texi:249 doc/guix.texi:9677 doc/guix.texi:22240
+#: doc/guix.texi:266 doc/guix.texi:10209 doc/guix.texi:24087
 #, no-wrap
 msgid "Invoking guix system"
 msgstr "Invoquer guix system"
 
 #. type: menuentry
-#: doc/guix.texi:249 doc/guix.texi:9677
+#: doc/guix.texi:266 doc/guix.texi:10209
 msgid "Instantiating a system configuration."
 msgstr "Instantier une configuration du système."
 
 #. type: node
-#: doc/guix.texi:249 doc/guix.texi:9677 doc/guix.texi:22665
+#: doc/guix.texi:266 doc/guix.texi:10209 doc/guix.texi:24542
 #, no-wrap
-msgid "Running GuixSD in a VM"
-msgstr "Lancer GuixSD dans une VM"
+msgid "Running Guix in a VM"
+msgstr "Lancer Guix dans une VM"
 
 #. type: menuentry
-#: doc/guix.texi:249 doc/guix.texi:9677
-msgid "How to run GuixSD in a virtual machine."
-msgstr "Comment lancer GuixSD dans une machine virtuelle."
+#: doc/guix.texi:266 doc/guix.texi:10209
+msgid "How to run Guix System in a virtual machine."
+msgstr "Comment lancer Guix dans une machine virtuelle."
 
-#. type: subsection
-#: doc/guix.texi:249 doc/guix.texi:280 doc/guix.texi:9677 doc/guix.texi:22776
-#: doc/guix.texi:22777
+#. type: section
+#: doc/guix.texi:266 doc/guix.texi:297 doc/guix.texi:10209 doc/guix.texi:24653
+#: doc/guix.texi:24654
 #, no-wrap
 msgid "Defining Services"
 msgstr "Définir des services"
 
 #. type: menuentry
-#: doc/guix.texi:249 doc/guix.texi:9677
+#: doc/guix.texi:266 doc/guix.texi:10209
 msgid "Adding new service definitions."
 msgstr "Ajouter de nouvelles définitions de services."
 
-#. type: subsubsection
-#: doc/guix.texi:278 doc/guix.texi:10706 doc/guix.texi:10708
-#: doc/guix.texi:10709
+#. type: subsection
+#: doc/guix.texi:295 doc/guix.texi:11439 doc/guix.texi:11441
+#: doc/guix.texi:11442
 #, no-wrap
 msgid "Base Services"
 msgstr "Services de base"
 
 #. type: menuentry
-#: doc/guix.texi:278 doc/guix.texi:10706
+#: doc/guix.texi:295 doc/guix.texi:11439
 msgid "Essential system services."
 msgstr "Services systèmes essentiels."
 
-#. type: subsubsection
-#: doc/guix.texi:278 doc/guix.texi:10706 doc/guix.texi:11518
-#: doc/guix.texi:11519
+#. type: subsection
+#: doc/guix.texi:295 doc/guix.texi:11439 doc/guix.texi:12234
+#: doc/guix.texi:12235
 #, no-wrap
 msgid "Scheduled Job Execution"
 msgstr "Exécution de tâches planifiées"
 
 #. type: menuentry
-#: doc/guix.texi:278 doc/guix.texi:10706
+#: doc/guix.texi:295 doc/guix.texi:11439
 msgid "The mcron service."
 msgstr "Le service mcron."
 
-#. type: subsubsection
-#: doc/guix.texi:278 doc/guix.texi:10706 doc/guix.texi:11628
-#: doc/guix.texi:11629
+#. type: subsection
+#: doc/guix.texi:295 doc/guix.texi:11439 doc/guix.texi:12335
+#: doc/guix.texi:12336
 #, no-wrap
 msgid "Log Rotation"
 msgstr "Rotation des journaux"
 
 #. type: menuentry
-#: doc/guix.texi:278 doc/guix.texi:10706
+#: doc/guix.texi:295 doc/guix.texi:11439
 msgid "The rottlog service."
 msgstr "Le service rottlog."
 
-#. type: subsubsection
-#: doc/guix.texi:278 doc/guix.texi:10706 doc/guix.texi:11730
-#: doc/guix.texi:11731
+#. type: subsection
+#: doc/guix.texi:295 doc/guix.texi:11439 doc/guix.texi:12437
+#: doc/guix.texi:12438
 #, no-wrap
 msgid "Networking Services"
 msgstr "Services réseau"
 
 #. type: menuentry
-#: doc/guix.texi:278 doc/guix.texi:10706
+#: doc/guix.texi:295 doc/guix.texi:11439
 msgid "Network setup, SSH daemon, etc."
 msgstr "Paramètres réseau, démon SSH, etc."
 
-#. type: subsubsection
-#: doc/guix.texi:278 doc/guix.texi:10706 doc/guix.texi:12645
-#: doc/guix.texi:12646
+#. type: subsection
+#: doc/guix.texi:295 doc/guix.texi:11439 doc/guix.texi:13382
+#: doc/guix.texi:13383
 #, no-wrap
 msgid "X Window"
 msgstr "Système de fenêtrage X"
 
 #. type: menuentry
-#: doc/guix.texi:278 doc/guix.texi:10706
+#: doc/guix.texi:295 doc/guix.texi:11439
 msgid "Graphical display."
 msgstr "Affichage graphique."
 
-#. type: subsubsection
-#: doc/guix.texi:278 doc/guix.texi:10706 doc/guix.texi:12929
-#: doc/guix.texi:12930
+#. type: subsection
+#: doc/guix.texi:295 doc/guix.texi:11439 doc/guix.texi:13696
+#: doc/guix.texi:13697
 #, no-wrap
 msgid "Printing Services"
 msgstr "Services d'impression"
 
 #. type: menuentry
-#: doc/guix.texi:278 doc/guix.texi:10706
+#: doc/guix.texi:295 doc/guix.texi:11439
 msgid "Local and remote printer support."
 msgstr "Support pour les imprimantes locales et distantes."
 
-#. type: subsubsection
-#: doc/guix.texi:278 doc/guix.texi:10706 doc/guix.texi:13770
-#: doc/guix.texi:13771
+#. type: subsection
+#: doc/guix.texi:295 doc/guix.texi:11439 doc/guix.texi:14537
+#: doc/guix.texi:14538
 #, no-wrap
 msgid "Desktop Services"
 msgstr "Services de bureaux"
 
 #. type: menuentry
-#: doc/guix.texi:278 doc/guix.texi:10706
+#: doc/guix.texi:295 doc/guix.texi:11439
 msgid "D-Bus and desktop services."
 msgstr "D-Bus et les services de bureaux."
 
-#. type: subsubsection
-#: doc/guix.texi:278 doc/guix.texi:10706 doc/guix.texi:14078
-#: doc/guix.texi:14079
+#. type: subsection
+#: doc/guix.texi:295 doc/guix.texi:11439 doc/guix.texi:14938
+#: doc/guix.texi:14939
 #, no-wrap
 msgid "Sound Services"
 msgstr "Services de son"
 
 #. type: menuentry
-#: doc/guix.texi:278 doc/guix.texi:10706
+#: doc/guix.texi:295 doc/guix.texi:11439
 msgid "ALSA and Pulseaudio services."
 msgstr "Services ALSA et Pulseaudio."
 
-#. type: subsubsection
-#: doc/guix.texi:278 doc/guix.texi:10706 doc/guix.texi:14159
-#: doc/guix.texi:14160
+#. type: subsection
+#: doc/guix.texi:295 doc/guix.texi:11439 doc/guix.texi:15019
+#: doc/guix.texi:15020
 #, no-wrap
 msgid "Database Services"
 msgstr "Services de bases de données"
 
 #. type: menuentry
-#: doc/guix.texi:278 doc/guix.texi:10706
+#: doc/guix.texi:295 doc/guix.texi:11439
 msgid "SQL databases, key-value stores, etc."
 msgstr "Bases SQL, clefs-valeurs, etc."
 
-#. type: subsubsection
-#: doc/guix.texi:278 doc/guix.texi:10706 doc/guix.texi:14283
-#: doc/guix.texi:14284
+#. type: subsection
+#: doc/guix.texi:295 doc/guix.texi:11439 doc/guix.texi:15179
+#: doc/guix.texi:15180
 #, no-wrap
 msgid "Mail Services"
 msgstr "Services de courriels"
 
 #. type: menuentry
-#: doc/guix.texi:278 doc/guix.texi:10706
+#: doc/guix.texi:295 doc/guix.texi:11439
 msgid "IMAP, POP3, SMTP, and all that."
 msgstr "IMAP, POP3, SMTP, et tout ça."
 
-#. type: subsubsection
-#: doc/guix.texi:278 doc/guix.texi:10706 doc/guix.texi:15754
-#: doc/guix.texi:15755
+#. type: subsection
+#: doc/guix.texi:295 doc/guix.texi:11439 doc/guix.texi:16680
+#: doc/guix.texi:16681
 #, no-wrap
 msgid "Messaging Services"
 msgstr "Services de messagerie"
 
 #. type: menuentry
-#: doc/guix.texi:278 doc/guix.texi:10706
+#: doc/guix.texi:295 doc/guix.texi:11439
 msgid "Messaging services."
 msgstr "Services de messagerie."
 
-#. type: subsubsection
-#: doc/guix.texi:278 doc/guix.texi:10706 doc/guix.texi:16225
-#: doc/guix.texi:16226
+#. type: subsection
+#: doc/guix.texi:295 doc/guix.texi:11439 doc/guix.texi:17182
+#: doc/guix.texi:17183
 #, no-wrap
 msgid "Telephony Services"
 msgstr "Services de téléphonie"
 
 #. type: menuentry
-#: doc/guix.texi:278 doc/guix.texi:10706
+#: doc/guix.texi:295 doc/guix.texi:11439
 msgid "Telephony services."
 msgstr "Services de téléphonie."
 
-#. type: subsubsection
-#: doc/guix.texi:278 doc/guix.texi:10706 doc/guix.texi:16430
-#: doc/guix.texi:16431
+#. type: subsection
+#: doc/guix.texi:295 doc/guix.texi:11439 doc/guix.texi:17387
+#: doc/guix.texi:17388
 #, no-wrap
 msgid "Monitoring Services"
 msgstr "Services de surveillance"
 
 #. type: menuentry
-#: doc/guix.texi:278 doc/guix.texi:10706
+#: doc/guix.texi:295 doc/guix.texi:11439
 msgid "Monitoring services."
 msgstr "Services de surveillance."
 
-#. type: subsubsection
-#: doc/guix.texi:278 doc/guix.texi:10706 doc/guix.texi:16616
-#: doc/guix.texi:16617
+#. type: subsection
+#: doc/guix.texi:295 doc/guix.texi:11439 doc/guix.texi:17892
+#: doc/guix.texi:17893
 #, no-wrap
 msgid "Kerberos Services"
 msgstr "Services Kerberos"
 
 #. type: menuentry
-#: doc/guix.texi:278 doc/guix.texi:10706
+#: doc/guix.texi:295 doc/guix.texi:11439
 msgid "Kerberos services."
 msgstr "Services Kerberos."
 
-#. type: subsubsection
-#: doc/guix.texi:278 doc/guix.texi:10706 doc/guix.texi:16742
-#: doc/guix.texi:16743
+#. type: subsection
+#: doc/guix.texi:295 doc/guix.texi:11439 doc/guix.texi:18496
+#: doc/guix.texi:18497
 #, no-wrap
 msgid "Web Services"
 msgstr "Services web"
 
 #. type: menuentry
-#: doc/guix.texi:278 doc/guix.texi:10706
+#: doc/guix.texi:295 doc/guix.texi:11439
 msgid "Web servers."
 msgstr "Services web."
 
-#. type: subsubsection
-#: doc/guix.texi:278 doc/guix.texi:10706 doc/guix.texi:17541
-#: doc/guix.texi:17542
+#. type: subsection
+#: doc/guix.texi:295 doc/guix.texi:11439 doc/guix.texi:19297
+#: doc/guix.texi:19298
 #, no-wrap
 msgid "Certificate Services"
 msgstr "Services de certificats"
 
 #. type: menuentry
-#: doc/guix.texi:278 doc/guix.texi:10706
+#: doc/guix.texi:295 doc/guix.texi:11439
 msgid "TLS certificates via Let's Encrypt."
 msgstr "Certificats TLS via Let's Encrypt."
 
-#. type: subsubsection
-#: doc/guix.texi:278 doc/guix.texi:10706 doc/guix.texi:17687
-#: doc/guix.texi:17688
+#. type: subsection
+#: doc/guix.texi:295 doc/guix.texi:11439 doc/guix.texi:19443
+#: doc/guix.texi:19444
 #, no-wrap
 msgid "DNS Services"
 msgstr "Services DNS"
 
 #. type: menuentry
-#: doc/guix.texi:278 doc/guix.texi:10706
+#: doc/guix.texi:295 doc/guix.texi:11439
 msgid "DNS daemons."
 msgstr "Démons DNS@."
 
-#. type: subsubsection
-#: doc/guix.texi:278 doc/guix.texi:10706 doc/guix.texi:18256
-#: doc/guix.texi:18257
+#. type: subsection
+#: doc/guix.texi:295 doc/guix.texi:11439 doc/guix.texi:20012
+#: doc/guix.texi:20013
 #, no-wrap
 msgid "VPN Services"
 msgstr "Services VPN"
 
 #. type: menuentry
-#: doc/guix.texi:278 doc/guix.texi:10706
+#: doc/guix.texi:295 doc/guix.texi:11439
 msgid "VPN daemons."
-msgstr "Démons VPN"
+msgstr "Démons VPN."
 
-#. type: subsubsection
-#: doc/guix.texi:278 doc/guix.texi:10706 doc/guix.texi:18614
-#: doc/guix.texi:18615
+#. type: subsection
+#: doc/guix.texi:295 doc/guix.texi:11439 doc/guix.texi:20370
+#: doc/guix.texi:20371
 #, no-wrap
 msgid "Network File System"
 msgstr "Système de fichiers en réseau"
 
 #. type: menuentry
-#: doc/guix.texi:278 doc/guix.texi:10706
+#: doc/guix.texi:295 doc/guix.texi:11439
 msgid "NFS related services."
 msgstr "Services liés à NFS@."
 
-#. type: subsubsection
-#: doc/guix.texi:278 doc/guix.texi:10706 doc/guix.texi:18729
-#: doc/guix.texi:18730
+#. type: subsection
+#: doc/guix.texi:295 doc/guix.texi:11439 doc/guix.texi:20485
+#: doc/guix.texi:20486
 #, no-wrap
 msgid "Continuous Integration"
 msgstr "Intégration continue"
 
 #. type: menuentry
-#: doc/guix.texi:278 doc/guix.texi:10706
+#: doc/guix.texi:295 doc/guix.texi:11439
 msgid "The Cuirass service."
 msgstr "Le service Cuirass."
 
-#. type: subsubsection
-#: doc/guix.texi:278 doc/guix.texi:10706 doc/guix.texi:18846
-#: doc/guix.texi:18847
+#. type: subsection
+#: doc/guix.texi:295 doc/guix.texi:11439 doc/guix.texi:20602
+#: doc/guix.texi:20603
 #, no-wrap
 msgid "Power Management Services"
 msgstr "Services de gestion de l'énergie"
 
 #. type: menuentry
-#: doc/guix.texi:278 doc/guix.texi:10706
+#: doc/guix.texi:295 doc/guix.texi:11439
 msgid "Extending battery life."
 msgstr "Augmenter la durée de vie de la batterie."
 
-#. type: subsubsection
-#: doc/guix.texi:278 doc/guix.texi:10706 doc/guix.texi:19380
-#: doc/guix.texi:19381
+#. type: subsection
+#: doc/guix.texi:295 doc/guix.texi:11439 doc/guix.texi:21136
+#: doc/guix.texi:21137
 #, no-wrap
 msgid "Audio Services"
 msgstr "Services audio"
 
 #. type: menuentry
-#: doc/guix.texi:278 doc/guix.texi:10706
+#: doc/guix.texi:295 doc/guix.texi:11439
 msgid "The MPD."
 msgstr "MPD@."
 
 #. type: node
-#: doc/guix.texi:278 doc/guix.texi:10706 doc/guix.texi:19430
+#: doc/guix.texi:295 doc/guix.texi:11439 doc/guix.texi:21195
 #, no-wrap
 msgid "Virtualization Services"
 msgstr "Services de virtualisation"
 
 #. type: menuentry
-#: doc/guix.texi:278 doc/guix.texi:10706
+#: doc/guix.texi:295 doc/guix.texi:11439
 msgid "Virtualization services."
 msgstr "Services de virtualisation."
 
-#. type: subsubsection
-#: doc/guix.texi:278 doc/guix.texi:10706 doc/guix.texi:20223
-#: doc/guix.texi:20224
+#. type: subsection
+#: doc/guix.texi:295 doc/guix.texi:11439 doc/guix.texi:21988
+#: doc/guix.texi:21989
 #, no-wrap
 msgid "Version Control Services"
 msgstr "Services de contrôle de version"
 
 #. type: menuentry
-#: doc/guix.texi:278 doc/guix.texi:10706
+#: doc/guix.texi:295 doc/guix.texi:11439
 msgid "Providing remote access to Git repositories."
 msgstr "Fournit des accès distants à des dépôts Git."
 
-#. type: subsubsection
-#: doc/guix.texi:278 doc/guix.texi:10706 doc/guix.texi:21411
-#: doc/guix.texi:21412
+#. type: subsection
+#: doc/guix.texi:295 doc/guix.texi:11439 doc/guix.texi:23176
+#: doc/guix.texi:23177
 #, no-wrap
 msgid "Game Services"
 msgstr "Services de jeu"
 
 #. type: menuentry
-#: doc/guix.texi:278 doc/guix.texi:10706
+#: doc/guix.texi:295 doc/guix.texi:11439
 msgid "Game servers."
 msgstr "Serveurs de jeu."
 
-#. type: subsubsection
-#: doc/guix.texi:278 doc/guix.texi:10706 doc/guix.texi:21442
-#: doc/guix.texi:21443
+#. type: subsection
+#: doc/guix.texi:295 doc/guix.texi:11439 doc/guix.texi:23207
+#: doc/guix.texi:23208
 #, no-wrap
 msgid "Miscellaneous Services"
 msgstr "Services divers"
 
 #. type: menuentry
-#: doc/guix.texi:278 doc/guix.texi:10706
+#: doc/guix.texi:295 doc/guix.texi:11439
 msgid "Other services."
 msgstr "D'autres services."
 
-#. type: subsubsection
-#: doc/guix.texi:285 doc/guix.texi:22788 doc/guix.texi:22790
-#: doc/guix.texi:22791
+#. type: subsection
+#: doc/guix.texi:302 doc/guix.texi:24665 doc/guix.texi:24667
+#: doc/guix.texi:24668
 #, no-wrap
 msgid "Service Composition"
 msgstr "Composition de services"
 
 #. type: menuentry
-#: doc/guix.texi:285 doc/guix.texi:22788
+#: doc/guix.texi:302 doc/guix.texi:24665
 msgid "The model for composing services."
 msgstr "Le modèle de composition des services."
 
-#. type: subsubsection
-#: doc/guix.texi:285 doc/guix.texi:22788 doc/guix.texi:22846
-#: doc/guix.texi:22847
+#. type: subsection
+#: doc/guix.texi:302 doc/guix.texi:24665 doc/guix.texi:24723
+#: doc/guix.texi:24724
 #, no-wrap
 msgid "Service Types and Services"
 msgstr "Types service et services"
 
 #. type: menuentry
-#: doc/guix.texi:285 doc/guix.texi:22788
+#: doc/guix.texi:302 doc/guix.texi:24665
 msgid "Types and services."
 msgstr "Types et services."
 
-#. type: subsubsection
-#: doc/guix.texi:285 doc/guix.texi:22788 doc/guix.texi:22983
-#: doc/guix.texi:22984
+#. type: subsection
+#: doc/guix.texi:302 doc/guix.texi:24665 doc/guix.texi:24860
+#: doc/guix.texi:24861
 #, no-wrap
 msgid "Service Reference"
 msgstr "Référence de service"
 
 #. type: menuentry
-#: doc/guix.texi:285 doc/guix.texi:22788
+#: doc/guix.texi:302 doc/guix.texi:24665
 msgid "API reference."
 msgstr "Référence de l'API@."
 
-#. type: subsubsection
-#: doc/guix.texi:285 doc/guix.texi:22788 doc/guix.texi:23208
-#: doc/guix.texi:23209
+#. type: subsection
+#: doc/guix.texi:302 doc/guix.texi:24665 doc/guix.texi:25085
+#: doc/guix.texi:25086
 #, no-wrap
 msgid "Shepherd Services"
 msgstr "Services Shepherd"
 
 #. type: menuentry
-#: doc/guix.texi:285 doc/guix.texi:22788
+#: doc/guix.texi:302 doc/guix.texi:24665
 msgid "A particular type of service."
 msgstr "Un type de service particulier."
 
-#. type: subsection
-#: doc/guix.texi:296 doc/guix.texi:23739 doc/guix.texi:23741
-#: doc/guix.texi:23742
-#, no-wrap
-msgid "Software Freedom"
-msgstr "Liberté logiciel"
-
-#. type: menuentry
-#: doc/guix.texi:296 doc/guix.texi:23739
-msgid "What may go into the distribution."
-msgstr "Ce que la distribution peut contenir."
-
-#. type: subsection
-#: doc/guix.texi:296 doc/guix.texi:23739 doc/guix.texi:23769
-#: doc/guix.texi:23770
-#, no-wrap
-msgid "Package Naming"
-msgstr "Conventions de nommage"
-
-#. type: menuentry
-#: doc/guix.texi:296 doc/guix.texi:23739
-msgid "What's in a name?"
-msgstr "Qu'est-ce qu'un bon nom ?"
-
-#. type: subsection
-#: doc/guix.texi:296 doc/guix.texi:23739 doc/guix.texi:23794
-#: doc/guix.texi:23795
-#, no-wrap
-msgid "Version Numbers"
-msgstr "Numéros de version"
-
-#. type: menuentry
-#: doc/guix.texi:296 doc/guix.texi:23739
-msgid "When the name is not enough."
-msgstr "Lorsque le nom n'est pas suffisant."
-
-#. type: subsection
-#: doc/guix.texi:296 doc/guix.texi:23739 doc/guix.texi:23885
-#: doc/guix.texi:23886
-#, no-wrap
-msgid "Synopses and Descriptions"
-msgstr "Synopsis et descriptions"
-
-#. type: menuentry
-#: doc/guix.texi:296 doc/guix.texi:23739
-msgid "Helping users find the right package."
-msgstr "Aider les utilisateurs à trouver le bon paquet."
-
-#. type: subsection
-#: doc/guix.texi:296 doc/guix.texi:23739 doc/guix.texi:23965
-#: doc/guix.texi:23966
-#, no-wrap
-msgid "Python Modules"
-msgstr "Modules python"
-
-#. type: menuentry
-#: doc/guix.texi:296 doc/guix.texi:23739
-msgid "A touch of British comedy."
-msgstr "Un peu de comédie anglaise."
-
-#. type: subsection
-#: doc/guix.texi:296 doc/guix.texi:23739 doc/guix.texi:24040
-#: doc/guix.texi:24041
+#. type: cindex
+#: doc/guix.texi:310
 #, no-wrap
-msgid "Perl Modules"
-msgstr "Modules perl"
+msgid "purpose"
+msgstr "but"
 
-#. type: menuentry
-#: doc/guix.texi:296 doc/guix.texi:23739
-msgid "Little pearls."
-msgstr "Petites perles."
+#. type: Plain text
+#: doc/guix.texi:318
+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 utilisateurs non privilégié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: subsection
-#: doc/guix.texi:296 doc/guix.texi:23739 doc/guix.texi:24056
-#: doc/guix.texi:24057
+#. type: cindex
+#: doc/guix.texi:319 doc/guix.texi:394
 #, no-wrap
-msgid "Java Packages"
-msgstr "Paquets java"
+msgid "Guix System"
+msgstr "Système Guix"
 
-#. type: menuentry
-#: doc/guix.texi:296 doc/guix.texi:23739
-msgid "Coffee break."
-msgstr "Pause café."
-
-#. type: subsection
-#: doc/guix.texi:296 doc/guix.texi:23739 doc/guix.texi:24076
-#: doc/guix.texi:24077
+#. type: cindex
+#: doc/guix.texi:320
 #, no-wrap
-msgid "Fonts"
-msgstr "Polices de caractères"
-
-#. type: menuentry
-#: doc/guix.texi:296 doc/guix.texi:23739
-msgid "Fond of fonts."
-msgstr "À fond les fontes."
+msgid "GuixSD, now Guix System"
+msgstr "GuixSD, maintenant le système Guix"
 
 #. type: cindex
-#: doc/guix.texi:319
+#: doc/guix.texi:321
 #, no-wrap
-msgid "purpose"
-msgstr "but"
+msgid "Guix System Distribution, now Guix System"
+msgstr "Distribution Système Guix, maintenant le système Guix"
 
 #. type: Plain text
-#: doc/guix.texi:326
-msgid "GNU Guix@footnote{``Guix'' is pronounced like ``geeks'', or ``ɡiːks'' using the international phonetic alphabet (IPA).} is a package management tool for the GNU system.  Guix makes it easy for unprivileged users to install, upgrade, or remove 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 pour le système GNU@.  Guix facilite pour les utilisateurs non privilégié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."
+#: doc/guix.texi:330
+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:327
+#: doc/guix.texi:339
 #, no-wrap
 msgid "user interfaces"
 msgstr "interfaces utilisateurs"
 
 #. type: Plain text
-#: doc/guix.texi:332
-msgid "Guix provides a command-line package management interface (@pxref{Invoking guix package}), a set of command-line utilities (@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{Invoquer guix package}), un ensemble d'utilitaires en ligne de commande (@pxref{Utilitaires}) ainsi que des interfaces de programmation Scheme (@pxref{Interface de programmation})."
+#: doc/guix.texi:345
+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:332
+#: doc/guix.texi:345
 #, no-wrap
 msgid "build daemon"
 msgstr "démon de construction"
 
 #. type: Plain text
-#: doc/guix.texi:336
+#: doc/guix.texi:349
 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 utilisateurs (@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:337
+#: doc/guix.texi:350
 #, no-wrap
 msgid "extensibility of the distribution"
 msgstr "extensibilité de la distribution"
 
 #. type: cindex
-#: doc/guix.texi:338 doc/guix.texi:23624
+#: doc/guix.texi:351 doc/guix.texi:4988
 #, no-wrap
 msgid "customization, of packages"
 msgstr "personnalisation, des paquets"
 
 #. type: Plain text
-#: doc/guix.texi:347
+#: doc/guix.texi:360
 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}.  Il est @emph{extensible} : les utilisateurs peuvent écrire leurs 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} : les utilisateurs peuvent @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:348 doc/guix.texi:8918 doc/guix.texi:8996
-#, no-wrap
-msgid "Guix System Distribution"
-msgstr "Distribution Système Guix"
-
-#. type: cindex
-#: doc/guix.texi:349 doc/guix.texi:8919
-#, no-wrap
-msgid "GuixSD"
-msgstr "GuixSD"
-
-#. type: Plain text
-#: doc/guix.texi:358
-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 part of the standalone @dfn{Guix System Distribution} or GuixSD (@pxref{GNU Distribution}).  With GNU@tie{}GuixSD, 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})."
-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 à travers la @dfn{Distribution Système Guix} ou GuixSD (@pxref{Distribution GNU}) distincte.  Avec GNU@tie{}GuixSD, vous @emph{déclarez} tous les aspects de la configuration du système d'exploitation et Guix s'occupe de créer la configuration d'une manière transactionnelle, reproductible et sans état (@pxref{Configuration système})."
-
-#. type: cindex
-#: doc/guix.texi:359
+#: doc/guix.texi:361
 #, no-wrap
 msgid "functional package management"
 msgstr "gestion de paquet fonctionnelle"
 
 #. type: cindex
-#: doc/guix.texi:360
+#: doc/guix.texi:362
 #, no-wrap
 msgid "isolation"
 msgstr "isolation"
 
 #. type: Plain text
-#: doc/guix.texi:375
+#: doc/guix.texi:377
 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:376 doc/guix.texi:4859
+#: doc/guix.texi:378 doc/guix.texi:6273
 #, no-wrap
 msgid "store"
 msgstr "dépôt"
 
 #. type: Plain text
-#: doc/guix.texi:383
+#: doc/guix.texi:385
 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:387
+#: doc/guix.texi:389
 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 et le ramassage de miettes pour les paquets (@pxref{Fonctionnalités})."
 
-#. type: cindex
-#: doc/guix.texi:393
+#. type: Plain text
+#: doc/guix.texi:404
+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."
+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 à l'utilisateur de 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:410
+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}):"
+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:413
 #, no-wrap
-msgid "installing Guix"
-msgstr "installer Guix"
+msgid "guix package --list-available\n"
+msgstr "guix package --list-available\n"
 
-#. type: cindex
-#: doc/guix.texi:394
+#. type: Plain text
+#: doc/guix.texi:419
+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 à exercer ses libertés."
+
+#. type: Plain text
+#: doc/guix.texi:421
+msgid "Packages are currently available on the following platforms:"
+msgstr "Les paquets sont actuellement disponibles pour les plateformes suivantes :"
+
+#. type: item
+#: doc/guix.texi:424 doc/guix.texi:1869
 #, no-wrap
-msgid "official website"
-msgstr "site officiel"
+msgid "x86_64-linux"
+msgstr "x86_64-linux"
+
+#. type: table
+#: doc/guix.texi:426
+msgid "Intel/AMD @code{x86_64} architecture, Linux-Libre kernel;"
+msgstr "l'architecture Intel et AMD @code{x86_64} avec le noyau Linux-libre ;"
+
+#. type: item
+#: doc/guix.texi:427 doc/guix.texi:1872
+#, no-wrap
+msgid "i686-linux"
+msgstr "i686-linux"
+
+#. type: table
+#: doc/guix.texi:429
+msgid "Intel 32-bit architecture (IA32), Linux-Libre kernel;"
+msgstr "l'architecture Intel 32-bits (IA32) avec le noyau Linux-libre ;"
+
+#. type: item
+#: doc/guix.texi:430
+#, no-wrap
+msgid "armhf-linux"
+msgstr "armhf-linux"
+
+#. type: table
+#: doc/guix.texi:434
+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 ;"
+
+#. type: item
+#: doc/guix.texi:435
+#, no-wrap
+msgid "aarch64-linux"
+msgstr "aarch64-linux"
+
+#. type: table
+#: doc/guix.texi:439
+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 !"
+
+#. type: item
+#: doc/guix.texi:440
+#, no-wrap
+msgid "mips64el-linux"
+msgstr "mips64el-linux"
+
+#. type: table
+#: doc/guix.texi:443
+msgid "little-endian 64-bit MIPS processors, specifically the Loongson series, n32 ABI, and Linux-Libre kernel."
+msgstr "les processeurs MIPS 64-bits little-endian, spécifiquement la série Loongson, ABI n32, avec le noyau Linux-libre."
 
 #. type: Plain text
-#: doc/guix.texi:399
-msgid "GNU Guix is available for download from its website at @url{http://www.gnu.org/software/guix/}.  This section describes the software requirements of Guix, as well as how to install it and get ready to use it."
-msgstr "GNU Guix est disponible au téléchargement depuis son site web sur @url{http://www.gnu.org/software/guix/}.  Cette section décrit les prérequis logiciels de Guix ainsi que la manière de l'installer et de se préparer à l'utiliser."
+#: doc/guix.texi:453
+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:404
-msgid "Note that 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}."
-msgstr "Remarquez que cette section concerne l'installation du gestionnaire de paquet, ce qui se fait sur un système GNU/Linux en cours d'exécution.  Si vous souhaitez plutôt installer le système d'exploitation GNU complet, @pxref{System Installation}."
+#: doc/guix.texi:456
+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:460
+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:463
+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:469
+#, no-wrap
+msgid "installing Guix"
+msgstr "installer Guix"
+
+#. type: quotation
+#: doc/guix.texi:471 doc/guix.texi:1540 doc/guix.texi:1771 doc/guix.texi:1976
+#: doc/guix.texi:2178 doc/guix.texi:2373 doc/guix.texi:3152 doc/guix.texi:3932
+#: doc/guix.texi:4148 doc/guix.texi:4437 doc/guix.texi:4669 doc/guix.texi:4816
+#: doc/guix.texi:6292 doc/guix.texi:6360 doc/guix.texi:8046 doc/guix.texi:8058
+#: doc/guix.texi:9949 doc/guix.texi:10486 doc/guix.texi:11030
+#: doc/guix.texi:13484 doc/guix.texi:19286 doc/guix.texi:23969
+#: doc/guix.texi:24164 doc/guix.texi:24283 doc/guix.texi:24398
+#: doc/guix.texi:25388
+#, no-wrap
+msgid "Note"
+msgstr "Remarque"
+
+#. type: quotation
+#: doc/guix.texi:481
+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 qu'utilisateur root."
 
 #. type: cindex
-#: doc/guix.texi:405 doc/guix.texi:1487
+#: doc/guix.texi:483 doc/guix.texi:1557
 #, no-wrap
 msgid "foreign distro"
-msgstr "distro extérieure"
+msgstr "distro externe"
 
 #. type: cindex
-#: doc/guix.texi:406
+#: doc/guix.texi:484
 #, no-wrap
 msgid "directories related to foreign distro"
-msgstr "répertoires liés aux distro extérieures"
+msgstr "répertoires liés aux distro externes"
 
 #. type: Plain text
-#: doc/guix.texi:413
-msgid "When installed on a running GNU/Linux system---thereafter called a @dfn{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 un système GNU/Linux existant — ci-après nommé @dfn{distro extérieure} — 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."
+#: doc/guix.texi:489
+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:416
+#: doc/guix.texi:492
 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:497
+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:429
+#: doc/guix.texi:510
 #, no-wrap
 msgid "installing Guix from binaries"
 msgstr "installer Guix depuis les binaires"
 
 #. type: cindex
-#: doc/guix.texi:430
+#: doc/guix.texi:511
 #, no-wrap
 msgid "installer script"
 msgstr "script d'installation"
 
 #. type: Plain text
-#: doc/guix.texi:436
+#: doc/guix.texi:517
 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: Plain text
-#: doc/guix.texi:441
-msgid "We provide a @uref{https://git.savannah.gnu.org/cgit/guix.git/plain/etc/guix-install.sh, shell installer script}, which automates the download, installation, and initial configuration of Guix.  It should be run as the root user."
-msgstr "Nous fournissons un script @uref{https://git.savannah.gnu.org/cgit/guix.git/plain/etc/guix-install.sh, script d'intallation shell} qui automatise le téléchargement, l'installation et la configuration initiale de Guix.  Il devrait être lancé en tant qu'utilisateur root."
-
-#. type: Plain text
-#: doc/guix.texi:443
+#: doc/guix.texi:519
 msgid "Installing goes along these lines:"
 msgstr "L'installation se comme ceci :"
 
 #. type: cindex
-#: doc/guix.texi:446
+#: doc/guix.texi:522
 #, no-wrap
 msgid "downloading Guix binary"
 msgstr "téléchargement du Guix binaire"
 
 #. type: enumerate
-#: doc/guix.texi:451
+#: doc/guix.texi:527
 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 "Téléchargez l'archive binaire depuis @indicateurl{https://alpha.gnu.org/gnu/guix/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."
 
 #. type: enumerate
-#: doc/guix.texi:455
+#: doc/guix.texi:531
 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:459
+#: doc/guix.texi:535
 #, no-wrap
 msgid ""
 "$ wget https://alpha.gnu.org/gnu/guix/guix-binary-@value{VERSION}.@var{system}.tar.xz.sig\n"
@@ -2719,12 +3393,12 @@ msgstr ""
 "$ gpg --verify guix-binary-@value{VERSION}.@var{système}.tar.xz.sig\n"
 
 #. type: Plain text
-#: doc/guix.texi:463 doc/guix.texi:9132
+#: doc/guix.texi:539 doc/guix.texi:1887
 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:467 doc/guix.texi:9136
+#: doc/guix.texi:543 doc/guix.texi:1891
 #, no-wrap
 msgid ""
 "$ gpg --keyserver @value{KEY-SERVER} \\\n"
@@ -2734,17 +3408,17 @@ msgstr ""
 "      --recv-keys @value{OPENPGP-SIGNING-KEY-ID}\n"
 
 #. type: Plain text
-#: doc/guix.texi:472 doc/guix.texi:9141
+#: doc/guix.texi:548 doc/guix.texi:1896
 msgid "and rerun the @code{gpg --verify} command."
 msgstr "et relancez la commande @code{gpg --verify}."
 
 #. type: enumerate
-#: doc/guix.texi:476
+#: doc/guix.texi:552
 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 l'utilisateur @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:482
+#: doc/guix.texi:558
 #, no-wrap
 msgid ""
 "# cd /tmp\n"
@@ -2758,27 +3432,27 @@ msgstr ""
 "# mv var/guix /var/ && mv gnu /\n"
 
 #. type: enumerate
-#: doc/guix.texi:487
+#: doc/guix.texi:563
 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)."
 
 #. type: enumerate
-#: doc/guix.texi:490
+#: doc/guix.texi:566
 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:500
+#: doc/guix.texi:576
 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."
 
 #. type: enumerate
-#: doc/guix.texi:504
+#: doc/guix.texi:580
 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:509
+#: doc/guix.texi:585
 #, no-wrap
 msgid ""
 "# mkdir -p ~root/.config/guix\n"
@@ -2790,12 +3464,12 @@ msgstr ""
 "         ~root/.config/guix/current\n"
 
 #. type: enumerate
-#: doc/guix.texi:513
+#: doc/guix.texi:589
 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 :"
 
 #. type: example
-#: doc/guix.texi:517
+#: doc/guix.texi:593
 #, no-wrap
 msgid ""
 "# GUIX_PROFILE=\"`echo ~root`/.config/guix/current\" ; \\\n"
@@ -2805,22 +3479,22 @@ msgstr ""
 "  source $GUIX_PROFILE/etc/profile\n"
 
 #. type: enumerate
-#: doc/guix.texi:522
+#: doc/guix.texi:598
 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 utilisateurs pour les utilisateurs de construction comme expliqué plus loin (@pxref{Build Environment Setup})."
 
 #. type: enumerate
-#: doc/guix.texi:525
+#: doc/guix.texi:601
 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:528
+#: doc/guix.texi:604
 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:540
+#: doc/guix.texi:616
 #, no-wrap
 msgid ""
 "# cp ~root/.config/guix/current/lib/systemd/system/guix-daemon.service \\\n"
@@ -2832,12 +3506,12 @@ msgstr ""
 "# systemctl start guix-daemon && systemctl enable guix-daemon\n"
 
 #. type: itemize
-#: doc/guix.texi:543 doc/guix.texi:8514
+#: doc/guix.texi:619 doc/guix.texi:9733
 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:549
+#: doc/guix.texi:625
 #, no-wrap
 msgid ""
 "# initctl reload-configuration\n"
@@ -2851,12 +3525,12 @@ msgstr ""
 "# start guix-daemon\n"
 
 #. type: enumerate
-#: doc/guix.texi:552
+#: doc/guix.texi:628
 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:556
+#: doc/guix.texi:632
 #, no-wrap
 msgid ""
 "# ~root/.config/guix/current/bin/guix-daemon \\\n"
@@ -2866,12 +3540,12 @@ msgstr ""
 "       --build-users-group=guixbuild\n"
 
 #. type: enumerate
-#: doc/guix.texi:561
+#: doc/guix.texi:637
 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 utilisateurs sur la machine, par exemple avec :"
 
 #. type: example
-#: doc/guix.texi:566
+#: doc/guix.texi:642
 #, no-wrap
 msgid ""
 "# mkdir -p /usr/local/bin\n"
@@ -2883,12 +3557,12 @@ msgstr ""
 "# ln -s /var/guix/profiles/per-user/root/current-guix/bin/guix\n"
 
 #. type: enumerate
-#: doc/guix.texi:570
+#: doc/guix.texi:646
 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:576
+#: doc/guix.texi:652
 #, no-wrap
 msgid ""
 "# mkdir -p /usr/local/share/info\n"
@@ -2902,75 +3576,75 @@ msgstr ""
 "  do ln -s $i ; done\n"
 
 #. type: enumerate
-#: doc/guix.texi:582
+#: doc/guix.texi:658
 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)."
 
 #. type: cindex
-#: doc/guix.texi:584 doc/guix.texi:2359 doc/guix.texi:11213
+#: doc/guix.texi:660 doc/guix.texi:3131 doc/guix.texi:11948
 #, no-wrap
 msgid "substitutes, authorization thereof"
 msgstr "substituts, autorisations"
 
 #. type: enumerate
-#: doc/guix.texi:587
-msgid "To use substitutes from @code{hydra.gnu.org} or one of its mirrors (@pxref{Substitutes}), authorize them:"
-msgstr "Pour utiliser les substituts de @code{hydra.gnu.org} ou l'un de ses miroirs (@pxref{Substituts}), autorisez-les :"
+#: doc/guix.texi:663
+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:591
+#: doc/guix.texi:667
 #, no-wrap
 msgid ""
 "# guix archive --authorize < \\\n"
-"     ~root/.config/guix/current/share/guix/hydra.gnu.org.pub\n"
+"     ~root/.config/guix/current/share/guix/@value{SUBSTITUTE-SERVER}.pub\n"
 msgstr ""
 "# guix archive --authorize < \\\n"
-"     ~root/.config/guix/current/share/guix/hydra.gnu.org.pub\n"
+"     ~root/.config/guix/current/share/guix/@value{SUBSTITUTE-SERVER}.pub\n"
 
 #. type: enumerate
-#: doc/guix.texi:596
+#: doc/guix.texi:672
 msgid "Each user may need to perform a few additional steps to make their Guix environment ready for use, @pxref{Application Setup}."
 msgstr "Chaque utilisateur peut avoir besoin d'effectuer des étapes supplémentaires pour que leur environnement Guix soit prêt à être utilisé, @pxref{Application Setup}."
 
 #. type: Plain text
-#: doc/guix.texi:599
+#: doc/guix.texi:675
 msgid "Voilà, the installation is complete!"
 msgstr "Voilà, l'installation est terminée !"
 
 #. type: Plain text
-#: doc/guix.texi:602
+#: doc/guix.texi:678
 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:605
+#: doc/guix.texi:681
 #, no-wrap
 msgid "# guix package -i hello\n"
 msgstr "# guix package -i hello\n"
 
 #. type: Plain text
-#: doc/guix.texi:612
+#: doc/guix.texi:688
 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}."
 
 #. type: Plain text
-#: doc/guix.texi:615
+#: doc/guix.texi:691
 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:618
+#: doc/guix.texi:694
 #, 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:622
-msgid "... which, in turn, runs:"
-msgstr "… ce qui à son tour lance :"
+#: doc/guix.texi:698
+msgid "...@: which, in turn, runs:"
+msgstr "…@: ce qui à son tour lance :"
 
 #. type: example
-#: doc/guix.texi:626
+#: doc/guix.texi:702
 #, no-wrap
 msgid ""
 "guix pack -s @var{system} --localstatedir \\\n"
@@ -2980,270 +3654,277 @@ msgstr ""
 "  --profile-name=current-guix guix\n"
 
 #. type: Plain text
-#: doc/guix.texi:629
+#: doc/guix.texi:705
 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:637
+#: doc/guix.texi:713
 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:714
+#, no-wrap
+msgid "official website"
+msgstr "site officiel"
+
+#. type: Plain text
+#: doc/guix.texi:717
+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:639
+#: doc/guix.texi:719
 msgid "GNU Guix depends on the following packages:"
 msgstr "GNU Guix dépend des paquets suivants :"
 
 #. type: item
-#: doc/guix.texi:641
+#: doc/guix.texi:721
 #, no-wrap
-msgid "@url{http://gnu.org/software/guile/, GNU Guile}, version 2.0.13 or"
-msgstr "@url{http://gnu.org/software/guile/, GNU Guile}, version 2.0.13 ou"
-
-#. type: itemize
-#: doc/guix.texi:643
-msgid "later, including 2.2.x;"
-msgstr "supérieure, dont 2.2.x,"
+msgid "@url{http://gnu.org/software/guile/, GNU Guile}, version 2.2.x;"
+msgstr "@url{http://gnu.org/software/guile/, GNU Guile}, version 2.2.x,"
 
 #. type: item
-#: doc/guix.texi:643
+#: doc/guix.texi:722
 #, 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:645
+#: doc/guix.texi:724
 msgid "0.1.0 or later;"
 msgstr "0.1.0 ou supérieure,"
 
 #. type: itemize
-#: doc/guix.texi:649
+#: doc/guix.texi:728
 msgid "@uref{http://gnutls.org/, GnuTLS}, specifically its Guile bindings (@pxref{Guile Preparations, how to install the GnuTLS bindings for Guile,, gnutls-guile, GnuTLS-Guile});"
 msgstr "@uref{http://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:652
+#: doc/guix.texi:731
 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,"
 
 #. type: itemize
-#: doc/guix.texi:656
+#: doc/guix.texi:735
 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:656
+#: doc/guix.texi:735
+#, no-wrap
+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:736
 #, no-wrap
 msgid "@url{http://zlib.net, zlib};"
 msgstr "@url{http://zlib.net, zlib},"
 
 #. type: item
-#: doc/guix.texi:657
+#: doc/guix.texi:737
 #, no-wrap
 msgid "@url{http://www.gnu.org/software/make/, GNU Make}."
 msgstr "@url{http://www.gnu.org/software/make/, GNU Make}."
 
 #. type: Plain text
-#: doc/guix.texi:661
+#: doc/guix.texi:741
 msgid "The following dependencies are optional:"
 msgstr "Les dépendances suivantes sont facultatives :"
 
 #. type: itemize
-#: doc/guix.texi:669
-msgid "Installing @url{http://savannah.nongnu.org/projects/guile-json/, Guile-JSON} will allow you to use the @command{guix import pypi} command (@pxref{Invoking guix import}).  It is of interest primarily for developers and not for casual users."
-msgstr "Installer @url{http://savannah.nongnu.org/projects/guile-json/, Guile-JSON} vous permettra d'utiliser la commande @command{guix import pypi} (@pxref{Invoking guix import}).  Il est surtout utile pour les développeurs et pas pour les utilisateurs occasionnels."
-
-#. type: itemize
-#: doc/guix.texi:676
+#: doc/guix.texi:749
 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."
 
 #. type: itemize
-#: doc/guix.texi:680
+#: doc/guix.texi:753
 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:684
+#: doc/guix.texi:757
 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 :"
 
 #. type: item
-#: doc/guix.texi:686
+#: doc/guix.texi:759
 #, no-wrap
 msgid "@url{http://gnupg.org/, GNU libgcrypt};"
 msgstr "@url{http://gnupg.org/, GNU libgcrypt},"
 
 #. type: item
-#: doc/guix.texi:687
+#: doc/guix.texi:760
 #, no-wrap
 msgid "@url{http://sqlite.org, SQLite 3};"
 msgstr "@url{http://sqlite.org, SQLite 3},"
 
 #. type: item
-#: doc/guix.texi:688
+#: doc/guix.texi:761
 #, no-wrap
 msgid "@url{http://gcc.gnu.org, GCC's g++}, with support for the"
 msgstr "@url{http://gcc.gnu.org, GCC's g++}, avec le support pour le"
 
 #. type: itemize
-#: doc/guix.texi:690
+#: doc/guix.texi:763
 msgid "C++11 standard."
 msgstr "standard C++11."
 
 #. type: cindex
-#: doc/guix.texi:692
+#: doc/guix.texi:765
 #, no-wrap
 msgid "state directory"
 msgstr "répertoire d'état"
 
 #. type: Plain text
-#: doc/guix.texi:700
+#: doc/guix.texi:773
 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:701
+#: doc/guix.texi:774
 #, no-wrap
 msgid "Nix, compatibility"
 msgstr "Nix, compatibilité"
 
 #. type: Plain text
-#: doc/guix.texi:706
+#: doc/guix.texi:779
 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."
 msgstr "Lorsque vous avez une installation fonctionnelle du @url{http://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:716
+#: doc/guix.texi:789
 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."
 
 #. type: cindex
-#: doc/guix.texi:720
+#: doc/guix.texi:793
 #, no-wrap
 msgid "test suite"
 msgstr "suite de tests"
 
 #. type: Plain text
-#: doc/guix.texi:726
+#: doc/guix.texi:799
 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:729
+#: doc/guix.texi:802
 #, no-wrap
 msgid "make check\n"
 msgstr "make check\n"
 
 #. type: Plain text
-#: doc/guix.texi:736
+#: doc/guix.texi:809
 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:739
+#: doc/guix.texi:812
 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:742
+#: doc/guix.texi:815
 #, 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:747
+#: doc/guix.texi:820
 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:750
+#: doc/guix.texi:823
 #, 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:756
+#: doc/guix.texi:829
 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:760
-msgid "Guix also comes with a whole-system test suite that tests complete GuixSD operating 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 d'exploitation GuixSD@.  Elle ne peut être lancée qui sur un système où Guix est déjà installé, avec :"
+#: doc/guix.texi:833
+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:763
+#: doc/guix.texi:836
 #, no-wrap
 msgid "make check-system\n"
 msgstr "make check-system\n"
 
 #. type: Plain text
-#: doc/guix.texi:767
+#: doc/guix.texi:840
 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 :"
+msgstr "ou, de nouveau, en définissant @code{TESTS} pour choisir un sous-ensemble des tests à lancer :"
 
 #. type: example
-#: doc/guix.texi:770
+#: doc/guix.texi:843
 #, no-wrap
 msgid "make check-system TESTS=\"basic mcron\"\n"
 msgstr "make check-system TESTS=\"basic mcron\"\n"
 
 #. type: Plain text
-#: doc/guix.texi:778
+#: doc/guix.texi:851
 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:781
+#: doc/guix.texi:854
 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:785
+#: doc/guix.texi:858
 #, no-wrap
 msgid "daemon"
 msgstr "démon"
 
 #. type: Plain text
-#: doc/guix.texi:793
+#: doc/guix.texi:866
 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:797
+#: doc/guix.texi:870
 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:807 doc/guix.texi:1232
+#: doc/guix.texi:880 doc/guix.texi:1303
 #, no-wrap
 msgid "build environment"
 msgstr "environnement de construction"
 
 #. type: Plain text
-#: doc/guix.texi:815
+#: doc/guix.texi:888
 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-utilisateurs, Guix et son démon — le programme @command{guix-daemon} — sont installé par l'administrateur système ; @file{/gnu/store} appartient à @code{root} et @command{guix-daemon} est lancé en @code{root}.  Les utilisateurs non-privilégié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 utilisateurs."
 
 #. type: cindex
-#: doc/guix.texi:816
+#: doc/guix.texi:889
 #, no-wrap
 msgid "build users"
 msgstr "utilisateurs de construction"
 
 #. type: Plain text
-#: doc/guix.texi:827
+#: doc/guix.texi:900
 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 d'@dfn{utilisateurs de construction} que les processus de construction démarrés par le démon utiliseront.  Ces utilisateurs 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 utilisateurs, 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:830
+#: doc/guix.texi:903
 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 d'utilisateurs de construction comme ceci (avec la syntaxe Bash et les commandes @code{shadow}) :"
 
 #. type: example
-#: doc/guix.texi:842
+#: doc/guix.texi:915
 #, no-wrap
 msgid ""
 "# groupadd --system guixbuild\n"
@@ -3265,113 +3946,113 @@ msgstr ""
 "  done\n"
 
 #. type: Plain text
-#: doc/guix.texi:852
+#: doc/guix.texi:925
 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 d'utilisateurs 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 utilisateurs 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:861
+#: doc/guix.texi:934
 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:864 doc/guix.texi:1225
+#: doc/guix.texi:937 doc/guix.texi:1296
 #, no-wrap
 msgid "# guix-daemon --build-users-group=guixbuild\n"
 msgstr "# guix-daemon --build-users-group=guixbuild\n"
 
 #. type: cindex
-#: doc/guix.texi:866 doc/guix.texi:1230
+#: doc/guix.texi:939 doc/guix.texi:1301
 #, no-wrap
 msgid "chroot"
 msgstr "chroot"
 
 #. type: Plain text
-#: doc/guix.texi:871
+#: doc/guix.texi:944
 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 utilisateurs @code{guixbuilder}.  Sur GNU/Linux par défaut, l'environnement chroot ne contient rien d'autre que :"
 
 #. type: itemize
-#: doc/guix.texi:879
+#: doc/guix.texi:952
 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:883
+#: doc/guix.texi:956
 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:887
+#: doc/guix.texi:960
 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 l'utilisateur actuel et une entrée pour l'utilisateur @file{nobody} ;"
 
 #. type: itemize
-#: doc/guix.texi:890
+#: doc/guix.texi:963
 msgid "@file{/etc/group} with an entry for the user's group;"
 msgstr "@file{/etc/group} avec une entrée pour le groupe de l'utilisateur ;"
 
 #. type: itemize
-#: doc/guix.texi:894
+#: doc/guix.texi:967
 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:897
+#: doc/guix.texi:970
 msgid "a writable @file{/tmp} directory."
 msgstr "un répertoire @file{/tmp} inscriptible."
 
 #. type: Plain text
-#: doc/guix.texi:906
+#: doc/guix.texi:979
 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."
 
 #. type: vindex
-#: doc/guix.texi:907 doc/guix.texi:2466
+#: doc/guix.texi:980 doc/guix.texi:3233
 #, no-wrap
 msgid "http_proxy"
 msgstr "http_proxy"
 
 #. type: Plain text
-#: doc/guix.texi:911
+#: doc/guix.texi:984
 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})."
 
 #. type: Plain text
-#: doc/guix.texi:919
+#: doc/guix.texi:992
 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 non-privilégié, 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}."
 
 #. type: subsection
-#: doc/guix.texi:922
+#: doc/guix.texi:995
 #, no-wrap
 msgid "Using the Offload Facility"
 msgstr "Utiliser le dispositif de déchargement"
 
 #. type: cindex
-#: doc/guix.texi:924
+#: doc/guix.texi:997
 #, no-wrap
 msgid "offloading"
 msgstr "déchargement"
 
 #. type: cindex
-#: doc/guix.texi:925 doc/guix.texi:1289
+#: doc/guix.texi:998 doc/guix.texi:1359
 #, no-wrap
 msgid "build hook"
 msgstr "crochet de construction"
 
 #. type: Plain text
-#: doc/guix.texi:939
+#: doc/guix.texi:1012
 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 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éussi, les sorties de la construction sont copiés vers la machine de départ."
 
 #. type: Plain text
-#: doc/guix.texi:941
+#: doc/guix.texi:1014
 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:949
+#: doc/guix.texi:1022
 #, no-wrap
 msgid ""
 "(list (build-machine\n"
@@ -3391,7 +4072,7 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix.texi:958
+#: doc/guix.texi:1031
 #, no-wrap
 msgid ""
 "      (build-machine\n"
@@ -3413,93 +4094,93 @@ msgstr ""
 "                        \"/.ssh/identity-for-guix\"))))\n"
 
 #. type: Plain text
-#: doc/guix.texi:964
+#: doc/guix.texi:1037
 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}."
 
 #. type: Plain text
-#: doc/guix.texi:973
+#: doc/guix.texi:1046
 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:974
+#: doc/guix.texi:1047
 #, no-wrap
 msgid "{Data Type} build-machine"
 msgstr "{Type de données} build-machine"
 
 #. type: deftp
-#: doc/guix.texi:977
+#: doc/guix.texi:1050
 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:980 doc/guix.texi:3984 doc/guix.texi:10390
-#: doc/guix.texi:10454 doc/guix.texi:10549 doc/guix.texi:12158
-#: doc/guix.texi:16411 doc/guix.texi:16677 doc/guix.texi:16810
-#: doc/guix.texi:17118 doc/guix.texi:17159 doc/guix.texi:21592
-#: doc/guix.texi:21609 doc/guix.texi:21875 doc/guix.texi:23096
-#: doc/guix.texi:23296
+#: doc/guix.texi:1053 doc/guix.texi:5310 doc/guix.texi:10972
+#: doc/guix.texi:11054 doc/guix.texi:11281 doc/guix.texi:12865
+#: doc/guix.texi:17368 doc/guix.texi:17953 doc/guix.texi:18564
+#: doc/guix.texi:18872 doc/guix.texi:18913 doc/guix.texi:23385
+#: doc/guix.texi:23402 doc/guix.texi:23695 doc/guix.texi:24973
+#: doc/guix.texi:25179
 #, no-wrap
 msgid "name"
 msgstr "name"
 
 #. type: table
-#: doc/guix.texi:982
+#: doc/guix.texi:1055
 msgid "The host name of the remote machine."
 msgstr "Le nom d'hôte de la machine distante."
 
 #. type: item
-#: doc/guix.texi:983
+#: doc/guix.texi:1056
 #, no-wrap
 msgid "system"
 msgstr "system"
 
 #. type: table
-#: doc/guix.texi:985
+#: doc/guix.texi:1058
 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\"}."
 
 #. type: code{#1}
-#: doc/guix.texi:986 doc/guix.texi:12168
+#: doc/guix.texi:1059 doc/guix.texi:12875
 #, no-wrap
 msgid "user"
 msgstr "user"
 
 #. type: table
-#: doc/guix.texi:990
+#: doc/guix.texi:1063
 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 utilisateur à 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:991
+#: doc/guix.texi:1064
 #, no-wrap
 msgid "host-key"
 msgstr "host-key"
 
 #. type: table
-#: doc/guix.texi:995
+#: doc/guix.texi:1068
 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:998
+#: doc/guix.texi:1071
 #, 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:1003
+#: doc/guix.texi:1076
 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:1008
+#: doc/guix.texi:1081
 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:1012
+#: doc/guix.texi:1085
 #, no-wrap
 msgid ""
 "$ lsh-export-key --openssh < /etc/lsh/host-key.pub \n"
@@ -3509,851 +4190,840 @@ msgstr ""
 "ssh-rsa AAAAB3NzaC1yc2EAAAAEOp8FoQAAAQEAs1eB46LV@dots{}\n"
 
 #. type: deftp
-#: doc/guix.texi:1017
+#: doc/guix.texi:1090
 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:1020
+#: doc/guix.texi:1093
 #, no-wrap
 msgid "@code{port} (default: @code{22})"
 msgstr "@code{port} (par défaut : @code{22})"
 
 #. type: table
-#: doc/guix.texi:1022
+#: doc/guix.texi:1095
 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:1023
+#: doc/guix.texi:1096
 #, 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:1026
+#: doc/guix.texi:1099
 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:1029
+#: doc/guix.texi:1102
 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:1030
+#: doc/guix.texi:1103
 #, 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:1031 doc/guix.texi:11452
+#: doc/guix.texi:1104 doc/guix.texi:12168
 #, no-wrap
 msgid "@code{compression-level} (default: @code{3})"
 msgstr "@code{compression-level} (par défaut : @code{3})"
 
 #. type: table
-#: doc/guix.texi:1033
+#: doc/guix.texi:1106
 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:1036
+#: doc/guix.texi:1109
 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:1037
+#: doc/guix.texi:1110
 #, 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:1040
+#: doc/guix.texi:1113
 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:1041
+#: doc/guix.texi:1114
 #, no-wrap
 msgid "@code{parallel-builds} (default: @code{1})"
 msgstr "@code{parallel-builds} (par défaut : @code{1})"
 
 #. type: table
-#: doc/guix.texi:1043
+#: doc/guix.texi:1116
 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:1044
+#: doc/guix.texi:1117
 #, no-wrap
 msgid "@code{speed} (default: @code{1.0})"
 msgstr "@code{speed} (par défaut : @code{1.0})"
 
 #. type: table
-#: doc/guix.texi:1047
+#: doc/guix.texi:1120
 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:1048
+#: doc/guix.texi:1121
 #, no-wrap
 msgid "@code{features} (default: @code{'()})"
 msgstr "@code{features} (par défaut : @code{'()})"
 
 #. type: table
-#: doc/guix.texi:1053
+#: doc/guix.texi:1126
 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:1061
-msgid "The @code{guile} command must be in the search path on the build machines.  In addition, the Guix modules must be in @code{$GUILE_LOAD_PATH} on the build machine---you can check whether this is the case by running:"
-msgstr "La commande @code{guile} doit être dans le chemin de recherche des machines de construction.  En plus, les modules Guix doivent se trouver dans @code{$GUILE_LOAD_PATH} sur la machine de construction.  Vous pouvez vérifier si c'est le cas en lançant :"
+#: doc/guix.texi:1132
+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:1064
+#: doc/guix.texi:1135
 #, no-wrap
-msgid "ssh build-machine guile -c \"'(use-modules (guix config))'\"\n"
-msgstr "ssh build-machine guile -c \"'(use-modules (guix config))'\"\n"
+msgid "ssh build-machine guix repl --version\n"
+msgstr "ssh build-machine guix repl --version\n"
 
 #. type: Plain text
-#: doc/guix.texi:1071
+#: doc/guix.texi:1142
 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:1074
+#: doc/guix.texi:1145
 #, no-wrap
 msgid "# guix archive --generate-key\n"
 msgstr "# guix archive --generate-key\n"
 
 #. type: Plain text
-#: doc/guix.texi:1079
+#: doc/guix.texi:1150
 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:1082
+#: doc/guix.texi:1153
 #, 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:1086
+#: doc/guix.texi:1157
 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:1092
+#: doc/guix.texi:1163
 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:1093
+#: doc/guix.texi:1164
 #, no-wrap
 msgid "offload test"
 msgstr "test du déchargement"
 
 #. type: Plain text
-#: doc/guix.texi:1096
+#: doc/guix.texi:1167
 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:1099
+#: doc/guix.texi:1170
 #, no-wrap
 msgid "# guix offload test\n"
 msgstr "# guix offload test\n"
 
 #. type: Plain text
-#: doc/guix.texi:1105
+#: doc/guix.texi:1176
 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:1108
+#: doc/guix.texi:1179
 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:1111
+#: doc/guix.texi:1182
 #, no-wrap
 msgid "# guix offload test machines-qualif.scm\n"
 msgstr "# guix offload test machines-qualif.scm\n"
 
 #. type: Plain text
-#: doc/guix.texi:1115
+#: doc/guix.texi:1186
 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:1118
+#: doc/guix.texi:1189
 #, 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:1120
+#: doc/guix.texi:1191
 #, no-wrap
 msgid "offload status"
 msgstr "statut du déchargement"
 
 #. type: Plain text
-#: doc/guix.texi:1123
+#: doc/guix.texi:1194
 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:1126
+#: doc/guix.texi:1197
 #, no-wrap
 msgid "# guix offload status\n"
 msgstr "# guix offload status\n"
 
 #. type: cindex
-#: doc/guix.texi:1132
+#: doc/guix.texi:1203
 #, no-wrap
 msgid "SELinux, daemon policy"
 msgstr "SELinux, politique du démon"
 
 #. type: cindex
-#: doc/guix.texi:1133
+#: doc/guix.texi:1204
 #, no-wrap
 msgid "mandatory access control, SELinux"
 msgstr "contrôle d'accès obligatoire, SELinux"
 
 #. type: cindex
-#: doc/guix.texi:1134
+#: doc/guix.texi:1205
 #, no-wrap
 msgid "security, guix-daemon"
 msgstr "sécurité, guix-daemon"
 
 #. type: Plain text
-#: doc/guix.texi:1140
-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 GuixSD does not provide an SELinux base policy, the daemon policy cannot be used on GuixSD."
-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 GuixSD ne fournit pas de politique SELinux de base, la politique du démon ne peut pas être utilisée sur GuixSD@."
+#: doc/guix.texi:1211
+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:1141
+#: doc/guix.texi:1212
 #, no-wrap
 msgid "Installing the SELinux policy"
 msgstr "Installer la politique SELinux"
 
 #. type: cindex
-#: doc/guix.texi:1142
+#: doc/guix.texi:1213
 #, no-wrap
 msgid "SELinux, policy installation"
 msgstr "SELinux, installation de la politique"
 
 #. type: Plain text
-#: doc/guix.texi:1144
+#: doc/guix.texi:1215
 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:1147
+#: doc/guix.texi:1218
 #, no-wrap
 msgid "semodule -i etc/guix-daemon.cil\n"
 msgstr "semodule -i etc/guix-daemon.cil\n"
 
 #. type: Plain text
-#: doc/guix.texi:1151
+#: doc/guix.texi:1222
 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:1156
+#: doc/guix.texi:1227
 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:1159
+#: doc/guix.texi:1230
 #, no-wrap
 msgid "ps -Zax | grep guix-daemon\n"
 msgstr "ps -Zax | grep guix-daemon\n"
 
 #. type: Plain text
-#: doc/guix.texi:1164
+#: doc/guix.texi:1235
 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:1166
+#: doc/guix.texi:1237
 #, no-wrap
 msgid "SELinux, limitations"
 msgstr "SELinux, limites"
 
 #. type: Plain text
-#: doc/guix.texi:1171
+#: doc/guix.texi:1242
 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:1178
+#: doc/guix.texi:1249
 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:1189
+#: doc/guix.texi:1260
 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 l'utilisateur 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:1194
+#: doc/guix.texi:1265
 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:1205
+#: doc/guix.texi:1276
 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 utilisateur 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:1213
+#: doc/guix.texi:1284
 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:1216
+#: doc/guix.texi:1287
 #, no-wrap
 msgid "Invoking @command{guix-daemon}"
 msgstr "Invoquer @command{guix-daemon}"
 
 #. type: Plain text
-#: doc/guix.texi:1222
+#: doc/guix.texi:1293
 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:1229
+#: doc/guix.texi:1300
 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:1231
+#: doc/guix.texi:1302
 #, no-wrap
 msgid "container, build environment"
 msgstr "conteneur, environnement de construction"
 
 #. type: cindex
-#: doc/guix.texi:1233 doc/guix.texi:1778 doc/guix.texi:2447 doc/guix.texi:8527
+#: doc/guix.texi:1304 doc/guix.texi:2553 doc/guix.texi:3214 doc/guix.texi:9746
 #, no-wrap
 msgid "reproducible builds"
 msgstr "constructions reproductibles"
 
 #. type: Plain text
-#: doc/guix.texi:1245
+#: doc/guix.texi:1316
 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})."
 
 #. type: Plain text
-#: doc/guix.texi:1251
+#: doc/guix.texi:1322
 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, 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}."
 
 #. type: Plain text
-#: doc/guix.texi:1255
+#: doc/guix.texi:1326
 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:1261
+#: doc/guix.texi:1332
 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."
 
 #. type: Plain text
-#: doc/guix.texi:1263
+#: doc/guix.texi:1334
 msgid "The following command-line options are supported:"
 msgstr "Les options en ligne de commande suivantes sont disponibles :"
 
 #. type: item
-#: doc/guix.texi:1265
+#: doc/guix.texi:1336
 #, no-wrap
 msgid "--build-users-group=@var{group}"
 msgstr "--build-users-group=@var{groupe}"
 
 #. type: table
-#: doc/guix.texi:1268
+#: doc/guix.texi:1339
 msgid "Take users from @var{group} to run build processes (@pxref{Setting Up the Daemon, build users})."
 msgstr "Prendre les utilisateurs de @var{group} pour lancer les processus de construction (@pxref{Paramétrer le démon, utilisateurs de construction})."
 
 #. type: item
-#: doc/guix.texi:1269 doc/guix.texi:6270
+#: doc/guix.texi:1340 doc/guix.texi:7696
 #, no-wrap
 msgid "--no-substitutes"
 msgstr "--no-substitutes"
 
 #. type: cindex
-#: doc/guix.texi:1270 doc/guix.texi:1790 doc/guix.texi:2303
+#: doc/guix.texi:1341 doc/guix.texi:2565 doc/guix.texi:3075
 #, no-wrap
 msgid "substitutes"
 msgstr "substituts"
 
 #. type: table
-#: doc/guix.texi:1274 doc/guix.texi:6274
+#: doc/guix.texi:1345 doc/guix.texi:7700
 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:1278
+#: doc/guix.texi:1349
 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})."
 
 #. type: item
-#: doc/guix.texi:1279 doc/guix.texi:6257 doc/guix.texi:7769 doc/guix.texi:8652
-#: doc/guix.texi:8840
+#: doc/guix.texi:1350 doc/guix.texi:7683 doc/guix.texi:9290 doc/guix.texi:9871
+#: doc/guix.texi:10061
 #, no-wrap
 msgid "--substitute-urls=@var{urls}"
 msgstr "--substitute-urls=@var{urls}"
 
 #. type: anchor{#1}
-#: doc/guix.texi:1285
+#: doc/guix.texi:1355
 msgid "daemon-substitute-urls"
 msgstr "daemon-substitute-urls"
 
 #. type: table
-#: doc/guix.texi:1285
-msgid "Consider @var{urls} the default whitespace-separated list of substitute source URLs.  When this option is omitted, @indicateurl{https://mirror.hydra.gnu.org https://hydra.gnu.org} is used (@code{mirror.hydra.gnu.org} is a mirror of @code{hydra.gnu.org})."
-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://mirror.hydra.gnu.org https://hydra.gnu.org} est utilisé  (@code{mirror.hydra.gnu.org} est un miroir de @code{hydra.gnu.org})."
+#: doc/guix.texi:1355
+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:1288
+#: doc/guix.texi:1358
 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: item
-#: doc/guix.texi:1290 doc/guix.texi:6295
+#: doc/guix.texi:1360 doc/guix.texi:7721
 #, no-wrap
 msgid "--no-build-hook"
 msgstr "--no-build-hook"
 
 #. type: table
-#: doc/guix.texi:1292
+#: doc/guix.texi:1362
 msgid "Do not use the @dfn{build hook}."
 msgstr "Ne pas utiliser le @dfn{crochet de construction}."
 
 #. type: table
-#: doc/guix.texi:1296
+#: doc/guix.texi:1366
 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})."
 
 #. type: item
-#: doc/guix.texi:1297
+#: doc/guix.texi:1367
 #, no-wrap
 msgid "--cache-failures"
 msgstr "--cache-failures"
 
 #. type: table
-#: doc/guix.texi:1299
+#: doc/guix.texi:1369
 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:1304
+#: doc/guix.texi:1374
 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:1305 doc/guix.texi:6319
+#: doc/guix.texi:1375 doc/guix.texi:7750
 #, no-wrap
 msgid "--cores=@var{n}"
 msgstr "--cores=@var{n}"
 
 #. type: itemx
-#: doc/guix.texi:1306 doc/guix.texi:6320
+#: doc/guix.texi:1376 doc/guix.texi:7751
 #, no-wrap
 msgid "-c @var{n}"
 msgstr "-c @var{n}"
 
 #. type: table
-#: doc/guix.texi:1309
+#: doc/guix.texi:1379
 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:1313
+#: doc/guix.texi:1383
 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})."
 
 #. type: table
-#: doc/guix.texi:1317
+#: doc/guix.texi:1387
 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}."
 
 #. type: item
-#: doc/guix.texi:1318 doc/guix.texi:6324
+#: doc/guix.texi:1388 doc/guix.texi:7755
 #, no-wrap
 msgid "--max-jobs=@var{n}"
 msgstr "--max-jobs=@var{n}"
 
 #. type: itemx
-#: doc/guix.texi:1319 doc/guix.texi:6325
+#: doc/guix.texi:1389 doc/guix.texi:7756
 #, no-wrap
 msgid "-M @var{n}"
 msgstr "-M @var{n}"
 
 #. type: table
-#: doc/guix.texi:1324
+#: doc/guix.texi:1394
 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:1325 doc/guix.texi:6300
+#: doc/guix.texi:1395 doc/guix.texi:7726
 #, no-wrap
 msgid "--max-silent-time=@var{seconds}"
 msgstr "--max-silent-time=@var{secondes}"
 
 #. type: table
-#: doc/guix.texi:1328 doc/guix.texi:6303
+#: doc/guix.texi:1398 doc/guix.texi:7729
 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:1330 doc/guix.texi:1339
+#: doc/guix.texi:1400 doc/guix.texi:1409
 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:1333
+#: doc/guix.texi:1403
 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}})."
 
 #. type: item
-#: doc/guix.texi:1334 doc/guix.texi:6307
+#: doc/guix.texi:1404 doc/guix.texi:7733
 #, no-wrap
 msgid "--timeout=@var{seconds}"
 msgstr "--timeout=@var{secondes}"
 
 #. type: table
-#: doc/guix.texi:1337 doc/guix.texi:6310
+#: doc/guix.texi:1407 doc/guix.texi:7736
 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:1342
+#: doc/guix.texi:1412
 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}})."
 
 #. type: item
-#: doc/guix.texi:1343
+#: doc/guix.texi:1413
 #, no-wrap
 msgid "--rounds=@var{N}"
 msgstr "--rounds=@var{N}"
 
 #. type: table
-#: doc/guix.texi:1348
+#: doc/guix.texi:1418
 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:1352 doc/guix.texi:6608
+#: doc/guix.texi:1422 doc/guix.texi:8095
 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:1353
+#: doc/guix.texi:1423
 #, no-wrap
 msgid "--debug"
 msgstr "--debug"
 
 #. type: table
-#: doc/guix.texi:1355
+#: doc/guix.texi:1425
 msgid "Produce debugging output."
 msgstr "Produire une sortie de débogage."
 
 #. type: table
-#: doc/guix.texi:1359
+#: doc/guix.texi:1429
 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})."
 
 #. type: item
-#: doc/guix.texi:1360
+#: doc/guix.texi:1430
 #, no-wrap
 msgid "--chroot-directory=@var{dir}"
 msgstr "--chroot-directory=@var{rép}"
 
 #. type: table
-#: doc/guix.texi:1362
+#: doc/guix.texi:1432
 msgid "Add @var{dir} to the build chroot."
-msgstr "Ajouter @var{rép} au chroot de construction"
+msgstr "Ajouter @var{rép} au chroot de construction."
 
 #. type: table
-#: doc/guix.texi:1368
+#: doc/guix.texi:1438
 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:1369
+#: doc/guix.texi:1439
 #, no-wrap
 msgid "--disable-chroot"
 msgstr "--disable-chroot"
 
 #. type: table
-#: doc/guix.texi:1371
+#: doc/guix.texi:1441
 msgid "Disable chroot builds."
 msgstr "Désactive les constructions dans un chroot."
 
 #. type: table
-#: doc/guix.texi:1376
+#: doc/guix.texi:1446
 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 en tant qu'utilisateur non privilégié."
 
 #. type: item
-#: doc/guix.texi:1377
+#: doc/guix.texi:1447
 #, no-wrap
 msgid "--log-compression=@var{type}"
 msgstr "--log-compression=@var{type}"
 
 #. type: table
-#: doc/guix.texi:1380
+#: doc/guix.texi:1450
 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:1384
+#: doc/guix.texi:1454
 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."
 
 #. type: item
-#: doc/guix.texi:1385
+#: doc/guix.texi:1455
 #, no-wrap
 msgid "--disable-deduplication"
 msgstr "--disable-deduplication"
 
 #. type: cindex
-#: doc/guix.texi:1386 doc/guix.texi:2763
+#: doc/guix.texi:1456 doc/guix.texi:3548
 #, no-wrap
 msgid "deduplication"
 msgstr "déduplication"
 
 #. type: table
-#: doc/guix.texi:1388
+#: doc/guix.texi:1458
 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:1395
+#: doc/guix.texi:1465
 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:1396
+#: doc/guix.texi:1466
 #, no-wrap
 msgid "--gc-keep-outputs[=yes|no]"
 msgstr "--gc-keep-outputs[=yes|no]"
 
 #. type: table
-#: doc/guix.texi:1399
+#: doc/guix.texi:1469
 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:1400 doc/guix.texi:2598
+#: doc/guix.texi:1470 doc/guix.texi:3365
 #, no-wrap
 msgid "GC roots"
 msgstr "racines du GC"
 
 #. type: cindex
-#: doc/guix.texi:1401 doc/guix.texi:2599
+#: doc/guix.texi:1471 doc/guix.texi:3366
 #, no-wrap
 msgid "garbage collector roots"
 msgstr "racines du ramasse-miettes"
 
 #. type: table
-#: doc/guix.texi:1406
+#: doc/guix.texi:1476
 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."
 
 #. type: item
-#: doc/guix.texi:1407
+#: doc/guix.texi:1477
 #, no-wrap
 msgid "--gc-keep-derivations[=yes|no]"
 msgstr "--gc-keep-derivations[=yes|no]"
 
 #. type: table
-#: doc/guix.texi:1410
+#: doc/guix.texi:1480
 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:1415
+#: doc/guix.texi:1485
 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 aux utilisateurs de garder une trace de l'origine des éléments du dépôt.  Le mettre à « no » préserve un peu d'espace disque."
 
 #. type: table
-#: doc/guix.texi:1423
+#: doc/guix.texi:1493
 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."
 
 #. type: item
-#: doc/guix.texi:1424
+#: doc/guix.texi:1494
 #, no-wrap
 msgid "--impersonate-linux-2.6"
 msgstr "--impersonate-linux-2.6"
 
 #. type: table
-#: doc/guix.texi:1427
+#: doc/guix.texi:1497
 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."
 
 #. type: table
-#: doc/guix.texi:1430
+#: doc/guix.texi:1500
 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:1431
+#: doc/guix.texi:1501
 #, no-wrap
 msgid "--lose-logs"
 msgstr "--lose-logs"
 
 #. type: table
-#: doc/guix.texi:1434
+#: doc/guix.texi:1504
 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}."
 
 #. type: item
-#: doc/guix.texi:1435 doc/guix.texi:3468 doc/guix.texi:6554 doc/guix.texi:7796
-#: doc/guix.texi:7979 doc/guix.texi:8211 doc/guix.texi:8845
-#: doc/guix.texi:21977 doc/guix.texi:22534
+#: doc/guix.texi:1505 doc/guix.texi:3694 doc/guix.texi:4562 doc/guix.texi:4855
+#: doc/guix.texi:8039 doc/guix.texi:9317 doc/guix.texi:9516
+#: doc/guix.texi:10066 doc/guix.texi:23797 doc/guix.texi:24417
 #, no-wrap
 msgid "--system=@var{system}"
 msgstr "--system=@var{système}"
 
 #. type: table
-#: doc/guix.texi:1439
+#: doc/guix.texi:1509
 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:1440 doc/guix.texi:6114
+#: doc/guix.texi:1510 doc/guix.texi:7541
 #, no-wrap
 msgid "--listen=@var{endpoint}"
 msgstr "--listen=@var{extrémité}"
 
 #. type: table
-#: doc/guix.texi:1445
+#: doc/guix.texi:1515
 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:1447
+#: doc/guix.texi:1517
 #, no-wrap
 msgid "--listen=/gnu/var/daemon"
 msgstr "--listen=/gnu/var/daemon"
 
 #. type: table
-#: doc/guix.texi:1450
+#: doc/guix.texi:1520
 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:1451
+#: doc/guix.texi:1521
 #, no-wrap
 msgid "--listen=localhost"
 msgstr "--listen=localhost"
 
 #. type: cindex
-#: doc/guix.texi:1452 doc/guix.texi:4908
+#: doc/guix.texi:1522 doc/guix.texi:6322
 #, no-wrap
 msgid "daemon, remote access"
 msgstr "démon, accès distant"
 
 #. type: cindex
-#: doc/guix.texi:1453 doc/guix.texi:4909
+#: doc/guix.texi:1523 doc/guix.texi:6323
 #, no-wrap
 msgid "remote access to the daemon"
 msgstr "accès distant au démon"
 
 #. type: cindex
-#: doc/guix.texi:1454 doc/guix.texi:4910
+#: doc/guix.texi:1524 doc/guix.texi:6324
 #, no-wrap
 msgid "daemon, cluster setup"
 msgstr "démon, paramètres de grappes"
 
 #. type: cindex
-#: doc/guix.texi:1455 doc/guix.texi:4911
+#: doc/guix.texi:1525 doc/guix.texi:6325
 #, no-wrap
 msgid "clusters, daemon setup"
 msgstr "grappes, paramètres du démon"
 
 #. type: table
-#: doc/guix.texi:1458
+#: doc/guix.texi:1528
 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:1459
+#: doc/guix.texi:1529
 #, no-wrap
 msgid "--listen=128.0.0.42:1234"
 msgstr "--listen=128.0.0.42:1234"
 
 #. type: table
-#: doc/guix.texi:1462
+#: doc/guix.texi:1532
 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:1469
+#: doc/guix.texi:1539
 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.  Les utilisateurs peuvent dire aux commandes clientes à quelle extrémité se connecter en paramétrant la variable d'environnement @code{GUIX_DAEMON_SOCKET} (@pxref{The Store, @code{GUIX_DAEMON_SOCKET}})."
 
 #. type: quotation
-#: doc/guix.texi:1470 doc/guix.texi:2380 doc/guix.texi:3090 doc/guix.texi:3303
-#: doc/guix.texi:3533 doc/guix.texi:4878 doc/guix.texi:4946 doc/guix.texi:6559
-#: doc/guix.texi:6571 doc/guix.texi:8103 doc/guix.texi:8730 doc/guix.texi:9003
-#: doc/guix.texi:9215 doc/guix.texi:9364 doc/guix.texi:12705
-#: doc/guix.texi:17530 doc/guix.texi:22317 doc/guix.texi:22515
-#: doc/guix.texi:22602 doc/guix.texi:23505
-#, no-wrap
-msgid "Note"
-msgstr "Remarque"
-
-#. type: quotation
-#: doc/guix.texi:1476
+#: doc/guix.texi:1546
 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@."
 
 #. type: table
-#: doc/guix.texi:1481
+#: doc/guix.texi:1551
 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}."
 
 #. type: Plain text
-#: doc/guix.texi:1491
-msgid "When using Guix on top of GNU/Linux distribution other than GuixSD---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 différente de GuixSD — ce qu'on appelle une @dfn{distro externe} — quelques étapes supplémentaires sont requises pour que tout soit en place.  En voici certaines."
+#: doc/guix.texi:1561
+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:1495
+#: doc/guix.texi:1565
 msgid "locales-and-locpath"
 msgstr "locales-and-locpath"
 
 #. type: cindex
-#: doc/guix.texi:1495
+#: doc/guix.texi:1565
 #, no-wrap
-msgid "locales, when not on GuixSD"
-msgstr "régionalisation, en dehors de GuixSD"
+msgid "locales, when not on Guix System"
+msgstr "régionalisation, en dehors de Guix System"
 
 #. type: vindex
-#: doc/guix.texi:1496 doc/guix.texi:10533
+#: doc/guix.texi:1566 doc/guix.texi:11265
 #, no-wrap
 msgid "LOCPATH"
 msgstr "LOCPATH"
 
 #. type: vindex
-#: doc/guix.texi:1497
+#: doc/guix.texi:1567
 #, no-wrap
 msgid "GUIX_LOCPATH"
 msgstr "GUIX_LOCPATH"
 
 #. type: Plain text
-#: doc/guix.texi:1502
+#: doc/guix.texi:1572
 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} :"
 
 #. type: example
-#: doc/guix.texi:1506
+#: doc/guix.texi:1576
 #, no-wrap
 msgid ""
 "$ guix package -i glibc-locales\n"
@@ -4363,445 +5033,1356 @@ msgstr ""
 "$ export GUIX_LOCPATH=$HOME/.guix-profile/lib/locale\n"
 
 #. type: Plain text
-#: doc/guix.texi:1512
+#: doc/guix.texi:1582
 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."
 
 #. type: Plain text
-#: doc/guix.texi:1516
+#: doc/guix.texi:1586
 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 :"
 
 #. type: enumerate
-#: doc/guix.texi:1523
+#: doc/guix.texi:1593
 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."
 
 #. type: enumerate
-#: doc/guix.texi:1530
+#: doc/guix.texi:1600
 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."
 
 #. type: Plain text
-#: doc/guix.texi:1534
+#: doc/guix.texi:1604
 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:1537
+#: doc/guix.texi:1607
 #, no-wrap
 msgid "name service switch, glibc"
 msgstr "name service switch, glibc"
 
 #. type: cindex
-#: doc/guix.texi:1538
+#: doc/guix.texi:1608
 #, no-wrap
 msgid "NSS (name service switch), glibc"
 msgstr "NSS (name service switch), glibc"
 
 #. type: cindex
-#: doc/guix.texi:1539
+#: doc/guix.texi:1609
 #, no-wrap
 msgid "nscd (name service caching daemon)"
 msgstr "nscd (name service caching daemon)"
 
 #. type: cindex
-#: doc/guix.texi:1540
+#: doc/guix.texi:1610
 #, no-wrap
 msgid "name service caching daemon (nscd)"
 msgstr "name service caching daemon (nscd)"
 
 #. type: Plain text
-#: doc/guix.texi:1547
+#: doc/guix.texi:1617
 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 d'utilisateurs, ou même planter.  Les paragraphes suivants expliquent pourquoi."
 
 #. type: file{#1}
-#: doc/guix.texi:1548
+#: doc/guix.texi:1618
 #, no-wrap
 msgid "nsswitch.conf"
 msgstr "nsswitch.conf"
 
 #. type: Plain text
-#: doc/guix.texi:1553
+#: doc/guix.texi:1623
 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 et plus (@pxref{Name Service Switch,,, libc, The GNU C Library Reference Manual})."
 
 #. type: cindex
-#: doc/guix.texi:1554
+#: doc/guix.texi:1624
 #, no-wrap
 msgid "Network information service (NIS)"
 msgstr "Network information service (NIS)"
 
 #. type: cindex
-#: doc/guix.texi:1555
+#: doc/guix.texi:1625
 #, no-wrap
 msgid "NIS (Network information service)"
 msgstr "NIS (Network information service)"
 
 #. type: Plain text
-#: doc/guix.texi:1564
+#: doc/guix.texi:1634
 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 utilisateurs 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:1574
+#: doc/guix.texi:1644
 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:1579
+#: doc/guix.texi:1649
 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:1584
+#: doc/guix.texi:1654
 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:1585
+#: doc/guix.texi:1655
 #, no-wrap
 msgid "X11 Fonts"
 msgstr "Polices X11"
 
-#. type: cindex
-#: doc/guix.texi:1587 doc/guix.texi:24079
-#, no-wrap
-msgid "fonts"
-msgstr "polices"
-
 #. type: Plain text
-#: doc/guix.texi:1595
+#: doc/guix.texi:1665
 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}."
 
 #. type: Plain text
-#: doc/guix.texi:1602
+#: doc/guix.texi:1672
 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:1605
+#: doc/guix.texi:1675
 #, no-wrap
 msgid "guix package -i font-adobe-source-han-sans:cn\n"
 msgstr "guix package -i font-adobe-source-han-sans:cn\n"
 
 #. type: code{#1}
-#: doc/guix.texi:1607
+#: doc/guix.texi:1677
 #, no-wrap
 msgid "xterm"
 msgstr "xterm"
 
 #. type: Plain text
-#: doc/guix.texi:1611
+#: doc/guix.texi:1681
 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:1614
+#: doc/guix.texi:1684
 #, 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:1618
+#: doc/guix.texi:1688
 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:1623
+#: doc/guix.texi:1693
 #, 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:1625
+#: doc/guix.texi:1695
 #, no-wrap
 msgid "xlsfonts"
 msgstr "xlsfonts"
 
 #. type: Plain text
-#: doc/guix.texi:1628
+#: doc/guix.texi:1698
 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:1629
+#: doc/guix.texi:1699
 #, no-wrap
 msgid "fc-cache"
 msgstr "fc-cache"
 
 #. type: cindex
-#: doc/guix.texi:1630
+#: doc/guix.texi:1700
 #, no-wrap
 msgid "font cache"
 msgstr "cache de polices"
 
 #. type: Plain text
-#: doc/guix.texi:1636
+#: doc/guix.texi:1706
 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:1639 doc/guix.texi:21716
+#: doc/guix.texi:1709 doc/guix.texi:23536
 #, no-wrap
 msgid "nss-certs"
 msgstr "nss-certs"
 
 #. type: Plain text
-#: doc/guix.texi:1642
+#: doc/guix.texi:1712
 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:1647
+#: doc/guix.texi:1717
 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:1648
+#: doc/guix.texi:1718
 #, no-wrap
 msgid "Emacs Packages"
 msgstr "Paquets emacs"
 
 #. type: code{#1}
-#: doc/guix.texi:1650
+#: doc/guix.texi:1720
 #, no-wrap
 msgid "emacs"
 msgstr "emacs"
 
 #. type: Plain text
-#: doc/guix.texi:1661
+#: doc/guix.texi:1731
 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})."
 
 #. type: Plain text
-#: doc/guix.texi:1667
+#: doc/guix.texi:1737
 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})."
 
 #. type: subsection
-#: doc/guix.texi:1668
+#: doc/guix.texi:1738
 #, no-wrap
 msgid "The GCC toolchain"
 msgstr "La chaîne d'outils GCC"
 
 #. type: cindex
-#: doc/guix.texi:1670
+#: doc/guix.texi:1740
 #, no-wrap
 msgid "GCC"
 msgstr "GCC"
 
 #. type: cindex
-#: doc/guix.texi:1671
+#: doc/guix.texi:1741
 #, no-wrap
 msgid "ld-wrapper"
 msgstr "ld-wrapper"
 
 #. type: Plain text
-#: doc/guix.texi:1680
+#: doc/guix.texi:1750
 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."
 
+#. type: Plain text
+#: doc/guix.texi:1756
+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}."
+
 #. type: cindex
-#: doc/guix.texi:1681
+#: doc/guix.texi:1763
+#, no-wrap
+msgid "installing Guix System"
+msgstr "installer Guix System"
+
+#. type: cindex
+#: doc/guix.texi:1764
 #, no-wrap
-msgid "attempt to use impure library, error message"
-msgstr "tentative d'utiliser une bibliothèque impure, message d'erreur"
+msgid "Guix System, installation"
+msgstr "Guix System, installation"
 
 #. type: Plain text
-#: doc/guix.texi:1691
-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.  By default, the linker wrapper refuses to link to libraries outside the store to ensure ``purity''.  This can be annoying when using the toolchain to link with local libraries.  To allow references to libraries outside the store you need to define the environment variable @code{GUIX_LD_WRAPPER_ALLOW_IMPURITIES}."
-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.  Par défaut, l'enveloppe refuse de lier des bibliothèques en dehors du dépôt pour assure la « pureté ».  Cela peut être embêtant lorsque vous utilisez la chaîne d'outils pour lier des bibliothèques locales.  Pour permettre des références à des bibliothèques en dehors du dépôt, vous devrez définir la variable d'environnement @code{GUIX_LD_WRAPPER_ALLOW_IMPURITIES}."
+#: doc/guix.texi:1769
+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:1778
+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:1781
+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."
+
+#. type: Plain text
+#: doc/guix.texi:1802
+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:1805
+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:1809
+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:1813
+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:1818
+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:1823
+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:1698
+#: doc/guix.texi:1828
+#, no-wrap
+msgid "hardware support on Guix System"
+msgstr "prise en charge du matériel sur Guix System"
+
+#. type: Plain text
+#: doc/guix.texi:1837
+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.  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 produit dont les fabricants refusent de laisser le contrôle aux utilisateurs 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:1838
+#, no-wrap
+msgid "WiFi, hardware support"
+msgstr "WiFi, support matériel"
+
+#. type: Plain text
+#: doc/guix.texi:1847
+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:1848
+#, no-wrap
+msgid "RYF, Respects Your Freedom"
+msgstr "RYF, Respects Your Freedom"
+
+#. type: Plain text
+#: doc/guix.texi:1854
+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:1858
+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:1867
+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 "Une image d'installation ISO-9660 téléchargeable depuis @indicateurl{https://alpha.gnu.org/gnu/guix/guix-system-install-@value{VERSION}.@var{système}.iso.xz} peut être écrite sur une clef USB ou gravée sur un DVD, où @var{système} est l'une de ces valeurs :"
+
+#. type: table
+#: doc/guix.texi:1871
+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:1874
+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 ;"
+
+#. type: Plain text
+#: doc/guix.texi:1879
+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:1883
+#, no-wrap
+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"
+
+#. type: Plain text
+#: doc/guix.texi:1899
+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:1900
+#, no-wrap
+msgid "Copying to a USB Stick"
+msgstr "Copie sur une clef USB"
+
+#. type: Plain text
+#: doc/guix.texi:1903
+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:1907 doc/guix.texi:1932
+msgid "Decompress the image using the @command{xz} command:"
+msgstr "Décompressez l'image avec la commande @command{xz} :"
+
+#. type: example
+#: doc/guix.texi:1910 doc/guix.texi:1935
+#, 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"
+
+#. type: enumerate
+#: doc/guix.texi:1916
+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:1920
+#, no-wrap
+msgid ""
+"dd if=guix-system-install-@value{VERSION}.@var{system}.iso of=/dev/sdX\n"
+"sync\n"
+msgstr ""
+"dd if=guix-system-install-@value{VERSION}.@var{système}.iso of=/dev/sdX\n"
+"sync\n"
+
+#. type: enumerate
+#: doc/guix.texi:1923
+msgid "Access to @file{/dev/sdX} usually requires root privileges."
+msgstr "Accéder à @file{/dev/sdX} requiert généralement les privilèges super-utilisateur."
+
+#. type: unnumberedsubsec
+#: doc/guix.texi:1925
+#, no-wrap
+msgid "Burning on a DVD"
+msgstr "Graver sur un DVD"
+
+#. type: Plain text
+#: doc/guix.texi:1928
+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:1941
+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:1944
+#, 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"
+
+#. type: enumerate
+#: doc/guix.texi:1947
+msgid "Access to @file{/dev/srX} usually requires root privileges."
+msgstr "Accéder à @file{/dev/srX} requiert généralement les privilèges super-utilisateur."
+
+#. type: unnumberedsubsec
+#: doc/guix.texi:1949
+#, no-wrap
+msgid "Booting"
+msgstr "Démarrage"
+
+#. type: Plain text
+#: doc/guix.texi:1954
+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."
+
+#. type: Plain text
+#: doc/guix.texi:1957
+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:1967
+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})."
+
+#. type: Plain text
+#: doc/guix.texi:1975
+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:1980
+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:1987
+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:1992
+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:1994
+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:1999
+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:2001
+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:2004
+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:2006
+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:2011
+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:2021
+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:2027
+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:2034
+#, no-wrap
+msgid "Keyboard Layout, Networking, and Partitioning"
+msgstr "Disposition du clavier réseau et partitionnement"
+
+#. type: Plain text
+#: doc/guix.texi:2039
+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:2042 doc/guix.texi:11093
+#, no-wrap
+msgid "keyboard layout"
+msgstr "disposition du clavier"
+
+#. type: Plain text
+#: doc/guix.texi:2046
+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:2049
+#, no-wrap
+msgid "loadkeys dvorak\n"
+msgstr "loadkeys dvorak\n"
+
+#. type: Plain text
+#: doc/guix.texi:2054
+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:2055
+#, no-wrap
+msgid "Networking"
+msgstr "Réseau"
+
+#. type: Plain text
+#: doc/guix.texi:2058
+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:2061
+#, no-wrap
+msgid "ifconfig -a\n"
+msgstr "ifconfig -a\n"
+
+#. type: Plain text
+#: doc/guix.texi:2065
+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:2068
+#, no-wrap
+msgid "ip a\n"
+msgstr "ip a\n"
+
+#. type: Plain text
+#: doc/guix.texi:2075
+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:2077
+#, no-wrap
+msgid "Wired connection"
+msgstr "Connexion filaire"
+
+#. type: table
+#: doc/guix.texi:2080
+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:2083
+#, no-wrap
+msgid "ifconfig @var{interface} up\n"
+msgstr "ifconfig @var{interface} up\n"
+
+#. type: item
+#: doc/guix.texi:2085
+#, no-wrap
+msgid "Wireless connection"
+msgstr "Connexion sans-fil"
+
+#. type: cindex
+#: doc/guix.texi:2086 doc/guix.texi:12524
+#, no-wrap
+msgid "wireless"
+msgstr "sans-fil"
+
+#. type: cindex
+#: doc/guix.texi:2087 doc/guix.texi:12525
+#, no-wrap
+msgid "WiFi"
+msgstr "WiFi"
+
+#. type: table
+#: doc/guix.texi:2092
+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:2095
+#, no-wrap
+msgid "nano wpa_supplicant.conf\n"
+msgstr "nano wpa_supplicant.conf\n"
+
+#. type: table
+#: doc/guix.texi:2100
+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:2107
+#, no-wrap
+msgid ""
+"network=@{\n"
+"  ssid=\"@var{my-ssid}\"\n"
+"  key_mgmt=WPA-PSK\n"
+"  psk=\"the network's secret passphrase\"\n"
+"@}\n"
+msgstr ""
+"network=@{\n"
+"  ssid=\"@var{mon-ssid}\"\n"
+"  key_mgmt=WPA-PSK\n"
+"  psk=\"la phrase de passe secrète du réseau\"\n"
+"@}\n"
+
+#. type: table
+#: doc/guix.texi:2112
+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:2115
+#, 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:2118
+msgid "Run @command{man wpa_supplicant} for more information."
+msgstr "Lancez @command{man wpa_supplicant} pour plus d'informations."
+
+#. type: cindex
+#: doc/guix.texi:2120
+#, no-wrap
+msgid "DHCP"
+msgstr "DHCP"
+
+#. type: Plain text
+#: doc/guix.texi:2123
+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:2126
+#, no-wrap
+msgid "dhclient -v @var{interface}\n"
+msgstr "dhclient -v @var{interface}\n"
+
+#. type: Plain text
+#: doc/guix.texi:2129
+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:2132
+#, no-wrap
+msgid "ping -c 3 gnu.org\n"
+msgstr "ping -c 3 gnu.org\n"
+
+#. type: Plain text
+#: doc/guix.texi:2136
+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:2137
+#, no-wrap
+msgid "installing over SSH"
+msgstr "installer par SSH"
+
+#. type: Plain text
+#: doc/guix.texi:2140
+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:2143
+#, no-wrap
+msgid "herd start ssh-daemon\n"
+msgstr "herd start ssh-daemon\n"
+
+#. type: Plain text
+#: doc/guix.texi:2147
+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:2148
+#, no-wrap
+msgid "Disk Partitioning"
+msgstr "Partitionnement"
+
+#. type: Plain text
+#: doc/guix.texi:2152
+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:2157
+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:2160
+#, no-wrap
+msgid "cfdisk\n"
+msgstr "cfdisk\n"
+
+#. type: Plain text
+#: doc/guix.texi:2166
+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:2167
+#, no-wrap
+msgid "EFI, installation"
+msgstr "EFI, installation"
+
+#. type: cindex
+#: doc/guix.texi:2168
+#, no-wrap
+msgid "UEFI, installation"
+msgstr "UEFI, installation"
+
+#. type: cindex
+#: doc/guix.texi:2169
+#, no-wrap
+msgid "ESP, EFI system partition"
+msgstr "ESP, partition système EFI"
+
+#. type: Plain text
+#: doc/guix.texi:2173
+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:2176
+#, 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:2179 doc/guix.texi:23926
+#, no-wrap
+msgid "grub-bootloader"
+msgstr "grub-bootloader"
+
+#. type: vindex
+#: doc/guix.texi:2180 doc/guix.texi:23920
+#, no-wrap
+msgid "grub-efi-bootloader"
+msgstr "grub-efi-bootloader"
+
+#. type: quotation
+#: doc/guix.texi:2187
+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:2195
+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 :"
+
+#. type: example
+#: doc/guix.texi:2198
+#, no-wrap
+msgid "mkfs.fat -F32 /dev/sda1\n"
+msgstr "mkfs.fat -F32 /dev/sda1\n"
+
+#. type: Plain text
+#: doc/guix.texi:2206
+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:2209
+#, 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:2211 doc/guix.texi:10355
+#, no-wrap
+msgid "encrypted disk"
+msgstr "chiffrement du disque"
+
+#. type: Plain text
+#: doc/guix.texi:2218
+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 :"
+
+#. type: example
+#: doc/guix.texi:2223
+#, no-wrap
+msgid ""
+"cryptsetup luksFormat /dev/sda2\n"
+"cryptsetup open --type luks /dev/sda2 my-partition\n"
+"mkfs.ext4 -L my-root /dev/mapper/my-partition\n"
+msgstr ""
+"cryptsetup luksFormat /dev/sda2\n"
+"cryptsetup open --type luks /dev/sda2 my-partition\n"
+"mkfs.ext4 -L my-root /dev/mapper/my-partition\n"
+
+#. type: Plain text
+#: doc/guix.texi:2228
+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:2231
+#, no-wrap
+msgid "mount LABEL=my-root /mnt\n"
+msgstr "mount LABEL=my-root /mnt\n"
+
+#. type: Plain text
+#: doc/guix.texi:2237
+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:2242
+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:2246
+#, no-wrap
+msgid ""
+"mkswap /dev/sda3\n"
+"swapon /dev/sda3\n"
+msgstr ""
+"mkswap /dev/sda3\n"
+"swapon /dev/sda3\n"
+
+#. type: Plain text
+#: doc/guix.texi:2254
+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:2262
+#, no-wrap
+msgid ""
+"# This is 10 GiB of swap space.  Adjust \"count\" to change the size.\n"
+"dd if=/dev/zero of=/mnt/swapfile bs=1MiB count=10240\n"
+"# For security, make the file readable and writable only by root.\n"
+"chmod 600 /mnt/swapfile\n"
+"mkswap /mnt/swapfile\n"
+"swapon /mnt/swapfile\n"
+msgstr ""
+"# Cela représente 10 Gio d'espace d'échange. Ajustez « count » pour changer la taille.\n"
+"dd if=/dev/zero of=/mnt/swapfile bs=1MiB count=10240\n"
+"# Par sécurité, laissez le fichier en lecture et en écriture uniquement pour root.\n"
+"chmod 600 /mnt/swapfile\n"
+"mkswap /mnt/swapfile\n"
+"swapon /mnt/swapfile\n"
+
+#. type: Plain text
+#: doc/guix.texi:2267
+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:2273
+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:2276
+#, no-wrap
+msgid "herd start cow-store /mnt\n"
+msgstr "herd start cow-store /mnt\n"
+
+#. type: Plain text
+#: doc/guix.texi:2283
+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:2294
+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:2301
+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:2306
+#, no-wrap
+msgid ""
+"# mkdir /mnt/etc\n"
+"# cp /etc/configuration/desktop.scm /mnt/etc/config.scm\n"
+"# nano /mnt/etc/config.scm\n"
+msgstr ""
+"# mkdir /mnt/etc\n"
+"# cp /etc/configuration/desktop.scm /mnt/etc/config.scm\n"
+"# nano /mnt/etc/config.scm\n"
+
+#. type: Plain text
+#: doc/guix.texi:2310
+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:2321
+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:2327
+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:2331
+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:2336
+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:2339
+#, 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:2346
+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:2354
+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 utilisateurs 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 utilisateurs}).  @xref{After System Installation}, pour la suite !"
+
+#. type: Plain text
+#: doc/guix.texi:2361
+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:2365
+#, no-wrap
+msgid ""
+"guix pull\n"
+"sudo guix system reconfigure /etc/config.scm\n"
+msgstr ""
+"guix pull\n"
+"sudo guix system reconfigure /etc/config.scm\n"
+
+#. type: Plain text
+#: doc/guix.texi:2371
+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:2374
+#, no-wrap
+msgid "sudo vs. @command{guix pull}"
+msgstr "sudo vs.@: @command{guix pull}"
+
+#. type: quotation
+#: doc/guix.texi:2378
+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 utilisateur 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{}}."
+
+#. type: Plain text
+#: doc/guix.texi:2382
+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 !"
+
+#. type: section
+#: doc/guix.texi:2385
+#, no-wrap
+msgid "Installing Guix in a Virtual Machine"
+msgstr "Installer Guix sur une machine virtuelle"
+
+#. type: cindex
+#: doc/guix.texi:2387
+#, no-wrap
+msgid "virtual machine, Guix System installation"
+msgstr "machine virtuelle, installation de Guix System"
+
+#. type: cindex
+#: doc/guix.texi:2388
+#, no-wrap
+msgid "virtual private server (VPS)"
+msgstr "serveur privé virtuel (VPS)"
+
+#. type: cindex
+#: doc/guix.texi:2389
+#, no-wrap
+msgid "VPS (virtual private server)"
+msgstr "VPS (serveur privé virtuel)"
+
+#. type: Plain text
+#: doc/guix.texi:2393
+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:2396
+msgid "To boot a @uref{http://qemu.org/,QEMU} VM for installing Guix System in a disk image, follow these steps:"
+msgstr "Pour démarrer une VM @uref{http://qemu.org/,QEMU} pour installer Guix System sur une image disque, suivez ces étapes :"
+
+#. type: enumerate
+#: doc/guix.texi:2401
+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:2405
+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:2408
+#, no-wrap
+msgid "qemu-img create -f qcow2 guixsd.img 50G\n"
+msgstr "qemu-img create -f qcow2 guixsd.img 50G\n"
+
+#. type: enumerate
+#: doc/guix.texi:2412
+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:2415
+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:2421
+#, 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"
+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:2424
+msgid "The ordering of the drives matters."
+msgstr "L'ordre des périphérique est important."
+
+#. type: enumerate
+#: doc/guix.texi:2428
+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."
+
+#. type: enumerate
+#: doc/guix.texi:2432
+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:2437
+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."
+
+#. type: cindex
+#: doc/guix.texi:2441
+#, no-wrap
+msgid "installation image"
+msgstr "image d'installation"
+
+#. type: Plain text
+#: doc/guix.texi:2444
+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:2448
+#, 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"
+
+#. type: Plain text
+#: doc/guix.texi:2453
+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:2454
+#, 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:2458
+msgid "Many ARM boards require a specific variant of the @uref{http://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{http://www.denx.de/wiki/U-Boot/, U-Boot}."
+
+#. type: Plain text
+#: doc/guix.texi:2462
+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:2465
+#, 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:2469
+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: cindex
+#: doc/guix.texi:2474
 #, no-wrap
 msgid "packages"
 msgstr "paquets"
 
 #. type: Plain text
-#: doc/guix.texi:1703
+#: doc/guix.texi:2479
 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 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:1711
+#: doc/guix.texi:2487
 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:1714
+#: doc/guix.texi:2490
 #, no-wrap
 msgid "guix package -i emacs-guix\n"
 msgstr "guix package -i emacs-guix\n"
 
 #. type: Plain text
-#: doc/guix.texi:1736
+#: doc/guix.texi:2511
 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:1741
+#: doc/guix.texi:2516
 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 utilisateurs ont leur propre @dfn{profil} qui pointe vers les paquets qu'ils veulent vraiment utiliser.  Ces profils sont stockés dans le répertoire personnel de chaque utilisateur dans @code{$HOME/.guix-profile}."
 
 #. type: Plain text
-#: doc/guix.texi:1749
+#: doc/guix.texi:2524
 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:1753
+#: doc/guix.texi:2528
 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 utilisateurs et peut être utilisé avec les @emph{privilèges utilisateurs normaux}."
 
 #. type: cindex
-#: doc/guix.texi:1754 doc/guix.texi:1832
+#: doc/guix.texi:2529 doc/guix.texi:2607
 #, no-wrap
 msgid "transactions"
 msgstr "transactions"
 
 #. type: Plain text
-#: doc/guix.texi:1761
+#: doc/guix.texi:2536
 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éussi, 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 de l'utilisateur reste dans son état précédent et reste utilisable."
 
 #. type: Plain text
-#: doc/guix.texi:1769
-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 GuixSD 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, les utilisateurs peuvent revenir en arrière à l'instance précédente de leur profil qui est connu pour bien fonctionner.  De manière similaire, la configuration globale du système dans GuixSD est sujette aux mises à jour transactionnelles et aux annulations (@pxref{Using the Configuration System})."
+#: doc/guix.texi:2544
+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:1776
+#: doc/guix.texi:2551
 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 "Tous les paquets 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 utilisateurs et supprimer ceux qui ne sont plus référencés de manière prouvable (@pxref{Invoking guix gc}).  Les utilisateurs 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:1777 doc/guix.texi:3217
+#: doc/guix.texi:2552 doc/guix.texi:4059
 #, no-wrap
 msgid "reproducibility"
 msgstr "reproductibilité"
 
 #. type: Plain text
-#: doc/guix.texi:1789
+#: doc/guix.texi:2564
 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 utilisateurs 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 à de forte chances de donner des fichiers identiques bit-à-bit lorsqu'elle est effectuée sur des machines différents (@pxref{Invoking guix-daemon, container})."
 
 #. type: Plain text
-#: doc/guix.texi:1800
+#: doc/guix.texi:2575
 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:1806
+#: doc/guix.texi:2581
 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:1807
+#: doc/guix.texi:2582
 #, no-wrap
 msgid "replication, of software environments"
 msgstr "réplication, des environnements logiciels"
 
 #. type: cindex
-#: doc/guix.texi:1808
+#: doc/guix.texi:2583
 #, no-wrap
 msgid "provenance tracking, of software artifacts"
 msgstr "suivi de la provenance, des artefacts logiciels"
 
 #. type: Plain text
-#: doc/guix.texi:1815
+#: doc/guix.texi:2590
 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:1817
+#: doc/guix.texi:2592
 #, no-wrap
 msgid "Invoking @command{guix package}"
 msgstr "Invoquer @command{guix package}"
 
 #. type: cindex
-#: doc/guix.texi:1819
+#: doc/guix.texi:2594
 #, no-wrap
 msgid "installing packages"
 msgstr "installer des paquets"
 
 #. type: cindex
-#: doc/guix.texi:1820
+#: doc/guix.texi:2595
 #, no-wrap
 msgid "removing packages"
 msgstr "supprimer des paquets"
 
 #. type: cindex
-#: doc/guix.texi:1821
+#: doc/guix.texi:2596
 #, no-wrap
 msgid "package installation"
 msgstr "installation de paquets"
 
 #. type: cindex
-#: doc/guix.texi:1822
+#: doc/guix.texi:2597
 #, no-wrap
 msgid "package removal"
 msgstr "suppression de paquets"
 
 #. type: Plain text
-#: doc/guix.texi:1828
+#: doc/guix.texi:2603
 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 et fonctionne avec les privilèges utilisateurs normaux (@pxref{Fonctionnalités}).  Sa syntaxe est :"
 
 #. type: example
-#: doc/guix.texi:1831
+#: doc/guix.texi:2606
 #, no-wrap
 msgid "guix package @var{options}\n"
 msgstr "guix package @var{options}\n"
 
 #. type: Plain text
-#: doc/guix.texi:1837
+#: doc/guix.texi:2612
 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 souhaite y revenir."
 
 #. type: Plain text
-#: doc/guix.texi:1840
+#: doc/guix.texi:2615
 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:1843
+#: doc/guix.texi:2618
 #, no-wrap
 msgid "guix package -r lua -i guile guile-cairo\n"
 msgstr "guix package -r lua -i guile guile-cairo\n"
 
 #. type: Plain text
-#: doc/guix.texi:1849
+#: doc/guix.texi:2624
 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ù l'utilisateur spécifie l'ensemble exact des paquets qui doivent être disponibles le passe @i{via} l'option @option{--manifest} (@pxref{profile-manifest, @option{--manifest}})."
 
 #. type: cindex
-#: doc/guix.texi:1850
+#: doc/guix.texi:2625
 #, no-wrap
 msgid "profile"
 msgstr "profil"
 
 #. type: Plain text
-#: doc/guix.texi:1856
+#: doc/guix.texi:2631
 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 utilisateur, un lien symbolique vers le profil par défaut de cet utilisateur est automatiquement créé dans @file{$HOME/.guix-profile}.  Ce lien symbolique pointe toujours vers la génération actuelle du profil par défaut de l'utilisateur.  Ainsi, les utilisateurs peuvent ajouter @file{$HOME/.guix-profile/bin} à leur variable d'environnement @code{PATH} etc."
 
 #. type: cindex
-#: doc/guix.texi:1856 doc/guix.texi:2053
+#: doc/guix.texi:2631 doc/guix.texi:2828
 #, no-wrap
 msgid "search paths"
 msgstr "chemins de recherche"
 
 #. type: Plain text
-#: doc/guix.texi:1861
+#: doc/guix.texi:2636
 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 "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 les bonnes définitions des variables d'environnement :"
 
 #. type: example
-#: doc/guix.texi:1865
+#: doc/guix.texi:2640
 #, no-wrap
 msgid ""
 "GUIX_PROFILE=\"$HOME/.guix-profile\" ; \\\n"
@@ -4811,249 +6392,249 @@ msgstr ""
 "source \"$HOME/.guix-profile/etc/profile\"\n"
 
 #. type: Plain text
-#: doc/guix.texi:1876
+#: doc/guix.texi:2651
 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, les profils utilisateurs 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{utilisateur}},  où @var{localstatedir} est la valeur passée à @code{configure} avec @code{--localstatedir} et @var{utilisateur} le nom d'utilisateur.  Le répertoire @file{per-user} est créé lorsque @command{guix-daemon} est démarré et sous-répertoire @var{utilisateur} est créé par @command{guix package}."
 
 #. type: Plain text
-#: doc/guix.texi:1878
+#: doc/guix.texi:2653
 msgid "The @var{options} can be among the following:"
 msgstr "Les @var{options} peuvent être les suivante :"
 
 #. type: item
-#: doc/guix.texi:1881
+#: doc/guix.texi:2656
 #, no-wrap
 msgid "--install=@var{package} @dots{}"
 msgstr "--install=@var{paquet} @dots{}"
 
 #. type: itemx
-#: doc/guix.texi:1882
+#: doc/guix.texi:2657
 #, no-wrap
 msgid "-i @var{package} @dots{}"
 msgstr "-i @var{paquet} @dots{}"
 
 #. type: table
-#: doc/guix.texi:1884
+#: doc/guix.texi:2659
 msgid "Install the specified @var{package}s."
 msgstr "Installer les @var{paquet}s spécifiés."
 
 #. type: table
-#: doc/guix.texi:1889
+#: doc/guix.texi:2664
 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)."
 
 #. type: table
-#: doc/guix.texi:1897
+#: doc/guix.texi:2672
 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:1898
+#: doc/guix.texi:2673
 #, no-wrap
 msgid "propagated inputs"
 msgstr "entrées propagées"
 
 #. type: table
-#: doc/guix.texi:1904
+#: doc/guix.texi:2679
 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:1911
+#: doc/guix.texi:2686
 msgid "package-cmd-propagated-inputs"
 msgstr "package-cmd-propagated-inputs"
 
 #. type: table
-#: doc/guix.texi:1911
+#: doc/guix.texi:2686
 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."
 
 #. type: table
-#: doc/guix.texi:1916
+#: doc/guix.texi:2691
 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."
 
 #. type: item
-#: doc/guix.texi:1917
+#: doc/guix.texi:2692
 #, no-wrap
 msgid "--install-from-expression=@var{exp}"
 msgstr "--install-from-expression=@var{exp}"
 
 #. type: itemx
-#: doc/guix.texi:1918
+#: doc/guix.texi:2693
 #, no-wrap
 msgid "-e @var{exp}"
 msgstr "-e @var{exp}"
 
 #. type: table
-#: doc/guix.texi:1920
+#: doc/guix.texi:2695
 msgid "Install the package @var{exp} evaluates to."
 msgstr "Installer le paquet évalué par @var{exp}"
 
 #. type: table
-#: doc/guix.texi:1925
+#: doc/guix.texi:2700
 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:1929
+#: doc/guix.texi:2704
 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:1930
+#: doc/guix.texi:2705
 #, no-wrap
 msgid "--install-from-file=@var{file}"
 msgstr "--install-from-file=@var{fichier}"
 
 #. type: itemx
-#: doc/guix.texi:1931 doc/guix.texi:6471
+#: doc/guix.texi:2706 doc/guix.texi:7956
 #, no-wrap
 msgid "-f @var{file}"
 msgstr "-f @var{fichier}"
 
 #. type: table
-#: doc/guix.texi:1933
+#: doc/guix.texi:2708
 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:1936 doc/guix.texi:8162
+#: doc/guix.texi:2711 doc/guix.texi:4496
 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:1939 doc/guix.texi:6480
+#: doc/guix.texi:2714 doc/guix.texi:7965
 #, no-wrap
 msgid "@verbatiminclude package-hello.scm\n"
 msgstr "@verbatiminclude package-hello.scm\n"
 
 #. type: table
-#: doc/guix.texi:1945
+#: doc/guix.texi:2720
 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 "Les développeurs peuvent trouver utile d'inclure un tel fichier @file{guix.scm} à la racine de l'arborescence des sources de leur 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: item
-#: doc/guix.texi:1946
+#: doc/guix.texi:2721
 #, no-wrap
 msgid "--remove=@var{package} @dots{}"
 msgstr "--remove=@var{paquet} @dots{}"
 
 #. type: itemx
-#: doc/guix.texi:1947
+#: doc/guix.texi:2722
 #, no-wrap
 msgid "-r @var{package} @dots{}"
 msgstr "-r @var{paquet} @dots{}"
 
 #. type: table
-#: doc/guix.texi:1949
+#: doc/guix.texi:2724
 msgid "Remove the specified @var{package}s."
 msgstr "Supprimer les @var{paquet}s spécifiés."
 
 #. type: table
-#: doc/guix.texi:1954
+#: doc/guix.texi:2729
 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}."
 
 #. type: item
-#: doc/guix.texi:1955
+#: doc/guix.texi:2730
 #, no-wrap
 msgid "--upgrade[=@var{regexp} @dots{}]"
 msgstr "--upgrade[=@var{regexp} @dots{}]"
 
 #. type: itemx
-#: doc/guix.texi:1956
+#: doc/guix.texi:2731
 #, no-wrap
 msgid "-u [@var{regexp} @dots{}]"
 msgstr "-u [@var{regexp} @dots{}]"
 
 #. type: cindex
-#: doc/guix.texi:1957
+#: doc/guix.texi:2732
 #, no-wrap
 msgid "upgrading packages"
 msgstr "mettre à jour des paquets"
 
 #. type: table
-#: doc/guix.texi:1961
+#: doc/guix.texi:2736
 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."
 
 #. type: table
-#: doc/guix.texi:1966
+#: doc/guix.texi:2741
 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: item
-#: doc/guix.texi:1967
+#: doc/guix.texi:2742
 #, no-wrap
 msgid "--do-not-upgrade[=@var{regexp} @dots{}]"
 msgstr "--do-not-upgrade[=@var{regexp} @dots{}]"
 
 #. type: table
-#: doc/guix.texi:1972
+#: doc/guix.texi:2747
 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 » :"
 
 #. type: example
-#: doc/guix.texi:1975
+#: doc/guix.texi:2750
 #, 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:1977
+#: doc/guix.texi:2752
 #, no-wrap
 msgid "profile-manifest"
 msgstr "profile-manifest"
 
 #. type: item
-#: doc/guix.texi:1977 doc/guix.texi:3455 doc/guix.texi:7393 doc/guix.texi:8167
-#: doc/guix.texi:8851
+#: doc/guix.texi:2752 doc/guix.texi:4501 doc/guix.texi:4842 doc/guix.texi:8889
+#: doc/guix.texi:10072
 #, no-wrap
 msgid "--manifest=@var{file}"
 msgstr "--manifest=@var{fichier}"
 
 #. type: itemx
-#: doc/guix.texi:1978 doc/guix.texi:3456 doc/guix.texi:7394 doc/guix.texi:8168
+#: doc/guix.texi:2753 doc/guix.texi:4502 doc/guix.texi:4843 doc/guix.texi:8890
 #, no-wrap
 msgid "-m @var{file}"
 msgstr "-m @var{fichier}"
 
 #. type: cindex
-#: doc/guix.texi:1979
+#: doc/guix.texi:2754
 #, no-wrap
 msgid "profile declaration"
 msgstr "déclaration de profil"
 
 #. type: cindex
-#: doc/guix.texi:1980
+#: doc/guix.texi:2755
 #, no-wrap
 msgid "profile manifest"
 msgstr "manifest de profil"
 
 #. type: table
-#: doc/guix.texi:1983
+#: doc/guix.texi:2758
 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}."
 
 #. type: table
-#: doc/guix.texi:1989
+#: doc/guix.texi:2764
 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."
 
 #. type: table
-#: doc/guix.texi:1993
+#: doc/guix.texi:2768
 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 :"
 
 #. type: findex
-#: doc/guix.texi:1994
+#: doc/guix.texi:2769
 #, no-wrap
 msgid "packages->manifest"
 msgstr "packages->manifest"
 
 #. type: example
-#: doc/guix.texi:1997
+#: doc/guix.texi:2772
 #, no-wrap
 msgid ""
 "(use-package-modules guile emacs)\n"
@@ -5063,7 +6644,7 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix.texi:2003
+#: doc/guix.texi:2778
 #, no-wrap
 msgid ""
 "(packages->manifest\n"
@@ -5079,18 +6660,18 @@ msgstr ""
 "       (list guile-2.0 \"debug\")))\n"
 
 #. type: findex
-#: doc/guix.texi:2005
+#: doc/guix.texi:2780
 #, no-wrap
 msgid "specifications->manifest"
 msgstr "specifications->manifest"
 
 #. type: table
-#: doc/guix.texi:2012
+#: doc/guix.texi:2787
 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:2016
+#: doc/guix.texi:2791
 #, no-wrap
 msgid ""
 "(specifications->manifest\n"
@@ -5100,121 +6681,121 @@ msgstr ""
 " '(\"emacs\" \"guile@@2.2\" \"guile@@2.2:debug\"))\n"
 
 #. type: item
-#: doc/guix.texi:2018
+#: doc/guix.texi:2793
 #, no-wrap
 msgid "--roll-back"
 msgstr "--roll-back"
 
 #. type: cindex
-#: doc/guix.texi:2019 doc/guix.texi:22369
+#: doc/guix.texi:2794 doc/guix.texi:24216
 #, no-wrap
 msgid "rolling back"
 msgstr "revenir en arrière"
 
 #. type: cindex
-#: doc/guix.texi:2020
+#: doc/guix.texi:2795
 #, no-wrap
 msgid "undoing transactions"
 msgstr "défaire des transactions"
 
 #. type: cindex
-#: doc/guix.texi:2021
+#: doc/guix.texi:2796
 #, no-wrap
 msgid "transactions, undoing"
 msgstr "transactions, défaire"
 
 #. type: table
-#: doc/guix.texi:2024
+#: doc/guix.texi:2799
 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:2027
+#: doc/guix.texi:2802
 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."
 
 #. type: table
-#: doc/guix.texi:2031
+#: doc/guix.texi:2806
 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:2035
+#: doc/guix.texi:2810
 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:2036
+#: doc/guix.texi:2811
 #, no-wrap
 msgid "--switch-generation=@var{pattern}"
 msgstr "--switch-generation=@var{motif}"
 
 #. type: itemx
-#: doc/guix.texi:2037
+#: doc/guix.texi:2812
 #, no-wrap
 msgid "-S @var{pattern}"
 msgstr "-S @var{motif}"
 
 #. type: cindex
-#: doc/guix.texi:2038 doc/guix.texi:2236 doc/guix.texi:22327
+#: doc/guix.texi:2813 doc/guix.texi:3008 doc/guix.texi:24174
 #, no-wrap
 msgid "generations"
 msgstr "générations"
 
 #. type: table
-#: doc/guix.texi:2040
+#: doc/guix.texi:2815
 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:2046
+#: doc/guix.texi:2821
 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}."
 
 #. type: table
-#: doc/guix.texi:2051
+#: doc/guix.texi:2826
 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."
 
 #. type: item
-#: doc/guix.texi:2052
+#: doc/guix.texi:2827
 #, no-wrap
 msgid "--search-paths[=@var{kind}]"
 msgstr "--search-paths[=@var{genre}]"
 
 #. type: table
-#: doc/guix.texi:2058
+#: doc/guix.texi:2833
 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:2066
+#: doc/guix.texi:2841
 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 (@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."
 
 #. type: table
-#: doc/guix.texi:2069
+#: doc/guix.texi:2844
 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:2072
+#: doc/guix.texi:2847
 #, no-wrap
 msgid "$ eval `guix package --search-paths`\n"
 msgstr "$ eval `guix package --search-paths`\n"
 
 #. type: table
-#: doc/guix.texi:2078
+#: doc/guix.texi:2853
 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}."
 
 #. type: table
-#: doc/guix.texi:2081
+#: doc/guix.texi:2856
 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:2086
+#: doc/guix.texi:2861
 #, no-wrap
 msgid ""
 "$ guix package -p foo -i guile\n"
@@ -5226,118 +6807,107 @@ msgstr ""
 "$ guix package -p foo -p bar --search-paths\n"
 
 #. type: table
-#: doc/guix.texi:2091
+#: doc/guix.texi:2866
 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."
 
 #. type: item
-#: doc/guix.texi:2093 doc/guix.texi:2891 doc/guix.texi:3290
+#: doc/guix.texi:2868 doc/guix.texi:3685 doc/guix.texi:4132
 #, no-wrap
 msgid "--profile=@var{profile}"
 msgstr "--profile=@var{profil}"
 
 #. type: itemx
-#: doc/guix.texi:2094 doc/guix.texi:2892 doc/guix.texi:3291
+#: doc/guix.texi:2869 doc/guix.texi:3686 doc/guix.texi:4133
 #, no-wrap
 msgid "-p @var{profile}"
 msgstr "-p @var{profil}"
 
 #. type: table
-#: doc/guix.texi:2096
+#: doc/guix.texi:2871
 msgid "Use @var{profile} instead of the user's default profile."
 msgstr "Utiliser le @var{profil} à la place du profil par défaut de l'utilisateur."
 
 #. type: cindex
-#: doc/guix.texi:2097
+#: doc/guix.texi:2872
 #, no-wrap
 msgid "collisions, in a profile"
 msgstr "collisions, dans un profil"
 
 #. type: cindex
-#: doc/guix.texi:2098
+#: doc/guix.texi:2873
 #, no-wrap
 msgid "colliding packages in profiles"
 msgstr "faire des collisions de paquets dans des profils"
 
 #. type: cindex
-#: doc/guix.texi:2099
+#: doc/guix.texi:2874
 #, no-wrap
 msgid "profile collisions"
 msgstr "profil, collisions"
 
 #. type: item
-#: doc/guix.texi:2100
+#: doc/guix.texi:2875
 #, no-wrap
 msgid "--allow-collisions"
 msgstr "--allow-collisions"
 
 #. type: table
-#: doc/guix.texi:2102
+#: doc/guix.texi:2877
 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:2106
+#: doc/guix.texi:2881
 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:2107 doc/guix.texi:2900 doc/guix.texi:8656
-#, no-wrap
-msgid "--verbose"
-msgstr "--verbose"
-
-#. type: table
-#: doc/guix.texi:2110
-msgid "Produce verbose output.  In particular, emit the build log of the environment on the standard error port."
-msgstr "Produire une sortie verbeuse.  En particulier, fournir les journaux de construction de l'environnement sur le port d'erreur standard."
-
-#. type: item
-#: doc/guix.texi:2111 doc/guix.texi:2903 doc/guix.texi:3512
+#: doc/guix.texi:2882 doc/guix.texi:3702 doc/guix.texi:4916
 #, no-wrap
 msgid "--bootstrap"
 msgstr "--bootstrap"
 
 #. type: table
-#: doc/guix.texi:2114
+#: doc/guix.texi:2885
 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 que pour les développeurs de la distribution."
 
 #. type: Plain text
-#: doc/guix.texi:2120
+#: doc/guix.texi:2891
 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:2123
+#: doc/guix.texi:2894
 #, no-wrap
 msgid "--search=@var{regexp}"
 msgstr "--search=@var{regexp}"
 
 #. type: itemx
-#: doc/guix.texi:2124
+#: doc/guix.texi:2895
 #, no-wrap
 msgid "-s @var{regexp}"
 msgstr "-s @var{regexp}"
 
 #. type: cindex
-#: doc/guix.texi:2125
+#: doc/guix.texi:2896
 #, no-wrap
 msgid "searching for packages"
 msgstr "chercher des paquets"
 
 #. type: table
-#: doc/guix.texi:2130
-msgid "List the available packages whose name, synopsis, or description matches @var{regexp}, 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}, 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})."
+#: doc/guix.texi:2902
+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:2133
+#: doc/guix.texi:2905
 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:2139
+#: doc/guix.texi:2911
 #, no-wrap
 msgid ""
 "$ guix package -s malloc | recsel -p name,version,relevance\n"
@@ -5353,7 +6923,7 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix.texi:2143
+#: doc/guix.texi:2915
 #, no-wrap
 msgid ""
 "name: glibc\n"
@@ -5367,7 +6937,7 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix.texi:2147
+#: doc/guix.texi:2919
 #, no-wrap
 msgid ""
 "name: libgc\n"
@@ -5379,12 +6949,12 @@ msgstr ""
 "relevance: 1\n"
 
 #. type: table
-#: doc/guix.texi:2151
+#: doc/guix.texi:2923
 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:2155
+#: doc/guix.texi:2927
 #, no-wrap
 msgid ""
 "$ guix package -s \"\" | recsel -p name -e 'license ~ \"LGPL 3\"'\n"
@@ -5396,7 +6966,7 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix.texi:2158
+#: doc/guix.texi:2930
 #, no-wrap
 msgid ""
 "name: gmp\n"
@@ -5406,12 +6976,12 @@ msgstr ""
 "@dots{}\n"
 
 #. type: table
-#: doc/guix.texi:2163
+#: doc/guix.texi:2935
 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 "Il est aussi possible de raffiner les résultats de la recherche avec plusieurs options @code{-s}.  Par exemple, la commande suivante renvoie la liste des jeux de plateau :"
 
 #. type: example
-#: doc/guix.texi:2168
+#: doc/guix.texi:2940
 #, no-wrap
 msgid ""
 "$ guix package -s '\\<board\\>' -s game | recsel -p name\n"
@@ -5423,17 +6993,17 @@ msgstr ""
 "@dots{}\n"
 
 #. type: table
-#: doc/guix.texi:2174
+#: doc/guix.texi:2946
 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:2178
+#: doc/guix.texi:2950
 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:2182
+#: doc/guix.texi:2954
 #, no-wrap
 msgid ""
 "$ guix package -s crypto -s library | \\\n"
@@ -5443,23 +7013,23 @@ msgstr ""
 "    recsel -e '! (name ~ \"^(ghc|perl|python|ruby)\")' -p name,synopsis\n"
 
 #. type: table
-#: doc/guix.texi:2187
+#: doc/guix.texi:2959
 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:2188
+#: doc/guix.texi:2960
 #, no-wrap
 msgid "--show=@var{package}"
 msgstr "--show=@var{paquet}"
 
 #. type: table
-#: doc/guix.texi:2192
+#: doc/guix.texi:2964
 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:2197
+#: doc/guix.texi:2969
 #, no-wrap
 msgid ""
 "$ guix package --show=python | recsel -p name,version\n"
@@ -5473,7 +7043,7 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix.texi:2200
+#: doc/guix.texi:2972
 #, no-wrap
 msgid ""
 "name: python\n"
@@ -5483,12 +7053,12 @@ msgstr ""
 "version: 3.3.5\n"
 
 #. type: table
-#: doc/guix.texi:2204
+#: doc/guix.texi:2976
 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 :"
 
 #. type: example
-#: doc/guix.texi:2208
+#: doc/guix.texi:2980
 #, no-wrap
 msgid ""
 "$ guix package --show=python@@3.4 | recsel -p name,version\n"
@@ -5500,250 +7070,245 @@ msgstr ""
 "version: 3.4.3\n"
 
 #. type: item
-#: doc/guix.texi:2212
+#: doc/guix.texi:2984
 #, no-wrap
 msgid "--list-installed[=@var{regexp}]"
 msgstr "--list-installed[=@var{regexp}]"
 
 #. type: itemx
-#: doc/guix.texi:2213
+#: doc/guix.texi:2985
 #, no-wrap
 msgid "-I [@var{regexp}]"
 msgstr "-I [@var{regexp}]"
 
 #. type: table
-#: doc/guix.texi:2217
+#: doc/guix.texi:2989
 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:2223
+#: doc/guix.texi:2995
 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:2224
+#: doc/guix.texi:2996
 #, no-wrap
 msgid "--list-available[=@var{regexp}]"
 msgstr "--list-available[=@var{regexp}]"
 
 #. type: itemx
-#: doc/guix.texi:2225
+#: doc/guix.texi:2997
 #, no-wrap
 msgid "-A [@var{regexp}]"
 msgstr "-A [@var{regexp}]"
 
 #. type: table
-#: doc/guix.texi:2229
+#: doc/guix.texi:3001
 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}."
 
 #. type: table
-#: doc/guix.texi:2233
+#: doc/guix.texi:3005
 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:2234 doc/guix.texi:2881
+#: doc/guix.texi:3006 doc/guix.texi:3675
 #, no-wrap
 msgid "--list-generations[=@var{pattern}]"
 msgstr "--list-generations[=@var{motif}]"
 
 #. type: itemx
-#: doc/guix.texi:2235 doc/guix.texi:2882
+#: doc/guix.texi:3007 doc/guix.texi:3676
 #, no-wrap
 msgid "-l [@var{pattern}]"
 msgstr "-l [@var{motif}]"
 
 #. type: table
-#: doc/guix.texi:2241
+#: doc/guix.texi:3013
 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:2246
+#: doc/guix.texi:3018
 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:2249
+#: doc/guix.texi:3021
 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:2251
+#: doc/guix.texi:3023
 #, 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:2254
+#: doc/guix.texi:3026
 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."
 
 #. type: itemize
-#: doc/guix.texi:2257
+#: doc/guix.texi:3029
 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."
 
 #. type: item
-#: doc/guix.texi:2258
+#: doc/guix.texi:3030
 #, no-wrap
 msgid "@emph{Ranges}.  @code{--list-generations=2..9} prints the"
 msgstr "@emph{Des intervalles}.  @code{--list-generations=2..9} affiche les"
 
 #. type: itemize
-#: doc/guix.texi:2261
+#: doc/guix.texi:3033
 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 trouvent entre elles.  Remarquez que le début d'un intervalle doit être plus petit que sa fin."
 
 #. type: itemize
-#: doc/guix.texi:2265
+#: doc/guix.texi:3037
 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."
 
 #. type: item
-#: doc/guix.texi:2266
+#: doc/guix.texi:3038
 #, 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:2270
+#: doc/guix.texi:3042
 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."
 
 #. type: item
-#: doc/guix.texi:2272
+#: doc/guix.texi:3044
 #, no-wrap
 msgid "--delete-generations[=@var{pattern}]"
 msgstr "--delete-generations[=@var{motif}]"
 
 #. type: itemx
-#: doc/guix.texi:2273
+#: doc/guix.texi:3045
 #, no-wrap
 msgid "-d [@var{pattern}]"
 msgstr "-d [@var{motif}]"
 
 #. type: table
-#: doc/guix.texi:2276
+#: doc/guix.texi:3048
 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:2282
+#: doc/guix.texi:3054
 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."
 
 #. type: table
-#: doc/guix.texi:2285
+#: doc/guix.texi:3057
 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:2288
+#: doc/guix.texi:3060
 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:2299
+#: doc/guix.texi:3071
 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})."
 
 #. type: cindex
-#: doc/guix.texi:2304
+#: doc/guix.texi:3076
 #, no-wrap
 msgid "pre-built binaries"
 msgstr "binaires pré-construits"
 
 #. type: Plain text
-#: doc/guix.texi:2310
+#: doc/guix.texi:3082
 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:2315
+#: doc/guix.texi:3087
 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:2328
+#: doc/guix.texi:3100
 #, no-wrap
 msgid "hydra"
 msgstr "hydra"
 
 #. type: cindex
-#: doc/guix.texi:2329
+#: doc/guix.texi:3101
 #, no-wrap
 msgid "build farm"
 msgstr "ferme de construction"
 
 #. type: Plain text
-#: doc/guix.texi:2339
-msgid "The @code{mirror.hydra.gnu.org} 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{mirror.hydra.gnu.org} 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})."
+#: doc/guix.texi:3111
+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:2345
+#: doc/guix.texi:3117
 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:2354
+#: doc/guix.texi:3126
 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 "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 de la ferme de construction ; 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:2358
+#: doc/guix.texi:3130
 #, no-wrap
 msgid "security"
 msgstr "sécurité"
 
 #. type: cindex
-#: doc/guix.texi:2360
+#: doc/guix.texi:3132
 #, 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:2361
+#: doc/guix.texi:3133
 #, 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:2368
-msgid "To allow Guix to download substitutes from @code{hydra.gnu.org} 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{hydra.gnu.org} to not be compromised and to serve genuine substitutes."
-msgstr "Pour permettre à Guix de télécharger les substituts depuis @code{hydra.gnu.org} 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{hydra.gnu.org} pour ne pas être compromis et vous servir des substituts authentiques."
+#: doc/guix.texi:3140
+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: Plain text
-#: doc/guix.texi:2375
-msgid "The public key for @code{hydra.gnu.org} is installed along with Guix, in @code{@var{prefix}/share/guix/hydra.gnu.org.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{hydra.gnu.org} est installée avec Guix, dans @code{@var{préfixe}/share/guix/hydra.gnu.org.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 :"
+#: doc/guix.texi:3147
+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:2378
+#: doc/guix.texi:3150
 #, no-wrap
-msgid "# guix archive --authorize < @var{prefix}/share/guix/hydra.gnu.org.pub\n"
-msgstr "# guix archive --authorize < @var{préfixe}/share/guix/hydra.gnu.org.pub\n"
-
-#. type: quotation
-#: doc/guix.texi:2384
-msgid "Similarly, the @file{berlin.guixsd.org.pub} file contains the public key for the project's new build farm, reachable at @indicateurl{https://berlin.guixsd.org}."
-msgstr "De même, le fichier @file{berlin.guixsd.org.pub} contient la clef publique de la nouvelle ferme de construction du projet, disponible depuis @indicateurl{https://berlin.guixsd.org}."
+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:2389
-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}"
+#: doc/guix.texi:3156
+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:2393
+#: doc/guix.texi:3160
 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:2402
+#: doc/guix.texi:3169
 #, no-wrap
 msgid ""
 "$ guix build emacs --dry-run\n"
@@ -5763,12 +7328,12 @@ msgstr ""
 "@dots{}\n"
 
 #. type: Plain text
-#: doc/guix.texi:2406
+#: doc/guix.texi:3173
 msgid "to something like:"
 msgstr "à quelque chose comme :"
 
 #. type: example
-#: doc/guix.texi:2415
+#: doc/guix.texi:3182
 #, no-wrap
 msgid ""
 "$ guix build emacs --dry-run\n"
@@ -5788,551 +7353,590 @@ msgstr ""
 "@dots{}\n"
 
 #. type: Plain text
-#: doc/guix.texi:2420
-msgid "This indicates that substitutes from @code{hydra.gnu.org} are usable and will be downloaded, when possible, for future builds."
-msgstr "Cela indique que les substituts de @code{hydra.gnu.org} sont utilisables et seront téléchargés, si possible, pour les futures constructions."
+#: doc/guix.texi:3187
+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."
 
 #. type: cindex
-#: doc/guix.texi:2421
+#: doc/guix.texi:3188
 #, no-wrap
 msgid "substitutes, how to disable"
 msgstr "substituts, comment les désactiver"
 
 #. type: Plain text
-#: doc/guix.texi:2427
+#: doc/guix.texi:3194
 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."
 
 #. type: cindex
-#: doc/guix.texi:2431
+#: doc/guix.texi:3198
 #, no-wrap
 msgid "digital signatures"
 msgstr "signatures numériques"
 
 #. type: Plain text
-#: doc/guix.texi:2435
+#: doc/guix.texi:3202
 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 substituts 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és dans l'ACL."
 
 #. type: Plain text
-#: doc/guix.texi:2441
+#: doc/guix.texi:3208
 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:2444
+#: doc/guix.texi:3211
 #, 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:2455
+#: doc/guix.texi:3222
 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)."
 
 #. type: Plain text
-#: doc/guix.texi:2462
+#: doc/guix.texi:3229
 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)."
 
 #. type: Plain text
-#: doc/guix.texi:2474
+#: doc/guix.texi:3241
 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}."
 
 #. type: Plain text
-#: doc/guix.texi:2483
+#: doc/guix.texi:3250
 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:2497
+#: doc/guix.texi:3264
 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é."
 
 #. type: Plain text
-#: doc/guix.texi:2502
+#: doc/guix.texi:3269
 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:2506
+#: doc/guix.texi:3273
 #, no-wrap
 msgid "trust, of pre-built binaries"
 msgstr "confiance, en des binaires pré-construits"
 
 #. type: Plain text
-#: doc/guix.texi:2516
-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{hydra.gnu.org} substitutes can be convenient, we encourage users to also build on their own, or even run their own build farm, such that @code{hydra.gnu.org} 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{hydra.gnu.org} soit pratique, nous encourageons les utilisateurs à construire aussi par eux-mêmes, voir à faire tourner leur propre ferme de construction, pour que @code{hydra.gnu.org} 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})."
+#: doc/guix.texi:3283
+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 les utilisateurs à construire aussi par eux-mêmes, voir à faire tourner leur 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:2528
+#: doc/guix.texi:3295
 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 utilisateurs à tester les serveurs de substituts et à aider les développeurs à trouver les constructions de paquets non-déterministes (@pxref{Invoking guix challenge}).  De même, l'option @option{--check} de @command{guix build} permet aux utilisateurs 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:2532
+#: doc/guix.texi:3299
 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 "Dans le futur, nous aimerions que Guix puisse publier et recevoir des binaires d'autres utilisateurs, d'une manière pair-à-pair.  Si vous voulez discuter de ce projet, rejoignez-nous sur @email{guix-devel@@gnu.org}."
 
 #. type: cindex
-#: doc/guix.texi:2536
+#: doc/guix.texi:3303
 #, no-wrap
 msgid "multiple-output packages"
 msgstr "paquets avec plusieurs résultats"
 
 #. type: cindex
-#: doc/guix.texi:2537
+#: doc/guix.texi:3304
 #, no-wrap
 msgid "package outputs"
 msgstr "sorties de paquets"
 
 #. type: cindex
-#: doc/guix.texi:2538
+#: doc/guix.texi:3305
 #, no-wrap
 msgid "outputs"
 msgstr "sorties"
 
 #. type: Plain text
-#: doc/guix.texi:2548
+#: doc/guix.texi:3315
 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 "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 package -i 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 particuliers, 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:2556
+#: doc/guix.texi:3323
 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:2559
+#: doc/guix.texi:3326
 #, no-wrap
 msgid "guix package -i glib\n"
 msgstr "guix package -i glib\n"
 
 #. type: item
-#: doc/guix.texi:2561 doc/guix.texi:23274 doc/guix.texi:23299
+#: doc/guix.texi:3328 doc/guix.texi:25157 doc/guix.texi:25182
 #, no-wrap
 msgid "documentation"
 msgstr "documentation"
 
 #. type: Plain text
-#: doc/guix.texi:2563
+#: doc/guix.texi:3330
 msgid "The command to install its documentation is:"
 msgstr "La commande pour installer la documentation est :"
 
 #. type: example
-#: doc/guix.texi:2566
+#: doc/guix.texi:3333
 #, no-wrap
 msgid "guix package -i glib:doc\n"
 msgstr "guix package -i glib:doc\n"
 
 #. type: Plain text
-#: doc/guix.texi:2577
+#: doc/guix.texi:3344
 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:2585
+#: doc/guix.texi:3352
 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:2588
+#: doc/guix.texi:3355
 #, no-wrap
 msgid "Invoking @command{guix gc}"
 msgstr "Invoquer @command{guix gc}"
 
 #. type: cindex
-#: doc/guix.texi:2590
+#: doc/guix.texi:3357
 #, no-wrap
 msgid "garbage collector"
 msgstr "ramasse-miettes"
 
 #. type: cindex
-#: doc/guix.texi:2591
+#: doc/guix.texi:3358
 #, no-wrap
 msgid "disk space"
 msgstr "espace disque"
 
 #. type: Plain text
-#: doc/guix.texi:2597
+#: doc/guix.texi:3364
 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:2608
-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})."
-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})."
+#: doc/guix.texi:3375
+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:2614
+#: doc/guix.texi:3381
 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:2618
+#: doc/guix.texi:3385
 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:2621
+#: doc/guix.texi:3388
 #, no-wrap
 msgid "guix gc -F 5G\n"
 msgstr "guix gc -F 5G\n"
 
 #. type: Plain text
-#: doc/guix.texi:2630
-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 on GuixSD).  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 sur GuixSD).  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."
+#: doc/guix.texi:3397
+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:2636
+#: doc/guix.texi:3403
 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 :"
 
 #. type: item
-#: doc/guix.texi:2638
+#: doc/guix.texi:3405
 #, no-wrap
 msgid "--collect-garbage[=@var{min}]"
 msgstr "--collect-garbage[=@var{min}]"
 
 #. type: itemx
-#: doc/guix.texi:2639
+#: doc/guix.texi:3406
 #, no-wrap
 msgid "-C [@var{min}]"
 msgstr "-C [@var{min}]"
 
 #. type: table
-#: doc/guix.texi:2643
+#: doc/guix.texi:3410
 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:2648
+#: doc/guix.texi:3415
 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} pour ê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:2650
+#: doc/guix.texi:3417
 msgid "When @var{min} is omitted, collect all the garbage."
 msgstr "Lorsque @var{min} est omis, tout glaner."
 
 #. type: item
-#: doc/guix.texi:2651
+#: doc/guix.texi:3418
 #, no-wrap
 msgid "--free-space=@var{free}"
 msgstr "--free-space=@var{libre}"
 
 #. type: itemx
-#: doc/guix.texi:2652
+#: doc/guix.texi:3419
 #, no-wrap
 msgid "-F @var{free}"
 msgstr "-F @var{libre}"
 
 #. type: table
-#: doc/guix.texi:2656
+#: doc/guix.texi:3423
 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:2659
+#: doc/guix.texi:3426
 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:2660
+#: doc/guix.texi:3427
+#, no-wrap
+msgid "--delete-generations[=@var{duration}]"
+msgstr "--delete-generations[=@var{durée}]"
+
+#. type: itemx
+#: doc/guix.texi:3428
+#, no-wrap
+msgid "-d [@var{duration}]"
+msgstr "-d [@var{durée}]"
+
+#. type: table
+#: doc/guix.texi:3432
+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:3436
+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:3439
+#, no-wrap
+msgid "guix gc -d 2m -F 10G\n"
+msgstr "guix gc -d 2m -F 10G\n"
+
+#. type: item
+#: doc/guix.texi:3441
 #, no-wrap
 msgid "--delete"
 msgstr "--delete"
 
 #. type: itemx
-#: doc/guix.texi:2661 doc/guix.texi:6618 doc/guix.texi:22540
+#: doc/guix.texi:3442
 #, no-wrap
-msgid "-d"
-msgstr "-d"
+msgid "-D"
+msgstr "-D"
 
 #. type: table
-#: doc/guix.texi:2665
+#: doc/guix.texi:3446
 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:2666
+#: doc/guix.texi:3447
 #, no-wrap
 msgid "--list-failures"
 msgstr "--list-failures"
 
 #. type: table
-#: doc/guix.texi:2668
+#: doc/guix.texi:3449
 msgid "List store items corresponding to cached build failures."
-msgstr "Lister les éléments du dépôt qui correspondent à des échecs de construction"
+msgstr "Lister les éléments du dépôt qui correspondent à des échecs de construction."
 
 #. type: table
-#: doc/guix.texi:2672
+#: doc/guix.texi:3453
 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:2673
+#: doc/guix.texi:3454
+#, no-wrap
+msgid "--list-roots"
+msgstr "--list-roots"
+
+#. type: table
+#: doc/guix.texi:3457
+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:3458
 #, no-wrap
 msgid "--clear-failures"
 msgstr "--clear-failures"
 
 #. type: table
-#: doc/guix.texi:2675
+#: doc/guix.texi:3460
 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:2678
+#: doc/guix.texi:3463
 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:2679
+#: doc/guix.texi:3464
 #, no-wrap
 msgid "--list-dead"
 msgstr "--list-dead"
 
 #. type: table
-#: doc/guix.texi:2682
+#: doc/guix.texi:3467
 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:2683
+#: doc/guix.texi:3468
 #, no-wrap
 msgid "--list-live"
 msgstr "--list-live"
 
 #. type: table
-#: doc/guix.texi:2685
+#: doc/guix.texi:3470
 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:2689
+#: doc/guix.texi:3474
 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:2692
+#: doc/guix.texi:3477
 #, no-wrap
 msgid "--references"
 msgstr "--references"
 
 #. type: itemx
-#: doc/guix.texi:2693
+#: doc/guix.texi:3478
 #, no-wrap
 msgid "--referrers"
 msgstr "--referrers"
 
 #. type: cindex
-#: doc/guix.texi:2694 doc/guix.texi:7807
+#: doc/guix.texi:3479 doc/guix.texi:9328
 #, no-wrap
 msgid "package dependencies"
 msgstr "dépendances des paquets"
 
 #. type: table
-#: doc/guix.texi:2697
+#: doc/guix.texi:3482
 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:2698
+#: doc/guix.texi:3483
 #, no-wrap
 msgid "--requisites"
 msgstr "--requisites"
 
 #. type: itemx
-#: doc/guix.texi:2699 doc/guix.texi:3415
+#: doc/guix.texi:3484 doc/guix.texi:4782
 #, no-wrap
 msgid "-R"
 msgstr "-R"
 
 #. type: item
-#: doc/guix.texi:2700 doc/guix.texi:7683 doc/guix.texi:7711 doc/guix.texi:7779
+#: doc/guix.texi:3485 doc/guix.texi:9204 doc/guix.texi:9232 doc/guix.texi:9300
 #, no-wrap
 msgid "closure"
 msgstr "closure"
 
 #. type: table
-#: doc/guix.texi:2705
+#: doc/guix.texi:3490
 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:2709
+#: doc/guix.texi:3494
 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:2710
+#: doc/guix.texi:3495
 #, no-wrap
 msgid "--derivers"
 msgstr "--derivers"
 
 #. type: item
-#: doc/guix.texi:2711 doc/guix.texi:3703 doc/guix.texi:7892
+#: doc/guix.texi:3496 doc/guix.texi:4943 doc/guix.texi:9429
 #, no-wrap
 msgid "derivation"
 msgstr "dérivation"
 
 #. type: table
-#: doc/guix.texi:2714
+#: doc/guix.texi:3499
 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:2716
+#: doc/guix.texi:3501
 msgid "For example, this command:"
 msgstr "Par exemple cette commande :"
 
 #. type: example
-#: doc/guix.texi:2719
+#: doc/guix.texi:3504
 #, 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:2724
+#: doc/guix.texi:3509
 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:2728
+#: doc/guix.texi:3513
 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:2732
+#: doc/guix.texi:3517
 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:2735
+#: doc/guix.texi:3520
 #, no-wrap
 msgid "--verify[=@var{options}]"
 msgstr "--verify[=@var{options}]"
 
 #. type: cindex
-#: doc/guix.texi:2736
+#: doc/guix.texi:3521
 #, no-wrap
 msgid "integrity, of the store"
 msgstr "intégrité, du dépôt"
 
 #. type: cindex
-#: doc/guix.texi:2737
+#: doc/guix.texi:3522
 #, no-wrap
 msgid "integrity checking"
 msgstr "vérification d'intégrité"
 
 #. type: table
-#: doc/guix.texi:2739
+#: doc/guix.texi:3524
 msgid "Verify the integrity of the store."
 msgstr "Vérifier l'intégrité du dépôt."
 
 #. type: table
-#: doc/guix.texi:2742
+#: doc/guix.texi:3527
 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:2745
+#: doc/guix.texi:3530
 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:2751
+#: doc/guix.texi:3536
 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:2752
+#: doc/guix.texi:3537
 #, no-wrap
 msgid "repairing the store"
 msgstr "réparer le dépôt"
 
 #. type: cindex
-#: doc/guix.texi:2753 doc/guix.texi:6611
+#: doc/guix.texi:3538 doc/guix.texi:8098
 #, no-wrap
 msgid "corruption, recovering from"
 msgstr "corruption, récupérer de"
 
 #. type: table
-#: doc/guix.texi:2761
+#: doc/guix.texi:3546
 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:2762
+#: doc/guix.texi:3547
 #, no-wrap
 msgid "--optimize"
 msgstr "--optimize"
 
 #. type: table
-#: doc/guix.texi:2766
+#: doc/guix.texi:3551
 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:2772
+#: doc/guix.texi:3557
 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}."
 
 #. type: section
-#: doc/guix.texi:2776
+#: doc/guix.texi:3561
 #, no-wrap
 msgid "Invoking @command{guix pull}"
 msgstr "Invoquer @command{guix pull}"
 
 #. type: cindex
-#: doc/guix.texi:2778
+#: doc/guix.texi:3563
 #, no-wrap
 msgid "upgrading Guix"
 msgstr "mettre à niveau Guix"
 
 #. type: cindex
-#: doc/guix.texi:2779
+#: doc/guix.texi:3564
 #, no-wrap
 msgid "updating Guix"
 msgstr "mettre à jour Guix"
 
 #. type: command{#1}
-#: doc/guix.texi:2780
+#: doc/guix.texi:3565
 #, no-wrap
 msgid "guix pull"
 msgstr "guix pull"
 
 #. type: cindex
-#: doc/guix.texi:2781
+#: doc/guix.texi:3566
 #, no-wrap
 msgid "pull"
 msgstr "pull"
 
 #. type: Plain text
-#: doc/guix.texi:2789
+#: doc/guix.texi:3574
 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é."
 
 #. type: Plain text
-#: doc/guix.texi:2795
+#: doc/guix.texi:3580
 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:2801
+#: doc/guix.texi:3586
 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."
-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 vois @code{alice} et 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 vois @code{alice} et vice-versa."
 
 #. type: Plain text
-#: doc/guix.texi:2807
+#: doc/guix.texi:3592
 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:2811
+#: doc/guix.texi:3596
 #, no-wrap
 msgid ""
 "export PATH=\"$HOME/.config/guix/current/bin:$PATH\"\n"
@@ -6342,12 +7946,12 @@ msgstr ""
 "export INFOPATH=\"$HOME/.config/guix/current/share/info:$INFOPATH\"\n"
 
 #. type: Plain text
-#: doc/guix.texi:2815
+#: doc/guix.texi:3600
 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 :"
 
 #. type: example
-#: doc/guix.texi:2823
+#: doc/guix.texi:3608
 #, no-wrap
 msgid ""
 "$ guix pull -l\n"
@@ -6367,7 +7971,7 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix.texi:2833
+#: doc/guix.texi:3618
 #, no-wrap
 msgid ""
 "Generation 2\tJun 11 2018 11:02:49\n"
@@ -6393,7 +7997,7 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix.texi:2841
+#: doc/guix.texi:3626
 #, no-wrap
 msgid ""
 "Generation 3\tJun 13 2018 23:31:07\t(current)\n"
@@ -6413,17 +8017,17 @@ msgstr ""
 "  69 paquets mis à jour : borg@@1.1.6, cheese@@3.28.0, @dots{}\n"
 
 #. type: Plain text
-#: doc/guix.texi:2845
-msgid "@ref{Invoking guix describe, @command{guix describe}}, for other ways to describe the current status of Guix."
-msgstr "@ref{Invoking guix describe, @command{guix describe}} pour d'autres manières de décrire le statut actuel de Guix."
+#: doc/guix.texi:3630
+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:2850
+#: doc/guix.texi:3635
 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 :"
 
 #. type: example
-#: doc/guix.texi:2856
+#: doc/guix.texi:3641
 #, no-wrap
 msgid ""
 "$ guix package -p ~/.config/guix/current --roll-back\n"
@@ -6437,155 +8041,196 @@ msgstr ""
 "suppression de /var/guix/profiles/per-user/charlie/current-guix-1-link\n"
 
 #. type: Plain text
-#: doc/guix.texi:2860
+#: doc/guix.texi:3645
 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 il supporte les options suivantes :"
 
 #. type: item
-#: doc/guix.texi:2862
+#: doc/guix.texi:3647
 #, no-wrap
 msgid "--url=@var{url}"
 msgstr "--url=@var{url}"
 
 #. type: itemx
-#: doc/guix.texi:2863
+#: doc/guix.texi:3648
 #, no-wrap
 msgid "--commit=@var{commit}"
 msgstr "--commit=@var{commit}"
 
 #. type: itemx
-#: doc/guix.texi:2864
+#: doc/guix.texi:3649
 #, no-wrap
 msgid "--branch=@var{branch}"
 msgstr "--branch=@var{branche}"
 
 #. type: table
-#: doc/guix.texi:2867
-msgid "Download code 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 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}."
+#: doc/guix.texi:3653
+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:2868 doc/guix.texi:2920
+#: doc/guix.texi:3654 doc/guix.texi:3719
 #, no-wrap
 msgid "@file{channels.scm}, configuration file"
 msgstr "@file{channels.scm}, fichier de configuration"
 
 #. type: cindex
-#: doc/guix.texi:2869 doc/guix.texi:2921
+#: doc/guix.texi:3655 doc/guix.texi:3720
 #, no-wrap
 msgid "configuration file for channels"
 msgstr "fichier de configuration pour les canaux"
 
 #. type: table
-#: doc/guix.texi:2873
+#: doc/guix.texi:3659
 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:2874
+#: doc/guix.texi:3660
 #, no-wrap
 msgid "--channels=@var{file}"
 msgstr "--channels=@var{file}"
 
 #. type: itemx
-#: doc/guix.texi:2875
+#: doc/guix.texi:3661
 #, no-wrap
 msgid "-C @var{file}"
 msgstr "-C @var{file}"
 
 #. type: table
-#: doc/guix.texi:2880
+#: doc/guix.texi:3666
 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."
 
+#. type: item
+#: doc/guix.texi:3667
+#, no-wrap
+msgid "--news"
+msgstr "--news"
+
+#. type: itemx
+#: doc/guix.texi:3668 doc/guix.texi:4580
+#, no-wrap
+msgid "-N"
+msgstr "-N"
+
 #. type: table
-#: doc/guix.texi:2887
+#: doc/guix.texi:3670
+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."
+
+#. type: table
+#: doc/guix.texi:3674
+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)."
+
+#. type: table
+#: doc/guix.texi:3681
 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:2890
-msgid "@ref{Invoking guix describe}, for a way to display information about the current generation only."
-msgstr "@ref{Invoking guix describe}, pour une manière d'afficher des informations sur la génération actuelle uniquement."
+#: doc/guix.texi:3684
+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:2894
+#: doc/guix.texi:3688
 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:2895 doc/guix.texi:6248
+#: doc/guix.texi:3689 doc/guix.texi:7674
 #, no-wrap
 msgid "--dry-run"
 msgstr "--dry-run"
 
 #. type: itemx
-#: doc/guix.texi:2896 doc/guix.texi:6249
+#: doc/guix.texi:3690 doc/guix.texi:7675
 #, no-wrap
 msgid "-n"
 msgstr "-n"
 
 #. type: table
-#: doc/guix.texi:2899
+#: doc/guix.texi:3693
 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:3695 doc/guix.texi:4563 doc/guix.texi:4856 doc/guix.texi:8040
+#: doc/guix.texi:9318 doc/guix.texi:9517 doc/guix.texi:10067
+#: doc/guix.texi:24418
+#, no-wrap
+msgid "-s @var{system}"
+msgstr "-s @var{système}"
+
 #. type: table
-#: doc/guix.texi:2902
+#: doc/guix.texi:3698 doc/guix.texi:4859
+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:3699 doc/guix.texi:9875
+#, no-wrap
+msgid "--verbose"
+msgstr "--verbose"
+
+#. type: table
+#: doc/guix.texi:3701
 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."
 
 #. type: table
-#: doc/guix.texi:2906
+#: doc/guix.texi:3705
 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 que pour les développeurs de Guix."
 
 #. type: Plain text
-#: doc/guix.texi:2912
+#: doc/guix.texi:3711
 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:2915
+#: doc/guix.texi:3714
 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:2919 doc/guix.texi:3279
+#: doc/guix.texi:3718 doc/guix.texi:4121
 #, no-wrap
 msgid "channels"
 msgstr "canaux"
 
 #. type: cindex
-#: doc/guix.texi:2922
+#: doc/guix.texi:3721
 #, no-wrap
 msgid "@command{guix pull}, configuration file"
 msgstr "@command{guix pull}, fichier de configuration"
 
 #. type: cindex
-#: doc/guix.texi:2923
+#: doc/guix.texi:3722
 #, no-wrap
 msgid "configuration of @command{guix pull}"
 msgstr "configuration de @command{guix pull}"
 
 #. type: Plain text
-#: doc/guix.texi:2932
+#: doc/guix.texi:3731
 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:2933
+#: doc/guix.texi:3732
 #, no-wrap
 msgid "Using a Custom Guix Channel"
 msgstr "Utiliser un canal Guix personnalisé"
 
 #. type: Plain text
-#: doc/guix.texi:2940
+#: doc/guix.texi:3739
 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:2947
+#: doc/guix.texi:3746
 #, no-wrap
 msgid ""
 ";; Tell 'guix pull' to use my own repo.\n"
@@ -6601,83 +8246,83 @@ msgstr ""
 "        (branch \"super-hacks\")))\n"
 
 #. type: Plain text
-#: doc/guix.texi:2952
+#: doc/guix.texi:3751
 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: subsection
-#: doc/guix.texi:2953
+#: doc/guix.texi:3752
 #, no-wrap
 msgid "Specifying Additional Channels"
 msgstr "Spécifier des canaux supplémentaires"
 
 #. type: cindex
-#: doc/guix.texi:2955
+#: doc/guix.texi:3754
 #, no-wrap
 msgid "extending the package collection (channels)"
 msgstr "étendre la collection de paquets (canaux)"
 
 #. type: cindex
-#: doc/guix.texi:2956
+#: doc/guix.texi:3755
 #, no-wrap
 msgid "personal packages (channels)"
 msgstr "paquets personnels (canaux)"
 
 #. type: cindex
-#: doc/guix.texi:2957
+#: doc/guix.texi:3756
 #, no-wrap
 msgid "channels, for personal packages"
 msgstr "canaux, pour des paquets personnels"
 
 #. type: Plain text
-#: doc/guix.texi:2965
+#: doc/guix.texi:3764
 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:2969
+#: doc/guix.texi:3768
 #, no-wrap
 msgid "Warning"
 msgstr "Attention"
 
 #. type: quotation
-#: doc/guix.texi:2973
+#: doc/guix.texi:3772
 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:2981
+#: doc/guix.texi:3780
 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:2990
+#: doc/guix.texi:3789
 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éveloppeurs 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:2994
+#: doc/guix.texi:3793
 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:3001
+#: doc/guix.texi:3800
 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:3007
-msgid "Once you have a Git repository containing your own package modules, you can write @code{~/.config/guix/channels.scm} to instruct @command{guix pull} to pull from your personal channel @emph{in addition} to the default Guix channel(s):"
-msgstr "Une fois que vous avez un dépôt Git contenant vos propres modules de paquets, vous pouvez écrire @code{~/.config/guix/channels.scm} pour dire à @command{guix pull} de récupérer votre canal personnel @emph{en plus} des canaux Guix par défaut :"
+#: doc/guix.texi:3805
+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:3008
+#: doc/guix.texi:3806
 #, no-wrap
 msgid "%default-channels"
 msgstr "%default-channels"
 
 #. type: lisp
-#: doc/guix.texi:3015
+#: doc/guix.texi:3813
 #, no-wrap
 msgid ""
 ";; Add my personal packages to those Guix provides.\n"
@@ -6693,12 +8338,12 @@ msgstr ""
 "      %default-channels)\n"
 
 #. type: Plain text
-#: doc/guix.texi:3025
-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 :"
+#: doc/guix.texi:3823
+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:3040
+#: doc/guix.texi:3838
 #, no-wrap
 msgid ""
 "$ guix pull --list-generations\n"
@@ -6730,41 +8375,110 @@ msgstr ""
 "  4 paquets mis à jour : emacs-racket-mode@@0.0.2-2.1b78827, @dots{}\n"
 
 #. type: Plain text
-#: doc/guix.texi:3048
+#: doc/guix.texi:3846
 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."
 
+#. type: Plain text
+#: doc/guix.texi:3857
+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:3858
+#, no-wrap
+msgid "dependencies, channels"
+msgstr "dépendances, canaux"
+
+#. type: cindex
+#: doc/guix.texi:3859
+#, no-wrap
+msgid "meta-data, channels"
+msgstr "métadonnées, canaux"
+
+#. type: subsection
+#: doc/guix.texi:3860
+#, no-wrap
+msgid "Declaring Channel Dependencies"
+msgstr "Déclarer des dépendances de canaux"
+
+#. type: Plain text
+#: doc/guix.texi:3866
+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:3868
+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:3880
+#, 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:3886
+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:3890
+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:3049
+#: doc/guix.texi:3891
 #, no-wrap
 msgid "Replicating Guix"
 msgstr "Répliquer Guix"
 
 #. type: cindex
-#: doc/guix.texi:3051
+#: doc/guix.texi:3893
 #, no-wrap
 msgid "pinning, channels"
 msgstr "épinglage, canaux"
 
 #. type: cindex
-#: doc/guix.texi:3052 doc/guix.texi:3218
+#: doc/guix.texi:3894 doc/guix.texi:4060
 #, no-wrap
 msgid "replicating Guix"
 msgstr "répliquer Guix"
 
 #. type: cindex
-#: doc/guix.texi:3053
+#: doc/guix.texi:3895
 #, no-wrap
 msgid "reproducibility, of Guix"
 msgstr "reproductibilité, de Guix"
 
 #. type: Plain text
-#: doc/guix.texi:3058
+#: doc/guix.texi:3900
 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:3069
+#: doc/guix.texi:3911
 #, no-wrap
 msgid ""
 ";; Deploy specific commits of my channels of interest.\n"
@@ -6788,60 +8502,60 @@ msgstr ""
 "       (branch \"dd3df5e2c8818760a8fc0bd699e55d3b69fef2bb\")))\n"
 
 #. type: Plain text
-#: doc/guix.texi:3073
+#: doc/guix.texi:3915
 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})."
 
 #. type: Plain text
-#: doc/guix.texi:3080
+#: doc/guix.texi:3922
 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:3085
+#: doc/guix.texi:3927
 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: quotation
-#: doc/guix.texi:3093
+#: doc/guix.texi:3935
 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:3095 doc/guix.texi:6093
+#: doc/guix.texi:3937 doc/guix.texi:7520
 #, no-wrap
 msgid "inferiors"
 msgstr "inférieurs"
 
 #. type: cindex
-#: doc/guix.texi:3096
+#: doc/guix.texi:3938
 #, no-wrap
 msgid "composition of Guix revisions"
 msgstr "composition de révisions de Guix"
 
 #. type: Plain text
-#: doc/guix.texi:3101
+#: doc/guix.texi:3943
 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:3102 doc/guix.texi:3167
+#: doc/guix.texi:3944 doc/guix.texi:4009
 #, no-wrap
 msgid "inferior packages"
 msgstr "paquets inférieurs"
 
 #. type: Plain text
-#: doc/guix.texi:3108
+#: doc/guix.texi:3950
 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:3118
+#: doc/guix.texi:3960
 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:3122
+#: doc/guix.texi:3964
 #, no-wrap
 msgid ""
 "(use-modules (guix inferior) (guix channels)\n"
@@ -6853,7 +8567,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:3131
+#: doc/guix.texi:3973
 #, no-wrap
 msgid ""
 "(define channels\n"
@@ -6877,7 +8591,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:3135
+#: doc/guix.texi:3977
 #, no-wrap
 msgid ""
 "(define inferior\n"
@@ -6891,7 +8605,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:3141
+#: doc/guix.texi:3983
 #, no-wrap
 msgid ""
 ";; Now create a manifest with the current \"guile\" package\n"
@@ -6907,192 +8621,192 @@ msgstr ""
 "       (specification->package \"guile\")))\n"
 
 #. type: Plain text
-#: doc/guix.texi:3146
+#: doc/guix.texi:3988
 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:3149
+#: doc/guix.texi:3991
 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:3150
+#: doc/guix.texi:3992
 #, no-wrap
 msgid "{Scheme Procedure} inferior-for-channels @var{channels} @"
 msgstr "{Procédure Scheme} inferior-for-channels @var{channels} @"
 
 #. type: deffn
-#: doc/guix.texi:3155
+#: doc/guix.texi:3997
 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:3158
+#: doc/guix.texi:4000
 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:3160
+#: doc/guix.texi:4002
 #, no-wrap
 msgid "{Scheme Procedure} open-inferior @var{directory} @"
 msgstr "{Procédure Scheme} open-inferior @var{directory} @"
 
 #. type: deffn
-#: doc/guix.texi:3165
+#: doc/guix.texi:4007
 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:3170
+#: doc/guix.texi:4012
 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:3171
+#: doc/guix.texi:4013
 #, no-wrap
 msgid "{Scheme Procedure} inferior-packages @var{inferior}"
 msgstr "{Procédure Scheme} inferior-packages @var{inferior}"
 
 #. type: deffn
-#: doc/guix.texi:3173
+#: doc/guix.texi:4015
 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:3175
+#: doc/guix.texi:4017
 #, 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:3180
+#: doc/guix.texi:4022
 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:3182
+#: doc/guix.texi:4024
 #, no-wrap
 msgid "{Scheme Procedure} inferior-package? @var{obj}"
 msgstr "{Procédure Scheme} inferior-package? @var{obj}"
 
 #. type: deffn
-#: doc/guix.texi:3184
+#: doc/guix.texi:4026
 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:3186
+#: doc/guix.texi:4028
 #, no-wrap
 msgid "{Scheme Procedure} inferior-package-name @var{package}"
 msgstr "{Procédure Scheme} inferior-package-name @var{package}"
 
 #. type: deffnx
-#: doc/guix.texi:3187
+#: doc/guix.texi:4029
 #, no-wrap
 msgid "{Scheme Procedure} inferior-package-version @var{package}"
 msgstr "{Procédure Scheme} inferior-package-version @var{package}"
 
 #. type: deffnx
-#: doc/guix.texi:3188
+#: doc/guix.texi:4030
 #, no-wrap
 msgid "{Scheme Procedure} inferior-package-synopsis @var{package}"
 msgstr "{Procédure Scheme} inferior-package-synopsis @var{package}"
 
 #. type: deffnx
-#: doc/guix.texi:3189
+#: doc/guix.texi:4031
 #, no-wrap
 msgid "{Scheme Procedure} inferior-package-description @var{package}"
 msgstr "{Procédure Scheme} inferior-package-description @var{package}"
 
 #. type: deffnx
-#: doc/guix.texi:3190
+#: doc/guix.texi:4032
 #, 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:3191
+#: doc/guix.texi:4033
 #, no-wrap
 msgid "{Scheme Procedure} inferior-package-location @var{package}"
 msgstr "{Procédure Scheme} inferior-package-location @var{package}"
 
 #. type: deffnx
-#: doc/guix.texi:3192
+#: doc/guix.texi:4034
 #, no-wrap
 msgid "{Scheme Procedure} inferior-package-inputs @var{package}"
 msgstr "{Procédure Scheme} inferior-package-inputs @var{package}"
 
 #. type: deffnx
-#: doc/guix.texi:3193
+#: doc/guix.texi:4035
 #, 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:3194
+#: doc/guix.texi:4036
 #, 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:3195
+#: doc/guix.texi:4037
 #, 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:3196
+#: doc/guix.texi:4038
 #, 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:3197
+#: doc/guix.texi:4039
 #, 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:3198
+#: doc/guix.texi:4040
 #, 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:3203
+#: doc/guix.texi:4045
 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:3213
+#: doc/guix.texi:4055
 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:3215
+#: doc/guix.texi:4057
 #, no-wrap
 msgid "Invoking @command{guix describe}"
 msgstr "Invoquer @command{guix describe}"
 
 #. type: Plain text
-#: doc/guix.texi:3226
+#: doc/guix.texi:4068
 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:3230
+#: doc/guix.texi:4072
 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:3238
+#: doc/guix.texi:4080
 #, no-wrap
 msgid ""
 "$ guix describe\n"
@@ -7110,17 +8824,17 @@ msgstr ""
 "    commit : e0fa68c7718fffd33d81af415279d6ddb518f727\n"
 
 #. type: Plain text
-#: doc/guix.texi:3247
+#: doc/guix.texi:4089
 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:3250
+#: doc/guix.texi:4092
 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:3258
+#: doc/guix.texi:4100
 #, no-wrap
 msgid ""
 "$ guix describe -f channels\n"
@@ -7138,133 +8852,961 @@ msgstr ""
 "          \"e0fa68c7718fffd33d81af415279d6ddb518f727\")))\n"
 
 #. type: Plain text
-#: doc/guix.texi:3267
+#: doc/guix.texi:4109
 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:3270
+#: doc/guix.texi:4112
 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:3272 doc/guix.texi:3392
+#: doc/guix.texi:4114 doc/guix.texi:4758
 #, no-wrap
 msgid "--format=@var{format}"
 msgstr "--format=@var{format}"
 
 #. type: itemx
-#: doc/guix.texi:3273 doc/guix.texi:3393
+#: doc/guix.texi:4115 doc/guix.texi:4759
 #, no-wrap
 msgid "-f @var{format}"
 msgstr "-f @var{format}"
 
 #. type: table
-#: doc/guix.texi:3275
+#: doc/guix.texi:4117
 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:3277
+#: doc/guix.texi:4119
 #, no-wrap
 msgid "human"
 msgstr "human"
 
 #. type: table
-#: doc/guix.texi:3279
+#: doc/guix.texi:4121
 msgid "produce human-readable output;"
 msgstr "produire une sortie lisible par un humain,"
 
 #. type: table
-#: doc/guix.texi:3283
+#: doc/guix.texi:4125
 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}),"
 
 #. type: item
-#: doc/guix.texi:3283 doc/guix.texi:7075
+#: doc/guix.texi:4125 doc/guix.texi:8557
 #, no-wrap
 msgid "json"
 msgstr "json"
 
 #. type: cindex
-#: doc/guix.texi:3284
+#: doc/guix.texi:4126
 #, no-wrap
 msgid "JSON"
 msgstr "JSON"
 
 #. type: table
-#: doc/guix.texi:3286
+#: doc/guix.texi:4128
 msgid "produce a list of channel specifications in JSON format;"
 msgstr "produire une liste de spécifications de canaux dans le format JSON,"
 
 #. type: item
-#: doc/guix.texi:3286
+#: doc/guix.texi:4128
 #, no-wrap
 msgid "recutils"
 msgstr "recutils"
 
 #. type: table
-#: doc/guix.texi:3288
+#: doc/guix.texi:4130
 msgid "produce a list of channel specifications in Recutils format."
 msgstr "produire une liste de spécifications de canaux dans le format Recutils."
 
 #. type: table
-#: doc/guix.texi:3293
+#: doc/guix.texi:4135
 msgid "Display information about @var{profile}."
 msgstr "Afficher les informations sur le @var{profil}."
 
 #. type: section
-#: doc/guix.texi:3296
+#: doc/guix.texi:4138
+#, no-wrap
+msgid "Invoking @command{guix archive}"
+msgstr "Invoquer @command{guix archive}"
+
+#. type: command{#1}
+#: doc/guix.texi:4140
+#, no-wrap
+msgid "guix archive"
+msgstr "guix archive"
+
+#. type: cindex
+#: doc/guix.texi:4141
+#, no-wrap
+msgid "archive"
+msgstr "archive"
+
+#. type: Plain text
+#: doc/guix.texi:4147
+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:4151
+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:4153
+#, no-wrap
+msgid "exporting store items"
+msgstr "exporter des éléments du dépôt"
+
+#. type: Plain text
+#: doc/guix.texi:4155
+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:4158
+#, 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:4165
+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:4168
+#, 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:4173
+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:4176
+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:4179
+#, 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:4184
+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:4188
+#, 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 la-machine guix-archive --import\n"
+
+#. type: Plain text
+#: doc/guix.texi:4198
+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ées (à cause de @code{-r}), indépendamment du fait qu'ils soient 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})."
+
+#. type: cindex
+#: doc/guix.texi:4199
+#, no-wrap
+msgid "nar, archive format"
+msgstr "nar, format d'archive"
+
+#. type: cindex
+#: doc/guix.texi:4200
+#, no-wrap
+msgid "normalized archive (nar)"
+msgstr "archive normalisée (nar)"
+
+#. type: Plain text
+#: doc/guix.texi:4210
+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."
+
+#. type: Plain text
+#: doc/guix.texi:4216
+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:4218
+msgid "The main options are:"
+msgstr "Les principales options sont :"
+
+#. type: item
+#: doc/guix.texi:4220
+#, no-wrap
+msgid "--export"
+msgstr "--export"
+
+#. type: table
+#: doc/guix.texi:4223
+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."
+
+#. type: table
+#: doc/guix.texi:4226
+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é."
+
+#. type: itemx
+#: doc/guix.texi:4227 doc/guix.texi:8345 doc/guix.texi:8442 doc/guix.texi:8467
+#: doc/guix.texi:8662 doc/guix.texi:8703 doc/guix.texi:8750
+#, no-wrap
+msgid "-r"
+msgstr "-r"
+
+#. type: item
+#: doc/guix.texi:4228 doc/guix.texi:8344 doc/guix.texi:8441 doc/guix.texi:8466
+#: doc/guix.texi:8661 doc/guix.texi:8702 doc/guix.texi:8749 doc/guix.texi:8806
+#, no-wrap
+msgid "--recursive"
+msgstr "--recursive"
+
+#. type: table
+#: doc/guix.texi:4233
+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."
+
+#. type: item
+#: doc/guix.texi:4234
+#, no-wrap
+msgid "--import"
+msgstr "--import"
+
+#. type: table
+#: doc/guix.texi:4239
+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.)"
+
+#. type: item
+#: doc/guix.texi:4240
+#, no-wrap
+msgid "--missing"
+msgstr "--missing"
+
+#. type: table
+#: doc/guix.texi:4244
+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:4245
+#, no-wrap
+msgid "--generate-key[=@var{parameters}]"
+msgstr "--generate-key[=@var{paramètres}]"
+
+#. type: cindex
+#: doc/guix.texi:4246
+#, no-wrap
+msgid "signing, archives"
+msgstr "signature, archives"
+
+#. type: table
+#: doc/guix.texi:4251
+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."
+
+#. type: table
+#: doc/guix.texi:4261
+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})."
+
+#. type: item
+#: doc/guix.texi:4262
+#, no-wrap
+msgid "--authorize"
+msgstr "--authorize"
+
+#. type: cindex
+#: doc/guix.texi:4263
+#, no-wrap
+msgid "authorizing, archives"
+msgstr "autorisation, archives"
+
+#. type: table
+#: doc/guix.texi:4267
+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:4274
+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)}."
+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{http://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{http://theworld.com/~cme/spki.txt, infrastructure à clefs publiques simple (SPKI)}."
+
+#. type: item
+#: doc/guix.texi:4275
+#, no-wrap
+msgid "--extract=@var{directory}"
+msgstr "--extract=@var{répertoire}"
+
+#. type: itemx
+#: doc/guix.texi:4276
+#, no-wrap
+msgid "-x @var{directory}"
+msgstr "-x @var{répertoire}"
+
+#. type: table
+#: doc/guix.texi:4280
+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:4283
+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:4288
+#, no-wrap
+msgid ""
+"$ wget -O - \\\n"
+"  https://@value{SUBSTITUTE-SERVER}/nar/@dots{}-emacs-24.5 \\\n"
+"  | bunzip2 | 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"
+
+#. type: table
+#: doc/guix.texi:4295
+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:4298
+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."
+
+#. type: cindex
+#: doc/guix.texi:4306
+#, no-wrap
+msgid "software development"
+msgstr "développement logiciel"
+
+#. type: Plain text
+#: doc/guix.texi:4310
+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:4316
+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:4323
+#, no-wrap
+msgid "Invoking @command{guix environment}"
+msgstr "Invoquer @command{guix environment}"
+
+#. type: cindex
+#: doc/guix.texi:4325
+#, no-wrap
+msgid "reproducible build environments"
+msgstr "environnements de construction reproductibles"
+
+#. type: cindex
+#: doc/guix.texi:4326
+#, no-wrap
+msgid "development environments"
+msgstr "environnement de développement"
+
+#. type: command{#1}
+#: doc/guix.texi:4327
+#, no-wrap
+msgid "guix environment"
+msgstr "guix environment"
+
+#. type: cindex
+#: doc/guix.texi:4328
+#, no-wrap
+msgid "environment, package build environment"
+msgstr "environnement de construction de paquets"
+
+#. type: Plain text
+#: doc/guix.texi:4334
+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:4336 doc/guix.texi:7594 doc/guix.texi:8322 doc/guix.texi:8389
+#: doc/guix.texi:9178 doc/guix.texi:9551 doc/guix.texi:9856 doc/guix.texi:9922
+#: doc/guix.texi:9961
+msgid "The general syntax is:"
+msgstr "La syntaxe générale est :"
+
+#. type: example
+#: doc/guix.texi:4339
+#, 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:4343
+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:4346
+#, no-wrap
+msgid "guix environment guile\n"
+msgstr "guix environment guile\n"
+
+#. type: Plain text
+#: doc/guix.texi:4363
+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.}."
+
+#. type: vindex
+#: doc/guix.texi:4364
+#, no-wrap
+msgid "GUIX_ENVIRONMENT"
+msgstr "GUIX_ENVIRONMENT"
+
+#. type: Plain text
+#: doc/guix.texi:4370
+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}) :"
+
+#. type: example
+#: doc/guix.texi:4376
+#, no-wrap
+msgid ""
+"if [ -n \"$GUIX_ENVIRONMENT\" ]\n"
+"then\n"
+"    export PS1=\"\\u@@\\h \\w [dev]\\$ \"\n"
+"fi\n"
+msgstr ""
+"if [ -n \"$GUIX_ENVIRONMENT\" ]\n"
+"then\n"
+"    export PS1=\"\\u@@\\h \\w [dev]\\$ \"\n"
+"fi\n"
+
+#. type: Plain text
+#: doc/guix.texi:4380
+msgid "...@: or to browse the profile:"
+msgstr "…@: ou de naviguer dans le profil :"
+
+#. type: example
+#: doc/guix.texi:4383
+#, no-wrap
+msgid "$ ls \"$GUIX_ENVIRONMENT/bin\"\n"
+msgstr "$ ls \"$GUIX_ENVIRONMENT/bin\"\n"
+
+#. type: Plain text
+#: doc/guix.texi:4389
+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 "En plus, 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:4392
+#, no-wrap
+msgid "guix environment guile emacs\n"
+msgstr "guix environment guile emacs\n"
+
+#. type: Plain text
+#: doc/guix.texi:4397
+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:4400
+#, no-wrap
+msgid "guix environment guile -- make -j4\n"
+msgstr "guix environment guile -- make -j4\n"
+
+#. type: Plain text
+#: doc/guix.texi:4406
+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:4409
+#, 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:4420
+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 :"
+
+#. type: example
+#: doc/guix.texi:4423
+#, no-wrap
+msgid "guix environment guix --ad-hoc git strace\n"
+msgstr "guix environment guix --ad-hoc git strace\n"
+
+#. type: Plain text
+#: doc/guix.texi:4432
+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:4435
+#, 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:4439
+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."
+
+#. type: Plain text
+#: doc/guix.texi:4442
+msgid "The available options are summarized below."
+msgstr "Les options disponibles sont résumées ci-dessous."
+
+#. type: item
+#: doc/guix.texi:4444 doc/guix.texi:8109 doc/guix.texi:24450
+#, no-wrap
+msgid "--root=@var{file}"
+msgstr "--root=@var{fichier}"
+
+#. type: itemx
+#: doc/guix.texi:4445 doc/guix.texi:8110 doc/guix.texi:24451
+#, no-wrap
+msgid "-r @var{file}"
+msgstr "-r @var{fichier}"
+
+#. type: cindex
+#: doc/guix.texi:4446
+#, no-wrap
+msgid "persistent environment"
+msgstr "environnement persistent"
+
+#. type: cindex
+#: doc/guix.texi:4447
+#, no-wrap
+msgid "garbage collector root, for environments"
+msgstr "racine du ramasse-miettes, pour les environnements"
+
+#. type: table
+#: doc/guix.texi:4450
+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:4453
+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:4459
+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:4460 doc/guix.texi:4834 doc/guix.texi:7967 doc/guix.texi:8848
+#: doc/guix.texi:9506 doc/guix.texi:24409
+#, no-wrap
+msgid "--expression=@var{expr}"
+msgstr "--expression=@var{expr}"
+
+#. type: itemx
+#: doc/guix.texi:4461 doc/guix.texi:4835 doc/guix.texi:7968 doc/guix.texi:8849
+#: doc/guix.texi:9507 doc/guix.texi:24410
+#, no-wrap
+msgid "-e @var{expr}"
+msgstr "-e @var{expr}"
+
+#. type: table
+#: doc/guix.texi:4464
+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:4466
+msgid "For example, running:"
+msgstr "Par exemple, lancer :"
+
+#. type: example
+#: doc/guix.texi:4469
+#, 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:4473
+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:4475
+msgid "Running:"
+msgstr "Lancer :"
+
+#. type: example
+#: doc/guix.texi:4478
+#, 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:4481
+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:4484
+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:4487
+#, 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:4489
+#, no-wrap
+msgid "--load=@var{file}"
+msgstr "--load=@var{fichier}"
+
+#. type: itemx
+#: doc/guix.texi:4490
+#, no-wrap
+msgid "-l @var{file}"
+msgstr "-l @var{fichier}"
+
+#. type: table
+#: doc/guix.texi:4493
+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:4499
+#, no-wrap
+msgid "@verbatiminclude environment-gdb.scm\n"
+msgstr "@verbatiminclude environment-gdb.scm\n"
+
+#. type: table
+#: doc/guix.texi:4505
+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}."
+
+#. type: table
+#: doc/guix.texi:4509
+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:4510
+#, no-wrap
+msgid "--ad-hoc"
+msgstr "--ad-hoc"
+
+#. type: table
+#: doc/guix.texi:4515
+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:4517
+msgid "For instance, the command:"
+msgstr "Par exemple la commande :"
+
+#. type: example
+#: doc/guix.texi:4520
+#, 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:4524
+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:4529
+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:4535
+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."
+
+#. type: item
+#: doc/guix.texi:4536
+#, no-wrap
+msgid "--pure"
+msgstr "--pure"
+
+#. type: table
+#: doc/guix.texi:4540
+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."
+
+#. type: item
+#: doc/guix.texi:4541
+#, no-wrap
+msgid "--preserve=@var{regexp}"
+msgstr "--preserve=@var{regexp}"
+
+#. type: itemx
+#: doc/guix.texi:4542
+#, no-wrap
+msgid "-E @var{regexp}"
+msgstr "-E @var{regexp}"
+
+#. type: table
+#: doc/guix.texi:4547
+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:4551
+#, no-wrap
+msgid ""
+"guix environment --pure --preserve=^SLURM --ad-hoc openmpi @dots{} \\\n"
+"  -- mpirun @dots{}\n"
+msgstr ""
+"guix environment --pure --preserve=^SLURM --ad-hoc openmpi @dots{} \\\n"
+"  -- mpirun @dots{}\n"
+
+#. type: table
+#: doc/guix.texi:4557
+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)."
+
+#. type: item
+#: doc/guix.texi:4558
+#, no-wrap
+msgid "--search-paths"
+msgstr "--search-paths"
+
+#. type: table
+#: doc/guix.texi:4561
+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:4565
+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:4566
+#, no-wrap
+msgid "--container"
+msgstr "--container"
+
+#. type: itemx
+#: doc/guix.texi:4567
+#, no-wrap
+msgid "-C"
+msgstr "-C"
+
+#. type: item
+#: doc/guix.texi:4568 doc/guix.texi:9947 doc/guix.texi:24377
+#, no-wrap
+msgid "container"
+msgstr "conteneur"
+
+#. type: table
+#: doc/guix.texi:4574
+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."
+
+#. type: table
+#: doc/guix.texi:4578
+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)."
+
+#. type: item
+#: doc/guix.texi:4579
+#, no-wrap
+msgid "--network"
+msgstr "--network"
+
+#. type: table
+#: doc/guix.texi:4584
+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:4585
+#, no-wrap
+msgid "--link-profile"
+msgstr "--link-profile"
+
+#. type: itemx
+#: doc/guix.texi:4586
+#, no-wrap
+msgid "-P"
+msgstr "-P"
+
+#. type: table
+#: doc/guix.texi:4593
+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."
+
+#. type: table
+#: doc/guix.texi:4600
+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."
+
+#. type: item
+#: doc/guix.texi:4601 doc/guix.texi:9619
+#, no-wrap
+msgid "--user=@var{user}"
+msgstr "--user=@var{utilisateur}"
+
+#. type: itemx
+#: doc/guix.texi:4602 doc/guix.texi:9620
+#, no-wrap
+msgid "-u @var{user}"
+msgstr "-u @var{utilisateur}"
+
+#. type: table
+#: doc/guix.texi:4609
+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:4614
+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."
+
+#. type: example
+#: doc/guix.texi:4621
+#, no-wrap
+msgid ""
+"# will expose paths as /home/foo/wd, /home/foo/test, and /home/foo/target\n"
+"cd $HOME/wd\n"
+"guix environment --container --user=foo \\\n"
+"     --expose=$HOME/test \\\n"
+"     --expose=/tmp/target=$HOME/target\n"
+msgstr ""
+"# exposera les chemins comme /home/foo/wd, /home/foo/test et /home/foo/target\n"
+"cd $HOME/wd\n"
+"guix environment --container --user=foo \\\n"
+"     --expose=$HOME/test \\\n"
+"     --expose=/tmp/target=$HOME/target\n"
+
+#. type: table
+#: doc/guix.texi:4626
+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:4627
+#, no-wrap
+msgid "--expose=@var{source}[=@var{target}]"
+msgstr "--expose=@var{source}[=@var{cible}]"
+
+#. type: table
+#: doc/guix.texi:4632
+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."
+
+#. type: table
+#: doc/guix.texi:4636
+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:4639
+#, 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: item
+#: doc/guix.texi:4641
+#, no-wrap
+msgid "--share=@var{source}[=@var{target}]"
+msgstr "--share=@var{source}[=@var{cible}]"
+
+#. type: table
+#: doc/guix.texi:4646
+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."
+
+#. type: table
+#: doc/guix.texi:4650
+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} :"
+
+#. type: example
+#: doc/guix.texi:4653
+#, 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"
+
+#. type: Plain text
+#: doc/guix.texi:4660
+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:4662
 #, no-wrap
 msgid "Invoking @command{guix pack}"
 msgstr "Invoquer @command{guix pack}"
 
 #. type: Plain text
-#: doc/guix.texi:3302
+#: doc/guix.texi:4668
 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:3307
+#: doc/guix.texi:4673
 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:3309
+#: doc/guix.texi:4675
 #, no-wrap
 msgid "pack"
 msgstr "pack"
 
 #. type: cindex
-#: doc/guix.texi:3310
+#: doc/guix.texi:4676
 #, no-wrap
 msgid "bundle"
 msgstr "lot"
 
 #. type: cindex
-#: doc/guix.texi:3311
+#: doc/guix.texi:4677
 #, no-wrap
 msgid "application bundle"
 msgstr "lot d'applications"
 
 #. type: cindex
-#: doc/guix.texi:3312
+#: doc/guix.texi:4678
 #, no-wrap
 msgid "software bundle"
 msgstr "lot de logiciels"
 
 #. type: Plain text
-#: doc/guix.texi:3321
+#: doc/guix.texi:4687
 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:3324
+#: doc/guix.texi:4690
 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:3329
+#: doc/guix.texi:4695
 #, no-wrap
 msgid ""
 "$ guix pack guile emacs geiser\n"
@@ -7276,159 +9818,175 @@ msgstr ""
 "/gnu/store/@dots{}-pack.tar.gz\n"
 
 #. type: Plain text
-#: doc/guix.texi:3337
+#: doc/guix.texi:4703
 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:3342
+#: doc/guix.texi:4708
 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:3345
+#: doc/guix.texi:4711
 #, 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:3349
+#: doc/guix.texi:4715
 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:3350
+#: doc/guix.texi:4716
 #, no-wrap
 msgid "relocatable binaries, with @command{guix pack}"
 msgstr "binaires repositionnables, avec @command{guix pack}"
 
 #. type: Plain text
-#: doc/guix.texi:3358
+#: doc/guix.texi:4724
 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 produite 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}."
 
 #. type: cindex
-#: doc/guix.texi:3359
+#: doc/guix.texi:4725
 #, no-wrap
 msgid "Docker, build an image with guix pack"
 msgstr "Docker, construire une image avec guix pack"
 
 #. type: Plain text
-#: doc/guix.texi:3362
+#: doc/guix.texi:4728
 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:3365
+#: doc/guix.texi:4731
 #, no-wrap
 msgid "guix pack -f docker guile emacs geiser\n"
 msgstr "guix pack -f docker guile emacs geiser\n"
 
 #. type: Plain text
-#: doc/guix.texi:3372
+#: doc/guix.texi:4738
 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."
 
 #. type: cindex
-#: doc/guix.texi:3373
+#: doc/guix.texi:4739
 #, no-wrap
 msgid "Singularity, build an image with guix pack"
 msgstr "Singularity, construire une image avec guix pack"
 
 #. type: cindex
-#: doc/guix.texi:3374
+#: doc/guix.texi:4740
 #, no-wrap
 msgid "SquashFS, build an image with guix pack"
 msgstr "SquashFS, construire une image avec guix pack"
 
 #. type: Plain text
-#: doc/guix.texi:3377
+#: doc/guix.texi:4743
 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:3380
+#: doc/guix.texi:4746
 #, no-wrap
 msgid "guix pack -f squashfs guile emacs geiser\n"
 msgstr "guix pack -f squashfs guile emacs geiser\n"
 
 #. type: Plain text
-#: doc/guix.texi:3388
+#: doc/guix.texi:4754
 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}."
 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{http://singularity.lbl.gov, environnement d'exécution conteneurisé Singularity}, avec des commandes comme @command{singularity shell} ou @command{singularity exec}."
 
 #. type: Plain text
-#: doc/guix.texi:3390
+#: doc/guix.texi:4756
 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:3395
+#: doc/guix.texi:4761
 msgid "Produce a pack in the given @var{format}."
 msgstr "Produire un pack dans le @var{format} donné."
 
 #. type: table
-#: doc/guix.texi:3397
+#: doc/guix.texi:4763
 msgid "The available formats are:"
 msgstr "Les formats disponibles sont :"
 
 #. type: item
-#: doc/guix.texi:3399
+#: doc/guix.texi:4765
 #, no-wrap
 msgid "tarball"
 msgstr "tarball"
 
 #. type: table
-#: doc/guix.texi:3402
+#: doc/guix.texi:4768
 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:3403
+#: doc/guix.texi:4769
 #, no-wrap
 msgid "docker"
 msgstr "docker"
 
 #. type: table
-#: doc/guix.texi:3407
+#: doc/guix.texi:4773
 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}."
 
 #. type: item
-#: doc/guix.texi:3408
+#: doc/guix.texi:4774
 #, no-wrap
 msgid "squashfs"
 msgstr "squashfs"
 
 #. type: table
-#: doc/guix.texi:3412
+#: doc/guix.texi:4778
 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: cindex
+#: doc/guix.texi:4780
+#, no-wrap
+msgid "relocatable binaries"
+msgstr "binaires repositionnables"
+
 #. type: item
-#: doc/guix.texi:3414
+#: doc/guix.texi:4781
 #, no-wrap
 msgid "--relocatable"
 msgstr "--relocatable"
 
 #. type: table
-#: doc/guix.texi:3419
-msgid "Produce @dfn{relocatable binaries}---i.e., binaries that can be placed anywhere in the file system hierarchy and run from there.  For example, if you create a pack containing Bash with:"
-msgstr "Produit 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à.  Par exemple, si vous créez un pack contenant Bash avec :"
+#: doc/guix.texi:4785
+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:4793
+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."
+
+#. type: table
+#: doc/guix.texi:4795
+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:3422
+#: doc/guix.texi:4798
 #, no-wrap
-msgid "guix pack -R -S /mybin=bin bash\n"
-msgstr "guix pack -R -S /mybin=bin bash\n"
+msgid "guix pack -RR -S /mybin=bin bash\n"
+msgstr "guix pack -RR -S /mybin=bin bash\n"
 
 #. type: table
-#: doc/guix.texi:3427
-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 :"
+#: doc/guix.texi:4803
+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:3431
+#: doc/guix.texi:4807
 #, no-wrap
 msgid ""
 "tar xf pack.tar.gz\n"
@@ -7438,450 +9996,243 @@ msgstr ""
 "./mybin/sh\n"
 
 #. type: table
-#: doc/guix.texi:3439
+#: doc/guix.texi:4815
 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: table
-#: doc/guix.texi:3446
-msgid "There's a gotcha though: this technique relies 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; on these systems, programs from the pack @emph{will fail to run}, unless they are unpacked in the root file system."
-msgstr "Il y a un inconvénient cependant : cette technique repose sur les @dfn{espaces de noms} du noyau Linux qui permettent à des utilisateurs non-privilégiés de monter des systèmes de fichiers ou de changer de racine.  Les anciennes versions de Linux ne le supportaient pas et certaines distributions GNU/Linux les désactivent ; sur ces système, les programme du pack @emph{ne fonctionneront pas} à moins qu'ils ne soient décompressés à la racine du système de fichiers."
+#. type: quotation
+#: doc/guix.texi:4821
+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: item
-#: doc/guix.texi:3447 doc/guix.texi:6482 doc/guix.texi:7352 doc/guix.texi:7969
-#: doc/guix.texi:8126 doc/guix.texi:22526
-#, no-wrap
-msgid "--expression=@var{expr}"
-msgstr "--expression=@var{expr}"
+#. type: quotation
+#: doc/guix.texi:4826
+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."
 
-#. type: itemx
-#: doc/guix.texi:3448 doc/guix.texi:6483 doc/guix.texi:7353 doc/guix.texi:7970
-#: doc/guix.texi:8127 doc/guix.texi:22527
-#, no-wrap
-msgid "-e @var{expr}"
-msgstr "-e @var{expr}"
+#. type: quotation
+#: doc/guix.texi:4832
+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é."
 
 #. type: table
-#: doc/guix.texi:3450 doc/guix.texi:7355 doc/guix.texi:7972
+#: doc/guix.texi:4837 doc/guix.texi:8851 doc/guix.texi:9509
 msgid "Consider the package @var{expr} evaluates to."
 msgstr "Considérer le paquet évalué par @var{expr}."
 
 #. type: table
-#: doc/guix.texi:3454
+#: doc/guix.texi:4841
 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}})."
 
 #. type: table
-#: doc/guix.texi:3459
+#: doc/guix.texi:4846
 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}"
 
 #. type: table
-#: doc/guix.texi:3467
+#: doc/guix.texi:4854
 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: itemx
-#: doc/guix.texi:3469 doc/guix.texi:6555 doc/guix.texi:7797 doc/guix.texi:7980
-#: doc/guix.texi:8212 doc/guix.texi:8846 doc/guix.texi:22535
-#, no-wrap
-msgid "-s @var{system}"
-msgstr "-s @var{système}"
-
-#. type: table
-#: doc/guix.texi:3472 doc/guix.texi:6558
-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:3473 doc/guix.texi:6586
+#: doc/guix.texi:4860 doc/guix.texi:8073
 #, no-wrap
 msgid "--target=@var{triplet}"
 msgstr "--target=@var{triplet}"
 
 #. type: cindex
-#: doc/guix.texi:3474 doc/guix.texi:3904 doc/guix.texi:6587
+#: doc/guix.texi:4861 doc/guix.texi:5207 doc/guix.texi:8074
 #, no-wrap
 msgid "cross-compilation"
 msgstr "compilation croisée"
 
 #. type: table
-#: doc/guix.texi:3478 doc/guix.texi:6591
+#: doc/guix.texi:4865 doc/guix.texi:8078
 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})."
 
 #. type: item
-#: doc/guix.texi:3479
+#: doc/guix.texi:4866
 #, no-wrap
 msgid "--compression=@var{tool}"
 msgstr "--compression=@var{outil}"
 
 #. type: itemx
-#: doc/guix.texi:3480
+#: doc/guix.texi:4867
 #, no-wrap
 msgid "-C @var{tool}"
 msgstr "-C @var{outil}"
 
 #. type: table
-#: doc/guix.texi:3483
+#: doc/guix.texi:4870
 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."
 
 #. type: item
-#: doc/guix.texi:3484
+#: doc/guix.texi:4871
 #, no-wrap
 msgid "--symlink=@var{spec}"
 msgstr "--symlink=@var{spec}"
 
 #. type: itemx
-#: doc/guix.texi:3485
+#: doc/guix.texi:4872
 #, no-wrap
 msgid "-S @var{spec}"
 msgstr "-S @var{spec}"
 
 #. type: table
-#: doc/guix.texi:3488
+#: doc/guix.texi:4875
 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:3492
+#: doc/guix.texi:4879
 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:3495
+#: doc/guix.texi:4882
 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:3496
+#: doc/guix.texi:4883
+#, no-wrap
+msgid "--save-provenance"
+msgstr "--save-provenance"
+
+#. type: table
+#: doc/guix.texi:4887
+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:4893
+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:4899
+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: item
+#: doc/guix.texi:4900
 #, no-wrap
 msgid "--localstatedir"
 msgstr "--localstatedir"
 
 #. type: itemx
-#: doc/guix.texi:3497
+#: doc/guix.texi:4901
 #, no-wrap
 msgid "--profile-name=@var{name}"
 msgstr "--profile-name=@var{nom}"
 
 #. type: table
-#: doc/guix.texi:3502
+#: doc/guix.texi:4906
 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:3508
+#: doc/guix.texi:4912
 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:3511
+#: doc/guix.texi:4915
 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: table
-#: doc/guix.texi:3515
+#: doc/guix.texi:4919
 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 développeurs de Guix."
 
 #. type: Plain text
-#: doc/guix.texi:3520
+#: doc/guix.texi:4924
 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: section
-#: doc/guix.texi:3523
-#, no-wrap
-msgid "Invoking @command{guix archive}"
-msgstr "Invoquer @command{guix archive}"
-
-#. type: command{#1}
-#: doc/guix.texi:3525
-#, no-wrap
-msgid "guix archive"
-msgstr "guix archive"
-
-#. type: cindex
-#: doc/guix.texi:3526
-#, no-wrap
-msgid "archive"
-msgstr "archive"
-
 #. type: Plain text
-#: doc/guix.texi:3532
-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:3536
-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:3538
-#, no-wrap
-msgid "exporting store items"
-msgstr "exporter des éléments du dépôt"
-
-#. type: Plain text
-#: doc/guix.texi:3540
-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:3543
-#, no-wrap
-msgid "guix archive --export @var{options} @var{specifications}...\n"
-msgstr "guix archive --export @var{options} @var{spécifications}...\n"
+#: doc/guix.texi:4936
+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:3550
-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:3553
-#, 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"
+#: doc/guix.texi:4942
+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."
 
 #. type: Plain text
-#: doc/guix.texi:3558
-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})."
+#: doc/guix.texi:4951
+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:3561
-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:3564
-#, 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"
+#: doc/guix.texi:4954
+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: Plain text
-#: doc/guix.texi:3569
-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:3573
-#, 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 la-machine guix-archive --import\n"
+#: doc/guix.texi:4980
+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:3583
-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ées (à cause de @code{-r}), indépendamment du fait qu'ils soient 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})."
-
-#. type: cindex
-#: doc/guix.texi:3584
-#, no-wrap
-msgid "nar, archive format"
-msgstr "nar, format d'archive"
+#: doc/guix.texi:4987
+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 package -i 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 package -i 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:3585
+#: doc/guix.texi:4989
 #, no-wrap
-msgid "normalized archive (nar)"
-msgstr "archive normalisée (nar)"
-
-#. type: Plain text
-#: doc/guix.texi:3595
-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."
-
-#. type: Plain text
-#: doc/guix.texi:3601
-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."
+msgid "package module search path"
+msgstr "chemin de recherche des modules de paquets"
 
 #. type: Plain text
-#: doc/guix.texi:3603
-msgid "The main options are:"
-msgstr "Les principales options sont :"
-
-#. type: item
-#: doc/guix.texi:3605
-#, no-wrap
-msgid "--export"
-msgstr "--export"
-
-#. type: table
-#: doc/guix.texi:3608
-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."
-
-#. type: table
-#: doc/guix.texi:3611
-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é."
-
-#. type: itemx
-#: doc/guix.texi:3612 doc/guix.texi:6858 doc/guix.texi:6956 doc/guix.texi:6983
-#: doc/guix.texi:7182 doc/guix.texi:7223 doc/guix.texi:7270
-#, no-wrap
-msgid "-r"
-msgstr "-r"
-
-#. type: item
-#: doc/guix.texi:3613 doc/guix.texi:6857 doc/guix.texi:6955 doc/guix.texi:6982
-#: doc/guix.texi:7181 doc/guix.texi:7222 doc/guix.texi:7269
-#, no-wrap
-msgid "--recursive"
-msgstr "--recursive"
-
-#. type: table
-#: doc/guix.texi:3618
-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."
-
-#. type: item
-#: doc/guix.texi:3619
-#, no-wrap
-msgid "--import"
-msgstr "--import"
-
-#. type: table
-#: doc/guix.texi:3624
-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.)"
-
-#. type: item
-#: doc/guix.texi:3625
-#, no-wrap
-msgid "--missing"
-msgstr "--missing"
-
-#. type: table
-#: doc/guix.texi:3629
-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:3630
-#, no-wrap
-msgid "--generate-key[=@var{parameters}]"
-msgstr "--generate-key[=@var{paramètres}]"
-
-#. type: cindex
-#: doc/guix.texi:3631
-#, no-wrap
-msgid "signing, archives"
-msgstr "signature, archives"
-
-#. type: table
-#: doc/guix.texi:3636
-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."
-
-#. type: table
-#: doc/guix.texi:3646
-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})."
-
-#. type: item
-#: doc/guix.texi:3647
-#, no-wrap
-msgid "--authorize"
-msgstr "--authorize"
-
-#. type: cindex
-#: doc/guix.texi:3648
-#, no-wrap
-msgid "authorizing, archives"
-msgstr "autorisation, archives"
-
-#. type: table
-#: doc/guix.texi:3652
-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:3659
-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)}."
-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{http://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{http://theworld.com/~cme/spki.txt, infrastructure à clefs publiques simple (SPKI)}."
-
-#. type: item
-#: doc/guix.texi:3660
-#, no-wrap
-msgid "--extract=@var{directory}"
-msgstr "--extract=@var{répertoire}"
-
-#. type: itemx
-#: doc/guix.texi:3661
-#, no-wrap
-msgid "-x @var{directory}"
-msgstr "-x @var{répertoire}"
-
-#. type: table
-#: doc/guix.texi:3665
-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:3668
-msgid "For example, the following command extracts the substitute for Emacs served by @code{hydra.gnu.org} to @file{/tmp/emacs}:"
-msgstr "Par exemple, la commande suivante extrait le substitut pour Emacs servi par @code{hydra.gnu.org} dans @file{/tmp/emacs} :"
-
-#. type: example
-#: doc/guix.texi:3673
-#, no-wrap
-msgid ""
-"$ wget -O - \\\n"
-"  https://hydra.gnu.org/nar/@dots{}-emacs-24.5 \\\n"
-"  | bunzip2 | guix archive -x /tmp/emacs\n"
-msgstr ""
-"$ wget -O - \\\n"
-"  https://hydra.gnu.org/nar/@dots{}-emacs-24.5 \\\n"
-"  | bunzip2 | guix archive -x /tmp/emacs\n"
+#: doc/guix.texi:4998
+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 :"
 
-#. type: table
-#: doc/guix.texi:3680
-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: enumerate
+#: doc/guix.texi:5005
+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."
 
-#. type: table
-#: doc/guix.texi:3683
-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."
+#. type: enumerate
+#: doc/guix.texi:5011
+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."
 
 #. type: Plain text
-#: doc/guix.texi:3696
-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."
+#: doc/guix.texi:5014
+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 :"
 
-#. type: Plain text
-#: doc/guix.texi:3702
-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."
+#. type: defvr
+#: doc/guix.texi:5015
+#, no-wrap
+msgid "{Environment Variable} GUIX_PACKAGE_PATH"
+msgstr "{Variable d'environnement} GUIX_PACKAGE_PATH"
 
-#. type: Plain text
-#: doc/guix.texi:3711
-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: defvr
+#: doc/guix.texi:5019
+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:3714
-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."
+#: doc/guix.texi:5027
+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:3732
+#: doc/guix.texi:5035
 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:3740
+#: doc/guix.texi:5043
 #, no-wrap
 msgid ""
 "(define-module (gnu packages hello)\n"
@@ -7901,7 +10252,7 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix.texi:3759
+#: doc/guix.texi:5062
 #, no-wrap
 msgid ""
 "(define-public hello\n"
@@ -7943,277 +10294,277 @@ msgstr ""
 "    (license gpl3+)))\n"
 
 #. type: Plain text
-#: doc/guix.texi:3769
+#: doc/guix.texi:5072
 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\"}."
 
 #. type: Plain text
-#: doc/guix.texi:3773
+#: doc/guix.texi:5076
 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:3779
+#: doc/guix.texi:5082
 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})."
 
 #. type: Plain text
-#: doc/guix.texi:3781
+#: doc/guix.texi:5084
 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:3788
+#: doc/guix.texi:5091
 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:3791
+#: doc/guix.texi:5094
 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:3798
+#: doc/guix.texi:5101
 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:3799
+#: doc/guix.texi:5102
 #, no-wrap
 msgid "patches"
 msgstr "correctifs"
 
 #. type: itemize
-#: doc/guix.texi:3803
+#: doc/guix.texi:5106
 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:3805
+#: doc/guix.texi:5108
 #, no-wrap
 msgid "GNU Build System"
 msgstr "Système de construction GNU"
 
 #. type: itemize
-#: doc/guix.texi:3811
+#: doc/guix.texi:5114
 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."
 
 #. type: itemize
-#: doc/guix.texi:3817
+#: doc/guix.texi:5120
 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}."
 
 #. type: findex
-#: doc/guix.texi:3818 doc/guix.texi:3821
+#: doc/guix.texi:5121 doc/guix.texi:5124
 #, no-wrap
 msgid "quote"
 msgstr "quote"
 
 #. type: cindex
-#: doc/guix.texi:3819
+#: doc/guix.texi:5122
 #, no-wrap
 msgid "quoting"
 msgstr "quoting"
 
 #. type: findex
-#: doc/guix.texi:3820
+#: doc/guix.texi:5123
 #, no-wrap
 msgid "'"
 msgstr "'"
 
 #. type: itemize
-#: doc/guix.texi:3829
+#: doc/guix.texi:5132
 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:3835
+#: doc/guix.texi:5138
 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:3841
+#: doc/guix.texi:5144
 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>}."
 
 #. type: cindex
-#: doc/guix.texi:3842
+#: doc/guix.texi:5145
 #, no-wrap
 msgid "backquote (quasiquote)"
 msgstr "accent grave (quasiquote)"
 
 #. type: findex
-#: doc/guix.texi:3843
+#: doc/guix.texi:5146
 #, no-wrap
 msgid "`"
 msgstr "`"
 
 #. type: findex
-#: doc/guix.texi:3844
+#: doc/guix.texi:5147
 #, no-wrap
 msgid "quasiquote"
 msgstr "quasiquote"
 
 #. type: cindex
-#: doc/guix.texi:3845
+#: doc/guix.texi:5148
 #, no-wrap
 msgid "comma (unquote)"
 msgstr "virgule (unquote)"
 
 #. type: findex
-#: doc/guix.texi:3846
+#: doc/guix.texi:5149
 #, no-wrap
 msgid ","
 msgstr ","
 
 #. type: findex
-#: doc/guix.texi:3847
+#: doc/guix.texi:5150
 #, no-wrap
 msgid "unquote"
 msgstr "unquote"
 
 #. type: findex
-#: doc/guix.texi:3848
+#: doc/guix.texi:5151
 #, no-wrap
 msgid ",@@"
 msgstr ",@@"
 
 #. type: findex
-#: doc/guix.texi:3849
+#: doc/guix.texi:5152
 #, no-wrap
 msgid "unquote-splicing"
 msgstr "unquote-splicing"
 
 #. type: itemize
-#: doc/guix.texi:3855
+#: doc/guix.texi:5158
 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:3859
+#: doc/guix.texi:5162
 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})."
 
 #. type: itemize
-#: doc/guix.texi:3863
+#: doc/guix.texi:5166
 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:3866
+#: doc/guix.texi:5169
 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:3877
+#: doc/guix.texi:5180
 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:3877
+#: doc/guix.texi:5180
 #, no-wrap
 msgid "GUIX_PACKAGE_PATH"
 msgstr "GUIX_PACKAGE_PATH"
 
 #. type: Plain text
-#: doc/guix.texi:3881
+#: doc/guix.texi:5184
 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:3885
+#: doc/guix.texi:5188
 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:3891
+#: doc/guix.texi:5194
 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})."
 
 #. type: deffn
-#: doc/guix.texi:3892
+#: doc/guix.texi:5195
 #, 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:3895
+#: doc/guix.texi:5198
 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:3901
+#: doc/guix.texi:5204
 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:3907
+#: doc/guix.texi:5210
 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:3908
+#: doc/guix.texi:5211
 #, no-wrap
 msgid "{Scheme Procedure} package-cross-derivation @var{store} @"
 msgstr "{Procédure Scheme} package-cross-derivation @var{store} @"
 
 #. type: deffn
-#: doc/guix.texi:3912
+#: doc/guix.texi:5215
 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:3917
+#: doc/guix.texi:5220
 msgid "@var{target} must be a valid GNU triplet denoting the target hardware and operating system, such as @code{\"mips64el-linux-gnu\"} (@pxref{Configuration Names, GNU configuration triplets,, configure, GNU Configure and Build System})."
 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{Configuration Names, GNU configuration triplets,, configure, GNU Configure and Build System})."
 
 #. type: cindex
-#: doc/guix.texi:3919
+#: doc/guix.texi:5222
 #, no-wrap
 msgid "package transformations"
 msgstr "transformations de paquets"
 
 #. type: cindex
-#: doc/guix.texi:3920
+#: doc/guix.texi:5223
 #, no-wrap
 msgid "input rewriting"
 msgstr "réécriture d'entrées"
 
 #. type: cindex
-#: doc/guix.texi:3921
+#: doc/guix.texi:5224
 #, no-wrap
 msgid "dependency tree rewriting"
 msgstr "réécriture de l'arbre des dépendances"
 
 #. type: Plain text
-#: doc/guix.texi:3925
+#: doc/guix.texi:5228
 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:3926
+#: doc/guix.texi:5229
 #, no-wrap
 msgid "{Scheme Procedure} package-input-rewriting @var{replacements} @"
 msgstr "{Procédure Scheme} package-input-rewriting @var{replacements} @"
 
 #. type: deffn
-#: doc/guix.texi:3933
+#: doc/guix.texi:5236
 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:3936
+#: doc/guix.texi:5239
 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:3940
+#: doc/guix.texi:5243
 msgid "Consider this example:"
 msgstr "Regardez cet exemple :"
 
 #. type: example
-#: doc/guix.texi:3946
+#: doc/guix.texi:5249
 #, no-wrap
 msgid ""
 "(define libressl-instead-of-openssl\n"
@@ -8229,7 +10580,7 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix.texi:3949
+#: doc/guix.texi:5252
 #, no-wrap
 msgid ""
 "(define git-with-libressl\n"
@@ -8239,129 +10590,167 @@ msgstr ""
 "  (libressl-instead-of-openssl git))\n"
 
 #. type: Plain text
-#: doc/guix.texi:3957
+#: doc/guix.texi:5260
 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:3961
+#: doc/guix.texi:5263
+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:5264
+#, 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:5270
+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:5273
+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:5278
+#, 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:5283
+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:5287
 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:3962
+#: doc/guix.texi:5288
 #, 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:3966
+#: doc/guix.texi:5292
 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é."
 
 #. type: subsection
-#: doc/guix.texi:3975
+#: doc/guix.texi:5301
 #, no-wrap
 msgid "@code{package} Reference"
 msgstr "Référence de @code{package}"
 
 #. type: Plain text
-#: doc/guix.texi:3979
+#: doc/guix.texi:5305
 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:3980
+#: doc/guix.texi:5306
 #, no-wrap
 msgid "{Data Type} package"
 msgstr "{Type de données} package"
 
 #. type: deftp
-#: doc/guix.texi:3982
+#: doc/guix.texi:5308
 msgid "This is the data type representing a package recipe."
-msgstr "C'est le type de donnée représentant une recette de paquets"
+msgstr "C'est le type de donnée représentant une recette de paquets."
 
 #. type: table
-#: doc/guix.texi:3986
+#: doc/guix.texi:5312
 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:3987
+#: doc/guix.texi:5313
 #, no-wrap
 msgid "version"
 msgstr "version"
 
 #. type: table
-#: doc/guix.texi:3989
+#: doc/guix.texi:5315
 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:3990 doc/guix.texi:7589 doc/guix.texi:10265
-#: doc/guix.texi:10553
+#: doc/guix.texi:5316 doc/guix.texi:9103 doc/guix.texi:10847
+#: doc/guix.texi:11285
 #, no-wrap
 msgid "source"
 msgstr "source"
 
 #. type: table
-#: doc/guix.texi:3997
+#: doc/guix.texi:5323
 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}})."
 
 #. type: code{#1}
-#: doc/guix.texi:3998
+#: doc/guix.texi:5324
 #, no-wrap
 msgid "build-system"
 msgstr "build-system"
 
 #. type: table
-#: doc/guix.texi:4001
+#: doc/guix.texi:5327
 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:4002 doc/guix.texi:12176
+#: doc/guix.texi:5328 doc/guix.texi:12883
 #, no-wrap
 msgid "@code{arguments} (default: @code{'()})"
 msgstr "@code{arguments} (par défaut : @code{'()})"
 
 #. type: table
-#: doc/guix.texi:4005
+#: doc/guix.texi:5331
 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:4006
+#: doc/guix.texi:5332
 #, no-wrap
 msgid "@code{inputs} (default: @code{'()})"
 msgstr "@code{inputs} (par défaut : @code{'()})"
 
 #. type: itemx
-#: doc/guix.texi:4007
+#: doc/guix.texi:5333
 #, no-wrap
 msgid "@code{native-inputs} (default: @code{'()})"
 msgstr "@code{native-inputs} (par défaut : @code{'()})"
 
 #. type: itemx
-#: doc/guix.texi:4008
+#: doc/guix.texi:5334
 #, no-wrap
 msgid "@code{propagated-inputs} (default: @code{'()})"
 msgstr "@code{propagated-inputs} (par défaut : @code{'()})"
 
 #. type: cindex
-#: doc/guix.texi:4009
+#: doc/guix.texi:5335
 #, no-wrap
 msgid "inputs, of packages"
 msgstr "entrées, des paquets"
 
 #. type: table
-#: doc/guix.texi:4017
+#: doc/guix.texi:5343
 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:4022
+#: doc/guix.texi:5348
 #, no-wrap
 msgid ""
 "`((\"libffi\" ,libffi)\n"
@@ -8373,253 +10762,293 @@ msgstr ""
 "  (\"glib:bin\" ,glib \"bin\"))  ;la sortie \"bin\" de Glib\n"
 
 #. type: cindex
-#: doc/guix.texi:4024
+#: doc/guix.texi:5350
 #, no-wrap
 msgid "cross compilation, package dependencies"
 msgstr "compilation croisée, dépendances des paquets"
 
 #. type: table
-#: doc/guix.texi:4030
+#: doc/guix.texi:5356
 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:4035
+#: doc/guix.texi:5361
 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:4042
+#: doc/guix.texi:5368
 msgid "package-propagated-inputs"
 msgstr "package-propagated-inputs"
 
 #. type: table
-#: doc/guix.texi:4042
+#: doc/guix.texi:5368
 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)."
 
 #. type: table
-#: doc/guix.texi:4046
+#: doc/guix.texi:5372
 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}."
 
 #. type: table
-#: doc/guix.texi:4053
+#: doc/guix.texi:5379
 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}."
 
 #. type: item
-#: doc/guix.texi:4054
-#, no-wrap
-msgid "@code{self-native-input?} (default: @code{#f})"
-msgstr "@code{self-native-input?} (par défaut : @code{#f})"
-
-#. type: table
-#: doc/guix.texi:4057
-msgid "This is a Boolean field telling whether the package should use itself as a native input when cross-compiling."
-msgstr "C'est un champ booléen qui indique si le paquet devrait s'utiliser lui-même comme entrée native lors de la compilation croisée."
-
-#. type: item
-#: doc/guix.texi:4058
+#: doc/guix.texi:5380
 #, no-wrap
 msgid "@code{outputs} (default: @code{'(\"out\")})"
 msgstr "@code{outputs} (par défaut : @code{'(\"out\")})"
 
 #. type: table
-#: doc/guix.texi:4061
+#: doc/guix.texi:5383
 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:4062
+#: doc/guix.texi:5384
 #, no-wrap
 msgid "@code{native-search-paths} (default: @code{'()})"
 msgstr "@code{native-search-paths} (par défaut : @code{'()})"
 
 #. type: itemx
-#: doc/guix.texi:4063
+#: doc/guix.texi:5385
 #, no-wrap
 msgid "@code{search-paths} (default: @code{'()})"
 msgstr "@code{search-paths} (par défaut : @code{'()})"
 
 #. type: table
-#: doc/guix.texi:4066
+#: doc/guix.texi:5388
 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:4067
+#: doc/guix.texi:5389
 #, no-wrap
 msgid "@code{replacement} (default: @code{#f})"
 msgstr "@code{replacement} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:4071
+#: doc/guix.texi:5393
 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:4072 doc/guix.texi:7581
+#: doc/guix.texi:5394 doc/guix.texi:9095
 #, no-wrap
 msgid "synopsis"
 msgstr "synopsis"
 
 #. type: table
-#: doc/guix.texi:4074
+#: doc/guix.texi:5396
 msgid "A one-line description of the package."
 msgstr "Une description sur une ligne du paquet."
 
 #. type: item
-#: doc/guix.texi:4075 doc/guix.texi:7582 doc/guix.texi:22969
+#: doc/guix.texi:5397 doc/guix.texi:9096 doc/guix.texi:24846
 #, no-wrap
 msgid "description"
 msgstr "description"
 
 #. type: table
-#: doc/guix.texi:4077
+#: doc/guix.texi:5399
 msgid "A more elaborate description of the package."
 msgstr "Une description plus détaillée du paquet."
 
 #. type: code{#1}
-#: doc/guix.texi:4078
+#: doc/guix.texi:5400
 #, no-wrap
 msgid "license"
 msgstr "license"
 
 #. type: cindex
-#: doc/guix.texi:4079
+#: doc/guix.texi:5401
 #, no-wrap
 msgid "license, of packages"
 msgstr "licence, des paquets"
 
 #. type: table
-#: doc/guix.texi:4082
+#: doc/guix.texi:5404
 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:4083 doc/guix.texi:7590
+#: doc/guix.texi:5405 doc/guix.texi:9104
 #, no-wrap
 msgid "home-page"
 msgstr "home-page"
 
 #. type: table
-#: doc/guix.texi:4085
+#: doc/guix.texi:5407
 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:4086
+#: doc/guix.texi:5408
 #, no-wrap
 msgid "@code{supported-systems} (default: @var{%supported-systems})"
 msgstr "@code{supported-systems} (par défaut : @var{%supported-systems})"
 
 #. type: table
-#: doc/guix.texi:4089
+#: doc/guix.texi:5411
 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:4090
+#: doc/guix.texi:5412
 #, no-wrap
 msgid "@code{maintainers} (default: @code{'()})"
 msgstr "@code{maintainers} (par défaut : @code{'()})"
 
 #. type: table
-#: doc/guix.texi:4092
+#: doc/guix.texi:5414
 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:4093
+#: doc/guix.texi:5415
 #, 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:4097
+#: doc/guix.texi:5419
 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:5422
+#, no-wrap
+msgid "{Scheme Syntax} this-package"
+msgstr "{Syntaxe Scheme} this-package"
+
+#. type: deffn
+#: doc/guix.texi:5425
+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:5428
+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:5433
+#, no-wrap
+msgid ""
+"(package\n"
+"  (name \"guile\")\n"
+"  ;; ...\n"
+"\n"
+msgstr ""
+"(package\n"
+"  (name \"guile\")\n"
+"  ;; ...\n"
+"\n"
+
+#. type: example
+#: doc/guix.texi:5439
+#, no-wrap
+msgid ""
+"  ;; 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"
+msgstr ""
+"  ;; Lors de la compilation croisée, Guile par exemple dépend\n"
+"  ;; d'une version native de lui-même. On l'ajoute ici.\n"
+"  (native-inputs (if (%current-target-system)\n"
+"                     `((\"self\" ,this-package))\n"
+"                     '())))\n"
+
+#. type: deffn
+#: doc/guix.texi:5442
+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: subsection
-#: doc/guix.texi:4102
+#: doc/guix.texi:5445
 #, no-wrap
 msgid "@code{origin} Reference"
 msgstr "Référence de @code{origin}"
 
 #. type: Plain text
-#: doc/guix.texi:4106
+#: doc/guix.texi:5449
 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})."
 
 #. type: deftp
-#: doc/guix.texi:4107
+#: doc/guix.texi:5450
 #, no-wrap
 msgid "{Data Type} origin"
 msgstr "{Type de données} origin"
 
 #. type: deftp
-#: doc/guix.texi:4109
+#: doc/guix.texi:5452
 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:4111 doc/guix.texi:17137
+#: doc/guix.texi:5454 doc/guix.texi:18891
 #, no-wrap
 msgid "uri"
 msgstr "uri"
 
 #. type: table
-#: doc/guix.texi:4116
+#: doc/guix.texi:5459
 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: code{#1}
-#: doc/guix.texi:4117
+#: doc/guix.texi:5460
 #, no-wrap
 msgid "method"
 msgstr "method"
 
 #. type: table
-#: doc/guix.texi:4119
+#: doc/guix.texi:5462
 msgid "A procedure that handles the URI."
 msgstr "Un procédure qui gère l'URI."
 
 #. type: table
-#: doc/guix.texi:4121
+#: doc/guix.texi:5464
 msgid "Examples include:"
 msgstr "Quelques exemples :"
 
 #. type: item
-#: doc/guix.texi:4123
+#: doc/guix.texi:5466
 #, no-wrap
 msgid "@var{url-fetch} from @code{(guix download)}"
 msgstr "@var{url-fetch} de @code{(guix download)}"
 
 #. type: table
-#: doc/guix.texi:4126
+#: doc/guix.texi:5469
 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} ;"
 
 #. type: vindex
-#: doc/guix.texi:4127 doc/guix.texi:6875
+#: doc/guix.texi:5470 doc/guix.texi:8362
 #, no-wrap
 msgid "git-fetch"
 msgstr "git-fetch"
 
 #. type: item
-#: doc/guix.texi:4128
+#: doc/guix.texi:5471
 #, no-wrap
 msgid "@var{git-fetch} from @code{(guix git-download)}"
 msgstr "@var{git-fetch} de @code{(guix git-download)}"
 
 #. type: table
-#: doc/guix.texi:4132
+#: doc/guix.texi:5475
 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:4137
+#: doc/guix.texi:5480
 #, no-wrap
 msgid ""
 "(git-reference\n"
@@ -8631,1252 +11060,1370 @@ msgstr ""
 "  (commit \"v4.1.5.1\"))\n"
 
 #. type: code{#1}
-#: doc/guix.texi:4140
+#: doc/guix.texi:5483
 #, no-wrap
 msgid "sha256"
 msgstr "sha256"
 
 #. type: table
-#: doc/guix.texi:4144
+#: doc/guix.texi:5487
 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."
 
 #. type: table
-#: doc/guix.texi:4148
+#: doc/guix.texi:5491
 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:4149
+#: doc/guix.texi:5492
 #, no-wrap
 msgid "@code{file-name} (default: @code{#f})"
 msgstr "@code{file-name} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:4155
+#: doc/guix.texi:5498
 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:4156
+#: doc/guix.texi:5499
 #, no-wrap
 msgid "@code{patches} (default: @code{'()})"
 msgstr "@code{patches} (par défaut : @code{'()})"
 
 #. type: table
-#: doc/guix.texi:4159
+#: doc/guix.texi:5502
 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:4163
+#: doc/guix.texi:5506
 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:4164
+#: doc/guix.texi:5507
 #, no-wrap
 msgid "@code{snippet} (default: @code{#f})"
 msgstr "@code{snippet} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:4168
+#: doc/guix.texi:5511
 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:4169
+#: doc/guix.texi:5512
 #, no-wrap
 msgid "@code{patch-flags} (default: @code{'(\"-p1\")})"
 msgstr "@code{patch-flags} (par défaut : @code{'(\"-p1\")})"
 
 #. type: table
-#: doc/guix.texi:4172
+#: doc/guix.texi:5515
 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:4173
+#: doc/guix.texi:5516
 #, no-wrap
 msgid "@code{patch-inputs} (default: @code{#f})"
 msgstr "@code{patch-inputs} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:4177
+#: doc/guix.texi:5520
 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:4178
+#: doc/guix.texi:5521
 #, no-wrap
 msgid "@code{modules} (default: @code{'()})"
 msgstr "@code{modules} (par défaut : @code{'()})"
 
 #. type: table
-#: doc/guix.texi:4181
+#: doc/guix.texi:5524
 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:4182
+#: doc/guix.texi:5525
 #, no-wrap
 msgid "@code{patch-guile} (default: @code{#f})"
 msgstr "@code{patch-guile} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:4185
+#: doc/guix.texi:5528
 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: cindex
-#: doc/guix.texi:4192
+#: doc/guix.texi:5535
 #, no-wrap
 msgid "build system"
 msgstr "système de construction"
 
 #. type: Plain text
-#: doc/guix.texi:4197
+#: doc/guix.texi:5540
 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:4201
+#: doc/guix.texi:5544
 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:4202
+#: doc/guix.texi:5545
 #, no-wrap
 msgid "bag (low-level package representation)"
 msgstr "sac (représentation à bas-niveau des paquets)"
 
 #. type: Plain text
-#: doc/guix.texi:4209
+#: doc/guix.texi:5552
 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})."
 
 #. type: Plain text
-#: doc/guix.texi:4217
+#: doc/guix.texi:5560
 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:4221
+#: doc/guix.texi:5564
 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)}."
 
 #. type: defvr
-#: doc/guix.texi:4222
+#: doc/guix.texi:5565
 #, no-wrap
 msgid "{Scheme Variable} gnu-build-system"
 msgstr "{Variable Scheme} gnu-build-system"
 
 #. type: defvr
-#: doc/guix.texi:4226
+#: doc/guix.texi:5569
 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})."
 
 #. type: cindex
-#: doc/guix.texi:4227
+#: doc/guix.texi:5570 doc/guix.texi:6232
 #, no-wrap
 msgid "build phases"
 msgstr "phases de construction"
 
 #. type: defvr
-#: doc/guix.texi:4234
+#: doc/guix.texi:5577
 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:4236
+#: doc/guix.texi:5579
 #, no-wrap
 msgid "unpack"
 msgstr "unpack"
 
 #. type: table
-#: doc/guix.texi:4240
+#: doc/guix.texi:5583
 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:4241
+#: doc/guix.texi:5584
 #, no-wrap
 msgid "patch-source-shebangs"
 msgstr "patch-source-shebangs"
 
 #. type: table
-#: doc/guix.texi:4245
+#: doc/guix.texi:5588
 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:4246 doc/guix.texi:4803
+#: doc/guix.texi:5589 doc/guix.texi:6190 doc/guix.texi:6238
 #, no-wrap
 msgid "configure"
 msgstr "configure"
 
 #. type: table
-#: doc/guix.texi:4250
+#: doc/guix.texi:5593
 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}."
 
 #. type: item
-#: doc/guix.texi:4251 doc/guix.texi:4440 doc/guix.texi:4808
-#: doc/guix.texi:22379
+#: doc/guix.texi:5594 doc/guix.texi:5783 doc/guix.texi:6195 doc/guix.texi:6242
+#: doc/guix.texi:24252
 #, no-wrap
 msgid "build"
 msgstr "build"
 
 #. type: table
-#: doc/guix.texi:4255
+#: doc/guix.texi:5598
 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:4256 doc/guix.texi:4450 doc/guix.texi:4812
+#: doc/guix.texi:5599 doc/guix.texi:5793 doc/guix.texi:6199
 #, no-wrap
 msgid "check"
 msgstr "check"
 
 #. type: table
-#: doc/guix.texi:4261
+#: doc/guix.texi:5604
 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:4262 doc/guix.texi:4458 doc/guix.texi:4816
+#: doc/guix.texi:5605 doc/guix.texi:5801 doc/guix.texi:6203 doc/guix.texi:6246
 #, no-wrap
 msgid "install"
 msgstr "install"
 
 #. type: table
-#: doc/guix.texi:4264
+#: doc/guix.texi:5607
 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:4265
+#: doc/guix.texi:5608
 #, no-wrap
 msgid "patch-shebangs"
 msgstr "patch-shebangs"
 
 #. type: table
-#: doc/guix.texi:4267
+#: doc/guix.texi:5610
 msgid "Patch shebangs on the installed executable files."
 msgstr "Corrige les shebangs des fichiers exécutables installés."
 
 #. type: item
-#: doc/guix.texi:4268
+#: doc/guix.texi:5611
 #, no-wrap
 msgid "strip"
 msgstr "strip"
 
 #. type: table
-#: doc/guix.texi:4272
+#: doc/guix.texi:5615
 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:4274
+#: doc/guix.texi:5617
 #, no-wrap
 msgid "%standard-phases"
 msgstr "%standard-phases"
 
 #. type: defvr
-#: doc/guix.texi:4279
+#: doc/guix.texi:5622
 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:4282
+#: doc/guix.texi:5625
 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:4285
+#: doc/guix.texi:5628
 #, 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:4289
+#: doc/guix.texi:5632
 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}."
 
 #. type: defvr
-#: doc/guix.texi:4296
+#: doc/guix.texi:5639
 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:4303
+#: doc/guix.texi:5646
 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."
 
 #. type: defvr
-#: doc/guix.texi:4304
+#: doc/guix.texi:5647
 #, no-wrap
 msgid "{Scheme Variable} ant-build-system"
 msgstr "{Variable Scheme} ant-build-system"
 
 #. type: defvr
-#: doc/guix.texi:4308
+#: doc/guix.texi:5651
 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{http://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{http://ant.apache.org/, l'outil de construction Ant}."
 
 #. type: defvr
-#: doc/guix.texi:4313
+#: doc/guix.texi:5656
 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:4319
+#: doc/guix.texi:5662
 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:4327
+#: doc/guix.texi:5670
 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:4331
+#: doc/guix.texi:5674
 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:4334
+#: doc/guix.texi:5677
 #, no-wrap
 msgid "{Scheme Variable} android-ndk-build-system"
 msgstr "{Variable Scheme} android-ndk-build-system"
 
 #. type: cindex
-#: doc/guix.texi:4335
+#: doc/guix.texi:5678
 #, no-wrap
 msgid "Android distribution"
 msgstr "Distribution android"
 
 #. type: cindex
-#: doc/guix.texi:4336
+#: doc/guix.texi:5679
 #, no-wrap
 msgid "Android NDK build system"
 msgstr "système de construction Android NDK"
 
 #. type: defvr
-#: doc/guix.texi:4340
+#: doc/guix.texi:5683
 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:4344
+#: doc/guix.texi:5687
 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 »."
 
 #. type: defvr
-#: doc/guix.texi:4347
+#: doc/guix.texi:5690
 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:4350
+#: doc/guix.texi:5693
 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:4353
+#: doc/guix.texi:5696
 #, no-wrap
 msgid "{Scheme Variable} asdf-build-system/source"
 msgstr "{Variable Scheme} asdf-build-system/source"
 
 #. type: defvrx
-#: doc/guix.texi:4354
+#: doc/guix.texi:5697
 #, no-wrap
 msgid "{Scheme Variable} asdf-build-system/sbcl"
 msgstr "{Variable Scheme} asdf-build-system/sbcl"
 
 #. type: defvrx
-#: doc/guix.texi:4355
+#: doc/guix.texi:5698
 #, no-wrap
 msgid "{Scheme Variable} asdf-build-system/ecl"
 msgstr "{Variable Scheme} asdf-build-system/ecl"
 
 #. type: defvr
-#: doc/guix.texi:4361
+#: doc/guix.texi:5704
 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."
 
 #. type: defvr
-#: doc/guix.texi:4368
+#: doc/guix.texi:5711
 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:4372
+#: doc/guix.texi:5715
 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:4376
+#: doc/guix.texi:5719
 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:4381
+#: doc/guix.texi:5724
 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:4388
+#: doc/guix.texi:5731
 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:4397
+#: doc/guix.texi:5740
 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."
 
 #. type: defvr
-#: doc/guix.texi:4401
+#: doc/guix.texi:5744
 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:4404
+#: doc/guix.texi:5747
 #, no-wrap
 msgid "{Scheme Variable} cargo-build-system"
 msgstr "{Variable Scheme} cargo-build-system"
 
 #. type: cindex
-#: doc/guix.texi:4405
+#: doc/guix.texi:5748
 #, no-wrap
 msgid "Rust programming language"
 msgstr "Langage de programmation Rust"
 
 #. type: cindex
-#: doc/guix.texi:4406
+#: doc/guix.texi:5749
 #, no-wrap
 msgid "Cargo (Rust build system)"
 msgstr "Cargo (système de construction Rust)"
 
 #. type: defvr
-#: doc/guix.texi:4410
+#: doc/guix.texi:5753
 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:4415
+#: doc/guix.texi:5758
 msgid "In its @code{configure} phase, this build system replaces dependencies specified in the @file{Carto.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 des paquets Guix.  La phase @code{install} installe les binaires et installe aussi le code source et le fichier @file{Cargo.toml}."
 
 #. type: cindex
-#: doc/guix.texi:4417
+#: doc/guix.texi:5760
 #, no-wrap
 msgid "Clojure (programming language)"
 msgstr "Clojure (langage de programmation)"
 
 #. type: cindex
-#: doc/guix.texi:4418
+#: doc/guix.texi:5761
 #, no-wrap
 msgid "simple Clojure build system"
 msgstr "système de construction Clojure simple"
 
 #. type: defvr
-#: doc/guix.texi:4419
+#: doc/guix.texi:5762
 #, no-wrap
 msgid "{Scheme Variable} clojure-build-system"
 msgstr "{Variable Scheme} clojure-build-system"
 
 #. type: defvr
-#: doc/guix.texi:4424
+#: doc/guix.texi:5767
 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:4428
+#: doc/guix.texi:5771
 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:4434
+#: doc/guix.texi:5777
 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:4437
+#: doc/guix.texi:5780
 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 :"
 
 #. type: table
-#: doc/guix.texi:4449
+#: doc/guix.texi:5792
 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:4457
+#: doc/guix.texi:5800
 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:4460
+#: doc/guix.texi:5803
 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:4463
+#: doc/guix.texi:5806
 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:4466
+#: doc/guix.texi:5809
 #, no-wrap
 msgid "install-doc"
 msgstr "install-doc"
 
 #. type: table
-#: doc/guix.texi:4471
+#: doc/guix.texi:5814
 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."
 
 #. type: defvr
-#: doc/guix.texi:4474
+#: doc/guix.texi:5817
 #, no-wrap
 msgid "{Scheme Variable} cmake-build-system"
 msgstr "{Variable Scheme} cmake-build-system"
 
 #. type: defvr
-#: doc/guix.texi:4478
+#: doc/guix.texi:5821
 msgid "This variable is exported by @code{(guix build-system cmake)}.  It implements the build procedure for packages using the @url{http://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{http://www.cmake.org, outil de construction CMake}."
 
 #. type: defvr
-#: doc/guix.texi:4482
+#: doc/guix.texi:5825
 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:4489
+#: doc/guix.texi:5832
 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:4491
+#: doc/guix.texi:5834
+#, no-wrap
+msgid "{Scheme Variable} dune-build-system"
+msgstr "{Variable Scheme} dune-build-system"
+
+#. type: defvr
+#: doc/guix.texi:5841
+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:5845
+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:5849
+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:5853
+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:5858
+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:5860
 #, no-wrap
 msgid "{Scheme Variable} go-build-system"
 msgstr "{Variable Scheme} go-build-system"
 
 #. type: defvr
-#: doc/guix.texi:4496
+#: doc/guix.texi:5865
 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:4507
+#: doc/guix.texi:5876
 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:4512
-msgid "Packages that provide Go libraries should be installed along with their source code.  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 être installées avec leur code source.  La clef @code{#:install-soruce?}, 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."
+#: doc/guix.texi:5881
+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:4514
+#: doc/guix.texi:5883
 #, no-wrap
 msgid "{Scheme Variable} glib-or-gtk-build-system"
 msgstr "{Variable Scheme} glib-or-gtk-build-system"
 
 #. type: defvr
-#: doc/guix.texi:4517
+#: doc/guix.texi:5886
 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:4520
+#: doc/guix.texi:5889
 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} :"
 
 #. type: item
-#: doc/guix.texi:4522 doc/guix.texi:4832
+#: doc/guix.texi:5891 doc/guix.texi:6219
 #, no-wrap
 msgid "glib-or-gtk-wrap"
 msgstr "glib-or-gtk-wrap"
 
 #. type: table
-#: doc/guix.texi:4529
+#: doc/guix.texi:5898
 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}."
 
 #. type: table
-#: doc/guix.texi:4536
+#: doc/guix.texi:5905
 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:4537 doc/guix.texi:4836
+#: doc/guix.texi:5906 doc/guix.texi:6223
 #, no-wrap
 msgid "glib-or-gtk-compile-schemas"
 msgstr "glib-or-gtk-compile-schemas"
 
 #. type: table
-#: doc/guix.texi:4545
+#: doc/guix.texi:5914
 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:4548
+#: doc/guix.texi:5917
 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:4550
+#: doc/guix.texi:5919
 #, no-wrap
 msgid "{Scheme Variable} guile-build-system"
 msgstr "{Variable Scheme} guile-build-system"
 
 #. type: defvr
-#: doc/guix.texi:4557
+#: doc/guix.texi:5926
 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:4560
+#: doc/guix.texi:5929
 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}."
 
 #. type: defvr
-#: doc/guix.texi:4563
+#: doc/guix.texi:5932
 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:4565
+#: doc/guix.texi:5934
 #, no-wrap
 msgid "{Scheme Variable} minify-build-system"
 msgstr "{Variable Scheme} minify-build-system"
 
 #. type: defvr
-#: doc/guix.texi:4568
+#: doc/guix.texi:5937
 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:4574
+#: doc/guix.texi:5943
 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:4578
+#: doc/guix.texi:5947
 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:4580
+#: doc/guix.texi:5949
 #, no-wrap
 msgid "{Scheme Variable} ocaml-build-system"
 msgstr "{Variable Scheme} ocaml-build-system"
 
 #. type: defvr
-#: doc/guix.texi:4586
+#: doc/guix.texi:5955
 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:4596
+#: doc/guix.texi:5965
 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:4601
+#: doc/guix.texi:5970
 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:4605
+#: doc/guix.texi:5974
 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:4613
+#: doc/guix.texi:5982
 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:4621
+#: doc/guix.texi:5990
 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."
 
 #. type: defvr
-#: doc/guix.texi:4623
+#: doc/guix.texi:5992
 #, no-wrap
 msgid "{Scheme Variable} python-build-system"
 msgstr "{Variable Scheme} python-build-system"
 
 #. type: defvr
-#: doc/guix.texi:4628
+#: doc/guix.texi:5997
 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:4632
+#: doc/guix.texi:6001
 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."
 
 #. type: defvr
-#: doc/guix.texi:4638
+#: doc/guix.texi:6007
 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:4643
+#: doc/guix.texi:6012
 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}."
 
 #. type: defvr
-#: doc/guix.texi:4645
+#: doc/guix.texi:6014
 #, no-wrap
 msgid "{Scheme Variable} perl-build-system"
 msgstr "{Variable Scheme} perl-build-system"
 
 #. type: defvr
-#: doc/guix.texi:4657
+#: doc/guix.texi:6026
 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:4661
+#: doc/guix.texi:6030
 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:4663
+#: doc/guix.texi:6032
 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:4665
+#: doc/guix.texi:6034
 #, no-wrap
 msgid "{Scheme Variable} r-build-system"
 msgstr "{Variable Scheme} r-build-system"
 
 #. type: defvr
-#: doc/guix.texi:4673
+#: doc/guix.texi:6042
 msgid "This variable is exported by @code{(guix build-system r)}.  It implements the build procedure used by @uref{http://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{http://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}."
 
 #. type: defvr
-#: doc/guix.texi:4675
+#: doc/guix.texi:6044
+#, no-wrap
+msgid "{Scheme Variable} rakudo-build-system"
+msgstr "{Variable Scheme} rakudo-build-system"
+
+#. type: defvr
+#: doc/guix.texi:6052
+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{}/NAME-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?}."
+
+#. type: defvr
+#: doc/guix.texi:6060
+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:6062
 #, no-wrap
 msgid "{Scheme Variable} texlive-build-system"
 msgstr "{Variable Scheme} texlive-build-system"
 
 #. type: defvr
-#: doc/guix.texi:4680
+#: doc/guix.texi:6067
 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."
 
 #. type: defvr
-#: doc/guix.texi:4689
+#: doc/guix.texi:6076
 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:4692
+#: doc/guix.texi:6079
 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:4694
+#: doc/guix.texi:6081
 #, no-wrap
 msgid "{Scheme Variable} ruby-build-system"
 msgstr "{Variable Scheme} ruby-build-system"
 
 #. type: defvr
-#: doc/guix.texi:4698
+#: doc/guix.texi:6085
 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:4706
+#: doc/guix.texi:6093
 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 développeurs Ruby quand ils 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:4710
+#: doc/guix.texi:6097
 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:4712
+#: doc/guix.texi:6099
 #, no-wrap
 msgid "{Scheme Variable} waf-build-system"
 msgstr "{Variable Scheme} waf-build-system"
 
 #. type: defvr
-#: doc/guix.texi:4718
+#: doc/guix.texi:6105
 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:4722
+#: doc/guix.texi:6109
 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:4724
+#: doc/guix.texi:6111
 #, no-wrap
 msgid "{Scheme Variable} scons-build-system"
 msgstr "{Variable Scheme} scons-build-system"
 
 #. type: defvr
-#: doc/guix.texi:4730
+#: doc/guix.texi:6117
 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:4735
+#: doc/guix.texi:6122
 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}."
 
 #. type: defvr
-#: doc/guix.texi:4737
+#: doc/guix.texi:6124
 #, no-wrap
 msgid "{Scheme Variable} haskell-build-system"
 msgstr "{Variable Scheme} haskell-build-system"
 
 #. type: defvr
-#: doc/guix.texi:4751
+#: doc/guix.texi:6138
 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:4754
+#: doc/guix.texi:6141
 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:4756
+#: doc/guix.texi:6143
 #, no-wrap
 msgid "{Scheme Variable} dub-build-system"
 msgstr "{Variable Scheme} dub-build-system"
 
 #. type: defvr
-#: doc/guix.texi:4761
+#: doc/guix.texi:6148
 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:4764
+#: doc/guix.texi:6151
 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:4766
+#: doc/guix.texi:6153
 #, no-wrap
 msgid "{Scheme Variable} emacs-build-system"
 msgstr "{Variable Scheme} emacs-build-system"
 
 #. type: defvr
-#: doc/guix.texi:4770
+#: doc/guix.texi:6157
 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:4777
+#: doc/guix.texi:6164
 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}."
 
 #. type: defvr
-#: doc/guix.texi:4779
+#: doc/guix.texi:6166
 #, no-wrap
 msgid "{Scheme Variable} font-build-system"
 msgstr "{Variable Scheme} font-build-system"
 
 #. type: defvr
-#: doc/guix.texi:4785
-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."
+#: doc/guix.texi:6172
+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:4787
+#: doc/guix.texi:6174
 #, no-wrap
 msgid "{Scheme Variable} meson-build-system"
 msgstr "{Variable Scheme} meson-build-system"
 
 #. type: defvr
-#: doc/guix.texi:4791
+#: doc/guix.texi:6178
 msgid "This variable is exported by @code{(guix build-system meson)}.  It implements the build procedure for packages that use @url{http://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{http://mesonbuild.com, Meson} comme système de construction."
 
 #. type: defvr
-#: doc/guix.texi:4797
+#: doc/guix.texi:6184
 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:4800
+#: doc/guix.texi:6187
 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 :"
 
 #. type: table
-#: doc/guix.texi:4807
+#: doc/guix.texi:6194
 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}."
 
 #. type: table
-#: doc/guix.texi:4811
+#: doc/guix.texi:6198
 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:4815
+#: doc/guix.texi:6202
 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:4818
+#: doc/guix.texi:6205
 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:4821
+#: doc/guix.texi:6208
 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:4824
+#: doc/guix.texi:6211
 #, no-wrap
 msgid "fix-runpath"
 msgstr "fix-runpath"
 
 #. type: table
-#: doc/guix.texi:4831
+#: doc/guix.texi:6218
 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:4835 doc/guix.texi:4839
+#: doc/guix.texi:6222 doc/guix.texi:6226
 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:6229
+#, no-wrap
+msgid "{Scheme Variable} linux-module-build-system"
+msgstr "{Variable Scheme} linux-module-build-system"
+
+#. type: defvr
+#: doc/guix.texi:6231
+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."
+
+#. type: defvr
+#: doc/guix.texi:6235
+msgid "This build system is an extension of @var{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:6241
+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:6245
+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:6249
+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:6254
+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)."
+
 #. type: Plain text
-#: doc/guix.texi:4846
+#: doc/guix.texi:6260
 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:4847
+#: doc/guix.texi:6261
 #, no-wrap
 msgid "{Scheme Variable} trivial-build-system"
 msgstr "{Variable Scheme} trivial-build-system"
 
 #. type: defvr
-#: doc/guix.texi:4849
+#: doc/guix.texi:6263
 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:4854
+#: doc/guix.texi:6268
 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:4860
+#: doc/guix.texi:6274
 #, no-wrap
 msgid "store items"
 msgstr "éléments du dépôt"
 
 #. type: cindex
-#: doc/guix.texi:4861
+#: doc/guix.texi:6275
 #, no-wrap
 msgid "store paths"
 msgstr "chemins dans le dépôt"
 
 #. type: Plain text
-#: doc/guix.texi:4872
+#: doc/guix.texi:6286
 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:4877
+#: doc/guix.texi:6291
 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:4882
+#: doc/guix.texi:6296
 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:4886
+#: doc/guix.texi:6300
 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:4893
+#: doc/guix.texi:6307
 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}."
 
 #. type: defvr
-#: doc/guix.texi:4894
+#: doc/guix.texi:6308
 #, no-wrap
 msgid "{Environment Variable} GUIX_DAEMON_SOCKET"
 msgstr "{Variable d'environnement} GUIX_DAEMON_SOCKET"
 
 #. type: defvr
-#: doc/guix.texi:4899
+#: doc/guix.texi:6313
 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:4901 doc/guix.texi:16813
+#: doc/guix.texi:6315 doc/guix.texi:18567
 #, no-wrap
 msgid "file"
 msgstr "file"
 
 #. type: itemx
-#: doc/guix.texi:4902
+#: doc/guix.texi:6316
 #, no-wrap
 msgid "unix"
 msgstr "unix"
 
 #. type: table
-#: doc/guix.texi:4906
+#: doc/guix.texi:6320
 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:4907
+#: doc/guix.texi:6321
 #, no-wrap
 msgid "guix"
 msgstr "guix"
 
 #. type: table
-#: doc/guix.texi:4915
+#: doc/guix.texi:6329
 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:4918
+#: doc/guix.texi:6332
 #, no-wrap
 msgid "guix://master.guix.example.org:1234\n"
 msgstr "guix://master.guix.example.org:1234\n"
 
 #. type: table
-#: doc/guix.texi:4923
+#: doc/guix.texi:6337
 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:4927
+#: doc/guix.texi:6341
 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}})."
 
 #. type: item
-#: doc/guix.texi:4928
+#: doc/guix.texi:6342
 #, no-wrap
 msgid "ssh"
 msgstr "ssh"
 
 #. type: cindex
-#: doc/guix.texi:4929
+#: doc/guix.texi:6343
 #, no-wrap
 msgid "SSH access to build daemons"
 msgstr "accès SSH au démon de construction"
 
 #. type: table
-#: doc/guix.texi:4933
+#: doc/guix.texi:6347
 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}).}."
+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 :"
 
 #. type: example
-#: doc/guix.texi:4936
+#: doc/guix.texi:6350
 #, no-wrap
 msgid "ssh://charlie@@guix.example.org:22\n"
 msgstr "ssh://charlie@@guix.example.org:22\n"
 
 #. type: table
-#: doc/guix.texi:4940
+#: doc/guix.texi:6354
 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:4943
+#: doc/guix.texi:6357
 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:4950
+#: doc/guix.texi:6364
 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:4953
+#: doc/guix.texi:6367
 #, 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:4958
+#: doc/guix.texi:6372
 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:4961
+#: doc/guix.texi:6375
 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}."
 
 #. type: deffn
-#: doc/guix.texi:4963
+#: doc/guix.texi:6377
 #, no-wrap
 msgid "{Scheme Procedure} close-connection @var{server}"
 msgstr "{Procédure Scheme} close-connection @var{server}"
 
 #. type: deffn
-#: doc/guix.texi:4965
+#: doc/guix.texi:6379
 msgid "Close the connection to @var{server}."
 msgstr "Ferme la connexion au @var{serveur}."
 
 #. type: defvr
-#: doc/guix.texi:4967
+#: doc/guix.texi:6381
 #, no-wrap
 msgid "{Scheme Variable} current-build-output-port"
 msgstr "{Variable Scheme} current-build-output-port"
 
 #. type: defvr
-#: doc/guix.texi:4970
+#: doc/guix.texi:6384
 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:4974
+#: doc/guix.texi:6388
 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:4975
+#: doc/guix.texi:6389
 #, 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:4976
+#: doc/guix.texi:6390
 #, no-wrap
 msgid "invalid store items"
 msgstr "éléments du dépôt invalides"
 
 #. type: deffn
-#: doc/guix.texi:4981
+#: doc/guix.texi:6395
 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)."
 
 #. type: deffn
-#: doc/guix.texi:4984
-msgid "A @code{&nix-protocol-error} condition is raised if @var{path} is not prefixed by the store directory (@file{/gnu/store})."
-msgstr "Une condition @code{&nix-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})."
+#: doc/guix.texi:6398
+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:4986
+#: doc/guix.texi:6400
 #, 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:4990
+#: doc/guix.texi:6404
 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:4992
+#: doc/guix.texi:6406
 #, no-wrap
 msgid "{Scheme Procedure} build-derivations @var{server} @var{derivations}"
 msgstr "{Procédure Scheme} build-derivations @var{server} @var{derivations}"
 
 #. type: deffn
-#: doc/guix.texi:4996
+#: doc/guix.texi:6410
 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."
 
 #. type: Plain text
-#: doc/guix.texi:5002
+#: doc/guix.texi:6416
 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:5005
+#: doc/guix.texi:6419
 msgid "This section is currently incomplete."
 msgstr "Cette section est actuellement incomplète."
 
 #. type: cindex
-#: doc/guix.texi:5009
+#: doc/guix.texi:6423
 #, no-wrap
 msgid "derivations"
 msgstr "dérivations"
 
 #. type: Plain text
-#: doc/guix.texi:5013
+#: doc/guix.texi:6427
 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:5018
+#: doc/guix.texi:6432
 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:6434
+#, no-wrap
+msgid "build-time dependencies"
+msgstr "dépendances à la construction"
+
+#. type: cindex
+#: doc/guix.texi:6435
+#, no-wrap
+msgid "dependencies, build-time"
+msgstr "construction, dépendances"
+
 #. type: itemize
-#: doc/guix.texi:5022
-msgid "The inputs of the derivations, which may be other derivations or plain files in the store (patches, build scripts, etc.)"
-msgstr "Les entrées de la dérivation, qui peuvent être d'autres dérivations ou des fichiers dans le dépôt (correctifs, scripts de construction, etc)."
+#: doc/guix.texi:6439
+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)."
 
 #. type: itemize
-#: doc/guix.texi:5025
+#: doc/guix.texi:6442
 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:5029
+#: doc/guix.texi:6446
 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:5032
+#: doc/guix.texi:6449
 msgid "A list of environment variables to be defined."
 msgstr "Une liste de variables d'environnement à définir."
 
 #. type: cindex
-#: doc/guix.texi:5035
+#: doc/guix.texi:6452
 #, no-wrap
 msgid "derivation path"
 msgstr "chemin de dérivation"
 
 #. type: Plain text
-#: doc/guix.texi:5043
+#: doc/guix.texi:6460
 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})."
 
 #. type: cindex
-#: doc/guix.texi:5044
+#: doc/guix.texi:6461
 #, no-wrap
 msgid "fixed-output derivations"
 msgstr "dérivations à sortie fixe"
 
 #. type: Plain text
-#: doc/guix.texi:5051
+#: doc/guix.texi:6468
 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:6469 doc/guix.texi:9456
+#, no-wrap
+msgid "references"
+msgstr "references"
+
+#. type: cindex
+#: doc/guix.texi:6470
+#, no-wrap
+msgid "run-time dependencies"
+msgstr "dépendances à l'exécution"
+
+#. type: cindex
+#: doc/guix.texi:6471
+#, no-wrap
+msgid "dependencies, run-time"
+msgstr "exécution, dépendances"
+
 #. type: Plain text
-#: doc/guix.texi:5056
+#: doc/guix.texi:6478
+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:6483
 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:5057
+#: doc/guix.texi:6484
 #, 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:5066
+#: doc/guix.texi:6493
 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"
@@ -9888,47 +12435,47 @@ msgstr ""
 "Construit une dérivation avec les arguments donnés et renvoie l'objet @code{<derivation>} obtenu."
 
 #. type: deffn
-#: doc/guix.texi:5073
+#: doc/guix.texi:6500
 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:5078
+#: doc/guix.texi:6505
 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:5083
+#: doc/guix.texi:6510
 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:5090
+#: doc/guix.texi:6517
 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:5095
+#: doc/guix.texi:6522
 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:5100
+#: doc/guix.texi:6527
 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:5103
+#: doc/guix.texi:6530
 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:5109
+#: doc/guix.texi:6536
 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:5114
+#: doc/guix.texi:6541
 #, no-wrap
 msgid ""
 "(use-modules (guix utils)\n"
@@ -9942,7 +12489,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:5123
+#: doc/guix.texi:6550
 #, no-wrap
 msgid ""
 "(let ((builder   ; add the Bash script to the store\n"
@@ -9964,23 +12511,23 @@ msgstr ""
 "@result{} #<derivation /gnu/store/@dots{}-foo.drv => /gnu/store/@dots{}-foo>\n"
 
 #. type: Plain text
-#: doc/guix.texi:5130
+#: doc/guix.texi:6557
 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:5135
+#: doc/guix.texi:6562
 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:5136
+#: doc/guix.texi:6563
 #, no-wrap
 msgid "{Scheme Procedure} build-expression->derivation @var{store} @"
 msgstr "{Procédure Scheme} build-expression->derivation @var{store} @"
 
 #. type: deffn
-#: doc/guix.texi:5152
+#: doc/guix.texi:6579
 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"
@@ -9993,27 +12540,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:5160
+#: doc/guix.texi:6587
 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:5164
+#: doc/guix.texi:6591
 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:5169
+#: doc/guix.texi:6596
 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:5174
+#: doc/guix.texi:6601
 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:5182
+#: doc/guix.texi:6609
 #, no-wrap
 msgid ""
 "(let ((builder '(let ((out (assoc-ref %outputs \"out\")))\n"
@@ -10033,51 +12580,51 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:5184
+#: doc/guix.texi:6611
 #, 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:5190
+#: doc/guix.texi:6617
 #, no-wrap
 msgid "monad"
 msgstr "monad"
 
 #. type: Plain text
-#: doc/guix.texi:5196
+#: doc/guix.texi:6623
 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:5202
+#: doc/guix.texi:6629
 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:5203
+#: doc/guix.texi:6630
 #, no-wrap
 msgid "monadic values"
 msgstr "valeurs monadiques"
 
 #. type: cindex
-#: doc/guix.texi:5204
+#: doc/guix.texi:6631
 #, no-wrap
 msgid "monadic functions"
 msgstr "fonctions monadiques"
 
 #. type: Plain text
-#: doc/guix.texi:5214
+#: doc/guix.texi:6641
 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:5216
+#: doc/guix.texi:6643
 msgid "Consider this ``normal'' procedure:"
 msgstr "Considérez cette procédure « normale » :"
 
 #. type: example
-#: doc/guix.texi:5225
+#: doc/guix.texi:6652
 #, no-wrap
 msgid ""
 "(define (sh-symlink store)\n"
@@ -10097,12 +12644,12 @@ msgstr ""
 "                                  `(symlink ,sh %output))))\n"
 
 #. type: Plain text
-#: doc/guix.texi:5229
+#: doc/guix.texi:6656
 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:5237
+#: doc/guix.texi:6664
 #, no-wrap
 msgid ""
 "(define (sh-symlink)\n"
@@ -10120,17 +12667,17 @@ msgstr ""
 "                                 #$output))))\n"
 
 #. type: Plain text
-#: doc/guix.texi:5244
+#: doc/guix.texi:6671
 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:5248
+#: doc/guix.texi:6675
 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:5254
+#: doc/guix.texi:6681
 #, no-wrap
 msgid ""
 "(define (sh-symlink)\n"
@@ -10144,12 +12691,12 @@ msgstr ""
 "                               #$output)))\n"
 
 #. type: Plain text
-#: doc/guix.texi:5263
+#: doc/guix.texi:6690
 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.  En anglais on pourrait dire « you exit a monad like you exit a building on fire: by running »@footnote{NdT : « on sort d'une monade comme d'un immeuble en flamme, en courant ».  Le jeu de mot est perdu à la traduction : courir et lancer utilisent le même verbe @i{run} en anglais.}. 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:5267
+#: doc/guix.texi:6694
 #, no-wrap
 msgid ""
 "(run-with-store (open-connection) (sh-symlink))\n"
@@ -10159,12 +12706,12 @@ msgstr ""
 "@result{} /gnu/store/...-sh-symlink\n"
 
 #. type: Plain text
-#: doc/guix.texi:5273
+#: doc/guix.texi:6700
 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:5277
+#: doc/guix.texi:6704
 #, no-wrap
 msgid ""
 "scheme@@(guile-user)> ,run-in-store (package->derivation hello)\n"
@@ -10174,12 +12721,12 @@ msgstr ""
 "$1 = #<derivation /gnu/store/@dots{}-hello-2.9.drv => @dots{}>\n"
 
 #. type: Plain text
-#: doc/guix.texi:5281
+#: doc/guix.texi:6708
 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:5290
+#: doc/guix.texi:6717
 #, no-wrap
 msgid ""
 "scheme@@(guile-user)> ,enter-store-monad\n"
@@ -10199,50 +12746,50 @@ msgstr ""
 "scheme@@(guile-user)>\n"
 
 #. type: Plain text
-#: doc/guix.texi:5295
+#: doc/guix.texi:6722
 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:5298
+#: doc/guix.texi:6725
 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:5299
+#: doc/guix.texi:6726
 #, 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:5302
+#: doc/guix.texi:6729
 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:5304
+#: doc/guix.texi:6731
 #, no-wrap
 msgid "{Scheme Syntax} return @var{val}"
 msgstr "{Syntaxe Scheme} return @var{val}"
 
 #. type: deffn
-#: doc/guix.texi:5306
+#: doc/guix.texi:6733
 msgid "Return a monadic value that encapsulates @var{val}."
 msgstr "Renvoie une valeur monadique qui encapsule @var{val}."
 
 #. type: deffn
-#: doc/guix.texi:5308
+#: doc/guix.texi:6735
 #, no-wrap
 msgid "{Scheme Syntax} >>= @var{mval} @var{mproc} ..."
 msgstr "{Syntaxe Scheme} >>= @var{mval} @var{mproc} ..."
 
 #. type: deffn
-#: doc/guix.texi:5315
+#: doc/guix.texi:6742
 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:5323
+#: doc/guix.texi:6750
 #, no-wrap
 msgid ""
 "(run-with-state\n"
@@ -10262,7 +12809,7 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix.texi:5326
+#: doc/guix.texi:6753
 #, no-wrap
 msgid ""
 "@result{} 4\n"
@@ -10272,101 +12819,101 @@ msgstr ""
 "@result{} some-state\n"
 
 #. type: deffn
-#: doc/guix.texi:5329
+#: doc/guix.texi:6756
 #, 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:5331
+#: doc/guix.texi:6758
 msgid "@var{body} ..."
 msgstr "@var{body} ..."
 
 #. type: deffnx
-#: doc/guix.texi:5331
+#: doc/guix.texi:6758
 #, 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:5343
+#: doc/guix.texi:6770
 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:5346
+#: doc/guix.texi:6773
 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:5348
+#: doc/guix.texi:6775
 #, no-wrap
 msgid "{Scheme System} mbegin @var{monad} @var{mexp} ..."
 msgstr "{Système Scheme} mbegin @var{monad} @var{mexp} ..."
 
 #. type: deffn
-#: doc/guix.texi:5352
+#: doc/guix.texi:6779
 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:5356
+#: doc/guix.texi:6783
 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:5358
+#: doc/guix.texi:6785
 #, 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:5363
+#: doc/guix.texi:6790
 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:5365
+#: doc/guix.texi:6792
 #, 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:5370
+#: doc/guix.texi:6797
 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:5372
+#: doc/guix.texi:6799
 #, no-wrap
 msgid "state monad"
 msgstr "monade d'état"
 
 #. type: Plain text
-#: doc/guix.texi:5376
+#: doc/guix.texi:6803
 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:5377
+#: doc/guix.texi:6804
 #, no-wrap
 msgid "{Scheme Variable} %state-monad"
 msgstr "{Variable Scheme} %state-monad"
 
 #. type: defvr
-#: doc/guix.texi:5380
+#: doc/guix.texi:6807
 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:5384
+#: doc/guix.texi:6811
 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:5391
+#: doc/guix.texi:6818
 #, no-wrap
 msgid ""
 "(define (square x)\n"
@@ -10384,7 +12931,7 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix.texi:5395
+#: doc/guix.texi:6822
 #, no-wrap
 msgid ""
 "(run-with-state (sequence %state-monad (map square (iota 3))) 0)\n"
@@ -10396,149 +12943,149 @@ msgstr ""
 "@result{} 3\n"
 
 #. type: defvr
-#: doc/guix.texi:5399
+#: doc/guix.texi:6826
 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}."
 
 #. type: deffn
-#: doc/guix.texi:5401
+#: doc/guix.texi:6828
 #, no-wrap
 msgid "{Monadic Procedure} current-state"
 msgstr "{Procédure monadique} current-state"
 
 #. type: deffn
-#: doc/guix.texi:5403
+#: doc/guix.texi:6830
 msgid "Return the current state as a monadic value."
 msgstr "Renvoie l'état actuel dans une valeur monadique."
 
 #. type: deffn
-#: doc/guix.texi:5405
+#: doc/guix.texi:6832
 #, no-wrap
 msgid "{Monadic Procedure} set-current-state @var{value}"
 msgstr "{Procédure monadique} set-current-state @var{value}"
 
 #. type: deffn
-#: doc/guix.texi:5408
+#: doc/guix.texi:6835
 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:5410
+#: doc/guix.texi:6837
 #, no-wrap
 msgid "{Monadic Procedure} state-push @var{value}"
 msgstr "{Procédure monadique} state-push @var{value}"
 
 #. type: deffn
-#: doc/guix.texi:5413
+#: doc/guix.texi:6840
 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:5415
+#: doc/guix.texi:6842
 #, no-wrap
 msgid "{Monadic Procedure} state-pop"
 msgstr "{Procédure monadique} state-pop"
 
 #. type: deffn
-#: doc/guix.texi:5418
+#: doc/guix.texi:6845
 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:5420
+#: doc/guix.texi:6847
 #, 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:5423
+#: doc/guix.texi:6850
 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:5427
+#: doc/guix.texi:6854
 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:5428
+#: doc/guix.texi:6855
 #, no-wrap
 msgid "{Scheme Variable} %store-monad"
 msgstr "{Variable Scheme} %store-monad"
 
 #. type: defvr
-#: doc/guix.texi:5430
+#: doc/guix.texi:6857
 msgid "The store monad---an alias for @var{%state-monad}."
 msgstr "La monade du dépôt — un alias pour @var{%state-monad}."
 
 #. type: defvr
-#: doc/guix.texi:5434
+#: doc/guix.texi:6861
 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)."
 
 #. type: deffn
-#: doc/guix.texi:5436
+#: doc/guix.texi:6863
 #, 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:5439
+#: doc/guix.texi:6866
 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:5441
+#: doc/guix.texi:6868
 #, 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:5445
+#: doc/guix.texi:6872
 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:5447
+#: doc/guix.texi:6874
 #, 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:5451
+#: doc/guix.texi:6878
 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:5453
+#: doc/guix.texi:6880
 #, 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:5458
+#: doc/guix.texi:6885
 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:5462 doc/guix.texi:5875
+#: doc/guix.texi:6889 doc/guix.texi:7302
 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:5467 doc/guix.texi:5880
+#: doc/guix.texi:6894 doc/guix.texi:7307
 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:5469
+#: doc/guix.texi:6896
 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:5475
+#: doc/guix.texi:6902
 #, no-wrap
 msgid ""
 "(run-with-store (open-connection)\n"
@@ -10554,24 +13101,24 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix.texi:5477
+#: doc/guix.texi:6904
 #, 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:5483
+#: doc/guix.texi:6910
 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:5484
+#: doc/guix.texi:6911
 #, 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:5492
+#: doc/guix.texi:6919
 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"
@@ -10579,95 +13126,95 @@ 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:5494
+#: doc/guix.texi:6921
 #, 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:5495
+#: doc/guix.texi:6922
 #, no-wrap
 msgid "{Monadic Procedure} package->cross-derivation @var{package} @"
 msgstr "{Procédure monadique} package->cross-derivation @var{package} @"
 
 #. type: deffn
-#: doc/guix.texi:5499
+#: doc/guix.texi:6926
 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:5505
+#: doc/guix.texi:6932
 #, no-wrap
 msgid "G-expression"
 msgstr "G-expression"
 
 #. type: cindex
-#: doc/guix.texi:5506
+#: doc/guix.texi:6933
 #, no-wrap
 msgid "build code quoting"
 msgstr "quoting du code de construction"
 
 #. type: Plain text
-#: doc/guix.texi:5512
+#: doc/guix.texi:6939
 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:5513
+#: doc/guix.texi:6940
 #, no-wrap
 msgid "strata of code"
 msgstr "strate de code"
 
 #. type: Plain text
-#: doc/guix.texi:5525
+#: doc/guix.texi:6952
 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éfini 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."
 
 #. type: Plain text
-#: doc/guix.texi:5532
+#: doc/guix.texi:6959
 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:5541
+#: doc/guix.texi:6968
 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:5546
+#: doc/guix.texi:6973
 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:5551
+#: doc/guix.texi:6978
 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:5556
+#: doc/guix.texi:6983
 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:5558 doc/guix.texi:6062
+#: doc/guix.texi:6985 doc/guix.texi:7489
 #, no-wrap
 msgid "lowering, of high-level objects in gexps"
 msgstr "abaissement, des objets haut-niveau dans les gepxs"
 
 #. type: Plain text
-#: doc/guix.texi:5568
+#: doc/guix.texi:6995
 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)."
 
 #. type: Plain text
-#: doc/guix.texi:5570
+#: doc/guix.texi:6997
 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:5578
+#: doc/guix.texi:7005
 #, no-wrap
 msgid ""
 "(define build-exp\n"
@@ -10685,34 +13232,34 @@ msgstr ""
 "               \"list-files\")))\n"
 
 #. type: Plain text
-#: doc/guix.texi:5583
+#: doc/guix.texi:7010
 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:5586
+#: doc/guix.texi:7013
 #, no-wrap
 msgid "(gexp->derivation \"the-thing\" build-exp)\n"
 msgstr "(gexp->derivation \"the-thing\" build-exp)\n"
 
 #. type: Plain text
-#: doc/guix.texi:5594
+#: doc/guix.texi:7021
 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:5595
+#: doc/guix.texi:7022
 #, no-wrap
 msgid "cross compilation"
 msgstr "compilation croisée"
 
 #. type: Plain text
-#: doc/guix.texi:5601
+#: doc/guix.texi:7028
 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:5611
+#: doc/guix.texi:7038
 #, no-wrap
 msgid ""
 "(gexp->derivation \"vi\"\n"
@@ -10734,29 +13281,29 @@ msgstr ""
 "   #:target \"mips64el-linux-gnu\")\n"
 
 #. type: Plain text
-#: doc/guix.texi:5617
+#: doc/guix.texi:7044
 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:5618
+#: doc/guix.texi:7045
 #, no-wrap
 msgid "imported modules, for gexps"
 msgstr "modules importés, pour les gexps"
 
 #. type: findex
-#: doc/guix.texi:5619
+#: doc/guix.texi:7046
 #, no-wrap
 msgid "with-imported-modules"
 msgstr "with-imported-modules"
 
 #. type: Plain text
-#: doc/guix.texi:5624
+#: doc/guix.texi:7051
 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:5635
+#: doc/guix.texi:7062
 #, no-wrap
 msgid ""
 "(let ((build (with-imported-modules '((guix build utils))\n"
@@ -10780,29 +13327,29 @@ msgstr ""
 "                        #t)))\n"
 
 #. type: Plain text
-#: doc/guix.texi:5641
+#: doc/guix.texi:7068
 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:5642
+#: doc/guix.texi:7069
 #, no-wrap
 msgid "module closure"
 msgstr "closure de module"
 
 #. type: findex
-#: doc/guix.texi:5643
+#: doc/guix.texi:7070
 #, no-wrap
 msgid "source-module-closure"
 msgstr "source-module-closure"
 
 #. type: Plain text
-#: doc/guix.texi:5650
+#: doc/guix.texi:7077
 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:5653
+#: doc/guix.texi:7080
 #, no-wrap
 msgid ""
 "(use-modules (guix modules))   ;for 'source-module-closure'\n"
@@ -10812,7 +13359,7 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix.texi:5662
+#: doc/guix.texi:7089
 #, no-wrap
 msgid ""
 "(with-imported-modules (source-module-closure\n"
@@ -10834,24 +13381,24 @@ msgstr ""
 "                        @dots{})))\n"
 
 #. type: cindex
-#: doc/guix.texi:5664
+#: doc/guix.texi:7091
 #, no-wrap
 msgid "extensions, for gexps"
 msgstr "extensions, des gexps"
 
 #. type: findex
-#: doc/guix.texi:5665
+#: doc/guix.texi:7092
 #, no-wrap
 msgid "with-extensions"
 msgstr "with-extensions"
 
 #. type: Plain text
-#: doc/guix.texi:5670
+#: doc/guix.texi:7097
 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:5673
+#: doc/guix.texi:7100
 #, no-wrap
 msgid ""
 "(use-modules (gnu packages guile))  ;for 'guile-json'\n"
@@ -10861,7 +13408,7 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix.texi:5679
+#: doc/guix.texi:7106
 #, no-wrap
 msgid ""
 "(with-extensions (list guile-json)\n"
@@ -10877,184 +13424,184 @@ msgstr ""
 "                        @dots{})))\n"
 
 #. type: Plain text
-#: doc/guix.texi:5682
+#: doc/guix.texi:7109
 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:5683
+#: doc/guix.texi:7110
 #, no-wrap
 msgid "{Scheme Syntax} #~@var{exp}"
 msgstr "{Syntaxe Scheme} #~@var{exp}"
 
 #. type: deffnx
-#: doc/guix.texi:5684
+#: doc/guix.texi:7111
 #, no-wrap
 msgid "{Scheme Syntax} (gexp @var{exp})"
 msgstr "{Syntaxe Scheme} (gexp @var{exp})"
 
 #. type: deffn
-#: doc/guix.texi:5687
+#: doc/guix.texi:7114
 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:5689
+#: doc/guix.texi:7116
 #, no-wrap
 msgid "#$@var{obj}"
 msgstr "#$@var{obj}"
 
 #. type: itemx
-#: doc/guix.texi:5690
+#: doc/guix.texi:7117
 #, no-wrap
 msgid "(ungexp @var{obj})"
 msgstr "(ungexp @var{obj})"
 
 #. type: table
-#: doc/guix.texi:5695
+#: doc/guix.texi:7122
 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:5698
+#: doc/guix.texi:7125
 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:5701
+#: doc/guix.texi:7128
 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:5703
+#: doc/guix.texi:7130
 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:5704
+#: doc/guix.texi:7131
 #, no-wrap
 msgid "#$@var{obj}:@var{output}"
 msgstr "#$@var{obj}:@var{output}"
 
 #. type: itemx
-#: doc/guix.texi:5705
+#: doc/guix.texi:7132
 #, no-wrap
 msgid "(ungexp @var{obj} @var{output})"
 msgstr "(ungexp @var{obj} @var{output})"
 
 #. type: table
-#: doc/guix.texi:5709
+#: doc/guix.texi:7136
 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:5710
+#: doc/guix.texi:7137
 #, no-wrap
 msgid "#+@var{obj}"
 msgstr "#+@var{obj}"
 
 #. type: itemx
-#: doc/guix.texi:5711
+#: doc/guix.texi:7138
 #, no-wrap
 msgid "#+@var{obj}:output"
 msgstr "#+@var{obj}:output"
 
 #. type: itemx
-#: doc/guix.texi:5712
+#: doc/guix.texi:7139
 #, no-wrap
 msgid "(ungexp-native @var{obj})"
 msgstr "(ungexp-native @var{obj})"
 
 #. type: itemx
-#: doc/guix.texi:5713
+#: doc/guix.texi:7140
 #, no-wrap
 msgid "(ungexp-native @var{obj} @var{output})"
 msgstr "(ungexp-native @var{obj} @var{output})"
 
 #. type: table
-#: doc/guix.texi:5716
+#: doc/guix.texi:7143
 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:5717
+#: doc/guix.texi:7144
 #, no-wrap
 msgid "#$output[:@var{output}]"
 msgstr "#$output[:@var{output}]"
 
 #. type: itemx
-#: doc/guix.texi:5718
+#: doc/guix.texi:7145
 #, no-wrap
 msgid "(ungexp output [@var{output}])"
 msgstr "(ungexp output [@var{output}])"
 
 #. type: table
-#: doc/guix.texi:5721
+#: doc/guix.texi:7148
 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:5723
+#: doc/guix.texi:7150
 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:5724
+#: doc/guix.texi:7151
 #, no-wrap
 msgid "#$@@@var{lst}"
 msgstr "#$@@@var{lst}"
 
 #. type: itemx
-#: doc/guix.texi:5725
+#: doc/guix.texi:7152
 #, no-wrap
 msgid "(ungexp-splicing @var{lst})"
 msgstr "(ungexp-splicing @var{lst})"
 
 #. type: table
-#: doc/guix.texi:5728
+#: doc/guix.texi:7155
 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:5729
+#: doc/guix.texi:7156
 #, no-wrap
 msgid "#+@@@var{lst}"
 msgstr "#+@@@var{lst}"
 
 #. type: itemx
-#: doc/guix.texi:5730
+#: doc/guix.texi:7157
 #, no-wrap
 msgid "(ungexp-native-splicing @var{lst})"
 msgstr "(ungexp-native-splicing @var{lst})"
 
 #. type: table
-#: doc/guix.texi:5733
+#: doc/guix.texi:7160
 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:5738
+#: doc/guix.texi:7165
 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)."
 
 #. type: deffn
-#: doc/guix.texi:5740
+#: doc/guix.texi:7167
 #, 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:5743
+#: doc/guix.texi:7170
 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:5747
+#: doc/guix.texi:7174
 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:5753
+#: doc/guix.texi:7180
 #, no-wrap
 msgid ""
 "`((guix build utils)\n"
@@ -11068,55 +13615,55 @@ msgstr ""
 "                                  #~(define-module @dots{}))))\n"
 
 #. type: deffn
-#: doc/guix.texi:5758
+#: doc/guix.texi:7185
 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:5762
+#: doc/guix.texi:7189
 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:5764
+#: doc/guix.texi:7191
 #, 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:5769
+#: doc/guix.texi:7196
 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:5774
+#: doc/guix.texi:7201
 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:5776
+#: doc/guix.texi:7203
 #, no-wrap
 msgid "{Scheme Procedure} gexp? @var{obj}"
 msgstr "{Procédure Scheme} gexp? @var{obj}"
 
 #. type: deffn
-#: doc/guix.texi:5778
+#: doc/guix.texi:7205
 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:5784
+#: doc/guix.texi:7211
 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)."
 
 #. type: deffn
-#: doc/guix.texi:5785
+#: doc/guix.texi:7212
 #, 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:5803
+#: doc/guix.texi:7230
 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] @\n"
@@ -11133,27 +13680,27 @@ msgstr ""
 "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}."
 
 #. type: deffn
-#: doc/guix.texi:5811
+#: doc/guix.texi:7238
 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:5814
+#: doc/guix.texi:7241
 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:5817
+#: doc/guix.texi:7244
 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:5820
+#: doc/guix.texi:7247
 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:5827
+#: doc/guix.texi:7254
 #, no-wrap
 msgid ""
 "(@var{file-name} @var{package})\n"
@@ -11169,38 +13716,38 @@ msgstr ""
 "(@var{file-name} @var{store-item})\n"
 
 #. type: deffn
-#: doc/guix.texi:5833
+#: doc/guix.texi:7260
 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:5839
+#: doc/guix.texi:7266
 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:5842
+#: doc/guix.texi:7269
 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:5844
+#: doc/guix.texi:7271
 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:5846
+#: doc/guix.texi:7273
 #, no-wrap
 msgid "file-like objects"
 msgstr "objets simili-fichiers"
 
 #. type: Plain text
-#: doc/guix.texi:5851
+#: doc/guix.texi:7278
 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:5855
+#: doc/guix.texi:7282
 #, no-wrap
 msgid ""
 "#~(system* #$(file-append glibc \"/sbin/nscd\") \"-f\"\n"
@@ -11210,82 +13757,82 @@ msgstr ""
 "           #$(local-file \"/tmp/my-nscd.conf\"))\n"
 
 #. type: Plain text
-#: doc/guix.texi:5864
+#: doc/guix.texi:7291
 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:5865
+#: doc/guix.texi:7292
 #, 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:5871
+#: doc/guix.texi:7298
 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}."
 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}."
 
 #. type: deffn
-#: doc/guix.texi:5883
+#: doc/guix.texi:7310
 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:5885
+#: doc/guix.texi:7312
 #, 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:5888
+#: doc/guix.texi:7315
 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:5890
+#: doc/guix.texi:7317
 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:5892
+#: doc/guix.texi:7319
 #, 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:5897
+#: doc/guix.texi:7324
 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)]\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}."
 
 #. type: deffn
-#: doc/guix.texi:5899
+#: doc/guix.texi:7326
 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:5901
+#: doc/guix.texi:7328
 #, 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:5906
+#: doc/guix.texi:7333
 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}."
 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}."
 
 #. type: deffn
-#: doc/guix.texi:5909
+#: doc/guix.texi:7336
 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:5912
+#: doc/guix.texi:7339
 #, no-wrap
 msgid ""
 "(use-modules (guix gexp) (gnu packages base))\n"
@@ -11295,7 +13842,7 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix.texi:5916
+#: doc/guix.texi:7343
 #, no-wrap
 msgid ""
 "(gexp->script \"list-files\"\n"
@@ -11307,12 +13854,12 @@ msgstr ""
 "                       \"ls\"))\n"
 
 #. type: deffn
-#: doc/guix.texi:5921
+#: doc/guix.texi:7348
 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:5926
+#: doc/guix.texi:7353
 #, no-wrap
 msgid ""
 "#!/gnu/store/@dots{}-guile-2.0.11/bin/guile -ds\n"
@@ -11324,31 +13871,31 @@ msgstr ""
 "(execl \"/gnu/store/@dots{}-coreutils-8.22\"/bin/ls\" \"ls\")\n"
 
 #. type: deffn
-#: doc/guix.texi:5929
+#: doc/guix.texi:7356
 #, 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:5934
+#: doc/guix.texi:7361
 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:5936
+#: doc/guix.texi:7363
 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:5938
+#: doc/guix.texi:7365
 #, 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:5945
+#: doc/guix.texi:7372
 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"
@@ -11357,49 +13904,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:5950
+#: doc/guix.texi:7377
 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:5953
+#: doc/guix.texi:7380
 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:5955
+#: doc/guix.texi:7382
 #, 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]"
 
 #. type: deffn
-#: doc/guix.texi:5958
+#: doc/guix.texi:7385
 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}."
 
 #. type: deffn
-#: doc/guix.texi:5960
+#: doc/guix.texi:7387
 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:5962
+#: doc/guix.texi:7389
 #, 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:5968
+#: doc/guix.texi:7395
 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:5973
+#: doc/guix.texi:7400
 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:5981
+#: doc/guix.texi:7408
 #, no-wrap
 msgid ""
 "(define (profile.sh)\n"
@@ -11417,23 +13964,23 @@ msgstr ""
 "              grep \"/bin:\" sed \"/bin\\n\"))\n"
 
 #. type: deffn
-#: doc/guix.texi:5986
+#: doc/guix.texi:7413
 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:5988
+#: doc/guix.texi:7415
 #, 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:5992
+#: doc/guix.texi:7419
 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:5996
+#: doc/guix.texi:7423
 #, no-wrap
 msgid ""
 "(mixed-text-file \"profile\"\n"
@@ -11443,23 +13990,23 @@ msgstr ""
 "                 \"export PATH=\" coreutils \"/bin:\" grep \"/bin\")\n"
 
 #. type: deffn
-#: doc/guix.texi:5999
+#: doc/guix.texi:7426
 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:6001
+#: doc/guix.texi:7428
 #, 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:6006
+#: doc/guix.texi:7433
 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:6013
+#: doc/guix.texi:7440
 #, no-wrap
 msgid ""
 "(file-union \"etc\"\n"
@@ -11475,50 +14022,50 @@ msgstr ""
 "                                     \"alias ls='ls --color=auto'\"))))\n"
 
 #. type: deffn
-#: doc/guix.texi:6016
+#: doc/guix.texi:7443
 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:6018
+#: doc/guix.texi:7445
 #, 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:6021
+#: doc/guix.texi:7448
 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:6024
+#: doc/guix.texi:7451
 #, 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:6027
+#: doc/guix.texi:7454
 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:6029
+#: doc/guix.texi:7456
 #, 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:6033
+#: doc/guix.texi:7460
 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:6035
+#: doc/guix.texi:7462
 msgid "As an example, consider this gexp:"
 msgstr "Par exemple, considérez cette gexp :"
 
 #. type: example
-#: doc/guix.texi:6040
+#: doc/guix.texi:7467
 #, no-wrap
 msgid ""
 "(gexp->script \"run-uname\"\n"
@@ -11530,12 +14077,12 @@ msgstr ""
 "                                        \"/bin/uname\")))\n"
 
 #. type: deffn
-#: doc/guix.texi:6043
+#: doc/guix.texi:7470
 msgid "The same effect could be achieved with:"
 msgstr "On peut obtenir le même effet avec :"
 
 #. type: example
-#: doc/guix.texi:6048
+#: doc/guix.texi:7475
 #, no-wrap
 msgid ""
 "(gexp->script \"run-uname\"\n"
@@ -11547,52 +14094,52 @@ msgstr ""
 "                                        \"/bin/uname\")))\n"
 
 #. type: deffn
-#: doc/guix.texi:6054
+#: doc/guix.texi:7481
 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: Plain text
-#: doc/guix.texi:6061
+#: doc/guix.texi:7488
 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:6067
+#: doc/guix.texi:7494
 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:6068
+#: doc/guix.texi:7495
 #, 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:6074
+#: doc/guix.texi:7501
 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]\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>}."
 
 #. type: section
-#: doc/guix.texi:6077
+#: doc/guix.texi:7504
 #, no-wrap
 msgid "Invoking @command{guix repl}"
 msgstr "Invoquer @command{guix repl}"
 
 #. type: cindex
-#: doc/guix.texi:6079
+#: doc/guix.texi:7506
 #, no-wrap
 msgid "REPL, read-eval-print loop"
 msgstr "REPL, read-eval-print loop"
 
 #. type: Plain text
-#: doc/guix.texi:6085
+#: doc/guix.texi:7512
 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 :"
 
 #. type: example
-#: doc/guix.texi:6091
+#: doc/guix.texi:7518
 #, no-wrap
 msgid ""
 "$ guix repl\n"
@@ -11606,134 +14153,127 @@ msgstr ""
 "$1 = #<package coreutils@@8.29 gnu/packages/base.scm:327 3e28300>\n"
 
 #. type: Plain text
-#: doc/guix.texi:6098
+#: doc/guix.texi:7525
 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:6100
+#: doc/guix.texi:7527
 msgid "The available options are as follows:"
 msgstr "Les options disponibles sont les suivante :"
 
 #. type: item
-#: doc/guix.texi:6102 doc/guix.texi:7952
+#: doc/guix.texi:7529 doc/guix.texi:9489
 #, no-wrap
 msgid "--type=@var{type}"
 msgstr "--type=@var{type}"
 
 #. type: itemx
-#: doc/guix.texi:6103 doc/guix.texi:7953 doc/guix.texi:22545
+#: doc/guix.texi:7530 doc/guix.texi:9490 doc/guix.texi:24428
 #, no-wrap
 msgid "-t @var{type}"
 msgstr "-t @var{type}"
 
 #. type: table
-#: doc/guix.texi:6105
+#: doc/guix.texi:7532
 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:6107
+#: doc/guix.texi:7534
 #, no-wrap
 msgid "guile"
 msgstr "guile"
 
 #. type: table
-#: doc/guix.texi:6109
+#: doc/guix.texi:7536
 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:6109
+#: doc/guix.texi:7536
 #, no-wrap
 msgid "machine"
 msgstr "machine"
 
 #. type: table
-#: doc/guix.texi:6112
+#: doc/guix.texi:7539
 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:6118
+#: doc/guix.texi:7545
 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:6120
+#: doc/guix.texi:7547
 #, no-wrap
 msgid "--listen=tcp:37146"
 msgstr "--listen=tcp:37146"
 
 #. type: table
-#: doc/guix.texi:6122
+#: doc/guix.texi:7549
 msgid "Accept connections on localhost on port 37146."
 msgstr "Accepte les connexions sur localhost, sur le port 31."
 
 #. type: item
-#: doc/guix.texi:6123
+#: doc/guix.texi:7550
 #, no-wrap
 msgid "--listen=unix:/tmp/socket"
 msgstr "--listen=unix:/tmp/socket"
 
 #. type: table
-#: doc/guix.texi:6125
+#: doc/guix.texi:7552
 msgid "Accept connections on the Unix-domain socket @file{/tmp/socket}."
 msgstr "Accepte les connexions sur le socket Unix-domain @file{/tmp/socket}."
 
 #. type: Plain text
-#: doc/guix.texi:6136
+#: doc/guix.texi:7563
 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 développeurs 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."
+msgstr "Cette section décrit les utilitaires en ligne de commande de Guix.  certains sont surtout faits pour les développeurs 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:6159
+#: doc/guix.texi:7585
 #, no-wrap
 msgid "package building"
 msgstr "construction de paquets"
 
 #. type: command{#1}
-#: doc/guix.texi:6160
+#: doc/guix.texi:7586
 #, no-wrap
 msgid "guix build"
 msgstr "guix build"
 
 #. type: Plain text
-#: doc/guix.texi:6166
+#: doc/guix.texi:7592
 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 développeurs de la distribution."
 
-#. type: Plain text
-#: doc/guix.texi:6168 doc/guix.texi:6835 doc/guix.texi:6902 doc/guix.texi:7657
-#: doc/guix.texi:8002 doc/guix.texi:8332 doc/guix.texi:8637 doc/guix.texi:8703
-#: doc/guix.texi:8742
-msgid "The general syntax is:"
-msgstr "La syntaxe générale est :"
-
 #. type: example
-#: doc/guix.texi:6171
+#: doc/guix.texi:7597
 #, 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:6176
+#: doc/guix.texi:7602
 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:6179
+#: doc/guix.texi:7605
 #, no-wrap
 msgid "guix build emacs guile\n"
 msgstr "guix build emacs guile\n"
 
 #. type: Plain text
-#: doc/guix.texi:6182
+#: doc/guix.texi:7608
 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:6186
+#: doc/guix.texi:7612
 #, no-wrap
 msgid ""
 "guix build --quiet --keep-going \\\n"
@@ -11743,305 +14283,334 @@ msgstr ""
 "  `guix package -A | cut -f1,2 --output-delimiter=@@`\n"
 
 #. type: Plain text
-#: doc/guix.texi:6194
+#: doc/guix.texi:7620
 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:6199
+#: doc/guix.texi:7625
 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."
 
 #. type: Plain text
-#: doc/guix.texi:6202
+#: doc/guix.texi:7628
 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:6217
+#: doc/guix.texi:7643
 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:6220
+#: doc/guix.texi:7646
 #, no-wrap
 msgid "--load-path=@var{directory}"
 msgstr "--load-path=@var{répertoire}"
 
 #. type: itemx
-#: doc/guix.texi:6221
+#: doc/guix.texi:7647
 #, no-wrap
 msgid "-L @var{directory}"
 msgstr "-L @var{répertoire}"
 
 #. type: table
-#: doc/guix.texi:6224
+#: doc/guix.texi:7650
 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:6227
+#: doc/guix.texi:7653
 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:6228
+#: doc/guix.texi:7654
 #, no-wrap
 msgid "--keep-failed"
 msgstr "--keep-failed"
 
 #. type: itemx
-#: doc/guix.texi:6229
+#: doc/guix.texi:7655
 #, no-wrap
 msgid "-K"
 msgstr "-K"
 
 #. type: table
-#: doc/guix.texi:6235
+#: doc/guix.texi:7661
 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:6239
+#: doc/guix.texi:7665
 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}})."
 
 #. type: item
-#: doc/guix.texi:6240
+#: doc/guix.texi:7666
 #, no-wrap
 msgid "--keep-going"
 msgstr "--keep-going"
 
 #. type: itemx
-#: doc/guix.texi:6241
+#: doc/guix.texi:7667
 #, no-wrap
 msgid "-k"
 msgstr "-k"
 
 #. type: table
-#: doc/guix.texi:6244
+#: doc/guix.texi:7670
 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:6247
+#: doc/guix.texi:7673
 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:6251
+#: doc/guix.texi:7677
 msgid "Do not build the derivations."
 msgstr "Ne pas construire les dérivations."
 
 #. type: anchor{#1}
-#: doc/guix.texi:6253
+#: doc/guix.texi:7679
 msgid "fallback-option"
 msgstr "option de repli"
 
 #. type: item
-#: doc/guix.texi:6253
+#: doc/guix.texi:7679
 #, no-wrap
 msgid "--fallback"
 msgstr "--fallback"
 
 #. type: table
-#: doc/guix.texi:6256
+#: doc/guix.texi:7682
 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:6262
+#: doc/guix.texi:7688
 msgid "client-substitute-urls"
 msgstr "client-substitute-urls"
 
 #. type: table
-#: doc/guix.texi:6262
+#: doc/guix.texi:7688
 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:6266
+#: doc/guix.texi:7692
 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:6269
+#: doc/guix.texi:7695
 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:6275
+#: doc/guix.texi:7701
 #, no-wrap
 msgid "--no-grafts"
 msgstr "--no-grafts"
 
 #. type: table
-#: doc/guix.texi:6279
+#: doc/guix.texi:7705
 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:6280
+#: doc/guix.texi:7706
 #, no-wrap
 msgid "--rounds=@var{n}"
 msgstr "--rounds=@var{n}"
 
 #. type: table
-#: doc/guix.texi:6283
+#: doc/guix.texi:7709
 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:6288
+#: doc/guix.texi:7714
 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:6294
+#: doc/guix.texi:7720
 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:6299
+#: doc/guix.texi:7725
 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:6306
+#: doc/guix.texi:7732
 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}})."
 
 #. type: table
-#: doc/guix.texi:6313
+#: doc/guix.texi:7739
 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}})."
 
+#. type: cindex
+#: doc/guix.texi:7742
+#, no-wrap
+msgid "verbosity, of the command-line tools"
+msgstr "verbosité, des outils en ligne de commande"
+
+#. type: cindex
+#: doc/guix.texi:7743
+#, no-wrap
+msgid "build logs, verbosity"
+msgstr "journaux de construction, verbosité"
+
 #. type: item
-#: doc/guix.texi:6314
+#: doc/guix.texi:7744
+#, no-wrap
+msgid "-v @var{level}"
+msgstr "-v [@var{niveau}]"
+
+#. type: itemx
+#: doc/guix.texi:7745
 #, no-wrap
 msgid "--verbosity=@var{level}"
-msgstr "--verbosity=@var{level}"
+msgstr "--verbosity=@var{niveau}"
 
 #. type: table
-#: doc/guix.texi:6318
-msgid "Use the given verbosity level.  @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 "Utilise le niveau de verbosité donné.  @var{level} doit être un entier entre 0 et 5 ; les entiers les plus hauts signifient une sortie plus verbeuse.  Le mettre à 4 ou plus peut être utile pour déboguer des problèmes de configuration du démon de construction."
+#: doc/guix.texi:7749
+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:6323
+#: doc/guix.texi:7754
 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:6329
+#: doc/guix.texi:7760
 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}."
 
+#. type: item
+#: doc/guix.texi:7761
+#, no-wrap
+msgid "--debug=@var{level}"
+msgstr "--debug=@var{niveau}"
+
+#. type: table
+#: doc/guix.texi:7765
+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:6336
+#: doc/guix.texi:7772
 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)}."
 
 #. type: Plain text
-#: doc/guix.texi:6340
+#: doc/guix.texi:7776
 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}."
 
 #. type: defvr
-#: doc/guix.texi:6341
+#: doc/guix.texi:7777
 #, no-wrap
 msgid "{Environment Variable} GUIX_BUILD_OPTIONS"
 msgstr "{Variable d'environnement} GUIX_BUILD_OPTIONS"
 
 #. type: defvr
-#: doc/guix.texi:6346
+#: doc/guix.texi:7782
 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:6349
+#: doc/guix.texi:7785
 #, 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:6353
+#: doc/guix.texi:7789
 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:6359
+#: doc/guix.texi:7795
 #, no-wrap
 msgid "package variants"
 msgstr "variantes de paquets"
 
 #. type: Plain text
-#: doc/guix.texi:6367
+#: doc/guix.texi:7803
 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: item
-#: doc/guix.texi:6370
+#: doc/guix.texi:7806
 #, no-wrap
 msgid "--with-source=@var{source}"
 msgstr "--with-source=@var{source}"
 
 #. type: itemx
-#: doc/guix.texi:6371
+#: doc/guix.texi:7807
 #, no-wrap
 msgid "--with-source=@var{package}=@var{source}"
 msgstr "--with-source=@var{paquet}=@var{source}"
 
 #. type: itemx
-#: doc/guix.texi:6372
+#: doc/guix.texi:7808
 #, 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:6377
+#: doc/guix.texi:7813
 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})."
 
 #. type: table
-#: doc/guix.texi:6383
+#: doc/guix.texi:7819
 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:6386
+#: doc/guix.texi:7822
 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:6391
+#: doc/guix.texi:7827
 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:6394
+#: doc/guix.texi:7830
 #, 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:6398
+#: doc/guix.texi:7834
 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 :"
 
 #. type: example
-#: doc/guix.texi:6401
+#: doc/guix.texi:7837
 #, 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:6404
+#: doc/guix.texi:7840
 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:6408
+#: doc/guix.texi:7844
 #, no-wrap
 msgid ""
 "$ git clone git://git.sv.gnu.org/guix.git\n"
@@ -12051,184 +14620,276 @@ msgstr ""
 "$ guix build guix --with-source=guix@@1.0=./guix\n"
 
 #. type: item
-#: doc/guix.texi:6410
+#: doc/guix.texi:7846
 #, no-wrap
 msgid "--with-input=@var{package}=@var{replacement}"
 msgstr "--with-input=@var{paquet}=@var{remplaçant}"
 
 #. type: table
-#: doc/guix.texi:6415
+#: doc/guix.texi:7851
 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:6419
+#: doc/guix.texi:7855
 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:6422
+#: doc/guix.texi:7858
 #, 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:6427
+#: doc/guix.texi:7863
 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:6430
+#: doc/guix.texi:7866
 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:6431
+#: doc/guix.texi:7867
 #, no-wrap
 msgid "--with-graft=@var{package}=@var{replacement}"
 msgstr "--with-graft=@var{paquet}=@var{remplaçant}"
 
 #. type: table
-#: doc/guix.texi:6437
+#: doc/guix.texi:7873
 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."
 
 #. type: table
-#: doc/guix.texi:6441
+#: doc/guix.texi:7877
 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:6444
+#: doc/guix.texi:7880
 #, 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:6453
+#: doc/guix.texi:7889
 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 !"
 
+#. type: item
+#: doc/guix.texi:7890
+#, no-wrap
+msgid "--with-git-url=@var{package}=@var{url}"
+msgstr "--with-git-url=@var{paquet}=@var{url}"
+
+#. type: cindex
+#: doc/guix.texi:7891
+#, no-wrap
+msgid "Git, using the latest commit"
+msgstr "Git, utiliser le dernier commit"
+
+#. type: cindex
+#: doc/guix.texi:7892
+#, no-wrap
+msgid "latest commit, building"
+msgstr "dernier commit, construction"
+
+#. type: table
+#: doc/guix.texi:7896
+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:7899
+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:7903
+#, 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:7907
+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)."
+
+#. type: cindex
+#: doc/guix.texi:7908 doc/guix.texi:20488
+#, no-wrap
+msgid "continuous integration"
+msgstr "intégration continue"
+
+#. type: table
+#: doc/guix.texi:7914
+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:7918
+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:7919
+#, no-wrap
+msgid "--with-branch=@var{package}=@var{branch}"
+msgstr "--with-branch=@var{paquet}=@var{branche}"
+
+#. type: table
+#: doc/guix.texi:7925
+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."
+
+#. type: table
+#: doc/guix.texi:7930
+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:7933
+#, 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:7935
+#, no-wrap
+msgid "--with-commit=@var{package}=@var{commit}"
+msgstr "--with-commit=@var{paquet}=@var{commit}"
+
+#. type: table
+#: doc/guix.texi:7939
+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."
+
 #. type: Plain text
-#: doc/guix.texi:6461
+#: doc/guix.texi:7946
 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:6464
+#: doc/guix.texi:7949
 #, no-wrap
 msgid "--quiet"
 msgstr "--quiet"
 
 #. type: itemx
-#: doc/guix.texi:6465
+#: doc/guix.texi:7950
 #, no-wrap
 msgid "-q"
 msgstr "-q"
 
 #. type: table
-#: doc/guix.texi:6469
-msgid "Build quietly, without displaying the build log.  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.  À 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:7954
+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}."
 
 #. type: item
-#: doc/guix.texi:6470
+#: doc/guix.texi:7955
 #, no-wrap
 msgid "--file=@var{file}"
 msgstr "--file=@var{fichier}"
 
 #. type: table
-#: doc/guix.texi:6474
+#: doc/guix.texi:7959
 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:6477
+#: doc/guix.texi:7962
 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:6485
+#: doc/guix.texi:7970
 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:6489
+#: doc/guix.texi:7974
 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:6493
+#: doc/guix.texi:7978
 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:6497
+#: doc/guix.texi:7982
 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:6498
+#: doc/guix.texi:7983
 #, no-wrap
 msgid "--source"
 msgstr "--source"
 
 #. type: itemx
-#: doc/guix.texi:6499
+#: doc/guix.texi:7984
 #, no-wrap
 msgid "-S"
 msgstr "-S"
 
 #. type: table
-#: doc/guix.texi:6502
+#: doc/guix.texi:7987
 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:6506
+#: doc/guix.texi:7991
 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:6510
+#: doc/guix.texi:7995
 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: item
-#: doc/guix.texi:6511
+#: doc/guix.texi:7996
 #, no-wrap
 msgid "--sources"
 msgstr "--sources"
 
 #. type: table
-#: doc/guix.texi:6518
+#: doc/guix.texi:8003
 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 :"
 
 #. type: item
-#: doc/guix.texi:6520 doc/guix.texi:7846
+#: doc/guix.texi:8005 doc/guix.texi:9367
 #, no-wrap
 msgid "package"
 msgstr "package"
 
 #. type: table
-#: doc/guix.texi:6523
+#: doc/guix.texi:8008
 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}."
 
 #. type: item
-#: doc/guix.texi:6524 doc/guix.texi:13054
+#: doc/guix.texi:8009 doc/guix.texi:13821
 #, no-wrap
 msgid "all"
 msgstr "all"
 
 #. type: table
-#: doc/guix.texi:6527
+#: doc/guix.texi:8012
 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:6533
+#: doc/guix.texi:8018
 #, no-wrap
 msgid ""
 "$ guix build --sources tzdata\n"
@@ -12242,18 +14903,18 @@ msgstr ""
 "   /gnu/store/@dots{}-tzcode2015b.tar.gz.drv\n"
 
 #. type: item
-#: doc/guix.texi:6535
+#: doc/guix.texi:8020
 #, no-wrap
 msgid "transitive"
 msgstr "transitive"
 
 #. type: table
-#: doc/guix.texi:6539
-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 "Construit les dérivations des sources de tous les paquets, ainsi que toutes celles les entrées transitives des paquets.  On peut utiliser cette option pour précharger les sources des paquets pour les construire plus tard hors ligne par exemple."
+#: doc/guix.texi:8024
+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:6550
+#: doc/guix.texi:8035
 #, no-wrap
 msgid ""
 "$ guix build --sources=transitive tzdata\n"
@@ -12276,155 +14937,154 @@ msgstr ""
 "   /gnu/store/@dots{}-bash-4.3.tar.xz.drv\n"
 "@dots{}\n"
 
+#. type: table
+#: doc/guix.texi:8045
+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:6563
+#: doc/guix.texi:8050
 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."
 
 #. type: table
-#: doc/guix.texi:6570
+#: doc/guix.texi:8057
 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."
 
 #. type: quotation
-#: doc/guix.texi:6575
+#: doc/guix.texi:8062
 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:6581
+#: doc/guix.texi:8068
 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:6585
+#: doc/guix.texi:8072
 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: anchor{#1}
-#: doc/guix.texi:6593
+#: doc/guix.texi:8080
 msgid "build-check"
 msgstr "vérification de la construction"
 
 #. type: item
-#: doc/guix.texi:6593
+#: doc/guix.texi:8080
 #, no-wrap
 msgid "--check"
 msgstr "--check"
 
 #. type: cindex
-#: doc/guix.texi:6594
+#: doc/guix.texi:8081
 #, no-wrap
 msgid "determinism, checking"
 msgstr "déterminisme, vérification"
 
 #. type: cindex
-#: doc/guix.texi:6595
+#: doc/guix.texi:8082
 #, no-wrap
 msgid "reproducibility, checking"
 msgstr "reproductibilité, vérification"
 
 #. type: table
-#: doc/guix.texi:6599
+#: doc/guix.texi:8086
 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:6604
+#: doc/guix.texi:8091
 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:6609
+#: doc/guix.texi:8096
 #, no-wrap
 msgid "--repair"
 msgstr "--repair"
 
 #. type: cindex
-#: doc/guix.texi:6610
+#: doc/guix.texi:8097
 #, no-wrap
 msgid "repairing store items"
 msgstr "réparer les éléments du dépôt"
 
 #. type: table
-#: doc/guix.texi:6614
+#: doc/guix.texi:8101
 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:6616
+#: doc/guix.texi:8103
 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:6617
+#: doc/guix.texi:8104
 #, no-wrap
 msgid "--derivations"
 msgstr "--derivations"
 
+#. type: itemx
+#: doc/guix.texi:8105 doc/guix.texi:24423
+#, no-wrap
+msgid "-d"
+msgstr "-d"
+
 #. type: table
-#: doc/guix.texi:6621
+#: doc/guix.texi:8108
 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: item
-#: doc/guix.texi:6622 doc/guix.texi:8110 doc/guix.texi:22567
-#, no-wrap
-msgid "--root=@var{file}"
-msgstr "--root=@var{fichier}"
-
-#. type: itemx
-#: doc/guix.texi:6623 doc/guix.texi:8111 doc/guix.texi:22568
-#, no-wrap
-msgid "-r @var{file}"
-msgstr "-r @var{fichier}"
-
 #. type: cindex
-#: doc/guix.texi:6624
+#: doc/guix.texi:8111
 #, no-wrap
 msgid "GC roots, adding"
 msgstr "racines du GC, ajout"
 
 #. type: cindex
-#: doc/guix.texi:6625
+#: doc/guix.texi:8112
 #, no-wrap
 msgid "garbage collector roots, adding"
 msgstr "ajout de racines au ramasse-miettes"
 
 #. type: table
-#: doc/guix.texi:6628 doc/guix.texi:22571
+#: doc/guix.texi:8115 doc/guix.texi:24454
 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:6634
+#: doc/guix.texi:8121
 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:6635
+#: doc/guix.texi:8122
 #, no-wrap
 msgid "--log-file"
 msgstr "--log-file"
 
 #. type: cindex
-#: doc/guix.texi:6636
+#: doc/guix.texi:8123
 #, no-wrap
 msgid "build logs, access"
 msgstr "journaux de construction, accès"
 
 #. type: table
-#: doc/guix.texi:6640
+#: doc/guix.texi:8127
 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:6643
+#: doc/guix.texi:8130
 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:6649
+#: doc/guix.texi:8136
 #, no-wrap
 msgid ""
 "guix build --log-file `guix build -d guile`\n"
@@ -12438,53 +15098,53 @@ msgstr ""
 "guix build --log-file -e '(@@ (gnu packages guile) guile-2.0)'\n"
 
 #. type: table
-#: doc/guix.texi:6654
+#: doc/guix.texi:8141
 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}.)"
 
 #. type: table
-#: doc/guix.texi:6657
+#: doc/guix.texi:8144
 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:6661
+#: doc/guix.texi:8148
 #, no-wrap
 msgid ""
 "$ guix build --log-file gdb -s mips64el-linux\n"
-"https://hydra.gnu.org/log/@dots{}-gdb-7.10\n"
+"https://@value{SUBSTITUTE-SERVER}/log/@dots{}-gdb-7.10\n"
 msgstr ""
 "$ guix build --log-file gdb -s mips64el-linux\n"
-"https://hydra.gnu.org/log/@dots{}-gdb-7.10\n"
+"https://@value{SUBSTITUTE-SERVER}/log/@dots{}-gdb-7.10\n"
 
 #. type: table
-#: doc/guix.texi:6664
+#: doc/guix.texi:8151
 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:6669
+#: doc/guix.texi:8156
 #, no-wrap
 msgid "build failures, debugging"
 msgstr "échecs de construction, débogage"
 
 #. type: Plain text
-#: doc/guix.texi:6675
+#: doc/guix.texi:8162
 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:6680
+#: doc/guix.texi:8167
 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}})."
 
 #. type: Plain text
-#: doc/guix.texi:6686
+#: doc/guix.texi:8173
 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:6693
+#: doc/guix.texi:8180
 #, no-wrap
 msgid ""
 "$ guix build foo -K\n"
@@ -12500,22 +15160,22 @@ msgstr ""
 "$ cd foo-1.2\n"
 
 #. type: Plain text
-#: doc/guix.texi:6697
+#: doc/guix.texi:8184
 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:6703
+#: doc/guix.texi:8190
 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:6706
+#: doc/guix.texi:8193
 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:6714
+#: doc/guix.texi:8201
 #, no-wrap
 msgid ""
 "$ guix build -K foo\n"
@@ -12533,251 +15193,251 @@ msgstr ""
 "[env]# cd foo-1.2\n"
 
 #. type: Plain text
-#: doc/guix.texi:6723
+#: doc/guix.texi:8210
 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)."
 
 #. type: Plain text
-#: doc/guix.texi:6726
+#: doc/guix.texi:8213
 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:6729
+#: doc/guix.texi:8216
 #, no-wrap
 msgid "[env]# rm /bin/sh\n"
 msgstr "[env]# rm /bin/sh\n"
 
 #. type: Plain text
-#: doc/guix.texi:6733
+#: doc/guix.texi:8220
 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}."
 
 #. type: Plain text
-#: doc/guix.texi:6736
+#: doc/guix.texi:8223
 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:6739
+#: doc/guix.texi:8226
 #, 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:6744
+#: doc/guix.texi:8231
 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:6747
+#: doc/guix.texi:8234
 #, no-wrap
 msgid "Invoking @command{guix edit}"
 msgstr "Invoquer @command{guix edit}"
 
 #. type: command{#1}
-#: doc/guix.texi:6749
+#: doc/guix.texi:8236
 #, no-wrap
 msgid "guix edit"
 msgstr "guix edit"
 
 #. type: cindex
-#: doc/guix.texi:6750
+#: doc/guix.texi:8237
 #, no-wrap
 msgid "package definition, editing"
 msgstr "définition de paquets, modification"
 
 #. type: Plain text
-#: doc/guix.texi:6755
+#: doc/guix.texi:8242
 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:6758
+#: doc/guix.texi:8245
 #, no-wrap
 msgid "guix edit gcc@@4.9 vim\n"
 msgstr "guix edit gcc@@4.9 vim\n"
 
 #. type: Plain text
-#: doc/guix.texi:6764
+#: doc/guix.texi:8251
 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."
 
 #. type: Plain text
-#: doc/guix.texi:6770
+#: doc/guix.texi:8257
 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."
 
 #. type: section
-#: doc/guix.texi:6773
+#: doc/guix.texi:8260
 #, no-wrap
 msgid "Invoking @command{guix download}"
 msgstr "Invoquer @command{guix download}"
 
 #. type: command{#1}
-#: doc/guix.texi:6775
+#: doc/guix.texi:8262
 #, no-wrap
 msgid "guix download"
 msgstr "guix download"
 
 #. type: cindex
-#: doc/guix.texi:6776
+#: doc/guix.texi:8263
 #, no-wrap
 msgid "downloading package sources"
 msgstr "télécharger les sources des paquets"
 
 #. type: Plain text
-#: doc/guix.texi:6783
+#: doc/guix.texi:8270
 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 "En écrivant des définitions de paquets, les développeurs ont 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:6790
+#: doc/guix.texi:8277
 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 préserve la bande passante : lorsque les développeurs finissent par construire le paquet nouvellement défini avec @command{guix build}, l'archive des sources n'aura pas besoin d'être téléchargée de nouveau puisqu'elle se trouvera 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:6798
+#: doc/guix.texi:8285
 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:6803
+#: doc/guix.texi:8290
 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é."
 
 #. type: Plain text
-#: doc/guix.texi:6805 doc/guix.texi:8390
+#: doc/guix.texi:8292 doc/guix.texi:9609
 msgid "The following options are available:"
 msgstr "Les options suivantes sont disponibles :"
 
 #. type: item
-#: doc/guix.texi:6807 doc/guix.texi:6846
+#: doc/guix.texi:8294 doc/guix.texi:8333
 #, no-wrap
 msgid "--format=@var{fmt}"
 msgstr "--format=@var{fmt}"
 
 #. type: itemx
-#: doc/guix.texi:6808 doc/guix.texi:6847
+#: doc/guix.texi:8295 doc/guix.texi:8334
 #, no-wrap
 msgid "-f @var{fmt}"
 msgstr "-f @var{fmt}"
 
 #. type: table
-#: doc/guix.texi:6811
+#: doc/guix.texi:8298
 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:6812
+#: doc/guix.texi:8299
 #, no-wrap
 msgid "--no-check-certificate"
 msgstr "--no-check-certificate"
 
 #. type: table
-#: doc/guix.texi:6814
+#: doc/guix.texi:8301
 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:6818
+#: doc/guix.texi:8305
 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:6819
+#: doc/guix.texi:8306
 #, no-wrap
 msgid "--output=@var{file}"
 msgstr "--output=@var{fichier}"
 
 #. type: itemx
-#: doc/guix.texi:6820
+#: doc/guix.texi:8307
 #, no-wrap
 msgid "-o @var{file}"
 msgstr "-o @var{fichier}"
 
 #. type: table
-#: doc/guix.texi:6823
+#: doc/guix.texi:8310
 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:6826
+#: doc/guix.texi:8313
 #, no-wrap
 msgid "Invoking @command{guix hash}"
 msgstr "Invoquer @command{guix hash}"
 
 #. type: command{#1}
-#: doc/guix.texi:6828
+#: doc/guix.texi:8315
 #, no-wrap
 msgid "guix hash"
 msgstr "guix hash"
 
 #. type: Plain text
-#: doc/guix.texi:6833
+#: doc/guix.texi:8320
 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})."
 
 #. type: example
-#: doc/guix.texi:6838
+#: doc/guix.texi:8325
 #, no-wrap
 msgid "guix hash @var{option} @var{file}\n"
 msgstr "guix hash @var{option} @var{fichier}\n"
 
 #. type: Plain text
-#: doc/guix.texi:6843
+#: doc/guix.texi:8330
 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:6849
+#: doc/guix.texi:8336
 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:6852
+#: doc/guix.texi:8339
 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)."
 
 #. type: table
-#: doc/guix.texi:6856
+#: doc/guix.texi:8343
 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:6860
+#: doc/guix.texi:8347
 msgid "Compute the hash on @var{file} recursively."
 msgstr "Calcule le hash sur @var{fichier} récursivement."
 
 #. type: table
-#: doc/guix.texi:6869
+#: doc/guix.texi:8356
 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:6870
+#: doc/guix.texi:8357
 #, no-wrap
 msgid "--exclude-vcs"
 msgstr "--exclude-vcs"
 
 #. type: itemx
-#: doc/guix.texi:6871
+#: doc/guix.texi:8358
 #, no-wrap
 msgid "-x"
 msgstr "-x"
 
 #. type: table
-#: doc/guix.texi:6874
+#: doc/guix.texi:8361
 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)."
 
 #. type: table
-#: doc/guix.texi:6879
+#: doc/guix.texi:8366
 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:6884
+#: doc/guix.texi:8371
 #, no-wrap
 msgid ""
 "$ git clone http://example.org/foo.git\n"
@@ -12789,299 +15449,299 @@ msgstr ""
 "$ guix hash -rx .\n"
 
 #. type: cindex
-#: doc/guix.texi:6888 doc/guix.texi:6893
+#: doc/guix.texi:8375 doc/guix.texi:8380
 #, no-wrap
 msgid "Invoking @command{guix import}"
 msgstr "Invoquer @command{guix import}"
 
 #. type: cindex
-#: doc/guix.texi:6890
+#: doc/guix.texi:8377
 #, no-wrap
 msgid "importing packages"
 msgstr "importer des paquets"
 
 #. type: cindex
-#: doc/guix.texi:6891
+#: doc/guix.texi:8378
 #, no-wrap
 msgid "package import"
 msgstr "paquets importés"
 
 #. type: cindex
-#: doc/guix.texi:6892
+#: doc/guix.texi:8379
 #, no-wrap
 msgid "package conversion"
 msgstr "conversion de paquets"
 
 #. type: Plain text
-#: doc/guix.texi:6900
+#: doc/guix.texi:8387
 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:6905
+#: doc/guix.texi:8392
 #, 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:6911
+#: doc/guix.texi:8398
 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 :"
 
 #. type: item
-#: doc/guix.texi:6913 doc/guix.texi:7404
+#: doc/guix.texi:8400 doc/guix.texi:8900
 #, no-wrap
 msgid "gnu"
 msgstr "gnu"
 
 #. type: table
-#: doc/guix.texi:6917
+#: doc/guix.texi:8404
 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:6920
+#: doc/guix.texi:8407
 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:6923
+#: doc/guix.texi:8410
 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:6926
+#: doc/guix.texi:8413
 #, no-wrap
 msgid "guix import gnu hello\n"
 msgstr "guix import gnu hello\n"
 
 #. type: table
-#: doc/guix.texi:6929 doc/guix.texi:7163 doc/guix.texi:7213 doc/guix.texi:7242
+#: doc/guix.texi:8416 doc/guix.texi:8643 doc/guix.texi:8693 doc/guix.texi:8722
 msgid "Specific command-line options are:"
 msgstr "Les options spécifiques sont :"
 
 #. type: item
-#: doc/guix.texi:6931 doc/guix.texi:7535
+#: doc/guix.texi:8418 doc/guix.texi:9049
 #, no-wrap
 msgid "--key-download=@var{policy}"
 msgstr "--key-download=@var{politique}"
 
 #. type: table
-#: doc/guix.texi:6935
+#: doc/guix.texi:8422
 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}}."
 
 #. type: item
-#: doc/guix.texi:6937 doc/guix.texi:6938 doc/guix.texi:7422
+#: doc/guix.texi:8424 doc/guix.texi:8425 doc/guix.texi:8918
 #, no-wrap
 msgid "pypi"
 msgstr "pypi"
 
 #. type: table
-#: doc/guix.texi:6946
-msgid "Import metadata from the @uref{https://pypi.python.org/, Python Package Index}@footnote{This functionality requires Guile-JSON to be installed.  @xref{Requirements}.}.  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}@footnote{Cette fonctionnalité requiert l'installation de Guile-JSON. @xref{Requirements}.}.  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."
+#: doc/guix.texi:8432
+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:6949
+#: doc/guix.texi:8435
 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:6952
+#: doc/guix.texi:8438
 #, no-wrap
 msgid "guix import pypi itsdangerous\n"
 msgstr "guix import pypi itsdangerous\n"
 
 #. type: table
-#: doc/guix.texi:6960 doc/guix.texi:6987 doc/guix.texi:7186 doc/guix.texi:7227
-#: doc/guix.texi:7274
+#: doc/guix.texi:8446 doc/guix.texi:8471 doc/guix.texi:8666 doc/guix.texi:8707
+#: doc/guix.texi:8754
 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:6962 doc/guix.texi:6963 doc/guix.texi:7424
+#: doc/guix.texi:8448 doc/guix.texi:8449 doc/guix.texi:8920
 #, no-wrap
 msgid "gem"
 msgstr "gem"
 
 #. type: table
-#: doc/guix.texi:6974
-msgid "Import metadata from @uref{https://rubygems.org/, RubyGems}@footnote{This functionality requires Guile-JSON to be installed.  @xref{Requirements}.}.  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}@footnote{Cette fonctionnalité requiert l'installation de Guile-JSON.  @xref{Requirements}.}.  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 pièges cependant.  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."
+#: doc/guix.texi:8458
+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:6976
+#: doc/guix.texi:8460
 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:6979
+#: doc/guix.texi:8463
 #, no-wrap
 msgid "guix import gem rails\n"
 msgstr "guix import gem rails\n"
 
 #. type: item
-#: doc/guix.texi:6989 doc/guix.texi:7420
+#: doc/guix.texi:8473 doc/guix.texi:8916
 #, no-wrap
 msgid "cpan"
 msgstr "cpan"
 
 #. type: cindex
-#: doc/guix.texi:6990
+#: doc/guix.texi:8474
 #, no-wrap
 msgid "CPAN"
 msgstr "CPAN"
 
 #. type: table
-#: doc/guix.texi:7000
-msgid "Import metadata from @uref{https://www.metacpan.org/, MetaCPAN}@footnote{This functionality requires Guile-JSON to be installed.  @xref{Requirements}.}.  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}@footnote{Cette fonctionnalité requiert l'installation de Guile-JSON.  @xref{Requirements}.}.  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."
+#: doc/guix.texi:8482
+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:7003
+#: doc/guix.texi:8485
 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} :"
 
 #. type: example
-#: doc/guix.texi:7006
+#: doc/guix.texi:8488
 #, no-wrap
 msgid "guix import cpan Acme::Boolean\n"
 msgstr "guix import cpan Acme::Boolean\n"
 
 #. type: item
-#: doc/guix.texi:7008 doc/guix.texi:7416
+#: doc/guix.texi:8490 doc/guix.texi:8912
 #, no-wrap
 msgid "cran"
 msgstr "cran"
 
 #. type: cindex
-#: doc/guix.texi:7009
+#: doc/guix.texi:8491
 #, no-wrap
 msgid "CRAN"
 msgstr "CRAN"
 
 #. type: cindex
-#: doc/guix.texi:7010
+#: doc/guix.texi:8492
 #, no-wrap
 msgid "Bioconductor"
 msgstr "Bioconductor"
 
 #. type: table
-#: doc/guix.texi:7014
+#: doc/guix.texi:8496
 msgid "Import metadata from @uref{https://cran.r-project.org/, CRAN}, the central repository for the @uref{http://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{http://r-project.org, l'environnement statistique et graphique GUN@tie{}R}."
 
 #. type: table
-#: doc/guix.texi:7016
+#: doc/guix.texi:8498
 msgid "Information is extracted from the @code{DESCRIPTION} file of the package."
 msgstr "Les informations sont extraites du fichier @file{DESCRIPTION} du paquet."
 
 #. type: table
-#: doc/guix.texi:7019
+#: doc/guix.texi:8501
 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} :"
 
 #. type: example
-#: doc/guix.texi:7022
+#: doc/guix.texi:8504
 #, no-wrap
 msgid "guix import cran Cairo\n"
 msgstr "guix import cran Cairo\n"
 
 #. type: table
-#: doc/guix.texi:7027
+#: doc/guix.texi:8509
 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."
 
 #. type: table
-#: doc/guix.texi:7032
+#: doc/guix.texi:8514
 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."
 
 #. type: table
-#: doc/guix.texi:7035
+#: doc/guix.texi:8517
 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."
 
 #. type: table
-#: doc/guix.texi:7038
+#: doc/guix.texi:8520
 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} :"
 
 #. type: example
-#: doc/guix.texi:7041
+#: doc/guix.texi:8523
 #, no-wrap
 msgid "guix import cran --archive=bioconductor GenomicRanges\n"
 msgstr "guix import cran --archive=bioconductor GenomicRanges\n"
 
 #. type: item
-#: doc/guix.texi:7043
+#: doc/guix.texi:8525
 #, no-wrap
 msgid "texlive"
 msgstr "texlive"
 
 #. type: cindex
-#: doc/guix.texi:7044
+#: doc/guix.texi:8526
 #, no-wrap
 msgid "TeX Live"
 msgstr "TeX Live"
 
 #. type: cindex
-#: doc/guix.texi:7045
+#: doc/guix.texi:8527
 #, no-wrap
 msgid "CTAN"
 msgstr "CTAN"
 
 #. type: table
-#: doc/guix.texi:7049
+#: doc/guix.texi:8531
 msgid "Import metadata from @uref{http://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{http://www.ctan.org/, CTAN}, l'archive TeX réseau complète pour les paquets TeX qui font partie de la @uref{https://www.tug.org/texlive/, distribution TeX Live}."
 
 #. type: table
-#: doc/guix.texi:7054
+#: doc/guix.texi:8536
 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:7057
+#: doc/guix.texi:8539
 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:7060
+#: doc/guix.texi:8542
 #, no-wrap
 msgid "guix import texlive fontspec\n"
 msgstr "guix import texlive fontspec\n"
 
 #. type: table
-#: doc/guix.texi:7066
+#: doc/guix.texi:8548
 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."
 
 #. type: table
-#: doc/guix.texi:7070
+#: doc/guix.texi:8552
 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:7073
+#: doc/guix.texi:8555
 #, no-wrap
 msgid "guix import texlive --archive=generic ifxetex\n"
 msgstr "guix import texlive --archive=generic ifxetex\n"
 
 #. type: cindex
-#: doc/guix.texi:7076
+#: doc/guix.texi:8558
 #, no-wrap
 msgid "JSON, import"
 msgstr "JSON, import"
 
 #. type: table
-#: doc/guix.texi:7081
-msgid "Import package metadata from a local JSON file@footnote{This functionality requires Guile-JSON to be installed.  @xref{Requirements}.}.  Consider the following example package definition in JSON format:"
-msgstr "Importe des métadonnées d'un fichier JSON local@footnote{Cette fonctionnalité requiert l'installation de Guile-JSON.  @xref{Requirements}.}.  Considérez l'exemple suivant d'une définition de paquet au format JSON :"
+#: doc/guix.texi:8561
+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:7094
+#: doc/guix.texi:8574
 #, no-wrap
 msgid ""
 "@{\n"
@@ -13109,17 +15769,17 @@ msgstr ""
 "@}\n"
 
 #. type: table
-#: doc/guix.texi:7100
+#: doc/guix.texi:8580
 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:7103
+#: doc/guix.texi:8583
 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:7116
+#: doc/guix.texi:8596
 #, no-wrap
 msgid ""
 "@{\n"
@@ -13147,288 +15807,288 @@ msgstr ""
 "@}\n"
 
 #. type: table
-#: doc/guix.texi:7120
+#: doc/guix.texi:8600
 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:7123
+#: doc/guix.texi:8603
 #, no-wrap
 msgid "guix import json hello.json\n"
 msgstr "guix import json hello.json\n"
 
 #. type: item
-#: doc/guix.texi:7125
+#: doc/guix.texi:8605
 #, no-wrap
 msgid "nix"
 msgstr "nix"
 
 #. type: table
-#: doc/guix.texi:7134
+#: doc/guix.texi:8614
 msgid "Import metadata from a local copy of the source of the @uref{http://nixos.org/nixpkgs/, Nixpkgs distribution}@footnote{This relies on the @command{nix-instantiate} command of @uref{http://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{http://nixos.org/nixpkgs/, la distribution Nixpkgs}@footnote{Cela repose sur la commande @command{nix-instantiate} de @uref{http://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:7137
+#: doc/guix.texi:8617
 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:7139
+#: doc/guix.texi:8619
 msgid "Usually, you will first need to do:"
 msgstr "Normalement, vous devrez d'abord faire :"
 
 #. type: example
-#: doc/guix.texi:7142
+#: doc/guix.texi:8622
 #, no-wrap
 msgid "export NIX_REMOTE=daemon\n"
 msgstr "export NIX_REMOTE=daemon\n"
 
 #. type: table
-#: doc/guix.texi:7146
+#: doc/guix.texi:8626
 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:7150
+#: doc/guix.texi:8630
 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:7153
+#: doc/guix.texi:8633
 #, 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:7155 doc/guix.texi:7156 doc/guix.texi:7428
+#: doc/guix.texi:8635 doc/guix.texi:8636 doc/guix.texi:8924
 #, no-wrap
 msgid "hackage"
 msgstr "hackage"
 
 #. type: table
-#: doc/guix.texi:7161
+#: doc/guix.texi:8641
 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:7165
+#: doc/guix.texi:8645
 #, no-wrap
 msgid "--stdin"
 msgstr "--stdin"
 
 #. type: itemx
-#: doc/guix.texi:7166
+#: doc/guix.texi:8646
 #, no-wrap
 msgid "-s"
 msgstr "-s"
 
 #. type: table
-#: doc/guix.texi:7168
+#: doc/guix.texi:8648
 msgid "Read a Cabal file from standard input."
 msgstr "Lit un fichier Cabal depuis l'entrée standard."
 
 #. type: item
-#: doc/guix.texi:7168 doc/guix.texi:7215
+#: doc/guix.texi:8648 doc/guix.texi:8695
 #, no-wrap
 msgid "--no-test-dependencies"
 msgstr "--no-test-dependencies"
 
 #. type: itemx
-#: doc/guix.texi:7169 doc/guix.texi:7216
+#: doc/guix.texi:8649 doc/guix.texi:8696
 #, no-wrap
 msgid "-t"
 msgstr "-t"
 
 #. type: table
-#: doc/guix.texi:7171 doc/guix.texi:7218
+#: doc/guix.texi:8651 doc/guix.texi:8698
 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:7171
+#: doc/guix.texi:8651
 #, no-wrap
 msgid "--cabal-environment=@var{alist}"
 msgstr "--cabal-environment=@var{alist}"
 
 #. type: itemx
-#: doc/guix.texi:7172
+#: doc/guix.texi:8652
 #, no-wrap
 msgid "-e @var{alist}"
 msgstr "-e @var{alist}"
 
 #. type: table
-#: doc/guix.texi:7181
+#: doc/guix.texi:8661
 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:7191
+#: doc/guix.texi:8671
 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} :"
 
 #. type: example
-#: doc/guix.texi:7194
+#: doc/guix.texi:8674
 #, 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:7198
+#: doc/guix.texi:8678
 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:7201
+#: doc/guix.texi:8681
 #, 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:7203 doc/guix.texi:7204 doc/guix.texi:7430
+#: doc/guix.texi:8683 doc/guix.texi:8684 doc/guix.texi:8926
 #, no-wrap
 msgid "stackage"
 msgstr "stackage"
 
 #. type: table
-#: doc/guix.texi:7211
+#: doc/guix.texi:8691
 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:7218
+#: doc/guix.texi:8698
 #, no-wrap
 msgid "--lts-version=@var{version}"
 msgstr "--lts-version=@var{version}"
 
 #. type: itemx
-#: doc/guix.texi:7219
+#: doc/guix.texi:8699
 #, no-wrap
 msgid "-l @var{version}"
 msgstr "-l @var{version}"
 
 #. type: table
-#: doc/guix.texi:7222
+#: doc/guix.texi:8702
 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:7231
+#: doc/guix.texi:8711
 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 :"
 
 #. type: example
-#: doc/guix.texi:7234
+#: doc/guix.texi:8714
 #, 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:7236 doc/guix.texi:7237 doc/guix.texi:7414
+#: doc/guix.texi:8716 doc/guix.texi:8717 doc/guix.texi:8910
 #, no-wrap
 msgid "elpa"
 msgstr "elpa"
 
 #. type: table
-#: doc/guix.texi:7240
+#: doc/guix.texi:8720
 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:7244
+#: doc/guix.texi:8724
 #, no-wrap
 msgid "--archive=@var{repo}"
 msgstr "--archive=@var{repo}"
 
 #. type: itemx
-#: doc/guix.texi:7245
+#: doc/guix.texi:8725
 #, no-wrap
 msgid "-a @var{repo}"
 msgstr "-a @var{repo}"
 
 #. type: table
-#: doc/guix.texi:7249
+#: doc/guix.texi:8729
 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:7253
+#: doc/guix.texi:8733
 msgid "@uref{http://elpa.gnu.org/packages, GNU}, selected by the @code{gnu} identifier.  This is the default."
 msgstr "@uref{http://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:7259
+#: doc/guix.texi:8739
 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:7263
+#: doc/guix.texi:8743
 msgid "@uref{http://stable.melpa.org/packages, MELPA-Stable}, selected by the @code{melpa-stable} identifier."
 msgstr "@uref{http://stable.melpa.org/packages, MELPA-Stable}, qu'on peut sélectionner avec l'identifiant @code{melpa-stable}."
 
 #. type: itemize
-#: doc/guix.texi:7267
+#: doc/guix.texi:8747
 msgid "@uref{http://melpa.org/packages, MELPA}, selected by the @code{melpa} identifier."
 msgstr "@uref{http://melpa.org/packages, MELPA}, qu'on peut sélectionner avec l'identifiant @code{melpa}."
 
 #. type: item
-#: doc/guix.texi:7276 doc/guix.texi:7277 doc/guix.texi:7432
+#: doc/guix.texi:8756 doc/guix.texi:8757 doc/guix.texi:8928
 #, no-wrap
 msgid "crate"
 msgstr "crate"
 
 #. type: table
-#: doc/guix.texi:7280
+#: doc/guix.texi:8760
 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}."
 
 #. type: item
-#: doc/guix.texi:7281
+#: doc/guix.texi:8761
 #, no-wrap
 msgid "opam"
 msgstr "opam"
 
 #. type: cindex
-#: doc/guix.texi:7282
+#: doc/guix.texi:8762
 #, no-wrap
 msgid "OPAM"
 msgstr "OPAM"
 
 #. type: cindex
-#: doc/guix.texi:7283
+#: doc/guix.texi:8763
 #, no-wrap
 msgid "OCaml"
 msgstr "OCaml"
 
 #. type: table
-#: doc/guix.texi:7286
+#: doc/guix.texi:8766
 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"
+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:7291
+#: doc/guix.texi:8771
 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:7293
+#: doc/guix.texi:8773
 #, no-wrap
 msgid "Invoking @command{guix refresh}"
 msgstr "Invoquer @command{guix refresh}"
 
 #. type: command{#1}
-#: doc/guix.texi:7295
+#: doc/guix.texi:8775
 #, no-wrap
 msgid "guix refresh"
 msgstr "guix refresh"
 
 #. type: Plain text
-#: doc/guix.texi:7300
+#: doc/guix.texi:8780
 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 "L'audience première de la commande @command{guix refresh} est l'ensemble des développeurs de 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:7305
+#: doc/guix.texi:8785
 #, no-wrap
 msgid ""
 "$ guix refresh\n"
@@ -13440,12 +16100,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:7309
+#: doc/guix.texi:8789
 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é :"
 
 #. type: example
-#: doc/guix.texi:7314
+#: doc/guix.texi:8794
 #, no-wrap
 msgid ""
 "$ guix refresh coreutils guile guile-ssh\n"
@@ -13457,17 +16117,40 @@ 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:7323
+#: doc/guix.texi:8803
 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:8808
+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:8816
+#, no-wrap
+msgid ""
+"$ 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"
+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:7328
+#: doc/guix.texi:8824
 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:7335
+#: doc/guix.texi:8831
 #, no-wrap
 msgid ""
 "(define-public network-manager\n"
@@ -13483,226 +16166,237 @@ msgstr ""
 "    (properties '((upstream-name . \"NetworkManager\")))))\n"
 
 #. type: Plain text
-#: doc/guix.texi:7347
+#: doc/guix.texi:8843
 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."
 
 #. type: Plain text
-#: doc/guix.texi:7349
+#: doc/guix.texi:8845
 msgid "The following options are supported:"
 msgstr "Les options suivantes sont supportées :"
 
 #. type: table
-#: doc/guix.texi:7357 doc/guix.texi:7974
+#: doc/guix.texi:8853 doc/guix.texi:9511
 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:7360
+#: doc/guix.texi:8856
 #, 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:7364
+#: doc/guix.texi:8860
 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)."
 
 #. type: item
-#: doc/guix.texi:7365
+#: doc/guix.texi:8861
 #, no-wrap
 msgid "--update"
 msgstr "--update"
 
 #. type: itemx
-#: doc/guix.texi:7366
+#: doc/guix.texi:8862
 #, no-wrap
 msgid "-u"
 msgstr "-u"
 
 #. type: table
-#: doc/guix.texi:7370
+#: doc/guix.texi:8866
 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:7373
+#: doc/guix.texi:8869
 #, 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:7376
+#: doc/guix.texi:8872
 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:7377
+#: doc/guix.texi:8873
 #, no-wrap
 msgid "--select=[@var{subset}]"
 msgstr "--select=[@var{subset}]"
 
 #. type: itemx
-#: doc/guix.texi:7378
+#: doc/guix.texi:8874
 #, no-wrap
 msgid "-s @var{subset}"
 msgstr "-s @var{subset}"
 
 #. type: table
-#: doc/guix.texi:7381
+#: doc/guix.texi:8877
 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:7388
+#: doc/guix.texi:8884
 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:7392
+#: doc/guix.texi:8888
 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:7397
+#: doc/guix.texi:8893
 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:7398
+#: doc/guix.texi:8894
 #, no-wrap
 msgid "--type=@var{updater}"
 msgstr "--type=@var{updater}"
 
 #. type: itemx
-#: doc/guix.texi:7399
+#: doc/guix.texi:8895
 #, no-wrap
 msgid "-t @var{updater}"
 msgstr "-t @var{updater}"
 
 #. type: table
-#: doc/guix.texi:7402
+#: doc/guix.texi:8898
 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:7406
+#: doc/guix.texi:8902
 msgid "the updater for GNU packages;"
 msgstr "le gestionnaire de mise à jour pour les paquets GNU ;"
 
 #. type: item
-#: doc/guix.texi:7406
+#: doc/guix.texi:8902
 #, no-wrap
 msgid "gnome"
 msgstr "gnome"
 
 #. type: table
-#: doc/guix.texi:7408
+#: doc/guix.texi:8904
 msgid "the updater for GNOME packages;"
 msgstr "le gestionnaire de mise à jour pour les paquets GNOME ;"
 
 #. type: item
-#: doc/guix.texi:7408
+#: doc/guix.texi:8904
 #, no-wrap
 msgid "kde"
 msgstr "kde"
 
 #. type: table
-#: doc/guix.texi:7410
+#: doc/guix.texi:8906
 msgid "the updater for KDE packages;"
 msgstr "le gestionnaire de mise à jour pour les paquets KDE ;"
 
 #. type: item
-#: doc/guix.texi:7410
+#: doc/guix.texi:8906
 #, no-wrap
 msgid "xorg"
 msgstr "xorg"
 
 #. type: table
-#: doc/guix.texi:7412
+#: doc/guix.texi:8908
 msgid "the updater for X.org packages;"
 msgstr "le gestionnaire de mise à jour pour les paquets X.org ;"
 
 #. type: item
-#: doc/guix.texi:7412
+#: doc/guix.texi:8908
 #, no-wrap
 msgid "kernel.org"
 msgstr "kernel.org"
 
 #. type: table
-#: doc/guix.texi:7414
+#: doc/guix.texi:8910
 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:7416
+#: doc/guix.texi:8912
 msgid "the updater for @uref{http://elpa.gnu.org/, ELPA} packages;"
 msgstr "le gestionnaire de mise à jour pour les paquets @uref{http://elpa.gnu.org/, ELPA} ;"
 
 #. type: table
-#: doc/guix.texi:7418
+#: doc/guix.texi:8914
 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:7418
+#: doc/guix.texi:8914
 #, no-wrap
 msgid "bioconductor"
 msgstr "bioconductor"
 
 #. type: table
-#: doc/guix.texi:7420
+#: doc/guix.texi:8916
 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:7422
+#: doc/guix.texi:8918
 msgid "the updater for @uref{http://www.cpan.org/, CPAN} packages;"
 msgstr "le gestionnaire de mise à jour pour les paquets @uref{http://www.cpan.org/, CPAN} ;"
 
 #. type: table
-#: doc/guix.texi:7424
+#: doc/guix.texi:8920
 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} ;"
 
 #. type: table
-#: doc/guix.texi:7426
+#: doc/guix.texi:8922
 msgid "the updater for @uref{https://rubygems.org, RubyGems} packages."
 msgstr "le gestionnaire de mise à jour pour les paquets @uref{https://rubygems.org, RubyGems} ;"
 
 #. type: item
-#: doc/guix.texi:7426
+#: doc/guix.texi:8922
 #, no-wrap
 msgid "github"
 msgstr "github"
 
 #. type: table
-#: doc/guix.texi:7428
+#: doc/guix.texi:8924
 msgid "the updater for @uref{https://github.com, GitHub} packages."
 msgstr "le gestionnaire de mise à jour pour les paquets @uref{https://github.com, GitHub} ;"
 
 #. type: table
-#: doc/guix.texi:7430
+#: doc/guix.texi:8926
 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} ;"
 
 #. type: table
-#: doc/guix.texi:7432
+#: doc/guix.texi:8928
 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} ;"
 
 #. type: table
-#: doc/guix.texi:7434
+#: doc/guix.texi:8930
 msgid "the updater for @uref{https://crates.io, Crates} packages."
 msgstr "le gestionnaire de mise à jour pour les paquets @uref{https://crates.io, Crates} ;"
 
+#. type: item
+#: doc/guix.texi:8930
+#, no-wrap
+msgid "launchpad"
+msgstr "launchpad"
+
 #. type: table
-#: doc/guix.texi:7438
+#: doc/guix.texi:8932
+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:8936
 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:7443
+#: doc/guix.texi:8941
 #, no-wrap
 msgid ""
 "$ guix refresh --type=elpa,cran\n"
@@ -13714,77 +16408,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:7449
+#: doc/guix.texi:8947
 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:7452
+#: doc/guix.texi:8950
 #, 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:7458
+#: doc/guix.texi:8956
 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."
 
 #. type: Plain text
-#: doc/guix.texi:7463
+#: doc/guix.texi:8961
 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:7466
+#: doc/guix.texi:8964
 #, no-wrap
 msgid "--list-updaters"
 msgstr "--list-updaters"
 
 #. type: itemx
-#: doc/guix.texi:7467
+#: doc/guix.texi:8965
 #, no-wrap
 msgid "-L"
 msgstr "-L"
 
 #. type: table
-#: doc/guix.texi:7469
+#: doc/guix.texi:8967
 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)."
 
 #. type: table
-#: doc/guix.texi:7472
+#: doc/guix.texi:8970
 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:7473
+#: doc/guix.texi:8971
 #, no-wrap
 msgid "--list-dependent"
 msgstr "--list-dependent"
 
 #. type: itemx
-#: doc/guix.texi:7474 doc/guix.texi:7667
+#: doc/guix.texi:8972 doc/guix.texi:9188
 #, no-wrap
 msgid "-l"
 msgstr "-l"
 
 #. type: table
-#: doc/guix.texi:7477
+#: doc/guix.texi:8975
 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:7481
+#: doc/guix.texi:8979
 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:7487
+#: doc/guix.texi:8985
 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."
 
 #. type: example
-#: doc/guix.texi:7492
+#: doc/guix.texi:8990
 #, no-wrap
 msgid ""
 "$ guix refresh --list-dependent flex\n"
@@ -13796,60 +16490,88 @@ 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:7496
+#: doc/guix.texi:8994
 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:8997
+#, no-wrap
+msgid "--list-transitive"
+msgstr "--list-transitive"
+
+#. type: table
+#: doc/guix.texi:8999
+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:9004
+#, no-wrap
+msgid ""
+"$ guix refresh --list-transitive flex\n"
+"flex@@2.6.4 depends on the following 25 packages: perl@@5.28.0 help2man@@1.47.6\n"
+"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"
+msgstr ""
+"$ guix refresh --list-transitive flex\n"
+"flex@@2.6.4 depends on the following 25 packages: perl@@5.28.0 help2man@@1.47.6\n"
+"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:7498
+#: doc/guix.texi:9010
+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:9012
 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:7501
+#: doc/guix.texi:9015
 #, no-wrap
 msgid "--gpg=@var{command}"
 msgstr "--gpg=@var{commande}"
 
 #. type: table
-#: doc/guix.texi:7504
+#: doc/guix.texi:9018
 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:7505
+#: doc/guix.texi:9019
 #, no-wrap
 msgid "--keyring=@var{file}"
 msgstr "--keyring=@var{fichier}"
 
 #. type: table
-#: doc/guix.texi:7511
+#: doc/guix.texi:9025
 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:7517
+#: doc/guix.texi:9031
 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)."
 
 #. type: table
-#: doc/guix.texi:7520
+#: doc/guix.texi:9034
 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:7523
+#: doc/guix.texi:9037
 #, 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:7526
+#: doc/guix.texi:9040
 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:7530
+#: doc/guix.texi:9044
 #, no-wrap
 msgid ""
 "gpg --no-default-keyring --keyring mykeyring.kbx \\\n"
@@ -13859,170 +16581,187 @@ msgstr ""
 "  --recv-keys @value{OPENPGP-SIGNING-KEY-ID}\n"
 
 #. type: table
-#: doc/guix.texi:7534
+#: doc/guix.texi:9048
 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:7538
+#: doc/guix.texi:9052
 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:7540 doc/guix.texi:15086
+#: doc/guix.texi:9054 doc/guix.texi:15982
 #, no-wrap
 msgid "always"
 msgstr "always"
 
 #. type: table
-#: doc/guix.texi:7543
+#: doc/guix.texi:9057
 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:7544 doc/guix.texi:15088
+#: doc/guix.texi:9058 doc/guix.texi:15984
 #, no-wrap
 msgid "never"
 msgstr "never"
 
 #. type: table
-#: doc/guix.texi:7546
+#: doc/guix.texi:9060
 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:7547
+#: doc/guix.texi:9061
 #, no-wrap
 msgid "interactive"
 msgstr "interactive"
 
 #. type: table
-#: doc/guix.texi:7550
+#: doc/guix.texi:9064
 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:7552
+#: doc/guix.texi:9066
 #, no-wrap
 msgid "--key-server=@var{host}"
 msgstr "--key-server=@var{host}"
 
 #. type: table
-#: doc/guix.texi:7554
+#: doc/guix.texi:9068
 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:7567
-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:9081
+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."
 
 #. type: section
-#: doc/guix.texi:7570
+#: doc/guix.texi:9084
 #, no-wrap
 msgid "Invoking @command{guix lint}"
 msgstr "Invoquer @command{guix lint}"
 
 #. type: command{#1}
-#: doc/guix.texi:7572
+#: doc/guix.texi:9086
 #, no-wrap
 msgid "guix lint"
 msgstr "guix lint"
 
 #. type: cindex
-#: doc/guix.texi:7573
+#: doc/guix.texi:9087
 #, no-wrap
 msgid "package, checking for errors"
 msgstr "paquets, chercher des erreurs"
 
 #. type: Plain text
-#: doc/guix.texi:7579
+#: doc/guix.texi:9093
 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éveloppeurs à éviter des erreurs commune 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) :"
 
 #. type: table
-#: doc/guix.texi:7585
+#: doc/guix.texi:9099
 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:7586
+#: doc/guix.texi:9100
 #, no-wrap
 msgid "inputs-should-be-native"
 msgstr "inputs-should-be-native"
 
 #. type: table
-#: doc/guix.texi:7588
+#: doc/guix.texi:9102
 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:7591
+#: doc/guix.texi:9105
 #, no-wrap
 msgid "mirror-url"
 msgstr "mirror-url"
 
 #. type: itemx
-#: doc/guix.texi:7592
+#: doc/guix.texi:9106
+#, no-wrap
+msgid "github-url"
+msgstr "github-url"
+
+#. type: itemx
+#: doc/guix.texi:9107
 #, no-wrap
 msgid "source-file-name"
 msgstr "source-file-name"
 
 #. type: table
-#: doc/guix.texi:7598
-msgid "Probe @code{home-page} and @code{source} URLs and report those that are invalid.  Suggest a @code{mirror://} URL when applicable.  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.  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})."
+#: doc/guix.texi:9114
+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:7599
+#: doc/guix.texi:9115
+#, no-wrap
+msgid "source-unstable-tarball"
+msgstr "source-unstable-tarball"
+
+#. type: table
+#: doc/guix.texi:9119
+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: item
+#: doc/guix.texi:9120
 #, no-wrap
 msgid "cve"
 msgstr "cve"
 
 #. type: cindex
-#: doc/guix.texi:7600 doc/guix.texi:23486
+#: doc/guix.texi:9121 doc/guix.texi:25369
 #, no-wrap
 msgid "security vulnerabilities"
 msgstr "vulnérabilités"
 
 #. type: cindex
-#: doc/guix.texi:7601
+#: doc/guix.texi:9122
 #, no-wrap
 msgid "CVE, Common Vulnerabilities and Exposures"
 msgstr "CVE, Common Vulnerabilities and Exposures"
 
 #. type: table
-#: doc/guix.texi:7606
+#: doc/guix.texi:9127
 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}."
 
 #. type: table
-#: doc/guix.texi:7608
+#: doc/guix.texi:9129
 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:7612
+#: doc/guix.texi:9133
 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:7614
+#: doc/guix.texi:9135
 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:7619
+#: doc/guix.texi:9140
 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:7624
+#: doc/guix.texi:9145
 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 "Les développeurs de paquets peuvent 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 :"
 
 #. type: example
-#: doc/guix.texi:7632
+#: doc/guix.texi:9153
 #, no-wrap
 msgid ""
 "(package\n"
@@ -14040,12 +16779,12 @@ msgstr ""
 "                (cpe-version . \"2.3\")))\n"
 
 #. type: table
-#: doc/guix.texi:7639
+#: doc/guix.texi:9160
 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éveloppeurs qui trouvent des alertes CVE et ont vérifiés qu'elles peuvent être ignorées peuvent les déclarer comme dans cet exemple :"
 
 #. type: example
-#: doc/guix.texi:7649
+#: doc/guix.texi:9170
 #, no-wrap
 msgid ""
 "(package\n"
@@ -14067,91 +16806,91 @@ msgstr ""
 "                                    \"CVE-2011-5244\")))))\n"
 
 #. type: item
-#: doc/guix.texi:7651
+#: doc/guix.texi:9172
 #, no-wrap
 msgid "formatting"
 msgstr "formatting"
 
 #. type: table
-#: doc/guix.texi:7654
+#: doc/guix.texi:9175
 msgid "Warn about obvious source code formatting issues: trailing white space, use of tabulations, etc."
 msgstr "Avertit le développeurs lorsqu'il y a des problèmes de formatage du code source évident : des espaces en fin de ligne, des tabulations, etc."
 
 #. type: example
-#: doc/guix.texi:7660
+#: doc/guix.texi:9181
 #, 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:7664
+#: doc/guix.texi:9185
 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:7666
+#: doc/guix.texi:9187
 #, no-wrap
 msgid "--list-checkers"
 msgstr "--list-checkers"
 
 #. type: table
-#: doc/guix.texi:7670
+#: doc/guix.texi:9191
 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:7671
+#: doc/guix.texi:9192
 #, no-wrap
 msgid "--checkers"
 msgstr "--checkers"
 
 #. type: itemx
-#: doc/guix.texi:7672
+#: doc/guix.texi:9193
 #, no-wrap
 msgid "-c"
 msgstr "-c"
 
 #. type: table
-#: doc/guix.texi:7675
+#: doc/guix.texi:9196
 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}."
 
 #. type: section
-#: doc/guix.texi:7679
+#: doc/guix.texi:9200
 #, no-wrap
 msgid "Invoking @command{guix size}"
 msgstr "Invoquer @command{guix size}"
 
 #. type: cindex
-#: doc/guix.texi:7681
+#: doc/guix.texi:9202
 #, no-wrap
 msgid "size"
 msgstr "taille"
 
 #. type: cindex
-#: doc/guix.texi:7682
+#: doc/guix.texi:9203
 #, no-wrap
 msgid "package size"
 msgstr "paquet, taille"
 
 #. type: command{#1}
-#: doc/guix.texi:7684
+#: doc/guix.texi:9205
 #, no-wrap
 msgid "guix size"
 msgstr "guix size"
 
 #. type: Plain text
-#: doc/guix.texi:7691
+#: doc/guix.texi:9212
 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 les développeurs à dresser un profil de l'utilisation du disque que font les paquets.  C'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 les problèmes que @command{guix size} peut typiquement mettre en valeur."
 
 #. type: Plain text
-#: doc/guix.texi:7696
+#: doc/guix.texi:9217
 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:7709
+#: doc/guix.texi:9230
 #, no-wrap
 msgid ""
 "$ guix size coreutils\n"
@@ -14179,43 +16918,43 @@ msgstr ""
 "total: 78.9 MiB\n"
 
 #. type: Plain text
-#: doc/guix.texi:7715
+#: doc/guix.texi:9236
 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:7718
+#: doc/guix.texi:9239
 #, 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:7726
+#: doc/guix.texi:9247
 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:7732
+#: doc/guix.texi:9253
 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:7741
+#: doc/guix.texi:9262
 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:7746
+#: doc/guix.texi:9267
 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:7748
+#: doc/guix.texi:9269
 msgid "You can also specify several package names:"
 msgstr "Vous pouvez aussi spécifier plusieurs noms de paquets :"
 
 #. type: example
-#: doc/guix.texi:7758
+#: doc/guix.texi:9279
 #, no-wrap
 msgid ""
 "$ guix size coreutils grep sed bash\n"
@@ -14237,1173 +16976,705 @@ msgstr ""
 "total: 102.3 MiB\n"
 
 #. type: Plain text
-#: doc/guix.texi:7764
+#: doc/guix.texi:9285
 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:7766
+#: doc/guix.texi:9287
 msgid "The available options are:"
 msgstr "Les options disponibles sont :"
 
 #. type: table
-#: doc/guix.texi:7772
+#: doc/guix.texi:9293
 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:7773
+#: doc/guix.texi:9294
 #, no-wrap
 msgid "--sort=@var{key}"
 msgstr "--sort=@var{clef}"
 
 #. type: table
-#: doc/guix.texi:7775
+#: doc/guix.texi:9296
 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:7777
+#: doc/guix.texi:9298
 #, no-wrap
 msgid "self"
 msgstr "self"
 
 #. type: table
-#: doc/guix.texi:7779
+#: doc/guix.texi:9300
 msgid "the size of each item (the default);"
 msgstr "la taille de chaque élément (par défaut) ;"
 
 #. type: table
-#: doc/guix.texi:7781
+#: doc/guix.texi:9302
 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:7783
+#: doc/guix.texi:9304
 #, no-wrap
 msgid "--map-file=@var{file}"
-msgstr "--map-file=@var{fichier} "
+msgstr "--map-file=@var{fichier}"
 
 #. type: table
-#: doc/guix.texi:7785
+#: doc/guix.texi:9306
 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:7787
+#: doc/guix.texi:9308
 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:7790
+#: doc/guix.texi:9311
 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:7795
+#: doc/guix.texi:9316
 msgid "This option requires that @uref{http://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{http://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:7799
+#: doc/guix.texi:9320
 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:7803
+#: doc/guix.texi:9324
 #, no-wrap
 msgid "Invoking @command{guix graph}"
 msgstr "Invoque @command{guix graph}"
 
 #. type: cindex
-#: doc/guix.texi:7805
+#: doc/guix.texi:9326
 #, no-wrap
 msgid "DAG"
 msgstr "DAG"
 
 #. type: command{#1}
-#: doc/guix.texi:7806
+#: doc/guix.texi:9327
 #, no-wrap
 msgid "guix graph"
 msgstr "guix graph"
 
 #. type: Plain text
-#: doc/guix.texi:7820
+#: doc/guix.texi:9341
 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{http://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{http://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{http://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{http://www.opencypher.org/, openCypher}.  La syntaxe générale est :"
 
 #. type: example
-#: doc/guix.texi:7823
+#: doc/guix.texi:9344
 #, 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:7828
+#: doc/guix.texi:9349
 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:7831
+#: doc/guix.texi:9352
 #, 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:7834
+#: doc/guix.texi:9355
 msgid "The output looks like this:"
 msgstr "La sortie ressemble à ceci :"
 
 #. type: Plain text
-#: doc/guix.texi:7836
+#: doc/guix.texi:9357
 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:7838
+#: doc/guix.texi:9359
 msgid "Nice little graph, no?"
 msgstr "Joli petit graphe, non ?"
 
 #. type: Plain text
-#: doc/guix.texi:7844
+#: doc/guix.texi:9365
 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:7850
+#: doc/guix.texi:9371
 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:7851
+#: doc/guix.texi:9372
 #, no-wrap
 msgid "reverse-package"
 msgstr "reverse-package"
 
 #. type: table
-#: doc/guix.texi:7853
+#: doc/guix.texi:9374
 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:7856
+#: doc/guix.texi:9377
 #, no-wrap
 msgid "guix graph --type=reverse-package ocaml\n"
 msgstr "guix graph --type=reverse-package ocaml\n"
 
 #. type: table
-#: doc/guix.texi:7859
-msgid "... yields the graph of packages that depend on OCaml."
-msgstr "… montre le graphe des paquets qui dépendent de OCaml."
+#: doc/guix.texi:9382
+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)."
 
 #. type: table
-#: doc/guix.texi:7864
+#: doc/guix.texi:9387
 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:7865
+#: doc/guix.texi:9388
 #, no-wrap
 msgid "bag-emerged"
 msgstr "bag-emerged"
 
 #. type: table
-#: doc/guix.texi:7867
+#: doc/guix.texi:9390
 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:7869
+#: doc/guix.texi:9392
 msgid "For instance, the following command:"
 msgstr "Par exemple, la commande suivante :"
 
 #. type: example
-#: doc/guix.texi:7872
+#: doc/guix.texi:9395
 #, 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"
 
 #. type: table
-#: doc/guix.texi:7875
-msgid "... yields this bigger graph:"
-msgstr "… montre ce graphe plus gros :"
+#: doc/guix.texi:9398
+msgid "...@: yields this bigger graph:"
+msgstr "…@: montre ce graphe plus gros :"
 
 #. type: table
-#: doc/guix.texi:7877
+#: doc/guix.texi:9400
 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:7880
+#: doc/guix.texi:9403
 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:7884
+#: doc/guix.texi:9407
 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:7885
+#: doc/guix.texi:9408
 #, no-wrap
 msgid "bag"
 msgstr "bag"
 
 #. type: table
-#: doc/guix.texi:7888
+#: doc/guix.texi:9411
 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:7889
+#: doc/guix.texi:9412
 #, no-wrap
 msgid "bag-with-origins"
 msgstr "bag-with-origins"
 
 #. type: table
-#: doc/guix.texi:7891
+#: doc/guix.texi:9414
 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:9415
+#, no-wrap
+msgid "reverse-bag"
+msgstr "reverse-bag"
+
 #. type: table
-#: doc/guix.texi:7897
+#: doc/guix.texi:9418
+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:9421
+#, no-wrap
+msgid "guix graph -t reverse-bag dune\n"
+msgstr "guix graph -t reverse-bag dune\n"
+
+#. type: table
+#: doc/guix.texi:9428
+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:9434
 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:7900
+#: doc/guix.texi:9437
 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:7903
+#: doc/guix.texi:9440
 #, 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:7905
+#: doc/guix.texi:9442
 #, no-wrap
 msgid "module"
 msgstr "module"
 
 #. type: table
-#: doc/guix.texi:7909
+#: doc/guix.texi:9446
 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:7912
+#: doc/guix.texi:9449
 #, 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"
 
 #. type: Plain text
-#: doc/guix.texi:7917
+#: doc/guix.texi:9454
 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: item
-#: doc/guix.texi:7919
-#, no-wrap
-msgid "references"
-msgstr "references"
-
 #. type: table
-#: doc/guix.texi:7922
+#: doc/guix.texi:9459
 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:7925
+#: doc/guix.texi:9462
 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:7929
+#: doc/guix.texi:9466
 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:7932
+#: doc/guix.texi:9469
 #, 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:7934
+#: doc/guix.texi:9471
 #, no-wrap
 msgid "referrers"
 msgstr "referrers"
 
 #. type: table
-#: doc/guix.texi:7937
+#: doc/guix.texi:9474
 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:7943
+#: doc/guix.texi:9480
 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:7946
+#: doc/guix.texi:9483
 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: Plain text
-#: doc/guix.texi:7950
+#: doc/guix.texi:9487
 msgid "The available options are the following:"
 msgstr "Les options disponibles sont les suivante :"
 
 #. type: table
-#: doc/guix.texi:7956
+#: doc/guix.texi:9493
 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:7957
+#: doc/guix.texi:9494
 #, no-wrap
 msgid "--list-types"
 msgstr "--list-types"
 
 #. type: table
-#: doc/guix.texi:7959
+#: doc/guix.texi:9496
 msgid "List the supported graph types."
 msgstr "Liste les types de graphes supportés."
 
 #. type: item
-#: doc/guix.texi:7960
+#: doc/guix.texi:9497
 #, no-wrap
 msgid "--backend=@var{backend}"
 msgstr "--backend=@var{moteur}"
 
 #. type: itemx
-#: doc/guix.texi:7961
+#: doc/guix.texi:9498
 #, no-wrap
 msgid "-b @var{backend}"
 msgstr "-b @var{moteur}"
 
 #. type: table
-#: doc/guix.texi:7963
+#: doc/guix.texi:9500
 msgid "Produce a graph using the selected @var{backend}."
 msgstr "Produit un graphe avec le @var{moteur} choisi."
 
 #. type: item
-#: doc/guix.texi:7964
+#: doc/guix.texi:9501
 #, no-wrap
 msgid "--list-backends"
 msgstr "--list-backends"
 
 #. type: table
-#: doc/guix.texi:7966
+#: doc/guix.texi:9503
 msgid "List the supported graph backends."
 msgstr "Liste les moteurs de graphes supportés."
 
 #. type: table
-#: doc/guix.texi:7968
+#: doc/guix.texi:9505
 msgid "Currently, the available backends are Graphviz and d3.js."
 msgstr "Actuellement les moteurs disponibles sont Graphviz et d3.js."
 
 #. type: example
-#: doc/guix.texi:7977
+#: doc/guix.texi:9514
 #, 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:7982
+#: doc/guix.texi:9519
 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:7985
+#: doc/guix.texi:9522
 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: section
-#: doc/guix.texi:7989
-#, no-wrap
-msgid "Invoking @command{guix environment}"
-msgstr "Invoquer @command{guix environment}"
-
-#. type: cindex
-#: doc/guix.texi:7991
-#, no-wrap
-msgid "reproducible build environments"
-msgstr "environnements de construction reproductibles"
-
-#. type: cindex
-#: doc/guix.texi:7992
-#, no-wrap
-msgid "development environments"
-msgstr "environnement de développement"
-
-#. type: command{#1}
-#: doc/guix.texi:7993
-#, no-wrap
-msgid "guix environment"
-msgstr "guix environment"
-
-#. type: cindex
-#: doc/guix.texi:7994
-#, no-wrap
-msgid "environment, package build environment"
-msgstr "environnement de construction de paquets"
-
-#. type: Plain text
-#: doc/guix.texi:8000
-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: example
-#: doc/guix.texi:8005
-#, 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:8009
-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:8012
-#, no-wrap
-msgid "guix environment guile\n"
-msgstr "guix environment guile\n"
-
-#. type: Plain text
-#: doc/guix.texi:8029
-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.}."
-
-#. type: vindex
-#: doc/guix.texi:8030
-#, no-wrap
-msgid "GUIX_ENVIRONMENT"
-msgstr "GUIX_ENVIRONMENT"
-
-#. type: Plain text
-#: doc/guix.texi:8036
-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}) :"
-
-#. type: example
-#: doc/guix.texi:8042
-#, no-wrap
-msgid ""
-"if [ -n \"$GUIX_ENVIRONMENT\" ]\n"
-"then\n"
-"    export PS1=\"\\u@@\\h \\w [dev]\\$ \"\n"
-"fi\n"
-msgstr ""
-"if [ -n \"$GUIX_ENVIRONMENT\" ]\n"
-"then\n"
-"    export PS1=\"\\u@@\\h \\w [dev]\\$ \"\n"
-"fi\n"
-
-#. type: Plain text
-#: doc/guix.texi:8046
-msgid "... or to browse the profile:"
-msgstr "… ou de naviguer dans le profil :"
-
-#. type: example
-#: doc/guix.texi:8049
-#, no-wrap
-msgid "$ ls \"$GUIX_ENVIRONMENT/bin\"\n"
-msgstr "$ ls \"$GUIX_ENVIRONMENT/bin\"\n"
-
-#. type: Plain text
-#: doc/guix.texi:8055
-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 "En plus, 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:8058
-#, no-wrap
-msgid "guix environment guile emacs\n"
-msgstr "guix environment guile emacs\n"
-
-#. type: Plain text
-#: doc/guix.texi:8063
-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:8066
-#, no-wrap
-msgid "guix environment guile -- make -j4\n"
-msgstr "guix environment guile -- make -j4\n"
-
-#. type: Plain text
-#: doc/guix.texi:8072
-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:8075
-#, 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:8086
-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 :"
-
-#. type: example
-#: doc/guix.texi:8089
-#, no-wrap
-msgid "guix environment guix --ad-hoc git strace\n"
-msgstr "guix environment guix --ad-hoc git strace\n"
-
-#. type: Plain text
-#: doc/guix.texi:8098
-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 GuixSD, 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 GuixSD, 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:8101
-#, 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:8105
-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."
-
-#. type: Plain text
-#: doc/guix.texi:8108
-msgid "The available options are summarized below."
-msgstr "Les options disponibles sont résumées ci-dessous."
-
-#. type: cindex
-#: doc/guix.texi:8112
-#, no-wrap
-msgid "persistent environment"
-msgstr "environnement persistent"
-
-#. type: cindex
-#: doc/guix.texi:8113
-#, no-wrap
-msgid "garbage collector root, for environments"
-msgstr "racine du ramasse-miettes, pour les environnements"
-
-#. type: table
-#: doc/guix.texi:8116
-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:8119
-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:8125
-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: table
-#: doc/guix.texi:8130
-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:8132
-msgid "For example, running:"
-msgstr "Par exemple, lancer :"
-
-#. type: example
-#: doc/guix.texi:8135
-#, 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:8139
-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:8141
-msgid "Running:"
-msgstr "Lancer :"
-
-#. type: example
-#: doc/guix.texi:8144
-#, 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:8147
-msgid "starts a shell with all the GuixSD base packages available."
-msgstr "démarre un shell où tous les paquets de base de GuixSD sont disponibles."
-
-#. type: table
-#: doc/guix.texi:8150
-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:8153
-#, 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:8155
-#, no-wrap
-msgid "--load=@var{file}"
-msgstr "--load=@var{fichier}"
-
-#. type: itemx
-#: doc/guix.texi:8156
-#, no-wrap
-msgid "-l @var{file}"
-msgstr "-l @var{fichier}"
-
-#. type: table
-#: doc/guix.texi:8159
-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:8165
-#, no-wrap
-msgid "@verbatiminclude environment-gdb.scm\n"
-msgstr "@verbatiminclude environment-gdb.scm\n"
-
-#. type: table
-#: doc/guix.texi:8171
-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}."
-
-#. type: table
-#: doc/guix.texi:8175
-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:8176
-#, no-wrap
-msgid "--ad-hoc"
-msgstr "--ad-hoc"
-
-#. type: table
-#: doc/guix.texi:8181
-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:8183
-msgid "For instance, the command:"
-msgstr "Par exemple la commande :"
-
-#. type: example
-#: doc/guix.texi:8186
-#, 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:8190
-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:8195
-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:8201
-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."
-
-#. type: item
-#: doc/guix.texi:8202
-#, no-wrap
-msgid "--pure"
-msgstr "--pure"
-
-#. type: table
-#: doc/guix.texi:8206
-msgid "Unset existing environment variables when building the new environment.  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.  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:8207
-#, no-wrap
-msgid "--search-paths"
-msgstr "--search-paths"
-
-#. type: table
-#: doc/guix.texi:8210
-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:8214
-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:8215
-#, no-wrap
-msgid "--container"
-msgstr "--container"
-
-#. type: itemx
-#: doc/guix.texi:8216
-#, no-wrap
-msgid "-C"
-msgstr "-C"
-
-#. type: item
-#: doc/guix.texi:8217 doc/guix.texi:8728 doc/guix.texi:22494
-#, no-wrap
-msgid "container"
-msgstr "conteneur"
-
-#. type: table
-#: doc/guix.texi:8225
-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.  The spawned process runs as the current user outside the container, but has root privileges in the context of the container."
-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.  Le processus est lancé en tant que l'utilisateur actuel en dehors du conteneur, mais a les privilèges root dans le contexte du conteneur."
-
-#. type: item
-#: doc/guix.texi:8226
-#, no-wrap
-msgid "--network"
-msgstr "--network"
-
-#. type: itemx
-#: doc/guix.texi:8227
-#, no-wrap
-msgid "-N"
-msgstr "-N"
-
-#. type: table
-#: doc/guix.texi:8231
-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:8232
-#, no-wrap
-msgid "--link-profile"
-msgstr "--link-profile"
-
-#. type: itemx
-#: doc/guix.texi:8233
-#, no-wrap
-msgid "-P"
-msgstr "-P"
-
-#. type: table
-#: doc/guix.texi:8240
-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."
-
-#. type: table
-#: doc/guix.texi:8247
-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."
-
-#. type: item
-#: doc/guix.texi:8248 doc/guix.texi:8400
-#, no-wrap
-msgid "--user=@var{user}"
-msgstr "--user=@var{utilisateur}"
-
-#. type: itemx
-#: doc/guix.texi:8249 doc/guix.texi:8401
-#, no-wrap
-msgid "-u @var{user}"
-msgstr "-u @var{utilisateur}"
-
-#. type: table
-#: doc/guix.texi:8255
-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/USER}; and no user GECOS data will be copied.  @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/UTILISATEUR} ; et aucune donnée GECOS ne sera copiée.  @var{utilisateur} n'a pas besoin d'exister sur le système."
-
-#. type: table
-#: doc/guix.texi:8260
-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."
-
-#. type: example
-#: doc/guix.texi:8267
-#, no-wrap
-msgid ""
-"# will expose paths as /home/foo/wd, /home/foo/test, and /home/foo/target\n"
-"cd $HOME/wd\n"
-"guix environment --container --user=foo \\\n"
-"     --expose=$HOME/test \\\n"
-"     --expose=/tmp/target=$HOME/target\n"
-msgstr ""
-"# exposera les chemins comme /home/foo/wd, /home/foo/test et /home/foo/target\n"
-"cd $HOME/wd\n"
-"guix environment --container --user=foo \\\n"
-"     --expose=$HOME/test \\\n"
-"     --expose=/tmp/target=$HOME/target\n"
-
-#. type: table
-#: doc/guix.texi:8272
-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:8273
-#, no-wrap
-msgid "--expose=@var{source}[=@var{target}]"
-msgstr "--expose=@var{source}[=@var{cible}]"
-
-#. type: table
-#: doc/guix.texi:8278
-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."
-
-#. type: table
-#: doc/guix.texi:8282
-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:8285
-#, 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: item
-#: doc/guix.texi:8287
-#, no-wrap
-msgid "--share=@var{source}[=@var{target}]"
-msgstr "--share=@var{source}[=@var{cible}]"
-
-#. type: table
-#: doc/guix.texi:8292
-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."
-
-#. type: table
-#: doc/guix.texi:8296
-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} :"
-
-#. type: example
-#: doc/guix.texi:8299
-#, 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"
-
-#. type: Plain text
-#: doc/guix.texi:8305
-msgid "@command{guix environment} also supports all of the common build options that @command{guix build} supports (@pxref{Common Build Options})."
-msgstr "@command{guix environment} supporte aussi toutes les options de construction que @command{guix build} supporte (@pxref{Common Build Options})."
-
-#. type: section
-#: doc/guix.texi:8308
+#: doc/guix.texi:9527
 #, no-wrap
 msgid "Invoking @command{guix publish}"
 msgstr "Invoquer @command{guix publish}"
 
 #. type: command{#1}
-#: doc/guix.texi:8310
+#: doc/guix.texi:9529
 #, no-wrap
 msgid "guix publish"
 msgstr "guix publish"
 
 #. type: Plain text
-#: doc/guix.texi:8314
+#: doc/guix.texi:9533
 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:8320
-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{hydra.gnu.org} 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{hydra.gnu.org}."
+#: doc/guix.texi:9539
+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}}."
 
 #. type: Plain text
-#: doc/guix.texi:8326
+#: doc/guix.texi:9545
 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."
 
 #. type: Plain text
-#: doc/guix.texi:8330
+#: doc/guix.texi:9549
 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:8335
+#: doc/guix.texi:9554
 #, no-wrap
 msgid "guix publish @var{options}@dots{}\n"
 msgstr "guix publish @var{options}@dots{}\n"
 
 #. type: Plain text
-#: doc/guix.texi:8339
+#: doc/guix.texi:9558
 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:8342
+#: doc/guix.texi:9561
 #, no-wrap
 msgid "guix publish\n"
 msgstr "guix publish\n"
 
 #. type: Plain text
-#: doc/guix.texi:8346
+#: doc/guix.texi:9565
 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:8349
+#: doc/guix.texi:9568
 #, no-wrap
 msgid "guix-daemon --substitute-urls=http://example.org:8080\n"
 msgstr "guix-daemon --substitute-urls=http://example.org:8080\n"
 
 #. type: Plain text
-#: doc/guix.texi:8358
+#: doc/guix.texi:9577
 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:8365
+#: doc/guix.texi:9584
 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:8368
+#: doc/guix.texi:9587
 #, 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:8372
+#: doc/guix.texi:9591
 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:8373
+#: doc/guix.texi:9592
 #, no-wrap
 msgid "build logs, publication"
 msgstr "journaux de construction, publication"
 
 #. type: Plain text
-#: doc/guix.texi:8375
+#: doc/guix.texi:9594
 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:8378
+#: doc/guix.texi:9597
 #, 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:8388
+#: doc/guix.texi:9607
 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."
 
 #. type: item
-#: doc/guix.texi:8392
+#: doc/guix.texi:9611
 #, no-wrap
 msgid "--port=@var{port}"
 msgstr "--port=@var{port}"
 
 #. type: itemx
-#: doc/guix.texi:8393
+#: doc/guix.texi:9612
 #, no-wrap
 msgid "-p @var{port}"
 msgstr "-p @var{port}"
 
 #. type: table
-#: doc/guix.texi:8395
+#: doc/guix.texi:9614
 msgid "Listen for HTTP requests on @var{port}."
 msgstr "Écoute les requêtes HTTP sur le @var{port}"
 
 #. type: item
-#: doc/guix.texi:8396 doc/guix.texi:18819
+#: doc/guix.texi:9615 doc/guix.texi:20575
 #, no-wrap
 msgid "--listen=@var{host}"
 msgstr "--listen=@var{hôte}"
 
 #. type: table
-#: doc/guix.texi:8399
+#: doc/guix.texi:9618
 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:8404
+#: doc/guix.texi:9623
 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:8405
+#: doc/guix.texi:9624
 #, no-wrap
 msgid "--compression[=@var{level}]"
 msgstr "--compression[=@var{niveau}]"
 
 #. type: itemx
-#: doc/guix.texi:8406
+#: doc/guix.texi:9625
 #, no-wrap
 msgid "-C [@var{level}]"
 msgstr "-C [@var{niveau}]"
 
 #. type: table
-#: doc/guix.texi:8411
+#: doc/guix.texi:9630
 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."
 
 #. type: table
-#: doc/guix.texi:8420
+#: doc/guix.texi:9639
 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: item
-#: doc/guix.texi:8421
+#: doc/guix.texi:9640
 #, no-wrap
 msgid "--cache=@var{directory}"
 msgstr "--cache=@var{répertoire}"
 
 #. type: itemx
-#: doc/guix.texi:8422
+#: doc/guix.texi:9641
 #, no-wrap
 msgid "-c @var{directory}"
 msgstr "-c @var{répertoire}"
 
 #. type: table
-#: doc/guix.texi:8425
+#: doc/guix.texi:9644
 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:8433
+#: doc/guix.texi:9652
 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:8441
+#: doc/guix.texi:9660
 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."
 
 #. type: table
-#: doc/guix.texi:8445
+#: doc/guix.texi:9664
 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:8448
+#: doc/guix.texi:9667
 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:8449
+#: doc/guix.texi:9668
 #, no-wrap
 msgid "--workers=@var{N}"
 msgstr "--workers=@var{N}"
 
 #. type: table
-#: doc/guix.texi:8452
+#: doc/guix.texi:9671
 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:8453
+#: doc/guix.texi:9672
 #, no-wrap
 msgid "--ttl=@var{ttl}"
 msgstr "--ttl=@var{ttl}"
 
 #. type: table
-#: doc/guix.texi:8457
+#: doc/guix.texi:9676
 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:8462
+#: doc/guix.texi:9681
 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:8466
+#: doc/guix.texi:9685
 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:8467
+#: doc/guix.texi:9686
 #, no-wrap
 msgid "--nar-path=@var{path}"
 msgstr "--nar-path=@var{chemin}"
 
 #. type: table
-#: doc/guix.texi:8470
+#: doc/guix.texi:9689
 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:8474
+#: doc/guix.texi:9693
 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:8475
+#: doc/guix.texi:9694
 #, no-wrap
 msgid "--public-key=@var{file}"
 msgstr "--public-key=@var{fichier}"
 
 #. type: itemx
-#: doc/guix.texi:8476
+#: doc/guix.texi:9695
 #, no-wrap
 msgid "--private-key=@var{file}"
 msgstr "--private-key=@var{fichier}"
 
 #. type: table
-#: doc/guix.texi:8479
+#: doc/guix.texi:9698
 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:8486
+#: doc/guix.texi:9705
 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:8487
+#: doc/guix.texi:9706
 #, no-wrap
 msgid "--repl[=@var{port}]"
 msgstr "--repl[=@var{port}]"
 
 #. type: itemx
-#: doc/guix.texi:8488
+#: doc/guix.texi:9707
 #, no-wrap
 msgid "-r [@var{port}]"
 msgstr "-r [@var{port}]"
 
 #. type: table
-#: doc/guix.texi:8492
+#: doc/guix.texi:9711
 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:8498
-msgid "Enabling @command{guix publish} on a GuixSD 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 GuixSD est vraiment une seule ligne : instantiez 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}})."
+#: doc/guix.texi:9717
+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:8501
+#: doc/guix.texi:9720
 msgid "If you are instead running Guix on a ``foreign distro'', follow these instructions:”"
-msgstr "Si vous avez installé Guix sur une « distro extérieure », suivez ces instructions :"
+msgstr "Si vous avez installé Guix sur une « distro externe », suivez ces instructions :"
 
 #. type: itemize
-#: doc/guix.texi:8505
+#: doc/guix.texi:9724
 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:8510
+#: doc/guix.texi:9729
 #, no-wrap
 msgid ""
 "# ln -s ~root/.guix-profile/lib/systemd/system/guix-publish.service \\\n"
@@ -15415,7 +17686,7 @@ msgstr ""
 "# systemctl start guix-publish && systemctl enable guix-publish\n"
 
 #. type: example
-#: doc/guix.texi:8518
+#: doc/guix.texi:9737
 #, no-wrap
 msgid ""
 "# ln -s ~root/.guix-profile/lib/upstart/system/guix-publish.conf /etc/init/\n"
@@ -15425,94 +17696,94 @@ msgstr ""
 "# start guix-publish\n"
 
 #. type: itemize
-#: doc/guix.texi:8522
+#: doc/guix.texi:9741
 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:8525
+#: doc/guix.texi:9744
 #, no-wrap
 msgid "Invoking @command{guix challenge}"
 msgstr "Invoquer @command{guix challenge}"
 
 #. type: cindex
-#: doc/guix.texi:8528
+#: doc/guix.texi:9747
 #, no-wrap
 msgid "verifiable builds"
 msgstr "constructions vérifiables"
 
 #. type: command{#1}
-#: doc/guix.texi:8529
+#: doc/guix.texi:9748
 #, no-wrap
 msgid "guix challenge"
 msgstr "guix challenge"
 
 #. type: cindex
-#: doc/guix.texi:8530
+#: doc/guix.texi:9749
 #, no-wrap
 msgid "challenge"
 msgstr "défi"
 
 #. type: Plain text
-#: doc/guix.texi:8535
+#: doc/guix.texi:9754
 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:8543
+#: doc/guix.texi:9762
 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:8552
+#: doc/guix.texi:9771
 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:8554
+#: doc/guix.texi:9773
 msgid "The command output looks like this:"
 msgstr "La sortie de la commande ressemble à :"
 
 #. type: smallexample
-#: doc/guix.texi:8571
+#: doc/guix.texi:9790
 #, no-wrap
 msgid ""
-"$ guix challenge --substitute-urls=\"https://hydra.gnu.org https://guix.example.org\"\n"
-"updating list of substitutes from 'https://hydra.gnu.org'... 100.0%\n"
+"$ guix challenge --substitute-urls=\"https://@value{SUBSTITUTE-SERVER} https://guix.example.org\"\n"
+"updating list of substitutes from 'https://@value{SUBSTITUTE-SERVER}'... 100.0%\n"
 "updating list of substitutes from 'https://guix.example.org'... 100.0%\n"
 "/gnu/store/@dots{}-openssl-1.0.2d contents differ:\n"
 "  local hash: 0725l22r5jnzazaacncwsvp9kgf42266ayyp814v7djxs7nk963q\n"
-"  https://hydra.gnu.org/nar/@dots{}-openssl-1.0.2d: 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://hydra.gnu.org/nar/@dots{}-git-2.5.0: 069nb85bv4d4a6slrwjdy8v1cn4cwspm3kdbmyb81d6zckj3nq9f\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://hydra.gnu.org/nar/@dots{}-pius-2.1.1: 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"
 "\n"
 msgstr ""
-"$ guix challenge --substitute-urls=\"https://hydra.gnu.org https://guix.example.org\"\n"
-"mise à jour de la liste des substituts depuis 'https://hydra.gnu.org'... 100.0%\n"
+"$ guix challenge --substitute-urls=\"https://@value{SUBSTITUTE-SERVER} https://guix.example.org\"\n"
+"mise à jour de la liste des substituts depuis 'https://@value{SUBSTITUTE-SERVER}'... 100.0%\n"
 "mise à jour de la liste des substituts depuis 'https://guix.example.org'... 100.0%\n"
 "le contenu de /gnu/store/@dots{}-openssl-1.0.2d diffère :\n"
 "  empreinte locale : 0725l22r5jnzazaacncwsvp9kgf42266ayyp814v7djxs7nk963q\n"
-"  https://hydra.gnu.org/nar/@dots{}-openssl-1.0.2d : 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"
 "le contenu de /gnu/store/@dots{}-git-2.5.0 diffère :\n"
 "  empreinte locale : 00p3bmryhjxrhpn2gxs2fy0a15lnip05l97205pgbk5ra395hyha\n"
-"  https://hydra.gnu.org/nar/@dots{}-git-2.5.0 : 069nb85bv4d4a6slrwjdy8v1cn4cwspm3kdbmyb81d6zckj3nq9f\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"
 "le contenu de /gnu/store/@dots{}-pius-2.1.1 diffère :\n"
 "  empreinte locale : 0k4v3m9z1zp8xzzizb7d8kjj72f9172xv078sq4wl73vnq9ig3ax\n"
-"  https://hydra.gnu.org/nar/@dots{}-pius-2.1.1 : 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"
 "\n"
 
 #. type: smallexample
-#: doc/guix.texi:8573
+#: doc/guix.texi:9792
 #, no-wrap
 msgid ""
 "@dots{}\n"
@@ -15522,7 +17793,7 @@ msgstr ""
 "\n"
 
 #. type: smallexample
-#: doc/guix.texi:8578
+#: doc/guix.texi:9797
 #, no-wrap
 msgid ""
 "6,406 store items were analyzed:\n"
@@ -15536,133 +17807,133 @@ msgstr ""
 "  - 1,132 (17.7%) étaient impossibles à évaluer\n"
 
 #. type: Plain text
-#: doc/guix.texi:8586
+#: doc/guix.texi:9805
 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:8587
+#: doc/guix.texi:9806
 #, no-wrap
 msgid "non-determinism, in package builds"
 msgstr "non-déterminisme, dans les constructions des paquets"
 
 #. type: Plain text
-#: doc/guix.texi:8598
-msgid "As an example, @code{guix.example.org} always gets a different answer.  Conversely, @code{hydra.gnu.org} 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{hydra.gnu.org} 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."
+#: doc/guix.texi:9817
+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:8601
+#: doc/guix.texi:9820
 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}) :"
 
 #. type: example
-#: doc/guix.texi:8606
+#: doc/guix.texi:9825
 #, no-wrap
 msgid ""
-"$ wget -q -O - https://hydra.gnu.org/nar/@dots{}-git-2.5.0 \\\n"
+"$ wget -q -O - https://@value{SUBSTITUTE-SERVER}/nar/@dots{}-git-2.5.0 \\\n"
 "   | 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://hydra.gnu.org/nar/@dots{}-git-2.5.0 \\\n"
+"$ wget -q -O - https://@value{SUBSTITUTE-SERVER}/nar/@dots{}-git-2.5.0 \\\n"
 "   | 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:8615
-msgid "This command shows the difference between the files resulting from the local build, and the files resulting from the build on @code{hydra.gnu.org} (@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{hydra.gnu.org} (@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."
+#: doc/guix.texi:9834
+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:8623
+#: doc/guix.texi:9842
 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:8627
-msgid "If you are writing packages for Guix, you are encouraged to check whether @code{hydra.gnu.org} 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{hydra.gnu.org} et d'autres serveurs de substituts obtiennent le même résultat que vous avec :"
+#: doc/guix.texi:9846
+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:8630
+#: doc/guix.texi:9849
 #, no-wrap
 msgid "$ guix challenge @var{package}\n"
 msgstr "$ guix challenge @var{paquet}\n"
 
 #. type: Plain text
-#: doc/guix.texi:8635
+#: doc/guix.texi:9854
 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:8640
+#: doc/guix.texi:9859
 #, 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:8647
+#: doc/guix.texi:9866
 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)."
 
 #. type: Plain text
-#: doc/guix.texi:8649
+#: doc/guix.texi:9868
 msgid "The one option that matters is:"
 msgstr "L'option qui compte est :"
 
 #. type: table
-#: doc/guix.texi:8655
+#: doc/guix.texi:9874
 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: itemx
-#: doc/guix.texi:8657
+#: doc/guix.texi:9876
 #, no-wrap
 msgid "-v"
 msgstr "-v"
 
 #. type: table
-#: doc/guix.texi:8660
+#: doc/guix.texi:9879
 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:8664
+#: doc/guix.texi:9883
 #, no-wrap
 msgid "Invoking @command{guix copy}"
 msgstr "Invoquer @command{guix copy}"
 
 #. type: cindex
-#: doc/guix.texi:8666
+#: doc/guix.texi:9885
 #, 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:8667
+#: doc/guix.texi:9886
 #, no-wrap
 msgid "SSH, copy of store items"
 msgstr "SSH, copie d'éléments du dépôt"
 
 #. type: cindex
-#: doc/guix.texi:8668
+#: doc/guix.texi:9887
 #, 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:8669
+#: doc/guix.texi:9888
 #, 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:8676
+#: doc/guix.texi:9895
 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:8680
+#: doc/guix.texi:9899
 #, no-wrap
 msgid ""
 "guix copy --to=@var{user}@@@var{host} \\\n"
@@ -15672,192 +17943,192 @@ msgstr ""
 "          coreutils `readlink -f ~/.guix-profile`\n"
 
 #. type: Plain text
-#: doc/guix.texi:8684
+#: doc/guix.texi:9903
 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:8687
+#: doc/guix.texi:9906
 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:8690
+#: doc/guix.texi:9909
 #, 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:8695
+#: doc/guix.texi:9914
 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:8701
+#: doc/guix.texi:9920
 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:8706
+#: doc/guix.texi:9925
 #, 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:8709
+#: doc/guix.texi:9928
 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:8711
+#: doc/guix.texi:9930
 #, no-wrap
 msgid "--to=@var{spec}"
 msgstr "--to=@var{spec}"
 
 #. type: itemx
-#: doc/guix.texi:8712
+#: doc/guix.texi:9931
 #, no-wrap
 msgid "--from=@var{spec}"
 msgstr "--from=@var{spec}"
 
 #. type: table
-#: doc/guix.texi:8716
+#: doc/guix.texi:9935
 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:8720
+#: doc/guix.texi:9939
 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:8724
+#: doc/guix.texi:9943
 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:8727
+#: doc/guix.texi:9946
 #, no-wrap
 msgid "Invoking @command{guix container}"
 msgstr "Invoquer @command{guix container}"
 
 #. type: command{#1}
-#: doc/guix.texi:8729
+#: doc/guix.texi:9948
 #, no-wrap
 msgid "guix container"
 msgstr "guix container"
 
 #. type: quotation
-#: doc/guix.texi:8733
+#: doc/guix.texi:9952
 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:8740
+#: doc/guix.texi:9959
 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:8745
+#: doc/guix.texi:9964
 #, 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:8749
+#: doc/guix.texi:9968
 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:8751
+#: doc/guix.texi:9970
 msgid "The following actions are available:"
 msgstr "Les actions suivantes sont disponibles :"
 
 #. type: item
-#: doc/guix.texi:8753
+#: doc/guix.texi:9972
 #, no-wrap
 msgid "exec"
 msgstr "exec"
 
 #. type: table
-#: doc/guix.texi:8755
+#: doc/guix.texi:9974
 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:8757
+#: doc/guix.texi:9976
 msgid "The syntax is:"
 msgstr "La syntaxe est :"
 
 #. type: example
-#: doc/guix.texi:8760
+#: doc/guix.texi:9979
 #, 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:8766
+#: doc/guix.texi:9985
 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:8770
-msgid "The following command launches an interactive login shell inside a GuixSD 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 GuixSD, démarré par @command{guix system container} et dont le PID est 9001 :"
+#: doc/guix.texi:9989
+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:8773
+#: doc/guix.texi:9992
 #, 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:8777
+#: doc/guix.texi:9996
 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:8781
+#: doc/guix.texi:10000
 #, no-wrap
 msgid "Invoking @command{guix weather}"
 msgstr "Invoquer @command{guix weather}"
 
 #. type: Plain text
-#: doc/guix.texi:8790
+#: doc/guix.texi:10009
 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:8791
+#: doc/guix.texi:10010
 #, no-wrap
 msgid "statistics, for substitutes"
 msgstr "statistiques sur les substituts"
 
 #. type: cindex
-#: doc/guix.texi:8792
+#: doc/guix.texi:10011
 #, no-wrap
 msgid "availability of substitutes"
 msgstr "disponibilité des substituts"
 
 #. type: cindex
-#: doc/guix.texi:8793
+#: doc/guix.texi:10012
 #, no-wrap
 msgid "substitute availability"
 msgstr "substituts, disponibilité"
 
 #. type: cindex
-#: doc/guix.texi:8794
+#: doc/guix.texi:10013
 #, no-wrap
 msgid "weather, substitute availability"
 msgstr "weather, disponibilité des substituts"
 
 #. type: Plain text
-#: doc/guix.texi:8796
+#: doc/guix.texi:10015
 msgid "Here's a sample run:"
 msgstr "Voici un exemple :"
 
 #. type: example
-#: doc/guix.texi:8808
+#: doc/guix.texi:10027
 #, no-wrap
 msgid ""
 "$ guix weather --substitute-urls=https://guix.example.org\n"
@@ -15885,7 +18156,7 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix.texi:8818
+#: doc/guix.texi:10037
 #, no-wrap
 msgid ""
 "  9.8% (342 out of 3,470) of the missing items are queued\n"
@@ -15909,54 +18180,111 @@ msgstr ""
 "      aarch64-linux : 6.41 constructions par heure\n"
 
 #. type: cindex
-#: doc/guix.texi:8820
+#: doc/guix.texi:10039
 #, no-wrap
 msgid "continuous integration, statistics"
 msgstr "intégration continue, statistiques"
 
 #. type: Plain text
-#: doc/guix.texi:8829
-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."
-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 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."
+#: doc/guix.texi:10050
+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:8835
+#: doc/guix.texi:10056
 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: Plain text
-#: doc/guix.texi:8838
+#: doc/guix.texi:10059
 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."
 
 #. type: table
-#: doc/guix.texi:8844
+#: doc/guix.texi:10065
 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:8850
+#: doc/guix.texi:10071
 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:8856
+#: doc/guix.texi:10077
 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: item
+#: doc/guix.texi:10078
+#, no-wrap
+msgid "--coverage[=@var{count}]"
+msgstr "--coverage[=@var{count}]"
+
+#. type: itemx
+#: doc/guix.texi:10079
+#, no-wrap
+msgid "-c [@var{count}]"
+msgstr "-c [@var{count}]"
+
+#. type: table
+#: doc/guix.texi:10085
+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:10099
+#, no-wrap
+msgid ""
+"$ guix weather --substitute-urls=https://ci.guix.info -c 10\n"
+"computing 8,983 package derivations for x86_64-linux...\n"
+"looking for 9,343 store items on https://ci.guix.info...\n"
+"updating substitutes from 'https://ci.guix.info'... 100.0%\n"
+"https://ci.guix.info\n"
+"  64.7% substitutes available (6,047 out of 9,343)\n"
+"@dots{}\n"
+"2502 packages are missing from 'https://ci.guix.info' for 'x86_64-linux', among which:\n"
+"    58  kcoreaddons@@5.49.0      /gnu/store/@dots{}-kcoreaddons-5.49.0\n"
+"    46  qgpgme@@1.11.1           /gnu/store/@dots{}-qgpgme-1.11.1\n"
+"    37  perl-http-cookiejar@@0.008  /gnu/store/@dots{}-perl-http-cookiejar-0.008\n"
+"    @dots{}\n"
+msgstr ""
+"$ guix weather --substitute-urls=https://ci.guix.info -c 10\n"
+"calcul de 8 983 dérivations de paquets pour x86_64-linux…\n"
+"recherche de 9 343 éléments du dépôt sur https://ci.guix.info…\n"
+"mise à jour des substituts depuis « https://ci.guix.info »… 100,0 %\n"
+"https://ci.guix.info\n"
+"  64.7 % des substituts sont disponibles (6,047 sur 9,343)\n"
+"@dots{}\n"
+"2502 paquets ne sont pas sur « https://ci.guix.info » pour « x86_64-linux », parmi lesquels :\n"
+"    58  kcoreaddons@@5.49.0      /gnu/store/@dots{}-kcoreaddons-5.49.0\n"
+"    46  qgpgme@@1.11.1           /gnu/store/@dots{}-qgpgme-1.11.1\n"
+"    37  perl-http-cookiejar@@0.008  /gnu/store/@dots{}-perl-http-cookiejar-0.008\n"
+"    @dots{}\n"
+
+#. type: table
+#: doc/guix.texi:10104
+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:10108
+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: section
-#: doc/guix.texi:8859
+#: doc/guix.texi:10111
 #, no-wrap
 msgid "Invoking @command{guix processes}"
 msgstr "Invoquer @command{guix processes}"
 
 #. type: Plain text
-#: doc/guix.texi:8867
+#: doc/guix.texi:10119
 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éveloppeurs et les administrateurs systèmes, surtout sur des machines multi-utilisateurs 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:8873
+#: doc/guix.texi:10125
 #, no-wrap
 msgid ""
 "$ sudo guix processes\n"
@@ -15972,7 +18300,7 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix.texi:8877
+#: doc/guix.texi:10129
 #, no-wrap
 msgid ""
 "SessionPID: 19402\n"
@@ -15986,7 +18314,7 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix.texi:8887
+#: doc/guix.texi:10139
 #, no-wrap
 msgid ""
 "SessionPID: 19444\n"
@@ -16010,22 +18338,22 @@ msgstr ""
 "ChildProcess: 27793: guix offload x86_64-linux 7200 1 28800\n"
 
 #. type: Plain text
-#: doc/guix.texi:8894
+#: doc/guix.texi:10146
 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:8901
+#: doc/guix.texi:10153
 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})."
 
 #. type: Plain text
-#: doc/guix.texi:8906
+#: doc/guix.texi:10158
 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:8912
+#: doc/guix.texi:10164
 #, no-wrap
 msgid ""
 "$ sudo guix processes | \\\n"
@@ -16038,1035 +18366,91 @@ msgstr ""
 "ClientPID: 19419\n"
 "ClientCommand: cuirass --cache-directory /var/cache/cuirass @dots{}\n"
 
-#. type: Plain text
-#: doc/guix.texi:8929
-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}).  To distinguish between the two, we refer to the standalone distribution as the Guix System Distribution, or GuixSD."
-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 à l'utilisateur de 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 « Distribution Système Guix » ou GuixSD."
-
-#. type: Plain text
-#: doc/guix.texi:8935
-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}):"
-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:8938
-#, no-wrap
-msgid "guix package --list-available\n"
-msgstr "guix package --list-available\n"
-
-#. type: Plain text
-#: doc/guix.texi:8944
-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 à exercer ses libertés."
-
-#. type: Plain text
-#: doc/guix.texi:8946
-msgid "Packages are currently available on the following platforms:"
-msgstr "Les paquets sont actuellement disponibles pour les plateformes suivantes :"
-
-#. type: item
-#: doc/guix.texi:8949 doc/guix.texi:9114
-#, no-wrap
-msgid "x86_64-linux"
-msgstr "x86_64-linux"
-
-#. type: table
-#: doc/guix.texi:8951
-msgid "Intel/AMD @code{x86_64} architecture, Linux-Libre kernel;"
-msgstr "l'architecture Intel et AMD @code{x86_64} avec le noyau Linux-libre ;"
-
-#. type: item
-#: doc/guix.texi:8952 doc/guix.texi:9117
-#, no-wrap
-msgid "i686-linux"
-msgstr "i686-linux"
-
-#. type: table
-#: doc/guix.texi:8954
-msgid "Intel 32-bit architecture (IA32), Linux-Libre kernel;"
-msgstr "l'architecture Intel 32-bits (IA32) avec le noyau Linux-libre ;"
-
-#. type: item
-#: doc/guix.texi:8955
-#, no-wrap
-msgid "armhf-linux"
-msgstr "armhf-linux"
-
-#. type: table
-#: doc/guix.texi:8959
-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 ;"
-
-#. type: item
-#: doc/guix.texi:8960
-#, no-wrap
-msgid "aarch64-linux"
-msgstr "aarch64-linux"
-
-#. type: table
-#: doc/guix.texi:8964
-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 !"
-
-#. type: item
-#: doc/guix.texi:8965
-#, no-wrap
-msgid "mips64el-linux"
-msgstr "mips64el-linux"
-
-#. type: table
-#: doc/guix.texi:8968
-msgid "little-endian 64-bit MIPS processors, specifically the Loongson series, n32 ABI, and Linux-Libre kernel."
-msgstr "les processeurs MIPS 64-bits little-endian, spécifiquement la série Loongson, ABI n32, avec le noyau Linux-libre."
-
-#. type: Plain text
-#: doc/guix.texi:8972
-msgid "GuixSD itself is currently only available on @code{i686} and @code{x86_64}."
-msgstr "GuixSD lui-même est actuellement disponible sur @code{i686} et @code{x86_64}."
-
-#. type: Plain text
-#: doc/guix.texi:8976
-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:8991
-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:8995
-#, no-wrap
-msgid "installing GuixSD"
-msgstr "installer GuixSD"
-
-#. type: Plain text
-#: doc/guix.texi:9001
-msgid "This section explains how to install the Guix System Distribution (GuixSD)  on a machine.  The Guix package manager can also be installed on top of a running GNU/Linux system, @pxref{Installation}."
-msgstr "Cette section explique comment installer la distribution système Guix (GuixSD) sur votre machine.  Le gestionnaire de paquets Guix peut aussi être installé sur un système GNU/Linux déjà installé, @pxref{Installation}."
-
-#. type: quotation
-#: doc/guix.texi:9010
-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:9013
-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."
-
-#. type: Plain text
-#: doc/guix.texi:9038
-msgid "As of version @value{VERSION}, the Guix System Distribution (GuixSD) 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 GuixSD 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}, la distribution système Guix (GuixSD) n'est pas prête pour la production.  Elle peut contenir des bogues et ne pas avoir certaines fonctionnalités importantes.  Ainsi, si vous cherche 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 des distributions GNU/Linux mieux établie}.  Nous espérons que vous pourrez bientôt passer à GuixSD 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})."
-
-#. type: Plain text
-#: doc/guix.texi:9041
-msgid "Before you proceed with the installation, be aware of the following noteworthy limitations applicable to version @value{VERSION}:"
-msgstr "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:9047
-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 "Le procédé d'installation n'a pas d'interface utilisateur graphique et requiert une certaine familiarité avec GNU/Linux (voir les sous-sections suivantes pour avoir un aperçu de ce que cela signifie)."
-
-#. type: itemize
-#: doc/guix.texi:9050
-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:9054
-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:9058
-msgid "More than 7,500 packages are available, but you might occasionally find that a useful package is missing."
-msgstr "Plus de 7@tie{}500 paquets sont disponibles, mais vous pourrez parfois trouver qu'un paquet utile est absent."
-
-#. type: itemize
-#: doc/guix.texi:9063
-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 et Enlightenment sont disponibles (@pxref{Desktop Services}), ainsi qu'un certain nombre de gestionnaires de fenêtres X11.  cependant, certaines applications graphiques peuvent manquer, ainsi que KDE."
-
-#. type: Plain text
-#: doc/guix.texi:9068
-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 "Vous êtes avertis ! Mais 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:9073
-#, no-wrap
-msgid "hardware support on GuixSD"
-msgstr "support matériel sur GuixSD"
-
-#. type: Plain text
-#: doc/guix.texi:9082
-msgid "GNU@tie{}GuixSD 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 GuixSD."
-msgstr "GNU@tie{}GuixSD se concentre sur le respect des libertés de ses utilisateurs.  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 supportés.  De nos jours, une grande gamme de matériel qu'on peut acheter est supporté par GNU/Linux-libre — des claviers aux cartes graphiques en passant par les scanners et les contrôleurs Ethernet.  Malheureusement, il reste des produit dont les fabriquants refusent de laisser le contrôle aux utilisateurs sur leur propre utilisation de l'ordinateur, et ces matériels ne sont pas supportés par GuixSD."
-
-#. type: cindex
-#: doc/guix.texi:9083
-#, no-wrap
-msgid "WiFi, hardware support"
-msgstr "WiFi, support matériel"
-
-#. type: Plain text
-#: doc/guix.texi:9092
-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 GuixSD, as part of @var{%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 GuixSD, dans @var{%base-firmware} (@pxref{operating-system Reference, @code{firmware}})."
-
-#. type: cindex
-#: doc/guix.texi:9093
-#, no-wrap
-msgid "RYF, Respects Your Freedom"
-msgstr "RYF, Respects Your Freedom"
-
-#. type: Plain text
-#: doc/guix.texi:9099
-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:9103
-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:9112
-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/guixsd-install-@value{VERSION}.@var{system}.iso.xz}, where @var{system} is one of:"
-msgstr "Une image d'installation ISO-9660 téléchargeable depuis @indicateurl{https://alpha.gnu.org/gnu/guix/guixsd-install-@value{VERSION}.@var{système}.iso.xz} peut être écrite sur une clef USB ou gravée sur un DVD, où @var{système} est l'une de ces valeurs :"
-
-#. type: table
-#: doc/guix.texi:9116
-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:9119
-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 ;"
-
-#. type: Plain text
-#: doc/guix.texi:9124
-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:9128
-#, no-wrap
-msgid ""
-"$ wget https://alpha.gnu.org/gnu/guix/guixsd-install-@value{VERSION}.@var{system}.iso.xz.sig\n"
-"$ gpg --verify guixsd-install-@value{VERSION}.@var{system}.iso.xz.sig\n"
-msgstr ""
-"$ wget https://alpha.gnu.org/gnu/guix/guixsd-install-@value{VERSION}.@var{system}.iso.xz.sig\n"
-"$ gpg --verify guixsd-install-@value{VERSION}.@var{system}.iso.xz.sig\n"
-
-#. type: Plain text
-#: doc/guix.texi:9144
-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: unnumberedsubsubsec
-#: doc/guix.texi:9145
-#, no-wrap
-msgid "Copying to a USB Stick"
-msgstr "Copie sur une clef USB"
-
-#. type: Plain text
-#: doc/guix.texi:9148
-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:9152 doc/guix.texi:9177
-msgid "Decompress the image using the @command{xz} command:"
-msgstr "Décompressez l'image avec la commande @command{xz} :"
-
-#. type: example
-#: doc/guix.texi:9155 doc/guix.texi:9180
-#, no-wrap
-msgid "xz -d guixsd-install-@value{VERSION}.@var{system}.iso.xz\n"
-msgstr "xz -d guixsd-install-@value{VERSION}.@var{système}.iso.xz\n"
-
-#. type: enumerate
-#: doc/guix.texi:9161
-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:9165
-#, no-wrap
-msgid ""
-"dd if=guixsd-install-@value{VERSION}.x86_64-linux.iso of=/dev/sdX\n"
-"sync\n"
-msgstr ""
-"dd if=guixsd-install-@value{VERSION}.x86_64-linux.iso of=/dev/sdX\n"
-"sync\n"
-
-#. type: enumerate
-#: doc/guix.texi:9168
-msgid "Access to @file{/dev/sdX} usually requires root privileges."
-msgstr "Accéder à @file{/dev/sdX} requiert généralement les privilèges super-utilisateur."
-
-#. type: unnumberedsubsubsec
-#: doc/guix.texi:9170
-#, no-wrap
-msgid "Burning on a DVD"
-msgstr "Graver sur un DVD"
-
-#. type: Plain text
-#: doc/guix.texi:9173
-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:9186
-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:9189
-#, no-wrap
-msgid "growisofs -dvd-compat -Z /dev/srX=guixsd-install-@value{VERSION}.x86_64.iso\n"
-msgstr "growisofs -dvd-compat -Z /dev/srX=guixsd-install-@value{VERSION}.x86_64.iso\n"
-
-#. type: enumerate
-#: doc/guix.texi:9192
-msgid "Access to @file{/dev/srX} usually requires root privileges."
-msgstr "Accéder à @file{/dev/srX} requiert généralement les privilèges super-utilisateur."
-
-#. type: unnumberedsubsubsec
-#: doc/guix.texi:9194
-#, no-wrap
-msgid "Booting"
-msgstr "Démarrage"
-
-#. type: Plain text
-#: doc/guix.texi:9199
-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."
-
-#. type: Plain text
-#: doc/guix.texi:9202
-msgid "@xref{Installing GuixSD in a VM}, if, instead, you would like to install GuixSD in a virtual machine (VM)."
-msgstr "@xref{Installing GuixSD in a VM}, si, à la place, vous souhaitez installer GuixSD dans une machine virtuelle (VM)."
-
-#. type: Plain text
-#: doc/guix.texi:9214
-msgid "Once you have successfully booted your computer using the installation medium, you should end up with a root prompt.  Several console TTYs are configured and can be used to run commands as root.  TTY2 shows this documentation, 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 "Une fois que vous avez démarré votre ordinateur sur le média d'installation, vous devriez vous retrouver sur un prompt en root.  Plusieurs TTY sont configurées et peuvent être utilisés pour lancer des commandes en root.  Le TTY2 affiche cette documentation, dans la quelle vous pouvez naviguer 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:9219
-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:9225
-msgid "The installation system includes many common tools needed for this task.  But it is also a full-blown GuixSD 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 inclus plusieurs outils usuels pour requis pour cette tâche.  Mais c'est aussi un système GuixSD 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: subsubsection
-#: doc/guix.texi:9226
-#, no-wrap
-msgid "Keyboard Layout"
-msgstr "Disposition du clavier"
-
 #. type: cindex
-#: doc/guix.texi:9228 doc/guix.texi:11378 doc/guix.texi:12878
-#, no-wrap
-msgid "keyboard layout"
-msgstr "disposition du clavier"
-
-#. type: Plain text
-#: doc/guix.texi:9232
-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:9235
-#, no-wrap
-msgid "loadkeys dvorak\n"
-msgstr "loadkeys dvorak\n"
-
-#. type: Plain text
-#: doc/guix.texi:9240
-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:9241
-#, no-wrap
-msgid "Networking"
-msgstr "Réseau"
-
-#. type: Plain text
-#: doc/guix.texi:9244
-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:9247
-#, no-wrap
-msgid "ifconfig -a\n"
-msgstr "ifconfig -a\n"
-
-#. type: Plain text
-#: doc/guix.texi:9251
-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:9254
-#, no-wrap
-msgid "ip a\n"
-msgstr "ip a\n"
-
-#. type: Plain text
-#: doc/guix.texi:9261
-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:9263
-#, no-wrap
-msgid "Wired connection"
-msgstr "Connexion filaire"
-
-#. type: table
-#: doc/guix.texi:9266
-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:9269
-#, no-wrap
-msgid "ifconfig @var{interface} up\n"
-msgstr "ifconfig @var{interface} up\n"
-
-#. type: item
-#: doc/guix.texi:9271
-#, no-wrap
-msgid "Wireless connection"
-msgstr "Connexion sans-fil"
-
-#. type: cindex
-#: doc/guix.texi:9272 doc/guix.texi:11817
-#, no-wrap
-msgid "wireless"
-msgstr "sans-fil"
-
-#. type: cindex
-#: doc/guix.texi:9273 doc/guix.texi:11818
-#, no-wrap
-msgid "WiFi"
-msgstr "WiFi"
-
-#. type: table
-#: doc/guix.texi:9278
-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:9281
-#, no-wrap
-msgid "nano wpa_supplicant.conf\n"
-msgstr "nano wpa_supplicant.conf\n"
-
-#. type: table
-#: doc/guix.texi:9286
-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:9293
-#, no-wrap
-msgid ""
-"network=@{\n"
-"  ssid=\"@var{my-ssid}\"\n"
-"  key_mgmt=WPA-PSK\n"
-"  psk=\"the network's secret passphrase\"\n"
-"@}\n"
-msgstr ""
-"network=@{\n"
-"  ssid=\"@var{mon-ssid}\"\n"
-"  key_mgmt=WPA-PSK\n"
-"  psk=\"la phrase de passe secrète du réseau\"\n"
-"@}\n"
-
-#. type: table
-#: doc/guix.texi:9298
-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:9301
-#, 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:9304
-msgid "Run @command{man wpa_supplicant} for more information."
-msgstr "Lancez @command{man wpa_supplicant} pour plus d'informations."
-
-#. type: cindex
-#: doc/guix.texi:9306
-#, no-wrap
-msgid "DHCP"
-msgstr "DHCP"
-
-#. type: Plain text
-#: doc/guix.texi:9309
-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:9312
-#, no-wrap
-msgid "dhclient -v @var{interface}\n"
-msgstr "dhclient -v @var{interface}\n"
-
-#. type: Plain text
-#: doc/guix.texi:9315
-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:9318
-#, no-wrap
-msgid "ping -c 3 gnu.org\n"
-msgstr "ping -c 3 gnu.org\n"
-
-#. type: Plain text
-#: doc/guix.texi:9322
-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:9323
-#, no-wrap
-msgid "installing over SSH"
-msgstr "installer par SSH"
-
-#. type: Plain text
-#: doc/guix.texi:9326
-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:9329
-#, no-wrap
-msgid "herd start ssh-daemon\n"
-msgstr "herd start ssh-daemon\n"
-
-#. type: Plain text
-#: doc/guix.texi:9333
-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:9334
-#, no-wrap
-msgid "Disk Partitioning"
-msgstr "Partitionnement"
-
-#. type: Plain text
-#: doc/guix.texi:9338
-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:9343
-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:9346
-#, no-wrap
-msgid "cfdisk\n"
-msgstr "cfdisk\n"
-
-#. type: Plain text
-#: doc/guix.texi:9352
-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:9353
-#, no-wrap
-msgid "EFI, installation"
-msgstr "EFI, installation"
-
-#. type: cindex
-#: doc/guix.texi:9354
-#, no-wrap
-msgid "UEFI, installation"
-msgstr "UEFI, installation"
-
-#. type: cindex
-#: doc/guix.texi:9355
-#, no-wrap
-msgid "ESP, EFI system partition"
-msgstr "ESP, partition système EFI"
-
-#. type: Plain text
-#: doc/guix.texi:9359
-msgid "If you instead wish to use EFI-based GRUB, a FAT32 @dfn{EFI System Partition} (ESP) is required.  This partition should be mounted at @file{/boot/efi} 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 devrait être montée dans @file{/boot/efi} et doit avoir le drapeau @code{esp}.  P.@: ex.@: pour @command{parted} :"
-
-#. type: example
-#: doc/guix.texi:9362
-#, 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:9365 doc/guix.texi:22092
-#, no-wrap
-msgid "grub-bootloader"
-msgstr "grub-bootloader"
-
-#. type: vindex
-#: doc/guix.texi:9366 doc/guix.texi:22086
-#, no-wrap
-msgid "grub-efi-bootloader"
-msgstr "grub-efi-bootloader"
-
-#. type: quotation
-#: doc/guix.texi:9373
-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:9381
-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 GuixSD 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 GuixSD 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 :"
-
-#. type: example
-#: doc/guix.texi:9384
-#, no-wrap
-msgid "mkfs.fat -F32 /dev/sda1\n"
-msgstr "mkfs.fat -F32 /dev/sda1\n"
-
-#. type: Plain text
-#: doc/guix.texi:9392
-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:9395
-#, 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:9397 doc/guix.texi:9823
-#, no-wrap
-msgid "encrypted disk"
-msgstr "chiffrement du disque"
-
-#. type: Plain text
-#: doc/guix.texi:9404
-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 :"
-
-#. type: example
-#: doc/guix.texi:9409
-#, no-wrap
-msgid ""
-"cryptsetup luksFormat /dev/sda2\n"
-"cryptsetup open --type luks /dev/sda2 my-partition\n"
-"mkfs.ext4 -L my-root /dev/mapper/my-partition\n"
-msgstr ""
-"cryptsetup luksFormat /dev/sda2\n"
-"cryptsetup open --type luks /dev/sda2 my-partition\n"
-"mkfs.ext4 -L my-root /dev/mapper/my-partition\n"
-
-#. type: Plain text
-#: doc/guix.texi:9414
-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:9417
-#, no-wrap
-msgid "mount LABEL=my-root /mnt\n"
-msgstr "mount LABEL=my-root /mnt\n"
-
-#. type: Plain text
-#: doc/guix.texi:9423
-msgid "Also mount any other file systems you would like to use on the target system relative to this path.  If you have @file{/boot} on a separate partition for example, mount it at @file{/mnt/boot} 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 un @file{/boot} sur une partition séparé par exemple, montez-le sur @file{/mnt/boot} maintenant pour qu'il puisse être trouvé par @code{guix system init} ensuite."
-
-#. type: Plain text
-#: doc/guix.texi:9428
-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:9432
-#, no-wrap
-msgid ""
-"mkswap /dev/sda3\n"
-"swapon /dev/sda3\n"
-msgstr ""
-"mkswap /dev/sda3\n"
-"swapon /dev/sda3\n"
-
-#. type: Plain text
-#: doc/guix.texi:9440
-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:9448
-#, no-wrap
-msgid ""
-"# This is 10 GiB of swap space.  Adjust \"count\" to change the size.\n"
-"dd if=/dev/zero of=/mnt/swapfile bs=1MiB count=10240\n"
-"# For security, make the file readable and writable only by root.\n"
-"chmod 600 /mnt/swapfile\n"
-"mkswap /mnt/swapfile\n"
-"swapon /mnt/swapfile\n"
-msgstr ""
-"# Cela représente 10 Gio d'espace d'échange. Ajustez « count » pour changer la taille.\n"
-"dd if=/dev/zero of=/mnt/swapfile bs=1MiB count=10240\n"
-"# Par sécurité, laissez le fichier en lecture et en écriture uniquement pour root.\n"
-"chmod 600 /mnt/swapfile\n"
-"mkswap /mnt/swapfile\n"
-"swapon /mnt/swapfile\n"
-
-#. type: Plain text
-#: doc/guix.texi:9453
-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:9459
-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:9462
-#, no-wrap
-msgid "herd start cow-store /mnt\n"
-msgstr "herd start cow-store /mnt\n"
-
-#. type: Plain text
-#: doc/guix.texi:9469
-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:9480
-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:9487
-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:9492
-#, no-wrap
-msgid ""
-"# mkdir /mnt/etc\n"
-"# cp /etc/configuration/desktop.scm /mnt/etc/config.scm\n"
-"# nano /mnt/etc/config.scm\n"
-msgstr ""
-"# mkdir /mnt/etc\n"
-"# cp /etc/configuration/desktop.scm /mnt/etc/config.scm\n"
-"# nano /mnt/etc/config.scm\n"
-
-#. type: Plain text
-#: doc/guix.texi:9496
-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:9506
-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}, and do make sure the path is actually mounted."
-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 que ce chemin est bien monté."
-
-#. type: itemize
-#: doc/guix.texi:9512
-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:9516
-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:9521
-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:9524
-#, 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:9531
-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:9538
-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})."
-msgstr "Une fois que cette commande a terminée — 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 utilisateurs 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 utilisateurs})."
-
-#. type: cindex
-#: doc/guix.texi:9539
-#, no-wrap
-msgid "upgrading GuixSD"
-msgstr "mettre à jour GuixSD"
-
-#. type: Plain text
-#: doc/guix.texi:9546
-msgid "From then on, you can update GuixSD whenever you want by running @command{guix pull} as @code{root} (@pxref{Invoking guix pull}), and then running @command{guix system reconfigure} to build 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 "À partir de maintenant, vous pouvez mettre à jour GuixSD lorsque vous le souhaitez en lançant @command{guix pull} en tant que @code{root} (@pxref{Invoking guix pull}), puis en lançant @command{guix system reconfigure} pour construire une nouvelle génération du système avec les derniers paquets et les derniers services (@pxref{Invoking guix system}).  Nous vous recommandons de le faire régulièrement pour que votre système inclus les dernières mises à jour de sécurité (@pxref{Security Updates})."
-
-#. type: Plain text
-#: doc/guix.texi:9550
-msgid "Join us on @code{#guix} on the Freenode IRC network or on @file{guix-devel@@gnu.org} to share your experience---good or not so good."
-msgstr "Rejoignez-nous sur @code{#guix} sur le réseau IRC Freenode ou sur @file{guix-devel@@gnu.org} pour partager votre expérience — bonne ou mauvaise."
-
-#. type: subsection
-#: doc/guix.texi:9552
-#, no-wrap
-msgid "Installing GuixSD in a Virtual Machine"
-msgstr "Installer GuixSD sur une machine virtuelle"
-
-#. type: cindex
-#: doc/guix.texi:9554
-#, no-wrap
-msgid "virtual machine, GuixSD installation"
-msgstr "machine virtuelle, installation de GuixSD"
-
-#. type: cindex
-#: doc/guix.texi:9555
-#, no-wrap
-msgid "virtual private server (VPS)"
-msgstr "serveur privé virtuel (VPS)"
-
-#. type: cindex
-#: doc/guix.texi:9556
-#, no-wrap
-msgid "VPS (virtual private server)"
-msgstr "VPS (serveur privé virtuel)"
-
-#. type: Plain text
-#: doc/guix.texi:9560
-msgid "If you'd like to install GuixSD 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 GuixSD 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:9563
-msgid "To boot a @uref{http://qemu.org/,QEMU} VM for installing GuixSD in a disk image, follow these steps:"
-msgstr "Pour démarrer une VM @uref{http://qemu.org/,QEMU} pour installer GuixSD sur une image disque, suivez ces étapes :"
-
-#. type: enumerate
-#: doc/guix.texi:9568
-msgid "First, retrieve and decompress the GuixSD 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 de GuixSD comme décrit précédemment (@pxref{USB Stick and DVD Installation})."
-
-#. type: enumerate
-#: doc/guix.texi:9572
-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:9575
-#, no-wrap
-msgid "qemu-img create -f qcow2 guixsd.img 50G\n"
-msgstr "qemu-img create -f qcow2 guixsd.img 50G\n"
-
-#. type: enumerate
-#: doc/guix.texi:9579
-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:9582
-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:9588
-#, no-wrap
-msgid ""
-"qemu-system-x86_64 -m 1024 -smp 1 \\\n"
-"  -net user -net nic,model=virtio -boot menu=on \\\n"
-"  -drive file=guixsd-install-@value{VERSION}.@var{system}.iso \\\n"
-"  -drive file=guixsd.img\n"
-msgstr ""
-"qemu-system-x86_64 -m 1024 -smp 1 \\\n"
-"  -net user -net nic,model=virtio -boot menu=on \\\n"
-"  -drive file=guixsd-install-@value{VERSION}.@var{system}.iso \\\n"
-"  -drive file=guixsd.img\n"
-
-#. type: enumerate
-#: doc/guix.texi:9591
-msgid "The ordering of the drives matters."
-msgstr "L'ordre des périphérique est important"
-
-#. type: enumerate
-#: doc/guix.texi:9595
-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."
-
-#. type: enumerate
-#: doc/guix.texi:9599
-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:9604
-msgid "Once installation is complete, you can boot the system that's on your @file{guixsd.img} image.  @xref{Running GuixSD 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 GuixSD in a VM}, pour une manière de faire."
-
-#. type: cindex
-#: doc/guix.texi:9608
-#, no-wrap
-msgid "installation image"
-msgstr "image d'installation"
-
-#. type: Plain text
-#: doc/guix.texi:9611
-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:9614
-#, no-wrap
-msgid "guix system disk-image gnu/system/install.scm\n"
-msgstr "guix system disk-image gnu/system/install.scm\n"
-
-#. type: Plain text
-#: doc/guix.texi:9619
-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: subsection
-#: doc/guix.texi:9620
-#, 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:9624
-msgid "Many ARM boards require a specific variant of the @uref{http://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{http://www.denx.de/wiki/U-Boot/, U-Boot}."
-
-#. type: Plain text
-#: doc/guix.texi:9628
-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:9631
-#, 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:9635
-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: cindex
-#: doc/guix.texi:9639
+#: doc/guix.texi:10170
 #, no-wrap
 msgid "system configuration"
 msgstr "configuration du système"
 
 #. type: Plain text
-#: doc/guix.texi:9645
+#: doc/guix.texi:10176
 msgid "The Guix System Distribution 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 "La distribution système Guix 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, des fuseaux horaires, des paramètres linguistiques, 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:9655
+#: doc/guix.texi:10186
 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:9660
+#: doc/guix.texi:10191
 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:9687
+#: doc/guix.texi:10219
 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:9688
+#: doc/guix.texi:10220
 #, no-wrap
 msgid "operating-system"
 msgstr "operating-system"
 
 #. type: include
-#: doc/guix.texi:9690
+#: doc/guix.texi:10222
 #, no-wrap
 msgid "os-config-bare-bones.texi"
 msgstr "os-config-bare-bones.texi"
 
 #. type: Plain text
-#: doc/guix.texi:9697
+#: doc/guix.texi:10229
 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:9702
+#: doc/guix.texi:10234
 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: unnumberedsubsubsec
-#: doc/guix.texi:9703
+#. type: unnumberedsubsec
+#: doc/guix.texi:10235
 #, no-wrap
 msgid "Bootloader"
 msgstr "Bootloader"
 
 #. type: cindex
-#: doc/guix.texi:9705
+#: doc/guix.texi:10237
 #, no-wrap
 msgid "legacy boot, on Intel machines"
 msgstr "ancien système de démarrage, sur les machines Intel"
 
 #. type: cindex
-#: doc/guix.texi:9706
+#: doc/guix.texi:10238
 #, no-wrap
 msgid "BIOS boot, on Intel machines"
 msgstr "démarrage BIOS, sur les machines Intel"
 
 #. type: cindex
-#: doc/guix.texi:9707
+#: doc/guix.texi:10239
 #, no-wrap
 msgid "UEFI boot"
 msgstr "démarrage UEFI"
 
 #. type: cindex
-#: doc/guix.texi:9708
+#: doc/guix.texi:10240
 #, no-wrap
 msgid "EFI boot"
 msgstr "démarrage EFI"
 
 #. type: Plain text
-#: doc/guix.texi:9714
+#: doc/guix.texi:10246
 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:9719
+#: doc/guix.texi:10251
 #, no-wrap
 msgid ""
 "(bootloader-configuration\n"
@@ -17078,29 +18462,29 @@ msgstr ""
 "  (target \"/boot/efi\"))\n"
 
 #. type: Plain text
-#: doc/guix.texi:9723
+#: doc/guix.texi:10255
 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: unnumberedsubsubsec
-#: doc/guix.texi:9724
+#. type: unnumberedsubsec
+#: doc/guix.texi:10256
 #, no-wrap
 msgid "Globally-Visible Packages"
 msgstr "Paquets visibles sur tout le système"
 
 #. type: vindex
-#: doc/guix.texi:9726
+#: doc/guix.texi:10258
 #, no-wrap
 msgid "%base-packages"
 msgstr "%base-packages"
 
 #. type: Plain text
-#: doc/guix.texi:9739
+#: doc/guix.texi:10271
 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 :"
 
 #. type: lisp
-#: doc/guix.texi:9743
+#: doc/guix.texi:10275
 #, no-wrap
 msgid ""
 "(use-modules (gnu packages))\n"
@@ -17112,7 +18496,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:9748
+#: doc/guix.texi:10280
 #, no-wrap
 msgid ""
 "(operating-system\n"
@@ -17126,18 +18510,18 @@ msgstr ""
 "                  %base-packages)))\n"
 
 #. type: findex
-#: doc/guix.texi:9750
+#: doc/guix.texi:10282
 #, no-wrap
 msgid "specification->package"
 msgstr "specification->package"
 
 #. type: Plain text
-#: doc/guix.texi:9759
+#: doc/guix.texi:10291
 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:9762
+#: doc/guix.texi:10294
 #, no-wrap
 msgid ""
 "(use-modules (gnu packages))\n"
@@ -17147,7 +18531,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:9768
+#: doc/guix.texi:10300
 #, no-wrap
 msgid ""
 "(operating-system\n"
@@ -17162,53 +18546,53 @@ msgstr ""
 "                         '(\"tcpdump\" \"htop\" \"gnupg@@2.0\"))\n"
 "                    %base-packages)))\n"
 
-#. type: unnumberedsubsubsec
-#: doc/guix.texi:9770
+#. type: unnumberedsubsec
+#: doc/guix.texi:10302
 #, no-wrap
 msgid "System Services"
 msgstr "Services systèmes"
 
 #. type: cindex
-#: doc/guix.texi:9772 doc/guix.texi:21862 doc/guix.texi:22793
+#: doc/guix.texi:10304 doc/guix.texi:23682 doc/guix.texi:24670
 #, no-wrap
 msgid "services"
 msgstr "services"
 
 #. type: vindex
-#: doc/guix.texi:9773
+#: doc/guix.texi:10305
 #, no-wrap
 msgid "%base-services"
 msgstr "%base-services"
 
 #. type: Plain text
-#: doc/guix.texi:9783
-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 @command{lshd} secure shell daemon listening on port 2222 (@pxref{Networking Services, @code{lsh-service}}).  Under the hood, @code{lsh-service} arranges so that @code{lshd} 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 @command{lshd} écoute sur le port 2222 (@pxref{Networking Services, @code{lsh-service}}).  Sous le capot, @code{lsh-service} s'arrange pour que @code{lshd} soit lancé avec les bonnes options de la ligne de commande, éventuellement en générant des fichiers de configuration (@pxref{Defining Services})."
+#: doc/guix.texi:10315
+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:9784
+#: doc/guix.texi:10316
 #, no-wrap
 msgid "customization, of services"
 msgstr "personnalisation des services"
 
 #. type: findex
-#: doc/guix.texi:9785
+#: doc/guix.texi:10317
 #, no-wrap
 msgid "modify-services"
 msgstr "modify-services"
 
 #. type: Plain text
-#: doc/guix.texi:9789
+#: doc/guix.texi:10321
 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:9794
+#: doc/guix.texi:10326
 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 :"
 
 #. type: lisp
-#: doc/guix.texi:9807
+#: doc/guix.texi:10339
 #, no-wrap
 msgid ""
 "(define %my-services\n"
@@ -17237,7 +18621,7 @@ msgstr ""
 "                            (inherit config)))))\n"
 
 #. type: lisp
-#: doc/guix.texi:9811
+#: doc/guix.texi:10343
 #, no-wrap
 msgid ""
 "(operating-system\n"
@@ -17249,49 +18633,49 @@ msgstr ""
 "  (services %my-services))\n"
 
 #. type: Plain text
-#: doc/guix.texi:9822
+#: doc/guix.texi:10354
 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."
 
 #. type: Plain text
-#: doc/guix.texi:9829
+#: doc/guix.texi:10361
 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:9831
+#: doc/guix.texi:10363
 #, no-wrap
 msgid "os-config-desktop.texi"
 msgstr "os-config-desktop.texi"
 
 #. type: Plain text
-#: doc/guix.texi:9836
+#: doc/guix.texi:10368
 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:9838
+#: doc/guix.texi:10370
 #, no-wrap
 msgid "os-config-lightweight-desktop.texi"
 msgstr "os-config-lightweight-desktop.texi"
 
 #. type: Plain text
-#: doc/guix.texi:9844
+#: doc/guix.texi:10376
 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:9848
+#: doc/guix.texi:10380
 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."
 
 #. type: Plain text
-#: doc/guix.texi:9855
+#: doc/guix.texi:10387
 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 :"
 
 #. type: example
-#: doc/guix.texi:9860
+#: doc/guix.texi:10392
 #, no-wrap
 msgid ""
 "(remove (lambda (service)\n"
@@ -17302,289 +18686,321 @@ msgstr ""
 "          (eq? (service-kind service) avahi-service-type))\n"
 "        %desktop-services)\n"
 
-#. type: unnumberedsubsubsec
-#: doc/guix.texi:9862
+#. type: unnumberedsubsec
+#: doc/guix.texi:10394
 #, no-wrap
 msgid "Instantiating the System"
 msgstr "Instancier le système"
 
 #. type: Plain text
-#: doc/guix.texi:9869
+#: doc/guix.texi:10401
 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:9877
+#: doc/guix.texi:10409
 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:9878
+#: doc/guix.texi:10410
 #, 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:9888
+#: doc/guix.texi:10420
 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:9894
+#: doc/guix.texi:10426
 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: unnumberedsubsubsec
-#: doc/guix.texi:9895
+#. type: unnumberedsubsec
+#: doc/guix.texi:10427
 #, no-wrap
 msgid "The Programming Interface"
 msgstr "L'interface de programmation"
 
 #. type: Plain text
-#: doc/guix.texi:9900
+#: doc/guix.texi:10432
 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:9901
+#: doc/guix.texi:10433
 #, no-wrap
 msgid "{Monadic Procedure} operating-system-derivation os"
 msgstr "{Procédure monadique} operating-system-derivation os"
 
 #. type: deffn
-#: doc/guix.texi:9904
+#: doc/guix.texi:10436
 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:9908
+#: doc/guix.texi:10440
 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:9913
-msgid "This procedure is provided by the @code{(gnu system)} module.  Along with @code{(gnu services)} (@pxref{Services}), this module contains the guts of GuixSD.  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 de GuixSD.  Ouvrez-le un jour !"
+#: doc/guix.texi:10445
+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: subsection
-#: doc/guix.texi:9916
+#. type: section
+#: doc/guix.texi:10448
 #, no-wrap
 msgid "@code{operating-system} Reference"
 msgstr "Référence de @code{operating-system}"
 
 #. type: Plain text
-#: doc/guix.texi:9921
+#: doc/guix.texi:10453
 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:9922
+#: doc/guix.texi:10454
 #, no-wrap
 msgid "{Data Type} operating-system"
 msgstr "{Type de données} operating-system"
 
 #. type: deftp
-#: doc/guix.texi:9926
+#: doc/guix.texi:10458
 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:9928
+#: doc/guix.texi:10460
 #, no-wrap
 msgid "@code{kernel} (default: @var{linux-libre})"
 msgstr "@code{kernel} (par défaut : @var{linux-libre})"
 
 #. type: table
-#: doc/guix.texi:9932
+#: doc/guix.texi:10464
 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.}."
 
 #. type: item
-#: doc/guix.texi:9933
+#: doc/guix.texi:10465
 #, no-wrap
-msgid "@code{kernel-arguments} (default: @code{'()})"
-msgstr "@code{kernel-arguments} (par défaut : @code{'()})"
+msgid "@code{kernel-arguments} (default: @code{'(\"quiet\")})"
+msgstr "@code{kernel-arguments} (par défaut : @code{'(\"quiet\")})"
 
 #. type: table
-#: doc/guix.texi:9936
+#: doc/guix.texi:10468
 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:9937 doc/guix.texi:22059 doc/guix.texi:22078
+#: doc/guix.texi:10469 doc/guix.texi:23893 doc/guix.texi:23912
 #, no-wrap
 msgid "bootloader"
 msgstr "bootloader"
 
 #. type: table
-#: doc/guix.texi:9939
+#: doc/guix.texi:10471
 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:10472 doc/guix.texi:24032
+#, no-wrap
+msgid "label"
+msgstr "label"
+
+#. type: table
+#: doc/guix.texi:10475
+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:10476 doc/guix.texi:13643 doc/guix.texi:23962
+#, no-wrap
+msgid "@code{keyboard-layout} (default: @code{#f})"
+msgstr "@code{keyboard-layout} (par défaut : @code{#f})"
+
+#. type: table
+#: doc/guix.texi:10480
+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:10485
+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:10492
+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:9940
+#: doc/guix.texi:10494
 #, 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:9941 doc/guix.texi:21899 doc/guix.texi:22002
-#: doc/guix.texi:22210
+#: doc/guix.texi:10495 doc/guix.texi:23719 doc/guix.texi:23822
+#: doc/guix.texi:24057
 #, no-wrap
 msgid "initrd"
 msgstr "initrd"
 
 #. type: cindex
-#: doc/guix.texi:9942 doc/guix.texi:21900 doc/guix.texi:22003
+#: doc/guix.texi:10496 doc/guix.texi:23720 doc/guix.texi:23823
 #, no-wrap
 msgid "initial RAM disk"
 msgstr "disque de RAM initial"
 
 #. type: table
-#: doc/guix.texi:9945
+#: doc/guix.texi:10499
 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:9946
+#: doc/guix.texi:10500
 #, no-wrap
 msgid "@code{initrd} (default: @code{base-initrd})"
 msgstr "@code{initrd} (par défaut : @code{base-initrd})"
 
 #. type: table
-#: doc/guix.texi:9950
+#: doc/guix.texi:10504
 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:9951
+#: doc/guix.texi:10505
 #, no-wrap
 msgid "@code{firmware} (default: @var{%base-firmware})"
 msgstr "@code{firmware} (par défaut : @var{%base-firmware})"
 
 #. type: cindex
-#: doc/guix.texi:9952
+#: doc/guix.texi:10506
 #, no-wrap
 msgid "firmware"
 msgstr "firmware"
 
 #. type: table
-#: doc/guix.texi:9954
+#: doc/guix.texi:10508
 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:9959
+#: doc/guix.texi:10513
 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:9960
+#: doc/guix.texi:10514
 #, no-wrap
 msgid "host-name"
 msgstr "host-name"
 
 #. type: table
-#: doc/guix.texi:9962
+#: doc/guix.texi:10516
 msgid "The host name."
 msgstr "Le nom d'hôte."
 
 #. type: code{#1}
-#: doc/guix.texi:9963
+#: doc/guix.texi:10517
 #, no-wrap
 msgid "hosts-file"
 msgstr "hosts-file"
 
 #. type: cindex
-#: doc/guix.texi:9964
+#: doc/guix.texi:10518
 #, no-wrap
 msgid "hosts file"
 msgstr "fichier hosts"
 
 #. type: table
-#: doc/guix.texi:9969
+#: doc/guix.texi:10523
 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:9970
+#: doc/guix.texi:10524
 #, no-wrap
 msgid "@code{mapped-devices} (default: @code{'()})"
 msgstr "@code{mapped-devices} (par défaut : @code{'()})"
 
 #. type: table
-#: doc/guix.texi:9972
+#: doc/guix.texi:10526
 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:9973
+#: doc/guix.texi:10527
 #, no-wrap
 msgid "file-systems"
 msgstr "file-systems"
 
 #. type: table
-#: doc/guix.texi:9975
+#: doc/guix.texi:10529
 msgid "A list of file systems.  @xref{File Systems}."
 msgstr "Une liste de systèmes de fichiers.  @xref{File Systems}."
 
 #. type: item
-#: doc/guix.texi:9976
+#: doc/guix.texi:10530
 #, no-wrap
 msgid "@code{swap-devices} (default: @code{'()})"
 msgstr "@code{swap-devices} (par défaut : @code{'()})"
 
 #. type: cindex
-#: doc/guix.texi:9977
+#: doc/guix.texi:10531
 #, no-wrap
 msgid "swap devices"
 msgstr "espaces d'échange"
 
 #. type: table
-#: doc/guix.texi:9984
+#: doc/guix.texi:10538
 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}."
 
 #. type: item
-#: doc/guix.texi:9985
+#: doc/guix.texi:10539
 #, 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:9986
+#: doc/guix.texi:10540
 #, no-wrap
 msgid "@code{groups} (default: @var{%base-groups})"
 msgstr "@code{groups} (par défaut : @var{%base-groups})"
 
 #. type: table
-#: doc/guix.texi:9988
+#: doc/guix.texi:10542
 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:9991
+#: doc/guix.texi:10545
 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:9992
+#: doc/guix.texi:10546
 #, no-wrap
 msgid "@code{skeletons} (default: @code{(default-skeletons)})"
 msgstr "@code{skeletons} (par défaut : @code{(default-skeletons)})"
 
 #. type: table
-#: doc/guix.texi:9996
+#: doc/guix.texi:10550
 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."
 
 #. type: table
-#: doc/guix.texi:9998
+#: doc/guix.texi:10552
 msgid "For instance, a valid value may look like this:"
 msgstr "Par exemple, un valeur valide ressemblerait à cela :"
 
 #. type: example
-#: doc/guix.texi:10004
+#: doc/guix.texi:10558
 #, no-wrap
 msgid ""
 "`((\".bashrc\" ,(plain-file \"bashrc\" \"echo Hello\\n\"))\n"
@@ -17598,166 +19014,228 @@ msgstr ""
 "                          (activate-readline)\")))\n"
 
 #. type: item
-#: doc/guix.texi:10006
+#: doc/guix.texi:10560
 #, no-wrap
 msgid "@code{issue} (default: @var{%default-issue})"
 msgstr "@code{issue} (par défaut : @var{%default-issue})"
 
 #. type: table
-#: doc/guix.texi:10009
+#: doc/guix.texi:10563
 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:10010
+#: doc/guix.texi:10564
 #, no-wrap
 msgid "@code{packages} (default: @var{%base-packages})"
 msgstr "@code{packages} (par défaut : @var{%base-packages})"
 
 #. type: table
-#: doc/guix.texi:10013
+#: doc/guix.texi:10567
 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}."
 
 #. type: table
-#: doc/guix.texi:10017
+#: doc/guix.texi:10571
 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:10018
+#: doc/guix.texi:10572
 #, no-wrap
 msgid "timezone"
 msgstr "timezone"
 
 #. type: table
-#: doc/guix.texi:10020
+#: doc/guix.texi:10574
 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:10024
+#: doc/guix.texi:10578
 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:10025
+#: doc/guix.texi:10579
 #, 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:10028
+#: doc/guix.texi:10582
 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:10029
+#: doc/guix.texi:10583
 #, no-wrap
 msgid "@code{locale-definitions} (default: @var{%default-locale-definitions})"
 msgstr "@code{locale-definitions} (par défaut : @var{%default-locale-definitions})"
 
 #. type: table
-#: doc/guix.texi:10032
+#: doc/guix.texi:10586
 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:10033
+#: doc/guix.texi:10587
 #, 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:10037
+#: doc/guix.texi:10591
 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:10038
+#: doc/guix.texi:10592
 #, no-wrap
 msgid "@code{name-service-switch} (default: @var{%default-nss})"
 msgstr "@code{name-service-switch} (par défaut : @var{%default-nss})"
 
 #. type: table
-#: doc/guix.texi:10042
+#: doc/guix.texi:10596
 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:10043
+#: doc/guix.texi:10597
 #, no-wrap
 msgid "@code{services} (default: @var{%base-services})"
 msgstr "@code{services} (par défaut : @var{%base-services})"
 
 #. type: table
-#: doc/guix.texi:10045
+#: doc/guix.texi:10599
 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:10600
+#, no-wrap
+msgid "essential services"
+msgstr "services essentiels"
+
 #. type: item
-#: doc/guix.texi:10046
+#: doc/guix.texi:10601
+#, no-wrap
+msgid "@code{essential-services} (default: ...)"
+msgstr "@code{essential-services} (par défaut : …)"
+
+#. type: table
+#: doc/guix.texi:10606
+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:10607
 #, 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:10047
+#: doc/guix.texi:10608
 #, no-wrap
 msgid "PAM"
 msgstr "PAM"
 
 #. type: cindex
-#: doc/guix.texi:10048
+#: doc/guix.texi:10609
 #, no-wrap
 msgid "pluggable authentication modules"
 msgstr "pluggable authentication modules"
 
 #. type: table
-#: doc/guix.texi:10051
+#: doc/guix.texi:10612
 msgid "Linux @dfn{pluggable authentication module} (PAM) services."
 msgstr "Services PAM (@dfn{pluggable authentication module}) Linux."
 
 #. type: item
-#: doc/guix.texi:10052
+#: doc/guix.texi:10613
 #, no-wrap
 msgid "@code{setuid-programs} (default: @var{%setuid-programs})"
 msgstr "@code{setuid-programs} (par défaut : @var{%setuid-programs})"
 
 #. type: table
-#: doc/guix.texi:10055
+#: doc/guix.texi:10616
 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:10056
+#: doc/guix.texi:10617
 #, no-wrap
 msgid "@code{sudoers-file} (default: @var{%sudoers-specification})"
 msgstr "@code{sudoers-file} (par défaut : @var{%sudoers-specification})"
 
 #. type: cindex
-#: doc/guix.texi:10057
+#: doc/guix.texi:10618
 #, no-wrap
 msgid "sudoers file"
 msgstr "fichier sudoers"
 
 #. type: table
-#: doc/guix.texi:10060
+#: doc/guix.texi:10621
 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:10065
+#: doc/guix.texi:10626
 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:10629
+#, no-wrap
+msgid "{Scheme Syntax} this-operating-system"
+msgstr "{Type de données} this-operating-system"
+
+#. type: deffn
+#: doc/guix.texi:10632
+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:10635
+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:10638 doc/guix.texi:13297
+#, no-wrap
+msgid ""
+"(use-modules (gnu) (guix))\n"
+"\n"
+msgstr ""
+"(use-modules (gnu) (guix))\n"
+"\n"
+
+#. type: example
+#: doc/guix.texi:10643
+#, no-wrap
+msgid ""
+"(operating-system\n"
+"  ;; ...\n"
+"  (label (package-full-name\n"
+"          (operating-system-kernel this-operating-system))))\n"
+msgstr ""
+"(operating-system\n"
+"  ;; ...\n"
+"  (label (package-full-name\n"
+"          (operating-system-kernel this-operating-system))))\n"
+
+#. type: deffn
+#: doc/guix.texi:10647
+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:10076
+#: doc/guix.texi:10658
 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:10082
+#: doc/guix.texi:10664
 #, no-wrap
 msgid ""
 "(file-system\n"
@@ -17771,67 +19249,67 @@ msgstr ""
 "  (type \"ext4\"))\n"
 
 #. type: Plain text
-#: doc/guix.texi:10086
+#: doc/guix.texi:10668
 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:10087
+#: doc/guix.texi:10669
 #, no-wrap
 msgid "{Data Type} file-system"
 msgstr "{Type de données} file-system"
 
 #. type: deftp
-#: doc/guix.texi:10090
+#: doc/guix.texi:10672
 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:10092 doc/guix.texi:10278
+#: doc/guix.texi:10674 doc/guix.texi:10860
 #, no-wrap
 msgid "type"
 msgstr "type"
 
 #. type: table
-#: doc/guix.texi:10095
+#: doc/guix.texi:10677
 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:10096
+#: doc/guix.texi:10678
 #, no-wrap
 msgid "mount-point"
 msgstr "mount-point"
 
 #. type: table
-#: doc/guix.texi:10098
+#: doc/guix.texi:10680
 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:10099
+#: doc/guix.texi:10681
 #, no-wrap
 msgid "device"
 msgstr "device"
 
 #. type: table
-#: doc/guix.texi:10109
+#: doc/guix.texi:10691
 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:10110
+#: doc/guix.texi:10692
 #, no-wrap
 msgid "file-system-label"
 msgstr "file-system-label"
 
 #. type: table
-#: doc/guix.texi:10115
+#: doc/guix.texi:10697
 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:10121
+#: doc/guix.texi:10703
 #, no-wrap
 msgid ""
 "(file-system\n"
@@ -17845,18 +19323,18 @@ msgstr ""
 "  (device (file-system-label \"my-home\")))\n"
 
 #. type: findex
-#: doc/guix.texi:10123
+#: doc/guix.texi:10705
 #, no-wrap
 msgid "uuid"
 msgstr "uuid"
 
 #. type: table
-#: doc/guix.texi:10131
+#: doc/guix.texi:10713
 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:10137
+#: doc/guix.texi:10719
 #, no-wrap
 msgid ""
 "(file-system\n"
@@ -17870,268 +19348,268 @@ msgstr ""
 "  (device (uuid \"4dab5feb-d176-45de-b287-9b0a6e4c01cb\")))\n"
 
 #. type: table
-#: doc/guix.texi:10145
+#: doc/guix.texi:10727
 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:10146
+#: doc/guix.texi:10728
 #, no-wrap
 msgid "@code{flags} (default: @code{'()})"
 msgstr "@code{flags} (par défaut : @code{'()})"
 
 #. type: table
-#: doc/guix.texi:10151
+#: doc/guix.texi:10733
 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), and @code{no-exec} (disallow program execution.)"
 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) et @code{no-exec} (interdit l'exécution de programmes)."
 
 #. type: item
-#: doc/guix.texi:10152
+#: doc/guix.texi:10734
 #, no-wrap
 msgid "@code{options} (default: @code{#f})"
 msgstr "@code{options} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:10154
+#: doc/guix.texi:10736
 msgid "This is either @code{#f}, or a string denoting mount options."
 msgstr "C'est soit @code{#f} soit une chaîne de caractères dénotant des options de montage."
 
 #. type: item
-#: doc/guix.texi:10155
+#: doc/guix.texi:10737
 #, no-wrap
 msgid "@code{mount?} (default: @code{#t})"
 msgstr "@code{mount?} (par défaut : @code{#t})"
 
 #. type: table
-#: doc/guix.texi:10160
+#: doc/guix.texi:10742
 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:10161
+#: doc/guix.texi:10743
 #, 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:10166
+#: doc/guix.texi:10748
 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:10167
+#: doc/guix.texi:10749
 #, no-wrap
 msgid "@code{check?} (default: @code{#t})"
 msgstr "@code{check?} (par défaut : @code{#t})"
 
 #. type: table
-#: doc/guix.texi:10170
+#: doc/guix.texi:10752
 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:10171
+#: doc/guix.texi:10753
 #, 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:10173
+#: doc/guix.texi:10755
 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:10174
+#: doc/guix.texi:10756
 #, no-wrap
 msgid "@code{dependencies} (default: @code{'()})"
 msgstr "@code{dependencies} (par défaut : @code{'()})"
 
 #. type: table
-#: doc/guix.texi:10178
+#: doc/guix.texi:10760
 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:10182
+#: doc/guix.texi:10764
 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:10185
+#: doc/guix.texi:10767
 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: Plain text
-#: doc/guix.texi:10190
+#: doc/guix.texi:10772
 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:10191
+#: doc/guix.texi:10773
 #, no-wrap
 msgid "{Scheme Variable} %base-file-systems"
 msgstr "{Variable Scheme} %base-file-systems"
 
 #. type: defvr
-#: doc/guix.texi:10196
+#: doc/guix.texi:10778
 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."
 
 #. type: defvr
-#: doc/guix.texi:10198
+#: doc/guix.texi:10780
 #, no-wrap
 msgid "{Scheme Variable} %pseudo-terminal-file-system"
 msgstr "{Variable Scheme} %pseudo-terminal-file-system"
 
 #. type: defvr
-#: doc/guix.texi:10204
+#: doc/guix.texi:10786
 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:10206
+#: doc/guix.texi:10788
 #, no-wrap
 msgid "{Scheme Variable} %shared-memory-file-system"
 msgstr "{Variable Scheme} %shared-memory-file-system"
 
 #. type: defvr
-#: doc/guix.texi:10210
+#: doc/guix.texi:10792
 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:10212
+#: doc/guix.texi:10794
 #, no-wrap
 msgid "{Scheme Variable} %immutable-store"
 msgstr "{Variable Scheme} %immutable-store"
 
 #. type: defvr
-#: doc/guix.texi:10217
+#: doc/guix.texi:10799
 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:10220
+#: doc/guix.texi:10802
 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:10222
+#: doc/guix.texi:10804
 #, no-wrap
 msgid "{Scheme Variable} %binary-format-file-system"
 msgstr "{Variable Scheme} %binary-format-file-system"
 
 #. type: defvr
-#: doc/guix.texi:10226
+#: doc/guix.texi:10808
 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:10228
+#: doc/guix.texi:10810
 #, no-wrap
 msgid "{Scheme Variable} %fuse-control-file-system"
 msgstr "{Variable Scheme} %fuse-control-file-system"
 
 #. type: defvr
-#: doc/guix.texi:10232
+#: doc/guix.texi:10814
 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: cindex
-#: doc/guix.texi:10237
+#: doc/guix.texi:10819
 #, no-wrap
 msgid "device mapping"
 msgstr "mappage de périphériques"
 
 #. type: cindex
-#: doc/guix.texi:10238
+#: doc/guix.texi:10820
 #, no-wrap
 msgid "mapped devices"
 msgstr "périphériques mappés"
 
 #. type: Plain text
-#: doc/guix.texi:10256
+#: doc/guix.texi:10838
 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:10259
+#: doc/guix.texi:10841
 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:10260
+#: doc/guix.texi:10842
 #, no-wrap
 msgid "{Data Type} mapped-device"
 msgstr "{Type de données} mapped-device"
 
 #. type: deftp
-#: doc/guix.texi:10263
+#: doc/guix.texi:10845
 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:10269
+#: doc/guix.texi:10851
 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:10270 doc/guix.texi:22103
+#: doc/guix.texi:10852 doc/guix.texi:23937
 #, no-wrap
 msgid "target"
 msgstr "target"
 
 #. type: table
-#: doc/guix.texi:10277
+#: doc/guix.texi:10859
 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:10281
+#: doc/guix.texi:10863
 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:10284
+#: doc/guix.texi:10866
 #, no-wrap
 msgid "{Scheme Variable} luks-device-mapping"
 msgstr "{Variable Scheme} luks-device-mapping"
 
 #. type: defvr
-#: doc/guix.texi:10288
+#: doc/guix.texi:10870
 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:10290
+#: doc/guix.texi:10872
 #, no-wrap
 msgid "{Scheme Variable} raid-device-mapping"
 msgstr "{Variable Scheme} raid-device-mapping"
 
 #. type: defvr
-#: doc/guix.texi:10295
+#: doc/guix.texi:10877
 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:10297
+#: doc/guix.texi:10879
 #, no-wrap
 msgid "disk encryption"
 msgstr "chiffrement du disque"
 
 #. type: cindex
-#: doc/guix.texi:10298
+#: doc/guix.texi:10880
 #, no-wrap
 msgid "LUKS"
 msgstr "LUKS"
 
 #. type: Plain text
-#: doc/guix.texi:10306
+#: doc/guix.texi:10888
 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:10312
+#: doc/guix.texi:10894
 #, no-wrap
 msgid ""
 "(mapped-device\n"
@@ -18145,23 +19623,23 @@ msgstr ""
 "  (type luks-device-mapping))\n"
 
 #. type: Plain text
-#: doc/guix.texi:10317
+#: doc/guix.texi:10899
 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:10320
+#: doc/guix.texi:10902
 #, no-wrap
 msgid "cryptsetup luksUUID /dev/sda3\n"
 msgstr "cryptsetup luksUUID /dev/sda3\n"
 
 #. type: Plain text
-#: doc/guix.texi:10323
+#: doc/guix.texi:10905
 msgid "and use it as follows:"
 msgstr "et l'utiliser ainsi :"
 
 #. type: example
-#: doc/guix.texi:10329
+#: doc/guix.texi:10911
 #, no-wrap
 msgid ""
 "(mapped-device\n"
@@ -18175,23 +19653,23 @@ msgstr ""
 "  (type luks-device-mapping))\n"
 
 #. type: cindex
-#: doc/guix.texi:10331
+#: doc/guix.texi:10913
 #, no-wrap
 msgid "swap encryption"
 msgstr "chiffrement de l'espace d'échange"
 
 #. type: Plain text
-#: doc/guix.texi:10337
+#: doc/guix.texi:10919
 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:10340
+#: doc/guix.texi:10922
 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:10346
+#: doc/guix.texi:10928
 #, no-wrap
 msgid ""
 "(mapped-device\n"
@@ -18205,35 +19683,35 @@ msgstr ""
 "  (type raid-device-mapping))\n"
 
 #. type: Plain text
-#: doc/guix.texi:10353
+#: doc/guix.texi:10935
 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:10358
+#: doc/guix.texi:10940
 #, no-wrap
 msgid "users"
 msgstr "utilisateurs"
 
 #. type: cindex
-#: doc/guix.texi:10359
+#: doc/guix.texi:10941
 #, no-wrap
 msgid "accounts"
 msgstr "comptes"
 
 #. type: cindex
-#: doc/guix.texi:10360
+#: doc/guix.texi:10942
 #, no-wrap
 msgid "user accounts"
 msgstr "comptes utilisateurs"
 
 #. type: Plain text
-#: doc/guix.texi:10364
+#: doc/guix.texi:10946
 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:10375
+#: doc/guix.texi:10957
 #, no-wrap
 msgid ""
 "(user-account\n"
@@ -18257,255 +19735,530 @@ msgstr ""
 "  (home-directory \"/home/alice\"))\n"
 
 #. type: Plain text
-#: doc/guix.texi:10384
+#: doc/guix.texi:10966
 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:10385
+#: doc/guix.texi:10967
 #, no-wrap
 msgid "{Data Type} user-account"
 msgstr "{Type de données} user-account"
 
 #. type: deftp
-#: doc/guix.texi:10388
+#: doc/guix.texi:10970
 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:10392
+#: doc/guix.texi:10974
 msgid "The name of the user account."
 msgstr "Le nom du compte utilisateur."
 
 #. type: itemx
-#: doc/guix.texi:10393 doc/guix.texi:21853
+#: doc/guix.texi:10975 doc/guix.texi:23673
 #, no-wrap
 msgid "group"
 msgstr "group"
 
 #. type: cindex
-#: doc/guix.texi:10394 doc/guix.texi:10443
+#: doc/guix.texi:10976 doc/guix.texi:11043
 #, no-wrap
 msgid "groups"
 msgstr "groupes"
 
 #. type: table
-#: doc/guix.texi:10397
+#: doc/guix.texi:10979
 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:10398
+#: doc/guix.texi:10980
 #, no-wrap
 msgid "@code{supplementary-groups} (default: @code{'()})"
 msgstr "@code{supplementary-groups} (par défaut : @code{'()})"
 
 #. type: table
-#: doc/guix.texi:10401
+#: doc/guix.texi:10983
 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:10402
+#: doc/guix.texi:10984
 #, no-wrap
 msgid "@code{uid} (default: @code{#f})"
 msgstr "@code{uid} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:10406
+#: doc/guix.texi:10988
 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:10407
+#: doc/guix.texi:10989
 #, no-wrap
 msgid "@code{comment} (default: @code{\"\"})"
 msgstr "@code{comment} (par défaut : @code{\"\"})"
 
 #. type: table
-#: doc/guix.texi:10409
+#: doc/guix.texi:10991
 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:10410
+#: doc/guix.texi:10992
 #, no-wrap
 msgid "home-directory"
 msgstr "home-directory"
 
 #. type: table
-#: doc/guix.texi:10412
+#: doc/guix.texi:10994
 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:10413
+#: doc/guix.texi:10995
 #, 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:10416
+#: doc/guix.texi:10998
 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:10417
+#: doc/guix.texi:10999
 #, no-wrap
 msgid "@code{shell} (default: Bash)"
 msgstr "@code{shell} (par défaut : Bash)"
 
 #. type: table
-#: doc/guix.texi:10420
+#: doc/guix.texi:11002
 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})."
 
 #. type: item
-#: doc/guix.texi:10421 doc/guix.texi:10461
+#: doc/guix.texi:11003 doc/guix.texi:11061
 #, no-wrap
 msgid "@code{system?} (default: @code{#f})"
 msgstr "@code{system?} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:10425
+#: doc/guix.texi:11007
 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:10427
+#: doc/guix.texi:11009
 msgid "user-account-password"
 msgstr "user-account-password"
 
+#. type: cindex
+#: doc/guix.texi:11009
+#, no-wrap
+msgid "password, for user accounts"
+msgstr "mot de passe, pour les comptes utilisateurs"
+
 #. type: item
-#: doc/guix.texi:10427 doc/guix.texi:10465
+#: doc/guix.texi:11010 doc/guix.texi:11065
 #, no-wrap
 msgid "@code{password} (default: @code{#f})"
 msgstr "@code{password} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:10433
+#: doc/guix.texi:11016
 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:10439
-msgid "If you @emph{do} want to have a preset password for an account, then this field must contain the encrypted password, as a string.  @xref{crypt,,, 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 "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.  @xref{crypt,,, 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."
+#: doc/guix.texi:11020
+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:11025
+#, no-wrap
+msgid ""
+"(user-account\n"
+"  (name \"charlie\")\n"
+"  (group \"users\")\n"
+"\n"
+msgstr ""
+"(user-account\n"
+"  (name \"charlie\")\n"
+"  (group \"users\")\n"
+"\n"
+
+#. type: example
+#: doc/guix.texi:11028
+#, no-wrap
+msgid ""
+"  ;; Specify a SHA-512-hashed initial password.\n"
+"  (password (crypt \"InitialPassword!\" \"$6$abc\")))\n"
+msgstr ""
+"  ;; Spécifie un mot de passe initial hashé avec sha512.\n"
+"  (password (crypt \"InitialPassword!\" \"$6$abc\")))\n"
+
+#. type: quotation
+#: doc/guix.texi:11034
+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:11039
+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:10445
+#: doc/guix.texi:11045
 msgid "User group declarations are even simpler:"
 msgstr "Les déclarations de groupes sont encore plus simple :"
 
 #. type: example
-#: doc/guix.texi:10448
+#: doc/guix.texi:11048
 #, no-wrap
 msgid "(user-group (name \"students\"))\n"
 msgstr "(user-group (name \"students\"))\n"
 
 #. type: deftp
-#: doc/guix.texi:10450
+#: doc/guix.texi:11050
 #, no-wrap
 msgid "{Data Type} user-group"
 msgstr "{Type de données} user-group"
 
 #. type: deftp
-#: doc/guix.texi:10452
+#: doc/guix.texi:11052
 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:10456
+#: doc/guix.texi:11056
 msgid "The name of the group."
 msgstr "Le nom du groupe."
 
 #. type: item
-#: doc/guix.texi:10457
+#: doc/guix.texi:11057
 #, no-wrap
 msgid "@code{id} (default: @code{#f})"
 msgstr "@code{id} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:10460
+#: doc/guix.texi:11060
 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:10464
+#: doc/guix.texi:11064
 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:10468
+#: doc/guix.texi:11068
 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:10474
+#: doc/guix.texi:11074
 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:10475
+#: doc/guix.texi:11075
 #, no-wrap
 msgid "{Scheme Variable} %base-groups"
 msgstr "{Variable Scheme} %base-groups"
 
 #. type: defvr
-#: doc/guix.texi:10480
+#: doc/guix.texi:11080
 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:10482
+#: doc/guix.texi:11082
 #, no-wrap
 msgid "{Scheme Variable} %base-user-accounts"
 msgstr "{Variable Scheme} %base-user-accounts"
 
 #. type: defvr
-#: doc/guix.texi:10485
+#: doc/guix.texi:11085
 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:10488
+#: doc/guix.texi:11088
 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:10493
+#: doc/guix.texi:11094
+#, no-wrap
+msgid "keymap"
+msgstr "disposition clavier"
+
+#. type: Plain text
+#: doc/guix.texi:11102
+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:11103
+#, no-wrap
+msgid "keyboard layout, definition"
+msgstr "disposition du clavier, définition"
+
+#. type: Plain text
+#: doc/guix.texi:11105
+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:11112
+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:11117
+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:11121
+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:11125
+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:11126
+#, no-wrap
+msgid "XKB, keyboard layouts"
+msgstr "XKB, disposition du clavier"
+
+#. type: Plain text
+#: doc/guix.texi:11134
+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 :"
+
+#. type: example
+#: doc/guix.texi:11139
+#, no-wrap
+msgid ""
+";; The German QWERTZ layout.  Here we assume a standard\n"
+";; \"pc105\" keyboard model.\n"
+"(keyboard-layout \"de\")\n"
+"\n"
+msgstr ""
+";; La disposition QWERTZ allemande.  Ici on suppose que vous utilisez un clavier\n"
+";; type « pc105 » standard.\n"
+"(keyboard-layout \"de\")\n"
+"\n"
+
+#. type: example
+#: doc/guix.texi:11142
+#, no-wrap
+msgid ""
+";; The bépo variant of the French layout.\n"
+"(keyboard-layout \"fr\" \"bepo\")\n"
+"\n"
+msgstr ""
+";; La variante bépo de la disposition française.\n"
+"(keyboard-layout \"fr\" \"bepo\")\n"
+"\n"
+
+#. type: example
+#: doc/guix.texi:11145
+#, no-wrap
+msgid ""
+";; The Catalan layout.\n"
+"(keyboard-layout \"es\" \"cat\")\n"
+"\n"
+msgstr ""
+";; La disposition catalane.\n"
+"(keyboard-layout \"es\" \"cat\")\n"
+"\n"
+
+#. type: example
+#: doc/guix.texi:11152
+#, no-wrap
+msgid ""
+";; The Latin American Spanish layout.  In addition, the\n"
+";; \"Caps Lock\" key is used as an additional \"Ctrl\" key,\n"
+";; and the \"Menu\" key is used as a \"Compose\" key to enter\n"
+";; accented letters.\n"
+"(keyboard-layout \"latam\"\n"
+"                 #:options '(\"ctrl:nocaps\" \"compose:menu\"))\n"
+"\n"
+msgstr ""
+";; La disposition espagnole américaine.  En plus, la touche\n"
+";; « Verr. Maj. » est utilisée comme touche « Ctrl » supplémentaire,\n"
+";; et la touche « Menu » est utilisée comme touche « Compose » pour\n"
+";; saisir des lettres accentuées.\n"
+"(keyboard-layout \"latam\"\n"
+"                 #:options '(\"ctrl:nocaps\" \"compose:menu\"))\n"
+"\n"
+
+#. type: example
+#: doc/guix.texi:11155
+#, no-wrap
+msgid ""
+";; The Russian layout for a ThinkPad keyboard.\n"
+"(keyboard-layout \"ru\" #:model \"thinkpad\")\n"
+"\n"
+msgstr ""
+";; La disposition russe pour un clavier de ThinkPad.\n"
+"(keyboard-layout \"ru\" #:model \"thinkpad\")\n"
+"\n"
+
+#. type: example
+#: doc/guix.texi:11160
+#, no-wrap
+msgid ""
+";; The \"US international\" layout, which is the US layout plus\n"
+";; dead keys to enter accented characters.  This is for an\n"
+";; Apple MacBook keyboard.\n"
+"(keyboard-layout \"us\" \"intl\" #:model \"macbook78\")\n"
+msgstr ""
+";; La disposition « US internationale », qui est comme la disposition US plus\n"
+";; des touches mortes pour saisir des caractères accentués.  Cet exemple est pour\n"
+";; un clavier de MacBook Apple.\n"
+"(keyboard-layout \"us\" \"intl\" #:model \"macbook78\")\n"
+
+#. type: Plain text
+#: doc/guix.texi:11164
+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:11165
+#, no-wrap
+msgid "keyboard layout, configuration"
+msgstr "disposition du clavier, configuration"
+
+#. type: Plain text
+#: doc/guix.texi:11169
+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:11170
+#, no-wrap
+msgid "set-xorg-configuration"
+msgstr "set-xorg-configuration"
+
+#. type: lisp
+#: doc/guix.texi:11174
+#, no-wrap
+msgid ""
+";; Using the Turkish layout for the bootloader, the console,\n"
+";; and for Xorg.\n"
+"\n"
+msgstr ""
+";; Utiliser la disposition turque pour le chargeur d'amorçage,\n"
+";; la console et Xorg.\n"
+
+#. type: lisp
+#: doc/guix.texi:11186
+#, no-wrap
+msgid ""
+"(operating-system\n"
+"  ;; ...\n"
+"  (keyboard-layout (keyboard-layout \"tr\"))  ;for the console\n"
+"  (bootloader (bootloader-configuration\n"
+"                (bootloader grub-efi-bootloader)\n"
+"                (target \"/boot/efi\")\n"
+"                (keyboard-layout keyboard-layout))) ;for GRUB\n"
+"  (services (cons (set-xorg-configuration\n"
+"                    (xorg-configuration             ;for Xorg\n"
+"                      (keyboard-layout keyboard-layout)))\n"
+"                  %desktop-services)))\n"
+msgstr ""
+"(operating-system\n"
+"  ;; ...\n"
+"  (keyboard-layout (keyboard-layout \"tr\"))  ;pour la console\n"
+"  (bootloader (bootloader-configuration\n"
+"                (bootloader grub-efi-bootloader)\n"
+"                (target \"/boot/efi\")\n"
+"                (keyboard-layout keyboard-layout))) ;pour GRUB\n"
+"  (services (cons (set-xorg-configuration\n"
+"                    (xorg-configuration             ;pour Xorg\n"
+"                      (keyboard-layout keyboard-layout)))\n"
+"                  %desktop-services)))\n"
+
+#. type: Plain text
+#: doc/guix.texi:11193
+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:11196
+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:11201
+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:11206
+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:11209
+#, no-wrap
+msgid "setxkbmap us dvorak\n"
+msgstr "setxkbmap us dvorak\n"
+
+#. type: itemize
+#: doc/guix.texi:11216
+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:11219
+#, no-wrap
+msgid "loadkeys fr-bepo\n"
+msgstr "loadkeys fr-bepo\n"
+
+#. type: cindex
+#: doc/guix.texi:11225
 #, no-wrap
 msgid "locale"
 msgstr "paramètres linguistiques"
 
 #. type: Plain text
-#: doc/guix.texi:10500
+#: doc/guix.texi:11232
 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:10501
+#: doc/guix.texi:11233
 #, no-wrap
 msgid "locale definition"
 msgstr "définition des paramètres linguistiques"
 
 #. type: Plain text
-#: doc/guix.texi:10505
+#: doc/guix.texi:11237
 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:10514
+#: doc/guix.texi:11246
 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:10517
+#: doc/guix.texi:11249
 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:10522
+#: doc/guix.texi:11254
 #, no-wrap
 msgid ""
 "(cons (locale-definition\n"
@@ -18517,12 +20270,12 @@ msgstr ""
 "      %default-locale-definitions)\n"
 
 #. type: Plain text
-#: doc/guix.texi:10526
+#: doc/guix.texi:11258
 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:10531
+#: doc/guix.texi:11263
 #, no-wrap
 msgid ""
 "(list (locale-definition\n"
@@ -18534,114 +20287,114 @@ msgstr ""
 "        (charset \"EUC-JP\")))\n"
 
 #. type: Plain text
-#: doc/guix.texi:10540
+#: doc/guix.texi:11272
 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})."
 
 #. type: Plain text
-#: doc/guix.texi:10543
+#: doc/guix.texi:11275
 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:10544
+#: doc/guix.texi:11276
 #, no-wrap
 msgid "{Data Type} locale-definition"
 msgstr "{Type de données} locale-definition"
 
 #. type: deftp
-#: doc/guix.texi:10546
+#: doc/guix.texi:11278
 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:10552
+#: doc/guix.texi:11284
 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:10556
+#: doc/guix.texi:11288
 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:10557
+#: doc/guix.texi:11289
 #, no-wrap
 msgid "@code{charset} (default: @code{\"UTF-8\"})"
 msgstr "@code{charset} (par défaut : @code{\"UTF-8\"})"
 
 #. type: table
-#: doc/guix.texi:10561
+#: doc/guix.texi:11293
 msgid "The ``character set'' or ``code set'' for that locale, @uref{http://www.iana.org/assignments/character-sets, as defined by IANA}."
 msgstr "Le « jeu de caractères » d'un paramètre linguistique, @uref{http://www.iana.org/assignments/character-sets, défini par l'IANA}."
 
 #. type: defvr
-#: doc/guix.texi:10565
+#: doc/guix.texi:11297
 #, no-wrap
 msgid "{Scheme Variable} %default-locale-definitions"
 msgstr "{Variable Scheme} %default-locale-definitions"
 
 #. type: defvr
-#: doc/guix.texi:10569
+#: doc/guix.texi:11301
 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:10570
+#: doc/guix.texi:11302
 #, no-wrap
 msgid "locale name"
 msgstr "nom de paramètre linguistique"
 
 #. type: cindex
-#: doc/guix.texi:10571
+#: doc/guix.texi:11303
 #, 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:10577
+#: doc/guix.texi:11309
 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: subsubsection
-#: doc/guix.texi:10579
+#. type: subsection
+#: doc/guix.texi:11311
 #, no-wrap
 msgid "Locale Data Compatibility Considerations"
 msgstr "Considérations sur la compatibilité des données linguistiques"
 
 #. type: cindex
-#: doc/guix.texi:10581
+#: doc/guix.texi:11313
 #, no-wrap
 msgid "incompatibility, of locale data"
 msgstr "incompatibilité, des données linguistiques"
 
 #. type: Plain text
-#: doc/guix.texi:10588
+#: doc/guix.texi:11320
 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:10600
+#: doc/guix.texi:11332
 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."
 
 #. type: Plain text
-#: doc/guix.texi:10605
-msgid "The ``problem'' in GuixSD 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 GuixSD 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."
+#: doc/guix.texi:11337
+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:10609
+#: doc/guix.texi:11341
 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})."
 
 #. type: Plain text
-#: doc/guix.texi:10616
+#: doc/guix.texi:11348
 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:10619
+#: doc/guix.texi:11351
 #, no-wrap
 msgid ""
 "(use-package-modules base)\n"
@@ -18651,7 +20404,7 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix.texi:10623
+#: doc/guix.texi:11355
 #, no-wrap
 msgid ""
 "(operating-system\n"
@@ -18663,39 +20416,39 @@ msgstr ""
 "  (locale-libcs (list glibc-2.21 (canonical-package glibc))))\n"
 
 #. type: Plain text
-#: doc/guix.texi:10628
+#: doc/guix.texi:11360
 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}."
+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:10633
+#: doc/guix.texi:11365
 #, no-wrap
 msgid "system services"
 msgstr "services systèmes"
 
 #. type: Plain text
-#: doc/guix.texi:10639
+#: doc/guix.texi:11371
 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:10646
-msgid "GuixSD 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 "GuixSD 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 :"
+#: doc/guix.texi:11378
+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:10649
+#: doc/guix.texi:11381
 #, no-wrap
 msgid "# herd status\n"
 msgstr "# herd status\n"
 
 #. type: Plain text
-#: doc/guix.texi:10654
+#: doc/guix.texi:11386
 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:10658
+#: doc/guix.texi:11390
 #, no-wrap
 msgid ""
 "# herd doc nscd\n"
@@ -18707,7 +20460,7 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix.texi:10661
+#: doc/guix.texi:11393
 #, no-wrap
 msgid ""
 "# herd doc nscd action invalidate\n"
@@ -18717,12 +20470,12 @@ msgstr ""
 "invalidate: Invalidate the given cache--e.g., 'hosts' for host name lookups.\n"
 
 #. type: Plain text
-#: doc/guix.texi:10666
+#: doc/guix.texi:11398
 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:10673
+#: doc/guix.texi:11405
 #, no-wrap
 msgid ""
 "# herd stop nscd\n"
@@ -18738,90 +20491,107 @@ msgstr ""
 "Service xorg-server has been started.\n"
 
 #. type: Plain text
-#: doc/guix.texi:10678
+#: doc/guix.texi:11410
 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:11439 doc/guix.texi:18018 doc/guix.texi:18019
+#, no-wrap
+msgid "LDAP Services"
+msgstr "Services LDAP"
+
+#. type: menuentry
+#: doc/guix.texi:11439
+msgid "LDAP services."
+msgstr "services LDAP"
+
 #. type: Plain text
-#: doc/guix.texi:10714
+#: doc/guix.texi:11447
 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:10715
+#: doc/guix.texi:11448
 #, no-wrap
 msgid "{Scheme Variable} %base-services"
 msgstr "{Variable Scheme} %base-services"
 
 #. type: defvr
-#: doc/guix.texi:10721
+#: doc/guix.texi:11454
 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:10726
+#: doc/guix.texi:11459
 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 :"
 
 #. type: example
-#: doc/guix.texi:10729
+#: doc/guix.texi:11464
 #, no-wrap
-msgid "(cons* (avahi-service) (lsh-service) %base-services)\n"
-msgstr "(cons* (avahi-service) (lsh-service) %base-services)\n"
+msgid ""
+"(append (list (service avahi-service-type)\n"
+"              (service openssh-service-type))\n"
+"        %base-services)\n"
+msgstr ""
+"(append (list (service avahi-service-type)\n"
+"              (service openssh-service-type))\n"
+"        %base-services)\n"
 
 #. type: defvr
-#: doc/guix.texi:10732
+#: doc/guix.texi:11467
 #, no-wrap
 msgid "{Scheme Variable} special-files-service-type"
 msgstr "{Variable Scheme} special-files-service-type"
 
 #. type: defvr
-#: doc/guix.texi:10735
+#: doc/guix.texi:11470
 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:10739
+#: doc/guix.texi:11474
 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:10740
+#: doc/guix.texi:11475
 #, no-wrap
 msgid "/bin/sh"
 msgstr "/bin/sh"
 
 #. type: cindex
-#: doc/guix.texi:10741
+#: doc/guix.texi:11476
 #, no-wrap
 msgid "@file{sh}, in @file{/bin}"
 msgstr "@file{sh}, dans @file{/bin}"
 
 #. type: example
-#: doc/guix.texi:10744
+#: doc/guix.texi:11479
 #, no-wrap
 msgid "`((\"/bin/sh\" ,(file-append @var{bash} \"/bin/sh\")))\n"
 msgstr "`((\"/bin/sh\" ,(file-append @var{bash} \"/bin/sh\")))\n"
 
 #. type: file{#1}
-#: doc/guix.texi:10746
+#: doc/guix.texi:11481
 #, no-wrap
 msgid "/usr/bin/env"
 msgstr "/usr/bin/env"
 
 #. type: cindex
-#: doc/guix.texi:10747
+#: doc/guix.texi:11482
 #, no-wrap
 msgid "@file{env}, in @file{/usr/bin}"
 msgstr "@file{env}, dans @file{/usr/bin}"
 
 #. type: defvr
-#: doc/guix.texi:10750
+#: doc/guix.texi:11485
 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:10754
+#: doc/guix.texi:11489
 #, no-wrap
 msgid ""
 "`((\"/bin/sh\" ,(file-append @var{bash} \"/bin/sh\"))\n"
@@ -18831,28 +20601,28 @@ msgstr ""
 "  (\"/usr/bin/env\" ,(file-append @var{coreutils} \"/bin/env\")))\n"
 
 #. type: defvr
-#: doc/guix.texi:10761
+#: doc/guix.texi:11496
 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)."
 
 #. type: deffn
-#: doc/guix.texi:10763
+#: doc/guix.texi:11498
 #, 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:10765
+#: doc/guix.texi:11500
 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:10769
+#: doc/guix.texi:11504
 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:10773
+#: doc/guix.texi:11508
 #, no-wrap
 msgid ""
 "(extra-special-file \"/usr/bin/env\"\n"
@@ -18862,1152 +20632,1152 @@ msgstr ""
 "                    (file-append coreutils \"/bin/env\"))\n"
 
 #. type: deffn
-#: doc/guix.texi:10776
+#: doc/guix.texi:11511
 #, no-wrap
 msgid "{Scheme Procedure} host-name-service @var{name}"
 msgstr "{Procédure Scheme} host-name-service @var{name}"
 
 #. type: deffn
-#: doc/guix.texi:10778
+#: doc/guix.texi:11513
 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: deffn
-#: doc/guix.texi:10780
+#: doc/guix.texi:11515
 #, no-wrap
 msgid "{Scheme Procedure} login-service @var{config}"
 msgstr "{Procédure Scheme} login-service @var{config}"
 
 #. type: deffn
-#: doc/guix.texi:10784
+#: doc/guix.texi:11519
 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:10786
+#: doc/guix.texi:11521
 #, no-wrap
 msgid "{Data Type} login-configuration"
 msgstr "{Type de données} login-configuration"
 
 #. type: deftp
-#: doc/guix.texi:10788
+#: doc/guix.texi:11523
 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:10791
+#: doc/guix.texi:11526
 #, no-wrap
 msgid "motd"
 msgstr "motd"
 
 #. type: cindex
-#: doc/guix.texi:10792
+#: doc/guix.texi:11527
 #, no-wrap
 msgid "message of the day"
 msgstr "message du jour"
 
 #. type: table
-#: doc/guix.texi:10794
+#: doc/guix.texi:11529
 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:10795 doc/guix.texi:12683
+#: doc/guix.texi:11530 doc/guix.texi:13462
 #, 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:10798
+#: doc/guix.texi:11533
 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:10802
+#: doc/guix.texi:11537
 #, no-wrap
 msgid "{Scheme Procedure} mingetty-service @var{config}"
 msgstr "{Procédure Scheme} mingetty-service @var{config}"
 
 #. type: deffn
-#: doc/guix.texi:10806
+#: doc/guix.texi:11541
 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:10808
+#: doc/guix.texi:11543
 #, no-wrap
 msgid "{Data Type} mingetty-configuration"
 msgstr "{Type de données} mingetty-configuration"
 
 #. type: deftp
-#: doc/guix.texi:10811
+#: doc/guix.texi:11546
 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:10814 doc/guix.texi:10850
+#: doc/guix.texi:11549 doc/guix.texi:11585
 #, no-wrap
 msgid "tty"
 msgstr "tty"
 
 #. type: table
-#: doc/guix.texi:10816
+#: doc/guix.texi:11551
 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:10817 doc/guix.texi:10879 doc/guix.texi:11038
+#: doc/guix.texi:11552 doc/guix.texi:11614 doc/guix.texi:11773
 #, no-wrap
 msgid "@code{auto-login} (default: @code{#f})"
 msgstr "@code{auto-login} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:10821
+#: doc/guix.texi:11556
 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:10822
+#: doc/guix.texi:11557
 #, no-wrap
 msgid "@code{login-program} (default: @code{#f})"
 msgstr "@code{login-program} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:10826
+#: doc/guix.texi:11561
 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:10827
+#: doc/guix.texi:11562
 #, no-wrap
 msgid "@code{login-pause?} (default: @code{#f})"
 msgstr "@code{login-pause?} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:10830
+#: doc/guix.texi:11565
 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:10831
+#: doc/guix.texi:11566
 #, no-wrap
 msgid "@code{mingetty} (default: @var{mingetty})"
 msgstr "@code{mingetty} (par défaut : @var{mingetty})"
 
 #. type: table
-#: doc/guix.texi:10833
+#: doc/guix.texi:11568
 msgid "The Mingetty package to use."
 msgstr "Le paquet Mingetty à utiliser."
 
 #. type: deffn
-#: doc/guix.texi:10837
+#: doc/guix.texi:11572
 #, no-wrap
 msgid "{Scheme Procedure} agetty-service @var{config}"
 msgstr "{Procédure Scheme} agetty-service @var{config}"
 
 #. type: deffn
-#: doc/guix.texi:10841
+#: doc/guix.texi:11576
 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:10843
+#: doc/guix.texi:11578
 #, no-wrap
 msgid "{Data Type} agetty-configuration"
 msgstr "{Type de données} agetty-configuration"
 
 #. type: deftp
-#: doc/guix.texi:10847
+#: doc/guix.texi:11582
 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:10854
+#: doc/guix.texi:11589
 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."
 
 #. type: table
-#: doc/guix.texi:10858
+#: doc/guix.texi:11593
 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:10862
+#: doc/guix.texi:11597
 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:10866
-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."
+#: doc/guix.texi:11601
+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:10867
+#: doc/guix.texi:11602
 #, no-wrap
 msgid "@code{baud-rate} (default: @code{#f})"
 msgstr "@code{baud-rate} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:10870
+#: doc/guix.texi:11605
 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:10871
+#: doc/guix.texi:11606
 #, no-wrap
 msgid "@code{term} (default: @code{#f})"
 msgstr "@code{term} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:10874
+#: doc/guix.texi:11609
 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}."
 
 #. type: item
-#: doc/guix.texi:10875
+#: doc/guix.texi:11610
 #, no-wrap
 msgid "@code{eight-bits?} (default: @code{#f})"
 msgstr "@code{eight-bits?} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:10878
+#: doc/guix.texi:11613
 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:10882 doc/guix.texi:11041
+#: doc/guix.texi:11617 doc/guix.texi:11776
 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:10883
+#: doc/guix.texi:11618
 #, no-wrap
 msgid "@code{no-reset?} (default: @code{#f})"
 msgstr "@code{no-reset?} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:10885
+#: doc/guix.texi:11620
 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:10886
+#: doc/guix.texi:11621
 #, no-wrap
 msgid "@code{host} (default: @code{#f})"
 msgstr "@code{host} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:10889
+#: doc/guix.texi:11624
 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}."
 
 #. type: item
-#: doc/guix.texi:10890
+#: doc/guix.texi:11625
 #, no-wrap
 msgid "@code{remote?} (default: @code{#f})"
 msgstr "@code{remote?} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:10894
+#: doc/guix.texi:11629
 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:10895
+#: doc/guix.texi:11630
 #, no-wrap
 msgid "@code{flow-control?} (default: @code{#f})"
 msgstr "@code{flow-control?} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:10897
+#: doc/guix.texi:11632
 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:10898
+#: doc/guix.texi:11633
 #, no-wrap
 msgid "@code{no-issue?} (default: @code{#f})"
 msgstr "@code{no-issue?} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:10901
+#: doc/guix.texi:11636
 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:10902
+#: doc/guix.texi:11637
 #, no-wrap
 msgid "@code{init-string} (default: @code{#f})"
 msgstr "@code{init-string} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:10905
+#: doc/guix.texi:11640
 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:10906
+#: doc/guix.texi:11641
 #, no-wrap
 msgid "@code{no-clear?} (default: @code{#f})"
 msgstr "@code{no-clear?} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:10909
+#: doc/guix.texi:11644
 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:10910
+#: doc/guix.texi:11645
 #, 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:10914
+#: doc/guix.texi:11649
 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:10915
+#: doc/guix.texi:11650
 #, no-wrap
 msgid "@code{local-line} (default: @code{#f})"
 msgstr "@code{local-line} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:10919
+#: doc/guix.texi:11654
 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}…"
+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:10920
+#: doc/guix.texi:11655
 #, no-wrap
 msgid "@code{extract-baud?} (default: @code{#f})"
 msgstr "@code{extract-baud?} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:10923
+#: doc/guix.texi:11658
 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:10924
+#: doc/guix.texi:11659
 #, no-wrap
 msgid "@code{skip-login?} (default: @code{#f})"
 msgstr "@code{skip-login?} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:10928
+#: doc/guix.texi:11663
 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:10929
+#: doc/guix.texi:11664
 #, no-wrap
 msgid "@code{no-newline?} (default: @code{#f})"
 msgstr "@code{no-newline?} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:10932
+#: doc/guix.texi:11667
 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:10934
+#: doc/guix.texi:11669
 #, no-wrap
 msgid "@code{login-options} (default: @code{#f})"
 msgstr "@code{login-options} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:10939
+#: doc/guix.texi:11674
 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:10940
+#: doc/guix.texi:11675
 #, no-wrap
 msgid "@code{login-pause} (default: @code{#f})"
 msgstr "@code{login-pause} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:10944
+#: doc/guix.texi:11679
 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:10945
+#: doc/guix.texi:11680
 #, no-wrap
 msgid "@code{chroot} (default: @code{#f})"
 msgstr "@code{chroot} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:10948
+#: doc/guix.texi:11683
 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:10949
+#: doc/guix.texi:11684
 #, no-wrap
 msgid "@code{hangup?} (default: @code{#f})"
 msgstr "@code{hangup?} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:10952
+#: doc/guix.texi:11687
 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:10953
+#: doc/guix.texi:11688
 #, no-wrap
 msgid "@code{keep-baud?} (default: @code{#f})"
 msgstr "@code{keep-baud?} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:10957
+#: doc/guix.texi:11692
 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:10958
+#: doc/guix.texi:11693
 #, no-wrap
 msgid "@code{timeout} (default: @code{#f})"
 msgstr "@code{timeout} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:10961
+#: doc/guix.texi:11696
 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:10962
+#: doc/guix.texi:11697
 #, no-wrap
 msgid "@code{detect-case?} (default: @code{#f})"
 msgstr "@code{detect-case?} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:10968
+#: doc/guix.texi:11703
 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:10969
+#: doc/guix.texi:11704
 #, no-wrap
 msgid "@code{wait-cr?} (default: @code{#f})"
 msgstr "@code{wait-cr?} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:10974
+#: doc/guix.texi:11709
 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:10975
+#: doc/guix.texi:11710
 #, no-wrap
 msgid "@code{no-hints?} (default: @code{#f})"
 msgstr "@code{no-hints?} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:10978
+#: doc/guix.texi:11713
 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:10979
+#: doc/guix.texi:11714
 #, no-wrap
 msgid "@code{no-hostname?} (default: @code{#f})"
 msgstr "@code{no-hostname?} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:10982
+#: doc/guix.texi:11717
 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:10983
+#: doc/guix.texi:11718
 #, no-wrap
 msgid "@code{long-hostname?} (default: @code{#f})"
 msgstr "@code{long-hostname?} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:10987
+#: doc/guix.texi:11722
 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:10988
+#: doc/guix.texi:11723
 #, no-wrap
 msgid "@code{erase-characters} (default: @code{#f})"
 msgstr "@code{erase-characters} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:10991
+#: doc/guix.texi:11726
 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:10992
+#: doc/guix.texi:11727
 #, no-wrap
 msgid "@code{kill-characters} (default: @code{#f})"
 msgstr "@code{kill-characters} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:10996
+#: doc/guix.texi:11731
 msgid "This option accepts a string that should be interpreted to mean \"ignore all previous characters\" (also called a \"kill\" character) when the 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."
 
 #. type: item
-#: doc/guix.texi:10997
+#: doc/guix.texi:11732
 #, no-wrap
 msgid "@code{chdir} (default: @code{#f})"
 msgstr "@code{chdir} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:11000
+#: doc/guix.texi:11735
 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:11001
+#: doc/guix.texi:11736
 #, no-wrap
 msgid "@code{delay} (default: @code{#f})"
 msgstr "@code{delay} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:11004
+#: doc/guix.texi:11739
 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:11005
+#: doc/guix.texi:11740
 #, no-wrap
 msgid "@code{nice} (default: @code{#f})"
 msgstr "@code{nice} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:11008
+#: doc/guix.texi:11743
 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:11009 doc/guix.texi:11240 doc/guix.texi:11955
-#: doc/guix.texi:17244
+#: doc/guix.texi:11744 doc/guix.texi:11975 doc/guix.texi:12662
+#: doc/guix.texi:18998
 #, no-wrap
 msgid "@code{extra-options} (default: @code{'()})"
 msgstr "@code{extra-options} (par défaut : @code{'()})"
 
 #. type: table
-#: doc/guix.texi:11012
+#: doc/guix.texi:11747
 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."
 
 #. type: deffn
-#: doc/guix.texi:11016
+#: doc/guix.texi:11751
 #, no-wrap
 msgid "{Scheme Procedure} kmscon-service-type @var{config}"
 msgstr "{Procédure Scheme} kmscon-service-type @var{config}"
 
 #. type: deffn
-#: doc/guix.texi:11020
+#: doc/guix.texi:11755
 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:11022
+#: doc/guix.texi:11757
 #, no-wrap
 msgid "{Data Type} kmscon-configuration"
 msgstr "{Type de données} kmscon-configuration"
 
 #. type: deftp
-#: doc/guix.texi:11025
+#: doc/guix.texi:11760
 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:11028
+#: doc/guix.texi:11763
 #, no-wrap
 msgid "virtual-terminal"
 msgstr "virtual-terminal"
 
 #. type: table
-#: doc/guix.texi:11030
+#: doc/guix.texi:11765
 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:11031
+#: doc/guix.texi:11766
 #, 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:11034
+#: doc/guix.texi:11769
 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:11035
+#: doc/guix.texi:11770
 #, no-wrap
 msgid "@code{login-arguments} (default: @code{'(\"-p\")})"
 msgstr "@code{login-arguments} (par défaut : @code{'(\"-p\")})"
 
 #. type: table
-#: doc/guix.texi:11037
+#: doc/guix.texi:11772
 msgid "A list of arguments to pass to @command{login}."
 msgstr "Une liste d'arguments à passer à @command{login}."
 
 #. type: item
-#: doc/guix.texi:11042
+#: doc/guix.texi:11777
 #, no-wrap
 msgid "@code{hardware-acceleration?} (default: #f)"
 msgstr "@code{hardware-acceleration?} (par défaut : #f)"
 
 #. type: table
-#: doc/guix.texi:11044
+#: doc/guix.texi:11779
 msgid "Whether to use hardware acceleration."
 msgstr "S'il faut utiliser l'accélération matérielle."
 
 #. type: item
-#: doc/guix.texi:11045
+#: doc/guix.texi:11780
 #, no-wrap
 msgid "@code{kmscon} (default: @var{kmscon})"
 msgstr "@code{kmscon} (par défaut : @var{kmscon})"
 
 #. type: table
-#: doc/guix.texi:11047
+#: doc/guix.texi:11782
 msgid "The Kmscon package to use."
 msgstr "Le paquet Kmscon à utiliser."
 
 #. type: cindex
-#: doc/guix.texi:11051
+#: doc/guix.texi:11786
 #, no-wrap
 msgid "name service cache daemon"
 msgstr "name service cache daemon"
 
 #. type: cindex
-#: doc/guix.texi:11052
+#: doc/guix.texi:11787
 #, no-wrap
 msgid "nscd"
 msgstr "nscd"
 
 #. type: deffn
-#: doc/guix.texi:11053
+#: doc/guix.texi:11788
 #, 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:11058
+#: doc/guix.texi:11793
 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:11060
+#: doc/guix.texi:11795
 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:11062
+#: doc/guix.texi:11797
 #, no-wrap
 msgid "invalidate"
 msgstr "invalidate"
 
 #. type: cindex
-#: doc/guix.texi:11063
+#: doc/guix.texi:11798
 #, no-wrap
 msgid "cache invalidation, nscd"
 msgstr "invalidation du cache, nscd"
 
 #. type: cindex
-#: doc/guix.texi:11064
+#: doc/guix.texi:11799
 #, no-wrap
 msgid "nscd, cache invalidation"
 msgstr "nscd, invalidation du cache"
 
 #. type: table
-#: doc/guix.texi:11066
+#: doc/guix.texi:11801
 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:11069
+#: doc/guix.texi:11804
 #, no-wrap
 msgid "herd invalidate nscd hosts\n"
 msgstr "herd invalidate nscd hosts\n"
 
 #. type: table
-#: doc/guix.texi:11073
+#: doc/guix.texi:11808
 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:11074
+#: doc/guix.texi:11809
 #, no-wrap
 msgid "statistics"
 msgstr "statistiques"
 
 #. type: table
-#: doc/guix.texi:11077
+#: doc/guix.texi:11812
 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:11081
+#: doc/guix.texi:11816
 #, no-wrap
 msgid "{Scheme Variable} %nscd-default-configuration"
 msgstr "{Variable Scheme} %nscd-default-configuration"
 
 #. type: defvr
-#: doc/guix.texi:11085
+#: doc/guix.texi:11820
 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."
 
 #. type: deftp
-#: doc/guix.texi:11087
+#: doc/guix.texi:11822
 #, no-wrap
 msgid "{Data Type} nscd-configuration"
 msgstr "{Type de données} nscd-configuration"
 
 #. type: deftp
-#: doc/guix.texi:11090
+#: doc/guix.texi:11825
 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:11093
+#: doc/guix.texi:11828
 #, no-wrap
 msgid "@code{name-services} (default: @code{'()})"
 msgstr "@code{name-services} (par défaut : @code{'()})"
 
 #. type: table
-#: doc/guix.texi:11096
+#: doc/guix.texi:11831
 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:11097
+#: doc/guix.texi:11832
 #, no-wrap
 msgid "@code{glibc} (default: @var{glibc})"
 msgstr "@code{glibc} (par défaut : @var{glibc})"
 
 #. type: table
-#: doc/guix.texi:11100
+#: doc/guix.texi:11835
 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:11101
+#: doc/guix.texi:11836
 #, 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:11104
+#: doc/guix.texi:11839
 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:11105
+#: doc/guix.texi:11840
 #, no-wrap
 msgid "@code{debug-level} (default: @code{0})"
 msgstr "@code{debug-level} (par défaut : @code{0})"
 
 #. type: table
-#: doc/guix.texi:11108
+#: doc/guix.texi:11843
 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:11109
+#: doc/guix.texi:11844
 #, no-wrap
 msgid "@code{caches} (default: @var{%nscd-default-caches})"
 msgstr "@code{caches} (par défaut : @var{%nscd-default-caches})"
 
 #. type: table
-#: doc/guix.texi:11112
+#: doc/guix.texi:11847
 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:11116
+#: doc/guix.texi:11851
 #, no-wrap
 msgid "{Data Type} nscd-cache"
 msgstr "{Type de données} nscd-cache"
 
 #. type: deftp
-#: doc/guix.texi:11118
+#: doc/guix.texi:11853
 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:11121 doc/guix.texi:14162
+#: doc/guix.texi:11856 doc/guix.texi:15022
 #, no-wrap
 msgid "database"
 msgstr "database"
 
 #. type: table
-#: doc/guix.texi:11126
+#: doc/guix.texi:11861
 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:11127
+#: doc/guix.texi:11862
 #, no-wrap
 msgid "positive-time-to-live"
 msgstr "positive-time-to-live"
 
 #. type: itemx
-#: doc/guix.texi:11128
+#: doc/guix.texi:11863
 #, 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:11131
+#: doc/guix.texi:11866
 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:11132
+#: doc/guix.texi:11867
 #, no-wrap
 msgid "@code{check-files?} (default: @code{#t})"
 msgstr "@code{check-files?} (par défaut : @code{#t})"
 
 #. type: table
-#: doc/guix.texi:11135
+#: doc/guix.texi:11870
 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:11139
+#: doc/guix.texi:11874
 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:11140
+#: doc/guix.texi:11875
 #, no-wrap
 msgid "@code{persistent?} (default: @code{#t})"
 msgstr "@code{persistent?} (par défaut : @code{#t})"
 
 #. type: table
-#: doc/guix.texi:11142
+#: doc/guix.texi:11877
 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:11143
+#: doc/guix.texi:11878
 #, no-wrap
 msgid "@code{shared?} (default: @code{#t})"
 msgstr "@code{shared?} (par défaut : @code{#t})"
 
 #. type: table
-#: doc/guix.texi:11145
+#: doc/guix.texi:11880
 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:11146
+#: doc/guix.texi:11881
 #, 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:11148
+#: doc/guix.texi:11883
 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:11155
+#: doc/guix.texi:11890
 #, no-wrap
 msgid "{Scheme Variable} %nscd-default-caches"
 msgstr "{Variable Scheme} %nscd-default-caches"
 
 #. type: defvr
-#: doc/guix.texi:11158
+#: doc/guix.texi:11893
 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:11164
+#: doc/guix.texi:11899
 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:11167
+#: doc/guix.texi:11902
 msgid "syslog-configuration-type"
 msgstr "syslog-configuration-type"
 
 #. type: cindex
-#: doc/guix.texi:11167 doc/guix.texi:11183
+#: doc/guix.texi:11902 doc/guix.texi:11918
 #, no-wrap
 msgid "syslog"
 msgstr "syslog"
 
 #. type: cindex
-#: doc/guix.texi:11168 doc/guix.texi:11633
+#: doc/guix.texi:11903 doc/guix.texi:12340
 #, no-wrap
 msgid "logging"
 msgstr "logging"
 
 #. type: deftp
-#: doc/guix.texi:11169
+#: doc/guix.texi:11904
 #, no-wrap
 msgid "{Data Type} syslog-configuration"
 msgstr "{Type de données} syslog-configuration"
 
 #. type: deftp
-#: doc/guix.texi:11171
+#: doc/guix.texi:11906
 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:11173
+#: doc/guix.texi:11908
 #, 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:11175
+#: doc/guix.texi:11910
 msgid "The syslog daemon to use."
 msgstr "Le démon syslog à utiliser."
 
 #. type: item
-#: doc/guix.texi:11176
+#: doc/guix.texi:11911
 #, 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:11178
+#: doc/guix.texi:11913
 msgid "The syslog configuration file to use."
 msgstr "Le fichier de configuration de syslog à utiliser."
 
 #. type: anchor{#1}
-#: doc/guix.texi:11183
+#: doc/guix.texi:11918
 msgid "syslog-service"
 msgstr "syslog-service"
 
 #. type: deffn
-#: doc/guix.texi:11184
+#: doc/guix.texi:11919
 #, no-wrap
 msgid "{Scheme Procedure} syslog-service @var{config}"
 msgstr "{Procédure Scheme} syslog-service @var{config}"
 
 #. type: deffn
-#: doc/guix.texi:11186
+#: doc/guix.texi:11921
 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:11189
+#: doc/guix.texi:11924
 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:11191
+#: doc/guix.texi:11926
 #, no-wrap
 msgid "{Scheme Variable} guix-service-type"
 msgstr "{Variable Scheme} guix-service-type"
 
 #. type: defvr
-#: doc/guix.texi:11195
+#: doc/guix.texi:11930
 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:11198
+#: doc/guix.texi:11933
 msgid "guix-configuration-type"
 msgstr "guix-configuration-type"
 
 #. type: deftp
-#: doc/guix.texi:11198
+#: doc/guix.texi:11933
 #, no-wrap
 msgid "{Data Type} guix-configuration"
 msgstr "{Type de données} guix-configuration"
 
 #. type: deftp
-#: doc/guix.texi:11201
+#: doc/guix.texi:11936
 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:11203
+#: doc/guix.texi:11938
 #, no-wrap
 msgid "@code{guix} (default: @var{guix})"
 msgstr "@code{guix} (par défaut : @var{guix})"
 
 #. type: table
-#: doc/guix.texi:11205 doc/guix.texi:11444
+#: doc/guix.texi:11940 doc/guix.texi:12160
 msgid "The Guix package to use."
 msgstr "Le paquet Guix à utiliser."
 
 #. type: item
-#: doc/guix.texi:11206
+#: doc/guix.texi:11941
 #, no-wrap
 msgid "@code{build-group} (default: @code{\"guixbuild\"})"
 msgstr "@code{build-group} (par défaut : @code{\"guixbuild\"})"
 
 #. type: table
-#: doc/guix.texi:11208
+#: doc/guix.texi:11943
 msgid "Name of the group for build user accounts."
 msgstr "Nom du groupe des comptes utilisateurs de construction."
 
 #. type: item
-#: doc/guix.texi:11209
+#: doc/guix.texi:11944
 #, no-wrap
 msgid "@code{build-accounts} (default: @code{10})"
 msgstr "@code{build-accounts} (par défaut : @code{10})"
 
 #. type: table
-#: doc/guix.texi:11211
+#: doc/guix.texi:11946
 msgid "Number of build user accounts to create."
 msgstr "Nombre de comptes utilisateurs de construction à créer."
 
 #. type: item
-#: doc/guix.texi:11212
+#: doc/guix.texi:11947
 #, no-wrap
 msgid "@code{authorize-key?} (default: @code{#t})"
 msgstr "@code{authorize-key?} (par défaut : @code{#t})"
 
 #. type: table
-#: doc/guix.texi:11217
-msgid "Whether to authorize the substitute keys listed in @code{authorized-keys}---by default that of @code{hydra.gnu.org} (@pxref{Substitutes})."
-msgstr "Autoriser ou non les clefs de substituts listées dans @code{authorize-keys} — par défaut celle de @code{hydra.gny.org} (@pxref{Substituts})."
+#: doc/guix.texi:11952
+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: vindex
-#: doc/guix.texi:11218
+#: doc/guix.texi:11953
 #, no-wrap
 msgid "%default-authorized-guix-keys"
 msgstr "%default-authorized-guix-keys"
 
 #. type: item
-#: doc/guix.texi:11219
+#: doc/guix.texi:11954
 #, no-wrap
 msgid "@code{authorized-keys} (default: @var{%default-authorized-guix-keys})"
 msgstr "@code{authorized-keys} (par défaut : @var{%default-authorized-guix-keys})"
 
 #. type: table
-#: doc/guix.texi:11223
-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{hydra.gnu.org} (@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{hydra.gnu.org} (@pxref{Substituts})."
+#: doc/guix.texi:11958
+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})."
 
 #. type: item
-#: doc/guix.texi:11224
+#: doc/guix.texi:11959
 #, no-wrap
 msgid "@code{use-substitutes?} (default: @code{#t})"
 msgstr "@code{use-substitutes?} (par défaut : @code{#t})"
 
 #. type: table
-#: doc/guix.texi:11226
+#: doc/guix.texi:11961
 msgid "Whether to use substitutes."
 msgstr "S'il faut utiliser les substituts."
 
 #. type: item
-#: doc/guix.texi:11227
+#: doc/guix.texi:11962
 #, no-wrap
 msgid "@code{substitute-urls} (default: @var{%default-substitute-urls})"
 msgstr "@code{substitute-urls} (par défaut : @var{%default-substitute-urls})"
 
 #. type: table
-#: doc/guix.texi:11229
+#: doc/guix.texi:11964
 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: item
-#: doc/guix.texi:11230
+#: doc/guix.texi:11965
 #, 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:11231
+#: doc/guix.texi:11966
 #, no-wrap
 msgid "@code{timeout} (default: @code{0})"
 msgstr "@code{timeout} (par défaut : @code{0})"
 
 #. type: table
-#: doc/guix.texi:11235
+#: doc/guix.texi:11970
 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:11236
+#: doc/guix.texi:11971
 #, no-wrap
 msgid "@code{log-compression} (default: @code{'bzip2})"
 msgstr "@code{log-compression} (par défaut : @code{'bzip2})"
 
 #. type: table
-#: doc/guix.texi:11239
+#: doc/guix.texi:11974
 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:11242
+#: doc/guix.texi:11977
 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:11243
+#: doc/guix.texi:11978
 #, 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:11246
+#: doc/guix.texi:11981
 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: item
-#: doc/guix.texi:11247
+#: doc/guix.texi:11982
 #, no-wrap
 msgid "@code{http-proxy} (default: @code{#f})"
 msgstr "@code{http-proxy} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:11250
+#: doc/guix.texi:11985
 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."
 
 #. type: item
-#: doc/guix.texi:11251
+#: doc/guix.texi:11986
 #, no-wrap
 msgid "@code{tmpdir} (default: @code{#f})"
 msgstr "@code{tmpdir} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:11253
+#: doc/guix.texi:11988
 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:11257
+#: doc/guix.texi:11992
 #, 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:11262
+#: doc/guix.texi:11997
 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 @var{udev-rule} and @var{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 @var{udev-rule} et @var{file->udev-rule} de @code{(gnu services base)} simplifient la création de ces fichiers de règle."
 
 #. type: deffn
-#: doc/guix.texi:11263
+#: doc/guix.texi:11999
 #, 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:11266
+#: doc/guix.texi:12002
 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:11270
+#: doc/guix.texi:12006
 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:11278
+#: doc/guix.texi:12014
 #, no-wrap
 msgid ""
 "(define %example-udev-rule\n"
@@ -20025,12 +21795,17 @@ msgstr ""
 "                   \"RUN+=\\\"/path/to/script\\\"\")))\n"
 
 #. type: deffn
-#: doc/guix.texi:11282
+#: doc/guix.texi:12018
+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: Plain text
+#: doc/guix.texi:12021
 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: example
-#: doc/guix.texi:11292
+#: doc/guix.texi:12031
 #, no-wrap
 msgid ""
 "(operating-system\n"
@@ -20052,23 +21827,23 @@ msgstr ""
 "                     (list %example-udev-rule))))))))\n"
 
 #. type: deffn
-#: doc/guix.texi:11294
+#: doc/guix.texi:12033
 #, 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:11297
+#: doc/guix.texi:12036
 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:11299
+#: doc/guix.texi:12038
 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:11304
+#: doc/guix.texi:12043
 #, no-wrap
 msgid ""
 "(use-modules (guix download)     ;for url-fetch\n"
@@ -20082,7 +21857,7 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix.texi:11315
+#: doc/guix.texi:12054
 #, no-wrap
 msgid ""
 "(define %android-udev-rules\n"
@@ -20107,18 +21882,18 @@ msgstr ""
 "       (sha256\n"
 "        (base32 \"0lmmagpyb6xsq6zcr2w1cyx9qmjqmajkvrdbhjx32gqf1d9is003\"))))))\n"
 
-#. type: deffn
-#: doc/guix.texi:11324
+#. type: Plain text
+#: doc/guix.texi:12063
 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: deffn
-#: doc/guix.texi:11333
+#. type: Plain text
+#: doc/guix.texi:12072
 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}."
 
 #. type: example
-#: doc/guix.texi:11338
+#: doc/guix.texi:12077
 #, no-wrap
 msgid ""
 "(use-modules (gnu packages android)  ;for android-udev-rules\n"
@@ -20132,7 +21907,7 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix.texi:11347
+#: doc/guix.texi:12086
 #, no-wrap
 msgid ""
 "(operating-system\n"
@@ -20156,7 +21931,7 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix.texi:11350
+#: doc/guix.texi:12089
 #, no-wrap
 msgid ""
 "  (groups (cons (user-group (system? #t) (name \"adbusers\"))\n"
@@ -20168,7 +21943,7 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix.texi:11352
+#: doc/guix.texi:12091
 #, no-wrap
 msgid ""
 "  ;; @dots{}\n"
@@ -20178,331 +21953,288 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix.texi:11359
+#: doc/guix.texi:12099
 #, no-wrap
 msgid ""
 "  (services\n"
-"    (modify-services %desktop-services\n"
-"      (udev-service-type config =>\n"
-"       (udev-configuration (inherit config)\n"
-"       (rules (cons* android-udev-rules\n"
-"              (udev-configuration-rules config))))))))\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 config =>\n"
-"       (udev-configuration (inherit config)\n"
-"       (rules (cons* android-udev-rules\n"
-"              (udev-configuration-rules config))))))))\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"
 
 #. type: defvr
-#: doc/guix.texi:11362
+#: doc/guix.texi:12101
 #, no-wrap
 msgid "{Scheme Variable} urandom-seed-service-type"
 msgstr "{Variable Scheme} urandom-seed-service-type"
 
 #. type: defvr
-#: doc/guix.texi:11367
+#: doc/guix.texi:12106
 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."
 
 #. type: defvr
-#: doc/guix.texi:11369
+#: doc/guix.texi:12108
 #, no-wrap
 msgid "{Scheme Variable} %random-seed-file"
 msgstr "{Variable Scheme} %random-seed-file"
 
 #. type: defvr
-#: doc/guix.texi:11373
+#: doc/guix.texi:12112
 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:11375 doc/guix.texi:12877
-#, no-wrap
-msgid "keymap"
-msgstr "disposition clavier"
-
-#. type: cindex
-#: doc/guix.texi:11376
-#, no-wrap
-msgid "keyboard"
-msgstr "clavier"
-
-#. type: deffn
-#: doc/guix.texi:11377
-#, no-wrap
-msgid "{Scheme Procedure} console-keymap-service @var{files} ..."
-msgstr "{Procédure Scheme} console-keymap-service @var{files} ..."
-
-#. type: deffn
-#: doc/guix.texi:11382
-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 "Renvoie un service qui charge les dispositions claviers de @var{files} avec la commande @command{loadkeys}.  Vraisemblablement, vous voudrez charger une disposition par défaut, ce qui se fait ainsi :"
-
-#. type: example
-#: doc/guix.texi:11385
-#, no-wrap
-msgid "(console-keymap-service \"dvorak\")\n"
-msgstr "(console-keymap-service \"dvorak\")\n"
-
-#. type: deffn
-#: doc/guix.texi:11389
-msgid "Or, for example, for a Swedish keyboard, you may need to combine the following keymaps:"
-msgstr "Ou par exemple pour un clavier suédois, vous pourriez avoir besoin de combiner les dispositions suivantes :"
-
-#. type: example
-#: doc/guix.texi:11391
-#, no-wrap
-msgid "(console-keymap-service \"se-lat6\" \"se-fi-lat6\")\n"
-msgstr "(console-keymap-service \"se-lat6\" \"se-fi-lat6\")\n"
-
-#. type: deffn
-#: doc/guix.texi:11395
-msgid "Also you can specify a full file name (or file names) of your keymap(s).  See @code{man loadkeys} for details."
-msgstr "Vous pouvez aussi spécifier le nom de fichier (ou les noms de fichiers) complets de vos dispositions.  Voir @code{man loadkeys} pour des détails."
-
-#. type: cindex
-#: doc/guix.texi:11398
+#: doc/guix.texi:12114
 #, no-wrap
 msgid "mouse"
 msgstr "souris"
 
 #. type: cindex
-#: doc/guix.texi:11399
+#: doc/guix.texi:12115
 #, no-wrap
 msgid "gpm"
 msgstr "gpm"
 
 #. type: defvr
-#: doc/guix.texi:11400
+#: doc/guix.texi:12116
 #, no-wrap
 msgid "{Scheme Variable} gpm-service-type"
 msgstr "{Variable Scheme} gpm-service-type"
 
 #. type: defvr
-#: doc/guix.texi:11405
+#: doc/guix.texi:12121
 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:11408
+#: doc/guix.texi:12124
 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}."
 
 #. type: deftp
-#: doc/guix.texi:11410
+#: doc/guix.texi:12126
 #, no-wrap
 msgid "{Data Type} gpm-configuration"
 msgstr "{Type de données} gpm-configuration"
 
 #. type: deftp
-#: doc/guix.texi:11412
+#: doc/guix.texi:12128
 msgid "Data type representing the configuration of GPM."
 msgstr "Type de données représentant la configuration de GPM."
 
 #. type: item
-#: doc/guix.texi:11414
+#: doc/guix.texi:12130
 #, 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:11419
+#: doc/guix.texi:12135
 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:11420
+#: doc/guix.texi:12136
 #, no-wrap
 msgid "@code{gpm} (default: @code{gpm})"
 msgstr "@code{gpm} (par défaut : @code{gpm})"
 
 #. type: table
-#: doc/guix.texi:11422
+#: doc/guix.texi:12138
 msgid "The GPM package to use."
 msgstr "Le paquet GPM à utiliser."
 
 #. type: anchor{#1}
-#: doc/guix.texi:11427
+#: doc/guix.texi:12143
 msgid "guix-publish-service-type"
 msgstr "guix-publish-service-type"
 
 #. type: deffn
-#: doc/guix.texi:11427
+#: doc/guix.texi:12143
 #, no-wrap
 msgid "{Scheme Variable} guix-publish-service-type"
 msgstr "{Variable Scheme} guix-publish-service-type"
 
 #. type: deffn
-#: doc/guix.texi:11431
+#: doc/guix.texi:12147
 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."
 
 #. type: deffn
-#: doc/guix.texi:11435
+#: doc/guix.texi:12151
 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:11437
+#: doc/guix.texi:12153
 #, no-wrap
 msgid "{Data Type} guix-publish-configuration"
 msgstr "{Type de données} guix-publish-configuration"
 
 #. type: deftp
-#: doc/guix.texi:11440
+#: doc/guix.texi:12156
 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:11442
+#: doc/guix.texi:12158
 #, no-wrap
 msgid "@code{guix} (default: @code{guix})"
 msgstr "@code{guix} (par défaut : @code{guix})"
 
 #. type: item
-#: doc/guix.texi:11445
+#: doc/guix.texi:12161
 #, no-wrap
 msgid "@code{port} (default: @code{80})"
 msgstr "@code{port} (par défaut : @code{80})"
 
 #. type: table
-#: doc/guix.texi:11447
+#: doc/guix.texi:12163
 msgid "The TCP port to listen for connections."
 msgstr "Le port TCP sur lequel écouter les connexions."
 
 #. type: item
-#: doc/guix.texi:11448
+#: doc/guix.texi:12164
 #, no-wrap
 msgid "@code{host} (default: @code{\"localhost\"})"
 msgstr "@code{host} (par défaut : @code{\"localhost\"})"
 
 #. type: table
-#: doc/guix.texi:11451
+#: doc/guix.texi:12167
 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: table
-#: doc/guix.texi:11456
+#: doc/guix.texi:12172
 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."
 
 #. type: item
-#: doc/guix.texi:11457
+#: doc/guix.texi:12173
 #, no-wrap
 msgid "@code{nar-path} (default: @code{\"nar\"})"
 msgstr "@code{nar-path} (par défaut : @code{\"nar\"})"
 
 #. type: table
-#: doc/guix.texi:11460
+#: doc/guix.texi:12176
 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."
 
 #. type: item
-#: doc/guix.texi:11461
+#: doc/guix.texi:12177
 #, no-wrap
 msgid "@code{cache} (default: @code{#f})"
 msgstr "@code{cache} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:11467
+#: doc/guix.texi:12183
 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:11468
+#: doc/guix.texi:12184
 #, no-wrap
 msgid "@code{workers} (default: @code{#f})"
 msgstr "@code{workers} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:11472
+#: doc/guix.texi:12188
 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:11473
+#: doc/guix.texi:12189
 #, no-wrap
 msgid "@code{ttl} (default: @code{#f})"
 msgstr "@code{ttl} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:11477
+#: doc/guix.texi:12193
 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:11481
+#: doc/guix.texi:12197
 msgid "rngd-service"
 msgstr "rngd-service"
 
 #. type: deffn
-#: doc/guix.texi:11481
+#: doc/guix.texi:12197
 #, 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:11486
+#: doc/guix.texi:12202
 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:11489
+#: doc/guix.texi:12205
 msgid "pam-limits-service"
 msgstr "pam-limits-service"
 
 #. type: cindex
-#: doc/guix.texi:11489
+#: doc/guix.texi:12205
 #, no-wrap
 msgid "session limits"
 msgstr "limites de session"
 
 #. type: cindex
-#: doc/guix.texi:11490
+#: doc/guix.texi:12206
 #, no-wrap
 msgid "ulimit"
 msgstr "ulimit"
 
 #. type: cindex
-#: doc/guix.texi:11491
+#: doc/guix.texi:12207
 #, no-wrap
 msgid "priority"
 msgstr "priorités"
 
 #. type: cindex
-#: doc/guix.texi:11492
+#: doc/guix.texi:12208
 #, no-wrap
 msgid "realtime"
 msgstr "temps réel"
 
 #. type: cindex
-#: doc/guix.texi:11493
+#: doc/guix.texi:12209
 #, no-wrap
 msgid "jackd"
 msgstr "jackd"
 
 #. type: deffn
-#: doc/guix.texi:11494
+#: doc/guix.texi:12210
 #, no-wrap
 msgid "{Scheme Procedure} pam-limits-service [#:limits @code{'()}]"
 msgstr "{Procédure Scheme} pam-limits-service [#:limits @code{'()}]"
 
 #. type: deffn
-#: doc/guix.texi:11501
+#: doc/guix.texi:12217
 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:11504
+#: doc/guix.texi:12220
 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:11510
+#: doc/guix.texi:12226
 #, no-wrap
 msgid ""
 "(pam-limits-service\n"
@@ -20516,40 +22248,40 @@ msgstr ""
 "  (pam-limits-entry \"@@realtime\" 'both 'memlock 'unlimited)))\n"
 
 #. type: deffn
-#: doc/guix.texi:11516
+#: doc/guix.texi:12232
 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:11521
+#: doc/guix.texi:12237
 #, no-wrap
 msgid "cron"
 msgstr "cron"
 
 #. type: cindex
-#: doc/guix.texi:11522
+#: doc/guix.texi:12238
 #, no-wrap
 msgid "mcron"
 msgstr "mcron"
 
 #. type: cindex
-#: doc/guix.texi:11523
+#: doc/guix.texi:12239
 #, no-wrap
 msgid "scheduling jobs"
 msgstr "tâches planifiées"
 
 #. type: Plain text
-#: doc/guix.texi:11530
+#: doc/guix.texi:12246
 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:11538
+#: doc/guix.texi:12254
 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:11542
+#: doc/guix.texi:12258
 #, no-wrap
 msgid ""
 "(use-modules (guix) (gnu) (gnu services mcron))\n"
@@ -20561,7 +22293,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:11551
+#: doc/guix.texi:12267
 #, no-wrap
 msgid ""
 "(define updatedb-job\n"
@@ -20585,7 +22317,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:11557
+#: doc/guix.texi:12273
 #, no-wrap
 msgid ""
 "(define garbage-collector-job\n"
@@ -20603,7 +22335,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:11564
+#: doc/guix.texi:12280
 #, no-wrap
 msgid ""
 "(define idutils-job\n"
@@ -20623,149 +22355,127 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:11571
+#: doc/guix.texi:12289
 #, no-wrap
 msgid ""
 "(operating-system\n"
 "  ;; @dots{}\n"
-"  (services (cons (mcron-service (list garbage-collector-job\n"
-"                                       updatedb-job\n"
-"                                       idutils-job))\n"
+"  (services (cons (service mcron-service-type\n"
+"                           (mcron-configuration\n"
+"                            (jobs (list garbage-collector-job\n"
+"                                        updatedb-job\n"
+"                                        idutils-job))))\n"
 "                  %base-services)))\n"
 msgstr ""
 "(operating-system\n"
 "  ;; @dots{}\n"
-"  (services (cons (mcron-service (list garbage-collector-job\n"
-"                                       updatedb-job\n"
-"                                       idutils-job))\n"
+"  (services (cons (service mcron-service-type\n"
+"                           (mcron-configuration\n"
+"                            (jobs (list garbage-collector-job\n"
+"                                        updatedb-job\n"
+"                                        idutils-job))))\n"
 "                  %base-services)))\n"
 
 #. type: Plain text
-#: doc/guix.texi:11576
+#: doc/guix.texi:12294
 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:11579
+#: doc/guix.texi:12297
 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:11582
+#: doc/guix.texi:12300
 #, no-wrap
 msgid "# herd schedule mcron\n"
 msgstr "# herd schedule mcron\n"
 
 #. type: Plain text
-#: doc/guix.texi:11587
+#: doc/guix.texi:12305
 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:11590
+#: doc/guix.texi:12308
 #, no-wrap
 msgid "# herd schedule mcron 10\n"
 msgstr "# herd schedule mcron 10\n"
 
-#. type: deffn
-#: doc/guix.texi:11592
-#, no-wrap
-msgid "{Scheme Procedure} mcron-service @var{jobs} [#:mcron @var{mcron}]"
-msgstr "{Procédure Scheme} mcron-service @var{jobs} [#:mcron @var{mcron}]"
-
-#. type: deffn
-#: doc/guix.texi:11595
-msgid "Return an mcron service running @var{mcron} that schedules @var{jobs}, a list of gexps denoting mcron job specifications."
-msgstr "Renvoie un service mcron qui lance @var{mcron} qui planifie les tâches @var{jobs}, une liste de gexps qui dénotent des spécifications de tâches de mcron."
-
-#. type: deffn
-#: doc/guix.texi:11597
-msgid "This is a shorthand for:"
-msgstr "C'est un raccourci pour :"
-
-#. type: example
-#: doc/guix.texi:11600
-#, no-wrap
-msgid ""
-"(service mcron-service-type\n"
-"         (mcron-configuration (mcron mcron) (jobs jobs)))\n"
-msgstr ""
-"(service mcron-service-type\n"
-"         (mcron-configuration (mcron mcron) (jobs jobs)))\n"
-
 #. type: defvr
-#: doc/guix.texi:11603
+#: doc/guix.texi:12310
 #, no-wrap
 msgid "{Scheme Variable} mcron-service-type"
 msgstr "{Variable Scheme} mcron-service-type"
 
 #. type: defvr
-#: doc/guix.texi:11606
+#: doc/guix.texi:12313
 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:11611
+#: doc/guix.texi:12318
 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:11613
+#: doc/guix.texi:12320
 #, no-wrap
 msgid "{Data Type} mcron-configuration"
 msgstr "{Type de données} mcron-configuration"
 
 #. type: deftp
-#: doc/guix.texi:11615
+#: doc/guix.texi:12322
 msgid "Data type representing the configuration of mcron."
 msgstr "Type données qui représente la configuration de mcron."
 
 #. type: item
-#: doc/guix.texi:11617
+#: doc/guix.texi:12324
 #, no-wrap
 msgid "@code{mcron} (default: @var{mcron})"
 msgstr "@code{mcron} (par défaut : @var{mcron})"
 
 #. type: table
-#: doc/guix.texi:11619
+#: doc/guix.texi:12326
 msgid "The mcron package to use."
 msgstr "Le paquet mcron à utiliser."
 
 #. type: code{#1}
-#: doc/guix.texi:11620 doc/guix.texi:11679
+#: doc/guix.texi:12327 doc/guix.texi:12386
 #, no-wrap
 msgid "jobs"
 msgstr "jobs"
 
 #. type: table
-#: doc/guix.texi:11624
+#: doc/guix.texi:12331
 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:11631
+#: doc/guix.texi:12338
 #, no-wrap
 msgid "rottlog"
 msgstr "rottlog"
 
 #. type: cindex
-#: doc/guix.texi:11632
+#: doc/guix.texi:12339
 #, no-wrap
 msgid "log rotation"
 msgstr "journaux, rotation"
 
 #. type: Plain text
-#: doc/guix.texi:11639
+#: doc/guix.texi:12346
 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:11642
+#: doc/guix.texi:12349
 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."
 
 #. type: lisp
-#: doc/guix.texi:11647
+#: doc/guix.texi:12354
 #, no-wrap
 msgid ""
 "(use-modules (guix) (gnu))\n"
@@ -20779,7 +22489,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:11652
+#: doc/guix.texi:12359
 #, no-wrap
 msgid ""
 "(operating-system\n"
@@ -20793,93 +22503,93 @@ msgstr ""
 "                  %base-services)))\n"
 
 #. type: defvr
-#: doc/guix.texi:11654
+#: doc/guix.texi:12361
 #, no-wrap
 msgid "{Scheme Variable} rottlog-service-type"
 msgstr "{Variable Scheme} rottlog-service-type"
 
 #. type: defvr
-#: doc/guix.texi:11657
+#: doc/guix.texi:12364
 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:11660
+#: doc/guix.texi:12367
 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:11663
+#: doc/guix.texi:12370
 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:11665
+#: doc/guix.texi:12372
 #, no-wrap
 msgid "{Data Type} rottlog-configuration"
 msgstr "{Type de données} rottlog-configuration"
 
 #. type: deftp
-#: doc/guix.texi:11667
+#: doc/guix.texi:12374
 msgid "Data type representing the configuration of rottlog."
 msgstr "Type de données représentant la configuration de rottlog."
 
 #. type: item
-#: doc/guix.texi:11669
+#: doc/guix.texi:12376
 #, no-wrap
 msgid "@code{rottlog} (default: @code{rottlog})"
 msgstr "@code{rottlog} (par défaut : @code{rottlog})"
 
 #. type: table
-#: doc/guix.texi:11671
+#: doc/guix.texi:12378
 msgid "The Rottlog package to use."
 msgstr "Le paquet Rottlog à utiliser."
 
 #. type: item
-#: doc/guix.texi:11672
+#: doc/guix.texi:12379
 #, 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:11675
+#: doc/guix.texi:12382
 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:11676
+#: doc/guix.texi:12383
 #, no-wrap
 msgid "@code{rotations} (default: @code{%default-rotations})"
 msgstr "@code{rotations} (par défaut : @code{%default-rotations})"
 
 #. type: table
-#: doc/guix.texi:11678
+#: doc/guix.texi:12385
 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:11682
+#: doc/guix.texi:12389
 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:11685
+#: doc/guix.texi:12392
 #, no-wrap
 msgid "{Data Type} log-rotation"
 msgstr "{Type de données} log-rotation"
 
 #. type: deftp
-#: doc/guix.texi:11687
+#: doc/guix.texi:12394
 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:11691
+#: doc/guix.texi:12398
 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:11700
+#: doc/guix.texi:12407
 #, no-wrap
 msgid ""
 "(log-rotation\n"
@@ -20899,111 +22609,111 @@ msgstr ""
 "             \"nocompress\")))\n"
 
 #. type: deftp
-#: doc/guix.texi:11703
+#: doc/guix.texi:12410
 msgid "The list of fields is as follows:"
 msgstr "La liste des champs est la suivante :"
 
 #. type: item
-#: doc/guix.texi:11705
+#: doc/guix.texi:12412
 #, no-wrap
 msgid "@code{frequency} (default: @code{'weekly})"
 msgstr "@code{frequency} (par défaut : @code{'weekly})"
 
 #. type: table
-#: doc/guix.texi:11707
+#: doc/guix.texi:12414
 msgid "The log rotation frequency, a symbol."
 msgstr "La fréquence de rotation, un symbole."
 
 #. type: code{#1}
-#: doc/guix.texi:11708
+#: doc/guix.texi:12415
 #, no-wrap
 msgid "files"
 msgstr "files"
 
 #. type: table
-#: doc/guix.texi:11710
+#: doc/guix.texi:12417
 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:11711
+#: doc/guix.texi:12418
 #, no-wrap
 msgid "@code{options} (default: @code{'()})"
 msgstr "@code{options} (par défaut : @code{'()})"
 
 #. type: table
-#: doc/guix.texi:11714
+#: doc/guix.texi:12421
 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:11715
+#: doc/guix.texi:12422
 #, no-wrap
 msgid "@code{post-rotate} (default: @code{#f})"
 msgstr "@code{post-rotate} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:11717
+#: doc/guix.texi:12424
 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:11720
+#: doc/guix.texi:12427
 #, no-wrap
 msgid "{Scheme Variable} %default-rotations"
 msgstr "{Variable Scheme} %default-rotations"
 
 #. type: defvr
-#: doc/guix.texi:11723
+#: doc/guix.texi:12430
 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."
 
 #. type: defvr
-#: doc/guix.texi:11725
+#: doc/guix.texi:12432
 #, no-wrap
 msgid "{Scheme Variable} %rotated-files"
 msgstr "{Variable Scheme} %rotated-files"
 
 #. type: defvr
-#: doc/guix.texi:11728
+#: doc/guix.texi:12435
 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\")}"
 
 #. type: Plain text
-#: doc/guix.texi:11735
+#: doc/guix.texi:12442
 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:11736
+#: doc/guix.texi:12443
 #, no-wrap
 msgid "DHCP, networking service"
 msgstr "DHCP, service réseau"
 
 #. type: defvr
-#: doc/guix.texi:11737
+#: doc/guix.texi:12444
 #, no-wrap
 msgid "{Scheme Variable} dhcp-client-service-type"
 msgstr "{Variable Scheme} dhcp-client-service-type"
 
 #. type: defvr
-#: doc/guix.texi:11741
+#: doc/guix.texi:12448
 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:11743
+#: doc/guix.texi:12450
 #, no-wrap
 msgid "{Scheme Procedure} dhcpd-service-type"
 msgstr "{Procédure Scheme} dhcpd-service-type"
 
 #. type: deffn
-#: doc/guix.texi:11747
+#: doc/guix.texi:12454
 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:11753
+#: doc/guix.texi:12460
 #, no-wrap
 msgid ""
 "(service dhcpd-service-type\n"
@@ -21017,96 +22727,96 @@ msgstr ""
 "          (interfaces '(\"enp0s25\"))))\n"
 
 #. type: deftp
-#: doc/guix.texi:11756
+#: doc/guix.texi:12463
 #, no-wrap
 msgid "{Data Type} dhcpd-configuration"
 msgstr "{Type de données} dhcpd-configuration"
 
 #. type: item
-#: doc/guix.texi:11758
+#: doc/guix.texi:12465
 #, no-wrap
 msgid "@code{package} (default: @code{isc-dhcp})"
 msgstr "@code{package} (par défaut : @code{isc-dhcp})"
 
 #. type: table
-#: doc/guix.texi:11763
+#: doc/guix.texi:12470
 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{http://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{http://www.isc.org/products/DHCP, serveur DHCP d'ISC}"
 
 #. type: item
-#: doc/guix.texi:11763 doc/guix.texi:11952 doc/guix.texi:15716
+#: doc/guix.texi:12470 doc/guix.texi:12659 doc/guix.texi:16612
 #, no-wrap
 msgid "@code{config-file} (default: @code{#f})"
 msgstr "@code{config-file} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:11768
+#: doc/guix.texi:12475
 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:11768
+#: doc/guix.texi:12475
 #, no-wrap
 msgid "@code{version} (default: @code{\"4\"})"
 msgstr "@code{version} (par défaut : @code{\"4\"})"
 
 #. type: table
-#: doc/guix.texi:11773
+#: doc/guix.texi:12480
 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:11773
+#: doc/guix.texi:12480
 #, 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:11776
+#: doc/guix.texi:12483
 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:11776
+#: doc/guix.texi:12483
 #, 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:11779
+#: doc/guix.texi:12486
 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:11779
+#: doc/guix.texi:12486
 #, no-wrap
 msgid "@code{interfaces} (default: @code{'()})"
 msgstr "@code{interfaces} (par défaut : @code{'()})"
 
 #. type: table
-#: doc/guix.texi:11785
+#: doc/guix.texi:12492
 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:11788
+#: doc/guix.texi:12495
 #, no-wrap
 msgid "{Scheme Variable} static-networking-service-type"
 msgstr "{Variable Scheme} static-networking-service-type"
 
 #. type: defvr
-#: doc/guix.texi:11791
+#: doc/guix.texi:12498
 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:11793
+#: doc/guix.texi:12500
 #, 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:11801
+#: doc/guix.texi:12508
 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"
@@ -21114,17 +22824,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:11806
+#: doc/guix.texi:12513
 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:11808
+#: doc/guix.texi:12515
 msgid "For example:"
 msgstr "Par exemple :"
 
 #. type: example
-#: doc/guix.texi:11813
+#: doc/guix.texi:12520
 #, no-wrap
 msgid ""
 "(static-networking-service \"eno1\" \"192.168.1.82\"\n"
@@ -21136,195 +22846,195 @@ msgstr ""
 "                           #:name-servers '(\"192.168.1.2\"))\n"
 
 #. type: cindex
-#: doc/guix.texi:11816
+#: doc/guix.texi:12523
 #, no-wrap
 msgid "wicd"
 msgstr "wicd"
 
 #. type: cindex
-#: doc/guix.texi:11819
+#: doc/guix.texi:12526
 #, no-wrap
 msgid "network management"
 msgstr "gestion du réseau"
 
 #. type: deffn
-#: doc/guix.texi:11820
+#: doc/guix.texi:12527
 #, no-wrap
 msgid "{Scheme Procedure} wicd-service [#:wicd @var{wicd}]"
 msgstr "{Procédure Scheme} wicd-service [#:wicd @var{wicd}]"
 
 #. type: deffn
-#: doc/guix.texi:11823
+#: doc/guix.texi:12530
 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:11828
+#: doc/guix.texi:12535
 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:11830
+#: doc/guix.texi:12537
 #, no-wrap
 msgid "ModemManager"
 msgstr "ModemManager"
 
 #. type: defvr
-#: doc/guix.texi:11832
+#: doc/guix.texi:12539
 #, no-wrap
 msgid "{Scheme Variable} modem-manager-service-type"
 msgstr "{Variable Scheme} modem-manager-service-type"
 
 #. type: defvr
-#: doc/guix.texi:11837
+#: doc/guix.texi:12544
 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:11840 doc/guix.texi:11862
+#: doc/guix.texi:12547 doc/guix.texi:12569
 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:11842
+#: doc/guix.texi:12549
 #, no-wrap
 msgid "{Data Type} modem-manager-configuration"
 msgstr "{Type de données} modem-manager-configuration"
 
 #. type: deftp
-#: doc/guix.texi:11844
+#: doc/guix.texi:12551
 msgid "Data type representing the configuration of ModemManager."
 msgstr "Type de donnée représentant la configuration de ModemManager."
 
 #. type: item
-#: doc/guix.texi:11846
+#: doc/guix.texi:12553
 #, 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:11848
+#: doc/guix.texi:12555
 msgid "The ModemManager package to use."
 msgstr "Le paquet ModemManager à utiliser."
 
 #. type: cindex
-#: doc/guix.texi:11852
+#: doc/guix.texi:12559
 #, no-wrap
 msgid "NetworkManager"
 msgstr "NetworkManager"
 
 #. type: defvr
-#: doc/guix.texi:11854
+#: doc/guix.texi:12561
 #, no-wrap
 msgid "{Scheme Variable} network-manager-service-type"
 msgstr "{Variable Scheme} network-manager-service-type"
 
 #. type: defvr
-#: doc/guix.texi:11859
+#: doc/guix.texi:12566
 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:11864
+#: doc/guix.texi:12571
 #, no-wrap
 msgid "{Data Type} network-manager-configuration"
 msgstr "{Type de données} network-manager-configuration"
 
 #. type: deftp
-#: doc/guix.texi:11866
+#: doc/guix.texi:12573
 msgid "Data type representing the configuration of NetworkManager."
 msgstr "Type de données représentant la configuration de NetworkManager."
 
 #. type: item
-#: doc/guix.texi:11868
+#: doc/guix.texi:12575
 #, 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:11870
+#: doc/guix.texi:12577
 msgid "The NetworkManager package to use."
 msgstr "Le paquet NetworkManager à utiliser."
 
 #. type: item
-#: doc/guix.texi:11871
+#: doc/guix.texi:12578
 #, no-wrap
 msgid "@code{dns} (default: @code{\"default\"})"
 msgstr "@code{dns} (par défaut : @code{\"default\"})"
 
 #. type: table
-#: doc/guix.texi:11874
+#: doc/guix.texi:12581
 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:11876
+#: doc/guix.texi:12583
 #, no-wrap
 msgid "default"
 msgstr "default"
 
 #. type: table
-#: doc/guix.texi:11879
+#: doc/guix.texi:12586
 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:11880
+#: doc/guix.texi:12587
 #, no-wrap
 msgid "dnsmasq"
 msgstr "dnsmasq"
 
 #. type: table
-#: doc/guix.texi:11884
+#: doc/guix.texi:12591
 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."
 
 #. type: item
-#: doc/guix.texi:11885 doc/guix.texi:13051
+#: doc/guix.texi:12592 doc/guix.texi:13818
 #, no-wrap
 msgid "none"
 msgstr "none"
 
 #. type: table
-#: doc/guix.texi:11887
+#: doc/guix.texi:12594
 msgid "NetworkManager will not modify @code{resolv.conf}."
 msgstr "NetworkManager ne modifiera pas @code{resolv.conf}."
 
 #. type: item
-#: doc/guix.texi:11889
+#: doc/guix.texi:12596
 #, no-wrap
 msgid "@code{vpn-plugins} (default: @code{'()})"
 msgstr "@code{vpn-plugins} (par défaut : @code{'()})"
 
 #. type: table
-#: doc/guix.texi:11893
+#: doc/guix.texi:12600
 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:11897
+#: doc/guix.texi:12604
 #, no-wrap
 msgid "Connman"
 msgstr "Connman"
 
 #. type: deffn
-#: doc/guix.texi:11898
+#: doc/guix.texi:12605
 #, no-wrap
 msgid "{Scheme Variable} connman-service-type"
 msgstr "{Variable Scheme} connman-service-type"
 
 #. type: deffn
-#: doc/guix.texi:11901
+#: doc/guix.texi:12608
 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:11904
+#: doc/guix.texi:12611
 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:11909
+#: doc/guix.texi:12616
 #, no-wrap
 msgid ""
 "(service connman-service-type\n"
@@ -21336,149 +23046,149 @@ msgstr ""
 "           (disable-vpn? #t)))\n"
 
 #. type: deffn
-#: doc/guix.texi:11912
+#: doc/guix.texi:12619
 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:11914
+#: doc/guix.texi:12621
 #, no-wrap
 msgid "{Data Type} connman-configuration"
 msgstr "{Type de données} connman-configuration"
 
 #. type: deftp
-#: doc/guix.texi:11916
+#: doc/guix.texi:12623
 msgid "Data Type representing the configuration of connman."
 msgstr "Type de données représentant la configuration de connman."
 
 #. type: item
-#: doc/guix.texi:11918
+#: doc/guix.texi:12625
 #, no-wrap
 msgid "@code{connman} (default: @var{connman})"
 msgstr "@code{connman} (par défaut : @var{connman})"
 
 #. type: table
-#: doc/guix.texi:11920
+#: doc/guix.texi:12627
 msgid "The connman package to use."
 msgstr "Le paquet connman à utiliser."
 
 #. type: item
-#: doc/guix.texi:11921
+#: doc/guix.texi:12628
 #, no-wrap
 msgid "@code{disable-vpn?} (default: @code{#f})"
 msgstr "@code{disable-vpn?} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:11923
+#: doc/guix.texi:12630
 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:11926
+#: doc/guix.texi:12633
 #, no-wrap
 msgid "WPA Supplicant"
 msgstr "WPA Supplicant"
 
 #. type: defvr
-#: doc/guix.texi:11927
+#: doc/guix.texi:12634
 #, no-wrap
 msgid "{Scheme Variable} wpa-supplicant-service-type"
 msgstr "{Variable Scheme} wpa-supplicant-service-type"
 
 #. type: defvr
-#: doc/guix.texi:11931
+#: doc/guix.texi:12638
 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:11933
+#: doc/guix.texi:12640
 #, no-wrap
 msgid "{Data Type} wpa-supplicant-configuration"
 msgstr "{Type de données} wpa-supplicant-configuration"
 
 #. type: deftp
-#: doc/guix.texi:11935
+#: doc/guix.texi:12642
 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:11937
+#: doc/guix.texi:12644
 msgid "It takes the following parameters:"
 msgstr "Il prend les paramètres suivants :"
 
 #. type: item
-#: doc/guix.texi:11939
+#: doc/guix.texi:12646
 #, 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:11941
+#: doc/guix.texi:12648
 msgid "The WPA Supplicant package to use."
 msgstr "Le paquet WPA Supplicant à utiliser."
 
 #. type: item
-#: doc/guix.texi:11942
+#: doc/guix.texi:12649
 #, no-wrap
 msgid "@code{dbus?} (default: @code{#t})"
 msgstr "@code{dbus?} (par défaut : @code{#t})"
 
 #. type: table
-#: doc/guix.texi:11944
+#: doc/guix.texi:12651
 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:11945
+#: doc/guix.texi:12652
 #, 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:11947
+#: doc/guix.texi:12654
 msgid "Where to store the PID file."
 msgstr "Où stocker votre fichier de PID."
 
 #. type: item
-#: doc/guix.texi:11948
+#: doc/guix.texi:12655
 #, no-wrap
 msgid "@code{interface} (default: @code{#f})"
 msgstr "@code{interface} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:11951
+#: doc/guix.texi:12658
 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:11954
+#: doc/guix.texi:12661
 msgid "Optional configuration file to use."
 msgstr "Fichier de configuration facultatif à utiliser."
 
 #. type: table
-#: doc/guix.texi:11957
+#: doc/guix.texi:12664
 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:11960
+#: doc/guix.texi:12667
 #, no-wrap
 msgid "iptables"
 msgstr "iptables"
 
 #. type: defvr
-#: doc/guix.texi:11961
+#: doc/guix.texi:12668
 #, no-wrap
 msgid "{Scheme Variable} iptables-service-type"
 msgstr "{Variable Scheme} iptables-service-type"
 
 #. type: defvr
-#: doc/guix.texi:11967
-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 paquet supporté par le noyau Linux.  Ce service supporte la configuration d'iptable pour IPv4 et IPv6.  Un exemple simple de configuration, qui rejette les connexions entrantes sauf celles sur le port 22 est présenté ci-dessous."
+#: doc/guix.texi:12674
+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:11987
+#: doc/guix.texi:12694
 #, no-wrap
 msgid ""
 "(service iptables-service-type\n"
@@ -21520,151 +23230,151 @@ msgstr ""
 "\"))))\n"
 
 #. type: deftp
-#: doc/guix.texi:11990
+#: doc/guix.texi:12697
 #, no-wrap
 msgid "{Data Type} iptables-configuration"
 msgstr "{Type de données} iptables-configuration"
 
 #. type: deftp
-#: doc/guix.texi:11992
+#: doc/guix.texi:12699
 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:11994
+#: doc/guix.texi:12701
 #, no-wrap
 msgid "@code{iptables} (default: @code{iptables})"
 msgstr "@code{iptables} (par défaut : @code{iptables})"
 
 #. type: table
-#: doc/guix.texi:11997
+#: doc/guix.texi:12704
 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:11997
+#: doc/guix.texi:12704
 #, 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:12001
+#: doc/guix.texi:12708
 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:12001
+#: doc/guix.texi:12708
 #, 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:12005
+#: doc/guix.texi:12712
 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:12008
+#: doc/guix.texi:12715
 #, no-wrap
 msgid "NTP (Network Time Protocol), service"
 msgstr "NTP (Network Time Protocol), service"
 
 #. type: cindex
-#: doc/guix.texi:12009
+#: doc/guix.texi:12716
 #, no-wrap
 msgid "real time clock"
 msgstr "horloge"
 
 #. type: defvr
-#: doc/guix.texi:12010
+#: doc/guix.texi:12717
 #, no-wrap
 msgid "{Scheme Variable} ntp-service-type"
 msgstr "{Variable Scheme} ntp-service-type"
 
 #. type: defvr
-#: doc/guix.texi:12014
-msgid "This is the type of the service running the 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."
+#: doc/guix.texi:12721
+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."
 
 #. type: defvr
-#: doc/guix.texi:12017
+#: doc/guix.texi:12724
 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:12019
+#: doc/guix.texi:12726
 #, no-wrap
 msgid "{Data Type} ntp-configuration"
 msgstr "{Type de données} ntp-configuration"
 
 #. type: deftp
-#: doc/guix.texi:12021
+#: doc/guix.texi:12728
 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:12023
+#: doc/guix.texi:12730
 #, no-wrap
 msgid "@code{servers} (default: @code{%ntp-servers})"
 msgstr "@code{servers} (par défaut : @code{%ntp-servers})"
 
 #. type: table
-#: doc/guix.texi:12026
+#: doc/guix.texi:12733
 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é."
 
 #. type: item
-#: doc/guix.texi:12027 doc/guix.texi:12088
+#: doc/guix.texi:12734 doc/guix.texi:12795
 #, 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:12030
+#: doc/guix.texi:12737
 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:12031
+#: doc/guix.texi:12738
 #, no-wrap
 msgid "@code{ntp} (default: @code{ntp})"
 msgstr "@code{ntp} (par défaut : @code{ntp})"
 
 #. type: table
-#: doc/guix.texi:12033
+#: doc/guix.texi:12740
 msgid "The NTP package to use."
 msgstr "Le paquet NTP à utiliser."
 
 #. type: defvr
-#: doc/guix.texi:12036
+#: doc/guix.texi:12743
 #, no-wrap
 msgid "{Scheme Variable} %ntp-servers"
 msgstr "{Variable Scheme} %ntp-servers"
 
 #. type: defvr
-#: doc/guix.texi:12039
+#: doc/guix.texi:12746
 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: cindex
-#: doc/guix.texi:12041
+#: doc/guix.texi:12748
 #, no-wrap
 msgid "OpenNTPD"
 msgstr "OpenNTPD"
 
 #. type: deffn
-#: doc/guix.texi:12042
+#: doc/guix.texi:12749
 #, no-wrap
 msgid "{Scheme Procedure} openntpd-service-type"
 msgstr "{Procédure Scheme} openntpd-service-type"
 
 #. type: deffn
-#: doc/guix.texi:12046
+#: doc/guix.texi:12753
 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:12056
+#: doc/guix.texi:12763
 #, no-wrap
 msgid ""
 "(service\n"
@@ -21688,128 +23398,128 @@ msgstr ""
 "\n"
 
 #. type: deftp
-#: doc/guix.texi:12060
+#: doc/guix.texi:12767
 #, no-wrap
 msgid "{Data Type} openntpd-configuration"
 msgstr "{Type de données} openntpd-configuration"
 
 #. type: item
-#: doc/guix.texi:12062
+#: doc/guix.texi:12769
 #, 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:12064
+#: doc/guix.texi:12771
 msgid "The openntpd executable to use."
 msgstr "L'exécutable openntpd à utiliser."
 
 #. type: item
-#: doc/guix.texi:12064
+#: doc/guix.texi:12771
 #, 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:12066
+#: doc/guix.texi:12773
 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:12066
+#: doc/guix.texi:12773
 #, no-wrap
 msgid "@code{query-from} (default: @code{'()})"
 msgstr "@code{query-from} (par défaut : @code{'()})"
 
 #. type: table
-#: doc/guix.texi:12068
+#: doc/guix.texi:12775
 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:12068
+#: doc/guix.texi:12775
 #, no-wrap
 msgid "@code{sensor} (default: @code{'()})"
 msgstr "@code{sensor} (par défaut : @code{'()})"
 
 #. type: table
-#: doc/guix.texi:12073
+#: doc/guix.texi:12780
 msgid "Specify a list of timedelta sensor devices ntpd should use.  @code{ntpd} will listen to each sensor that acutally exists and ignore non-existant 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:12073
+#: doc/guix.texi:12780
 #, no-wrap
 msgid "@code{server} (default: @var{%ntp-servers})"
 msgstr "@code{server} (par défaut : @var{%ntp-servers})"
 
 #. type: table
-#: doc/guix.texi:12075
+#: doc/guix.texi:12782
 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:12075 doc/guix.texi:18135
+#: doc/guix.texi:12782 doc/guix.texi:19891
 #, no-wrap
 msgid "@code{servers} (default: @code{'()})"
 msgstr "@code{servers} (par défaut : @code{'()})"
 
 #. type: table
-#: doc/guix.texi:12077
+#: doc/guix.texi:12784
 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:12077
+#: doc/guix.texi:12784
 #, no-wrap
 msgid "@code{constraint-from} (default: @code{'()})"
 msgstr "@code{constraint-from} (par défaut : @code{'()})"
 
 #. type: table
-#: doc/guix.texi:12084
+#: doc/guix.texi:12791
 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:12084
+#: doc/guix.texi:12791
 #, no-wrap
 msgid "@code{constraints-from} (default: @code{'()})"
 msgstr "@code{constraints-from} (par défaut : @code{'()})"
 
 #. type: table
-#: doc/guix.texi:12088
+#: doc/guix.texi:12795
 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: table
-#: doc/guix.texi:12091
+#: doc/guix.texi:12798
 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:12094
+#: doc/guix.texi:12801
 #, no-wrap
 msgid "inetd"
 msgstr "inetd"
 
 #. type: deffn
-#: doc/guix.texi:12095
+#: doc/guix.texi:12802
 #, no-wrap
 msgid "{Scheme variable} inetd-service-type"
 msgstr "{Variable Scheme} inetd-service-type"
 
 #. type: deffn
-#: doc/guix.texi:12100
+#: doc/guix.texi:12807
 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:12106
+#: doc/guix.texi:12813
 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:12129
+#: doc/guix.texi:12836
 #, no-wrap
 msgid ""
 "(service\n"
@@ -21857,231 +23567,220 @@ msgstr ""
 "                \"-W\" \"smtp-server:25\" \"user@@hostname\")))))\n"
 
 #. type: deffn
-#: doc/guix.texi:12132
+#: doc/guix.texi:12839
 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:12134
+#: doc/guix.texi:12841
 #, no-wrap
 msgid "{Data Type} inetd-configuration"
 msgstr "{Type de données} inetd-configuration"
 
 #. type: deftp
-#: doc/guix.texi:12136
+#: doc/guix.texi:12843
 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:12138
+#: doc/guix.texi:12845
 #, 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:12140
+#: doc/guix.texi:12847
 msgid "The @command{inetd} executable to use."
 msgstr "L'exécutable @command{inetd} à utiliser."
 
 #. type: item
-#: doc/guix.texi:12141 doc/guix.texi:17841
+#: doc/guix.texi:12848 doc/guix.texi:19597
 #, no-wrap
 msgid "@code{entries} (default: @code{'()})"
 msgstr "@code{entries} (par défaut : @code{'()})"
 
 #. type: table
-#: doc/guix.texi:12144
+#: doc/guix.texi:12851
 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:12147
+#: doc/guix.texi:12854
 #, no-wrap
 msgid "{Data Type} inetd-entry"
 msgstr "{Type de données} inetd-entry"
 
 #. type: deftp
-#: doc/guix.texi:12151
+#: doc/guix.texi:12858
 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:12153
+#: doc/guix.texi:12860
 #, no-wrap
 msgid "@code{node} (default: @code{#f})"
 msgstr "@code{node} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:12158
+#: doc/guix.texi:12865
 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:12160
+#: doc/guix.texi:12867
 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:12160
+#: doc/guix.texi:12867
 #, no-wrap
 msgid "socket-type"
 msgstr "socket-type"
 
 #. type: table
-#: doc/guix.texi:12163
+#: doc/guix.texi:12870
 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:12163
+#: doc/guix.texi:12870
 #, no-wrap
 msgid "protocol"
 msgstr "protocol"
 
 #. type: table
-#: doc/guix.texi:12165
+#: doc/guix.texi:12872
 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:12165
+#: doc/guix.texi:12872
 #, no-wrap
 msgid "@code{wait?} (default: @code{#t})"
 msgstr "@code{wait?} (par défaut : @code{#t})"
 
 #. type: table
-#: doc/guix.texi:12168
+#: doc/guix.texi:12875
 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:12173
-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\"}."
+#: doc/guix.texi:12880
+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:12173
+#: doc/guix.texi:12880
 #, no-wrap
 msgid "@code{program} (default: @code{\"internal\"})"
 msgstr "@code{program} (par défaut : @code{\"internal\"})"
 
 #. type: table
-#: doc/guix.texi:12176
+#: doc/guix.texi:12883
 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:12181
-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\")}."
+#: doc/guix.texi:12888
+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:12185
+#: doc/guix.texi:12892
 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:12187
+#: doc/guix.texi:12894
 #, no-wrap
 msgid "Tor"
 msgstr "Tor"
 
 #. type: defvr
-#: doc/guix.texi:12188
+#: doc/guix.texi:12895
 #, no-wrap
 msgid "{Scheme Variable} tor-service-type"
 msgstr "{Variable Scheme} tor-service-type"
 
 #. type: defvr
-#: doc/guix.texi:12193
+#: doc/guix.texi:12900
 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: deffn
-#: doc/guix.texi:12196
-#, no-wrap
-msgid "{Scheme Procedure} tor-service [@var{config-file}] [#:tor @var{tor}]"
-msgstr "{Procédure Scheme} tor-service [@var{config-file}] [#:tor @var{tor}]"
-
-#. type: deffn
-#: doc/guix.texi:12200
-msgid "This procedure is deprecated and will be removed in a future release.  Return a service of the @code{tor-service-type} type.  @var{config-file} and @var{tor} have the same meaning as in @code{<tor-configuration>}."
-msgstr "Cette procédure est obsolète et sera supprimée dans les futures versions.  Renvoie un service de type @code{tor-service-type}.  @var{config-file} et @var{tor} ont la même signification que dans @code{<tor-configuration>}."
-
 #. type: deftp
-#: doc/guix.texi:12202
+#: doc/guix.texi:12903
 #, no-wrap
 msgid "{Data Type} tor-configuration"
 msgstr "{Type de données} tor-configuration"
 
 #. type: item
-#: doc/guix.texi:12204
+#: doc/guix.texi:12905
 #, no-wrap
 msgid "@code{tor} (default: @code{tor})"
 msgstr "@code{tor} (par défaut : @code{tor})"
 
 #. type: table
-#: doc/guix.texi:12209
+#: doc/guix.texi:12910
 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:12210
+#: doc/guix.texi:12911
 #, 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:12216
+#: doc/guix.texi:12917
 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:12217
+#: doc/guix.texi:12918
 #, no-wrap
 msgid "@code{hidden-services} (default: @code{'()})"
 msgstr "@code{hidden-services} (par défaut : @code{'()})"
 
 #. type: table
-#: doc/guix.texi:12223
+#: doc/guix.texi:12924
 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:12224
+#: doc/guix.texi:12925
 #, 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:12231
+#: doc/guix.texi:12932
 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:12236
+#: doc/guix.texi:12937
 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:12239
+#: doc/guix.texi:12940
 #, no-wrap
 msgid "hidden service"
 msgstr "service caché"
 
 #. type: deffn
-#: doc/guix.texi:12240
+#: doc/guix.texi:12941
 #, 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:12243
+#: doc/guix.texi:12944
 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:12247
+#: doc/guix.texi:12948
 #, no-wrap
 msgid ""
 " '((22 \"127.0.0.1:22\")\n"
@@ -22091,242 +23790,242 @@ msgstr ""
 "   (80 \"127.0.0.1:8080\"))\n"
 
 #. type: deffn
-#: doc/guix.texi:12251
+#: doc/guix.texi:12952
 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:12255
+#: doc/guix.texi:12956
 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:12258
+#: doc/guix.texi:12959
 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:12261
+#: doc/guix.texi:12962
 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:12265
+#: doc/guix.texi:12966
 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:12266
+#: doc/guix.texi:12967
 #, no-wrap
 msgid "{Scheme Variable} rsync-service-type"
 msgstr "{Variable Scheme} rsync-service-type"
 
 #. type: deffn
-#: doc/guix.texi:12269
+#: doc/guix.texi:12970
 msgid "This is the type for the @uref{https://rsync.samba.org, rsync} rsync daemon, @command{rsync-configuration} record as in this example:"
 msgstr "C'est le type pour le démon @uref{https://rsync.samba.org, rsync}, qui prend un enregistrement @command{rsync-configuration} comme dans cet exemple :"
 
 #. type: example
-#: doc/guix.texi:12272
+#: doc/guix.texi:12973
 #, no-wrap
 msgid "(service rsync-service-type)\n"
 msgstr "(service rsync-service-type)\n"
 
 #. type: deffn
-#: doc/guix.texi:12275
+#: doc/guix.texi:12976
 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:12277
+#: doc/guix.texi:12978
 #, no-wrap
 msgid "{Data Type} rsync-configuration"
 msgstr "{Type de données} rsync-configuration"
 
 #. type: deftp
-#: doc/guix.texi:12279
+#: doc/guix.texi:12980
 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:12281
+#: doc/guix.texi:12982
 #, no-wrap
 msgid "@code{package} (default: @var{rsync})"
 msgstr "@code{package} (par défaut : @var{rsync})"
 
 #. type: table
-#: doc/guix.texi:12283
+#: doc/guix.texi:12984
 msgid "@code{rsync} package to use."
 msgstr "Le paquet @code{rsync} à utiliser."
 
 #. type: item
-#: doc/guix.texi:12284
+#: doc/guix.texi:12985
 #, no-wrap
 msgid "@code{port-number} (default: @code{873})"
 msgstr "@code{port-number} (par défaut : @code{873})"
 
 #. type: table
-#: doc/guix.texi:12288
+#: doc/guix.texi:12989
 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:12289
+#: doc/guix.texi:12990
 #, 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:12291
+#: doc/guix.texi:12992
 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:12292
+#: doc/guix.texi:12993
 #, 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:12294
+#: doc/guix.texi:12995
 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:12295
+#: doc/guix.texi:12996
 #, 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:12297
+#: doc/guix.texi:12998
 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:12298
+#: doc/guix.texi:12999
 #, no-wrap
 msgid "@code{use-chroot?} (default: @var{#t})"
 msgstr "@code{use-chroot?} (par défaut : @var{#t})"
 
 #. type: table
-#: doc/guix.texi:12300
+#: doc/guix.texi:13001
 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:12301
+#: doc/guix.texi:13002
 #, 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:12303
+#: doc/guix.texi:13004
 msgid "Location of the @command{rsync} shared directory."
 msgstr "Emplacement du répertoire partagé de @command{rsync}."
 
 #. type: item
-#: doc/guix.texi:12304
+#: doc/guix.texi:13005
 #, 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:12306
+#: doc/guix.texi:13007
 msgid "Comment of the @command{rsync} shared directory."
 msgstr "Commentaire du répertoire partagé de @command{rsync}."
 
 #. type: item
-#: doc/guix.texi:12307
+#: doc/guix.texi:13008
 #, no-wrap
 msgid "@code{read-only?} (default: @var{#f})"
 msgstr "@code{read-only?} (par défaut : @var{#f})"
 
 #. type: table
-#: doc/guix.texi:12309
+#: doc/guix.texi:13010
 msgid "Read-write permissions to shared directory."
 msgstr "Permission en écriture sur le répertoire partagé."
 
 #. type: item
-#: doc/guix.texi:12310
+#: doc/guix.texi:13011
 #, no-wrap
 msgid "@code{timeout} (default: @code{300})"
 msgstr "@code{timeout} (par défaut : @code{300})"
 
 #. type: table
-#: doc/guix.texi:12312
+#: doc/guix.texi:13013
 msgid "I/O timeout in seconds."
 msgstr "Délai d'attente d'entrée-sortie en secondes."
 
 #. type: item
-#: doc/guix.texi:12313
+#: doc/guix.texi:13014
 #, no-wrap
 msgid "@code{user} (default: @var{\"root\"})"
 msgstr "@code{user} (par défaut : @var{\"root\"})"
 
 #. type: table
-#: doc/guix.texi:12315
+#: doc/guix.texi:13016
 msgid "Owner of the @code{rsync} process."
 msgstr "Propriétaire du processus @code{rsync}."
 
 #. type: item
-#: doc/guix.texi:12316
+#: doc/guix.texi:13017
 #, no-wrap
 msgid "@code{group} (default: @var{\"root\"})"
 msgstr "@code{group} (par défaut : @var{\"root\"})"
 
 #. type: table
-#: doc/guix.texi:12318
+#: doc/guix.texi:13019
 msgid "Group of the @code{rsync} process."
 msgstr "Groupe du processus @code{rsync}."
 
 #. type: item
-#: doc/guix.texi:12319
+#: doc/guix.texi:13020
 #, no-wrap
 msgid "@code{uid} (default: @var{\"rsyncd\"})"
 msgstr "@code{uid} (par défaut : @var{\"rsyncd\"})"
 
 #. type: table
-#: doc/guix.texi:12322
+#: doc/guix.texi:13023
 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:12323
+#: doc/guix.texi:13024
 #, no-wrap
 msgid "@code{gid} (default: @var{\"rsyncd\"})"
 msgstr "@code{gid} (par défaut : @var{\"rsyncd\"})"
 
 #. type: table
-#: doc/guix.texi:12325
+#: doc/guix.texi:13026
 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:12330
+#: doc/guix.texi:13031
 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:12330 doc/guix.texi:12369 doc/guix.texi:22733
+#: doc/guix.texi:13031 doc/guix.texi:13070 doc/guix.texi:24610
 #, no-wrap
 msgid "SSH"
 msgstr "SSH"
 
 #. type: cindex
-#: doc/guix.texi:12331 doc/guix.texi:12370 doc/guix.texi:22734
+#: doc/guix.texi:13032 doc/guix.texi:13071 doc/guix.texi:24611
 #, no-wrap
 msgid "SSH server"
 msgstr "serveur SSH"
 
 #. type: deffn
-#: doc/guix.texi:12333
+#: doc/guix.texi:13034
 #, 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:12342
+#: doc/guix.texi:13043
 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"
@@ -22337,48 +24036,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:12348
+#: doc/guix.texi:13049
 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:12352
+#: doc/guix.texi:13053
 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:12357
+#: doc/guix.texi:13058
 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:12361
+#: doc/guix.texi:13062
 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:12365
+#: doc/guix.texi:13066
 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:12367
+#: doc/guix.texi:13068
 msgid "The other options should be self-descriptive."
 msgstr "Les autres options devraient être évidentes."
 
 #. type: deffn
-#: doc/guix.texi:12371
+#: doc/guix.texi:13072
 #, no-wrap
 msgid "{Scheme Variable} openssh-service-type"
 msgstr "{Variable Scheme} openssh-service-type"
 
 #. type: deffn
-#: doc/guix.texi:12375
+#: doc/guix.texi:13076
 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:12384
+#: doc/guix.texi:13085
 #, no-wrap
 msgid ""
 "(service openssh-service-type\n"
@@ -22398,17 +24097,17 @@ msgstr ""
 "               (\"bob\" ,(local-file \"bob.pub\"))))))\n"
 
 #. type: deffn
-#: doc/guix.texi:12387
+#: doc/guix.texi:13088
 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:12390
+#: doc/guix.texi:13091
 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:12395
+#: doc/guix.texi:13096
 #, no-wrap
 msgid ""
 "(service-extension openssh-service-type\n"
@@ -22420,192 +24119,192 @@ msgstr ""
 "                             ,(local-file \"charlie.pub\")))))\n"
 
 #. type: deftp
-#: doc/guix.texi:12398
+#: doc/guix.texi:13099
 #, no-wrap
 msgid "{Data Type} openssh-configuration"
 msgstr "{Type de données} openssh-configuration"
 
 #. type: deftp
-#: doc/guix.texi:12400
+#: doc/guix.texi:13101
 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:12402
+#: doc/guix.texi:13103
 #, 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:12404
+#: doc/guix.texi:13105
 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:12405
+#: doc/guix.texi:13106
 #, no-wrap
 msgid "@code{port-number} (default: @code{22})"
 msgstr "@code{port-number} (par défaut : @code{22})"
 
 #. type: table
-#: doc/guix.texi:12407
+#: doc/guix.texi:13108
 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:12408
+#: doc/guix.texi:13109
 #, 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:12413
+#: doc/guix.texi:13114
 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:12414 doc/guix.texi:12562
+#: doc/guix.texi:13115 doc/guix.texi:13276
 #, 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:12417
+#: doc/guix.texi:13118
 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:12418 doc/guix.texi:12565
+#: doc/guix.texi:13119 doc/guix.texi:13279
 #, no-wrap
 msgid "@code{password-authentication?} (default: @code{#t})"
 msgstr "@code{password-authentication?} (par défaut : @code{#t})"
 
 #. type: table
-#: doc/guix.texi:12421
+#: doc/guix.texi:13122
 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:12422
+#: doc/guix.texi:13123
 #, 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:12425
+#: doc/guix.texi:13126
 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:12428
+#: doc/guix.texi:13129
 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:12429
+#: doc/guix.texi:13130
 #, no-wrap
 msgid "@code{x11-forwarding?} (default: @code{#f})"
 msgstr "@code{x11-forwarding?} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:12433
+#: doc/guix.texi:13134
 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:12434
+#: doc/guix.texi:13135
 #, 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:12436
+#: doc/guix.texi:13137
 msgid "Whether to allow agent forwarding."
 msgstr "Indique s'il faut autoriser la redirection d'agent."
 
 #. type: item
-#: doc/guix.texi:12437
+#: doc/guix.texi:13138
 #, 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:12439
+#: doc/guix.texi:13140
 msgid "Whether to allow TCP forwarding."
 msgstr "Indique s'il faut autoriser la redirection TCP."
 
 #. type: item
-#: doc/guix.texi:12440
+#: doc/guix.texi:13141
 #, no-wrap
 msgid "@code{gateway-ports?} (default: @code{#f})"
 msgstr "@code{gateway-ports?} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:12442
+#: doc/guix.texi:13143
 msgid "Whether to allow gateway ports."
 msgstr "Indique s'il faut autoriser les ports de passerelle."
 
 #. type: item
-#: doc/guix.texi:12443
+#: doc/guix.texi:13144
 #, 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:12446
-msgid "Specifies whether challenge response authentication is allowed (e.g. via PAM)."
+#: doc/guix.texi:13147
+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:12447
+#: doc/guix.texi:13148
 #, no-wrap
 msgid "@code{use-pam?} (default: @code{#t})"
 msgstr "@code{use-pam?} (par défaut : @code{#t})"
 
 #. type: table
-#: doc/guix.texi:12453
+#: doc/guix.texi:13154
 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:12458
+#: doc/guix.texi:13159
 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:12459
+#: doc/guix.texi:13160
 #, 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:12462
+#: doc/guix.texi:13163
 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:12463
+#: doc/guix.texi:13164
 #, 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:12465
-msgid "Configures external subsystems (e.g. file transfer daemon)."
+#: doc/guix.texi:13166
+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:12469
+#: doc/guix.texi:13170
 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:12472
+#: doc/guix.texi:13173
 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} :"
 
 #. type: example
-#: doc/guix.texi:12477
+#: doc/guix.texi:13178
 #, no-wrap
 msgid ""
 "(service openssh-service-type\n"
@@ -22619,28 +24318,28 @@ msgstr ""
 "           `((\"sftp\" ,(file-append openssh \"/libexec/sftp-server\"))))))\n"
 
 #. type: item
-#: doc/guix.texi:12479
+#: doc/guix.texi:13180
 #, no-wrap
 msgid "@code{accepted-environment} (default: @code{'()})"
 msgstr "@code{accepted-environment} (par défaut : @code{'()})"
 
 #. type: table
-#: doc/guix.texi:12481
+#: doc/guix.texi:13182
 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:12484
+#: doc/guix.texi:13185
 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:12489
+#: doc/guix.texi:13190
 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."
 
 #. type: example
-#: doc/guix.texi:12494
+#: doc/guix.texi:13195
 #, no-wrap
 msgid ""
 "(service openssh-service-type\n"
@@ -22652,30 +24351,30 @@ msgstr ""
 "           (accepted-environment '(\"COLORTERM\"))))\n"
 
 #. type: item
-#: doc/guix.texi:12496
+#: doc/guix.texi:13197
 #, no-wrap
 msgid "@code{authorized-keys} (default: @code{'()})"
 msgstr "@code{authorized-keys} (par défaut : @code{'()})"
 
 #. type: cindex
-#: doc/guix.texi:12497
+#: doc/guix.texi:13198
 #, no-wrap
 msgid "authorized keys, SSH"
 msgstr "clefs autorisées, SSH"
 
 #. type: cindex
-#: doc/guix.texi:12498
+#: doc/guix.texi:13199
 #, no-wrap
 msgid "SSH authorized keys"
 msgstr "SSH, clefs autorisées"
 
 #. type: table
-#: doc/guix.texi:12502
+#: doc/guix.texi:13203
 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:12509
+#: doc/guix.texi:13210
 #, no-wrap
 msgid ""
 "(openssh-configuration\n"
@@ -22691,49 +24390,74 @@ msgstr ""
 "      (\"root\" ,(local-file \"rekado.pub\") ,(local-file \"chris.pub\")))))\n"
 
 #. type: table
-#: doc/guix.texi:12514
+#: doc/guix.texi:13215
 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:12517
+#: doc/guix.texi:13218
 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:12520
+#: doc/guix.texi:13221
 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:12521
+#: doc/guix.texi:13222
 #, no-wrap
 msgid "@code{log-level} (default: @code{'info})"
 msgstr "@code{log-level} (par défaut : @code{'info})"
 
 #. type: table
-#: doc/guix.texi:12525
+#: doc/guix.texi:13226
 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:13227 doc/guix.texi:18808
+#, no-wrap
+msgid "@code{extra-content} (default: @code{\"\"})"
+msgstr "@code{extra-content} (par défaut : @code{\"\"})"
+
+#. type: table
+#: doc/guix.texi:13232
+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:13238
+#, no-wrap
+msgid ""
+"(openssh-configuration\n"
+"  (extra-content \"\\\n"
+"Match Address 192.168.0.1\n"
+"  PermitRootLogin yes\"))\n"
+msgstr ""
+"(openssh-configuration\n"
+"  (extra-content \"\\\n"
+"Match Address 192.168.0.1\n"
+"  PermitRootLogin yes\"))\n"
+
 #. type: deffn
-#: doc/guix.texi:12529
+#: doc/guix.texi:13243
 #, no-wrap
 msgid "{Scheme Procedure} dropbear-service [@var{config}]"
 msgstr "{Procédure Scheme} dropbear-service [@var{config}]"
 
 #. type: deffn
-#: doc/guix.texi:12533
+#: doc/guix.texi:13247
 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:12536
+#: doc/guix.texi:13250
 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:12540
+#: doc/guix.texi:13254
 #, no-wrap
 msgid ""
 "(dropbear-service (dropbear-configuration\n"
@@ -22743,109 +24467,99 @@ msgstr ""
 "                    (port-number 1234)))\n"
 
 #. type: deftp
-#: doc/guix.texi:12543
+#: doc/guix.texi:13257
 #, no-wrap
 msgid "{Data Type} dropbear-configuration"
 msgstr "{Type de données} dropbear-configuration"
 
 #. type: deftp
-#: doc/guix.texi:12545
+#: doc/guix.texi:13259
 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:12547
+#: doc/guix.texi:13261
 #, no-wrap
 msgid "@code{dropbear} (default: @var{dropbear})"
 msgstr "@code{dropbear} (par défaut : @var{dropbear})"
 
 #. type: table
-#: doc/guix.texi:12549
+#: doc/guix.texi:13263
 msgid "The Dropbear package to use."
 msgstr "Le paquet Dropbear à utiliser."
 
 #. type: item
-#: doc/guix.texi:12550
+#: doc/guix.texi:13264
 #, no-wrap
 msgid "@code{port-number} (default: 22)"
 msgstr "@code{port-number} (par défaut : 22)"
 
 #. type: table
-#: doc/guix.texi:12552
+#: doc/guix.texi:13266
 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:12553
+#: doc/guix.texi:13267
 #, no-wrap
 msgid "@code{syslog-output?} (default: @code{#t})"
 msgstr "@code{syslog-output?} (par défaut : @code{#t})"
 
 #. type: table
-#: doc/guix.texi:12555
+#: doc/guix.texi:13269
 msgid "Whether to enable syslog output."
 msgstr "Indique s'il faut activer la sortie vers syslog."
 
 #. type: item
-#: doc/guix.texi:12556
+#: doc/guix.texi:13270
 #, 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:12558
+#: doc/guix.texi:13272
 msgid "File name of the daemon's PID file."
 msgstr "Nom du fichier de PID du démon."
 
 #. type: item
-#: doc/guix.texi:12559
+#: doc/guix.texi:13273
 #, no-wrap
 msgid "@code{root-login?} (default: @code{#f})"
 msgstr "@code{root-login?} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:12561
+#: doc/guix.texi:13275
 msgid "Whether to allow @code{root} logins."
 msgstr "Indique s'il faut autoriser les connexions en @code{root}."
 
 #. type: table
-#: doc/guix.texi:12564
+#: doc/guix.texi:13278
 msgid "Whether to allow empty passwords."
 msgstr "Indique s'il faut autoriser les mots de passes vides."
 
 #. type: table
-#: doc/guix.texi:12567
+#: doc/guix.texi:13281
 msgid "Whether to enable password-based authentication."
 msgstr "Indique s'il faut autoriser l'authentification par mot de passe."
 
 #. type: defvr
-#: doc/guix.texi:12570
+#: doc/guix.texi:13284
 #, no-wrap
 msgid "{Scheme Variable} %facebook-host-aliases"
 msgstr "{Variable Scheme} %facebook-host-aliases"
 
 #. type: defvr
-#: doc/guix.texi:12576
+#: doc/guix.texi:13290
 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:12580
+#: doc/guix.texi:13294
 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:12583
-#, no-wrap
-msgid ""
-"(use-modules (gnu) (guix))\n"
-"\n"
-msgstr ""
-"(use-modules (gnu) (guix))\n"
-"\n"
-
-#. type: example
-#: doc/guix.texi:12593
+#: doc/guix.texi:13307
 #, no-wrap
 msgid ""
 "(operating-system\n"
@@ -22869,636 +24583,789 @@ msgstr ""
 "                               %facebook-host-aliases))))\n"
 
 #. type: defvr
-#: doc/guix.texi:12597
+#: doc/guix.texi:13311
 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:12600
+#: doc/guix.texi:13314
 msgid "The @code{(gnu services avahi)} provides the following definition."
 msgstr "Le module @code{(gnu services avahi)} fourni la définition suivante."
 
-#. type: deffn
-#: doc/guix.texi:12601
+#. type: defvr
+#: doc/guix.texi:13315
 #, no-wrap
-msgid "{Scheme Procedure} avahi-service [#:avahi @var{avahi}] @"
-msgstr "{Procédure Scheme} avahi-service [#:avahi @var{avahi}] @"
+msgid "{Scheme Variable} avahi-service-type"
+msgstr "{Variable Scheme} avahi-service-type"
 
-#. type: deffn
-#: doc/guix.texi:12613
-msgid "[#:host-name #f] [#:publish? #t] [#:ipv4? #t] @ [#:ipv6? #t] [#:wide-area? #f] @ [#:domains-to-browse '()] [#:debug? #f] Return a 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{http://avahi.org/}), and 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}.  Additionally, add the @var{avahi} package to the system profile so that commands such as @command{avahi-browse} are directly usable."
-msgstr ""
-"[#:host-name #f] [#:publish? #t] [#:ipv4? #t] @\n"
-"[#:ipv6? #t] [#:wide-area? #f] @\n"
-"[#:domains-to-browse '()] [#:debug? #f]\n"
-"Renvoie un service qui lance @command{avahi-daemon}, un serveur qui répond aux requêtes mDNS/DNS-SD qui permet de découvrir des services et de chercher des noms d'hôtes « sans configuration » (voir @uref{http://avahi.org/}) et qui étend le démon de cache de services de noms (nscd) pour qu'il puisse résoudre des noms en @code{.local} avec @uref{http://0pointer.de/lennart/projects/nss-mdns/, nss-mdns}.  En plus, ajoute le paquet @var{avahi} au profil du système pour que les commandes comme @command{avahi-browse} soient directement utilisables."
+#. type: defvr
+#: doc/guix.texi:13320
+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{http://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{http://avahi.org/}).  Sa valeur doit être un enregistrement @code{zero-configuration} — voir plus bas."
 
-#. type: deffn
-#: doc/guix.texi:12616
-msgid "If @var{host-name} is 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 @var{host-name} 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: defvr
+#: doc/guix.texi:13325
+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."
 
-#. type: deffn
-#: doc/guix.texi:12620
-msgid "When @var{publish?} is true, publishing of host names and services is allowed; in particular, avahi-daemon will publish the machine's host name and IP address via mDNS on the local network."
-msgstr "Lorsque la valeur de @var{publish?} est vraie, la publication des noms d'hôtes et des domaines sont autorisés ; en particulier, avahi-daemon publiera le nom d'hôte et l'adresse IP de la machine via mDNS sur le réseau local."
+#. type: defvr
+#: doc/guix.texi:13328
+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: deffn
-#: doc/guix.texi:12622
-msgid "When @var{wide-area?} is true, DNS-SD over unicast DNS is enabled."
-msgstr "Lorsque la valeur de @var{wide-area?} est vraie, DNS-SD sur DNS unicast est activé."
+#. type: deftp
+#: doc/guix.texi:13330
+#, no-wrap
+msgid "{Data Type} avahi-configuration"
+msgstr "{Type de données} avahi-configuration"
 
-#. type: deffn
-#: doc/guix.texi:12625
-msgid "Boolean values @var{ipv4?} and @var{ipv6?} determine whether to use IPv4/IPv6 sockets."
-msgstr "Les valeurs booléennes @var{ipv4?} et @var{ipv6?} déterminent s'il faut utiliser un socket IPv4 ou IPv6 respectivement."
+#. type: deftp
+#: doc/guix.texi:13332
+msgid "Data type representation the configuration for Avahi."
+msgstr "Type de données représentant la configuration d'Avahi."
+
+#. type: item
+#: doc/guix.texi:13335
+#, no-wrap
+msgid "@code{host-name} (default: @code{#f})"
+msgstr "@code{host-name} (par défaut : @code{#f})"
+
+#. type: table
+#: doc/guix.texi:13338
+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:13339
+#, no-wrap
+msgid "@code{publish?} (default: @code{#t})"
+msgstr "@code{publish?} (par défaut : @code{#t})"
+
+#. type: table
+#: doc/guix.texi:13342
+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:13343
+#, no-wrap
+msgid "@code{publish-workstation?} (default: @code{#t})"
+msgstr "@code{publish-workstation?} (par défaut : @code{#t})"
+
+#. type: table
+#: doc/guix.texi:13347
+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:13350
+#, no-wrap
+msgid "avahi-browse _workstation._tcp\n"
+msgstr "avahi-browse _workstation._tcp\n"
+
+#. type: item
+#: doc/guix.texi:13352
+#, no-wrap
+msgid "@code{wide-area?} (default: @code{#f})"
+msgstr "@code{wide-area?} (par défaut : @code{#f})"
+
+#. type: table
+#: doc/guix.texi:13354
+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:13355
+#, no-wrap
+msgid "@code{ipv4?} (default: @code{#t})"
+msgstr "@code{ipv4?} (par défaut : @code{#t})"
+
+#. type: itemx
+#: doc/guix.texi:13356
+#, no-wrap
+msgid "@code{ipv6?} (default: @code{#t})"
+msgstr "@code{ipv6?} (par défaut : @code{#t})"
+
+#. type: table
+#: doc/guix.texi:13358
+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:13359
+#, no-wrap
+msgid "@code{domains-to-browse} (default: @code{'()})"
+msgstr "@code{domains-to-browse} (par défaut : @code{'()})"
+
+#. type: table
+#: doc/guix.texi:13361
+msgid "This is a list of domains to browse."
+msgstr "C'est la liste des domaines sur lesquels naviguer."
 
 #. type: deffn
-#: doc/guix.texi:12627
+#: doc/guix.texi:13364
 #, no-wrap
 msgid "{Scheme Variable} openvswitch-service-type"
 msgstr "{Variable Scheme} openvswitch-service-type"
 
 #. type: deffn
-#: doc/guix.texi:12631
+#: doc/guix.texi:13368
 msgid "This is the type of the @uref{http://www.openvswitch.org, Open vSwitch} service, whose value should be an @code{openvswitch-configuration} object."
 msgstr "C'est le type du service @uref{http://www.openvswitch.org, Open vSwitch}, dont la valeur devrait être un objet @code{openvswitch-configuration}."
 
 #. type: deftp
-#: doc/guix.texi:12633
+#: doc/guix.texi:13370
 #, no-wrap
 msgid "{Data Type} openvswitch-configuration"
 msgstr "{Type de données} openvswitch-configuration"
 
 #. type: deftp
-#: doc/guix.texi:12637
+#: doc/guix.texi:13374
 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:12639
+#: doc/guix.texi:13376
 #, no-wrap
 msgid "@code{package} (default: @var{openvswitch})"
 msgstr "@code{package} (par défaut : @var{openvswitch})"
 
 #. type: table
-#: doc/guix.texi:12641
+#: doc/guix.texi:13378
 msgid "Package object of the Open vSwitch."
 msgstr "Objet de paquet de Open vSwitch."
 
 #. type: cindex
-#: doc/guix.texi:12648
+#: doc/guix.texi:13385
 #, no-wrap
 msgid "X11"
 msgstr "X11"
 
 #. type: cindex
-#: doc/guix.texi:12649
+#: doc/guix.texi:13386
 #, no-wrap
 msgid "X Window System"
 msgstr "Système de fenêtrage X"
 
 #. type: cindex
-#: doc/guix.texi:12650 doc/guix.texi:12827
+#: doc/guix.texi:13387 doc/guix.texi:13603
 #, no-wrap
 msgid "login manager"
 msgstr "gestionnaire de connexion"
 
 #. type: Plain text
-#: doc/guix.texi:12655
-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 SLiM."
-msgstr "Le support pour le 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 SLiM."
+#: doc/guix.texi:13392
+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:13393
+#, no-wrap
+msgid "GDM"
+msgstr "GDM"
+
+#. type: cindex
+#: doc/guix.texi:13394
+#, no-wrap
+msgid "GNOME, login manager"
+msgstr "GNOME, gestionnaire de connexion"
+
+#. type: Plain text
+#: doc/guix.texi:13398
+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:12656
+#: doc/guix.texi:13399
 #, no-wrap
 msgid "window manager"
 msgstr "gestionnaire de fenêtre"
 
 #. type: Plain text
-#: doc/guix.texi:12661
+#: doc/guix.texi:13404
 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:12662
+#: doc/guix.texi:13405
 #, no-wrap
-msgid "{Scheme Variable} slim-service-type"
-msgstr "{Variable Scheme} slim-service-type"
+msgid "{Scheme Variable} gdm-service-type"
+msgstr "{Variable Scheme} gdm-service-type"
 
 #. type: defvr
-#: doc/guix.texi:12664
-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."
+#: doc/guix.texi:13410
+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)."
 
 #. type: cindex
-#: doc/guix.texi:12665
+#: doc/guix.texi:13411
 #, no-wrap
 msgid "session types (X11)"
 msgstr "types de sessions (X11)"
 
 #. type: cindex
-#: doc/guix.texi:12666
+#: doc/guix.texi:13412
 #, no-wrap
 msgid "X11 session types"
 msgstr "X11, types de sessions"
 
 #. type: defvr
-#: doc/guix.texi:12673
-msgid "SLiM 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 using @kbd{F1}.  Packages such as @code{xfce}, @code{sawfish}, and @code{ratpoison} provide @file{.desktop} files; adding them to the system-wide set of packages automatically makes them available at the log-in screen."
-msgstr "SLiM 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 avec @kbd{F1}.  Les paquets comme @code{xfce}, @code{sawfish} et @code{ratpoison} fournissent des fichiers @file{.desktop} ; les ajouter à l'ensemble des paquets du système les rendra automatiquement disponibles sur l'écran de connexion."
+#: doc/guix.texi:13418
+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:12677
+#: doc/guix.texi:13422
 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:12679
+#: doc/guix.texi:13424
+#, no-wrap
+msgid "{Data Type} gdm-configuration"
+msgstr "{Type de données} gdm-configuration"
+
+#. type: item
+#: doc/guix.texi:13426 doc/guix.texi:13465
+#, no-wrap
+msgid "@code{auto-login?} (default: @code{#f})"
+msgstr "@code{auto-login?} (par défaut : @code{#f})"
+
+#. type: itemx
+#: doc/guix.texi:13427
+#, no-wrap
+msgid "@code{default-user} (default: @code{#f})"
+msgstr "@code{default-user} (par défaut : @code{#f})"
+
+#. type: table
+#: doc/guix.texi:13429
+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:13432
+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:13433
+#, no-wrap
+msgid "@code{gnome-shell-assets} (default: ...)"
+msgstr "@code{gnome-shell-assets} (par défaut : …)"
+
+#. type: table
+#: doc/guix.texi:13435
+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:13436
+#, 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:13438 doc/guix.texi:13492 doc/guix.texi:13569
+msgid "Configuration of the Xorg graphical server."
+msgstr "Configuration du serveur graphique Xorg."
+
+#. type: item
+#: doc/guix.texi:13439
+#, no-wrap
+msgid "@code{xsession} (default: @code{(xinitrc)})"
+msgstr "@code{xsession} (par défaut : @code{xinitrc})"
+
+#. type: table
+#: doc/guix.texi:13441 doc/guix.texi:13584
+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:13442
+#, 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:13444
+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:13445
+#, no-wrap
+msgid "@code{gdm} (default: @code{gdm})"
+msgstr "@code{gdm} (par défaut : @code{gdm})"
+
+#. type: table
+#: doc/guix.texi:13447
+msgid "The GDM package to use."
+msgstr "Le paquet GDM à utiliser."
+
+#. type: defvr
+#: doc/guix.texi:13450
+#, no-wrap
+msgid "{Scheme Variable} slim-service-type"
+msgstr "{Variable Scheme} slim-service-type"
+
+#. type: defvr
+#: doc/guix.texi:13452
+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:13456
+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: deftp
+#: doc/guix.texi:13458
 #, no-wrap
 msgid "{Data Type} slim-configuration"
 msgstr "{Type de données} slim-configuration"
 
 #. type: deftp
-#: doc/guix.texi:12681
+#: doc/guix.texi:13460
 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:12685
+#: doc/guix.texi:13464
 msgid "Whether to allow logins with empty passwords."
 msgstr "S'il faut autoriser les connexions avec un mot de passe vide."
 
-#. type: item
-#: doc/guix.texi:12686
-#, no-wrap
-msgid "@code{auto-login?} (default: @code{#f})"
-msgstr "@code{auto-login?} (par défaut : @code{#f})"
-
 #. type: itemx
-#: doc/guix.texi:12687
+#: doc/guix.texi:13466
 #, no-wrap
 msgid "@code{default-user} (default: @code{\"\"})"
 msgstr "@code{default-user} (par défaut : @code{\"\"})"
 
 #. type: table
-#: doc/guix.texi:12689
+#: doc/guix.texi:13468
 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:12692
+#: doc/guix.texi:13471
 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:12693
+#: doc/guix.texi:13472
 #, 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:12694
+#: doc/guix.texi:13473
 #, 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:12696
+#: doc/guix.texi:13475
 msgid "The graphical theme to use and its name."
 msgstr "Le thème graphique à utiliser et son nom."
 
 #. type: item
-#: doc/guix.texi:12697
+#: doc/guix.texi:13476
 #, 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:12700
+#: doc/guix.texi:13479
 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:12704
+#: doc/guix.texi:13483
 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:12709
+#: doc/guix.texi:13488
 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:12711
+#: doc/guix.texi:13490 doc/guix.texi:13567
 #, no-wrap
-msgid "@code{startx} (default: @code{(xorg-start-command)})"
-msgstr "@code{startx} (par défaut : @code{(xorg-start-command)})"
-
-#. type: table
-#: doc/guix.texi:12713
-msgid "The command used to start the X11 graphical server."
-msgstr "La commande utilisée pour démarrer le serveur graphique X11."
+msgid "@code{xorg-configuration} (default @code{(xorg-configuration)})"
+msgstr "@code{xorg-configuration} (par défaut : @code{(xorg-configuration)})"
 
 #. type: item
-#: doc/guix.texi:12714
+#: doc/guix.texi:13493
 #, no-wrap
 msgid "@code{xauth} (default: @code{xauth})"
 msgstr "@code{xauth} (par défaut : @code{xauth})"
 
 #. type: table
-#: doc/guix.texi:12716
+#: doc/guix.texi:13495
 msgid "The XAuth package to use."
 msgstr "Le paquet XAuth à utiliser."
 
 #. type: item
-#: doc/guix.texi:12717
+#: doc/guix.texi:13496
 #, no-wrap
 msgid "@code{shepherd} (default: @code{shepherd})"
 msgstr "@code{shepherd} (par défaut : @code{shepherd})"
 
 #. type: table
-#: doc/guix.texi:12720
+#: doc/guix.texi:13499
 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:12721
+#: doc/guix.texi:13500
 #, no-wrap
 msgid "@code{sessreg} (default: @code{sessreg})"
 msgstr "@code{sessreg} (par défaut : @code{sessreg})"
 
 #. type: table
-#: doc/guix.texi:12723
+#: doc/guix.texi:13502
 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:12724
+#: doc/guix.texi:13503
 #, no-wrap
 msgid "@code{slim} (default: @code{slim})"
 msgstr "@code{slim} (par défaut : @code{slim})"
 
 #. type: table
-#: doc/guix.texi:12726
+#: doc/guix.texi:13505
 msgid "The SLiM package to use."
 msgstr "Le paquet SLiM à utiliser."
 
 #. type: defvr
-#: doc/guix.texi:12729 doc/guix.texi:22230
+#: doc/guix.texi:13508 doc/guix.texi:24077
 #, no-wrap
 msgid "{Scheme Variable} %default-theme"
 msgstr "{Variable Scheme} %default-theme"
 
 #. type: defvrx
-#: doc/guix.texi:12730
+#: doc/guix.texi:13509
 #, no-wrap
 msgid "{Scheme Variable} %default-theme-name"
 msgstr "{Variable Scheme} %default-theme-name"
 
 #. type: defvr
-#: doc/guix.texi:12732
+#: doc/guix.texi:13511
 msgid "The default SLiM theme and its name."
 msgstr "Le thème SLiM par défaut et son nom."
 
 #. type: deftp
-#: doc/guix.texi:12735
+#: doc/guix.texi:13514
 #, no-wrap
 msgid "{Data Type} sddm-configuration"
 msgstr "{Type de données} sddm-configuration"
 
 #. type: deftp
-#: doc/guix.texi:12737
+#: doc/guix.texi:13516
 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:12739
+#: doc/guix.texi:13518
 #, no-wrap
 msgid "@code{display-server} (default: \"x11\")"
 msgstr "@code{display-server} (par défaut : \"x11\")"
 
 #. type: table
-#: doc/guix.texi:12742
+#: doc/guix.texi:13521
 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 »."
 
 #. type: item
-#: doc/guix.texi:12743
+#: doc/guix.texi:13522
 #, no-wrap
 msgid "@code{numlock} (default: \"on\")"
 msgstr "@code{numlock} (par défaut : \"on\")"
 
 #. type: table
-#: doc/guix.texi:12745
+#: doc/guix.texi:13524
 msgid "Valid values are \"on\", \"off\" or \"none\"."
 msgstr "Les valeurs valides sont « on », « off » ou « none »."
 
 #. type: item
-#: doc/guix.texi:12746
+#: doc/guix.texi:13525
 #, 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:12748
+#: doc/guix.texi:13527
 msgid "Command to run when halting."
 msgstr "La commande à lancer à l'arrêt du système."
 
 #. type: item
-#: doc/guix.texi:12749
+#: doc/guix.texi:13528
 #, 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:12751
+#: doc/guix.texi:13530
 msgid "Command to run when rebooting."
 msgstr "La commande à lancer lors du redémarrage du système."
 
 #. type: item
-#: doc/guix.texi:12752
+#: doc/guix.texi:13531
 #, no-wrap
 msgid "@code{theme} (default \"maldives\")"
 msgstr "@code{theme} (par défaut : \"maldives\")"
 
 #. type: table
-#: doc/guix.texi:12754
+#: doc/guix.texi:13533
 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 »."
 
 #. type: item
-#: doc/guix.texi:12755
+#: doc/guix.texi:13534
 #, 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:12757
+#: doc/guix.texi:13536
 msgid "Directory to look for themes."
 msgstr "Le répertoire où se trouvent les thèmes."
 
 #. type: item
-#: doc/guix.texi:12758
+#: doc/guix.texi:13537
 #, 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:12760
+#: doc/guix.texi:13539
 msgid "Directory to look for faces."
 msgstr "Répertoire où se trouvent les avatars."
 
 #. type: item
-#: doc/guix.texi:12761
+#: doc/guix.texi:13540
 #, 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:12763
+#: doc/guix.texi:13542
 msgid "Default PATH to use."
 msgstr "Le PATH par défaut à utiliser."
 
 #. type: item
-#: doc/guix.texi:12764
+#: doc/guix.texi:13543
 #, no-wrap
 msgid "@code{minimum-uid} (default 1000)"
 msgstr "@code{minimum-uid} (par défaut : 1000)"
 
 #. type: table
-#: doc/guix.texi:12766
+#: doc/guix.texi:13545
 msgid "Minimum UID to display in SDDM."
 msgstr "UID minimum pour être affiché dans SDDM."
 
 #. type: item
-#: doc/guix.texi:12767
+#: doc/guix.texi:13546
 #, no-wrap
 msgid "@code{maximum-uid} (default 2000)"
 msgstr "@code{maximum-uid} (par défaut : 2000)"
 
 #. type: table
-#: doc/guix.texi:12769
+#: doc/guix.texi:13548
 msgid "Maximum UID to display in SDDM"
-msgstr "UID maximum pour être affiché dans SDDM."
+msgstr "UID maximum pour être affiché dans SDDM"
 
 #. type: item
-#: doc/guix.texi:12770
+#: doc/guix.texi:13549
 #, no-wrap
 msgid "@code{remember-last-user?} (default #t)"
 msgstr "@code{remember-last-user?} (par défaut : #t)"
 
 #. type: table
-#: doc/guix.texi:12772
+#: doc/guix.texi:13551
 msgid "Remember last user."
 msgstr "S'il faut se rappeler le dernier utilisateur connecté."
 
 #. type: item
-#: doc/guix.texi:12773
+#: doc/guix.texi:13552
 #, no-wrap
 msgid "@code{remember-last-session?} (default #t)"
 msgstr "@code{remember-last-session?} (par défaut : #t)"
 
 #. type: table
-#: doc/guix.texi:12775
+#: doc/guix.texi:13554
 msgid "Remember last session."
 msgstr "S'il faut se rappeler la dernière session."
 
 #. type: item
-#: doc/guix.texi:12776
+#: doc/guix.texi:13555
 #, no-wrap
 msgid "@code{hide-users} (default \"\")"
 msgstr "@code{hide-users} (par défaut : \"\")"
 
 #. type: table
-#: doc/guix.texi:12778
+#: doc/guix.texi:13557
 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:12779
+#: doc/guix.texi:13558
 #, 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:12781
+#: doc/guix.texi:13560
 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:12782
+#: doc/guix.texi:13561
 #, 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:12784
+#: doc/guix.texi:13563
 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:12785
+#: doc/guix.texi:13564
 #, 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:12787
+#: doc/guix.texi:13566
 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:12788
-#, no-wrap
-msgid "@code{xorg-server-path} (default @code{xorg-start-command})"
-msgstr "@code{xorg-server-path} (par défaut : @code{xorg-start-command})"
-
-#. type: table
-#: doc/guix.texi:12790
-msgid "Path to xorg-server."
-msgstr "Chemin vers xorg-server."
-
-#. type: item
-#: doc/guix.texi:12791
+#: doc/guix.texi:13570
 #, 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:12793
+#: doc/guix.texi:13572
 msgid "Path to xauth."
 msgstr "Chemin vers xauth."
 
 #. type: item
-#: doc/guix.texi:12794
+#: doc/guix.texi:13573
 #, 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:12796
+#: doc/guix.texi:13575
 msgid "Path to Xephyr."
 msgstr "Chemin vers Xephyr."
 
 #. type: item
-#: doc/guix.texi:12797
+#: doc/guix.texi:13576
 #, 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:12799
+#: doc/guix.texi:13578
 msgid "Script to run after starting xorg-server."
 msgstr "Le script à lancer après avoir démarré xorg-server."
 
 #. type: item
-#: doc/guix.texi:12800
+#: doc/guix.texi:13579
 #, 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:12802
+#: doc/guix.texi:13581
 msgid "Script to run before stopping xorg-server."
 msgstr "Le script à lancer avant d'arrêter xorg-server."
 
 #. type: item
-#: doc/guix.texi:12803
+#: doc/guix.texi:13582
 #, no-wrap
 msgid "@code{xsession-command} (default: @code{xinitrc})"
 msgstr "@code{xsession-command} (par défaut : @code{xinitrc})"
 
-#. type: table
-#: doc/guix.texi:12805
-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:12806
+#: doc/guix.texi:13585
 #, 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:12808
+#: doc/guix.texi:13587
 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:12809
+#: doc/guix.texi:13588
 #, no-wrap
 msgid "@code{minimum-vt} (default: 7)"
 msgstr "@code{minimum-vt} (par défaut : 7)"
 
 #. type: table
-#: doc/guix.texi:12811
+#: doc/guix.texi:13590
 msgid "Minimum VT to use."
 msgstr "VT minimal à utiliser."
 
 #. type: item
-#: doc/guix.texi:12812
-#, no-wrap
-msgid "@code{xserver-arguments} (default \"-nolisten tcp\")"
-msgstr "@code{xserver-arguments} (par défaut : \"-nolisten tcp\")"
-
-#. type: table
-#: doc/guix.texi:12814
-msgid "Arguments to pass to xorg-server."
-msgstr "Arguments à passer à xorg-server."
-
-#. type: item
-#: doc/guix.texi:12815
+#: doc/guix.texi:13591
 #, no-wrap
 msgid "@code{auto-login-user} (default \"\")"
 msgstr "@code{auto-login-user} (par défaut : \"\")"
 
 #. type: table
-#: doc/guix.texi:12817
+#: doc/guix.texi:13593
 msgid "User to use for auto-login."
 msgstr "Utilisateur à utiliser pour la connexion automatique."
 
 #. type: item
-#: doc/guix.texi:12818
+#: doc/guix.texi:13594
 #, no-wrap
 msgid "@code{auto-login-session} (default \"\")"
 msgstr "@code{auto-login-session} (par défaut : \"\")"
 
 #. type: table
-#: doc/guix.texi:12820
+#: doc/guix.texi:13596
 msgid "Desktop file to use for auto-login."
 msgstr "Le fichier desktop à utiliser pour la connexion automatique."
 
 #. type: item
-#: doc/guix.texi:12821
+#: doc/guix.texi:13597
 #, no-wrap
 msgid "@code{relogin?} (default #f)"
 msgstr "@code{relogin?} (par défaut : #f)"
 
 #. type: table
-#: doc/guix.texi:12823
+#: doc/guix.texi:13599
 msgid "Relogin after logout."
 msgstr "S'il faut se reconnecter après la déconnexion."
 
 #. type: cindex
-#: doc/guix.texi:12828
+#: doc/guix.texi:13604
 #, no-wrap
 msgid "X11 login"
 msgstr "connexion X11"
 
 #. type: deffn
-#: doc/guix.texi:12829
+#: doc/guix.texi:13605
 #, no-wrap
 msgid "{Scheme Procedure} sddm-service config"
 msgstr "{Procédure Scheme} sddm-service config"
 
 #. type: deffn
-#: doc/guix.texi:12832
+#: doc/guix.texi:13608
 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: example
-#: doc/guix.texi:12837
+#: doc/guix.texi:13613
 #, no-wrap
 msgid ""
 "  (sddm-service (sddm-configuration\n"
@@ -23509,188 +25376,218 @@ msgstr ""
 "                 (auto-login-user \"Alice\")\n"
 "                 (auto-login-session \"xfce.desktop\")))\n"
 
-#. type: deffn
-#: doc/guix.texi:12840
+#. type: cindex
+#: doc/guix.texi:13616
 #, no-wrap
-msgid "{Scheme Procedure} xorg-start-command [#:guile] @"
-msgstr "{Procédure Scheme} xorg-start-command [#:guile] @"
+msgid "Xorg, configuration"
+msgstr "Xorg, configuration"
 
-#. type: deffn
-#: doc/guix.texi:12849
-msgid "[#:modules %default-xorg-modules] @ [#:fonts %default-xorg-fonts] @ [#:configuration-file (xorg-configuration-file @dots{})] @ [#:xorg-server @var{xorg-server}] Return a @code{startx} script in which @var{modules}, a list of X module packages, and @var{fonts}, a list of X font directories, are available.  See @code{xorg-wrapper} for more details on the arguments.  The result should be used in place of @code{startx}."
-msgstr ""
-"[#:modules %default-xorg-modules] @\n"
-"[#:fonts %default-xorg-fonts] @\n"
-"[#:configuration-file (xorg-configuration-file @dots{})] @\n"
-"[#:xorg-server @var{xorg-server}]\n"
-"Renvoie un script @code{startx} dans lequel @var{modules}, une liste de paquets de modules X et @var{fonts}, une liste de répertoires de polices X, sont disponibles.  Voir @code{xorg-wrapper} pour plus de détails sur les arguments.  Le résultat devrait être utilisé à la place de @code{startx}."
+#. type: deftp
+#: doc/guix.texi:13617
+#, no-wrap
+msgid "{Data Type} xorg-configuration"
+msgstr "{Type de données} xorg-configuration"
 
-#. type: deffn
-#: doc/guix.texi:12851
-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: deftp
+#: doc/guix.texi:13622
+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}."
 
-#. type: deffn
-#: doc/guix.texi:12853
+#. type: item
+#: doc/guix.texi:13624
 #, no-wrap
-msgid "{Scheme Procedure} xorg-configuration-file @"
-msgstr "{Procédure Scheme} xorg-configuration-file @"
+msgid "@code{modules} (default: @code{%default-xorg-modules})"
+msgstr "@code{modules} (par défaut : @code{%default-xorg-modules})"
 
-#. type: deffn
-#: doc/guix.texi:12859
-msgid "[#:modules %default-xorg-modules] @ [#:fonts %default-xorg-fonts] @ [#:drivers '()] [#:resolutions '()] [#:extra-config '()] Return a configuration file for the Xorg server containing search paths for all the common drivers."
-msgstr ""
-"[#:modules %default-xorg-modules] @\n"
-"[#:fonts %default-xorg-fonts] @\n"
-"[#:drivers '()] [#:resolutions '()] [#:extra-config '()]\n"
-"Renvoie un fichier de configuration pour le serveur Xorg qui contient des chemins de recherche pour tous les pilotes communs."
+#. type: table
+#: doc/guix.texi:13627
+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: deffn
-#: doc/guix.texi:12864
-msgid "@var{modules} must be a list of @dfn{module packages} loaded by the Xorg server---e.g., @code{xf86-video-vesa}, @code{xf86-input-keyboard}, and so on.  @var{fonts} must be a list of font directories to add to the server's @dfn{font path}."
-msgstr "@var{modules} doit être une liste de @dfn{paquets de modules} chargés par le serveur Xorg — p.@: ex.@: @code{xf86-video-vesa}, @code{xf86-input-keyboard} etc.  @var{fonts} doit être une liste de répertoires de polices à ajouter au @dfn{chemin de polices} du serveur."
+#. type: item
+#: doc/guix.texi:13628
+#, no-wrap
+msgid "@code{fonts} (default: @code{%default-xorg-fonts})"
+msgstr "@code{fonts} (par défaut : @code{%default-xorg-fonts})"
 
-#. type: deffn
-#: doc/guix.texi:12868
-msgid "@var{drivers} 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 "@var{drivers} doit être soit la liste vide, auquel cas Xorg choisis un pilote graphique automatiquement, soit une liste de noms de pilotes qui seront essayés dans cet ordre — p.@: ex.@: @code{(\"modesetting\" \"vesa\")}."
+#. type: table
+#: doc/guix.texi:13630
+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:13631
+#, no-wrap
+msgid "@code{drivers} (default: @code{'()})"
+msgstr "@code{drivers} (par défaut : @code{'()})"
+
+#. type: table
+#: doc/guix.texi:13635
+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:13636
+#, no-wrap
+msgid "@code{resolutions} (default: @code{'()})"
+msgstr "@code{resolutions} (par défaut : @code{'()})"
+
+#. type: table
+#: doc/guix.texi:13640
+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:13641
+#, no-wrap
+msgid "keyboard layout, for Xorg"
+msgstr "disposition du clavier, pour Xorg"
+
+#. type: cindex
+#: doc/guix.texi:13642
+#, no-wrap
+msgid "keymap, for Xorg"
+msgstr "disposition des touches, Xorg"
+
+#. type: table
+#: doc/guix.texi:13646
+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:13650
+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:13651
+#, no-wrap
+msgid "@code{extra-config} (default: @code{'()})"
+msgstr "@code{extra-config} (par défaut : @code{'()})"
+
+#. type: table
+#: doc/guix.texi:13654
+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:13655
+#, no-wrap
+msgid "@code{server} (default: @code{xorg-server})"
+msgstr "@code{server} (par défaut : @code{xorg-server})"
+
+#. type: table
+#: doc/guix.texi:13657
+msgid "This is the package providing the Xorg server."
+msgstr "C'est le paquet fournissant le serveur Xorg."
+
+#. type: item
+#: doc/guix.texi:13658
+#, 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:13661
+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:12872
-msgid "Likewise, when @var{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 "De même, lorsque @var{resolutions} est la liste vide, Xorg choisis une résolution d'écran appropriée ; autrement, ce doit être une liste de résolutions — p.@: ex.@: @code{((1024 768) (640 480))}."
+#: doc/guix.texi:13664
+#, no-wrap
+msgid "{Scheme Procedure} set-xorg-configuration @var{config} @"
+msgstr "{Procédure Scheme} set-xorg-configuration @var{config} @"
 
 #. type: deffn
-#: doc/guix.texi:12876
-msgid "Last, @var{extra-config} 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 "Enfin, @var{extra-config} est une liste de chaînes de caractères ou d'objets ajoutés au fichier de configuration.  Elle est utilisée pour passer du texte supplémentaire à être ajouté directement au fichier de configuration."
+#: doc/guix.texi:13668
+msgid "[@var{login-manager-service-type}] Tell the log-in manager (of type @var{login-manager-service-type}) to use @var{config}, an <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 <xorg-configuration>."
 
 #. type: deffn
-#: doc/guix.texi:12882
-msgid "This procedure is especially useful to configure a different keyboard layout than the default US keymap.  For instance, to use the ``bépo'' keymap by default on the display manager:"
-msgstr "Cette procédure est particulièrement utile pour configurer une disposition de clavier différente de la disposition US par défaut.  Par exemple, pour utiliser la disposition « bépo » par défaut sur le gestionnaire d'affichage :"
+#: doc/guix.texi:13672
+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: example
-#: doc/guix.texi:12892
+#. type: deffn
+#: doc/guix.texi:13674
 #, no-wrap
-msgid ""
-"(define bepo-evdev\n"
-"  \"Section \\\"InputClass\\\"\n"
-"        Identifier \\\"evdev keyboard catchall\\\"\n"
-"        Driver \\\"evdev\\\"\n"
-"        MatchIsKeyboard \\\"on\\\"\n"
-"        Option \\\"xkb_layout\\\" \\\"fr\\\"\n"
-"        Option \\\"xkb_variant\\\" \\\"bepo\\\"\n"
-"EndSection\")\n"
-"\n"
-msgstr ""
-"(define bepo-evdev\n"
-"  \"Section \\\"InputClass\\\"\n"
-"        Identifier \\\"evdev keyboard catchall\\\"\n"
-"        Driver \\\"evdev\\\"\n"
-"        MatchIsKeyboard \\\"on\\\"\n"
-"        Option \\\"xkb_layout\\\" \\\"fr\\\"\n"
-"        Option \\\"xkb_variant\\\" \\\"bepo\\\"\n"
-"EndSection\")\n"
-"\n"
+msgid "{Scheme Procedure} xorg-start-command [@var{config}]"
+msgstr "{Procédure Scheme} xorg-start-command [@var{config}]"
 
-#. type: example
-#: doc/guix.texi:12905
-#, no-wrap
-msgid ""
-"(operating-system\n"
-"  ...\n"
-"  (services\n"
-"    (modify-services %desktop-services\n"
-"      (slim-service-type config =>\n"
-"        (slim-configuration\n"
-"          (inherit config)\n"
-"          (startx (xorg-start-command\n"
-"                   #:configuration-file\n"
-"                   (xorg-configuration-file\n"
-"                     #:extra-config\n"
-"                     (list bepo-evdev)))))))))\n"
-msgstr ""
-"(operating-system\n"
-"  ...\n"
-"  (services\n"
-"    (modify-services %desktop-services\n"
-"      (slim-service-type config =>\n"
-"        (slim-configuration\n"
-"          (inherit config)\n"
-"          (startx (xorg-start-command\n"
-"                   #:configuration-file\n"
-"                   (xorg-configuration-file\n"
-"                     #:extra-config\n"
-"                     (list bepo-evdev)))))))))\n"
+#. type: deffn
+#: doc/guix.texi:13678
+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:12914
-msgid "The @code{MatchIsKeyboard} line specifies that we only apply the configuration to keyboards.  Without this line, other devices such as touchpad may not work correctly because they will be attached to the wrong driver.  In this example, the user typically used @code{setxkbmap fr bepo} to set their favorite keymap once logged in.  The first argument corresponds to the layout, while the second argument corresponds to the variant.  The @code{xkb_variant} line can be omitted to select the default variant."
-msgstr "La ligne @code{MatchIsKeyboard} spécifie que nous n'appliquons la configuration qu'aux claviers.  Sans cette ligne, d'autres périphériques comme les pavés tactiles ne fonctionneront pas correctement parce qu'ils seront associés au mauvais pilote.  Dans cet exemple, l'utilisateur utiliserait typiquement @code{setxkbmap fr bepo} pour utiliser sa disposition de clavier préférée une fois connecté.  Le premier argument correspond à la disposition, tandis que le second argument correspond à la variante.  La ligne @code{xkb_variant} peut être omise pour choisir la variante par défaut."
+#: doc/guix.texi:13680
+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:12916
+#: doc/guix.texi:13683
 #, 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:12920
+#: doc/guix.texi:13687
 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:12923
+#: doc/guix.texi:13690
 #, no-wrap
 msgid "(screen-locker-service xlockmore \"xlock\")\n"
 msgstr "(screen-locker-service xlockmore \"xlock\")\n"
 
 #. type: deffn
-#: doc/guix.texi:12926
+#: doc/guix.texi:13693
 msgid "makes the good ol' XlockMore usable."
 msgstr "rend utilisable le bon vieux XlockMore."
 
 #. type: cindex
-#: doc/guix.texi:12932
+#: doc/guix.texi:13699
 #, no-wrap
 msgid "printer support with CUPS"
 msgstr "support des imprimantes avec CUPS"
 
 #. type: Plain text
-#: doc/guix.texi:12936
-msgid "The @code{(gnu services cups)} module provides a Guix service definition for the CUPS printing service.  To add printer support to a GuixSD 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 le support d'une imprimante à un système GuixSD, ajoutez un @code{cups-service} à la définition du système d'exploitation :"
+#: doc/guix.texi:13703
+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:12937
+#: doc/guix.texi:13704
 #, no-wrap
 msgid "{Scheme Variable} cups-service-type"
 msgstr "{Variable Scheme} cups-service-type"
 
 #. type: deffn
-#: doc/guix.texi:12941
+#: doc/guix.texi:13708
 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:12943
+#: doc/guix.texi:13710
 #, no-wrap
 msgid "(service cups-service-type)\n"
 msgstr "(service cups-service-type)\n"
 
 #. type: Plain text
-#: doc/guix.texi:12953
+#: doc/guix.texi:13720
 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:12958
+#: doc/guix.texi:13725
 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:12965
+#: doc/guix.texi:13732
 #, no-wrap
 msgid ""
 "(service cups-service-type\n"
@@ -23706,1532 +25603,1535 @@ msgstr ""
 "             (list cups-filters escpr hplip-minimal))))\n"
 
 #. type: Plain text
-#: doc/guix.texi:12970
+#: doc/guix.texi:13737
 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:12977
+#: doc/guix.texi:13744
 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:12988
+#: doc/guix.texi:13755
 msgid "Available @code{cups-configuration} fields are:"
 msgstr "Les champs de @code{cups-configuration} disponibles sont :"
 
 #. type: deftypevr
-#: doc/guix.texi:12989
+#: doc/guix.texi:13756
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} package cups"
 msgstr "{paramètre de @code{cups-configuration}} package cups"
 
 #. type: deftypevr
-#: doc/guix.texi:12991 doc/guix.texi:13748
+#: doc/guix.texi:13758 doc/guix.texi:14515
 msgid "The CUPS package."
 msgstr "Le paquet CUPS."
 
 #. type: deftypevr
-#: doc/guix.texi:12993
+#: doc/guix.texi:13760
 #, 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:12995
+#: doc/guix.texi:13762
 msgid "Drivers and other extensions to the CUPS package."
 msgstr "Pilotes et autres extensions du paquet CUPS."
 
 #. type: deftypevr
-#: doc/guix.texi:12997
+#: doc/guix.texi:13764
 #, 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:13000
+#: doc/guix.texi:13767
 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:13002
+#: doc/guix.texi:13769
 msgid "Available @code{files-configuration} fields are:"
 msgstr "Les champs @code{files-configuration} disponibles sont :"
 
 #. type: deftypevr
-#: doc/guix.texi:13003
+#: doc/guix.texi:13770
 #, 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:13011
+#: doc/guix.texi:13778
 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:13013
+#: doc/guix.texi:13780
 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:13015
+#: doc/guix.texi:13782
 #, 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:13017
+#: doc/guix.texi:13784
 msgid "Where CUPS should cache data."
 msgstr "L'emplacement où CUPS devrait mettre les données en cache."
 
 #. type: deftypevr
-#: doc/guix.texi:13019
+#: doc/guix.texi:13786
 msgid "Defaults to @samp{\"/var/cache/cups\"}."
 msgstr "La valeur par défaut est @samp{\"/var/cache/cups\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:13021
+#: doc/guix.texi:13788
 #, 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:13024
+#: doc/guix.texi:13791
 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:13030
+#: doc/guix.texi:13797
 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:13032
+#: doc/guix.texi:13799
 msgid "Defaults to @samp{\"0640\"}."
 msgstr "La valeur par défaut est @samp{\"0640\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:13034
+#: doc/guix.texi:13801
 #, 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:13042
+#: doc/guix.texi:13809
 msgid "Defines the error 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-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 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-error_log}."
 
 #. type: deftypevr
-#: doc/guix.texi:13044
+#: doc/guix.texi:13811
 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:13046
+#: doc/guix.texi:13813
 #, 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:13049
+#: doc/guix.texi:13816
 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:13053
+#: doc/guix.texi:13820
 msgid "No errors are fatal."
 msgstr "Aucune erreur n'est fatale."
 
 #. type: table
-#: doc/guix.texi:13056
+#: doc/guix.texi:13823
 msgid "All of the errors below are fatal."
 msgstr "Toutes les erreurs ci-dessous sont fatales."
 
 #. type: item
-#: doc/guix.texi:13057
+#: doc/guix.texi:13824
 #, no-wrap
 msgid "browse"
 msgstr "browse"
 
 #. type: table
-#: doc/guix.texi:13060
+#: doc/guix.texi:13827
 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:13061
+#: doc/guix.texi:13828
 #, no-wrap
 msgid "config"
 msgstr "config"
 
 #. type: table
-#: doc/guix.texi:13063
+#: doc/guix.texi:13830
 msgid "Configuration file syntax errors are fatal."
 msgstr "Les erreurs de syntaxe du fichier de configuration sont fatale."
 
 #. type: item
-#: doc/guix.texi:13064
+#: doc/guix.texi:13831
 #, no-wrap
 msgid "listen"
 msgstr "listen"
 
 #. type: table
-#: doc/guix.texi:13067
+#: doc/guix.texi:13834
 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:13068
+#: doc/guix.texi:13835
 #, no-wrap
 msgid "log"
 msgstr "log"
 
 #. type: table
-#: doc/guix.texi:13070
+#: doc/guix.texi:13837
 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:13071
+#: doc/guix.texi:13838
 #, no-wrap
 msgid "permissions"
 msgstr "permissions"
 
 #. type: table
-#: doc/guix.texi:13074
+#: doc/guix.texi:13841
 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:13077
+#: doc/guix.texi:13844
 msgid "Defaults to @samp{\"all -browse\"}."
 msgstr "La valeur par défaut est @samp{\"all -browse\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:13079
+#: doc/guix.texi:13846
 #, 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:13082
+#: doc/guix.texi:13849
 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:13084 doc/guix.texi:13154 doc/guix.texi:13190
-#: doc/guix.texi:13202 doc/guix.texi:13208 doc/guix.texi:13224
-#: doc/guix.texi:13312 doc/guix.texi:13406 doc/guix.texi:13722
-#: doc/guix.texi:13735 doc/guix.texi:18368 doc/guix.texi:18382
-#: doc/guix.texi:18504 doc/guix.texi:18525 doc/guix.texi:18546
-#: doc/guix.texi:18553 doc/guix.texi:18598 doc/guix.texi:18605
-#: doc/guix.texi:19032 doc/guix.texi:19046 doc/guix.texi:19218
-#: doc/guix.texi:19263 doc/guix.texi:19350 doc/guix.texi:19482
-#: doc/guix.texi:19515 doc/guix.texi:19655 doc/guix.texi:19666
-#: doc/guix.texi:19916 doc/guix.texi:20558 doc/guix.texi:20567
-#: doc/guix.texi:20575 doc/guix.texi:20583 doc/guix.texi:20599
-#: doc/guix.texi:20615 doc/guix.texi:20623 doc/guix.texi:20631
-#: doc/guix.texi:20640 doc/guix.texi:20649 doc/guix.texi:20665
-#: doc/guix.texi:20729 doc/guix.texi:20835 doc/guix.texi:20843
-#: doc/guix.texi:20851 doc/guix.texi:20876 doc/guix.texi:20930
-#: doc/guix.texi:20978 doc/guix.texi:21179 doc/guix.texi:21186
+#: doc/guix.texi:13851 doc/guix.texi:13921 doc/guix.texi:13957
+#: doc/guix.texi:13969 doc/guix.texi:13975 doc/guix.texi:13991
+#: doc/guix.texi:14079 doc/guix.texi:14173 doc/guix.texi:14489
+#: doc/guix.texi:14502 doc/guix.texi:20124 doc/guix.texi:20138
+#: doc/guix.texi:20260 doc/guix.texi:20281 doc/guix.texi:20302
+#: doc/guix.texi:20309 doc/guix.texi:20354 doc/guix.texi:20361
+#: doc/guix.texi:20788 doc/guix.texi:20802 doc/guix.texi:20974
+#: doc/guix.texi:21019 doc/guix.texi:21106 doc/guix.texi:21247
+#: doc/guix.texi:21280 doc/guix.texi:21420 doc/guix.texi:21431
+#: doc/guix.texi:21681 doc/guix.texi:22323 doc/guix.texi:22332
+#: doc/guix.texi:22340 doc/guix.texi:22348 doc/guix.texi:22364
+#: doc/guix.texi:22380 doc/guix.texi:22388 doc/guix.texi:22396
+#: doc/guix.texi:22405 doc/guix.texi:22414 doc/guix.texi:22430
+#: doc/guix.texi:22494 doc/guix.texi:22600 doc/guix.texi:22608
+#: doc/guix.texi:22616 doc/guix.texi:22641 doc/guix.texi:22695
+#: doc/guix.texi:22743 doc/guix.texi:22944 doc/guix.texi:22951
 msgid "Defaults to @samp{#f}."
 msgstr "La valeur par défaut est @samp{#f}."
 
 #. type: deftypevr
-#: doc/guix.texi:13086
+#: doc/guix.texi:13853
 #, no-wrap
 msgid "{@code{files-configuration} parameter} string group"
 msgstr "{paramètre de @code{files-configuration}} string group"
 
 #. type: deftypevr
-#: doc/guix.texi:13089
+#: doc/guix.texi:13856
 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:13091 doc/guix.texi:13171
+#: doc/guix.texi:13858 doc/guix.texi:13938
 msgid "Defaults to @samp{\"lp\"}."
 msgstr "La valeur par défaut est @samp{\"lp\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:13093
+#: doc/guix.texi:13860
 #, 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:13095
+#: doc/guix.texi:13862
 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:13097
+#: doc/guix.texi:13864
 msgid "Defaults to @samp{\"0644\"}."
 msgstr "La valeur par défaut est @samp{\"0644\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:13099
+#: doc/guix.texi:13866
 #, 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:13107
+#: doc/guix.texi:13874
 msgid "Defines the page 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-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:13109
+#: doc/guix.texi:13876
 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:13111
+#: doc/guix.texi:13878
 #, 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:13114
+#: doc/guix.texi:13881
 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:13116
+#: doc/guix.texi:13883
 msgid "Defaults to @samp{\"remroot\"}."
 msgstr "La valeur par défaut est @samp{\"remroot\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:13118
+#: doc/guix.texi:13885
 #, 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:13121
+#: doc/guix.texi:13888
 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:13123
+#: doc/guix.texi:13890
 msgid "Defaults to @samp{\"/var/spool/cups\"}."
 msgstr "La valeur par défaut est @samp{\"/var/spool/cups\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:13125
+#: doc/guix.texi:13892
 #, no-wrap
 msgid "{@code{files-configuration} parameter} sandboxing sandboxing"
 msgstr "{paramètre de @code{files-configuration}} sandboxing sandboxing"
 
 #. type: deftypevr
-#: doc/guix.texi:13130
+#: doc/guix.texi:13897
 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:13132
+#: doc/guix.texi:13899
 msgid "Defaults to @samp{strict}."
 msgstr "La valeur par défaut est @samp{strict}."
 
 #. type: deftypevr
-#: doc/guix.texi:13134
+#: doc/guix.texi:13901
 #, 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:13139
+#: doc/guix.texi:13906
 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."
 
 #. type: deftypevr
-#: doc/guix.texi:13141
+#: doc/guix.texi:13908
 msgid "Defaults to @samp{\"/etc/cups/ssl\"}."
 msgstr "La valeur par défaut est @samp{\"/etc/cups/ssl\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:13143
+#: doc/guix.texi:13910
 #, 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:13145
+#: doc/guix.texi:13912
 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:13147
+#: doc/guix.texi:13914
 msgid "Defaults to @samp{\"/etc/cups\"}."
 msgstr "La valeur par défaut est @samp{\"/etc/cups\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:13149
+#: doc/guix.texi:13916
 #, 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:13152
+#: doc/guix.texi:13919
 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:13156
+#: doc/guix.texi:13923
 #, 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:13158
+#: doc/guix.texi:13925
 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:13160
+#: doc/guix.texi:13927
 #, 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:13162
+#: doc/guix.texi:13929
 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:13164
+#: doc/guix.texi:13931
 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:13166
+#: doc/guix.texi:13933
 #, no-wrap
 msgid "{@code{files-configuration} parameter} string user"
 msgstr "{paramètre de @code{files-configuration}} string user"
 
 #. type: deftypevr
-#: doc/guix.texi:13169
+#: doc/guix.texi:13936
 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:13174
+#: doc/guix.texi:13941
 #, 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:13181
+#: doc/guix.texi:13948
 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:13183
+#: doc/guix.texi:13950
 msgid "Defaults to @samp{actions}."
 msgstr "La valeur par défaut est @samp{actions}."
 
 #. type: deftypevr
-#: doc/guix.texi:13185
+#: doc/guix.texi:13952
 #, 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:13188
+#: doc/guix.texi:13955
 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:13192
+#: doc/guix.texi:13959
 #, 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:13194
+#: doc/guix.texi:13961
 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:13196
+#: doc/guix.texi:13963
 msgid "Defaults to @samp{dnssd}."
 msgstr "La valeur par défaut est @samp{dnssd}."
 
 #. type: deftypevr
-#: doc/guix.texi:13198
+#: doc/guix.texi:13965
 #, 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:13200
+#: doc/guix.texi:13967
 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:13204
+#: doc/guix.texi:13971
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} boolean browsing?"
 msgstr "{paramètre de @code{cups-configuration}} boolean browsing?"
 
 #. type: deftypevr
-#: doc/guix.texi:13206
+#: doc/guix.texi:13973
 msgid "Specifies whether shared printers are advertised."
 msgstr "Spécifie si les imprimantes partagées sont publiées."
 
 #. type: deftypevr
-#: doc/guix.texi:13210
+#: doc/guix.texi:13977
 #, no-wrap
 msgid "{@code{cups-configuration} parameter} string classification"
 msgstr "{paramètre de @code{cups-configuration}} string classification"
 
 #. type: deftypevr
-#: doc/guix.texi:13215
+#: doc/guix.texi:13982
 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:13217 doc/guix.texi:13554 doc/guix.texi:15028
-#: doc/guix.texi:15040 doc/guix.texi:19621 doc/guix.texi:19629
-#: doc/guix.texi:19637 doc/guix.texi:19645 doc/guix.texi:19923
-#: doc/guix.texi:20401 doc/guix.texi:20409 doc/guix.texi:20417
-#: doc/guix.texi:20525 doc/guix.texi:20550 doc/guix.texi:20681
-#: doc/guix.texi:20689 doc/guix.texi:20697 doc/guix.texi:20705
-#: doc/guix.texi:20713 doc/guix.texi:20721 doc/guix.texi:20744
-#: doc/guix.texi:20752 doc/guix.texi:20804 doc/guix.texi:20820
-#: doc/guix.texi:20828 doc/guix.texi:20867 doc/guix.texi:20890
-#: doc/guix.texi:20912 doc/guix.texi:20919 doc/guix.texi:20954
-#: doc/guix.texi:20962 doc/guix.texi:20986 doc/guix.texi:21018
-#: doc/guix.texi:21047 doc/guix.texi:21054 doc/guix.texi:21061
-#: doc/guix.texi:21069 doc/guix.texi:21083 doc/guix.texi:21092
-#: doc/guix.texi:21102 doc/guix.texi:21109 doc/guix.texi:21116
-#: doc/guix.texi:21123 doc/guix.texi:21194 doc/guix.texi:21201
-#: doc/guix.texi:21208 doc/guix.texi:21217 doc/guix.texi:21233
-#: doc/guix.texi:21240 doc/guix.texi:21247 doc/guix.texi:21254
-#: doc/guix.texi:21262 doc/guix.texi:21270
+#: doc/guix.texi:13984 doc/guix.texi:14321 doc/guix.texi:15924
+#: doc/guix.texi:15936 doc/guix.texi:17638 doc/guix.texi:17664
+#: doc/guix.texi:17700 doc/guix.texi:17765 doc/guix.texi:17804
+#: doc/guix.texi:17863 doc/guix.texi:17872 doc/guix.texi:21386
+#: doc/guix.texi:21394 doc/guix.texi:21402 doc/guix.texi:21410
+#: doc/guix.texi:21688 doc/guix.texi:22166 doc/guix.texi:22174
+#: doc/guix.texi:22182 doc/guix.texi:22290 doc/guix.texi:22315
+#: doc/guix.texi:22446 doc/guix.texi:22454 doc/guix.texi:22462
+#: doc/guix.texi:22470 doc/guix.texi:22478 doc/guix.texi:22486
+#: doc/guix.texi:22509 doc/guix.texi:22517 doc/guix.texi:22569
+#: doc/guix.texi:22585 doc/guix.texi:22593 doc/guix.texi:22632
+#: doc/guix.texi:22655 doc/guix.texi:22677 doc/guix.texi:22684
+#: doc/guix.texi:22719 doc/guix.texi:22727 doc/guix.texi:22751
+#: doc/guix.texi:22783 doc/guix.texi:22812 doc/guix.texi:22819
+#: doc/guix.texi:22826 doc/guix.texi:22834 doc/guix.texi:22848
+#: doc/guix.texi:22857 doc/guix.texi:22867 doc/guix.texi:22874
+#: doc/guix.texi:22881 doc/guix.texi:22888 doc/guix.texi:22959
+#: doc/guix.texi:22966 doc/guix.texi:22973 doc/guix.texi:22982
+#: doc/guix.texi:22998 doc/guix.texi:23005 doc/guix.texi:23012
+#: doc/guix.texi:23019 doc/guix.texi:23027 doc/guix.texi:23035
 msgid "Defaults to @samp{\"\"}."
 msgstr "La valeur par défaut est @samp{\"\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:13219
+#: doc/guix.texi:13986
 #, 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:13222
+#: doc/guix.texi:13989
 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:13226
+#: doc/guix.texi:13993
 #, 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:13228
+#: doc/guix.texi:13995
 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:13230
+#: doc/guix.texi:13997
 msgid "Defaults to @samp{Basic}."
 msgstr "La valeur par défaut est @samp{Basic}."
 
 #. type: deftypevr
-#: doc/guix.texi:13232
+#: doc/guix.texi:13999
 #, 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:13234
+#: doc/guix.texi:14001
 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:13236
+#: doc/guix.texi:14003
 msgid "Defaults to @samp{Required}."
 msgstr "La valeur par défaut est @samp{Required}."
 
 #. type: deftypevr
-#: doc/guix.texi:13238
+#: doc/guix.texi:14005
 #, 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:13240
+#: doc/guix.texi:14007
 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:13242
+#: doc/guix.texi:14009
 msgid "Defaults to @samp{\"en\"}."
 msgstr "La valeur par défaut est @samp{\"en\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:13244
+#: doc/guix.texi:14011
 #, 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:13249
+#: doc/guix.texi:14016
 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:13251
+#: doc/guix.texi:14018
 msgid "Defaults to @samp{\"Auto\"}."
 msgstr "La valeur par défaut est @samp{\"Auto\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:13253
+#: doc/guix.texi:14020
 #, 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:13255
+#: doc/guix.texi:14022
 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:13257
+#: doc/guix.texi:14024
 msgid "Defaults to @samp{\"default\"}."
 msgstr "La valeur par défaut est @samp{\"default\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:13259
+#: doc/guix.texi:14026
 #, 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:13261
+#: doc/guix.texi:14028
 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:13263 doc/guix.texi:13343 doc/guix.texi:13639
-#: doc/guix.texi:18190 doc/guix.texi:18218 doc/guix.texi:18338
-#: doc/guix.texi:18345 doc/guix.texi:18353 doc/guix.texi:18375
-#: doc/guix.texi:18389 doc/guix.texi:18474 doc/guix.texi:18481
-#: doc/guix.texi:18489 doc/guix.texi:18899 doc/guix.texi:19039
-#: doc/guix.texi:19225 doc/guix.texi:19232 doc/guix.texi:19254
-#: doc/guix.texi:19293 doc/guix.texi:19313 doc/guix.texi:19327
-#: doc/guix.texi:19470 doc/guix.texi:20503 doc/guix.texi:20591
-#: doc/guix.texi:20607 doc/guix.texi:20657
+#: doc/guix.texi:14030 doc/guix.texi:14110 doc/guix.texi:14406
+#: doc/guix.texi:19946 doc/guix.texi:19974 doc/guix.texi:20094
+#: doc/guix.texi:20101 doc/guix.texi:20109 doc/guix.texi:20131
+#: doc/guix.texi:20145 doc/guix.texi:20230 doc/guix.texi:20237
+#: doc/guix.texi:20245 doc/guix.texi:20655 doc/guix.texi:20795
+#: doc/guix.texi:20981 doc/guix.texi:20988 doc/guix.texi:21010
+#: doc/guix.texi:21049 doc/guix.texi:21069 doc/guix.texi:21083
+#: doc/guix.texi:21235 doc/guix.texi:22268 doc/guix.texi:22356
+#: doc/guix.texi:22372 doc/guix.texi:22422
 msgid "Defaults to @samp{#t}."
 msgstr "La valeur par défaut est @samp{#t}."
 
 #. type: deftypevr
-#: doc/guix.texi:13265
+#: doc/guix.texi:14032
 #, 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:13269
+#: doc/guix.texi:14036
 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:13271 doc/guix.texi:13319 doc/guix.texi:13328
-#: doc/guix.texi:13349 doc/guix.texi:13646
+#: doc/guix.texi:14038 doc/guix.texi:14086 doc/guix.texi:14095
+#: doc/guix.texi:14116 doc/guix.texi:14413
 msgid "Defaults to @samp{30}."
 msgstr "La valeur par défaut est @samp{30}."
 
 #. type: deftypevr
-#: doc/guix.texi:13273
+#: doc/guix.texi:14040
 #, 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:13279
+#: doc/guix.texi:14046
 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."
 
 #. type: deftypevr
-#: doc/guix.texi:13281
+#: doc/guix.texi:14048
 msgid "Defaults to @samp{stop-printer}."
 msgstr "La valeur par défaut est @samp{stop-printer}."
 
 #. type: deftypevr
-#: doc/guix.texi:13283
+#: doc/guix.texi:14050
 #, 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:13291
+#: doc/guix.texi:14058
 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:13293 doc/guix.texi:13301 doc/guix.texi:13356
-#: doc/guix.texi:13472 doc/guix.texi:13486 doc/guix.texi:13493
-#: doc/guix.texi:14470 doc/guix.texi:14486 doc/guix.texi:15132
-#: doc/guix.texi:15144 doc/guix.texi:18915 doc/guix.texi:19240
-#: doc/guix.texi:20496 doc/guix.texi:20796 doc/guix.texi:20970
+#: doc/guix.texi:14060 doc/guix.texi:14068 doc/guix.texi:14123
+#: doc/guix.texi:14239 doc/guix.texi:14253 doc/guix.texi:14260
+#: doc/guix.texi:15366 doc/guix.texi:15382 doc/guix.texi:16028
+#: doc/guix.texi:16040 doc/guix.texi:20671 doc/guix.texi:20996
+#: doc/guix.texi:22261 doc/guix.texi:22561 doc/guix.texi:22735
 msgid "Defaults to @samp{0}."
 msgstr "La valeur par défaut est @samp{0}."
 
 #. type: deftypevr
-#: doc/guix.texi:13295
+#: doc/guix.texi:14062
 #, 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:13299
+#: doc/guix.texi:14066
 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:13303
+#: doc/guix.texi:14070
 #, 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:13310
+#: doc/guix.texi:14077
 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:13314
+#: doc/guix.texi:14081
 #, 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:13317
+#: doc/guix.texi:14084
 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:13321
+#: doc/guix.texi:14088
 #, 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:13326
+#: doc/guix.texi:14093
 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:13330
+#: doc/guix.texi:14097
 #, 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:13335
+#: doc/guix.texi:14102
 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:13337 doc/guix.texi:19722 doc/guix.texi:19742
-#: doc/guix.texi:19758 doc/guix.texi:19772 doc/guix.texi:19779
-#: doc/guix.texi:19786 doc/guix.texi:19793 doc/guix.texi:19952
-#: doc/guix.texi:19968 doc/guix.texi:19975 doc/guix.texi:19982
-#: doc/guix.texi:19993 doc/guix.texi:20448 doc/guix.texi:20456
-#: doc/guix.texi:20464 doc/guix.texi:20488
+#: doc/guix.texi:14104 doc/guix.texi:21487 doc/guix.texi:21507
+#: doc/guix.texi:21523 doc/guix.texi:21537 doc/guix.texi:21544
+#: doc/guix.texi:21551 doc/guix.texi:21558 doc/guix.texi:21717
+#: doc/guix.texi:21733 doc/guix.texi:21740 doc/guix.texi:21747
+#: doc/guix.texi:21758 doc/guix.texi:22213 doc/guix.texi:22221
+#: doc/guix.texi:22229 doc/guix.texi:22253
 msgid "Defaults to @samp{5}."
 msgstr "La valeur par défaut est @samp{5}."
 
 #. type: deftypevr
-#: doc/guix.texi:13339
+#: doc/guix.texi:14106
 #, 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:13341
+#: doc/guix.texi:14108
 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:13345
+#: doc/guix.texi:14112
 #, 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:13347
+#: doc/guix.texi:14114
 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:13351
+#: doc/guix.texi:14118
 #, 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:13354
+#: doc/guix.texi:14121
 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:13358
+#: doc/guix.texi:14125
 #, 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:13365
+#: doc/guix.texi:14132
 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:13367
+#: doc/guix.texi:14134
 #, 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:13374
+#: doc/guix.texi:14141
 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:13376
+#: doc/guix.texi:14143
 msgid "Defaults to @samp{128}."
 msgstr "La valeur par défaut est @samp{128}."
 
 #. type: deftypevr
-#: doc/guix.texi:13378
+#: doc/guix.texi:14145
 #, 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:13380
+#: doc/guix.texi:14147
 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:13382
+#: doc/guix.texi:14149
 msgid "Available @code{location-access-controls} fields are:"
 msgstr "Les champs de @code{location-access-controls} disponibles sont :"
 
 #. type: deftypevr
-#: doc/guix.texi:13383
+#: doc/guix.texi:14150
 #, 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:13385
+#: doc/guix.texi:14152
 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:13387
+#: doc/guix.texi:14154
 #, 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:13390
+#: doc/guix.texi:14157
 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:13392 doc/guix.texi:13398 doc/guix.texi:13412
-#: doc/guix.texi:13419 doc/guix.texi:13561 doc/guix.texi:13620
-#: doc/guix.texi:13704 doc/guix.texi:13715 doc/guix.texi:15618
-#: doc/guix.texi:18249 doc/guix.texi:18396 doc/guix.texi:18584
-#: doc/guix.texi:19613 doc/guix.texi:19673 doc/guix.texi:19681
-#: doc/guix.texi:20511 doc/guix.texi:20518 doc/guix.texi:20860
-#: doc/guix.texi:20938 doc/guix.texi:21032 doc/guix.texi:21040
-#: doc/guix.texi:21076 doc/guix.texi:21226 doc/guix.texi:21277
-#: doc/guix.texi:21286
+#: doc/guix.texi:14159 doc/guix.texi:14165 doc/guix.texi:14179
+#: doc/guix.texi:14186 doc/guix.texi:14328 doc/guix.texi:14387
+#: doc/guix.texi:14471 doc/guix.texi:14482 doc/guix.texi:16514
+#: doc/guix.texi:17708 doc/guix.texi:17812 doc/guix.texi:18237
+#: doc/guix.texi:18245 doc/guix.texi:18490 doc/guix.texi:20005
+#: doc/guix.texi:20152 doc/guix.texi:20340 doc/guix.texi:21378
+#: doc/guix.texi:21438 doc/guix.texi:21446 doc/guix.texi:22276
+#: doc/guix.texi:22283 doc/guix.texi:22625 doc/guix.texi:22703
+#: doc/guix.texi:22797 doc/guix.texi:22805 doc/guix.texi:22841
+#: doc/guix.texi:22991 doc/guix.texi:23042 doc/guix.texi:23051
 msgid "Defaults to @samp{()}."
 msgstr "La valeur par défaut est @samp{()}."
 
 #. type: deftypevr
-#: doc/guix.texi:13394
+#: doc/guix.texi:14161
 #, 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:13396
+#: doc/guix.texi:14163
 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:13400
+#: doc/guix.texi:14167
 msgid "Available @code{method-access-controls} fields are:"
 msgstr "Les champs de @code{method-access-controls} disponibles sont :"
 
 #. type: deftypevr
-#: doc/guix.texi:13401
+#: doc/guix.texi:14168
 #, 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:13404
+#: doc/guix.texi:14171
 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:13408
+#: doc/guix.texi:14175
 #, 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:13410
+#: doc/guix.texi:14177
 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:13414
+#: doc/guix.texi:14181
 #, 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:13417
+#: doc/guix.texi:14184
 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 »."
 
 #. type: deftypevr
-#: doc/guix.texi:13423
+#: doc/guix.texi:14190
 #, 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:13427
+#: doc/guix.texi:14194
 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:13429 doc/guix.texi:13450 doc/guix.texi:13457
-#: doc/guix.texi:15378 doc/guix.texi:18569
+#: doc/guix.texi:14196 doc/guix.texi:14217 doc/guix.texi:14224
+#: doc/guix.texi:16274 doc/guix.texi:20325
 msgid "Defaults to @samp{100}."
 msgstr "La valeur par défaut est @samp{100}."
 
 #. type: deftypevr
-#: doc/guix.texi:13431
+#: doc/guix.texi:14198
 #, 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:13434
+#: doc/guix.texi:14201
 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:13436
+#: doc/guix.texi:14203
 msgid "Defaults to @samp{info}."
 msgstr "La valeur par défaut est @samp{info}."
 
 #. type: deftypevr
-#: doc/guix.texi:13438
+#: doc/guix.texi:14205
 #, 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:13441
+#: doc/guix.texi:14208
 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:13443
+#: doc/guix.texi:14210
 msgid "Defaults to @samp{standard}."
 msgstr "La valeur par défaut est @samp{standard}."
 
 #. type: deftypevr
-#: doc/guix.texi:13445
+#: doc/guix.texi:14212
 #, 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:13448
+#: doc/guix.texi:14215
 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:13452
+#: doc/guix.texi:14219
 #, 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:13455
+#: doc/guix.texi:14222
 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:13459
+#: doc/guix.texi:14226
 #, 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:13462
+#: doc/guix.texi:14229
 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:13464
+#: doc/guix.texi:14231
 msgid "Defaults to @samp{9999}."
 msgstr "La valeur par défaut est @samp{9999}."
 
 #. type: deftypevr
-#: doc/guix.texi:13466
+#: doc/guix.texi:14233
 #, 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:13470
+#: doc/guix.texi:14237
 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:13474
+#: doc/guix.texi:14241
 #, 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:13477
+#: doc/guix.texi:14244
 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:13479
+#: doc/guix.texi:14246
 msgid "Defaults to @samp{500}."
 msgstr "La valeur par défaut est @samp{500}."
 
 #. type: deftypevr
-#: doc/guix.texi:13481
+#: doc/guix.texi:14248
 #, 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:13484
+#: doc/guix.texi:14251
 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:13488
+#: doc/guix.texi:14255
 #, 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:13491
+#: doc/guix.texi:14258
 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:13495
+#: doc/guix.texi:14262
 #, 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:13498
+#: doc/guix.texi:14265
 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:13500
+#: doc/guix.texi:14267
 msgid "Defaults to @samp{10800}."
 msgstr "La valeur par défaut est @samp{10800}."
 
 #. type: deftypevr
-#: doc/guix.texi:13502
+#: doc/guix.texi:14269
 #, 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:13505
+#: doc/guix.texi:14272
 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:13507
+#: doc/guix.texi:14274
 msgid "Defaults to @samp{1048576}."
 msgstr "La valeur par défaut est @samp{1048576}."
 
 #. type: deftypevr
-#: doc/guix.texi:13509
+#: doc/guix.texi:14276
 #, 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:13512
+#: doc/guix.texi:14279
 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:13514 doc/guix.texi:13728 doc/guix.texi:18183
+#: doc/guix.texi:14281 doc/guix.texi:14495 doc/guix.texi:19939
 msgid "Defaults to @samp{300}."
 msgstr "La valeur par défaut est @samp{300}."
 
 #. type: deftypevr
-#: doc/guix.texi:13516
+#: doc/guix.texi:14283
 #, 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:13521
+#: doc/guix.texi:14288
 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:13523
+#: doc/guix.texi:14290
 #, no-wrap
 msgid "%%"
 msgstr "%%"
 
 #. type: table
-#: doc/guix.texi:13525
+#: doc/guix.texi:14292
 msgid "insert a single percent character"
 msgstr "insère un seul caractères pourcent"
 
 #. type: item
-#: doc/guix.texi:13526
+#: doc/guix.texi:14293
 #, no-wrap
 msgid "%@{name@}"
 msgstr "%@{name@}"
 
 #. type: table
-#: doc/guix.texi:13528
+#: doc/guix.texi:14295
 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:13529
+#: doc/guix.texi:14296
 #, no-wrap
 msgid "%C"
 msgstr "%C"
 
 #. type: table
-#: doc/guix.texi:13531
+#: doc/guix.texi:14298
 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:13532
+#: doc/guix.texi:14299
 #, no-wrap
 msgid "%P"
 msgstr "%P"
 
 #. type: table
-#: doc/guix.texi:13534
+#: doc/guix.texi:14301
 msgid "insert the current page number"
 msgstr "insère le numéro de page actuelle"
 
 #. type: item
-#: doc/guix.texi:13535
+#: doc/guix.texi:14302
 #, no-wrap
 msgid "%T"
 msgstr "%T"
 
 #. type: table
-#: doc/guix.texi:13537
+#: doc/guix.texi:14304
 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:13538
+#: doc/guix.texi:14305
 #, no-wrap
 msgid "%j"
 msgstr "%j"
 
 #. type: table
-#: doc/guix.texi:13540
+#: doc/guix.texi:14307
 msgid "insert the job ID"
 msgstr "insère l'ID du travail"
 
 #. type: item
-#: doc/guix.texi:13541 doc/guix.texi:14988
+#: doc/guix.texi:14308 doc/guix.texi:15884
 #, no-wrap
 msgid "%p"
 msgstr "%p"
 
 #. type: table
-#: doc/guix.texi:13543
+#: doc/guix.texi:14310
 msgid "insert the printer name"
 msgstr "insère le nom de l'imprimante"
 
 #. type: item
-#: doc/guix.texi:13544 doc/guix.texi:15011
+#: doc/guix.texi:14311 doc/guix.texi:15907
 #, no-wrap
 msgid "%u"
 msgstr "%u"
 
 #. type: table
-#: doc/guix.texi:13546
+#: doc/guix.texi:14313
 msgid "insert the username"
 msgstr "insère le nom d'utilisateur"
 
 #. type: deftypevr
-#: doc/guix.texi:13552
+#: doc/guix.texi:14319
 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:13556
+#: doc/guix.texi:14323
 #, 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:13559
+#: doc/guix.texi:14326
 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:13563
+#: doc/guix.texi:14330
 #, 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:13565
+#: doc/guix.texi:14332
 msgid "Specifies named access control policies."
 msgstr "Spécifie des politiques de contrôle d'accès nommées."
 
 #. type: deftypevr
-#: doc/guix.texi:13567
+#: doc/guix.texi:14334
 msgid "Available @code{policy-configuration} fields are:"
 msgstr "Les champs de @code{policy-configuration} disponibles sont :"
 
 #. type: deftypevr
-#: doc/guix.texi:13568
+#: doc/guix.texi:14335
 #, no-wrap
 msgid "{@code{policy-configuration} parameter} string name"
 msgstr "{paramètre de @code{policy-configuration}} string name"
 
 #. type: deftypevr
-#: doc/guix.texi:13570
+#: doc/guix.texi:14337
 msgid "Name of the policy."
 msgstr "Nom de la politique."
 
 #. type: deftypevr
-#: doc/guix.texi:13572
+#: doc/guix.texi:14339
 #, 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:13582
+#: doc/guix.texi:14349
 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:13584 doc/guix.texi:13606
+#: doc/guix.texi:14351 doc/guix.texi:14373
 msgid "Defaults to @samp{\"@@OWNER @@SYSTEM\"}."
 msgstr "La valeur par défaut est @samp{\"@@OWNER @@SYSTEM\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:13586
+#: doc/guix.texi:14353
 #, 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:13589 doc/guix.texi:13611
+#: doc/guix.texi:14356 doc/guix.texi:14378
 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:13592
+#: doc/guix.texi:14359
 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:13594
+#: doc/guix.texi:14361
 #, 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:13604
+#: doc/guix.texi:14371
 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:13608
+#: doc/guix.texi:14375
 #, 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:13614
+#: doc/guix.texi:14381
 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:13616
+#: doc/guix.texi:14383
 #, 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:13618
+#: doc/guix.texi:14385
 msgid "Access control by IPP operation."
 msgstr "Contrôle d'accès par les actions IPP."
 
 #. type: deftypevr
-#: doc/guix.texi:13623
+#: doc/guix.texi:14390
 #, 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:13628
+#: doc/guix.texi:14395
 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:13630
+#: doc/guix.texi:14397
 msgid "Defaults to @samp{86400}."
 msgstr "La valeur par défaut est @samp{86400}."
 
 #. type: deftypevr
-#: doc/guix.texi:13632
+#: doc/guix.texi:14399
 #, 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:13637
+#: doc/guix.texi:14404
 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:13641
+#: doc/guix.texi:14408
 #, 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:13644
+#: doc/guix.texi:14411
 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:13648
+#: doc/guix.texi:14415
 #, 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:13651
+#: doc/guix.texi:14418
 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:13653
+#: doc/guix.texi:14420
 msgid "Defaults to @samp{\"128m\"}."
 msgstr "La valeur par défaut est @samp{\"128m\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:13655
+#: doc/guix.texi:14422
 #, 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:13657
+#: doc/guix.texi:14424
 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:13659
+#: doc/guix.texi:14426
 msgid "Defaults to @samp{\"root@@localhost.localdomain\"}."
 msgstr "La valeur par défaut est @samp{\"root@@localhost.localdomain\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:13661
+#: doc/guix.texi:14428
 #, 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:13669
+#: doc/guix.texi:14436
 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:13671
+#: doc/guix.texi:14438
 msgid "Defaults to @samp{*}."
 msgstr "La valeur par défaut est @samp{*}."
 
 #. type: deftypevr
-#: doc/guix.texi:13673
+#: doc/guix.texi:14440
 #, 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:13675
+#: doc/guix.texi:14442
 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:13677
+#: doc/guix.texi:14444 doc/guix.texi:17835 doc/guix.texi:17879
 msgid "Defaults to @samp{\"localhost\"}."
 msgstr "La valeur par défaut est @samp{\"localhost\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:13679
+#: doc/guix.texi:14446
 #, 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:13687
+#: doc/guix.texi:14454
 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:13689
+#: doc/guix.texi:14456
 msgid "Defaults to @samp{Minimal}."
 msgstr "La valeur par défaut est @samp{Minimal}."
 
 #. type: deftypevr
-#: doc/guix.texi:13691
+#: doc/guix.texi:14458
 #, 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:13693
+#: doc/guix.texi:14460
 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:13695
+#: doc/guix.texi:14462
 msgid "Defaults to @samp{\"variable value\"}."
 msgstr "La valeur par défaut est @samp{\"variable value\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:13697
+#: doc/guix.texi:14464
 #, 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:13702
+#: doc/guix.texi:14469
 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:13706
+#: doc/guix.texi:14473
 #, 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:13713
+#: doc/guix.texi:14480
 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."
 
 #. type: deftypevr
-#: doc/guix.texi:13717
+#: doc/guix.texi:14484
 #, 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:13720
+#: doc/guix.texi:14487
 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:13724
+#: doc/guix.texi:14491
 #, 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:13726
+#: doc/guix.texi:14493
 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:13731
+#: doc/guix.texi:14498
 #, 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:13733
+#: doc/guix.texi:14500
 msgid "Specifies whether the web interface is enabled."
 msgstr "Spécifie si l'interface web est activée."
 
 #. type: Plain text
-#: doc/guix.texi:13743
+#: doc/guix.texi:14510
 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:13745
+#: doc/guix.texi:14512
 msgid "Available @code{opaque-cups-configuration} fields are:"
 msgstr "Les champs de @code{opaque-cups-configuration} disponibles sont :"
 
 #. type: deftypevr
-#: doc/guix.texi:13746
+#: doc/guix.texi:14513
 #, 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:13750
+#: doc/guix.texi:14517
 #, 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:13752
+#: doc/guix.texi:14519
 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:13754
+#: doc/guix.texi:14521
 #, 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:13756
+#: doc/guix.texi:14523
 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:13761
+#: doc/guix.texi:14528
 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:13767
+#: doc/guix.texi:14534
 #, no-wrap
 msgid ""
 "(service cups-service-type\n"
@@ -25245,114 +27145,195 @@ msgstr ""
 "           (cups-files.conf cups-files.conf)))\n"
 
 #. type: Plain text
-#: doc/guix.texi:13778
-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."
+#: doc/guix.texi:14545
+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:13782
+#: doc/guix.texi:14549
 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:13783
+#: doc/guix.texi:14550
 #, no-wrap
 msgid "{Scheme Variable} %desktop-services"
 msgstr "{Variable Scheme} %desktop-services"
 
 #. type: defvr
-#: doc/guix.texi:13786
+#: doc/guix.texi:14553
 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."
 
 #. type: defvr
-#: doc/guix.texi:13796
-msgid "In particular, it adds a graphical login manager (@pxref{X Window, @code{slim-service}}), 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, il ajoute un gestionnaire de connexion graphique (@pxref{X Window, @code{slim-service}}), des verrouilleurs d'écran, un outil de gestion réseau (@pxref{Networking Services, @code{network-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 leur mot de passe, 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:14563
+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, il 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}}), 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})."
 
 #. type: Plain text
-#: doc/guix.texi:13801
+#: doc/guix.texi:14568
 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}})."
 
 #. type: Plain text
-#: doc/guix.texi:13824
-msgid "Additionally, the @code{gnome-desktop-service}, @code{xfce-desktop-service}, @code{mate-desktop-service} 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} 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 made by @code{mate-desktop-service} 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}, @code{xfce-desktop-service}, @code{mate-desktop-service} 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} ajoute le métapaquet GNOME au profil du système.  de même, ajouter le service XFCE ajoute 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.  « 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:14591
+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."
 
 #. type: Plain text
-#: doc/guix.texi:13833
-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 the @code{slim-service} for 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 @code{slim-service} 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."
+#: doc/guix.texi:14600
+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: deffn
-#: doc/guix.texi:13834
+#. type: defvr
+#: doc/guix.texi:14601
 #, no-wrap
-msgid "{Scheme Procedure} gnome-desktop-service"
-msgstr "{Procédure Scheme} gnome-desktop-service"
+msgid "{Scheme Variable} gnome-desktop-service-type"
+msgstr "{Variable Scheme} gnome-desktop-service-type"
 
-#. type: deffn
-#: doc/guix.texi:13838
-msgid "Return a service that adds the @code{gnome} package to the system profile, and extends polkit with the actions from @code{gnome-settings-daemon}."
-msgstr "Renvoie un service qui ajoute le paquet @code{gnome} au profil système et étend polkit avec des actions de @code{gnome-settings-daemon}."
+#. type: defvr
+#: doc/guix.texi:14605
+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:14608
+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:14610
+#, no-wrap
+msgid "{Data Type} gnome-desktop-configuration"
+msgstr "{Type de données} gnome-desktop-configuration"
+
+#. type: deftp
+#: doc/guix.texi:14612
+msgid "Configuration record for the GNOME desktop environment."
+msgstr "Enregistrement de la configuration de l'environnement de bureau GNOME."
+
+#. type: item
+#: doc/guix.texi:14614
+#, no-wrap
+msgid "@code{gnome} (default @code{gnome})"
+msgstr "@code{gnome} (par défaut : @code{gnome})"
+
+#. type: table
+#: doc/guix.texi:14616
+msgid "The GNOME package to use."
+msgstr "Le paquet GNOME à utiliser."
+
+#. type: defvr
+#: doc/guix.texi:14619
+#, no-wrap
+msgid "{Scheme Variable} xfce-desktop-service-type"
+msgstr "{Variable Scheme} xfce-desktop-service-type"
+
+#. type: defvr
+#: doc/guix.texi:14623
+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:14628
+msgid "This service that 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:14630
+#, no-wrap
+msgid "{Data Type} xfce-desktop-configuration"
+msgstr "{Type de données} xfce-desktop-configuration"
+
+#. type: deftp
+#: doc/guix.texi:14632
+msgid "Configuration record for the Xfce desktop environment."
+msgstr "Enregistrement de la configuration de l'environnement de bureau Xfce."
+
+#. type: item
+#: doc/guix.texi:14634
+#, no-wrap
+msgid "@code{xfce} (default @code{xfce})"
+msgstr "@code{xfce} (par défaut : @code{xfce})"
+
+#. type: table
+#: doc/guix.texi:14636
+msgid "The Xfce package to use."
+msgstr "Le paquet Xfce à utiliser."
 
 #. type: deffn
-#: doc/guix.texi:13840
+#: doc/guix.texi:14639
 #, no-wrap
-msgid "{Scheme Procedure} xfce-desktop-service"
-msgstr "{Procédure Scheme} xfce-desktop-service"
+msgid "{Scheme Variable} mate-desktop-service-type"
+msgstr "{Variable Scheme} mate-desktop-service-type"
 
 #. type: deffn
-#: doc/guix.texi:13845
-msgid "Return a service that 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 "Renvoie un service qui ajoute le paquet @code{xfce} au profil du système et étend polkit avec la capacité pour @code{thunar} de manipuler le système de fichier en tant que root depuis une session utilisateur, après que l'utilisateur s'est authentifié avec le mot de passe administrateur."
+#: doc/guix.texi:14643
+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:13847
+#: doc/guix.texi:14647
+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:14649
 #, no-wrap
-msgid "{Scheme Procedure} mate-desktop-service"
-msgstr "{Procédure Scheme} mate-desktop-service"
+msgid "{Data Type} mate-desktop-configuration"
+msgstr "{Type de données} mate-desktop-configuration"
 
-#. type: deffn
-#: doc/guix.texi:13851
-msgid "Return a service that adds the @code{mate} package to the system profile, and extends polkit with the actions from @code{mate-settings-daemon}."
-msgstr "Renvoie un service qui 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:14651
+msgid "Configuration record for the MATE desktop environment."
+msgstr "Enregistrement de configuration pour l'environnement de bureau MATE."
+
+#. type: item
+#: doc/guix.texi:14653
+#, no-wrap
+msgid "@code{mate} (default @code{mate})"
+msgstr "@code{mate} (par défaut : @code{mate})"
+
+#. type: table
+#: doc/guix.texi:14655
+msgid "The MATE package to use."
+msgstr "Le paquet MATE à utiliser."
 
 #. type: deffn
-#: doc/guix.texi:13853
+#: doc/guix.texi:14658
 #, no-wrap
-msgid "{Scheme Procedure} enlightenment-desktop-service-type"
-msgstr "{Procédure Scheme} enlightenment-desktop-service-type"
+msgid "{Scheme Variable} enlightenment-desktop-service-type"
+msgstr "{Variable Scheme} enlightenment-desktop-service-type"
 
 #. type: deffn
-#: doc/guix.texi:13856
+#: doc/guix.texi:14661
 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:13858
+#: doc/guix.texi:14663
 #, no-wrap
 msgid "{Data Type} enlightenment-desktop-service-configuration"
 msgstr "{Type de données} enlightenment-desktop-service-configuration"
 
 #. type: item
-#: doc/guix.texi:13860
+#: doc/guix.texi:14665
 #, no-wrap
 msgid "@code{enlightenment} (default @code{enlightenment})"
 msgstr "@code{enlightenment} (par défaut : @code{enlightenment})"
 
 #. type: table
-#: doc/guix.texi:13862
+#: doc/guix.texi:14667
 msgid "The enlightenment package to use."
 msgstr "Le paquet enlightenment à utiliser."
 
 #. type: Plain text
-#: doc/guix.texi:13870
-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}."
+#: doc/guix.texi:14675
+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:13881
+#: doc/guix.texi:14686
 #, no-wrap
 msgid ""
 "(use-modules (gnu))\n"
@@ -25360,8 +27341,8 @@ msgid ""
 "(operating-system\n"
 "  ...\n"
 "  ;; cons* adds items to the list given as its last argument.\n"
-"  (services (cons* (gnome-desktop-service)\n"
-"                   (xfce-desktop-service)\n"
+"  (services (cons* (service gnome-desktop-service-type)\n"
+"                   (service xfce-desktop-service)\n"
 "                   %desktop-services))\n"
 "  ...)\n"
 msgstr ""
@@ -25369,401 +27350,557 @@ msgstr ""
 "(use-service-modules desktop)\n"
 "(operating-system\n"
 "  ...\n"
-"  ;; cons* ajoute les élément à la liste donnée en dernier argument\n"
-"  (services (cons* (gnome-desktop-service)\n"
-"                   (xfce-desktop-service)\n"
+"  ;; cons* ajoute des éléments à la liste donnée en dernier argument.\n"
+"  (services (cons* (service gnome-desktop-service-type)\n"
+"                   (service xfce-desktop-service)\n"
 "                   %desktop-services))\n"
 "  ...)\n"
 
 #. type: Plain text
-#: doc/guix.texi:13885
+#: doc/guix.texi:14690
 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:13889
+#: doc/guix.texi:14694
 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:13890
+#: doc/guix.texi:14695
 #, 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:13893
+#: doc/guix.texi:14698
 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:13897
+#: doc/guix.texi:14702
 msgid "@uref{http://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{http://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:13902
+#: doc/guix.texi:14707
 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:13904
+#: doc/guix.texi:14709
 #, no-wrap
 msgid "{Scheme Procedure} elogind-service [#:config @var{config}]"
 msgstr "{Procédure Scheme} elogind-service [#:config @var{config}]"
 
 #. type: deffn
-#: doc/guix.texi:13910
+#: doc/guix.texi:14715
 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:13914
+#: doc/guix.texi:14719
 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:13919
+#: doc/guix.texi:14724
 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:13921
+#: doc/guix.texi:14726
 #, no-wrap
 msgid "kill-user-processes?"
 msgstr "kill-user-processes?"
 
 #. type: code{#1}
-#: doc/guix.texi:13923 doc/guix.texi:13941 doc/guix.texi:13943
-#: doc/guix.texi:13945 doc/guix.texi:13957
+#: doc/guix.texi:14728 doc/guix.texi:14746 doc/guix.texi:14748
+#: doc/guix.texi:14750 doc/guix.texi:14762
 msgid "#f"
 msgstr "#f"
 
 #. type: item
-#: doc/guix.texi:13923
+#: doc/guix.texi:14728
 #, no-wrap
 msgid "kill-only-users"
 msgstr "kill-only-users"
 
 #. type: code{#1}
-#: doc/guix.texi:13925 doc/guix.texi:13963
+#: doc/guix.texi:14730 doc/guix.texi:14768
 msgid "()"
 msgstr "()"
 
 #. type: item
-#: doc/guix.texi:13925
+#: doc/guix.texi:14730
 #, no-wrap
 msgid "kill-exclude-users"
 msgstr "kill-exclude-users"
 
 #. type: code{#1}
-#: doc/guix.texi:13927
+#: doc/guix.texi:14732
 msgid "(\"root\")"
 msgstr "(\"root\")"
 
 #. type: item
-#: doc/guix.texi:13927
+#: doc/guix.texi:14732
 #, no-wrap
 msgid "inhibit-delay-max-seconds"
 msgstr "inhibit-delay-max-seconds"
 
 #. type: code{#1}
-#: doc/guix.texi:13929
+#: doc/guix.texi:14734
 msgid "5"
 msgstr "5"
 
 #. type: item
-#: doc/guix.texi:13929
+#: doc/guix.texi:14734
 #, no-wrap
 msgid "handle-power-key"
 msgstr "handle-power-key"
 
 #. type: code{#1}
-#: doc/guix.texi:13931
+#: doc/guix.texi:14736
 msgid "poweroff"
 msgstr "poweroff"
 
 #. type: item
-#: doc/guix.texi:13931
+#: doc/guix.texi:14736
 #, no-wrap
 msgid "handle-suspend-key"
 msgstr "handle-suspend-key"
 
 #. type: code{#1}
-#: doc/guix.texi:13933 doc/guix.texi:13937
+#: doc/guix.texi:14738 doc/guix.texi:14742
 msgid "suspend"
 msgstr "suspend"
 
 #. type: item
-#: doc/guix.texi:13933
+#: doc/guix.texi:14738
 #, no-wrap
 msgid "handle-hibernate-key"
 msgstr "handle-hibernate-key"
 
 #. type: code{#1}
-#: doc/guix.texi:13935
+#: doc/guix.texi:14740
 msgid "hibernate"
 msgstr "hibernate"
 
 #. type: item
-#: doc/guix.texi:13935
+#: doc/guix.texi:14740
 #, no-wrap
 msgid "handle-lid-switch"
 msgstr "handle-lid-switch"
 
 #. type: item
-#: doc/guix.texi:13937
+#: doc/guix.texi:14742
 #, no-wrap
 msgid "handle-lid-switch-docked"
 msgstr "handle-lid-switch-docked"
 
 #. type: code{#1}
-#: doc/guix.texi:13939 doc/guix.texi:13951
+#: doc/guix.texi:14744 doc/guix.texi:14756
 msgid "ignore"
 msgstr "ignore"
 
 #. type: item
-#: doc/guix.texi:13939
+#: doc/guix.texi:14744
 #, no-wrap
 msgid "power-key-ignore-inhibited?"
 msgstr "power-key-ignore-inhibited?"
 
 #. type: item
-#: doc/guix.texi:13941
+#: doc/guix.texi:14746
 #, no-wrap
 msgid "suspend-key-ignore-inhibited?"
 msgstr "suspend-key-ignore-inhibited?"
 
 #. type: item
-#: doc/guix.texi:13943
+#: doc/guix.texi:14748
 #, no-wrap
 msgid "hibernate-key-ignore-inhibited?"
 msgstr "hibernate-key-ignore-inhibited?"
 
 #. type: item
-#: doc/guix.texi:13945
+#: doc/guix.texi:14750
 #, no-wrap
 msgid "lid-switch-ignore-inhibited?"
 msgstr "lid-switch-ignore-inhibited?"
 
 #. type: code{#1}
-#: doc/guix.texi:13947 doc/guix.texi:13959
+#: doc/guix.texi:14752 doc/guix.texi:14764
 msgid "#t"
 msgstr "#t"
 
 #. type: item
-#: doc/guix.texi:13947
+#: doc/guix.texi:14752
 #, no-wrap
 msgid "holdoff-timeout-seconds"
 msgstr "holdoff-timeout-seconds"
 
 #. type: code{#1}
-#: doc/guix.texi:13949
+#: doc/guix.texi:14754
 msgid "30"
 msgstr "30"
 
 #. type: item
-#: doc/guix.texi:13949
+#: doc/guix.texi:14754
 #, no-wrap
 msgid "idle-action"
 msgstr "idle-action"
 
 #. type: item
-#: doc/guix.texi:13951
+#: doc/guix.texi:14756
 #, no-wrap
 msgid "idle-action-seconds"
 msgstr "idle-action-seconds"
 
 #. type: code{#1}
-#: doc/guix.texi:13953
+#: doc/guix.texi:14758
 msgid "(* 30 60)"
 msgstr "(* 30 60)"
 
 #. type: item
-#: doc/guix.texi:13953
+#: doc/guix.texi:14758
 #, no-wrap
 msgid "runtime-directory-size-percent"
 msgstr "runtime-directory-size-percent"
 
 #. type: code{#1}
-#: doc/guix.texi:13955
+#: doc/guix.texi:14760
 msgid "10"
 msgstr "10"
 
 #. type: item
-#: doc/guix.texi:13955
+#: doc/guix.texi:14760
 #, no-wrap
 msgid "runtime-directory-size"
 msgstr "runtime-directory-size"
 
 #. type: item
-#: doc/guix.texi:13957
+#: doc/guix.texi:14762
 #, no-wrap
 msgid "remove-ipc?"
 msgstr "remove-ipc?"
 
 #. type: item
-#: doc/guix.texi:13959
+#: doc/guix.texi:14764
 #, no-wrap
 msgid "suspend-state"
 msgstr "suspend-state"
 
 #. type: code{#1}
-#: doc/guix.texi:13961
+#: doc/guix.texi:14766
 msgid "(\"mem\" \"standby\" \"freeze\")"
 msgstr "(\"mem\" \"standby\" \"freeze\")"
 
 #. type: item
-#: doc/guix.texi:13961
+#: doc/guix.texi:14766
 #, no-wrap
 msgid "suspend-mode"
 msgstr "suspend-mode"
 
 #. type: item
-#: doc/guix.texi:13963
+#: doc/guix.texi:14768
 #, no-wrap
 msgid "hibernate-state"
 msgstr "hibernate-state"
 
 #. type: code{#1}
-#: doc/guix.texi:13965 doc/guix.texi:13969
+#: doc/guix.texi:14770 doc/guix.texi:14774
 msgid "(\"disk\")"
 msgstr "(\"disk\")"
 
 #. type: item
-#: doc/guix.texi:13965
+#: doc/guix.texi:14770
 #, no-wrap
 msgid "hibernate-mode"
 msgstr "hibernate-mode"
 
 #. type: code{#1}
-#: doc/guix.texi:13967
+#: doc/guix.texi:14772
 msgid "(\"platform\" \"shutdown\")"
 msgstr "(\"platform\" \"shutdown\")"
 
 #. type: item
-#: doc/guix.texi:13967
+#: doc/guix.texi:14772
 #, no-wrap
 msgid "hybrid-sleep-state"
 msgstr "hybrid-sleep-state"
 
 #. type: item
-#: doc/guix.texi:13969
+#: doc/guix.texi:14774
 #, no-wrap
 msgid "hybrid-sleep-mode"
 msgstr "hybrid-sleep-mode"
 
 #. type: code{#1}
-#: doc/guix.texi:13971
+#: doc/guix.texi:14776
 msgid "(\"suspend\" \"platform\" \"shutdown\")"
 msgstr "(\"suspend\" \"platform\" \"shutdown\")"
 
 #. type: deffn
-#: doc/guix.texi:13974
+#: doc/guix.texi:14779
 #, no-wrap
 msgid "{Scheme Procedure} accountsservice-service @"
 msgstr "{Procédure Scheme} accountsservice-service @"
 
 #. type: deffn
-#: doc/guix.texi:13982
+#: doc/guix.texi:14787
 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:13985
+#: doc/guix.texi:14790
 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:13987
+#: doc/guix.texi:14792
 #, no-wrap
 msgid "{Scheme Procedure} polkit-service @"
 msgstr "{Procédure Scheme} polkit-service @"
 
 #. type: deffn
-#: doc/guix.texi:13996
+#: doc/guix.texi:14801
 msgid "[#:polkit @var{polkit}] Return a service that runs the @uref{http://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{http://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: deffn
-#: doc/guix.texi:13998
+#. type: defvr
+#: doc/guix.texi:14803
 #, no-wrap
-msgid "{Scheme Procedure} upower-service [#:upower @var{upower}] @"
-msgstr "{Procédure Scheme} upower-service [#:upower @var{upower}] @"
+msgid "{Scheme Variable} upower-service-type"
+msgstr "{Variable Scheme} upower-service-type"
 
-#. type: deffn
-#: doc/guix.texi:14015
-msgid "[#:watts-up-pro? #f] @ [#:poll-batteries? #t] @ [#:ignore-lid? #f] @ [#:use-percentage-for-policy? #f] @ [#:percentage-low 10] @ [#:percentage-critical 3] @ [#:percentage-action 2] @ [#:time-low 1200] @ [#:time-critical 300] @ [#:time-action 120] @ [#:critical-power-action 'hybrid-sleep] Return a service that runs @uref{http://upower.freedesktop.org/, @command{upowerd}}, a system-wide monitor for power consumption and battery levels, with the given configuration settings.  It implements the @code{org.freedesktop.UPower} D-Bus interface, and is notably used by GNOME."
-msgstr ""
-"[#:watts-up-pro? #f] @\n"
-"[#:poll-batteries? #t] @\n"
-"[#:ignore-lid? #f] @\n"
-"[#:use-percentage-for-policy? #f] @\n"
-"[#:percentage-low 10] @\n"
-"[#:percentage-critical 3] @\n"
-"[#:percentage-action 2] @\n"
-"[#:time-low 1200] @\n"
-"[#:time-critical 300] @\n"
-"[#:time-action 120] @\n"
-"[#:critical-power-action 'hybrid-sleep] \n"
-"Renvoie un service qui lance @uref{http://upower.freedesktop.org/, @command{upowerd}}, un moniteur système pour la consommation électrique et le niveau de batterie, avec les paramètres de configuration données.  Il implémente l'interface D-Bus @code{org.freedesktop.UPower} et est notamment utilisé par GNOME."
+#. type: defvr
+#: doc/guix.texi:14807
+msgid "Service that runs @uref{http://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{http://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:14810
+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:14812
+#, no-wrap
+msgid "{Data Type} upower-configuration"
+msgstr "{Type de données} upower-configuration"
+
+#. type: deftp
+#: doc/guix.texi:14814
+msgid "Data type representation the configuration for UPower."
+msgstr "Type de données représentant la configuration de UPower."
+
+#. type: item
+#: doc/guix.texi:14817
+#, no-wrap
+msgid "@code{upower} (default: @var{upower})"
+msgstr "@code{upower} (par défaut : @var{upower})"
+
+#. type: table
+#: doc/guix.texi:14819
+msgid "Package to use for @code{upower}."
+msgstr "Paquet à utiliser pour @code{upower}."
+
+#. type: item
+#: doc/guix.texi:14820
+#, 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:14822
+msgid "Enable the Watts Up Pro device."
+msgstr "Active le périphérique Watts Up Pro."
+
+#. type: item
+#: doc/guix.texi:14823
+#, no-wrap
+msgid "@code{poll-batteries?} (default: @code{#t})"
+msgstr "@code{poll-batteries?} (par défaut : @code{#t})"
+
+#. type: table
+#: doc/guix.texi:14825
+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:14826
+#, no-wrap
+msgid "@code{ignore-lid?} (default: @code{#f})"
+msgstr "@code{ignore-lid?} (par défaut : @code{#f})"
+
+#. type: table
+#: doc/guix.texi:14828
+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:14829
+#, 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:14832
+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:14833
+#, no-wrap
+msgid "@code{percentage-low} (default: @code{10})"
+msgstr "@code{percentage-low} (par défaut : @code{10})"
+
+#. type: table
+#: doc/guix.texi:14836
+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:14837
+#, no-wrap
+msgid "@code{percentage-critical} (default: @code{3})"
+msgstr "@code{percentage-critical} (par défaut : @code{3})"
+
+#. type: table
+#: doc/guix.texi:14840
+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:14841
+#, no-wrap
+msgid "@code{percentage-action} (default: @code{2})"
+msgstr "@code{percentage-action} (par défaut : @code{2})"
+
+#. type: table
+#: doc/guix.texi:14844
+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:14845
+#, no-wrap
+msgid "@code{time-low} (default: @code{1200})"
+msgstr "@code{time-low} (par défaut : @code{1200})"
+
+#. type: table
+#: doc/guix.texi:14848
+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:14849
+#, no-wrap
+msgid "@code{time-critical} (default: @code{300})"
+msgstr "@code{time-critical} (par défaut : @code{300})"
+
+#. type: table
+#: doc/guix.texi:14852
+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:14853
+#, no-wrap
+msgid "@code{time-action} (default: @code{120})"
+msgstr "@code{time-action} (par défaut : @code{120})"
+
+#. type: table
+#: doc/guix.texi:14856
+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:14857
+#, 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:14860
+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:14862
+msgid "Possible values are:"
+msgstr "Les valeurs possibles sont :"
+
+#. type: code{#1}
+#: doc/guix.texi:14866
+msgid "'power-off"
+msgstr "'power-off"
+
+#. type: code{#1}
+#: doc/guix.texi:14869
+msgid "'hibernate"
+msgstr "'hibernate"
+
+#. type: itemize
+#: doc/guix.texi:14872
+msgid "@code{'hybrid-sleep}."
+msgstr "@code{'hybrid-sleep}."
 
 #. type: deffn
-#: doc/guix.texi:14017
+#: doc/guix.texi:14877
 #, no-wrap
 msgid "{Scheme Procedure} udisks-service [#:udisks @var{udisks}]"
 msgstr "{Procédure Scheme} udisks-service [#:udisks @var{udisks}]"
 
 #. type: deffn
-#: doc/guix.texi:14022
+#: doc/guix.texi:14882
 msgid "Return a service for @uref{http://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{http://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."
 
 #. type: deffn
-#: doc/guix.texi:14024
+#: doc/guix.texi:14884
 #, no-wrap
 msgid "{Scheme Procedure} colord-service [#:colord @var{colord}]"
 msgstr "{Procédure Scheme} colord-service [#:colord @var{colord}]"
 
 #. type: deffn
-#: doc/guix.texi:14030
+#: doc/guix.texi:14890
 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{http://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{http://www.freedesktop.org/software/colord/, le site web de colord} pour plus d'informations."
 
 #. type: deffn
-#: doc/guix.texi:14032
+#: doc/guix.texi:14892
 #, 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:14041
+#: doc/guix.texi:14901
 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: defvr
-#: doc/guix.texi:14043
+#: doc/guix.texi:14903
 #, no-wrap
 msgid "{Scheme Variable} %standard-geoclue-applications"
 msgstr "{Variable Scheme} %standard-geoclue-applications"
 
 #. type: defvr
-#: doc/guix.texi:14050
+#: doc/guix.texi:14910
 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."
+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:14052
+#: doc/guix.texi:14912
 #, no-wrap
 msgid "{Scheme Procedure} geoclue-service [#:colord @var{colord}] @"
 msgstr "{Procédure Scheme} geoclue-service [#:colord @var{colord}] @"
 
 #. type: deffn
-#: doc/guix.texi:14065
+#: doc/guix.texi:14925
 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"
@@ -25774,124 +27911,124 @@ 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:14067
+#: doc/guix.texi:14927
 #, no-wrap
 msgid "{Scheme Procedure} bluetooth-service [#:bluez @var{bluez}] @"
 msgstr "{Procédure Scheme} bluetooth-service [#:bluez @var{bluez}] @"
 
 #. type: deffn
-#: doc/guix.texi:14074
+#: doc/guix.texi:14934
 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:14076
+#: doc/guix.texi:14936
 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: cindex
-#: doc/guix.texi:14081
+#: doc/guix.texi:14941
 #, no-wrap
 msgid "sound support"
 msgstr "support du son"
 
 #. type: cindex
-#: doc/guix.texi:14082
+#: doc/guix.texi:14942
 #, no-wrap
 msgid "ALSA"
 msgstr "ALSA"
 
 #. type: cindex
-#: doc/guix.texi:14083
+#: doc/guix.texi:14943
 #, no-wrap
 msgid "PulseAudio, sound support"
 msgstr "PulseAudio, support du son"
 
 #. type: Plain text
-#: doc/guix.texi:14088
+#: doc/guix.texi:14948
 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:14089
+#: doc/guix.texi:14949
 #, no-wrap
 msgid "{Scheme Variable} alsa-service-type"
 msgstr "{Variable Scheme} alsa-service-type"
 
 #. type: deffn
-#: doc/guix.texi:14094
+#: doc/guix.texi:14954
 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:14097
+#: doc/guix.texi:14957
 #, no-wrap
 msgid "(service alsa-service-type)\n"
 msgstr "(service alsa-service-type)\n"
 
 #. type: deffn
-#: doc/guix.texi:14100
+#: doc/guix.texi:14960
 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:14102
+#: doc/guix.texi:14962
 #, no-wrap
 msgid "{Data Type} alsa-configuration"
 msgstr "{Type de données} alsa-configuration"
 
 #. type: deftp
-#: doc/guix.texi:14104
+#: doc/guix.texi:14964
 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:14106
+#: doc/guix.texi:14966
 #, 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:14108
+#: doc/guix.texi:14968
 msgid "@code{alsa-plugins} package to use."
 msgstr "Le paquet @code{alsa-plugins} à utiliser."
 
 #. type: item
-#: doc/guix.texi:14109
+#: doc/guix.texi:14969
 #, no-wrap
 msgid "@code{pulseaudio?} (default: @var{#t})"
 msgstr "@code{pulseaudio?} (par défaut : @var{#t})"
 
 #. type: table
-#: doc/guix.texi:14112
+#: doc/guix.texi:14972
 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."
 
 #. type: table
-#: doc/guix.texi:14116
+#: doc/guix.texi:14976
 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:14117
+#: doc/guix.texi:14977
 #, no-wrap
 msgid "@code{extra-options} (default: @var{\"\"})"
 msgstr "@code{extra-options} (par défaut : @var{\"\"})"
 
 #. type: table
-#: doc/guix.texi:14119
+#: doc/guix.texi:14979
 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:14125
+#: doc/guix.texi:14985
 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:14131
+#: doc/guix.texi:14991
 #, no-wrap
 msgid ""
 "# In guix, we have to specify the absolute path for plugins.\n"
@@ -25907,7 +28044,7 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix.texi:14140
+#: doc/guix.texi:15000
 #, no-wrap
 msgid ""
 "# Routing ALSA to jack:\n"
@@ -25931,7 +28068,7 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix.texi:14146
+#: doc/guix.texi:15006
 #, no-wrap
 msgid ""
 "  capture_ports @{\n"
@@ -25949,7 +28086,7 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix.texi:14153
+#: doc/guix.texi:15013
 #, no-wrap
 msgid ""
 "pcm.!default @{\n"
@@ -25967,350 +28104,427 @@ msgstr ""
 "@}\n"
 
 #. type: Plain text
-#: doc/guix.texi:14157
+#: doc/guix.texi:15017
 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: cindex
-#: doc/guix.texi:14163
+#: doc/guix.texi:15023
 #, no-wrap
 msgid "SQL"
 msgstr "SQL"
 
 #. type: Plain text
-#: doc/guix.texi:14165
+#: doc/guix.texi:15025
 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:14166
+#: doc/guix.texi:15026
 #, no-wrap
 msgid "{Scheme Procedure} postgresql-service [#:postgresql postgresql] @"
 msgstr "{Procédure Scheme} postgresql-service [#:postgresql postgresql] @"
 
 #. type: deffn
-#: doc/guix.texi:14171
-msgid "[#:config-file] [#:data-directory ``/var/lib/postgresql/data''] @ [#:port 5432] [#:locale ``en_US.utf8''] Return a service that runs @var{postgresql}, the PostgreSQL database server."
+#: doc/guix.texi:15031
+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''] \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."
 
 #. type: deffn
-#: doc/guix.texi:14175
+#: doc/guix.texi:15035
 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: cindex
+#: doc/guix.texi:15036
+#, no-wrap
+msgid "postgresql extension-packages"
+msgstr "postgresql extension-packages"
+
 #. type: deffn
-#: doc/guix.texi:14177
+#: doc/guix.texi:15041
+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:15042
+#, no-wrap
+msgid "postgis"
+msgstr "postgis"
+
+#. type: example
+#: doc/guix.texi:15045
+#, no-wrap
+msgid ""
+"(use-package-modules databases geo)\n"
+"\n"
+msgstr ""
+"(use-package-modules databases geo)\n"
+"\n"
+
+#. type: example
+#: doc/guix.texi:15055
+#, no-wrap
+msgid ""
+"(operating-system\n"
+"  ...\n"
+"  ;; postgresql is required to run `psql' but postgis is not required for\n"
+"  ;; proper operation.\n"
+"  (packages (cons* postgresql %base-packages))\n"
+"  (services\n"
+"    (cons*\n"
+"      (postgresql-service #:extension-packages (list postgis))\n"
+"      %base-services)))\n"
+msgstr ""
+"(operating-system\n"
+"  ...\n"
+"  ;; postgresql est requis pour lancer `psql' mais postgis n'est pas requis pour son\n"
+"  ;; bon fonctionnement.\n"
+"  (packages (cons* postgresql %base-packages))\n"
+"  (services\n"
+"    (cons*\n"
+"      (postgresql-service #:extension-packages (list postgis))\n"
+"      %base-services)))\n"
+
+#. type: deffn
+#: doc/guix.texi:15059
+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:15066
+#, no-wrap
+msgid ""
+"psql -U postgres\n"
+"> create database postgistest;\n"
+"> \\connect postgistest;\n"
+"> create extension postgis;\n"
+"> create extension postgis_topology;\n"
+msgstr ""
+"psql -U postgres\n"
+"> create database postgistest;\n"
+"> \\connect postgistest;\n"
+"> create extension postgis;\n"
+"> create extension postgis_topology;\n"
+
+#. type: deffn
+#: doc/guix.texi:15071
+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: deffn
+#: doc/guix.texi:15073
 #, no-wrap
 msgid "{Scheme Procedure} mysql-service [#:config (mysql-configuration)]"
 msgstr "{Procédure Scheme} mysql-service [#:config (mysql-configuration)]"
 
 #. type: deffn
-#: doc/guix.texi:14180
+#: doc/guix.texi:15076
 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:14183
+#: doc/guix.texi:15079
 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:14185
+#: doc/guix.texi:15081
 #, no-wrap
 msgid "{Data Type} mysql-configuration"
 msgstr "{Type de données} mysql-configuration"
 
 #. type: deftp
-#: doc/guix.texi:14187
+#: doc/guix.texi:15083
 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:14189
+#: doc/guix.texi:15085
 #, no-wrap
 msgid "@code{mysql} (default: @var{mariadb})"
 msgstr "@code{mysql} (par défaut : @var{mariadb})"
 
 #. type: table
-#: doc/guix.texi:14192
+#: doc/guix.texi:15088
 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:14195
+#: doc/guix.texi:15091
 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:14196
+#: doc/guix.texi:15092
 #, no-wrap
 msgid "@code{port} (default: @code{3306})"
 msgstr "@code{port} (par défaut : @code{3306})"
 
 #. type: table
-#: doc/guix.texi:14198
+#: doc/guix.texi:15094
 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: defvr
-#: doc/guix.texi:14201
+#: doc/guix.texi:15097
 #, no-wrap
 msgid "{Scheme Variable} memcached-service-type"
 msgstr "{Variable Scheme} memcached-service-type"
 
 #. type: defvr
-#: doc/guix.texi:14205
+#: doc/guix.texi:15101
 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:14209
+#: doc/guix.texi:15105
 #, no-wrap
 msgid "(service memcached-service-type)\n"
 msgstr "(service memcached-service-type)\n"
 
 #. type: deftp
-#: doc/guix.texi:14211
+#: doc/guix.texi:15107
 #, no-wrap
 msgid "{Data Type} memcached-configuration"
 msgstr "{Type de données} memcached-configuration"
 
 #. type: deftp
-#: doc/guix.texi:14213
+#: doc/guix.texi:15109
 msgid "Data type representing the configuration of memcached."
 msgstr "Type de données représentant la configuration de memcached."
 
 #. type: item
-#: doc/guix.texi:14215
+#: doc/guix.texi:15111
 #, no-wrap
 msgid "@code{memcached} (default: @code{memcached})"
 msgstr "@code{memcached} (par défaut : @code{memcached})"
 
 #. type: table
-#: doc/guix.texi:14217
+#: doc/guix.texi:15113
 msgid "The Memcached package to use."
 msgstr "Le paquet Memcached à utiliser."
 
 #. type: item
-#: doc/guix.texi:14218
+#: doc/guix.texi:15114
 #, 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:14220
+#: doc/guix.texi:15116
 msgid "Network interfaces on which to listen."
 msgstr "Les interfaces réseaux sur lesquelles écouter."
 
 #. type: item
-#: doc/guix.texi:14221
+#: doc/guix.texi:15117
 #, no-wrap
 msgid "@code{tcp-port} (default: @code{11211})"
 msgstr "@code{tcp-port} (par défaut : @code{11211})"
 
 #. type: table
-#: doc/guix.texi:14223
+#: doc/guix.texi:15119
 msgid "Port on which to accept connections on,"
 msgstr "Port sur lequel accepter les connexions."
 
 #. type: item
-#: doc/guix.texi:14224
+#: doc/guix.texi:15120
 #, no-wrap
 msgid "@code{udp-port} (default: @code{11211})"
 msgstr "@code{udp-port} (par défaut : @code{11211})"
 
 #. type: table
-#: doc/guix.texi:14227
+#: doc/guix.texi:15123
 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:14228
+#: doc/guix.texi:15124
 #, no-wrap
 msgid "@code{additional-options} (default: @code{'()})"
 msgstr "@code{additional-options} (par défaut : @code{'()})"
 
 #. type: table
-#: doc/guix.texi:14230
+#: doc/guix.texi:15126
 msgid "Additional command line options to pass to @code{memcached}."
 msgstr "Options de la ligne de commande supplémentaires à passer à @code{memcached}."
 
 #. type: defvr
-#: doc/guix.texi:14233
+#: doc/guix.texi:15129
 #, no-wrap
 msgid "{Scheme Variable} mongodb-service-type"
 msgstr "{Variable Scheme} mongodb-service-type"
 
 #. type: defvr
-#: doc/guix.texi:14236
+#: doc/guix.texi:15132
 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:14240
+#: doc/guix.texi:15136
 #, no-wrap
 msgid "(service mongodb-service-type)\n"
 msgstr "(service mongodb-service-type)\n"
 
 #. type: deftp
-#: doc/guix.texi:14242
+#: doc/guix.texi:15138
 #, no-wrap
 msgid "{Data Type} mongodb-configuration"
 msgstr "{Type de données} mongodb-configuration"
 
 #. type: deftp
-#: doc/guix.texi:14244
+#: doc/guix.texi:15140
 msgid "Data type representing the configuration of mongodb."
 msgstr "Type de données représentant la configuration de mongodb."
 
 #. type: item
-#: doc/guix.texi:14246
+#: doc/guix.texi:15142
 #, no-wrap
 msgid "@code{mongodb} (default: @code{mongodb})"
 msgstr "@code{mongodb} (par défaut : @code{mongodb})"
 
 #. type: table
-#: doc/guix.texi:14248
+#: doc/guix.texi:15144
 msgid "The MongoDB package to use."
 msgstr "Le paquet MongoDB à utiliser."
 
 #. type: item
-#: doc/guix.texi:14249
+#: doc/guix.texi:15145
 #, 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:14251
+#: doc/guix.texi:15147
 msgid "The configuration file for MongoDB."
 msgstr "Le fichier de configuration pour MongoDB."
 
 #. type: item
-#: doc/guix.texi:14252
+#: doc/guix.texi:15148
 #, 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:14256
+#: doc/guix.texi:15152
 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: defvr
-#: doc/guix.texi:14259
+#: doc/guix.texi:15155
 #, no-wrap
 msgid "{Scheme Variable} redis-service-type"
 msgstr "{Variable Scheme} redis-service-type"
 
 #. type: defvr
-#: doc/guix.texi:14262
+#: doc/guix.texi:15158
 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:14264
+#: doc/guix.texi:15160
 #, no-wrap
 msgid "{Data Type} redis-configuration"
 msgstr "{Type de données} redis-configuration"
 
 #. type: deftp
-#: doc/guix.texi:14266
+#: doc/guix.texi:15162
 msgid "Data type representing the configuration of redis."
 msgstr "Type de données représentant la configuration de redis."
 
 #. type: item
-#: doc/guix.texi:14268
+#: doc/guix.texi:15164
 #, no-wrap
 msgid "@code{redis} (default: @code{redis})"
 msgstr "@code{redis} (par défaut : @code{redis})"
 
 #. type: table
-#: doc/guix.texi:14270
+#: doc/guix.texi:15166
 msgid "The Redis package to use."
 msgstr "Le paquet Redis à utiliser."
 
 #. type: item
-#: doc/guix.texi:14271
+#: doc/guix.texi:15167
 #, 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:14273
+#: doc/guix.texi:15169
 msgid "Network interface on which to listen."
 msgstr "Interface réseau sur laquelle écouter."
 
 #. type: item
-#: doc/guix.texi:14274
+#: doc/guix.texi:15170
 #, no-wrap
 msgid "@code{port} (default: @code{6379})"
 msgstr "@code{port} (par défaut : @code{6379})"
 
 #. type: table
-#: doc/guix.texi:14277
+#: doc/guix.texi:15173
 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:14278
+#: doc/guix.texi:15174
 #, 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:14280
+#: doc/guix.texi:15176
 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:14286
+#: doc/guix.texi:15182
 #, no-wrap
 msgid "mail"
 msgstr "courriel"
 
 #. type: code{#1}
-#: doc/guix.texi:14287 doc/guix.texi:17627
+#: doc/guix.texi:15183 doc/guix.texi:19383
 #, no-wrap
 msgid "email"
 msgstr "email"
 
 #. type: Plain text
-#: doc/guix.texi:14292
+#: doc/guix.texi:15188
 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:14293
+#: doc/guix.texi:15189
 #, no-wrap
 msgid "Dovecot Service"
 msgstr "Service Dovecot"
 
 #. type: deffn
-#: doc/guix.texi:14295
+#: doc/guix.texi:15191
 #, no-wrap
 msgid "{Scheme Procedure} dovecot-service [#:config (dovecot-configuration)]"
 msgstr "{Procédure Scheme} dovecot-service [#:config (dovecot-configuration)]"
 
 #. type: deffn
-#: doc/guix.texi:14297
+#: doc/guix.texi:15193
 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:14307
+#: doc/guix.texi:15203
 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:14310
+#: doc/guix.texi:15206
 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:14315
+#: doc/guix.texi:15211
 #, no-wrap
 msgid ""
 "(dovecot-service #:config\n"
@@ -26322,2379 +28536,2379 @@ msgstr ""
 "                  (mail-location \"maildir:~/.mail\")))\n"
 
 #. type: Plain text
-#: doc/guix.texi:14323
+#: doc/guix.texi:15219
 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:14333
+#: doc/guix.texi:15229
 msgid "Available @code{dovecot-configuration} fields are:"
 msgstr "Les champs de @code{dovecot-configuration} disponibles sont :"
 
 #. type: deftypevr
-#: doc/guix.texi:14334
+#: doc/guix.texi:15230
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} package dovecot"
 msgstr "{paramètre de @code{dovecot-configuration}} package dovecot"
 
 #. type: deftypevr
-#: doc/guix.texi:14336 doc/guix.texi:15642
+#: doc/guix.texi:15232 doc/guix.texi:16538
 msgid "The dovecot package."
-msgstr "Le paquet dovecot"
+msgstr "Le paquet dovecot."
 
 #. type: deftypevr
-#: doc/guix.texi:14338
+#: doc/guix.texi:15234
 #, 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:14344
+#: doc/guix.texi:15240
 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:14346
+#: doc/guix.texi:15242
 #, 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:14349
+#: doc/guix.texi:15245
 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:14351
+#: doc/guix.texi:15247
 msgid "Available @code{protocol-configuration} fields are:"
 msgstr "Les champs @code{protocol-configuration} disponibles sont :"
 
 #. type: deftypevr
-#: doc/guix.texi:14352
+#: doc/guix.texi:15248
 #, no-wrap
 msgid "{@code{protocol-configuration} parameter} string name"
 msgstr "{paramètre de @code{protocol-configuration}} string name"
 
 #. type: deftypevr
-#: doc/guix.texi:14354
+#: doc/guix.texi:15250
 msgid "The name of the protocol."
 msgstr "Le nom du protocole."
 
 #. type: deftypevr
-#: doc/guix.texi:14356
+#: doc/guix.texi:15252
 #, 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:14360
+#: doc/guix.texi:15256
 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:14362
+#: doc/guix.texi:15258
 #, 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:14364
+#: doc/guix.texi:15260
 msgid "Space separated list of plugins to load."
 msgstr "Liste de greffons à charger séparés par des espaces."
 
 #. type: deftypevr
-#: doc/guix.texi:14366
+#: doc/guix.texi:15262
 #, 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:14370
+#: doc/guix.texi:15266
 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:14374
+#: doc/guix.texi:15270
 #, 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:14378
+#: doc/guix.texi:15274
 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:14380
+#: doc/guix.texi:15276
 msgid "Available @code{service-configuration} fields are:"
 msgstr "Les champs de @code{service-configuration} disponibles sont :"
 
 #. type: deftypevr
-#: doc/guix.texi:14381
+#: doc/guix.texi:15277
 #, no-wrap
 msgid "{@code{service-configuration} parameter} string kind"
 msgstr "{paramètre de @code{service-configuration}} string kind"
 
 #. type: deftypevr
-#: doc/guix.texi:14386
+#: doc/guix.texi:15282
 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:14388
+#: doc/guix.texi:15284
 #, 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:14393
+#: doc/guix.texi:15289
 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:14395
+#: doc/guix.texi:15291
 msgid "Available @code{unix-listener-configuration} fields are:"
 msgstr "Les champs de @code{unix-listener-configuration} disponibles sont :"
 
 #. type: deftypevr
-#: doc/guix.texi:14396
+#: doc/guix.texi:15292
 #, 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:14399 doc/guix.texi:14422
+#: doc/guix.texi:15295 doc/guix.texi:15318
 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:14401
+#: doc/guix.texi:15297
 #, 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:14404 doc/guix.texi:14427
+#: doc/guix.texi:15300 doc/guix.texi:15323
 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:14406
+#: doc/guix.texi:15302
 #, 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:14409 doc/guix.texi:14432
+#: doc/guix.texi:15305 doc/guix.texi:15328
 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:14411
+#: doc/guix.texi:15307
 #, 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:14414 doc/guix.texi:14437
+#: doc/guix.texi:15310 doc/guix.texi:15333
 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:14418
+#: doc/guix.texi:15314
 msgid "Available @code{fifo-listener-configuration} fields are:"
 msgstr "Les champs de @code{fifo-listener-configuration} disponibles sont :"
 
 #. type: deftypevr
-#: doc/guix.texi:14419
+#: doc/guix.texi:15315
 #, 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:14424
+#: doc/guix.texi:15320
 #, 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:14429
+#: doc/guix.texi:15325
 #, 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:14434
+#: doc/guix.texi:15330
 #, 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:14441
+#: doc/guix.texi:15337
 msgid "Available @code{inet-listener-configuration} fields are:"
 msgstr "Les champs de @code{inet-listener-configuration} disponibles sont :"
 
 #. type: deftypevr
-#: doc/guix.texi:14442
+#: doc/guix.texi:15338
 #, 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:14444
+#: doc/guix.texi:15340
 msgid "The protocol to listen for."
 msgstr "Le protocole à écouter."
 
 #. type: deftypevr
-#: doc/guix.texi:14446
+#: doc/guix.texi:15342
 #, 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:14449
+#: doc/guix.texi:15345
 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:14451
+#: doc/guix.texi:15347
 #, 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:14453
+#: doc/guix.texi:15349
 msgid "The port on which to listen."
 msgstr "Le port sur lequel écouter."
 
 #. type: deftypevr
-#: doc/guix.texi:14455
+#: doc/guix.texi:15351
 #, 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:14459
+#: doc/guix.texi:15355
 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:14463
+#: doc/guix.texi:15359
 #, 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:14468
+#: doc/guix.texi:15364
 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:14473
+#: doc/guix.texi:15369
 #, 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:14478
+#: doc/guix.texi:15374
 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:14481
+#: doc/guix.texi:15377
 #, 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:14484
+#: doc/guix.texi:15380
 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:14489
+#: doc/guix.texi:15385
 #, 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:14492
+#: doc/guix.texi:15388
 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:14494
+#: doc/guix.texi:15390
 #, 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:14498
+#: doc/guix.texi:15394
 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:14502
+#: doc/guix.texi:15398
 #, 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:14505
+#: doc/guix.texi:15401
 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:14507
+#: doc/guix.texi:15403
 msgid "Available @code{dict-configuration} fields are:"
 msgstr "Les champs de @code{dict-configuration} disponibles sont :"
 
 #. type: deftypevr
-#: doc/guix.texi:14508
+#: doc/guix.texi:15404
 #, 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:14511
+#: doc/guix.texi:15407
 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:14515
+#: doc/guix.texi:15411
 #, 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:14518
+#: doc/guix.texi:15414
 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:14520
+#: doc/guix.texi:15416
 msgid "Available @code{passdb-configuration} fields are:"
 msgstr "Les champs de @code{passdb-configuration} disponibles sont :"
 
 #. type: deftypevr
-#: doc/guix.texi:14521
+#: doc/guix.texi:15417
 #, no-wrap
 msgid "{@code{passdb-configuration} parameter} string driver"
 msgstr "{paramètre de @code{passdb-configuration}} string driver"
 
 #. type: deftypevr
-#: doc/guix.texi:14526
+#: doc/guix.texi:15422
 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:14528
+#: doc/guix.texi:15424
 #, 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:14531
+#: doc/guix.texi:15427
 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:14535
+#: doc/guix.texi:15431
 #, 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:14538
+#: doc/guix.texi:15434
 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:14540
+#: doc/guix.texi:15436
 msgid "Available @code{userdb-configuration} fields are:"
 msgstr "Les champs de @code{userdb-configuration} disponibles sont :"
 
 #. type: deftypevr
-#: doc/guix.texi:14541
+#: doc/guix.texi:15437
 #, no-wrap
 msgid "{@code{userdb-configuration} parameter} string driver"
 msgstr "{paramètre de @code{userdb-configuration}} string driver"
 
 #. type: deftypevr
-#: doc/guix.texi:14545
+#: doc/guix.texi:15441
 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:14547
+#: doc/guix.texi:15443
 #, 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:14550
+#: doc/guix.texi:15446
 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:14552
+#: doc/guix.texi:15448
 #, 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:14555
+#: doc/guix.texi:15451
 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:14559
+#: doc/guix.texi:15455
 #, 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:14562
+#: doc/guix.texi:15458
 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:14564
+#: doc/guix.texi:15460
 #, 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:14567
+#: doc/guix.texi:15463
 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:14569
+#: doc/guix.texi:15465
 msgid "Available @code{namespace-configuration} fields are:"
 msgstr "Les champs de @code{namespace-configuration} disponibles sont :"
 
 #. type: deftypevr
-#: doc/guix.texi:14570
+#: doc/guix.texi:15466
 #, no-wrap
 msgid "{@code{namespace-configuration} parameter} string name"
 msgstr "{paramètre de @code{namespace-configuration}} string name"
 
 #. type: deftypevr
-#: doc/guix.texi:14572
+#: doc/guix.texi:15468
 msgid "Name for this namespace."
 msgstr "Nom de cet espace de nom."
 
 #. type: deftypevr
-#: doc/guix.texi:14574
+#: doc/guix.texi:15470
 #, no-wrap
 msgid "{@code{namespace-configuration} parameter} string type"
 msgstr "{paramètre de @code{namespace-configuration}} string type"
 
 #. type: deftypevr
-#: doc/guix.texi:14577
+#: doc/guix.texi:15473
 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:14579
+#: doc/guix.texi:15475
 #, no-wrap
 msgid "{@code{namespace-configuration} parameter} string separator"
 msgstr "{paramètre de @code{namespace-configuration}} string separator"
 
 #. type: deftypevr
-#: doc/guix.texi:14585
+#: doc/guix.texi:15481
 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:14587
+#: doc/guix.texi:15483
 #, no-wrap
 msgid "{@code{namespace-configuration} parameter} string prefix"
 msgstr "{paramètre de @code{namespace-configuration}} string prefix"
 
 #. type: deftypevr
-#: doc/guix.texi:14591
+#: doc/guix.texi:15487
 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:14593
+#: doc/guix.texi:15489
 #, no-wrap
 msgid "{@code{namespace-configuration} parameter} string location"
 msgstr "{paramètre de @code{namespace-configuration}} string location"
 
 #. type: deftypevr
-#: doc/guix.texi:14597
+#: doc/guix.texi:15493
 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:14599
+#: doc/guix.texi:15495
 #, no-wrap
 msgid "{@code{namespace-configuration} parameter} boolean inbox?"
 msgstr "{paramètre de @code{namespace-configuration}} boolean inbox?"
 
 #. type: deftypevr
-#: doc/guix.texi:14603
+#: doc/guix.texi:15499
 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:14605
+#: doc/guix.texi:15501
 #, no-wrap
 msgid "{@code{namespace-configuration} parameter} boolean hidden?"
 msgstr "{paramètre de @code{namespace-configuration}} boolean hidden?"
 
 #. type: deftypevr
-#: doc/guix.texi:14613
+#: doc/guix.texi:15509
 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:14615
+#: doc/guix.texi:15511
 #, no-wrap
 msgid "{@code{namespace-configuration} parameter} boolean list?"
 msgstr "{paramètre de @code{namespace-configuration}} boolean list?"
 
 #. type: deftypevr
-#: doc/guix.texi:14621
+#: doc/guix.texi:15517
 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:14623
+#: doc/guix.texi:15519
 #, no-wrap
 msgid "{@code{namespace-configuration} parameter} boolean subscriptions?"
 msgstr "{paramètre de @code{namespace-configuration}} boolean subscriptions?"
 
 #. type: deftypevr
-#: doc/guix.texi:14628
+#: doc/guix.texi:15524
 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:14630
+#: doc/guix.texi:15526
 #, 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:14633
+#: doc/guix.texi:15529
 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:14635
+#: doc/guix.texi:15531
 msgid "Available @code{mailbox-configuration} fields are:"
 msgstr "Les champs de @code{mailbox-configuration} disponibles sont :"
 
 #. type: deftypevr
-#: doc/guix.texi:14636
+#: doc/guix.texi:15532
 #, no-wrap
 msgid "{@code{mailbox-configuration} parameter} string name"
 msgstr "{paramètre de @code{mailbox-configuration}} string name"
 
 #. type: deftypevr
-#: doc/guix.texi:14638
+#: doc/guix.texi:15534
 msgid "Name for this mailbox."
 msgstr "Nom de cette boîte aux lettres."
 
 #. type: deftypevr
-#: doc/guix.texi:14640
+#: doc/guix.texi:15536
 #, no-wrap
 msgid "{@code{mailbox-configuration} parameter} string auto"
 msgstr "{paramètre de @code{mailbox-configuration}} string auto"
 
 #. type: deftypevr
-#: doc/guix.texi:14644
+#: doc/guix.texi:15540
 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:14646
+#: doc/guix.texi:15542
 #, 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:14651
+#: doc/guix.texi:15547
 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:14657
+#: doc/guix.texi:15553
 #, 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:14660
+#: doc/guix.texi:15556
 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:14662
+#: doc/guix.texi:15558
 #, 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:14665
+#: doc/guix.texi:15561
 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:14667
+#: doc/guix.texi:15563
 #, 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:14674
+#: doc/guix.texi:15570
 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:14676
+#: doc/guix.texi:15572
 #, 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:14679
-msgid "List of login access check sockets (e.g. tcpwrap).  Defaults to @samp{()}."
+#: doc/guix.texi:15575
+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:14681
+#: doc/guix.texi:15577
 #, 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:14687
-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 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}."
+#: doc/guix.texi:15583
+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:14689
+#: doc/guix.texi:15585
 #, 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:14695
-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}."
+#: doc/guix.texi:15591
+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:14697
+#: doc/guix.texi:15593
 #, 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:14701
+#: doc/guix.texi:15597
 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:14703
+#: doc/guix.texi:15599
 #, 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:14706
+#: doc/guix.texi:15602
 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:14708
+#: doc/guix.texi:15604
 #, 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:14712
+#: doc/guix.texi:15608
 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:14714
+#: doc/guix.texi:15610
 #, 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:14721
-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}."
+#: doc/guix.texi:15617
+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:14723
+#: doc/guix.texi:15619
 #, 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:14728
-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}."
+#: doc/guix.texi:15624
+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:14730
+#: doc/guix.texi:15626
 #, 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:14738
+#: doc/guix.texi:15634
 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:14740
+#: doc/guix.texi:15636
 #, 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:14744
+#: doc/guix.texi:15640
 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:14746
+#: doc/guix.texi:15642
 #, 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:14752
+#: doc/guix.texi:15648
 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:14754
+#: doc/guix.texi:15650
 #, 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:14759
+#: doc/guix.texi:15655
 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:14761
+#: doc/guix.texi:15657
 #, 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:14768
+#: doc/guix.texi:15664
 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:14770
+#: doc/guix.texi:15666
 #, 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:14776
+#: doc/guix.texi:15672
 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:14778
+#: doc/guix.texi:15674
 #, 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:14785
-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\"}."
+#: doc/guix.texi:15681
+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:14787
+#: doc/guix.texi:15683
 #, 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:14795
-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{\"\"}."
+#: doc/guix.texi:15691
+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:14797
+#: doc/guix.texi:15693
 #, 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:14801
+#: doc/guix.texi:15697
 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:14803
+#: doc/guix.texi:15699
 #, 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:14808
-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}."
+#: doc/guix.texi:15704
+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:14810
+#: doc/guix.texi:15706
 #, 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:14815
+#: doc/guix.texi:15711
 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:14817
+#: doc/guix.texi:15713
 #, 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:14823
+#: doc/guix.texi:15719
 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:14825
+#: doc/guix.texi:15721
 #, 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:14830
+#: doc/guix.texi:15726
 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:14832
+#: doc/guix.texi:15728
 #, 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:14835
+#: doc/guix.texi:15731
 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:14837
+#: doc/guix.texi:15733
 #, 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:14840
+#: doc/guix.texi:15736
 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:14842
+#: doc/guix.texi:15738
 #, 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:14846
+#: doc/guix.texi:15742
 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:14848
+#: doc/guix.texi:15744
 #, 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:14853
+#: doc/guix.texi:15749
 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:14855
+#: doc/guix.texi:15751
 #, 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:14861
+#: doc/guix.texi:15757
 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:14863
+#: doc/guix.texi:15759
 #, 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:14868
+#: doc/guix.texi:15764
 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:14870
+#: doc/guix.texi:15766
 #, 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:14874
+#: doc/guix.texi:15770
 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:14876
+#: doc/guix.texi:15772
 #, 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:14880
+#: doc/guix.texi:15776
 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:14882
+#: doc/guix.texi:15778
 #, 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:14887
+#: doc/guix.texi:15783
 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:14889
+#: doc/guix.texi:15785
 #, 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:14893
+#: doc/guix.texi:15789
 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:14895
+#: doc/guix.texi:15791
 #, 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:14899
+#: doc/guix.texi:15795
 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:14901
+#: doc/guix.texi:15797
 #, 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:14905
+#: doc/guix.texi:15801
 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:14907
+#: doc/guix.texi:15803
 #, 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:14912
+#: doc/guix.texi:15808
 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:14914
+#: doc/guix.texi:15810
 #, 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:14918
+#: doc/guix.texi:15814
 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:14920
+#: doc/guix.texi:15816
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} boolean auth-verbose-passwords?"
 msgstr "{paramètre de @code{dovecot-configuration}} boolean auth-verbose-passwords?"
 
 #. type: deftypevr
-#: doc/guix.texi:14927
-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{#f}."
+#: doc/guix.texi:15823
+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{#f}."
 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{#f}."
 
 #. type: deftypevr
-#: doc/guix.texi:14929
+#: doc/guix.texi:15825
 #, 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:14933
+#: doc/guix.texi:15829
 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:14935
+#: doc/guix.texi:15831
 #, 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:14940
+#: doc/guix.texi:15836
 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:14942
+#: doc/guix.texi:15838
 #, 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:14946
+#: doc/guix.texi:15842
 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:14948
+#: doc/guix.texi:15844
 #, 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:14951
+#: doc/guix.texi:15847
 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:14953
+#: doc/guix.texi:15849
 #, 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:14957
+#: doc/guix.texi:15853
 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:14959
+#: doc/guix.texi:15855
 #, 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:14963
+#: doc/guix.texi:15859
 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:14965
+#: doc/guix.texi:15861
 #, 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:14969
+#: doc/guix.texi:15865
 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:14971
+#: doc/guix.texi:15867
 #, 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:14975
+#: doc/guix.texi:15871
 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:14977
+#: doc/guix.texi:15873
 #, 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:14979
+#: doc/guix.texi:15875
 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:14980
+#: doc/guix.texi:15876
 #, no-wrap
 msgid "%$"
 msgstr "%$"
 
 #. type: table
-#: doc/guix.texi:14982
-msgid "Delivery status message (e.g. @samp{saved to INBOX})"
+#: doc/guix.texi:15878
+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:14982
+#: doc/guix.texi:15878
 #, no-wrap
 msgid "%m"
 msgstr "%m"
 
 #. type: table
-#: doc/guix.texi:14984
+#: doc/guix.texi:15880
 msgid "Message-ID"
 msgstr "Message-ID"
 
 #. type: item
-#: doc/guix.texi:14984 doc/guix.texi:15516
+#: doc/guix.texi:15880 doc/guix.texi:16412
 #, no-wrap
 msgid "%s"
 msgstr "%s"
 
 #. type: table
-#: doc/guix.texi:14986
+#: doc/guix.texi:15882
 msgid "Subject"
 msgstr "Objet"
 
 #. type: item
-#: doc/guix.texi:14986
+#: doc/guix.texi:15882
 #, no-wrap
 msgid "%f"
 msgstr "%f"
 
 #. type: table
-#: doc/guix.texi:14988
+#: doc/guix.texi:15884
 msgid "From address"
 msgstr "Adresse « de »"
 
 #. type: table
-#: doc/guix.texi:14990
+#: doc/guix.texi:15886
 msgid "Physical size"
 msgstr "Taille physique"
 
 #. type: item
-#: doc/guix.texi:14990
+#: doc/guix.texi:15886
 #, no-wrap
 msgid "%w"
 msgstr "%w"
 
 #. type: table
-#: doc/guix.texi:14992
+#: doc/guix.texi:15888
 msgid "Virtual size."
 msgstr "Taille virtuelle."
 
 #. type: deftypevr
-#: doc/guix.texi:14994
+#: doc/guix.texi:15890
 msgid "Defaults to @samp{\"msgid=%m: %$\"}."
 msgstr "La valeur par défaut est @samp{\"msgid=%m: %$\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:14996
+#: doc/guix.texi:15892
 #, 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:15001
+#: doc/guix.texi:15897
 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:15007
-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:15903
+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}."
 
 #. type: deftypevr
-#: doc/guix.texi:15009
+#: doc/guix.texi:15905
 msgid "There are a few special variables you can use, eg.:"
 msgstr "Il y a quelques variables spéciales que vous pouvez utiliser :"
 
 #. type: table
-#: doc/guix.texi:15013
+#: doc/guix.texi:15909
 msgid "username"
 msgstr "nom d'utilisateur"
 
 #. type: item
-#: doc/guix.texi:15013 doc/guix.texi:15512
+#: doc/guix.texi:15909 doc/guix.texi:16408
 #, no-wrap
 msgid "%n"
 msgstr "%n"
 
 #. type: table
-#: doc/guix.texi:15015
+#: doc/guix.texi:15911
 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."
+msgstr "la partie « utilisateur » dans « utilisateur@@domaine », comme %u s'il n'y a pas de domaine"
 
 #. type: item
-#: doc/guix.texi:15015
+#: doc/guix.texi:15911
 #, no-wrap
 msgid "%d"
 msgstr "%d"
 
 #. type: table
-#: doc/guix.texi:15017
+#: doc/guix.texi:15913
 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:15017
+#: doc/guix.texi:15913
 #, no-wrap
 msgid "%h"
 msgstr "%h"
 
 #. type: table
-#: doc/guix.texi:15019
+#: doc/guix.texi:15915
 msgid "home director"
 msgstr "répertoire personnel"
 
 #. type: deftypevr
-#: doc/guix.texi:15022
+#: doc/guix.texi:15918
 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:15023
+#: doc/guix.texi:15919
 #, no-wrap
 msgid "maildir:~/Maildir"
 msgstr "maildir:~/Maildir"
 
 #. type: item
-#: doc/guix.texi:15024
+#: doc/guix.texi:15920
 #, no-wrap
 msgid "mbox:~/mail:INBOX=/var/mail/%u"
 msgstr "mbox:~/mail:INBOX=/var/mail/%u"
 
 #. type: item
-#: doc/guix.texi:15025
+#: doc/guix.texi:15921
 #, 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:15030
+#: doc/guix.texi:15926
 #, 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:15035
+#: doc/guix.texi:15931
 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:15037
+#: doc/guix.texi:15933
 #, 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:15042
+#: doc/guix.texi:15938
 #, 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:15048
+#: doc/guix.texi:15944
 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{\"\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:15050
+#: doc/guix.texi:15946
 #, 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:15058
-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:15954
+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{\"\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:15060
+#: doc/guix.texi:15956
 #, 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:15066
-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:15962
+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}."
 
 #. type: deftypevr
-#: doc/guix.texi:15068
+#: doc/guix.texi:15964
 #, 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:15072
+#: doc/guix.texi:15968
 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}."
 
 #. type: deftypevr
-#: doc/guix.texi:15074
+#: doc/guix.texi:15970
 #, 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:15079
+#: doc/guix.texi:15975
 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:15081
+#: doc/guix.texi:15977
 #, 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:15083
+#: doc/guix.texi:15979
 msgid "When to use fsync() or fdatasync() calls:"
 msgstr "Quand utiliser les appels à fsync() ou fdatasync() :"
 
 #. type: item
-#: doc/guix.texi:15084
+#: doc/guix.texi:15980
 #, no-wrap
 msgid "optimized"
 msgstr "optimized"
 
 #. type: table
-#: doc/guix.texi:15086
+#: doc/guix.texi:15982
 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:15088
-msgid "Useful with e.g. NFS when write()s are delayed"
+#: doc/guix.texi:15984
+msgid "Useful with e.g.@: NFS when write()s are delayed"
 msgstr "Utile lorsque par exemple les écritures NFS sont retardées"
 
 #. type: table
-#: doc/guix.texi:15090
+#: doc/guix.texi:15986
 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:15092
+#: doc/guix.texi:15988
 msgid "Defaults to @samp{\"optimized\"}."
 msgstr "La valeur par défaut est @samp{\"optimized\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:15094
+#: doc/guix.texi:15990
 #, 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:15099
+#: doc/guix.texi:15995
 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:15101
+#: doc/guix.texi:15997
 #, 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:15105
+#: doc/guix.texi:16001
 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:15107
+#: doc/guix.texi:16003
 #, 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:15113
+#: doc/guix.texi:16009
 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:15115
+#: doc/guix.texi:16011
 #, 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:15119
+#: doc/guix.texi:16015
 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:15121
+#: doc/guix.texi:16017
 #, 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:15127
+#: doc/guix.texi:16023
 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:15129
+#: doc/guix.texi:16025
 #, 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:15134
+#: doc/guix.texi:16030
 #, 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:15139
+#: doc/guix.texi:16035
 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:15141
+#: doc/guix.texi:16037
 #, 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:15146
+#: doc/guix.texi:16042
 #, 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:15150
+#: doc/guix.texi:16046
 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:15152
+#: doc/guix.texi:16048
 #, 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:15162
-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:16058
+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{()}."
 
 #. type: deftypevr
-#: doc/guix.texi:15164
+#: doc/guix.texi:16060
 #, 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:15173
-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:16069
+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{\"\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:15175
+#: doc/guix.texi:16071
 #, 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:15179
+#: doc/guix.texi:16075
 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:15181
+#: doc/guix.texi:16077
 #, 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:15184
+#: doc/guix.texi:16080
 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:15186
+#: doc/guix.texi:16082
 #, 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:15190
-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{()}."
+#: doc/guix.texi:16086
+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:15192
+#: doc/guix.texi:16088
 #, 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:15197
+#: doc/guix.texi:16093
 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:15199
+#: doc/guix.texi:16095
 #, 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:15206
+#: doc/guix.texi:16102
 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:15208
+#: doc/guix.texi:16104
 #, 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:15215
+#: doc/guix.texi:16111
 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:15217
+#: doc/guix.texi:16113
 #, 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:15225
+#: doc/guix.texi:16121
 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:15227
+#: doc/guix.texi:16123
 #, 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:15232
+#: doc/guix.texi:16128
 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:15234
+#: doc/guix.texi:16130
 #, 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:15239
+#: doc/guix.texi:16135
 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:15241
+#: doc/guix.texi:16137
 #, 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:15244
+#: doc/guix.texi:16140
 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:15246
+#: doc/guix.texi:16142
 #, no-wrap
 msgid "dotlock"
 msgstr "dotlock"
 
 #. type: table
-#: doc/guix.texi:15250
+#: doc/guix.texi:16146
 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:15250
+#: doc/guix.texi:16146
 #, no-wrap
 msgid "dotlock-try"
 msgstr "dotlock-try"
 
 #. type: table
-#: doc/guix.texi:15253
+#: doc/guix.texi:16149
 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:15253
+#: doc/guix.texi:16149
 #, no-wrap
 msgid "fcntl"
 msgstr "fcntl"
 
 #. type: table
-#: doc/guix.texi:15255
+#: doc/guix.texi:16151
 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:15255
+#: doc/guix.texi:16151
 #, no-wrap
 msgid "flock"
 msgstr "flock"
 
 #. type: table
-#: doc/guix.texi:15257 doc/guix.texi:15259
+#: doc/guix.texi:16153 doc/guix.texi:16155
 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:15257
+#: doc/guix.texi:16153
 #, no-wrap
 msgid "lockf"
 msgstr "lockf"
 
 #. type: deftypevr
-#: doc/guix.texi:15265
+#: doc/guix.texi:16161
 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:15267
+#: doc/guix.texi:16163
 #, 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:15271
+#: doc/guix.texi:16167
 #, 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:15274
+#: doc/guix.texi:16170
 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:15276
+#: doc/guix.texi:16172
 #, 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:15280
+#: doc/guix.texi:16176
 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:15282
+#: doc/guix.texi:16178
 #, 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:15293
+#: doc/guix.texi:16189
 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:15295
+#: doc/guix.texi:16191
 #, 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:15300
+#: doc/guix.texi:16196
 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:15302
+#: doc/guix.texi:16198
 #, 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:15308
+#: doc/guix.texi:16204
 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:15310
+#: doc/guix.texi:16206
 #, 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:15315
-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}."
+#: doc/guix.texi:16211
+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:15317
+#: doc/guix.texi:16213
 #, 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:15320
+#: doc/guix.texi:16216
 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:15322
+#: doc/guix.texi:16218
 #, 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:15327
+#: doc/guix.texi:16223
 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:15329
+#: doc/guix.texi:16225
 #, 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:15334
+#: doc/guix.texi:16230
 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:15336
+#: doc/guix.texi:16232
 #, 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:15340
+#: doc/guix.texi:16236
 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."
 
 #. type: deftypevr
-#: doc/guix.texi:15342
+#: doc/guix.texi:16238
 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:15345
+#: doc/guix.texi:16241
 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:15347
+#: doc/guix.texi:16243
 #, 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:15352
+#: doc/guix.texi:16248
 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:15354
+#: doc/guix.texi:16250
 #, 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:15356
+#: doc/guix.texi:16252
 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:15357
+#: doc/guix.texi:16253
 #, no-wrap
 msgid "posix"
 msgstr "posix"
 
 #. type: table
-#: doc/guix.texi:15359
+#: doc/guix.texi:16255
 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:15359
+#: doc/guix.texi:16255
 #, no-wrap
 msgid "sis posix"
 msgstr "sis posix"
 
 #. type: table
-#: doc/guix.texi:15361
+#: doc/guix.texi:16257
 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:15361
+#: doc/guix.texi:16257
 #, no-wrap
 msgid "sis-queue posix"
 msgstr "sis-queue posix"
 
 #. type: table
-#: doc/guix.texi:15363
+#: doc/guix.texi:16259
 msgid "SiS with delayed comparison and deduplication."
-msgstr "SiS avec déduplication et comparaison différées"
+msgstr "SiS avec déduplication et comparaison différées."
 
 #. type: deftypevr
-#: doc/guix.texi:15365
+#: doc/guix.texi:16261
 msgid "Defaults to @samp{\"sis posix\"}."
 msgstr "La valeur par défaut est @samp{\"sis posix\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:15367
+#: doc/guix.texi:16263
 #, 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:15373
-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@}\"}."
+#: doc/guix.texi:16269
+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:15375
+#: doc/guix.texi:16271
 #, 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:15380
+#: doc/guix.texi:16276
 #, 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:15383 doc/guix.texi:19707
+#: doc/guix.texi:16279 doc/guix.texi:21472
 msgid "Defaults to @samp{1000}."
 msgstr "La valeur par défaut est @samp{1000}."
 
 #. type: deftypevr
-#: doc/guix.texi:15385
+#: doc/guix.texi:16281
 #, 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:15390
+#: doc/guix.texi:16286
 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:15392
+#: doc/guix.texi:16288
 #, 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:15397
+#: doc/guix.texi:16293
 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:15399
+#: doc/guix.texi:16295
 #, 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:15404
+#: doc/guix.texi:16300
 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:15406
+#: doc/guix.texi:16302
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string ssl?"
 msgstr "{paramètre de @code{dovecot-configuration}} string ssl?"
 
 #. type: deftypevr
-#: doc/guix.texi:15409
+#: doc/guix.texi:16305
 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:15411
+#: doc/guix.texi:16307
 #, 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:15414
+#: doc/guix.texi:16310
 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:15416
+#: doc/guix.texi:16312
 #, 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:15421
+#: doc/guix.texi:16317
 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:15423
+#: doc/guix.texi:16319
 #, 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:15429
+#: doc/guix.texi:16325
 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:15431
+#: doc/guix.texi:16327
 #, 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:15437
-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{\"\"}."
+#: doc/guix.texi:16333
+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:15439
+#: doc/guix.texi:16335
 #, 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:15442
+#: doc/guix.texi:16338
 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:15444
+#: doc/guix.texi:16340
 #, 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:15448
+#: doc/guix.texi:16344
 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:15450
+#: doc/guix.texi:16346
 #, 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:15455
+#: doc/guix.texi:16351
 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:15457
+#: doc/guix.texi:16353
 #, 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:15460
+#: doc/guix.texi:16356
 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:15462
+#: doc/guix.texi:16358
 #, 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:15465
+#: doc/guix.texi:16361
 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:15467
+#: doc/guix.texi:16363
 #, 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:15470
+#: doc/guix.texi:16366
 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:15472
+#: doc/guix.texi:16368
 #, 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:15476
+#: doc/guix.texi:16372
 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:15478
+#: doc/guix.texi:16374
 #, no-wrap
 msgid "{@code{dovecot-configuration} parameter} string hostname"
 msgstr "{paramètre de @code{dovecot-configuration}} string hostname"
 
 #. type: deftypevr
-#: doc/guix.texi:15482
-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{\"\"}."
+#: doc/guix.texi:16378
+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:15484
+#: doc/guix.texi:16380
 #, 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:15488
+#: doc/guix.texi:16384
 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:15490
+#: doc/guix.texi:16386
 #, 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:15493
+#: doc/guix.texi:16389
 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:15495
+#: doc/guix.texi:16391
 #, 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:15499
+#: doc/guix.texi:16395
 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:15501
+#: doc/guix.texi:16397
 #, 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:15505
+#: doc/guix.texi:16401
 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:15507
+#: doc/guix.texi:16403
 #, 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:15510
+#: doc/guix.texi:16406
 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:15514
+#: doc/guix.texi:16410
 msgid "CRLF"
 msgstr "CRLF"
 
 #. type: item
-#: doc/guix.texi:15514
+#: doc/guix.texi:16410
 #, no-wrap
 msgid "%r"
 msgstr "%r"
 
 #. type: table
-#: doc/guix.texi:15516
+#: doc/guix.texi:16412
 msgid "reason"
 msgstr "raison"
 
 #. type: table
-#: doc/guix.texi:15518
+#: doc/guix.texi:16414
 msgid "original subject"
 msgstr "objet du courriel de départ"
 
 #. type: item
-#: doc/guix.texi:15518
+#: doc/guix.texi:16414
 #, no-wrap
 msgid "%t"
 msgstr "%t"
 
 #. type: table
-#: doc/guix.texi:15520
+#: doc/guix.texi:16416
 msgid "recipient"
 msgstr "destinataire"
 
 #. type: deftypevr
-#: doc/guix.texi:15522
+#: doc/guix.texi:16418
 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:15524
+#: doc/guix.texi:16420
 #, 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:15528
+#: doc/guix.texi:16424
 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:15530
+#: doc/guix.texi:16426
 #, 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:15536
+#: doc/guix.texi:16432
 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:15538
+#: doc/guix.texi:16434
 #, 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:15542
+#: doc/guix.texi:16438
 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:15544
+#: doc/guix.texi:16440
 #, 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:15548
+#: doc/guix.texi:16444
 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:15550
+#: doc/guix.texi:16446
 #, 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:15556
+#: doc/guix.texi:16452
 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:15558
+#: doc/guix.texi:16454
 #, 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:15560
+#: doc/guix.texi:16456
 msgid "IMAP logout format string:"
 msgstr "Format de la chaîne de déconnexion IMAP :"
 
 #. type: item
-#: doc/guix.texi:15561
+#: doc/guix.texi:16457
 #, no-wrap
 msgid "%i"
 msgstr "%i"
 
 #. type: table
-#: doc/guix.texi:15563
+#: doc/guix.texi:16459
 msgid "total number of bytes read from client"
 msgstr "nombre d'octets lus par le client"
 
 #. type: item
-#: doc/guix.texi:15563
+#: doc/guix.texi:16459
 #, no-wrap
 msgid "%o"
 msgstr "%o"
 
 #. type: table
-#: doc/guix.texi:15565
+#: doc/guix.texi:16461
 msgid "total number of bytes sent to client."
 msgstr "nombre total d'octets envoyés au client."
 
 #. type: deftypevr
-#: doc/guix.texi:15568
+#: doc/guix.texi:16464
 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:15570
+#: doc/guix.texi:16466
 #, 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:15574
-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{\"\"}."
+#: doc/guix.texi:16470
+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:15576
+#: doc/guix.texi:16472
 #, 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:15580
+#: doc/guix.texi:16476
 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:15582
+#: doc/guix.texi:16478
 #, 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:15588
+#: doc/guix.texi:16484
 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:15590
+#: doc/guix.texi:16486
 #, 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:15593
+#: doc/guix.texi:16489
 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:15595
+#: doc/guix.texi:16491
 #, 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:15597
+#: doc/guix.texi:16493
 msgid "Workarounds for various client bugs:"
 msgstr "Contournements pour divers bogues de certains client :"
 
 #. type: item
-#: doc/guix.texi:15599
+#: doc/guix.texi:16495
 #, no-wrap
 msgid "delay-newmail"
 msgstr "delay-newmail"
 
 #. type: table
-#: doc/guix.texi:15606
+#: doc/guix.texi:16502
 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:15607
+#: doc/guix.texi:16503
 #, no-wrap
 msgid "tb-extra-mailbox-sep"
 msgstr "tb-extra-mailbox-sep"
 
 #. type: table
-#: doc/guix.texi:15611
+#: doc/guix.texi:16507
 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:15612
+#: doc/guix.texi:16508
 #, no-wrap
 msgid "tb-lsub-flags"
 msgstr "tb-lsub-flags"
 
 #. type: table
-#: doc/guix.texi:15616
-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."
+#: doc/guix.texi:16512
+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:15620
+#: doc/guix.texi:16516
 #, 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:15623
+#: doc/guix.texi:16519
 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:15631
-msgid "Whew! Lots of configuration options.  The nice thing about it though is that GuixSD 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 GuixSD 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."
+#: doc/guix.texi:16527
+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:15637
+#: doc/guix.texi:16533
 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:15639
+#: doc/guix.texi:16535
 msgid "Available @code{opaque-dovecot-configuration} fields are:"
 msgstr "Les champs de @code{opaque-dovecot-configuration} disponibles sont :"
 
 #. type: deftypevr
-#: doc/guix.texi:15640
+#: doc/guix.texi:16536
 #, 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:15644
+#: doc/guix.texi:16540
 #, 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:15646
+#: doc/guix.texi:16542
 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:15650
+#: doc/guix.texi:16546
 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:15655
+#: doc/guix.texi:16551
 #, no-wrap
 msgid ""
 "(dovecot-service #:config\n"
@@ -28706,24 +30920,24 @@ msgstr ""
 "                  (string \"\")))\n"
 
 #. type: subsubheading
-#: doc/guix.texi:15657
+#: doc/guix.texi:16553
 #, no-wrap
 msgid "OpenSMTPD Service"
 msgstr "Service OpenSMTPD"
 
 #. type: deffn
-#: doc/guix.texi:15659
+#: doc/guix.texi:16555
 #, no-wrap
 msgid "{Scheme Variable} opensmtpd-service-type"
 msgstr "{Variable Scheme} opensmtpd-service-type"
 
 #. type: deffn
-#: doc/guix.texi:15663
+#: doc/guix.texi:16559
 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:15668
+#: doc/guix.texi:16564
 #, no-wrap
 msgid ""
 "(service opensmtpd-service-type\n"
@@ -28735,75 +30949,75 @@ msgstr ""
 "           (config-file (local-file \"./my-smtpd.conf\"))))\n"
 
 #. type: deftp
-#: doc/guix.texi:15671
+#: doc/guix.texi:16567
 #, no-wrap
 msgid "{Data Type} opensmtpd-configuration"
 msgstr "{Type de données} opensmtpd-configuration"
 
 #. type: deftp
-#: doc/guix.texi:15673
+#: doc/guix.texi:16569
 msgid "Data type representing the configuration of opensmtpd."
 msgstr "Type de données représentant la configuration de opensmtpd."
 
 #. type: item
-#: doc/guix.texi:15675
+#: doc/guix.texi:16571
 #, no-wrap
 msgid "@code{package} (default: @var{opensmtpd})"
 msgstr "@code{package} (par défaut : @var{opensmtpd})"
 
 #. type: table
-#: doc/guix.texi:15677
+#: doc/guix.texi:16573
 msgid "Package object of the OpenSMTPD SMTP server."
 msgstr "Objet de paquet du serveur SMTP OpenSMTPD."
 
 #. type: item
-#: doc/guix.texi:15678
+#: doc/guix.texi:16574
 #, no-wrap
 msgid "@code{config-file} (default: @var{%default-opensmtpd-file})"
 msgstr "@code{config-file} (par défaut : @var{%default-opensmtpd-file})"
 
 #. type: table
-#: doc/guix.texi:15683
+#: doc/guix.texi:16579
 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:15687
+#: doc/guix.texi:16583
 #, no-wrap
 msgid "Exim Service"
 msgstr "Service Exim"
 
 #. type: cindex
-#: doc/guix.texi:15689
+#: doc/guix.texi:16585
 #, no-wrap
 msgid "mail transfer agent (MTA)"
 msgstr "agent de transfert de courriel (MTA)"
 
 #. type: cindex
-#: doc/guix.texi:15690
+#: doc/guix.texi:16586
 #, no-wrap
 msgid "MTA (mail transfer agent)"
 msgstr "MTA (agent de transfert de courriel)"
 
 #. type: cindex
-#: doc/guix.texi:15691
+#: doc/guix.texi:16587
 #, no-wrap
 msgid "SMTP"
 msgstr "SMTP"
 
 #. type: deffn
-#: doc/guix.texi:15693
+#: doc/guix.texi:16589
 #, no-wrap
 msgid "{Scheme Variable} exim-service-type"
 msgstr "{Variable Scheme} exim-service-type"
 
 #. type: deffn
-#: doc/guix.texi:15697
+#: doc/guix.texi:16593
 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:15702
+#: doc/guix.texi:16598
 #, no-wrap
 msgid ""
 "(service exim-service-type\n"
@@ -28815,68 +31029,68 @@ msgstr ""
 "           (config-file (local-file \"./my-exim.conf\"))))\n"
 
 #. type: Plain text
-#: doc/guix.texi:15708
+#: doc/guix.texi:16604
 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:15709
+#: doc/guix.texi:16605
 #, no-wrap
 msgid "{Data Type} exim-configuration"
 msgstr "{Type de données} exim-configuration"
 
 #. type: deftp
-#: doc/guix.texi:15711
+#: doc/guix.texi:16607
 msgid "Data type representing the configuration of exim."
 msgstr "Type de données représentant la configuration d'exim."
 
 #. type: item
-#: doc/guix.texi:15713
+#: doc/guix.texi:16609
 #, no-wrap
 msgid "@code{package} (default: @var{exim})"
 msgstr "@code{package} (par défaut : @var{exim})"
 
 #. type: table
-#: doc/guix.texi:15715
+#: doc/guix.texi:16611
 msgid "Package object of the Exim server."
 msgstr "Objet de paquet du serveur Exim."
 
 #. type: table
-#: doc/guix.texi:15722
+#: doc/guix.texi:16618
 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:15726
+#: doc/guix.texi:16622
 #, no-wrap
 msgid "Mail Aliases Service"
 msgstr "Service d'alias de courriel"
 
 #. type: cindex
-#: doc/guix.texi:15728
+#: doc/guix.texi:16624
 #, no-wrap
 msgid "email aliases"
 msgstr "alias de courriel"
 
 #. type: cindex
-#: doc/guix.texi:15729
+#: doc/guix.texi:16625
 #, no-wrap
 msgid "aliases, for email addresses"
 msgstr "alias, pour les adresses de courriel"
 
 #. type: deffn
-#: doc/guix.texi:15731
+#: doc/guix.texi:16627
 #, no-wrap
 msgid "{Scheme Variable} mail-aliases-service-type"
 msgstr "{Variable Scheme} mail-aliases-service-type"
 
 #. type: deffn
-#: doc/guix.texi:15734
+#: doc/guix.texi:16630
 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:15739
+#: doc/guix.texi:16635
 #, no-wrap
 msgid ""
 "(service mail-aliases-service-type\n"
@@ -28888,57 +31102,119 @@ msgstr ""
 "           (\"bob\" \"bob@@example.com\" \"bob@@example2.com\")))\n"
 
 #. type: Plain text
-#: doc/guix.texi:15747
+#: doc/guix.texi:16643
 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:15753
+#: doc/guix.texi:16649
 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:15757
+#: doc/guix.texi:16650 doc/guix.texi:16651
+#, no-wrap
+msgid "GNU Mailutils IMAP4 Daemon"
+msgstr "Démon IMAP4 GNU Mailutils"
+
+#. type: deffn
+#: doc/guix.texi:16653
+#, no-wrap
+msgid "{Scheme Variable} imap4d-service-type"
+msgstr "{Variable Scheme} imap4d-service-type"
+
+#. type: deffn
+#: doc/guix.texi:16657
+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:16662
+#, no-wrap
+msgid ""
+"(service imap4d-service-type\n"
+"         (imap4d-configuration\n"
+"           (config-file (local-file \"imap4d.conf\"))))\n"
+msgstr ""
+"(service imap4d-service-type\n"
+"         (imap4d-configuration\n"
+"           (config-file (local-file \"imap4d.conf\"))))\n"
+
+#. type: deftp
+#: doc/guix.texi:16665
+#, no-wrap
+msgid "{Data Type} imap4d-configuration"
+msgstr "{Type de données} imap4d-configuration"
+
+#. type: deftp
+#: doc/guix.texi:16667
+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:16669
+#, no-wrap
+msgid "@code{package} (default: @code{mailutils})"
+msgstr "@code{package} (par défaut : @code{mailutils})"
+
+#. type: table
+#: doc/guix.texi:16671
+msgid "The package that provides @command{imap4d}."
+msgstr "Le paquet qui fournit @command{imap4d}."
+
+#. type: item
+#: doc/guix.texi:16672
+#, 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:16676
+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:16683
 #, no-wrap
 msgid "messaging"
 msgstr "messagerie instantanée"
 
 #. type: cindex
-#: doc/guix.texi:15758
+#: doc/guix.texi:16684
 #, no-wrap
 msgid "jabber"
 msgstr "jabber"
 
 #. type: cindex
-#: doc/guix.texi:15759
+#: doc/guix.texi:16685
 #, no-wrap
 msgid "XMPP"
 msgstr "XMPP"
 
 #. type: Plain text
-#: doc/guix.texi:15762
+#: doc/guix.texi:16688
 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é."
 
 #. type: subsubheading
-#: doc/guix.texi:15763
+#: doc/guix.texi:16689
 #, no-wrap
 msgid "Prosody Service"
 msgstr "Service Prosody"
 
 #. type: deffn
-#: doc/guix.texi:15765
+#: doc/guix.texi:16691
 #, no-wrap
 msgid "{Scheme Variable} prosody-service-type"
 msgstr "{Variable Scheme} prosody-service-type"
 
 #. type: deffn
-#: doc/guix.texi:15769
+#: doc/guix.texi:16695
 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:15784
+#: doc/guix.texi:16710
 #, no-wrap
 msgid ""
 "(service prosody-service-type\n"
@@ -28970,690 +31246,690 @@ msgstr ""
 "             (domain \"example.net\"))))))\n"
 
 #. type: deffn
-#: doc/guix.texi:15787
+#: doc/guix.texi:16713
 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:15793
+#: doc/guix.texi:16719
 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:15796
+#: doc/guix.texi:16722
 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:15800
+#: doc/guix.texi:16726
 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:15803
+#: doc/guix.texi:16729
 #, 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:15810
+#: doc/guix.texi:16736
 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:15814
+#: doc/guix.texi:16740
 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:15817
+#: doc/guix.texi:16743
 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:15827
+#: doc/guix.texi:16753
 msgid "Available @code{prosody-configuration} fields are:"
 msgstr "Les champs de @code{prosody-configuration} disponibles sont :"
 
 #. type: deftypevr
-#: doc/guix.texi:15828
+#: doc/guix.texi:16754
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} package prosody"
 msgstr "{paramètre de @code{prosody-configuration}} package prosody"
 
 #. type: deftypevr
-#: doc/guix.texi:15830
+#: doc/guix.texi:16756
 msgid "The Prosody package."
 msgstr "Le paquet Prosody."
 
 #. type: deftypevr
-#: doc/guix.texi:15832
+#: doc/guix.texi:16758
 #, 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:15836
+#: doc/guix.texi:16762
 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:15838
+#: doc/guix.texi:16764
 #, 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:15842
+#: doc/guix.texi:16768
 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:15844
+#: doc/guix.texi:16770
 #, 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:15849
+#: doc/guix.texi:16775
 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:15851
+#: doc/guix.texi:16777
 #, 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:15857
+#: doc/guix.texi:16783
 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:15859
+#: doc/guix.texi:16785
 #, 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:15863
+#: doc/guix.texi:16789
 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:15865
+#: doc/guix.texi:16791
 #, 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:15871
+#: doc/guix.texi:16797
 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:15873
+#: doc/guix.texi:16799
 #, 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:15877
+#: doc/guix.texi:16803
 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:15879
+#: doc/guix.texi:16805
 #, 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:15884
+#: doc/guix.texi:16810
 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:15886
+#: doc/guix.texi:16812
 #, 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:15890
+#: doc/guix.texi:16816
 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:15892
+#: doc/guix.texi:16818
 #, 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:15897
+#: doc/guix.texi:16823
 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:15899
+#: doc/guix.texi:16825
 msgid "Available @code{ssl-configuration} fields are:"
 msgstr "Les champs de @code{ssl-configuration} disponibles sont :"
 
 #. type: deftypevr
-#: doc/guix.texi:15900
+#: doc/guix.texi:16826
 #, 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:15902
+#: doc/guix.texi:16828
 msgid "This determines what handshake to use."
 msgstr "Cela détermine la poignée de main à utiliser."
 
 #. type: deftypevr
-#: doc/guix.texi:15904
+#: doc/guix.texi:16830
 #, 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:15906
+#: doc/guix.texi:16832
 msgid "Path to your private key file."
 msgstr "Chemin vers votre fichier de clef privée."
 
 #. type: deftypevr
-#: doc/guix.texi:15908
+#: doc/guix.texi:16834
 #, 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:15910
+#: doc/guix.texi:16836
 msgid "Path to your certificate file."
 msgstr "Chemin vers votre fichier de certificat."
 
 #. type: deftypevr
-#: doc/guix.texi:15912
+#: doc/guix.texi:16838
 #, 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:15916
+#: doc/guix.texi:16842
 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:15918
+#: doc/guix.texi:16844
 #, 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:15921
+#: doc/guix.texi:16847
 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:15923
+#: doc/guix.texi:16849
 #, 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:15926
+#: doc/guix.texi:16852
 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:15928
+#: doc/guix.texi:16854
 #, 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:15932
+#: doc/guix.texi:16858
 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:15934
+#: doc/guix.texi:16860
 #, 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:15937
+#: doc/guix.texi:16863
 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:15939
+#: doc/guix.texi:16865
 #, 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:15942
+#: doc/guix.texi:16868
 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:15944
+#: doc/guix.texi:16870
 #, 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:15948
+#: doc/guix.texi:16874
 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:15950
+#: doc/guix.texi:16876
 #, 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:15953
+#: doc/guix.texi:16879
 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:15955
+#: doc/guix.texi:16881
 #, 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:15957
+#: doc/guix.texi:16883
 msgid "A list of \"extra\" verification options."
 msgstr "Une liste d'options de vérification « supplémentaires »."
 
 #. type: deftypevr
-#: doc/guix.texi:15959
+#: doc/guix.texi:16885
 #, 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:15961
+#: doc/guix.texi:16887
 msgid "Password for encrypted private keys."
 msgstr "Mot de passe pour les clefs privées chiffrées."
 
 #. type: deftypevr
-#: doc/guix.texi:15965
+#: doc/guix.texi:16891
 #, 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:15969
+#: doc/guix.texi:16895
 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:15971
+#: doc/guix.texi:16897
 #, 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:15975
+#: doc/guix.texi:16901
 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:15977
+#: doc/guix.texi:16903
 #, 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:15981
+#: doc/guix.texi:16907
 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:15983
+#: doc/guix.texi:16909
 #, 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:15989
+#: doc/guix.texi:16915
 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:15991
+#: doc/guix.texi:16917
 #, 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:15997
+#: doc/guix.texi:16923
 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:15999
+#: doc/guix.texi:16925
 #, 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:16004
+#: doc/guix.texi:16930
 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:16006
+#: doc/guix.texi:16932
 #, no-wrap
 msgid "{@code{prosody-configuration} parameter} string authentication"
 msgstr "{paramètre de @code{prosody-configuration}} string authentication"
 
 #. type: deftypevr
-#: doc/guix.texi:16014
+#: doc/guix.texi:16940
 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:16016
+#: doc/guix.texi:16942
 #, 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:16020
-msgid "Set logging options.  Advanced logging configuration is not yet supported by the GuixSD 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 dans GuixSD.  Voir @url{https://prosody.im/doc/logging}.  La valeur par défaut est @samp{\"*syslog\"}. "
+#: doc/guix.texi:16946
+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:16022
+#: doc/guix.texi:16948
 #, 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:16025
+#: doc/guix.texi:16951
 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:16027
+#: doc/guix.texi:16953
 #, 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:16029
+#: doc/guix.texi:16955
 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:16031
+#: doc/guix.texi:16957
 #, 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:16036
+#: doc/guix.texi:16962
 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:16038
+#: doc/guix.texi:16964
 #, 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:16043
+#: doc/guix.texi:16969
 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:16049
+#: doc/guix.texi:16975
 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."
 
 #. type: deftypevr
-#: doc/guix.texi:16051
+#: doc/guix.texi:16977
 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:16053
+#: doc/guix.texi:16979
 msgid "Available @code{virtualhost-configuration} fields are:"
 msgstr "Les champs de @code{virtualhost-configuration} disponibles sont :"
 
 #. type: deftypevr
-#: doc/guix.texi:16055 doc/guix.texi:16077 doc/guix.texi:16130
+#: doc/guix.texi:16981 doc/guix.texi:17003 doc/guix.texi:17056
 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:16055
+#: doc/guix.texi:16981
 #, no-wrap
 msgid "{@code{virtualhost-configuration} parameter} string domain"
 msgstr "{paramètre de @code{virtualhost-configuration}} string domain"
 
 #. type: deftypevr
-#: doc/guix.texi:16057
+#: doc/guix.texi:16983
 msgid "Domain you wish Prosody to serve."
 msgstr "Domaine que vous souhaitez que Prosody serve."
 
 #. type: deftypevr
-#: doc/guix.texi:16061
+#: doc/guix.texi:16987
 #, 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:16066
+#: doc/guix.texi:16992
 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:16070
+#: doc/guix.texi:16996
 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:16073
+#: doc/guix.texi:16999
 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:16075
+#: doc/guix.texi:17001
 msgid "Available @code{int-component-configuration} fields are:"
 msgstr "Les champs de @code{int-component-configuration} disponibles sont :"
 
 #. type: deftypevr
-#: doc/guix.texi:16077
+#: doc/guix.texi:17003
 #, 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:16079 doc/guix.texi:16136
+#: doc/guix.texi:17005 doc/guix.texi:17062
 msgid "Hostname of the component."
 msgstr "Nom d'hôte du composant."
 
 #. type: deftypevr
-#: doc/guix.texi:16081
+#: doc/guix.texi:17007
 #, 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:16083
+#: doc/guix.texi:17009
 msgid "Plugin you wish to use for the component."
 msgstr "Greffon que vous voulez utiliser pour ce composant."
 
 #. type: deftypevr
-#: doc/guix.texi:16085
+#: doc/guix.texi:17011
 #, 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:16088
+#: doc/guix.texi:17014
 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:16092
+#: doc/guix.texi:17018
 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."
 
 #. type: deftypevr
-#: doc/guix.texi:16094
+#: doc/guix.texi:17020
 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:16096
+#: doc/guix.texi:17022
 msgid "Available @code{mod-muc-configuration} fields are:"
 msgstr "Les champs de @code{mod-muc-configuration} disponibles sont :"
 
 #. type: deftypevr
-#: doc/guix.texi:16097
+#: doc/guix.texi:17023
 #, 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:16100
+#: doc/guix.texi:17026
 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:16102
+#: doc/guix.texi:17028
 #, 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:16109
-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}."
+#: doc/guix.texi:17035
+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:16111
+#: doc/guix.texi:17037
 #, 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:16115
+#: doc/guix.texi:17041
 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:16121
+#: doc/guix.texi:17047
 #, 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:16126
+#: doc/guix.texi:17052
 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:16128
+#: doc/guix.texi:17054
 msgid "Available @code{ext-component-configuration} fields are:"
 msgstr "Les champs de @code{ext-component-configuration} disponibles sont :"
 
 #. type: deftypevr
-#: doc/guix.texi:16130
+#: doc/guix.texi:17056
 #, 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:16132
+#: doc/guix.texi:17058
 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:16134
+#: doc/guix.texi:17060
 #, 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:16140
+#: doc/guix.texi:17066
 #, 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:16143
+#: doc/guix.texi:17069
 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:16145
+#: doc/guix.texi:17071
 #, 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:16148
+#: doc/guix.texi:17074
 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:16150
+#: doc/guix.texi:17076
 #, 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:16152
+#: doc/guix.texi:17078
 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:16160
+#: doc/guix.texi:17086
 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:16161
+#: doc/guix.texi:17087
 #, 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:16163
+#: doc/guix.texi:17089
 msgid "The prosody package."
 msgstr "Le paquet prosody."
 
 #. type: deftypevr
-#: doc/guix.texi:16165
+#: doc/guix.texi:17091
 #, 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:16167
+#: doc/guix.texi:17093
 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:16171
+#: doc/guix.texi:17097
 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:16176
+#: doc/guix.texi:17102
 #, no-wrap
 msgid ""
 "(service prosody-service-type\n"
@@ -29665,152 +31941,224 @@ msgstr ""
 "          (prosody.cfg.lua \"\")))\n"
 
 #. type: subsubheading
-#: doc/guix.texi:16180
+#: doc/guix.texi:17106
 #, no-wrap
 msgid "BitlBee Service"
 msgstr "Service BitlBee"
 
 #. type: cindex
-#: doc/guix.texi:16182
+#: doc/guix.texi:17108 doc/guix.texi:17152
 #, no-wrap
 msgid "IRC (Internet Relay Chat)"
 msgstr "IRC (Internet Relay Chat)"
 
 #. type: cindex
-#: doc/guix.texi:16183
+#: doc/guix.texi:17109
 #, no-wrap
 msgid "IRC gateway"
 msgstr "passerelle IRC"
 
 #. type: Plain text
-#: doc/guix.texi:16186
+#: doc/guix.texi:17112
 msgid "@url{http://bitlbee.org,BitlBee} is a gateway that provides an IRC interface to a variety of messaging protocols such as XMPP."
 msgstr "@url{http://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:16187
+#: doc/guix.texi:17113
 #, no-wrap
 msgid "{Scheme Variable} bitlbee-service-type"
 msgstr "{Variable Scheme} bitlbee-service-type"
 
 #. type: defvr
-#: doc/guix.texi:16191
+#: doc/guix.texi:17117
 msgid "This is the service type for the @url{http://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{http://bitlbee.org,BitlBee}.  Sa valeur est un @code{bitlbee-configuration} (voir plus bas)."
 
 #. type: defvr
-#: doc/guix.texi:16194
+#: doc/guix.texi:17120
 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:16197
+#: doc/guix.texi:17123
 #, no-wrap
 msgid "(service bitlbee-service-type)\n"
 msgstr "(service bitlbee-service-type)\n"
 
 #. type: deftp
-#: doc/guix.texi:16200
+#: doc/guix.texi:17126
 #, no-wrap
 msgid "{Data Type} bitlbee-configuration"
 msgstr "{Type de données} bitlbee-configuration"
 
 #. type: deftp
-#: doc/guix.texi:16202
+#: doc/guix.texi:17128
 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:16204
+#: doc/guix.texi:17130
 #, 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:16205
+#: doc/guix.texi:17131
 #, no-wrap
 msgid "@code{port} (default: @code{6667})"
 msgstr "@code{port} (par défaut : @code{6667})"
 
 #. type: table
-#: doc/guix.texi:16208
+#: doc/guix.texi:17134
 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:16212
+#: doc/guix.texi:17138
 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:16213
+#: doc/guix.texi:17139
 #, no-wrap
 msgid "@code{package} (default: @code{bitlbee})"
 msgstr "@code{package} (par défaut : @code{bitlbee})"
 
 #. type: table
-#: doc/guix.texi:16215
+#: doc/guix.texi:17141
 msgid "The BitlBee package to use."
 msgstr "Le paquet BitlBee à utiliser."
 
 #. type: item
-#: doc/guix.texi:16216
+#: doc/guix.texi:17142
 #, no-wrap
 msgid "@code{plugins} (default: @code{'()})"
 msgstr "@code{plugins} (par défaut : @code{'()})"
 
 #. type: table
-#: doc/guix.texi:16218
+#: doc/guix.texi:17144
 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:16219
+#: doc/guix.texi:17145
 #, no-wrap
 msgid "@code{extra-settings} (default: @code{\"\"})"
 msgstr "@code{extra-settings} (par défaut : @code{\"\"})"
 
 #. type: table
-#: doc/guix.texi:16221
+#: doc/guix.texi:17147
 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:17150
+#, no-wrap
+msgid "Quassel Service"
+msgstr "Service Quassel"
+
+#. type: Plain text
+#: doc/guix.texi:17156
+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:17157
+#, no-wrap
+msgid "{Scheme Variable} quassel-service-type"
+msgstr "{Variable Scheme} quassel-service-type"
+
+#. type: defvr
+#: doc/guix.texi:17161
+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:17163
+#, no-wrap
+msgid "{Data Type} quassel-configuration"
+msgstr "{Type de données} quassel-configuration"
+
+#. type: deftp
+#: doc/guix.texi:17165
+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:17167
+#, no-wrap
+msgid "@code{quassel} (default: @code{quassel})"
+msgstr "@code{quassel} (par défaut : @code{quassel})"
+
+#. type: table
+#: doc/guix.texi:17169
+msgid "The Quassel package to use."
+msgstr "Le paquet Quassel à utiliser."
+
+#. type: item
+#: doc/guix.texi:17170
+#, 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:17171
+#, no-wrap
+msgid "@code{port} (default: @code{4242})"
+msgstr "@code{port} (par défaut : @code{4242})"
+
+#. type: table
+#: doc/guix.texi:17175
+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:17176
+#, no-wrap
+msgid "@code{loglevel} (default: @code{\"Info\"})"
+msgstr "@code{loglevel} (par défaut : @code{\"info\"})"
+
+#. type: table
+#: doc/guix.texi:17179
+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:16228
+#: doc/guix.texi:17185
 #, no-wrap
 msgid "Murmur (VoIP server)"
 msgstr "Murmur (serveur VoIP)"
 
 #. type: cindex
-#: doc/guix.texi:16229
+#: doc/guix.texi:17186
 #, no-wrap
 msgid "VoIP server"
 msgstr "serveur VoIP"
 
 #. type: Plain text
-#: doc/guix.texi:16233
+#: doc/guix.texi:17190
 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:16234
+#: doc/guix.texi:17191
 #, no-wrap
 msgid "{Data Type} murmur-configuration"
 msgstr "{Type de données} murmur-configuration"
 
 #. type: deftp
-#: doc/guix.texi:16237
+#: doc/guix.texi:17194
 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:16246
+#: doc/guix.texi:17203
 #, no-wrap
 msgid ""
 "(service murmur-service-type\n"
 "         (murmur-configuration\n"
 "          (welcome-text\n"
-"            \"Welcome to this Mumble server running on GuixSD!\")\n"
+"            \"Welcome to this Mumble server running on Guix!\")\n"
 "          (cert-required? #t) ;disallow text password logins\n"
 "          (ssl-cert \"/etc/letsencrypt/live/mumble.example.com/fullchain.pem\")\n"
 "          (ssl-key \"/etc/letsencrypt/live/mumble.example.com/privkey.pem\")))\n"
@@ -29818,509 +32166,509 @@ msgstr ""
 "(service murmur-service-type\n"
 "         (murmur-configuration\n"
 "          (welcome-text\n"
-"            \"Welcome to this Mumble server running on GuixSD!\")\n"
-"          (cert-required? #t) ;disallow text password logins\n"
+"            \"Bienvenue sur ce serveur Mumble qui tourne sur Guix !\")\n"
+"          (cert-required? #t) ;désactive les connections par mot de passe\n"
 "          (ssl-cert \"/etc/letsencrypt/live/mumble.example.com/fullchain.pem\")\n"
 "          (ssl-key \"/etc/letsencrypt/live/mumble.example.com/privkey.pem\")))\n"
 
 #. type: deftp
-#: doc/guix.texi:16250
+#: doc/guix.texi:17207
 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:16259
+#: doc/guix.texi:17216
 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:16261
+#: doc/guix.texi:17218
 msgid "Available @code{murmur-configuration} fields are:"
 msgstr "Les champs de @code{murmur-configuration} disponibles sont :"
 
 #. type: item
-#: doc/guix.texi:16263
+#: doc/guix.texi:17220
 #, no-wrap
 msgid "@code{package} (default: @code{mumble})"
 msgstr "@code{package} (par défaut : @code{mumble})"
 
 #. type: table
-#: doc/guix.texi:16265
+#: doc/guix.texi:17222
 msgid "Package that contains @code{bin/murmurd}."
 msgstr "Paquet qui contient @code{bin/murmurd}."
 
 #. type: item
-#: doc/guix.texi:16266
+#: doc/guix.texi:17223
 #, no-wrap
 msgid "@code{user} (default: @code{\"murmur\"})"
 msgstr "@code{user} (par défaut : @code{\"murmur\"})"
 
 #. type: table
-#: doc/guix.texi:16268
+#: doc/guix.texi:17225
 msgid "User who will run the Murmur server."
 msgstr "Utilisateur qui lancera le serveur Murmur."
 
 #. type: item
-#: doc/guix.texi:16269
+#: doc/guix.texi:17226
 #, no-wrap
 msgid "@code{group} (default: @code{\"murmur\"})"
 msgstr "@code{group} (par défaut : @code{\"murmur\"})"
 
 #. type: table
-#: doc/guix.texi:16271
+#: doc/guix.texi:17228
 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:16272
+#: doc/guix.texi:17229
 #, no-wrap
 msgid "@code{port} (default: @code{64738})"
 msgstr "@code{port} (par défaut : @code{64738})"
 
 #. type: table
-#: doc/guix.texi:16274
+#: doc/guix.texi:17231
 msgid "Port on which the server will listen."
 msgstr "Port sur lequel le serveur écoutera."
 
 #. type: item
-#: doc/guix.texi:16275
+#: doc/guix.texi:17232
 #, no-wrap
 msgid "@code{welcome-text} (default: @code{\"\"})"
 msgstr "@code{welcome-text} (par défaut : @code{\"\"})"
 
 #. type: table
-#: doc/guix.texi:16277
+#: doc/guix.texi:17234
 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:16278
+#: doc/guix.texi:17235
 #, no-wrap
 msgid "@code{server-password} (default: @code{\"\"})"
 msgstr "@code{server-password} (par défaut : @code{\"\"})"
 
 #. type: table
-#: doc/guix.texi:16280
+#: doc/guix.texi:17237
 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:16281
+#: doc/guix.texi:17238
 #, no-wrap
 msgid "@code{max-users} (default: @code{100})"
 msgstr "@code{max-users} (par défaut : @code{100})"
 
 #. type: table
-#: doc/guix.texi:16283
+#: doc/guix.texi:17240
 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:16284
+#: doc/guix.texi:17241
 #, 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:16286
+#: doc/guix.texi:17243
 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:16287
+#: doc/guix.texi:17244
 #, 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:16290
+#: doc/guix.texi:17247
 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:16291
+#: doc/guix.texi:17248
 #, 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:16294
+#: doc/guix.texi:17251
 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:16295
+#: doc/guix.texi:17252
 #, no-wrap
 msgid "@code{autoban-attempts} (default: @code{10})"
 msgstr "@code{autoban-attempts} (par défaut : @code{10})"
 
 #. type: table
-#: doc/guix.texi:16298
+#: doc/guix.texi:17255
 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:16299
+#: doc/guix.texi:17256
 #, no-wrap
 msgid "@code{autoban-timeframe} (default: @code{120})"
 msgstr "@code{autoban-timeframe} (par défaut : @code{120})"
 
 #. type: table
-#: doc/guix.texi:16301
+#: doc/guix.texi:17258
 msgid "Timeframe for autoban in seconds."
 msgstr "Durée du temps pendant lequel le nombre de connexions est compté."
 
 #. type: item
-#: doc/guix.texi:16302
+#: doc/guix.texi:17259
 #, no-wrap
 msgid "@code{autoban-time} (default: @code{300})"
 msgstr "@code{autoban-time} (par défaut : @code{300})"
 
 #. type: table
-#: doc/guix.texi:16305
+#: doc/guix.texi:17262
 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:16306
+#: doc/guix.texi:17263
 #, no-wrap
 msgid "@code{opus-threshold} (default: @code{100})"
 msgstr "@code{opus-threshold} (par défaut : @code{100})"
 
 #. type: table
-#: doc/guix.texi:16309
+#: doc/guix.texi:17266
 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:16310
+#: doc/guix.texi:17267
 #, 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:16312
+#: doc/guix.texi:17269
 msgid "How deep channels can be nested at maximum."
 msgstr "Profondeur maximum des canaux."
 
 #. type: item
-#: doc/guix.texi:16313
+#: doc/guix.texi:17270
 #, no-wrap
 msgid "@code{channelname-regex} (default: @code{#f})"
 msgstr "@code{channelname-regex} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:16315
+#: doc/guix.texi:17272
 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:16316
+#: doc/guix.texi:17273
 #, no-wrap
 msgid "@code{username-regex} (default: @code{#f})"
 msgstr "@code{username-regex} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:16318
+#: doc/guix.texi:17275
 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:16319
+#: doc/guix.texi:17276
 #, 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:16321
+#: doc/guix.texi:17278
 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:16322
+#: doc/guix.texi:17279
 #, 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:16324
+#: doc/guix.texi:17281
 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:16325
+#: doc/guix.texi:17282
 #, no-wrap
 msgid "@code{cert-required?} (default: @code{#f})"
 msgstr "@code{cert-required?} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:16328
+#: doc/guix.texi:17285
 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."
 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:16329
+#: doc/guix.texi:17286
 #, no-wrap
 msgid "@code{remember-channel?} (default: @code{#f})"
 msgstr "@code{remember-channel?} (paramètre de : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:16332
+#: doc/guix.texi:17289
 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:16333
+#: doc/guix.texi:17290
 #, no-wrap
 msgid "@code{allow-html?} (default: @code{#f})"
 msgstr "@code{allow-html?} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:16335
+#: doc/guix.texi:17292
 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:16336
+#: doc/guix.texi:17293
 #, no-wrap
 msgid "@code{allow-ping?} (default: @code{#f})"
 msgstr "@code{allow-ping?} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:16340
+#: doc/guix.texi:17297
 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:16342
+#: doc/guix.texi:17299
 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:16343
+#: doc/guix.texi:17300
 #, no-wrap
 msgid "@code{bonjour?} (default: @code{#f})"
 msgstr "@code{bonjour?} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:16345
+#: doc/guix.texi:17302
 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:16346
+#: doc/guix.texi:17303
 #, no-wrap
 msgid "@code{send-version?} (default: @code{#f})"
 msgstr "@code{send-version?} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:16348
+#: doc/guix.texi:17305
 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:16349
+#: doc/guix.texi:17306
 #, no-wrap
 msgid "@code{log-days} (default: @code{31})"
 msgstr "@code{log-days} (par défaut : @code{31})"
 
 #. type: table
-#: doc/guix.texi:16353
+#: doc/guix.texi:17310
 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:16354
+#: doc/guix.texi:17311
 #, no-wrap
 msgid "@code{obfuscate-ips?} (default: @code{#t})"
 msgstr "@code{obfuscate-ips?} (par défaut : @code{#t})"
 
 #. type: table
-#: doc/guix.texi:16356
+#: doc/guix.texi:17313
 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:16357
+#: doc/guix.texi:17314
 #, no-wrap
 msgid "@code{ssl-cert} (default: @code{#f})"
 msgstr "@code{ssl-cert} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:16359
+#: doc/guix.texi:17316
 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:16362
+#: doc/guix.texi:17319
 #, 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:16363
+#: doc/guix.texi:17320
 #, no-wrap
 msgid "@code{ssl-key} (default: @code{#f})"
 msgstr "@code{ssl-key} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:16365
+#: doc/guix.texi:17322
 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:16367
+#: doc/guix.texi:17324
 #, 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:16369
+#: doc/guix.texi:17326
 #, 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:16374
+#: doc/guix.texi:17331
 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:16375
+#: doc/guix.texi:17332
 #, no-wrap
 msgid "@code{ssl-ciphers} (default: @code{#f})"
 msgstr "@code{ssl-ciphers} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:16378
+#: doc/guix.texi:17335
 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:16382
+#: doc/guix.texi:17339
 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:16387
+#: doc/guix.texi:17344
 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:16391
+#: doc/guix.texi:17348
 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:16392
+#: doc/guix.texi:17349
 #, no-wrap
 msgid "@code{public-registration} (default: @code{#f})"
 msgstr "@code{public-registration} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:16394
+#: doc/guix.texi:17351
 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:16399
+#: doc/guix.texi:17356
 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:16401
+#: doc/guix.texi:17358
 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:16402 doc/guix.texi:17036
+#: doc/guix.texi:17359 doc/guix.texi:18790
 #, no-wrap
 msgid "@code{file} (default: @code{#f})"
 msgstr "@code{file} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:16404
+#: doc/guix.texi:17361
 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:16407
+#: doc/guix.texi:17364
 #, no-wrap
 msgid "{Data Type} murmur-public-registration-configuration"
 msgstr "{Type de données} murmur-public-registration-configuration"
 
 #. type: deftp
-#: doc/guix.texi:16409
+#: doc/guix.texi:17366
 msgid "Configuration for public registration of a murmur service."
 msgstr "Configuration pour l'enregistrement public du service murmur."
 
 #. type: table
-#: doc/guix.texi:16413
+#: doc/guix.texi:17370
 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:16414 doc/guix.texi:21859
+#: doc/guix.texi:17371 doc/guix.texi:23679
 #, no-wrap
 msgid "password"
 msgstr "password"
 
 #. type: table
-#: doc/guix.texi:16417
+#: doc/guix.texi:17374
 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:16418
+#: doc/guix.texi:17375
 #, no-wrap
 msgid "url"
 msgstr "url"
 
 #. type: table
-#: doc/guix.texi:16421
+#: doc/guix.texi:17378
 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:16422
+#: doc/guix.texi:17379
 #, no-wrap
 msgid "@code{hostname} (default: @code{#f})"
 msgstr "@code{hostname} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:16425
+#: doc/guix.texi:17382
 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:16433
+#: doc/guix.texi:17390
 #, no-wrap
 msgid "Tailon Service"
 msgstr "Service Tailon"
 
 #. type: Plain text
-#: doc/guix.texi:16437
+#: doc/guix.texi:17394
 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:16440
+#: doc/guix.texi:17397
 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:16443
+#: doc/guix.texi:17400
 #, no-wrap
 msgid "(service tailon-service-type)\n"
 msgstr "(service tailon-service-type)\n"
 
 #. type: Plain text
-#: doc/guix.texi:16447
+#: doc/guix.texi:17404
 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:16454
+#: doc/guix.texi:17411
 #, no-wrap
 msgid ""
 "(service tailon-service-type\n"
@@ -30336,34 +32684,34 @@ msgstr ""
 "               (allowed-commands '(\"tail\" \"grep\" \"awk\" \"sed\"))))))\n"
 
 #. type: deftp
-#: doc/guix.texi:16457
+#: doc/guix.texi:17414
 #, no-wrap
 msgid "{Data Type} tailon-configuration"
 msgstr "{Type de données} tailon-configuration"
 
 #. type: deftp
-#: doc/guix.texi:16460
+#: doc/guix.texi:17417
 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:16462
+#: doc/guix.texi:17419
 #, 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:16466
+#: doc/guix.texi:17423
 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:16469
+#: doc/guix.texi:17426
 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:16474
+#: doc/guix.texi:17431
 #, no-wrap
 msgid ""
 "(service tailon-service-type\n"
@@ -30375,150 +32723,150 @@ msgstr ""
 "           (config-file (local-file \"./my-tailon.conf\"))))\n"
 
 #. type: item
-#: doc/guix.texi:16476
+#: doc/guix.texi:17433
 #, no-wrap
 msgid "@code{package} (default: @code{tailon})"
 msgstr "@code{package} (par défaut : @code{tailon})"
 
 #. type: table
-#: doc/guix.texi:16478
+#: doc/guix.texi:17435
 msgid "The tailon package to use."
 msgstr "Le paquet tailon à utiliser."
 
 #. type: deftp
-#: doc/guix.texi:16482
+#: doc/guix.texi:17439
 #, no-wrap
 msgid "{Data Type} tailon-configuration-file"
 msgstr "{Type de données} tailon-configuration-file"
 
 #. type: deftp
-#: doc/guix.texi:16485
+#: doc/guix.texi:17442
 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:16487
+#: doc/guix.texi:17444
 #, 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:16492
+#: doc/guix.texi:17449
 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:16493
+#: doc/guix.texi:17450
 #, no-wrap
 msgid "@code{bind} (default: @code{\"localhost:8080\"})"
 msgstr "@code{bind} (par défaut : @code{\"localhost:8080\"})"
 
 #. type: table
-#: doc/guix.texi:16495
+#: doc/guix.texi:17452
 msgid "Address and port to which Tailon should bind on."
 msgstr "Adresse et port sur lesquels Tailon écoute."
 
 #. type: item
-#: doc/guix.texi:16496
+#: doc/guix.texi:17453
 #, no-wrap
 msgid "@code{relative-root} (default: @code{#f})"
 msgstr "@code{relative-root} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:16498
+#: doc/guix.texi:17455
 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:16499
+#: doc/guix.texi:17456
 #, no-wrap
 msgid "@code{allow-transfers?} (default: @code{#t})"
 msgstr "@code{allow-transfers?} (par défaut : @code{#t})"
 
 #. type: table
-#: doc/guix.texi:16501
+#: doc/guix.texi:17458
 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:16502
+#: doc/guix.texi:17459
 #, no-wrap
 msgid "@code{follow-names?} (default: @code{#t})"
 msgstr "@code{follow-names?} (par défaut : @code{#t})"
 
 #. type: table
-#: doc/guix.texi:16504
+#: doc/guix.texi:17461
 msgid "Allow tailing of not-yet existent files."
 msgstr "Permet de surveiller des fichiers qui n'existent pas encore."
 
 #. type: item
-#: doc/guix.texi:16505
+#: doc/guix.texi:17462
 #, no-wrap
 msgid "@code{tail-lines} (default: @code{200})"
 msgstr "@code{tail-lines} (par défaut : @code{200})"
 
 #. type: table
-#: doc/guix.texi:16507
+#: doc/guix.texi:17464
 msgid "Number of lines to read initially from each file."
 msgstr "Nombre de lignes à lire initialement dans chaque fichier."
 
 #. type: item
-#: doc/guix.texi:16508
+#: doc/guix.texi:17465
 #, 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:16510
+#: doc/guix.texi:17467
 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:16511
+#: doc/guix.texi:17468
 #, no-wrap
 msgid "@code{debug?} (default: @code{#f})"
 msgstr "@code{debug?} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:16513
+#: doc/guix.texi:17470
 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:16514
+#: doc/guix.texi:17471
 #, no-wrap
 msgid "@code{wrap-lines} (default: @code{#t})"
 msgstr "@code{wrap-lines} (par défaut : @code{#t})"
 
 #. type: table
-#: doc/guix.texi:16518
+#: doc/guix.texi:17475
 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:16519
+#: doc/guix.texi:17476
 #, no-wrap
 msgid "@code{http-auth} (default: @code{#f})"
 msgstr "@code{http-auth} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:16523
+#: doc/guix.texi:17480
 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:16524
+#: doc/guix.texi:17481
 #, no-wrap
 msgid "@code{users} (default: @code{#f})"
 msgstr "@code{users} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:16529
+#: doc/guix.texi:17486
 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:16535
+#: doc/guix.texi:17492
 #, no-wrap
 msgid ""
 "(tailon-configuration-file\n"
@@ -30532,35 +32880,35 @@ msgstr ""
 "               (\"user2\" . \"password2\"))))\n"
 
 #. type: subsubheading
-#: doc/guix.texi:16541
+#: doc/guix.texi:17498
 #, no-wrap
 msgid "Darkstat Service"
 msgstr "Service Darkstat"
 
 #. type: cindex
-#: doc/guix.texi:16542
+#: doc/guix.texi:17499
 #, no-wrap
 msgid "darkstat"
 msgstr "darkstat"
 
 #. type: Plain text
-#: doc/guix.texi:16545
+#: doc/guix.texi:17502
 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:16546
+#: doc/guix.texi:17503
 #, no-wrap
 msgid "{Scheme Variable} darkstat-service-type"
 msgstr "{Variable Scheme} darkstat-service-type"
 
 #. type: defvar
-#: doc/guix.texi:16551
+#: doc/guix.texi:17508
 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:16556
+#: doc/guix.texi:17513
 #, no-wrap
 msgid ""
 "(service darkstat-service-type\n"
@@ -30572,101 +32920,101 @@ msgstr ""
 "           (interface \"eno1\")))\n"
 
 #. type: deftp
-#: doc/guix.texi:16559
+#: doc/guix.texi:17516
 #, no-wrap
 msgid "{Data Type} darkstat-configuration"
 msgstr "{Type de données} darkstat-configuration"
 
 #. type: deftp
-#: doc/guix.texi:16561
+#: doc/guix.texi:17518
 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:16563
+#: doc/guix.texi:17520
 #, no-wrap
 msgid "@code{package} (default: @code{darkstat})"
 msgstr "@code{package} (par défaut : @code{darkstat})"
 
 #. type: table
-#: doc/guix.texi:16565
+#: doc/guix.texi:17522
 msgid "The darkstat package to use."
 msgstr "Le paquet darkstat à utiliser."
 
 #. type: code{#1}
-#: doc/guix.texi:16566
+#: doc/guix.texi:17523
 #, no-wrap
 msgid "interface"
 msgstr "interface"
 
 #. type: table
-#: doc/guix.texi:16568
+#: doc/guix.texi:17525
 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:16569
+#: doc/guix.texi:17526
 #, no-wrap
 msgid "@code{port} (default: @code{\"667\"})"
 msgstr "@code{port} (par défaut : @code{\"667\"})"
 
 #. type: table
-#: doc/guix.texi:16571
+#: doc/guix.texi:17528
 msgid "Bind the web interface to the specified port."
 msgstr "Lie l'interface web sur le port spécifié."
 
 #. type: item
-#: doc/guix.texi:16572
+#: doc/guix.texi:17529
 #, 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:16574 doc/guix.texi:16612
+#: doc/guix.texi:17531 doc/guix.texi:17569
 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:16575
+#: doc/guix.texi:17532
 #, no-wrap
 msgid "@code{base} (default: @code{\"/\"})"
 msgstr "@code{base} (par défaut : @code{\"/\"})"
 
 #. type: table
-#: doc/guix.texi:16578
+#: doc/guix.texi:17535
 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:16582
+#: doc/guix.texi:17539
 #, no-wrap
 msgid "Prometheus Node Exporter Service"
 msgstr "Service d'export de nœud de Prometheus"
 
 #. type: cindex
-#: doc/guix.texi:16584
+#: doc/guix.texi:17541
 #, no-wrap
 msgid "prometheus-node-exporter"
 msgstr "prometheus-node-exporter"
 
 #. type: Plain text
-#: doc/guix.texi:16589
+#: doc/guix.texi:17546
 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:16590
+#: doc/guix.texi:17547
 #, no-wrap
 msgid "{Scheme variable} prometheus-node-exporter-service-type"
 msgstr "{Variable Scheme} prometheus-node-exporter-service-type"
 
 #. type: defvar
-#: doc/guix.texi:16595
+#: doc/guix.texi:17552
 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:16600
+#: doc/guix.texi:17557
 #, no-wrap
 msgid ""
 "(service prometheus-node-exporter-service-type\n"
@@ -30678,78 +33026,609 @@ msgstr ""
 "           (web-listen-address \":9100\")))\n"
 
 #. type: deftp
-#: doc/guix.texi:16603
+#: doc/guix.texi:17560
 #, no-wrap
 msgid "{Data Type} prometheus-node-exporter-configuration"
 msgstr "{Type de données} prometheus-node-exporter-configuration"
 
 #. type: deftp
-#: doc/guix.texi:16605
+#: doc/guix.texi:17562
 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:16607
+#: doc/guix.texi:17564
 #, 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:16609
+#: doc/guix.texi:17566
 msgid "The prometheus-node-exporter package to use."
 msgstr "Le paquet prometheus-node-exporter à utiliser."
 
 #. type: item
-#: doc/guix.texi:16610
+#: doc/guix.texi:17567
 #, 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:17573
+#, no-wrap
+msgid "Zabbix server"
+msgstr "Server zabbix"
+
 #. type: cindex
-#: doc/guix.texi:16618
+#: doc/guix.texi:17574
+#, no-wrap
+msgid "zabbix zabbix-server"
+msgstr "zabbix zabbix-server"
+
+#. type: Plain text
+#: doc/guix.texi:17577
+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:17579
+#, 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:17580
+#, 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:17581
+#, 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:17582
+#, no-wrap
+msgid "Distributed monitoring with centralized web administration."
+msgstr "Surveillance distribuée avec une administration web centralisée."
+
+#. type: item
+#: doc/guix.texi:17583
+#, no-wrap
+msgid "Native high performance agents."
+msgstr "Agents natifs haute-performance."
+
+#. type: item
+#: doc/guix.texi:17584
+#, 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:17585
+#, 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:17586
+#, no-wrap
+msgid "Remote command execution through Zabbix proxies."
+msgstr "Exécution à distance à travers les mandataires Zabbix."
+
+#. type: Plain text
+#: doc/guix.texi:17592
+msgid "Available @code{zabbix-server-configuration} fields are:"
+msgstr "Les champs de @code{zabbix-server-configuration} disponibles sont :"
+
+#. type: deftypevr
+#: doc/guix.texi:17593
+#, 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:17595
+msgid "The zabbix-server package."
+msgstr "Le paquet zabbix-server."
+
+#. type: deftypevr
+#: doc/guix.texi:17598
+#, 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:17600
+msgid "User who will run the Zabbix server."
+msgstr "Utilisateur qui lancera le serveur Zabbix."
+
+#. type: deftypevr
+#: doc/guix.texi:17602 doc/guix.texi:17609 doc/guix.texi:17623
+#: doc/guix.texi:17630 doc/guix.texi:17731 doc/guix.texi:17738
+#: doc/guix.texi:17849 doc/guix.texi:17856
+msgid "Defaults to @samp{\"zabbix\"}."
+msgstr "La valeur par défaut est @samp{\"zabbix\"}."
+
+#. type: deftypevr
+#: doc/guix.texi:17605
+#, 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:17607
+msgid "Group who will run the Zabbix server."
+msgstr "Groupe qui lancera le serveur Zabbix."
+
+#. type: deftypevr
+#: doc/guix.texi:17612
+#, 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:17614 doc/guix.texi:17833
+msgid "Database host name."
+msgstr "Le nom d'hôte de la base de données."
+
+#. type: deftypevr
+#: doc/guix.texi:17616
+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:17619
+#, 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:17621 doc/guix.texi:17847
+msgid "Database name."
+msgstr "Nom de la base de données."
+
+#. type: deftypevr
+#: doc/guix.texi:17626
+#, 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:17628 doc/guix.texi:17854
+msgid "Database user."
+msgstr "Utilisateur de la base de données."
+
+#. type: deftypevr
+#: doc/guix.texi:17633
+#, 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:17636
+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:17641
+#, 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:17643 doc/guix.texi:17840
+msgid "Database port."
+msgstr "Port de la base de données."
+
+#. type: deftypevr
+#: doc/guix.texi:17645 doc/guix.texi:17842
+msgid "Defaults to @samp{5432}."
+msgstr "La valeur par défaut est @samp{5432}."
+
+#. type: deftypevr
+#: doc/guix.texi:17648
+#, 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:17650 doc/guix.texi:17751
+msgid "Specifies where log messages are written to:"
+msgstr "Spécifie où les messages de journalisation seront écrits :"
+
+#. type: itemize
+#: doc/guix.texi:17654 doc/guix.texi:17755
+msgid "@code{system} - syslog."
+msgstr "@code{system} - syslog."
+
+#. type: itemize
+#: doc/guix.texi:17657 doc/guix.texi:17758
+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:17660 doc/guix.texi:17761
+msgid "@code{console} - standard output."
+msgstr "@code{console} - sortie standard."
+
+#. type: deftypevr
+#: doc/guix.texi:17667
+#, 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:17669 doc/guix.texi:17770
+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:17671
+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:17674
+#, 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:17676 doc/guix.texi:17777
+msgid "Name of PID file."
+msgstr "Nom du fichier de PID."
+
+#. type: deftypevr
+#: doc/guix.texi:17678
+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:17681
+#, 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:17684
+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:17686
+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:17689
+#, 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:17691
+msgid "Location of SSL client certificates."
+msgstr "Emplacement des certificats SSL des clients."
+
+#. type: deftypevr
+#: doc/guix.texi:17693
+msgid "Defaults to @samp{\"/etc/ssl/certs\"}."
+msgstr "La valeur par défaut est @samp{\"/etc/ssl/certs\"}."
+
+#. type: deftypevr
+#: doc/guix.texi:17696
+#, 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:17698 doc/guix.texi:17802
+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:17703
+#, 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:17706 doc/guix.texi:17810
+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:17713
+#, no-wrap
+msgid "Zabbix agent"
+msgstr "Agent zabbix"
+
+#. type: cindex
+#: doc/guix.texi:17714
+#, no-wrap
+msgid "zabbix zabbix-agent"
+msgstr "zabbix zabbix-agent"
+
+#. type: Plain text
+#: doc/guix.texi:17717
+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:17721
+msgid "Available @code{zabbix-agent-configuration} fields are:"
+msgstr "Les champs de @code{zabbix-agent-configuration} disponibles sont :"
+
+#. type: deftypevr
+#: doc/guix.texi:17722
+#, 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:17724
+msgid "The zabbix-agent package."
+msgstr "Le paquet zabbix-agent."
+
+#. type: deftypevr
+#: doc/guix.texi:17727
+#, 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:17729
+msgid "User who will run the Zabbix agent."
+msgstr "Utilisateur qui lancera l'agent Zabbix."
+
+#. type: deftypevr
+#: doc/guix.texi:17734
+#, 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:17736
+msgid "Group who will run the Zabbix agent."
+msgstr "Groupe qui lancera l'agent Zabbix."
+
+#. type: deftypevr
+#: doc/guix.texi:17741
+#, 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:17744
+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:17746
+msgid "Defaults to @samp{\"Zabbix server\"}."
+msgstr "La valeur par défaut est @samp{\"Zabbix server\"}."
+
+#. type: deftypevr
+#: doc/guix.texi:17749
+#, 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:17768
+#, 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:17772
+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:17775
+#, 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:17779
+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:17782
+#, 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:17786
+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:17788 doc/guix.texi:17797
+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:17791
+#, 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:17795
+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:17800
+#, 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:17807
+#, 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:17817
+#, no-wrap
+msgid "Zabbix front-end"
+msgstr "Interface utilisateur Zabbix"
+
+#. type: cindex
+#: doc/guix.texi:17818
+#, no-wrap
+msgid "zabbix zabbix-front-end"
+msgstr "zabbix zabbix-front-end"
+
+#. type: Plain text
+#: doc/guix.texi:17821
+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:17825
+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:17826
+#, 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:17828 doc/guix.texi:22158
+msgid "NGINX configuration."
+msgstr "Configuration Nginx."
+
+#. type: deftypevr
+#: doc/guix.texi:17831
+#, 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:17838
+#, 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:17845
+#, 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:17852
+#, 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:17859
+#, 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:17861
+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:17866
+#, 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:17870
+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:17875
+#, 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:17877
+msgid "Zabbix server hostname."
+msgstr "Nom d'hôte du serveur Zabbix."
+
+#. type: deftypevr
+#: doc/guix.texi:17882
+#, 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:17884
+msgid "Zabbix server port."
+msgstr "Port du serveur Zabbix."
+
+#. type: deftypevr
+#: doc/guix.texi:17886
+msgid "Defaults to @samp{10051}."
+msgstr "La valeur par défaut est @samp{10051}."
+
+#. type: cindex
+#: doc/guix.texi:17894
 #, no-wrap
 msgid "Kerberos"
 msgstr "Kerberos"
 
 #. type: Plain text
-#: doc/guix.texi:16622
+#: doc/guix.texi:17898
 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:16623
+#: doc/guix.texi:17899
 #, no-wrap
 msgid "Krb5 Service"
 msgstr "Service Krb5"
 
 #. type: Plain text
-#: doc/guix.texi:16630
+#: doc/guix.texi:17906
 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:16634
+#: doc/guix.texi:17910
 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:16635
+#: doc/guix.texi:17911
 #, no-wrap
 msgid "{Scheme Variable} krb5-service-type"
 msgstr "{Variable Scheme} krb5-service-type"
 
 #. type: defvr
-#: doc/guix.texi:16637
+#: doc/guix.texi:17913
 msgid "A service type for Kerberos 5 clients."
 msgstr "Un type de service pour les clients Kerberos 5."
 
 #. type: Plain text
-#: doc/guix.texi:16641
+#: doc/guix.texi:17917
 msgid "Here is an example of its use:"
 msgstr "Voici un exemple d'utilisation :"
 
 #. type: lisp
-#: doc/guix.texi:16655
+#: doc/guix.texi:17931
 #, no-wrap
 msgid ""
 "(service krb5-service-type\n"
@@ -30781,229 +33660,918 @@ msgstr ""
 "                    (kdc \"keys.argrx.edu\"))))))\n"
 
 #. type: Plain text
-#: doc/guix.texi:16659
+#: doc/guix.texi:17935
 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:16660
+#: doc/guix.texi:17936
 #, 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:16662
+#: doc/guix.texi:17938
 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:16662
+#: doc/guix.texi:17938
 #, 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:16664
+#: doc/guix.texi:17940
 msgid "specified by clients;"
 msgstr "explicitement par les clients ;"
 
 #. type: item
-#: doc/guix.texi:16664
+#: doc/guix.texi:17940
 #, 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:16672
+#: doc/guix.texi:17948
 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{http://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{http://web.mit.edu/kerberos/krb5-devel/doc/admin/conf_files/krb5_conf.html,,krb5.conf}."
 
 #. type: deftp
-#: doc/guix.texi:16674
+#: doc/guix.texi:17950
 #, no-wrap
 msgid "{Data Type} krb5-realm"
 msgstr "{Type de données} krb5-realm"
 
 #. type: cindex
-#: doc/guix.texi:16675
+#: doc/guix.texi:17951
 #, no-wrap
 msgid "realm, kerberos"
 msgstr "domaine, kerberos"
 
 #. type: table
-#: doc/guix.texi:16681
+#: doc/guix.texi:17957
 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:16682
+#: doc/guix.texi:17958
 #, no-wrap
 msgid "admin-server"
 msgstr "admin-server"
 
 #. type: table
-#: doc/guix.texi:16685
+#: doc/guix.texi:17961
 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:16686
+#: doc/guix.texi:17962
 #, no-wrap
 msgid "kdc"
 msgstr "kdc"
 
 #. type: table
-#: doc/guix.texi:16689
+#: doc/guix.texi:17965
 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:16692
+#: doc/guix.texi:17968
 #, no-wrap
 msgid "{Data Type} krb5-configuration"
 msgstr "{Type de données} krb5-configuration"
 
 #. type: item
-#: doc/guix.texi:16695
+#: doc/guix.texi:17971
 #, 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:16698
+#: doc/guix.texi:17974
 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:16699
+#: doc/guix.texi:17975
 #, no-wrap
 msgid "@code{default-realm} (default: @code{#f})"
 msgstr "@code{default-realm} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:16706
+#: doc/guix.texi:17982
 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:16707
+#: doc/guix.texi:17983
 #, no-wrap
 msgid "realms"
 msgstr "realms"
 
 #. type: table
-#: doc/guix.texi:16712
+#: doc/guix.texi:17988
 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:16716
+#: doc/guix.texi:17992
 #, no-wrap
 msgid "PAM krb5 Service"
 msgstr "Service PAM krb5"
 
 #. type: cindex
-#: doc/guix.texi:16717
+#: doc/guix.texi:17993
 #, no-wrap
 msgid "pam-krb5"
 msgstr "pam-krb5"
 
 #. type: Plain text
-#: doc/guix.texi:16723
+#: doc/guix.texi:17999
 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:16724
+#: doc/guix.texi:18000
 #, no-wrap
 msgid "{Scheme Variable} pam-krb5-service-type"
 msgstr "{Variable Scheme} pam-krb5-service-type"
 
 #. type: defvr
-#: doc/guix.texi:16726
+#: doc/guix.texi:18002
 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:16728
+#: doc/guix.texi:18004
 #, no-wrap
 msgid "{Data Type} pam-krb5-configuration"
 msgstr "{Type de données} pam-krb5-configuration"
 
 #. type: deftp
-#: doc/guix.texi:16731
+#: doc/guix.texi:18007
 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:16732
+#: doc/guix.texi:18008
 #, 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:16734
+#: doc/guix.texi:18010
 msgid "The pam-krb5 package to use."
 msgstr "Le paquet pam-krb5 à utiliser."
 
 #. type: item
-#: doc/guix.texi:16735
+#: doc/guix.texi:18011
 #, no-wrap
 msgid "@code{minimum-uid} (default: @code{1000})"
 msgstr "@code{minimum-uid} (par défaut : @code{1000})"
 
 #. type: table
-#: doc/guix.texi:16738
+#: doc/guix.texi:18014
 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:16745
+#: doc/guix.texi:18020
+#, no-wrap
+msgid "LDAP"
+msgstr "LDAP"
+
+#. type: cindex
+#: doc/guix.texi:18021
+#, no-wrap
+msgid "nslcd, LDAP service"
+msgstr "nslcd, service LDAP"
+
+#. type: Plain text
+#: doc/guix.texi:18028
+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:18032
+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:18055
+#, no-wrap
+msgid ""
+"(use-service-modules authentication)\n"
+"(use-modules (gnu system nss))\n"
+"...\n"
+"(operating-system\n"
+"  ...\n"
+"  (services\n"
+"    (cons*\n"
+"      (service nslcd-service-type)\n"
+"      (service dhcp-client-service-type)\n"
+"      %base-services))\n"
+"  (name-service-switch\n"
+"   (let ((services (list (name-service (name \"db\"))\n"
+"                         (name-service (name \"files\"))\n"
+"                         (name-service (name \"ldap\")))))\n"
+"     (name-service-switch\n"
+"      (inherit %mdns-host-lookup-nss)\n"
+"      (password services)\n"
+"      (shadow   services)\n"
+"      (group    services)\n"
+"      (netgroup services)\n"
+"      (gshadow  services)))))\n"
+msgstr ""
+"(use-service-modules authentication)\n"
+"(use-modules (gnu system nss))\n"
+"...\n"
+"(operating-system\n"
+"  ...\n"
+"  (services\n"
+"    (cons*\n"
+"      (service nslcd-service-type)\n"
+"      (service dhcp-client-service-type)\n"
+"      %base-services))\n"
+"  (name-service-switch\n"
+"   (let ((services (list (name-service (name \"db\"))\n"
+"                         (name-service (name \"files\"))\n"
+"                         (name-service (name \"ldap\")))))\n"
+"     (name-service-switch\n"
+"      (inherit %mdns-host-lookup-nss)\n"
+"      (password services)\n"
+"      (shadow   services)\n"
+"      (group    services)\n"
+"      (netgroup services)\n"
+"      (gshadow  services)))))\n"
+
+#. type: Plain text
+#: doc/guix.texi:18060
+msgid "Available @code{nslcd-configuration} fields are:"
+msgstr "Les champs de @code{nslcd-configuration} disponibles sont :"
+
+#. type: deftypevr
+#: doc/guix.texi:18061
+#, 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:18063
+msgid "The @code{nss-pam-ldapd} package to use."
+msgstr "Le paquet @code{nss-pam-ldapd} à utiliser."
+
+#. type: deftypevr
+#: doc/guix.texi:18066
+#, 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:18070
+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:18072 doc/guix.texi:18114 doc/guix.texi:18122
+#: doc/guix.texi:18130 doc/guix.texi:18138 doc/guix.texi:18147
+#: doc/guix.texi:18155 doc/guix.texi:18162 doc/guix.texi:18170
+#: doc/guix.texi:18178 doc/guix.texi:18188 doc/guix.texi:18195
+#: doc/guix.texi:18219 doc/guix.texi:18227 doc/guix.texi:18253
+#: doc/guix.texi:18262 doc/guix.texi:18271 doc/guix.texi:18280
+#: doc/guix.texi:18289 doc/guix.texi:18298 doc/guix.texi:18306
+#: doc/guix.texi:18314 doc/guix.texi:18321 doc/guix.texi:18329
+#: doc/guix.texi:18336 doc/guix.texi:18344 doc/guix.texi:18352
+#: doc/guix.texi:18361 doc/guix.texi:18370 doc/guix.texi:18378
+#: doc/guix.texi:18386 doc/guix.texi:18394 doc/guix.texi:18405
+#: doc/guix.texi:18415 doc/guix.texi:18426 doc/guix.texi:18435
+#: doc/guix.texi:18445 doc/guix.texi:18453 doc/guix.texi:18464
+#: doc/guix.texi:18473 doc/guix.texi:18483 doc/guix.texi:20701
+#: doc/guix.texi:20708 doc/guix.texi:20715 doc/guix.texi:20722
+#: doc/guix.texi:20729 doc/guix.texi:20736 doc/guix.texi:20744
+#: doc/guix.texi:20752 doc/guix.texi:20759 doc/guix.texi:20766
+#: doc/guix.texi:20773 doc/guix.texi:20780 doc/guix.texi:20810
+#: doc/guix.texi:20848 doc/guix.texi:20855 doc/guix.texi:20864
+#: doc/guix.texi:20886 doc/guix.texi:20894 doc/guix.texi:20901
+#: doc/guix.texi:21056 doc/guix.texi:21076 doc/guix.texi:21091
+#: doc/guix.texi:21098 doc/guix.texi:22896 doc/guix.texi:22904
+#: doc/guix.texi:22912 doc/guix.texi:22920 doc/guix.texi:22928
+#: doc/guix.texi:22936
+msgid "Defaults to @samp{disabled}."
+msgstr "La valeur par défaut est @samp{disabled}."
+
+#. type: deftypevr
+#: doc/guix.texi:18075
+#, no-wrap
+msgid "{@code{nslcd-configuration} parameter} string uid"
+msgstr "{paramètre de @code{nslcd-configuration}} string uid"
+
+#. type: deftypevr
+#: doc/guix.texi:18077
+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:18079 doc/guix.texi:18086
+msgid "Defaults to @samp{\"nslcd\"}."
+msgstr "La valeur par défaut est @samp{\"nslcd\"}."
+
+#. type: deftypevr
+#: doc/guix.texi:18082
+#, no-wrap
+msgid "{@code{nslcd-configuration} parameter} string gid"
+msgstr "{paramètre de @code{nslcd-configuration}} string gid"
+
+#. type: deftypevr
+#: doc/guix.texi:18084
+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:18089
+#, 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:18096
+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."
+
+#. type: deftypevr
+#: doc/guix.texi:18098
+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:18101
+#, no-wrap
+msgid "{@code{nslcd-configuration} parameter} list uri"
+msgstr "{paramètre de @code{nslcd-configuration}} list uri"
+
+#. type: deftypevr
+#: doc/guix.texi:18104
+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:18106
+msgid "Defaults to @samp{(\"ldap://localhost:389/\")}."
+msgstr "La valeur par défaut est @samp{(\"ldap://localhost:389/\")}."
+
+#. type: deftypevr
+#: doc/guix.texi:18109
+#, 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:18112
+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:18117
+#, 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:18120
+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:18125
+#, 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:18128
+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:18133
+#, 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:18136
+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:18141
+#, 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:18145
+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:18150
+#, 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:18153
+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:18158
+#, 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:18160
+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:18165
+#, 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:18168
+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:18173
+#, 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:18176
+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:18181
+#, 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:18186
+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:18191
+#, 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:18193
+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:18198
+#, no-wrap
+msgid "{@code{nslcd-configuration} parameter} string base"
+msgstr "{paramètre de @code{nslcd-configuration}} string base"
+
+#. type: deftypevr
+#: doc/guix.texi:18200
+msgid "The directory search base."
+msgstr "La base de recherche de répertoires."
+
+#. type: deftypevr
+#: doc/guix.texi:18202
+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:18205
+#, 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:18209
+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:18211
+msgid "Defaults to @samp{(subtree)}."
+msgstr "La valeur par défaut est @samp{(subtree)}."
+
+#. type: deftypevr
+#: doc/guix.texi:18214
+#, 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:18217
+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:18222
+#, 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:18225
+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:18230
+#, 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:18235
+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:18240
+#, 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:18243
+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:18248
+#, 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:18251
+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:18256
+#, 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:18260
+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:18265
+#, 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:18269
+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:18274
+#, 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:18278
+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:18283
+#, 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:18287
+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:18292
+#, 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:18296
+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:18301
+#, 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:18304
+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:18309
+#, 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:18312
+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:18317
+#, 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:18319
+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:18324
+#, 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:18327
+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:18332
+#, 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:18334
+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:18339
+#, 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:18342
+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:18347
+#, 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:18350
+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:18355
+#, 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:18359
+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:18364
+#, 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:18368
+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:18373
+#, 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:18376
+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:18381
+#, 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:18384
+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:18389
+#, 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:18392
+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:18397
+#, 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:18403
+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:18408
+#, 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:18413
+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:18418
+#, 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:18424
+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:18429
+#, 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:18433
+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:18438
+#, 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:18443
+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:18448
+#, 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:18451
+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:18456
+#, 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:18462
+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:18467
+#, 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:18471
+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:18476
+#, 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:18481
+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:18486
+#, 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:18488
+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:18499
 #, no-wrap
 msgid "web"
 msgstr "web"
 
 #. type: cindex
-#: doc/guix.texi:16746
+#: doc/guix.texi:18500
 #, no-wrap
 msgid "www"
 msgstr "www"
 
 #. type: cindex
-#: doc/guix.texi:16747
+#: doc/guix.texi:18501
 #, no-wrap
 msgid "HTTP"
 msgstr "HTTP"
 
 #. type: Plain text
-#: doc/guix.texi:16750
+#: doc/guix.texi:18504
 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:16751
+#: doc/guix.texi:18505
 #, no-wrap
 msgid "Apache HTTP Server"
 msgstr "Serveur Apache HTTP"
 
 #. type: deffn
-#: doc/guix.texi:16753
+#: doc/guix.texi:18507
 #, no-wrap
 msgid "{Scheme Variable} httpd-service-type"
 msgstr "{Variable Scheme} httpd-service-type"
 
 #. type: deffn
-#: doc/guix.texi:16757
+#: doc/guix.texi:18511
 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:16759 doc/guix.texi:16940
+#: doc/guix.texi:18513 doc/guix.texi:18694
 msgid "A simple example configuration is given below."
 msgstr "Un exemple de configuration simple est donné ci-dessous."
 
 #. type: example
-#: doc/guix.texi:16767
+#: doc/guix.texi:18521
 #, no-wrap
 msgid ""
 "(service httpd-service-type\n"
@@ -31021,12 +34589,12 @@ msgstr ""
 "               (document-root \"/srv/http/www.example.com\")))))\n"
 
 #. type: deffn
-#: doc/guix.texi:16771
+#: doc/guix.texi:18525
 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:16780 doc/guix.texi:16920
+#: doc/guix.texi:18534 doc/guix.texi:18674
 #, no-wrap
 msgid ""
 "(simple-service 'my-extra-server httpd-service-type\n"
@@ -31046,115 +34614,115 @@ msgstr ""
 "                            DocumentRoot \\\"/srv/http/www.example.com\\\"\")))))\n"
 
 #. type: Plain text
-#: doc/guix.texi:16786
+#: doc/guix.texi:18540
 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:16787
+#: doc/guix.texi:18541
 #, no-wrap
 msgid "{Data Type} httpd-configuration"
 msgstr "{Type de données} httpd-configuration"
 
 #. type: deffn
-#: doc/guix.texi:16789
+#: doc/guix.texi:18543
 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:16791
+#: doc/guix.texi:18545
 #, no-wrap
 msgid "@code{package} (default: @code{httpd})"
 msgstr "@code{package} (par défaut : @code{httpd})"
 
 #. type: table
-#: doc/guix.texi:16793
+#: doc/guix.texi:18547
 msgid "The httpd package to use."
 msgstr "Le paquet httpd à utiliser."
 
 #. type: item
-#: doc/guix.texi:16794 doc/guix.texi:16883
+#: doc/guix.texi:18548 doc/guix.texi:18637
 #, 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:16796
+#: doc/guix.texi:18550
 msgid "The pid file used by the shepherd-service."
 msgstr "Le fichier de pid utilisé par le service shepherd."
 
 #. type: item
-#: doc/guix.texi:16797
+#: doc/guix.texi:18551
 #, 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:16802
+#: doc/guix.texi:18556
 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:16806
+#: doc/guix.texi:18560
 #, no-wrap
 msgid "{Data Type} httpd-module"
 msgstr "{Type de données} httpd-module"
 
 #. type: deffn
-#: doc/guix.texi:16808
+#: doc/guix.texi:18562
 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:16812
+#: doc/guix.texi:18566
 msgid "The name of the module."
 msgstr "Le nom du module."
 
 #. type: table
-#: doc/guix.texi:16818
+#: doc/guix.texi:18572
 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:16822
+#: doc/guix.texi:18576
 #, no-wrap
 msgid "{Scheme Variable} %default-httpd-modules"
 msgstr "{Variable Scheme} %default-httpd-modules"
 
 #. type: defvr
-#: doc/guix.texi:16824
+#: doc/guix.texi:18578
 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:16826
+#: doc/guix.texi:18580
 #, no-wrap
 msgid "{Data Type} httpd-config-file"
 msgstr "{Type de données} httpd-config-file"
 
 #. type: deffn
-#: doc/guix.texi:16828
+#: doc/guix.texi:18582
 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:16830
+#: doc/guix.texi:18584
 #, 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:16833
+#: doc/guix.texi:18587
 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:16836
+#: doc/guix.texi:18590
 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:16858
+#: doc/guix.texi:18612
 #, no-wrap
 msgid ""
 "(service httpd-service-type\n"
@@ -31200,165 +34768,165 @@ msgstr ""
 "          (socket-group \"httpd\")))\n"
 
 #. type: item
-#: doc/guix.texi:16860
+#: doc/guix.texi:18614
 #, no-wrap
 msgid "@code{server-root} (default: @code{httpd})"
 msgstr "@code{server-root} (par défaut : @code{httpd})"
 
 #. type: table
-#: doc/guix.texi:16864
+#: doc/guix.texi:18618
 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:16865
+#: doc/guix.texi:18619
 #, no-wrap
 msgid "@code{server-name} (default: @code{#f})"
 msgstr "@code{server-name} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:16869
+#: doc/guix.texi:18623
 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:16873
+#: doc/guix.texi:18627
 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}."
 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:16874
+#: doc/guix.texi:18628
 #, 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:16876
+#: doc/guix.texi:18630
 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:16877
+#: doc/guix.texi:18631
 #, no-wrap
 msgid "@code{listen} (default: @code{'(\"80\")})"
 msgstr "@code{listen} (par défaut : @code{'(\"80\")})"
 
 #. type: table
-#: doc/guix.texi:16882
+#: doc/guix.texi:18636
 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:16887
+#: doc/guix.texi:18641
 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:16888
+#: doc/guix.texi:18642
 #, 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:16890
+#: doc/guix.texi:18644
 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:16891
+#: doc/guix.texi:18645
 #, no-wrap
 msgid "@code{user} (default: @code{\"httpd\"})"
 msgstr "@code{user} (par défaut : @code{\"httpd\"})"
 
 #. type: table
-#: doc/guix.texi:16893
+#: doc/guix.texi:18647
 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:16894
+#: doc/guix.texi:18648
 #, no-wrap
 msgid "@code{group} (default: @code{\"httpd\"})"
 msgstr "@code{group} (par défaut : @code{\"httpd\"})"
 
 #. type: table
-#: doc/guix.texi:16896
+#: doc/guix.texi:18650
 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:16897
+#: doc/guix.texi:18651
 #, 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:16900
+#: doc/guix.texi:18654
 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:16903
+#: doc/guix.texi:18657
 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:16907
+#: doc/guix.texi:18661
 #, no-wrap
 msgid "{Data Type} httpd-virtualhost"
 msgstr "{Type de données} httpd-virtualhost"
 
 #. type: deffn
-#: doc/guix.texi:16909
+#: doc/guix.texi:18663
 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:16911
+#: doc/guix.texi:18665
 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:16923
+#: doc/guix.texi:18677
 #, no-wrap
 msgid "addresses-and-ports"
 msgstr "addresses-and-ports"
 
 #. type: table
-#: doc/guix.texi:16925
+#: doc/guix.texi:18679
 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:16926
+#: doc/guix.texi:18680
 #, no-wrap
 msgid "contents"
 msgstr "contents"
 
 #. type: table
-#: doc/guix.texi:16929
+#: doc/guix.texi:18683
 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:16933
+#: doc/guix.texi:18687
 #, no-wrap
 msgid "NGINX"
 msgstr "NGINX"
 
 #. type: deffn
-#: doc/guix.texi:16935
+#: doc/guix.texi:18689
 #, no-wrap
 msgid "{Scheme Variable} nginx-service-type"
 msgstr "{Variable Scheme} nginx-service-type"
 
 #. type: deffn
-#: doc/guix.texi:16938
+#: doc/guix.texi:18692
 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:16948 doc/guix.texi:17002
+#: doc/guix.texi:18702 doc/guix.texi:18756
 #, no-wrap
 msgid ""
 "(service nginx-service-type\n"
@@ -31376,12 +34944,12 @@ msgstr ""
 "                     (root \"/srv/http/www.example.com\"))))))\n"
 
 #. type: deffn
-#: doc/guix.texi:16953
+#: doc/guix.texi:18707
 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:16959
+#: doc/guix.texi:18713
 #, no-wrap
 msgid ""
 "(simple-service 'my-extra-server nginx-service-type\n"
@@ -31395,88 +34963,88 @@ msgstr ""
 "                        (try-files (list \"$uri\" \"$uri/index.html\")))))\n"
 
 #. type: Plain text
-#: doc/guix.texi:16970
+#: doc/guix.texi:18724
 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:16971
+#: doc/guix.texi:18725
 #, no-wrap
 msgid "{Data Type} nginx-configuration"
 msgstr "{Type de données} nginx-configuration"
 
 #. type: deffn
-#: doc/guix.texi:16975
+#: doc/guix.texi:18729
 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:16977
+#: doc/guix.texi:18731
 #, no-wrap
 msgid "@code{nginx} (default: @code{nginx})"
 msgstr "@code{nginx} (par défaut : @code{nginx})"
 
 #. type: table
-#: doc/guix.texi:16979
+#: doc/guix.texi:18733
 msgid "The nginx package to use."
 msgstr "Le paquet nginx à utiliser."
 
 #. type: item
-#: doc/guix.texi:16980
+#: doc/guix.texi:18734
 #, 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:16982
+#: doc/guix.texi:18736
 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:16983
+#: doc/guix.texi:18737
 #, 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:16986
+#: doc/guix.texi:18740
 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:16987
+#: doc/guix.texi:18741
 #, no-wrap
 msgid "@code{server-blocks} (default: @code{'()})"
 msgstr "@code{server-blocks} (par défaut : @code{'()})"
 
 #. type: table
-#: doc/guix.texi:16991
+#: doc/guix.texi:18745
 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:16995
+#: doc/guix.texi:18749
 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:17004
+#: doc/guix.texi:18758
 #, no-wrap
 msgid "@code{upstream-blocks} (default: @code{'()})"
 msgstr "@code{upstream-blocks} (par défaut : @code{'()})"
 
 #. type: table
-#: doc/guix.texi:17008
+#: doc/guix.texi:18762
 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:17015
+#: doc/guix.texi:18769
 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:17034
+#: doc/guix.texi:18788
 #, no-wrap
 msgid ""
 "(service\n"
@@ -31516,350 +35084,344 @@ msgstr ""
 "                             \"server2.example.com\")))))))\n"
 
 #. type: table
-#: doc/guix.texi:17042
+#: doc/guix.texi:18796
 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:17046
+#: doc/guix.texi:18800
 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:17047
+#: doc/guix.texi:18801
 #, 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:17050
+#: doc/guix.texi:18804
 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:17051
+#: doc/guix.texi:18805
 #, 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:17053
+#: doc/guix.texi:18807
 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: item
-#: doc/guix.texi:17054
-#, no-wrap
-msgid "@code{extra-content} (default: @code{\"\"})"
-msgstr "@code{extra-content} (par défaut : @code{\"\"})"
-
 #. type: table
-#: doc/guix.texi:17057
+#: doc/guix.texi:18811
 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:17061
+#: doc/guix.texi:18815
 #, no-wrap
 msgid "{Data Type} nginx-server-configuration"
 msgstr "{Type de données} nginx-server-configuration"
 
 #. type: deftp
-#: doc/guix.texi:17064
+#: doc/guix.texi:18818
 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:17066
+#: doc/guix.texi:18820
 #, 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:17071
+#: doc/guix.texi:18825
 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:17074
+#: doc/guix.texi:18828
 #, 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:17076
+#: doc/guix.texi:18830
 #, 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:17079
+#: doc/guix.texi:18833
 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:17080
+#: doc/guix.texi:18834
 #, no-wrap
 msgid "@code{root} (default: @code{\"/srv/http\"})"
 msgstr "@code{root} (par défaut : @code{\"/srv/http\"})"
 
 #. type: table
-#: doc/guix.texi:17082
+#: doc/guix.texi:18836
 msgid "Root of the website nginx will serve."
 msgstr "Racine du site web que sert nginx."
 
 #. type: item
-#: doc/guix.texi:17083
+#: doc/guix.texi:18837
 #, no-wrap
 msgid "@code{locations} (default: @code{'()})"
 msgstr "@code{locations} (par défaut : @code{'()})"
 
 #. type: table
-#: doc/guix.texi:17087
+#: doc/guix.texi:18841
 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:17088
+#: doc/guix.texi:18842
 #, 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:17091
+#: doc/guix.texi:18845
 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:17092
+#: doc/guix.texi:18846
 #, no-wrap
 msgid "@code{try-files} (default: @code{'()})"
 msgstr "@code{try-files} (par défaut : @code{'()})"
 
 #. type: table
-#: doc/guix.texi:17095
+#: doc/guix.texi:18849
 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:17096
+#: doc/guix.texi:18850
 #, no-wrap
 msgid "@code{ssl-certificate} (default: @code{#f})"
 msgstr "@code{ssl-certificate} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:17099
+#: doc/guix.texi:18853
 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:17100
+#: doc/guix.texi:18854
 #, 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:17103
+#: doc/guix.texi:18857
 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:17104
+#: doc/guix.texi:18858
 #, no-wrap
 msgid "@code{server-tokens?} (default: @code{#f})"
 msgstr "@code{server-tokens?} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:17106
+#: doc/guix.texi:18860
 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:17107
+#: doc/guix.texi:18861
 #, no-wrap
 msgid "@code{raw-content} (default: @code{'()})"
 msgstr "@code{raw-content} (par défaut : @code{'()})"
 
 #. type: table
-#: doc/guix.texi:17109
+#: doc/guix.texi:18863
 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:17113
+#: doc/guix.texi:18867
 #, no-wrap
 msgid "{Data Type} nginx-upstream-configuration"
 msgstr "{Type de données} nginx-upstream-configuration"
 
 #. type: deftp
-#: doc/guix.texi:17116
+#: doc/guix.texi:18870
 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:17120
+#: doc/guix.texi:18874
 msgid "Name for this group of servers."
 msgstr "Nome de ces groupe de serveurs."
 
 #. type: code{#1}
-#: doc/guix.texi:17121
+#: doc/guix.texi:18875
 #, no-wrap
 msgid "servers"
 msgstr "serveurs"
 
 #. type: table
-#: doc/guix.texi:17128
-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."
+#: doc/guix.texi:18882
+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:17132
+#: doc/guix.texi:18886
 #, no-wrap
 msgid "{Data Type} nginx-location-configuration"
 msgstr "{Type de données} nginx-location-configuration"
 
 #. type: deftp
-#: doc/guix.texi:17135
+#: doc/guix.texi:18889
 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:17139
+#: doc/guix.texi:18893
 msgid "URI which this location block matches."
 msgstr "URI qui correspond à ce bloc."
 
 #. type: anchor{#1}
-#: doc/guix.texi:17141
+#: doc/guix.texi:18895
 msgid "nginx-location-configuration body"
 msgstr "nginx-location-configuration body"
 
 #. type: code{#1}
-#: doc/guix.texi:17141 doc/guix.texi:17162
+#: doc/guix.texi:18895 doc/guix.texi:18916
 #, no-wrap
 msgid "body"
 msgstr "body"
 
 #. type: table
-#: doc/guix.texi:17148
+#: doc/guix.texi:18902
 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:17152
+#: doc/guix.texi:18906
 #, no-wrap
 msgid "{Data Type} nginx-named-location-configuration"
 msgstr "{Type de données} nginx-named-location-configuration"
 
 #. type: deftp
-#: doc/guix.texi:17157
+#: doc/guix.texi:18911
 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:17161
+#: doc/guix.texi:18915
 msgid "Name to identify this location block."
 msgstr "Nom pour identifier ce bloc location."
 
 #. type: table
-#: doc/guix.texi:17167
+#: doc/guix.texi:18921
 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:17171
+#: doc/guix.texi:18925
 #, no-wrap
 msgid "Varnish Cache"
 msgstr "Cache Varnish"
 
 #. type: cindex
-#: doc/guix.texi:17172
+#: doc/guix.texi:18926
 #, no-wrap
 msgid "Varnish"
 msgstr "Varnish"
 
 #. type: Plain text
-#: doc/guix.texi:17177
+#: doc/guix.texi:18931
 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:17178
+#: doc/guix.texi:18932
 #, no-wrap
 msgid "{Scheme Variable} varnish-service-type"
 msgstr "{Variable Scheme} varnish-service-type"
 
 #. type: defvr
-#: doc/guix.texi:17180
+#: doc/guix.texi:18934
 msgid "Service type for the Varnish daemon."
 msgstr "Type de service pour le démon Varnish."
 
 #. type: deftp
-#: doc/guix.texi:17182
+#: doc/guix.texi:18936
 #, no-wrap
 msgid "{Data Type} varnish-configuration"
 msgstr "{Type de données} varnish-configuration"
 
 #. type: deftp
-#: doc/guix.texi:17185
+#: doc/guix.texi:18939
 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:17187
+#: doc/guix.texi:18941
 #, no-wrap
 msgid "@code{package} (default: @code{varnish})"
 msgstr "@code{package} (par défaut : @code{varnish})"
 
 #. type: table
-#: doc/guix.texi:17189
+#: doc/guix.texi:18943
 msgid "The Varnish package to use."
 msgstr "Le paquet Varnish à utiliser."
 
 #. type: item
-#: doc/guix.texi:17190
+#: doc/guix.texi:18944
 #, no-wrap
 msgid "@code{name} (default: @code{\"default\"})"
 msgstr "@code{name} (par défaut : @code{\"default\"})"
 
 #. type: table
-#: doc/guix.texi:17195
+#: doc/guix.texi:18949
 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:17198
-msgid "Pass the @code{-n} argument to other Varnish programs to connect to the named instance, e.g. @command{varnishncsa -n default}."
+#: doc/guix.texi:18952
+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:17199
+#: doc/guix.texi:18953
 #, no-wrap
 msgid "@code{backend} (default: @code{\"localhost:8080\"})"
 msgstr "@code{backend} (par défaut : @code{\"localhost:8080\"})"
 
 #. type: table
-#: doc/guix.texi:17201
+#: doc/guix.texi:18955
 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:17202
+#: doc/guix.texi:18956
 #, no-wrap
 msgid "@code{vcl} (default: #f)"
 msgstr "@code{vcl} (par défaut : #f)"
 
 #. type: table
-#: doc/guix.texi:17207
+#: doc/guix.texi:18961
 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:17211
+#: doc/guix.texi:18965
 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 :"
 
 #. type: example
-#: doc/guix.texi:17218
+#: doc/guix.texi:18972
 #, no-wrap
 msgid ""
 "(define %gnu-mirror\n"
@@ -31877,7 +35439,7 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix.texi:17226
+#: doc/guix.texi:18980
 #, no-wrap
 msgid ""
 "(operating-system\n"
@@ -31897,533 +35459,544 @@ msgstr ""
 "                  %base-services)))\n"
 
 #. type: table
-#: doc/guix.texi:17230
+#: doc/guix.texi:18984
 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:17234
+#: doc/guix.texi:18988
 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:17235
+#: doc/guix.texi:18989
 #, no-wrap
 msgid "@code{listen} (default: @code{'(\"localhost:80\")})"
 msgstr "@code{listen} (par défaut : @code{'(\"localhost:80\")})"
 
 #. type: table
-#: doc/guix.texi:17237
+#: doc/guix.texi:18991
 msgid "List of addresses Varnish will listen on."
 msgstr "Liste des adresses sur lesquelles écoute Varnish."
 
 #. type: item
-#: doc/guix.texi:17238
+#: doc/guix.texi:18992
 #, no-wrap
 msgid "@code{storage} (default: @code{'(\"malloc,128m\")})"
 msgstr "@code{storage} (par défaut : @code{'(\"malloc,128m\")})"
 
 #. type: table
-#: doc/guix.texi:17240
+#: doc/guix.texi:18994
 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:17241
+#: doc/guix.texi:18995
 #, no-wrap
 msgid "@code{parameters} (default: @code{'()})"
 msgstr "@code{parameters} (par défaut : @code{'()})"
 
 #. type: table
-#: doc/guix.texi:17243
+#: doc/guix.texi:18997
 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:17246
+#: doc/guix.texi:19000
 msgid "Additional arguments to pass to the @command{varnishd} process."
 msgstr "Arguments supplémentaires à passer au processus @command{varnishd}."
 
 #. type: subsubheading
-#: doc/guix.texi:17250
+#: doc/guix.texi:19004
 #, no-wrap
 msgid "FastCGI"
 msgstr "FastCGI"
 
 #. type: cindex
-#: doc/guix.texi:17251
+#: doc/guix.texi:19005
 #, no-wrap
 msgid "fastcgi"
 msgstr "fastcgi"
 
 #. type: cindex
-#: doc/guix.texi:17252
+#: doc/guix.texi:19006
 #, no-wrap
 msgid "fcgiwrap"
 msgstr "fcgiwrap"
 
 #. type: Plain text
-#: doc/guix.texi:17259
+#: doc/guix.texi:19013
 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:17266
+#: doc/guix.texi:19020
 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:17267
+#: doc/guix.texi:19021
 #, no-wrap
 msgid "{Scheme Variable} fcgiwrap-service-type"
 msgstr "{Variable Scheme} fcgiwrap-service-type"
 
 #. type: defvr
-#: doc/guix.texi:17269
+#: doc/guix.texi:19023
 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:17271
+#: doc/guix.texi:19025
 #, no-wrap
 msgid "{Data Type} fcgiwrap-configuration"
 msgstr "{Type de données} fcgiwrap-configuration"
 
 #. type: deftp
-#: doc/guix.texi:17274
-msgid "Data type representing the configuration of the @code{fcgiwrap} serice.  This type has the following parameters:"
-msgstr "Type de données représentant la configuration d'un service @code{fcgiwrap}.  Ce type a les paramètres suivants :"
+#: doc/guix.texi:19028
+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:17275
+#: doc/guix.texi:19029
 #, no-wrap
 msgid "@code{package} (default: @code{fcgiwrap})"
 msgstr "@code{package} (par défaut : @code{fcgiwrap})"
 
 #. type: table
-#: doc/guix.texi:17277
+#: doc/guix.texi:19031
 msgid "The fcgiwrap package to use."
 msgstr "Le paquet fcgiwrap à utiliser."
 
 #. type: item
-#: doc/guix.texi:17278
+#: doc/guix.texi:19032
 #, 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:17284
+#: doc/guix.texi:19038
 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:17285
+#: doc/guix.texi:19039
 #, no-wrap
 msgid "@code{user} (default: @code{fcgiwrap})"
 msgstr "@code{user} (par défaut : @code{fcgiwrap})"
 
 #. type: itemx
-#: doc/guix.texi:17286
+#: doc/guix.texi:19040
 #, no-wrap
 msgid "@code{group} (default: @code{fcgiwrap})"
 msgstr "@code{group} (par défaut : @code{fcgiwrap})"
 
 #. type: table
-#: doc/guix.texi:17291
+#: doc/guix.texi:19045
 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:17298
+#: doc/guix.texi:19052
 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."
 
 #. type: cindex
-#: doc/guix.texi:17301
+#: doc/guix.texi:19055
 #, no-wrap
 msgid "php-fpm"
 msgstr "php-fpm"
 
 #. type: Plain text
-#: doc/guix.texi:17304
+#: doc/guix.texi:19058
 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:17306
+#: doc/guix.texi:19060
 msgid "These features include:"
 msgstr "Ces fonctionnalités comprennent :"
 
 #. type: item
-#: doc/guix.texi:17307
+#: doc/guix.texi:19061
 #, no-wrap
 msgid "Adaptive process spawning"
 msgstr "La création de processus adaptative"
 
 #. type: item
-#: doc/guix.texi:17308
+#: doc/guix.texi:19062
 #, 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:17309
+#: doc/guix.texi:19063
 #, 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:17310
+#: doc/guix.texi:19064
 #, 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:17312
+#: doc/guix.texi:19066
 msgid "and different php.ini (replaces safe_mode)"
 msgstr "et différents php.ini (à la place de safe_mode)"
 
 #. type: item
-#: doc/guix.texi:17312
+#: doc/guix.texi:19066
 #, no-wrap
 msgid "Stdout & stderr logging"
 msgstr "L'enregistrement des journaux sur stdout et stderr"
 
 #. type: item
-#: doc/guix.texi:17313
+#: doc/guix.texi:19067
 #, 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:17314
+#: doc/guix.texi:19068
 #, no-wrap
 msgid "Accelerated upload support"
 msgstr "Le support des téléversements accélérés"
 
 #. type: item
-#: doc/guix.texi:17315
+#: doc/guix.texi:19069
 #, no-wrap
 msgid "Support for a \"slowlog\""
 msgstr "Le support de « showlog »"
 
 #. type: item
-#: doc/guix.texi:17316
+#: doc/guix.texi:19070
 #, 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:17319
+#: doc/guix.texi:19073
 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:17321
-msgid "... and much more."
-msgstr "… et bien plus."
+#: doc/guix.texi:19075
+msgid "...@: and much more."
+msgstr "…@: et bien plus."
 
 #. type: defvr
-#: doc/guix.texi:17322
+#: doc/guix.texi:19076
 #, no-wrap
 msgid "{Scheme Variable} php-fpm-service-type"
 msgstr "{Variable Scheme} php-fpm-service-type"
 
 #. type: defvr
-#: doc/guix.texi:17324
+#: doc/guix.texi:19078
 msgid "A Service type for @code{php-fpm}."
 msgstr "Un type de service pour @code{php-fpm}."
 
 #. type: deftp
-#: doc/guix.texi:17326
+#: doc/guix.texi:19080
 #, no-wrap
 msgid "{Data Type} php-fpm-configuration"
 msgstr "{Type de données} php-fpm-configuration"
 
 #. type: deftp
-#: doc/guix.texi:17328
+#: doc/guix.texi:19082
 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:17329
+#: doc/guix.texi:19083
 #, no-wrap
 msgid "@code{php} (default: @code{php})"
 msgstr "@code{php} (par défaut : @code{php})"
 
 #. type: table
-#: doc/guix.texi:17331
+#: doc/guix.texi:19085
 msgid "The php package to use."
 msgstr "Le paquet php à utiliser."
 
 #. type: item
-#: doc/guix.texi:17331
+#: doc/guix.texi:19085
 #, 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:17333
+#: doc/guix.texi:19087
 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:17334
+#: doc/guix.texi:19088
 #, no-wrap
 msgid "\"ip.add.re.ss:port\""
 msgstr "\"ip.add.re.ss:port\""
 
 #. type: table
-#: doc/guix.texi:17336
+#: doc/guix.texi:19090
 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:17336
+#: doc/guix.texi:19090
 #, no-wrap
 msgid "\"port\""
 msgstr "\"port\""
 
 #. type: table
-#: doc/guix.texi:17338
+#: doc/guix.texi:19092
 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:17338
+#: doc/guix.texi:19092
 #, no-wrap
 msgid "\"/path/to/unix/socket\""
 msgstr "\"/path/to/unix/socket\""
 
 #. type: table
-#: doc/guix.texi:17340
+#: doc/guix.texi:19094
 msgid "Listen on a unix socket."
 msgstr "Écoute sur un socket unix."
 
 #. type: item
-#: doc/guix.texi:17342
+#: doc/guix.texi:19096
 #, no-wrap
 msgid "@code{user} (default: @code{php-fpm})"
 msgstr "@code{user} (par défaut : @code{php-fpm})"
 
 #. type: table
-#: doc/guix.texi:17344
+#: doc/guix.texi:19098
 msgid "User who will own the php worker processes."
 msgstr "Utilisateur à qui appartiendra le processus de travail de php."
 
 #. type: item
-#: doc/guix.texi:17344
+#: doc/guix.texi:19098
 #, no-wrap
 msgid "@code{group} (default: @code{php-fpm})"
 msgstr "@code{group} (par défaut : @code{php-fpm})"
 
 #. type: table
-#: doc/guix.texi:17346
+#: doc/guix.texi:19100
 msgid "Group of the worker processes."
 msgstr "Groupe du processus de travail."
 
 #. type: item
-#: doc/guix.texi:17346
+#: doc/guix.texi:19100
 #, 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:17348
+#: doc/guix.texi:19102
 msgid "User who can speak to the php-fpm socket."
 msgstr "Utilisateur qui peut parler au socket php-fpm."
 
 #. type: item
-#: doc/guix.texi:17348
+#: doc/guix.texi:19102
 #, no-wrap
 msgid "@code{socket-group} (default: @code{php-fpm})"
 msgstr "@code{socket-group} (par défaut : @code{php-fpm})"
 
 #. type: table
-#: doc/guix.texi:17350
+#: doc/guix.texi:19104
 msgid "Group that can speak to the php-fpm socket."
 msgstr "Groupe qui peut parler au socket php-fpm."
 
 #. type: item
-#: doc/guix.texi:17350
+#: doc/guix.texi:19104
 #, 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:17353
+#: doc/guix.texi:19107
 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:17353
+#: doc/guix.texi:19107
 #, 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:17355
+#: doc/guix.texi:19109
 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:17355
+#: doc/guix.texi:19109
 #, 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:17358
+#: doc/guix.texi:19112
 msgid "Detailed settings for the php-fpm process manager.  Must be either:"
 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:17359
+#: doc/guix.texi:19113
 #, no-wrap
 msgid "<php-fpm-dynamic-process-manager-configuration>"
-msgstr "<php-fpm-dynamic-process-manager-configuration>,"
+msgstr "<php-fpm-dynamic-process-manager-configuration>"
 
 #. type: code{#1}
-#: doc/guix.texi:17360
+#: doc/guix.texi:19114
 #, no-wrap
 msgid "<php-fpm-static-process-manager-configuration>"
 msgstr "<php-fpm-static-process-manager-configuration> ou"
 
 #. type: code{#1}
-#: doc/guix.texi:17361
+#: doc/guix.texi:19115
 #, no-wrap
 msgid "<php-fpm-on-demand-process-manager-configuration>"
 msgstr "<php-fpm-on-demand-process-manager-configuration>"
 
 #. type: item
-#: doc/guix.texi:17363
+#: doc/guix.texi:19117
 #, no-wrap
 msgid "@code{display-errors} (default @code{#f})"
 msgstr "@code{display-errors} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:17368
+#: doc/guix.texi:19122
 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:17368
+#: doc/guix.texi:19122
+#, no-wrap
+msgid "@code{timezone} (default @code{#f})"
+msgstr "@code{timezone} (par défaut : @code{#f})"
+
+#. type: table
+#: doc/guix.texi:19124
+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:19124
 #, 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:17371
+#: doc/guix.texi:19127
 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:17371
+#: doc/guix.texi:19127
 #, no-wrap
 msgid "@code{file} (default @code{#f})"
 msgstr "@code{file} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:17374
+#: doc/guix.texi:19130
 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: deftp
-#: doc/guix.texi:17377
+#: doc/guix.texi:19133
 #, 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:17381
+#: doc/guix.texi:19137
 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:17382 doc/guix.texi:17398 doc/guix.texi:17408
+#: doc/guix.texi:19138 doc/guix.texi:19154 doc/guix.texi:19164
 #, no-wrap
 msgid "@code{max-children} (default: @code{5})"
 msgstr "@code{max-children} (par défaut : @code{5})"
 
 #. type: table
-#: doc/guix.texi:17384 doc/guix.texi:17400 doc/guix.texi:17410
+#: doc/guix.texi:19140 doc/guix.texi:19156 doc/guix.texi:19166
 msgid "Maximum of worker processes."
 msgstr "Nombre maximum de processus de travail."
 
 #. type: item
-#: doc/guix.texi:17384
+#: doc/guix.texi:19140
 #, no-wrap
 msgid "@code{start-servers} (default: @code{2})"
 msgstr "@code{start-servers} (par défaut : @code{2})"
 
 #. type: table
-#: doc/guix.texi:17386
+#: doc/guix.texi:19142
 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:17386
+#: doc/guix.texi:19142
 #, 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:17388
+#: doc/guix.texi:19144
 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:17388
+#: doc/guix.texi:19144
 #, 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:17390
+#: doc/guix.texi:19146
 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:17393
+#: doc/guix.texi:19149
 #, 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:17397
+#: doc/guix.texi:19153
 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:17403
+#: doc/guix.texi:19159
 #, 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:17407
+#: doc/guix.texi:19163
 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:17410
+#: doc/guix.texi:19166
 #, 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:17412
+#: doc/guix.texi:19168
 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:17416
+#: doc/guix.texi:19172
 #, no-wrap
 msgid "{Scheme Procedure} nginx-php-fpm-location @"
 msgstr "{Procédure Scheme} nginx-php-fpm-location @"
 
 #. type: deffn
-#: doc/guix.texi:17422
+#: doc/guix.texi:19178
 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"
@@ -32433,12 +36006,12 @@ msgstr ""
 "Une fonction d'aide pour ajouter rapidement php à un @code{nginx-server-configuration}."
 
 #. type: Plain text
-#: doc/guix.texi:17425
+#: doc/guix.texi:19181
 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:17438
+#: doc/guix.texi:19194
 #, no-wrap
 msgid ""
 "(services (cons* (service dhcp-client-service-type)\n"
@@ -32449,7 +36022,7 @@ msgid ""
 "                           (root \"/srv/http/\")\n"
 "                           (locations\n"
 "                            (list (nginx-php-location)))\n"
-"                           (https-port #f)\n"
+"                           (listen '(\"80\"))\n"
 "                           (ssl-certificate #f)\n"
 "                           (ssl-certificate-key #f)))\n"
 "                 %base-services))\n"
@@ -32462,30 +36035,30 @@ msgstr ""
 "                           (root \"/srv/http/\")\n"
 "                           (locations\n"
 "                            (list (nginx-php-location)))\n"
-"                           (https-port #f)\n"
+"                           (listen '(\"80\"))\n"
 "                           (ssl-certificate #f)\n"
 "                           (ssl-certificate-key #f)))\n"
 "                 %base-services))\n"
 
 #. type: cindex
-#: doc/guix.texi:17440
+#: doc/guix.texi:19196
 #, no-wrap
 msgid "cat-avatar-generator"
 msgstr "cat-avatar-generator"
 
 #. type: Plain text
-#: doc/guix.texi:17444
+#: doc/guix.texi:19200
 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:17445
+#: doc/guix.texi:19201
 #, no-wrap
-msgid "{Scheme Procedure} cat-avatar-generator-serice @"
-msgstr "{Procédure Scheme} cat-avatar-generator-serice @"
+msgid "{Scheme Procedure} cat-avatar-generator-service @"
+msgstr "{Procédure Scheme} cat-avatar-generator-service @"
 
 #. type: deffn
-#: doc/guix.texi:17453
+#: doc/guix.texi:19209
 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"
@@ -32494,12 +36067,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:17456
+#: doc/guix.texi:19212
 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:17463
+#: doc/guix.texi:19219
 #, no-wrap
 msgid ""
 "(services (cons* (cat-avatar-generator-service\n"
@@ -32517,155 +36090,155 @@ msgstr ""
 "                 %base-services))\n"
 
 #. type: subsubheading
-#: doc/guix.texi:17465
+#: doc/guix.texi:19221
 #, no-wrap
 msgid "Hpcguix-web"
 msgstr "Hpcguix-web"
 
 #. type: cindex
-#: doc/guix.texi:17467
+#: doc/guix.texi:19223
 #, no-wrap
 msgid "hpcguix-web"
 msgstr "hpcguix-web"
 
 #. type: Plain text
-#: doc/guix.texi:17472
+#: doc/guix.texi:19228
 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)."
 
 #. type: defvr
-#: doc/guix.texi:17473
+#: doc/guix.texi:19229
 #, no-wrap
 msgid "{Scheme Variable} hpcguix-web-service-type"
 msgstr "{Variable Scheme} hpcguix-web-service-type"
 
 #. type: defvr
-#: doc/guix.texi:17475
+#: doc/guix.texi:19231
 msgid "The service type for @code{hpcguix-web}."
 msgstr "Le type de service pour @code{hpcguix-web}."
 
 #. type: deftp
-#: doc/guix.texi:17477
+#: doc/guix.texi:19233
 #, no-wrap
 msgid "{Data Type} hpcguix-web-configuration"
 msgstr "{Type de données} hpcguix-web-configuration"
 
 #. type: deftp
-#: doc/guix.texi:17479
+#: doc/guix.texi:19235
 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:17481
+#: doc/guix.texi:19237
 #, no-wrap
 msgid "specs"
 msgstr "specs"
 
 #. type: table
-#: doc/guix.texi:17484
+#: doc/guix.texi:19240
 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:17486
+#: doc/guix.texi:19242
 #, no-wrap
 msgid "@code{title-prefix} (default: @code{\"hpcguix | \"})"
 msgstr "@code{title-prefix} (par défaut : @code{\"hpcguix | \"})"
 
 #. type: table
-#: doc/guix.texi:17488
+#: doc/guix.texi:19244
 msgid "The page title prefix."
 msgstr "Le préfixe du titre des pages."
 
 #. type: item
-#: doc/guix.texi:17489
+#: doc/guix.texi:19245
 #, no-wrap
 msgid "@code{guix-command} (default: @code{\"guix\"})"
 msgstr "@code{guix-command} (par défaut : @code{\"guix\"})"
 
 #. type: table
-#: doc/guix.texi:17491
+#: doc/guix.texi:19247
 msgid "The @command{guix} command."
 msgstr "La commande @command{guix}"
 
 #. type: item
-#: doc/guix.texi:17492
+#: doc/guix.texi:19248
 #, 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:17494
+#: doc/guix.texi:19250
 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:17495
+#: doc/guix.texi:19251
 #, 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:17497
+#: doc/guix.texi:19253
 msgid "Extension package for @code{hpcguix-web}."
 msgstr "Paquet d'extensions pour @code{hpcguix-web}."
 
 #. type: item
-#: doc/guix.texi:17498
+#: doc/guix.texi:19254
 #, no-wrap
 msgid "@code{menu} (default: @code{'()})"
 msgstr "@code{menu} (par défaut : @code{'()})"
 
 #. type: table
-#: doc/guix.texi:17500
+#: doc/guix.texi:19256
 msgid "Additional entry in page @code{menu}."
 msgstr "Entrée supplémentaire dans la page @code{menu}."
 
 #. type: item
-#: doc/guix.texi:17501
+#: doc/guix.texi:19257
 #, no-wrap
 msgid "@code{channels} (default: @code{%default-channels})"
 msgstr "@code{channels} (par défaut : @code{%default-channels})"
 
 #. type: table
-#: doc/guix.texi:17503
+#: doc/guix.texi:19259
 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:17504
+#: doc/guix.texi:19260
 #, 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:17507
+#: doc/guix.texi:19263
 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:17512
+#: doc/guix.texi:19268
 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:17513
+#: doc/guix.texi:19269
 #, no-wrap
 msgid "@code{package} (default: @code{hpcguix-web})"
 msgstr "@code{package} (par défaut : @code{hpcguix-web})"
 
 #. type: table
-#: doc/guix.texi:17515
+#: doc/guix.texi:19271
 msgid "The hpcguix-web package to use."
 msgstr "Le paquet hpcguix-web à utiliser."
 
 #. type: Plain text
-#: doc/guix.texi:17519
+#: doc/guix.texi:19275
 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:17528
+#: doc/guix.texi:19284
 #, no-wrap
 msgid ""
 "(service hpcguix-web-service-type\n"
@@ -32685,77 +36258,77 @@ msgstr ""
 "                (menu '((\"/about\" \"ABOUT\"))))))))\n"
 
 #. type: quotation
-#: doc/guix.texi:17535
+#: doc/guix.texi:19291
 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:17539
+#: doc/guix.texi:19295
 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:17544
+#: doc/guix.texi:19300
 #, no-wrap
 msgid "Web"
 msgstr "Web"
 
 #. type: cindex
-#: doc/guix.texi:17545
+#: doc/guix.texi:19301
 #, no-wrap
 msgid "HTTP, HTTPS"
 msgstr "HTTP, HTTPS"
 
 #. type: cindex
-#: doc/guix.texi:17546
+#: doc/guix.texi:19302
 #, no-wrap
 msgid "Let's Encrypt"
 msgstr "Let's Encrypt"
 
 #. type: cindex
-#: doc/guix.texi:17547
+#: doc/guix.texi:19303
 #, no-wrap
 msgid "TLS certificates"
 msgstr "certificats TLS"
 
 #. type: Plain text
-#: doc/guix.texi:17554
+#: doc/guix.texi:19310
 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:17566
+#: doc/guix.texi:19322
 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:17573
-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)."
+#: doc/guix.texi:19329
+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:17579
+#: doc/guix.texi:19335
 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:17583
+#: doc/guix.texi:19339
 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:17584
+#: doc/guix.texi:19340
 #, no-wrap
 msgid "{Scheme Variable} certbot-service-type"
 msgstr "{Variable Scheme} certbot-service-type"
 
 #. type: defvr
-#: doc/guix.texi:17587
+#: doc/guix.texi:19343
 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:17594
+#: doc/guix.texi:19350
 #, no-wrap
 msgid ""
 "(define %nginx-deploy-hook\n"
@@ -32773,7 +36346,7 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix.texi:17605
+#: doc/guix.texi:19361
 #, no-wrap
 msgid ""
 "(service certbot-service-type\n"
@@ -32799,180 +36372,180 @@ msgstr ""
 "             (domains '(\"bar.example.net\")))))))\n"
 
 #. type: defvr
-#: doc/guix.texi:17608
+#: doc/guix.texi:19364
 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:17610
+#: doc/guix.texi:19366
 #, no-wrap
 msgid "{Data Type} certbot-configuration"
 msgstr "{Type de données} certbot-configuration"
 
 #. type: deftp
-#: doc/guix.texi:17613
+#: doc/guix.texi:19369
 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:17615
+#: doc/guix.texi:19371
 #, no-wrap
 msgid "@code{package} (default: @code{certbot})"
 msgstr "@code{package} (par défaut : @code{certbot})"
 
 #. type: table
-#: doc/guix.texi:17617
+#: doc/guix.texi:19373
 msgid "The certbot package to use."
 msgstr "Le paquet certbot à utiliser."
 
 #. type: item
-#: doc/guix.texi:17618
+#: doc/guix.texi:19374
 #, no-wrap
 msgid "@code{webroot} (default: @code{/var/www})"
 msgstr "@code{webroot} (par défaut : @code{/var/www})"
 
 #. type: table
-#: doc/guix.texi:17621
+#: doc/guix.texi:19377
 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:17622
+#: doc/guix.texi:19378
 #, no-wrap
 msgid "@code{certificates} (default: @code{()})"
 msgstr "@code{certificates} (par défaut : @code{()})"
 
 #. type: table
-#: doc/guix.texi:17626
+#: doc/guix.texi:19382
 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: table
-#: doc/guix.texi:17630
+#: doc/guix.texi:19386
 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."
 
 #. type: item
-#: doc/guix.texi:17631
+#: doc/guix.texi:19387
 #, 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:17633
+#: doc/guix.texi:19389
 msgid "Size of the RSA key."
 msgstr "Taille de la clef RSA."
 
 #. type: item
-#: doc/guix.texi:17634
+#: doc/guix.texi:19390
 #, 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:17643
+#: doc/guix.texi:19399
 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:17647
+#: doc/guix.texi:19403
 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:17651
+#: doc/guix.texi:19407
 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:17653
+#: doc/guix.texi:19409
 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:17656
+#: doc/guix.texi:19412
 #, no-wrap
 msgid "{Data Type} certificate-configuration"
 msgstr "{Type de données} certificate-configuration"
 
 #. type: deftp
-#: doc/guix.texi:17659
+#: doc/guix.texi:19415
 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:17661
+#: doc/guix.texi:19417
 #, no-wrap
 msgid "@code{name} (default: @i{see below})"
 msgstr "@code{name} (par défaut : @i{voir plus bas})"
 
 #. type: table
-#: doc/guix.texi:17665
+#: doc/guix.texi:19421
 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:17667
+#: doc/guix.texi:19423
 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:17668
+#: doc/guix.texi:19424
 #, no-wrap
 msgid "@code{domains} (default: @code{()})"
 msgstr "@code{domains} (par défaut : @code{()})"
 
 #. type: table
-#: doc/guix.texi:17671
+#: doc/guix.texi:19427
 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:17672
+#: doc/guix.texi:19428
 #, no-wrap
 msgid "@code{deploy-hook} (default: @code{#f})"
 msgstr "@code{deploy-hook} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:17680
+#: doc/guix.texi:19436
 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:17687
+#: doc/guix.texi:19443
 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:17689
+#: doc/guix.texi:19445
 #, no-wrap
 msgid "DNS (domain name system)"
 msgstr "DNS (domain name system)"
 
 #. type: cindex
-#: doc/guix.texi:17690
+#: doc/guix.texi:19446
 #, no-wrap
 msgid "domain name system (DNS)"
 msgstr "domain name system (DNS)"
 
 #. type: Plain text
-#: doc/guix.texi:17698
+#: doc/guix.texi:19454
 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:17699
+#: doc/guix.texi:19455
 #, no-wrap
 msgid "Knot Service"
 msgstr "Service Knot"
 
 #. type: Plain text
-#: doc/guix.texi:17703
+#: doc/guix.texi:19459
 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:17710
+#: doc/guix.texi:19466
 #, no-wrap
 msgid ""
 "(define-zone-entries example.org.zone\n"
@@ -32990,7 +36563,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:17717
+#: doc/guix.texi:19473
 #, no-wrap
 msgid ""
 "(define master-zone\n"
@@ -33010,7 +36583,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:17723
+#: doc/guix.texi:19479
 #, no-wrap
 msgid ""
 "(define slave-zone\n"
@@ -33028,7 +36601,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:17728
+#: doc/guix.texi:19484
 #, no-wrap
 msgid ""
 "(define plop-master\n"
@@ -33044,7 +36617,7 @@ msgstr ""
 "\n"
 
 #. type: lisp
-#: doc/guix.texi:17737
+#: doc/guix.texi:19493
 #, no-wrap
 msgid ""
 "(operating-system\n"
@@ -33066,834 +36639,834 @@ msgstr ""
 "                   %base-services)))\n"
 
 #. type: deffn
-#: doc/guix.texi:17739
+#: doc/guix.texi:19495
 #, no-wrap
 msgid "{Scheme Variable} knot-service-type"
 msgstr "{Variable Scheme} knot-service-type"
 
 #. type: deffn
-#: doc/guix.texi:17741
+#: doc/guix.texi:19497
 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:17749
+#: doc/guix.texi:19505
 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:17751
+#: doc/guix.texi:19507
 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:17753
+#: doc/guix.texi:19509
 #, no-wrap
 msgid "{Data Type} knot-key-configuration"
 msgstr "{Type de données} knot-key-configuration"
 
 #. type: deftp
-#: doc/guix.texi:17756
+#: doc/guix.texi:19512
 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:17758 doc/guix.texi:17778 doc/guix.texi:17893
-#: doc/guix.texi:17919 doc/guix.texi:17954
+#: doc/guix.texi:19514 doc/guix.texi:19534 doc/guix.texi:19649
+#: doc/guix.texi:19675 doc/guix.texi:19710
 #, no-wrap
 msgid "@code{id} (default: @code{\"\"})"
 msgstr "@code{id} (par défaut : @code{\"\"})"
 
 #. type: table
-#: doc/guix.texi:17761
+#: doc/guix.texi:19517
 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:17762
+#: doc/guix.texi:19518
 #, no-wrap
 msgid "@code{algorithm} (default: @code{#f})"
 msgstr "@code{algorithm} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:17766
+#: doc/guix.texi:19522
 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:17767
+#: doc/guix.texi:19523
 #, no-wrap
 msgid "@code{secret} (default: @code{\"\"})"
 msgstr "@code{secret} (par défaut : @code{\"\"})"
 
 #. type: table
-#: doc/guix.texi:17769
+#: doc/guix.texi:19525
 msgid "The secret key itself."
 msgstr "La clef secrète elle-même."
 
 #. type: deftp
-#: doc/guix.texi:17773
+#: doc/guix.texi:19529
 #, no-wrap
 msgid "{Data Type} knot-acl-configuration"
 msgstr "{Type de données} knot-acl-configuration"
 
 #. type: deftp
-#: doc/guix.texi:17776
+#: doc/guix.texi:19532
 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:17781
+#: doc/guix.texi:19537
 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:17782 doc/guix.texi:17897
+#: doc/guix.texi:19538 doc/guix.texi:19653
 #, no-wrap
 msgid "@code{address} (default: @code{'()})"
 msgstr "@code{address} (par défaut : @code{'()})"
 
 #. type: table
-#: doc/guix.texi:17786
+#: doc/guix.texi:19542
 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:17787
+#: doc/guix.texi:19543
 #, no-wrap
 msgid "@code{key} (default: @code{'()})"
 msgstr "@code{key} (par défaut : @code{'()})"
 
 #. type: table
-#: doc/guix.texi:17791
+#: doc/guix.texi:19547
 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:17792
+#: doc/guix.texi:19548
 #, no-wrap
 msgid "@code{action} (default: @code{'()})"
 msgstr "@code{action} (par défaut : @code{'()})"
 
 #. type: table
-#: doc/guix.texi:17796
+#: doc/guix.texi:19552
 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:17797
+#: doc/guix.texi:19553
 #, no-wrap
 msgid "@code{deny?} (default: @code{#f})"
 msgstr "@code{deny?} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:17800
+#: doc/guix.texi:19556
 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:17804
+#: doc/guix.texi:19560
 #, no-wrap
 msgid "{Data Type} zone-entry"
 msgstr "{Type de données} zone-entry"
 
 #. type: deftp
-#: doc/guix.texi:17807
+#: doc/guix.texi:19563
 msgid "Data type represnting 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:17809
+#: doc/guix.texi:19565
 #, no-wrap
 msgid "@code{name} (default: @code{\"@@\"})"
 msgstr "@code{name} (par défaut : @code{\"@@\"})"
 
 #. type: table
-#: doc/guix.texi:17815
+#: doc/guix.texi:19571
 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:17816
+#: doc/guix.texi:19572
 #, no-wrap
 msgid "@code{ttl} (default: @code{\"\"})"
 msgstr "@code{ttl} (par défaut : @code{\"\"})"
 
 #. type: table
-#: doc/guix.texi:17818
+#: doc/guix.texi:19574
 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:17819
+#: doc/guix.texi:19575
 #, no-wrap
 msgid "@code{class} (default: @code{\"IN\"})"
 msgstr "@code{class} (par défaut : @code{\"IN\"})"
 
 #. type: table
-#: doc/guix.texi:17822
+#: doc/guix.texi:19578
 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:17823
+#: doc/guix.texi:19579
 #, no-wrap
 msgid "@code{type} (default: @code{\"A\"})"
 msgstr "@code{type} (par défaut : @code{\"A\"})"
 
 #. type: table
-#: doc/guix.texi:17827
+#: doc/guix.texi:19583
 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:17828
+#: doc/guix.texi:19584
 #, no-wrap
 msgid "@code{data} (default: @code{\"\"})"
 msgstr "@code{data} (par défaut : @code{\"\"})"
 
 #. type: table
-#: doc/guix.texi:17832
+#: doc/guix.texi:19588
 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:17836
+#: doc/guix.texi:19592
 #, no-wrap
 msgid "{Data Type} zone-file"
 msgstr "{Type de données} zone-file"
 
 #. type: deftp
-#: doc/guix.texi:17839
+#: doc/guix.texi:19595
 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:17848
+#: doc/guix.texi:19604
 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:17849
+#: doc/guix.texi:19605
 #, no-wrap
 msgid "@code{origin} (default: @code{\"\"})"
 msgstr "@code{origin} (par défaut : @code{\"\"})"
 
 #. type: table
-#: doc/guix.texi:17851
+#: doc/guix.texi:19607
 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:17852
+#: doc/guix.texi:19608
 #, no-wrap
 msgid "@code{ns} (default: @code{\"ns\"})"
 msgstr "@code{ns} (par défaut : @code{\"ns\"})"
 
 #. type: table
-#: doc/guix.texi:17857
+#: doc/guix.texi:19613
 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:17858
+#: doc/guix.texi:19614
 #, no-wrap
 msgid "@code{mail} (default: @code{\"hostmaster\"})"
 msgstr "@code{mail} (par défaut : @code{\"hostmaster\"})"
 
 #. type: table
-#: doc/guix.texi:17861
+#: doc/guix.texi:19617
 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:17862
+#: doc/guix.texi:19618
 #, no-wrap
 msgid "@code{serial} (default: @code{1})"
 msgstr "@code{serial} (par défaut : @code{1})"
 
 #. type: table
-#: doc/guix.texi:17866
+#: doc/guix.texi:19622
 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:17867
+#: doc/guix.texi:19623
 #, 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:17871
+#: doc/guix.texi:19627
 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:17872
+#: doc/guix.texi:19628
 #, no-wrap
 msgid "@code{retry} (default: @code{(* 15 60)})"
 msgstr "@code{retry} (par défaut : @code{(* 15 60)})"
 
 #. type: table
-#: doc/guix.texi:17875
+#: doc/guix.texi:19631
 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:17876
+#: doc/guix.texi:19632
 #, 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:17880
+#: doc/guix.texi:19636
 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:17881
+#: doc/guix.texi:19637
 #, no-wrap
 msgid "@code{nx} (default: @code{3600})"
 msgstr "@code{nx} (par défaut : @code{3600})"
 
 #. type: table
-#: doc/guix.texi:17884
+#: doc/guix.texi:19640
 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:17888
+#: doc/guix.texi:19644
 #, no-wrap
 msgid "{Data Type} knot-remote-configuration"
 msgstr "{Type de données} knot-remote-configuration"
 
 #. type: deftp
-#: doc/guix.texi:17891
+#: doc/guix.texi:19647
 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:17896
+#: doc/guix.texi:19652
 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:17901
+#: doc/guix.texi:19657
 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:17902
+#: doc/guix.texi:19658
 #, no-wrap
 msgid "@code{via} (default: @code{'()})"
 msgstr "@code{via} (par défaut : @code{'()})"
 
 #. type: table
-#: doc/guix.texi:17906
+#: doc/guix.texi:19662
 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:17907
+#: doc/guix.texi:19663
 #, no-wrap
 msgid "@code{key} (default: @code{#f})"
 msgstr "@code{key} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:17910
+#: doc/guix.texi:19666
 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:17914
+#: doc/guix.texi:19670
 #, no-wrap
 msgid "{Data Type} knot-keystore-configuration"
 msgstr "{Type de données} knot-keystore-configuration"
 
 #. type: deftp
-#: doc/guix.texi:17917
+#: doc/guix.texi:19673
 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:17921
+#: doc/guix.texi:19677
 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:17922
+#: doc/guix.texi:19678
 #, no-wrap
 msgid "@code{backend} (default: @code{'pem})"
 msgstr "@code{backend} (par défaut : @code{'pem})"
 
 #. type: table
-#: doc/guix.texi:17924
+#: doc/guix.texi:19680
 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:17925
+#: doc/guix.texi:19681
 #, 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:17929
+#: doc/guix.texi:19685
 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."
 
 #. type: deftp
-#: doc/guix.texi:17933
+#: doc/guix.texi:19689
 #, no-wrap
 msgid "{Data Type} knot-policy-configuration"
 msgstr "{Type de données} knot-policy-configuration"
 
 #. type: deftp
-#: doc/guix.texi:17937
+#: doc/guix.texi:19693
 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:17944
+#: doc/guix.texi:19700
 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:17950
+#: doc/guix.texi:19706
 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:17952
+#: doc/guix.texi:19708
 msgid "This type has the following parameters:"
 msgstr "Ce type a les paramètres suivants :"
 
 #. type: table
-#: doc/guix.texi:17956
+#: doc/guix.texi:19712
 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:17957
+#: doc/guix.texi:19713
 #, no-wrap
 msgid "@code{keystore} (default: @code{\"default\"})"
 msgstr "@code{keystore} (par défaut : @code{\"default\"})"
 
 #. type: table
-#: doc/guix.texi:17962
+#: doc/guix.texi:19718
 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:17963
+#: doc/guix.texi:19719
 #, no-wrap
 msgid "@code{manual?} (default: @code{#f})"
 msgstr "@code{manual?} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:17965
+#: doc/guix.texi:19721
 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:17966
+#: doc/guix.texi:19722
 #, 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:17968
+#: doc/guix.texi:19724
 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"
+msgstr "Lorsque la valeur est @code{#t}, utilise le schéma de signature Single-Type."
 
 #. type: item
-#: doc/guix.texi:17969
+#: doc/guix.texi:19725
 #, no-wrap
 msgid "@code{algorithm} (default: @code{\"ecdsap256sha256\"})"
 msgstr "@code{algorithm} (par défaut : @code{\"ecdsap256sha256\"})"
 
 #. type: table
-#: doc/guix.texi:17971
+#: doc/guix.texi:19727
 msgid "An algorithm of signing keys and issued signatures."
 msgstr "Un algorithme de clef de signature et de signatures."
 
 #. type: item
-#: doc/guix.texi:17972
+#: doc/guix.texi:19728
 #, no-wrap
 msgid "@code{ksk-size} (default: @code{256})"
 msgstr "@code{ksk-size} (par défaut : @code{256})"
 
 #. type: table
-#: doc/guix.texi:17975
+#: doc/guix.texi:19731
 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:17976
+#: doc/guix.texi:19732
 #, no-wrap
 msgid "@code{zsk-size} (default: @code{256})"
 msgstr "@code{zsk-size} (par défaut : @code{256})"
 
 #. type: table
-#: doc/guix.texi:17979
+#: doc/guix.texi:19735
 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:17980
+#: doc/guix.texi:19736
 #, no-wrap
 msgid "@code{dnskey-ttl} (default: @code{'default})"
 msgstr "@code{dnskey-ttl} (par défaut : @code{'default})"
 
 #. type: table
-#: doc/guix.texi:17983
+#: doc/guix.texi:19739
 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:17984
+#: doc/guix.texi:19740
 #, 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:17986
+#: doc/guix.texi:19742
 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:17987
+#: doc/guix.texi:19743
 #, 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:17990
+#: doc/guix.texi:19746
 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:17991
+#: doc/guix.texi:19747
 #, 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:17993
+#: doc/guix.texi:19749
 msgid "A validity period of newly issued signatures."
 msgstr "Une période de validité des nouvelles signatures."
 
 #. type: item
-#: doc/guix.texi:17994
+#: doc/guix.texi:19750
 #, 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:17996
+#: doc/guix.texi:19752
 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:17997
+#: doc/guix.texi:19753
 #, no-wrap
 msgid "@code{nsec3?} (default: @code{#f})"
 msgstr "@code{nsec3?} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:17999
+#: doc/guix.texi:19755
 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:18000
+#: doc/guix.texi:19756
 #, no-wrap
 msgid "@code{nsec3-iterations} (default: @code{5})"
 msgstr "@code{nsec3-iterations} (par défaut : @code{5})"
 
 #. type: table
-#: doc/guix.texi:18002
+#: doc/guix.texi:19758
 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:18003
+#: doc/guix.texi:19759
 #, 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:18006
+#: doc/guix.texi:19762
 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:18007
+#: doc/guix.texi:19763
 #, 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:18009
+#: doc/guix.texi:19765
 msgid "The validity period of newly issued salt field."
 msgstr "La période de validité des nouveaux champs sel."
 
 #. type: deftp
-#: doc/guix.texi:18013
+#: doc/guix.texi:19769
 #, no-wrap
 msgid "{Data Type} knot-zone-configuration"
 msgstr "{Type de données} knot-zone-configuration"
 
 #. type: deftp
-#: doc/guix.texi:18016
+#: doc/guix.texi:19772
 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:18018
+#: doc/guix.texi:19774
 #, no-wrap
 msgid "@code{domain} (default: @code{\"\"})"
 msgstr "@code{domain} (par défaut : @code{\"\"})"
 
 #. type: table
-#: doc/guix.texi:18020
+#: doc/guix.texi:19776
 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:18021
+#: doc/guix.texi:19777
 #, no-wrap
 msgid "@code{file} (default: @code{\"\"})"
 msgstr "@code{file} (par défaut : @code{\"\"})"
 
 #. type: table
-#: doc/guix.texi:18024
+#: doc/guix.texi:19780
 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:18025
+#: doc/guix.texi:19781
 #, no-wrap
 msgid "@code{zone} (default: @code{(zone-file)})"
 msgstr "@code{zone} (par défaut : @code{(zone-file)})"
 
 #. type: table
-#: doc/guix.texi:18028
+#: doc/guix.texi:19784
 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:18029
+#: doc/guix.texi:19785
 #, no-wrap
 msgid "@code{master} (default: @code{'()})"
 msgstr "@code{master} (par défaut : @code{'()})"
 
 #. type: table
-#: doc/guix.texi:18032
+#: doc/guix.texi:19788
 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:18033
+#: doc/guix.texi:19789
 #, no-wrap
 msgid "@code{ddns-master} (default: @code{#f})"
 msgstr "@code{ddns-master} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:18036
+#: doc/guix.texi:19792
 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:18037
+#: doc/guix.texi:19793
 #, no-wrap
 msgid "@code{notify} (default: @code{'()})"
 msgstr "@code{notify} (par défaut : @code{'()})"
 
 #. type: table
-#: doc/guix.texi:18039
+#: doc/guix.texi:19795
 msgid "A list of slave remote identifiers."
 msgstr "Une liste d'identifiants de groupe de serveurs esclaves."
 
 #. type: item
-#: doc/guix.texi:18040
+#: doc/guix.texi:19796
 #, no-wrap
 msgid "@code{acl} (default: @code{'()})"
 msgstr "@code{acl} (par défaut : @code{'()})"
 
 #. type: table
-#: doc/guix.texi:18042
+#: doc/guix.texi:19798
 msgid "A list of acl identifiers."
 msgstr "Une liste d'identifiants d'ACL."
 
 #. type: item
-#: doc/guix.texi:18043
+#: doc/guix.texi:19799
 #, no-wrap
 msgid "@code{semantic-checks?} (default: @code{#f})"
 msgstr "@code{semantic-checks?} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:18045
+#: doc/guix.texi:19801
 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:18046
+#: doc/guix.texi:19802
 #, no-wrap
 msgid "@code{disable-any?} (default: @code{#f})"
 msgstr "@code{disable-any?} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:18048
+#: doc/guix.texi:19804
 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:18049
+#: doc/guix.texi:19805
 #, no-wrap
 msgid "@code{zonefile-sync} (default: @code{0})"
 msgstr "@code{zonefile-sync} (par défaut : @code{0})"
 
 #. type: table
-#: doc/guix.texi:18052
+#: doc/guix.texi:19808
 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:18053
+#: doc/guix.texi:19809
 #, no-wrap
 msgid "@code{serial-policy} (default: @code{'increment})"
 msgstr "@code{serial-policy} (par défaut : @code{'increment})"
 
 #. type: table
-#: doc/guix.texi:18055
+#: doc/guix.texi:19811
 msgid "A policy between @code{'increment} and @code{'unixtime}."
 msgstr "Une politique entre @code{'increment} et @code{'unixtime}."
 
 #. type: deftp
-#: doc/guix.texi:18059
+#: doc/guix.texi:19815
 #, no-wrap
 msgid "{Data Type} knot-configuration"
 msgstr "{Type de données} knot-configuration"
 
 #. type: deftp
-#: doc/guix.texi:18062
+#: doc/guix.texi:19818
 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:18064
+#: doc/guix.texi:19820
 #, no-wrap
 msgid "@code{knot} (default: @code{knot})"
 msgstr "@code{knot} (par défaut : @code{knot})"
 
 #. type: table
-#: doc/guix.texi:18066
+#: doc/guix.texi:19822
 msgid "The Knot package."
 msgstr "Le paquet Knot."
 
 #. type: item
-#: doc/guix.texi:18067
+#: doc/guix.texi:19823
 #, 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:18069
+#: doc/guix.texi:19825
 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:18070
+#: doc/guix.texi:19826
 #, 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:18072 doc/guix.texi:18075
+#: doc/guix.texi:19828 doc/guix.texi:19831
 msgid "An ip address on which to listen."
 msgstr "Une adresse IP sur laquelle écouter."
 
 #. type: item
-#: doc/guix.texi:18073
+#: doc/guix.texi:19829
 #, no-wrap
 msgid "@code{listen-v6} (default: @code{\"::\"})"
 msgstr "@code{listen-v6} (par défaut : @code{\"::\"})"
 
 #. type: item
-#: doc/guix.texi:18076
+#: doc/guix.texi:19832
 #, no-wrap
 msgid "@code{listen-port} (default: @code{53})"
 msgstr "@code{listen-port} (par défaut : @code{53})"
 
 #. type: table
-#: doc/guix.texi:18078
+#: doc/guix.texi:19834
 msgid "A port on which to listen."
 msgstr "Un port sur lequel écouter."
 
 #. type: item
-#: doc/guix.texi:18079
+#: doc/guix.texi:19835
 #, no-wrap
 msgid "@code{keys} (default: @code{'()})"
 msgstr "@code{keys} (par défaut : @code{'()})"
 
 #. type: table
-#: doc/guix.texi:18081
+#: doc/guix.texi:19837
 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:18082
+#: doc/guix.texi:19838
 #, no-wrap
 msgid "@code{acls} (default: @code{'()})"
 msgstr "@code{acls} (par défaut : @code{'()})"
 
 #. type: table
-#: doc/guix.texi:18084
+#: doc/guix.texi:19840
 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:18085
+#: doc/guix.texi:19841
 #, no-wrap
 msgid "@code{remotes} (default: @code{'()})"
 msgstr "@code{remotes} (par défaut : @code{'()})"
 
 #. type: table
-#: doc/guix.texi:18087
+#: doc/guix.texi:19843
 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:18088
+#: doc/guix.texi:19844
 #, no-wrap
 msgid "@code{zones} (default: @code{'()})"
 msgstr "@code{zones} (par défaut : @code{'()})"
 
 #. type: table
-#: doc/guix.texi:18090
+#: doc/guix.texi:19846
 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:18094
+#: doc/guix.texi:19850
 #, no-wrap
 msgid "Dnsmasq Service"
 msgstr "Services Dnsmasq"
 
 #. type: deffn
-#: doc/guix.texi:18096
+#: doc/guix.texi:19852
 #, no-wrap
 msgid "{Scheme Variable} dnsmasq-service-type"
 msgstr "{Variable Scheme} dnsmasq-service-type"
 
 #. type: deffn
-#: doc/guix.texi:18099
+#: doc/guix.texi:19855
 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:18105
+#: doc/guix.texi:19861
 #, no-wrap
 msgid ""
 "(service dnsmasq-service-type\n"
@@ -33907,1164 +37480,1158 @@ msgstr ""
 "           (servers '(\"192.168.1.1\"))))\n"
 
 #. type: deftp
-#: doc/guix.texi:18108
+#: doc/guix.texi:19864
 #, no-wrap
 msgid "{Data Type} dnsmasq-configuration"
 msgstr "{Type de données} dnsmasq-configuration"
 
 #. type: deftp
-#: doc/guix.texi:18110
+#: doc/guix.texi:19866
 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:18112
+#: doc/guix.texi:19868
 #, no-wrap
 msgid "@code{package} (default: @var{dnsmasq})"
 msgstr "@code{package} (par défaut : @var{dnsmasq})"
 
 #. type: table
-#: doc/guix.texi:18114
+#: doc/guix.texi:19870
 msgid "Package object of the dnsmasq server."
 msgstr "L'objet de paquet du serveur dnsmasq."
 
 #. type: item
-#: doc/guix.texi:18115
+#: doc/guix.texi:19871
 #, no-wrap
 msgid "@code{no-hosts?} (default: @code{#f})"
 msgstr "@code{no-hosts?} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:18117
+#: doc/guix.texi:19873
 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:18118
+#: doc/guix.texi:19874
 #, no-wrap
 msgid "@code{port} (default: @code{53})"
 msgstr "@code{port} (par défaut : @code{53})"
 
 #. type: table
-#: doc/guix.texi:18121
+#: doc/guix.texi:19877
 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:18122
+#: doc/guix.texi:19878
 #, no-wrap
 msgid "@code{local-service?} (default: @code{#t})"
 msgstr "@code{local-service?} (par défaut : @code{#t})"
 
 #. type: table
-#: doc/guix.texi:18125
+#: doc/guix.texi:19881
 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:18126
+#: doc/guix.texi:19882
 #, no-wrap
 msgid "@code{listen-addresses} (default: @code{'()})"
 msgstr "@code{listen-addresses} (par défaut : @code{'()})"
 
 #. type: table
-#: doc/guix.texi:18128
+#: doc/guix.texi:19884
 msgid "Listen on the given IP addresses."
 msgstr "Écoute sur le adresses IP données."
 
 #. type: item
-#: doc/guix.texi:18129
+#: doc/guix.texi:19885
 #, 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:18131
+#: doc/guix.texi:19887
 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:18132
+#: doc/guix.texi:19888
 #, no-wrap
 msgid "@code{no-resolv?} (default: @code{#f})"
 msgstr "@code{no-resolv?} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:18134
+#: doc/guix.texi:19890
 msgid "When true, don't read @var{resolv-file}."
 msgstr "Lorsque la valeur est vraie, ne pas lire @var{resolv-file}."
 
 #. type: table
-#: doc/guix.texi:18137
+#: doc/guix.texi:19893
 msgid "Specify IP address of upstream servers directly."
 msgstr "Spécifiez l'adresse IP des serveurs en amont directement."
 
 #. type: item
-#: doc/guix.texi:18138
+#: doc/guix.texi:19894
 #, no-wrap
 msgid "@code{cache-size} (default: @code{150})"
 msgstr "@code{cache-size} (par défaut : @code{150})"
 
 #. type: table
-#: doc/guix.texi:18141
+#: doc/guix.texi:19897
 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:18142
+#: doc/guix.texi:19898
 #, no-wrap
 msgid "@code{negative-cache?} (default: @code{#t})"
 msgstr "@code{negative-cache?} (par défaut : @code{#t})"
 
 #. type: table
-#: doc/guix.texi:18144
+#: doc/guix.texi:19900
 msgid "When false, disable negative caching."
 msgstr "Lorsque la valeur est fausse, désactive le cache des réponses négatives."
 
 #. type: subsubheading
-#: doc/guix.texi:18148
+#: doc/guix.texi:19904
 #, no-wrap
 msgid "ddclient Service"
 msgstr "Service ddclient"
 
 #. type: cindex
-#: doc/guix.texi:18150
+#: doc/guix.texi:19906
 #, no-wrap
 msgid "ddclient"
 msgstr "ddclient"
 
 #. type: Plain text
-#: doc/guix.texi:18154
+#: doc/guix.texi:19910
 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:18157
+#: doc/guix.texi:19913
 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:18160
+#: doc/guix.texi:19916
 #, no-wrap
 msgid "(service ddclient-service-type)\n"
 msgstr "(service ddclient-service-type)\n"
 
 #. type: Plain text
-#: doc/guix.texi:18169
+#: doc/guix.texi:19925
 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:18173
+#: doc/guix.texi:19929
 msgid "Available @code{ddclient-configuration} fields are:"
 msgstr "Les champs de @code{ddclient-configuration} disponibles sont :"
 
 #. type: deftypevr
-#: doc/guix.texi:18174
+#: doc/guix.texi:19930
 #, no-wrap
 msgid "{@code{ddclient-configuration} parameter} package ddclient"
 msgstr "{paramètre de @code{ddclient-configuration}} package ddclient"
 
 #. type: deftypevr
-#: doc/guix.texi:18176
+#: doc/guix.texi:19932
 msgid "The ddclient package."
 msgstr "Le paquet ddclient."
 
 #. type: deftypevr
-#: doc/guix.texi:18179
+#: doc/guix.texi:19935
 #, no-wrap
 msgid "{@code{ddclient-configuration} parameter} integer daemon"
 msgstr "{paramètre de @code{ddclient-configuration}} integer daemon"
 
 #. type: deftypevr
-#: doc/guix.texi:18181
+#: doc/guix.texi:19937
 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:18186
+#: doc/guix.texi:19942
 #, no-wrap
 msgid "{@code{ddclient-configuration} parameter} boolean syslog"
 msgstr "{paramètre de @code{ddclient-configuration}} boolean syslog"
 
 #. type: deftypevr
-#: doc/guix.texi:18188
+#: doc/guix.texi:19944
 msgid "Use syslog for the output."
 msgstr "Utiliser syslog pour la sortie."
 
 #. type: deftypevr
-#: doc/guix.texi:18193
+#: doc/guix.texi:19949
 #, no-wrap
 msgid "{@code{ddclient-configuration} parameter} string mail"
 msgstr "{paramètre de @code{ddclient-configuration}} string mail"
 
 #. type: deftypevr
-#: doc/guix.texi:18195
+#: doc/guix.texi:19951
 msgid "Mail to user."
 msgstr "Courriel de l'utilisateur."
 
 #. type: deftypevr
-#: doc/guix.texi:18197 doc/guix.texi:18204 doc/guix.texi:19532
+#: doc/guix.texi:19953 doc/guix.texi:19960 doc/guix.texi:21297
 msgid "Defaults to @samp{\"root\"}."
 msgstr "La valeur par défaut est @samp{\"root\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:18200
+#: doc/guix.texi:19956
 #, 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:18202
+#: doc/guix.texi:19958
 msgid "Mail failed update to user."
 msgstr "Courriel de l'utilisateur pour les échecs."
 
 #. type: deftypevr
-#: doc/guix.texi:18207
+#: doc/guix.texi:19963
 #, no-wrap
 msgid "{@code{ddclient-configuration} parameter} string pid"
 msgstr "{paramètre de @code{ddclient-configuration}} string pid"
 
 #. type: deftypevr
-#: doc/guix.texi:18209
+#: doc/guix.texi:19965
 msgid "The ddclient PID file."
 msgstr "Le fichier de PID de ddclient."
 
 #. type: deftypevr
-#: doc/guix.texi:18211
+#: doc/guix.texi:19967
 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:18214
+#: doc/guix.texi:19970
 #, no-wrap
 msgid "{@code{ddclient-configuration} parameter} boolean ssl"
 msgstr "{paramètre de @code{ddclient-configuration}} boolean ssl"
 
 #. type: deftypevr
-#: doc/guix.texi:18216
+#: doc/guix.texi:19972
 msgid "Enable SSL support."
 msgstr "Activer le support de SSL."
 
 #. type: deftypevr
-#: doc/guix.texi:18221
+#: doc/guix.texi:19977
 #, no-wrap
 msgid "{@code{ddclient-configuration} parameter} string user"
 msgstr "{paramètre de @code{ddclient-configuration}} string user"
 
 #. type: deftypevr
-#: doc/guix.texi:18224
+#: doc/guix.texi:19980
 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:18226 doc/guix.texi:18233
+#: doc/guix.texi:19982 doc/guix.texi:19989
 msgid "Defaults to @samp{\"ddclient\"}."
 msgstr "La valeur par défaut est @samp{\"ddclient\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:18229
+#: doc/guix.texi:19985
 #, no-wrap
 msgid "{@code{ddclient-configuration} parameter} string group"
 msgstr "{paramètre de @code{ddclient-configuration}} string group"
 
 #. type: deftypevr
-#: doc/guix.texi:18231
+#: doc/guix.texi:19987
 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:18236
+#: doc/guix.texi:19992
 #, 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:18240
+#: doc/guix.texi:19996
 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:18242
+#: doc/guix.texi:19998
 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:18245
+#: doc/guix.texi:20001
 #, 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:18247
+#: doc/guix.texi:20003
 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:18258
+#: doc/guix.texi:20014
 #, no-wrap
 msgid "VPN (virtual private network)"
 msgstr "VPN (réseau privé virtuel)"
 
 #. type: cindex
-#: doc/guix.texi:18259
+#: doc/guix.texi:20015
 #, no-wrap
 msgid "virtual private network (VPN)"
 msgstr "réseau privé virtuel (VPN)"
 
 #. type: Plain text
-#: doc/guix.texi:18265
+#: doc/guix.texi:20021
 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{servire} 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:18266
+#: doc/guix.texi:20022
 #, no-wrap
 msgid "{Scheme Procedure} openvpn-client-service @"
 msgstr "{Procédure Scheme} openvpn-client-service @"
 
 #. type: deffn
-#: doc/guix.texi:18268
+#: doc/guix.texi:20024
 msgid "[#:config (openvpn-client-configuration)]"
 msgstr "[#:config (openvpn-client-configuration)]"
 
 #. type: deffn
-#: doc/guix.texi:18270
+#: doc/guix.texi:20026
 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:18272
+#: doc/guix.texi:20028
 #, no-wrap
 msgid "{Scheme Procedure} openvpn-server-service @"
 msgstr "{Procédure Scheme} openvpn-server-service @"
 
 #. type: deffn
-#: doc/guix.texi:18274
+#: doc/guix.texi:20030
 msgid "[#:config (openvpn-server-configuration)]"
 msgstr "[#:config (openvpn-server-configuration)]"
 
 #. type: deffn
-#: doc/guix.texi:18276
+#: doc/guix.texi:20032
 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:18278
+#: doc/guix.texi:20034
 msgid "Both can be run simultaneously."
 msgstr "Les deux services peuvent être lancés en même temps."
 
 #. type: Plain text
-#: doc/guix.texi:18283
+#: doc/guix.texi:20039
 msgid "Available @code{openvpn-client-configuration} fields are:"
 msgstr "Les champs de @code{openvpn-client-configuration} disponibles sont :"
 
 #. type: deftypevr
-#: doc/guix.texi:18284
+#: doc/guix.texi:20040
 #, 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:18286 doc/guix.texi:18422
+#: doc/guix.texi:20042 doc/guix.texi:20178
 msgid "The OpenVPN package."
 msgstr "Le paquet OpenVPN."
 
 #. type: deftypevr
-#: doc/guix.texi:18289
+#: doc/guix.texi:20045
 #, 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:18291 doc/guix.texi:18427
+#: doc/guix.texi:20047 doc/guix.texi:20183
 msgid "The OpenVPN pid file."
 msgstr "Le fichier de PID d'OpenVPN."
 
 #. type: deftypevr
-#: doc/guix.texi:18293 doc/guix.texi:18429
+#: doc/guix.texi:20049 doc/guix.texi:20185
 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:18296
+#: doc/guix.texi:20052
 #, 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:18299 doc/guix.texi:18435
+#: doc/guix.texi:20055 doc/guix.texi:20191
 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:18301 doc/guix.texi:18437
+#: doc/guix.texi:20057 doc/guix.texi:20193
 msgid "Defaults to @samp{udp}."
 msgstr "La valeur par défaut est @samp{udp}."
 
 #. type: deftypevr
-#: doc/guix.texi:18304
+#: doc/guix.texi:20060
 #, 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:18306 doc/guix.texi:18442
+#: doc/guix.texi:20062 doc/guix.texi:20198
 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:18308 doc/guix.texi:18444
+#: doc/guix.texi:20064 doc/guix.texi:20200
 msgid "Defaults to @samp{tun}."
 msgstr "La valeur par défaut est @samp{tun}."
 
 #. type: deftypevr
-#: doc/guix.texi:18311
+#: doc/guix.texi:20067
 #, 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:18313 doc/guix.texi:18449
+#: doc/guix.texi:20069 doc/guix.texi:20205
 msgid "The certificate authority to check connections against."
 msgstr "L'autorité de certification qui sert à vérifier les connexions."
 
 #. type: deftypevr
-#: doc/guix.texi:18315 doc/guix.texi:18451
+#: doc/guix.texi:20071 doc/guix.texi:20207
 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:18318
+#: doc/guix.texi:20074
 #, 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:18321 doc/guix.texi:18457
+#: doc/guix.texi:20077 doc/guix.texi:20213
 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:18323 doc/guix.texi:18459
+#: doc/guix.texi:20079 doc/guix.texi:20215
 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:18326
+#: doc/guix.texi:20082
 #, 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:18329 doc/guix.texi:18465
+#: doc/guix.texi:20085 doc/guix.texi:20221
 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:18331 doc/guix.texi:18467
+#: doc/guix.texi:20087 doc/guix.texi:20223
 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:18334
+#: doc/guix.texi:20090
 #, 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:18336 doc/guix.texi:18472
+#: doc/guix.texi:20092 doc/guix.texi:20228
 msgid "Whether to use the lzo compression algorithm."
 msgstr "Indique s'il faut utiliser l'algorithme de compression lzo."
 
 #. type: deftypevr
-#: doc/guix.texi:18341
+#: doc/guix.texi:20097
 #, 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:18343 doc/guix.texi:18479
+#: doc/guix.texi:20099 doc/guix.texi:20235
 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:18348
+#: doc/guix.texi:20104
 #, 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:18351 doc/guix.texi:18487
+#: doc/guix.texi:20107 doc/guix.texi:20243
 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:18356
+#: doc/guix.texi:20112
 #, 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:18358 doc/guix.texi:18494
+#: doc/guix.texi:20114 doc/guix.texi:20250
 msgid "Verbosity level."
 msgstr "Niveau de verbosité."
 
 #. type: deftypevr
-#: doc/guix.texi:18360 doc/guix.texi:18496 doc/guix.texi:19800
-#: doc/guix.texi:20023
+#: doc/guix.texi:20116 doc/guix.texi:20252 doc/guix.texi:21565
+#: doc/guix.texi:21788
 msgid "Defaults to @samp{3}."
 msgstr "La valeur par défaut est @samp{3}."
 
 #. type: deftypevr
-#: doc/guix.texi:18363
+#: doc/guix.texi:20119
 #, 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:18366 doc/guix.texi:18502
+#: doc/guix.texi:20122 doc/guix.texi:20258
 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:18371
+#: doc/guix.texi:20127
 #, 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:18373
+#: doc/guix.texi:20129
 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:18378
+#: doc/guix.texi:20134
 #, 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:18380
+#: doc/guix.texi:20136
 msgid "Bind to a specific local port number."
 msgstr "Se lier à un port spécifique."
 
 #. type: deftypevr
-#: doc/guix.texi:18385
+#: doc/guix.texi:20141
 #, 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:18387
+#: doc/guix.texi:20143
 msgid "Retry resolving server address."
 msgstr "Réessayer de résoudre l'adresse du serveur."
 
 #. type: deftypevr
-#: doc/guix.texi:18392
+#: doc/guix.texi:20148
 #, 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:18394
+#: doc/guix.texi:20150
 msgid "A list of remote servers to connect to."
 msgstr "Une liste de serveurs distants sur lesquels se connecter."
 
 #. type: deftypevr
-#: doc/guix.texi:18398
+#: doc/guix.texi:20154
 msgid "Available @code{openvpn-remote-configuration} fields are:"
 msgstr "Les champs de @code{openvpn-remote-configuration} disponibles sont :"
 
 #. type: deftypevr
-#: doc/guix.texi:18399
+#: doc/guix.texi:20155
 #, 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:18401
+#: doc/guix.texi:20157
 msgid "Server name."
 msgstr "Nom du serveur."
 
 #. type: deftypevr
-#: doc/guix.texi:18403
+#: doc/guix.texi:20159
 msgid "Defaults to @samp{\"my-server\"}."
 msgstr "La valeur par défaut est @samp{\"my-server\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:18406
+#: doc/guix.texi:20162
 #, 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:18408
+#: doc/guix.texi:20164
 msgid "Port number the server listens to."
 msgstr "Numéro de port sur lequel écoute le serveur."
 
 #. type: deftypevr
-#: doc/guix.texi:18410 doc/guix.texi:18511
+#: doc/guix.texi:20166 doc/guix.texi:20267
 msgid "Defaults to @samp{1194}."
 msgstr "La valeur par défaut est @samp{1194}."
 
 #. type: Plain text
-#: doc/guix.texi:18419
+#: doc/guix.texi:20175
 msgid "Available @code{openvpn-server-configuration} fields are:"
 msgstr "Les champs de @code{openvpn-server-configuration} disponibles sont :"
 
 #. type: deftypevr
-#: doc/guix.texi:18420
+#: doc/guix.texi:20176
 #, 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:18425
+#: doc/guix.texi:20181
 #, 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:18432
+#: doc/guix.texi:20188
 #, 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:18440
+#: doc/guix.texi:20196
 #, 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:18447
+#: doc/guix.texi:20203
 #, 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:18454
+#: doc/guix.texi:20210
 #, 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:18462
+#: doc/guix.texi:20218
 #, 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:18470
+#: doc/guix.texi:20226
 #, 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:18477
+#: doc/guix.texi:20233
 #, 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:18484
+#: doc/guix.texi:20240
 #, 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:18492
+#: doc/guix.texi:20248
 #, 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:18499
+#: doc/guix.texi:20255
 #, 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:18507
+#: doc/guix.texi:20263
 #, 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:18509
+#: doc/guix.texi:20265
 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:18514
+#: doc/guix.texi:20270
 #, 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:18516
+#: doc/guix.texi:20272
 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:18518
+#: doc/guix.texi:20274
 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:18521
+#: doc/guix.texi:20277
 #, 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:18523
+#: doc/guix.texi:20279
 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:18528
+#: doc/guix.texi:20284
 #, 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:18530
+#: doc/guix.texi:20286
 msgid "The Diffie-Hellman parameters file."
 msgstr "Le fichier de paramètres Diffie-Hellman."
 
 #. type: deftypevr
-#: doc/guix.texi:18532
+#: doc/guix.texi:20288
 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:18535
+#: doc/guix.texi:20291
 #, 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:18537
+#: doc/guix.texi:20293
 msgid "The file that records client IPs."
 msgstr "Le fichier qui enregistre les IP des clients."
 
 #. type: deftypevr
-#: doc/guix.texi:18539
+#: doc/guix.texi:20295
 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:18542
+#: doc/guix.texi:20298
 #, 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:18544
+#: doc/guix.texi:20300
 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:18549
+#: doc/guix.texi:20305
 #, 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:18551
+#: doc/guix.texi:20307
 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:18556
+#: doc/guix.texi:20312
 #, 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:18562
+#: doc/guix.texi:20318
 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:18565
+#: doc/guix.texi:20321
 #, 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:18567
+#: doc/guix.texi:20323
 msgid "The maximum number of clients."
 msgstr "Le nombre maximum de clients."
 
 #. type: deftypevr
-#: doc/guix.texi:18572
+#: doc/guix.texi:20328
 #, 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:18575
+#: doc/guix.texi:20331
 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:18577
+#: doc/guix.texi:20333
 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:18580
+#: doc/guix.texi:20336
 #, 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:18582
+#: doc/guix.texi:20338
 msgid "The list of configuration for some clients."
 msgstr "La liste des configuration pour certains clients."
 
 #. type: deftypevr
-#: doc/guix.texi:18586
+#: doc/guix.texi:20342
 msgid "Available @code{openvpn-ccd-configuration} fields are:"
 msgstr "Les champs de @code{openvpn-ccd-configuration} disponibles sont :"
 
 #. type: deftypevr
-#: doc/guix.texi:18587
+#: doc/guix.texi:20343
 #, 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:18589
+#: doc/guix.texi:20345
 msgid "Client name."
 msgstr "Nom du client."
 
 #. type: deftypevr
-#: doc/guix.texi:18591
+#: doc/guix.texi:20347
 msgid "Defaults to @samp{\"client\"}."
 msgstr "La valeur par défaut est @samp{\"client\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:18594
+#: doc/guix.texi:20350
 #, 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:18596
+#: doc/guix.texi:20352
 msgid "Client own network"
-msgstr "Le réseau du client."
+msgstr "Le réseau du client"
 
 #. type: deftypevr
-#: doc/guix.texi:18601
+#: doc/guix.texi:20357
 #, 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:18603
+#: doc/guix.texi:20359
 msgid "Client VPN IP."
 msgstr "IP du client sur le VPN."
 
 #. type: cindex
-#: doc/guix.texi:18616
+#: doc/guix.texi:20372
 #, no-wrap
 msgid "NFS"
 msgstr "NFS"
 
 #. type: Plain text
-#: doc/guix.texi:18621
+#: doc/guix.texi:20377
 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: subsubheading
-#: doc/guix.texi:18622
+#: doc/guix.texi:20378
 #, no-wrap
 msgid "RPC Bind Service"
 msgstr "Service RPC Bind"
 
 #. type: cindex
-#: doc/guix.texi:18623
+#: doc/guix.texi:20379
 #, no-wrap
 msgid "rpcbind"
 msgstr "rpcbind"
 
 #. type: Plain text
-#: doc/guix.texi:18629
+#: doc/guix.texi:20385
 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:18630
+#: doc/guix.texi:20386
 #, no-wrap
 msgid "{Scheme Variable} rpcbind-service-type"
 msgstr "{Variable Scheme} rpcbind-service-type"
 
 #. type: defvr
-#: doc/guix.texi:18632
+#: doc/guix.texi:20388
 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:18635
+#: doc/guix.texi:20391
 #, no-wrap
 msgid "{Data Type} rpcbind-configuration"
 msgstr "{Type de données} rpcbind-configuration"
 
 #. type: deftp
-#: doc/guix.texi:18638
+#: doc/guix.texi:20394
 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:18639
+#: doc/guix.texi:20395
 #, no-wrap
 msgid "@code{rpcbind} (default: @code{rpcbind})"
 msgstr "@code{rpcbind} (par défaut : @code{rpcbind})"
 
 #. type: table
-#: doc/guix.texi:18641
+#: doc/guix.texi:20397
 msgid "The rpcbind package to use."
 msgstr "Le paquet rpcbind à utiliser."
 
 #. type: item
-#: doc/guix.texi:18642
+#: doc/guix.texi:20398
 #, no-wrap
 msgid "@code{warm-start?} (default: @code{#t})"
 msgstr "@code{warm-start?} (par défaut : @code{#t})"
 
 #. type: table
-#: doc/guix.texi:18646
+#: doc/guix.texi:20402
 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:18650
+#: doc/guix.texi:20406
 #, no-wrap
 msgid "Pipefs Pseudo File System"
 msgstr "Pseudo-système de fichiers Pipefs"
 
 #. type: cindex
-#: doc/guix.texi:18651
+#: doc/guix.texi:20407
 #, no-wrap
 msgid "pipefs"
 msgstr "pipefs"
 
 #. type: cindex
-#: doc/guix.texi:18652
+#: doc/guix.texi:20408
 #, no-wrap
 msgid "rpc_pipefs"
 msgstr "rpc_pipefs"
 
 #. type: Plain text
-#: doc/guix.texi:18656
+#: doc/guix.texi:20412
 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:18657
+#: doc/guix.texi:20413
 #, no-wrap
 msgid "{Scheme Variable} pipefs-service-type"
 msgstr "{Variable Scheme} pipefs-service-type"
 
 #. type: defvr
-#: doc/guix.texi:18659
+#: doc/guix.texi:20415
 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:18661
+#: doc/guix.texi:20417
 #, no-wrap
 msgid "{Data Type} pipefs-configuration"
 msgstr "{Type de données} pipefs-configuration"
 
 #. type: deftp
-#: doc/guix.texi:18664
+#: doc/guix.texi:20420
 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:18665
+#: doc/guix.texi:20421
 #, 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:18667
+#: doc/guix.texi:20423
 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:18671
+#: doc/guix.texi:20427
 #, no-wrap
 msgid "GSS Daemon Service"
 msgstr "Service de démon GSS"
 
 #. type: cindex
-#: doc/guix.texi:18672
+#: doc/guix.texi:20428
 #, no-wrap
 msgid "GSSD"
 msgstr "GSSD"
 
 #. type: cindex
-#: doc/guix.texi:18673
+#: doc/guix.texi:20429
 #, no-wrap
 msgid "GSS"
 msgstr "GSS"
 
 #. type: cindex
-#: doc/guix.texi:18674
+#: doc/guix.texi:20430
 #, no-wrap
 msgid "global security system"
 msgstr "système de sécurité global"
 
 #. type: Plain text
-#: doc/guix.texi:18681
+#: doc/guix.texi:20437
 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:18682
+#: doc/guix.texi:20438
 #, no-wrap
 msgid "{Scheme Variable} gss-service-type"
 msgstr "{Variable Scheme} gss-service-type"
 
 #. type: defvr
-#: doc/guix.texi:18684
+#: doc/guix.texi:20440
 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:18686
+#: doc/guix.texi:20442
 #, no-wrap
 msgid "{Data Type} gss-configuration"
 msgstr "{Type de données} gss-configuration"
 
 #. type: deftp
-#: doc/guix.texi:18689
+#: doc/guix.texi:20445
 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:18690 doc/guix.texi:18715
+#: doc/guix.texi:20446 doc/guix.texi:20471
 #, 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:18692
+#: doc/guix.texi:20448
 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:18693 doc/guix.texi:18718
+#: doc/guix.texi:20449 doc/guix.texi:20474
 #, 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:18695 doc/guix.texi:18720
+#: doc/guix.texi:20451 doc/guix.texi:20476
 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:18700
+#: doc/guix.texi:20456
 #, no-wrap
 msgid "IDMAP Daemon Service"
 msgstr "Service de démon IDMAP"
 
 #. type: cindex
-#: doc/guix.texi:18701
+#: doc/guix.texi:20457
 #, no-wrap
 msgid "idmapd"
 msgstr "idmapd"
 
 #. type: cindex
-#: doc/guix.texi:18702
+#: doc/guix.texi:20458
 #, no-wrap
 msgid "name mapper"
 msgstr "correspondance de nom"
 
 #. type: Plain text
-#: doc/guix.texi:18706
+#: doc/guix.texi:20462
 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:18707
+#: doc/guix.texi:20463
 #, no-wrap
 msgid "{Scheme Variable} idmap-service-type"
 msgstr "{Variable Scheme} idmap-service-type"
 
 #. type: defvr
-#: doc/guix.texi:18709
+#: doc/guix.texi:20465
 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:18711
+#: doc/guix.texi:20467
 #, no-wrap
 msgid "{Data Type} idmap-configuration"
 msgstr "{Type de données} idmap-configuration"
 
 #. type: deftp
-#: doc/guix.texi:18714
+#: doc/guix.texi:20470
 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:18717
+#: doc/guix.texi:20473
 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:18721
+#: doc/guix.texi:20477
 #, no-wrap
 msgid "@code{domain} (default: @code{#f})"
 msgstr "@code{domain} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:18725
+#: doc/guix.texi:20481
 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: cindex
-#: doc/guix.texi:18732
-#, no-wrap
-msgid "continuous integration"
-msgstr "intégration continue"
-
 #. type: Plain text
-#: doc/guix.texi:18736
+#: doc/guix.texi:20492
 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:18738
+#: doc/guix.texi:20494
 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:18739
+#: doc/guix.texi:20495
 #, no-wrap
 msgid "{Scheme Procedure} cuirass-service-type"
 msgstr "{Procédure Scheme} cuirass-service-type"
 
 #. type: defvr
-#: doc/guix.texi:18742
+#: doc/guix.texi:20498
 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:18749
+#: doc/guix.texi:20505
 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 "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:18777
+#: doc/guix.texi:20533
 #, no-wrap
 msgid ""
 "(define %cuirass-specs\n"
@@ -35124,7 +38691,7 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix.texi:18781
+#: doc/guix.texi:20537
 #, no-wrap
 msgid ""
 "(service cuirass-service-type\n"
@@ -35136,1119 +38703,1105 @@ msgstr ""
 "          (specifications %cuirass-specs)))\n"
 
 #. type: Plain text
-#: doc/guix.texi:18786
+#: doc/guix.texi:20542
 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:18787
+#: doc/guix.texi:20543
 #, no-wrap
 msgid "{Data Type} cuirass-configuration"
 msgstr "{Type de données} cuirass-configuration"
 
 #. type: deftp
-#: doc/guix.texi:18789
+#: doc/guix.texi:20545
 msgid "Data type representing the configuration of Cuirass."
 msgstr "Type de données représentant la configuration de Cuirass."
 
 #. type: item
-#: doc/guix.texi:18791
+#: doc/guix.texi:20547
 #, 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:18793
+#: doc/guix.texi:20549
 msgid "Location of the log file."
 msgstr "Emplacement du fichier de journal."
 
 #. type: item
-#: doc/guix.texi:18794
+#: doc/guix.texi:20550
 #, 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:18796
+#: doc/guix.texi:20552
 msgid "Location of the repository cache."
 msgstr "Emplacement du cache du dépôt."
 
 #. type: item
-#: doc/guix.texi:18797
+#: doc/guix.texi:20553
 #, no-wrap
 msgid "@code{user} (default: @code{\"cuirass\"})"
 msgstr "@code{user} (par défaut : @code{\"cuirass\"})"
 
 #. type: table
-#: doc/guix.texi:18799
+#: doc/guix.texi:20555
 msgid "Owner of the @code{cuirass} process."
 msgstr "Propriétaire du processus @code{cuirass}."
 
 #. type: item
-#: doc/guix.texi:18800
+#: doc/guix.texi:20556
 #, no-wrap
 msgid "@code{group} (default: @code{\"cuirass\"})"
 msgstr "@code{group} (par défaut : @code{\"cuirass\"})"
 
 #. type: table
-#: doc/guix.texi:18802
+#: doc/guix.texi:20558
 msgid "Owner's group of the @code{cuirass} process."
 msgstr "Groupe du propriétaire du processus @code{cuirass}."
 
 #. type: item
-#: doc/guix.texi:18803
+#: doc/guix.texi:20559
 #, no-wrap
 msgid "@code{interval} (default: @code{60})"
 msgstr "@code{interval} (par défaut : @code{60})"
 
 #. type: table
-#: doc/guix.texi:18806
+#: doc/guix.texi:20562
 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:18807
+#: doc/guix.texi:20563
 #, 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:18810
+#: doc/guix.texi:20566
 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:18811
+#: doc/guix.texi:20567
 #, 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:18815
+#: doc/guix.texi:20571
 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:18816
+#: doc/guix.texi:20572
 #, no-wrap
 msgid "@code{port} (default: @code{8081})"
 msgstr "@code{port} (par défaut : @code{8081})"
 
 #. type: table
-#: doc/guix.texi:18818
+#: doc/guix.texi:20574
 msgid "Port number used by the HTTP server."
 msgstr "Numéro de port utilisé pour le serveur HTTP."
 
 #. type: table
-#: doc/guix.texi:18822
+#: doc/guix.texi:20578
 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:18823
+#: doc/guix.texi:20579
 #, no-wrap
 msgid "@code{specifications} (default: @code{#~'()})"
 msgstr "@code{specifications} (par défaut : @code{#~'()})"
 
 #. type: table
-#: doc/guix.texi:18829
+#: doc/guix.texi:20585
 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:18830
+#: doc/guix.texi:20586
 #, no-wrap
 msgid "@code{use-substitutes?} (default: @code{#f})"
 msgstr "@code{use-substitutes?} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:18833
+#: doc/guix.texi:20589
 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:18834
+#: doc/guix.texi:20590 doc/guix.texi:25129
 #, no-wrap
 msgid "@code{one-shot?} (default: @code{#f})"
 msgstr "@code{one-shot?} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:18836
+#: doc/guix.texi:20592
 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:18837
+#: doc/guix.texi:20593
 #, no-wrap
 msgid "@code{fallback?} (default: @code{#f})"
 msgstr "@code{fallback?} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:18840
+#: doc/guix.texi:20596
 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: item
-#: doc/guix.texi:18841
+#: doc/guix.texi:20597
 #, no-wrap
 msgid "@code{cuirass} (default: @code{cuirass})"
 msgstr "@code{cuirass} (par défaut : @code{cuirass})"
 
 #. type: table
-#: doc/guix.texi:18843
+#: doc/guix.texi:20599
 msgid "The Cuirass package to use."
 msgstr "Le paquet Cuirass à utiliser."
 
 #. type: cindex
-#: doc/guix.texi:18849
+#: doc/guix.texi:20605
 #, no-wrap
 msgid "tlp"
 msgstr "tlp"
 
 #. type: cindex
-#: doc/guix.texi:18850
+#: doc/guix.texi:20606
 #, no-wrap
 msgid "power management with TLP"
 msgstr "gestion de l'énergie avec TLP"
 
 #. type: subsubheading
-#: doc/guix.texi:18851
+#: doc/guix.texi:20607
 #, no-wrap
 msgid "TLP daemon"
 msgstr "démon TLP"
 
 #. type: Plain text
-#: doc/guix.texi:18855
+#: doc/guix.texi:20611
 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:18861
+#: doc/guix.texi:20617
 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{http://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{http://linrunner.de/en/tlp/tlp.html, la page d'accueil de TLP}."
 
 #. type: deffn
-#: doc/guix.texi:18862
+#: doc/guix.texi:20618
 #, no-wrap
 msgid "{Scheme Variable} tlp-service-type"
 msgstr "{Variable Scheme} tlp-service-type"
 
 #. type: deffn
-#: doc/guix.texi:18866
+#: doc/guix.texi:20622
 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 :"
 
 #. type: example
-#: doc/guix.texi:18868
+#: doc/guix.texi:20624
 #, no-wrap
 msgid "(service tlp-service-type)\n"
 msgstr "(service tlp-service-type)\n"
 
 #. type: Plain text
-#: doc/guix.texi:18873
+#: doc/guix.texi:20629
 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}."
 
 #. type: Plain text
-#: doc/guix.texi:18879
+#: doc/guix.texi:20635
 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:18889
+#: doc/guix.texi:20645
 msgid "Available @code{tlp-configuration} fields are:"
 msgstr "Les champs de @code{tlp-configuration} disponibles sont :"
 
 #. type: deftypevr
-#: doc/guix.texi:18890
+#: doc/guix.texi:20646
 #, no-wrap
 msgid "{@code{tlp-configuration} parameter} package tlp"
 msgstr "{paramètre de @code{tlp-configuration}} package tlp"
 
 #. type: deftypevr
-#: doc/guix.texi:18892
+#: doc/guix.texi:20648
 msgid "The TLP package."
 msgstr "Le paquet TLP."
 
 #. type: deftypevr
-#: doc/guix.texi:18895
+#: doc/guix.texi:20651
 #, 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:18897
+#: doc/guix.texi:20653
 msgid "Set to true if you wish to enable TLP."
 msgstr "Indiquez vrai si vous souhaitez activer TLP."
 
 #. type: deftypevr
-#: doc/guix.texi:18902
+#: doc/guix.texi:20658
 #, 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:18905
+#: doc/guix.texi:20661
 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:18907
+#: doc/guix.texi:20663
 msgid "Defaults to @samp{\"AC\"}."
 msgstr "La valeur par défaut est @samp{\"AC\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:18910
+#: doc/guix.texi:20666
 #, 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:18913
+#: doc/guix.texi:20669
 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:18918
+#: doc/guix.texi:20674
 #, 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:18920
+#: doc/guix.texi:20676
 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:18922
+#: doc/guix.texi:20678
 msgid "Defaults to @samp{2}."
 msgstr "La valeur par défaut est @samp{2}."
 
 #. type: deftypevr
-#: doc/guix.texi:18925
+#: doc/guix.texi:20681
 #, 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:18927
+#: doc/guix.texi:20683
 msgid "Dirty pages flushing periodicity, expressed in seconds."
 msgstr "Périodicité du nettoyage des pages invalidées, en secondes."
 
 #. type: deftypevr
-#: doc/guix.texi:18929 doc/guix.texi:19152 doc/guix.texi:20472
-#: doc/guix.texi:20480
+#: doc/guix.texi:20685 doc/guix.texi:20908 doc/guix.texi:22237
+#: doc/guix.texi:22245
 msgid "Defaults to @samp{15}."
 msgstr "La valeur par défaut est @samp{15}."
 
 #. type: deftypevr
-#: doc/guix.texi:18932
+#: doc/guix.texi:20688
 #, 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:18934
+#: doc/guix.texi:20690
 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:18936
+#: doc/guix.texi:20692
 msgid "Defaults to @samp{60}."
 msgstr "La valeur par défaut est @samp{60}."
 
 #. type: deftypevr
-#: doc/guix.texi:18939
+#: doc/guix.texi:20695
 #, 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:18943
+#: doc/guix.texi:20699
 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:18945 doc/guix.texi:18952 doc/guix.texi:18959
-#: doc/guix.texi:18966 doc/guix.texi:18973 doc/guix.texi:18980
-#: doc/guix.texi:18988 doc/guix.texi:18996 doc/guix.texi:19003
-#: doc/guix.texi:19010 doc/guix.texi:19017 doc/guix.texi:19024
-#: doc/guix.texi:19054 doc/guix.texi:19092 doc/guix.texi:19099
-#: doc/guix.texi:19108 doc/guix.texi:19130 doc/guix.texi:19138
-#: doc/guix.texi:19145 doc/guix.texi:19300 doc/guix.texi:19320
-#: doc/guix.texi:19335 doc/guix.texi:19342 doc/guix.texi:21131
-#: doc/guix.texi:21139 doc/guix.texi:21147 doc/guix.texi:21155
-#: doc/guix.texi:21163 doc/guix.texi:21171
-msgid "Defaults to @samp{disabled}."
-msgstr "La valeur par défaut est @samp{disabled}."
-
-#. type: deftypevr
-#: doc/guix.texi:18948
+#: doc/guix.texi:20704
 #, 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:18950
+#: doc/guix.texi:20706
 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:18955
+#: doc/guix.texi:20711
 #, 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:18957
+#: doc/guix.texi:20713
 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:18962
+#: doc/guix.texi:20718
 #, 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:18964
+#: doc/guix.texi:20720
 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:18969
+#: doc/guix.texi:20725
 #, 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:18971
+#: doc/guix.texi:20727
 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:18976
+#: doc/guix.texi:20732
 #, 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:18978
+#: doc/guix.texi:20734
 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:18983
+#: doc/guix.texi:20739
 #, 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:18986
+#: doc/guix.texi:20742
 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:18991
+#: doc/guix.texi:20747
 #, 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:18994
+#: doc/guix.texi:20750
 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:18999
+#: doc/guix.texi:20755
 #, 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:19001
+#: doc/guix.texi:20757
 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:19006
+#: doc/guix.texi:20762
 #, 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:19008
+#: doc/guix.texi:20764
 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:19013
+#: doc/guix.texi:20769
 #, 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:19015
+#: doc/guix.texi:20771
 msgid "Enable CPU turbo boost feature on AC mode."
 msgstr "Active la fonctionnalité turbo boost du CPU sur secteur."
 
 #. type: deftypevr
-#: doc/guix.texi:19020
+#: doc/guix.texi:20776
 #, 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:19022
+#: doc/guix.texi:20778
 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:19027
+#: doc/guix.texi:20783
 #, 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:19030
+#: doc/guix.texi:20786
 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:19035
+#: doc/guix.texi:20791
 #, 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:19037
+#: doc/guix.texi:20793
 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:19042
+#: doc/guix.texi:20798
 #, 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:19044
+#: doc/guix.texi:20800
 msgid "Enable Linux kernel NMI watchdog."
 msgstr "Active le chien de garde NMI du noyau Linux."
 
 #. type: deftypevr
-#: doc/guix.texi:19049
+#: doc/guix.texi:20805
 #, 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:19052
+#: doc/guix.texi:20808
 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:19057
+#: doc/guix.texi:20813
 #, 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:19060
+#: doc/guix.texi:20816
 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:19062 doc/guix.texi:19160 doc/guix.texi:19190
+#: doc/guix.texi:20818 doc/guix.texi:20916 doc/guix.texi:20946
 msgid "Defaults to @samp{\"performance\"}."
 msgstr "La valeur par défaut est @samp{\"performance\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:19065
+#: doc/guix.texi:20821
 #, 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:19067
+#: doc/guix.texi:20823
 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:19069 doc/guix.texi:19167
+#: doc/guix.texi:20825 doc/guix.texi:20923
 msgid "Defaults to @samp{\"powersave\"}."
 msgstr "La valeur par défaut est @samp{\"powersave\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:19072
+#: doc/guix.texi:20828
 #, 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:19074
+#: doc/guix.texi:20830
 msgid "Hard disk devices."
 msgstr "Périphériques de disque dur."
 
 #. type: deftypevr
-#: doc/guix.texi:19077
+#: doc/guix.texi:20833
 #, 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:19079
+#: doc/guix.texi:20835
 msgid "Hard disk advanced power management level."
 msgstr "Niveau de gestion de l'énergie avancé des disques durs."
 
 #. type: deftypevr
-#: doc/guix.texi:19082
+#: doc/guix.texi:20838
 #, 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:19084
+#: doc/guix.texi:20840
 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:19087
+#: doc/guix.texi:20843
 #, 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:19090
+#: doc/guix.texi:20846
 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:19095
+#: doc/guix.texi:20851
 #, 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:19097
+#: doc/guix.texi:20853
 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:19102
+#: doc/guix.texi:20858
 #, 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:19106
+#: doc/guix.texi:20862
 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:19111
+#: doc/guix.texi:20867
 #, 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:19114
+#: doc/guix.texi:20870
 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:19116
+#: doc/guix.texi:20872
 msgid "Defaults to @samp{\"max_performance\"}."
 msgstr "La valeur par défaut est @samp{\"max_performance\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:19119
+#: doc/guix.texi:20875
 #, 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:19121
+#: doc/guix.texi:20877
 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:19123
+#: doc/guix.texi:20879
 msgid "Defaults to @samp{\"min_power\"}."
 msgstr "La valeur par défaut est @samp{\"min_power\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:19126
+#: doc/guix.texi:20882
 #, 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:19128
+#: doc/guix.texi:20884
 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:19133
+#: doc/guix.texi:20889
 #, 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:19136
+#: doc/guix.texi:20892
 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"
+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:19141
+#: doc/guix.texi:20897
 #, 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:19143
+#: doc/guix.texi:20899
 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:19148
+#: doc/guix.texi:20904
 #, 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:19150
+#: doc/guix.texi:20906
 msgid "Seconds of inactivity before disk is suspended."
 msgstr "Secondes d'inactivités avant de suspendre les disques."
 
 #. type: deftypevr
-#: doc/guix.texi:19155
+#: doc/guix.texi:20911
 #, 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:19158
+#: doc/guix.texi:20914
 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:19163
+#: doc/guix.texi:20919
 #, 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:19165
+#: doc/guix.texi:20921
 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:19170
+#: doc/guix.texi:20926
 #, 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:19173
+#: doc/guix.texi:20929
 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:19175
+#: doc/guix.texi:20931
 msgid "Defaults to @samp{\"high\"}."
 msgstr "La valeur par défaut est @samp{\"high\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:19178
+#: doc/guix.texi:20934
 #, 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:19180
+#: doc/guix.texi:20936
 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:19182
+#: doc/guix.texi:20938
 msgid "Defaults to @samp{\"low\"}."
 msgstr "La valeur par défaut est @samp{\"low\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:19185
+#: doc/guix.texi:20941
 #, 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:19188
+#: doc/guix.texi:20944
 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:19193
+#: doc/guix.texi:20949
 #, 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:19195
+#: doc/guix.texi:20951
 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:19197
+#: doc/guix.texi:20953
 msgid "Defaults to @samp{\"battery\"}."
 msgstr "La valeur par défaut est @samp{\"battery\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:19200
+#: doc/guix.texi:20956
 #, 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:19202
+#: doc/guix.texi:20958
 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:19204 doc/guix.texi:19211 doc/guix.texi:19285
+#: doc/guix.texi:20960 doc/guix.texi:20967 doc/guix.texi:21041
 msgid "Defaults to @samp{\"auto\"}."
 msgstr "La valeur par défaut est @samp{\"auto\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:19207
+#: doc/guix.texi:20963
 #, 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:19209
+#: doc/guix.texi:20965
 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:19214
+#: doc/guix.texi:20970
 #, 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:19216
+#: doc/guix.texi:20972
 msgid "Wifi power saving mode."
 msgstr "Mode de gestion de l'énergie wifi."
 
 #. type: deftypevr
-#: doc/guix.texi:19221
+#: doc/guix.texi:20977
 #, 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:19223
+#: doc/guix.texi:20979
 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:19228
+#: doc/guix.texi:20984
 #, 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:19230
+#: doc/guix.texi:20986
 msgid "Disable wake on LAN."
 msgstr "Désactive wake on LAN."
 
 #. type: deftypevr
-#: doc/guix.texi:19235
+#: doc/guix.texi:20991
 #, 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:19238
+#: doc/guix.texi:20994
 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:19243
+#: doc/guix.texi:20999
 #, 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:19245
+#: doc/guix.texi:21001
 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:19247 doc/guix.texi:19765 doc/guix.texi:19909
+#: doc/guix.texi:21003 doc/guix.texi:21530 doc/guix.texi:21674
 msgid "Defaults to @samp{1}."
 msgstr "La valeur par défaut est @samp{1}."
 
 #. type: deftypevr
-#: doc/guix.texi:19250
+#: doc/guix.texi:21006
 #, 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:19252
+#: doc/guix.texi:21008
 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:19257
+#: doc/guix.texi:21013
 #, 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:19261
+#: doc/guix.texi:21017
 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:19266
+#: doc/guix.texi:21022
 #, 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:19268
+#: doc/guix.texi:21024
 msgid "Name of the optical drive device to power off."
 msgstr "Nom du périphérique optique à éteindre."
 
 #. type: deftypevr
-#: doc/guix.texi:19270
+#: doc/guix.texi:21026
 msgid "Defaults to @samp{\"sr0\"}."
 msgstr "La valeur par défaut est @samp{\"sr0\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:19273
+#: doc/guix.texi:21029
 #, 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:19276
+#: doc/guix.texi:21032
 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:19278
+#: doc/guix.texi:21034
 msgid "Defaults to @samp{\"on\"}."
 msgstr "La valeur par défaut est @samp{\"on\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:19281
+#: doc/guix.texi:21037
 #, 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:19283
+#: doc/guix.texi:21039
 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:19288
+#: doc/guix.texi:21044
 #, 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:19291
+#: doc/guix.texi:21047
 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:19296
+#: doc/guix.texi:21052
 #, 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:19298
+#: doc/guix.texi:21054
 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:19303
+#: doc/guix.texi:21059
 #, 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:19306
+#: doc/guix.texi:21062
 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:19309
+#: doc/guix.texi:21065
 #, 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:19311
+#: doc/guix.texi:21067
 msgid "Enable USB autosuspend feature."
 msgstr "Active la fonctionnalité de mise en veille automatique de l'USB."
 
 #. type: deftypevr
-#: doc/guix.texi:19316
+#: doc/guix.texi:21072
 #, 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:19318
+#: doc/guix.texi:21074
 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:19323
+#: doc/guix.texi:21079
 #, 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:19325
+#: doc/guix.texi:21081
 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:19330
+#: doc/guix.texi:21086
 #, 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:19333
+#: doc/guix.texi:21089
 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:19338
+#: doc/guix.texi:21094
 #, 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:19340
+#: doc/guix.texi:21096
 msgid "Enable USB autosuspend before shutdown."
 msgstr "Active la mise en veille de l'USB avant l'arrêt."
 
 #. type: deftypevr
-#: doc/guix.texi:19345
+#: doc/guix.texi:21101
 #, 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:19348
+#: doc/guix.texi:21104
 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:19353
+#: doc/guix.texi:21109
 #, no-wrap
 msgid "thermald"
 msgstr "thermald"
 
 #. type: cindex
-#: doc/guix.texi:19354
+#: doc/guix.texi:21110
 #, no-wrap
 msgid "CPU frequency scaling with thermald"
 msgstr "gestion de la fréquence du CPU avec thermald"
 
 #. type: subsubheading
-#: doc/guix.texi:19355
+#: doc/guix.texi:21111
 #, no-wrap
 msgid "Thermald daemon"
 msgstr "démon Thermald"
 
 #. type: Plain text
-#: doc/guix.texi:19359
+#: doc/guix.texi:21115
 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:19360
+#: doc/guix.texi:21116
 #, no-wrap
 msgid "{Scheme Variable} thermald-service-type"
 msgstr "{Variable Scheme} thermald-service-type"
 
 #. type: defvr
-#: doc/guix.texi:19365
+#: doc/guix.texi:21121
 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:19367
+#: doc/guix.texi:21123
 #, no-wrap
 msgid "{Data Type} thermald-configuration"
 msgstr "{Type de données} thermald-configuration"
 
 #. type: deftp
-#: doc/guix.texi:19369
+#: doc/guix.texi:21125
 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:19371
+#: doc/guix.texi:21127
 #, 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:19373
+#: doc/guix.texi:21129
 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:19374
+#: doc/guix.texi:21130
 #, no-wrap
 msgid "@code{thermald} (default: @var{thermald})"
 msgstr "@code{thermald} (par défaut : @var{thermald})"
 
 #. type: table
-#: doc/guix.texi:19376
+#: doc/guix.texi:21132
 msgid "Package object of thermald."
 msgstr "Objet du paquet de thermald."
 
 #. type: Plain text
-#: doc/guix.texi:19385
+#: doc/guix.texi:21141
 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:19386
+#: doc/guix.texi:21142
 #, no-wrap
 msgid "mpd"
 msgstr "mpd"
 
 #. type: subsubheading
-#: doc/guix.texi:19387
+#: doc/guix.texi:21143
 #, no-wrap
 msgid "Music Player Daemon"
 msgstr "Music Player Daemon"
 
 #. type: Plain text
-#: doc/guix.texi:19392
+#: doc/guix.texi:21148
 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:19395
+#: doc/guix.texi:21151
 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:19401
+#: doc/guix.texi:21157
 #, no-wrap
 msgid ""
 "(service mpd-service-type\n"
@@ -36262,117 +39815,150 @@ msgstr ""
 "          (port \"6666\")))\n"
 
 #. type: defvr
-#: doc/guix.texi:19403
+#: doc/guix.texi:21159
 #, no-wrap
 msgid "{Scheme Variable} mpd-service-type"
 msgstr "{Variable Scheme} mpd-service-type"
 
 #. type: defvr
-#: doc/guix.texi:19405
+#: doc/guix.texi:21161
 msgid "The service type for @command{mpd}"
 msgstr "Le type de service pour @command{mpd}."
 
 #. type: deftp
-#: doc/guix.texi:19407
+#: doc/guix.texi:21163
 #, no-wrap
 msgid "{Data Type} mpd-configuration"
 msgstr "{Type de données} mpd-configuration"
 
 #. type: deftp
-#: doc/guix.texi:19409
+#: doc/guix.texi:21165
 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:19411
+#: doc/guix.texi:21167
 #, no-wrap
 msgid "@code{user} (default: @code{\"mpd\"})"
 msgstr "@code{user} (par défaut : @code{\"mpd\"})"
 
 #. type: table
-#: doc/guix.texi:19413
+#: doc/guix.texi:21169
 msgid "The user to run mpd as."
 msgstr "L'utilisateur qui lance mpd."
 
 #. type: item
-#: doc/guix.texi:19414
+#: doc/guix.texi:21170
 #, no-wrap
 msgid "@code{music-dir} (default: @code{\"~/Music\"})"
 msgstr "@code{music-dir} (par défaut : @code{\"~/Music\"})"
 
 #. type: table
-#: doc/guix.texi:19416
+#: doc/guix.texi:21172
 msgid "The directory to scan for music files."
 msgstr "Le répertoire à scanner pour trouver les fichiers de musique."
 
 #. type: item
-#: doc/guix.texi:19417
+#: doc/guix.texi:21173
 #, 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:19419
+#: doc/guix.texi:21175
 msgid "The directory to store playlists."
 msgstr "Le répertoire où stocker les playlists."
 
 #. type: item
-#: doc/guix.texi:19420
+#: doc/guix.texi:21176
+#, 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:21178
+msgid "The location of the music database."
+msgstr "Emplacement de la base de données de musiques."
+
+#. type: item
+#: doc/guix.texi:21179
+#, 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:21181
+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:21182
+#, 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:21184
+msgid "The location of the sticker database."
+msgstr "Emplacement de la base de données de stickers."
+
+#. type: item
+#: doc/guix.texi:21185
 #, no-wrap
 msgid "@code{port} (default: @code{\"6600\"})"
 msgstr "@code{port} (par défaut : @code{\"6600\"})"
 
 #. type: table
-#: doc/guix.texi:19422
+#: doc/guix.texi:21187
 msgid "The port to run mpd on."
 msgstr "Le port sur lequel lancer mpd."
 
 #. type: item
-#: doc/guix.texi:19423
+#: doc/guix.texi:21188
 #, no-wrap
 msgid "@code{address} (default: @code{\"any\"})"
 msgstr "@code{address} (par défaut : @code{\"any\"})"
 
 #. type: table
-#: doc/guix.texi:19426
+#: doc/guix.texi:21191
 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: subsubsection
-#: doc/guix.texi:19431
+#. type: subsection
+#: doc/guix.texi:21196
 #, no-wrap
 msgid "Virtualization services"
 msgstr "services de virtualisation"
 
 #. type: Plain text
-#: doc/guix.texi:19436
+#: doc/guix.texi:21201
 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:19437
+#: doc/guix.texi:21202
 #, no-wrap
 msgid "Libvirt daemon"
 msgstr "démon libvirt"
 
 #. type: Plain text
-#: doc/guix.texi:19441
+#: doc/guix.texi:21206
 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:19442
+#: doc/guix.texi:21207
 #, no-wrap
 msgid "{Scheme Variable} libvirt-service-type"
 msgstr "{Variable Scheme} libvirt-service-type"
 
 #. type: deffn
-#: doc/guix.texi:19445
+#: doc/guix.texi:21210
 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:19451
+#: doc/guix.texi:21216
 #, no-wrap
 msgid ""
 "(service libvirt-service-type\n"
@@ -36386,874 +39972,874 @@ msgstr ""
 "          (tls-port \"16555\")))\n"
 
 #. type: Plain text
-#: doc/guix.texi:19456
+#: doc/guix.texi:21221
 msgid "Available @code{libvirt-configuration} fields are:"
 msgstr "Les champs de @code{libvirt-configuration} disponibles sont :"
 
 #. type: deftypevr
-#: doc/guix.texi:19457
+#: doc/guix.texi:21222
 #, no-wrap
 msgid "{@code{libvirt-configuration} parameter} package libvirt"
 msgstr "{paramètre de @code{libvirt-configuration}} package libvirt"
 
 #. type: deftypevr
-#: doc/guix.texi:19459
+#: doc/guix.texi:21224
 msgid "Libvirt package."
 msgstr "Paquet libvirt."
 
 #. type: deftypevr
-#: doc/guix.texi:19462
+#: doc/guix.texi:21227
 #, 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:19465
+#: doc/guix.texi:21230
 msgid "Flag listening for secure TLS connections on the public TCP/IP port.  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:19468
+#: doc/guix.texi:21233
 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:19473
+#: doc/guix.texi:21238
 #, 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:19476
+#: doc/guix.texi:21241
 msgid "Listen for unencrypted TCP connections on the public TCP/IP port.  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:19480
+#: doc/guix.texi:21245
 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)."
 
 #. type: deftypevr
-#: doc/guix.texi:19485
+#: doc/guix.texi:21250
 #, 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:19488
+#: doc/guix.texi:21253
 msgid "Port for accepting secure TLS connections This can be a port number, or service name"
-msgstr "Pour pour accepter les connexions TLS sécurisées.  Il peut s'agir d'un numéro de port ou d'un nom de service."
+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:19490
+#: doc/guix.texi:21255
 msgid "Defaults to @samp{\"16514\"}."
 msgstr "La valeur par défaut est @samp{\"16514\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:19493
+#: doc/guix.texi:21258
 #, 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:19496
+#: doc/guix.texi:21261
 msgid "Port for accepting insecure TCP connections This can be a port number, or service name"
-msgstr "Pour sur lequel accepter les connexions TCP non sécurisées.  Cela peut être un numéro de port ou un nom de service."
+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:19498
+#: doc/guix.texi:21263
 msgid "Defaults to @samp{\"16509\"}."
 msgstr "La valeur par défaut est @samp{\"16509\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:19501
+#: doc/guix.texi:21266
 #, 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:19503
+#: doc/guix.texi:21268
 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:19505
+#: doc/guix.texi:21270
 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:19508
+#: doc/guix.texi:21273
 #, 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:19510
+#: doc/guix.texi:21275
 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:19513
+#: doc/guix.texi:21278
 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:19518
+#: doc/guix.texi:21283
 #, 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:19521
+#: doc/guix.texi:21286
 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:19523
+#: doc/guix.texi:21288
 msgid "Defaults to @samp{\"Virtualization Host <hostname>\"}."
 msgstr "La valeur par défaut est @samp{\"Virtualization Host <hostname>\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:19526
+#: doc/guix.texi:21291
 #, 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:19530
+#: doc/guix.texi:21295
 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:19535
+#: doc/guix.texi:21300
 #, 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:19538
+#: doc/guix.texi:21303
 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:19540 doc/guix.texi:19558
+#: doc/guix.texi:21305 doc/guix.texi:21323
 msgid "Defaults to @samp{\"0777\"}."
 msgstr "La valeur par défaut est @samp{\"0777\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:19543
+#: doc/guix.texi:21308
 #, 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:19547
+#: doc/guix.texi:21312
 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:19549
+#: doc/guix.texi:21314
 msgid "Defaults to @samp{\"0770\"}."
 msgstr "La valeur par défaut est @samp{\"0770\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:19552
+#: doc/guix.texi:21317
 #, 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:19556
+#: doc/guix.texi:21321
 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."
+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:19561
+#: doc/guix.texi:21326
 #, 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:19563
+#: doc/guix.texi:21328
 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:19565
+#: doc/guix.texi:21330
 msgid "Defaults to @samp{\"/var/run/libvirt\"}."
 msgstr "La valeur par défaut est @samp{\"/var/run/libvirt\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:19568
+#: doc/guix.texi:21333
 #, 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:19571
+#: doc/guix.texi:21336
 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."
+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:19573 doc/guix.texi:19582
+#: doc/guix.texi:21338 doc/guix.texi:21347
 msgid "Defaults to @samp{\"polkit\"}."
 msgstr "La valeur par défaut est @samp{\"polkit\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:19576
+#: doc/guix.texi:21341
 #, 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:19580
+#: doc/guix.texi:21345
 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:19585
+#: doc/guix.texi:21350
 #, 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:19589
+#: doc/guix.texi:21354
 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:19591
+#: doc/guix.texi:21356
 msgid "Defaults to @samp{\"sasl\"}."
 msgstr "La valeur par défaut est @samp{\"sasl\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:19594
+#: doc/guix.texi:21359
 #, 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:19598
+#: doc/guix.texi:21363
 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:19601
+#: doc/guix.texi:21366
 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."
+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:19603
+#: doc/guix.texi:21368
 msgid "Defaults to @samp{\"none\"}."
 msgstr "La valeur par défaut est @samp{\"none\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:19606
+#: doc/guix.texi:21371
 #, 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:19608
+#: doc/guix.texi:21373
 msgid "API access control scheme."
 msgstr "Schéma de contrôle d'accès à l'API."
 
 #. type: deftypevr
-#: doc/guix.texi:19611
+#: doc/guix.texi:21376
 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:19616
+#: doc/guix.texi:21381
 #, 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:19619
+#: doc/guix.texi:21384
 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:19624
+#: doc/guix.texi:21389
 #, 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:19627
+#: doc/guix.texi:21392
 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:19632
+#: doc/guix.texi:21397
 #, 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:19635
+#: doc/guix.texi:21400
 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:19640
+#: doc/guix.texi:21405
 #, 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:19643
+#: doc/guix.texi:21408
 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:19648
+#: doc/guix.texi:21413
 #, 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:19650
+#: doc/guix.texi:21415
 msgid "Disable verification of our own server certificates."
 msgstr "Désactive la vérification de nos propres certificats serveurs."
 
 #. type: deftypevr
-#: doc/guix.texi:19653
+#: doc/guix.texi:21418
 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:19658
+#: doc/guix.texi:21423
 #, 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:19660
+#: doc/guix.texi:21425
 msgid "Disable verification of client certificates."
 msgstr "Désactive la vérification des certificats clients."
 
 #. type: deftypevr
-#: doc/guix.texi:19664
+#: doc/guix.texi:21429
 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:19669
+#: doc/guix.texi:21434
 #, 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:19671
+#: doc/guix.texi:21436
 msgid "Whitelist of allowed x509 Distinguished Name."
 msgstr "Liste blanche des Distinguished Name x509 autorisés."
 
 #. type: deftypevr
-#: doc/guix.texi:19676
+#: doc/guix.texi:21441
 #, 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:19679
+#: doc/guix.texi:21444
 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:19684
+#: doc/guix.texi:21449
 #, 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:19688
+#: doc/guix.texi:21453
 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."
 
 #. type: deftypevr
-#: doc/guix.texi:19690
+#: doc/guix.texi:21455
 msgid "Defaults to @samp{\"NORMAL\"}."
 msgstr "La valeur par défaut est @samp{\"NORMAL\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:19693
+#: doc/guix.texi:21458
 #, 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:19696 doc/guix.texi:20119
+#: doc/guix.texi:21461 doc/guix.texi:21884
 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:19698
+#: doc/guix.texi:21463
 msgid "Defaults to @samp{5000}."
 msgstr "La valeur par défaut est @samp{5000}."
 
 #. type: deftypevr
-#: doc/guix.texi:19701
+#: doc/guix.texi:21466
 #, 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:19705
+#: doc/guix.texi:21470
 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:19710
+#: doc/guix.texi:21475
 #, 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:19713
+#: doc/guix.texi:21478
 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."
+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:19715 doc/guix.texi:19733 doc/guix.texi:19749
+#: doc/guix.texi:21480 doc/guix.texi:21498 doc/guix.texi:21514
 msgid "Defaults to @samp{20}."
 msgstr "La valeur par défaut est @samp{20}."
 
 #. type: deftypevr
-#: doc/guix.texi:19718
+#: doc/guix.texi:21483
 #, 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:19720
+#: doc/guix.texi:21485
 msgid "Number of workers to start up initially."
 msgstr "Nombre de processus de travail démarrés initialement."
 
 #. type: deftypevr
-#: doc/guix.texi:19725
+#: doc/guix.texi:21490
 #, 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:19727
+#: doc/guix.texi:21492
 msgid "Maximum number of worker threads."
 msgstr "Nombre maximum de threads de travail."
 
 #. type: deftypevr
-#: doc/guix.texi:19731
+#: doc/guix.texi:21496
 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:19736
+#: doc/guix.texi:21501
 #, 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:19740
+#: doc/guix.texi:21505
 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:19745
+#: doc/guix.texi:21510
 #, 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:19747
+#: doc/guix.texi:21512
 msgid "Total global limit on concurrent RPC calls."
 msgstr "Limite globale totale sur les appels RPC concurrents."
 
 #. type: deftypevr
-#: doc/guix.texi:19752
+#: doc/guix.texi:21517
 #, 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:19756
+#: doc/guix.texi:21521
 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:19761
+#: doc/guix.texi:21526
 #, 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:19763
+#: doc/guix.texi:21528
 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:19768
+#: doc/guix.texi:21533
 #, 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:19770
+#: doc/guix.texi:21535
 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:19775
+#: doc/guix.texi:21540
 #, 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:19777
+#: doc/guix.texi:21542
 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:19782
+#: doc/guix.texi:21547
 #, 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:19784
+#: doc/guix.texi:21549
 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:19789
+#: doc/guix.texi:21554
 #, 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:19791
+#: doc/guix.texi:21556
 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:19796
+#: doc/guix.texi:21561
 #, 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:19798 doc/guix.texi:20021
+#: doc/guix.texi:21563 doc/guix.texi:21786
 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:19803
+#: doc/guix.texi:21568
 #, 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:19805 doc/guix.texi:20028
+#: doc/guix.texi:21570 doc/guix.texi:21793
 msgid "Logging filters."
 msgstr "Filtres de journalisation."
 
 #. type: deftypevr
-#: doc/guix.texi:19808 doc/guix.texi:20031
+#: doc/guix.texi:21573 doc/guix.texi:21796
 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: itemize
-#: doc/guix.texi:19812 doc/guix.texi:20035
+#: doc/guix.texi:21577 doc/guix.texi:21800
 msgid "x:name"
 msgstr "x:nom"
 
 #. type: itemize
-#: doc/guix.texi:19815 doc/guix.texi:20038
+#: doc/guix.texi:21580 doc/guix.texi:21803
 msgid "x:+name"
 msgstr "x:+nom"
 
 #. type: deftypevr
-#: doc/guix.texi:19825 doc/guix.texi:20048
+#: doc/guix.texi:21590 doc/guix.texi:21813
 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: itemize
-#: doc/guix.texi:19829 doc/guix.texi:19874 doc/guix.texi:20052
-#: doc/guix.texi:20097
+#: doc/guix.texi:21594 doc/guix.texi:21639 doc/guix.texi:21817
+#: doc/guix.texi:21862
 msgid "1: DEBUG"
 msgstr "1 : DEBUG"
 
 #. type: itemize
-#: doc/guix.texi:19832 doc/guix.texi:19877 doc/guix.texi:20055
-#: doc/guix.texi:20100
+#: doc/guix.texi:21597 doc/guix.texi:21642 doc/guix.texi:21820
+#: doc/guix.texi:21865
 msgid "2: INFO"
 msgstr "2 : INFO"
 
 #. type: itemize
-#: doc/guix.texi:19835 doc/guix.texi:19880 doc/guix.texi:20058
-#: doc/guix.texi:20103
+#: doc/guix.texi:21600 doc/guix.texi:21645 doc/guix.texi:21823
+#: doc/guix.texi:21868
 msgid "3: WARNING"
 msgstr "3 : WARNING"
 
 #. type: itemize
-#: doc/guix.texi:19838 doc/guix.texi:19883 doc/guix.texi:20061
-#: doc/guix.texi:20106
+#: doc/guix.texi:21603 doc/guix.texi:21648 doc/guix.texi:21826
+#: doc/guix.texi:21871
 msgid "4: ERROR"
 msgstr "4 : ERROR"
 
 #. type: deftypevr
-#: doc/guix.texi:19843 doc/guix.texi:20066
+#: doc/guix.texi:21608 doc/guix.texi:21831
 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:19845 doc/guix.texi:20068
+#: doc/guix.texi:21610 doc/guix.texi:21833
 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:19848
+#: doc/guix.texi:21613
 #, 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:19850 doc/guix.texi:20073
+#: doc/guix.texi:21615 doc/guix.texi:21838
 msgid "Logging outputs."
 msgstr "Sorties de débogage."
 
 #. type: deftypevr
-#: doc/guix.texi:19853 doc/guix.texi:20076
+#: doc/guix.texi:21618 doc/guix.texi:21841
 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:19855 doc/guix.texi:20078
+#: doc/guix.texi:21620 doc/guix.texi:21843
 #, no-wrap
 msgid "x:stderr"
 msgstr "x:stderr"
 
 #. type: table
-#: doc/guix.texi:19857 doc/guix.texi:20080
+#: doc/guix.texi:21622 doc/guix.texi:21845
 msgid "output goes to stderr"
 msgstr "la sortie va vers stderr"
 
 #. type: item
-#: doc/guix.texi:19858 doc/guix.texi:20081
+#: doc/guix.texi:21623 doc/guix.texi:21846
 #, no-wrap
 msgid "x:syslog:name"
 msgstr "x:syslog:nom"
 
 #. type: table
-#: doc/guix.texi:19860 doc/guix.texi:20083
+#: doc/guix.texi:21625 doc/guix.texi:21848
 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:19861 doc/guix.texi:20084
+#: doc/guix.texi:21626 doc/guix.texi:21849
 #, no-wrap
 msgid "x:file:file_path"
 msgstr "x:file:chemin_fichier"
 
 #. type: table
-#: doc/guix.texi:19863 doc/guix.texi:20086
+#: doc/guix.texi:21628 doc/guix.texi:21851
 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:19864 doc/guix.texi:20087
+#: doc/guix.texi:21629 doc/guix.texi:21852
 #, no-wrap
 msgid "x:journald"
 msgstr "x:journald"
 
 #. type: table
-#: doc/guix.texi:19866 doc/guix.texi:20089
+#: doc/guix.texi:21631 doc/guix.texi:21854
 msgid "output to journald logging system"
 msgstr "la sortie va vers le système de journalisation journald"
 
 #. type: deftypevr
-#: doc/guix.texi:19870 doc/guix.texi:20093
+#: doc/guix.texi:21635 doc/guix.texi:21858
 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:19888 doc/guix.texi:20111
+#: doc/guix.texi:21653 doc/guix.texi:21876
 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:19890 doc/guix.texi:20113
+#: doc/guix.texi:21655 doc/guix.texi:21878
 msgid "Defaults to @samp{\"3:stderr\"}."
 msgstr "La valeur par défaut est @samp{\"3:stderr\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:19893
+#: doc/guix.texi:21658
 #, 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:19895
+#: doc/guix.texi:21660
 msgid "Allows usage of the auditing subsystem to be altered"
-msgstr "Permet de modifier l'utilisation du sous-système d'audit."
+msgstr "Permet de modifier l'utilisation du sous-système d'audit"
 
 #. type: itemize
-#: doc/guix.texi:19899
+#: doc/guix.texi:21664
 msgid "0: disable all auditing"
 msgstr "0 : désactive tout audit"
 
 #. type: itemize
-#: doc/guix.texi:19902
+#: doc/guix.texi:21667
 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:19905
+#: doc/guix.texi:21670
 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:19912
+#: doc/guix.texi:21677
 #, 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:19914
+#: doc/guix.texi:21679
 msgid "Send audit messages via libvirt logging infrastructure."
-msgstr "Envoie les messages d'audit via l'infrastructure de journalisation de libvirt"
+msgstr "Envoie les messages d'audit via l'infrastructure de journalisation de libvirt."
 
 #. type: deftypevr
-#: doc/guix.texi:19919
+#: doc/guix.texi:21684
 #, 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:19921
+#: doc/guix.texi:21686
 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:19926
+#: doc/guix.texi:21691
 #, 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:19928
+#: doc/guix.texi:21693
 msgid "Source to read host UUID."
 msgstr "Source où lire l'UUID de l'hôte."
 
 #. type: itemize
-#: doc/guix.texi:19932
+#: doc/guix.texi:21697
 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:19935
+#: doc/guix.texi:21700
 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:19940
+#: doc/guix.texi:21705
 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:19942
+#: doc/guix.texi:21707
 msgid "Defaults to @samp{\"smbios\"}."
 msgstr "La valeur par défaut est @samp{\"smbios\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:19945
+#: doc/guix.texi:21710
 #, 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:19950
+#: doc/guix.texi:21715
 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:19955
+#: doc/guix.texi:21720
 #, 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:19959
+#: doc/guix.texi:21724
 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:19966
+#: doc/guix.texi:21731
 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:19971
+#: doc/guix.texi:21736
 #, 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:19973 doc/guix.texi:19980
+#: doc/guix.texi:21738 doc/guix.texi:21745
 msgid "Same as above but for admin interface."
 msgstr "Comme précédemment, mais pour l'interface d'administration."
 
 #. type: deftypevr
-#: doc/guix.texi:19978
+#: doc/guix.texi:21743
 #, 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:19985
+#: doc/guix.texi:21750
 #, 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:19987
+#: doc/guix.texi:21752
 msgid "Timeout for Open vSwitch calls."
 msgstr "Délai d'attente pour les appels Open vSwitch."
 
 #. type: deftypevr
-#: doc/guix.texi:19991
+#: doc/guix.texi:21756
 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:19998
+#: doc/guix.texi:21763
 #, no-wrap
 msgid "Virtlog daemon"
 msgstr "démon Virrlog"
 
 #. type: Plain text
-#: doc/guix.texi:20001
+#: doc/guix.texi:21766
 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:20007
+#: doc/guix.texi:21772
 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:20008
+#: doc/guix.texi:21773
 #, no-wrap
 msgid "{Scheme Variable} virtlog-service-type"
 msgstr "{Variable Scheme} virtlog-service-type"
 
 #. type: deffn
-#: doc/guix.texi:20011
+#: doc/guix.texi:21776
 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:20016
+#: doc/guix.texi:21781
 #, no-wrap
 msgid ""
 "(service virtlog-service-type\n"
@@ -37265,157 +40851,157 @@ msgstr ""
 "          (max-clients 1000)))\n"
 
 #. type: deftypevr
-#: doc/guix.texi:20019
+#: doc/guix.texi:21784
 #, 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:20026
+#: doc/guix.texi:21791
 #, 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:20071
+#: doc/guix.texi:21836
 #, 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:20116
+#: doc/guix.texi:21881
 #, 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:20121
+#: doc/guix.texi:21886
 msgid "Defaults to @samp{1024}."
 msgstr "La valeur par défaut est @samp{1024}."
 
 #. type: deftypevr
-#: doc/guix.texi:20124
+#: doc/guix.texi:21889
 #, 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:20126
+#: doc/guix.texi:21891
 msgid "Maximum file size before rolling over."
 msgstr "Taille de fichier maximale avant roulement."
 
 #. type: deftypevr
-#: doc/guix.texi:20128
+#: doc/guix.texi:21893
 msgid "Defaults to @samp{2MB}"
 msgstr "La valeur par défaut est @samp{2MB}."
 
 #. type: deftypevr
-#: doc/guix.texi:20131
+#: doc/guix.texi:21896
 #, 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:20133
+#: doc/guix.texi:21898
 msgid "Maximum number of backup files to keep."
 msgstr "Nombre maximal de fichiers de sauvegardes à garder."
 
 #. type: deftypevr
-#: doc/guix.texi:20135
+#: doc/guix.texi:21900
 msgid "Defaults to @samp{3}"
 msgstr "La valeur par défaut est @samp{3}."
 
 #. type: subsubheading
-#: doc/guix.texi:20138
+#: doc/guix.texi:21903
 #, no-wrap
 msgid "Transparent Emulation with QEMU"
 msgstr "Émulation transparente avec QEMU"
 
 #. type: cindex
-#: doc/guix.texi:20140
+#: doc/guix.texi:21905
 #, no-wrap
 msgid "emulation"
 msgstr "émulation"
 
 #. type: code{#1}
-#: doc/guix.texi:20141
+#: doc/guix.texi:21906
 #, no-wrap
 msgid "binfmt_misc"
 msgstr "binfmt_misc"
 
 #. type: Plain text
-#: doc/guix.texi:20147
+#: doc/guix.texi:21912
 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."
 
 #. type: defvr
-#: doc/guix.texi:20148
+#: doc/guix.texi:21913
 #, no-wrap
 msgid "{Scheme Variable} qemu-binfmt-service-type"
 msgstr "{Variable Scheme} qemu-binfmt-service-type"
 
 #. type: defvr
-#: doc/guix.texi:20153
+#: doc/guix.texi:21918
 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:20158
+#: doc/guix.texi:21923
 #, no-wrap
 msgid ""
 "(service qemu-binfmt-service-type\n"
 "         (qemu-binfmt-configuration\n"
-"           (platforms (lookup-qemu-platforms \"arm\" \"aarch64\" \"ppc\"))))\n"
+"           (platforms (lookup-qemu-platforms \"arm\" \"aarch64\" \"mips64el\"))))\n"
 msgstr ""
 "(service qemu-binfmt-service-type\n"
 "         (qemu-binfmt-configuration\n"
-"           (platforms (lookup-qemu-platforms \"arm\" \"aarch64\" \"ppc\"))))\n"
+"           (platforms (lookup-qemu-platforms \"arm\" \"aarch64\" \"mips64el\"))))\n"
 
 #. type: defvr
-#: doc/guix.texi:20164
+#: doc/guix.texi:21929
 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:20166
+#: doc/guix.texi:21931
 #, no-wrap
 msgid "{Data Type} qemu-binfmt-configuration"
 msgstr "{Type de données} qemu-binfmt-configuration"
 
 #. type: deftp
-#: doc/guix.texi:20168
+#: doc/guix.texi:21933
 msgid "This is the configuration for the @code{qemu-binfmt} service."
 msgstr "La configuration du service @code{qemu-binfmt}."
 
 #. type: item
-#: doc/guix.texi:20170
+#: doc/guix.texi:21935
 #, no-wrap
 msgid "@code{platforms} (default: @code{'()})"
 msgstr "@code{platforms} (par défaut : @code{'()})"
 
 #. type: table
-#: doc/guix.texi:20173
+#: doc/guix.texi:21938
 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:20174
+#: doc/guix.texi:21939
 #, no-wrap
 msgid "@code{guix-support?} (default: @code{#f})"
 msgstr "@code{guix-support?} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:20180
+#: doc/guix.texi:21945
 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."
 
 #. type: table
-#: doc/guix.texi:20183
+#: doc/guix.texi:21948
 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:20189
+#: doc/guix.texi:21954
 #, no-wrap
 msgid ""
 "(service qemu-binfmt-service-type\n"
@@ -37429,264 +41015,264 @@ msgstr ""
 "           (guix-support? #t)))\n"
 
 #. type: table
-#: doc/guix.texi:20192
+#: doc/guix.texi:21957
 msgid "You can run:"
 msgstr "Vous pouvez lancer :"
 
 #. type: example
-#: doc/guix.texi:20195
+#: doc/guix.texi:21960
 #, no-wrap
 msgid "guix build -s armhf-linux inkscape\n"
 msgstr "guix build -s armhf-linux inkscape\n"
 
 #. type: table
-#: doc/guix.texi:20202
+#: doc/guix.texi:21967
 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:20203
+#: doc/guix.texi:21968
 #, no-wrap
 msgid "@code{qemu} (default: @code{qemu})"
 msgstr "@code{qemu} (par défaut : @code{qemu})"
 
 #. type: table
-#: doc/guix.texi:20205
+#: doc/guix.texi:21970
 msgid "The QEMU package to use."
 msgstr "Le paquet QEMU à utiliser."
 
 #. type: deffn
-#: doc/guix.texi:20208
+#: doc/guix.texi:21973
 #, 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:20213
+#: doc/guix.texi:21978
 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:20215
+#: doc/guix.texi:21980
 #, no-wrap
 msgid "{Scheme Procedure} qemu-platform? @var{obj}"
 msgstr "{Procédure Scheme} qemu-platform? @var{obj}"
 
 #. type: deffn
-#: doc/guix.texi:20217
+#: doc/guix.texi:21982
 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:20219
+#: doc/guix.texi:21984
 #, no-wrap
 msgid "{Scheme Procedure} qemu-platform-name @var{platform}"
 msgstr "{Procédure Scheme} qemu-platform-name @var{platform}"
 
 #. type: deffn
-#: doc/guix.texi:20221
+#: doc/guix.texi:21986
 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: Plain text
-#: doc/guix.texi:20233
+#: doc/guix.texi:21998
 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:20234
+#: doc/guix.texi:21999
 #, 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:20238
+#: doc/guix.texi:22003
 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:20244
+#: doc/guix.texi:22009
 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}."
 
 #. type: deftp
-#: doc/guix.texi:20247
+#: doc/guix.texi:22012
 #, no-wrap
 msgid "{Data Type} git-daemon-configuration"
 msgstr "{Type de données} git-daemon-configuration"
 
 #. type: deftp
-#: doc/guix.texi:20249
+#: doc/guix.texi:22014
 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:20251 doc/guix.texi:20307
+#: doc/guix.texi:22016 doc/guix.texi:22072
 #, no-wrap
 msgid "@code{package} (default: @var{git})"
 msgstr "@code{package} (par défaut : @var{git})"
 
 #. type: table
-#: doc/guix.texi:20253 doc/guix.texi:20309
+#: doc/guix.texi:22018 doc/guix.texi:22074
 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:20254 doc/guix.texi:20313
+#: doc/guix.texi:22019 doc/guix.texi:22078
 #, no-wrap
 msgid "@code{export-all?} (default: @var{#f})"
 msgstr "@code{export-all?} (par défaut : @var{#f})"
 
 #. type: table
-#: doc/guix.texi:20257
+#: doc/guix.texi:22022
 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:20258
+#: doc/guix.texi:22023
 #, 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:20263
+#: doc/guix.texi:22028
 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}."
 
 #. type: item
-#: doc/guix.texi:20264
+#: doc/guix.texi:22029
 #, no-wrap
 msgid "@code{user-path} (default: @var{#f})"
 msgstr "@code{user-path} (par défaut : @var{#f})"
 
 #. type: table
-#: doc/guix.texi:20271
+#: doc/guix.texi:22036
 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}."
 
 #. type: item
-#: doc/guix.texi:20272
+#: doc/guix.texi:22037
 #, no-wrap
 msgid "@code{listen} (default: @var{'()})"
 msgstr "@code{listen} (par défaut : @var{'()})"
 
 #. type: table
-#: doc/guix.texi:20275
+#: doc/guix.texi:22040
 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:20276
+#: doc/guix.texi:22041
 #, no-wrap
 msgid "@code{port} (default: @var{#f})"
 msgstr "@code{port} (par défaut : @var{#f})"
 
 #. type: table
-#: doc/guix.texi:20278
+#: doc/guix.texi:22043
 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:20279
+#: doc/guix.texi:22044
 #, no-wrap
 msgid "@code{whitelist} (default: @var{'()})"
 msgstr "@code{whitelist} (par défaut : @var{'()})"
 
 #. type: table
-#: doc/guix.texi:20281
+#: doc/guix.texi:22046
 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:20282
+#: doc/guix.texi:22047
 #, no-wrap
 msgid "@code{extra-options} (default: @var{'()})"
 msgstr "@code{extra-options} (par défaut : @var{'()})"
 
 #. type: table
-#: doc/guix.texi:20285
+#: doc/guix.texi:22050
 msgid "Extra options will be passed to @code{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:20299
+#: doc/guix.texi:22064
 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."
 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:20302
+#: doc/guix.texi:22067
 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:20303
+#: doc/guix.texi:22068
 #, no-wrap
 msgid "{Data Type} git-http-configuration"
 msgstr "{Type de données} git-http-configuration"
 
 #. type: deftp
-#: doc/guix.texi:20305
+#: doc/guix.texi:22070
 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}."
 
 #. type: item
-#: doc/guix.texi:20310
+#: doc/guix.texi:22075
 #, 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:20312
+#: doc/guix.texi:22077
 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:20316
+#: doc/guix.texi:22081
 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:20317
+#: doc/guix.texi:22082
 #, no-wrap
 msgid "@code{uri-path} (default: @file{/git/})"
 msgstr "@code{uri-path} (par défaut : @file{/git/})"
 
 #. type: table
-#: doc/guix.texi:20322
+#: doc/guix.texi:22087
 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."
 
 #. type: item
-#: doc/guix.texi:20323
+#: doc/guix.texi:22088
 #, 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:20326
+#: doc/guix.texi:22091
 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:20333
+#: doc/guix.texi:22098
 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:20334
+#: doc/guix.texi:22099
 #, no-wrap
 msgid "{Scheme Procedure} git-http-nginx-location-configuration @"
 msgstr "{Procédure Scheme} git-http-nginx-location-configuration @"
 
 #. type: deffn
-#: doc/guix.texi:20339
+#: doc/guix.texi:22104
 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:20356
+#: doc/guix.texi:22121
 #, no-wrap
 msgid ""
 "(service nginx-service-type\n"
@@ -37722,1425 +41308,1420 @@ msgstr ""
 "                (git-http-configuration (uri-path \"/\"))))))))))\n"
 
 #. type: deffn
-#: doc/guix.texi:20363
+#: doc/guix.texi:22128
 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:20365
+#: doc/guix.texi:22130
 #, no-wrap
 msgid "Cgit Service"
 msgstr "Service Cgit"
 
 #. type: cindex
-#: doc/guix.texi:20367
+#: doc/guix.texi:22132
 #, no-wrap
 msgid "Cgit service"
 msgstr "service cgit"
 
 #. type: cindex
-#: doc/guix.texi:20368
+#: doc/guix.texi:22133
 #, no-wrap
 msgid "Git, web interface"
 msgstr "git, interface web"
 
 #. type: Plain text
-#: doc/guix.texi:20371
+#: doc/guix.texi:22136
 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:20374
+#: doc/guix.texi:22139
 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:20377
+#: doc/guix.texi:22142
 #, no-wrap
 msgid "(service cgit-service-type)\n"
 msgstr "(service cgit-service-type)\n"
 
 #. type: Plain text
-#: doc/guix.texi:20381
+#: doc/guix.texi:22146
 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:20385
+#: doc/guix.texi:22150
 msgid "Available @code{cgit-configuration} fields are:"
 msgstr "Les champs de @code{cgit-configuration} disponibles sont :"
 
 #. type: deftypevr
-#: doc/guix.texi:20386
+#: doc/guix.texi:22151
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} package package"
 msgstr "{paramètre de @code{cgit-configuration}} package package"
 
 #. type: deftypevr
-#: doc/guix.texi:20388
+#: doc/guix.texi:22153
 msgid "The CGIT package."
 msgstr "Le paquet cgit."
 
 #. type: deftypevr
-#: doc/guix.texi:20391
+#: doc/guix.texi:22156
 #, 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:20393
-msgid "NGINX configuration."
-msgstr "Configuration Nginx."
-
-#. type: deftypevr
-#: doc/guix.texi:20396
+#: doc/guix.texi:22161
 #, 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:20399
+#: doc/guix.texi:22164
 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:20404
+#: doc/guix.texi:22169
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} string agefile"
 msgstr "{paramètre de @code{cgit-configuration}} string agefile"
 
 #. type: deftypevr
-#: doc/guix.texi:20407
+#: doc/guix.texi:22172
 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:20412
+#: doc/guix.texi:22177
 #, 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:20415
+#: doc/guix.texi:22180
 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:20420
+#: doc/guix.texi:22185
 #, 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:20423
+#: doc/guix.texi:22188
 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:20425
+#: doc/guix.texi:22190
 msgid "Defaults to @samp{\"name\"}."
 msgstr "La valeur par défaut est @samp{\"name\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:20428
+#: doc/guix.texi:22193
 #, 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:20430
+#: doc/guix.texi:22195
 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:20432
+#: doc/guix.texi:22197
 msgid "Defaults to @samp{\"/var/cache/cgit\"}."
 msgstr "La valeur par défaut est @samp{\"/var/cache/cgit\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:20435
+#: doc/guix.texi:22200
 #, 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:20438
+#: doc/guix.texi:22203
 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:20440 doc/guix.texi:20883
+#: doc/guix.texi:22205 doc/guix.texi:22648
 msgid "Defaults to @samp{-1}."
 msgstr "La valeur par défaut est @samp{-1}."
 
 #. type: deftypevr
-#: doc/guix.texi:20443
+#: doc/guix.texi:22208
 #, 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:20446
+#: doc/guix.texi:22211
 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:20451
+#: doc/guix.texi:22216
 #, 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:20454
+#: doc/guix.texi:22219
 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:20459
+#: doc/guix.texi:22224
 #, 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:20462
+#: doc/guix.texi:22227
 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:20467
+#: doc/guix.texi:22232
 #, 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:20470
+#: doc/guix.texi:22235
 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:20475
+#: doc/guix.texi:22240
 #, 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:20478
+#: doc/guix.texi:22243
 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:20483
+#: doc/guix.texi:22248
 #, 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:20486
+#: doc/guix.texi:22251
 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:20491
+#: doc/guix.texi:22256
 #, 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:20494
+#: doc/guix.texi:22259
 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:20499
+#: doc/guix.texi:22264
 #, 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:20501
+#: doc/guix.texi:22266
 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:20506
+#: doc/guix.texi:22271
 #, 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:20509
+#: doc/guix.texi:22274
 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:20514
+#: doc/guix.texi:22279
 #, 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:20516
+#: doc/guix.texi:22281
 msgid "List of @code{clone-url} templates."
 msgstr "Liste des modèles @code{clone-url}"
 
 #. type: deftypevr
-#: doc/guix.texi:20521
+#: doc/guix.texi:22286
 #, 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:20523
+#: doc/guix.texi:22288
 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:20528
+#: doc/guix.texi:22293
 #, 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:20532 doc/guix.texi:21090
+#: doc/guix.texi:22297 doc/guix.texi:22855
 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:20534
+#: doc/guix.texi:22299
 msgid "Defaults to @samp{\"git log\"}."
 msgstr "La valeur par défaut est @samp{\"git log\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:20537
+#: doc/guix.texi:22302
 #, 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:20539
+#: doc/guix.texi:22304
 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:20541
+#: doc/guix.texi:22306
 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:20544
+#: doc/guix.texi:22309
 #, 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:20548
+#: doc/guix.texi:22313
 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:20553
+#: doc/guix.texi:22318
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} boolean embedded?"
 msgstr "{paramètre de @code{cgit-configuration}} boolean embedded?"
 
 #. type: deftypevr
-#: doc/guix.texi:20556
+#: doc/guix.texi:22321
 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:20561
+#: doc/guix.texi:22326
 #, 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:20565
+#: doc/guix.texi:22330
 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:20570
+#: doc/guix.texi:22335
 #, 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:20573
+#: doc/guix.texi:22338
 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:20578
+#: doc/guix.texi:22343
 #, 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:20581
+#: doc/guix.texi:22346
 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:20586
+#: doc/guix.texi:22351
 #, 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:20589
+#: doc/guix.texi:22354
 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:20594
+#: doc/guix.texi:22359
 #, 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:20597
+#: doc/guix.texi:22362
 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:20602
+#: doc/guix.texi:22367
 #, 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:20605
+#: doc/guix.texi:22370
 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:20610
+#: doc/guix.texi:22375
 #, 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:20613
+#: doc/guix.texi:22378
 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:20618
+#: doc/guix.texi:22383
 #, 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:20621
+#: doc/guix.texi:22386
 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:20626
+#: doc/guix.texi:22391
 #, 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:20629 doc/guix.texi:21153
+#: doc/guix.texi:22394 doc/guix.texi:22918
 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:20634
+#: doc/guix.texi:22399
 #, 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:20638
+#: doc/guix.texi:22403
 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:20643
+#: doc/guix.texi:22408
 #, 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:20647
+#: doc/guix.texi:22412
 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:20652
+#: doc/guix.texi:22417
 #, 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:20655
+#: doc/guix.texi:22420
 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:20660
+#: doc/guix.texi:22425
 #, 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:20663
+#: doc/guix.texi:22428
 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:20668
+#: doc/guix.texi:22433
 #, 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:20670
+#: doc/guix.texi:22435
 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:20672
+#: doc/guix.texi:22437
 msgid "Defaults to @samp{\"/favicon.ico\"}."
 msgstr "La valeur par défaut est @samp{\"/favicon.ico\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:20675
+#: doc/guix.texi:22440
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} string footer"
 msgstr "{paramètre de @code{cgit-configuration}} string footer"
 
 #. type: deftypevr
-#: doc/guix.texi:20679
-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)."
+#: doc/guix.texi:22444
+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:20684
+#: doc/guix.texi:22449
 #, 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:20687
+#: doc/guix.texi:22452
 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:20692
+#: doc/guix.texi:22457
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} string header"
 msgstr "{paramètre de @code{cgit-configuration}} string header"
 
 #. type: deftypevr
-#: doc/guix.texi:20695
+#: doc/guix.texi:22460
 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:20700
+#: doc/guix.texi:22465
 #, 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:20703
+#: doc/guix.texi:22468
 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:20708
+#: doc/guix.texi:22473
 #, 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:20711
+#: doc/guix.texi:22476
 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:20716
+#: doc/guix.texi:22481
 #, 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:20719
+#: doc/guix.texi:22484
 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:20724
+#: doc/guix.texi:22489
 #, 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:20727
+#: doc/guix.texi:22492
 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:20732
+#: doc/guix.texi:22497
 #, 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:20735
+#: doc/guix.texi:22500
 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:20737
+#: doc/guix.texi:22502
 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:20740
+#: doc/guix.texi:22505
 #, 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:20742 doc/guix.texi:21199
+#: doc/guix.texi:22507 doc/guix.texi:22964
 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:20747
+#: doc/guix.texi:22512
 #, 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:20750
+#: doc/guix.texi:22515
 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:20755
+#: doc/guix.texi:22520
 #, 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:20757
+#: doc/guix.texi:22522
 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:20759 doc/guix.texi:20994 doc/guix.texi:21002
-#: doc/guix.texi:21010
+#: doc/guix.texi:22524 doc/guix.texi:22759 doc/guix.texi:22767
+#: doc/guix.texi:22775
 msgid "Defaults to @samp{10}."
 msgstr "La valeur par défaut est @samp{10}."
 
 #. type: deftypevr
-#: doc/guix.texi:20762
+#: doc/guix.texi:22527
 #, 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:20764
+#: doc/guix.texi:22529
 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:20766 doc/guix.texi:20781
+#: doc/guix.texi:22531 doc/guix.texi:22546
 msgid "Defaults to @samp{50}."
 msgstr "La valeur par défaut est @samp{50}."
 
 #. type: deftypevr
-#: doc/guix.texi:20769
+#: doc/guix.texi:22534
 #, 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:20771
+#: doc/guix.texi:22536
 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:20773 doc/guix.texi:20789
+#: doc/guix.texi:22538 doc/guix.texi:22554
 msgid "Defaults to @samp{80}."
 msgstr "La valeur par défaut est @samp{80}."
 
 #. type: deftypevr
-#: doc/guix.texi:20776
+#: doc/guix.texi:22541
 #, 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:20779
+#: doc/guix.texi:22544
 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:20784
+#: doc/guix.texi:22549
 #, 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:20787
+#: doc/guix.texi:22552
 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:20792
+#: doc/guix.texi:22557
 #, 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:20794
+#: doc/guix.texi:22559
 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:20799
+#: doc/guix.texi:22564
 #, 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:20802
+#: doc/guix.texi:22567
 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:20807
+#: doc/guix.texi:22572
 #, 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:20809
+#: doc/guix.texi:22574
 msgid "Mimetype for the specified filename extension."
 msgstr "Type mime pour l'extension de fichier spécifiée."
 
 #. type: deftypevr
-#: doc/guix.texi:20813
+#: doc/guix.texi:22578
 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:20816
+#: doc/guix.texi:22581
 #, 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:20818
+#: doc/guix.texi:22583
 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:20823
+#: doc/guix.texi:22588
 #, 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:20826
+#: doc/guix.texi:22591
 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:20831
+#: doc/guix.texi:22596
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} boolean nocache?"
 msgstr "{paramètre de @code{cgit-configuration}} boolean nocache?"
 
 #. type: deftypevr
-#: doc/guix.texi:20833
+#: doc/guix.texi:22598
 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:20838
+#: doc/guix.texi:22603
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} boolean noplainemail?"
 msgstr "{paramètre de @code{cgit-configuration}} boolean noplainemail?"
 
 #. type: deftypevr
-#: doc/guix.texi:20841
+#: doc/guix.texi:22606
 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:20846
+#: doc/guix.texi:22611
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} boolean noheader?"
 msgstr "{paramètre de @code{cgit-configuration}} boolean noheader?"
 
 #. type: deftypevr
-#: doc/guix.texi:20849
+#: doc/guix.texi:22614
 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:20854
+#: doc/guix.texi:22619
 #, 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:20858
+#: doc/guix.texi:22623
 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:20863
+#: doc/guix.texi:22628
 #, 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:20865
+#: doc/guix.texi:22630
 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:20870
+#: doc/guix.texi:22635
 #, 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:20874
+#: doc/guix.texi:22639
 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:20879
+#: doc/guix.texi:22644
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} integer renamelimit"
 msgstr "{paramètre de @code{cgit-configuration}} integer renamelimit"
 
 #. type: deftypevr
-#: doc/guix.texi:20881
+#: doc/guix.texi:22646
 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:20886
+#: doc/guix.texi:22651
 #, 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:20888
+#: doc/guix.texi:22653
 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:20893
+#: doc/guix.texi:22658
 #, 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:20895
+#: doc/guix.texi:22660
 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:20897
+#: doc/guix.texi:22662
 msgid "Defaults to @samp{(\"noindex\" \"nofollow\")}."
 msgstr "La valeur par défaut est @samp{(\"noindex\" \"nofollow\")}."
 
 #. type: deftypevr
-#: doc/guix.texi:20900
+#: doc/guix.texi:22665
 #, 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:20902
+#: doc/guix.texi:22667
 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:20904
+#: doc/guix.texi:22669
 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:20907
+#: doc/guix.texi:22672
 #, 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:20910
+#: doc/guix.texi:22675
 msgid "The content of the file specified with this option will be included verbatim below thef \"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:20915
+#: doc/guix.texi:22680
 #, 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:20917
+#: doc/guix.texi:22682
 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:20922
+#: doc/guix.texi:22687
 #, 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:20928
+#: doc/guix.texi:22693
 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."
 
 #. type: deftypevr
-#: doc/guix.texi:20933
+#: doc/guix.texi:22698
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} list snapshots"
 msgstr "{paramètre de @code{cgit-configuration}} list snapshots"
 
 #. type: deftypevr
-#: doc/guix.texi:20936
+#: doc/guix.texi:22701
 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:20941
+#: doc/guix.texi:22706
 #, 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:20944
+#: doc/guix.texi:22709
 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:20946
+#: doc/guix.texi:22711
 msgid "Defaults to @samp{\"/srv/git\"}."
 msgstr "La valeur par défaut est @samp{\"/srv/git\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:20949
+#: doc/guix.texi:22714
 #, no-wrap
 msgid "{@code{cgit-configuration} parameter} string section"
 msgstr "{paramètre de @code{cgit-configuration}} string section"
 
 #. type: deftypevr
-#: doc/guix.texi:20952 doc/guix.texi:21268
+#: doc/guix.texi:22717 doc/guix.texi:23033
 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:20957
+#: doc/guix.texi:22722
 #, 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:20960
+#: doc/guix.texi:22725
 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:20965
+#: doc/guix.texi:22730
 #, 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:20968
+#: doc/guix.texi:22733
 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:20973
+#: doc/guix.texi:22738
 #, 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:20976
+#: doc/guix.texi:22741
 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:20981
+#: doc/guix.texi:22746
 #, 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:20984
+#: doc/guix.texi:22749
 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:20989
+#: doc/guix.texi:22754
 #, 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:20992
+#: doc/guix.texi:22757
 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."
 
 #. type: deftypevr
-#: doc/guix.texi:20997
+#: doc/guix.texi:22762
 #, 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:21000
+#: doc/guix.texi:22765
 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:21005
+#: doc/guix.texi:22770
 #, 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:21008
+#: doc/guix.texi:22773
 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:21013
+#: doc/guix.texi:22778
 #, 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:21016
+#: doc/guix.texi:22781
 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:21021
+#: doc/guix.texi:22786
 #, 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:21023
+#: doc/guix.texi:22788
 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:21025
+#: doc/guix.texi:22790
 msgid "Defaults to @samp{\"/\"}."
 msgstr "La valeur par défaut est @samp{\"/\"}."
 
 #. type: deftypevr
-#: doc/guix.texi:21028
+#: doc/guix.texi:22793
 #, 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:21030
+#: doc/guix.texi:22795
 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:21034
+#: doc/guix.texi:22799
 msgid "Available @code{repository-cgit-configuration} fields are:"
 msgstr "Les champs de @code{repository-cgit-configuration} disponibles sont :"
 
 #. type: deftypevr
-#: doc/guix.texi:21035
+#: doc/guix.texi:22800
 #, 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:21038
+#: doc/guix.texi:22803
 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:21043
+#: doc/guix.texi:22808
 #, 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:21045
+#: doc/guix.texi:22810
 msgid "Override the default @code{source-filter}."
 msgstr "Modifie le @code{source-filter} par défaut."
 
 #. type: deftypevr
-#: doc/guix.texi:21050
+#: doc/guix.texi:22815
 #, 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:21052
+#: doc/guix.texi:22817
 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:21057
+#: doc/guix.texi:22822
 #, 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:21059
+#: doc/guix.texi:22824
 msgid "Override the default @code{about-filter}."
 msgstr "Modifie le paramètre @code{about-filter} par défaut."
 
 #. type: deftypevr
-#: doc/guix.texi:21064
+#: doc/guix.texi:22829
 #, 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:21067
+#: doc/guix.texi:22832
 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:21072
+#: doc/guix.texi:22837
 #, 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:21074
+#: doc/guix.texi:22839
 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:21079
+#: doc/guix.texi:22844
 #, 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:21081
+#: doc/guix.texi:22846
 msgid "Override the default @code{commit-filter}."
 msgstr "Modifie le paramètre @code{commit-filter} par défaut."
 
 #. type: deftypevr
-#: doc/guix.texi:21086
+#: doc/guix.texi:22851
 #, 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:21095
+#: doc/guix.texi:22860
 #, 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:21100
+#: doc/guix.texi:22865
 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:21105
+#: doc/guix.texi:22870
 #, 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:21107
+#: doc/guix.texi:22872
 msgid "The value to show as repository description."
 msgstr "La valeur à afficher comme description du dépôt."
 
 #. type: deftypevr
-#: doc/guix.texi:21112
+#: doc/guix.texi:22877
 #, 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:21114
+#: doc/guix.texi:22879
 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:21119
+#: doc/guix.texi:22884
 #, 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:21121
+#: doc/guix.texi:22886
 msgid "Override the default @code{email-filter}."
 msgstr "Modifie le paramètre @code{email-filter} par défaut."
 
 #. type: deftypevr
-#: doc/guix.texi:21126
+#: doc/guix.texi:22891
 #, 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:21129
+#: doc/guix.texi:22894
 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:21134
+#: doc/guix.texi:22899
 #, 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:21137
+#: doc/guix.texi:22902
 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:21142
+#: doc/guix.texi:22907
 #, 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:21145
+#: doc/guix.texi:22910
 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:21150
+#: doc/guix.texi:22915
 #, 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:21158
+#: doc/guix.texi:22923
 #, 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:21161
+#: doc/guix.texi:22926
 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:21166
+#: doc/guix.texi:22931
 #, 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:21169
+#: doc/guix.texi:22934
 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:21174
+#: doc/guix.texi:22939
 #, 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:21177
+#: doc/guix.texi:22942
 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:21182
+#: doc/guix.texi:22947
 #, 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:21184
+#: doc/guix.texi:22949
 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:21189
+#: doc/guix.texi:22954
 #, 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:21192
+#: doc/guix.texi:22957
 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:21197
+#: doc/guix.texi:22962
 #, 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:21204
+#: doc/guix.texi:22969
 #, 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:21206
+#: doc/guix.texi:22971
 msgid "Override the default @code{owner-filter}."
 msgstr "Modifie le paramètre @code{owner-filter} par défaut."
 
 #. type: deftypevr
-#: doc/guix.texi:21211
+#: doc/guix.texi:22976
 #, 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:21215
+#: doc/guix.texi:22980
 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:21220
+#: doc/guix.texi:22985
 #, 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:21224
+#: doc/guix.texi:22989
 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:21229
+#: doc/guix.texi:22994
 #, 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:21231
+#: doc/guix.texi:22996
 msgid "Override the default maximum statistics period."
 msgstr "Modifie la période de statistique maximale par défaut."
 
 #. type: deftypevr
-#: doc/guix.texi:21236
+#: doc/guix.texi:23001
 #, 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:21238
+#: doc/guix.texi:23003
 msgid "The value to show as repository name."
 msgstr "La valeur à afficher comme nom de dépôt."
 
 #. type: deftypevr
-#: doc/guix.texi:21243
+#: doc/guix.texi:23008
 #, 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:21245
+#: doc/guix.texi:23010
 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:21250
+#: doc/guix.texi:23015
 #, 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:21252
+#: doc/guix.texi:23017
 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:21257
+#: doc/guix.texi:23022
 #, 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:21260
+#: doc/guix.texi:23025
 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:21265
+#: doc/guix.texi:23030
 #, 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:21273
+#: doc/guix.texi:23038
 #, 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:21275 doc/guix.texi:21284
+#: doc/guix.texi:23040 doc/guix.texi:23049
 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:21282
+#: doc/guix.texi:23047
 #, 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:21296
+#: doc/guix.texi:23061
 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:21298
+#: doc/guix.texi:23063
 msgid "Available @code{opaque-cgit-configuration} fields are:"
 msgstr "Les champs de @code{opaque-cgit-configuration} disponibles sont :"
 
 #. type: deftypevr
-#: doc/guix.texi:21299
+#: doc/guix.texi:23064
 #, 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:21301
+#: doc/guix.texi:23066
 msgid "The cgit package."
 msgstr "Le paquet cgit."
 
 #. type: deftypevr
-#: doc/guix.texi:21303
+#: doc/guix.texi:23068
 #, 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:21305
+#: doc/guix.texi:23070
 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:21309
+#: doc/guix.texi:23074
 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:21314
+#: doc/guix.texi:23079
 #, no-wrap
 msgid ""
 "(service cgit-service-type\n"
@@ -39152,40 +42733,40 @@ msgstr ""
 "          (cgitrc \"\")))\n"
 
 #. type: subsubheading
-#: doc/guix.texi:21316
+#: doc/guix.texi:23081
 #, no-wrap
 msgid "Gitolite Service"
 msgstr "Service Gitolite"
 
 #. type: cindex
-#: doc/guix.texi:21318
+#: doc/guix.texi:23083
 #, no-wrap
 msgid "Gitolite service"
 msgstr "service Gitolite"
 
 #. type: cindex
-#: doc/guix.texi:21319
+#: doc/guix.texi:23084
 #, no-wrap
 msgid "Git, hosting"
 msgstr "Git, hébergement"
 
 #. type: Plain text
-#: doc/guix.texi:21322
+#: doc/guix.texi:23087
 msgid "@uref{http://gitolite.com/gitolite/, Gitolite} is a tool for hosting Git repositories on a central server."
 msgstr "@uref{http://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:21325
+#: doc/guix.texi:23090
 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:21328
+#: doc/guix.texi:23093
 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:21335
+#: doc/guix.texi:23100
 #, no-wrap
 msgid ""
 "(service gitolite-service-type\n"
@@ -39201,300 +42782,300 @@ msgstr ""
 "                           \"ssh-rsa AAAA... guix@@example.com\"))))\n"
 
 #. type: Plain text
-#: doc/guix.texi:21340
+#: doc/guix.texi:23105
 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 :"
+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:21343
+#: doc/guix.texi:23108
 #, 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:21349
+#: doc/guix.texi:23114
 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:21350
+#: doc/guix.texi:23115
 #, no-wrap
 msgid "{Data Type} gitolite-configuration"
 msgstr "{Type de données} gitolite-configuration"
 
 #. type: deftp
-#: doc/guix.texi:21352
+#: doc/guix.texi:23117
 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:21354
+#: doc/guix.texi:23119
 #, no-wrap
 msgid "@code{package} (default: @var{gitolite})"
 msgstr "@code{package} (par défaut : @var{gitolite})"
 
 #. type: table
-#: doc/guix.texi:21356
+#: doc/guix.texi:23121
 msgid "Gitolite package to use."
 msgstr "Le paquet Gitolite à utiliser."
 
 #. type: item
-#: doc/guix.texi:21357
+#: doc/guix.texi:23122
 #, no-wrap
 msgid "@code{user} (default: @var{git})"
 msgstr "@code{user} (par défaut : @var{git})"
 
 #. type: table
-#: doc/guix.texi:21360
+#: doc/guix.texi:23125
 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:21361
+#: doc/guix.texi:23126
 #, no-wrap
 msgid "@code{group} (default: @var{git})"
 msgstr "@code{group} (par défaut : @var{git})"
 
 #. type: table
-#: doc/guix.texi:21363
+#: doc/guix.texi:23128
 msgid "Group to use for Gitolite."
 msgstr "Groupe à utiliser pour Gitolite."
 
 #. type: item
-#: doc/guix.texi:21364
+#: doc/guix.texi:23129
 #, 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:21366
+#: doc/guix.texi:23131
 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:21367
+#: doc/guix.texi:23132
 #, 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:21370
+#: doc/guix.texi:23135
 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:21371
+#: doc/guix.texi:23136
 #, no-wrap
 msgid "@code{admin-pubkey} (default: @var{#f})"
 msgstr "@code{admin-pubkey} (par défaut : @var{#f})"
 
 #. type: table
-#: doc/guix.texi:21375
+#: doc/guix.texi:23140
 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:21377
+#: doc/guix.texi:23142
 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:21380
+#: doc/guix.texi:23145
 #, 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:21385
+#: doc/guix.texi:23150
 #, no-wrap
 msgid "{Data Type} gitolite-rc-file"
 msgstr "{Type de données} gitolite-rc-file"
 
 #. type: deftp
-#: doc/guix.texi:21387
+#: doc/guix.texi:23152
 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:21389
+#: doc/guix.texi:23154
 #, no-wrap
 msgid "@code{umask} (default: @code{#o0077})"
 msgstr "@code{umask} (par défaut : @code{#o0077})"
 
 #. type: table
-#: doc/guix.texi:21392
+#: doc/guix.texi:23157
 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:21396
+#: doc/guix.texi:23161
 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:21397
+#: doc/guix.texi:23162
 #, no-wrap
 msgid "@code{git-config-keys} (default: @code{\"\"})"
 msgstr "@code{git-config-keys} (par défaut : @code{\"\"})"
 
 #. type: table
-#: doc/guix.texi:21400
+#: doc/guix.texi:23165
 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."
 
 #. type: item
-#: doc/guix.texi:21401
+#: doc/guix.texi:23166
 #, 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:21403
+#: doc/guix.texi:23168
 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:21404
+#: doc/guix.texi:23169
 #, 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:21406
+#: doc/guix.texi:23171
 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:21414
+#: doc/guix.texi:23179
 #, no-wrap
 msgid "The Battle for Wesnoth Service"
 msgstr "Le service de la Bataille pour Wesnoth"
 
 #. type: cindex
-#: doc/guix.texi:21415
+#: doc/guix.texi:23180
 #, no-wrap
 msgid "wesnothd"
 msgstr "wesnothd"
 
 #. type: Plain text
-#: doc/guix.texi:21419
+#: doc/guix.texi:23184
 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:21420
+#: doc/guix.texi:23185
 #, no-wrap
 msgid "{Scheme Variable} wesnothd-service-type"
 msgstr "{Variable Scheme} wesnothd-service-type"
 
 #. type: defvar
-#: doc/guix.texi:21424
+#: doc/guix.texi:23189
 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:21427
+#: doc/guix.texi:23192
 #, no-wrap
 msgid "(service wesnothd-service-type)\n"
 msgstr "(service wesnothd-service-type)\n"
 
 #. type: deftp
-#: doc/guix.texi:21430
+#: doc/guix.texi:23195
 #, no-wrap
 msgid "{Data Type} wesnothd-configuration"
 msgstr "{Type de données} wesnothd-configuration"
 
 #. type: deftp
-#: doc/guix.texi:21432
+#: doc/guix.texi:23197
 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:21434
+#: doc/guix.texi:23199
 #, no-wrap
 msgid "@code{package} (default: @code{wesnoth-server})"
 msgstr "@code{package} (par défaut : @code{wesnoth-server})"
 
 #. type: table
-#: doc/guix.texi:21436
+#: doc/guix.texi:23201
 msgid "The wesnoth server package to use."
 msgstr "Le paquet de serveur de wesnoth à utiliser."
 
 #. type: item
-#: doc/guix.texi:21437
+#: doc/guix.texi:23202
 #, no-wrap
 msgid "@code{port} (default: @code{15000})"
 msgstr "@code{port} (par défaut : @code{15000})"
 
 #. type: table
-#: doc/guix.texi:21439
+#: doc/guix.texi:23204
 msgid "The port to bind the server to."
 msgstr "Le pour sur lequel lier le serveur."
 
 #. type: cindex
-#: doc/guix.texi:21445
+#: doc/guix.texi:23210
 #, no-wrap
 msgid "fingerprint"
 msgstr "empreinte digitale"
 
 #. type: subsubheading
-#: doc/guix.texi:21446
+#: doc/guix.texi:23211
 #, no-wrap
 msgid "Fingerprint Service"
 msgstr "Service d'empreintes digitales"
 
 #. type: Plain text
-#: doc/guix.texi:21450
-msgid "The @code{(gnu services fingerprint)} module provides a DBus service to read and identify fingerprints via a fingerprint sensor."
-msgstr "Le module @code{(gnu services fingerprint)} fournit un service DBus pour lire et identifier les empreintes digitales via un lecteur d'empreinte."
+#: doc/guix.texi:23215
+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:21451
+#: doc/guix.texi:23216
 #, no-wrap
 msgid "{Scheme Variable} fprintd-service-type"
 msgstr "{Variable Scheme} fprintd-service-type"
 
 #. type: defvr
-#: doc/guix.texi:21454
+#: doc/guix.texi:23219
 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:21457
+#: doc/guix.texi:23222
 #, no-wrap
 msgid "(service fprintd-service-type)\n"
 msgstr "(service fprintd-service-type)\n"
 
 #. type: cindex
-#: doc/guix.texi:21460
+#: doc/guix.texi:23225
 #, no-wrap
 msgid "sysctl"
 msgstr "sysctl"
 
 #. type: subsubheading
-#: doc/guix.texi:21461
+#: doc/guix.texi:23226
 #, no-wrap
 msgid "System Control Service"
 msgstr "Service de contrôle du système"
 
 #. type: Plain text
-#: doc/guix.texi:21465
+#: doc/guix.texi:23230
 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:21466
+#: doc/guix.texi:23231
 #, no-wrap
 msgid "{Scheme Variable} sysctl-service-type"
 msgstr "{Variable Scheme} sysctl-service-type"
 
 #. type: defvr
-#: doc/guix.texi:21470
+#: doc/guix.texi:23235
 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:21475
+#: doc/guix.texi:23240
 #, no-wrap
 msgid ""
 "(service sysctl-service-type\n"
@@ -39506,130 +43087,130 @@ msgstr ""
 "           (settings '((\"net.ipv4.ip_forward\" . \"1\")))))\n"
 
 #. type: deftp
-#: doc/guix.texi:21478
+#: doc/guix.texi:23243
 #, no-wrap
 msgid "{Data Type} sysctl-configuration"
 msgstr "{Type de données} sysctl-configuration"
 
 #. type: deftp
-#: doc/guix.texi:21480
+#: doc/guix.texi:23245
 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:21482
+#: doc/guix.texi:23247
 #, 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:21484
+#: doc/guix.texi:23249
 msgid "The @command{sysctl} executable to use."
 msgstr "L'exécutable @command{sysctl} à utiliser."
 
 #. type: item
-#: doc/guix.texi:21485
+#: doc/guix.texi:23250
 #, no-wrap
 msgid "@code{settings} (default: @code{'()})"
 msgstr "@code{settings} (par défaut : @code{'()})"
 
 #. type: table
-#: doc/guix.texi:21487
+#: doc/guix.texi:23252
 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:21490
+#: doc/guix.texi:23255
 #, no-wrap
 msgid "pcscd"
 msgstr "pcscd"
 
 #. type: subsubheading
-#: doc/guix.texi:21491
+#: doc/guix.texi:23256
 #, no-wrap
 msgid "PC/SC Smart Card Daemon Service"
 msgstr "Service du démon PC/SC Smart Card"
 
 #. type: Plain text
-#: doc/guix.texi:21498
+#: doc/guix.texi:23263
 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:21499
+#: doc/guix.texi:23264
 #, no-wrap
 msgid "{Scheme Variable} pcscd-service-type"
 msgstr "{Variable Scheme} pcscd-service-type"
 
 #. type: defvr
-#: doc/guix.texi:21503
+#: doc/guix.texi:23268
 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:21506
+#: doc/guix.texi:23271
 #, no-wrap
 msgid "(service pcscd-service-type)\n"
 msgstr "(service pcscd-service-type)\n"
 
 #. type: deftp
-#: doc/guix.texi:21509
+#: doc/guix.texi:23274
 #, no-wrap
 msgid "{Data Type} pcscd-configuration"
 msgstr "{Type de données} pcscd-configuration"
 
 #. type: deftp
-#: doc/guix.texi:21511
+#: doc/guix.texi:23276
 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:21513
+#: doc/guix.texi:23278
 #, 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:21515
+#: doc/guix.texi:23280
 msgid "The pcsc-lite package that provides pcscd."
 msgstr "Le paquet pcsc-lite qui fournit pcscd."
 
 #. type: item
-#: doc/guix.texi:21515
+#: doc/guix.texi:23280
 #, 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:21518
+#: doc/guix.texi:23283
 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:21521
+#: doc/guix.texi:23286
 #, no-wrap
 msgid "lirc"
 msgstr "lirc"
 
 #. type: subsubheading
-#: doc/guix.texi:21522
+#: doc/guix.texi:23287
 #, no-wrap
 msgid "Lirc Service"
 msgstr "Service Lirc"
 
 #. type: Plain text
-#: doc/guix.texi:21525
+#: doc/guix.texi:23290
 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:21526
+#: doc/guix.texi:23291
 #, no-wrap
 msgid "{Scheme Procedure} lirc-service [#:lirc lirc] @"
 msgstr "{Procédure Scheme} lirc-service [#:lirc lirc] @"
 
 #. type: deffn
-#: doc/guix.texi:21531
+#: doc/guix.texi:23296
 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"
@@ -39637,235 +43218,314 @@ 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:21535
+#: doc/guix.texi:23300
 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:21538
+#: doc/guix.texi:23303
 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:21540
+#: doc/guix.texi:23305
 #, no-wrap
 msgid "spice"
 msgstr "spice"
 
 #. type: subsubheading
-#: doc/guix.texi:21541
+#: doc/guix.texi:23306
 #, no-wrap
 msgid "Spice Service"
 msgstr "Service Spice"
 
 #. type: Plain text
-#: doc/guix.texi:21544
+#: doc/guix.texi:23309
 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:21545
+#: doc/guix.texi:23310
 #, no-wrap
 msgid "{Scheme Procedure} spice-vdagent-service [#:spice-vdagent]"
 msgstr "{Procédure Scheme} spice-vdagent-service [#:spice-vdagent]"
 
 #. type: deffn
-#: doc/guix.texi:21549
+#: doc/guix.texi:23314
 msgid "Returns a service that runs @url{http://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{http://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: subsubsection
-#: doc/guix.texi:21551
+#. type: cindex
+#: doc/guix.texi:23316
+#, no-wrap
+msgid "inputattach"
+msgstr "inputattach"
+
+#. type: subsubheading
+#: doc/guix.texi:23317
+#, no-wrap
+msgid "inputattach Service"
+msgstr "Service inputattach"
+
+#. type: cindex
+#: doc/guix.texi:23319
+#, no-wrap
+msgid "tablet input, for Xorg"
+msgstr "entrée tablette, pour Xorg"
+
+#. type: cindex
+#: doc/guix.texi:23320
+#, no-wrap
+msgid "touchscreen input, for Xorg"
+msgstr "écran tactile, pour Xorg"
+
+#. type: Plain text
+#: doc/guix.texi:23324
+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:23325
+#, no-wrap
+msgid "{Scheme Variable} inputattach-service-type"
+msgstr "{Variable Scheme} inputattach-service-type"
+
+#. type: deffn
+#: doc/guix.texi:23328
+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:23330
+#, no-wrap
+msgid "{Data Type} inputattach-configuration"
+msgstr "{Type de données} inputattach-configuration"
+
+#. type: item
+#: doc/guix.texi:23332
+#, no-wrap
+msgid "@code{device-type} (default: @code{\"wacom\"})"
+msgstr "@code{device-type} (par défaut : @code{\"wacom\"})"
+
+#. type: table
+#: doc/guix.texi:23335
+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:23336
+#, no-wrap
+msgid "@code{device} (default: @code{\"/dev/ttyS0\"})"
+msgstr "@code{device} (par défaut : @code{\"/dev/ttyS0\"})"
+
+#. type: table
+#: doc/guix.texi:23338
+msgid "The device file to connect to the device."
+msgstr "Le fichier de périphérique pour s'y connecter."
+
+#. type: item
+#: doc/guix.texi:23339
+#, no-wrap
+msgid "@code{log-file} (default: @code{#f})"
+msgstr "@code{log-file} (par défaut : @code{#f})"
+
+#. type: table
+#: doc/guix.texi:23341
+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:23344
 #, no-wrap
 msgid "Dictionary Services"
 msgstr "Services de dictionnaires"
 
 #. type: cindex
-#: doc/guix.texi:21552
+#: doc/guix.texi:23345
 #, no-wrap
 msgid "dictionary"
 msgstr "dictionnaire"
 
 #. type: Plain text
-#: doc/guix.texi:21554
+#: doc/guix.texi:23347
 msgid "The @code{(gnu services dict)} module provides the following service:"
 msgstr "Le module @code{(gnu services dict)} fournit le service suivant :"
 
 #. type: deffn
-#: doc/guix.texi:21555
+#: doc/guix.texi:23348
 #, no-wrap
 msgid "{Scheme Procedure} dicod-service [#:config (dicod-configuration)]"
 msgstr "{Procédure Scheme} dicod-service [#:config (dicod-configuration)]"
 
 #. type: deffn
-#: doc/guix.texi:21558
+#: doc/guix.texi:23351
 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:21562
+#: doc/guix.texi:23355
 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."
 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:21566
+#: doc/guix.texi:23359
 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:21568
+#: doc/guix.texi:23361
 #, no-wrap
 msgid "{Data Type} dicod-configuration"
 msgstr "{Type de données} dicod-configuration"
 
 #. type: deftp
-#: doc/guix.texi:21570
+#: doc/guix.texi:23363
 msgid "Data type representing the configuration of dicod."
 msgstr "Type de données représentant la configuration de dicod."
 
 #. type: item
-#: doc/guix.texi:21572
+#: doc/guix.texi:23365
 #, no-wrap
 msgid "@code{dico} (default: @var{dico})"
 msgstr "@code{dico} (par défaut : @var{dico})"
 
 #. type: table
-#: doc/guix.texi:21574
+#: doc/guix.texi:23367
 msgid "Package object of the GNU Dico dictionary server."
 msgstr "Objet de paquet du serveur de dictionnaire GNU Dico."
 
 #. type: item
-#: doc/guix.texi:21575
+#: doc/guix.texi:23368
 #, no-wrap
 msgid "@code{interfaces} (default: @var{'(\"localhost\")})"
 msgstr "@code{interfaces} (par défaut : @var{'(\"localhost\")})"
 
 #. type: table
-#: doc/guix.texi:21579
+#: doc/guix.texi:23372
 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:21580
+#: doc/guix.texi:23373
 #, no-wrap
 msgid "@code{handlers} (default: @var{'()})"
 msgstr "@code{handlers} (par défaut : @var{'()})"
 
 #. type: table
-#: doc/guix.texi:21582
+#: doc/guix.texi:23375
 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:21583
+#: doc/guix.texi:23376
 #, 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:21585
+#: doc/guix.texi:23378
 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:21588
+#: doc/guix.texi:23381
 #, no-wrap
 msgid "{Data Type} dicod-handler"
 msgstr "{Type de données} dicod-handler"
 
 #. type: deftp
-#: doc/guix.texi:21590
+#: doc/guix.texi:23383
 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:21594
+#: doc/guix.texi:23387
 msgid "Name of the handler (module instance)."
 msgstr "Nom du gestionnaire (instance de module)."
 
 #. type: item
-#: doc/guix.texi:21595
+#: doc/guix.texi:23388
 #, no-wrap
 msgid "@code{module} (default: @var{#f})"
 msgstr "@code{module} (par défaut : @var{#f})"
 
 #. type: table
-#: doc/guix.texi:21599
+#: doc/guix.texi:23392
 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:21600 doc/guix.texi:21620
+#: doc/guix.texi:23393 doc/guix.texi:23413
 #, no-wrap
 msgid "options"
 msgstr "options"
 
 #. type: table
-#: doc/guix.texi:21602
+#: doc/guix.texi:23395
 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."
+msgstr "Liste de chaînes ou de gexps représentant les arguments pour le gestionnaire de module"
 
 #. type: deftp
-#: doc/guix.texi:21605
+#: doc/guix.texi:23398
 #, no-wrap
 msgid "{Data Type} dicod-database"
 msgstr "{Type de données} dicod-database"
 
 #. type: deftp
-#: doc/guix.texi:21607
+#: doc/guix.texi:23400
 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:21611
+#: doc/guix.texi:23404
 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:21612
+#: doc/guix.texi:23405
 #, no-wrap
 msgid "handler"
 msgstr "handler"
 
 #. type: table
-#: doc/guix.texi:21615
+#: doc/guix.texi:23408
 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:21616
+#: doc/guix.texi:23409
 #, no-wrap
 msgid "@code{complex?} (default: @var{#f})"
 msgstr "@code{complex?} (par défaut : @var{#f})"
 
 #. type: table
-#: doc/guix.texi:21619
+#: doc/guix.texi:23412
 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:21623
+#: doc/guix.texi:23416
 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:21626
+#: doc/guix.texi:23419
 #, no-wrap
 msgid "{Scheme Variable} %dicod-database:gcide"
 msgstr "{Variable Scheme} %dicod-database:gcide"
 
 #. type: defvr
-#: doc/guix.texi:21629
+#: doc/guix.texi:23422
 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:21632
+#: doc/guix.texi:23425
 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:21647
+#: doc/guix.texi:23440
 #, no-wrap
 msgid ""
 "(dicod-service #:config\n"
@@ -39897,108 +43557,169 @@ msgstr ""
 "                    %dicod-database:gcide))))\n"
 
 #. type: cindex
-#: doc/guix.texi:21652
+#: doc/guix.texi:23442
+#, no-wrap
+msgid "Docker"
+msgstr "Docker"
+
+#. type: subsubheading
+#: doc/guix.texi:23443
+#, no-wrap
+msgid "Docker Service"
+msgstr "Service Docker"
+
+#. type: Plain text
+#: doc/guix.texi:23446
+msgid "The @code{(gnu services docker)} module provides the following service."
+msgstr "Le module @code{(gnu services docker)} fournit le service suivant."
+
+#. type: defvr
+#: doc/guix.texi:23447
+#, no-wrap
+msgid "{Scheme Variable} docker-service-type"
+msgstr "{Variable Scheme} docker-service-type"
+
+#. type: defvr
+#: doc/guix.texi:23452
+msgid "This is the type of the service that runs @url{http://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{http://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:23455
+#, no-wrap
+msgid "{Data Type} docker-configuration"
+msgstr "{Type de données} docker-configuration"
+
+#. type: deftp
+#: doc/guix.texi:23457
+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:23460
+#, no-wrap
+msgid "@code{package} (default: @code{docker})"
+msgstr "@code{package} (par défaut : @code{docker})"
+
+#. type: table
+#: doc/guix.texi:23462
+msgid "The Docker package to use."
+msgstr "Le paquet Docker à utiliser."
+
+#. type: item
+#: doc/guix.texi:23463
+#, no-wrap
+msgid "@code{containerd} (default: @var{containerd})"
+msgstr "@code{containerd} (par défaut : @var{containerd})"
+
+#. type: table
+#: doc/guix.texi:23465
+msgid "The Containerd package to use."
+msgstr "Le paquet Containerd à utiliser."
+
+#. type: cindex
+#: doc/guix.texi:23472
 #, no-wrap
 msgid "setuid programs"
 msgstr "programmes setuid"
 
 #. type: Plain text
-#: doc/guix.texi:21662
+#: doc/guix.texi:23482
 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:21669
+#: doc/guix.texi:23489
 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:21675
+#: doc/guix.texi:23495
 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:21678
+#: doc/guix.texi:23498
 #, no-wrap
 msgid "#~(string-append #$shadow \"/bin/passwd\")\n"
 msgstr "#~(string-append #$shadow \"/bin/passwd\")\n"
 
 #. type: Plain text
-#: doc/guix.texi:21682
+#: doc/guix.texi:23502
 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:21683
+#: doc/guix.texi:23503
 #, no-wrap
 msgid "{Scheme Variable} %setuid-programs"
 msgstr "{Variable Scheme} %setuid-programs"
 
 #. type: defvr
-#: doc/guix.texi:21685
+#: doc/guix.texi:23505
 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:21688
+#: doc/guix.texi:23508
 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:21694
+#: doc/guix.texi:23514
 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:21698
+#: doc/guix.texi:23518
 #, no-wrap
 msgid "HTTPS, certificates"
 msgstr "HTTPS, certificats"
 
 #. type: cindex
-#: doc/guix.texi:21699
+#: doc/guix.texi:23519
 #, no-wrap
 msgid "X.509 certificates"
 msgstr "certificats X.509"
 
 #. type: cindex
-#: doc/guix.texi:21700
+#: doc/guix.texi:23520
 #, no-wrap
 msgid "TLS"
 msgstr "TLS"
 
 #. type: Plain text
-#: doc/guix.texi:21707
+#: doc/guix.texi:23527
 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:21711
+#: doc/guix.texi:23531
 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:21715
+#: doc/guix.texi:23535
 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:21722
-msgid "In GuixSD, 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}).  GuixSD 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 GuixSD, 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}).  GuixSD 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)."
+#: doc/guix.texi:23542
+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:21727
+#: doc/guix.texi:23547
 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."
 
 #. type: Plain text
-#: doc/guix.texi:21737
+#: doc/guix.texi:23557
 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 :"
 
 #. type: example
-#: doc/guix.texi:21743
+#: doc/guix.texi:23563
 #, no-wrap
 msgid ""
 "$ guix package -i nss-certs\n"
@@ -40012,12 +43733,12 @@ msgstr ""
 "$ export GIT_SSL_CAINFO=\"$SSL_CERT_FILE\"\n"
 
 #. type: Plain text
-#: doc/guix.texi:21748
+#: doc/guix.texi:23568
 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 :"
 
 #. type: example
-#: doc/guix.texi:21752
+#: doc/guix.texi:23572
 #, no-wrap
 msgid ""
 "$ guix package -i nss-certs\n"
@@ -40027,51 +43748,51 @@ msgstr ""
 "$ export CURL_CA_BUNDLE=\"$HOME/.guix-profile/etc/ssl/certs/ca-certificates.crt\"\n"
 
 #. type: Plain text
-#: doc/guix.texi:21756
+#: doc/guix.texi:23576
 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:21761
+#: doc/guix.texi:23581
 #, no-wrap
 msgid "name service switch"
 msgstr "name service switch"
 
 #. type: cindex
-#: doc/guix.texi:21762
+#: doc/guix.texi:23582
 #, no-wrap
 msgid "NSS"
 msgstr "NSS"
 
 #. type: Plain text
-#: doc/guix.texi:21771
+#: doc/guix.texi:23591
 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:21778
+#: doc/guix.texi:23598
 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:21779
+#: doc/guix.texi:23599
 #, no-wrap
 msgid "nss-mdns"
 msgstr "nss-mdns"
 
 #. type: cindex
-#: doc/guix.texi:21780
+#: doc/guix.texi:23600
 #, no-wrap
 msgid ".local, host name lookup"
 msgstr ".local, résolution de nom d'hôte"
 
 #. type: Plain text
-#: doc/guix.texi:21785
+#: doc/guix.texi:23605
 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} :"
 
 #. type: example
-#: doc/guix.texi:21789
+#: doc/guix.texi:23609
 #, no-wrap
 msgid ""
 "(name-service-switch\n"
@@ -40083,7 +43804,7 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix.texi:21794
+#: doc/guix.texi:23614
 #, no-wrap
 msgid ""
 "                ;; If the above did not succeed, try\n"
@@ -40099,7 +43820,7 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix.texi:21800
+#: doc/guix.texi:23620
 #, no-wrap
 msgid ""
 "                  ;; 'mdns_minimal' is authoritative for\n"
@@ -40117,7 +43838,7 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix.texi:21804
+#: doc/guix.texi:23624
 #, no-wrap
 msgid ""
 "                ;; Then fall back to DNS.\n"
@@ -40131,7 +43852,7 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix.texi:21808
+#: doc/guix.texi:23628
 #, no-wrap
 msgid ""
 "                ;; Finally, try with the \"full\" 'mdns'.\n"
@@ -40143,157 +43864,157 @@ msgstr ""
 "                  (name \"mdns\")))))\n"
 
 #. type: Plain text
-#: doc/guix.texi:21813
+#: doc/guix.texi:23633
 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:21821
-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} (@pxref{Networking Services, @code{avahi-service}}), 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} (@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:23641
+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}})."
 
 #. type: Plain text
-#: doc/guix.texi:21824
+#: doc/guix.texi:23644
 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:21825
+#: doc/guix.texi:23645
 #, no-wrap
 msgid "{Scheme Variable} %default-nss"
 msgstr "{Variable Scheme} %default-nss"
 
 #. type: defvr
-#: doc/guix.texi:21828
+#: doc/guix.texi:23648
 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:21830
+#: doc/guix.texi:23650
 #, no-wrap
 msgid "{Scheme Variable} %mdns-host-lookup-nss"
 msgstr "{Variable Scheme} %mdns-host-lookup-nss"
 
 #. type: defvr
-#: doc/guix.texi:21833
+#: doc/guix.texi:23653
 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:21843
+#: doc/guix.texi:23663
 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:21844
+#: doc/guix.texi:23664
 #, no-wrap
 msgid "{Data Type} name-service-switch"
 msgstr "{Type de données} name-service-switch"
 
 #. type: deftp
-#: doc/guix.texi:21849
+#: doc/guix.texi:23669
 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:21851
+#: doc/guix.texi:23671
 #, no-wrap
 msgid "aliases"
 msgstr "aliases"
 
 #. type: itemx
-#: doc/guix.texi:21852
+#: doc/guix.texi:23672
 #, no-wrap
 msgid "ethers"
 msgstr "ethers"
 
 #. type: itemx
-#: doc/guix.texi:21854
+#: doc/guix.texi:23674
 #, no-wrap
 msgid "gshadow"
 msgstr "gshadow"
 
 #. type: itemx
-#: doc/guix.texi:21855
+#: doc/guix.texi:23675
 #, no-wrap
 msgid "hosts"
 msgstr "hosts"
 
 #. type: itemx
-#: doc/guix.texi:21856
+#: doc/guix.texi:23676
 #, no-wrap
 msgid "initgroups"
 msgstr "initgroups"
 
 #. type: itemx
-#: doc/guix.texi:21857
+#: doc/guix.texi:23677
 #, no-wrap
 msgid "netgroup"
 msgstr "netgroup"
 
 #. type: itemx
-#: doc/guix.texi:21858
+#: doc/guix.texi:23678
 #, no-wrap
 msgid "networks"
 msgstr "networks"
 
 #. type: itemx
-#: doc/guix.texi:21860
+#: doc/guix.texi:23680
 #, no-wrap
 msgid "public-key"
 msgstr "public-key"
 
 #. type: itemx
-#: doc/guix.texi:21861
+#: doc/guix.texi:23681
 #, no-wrap
 msgid "rpc"
 msgstr "rpc"
 
 #. type: itemx
-#: doc/guix.texi:21863
+#: doc/guix.texi:23683
 #, no-wrap
 msgid "shadow"
 msgstr "shadow"
 
 #. type: table
-#: doc/guix.texi:21866
+#: doc/guix.texi:23686
 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:21869
+#: doc/guix.texi:23689
 #, no-wrap
 msgid "{Data Type} name-service"
 msgstr "{Type de données} name-service"
 
 #. type: deftp
-#: doc/guix.texi:21873
+#: doc/guix.texi:23693
 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:21878
+#: doc/guix.texi:23698
 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:21883
+#: doc/guix.texi:23703
 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:21884
+#: doc/guix.texi:23704
 #, no-wrap
 msgid "reaction"
 msgstr "reaction"
 
 #. type: table
-#: doc/guix.texi:21888
+#: doc/guix.texi:23708
 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:21892
+#: doc/guix.texi:23712
 #, no-wrap
 msgid ""
 "(lookup-specification (unavailable => continue)\n"
@@ -40303,17 +44024,17 @@ msgstr ""
 "                      (success => return))\n"
 
 #. type: Plain text
-#: doc/guix.texi:21906
+#: doc/guix.texi:23726
 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:21915
+#: doc/guix.texi:23735
 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:21920
+#: doc/guix.texi:23740
 #, no-wrap
 msgid ""
 "(operating-system\n"
@@ -40325,28 +44046,28 @@ msgstr ""
 "  (initrd-modules (cons \"megaraid_sas\" %base-initrd-modules)))\n"
 
 #. type: defvr
-#: doc/guix.texi:21922
+#: doc/guix.texi:23742
 #, no-wrap
 msgid "{Scheme Variable} %base-initrd-modules"
 msgstr "{Variable Scheme} %base-initrd-modules"
 
 #. type: defvr
-#: doc/guix.texi:21924
+#: doc/guix.texi:23744
 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:21932
+#: doc/guix.texi:23752
 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:21937
+#: doc/guix.texi:23757
 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:21945
+#: doc/guix.texi:23765
 #, no-wrap
 msgid ""
 "(initrd (lambda (file-systems . rest)\n"
@@ -40364,351 +44085,379 @@ msgstr ""
 "                 rest)))\n"
 
 #. type: Plain text
-#: doc/guix.texi:21950
+#: doc/guix.texi:23770
 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:21957
+#: doc/guix.texi:23777
 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:21962
+#: doc/guix.texi:23782
 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:21964
+#: doc/guix.texi:23784
 #, no-wrap
 msgid "--load=@var{boot}"
 msgstr "--load=@var{boot}"
 
 #. type: table
-#: doc/guix.texi:21967
+#: doc/guix.texi:23787
 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:21971
-msgid "GuixSD 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 "GuixSD 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."
+#: doc/guix.texi:23791
+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:21972
+#: doc/guix.texi:23792
 #, no-wrap
 msgid "--root=@var{root}"
 msgstr "--root=@var{root}"
 
 #. type: table
-#: doc/guix.texi:21976
+#: doc/guix.texi:23796
 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."
 
 #. type: table
-#: doc/guix.texi:21980
+#: doc/guix.texi:23800
 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:21981
+#: doc/guix.texi:23801
 #, no-wrap
 msgid "modprobe.blacklist=@var{modules}@dots{}"
 msgstr "modprobe.blacklist=@var{modules}@dots{}"
 
 #. type: cindex
-#: doc/guix.texi:21982
+#: doc/guix.texi:23802
 #, no-wrap
 msgid "module, black-listing"
 msgstr "module, black-list"
 
 #. type: cindex
-#: doc/guix.texi:21983
+#: doc/guix.texi:23803
 #, no-wrap
 msgid "black list, of kernel modules"
 msgstr "black-list, des modules du noyau"
 
 #. type: table
-#: doc/guix.texi:21988
+#: doc/guix.texi:23808
 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:21989
+#: doc/guix.texi:23809
 #, no-wrap
 msgid "--repl"
 msgstr "--repl"
 
 #. type: table
-#: doc/guix.texi:21995
+#: doc/guix.texi:23815
 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:22001
+#: doc/guix.texi:23821
 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:22004
+#: doc/guix.texi:23824
 #, no-wrap
 msgid "{Scheme Procedure} raw-initrd @var{file-systems} @"
 msgstr "{Procédure Scheme} raw-initrd @var{file-systems} @"
 
 #. type: deffn
-#: doc/guix.texi:22016
-msgid "[#:linux-modules '()] [#:mapped-devices '()] @ [#: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:23837
+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 '()] @\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."
 
 #. type: deffn
-#: doc/guix.texi:22020
+#: doc/guix.texi:23843 doc/guix.texi:23867
+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:23847
 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:22023
+#: doc/guix.texi:23850
 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:22025
+#: doc/guix.texi:23852
 #, no-wrap
 msgid "{Scheme Procedure} base-initrd @var{file-systems} @"
 msgstr "{Procédure Scheme} base-initrd @var{file-systems} @"
 
 #. type: deffn
-#: doc/guix.texi:22033
-msgid "[#:mapped-devices '()] [#: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:23861
+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 '()] [#:qemu-networking? #f] [#:volatile-root? #f] @\n"
+"[#: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}."
 
 #. type: deffn
-#: doc/guix.texi:22035
+#: doc/guix.texi:23869
 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:22040
+#: doc/guix.texi:23874
 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:22047
+#: doc/guix.texi:23881
 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:22048
+#: doc/guix.texi:23882
 #, no-wrap
 msgid "{Scheme Procedure} expression->initrd @var{exp} @"
 msgstr "{Procédure Scheme} expression->initrd @var{exp} @"
 
 #. type: deffn
-#: doc/guix.texi:22054
+#: doc/guix.texi:23888
 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\"]\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:22060
+#: doc/guix.texi:23894
 #, no-wrap
 msgid "boot loader"
 msgstr "chargeur d'amorçage"
 
 #. type: Plain text
-#: doc/guix.texi:22067
+#: doc/guix.texi:23901
 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:22072
+#: doc/guix.texi:23906
 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:22073
+#: doc/guix.texi:23907
 #, no-wrap
 msgid "{Data Type} bootloader-configuration"
 msgstr "{Type de données} bootloader-configuration"
 
 #. type: deftp
-#: doc/guix.texi:22075
+#: doc/guix.texi:23909
 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:22079
+#: doc/guix.texi:23913
 #, no-wrap
 msgid "EFI, bootloader"
 msgstr "EFI, chargeur d'amorçage"
 
 #. type: cindex
-#: doc/guix.texi:22080
+#: doc/guix.texi:23914
 #, no-wrap
 msgid "UEFI, bootloader"
 msgstr "UEFI, chargeur d'amorçage"
 
 #. type: cindex
-#: doc/guix.texi:22081
+#: doc/guix.texi:23915
 #, no-wrap
 msgid "BIOS, bootloader"
 msgstr "BIOS, chargeur d'amorçage"
 
 #. type: table
-#: doc/guix.texi:22085
+#: doc/guix.texi:23919
 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:22091
+#: doc/guix.texi:23925
 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:22095
+#: doc/guix.texi:23929
 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: cindex
-#: doc/guix.texi:22096
+#: doc/guix.texi:23930
 #, no-wrap
 msgid "ARM, bootloaders"
 msgstr "ARM, chargeurs d'amorçage"
 
 #. type: cindex
-#: doc/guix.texi:22097
+#: doc/guix.texi:23931
 #, no-wrap
 msgid "AArch64, bootloaders"
 msgstr "AArch64, chargeurs d'amorçage"
 
 #. type: table
-#: doc/guix.texi:22102
+#: doc/guix.texi:23936
 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{http://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{http://www.denx.de/wiki/U-Boot/, chargeur d'amorçage U-Boot}"
 
 #. type: table
-#: doc/guix.texi:22106
+#: doc/guix.texi:23940
 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:22113
+#: doc/guix.texi:23947
 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}."
 
 #. type: item
-#: doc/guix.texi:22114
+#: doc/guix.texi:23948
 #, no-wrap
 msgid "@code{menu-entries} (default: @code{()})"
 msgstr "@code{menu-entries} (par défaut : @code{()})"
 
 #. type: table
-#: doc/guix.texi:22118
+#: doc/guix.texi:23952
 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:22119
+#: doc/guix.texi:23953
 #, no-wrap
 msgid "@code{default-entry} (default: @code{0})"
 msgstr "@code{default-entry} (par défaut : @code{0})"
 
 #. type: table
-#: doc/guix.texi:22122
+#: doc/guix.texi:23956
 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:22123
+#: doc/guix.texi:23957
 #, no-wrap
 msgid "@code{timeout} (default: @code{5})"
 msgstr "@code{timeout} (par défaut : @code{5})"
 
 #. type: table
-#: doc/guix.texi:22126
+#: doc/guix.texi:23960
 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:23961
+#, no-wrap
+msgid "keyboard layout, for the bootloader"
+msgstr "disposition du clavier, pour le chargeur d'amorçage"
+
+#. type: table
+#: doc/guix.texi:23965
+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:23968
+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:23972
+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:22127
+#: doc/guix.texi:23974
 #, no-wrap
 msgid "@code{theme} (default: @var{#f})"
 msgstr "@code{theme} (par défaut : @var{#f})"
 
 #. type: table
-#: doc/guix.texi:22131
+#: doc/guix.texi:23978
 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:22132
+#: doc/guix.texi:23979
 #, no-wrap
 msgid "@code{terminal-outputs} (default: @code{'gfxterm})"
 msgstr "@code{terminal-outputs} (par défaut : @code{'gfxterm})"
 
 #. type: table
-#: doc/guix.texi:22139
+#: doc/guix.texi:23986
 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:22140
+#: doc/guix.texi:23987
 #, no-wrap
 msgid "@code{terminal-inputs} (default: @code{'()})"
 msgstr "@code{terminal-inputs} (par défaut : @code{'()})"
 
 #. type: table
-#: doc/guix.texi:22148
+#: doc/guix.texi:23995
 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:22149
+#: doc/guix.texi:23996
 #, no-wrap
 msgid "@code{serial-unit} (default: @code{#f})"
 msgstr "@code{serial-unit} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:22153
+#: doc/guix.texi:24000
 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:22154
+#: doc/guix.texi:24001
 #, no-wrap
 msgid "@code{serial-speed} (default: @code{#f})"
 msgstr "@code{serial-speed} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:22158
+#: doc/guix.texi:24005
 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:22162
+#: doc/guix.texi:24009
 #, no-wrap
 msgid "dual boot"
 msgstr "dual boot"
 
 #. type: cindex
-#: doc/guix.texi:22163
+#: doc/guix.texi:24010
 #, no-wrap
 msgid "boot menu"
 msgstr "menu de démarrage"
 
 #. type: Plain text
-#: doc/guix.texi:22169
+#: doc/guix.texi:24016
 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:22176
+#: doc/guix.texi:24023
 #, no-wrap
 msgid ""
 "(menu-entry\n"
@@ -40724,147 +44473,141 @@ msgstr ""
 "  (initrd \"/boot/old/initrd\"))\n"
 
 #. type: Plain text
-#: doc/guix.texi:22179
+#: doc/guix.texi:24026
 msgid "Details below."
 msgstr "Les détails suivent."
 
 #. type: deftp
-#: doc/guix.texi:22180
+#: doc/guix.texi:24027
 #, no-wrap
 msgid "{Data Type} menu-entry"
 msgstr "{Type de données} menu-entry"
 
 #. type: deftp
-#: doc/guix.texi:22182
+#: doc/guix.texi:24029
 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: code{#1}
-#: doc/guix.texi:22185
-#, no-wrap
-msgid "label"
-msgstr "label"
-
 #. type: table
-#: doc/guix.texi:22187
+#: doc/guix.texi:24034
 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:22188
+#: doc/guix.texi:24035
 #, no-wrap
 msgid "linux"
 msgstr "linux"
 
 #. type: table
-#: doc/guix.texi:22190
+#: doc/guix.texi:24037
 msgid "The Linux kernel image to boot, for example:"
 msgstr "L'image du noyau Linux à démarrer, par exemple :"
 
 #. type: example
-#: doc/guix.texi:22193
+#: doc/guix.texi:24040
 #, no-wrap
 msgid "(file-append linux-libre \"/bzImage\")\n"
 msgstr "(file-append linux-libre \"/bzImage\")\n"
 
 #. type: table
-#: doc/guix.texi:22198
+#: doc/guix.texi:24045
 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:22201
+#: doc/guix.texi:24048
 #, no-wrap
 msgid "\"(hd0,msdos1)/boot/vmlinuz\"\n"
 msgstr "\"(hd0,msdos1)/boot/vmlinuz\"\n"
 
 #. type: table
-#: doc/guix.texi:22205
+#: doc/guix.texi:24052
 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:22206
+#: doc/guix.texi:24053
 #, no-wrap
 msgid "@code{linux-arguments} (default: @code{()})"
 msgstr "@code{linux-arguments} (par défaut : @code{()})"
 
 #. type: table
-#: doc/guix.texi:22209
+#: doc/guix.texi:24056
 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: table
-#: doc/guix.texi:22213
+#: doc/guix.texi:24060
 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:22213
+#: doc/guix.texi:24060
 #, no-wrap
 msgid "@code{device} (default: @code{#f})"
 msgstr "@code{device} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:22216
+#: doc/guix.texi:24063
 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:22222
+#: doc/guix.texi:24069
 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: Plain text
-#: doc/guix.texi:22229
-msgid "Fow now only GRUB has theme support. GRUB themes are created using the @code{grub-theme} form, which is not documented yet."
+#: doc/guix.texi:24076
+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."
 
 #. type: defvr
-#: doc/guix.texi:22234
+#: doc/guix.texi:24081
 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: defvr
-#: doc/guix.texi:22237
+#: doc/guix.texi:24084
 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: subsection
-#: doc/guix.texi:22241
+#. type: section
+#: doc/guix.texi:24088
 #, no-wrap
 msgid "Invoking @code{guix system}"
 msgstr "Invoquer @code{guix system}"
 
 #. type: Plain text
-#: doc/guix.texi:22246
+#: doc/guix.texi:24093
 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:22249
+#: doc/guix.texi:24096
 #, 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:22255
+#: doc/guix.texi:24102
 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:22257
+#: doc/guix.texi:24104
 #, no-wrap
 msgid "search"
 msgstr "search"
 
 #. type: table
-#: doc/guix.texi:22260
+#: doc/guix.texi:24107
 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."
+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:22272
+#: doc/guix.texi:24119
 #, no-wrap
 msgid ""
 "$ guix system search console font\n"
@@ -40891,7 +44634,7 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix.texi:22278
+#: doc/guix.texi:24125
 #, no-wrap
 msgid ""
 "name: mingetty\n"
@@ -40909,7 +44652,7 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix.texi:22285
+#: doc/guix.texi:24132
 #, no-wrap
 msgid ""
 "name: login\n"
@@ -40928,194 +44671,254 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix.texi:22287
+#: doc/guix.texi:24134
 #, no-wrap
 msgid "@dots{}\n"
 msgstr "@dots{}\n"
 
 #. type: table
-#: doc/guix.texi:22292
+#: doc/guix.texi:24139
 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:22293
+#: doc/guix.texi:24140
 #, no-wrap
 msgid "reconfigure"
 msgstr "reconfigure"
 
 #. type: table
-#: doc/guix.texi:22298
-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 GuixSD.}."
-msgstr "Construit le système d'exploitation décrit dans @var{file}, l'active et passe dessus@footnote{Cette action (et les action @code{switch-generation} et @code{roll-back} liées) ne sont utilisables que sur les systèmes sous GuixSD.}."
+#: doc/guix.texi:24145
+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: table
-#: doc/guix.texi:22305
-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 (eg. 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, 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})."
+#: doc/guix.texi:24152
+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:22311
+#: doc/guix.texi:24158
 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:22316
+#: doc/guix.texi:24163
 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:22324
+#: doc/guix.texi:24171
 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: item
-#: doc/guix.texi:22326
+#: doc/guix.texi:24173
 #, no-wrap
 msgid "switch-generation"
 msgstr "switch-generation"
 
 #. type: table
-#: doc/guix.texi:22335
+#: doc/guix.texi:24182
 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."
 
 #. type: table
-#: doc/guix.texi:22339
+#: doc/guix.texi:24186
 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:22343
+#: doc/guix.texi:24190
 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:22346
+#: doc/guix.texi:24193
 #, no-wrap
 msgid "guix system switch-generation 7\n"
 msgstr "guix system switch-generation 7\n"
 
 #. type: table
-#: doc/guix.texi:22354
+#: doc/guix.texi:24201
 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:22357
+#: doc/guix.texi:24204
 #, no-wrap
 msgid "guix system switch-generation -- -1\n"
 msgstr "guix system switch-generation -- -1\n"
 
 #. type: table
-#: doc/guix.texi:22365
+#: doc/guix.texi:24212
 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:22367
+#: doc/guix.texi:24214
 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:22368
+#: doc/guix.texi:24215
 #, no-wrap
 msgid "roll-back"
 msgstr "roll-back"
 
 #. type: table
-#: doc/guix.texi:22374
+#: doc/guix.texi:24221
 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:22378
+#: doc/guix.texi:24225
 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:24226
+#, no-wrap
+msgid "delete-generations"
+msgstr "delete-generations"
+
+#. type: cindex
+#: doc/guix.texi:24227
+#, no-wrap
+msgid "deleting system generations"
+msgstr "supprimer des générations du système"
+
+#. type: cindex
+#: doc/guix.texi:24228
+#, no-wrap
+msgid "saving space"
+msgstr "gagner de la place"
+
 #. type: table
-#: doc/guix.texi:22383
+#: doc/guix.texi:24232
+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:24236
+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 :"
+
+#. type: example
+#: doc/guix.texi:24239
+#, no-wrap
+msgid "guix system delete-generations\n"
+msgstr "guix system delete-generations\n"
+
+#. type: table
+#: doc/guix.texi:24243
+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:24246
+#, no-wrap
+msgid "guix system delete-generations 2m\n"
+msgstr "guix system delete-generations 2m\n"
+
+#. type: table
+#: doc/guix.texi:24251
+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:24256
 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:22384
+#: doc/guix.texi:24257
 #, no-wrap
 msgid "init"
 msgstr "init"
 
 #. type: table
-#: doc/guix.texi:22388
-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 GuixSD.  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 GuixSD.  Par exemple :"
+#: doc/guix.texi:24261
+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:22391
+#: doc/guix.texi:24264
 #, 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:22398
+#: doc/guix.texi:24271
 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:22402
+#: doc/guix.texi:24275
 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:22403
+#: doc/guix.texi:24276
 #, no-wrap
 msgid "vm"
 msgstr "vm"
 
 #. type: cindex
-#: doc/guix.texi:22404 doc/guix.texi:22668
+#: doc/guix.texi:24277 doc/guix.texi:24545
 #, no-wrap
 msgid "virtual machine"
 msgstr "machine virtuelle"
 
 #. type: cindex
-#: doc/guix.texi:22405
+#: doc/guix.texi:24278
 #, no-wrap
 msgid "VM"
 msgstr "VM"
 
 #. type: anchor{#1}
-#: doc/guix.texi:22412
+#: doc/guix.texi:24282
 msgid "guix system vm"
 msgstr "guix system vm"
 
 #. type: table
-#: doc/guix.texi:22412
-msgid "Build a virtual machine that contains the operating system declared in @var{file}, and return a script to run that virtual machine (VM).  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 "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).  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 :"
+#: doc/guix.texi:24282
+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:24290
+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:24295
+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:22415
+#: doc/guix.texi:24298
 #, 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"
 
 #. type: table
-#: doc/guix.texi:22418
+#: doc/guix.texi:24301
 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:22423
+#: doc/guix.texi:24306
 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é."
 
 #. type: table
-#: doc/guix.texi:22427
+#: doc/guix.texi:24310
 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:22431
+#: doc/guix.texi:24314
 #, no-wrap
 msgid ""
 "guix system vm my-config.scm \\\n"
@@ -41125,112 +44928,112 @@ msgstr ""
 "   --expose=$HOME --share=$HOME/tmp=/exchange\n"
 
 #. type: table
-#: doc/guix.texi:22436
+#: doc/guix.texi:24319
 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:22442
+#: doc/guix.texi:24325
 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."
 
 #. type: cindex
-#: doc/guix.texi:22443
+#: doc/guix.texi:24326
 #, no-wrap
 msgid "System images, creation in various formats"
 msgstr "Images système, création en divers formats"
 
 #. type: cindex
-#: doc/guix.texi:22444
+#: doc/guix.texi:24327
 #, 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:22445
+#: doc/guix.texi:24328
 #, no-wrap
 msgid "vm-image"
 msgstr "vm-image"
 
 #. type: itemx
-#: doc/guix.texi:22446
+#: doc/guix.texi:24329
 #, no-wrap
 msgid "disk-image"
 msgstr "disk-image"
 
 #. type: itemx
-#: doc/guix.texi:22447
+#: doc/guix.texi:24330
 #, no-wrap
 msgid "docker-image"
 msgstr "docker-image"
 
 #. type: table
-#: doc/guix.texi:22455
+#: doc/guix.texi:24338
 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:22458
+#: doc/guix.texi:24341
 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}."
 
 #. type: table
-#: doc/guix.texi:22462
-msgid "When using @code{vm-image}, the returned image is in qcow2 format, which the QEMU emulator can efficiently use. @xref{Running GuixSD 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 qcow, que l'émulateur QEMU peut utiliser efficacement.  @xref{Running GuixSD in a VM}, pour plus d'informations sur la manière de lancer l'image dans une machine virtuelle."
+#: doc/guix.texi:24345
+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:22467
+#: doc/guix.texi:24350
 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 :"
 
 #. type: example
-#: doc/guix.texi:22470
+#: doc/guix.texi:24353
 #, 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"
 
 #. type: table
-#: doc/guix.texi:22477
+#: doc/guix.texi:24360
 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:22483
+#: doc/guix.texi:24366
 #, no-wrap
 msgid ""
-"image_id=\"$(docker load < guixsd-docker-image.tar.gz)\"\n"
+"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 < guixsd-docker-image.tar.gz)\"\n"
+"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"
 
 #. type: table
-#: doc/guix.texi:22493
-msgid "This command starts a new Docker container from the specified image.  It will boot the GuixSD 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}."
-msgstr "Cette commande démarre un nouveau conteneur Docker à partir de l'image spécifiée.  Il démarrera le système GuixSD 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.  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 run}."
+#: doc/guix.texi:24376
+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}."
+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.  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 run}."
 
 #. type: table
-#: doc/guix.texi:22501
+#: doc/guix.texi:24384
 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:22505
+#: doc/guix.texi:24388
 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:22509
+#: doc/guix.texi:24392
 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:22513
+#: doc/guix.texi:24396
 #, no-wrap
 msgid ""
 "guix system container my-config.scm \\\n"
@@ -41240,260 +45043,273 @@ msgstr ""
 "   --expose=$HOME --share=$HOME/tmp=/exchange\n"
 
 #. type: quotation
-#: doc/guix.texi:22517
+#: doc/guix.texi:24400
 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:22524
+#: doc/guix.texi:24407
 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:22533
-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 GuixSD 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 GuixSD (@pxref{Building the Installation Image})."
+#: doc/guix.texi:24416
+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:22538
+#: doc/guix.texi:24421
 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:22539
+#: doc/guix.texi:24422
 #, no-wrap
 msgid "--derivation"
 msgstr "--derivation"
 
 #. type: table
-#: doc/guix.texi:22543
+#: doc/guix.texi:24426
 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: item
-#: doc/guix.texi:22544
+#: doc/guix.texi:24427
 #, no-wrap
 msgid "--file-system-type=@var{type}"
 msgstr "--file-system-type=@var{type}"
 
 #. type: table
-#: doc/guix.texi:22548
+#: doc/guix.texi:24431
 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."
 
 #. type: table
-#: doc/guix.texi:22550
+#: doc/guix.texi:24433
 msgid "When this option is omitted, @command{guix system} uses @code{ext4}."
 msgstr "Lorsque cette option est omise, @command{guix system} utilise @code{ext4}."
 
 #. type: cindex
-#: doc/guix.texi:22551
+#: doc/guix.texi:24434
 #, no-wrap
 msgid "ISO-9660 format"
 msgstr "format ISO-9660"
 
 #. type: cindex
-#: doc/guix.texi:22552
+#: doc/guix.texi:24435
 #, no-wrap
 msgid "CD image format"
 msgstr "format d'image de CD"
 
 #. type: cindex
-#: doc/guix.texi:22553
+#: doc/guix.texi:24436
 #, no-wrap
 msgid "DVD image format"
 msgstr "format d'image de DVD"
 
 #. type: table
-#: doc/guix.texi:22556
+#: doc/guix.texi:24439
 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."
 
 #. type: item
-#: doc/guix.texi:22557
+#: doc/guix.texi:24440
 #, no-wrap
 msgid "--image-size=@var{size}"
 msgstr "--image-size=@var{size}"
 
 #. type: table
-#: doc/guix.texi:22562
+#: doc/guix.texi:24445
 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:22566
+#: doc/guix.texi:24449
 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: item
-#: doc/guix.texi:22572
+#: doc/guix.texi:24455
 #, no-wrap
 msgid "--skip-checks"
 msgstr "--skip-checks"
 
 #. type: table
-#: doc/guix.texi:22574
+#: doc/guix.texi:24457
 msgid "Skip pre-installation safety checks."
 msgstr "Passe les vérifications de sécurité avant l'installation."
 
 #. type: table
-#: doc/guix.texi:22581
+#: doc/guix.texi:24464
 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: cindex
+#: doc/guix.texi:24465
+#, no-wrap
+msgid "on-error"
+msgstr "on-error"
+
+#. type: cindex
+#: doc/guix.texi:24466
+#, no-wrap
+msgid "on-error strategy"
+msgstr "stratégie on-error"
+
+#. type: cindex
+#: doc/guix.texi:24467
+#, no-wrap
+msgid "error strategy"
+msgstr "stratégie en cas d'erreur"
+
 #. type: item
-#: doc/guix.texi:22582
+#: doc/guix.texi:24468
 #, no-wrap
 msgid "--on-error=@var{strategy}"
 msgstr "--on-error=@var{strategy}"
 
 #. type: table
-#: doc/guix.texi:22585
+#: doc/guix.texi:24471
 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:22587
+#: doc/guix.texi:24473
 #, no-wrap
 msgid "nothing-special"
 msgstr "nothing-special"
 
 #. type: table
-#: doc/guix.texi:22589
+#: doc/guix.texi:24475
 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:22590
+#: doc/guix.texi:24476
 #, no-wrap
 msgid "backtrace"
 msgstr "backtrace"
 
 #. type: table
-#: doc/guix.texi:22592
+#: doc/guix.texi:24478
 msgid "Likewise, but also display a backtrace."
 msgstr "Pareil, mais affiche aussi une trace de débogage."
 
 #. type: item
-#: doc/guix.texi:22593
+#: doc/guix.texi:24479
 #, no-wrap
 msgid "debug"
 msgstr "debug"
 
 #. type: table
-#: doc/guix.texi:22599
+#: doc/guix.texi:24485
 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: quotation
-#: doc/guix.texi:22609
-msgid "All the actions above, except @code{build} and @code{init}, 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 "Toutes les actions ci-dessous, sauf @code{build} et @code{init}, peuvent utiliser le support KVM dans le noyau Linux-libre.  En particulier, si la machine supporte la virtualisation matérielle, les modules du noyau KVM correspondants devraient être chargés et le nœud de périphérique @file{/dev/kvm} doit exister et être accessible en lecture et en écriture par l'utilisateur et les utilisateurs de construction du démon (@pxref{Build Environment Setup})."
-
 #. type: Plain text
-#: doc/guix.texi:22615
-msgid "Once you have built, configured, re-configured, and re-re-configured your GuixSD 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 GuixSD, 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 :"
+#: doc/guix.texi:24492
+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:22618
+#: doc/guix.texi:24495
 #, no-wrap
 msgid "list-generations"
 msgstr "list-generations"
 
 #. type: table
-#: doc/guix.texi:22623
+#: doc/guix.texi:24500
 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:22628
+#: doc/guix.texi:24505
 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:22631
+#: doc/guix.texi:24508
 #, no-wrap
 msgid "$ guix system list-generations 10d\n"
 msgstr "$ guix system list-generations 10d\n"
 
 #. type: Plain text
-#: doc/guix.texi:22638
+#: doc/guix.texi:24515
 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:22640
+#: doc/guix.texi:24517
 msgid "system-extension-graph"
 msgstr "system-extension-graph"
 
 #. type: item
-#: doc/guix.texi:22642
+#: doc/guix.texi:24519
 #, no-wrap
 msgid "extension-graph"
 msgstr "extension-graph"
 
 #. type: table
-#: doc/guix.texi:22647
+#: doc/guix.texi:24524
 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)."
 
 #. type: table
-#: doc/guix.texi:22649
+#: doc/guix.texi:24526
 msgid "The command:"
 msgstr "La commande :"
 
 #. type: example
-#: doc/guix.texi:22652
+#: doc/guix.texi:24529
 #, 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"
 
 #. type: table
-#: doc/guix.texi:22655
+#: doc/guix.texi:24532
 msgid "produces a PDF file showing the extension relations among services."
 msgstr "produit un fichier PDF montrant les relations d'extension entre les services."
 
 #. type: anchor{#1}
-#: doc/guix.texi:22657
+#: doc/guix.texi:24534
 msgid "system-shepherd-graph"
 msgstr "system-shepherd-graph"
 
 #. type: item
-#: doc/guix.texi:22657
+#: doc/guix.texi:24534
 #, no-wrap
 msgid "shepherd-graph"
 msgstr "shepherd-graph"
 
 #. type: table
-#: doc/guix.texi:22662
+#: doc/guix.texi:24539
 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: subsection
-#: doc/guix.texi:22666
+#. type: section
+#: doc/guix.texi:24543
 #, no-wrap
-msgid "Running GuixSD in a Virtual Machine"
-msgstr "Exécuter GuixSD sur une machine virtuelle"
+msgid "Running Guix in a Virtual Machine"
+msgstr "Exécuter Guix sur une machine virtuelle"
 
 #. type: Plain text
-#: doc/guix.texi:22676
-msgid "To run GuixSD in a virtual machine (VM), one can either use the pre-built GuixSD VM image distributed at @indicateurl{https://alpha.gnu.org/gnu/guix/guixsd-vm-image-@value{VERSION}.@var{system}.xz} , or 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{http://qemu.org/, QEMU emulator} can efficiently use."
-msgstr "Pour exécuter GuixSD sur une machine virtuelle (VM), on peut soit utiliser l'image de VM GuixSD pré-construite sur @indicateurl{https://alpha.gnu.org/gnu/guix/guixsd-vm-image-@value{VERSION}.xz} ou 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 l'@uref{http://qemu.org/,émulateur QEMU} peut utiliser efficacement."
+#: doc/guix.texi:24553
+msgid "To run Guix in a virtual machine (VM), one can either use the pre-built Guix VM image distributed at @indicateurl{https://alpha.gnu.org/gnu/guix/guix-system-vm-image-@value{VERSION}.@var{system}.xz} , or 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{http://qemu.org/, QEMU emulator} can efficiently use."
+msgstr "Pour exécuter GuixSD sur une machine virtuelle (VM), on peut soit utiliser l'image de VM GuixSD pré-construite sur @indicateurl{https://alpha.gnu.org/gnu/guix/guix-system-vm-image-@value{VERSION}.@var{système}.xz} ou 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 l'@uref{http://qemu.org/,émulateur QEMU} peut utiliser efficacement."
 
 #. type: cindex
-#: doc/guix.texi:22677
+#: doc/guix.texi:24554
 #, no-wrap
 msgid "QEMU"
 msgstr "QEMU"
 
 #. type: Plain text
-#: doc/guix.texi:22684
+#: doc/guix.texi:24561
 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."
+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:22689
+#: doc/guix.texi:24566
 #, no-wrap
 msgid ""
 "$ qemu-system-x86_64 \\\n"
@@ -41505,132 +45321,132 @@ msgstr ""
 "   -enable-kvm -m 256 /tmp/qemu-image\n"
 
 #. type: Plain text
-#: doc/guix.texi:22692
+#: doc/guix.texi:24569
 msgid "Here is what each of these options means:"
 msgstr "Voici la signification de ces options :"
 
 #. type: item
-#: doc/guix.texi:22694
+#: doc/guix.texi:24571
 #, no-wrap
 msgid "qemu-system-x86_64"
 msgstr "qemu-system-x86_64"
 
 #. type: table
-#: doc/guix.texi:22697
+#: doc/guix.texi:24574
 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:22698
+#: doc/guix.texi:24575
 #, no-wrap
 msgid "-net user"
 msgstr "-net user"
 
 #. type: table
-#: doc/guix.texi:22702
+#: doc/guix.texi:24579
 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:22703
+#: doc/guix.texi:24580
 #, no-wrap
 msgid "-net nic,model=virtio"
 msgstr "-net nic,model=virtio"
 
 #. type: table
-#: doc/guix.texi:22708
+#: doc/guix.texi:24585
 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}."
 
 #. type: item
-#: doc/guix.texi:22709
+#: doc/guix.texi:24586
 #, no-wrap
 msgid "-enable-kvm"
 msgstr "-enable-kvm"
 
 #. type: table
-#: doc/guix.texi:22713
+#: doc/guix.texi:24590
 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:22714
+#: doc/guix.texi:24591
 #, no-wrap
 msgid "-m 256"
 msgstr "-m 256"
 
 #. type: table
-#: doc/guix.texi:22717
+#: doc/guix.texi:24594
 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:22718
+#: doc/guix.texi:24595
 #, no-wrap
 msgid "/tmp/qemu-image"
 msgstr "/tmp/qemu-image"
 
 #. type: table
-#: doc/guix.texi:22720
+#: doc/guix.texi:24597
 msgid "The file name of the qcow2 image."
 msgstr "Le nom de fichier de l'image qcow2."
 
 #. type: Plain text
-#: doc/guix.texi:22730
+#: doc/guix.texi:24607
 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}."
 
-#. type: subsubsection
-#: doc/guix.texi:22731
+#. type: subsection
+#: doc/guix.texi:24608
 #, no-wrap
 msgid "Connecting Through SSH"
 msgstr "Se connecter par SSH"
 
 #. type: Plain text
-#: doc/guix.texi:22740
+#: doc/guix.texi:24617
 msgid "To enable SSH inside a VM you need to add a SSH server like @code{(dropbear-service)} or @code{(lsh-service)} to your VM.  The @code{(lsh-service}) doesn't currently boot unsupervised.  It requires you to type some characters to initialize the randomness generator.  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{(dropbear-service)} ou @code{(lsh-service)} à votre VM.  Le service @code{(lsh-service)} ne peut actuellement pas démarrer sans supervision.  Il a besoin que vous tapiez quelques caractères pour initialiser le générateur d'aléatoire.  En plus vous devez transférer le port 22, par défaut, à l'hôte.  Vous pouvez faire cela avec :"
+msgstr "Pour activer SSH dans une VM vous devez ajouter un serveur SSH comme @code{(dropbear-service)} ou @code{(lsh-service)} à votre VM.  Le service @code{(lsh-service)} ne peut actuellement pas démarrer sans supervision.  Il a besoin que vous tapiez quelques caractères pour initialiser le générateur d'aléatoire.  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:22743
+#: doc/guix.texi:24620
 #, 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"
 
 #. type: Plain text
-#: doc/guix.texi:22746
+#: doc/guix.texi:24623
 msgid "To connect to the VM you can run"
 msgstr "Pour vous connecter à la VM vous pouvez lancer"
 
 #. type: example
-#: doc/guix.texi:22749
+#: doc/guix.texi:24626
 #, 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:22756
+#: doc/guix.texi:24633
 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: subsubsection
-#: doc/guix.texi:22757
+#. type: subsection
+#: doc/guix.texi:24634
 #, no-wrap
 msgid "Using @command{virt-viewer} with Spice"
 msgstr "Utiliser @command{virt-viewer} avec Spice"
 
 #. type: Plain text
-#: doc/guix.texi:22763
+#: doc/guix.texi:24640
 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:22766
+#: doc/guix.texi:24643
 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:22772
+#: doc/guix.texi:24649
 #, no-wrap
 msgid ""
 "-device virtio-serial-pci,id=virtio-serial0,max_ports=16,bus=pci.0,addr=0x5\n"
@@ -41644,81 +45460,81 @@ msgstr ""
 "name=com.redhat.spice.0\n"
 
 #. type: Plain text
-#: doc/guix.texi:22775
+#: doc/guix.texi:24652
 msgid "You'll also need to add the @pxref{Miscellaneous Services, Spice service}."
 msgstr "Vous devrez aussi ajouter le @pxref{Miscellaneous Services, Spice service}."
 
 #. type: Plain text
-#: doc/guix.texi:22782
+#: doc/guix.texi:24659
 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:22794
+#: doc/guix.texi:24671
 #, no-wrap
 msgid "daemons"
 msgstr "démons"
 
 #. type: Plain text
-#: doc/guix.texi:22807
+#: doc/guix.texi:24684
 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:22808
+#: doc/guix.texi:24685
 #, no-wrap
 msgid "service extensions"
 msgstr "extensions de service"
 
 #. type: Plain text
-#: doc/guix.texi:22820
-msgid "GuixSD services are connected by @dfn{extensions}.  For instance, the secure shell service @emph{extends} the Shepherd---the GuixSD 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{lsh-service}}); 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 GuixSD 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})."
+#: doc/guix.texi:24697
+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:22824
+#: doc/guix.texi:24701
 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:22826
+#: doc/guix.texi:24703
 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:22827
+#: doc/guix.texi:24704
 #, no-wrap
 msgid "system service"
 msgstr "service système"
 
 #. type: Plain text
-#: doc/guix.texi:22835
+#: doc/guix.texi:24712
 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:22836
+#: doc/guix.texi:24713
 #, no-wrap
 msgid "service types"
 msgstr "types de services"
 
 #. type: Plain text
-#: doc/guix.texi:22842
-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 @var{lsh-service-type}, with different parameters."
+#: doc/guix.texi:24719
+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, les développeurs peuvent 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:22845
+#: doc/guix.texi:24722
 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:22852
+#: doc/guix.texi:24729
 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:22862
+#: doc/guix.texi:24739
 #, no-wrap
 msgid ""
 "(define guix-service-type\n"
@@ -41740,75 +45556,75 @@ msgstr ""
 "   (default-value (guix-configuration))))\n"
 
 #. type: Plain text
-#: doc/guix.texi:22866
+#: doc/guix.texi:24743
 msgid "It defines three things:"
 msgstr "Il définit trois choses :"
 
 #. type: enumerate
-#: doc/guix.texi:22870
+#: doc/guix.texi:24747
 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:22875
+#: doc/guix.texi:24752
 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:22878
+#: doc/guix.texi:24755
 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:22881
+#: doc/guix.texi:24758
 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:22884
-msgid "In this example, @var{guix-service-type} extends three services:"
+#: doc/guix.texi:24761
+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:22886
+#: doc/guix.texi:24763
 #, no-wrap
 msgid "shepherd-root-service-type"
 msgstr "shepherd-root-service-type"
 
 #. type: table
-#: doc/guix.texi:22891
-msgid "The @var{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})."
+#: doc/guix.texi:24768
+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:22892
+#: doc/guix.texi:24769
 #, no-wrap
 msgid "account-service-type"
 msgstr "account-service-type"
 
 #. type: table
-#: doc/guix.texi:22897
-msgid "This extension for this service is computed by @var{guix-accounts}, which returns a list of @code{user-group} and @code{user-account} objects representing the build user accounts (@pxref{Invoking guix-daemon})."
+#: doc/guix.texi:24774
+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:22898
+#: doc/guix.texi:24775
 #, no-wrap
 msgid "activation-service-type"
 msgstr "activation-service-type"
 
 #. type: table
-#: doc/guix.texi:22902
-msgid "Here @var{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."
+#: doc/guix.texi:24779
+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:22905
+#: doc/guix.texi:24782
 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:22911
+#: doc/guix.texi:24788
 #, no-wrap
 msgid ""
 "(service guix-service-type\n"
@@ -41822,28 +45638,28 @@ msgstr ""
 "           (use-substitutes? #f)))\n"
 
 #. type: Plain text
-#: doc/guix.texi:22919
+#: doc/guix.texi:24796
 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:22922
+#: doc/guix.texi:24799
 #, no-wrap
 msgid "(service guix-service-type)\n"
 msgstr "(service guix-service-type)\n"
 
 #. type: Plain text
-#: doc/guix.texi:22926
-msgid "@var{guix-service-type} is quite simple because it extends other services but is not extensible itself."
+#: doc/guix.texi:24803
+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:22930
+#: doc/guix.texi:24807
 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:22937
+#: doc/guix.texi:24814
 #, no-wrap
 msgid ""
 "(define udev-service-type\n"
@@ -41861,7 +45677,7 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix.texi:22945
+#: doc/guix.texi:24822
 #, no-wrap
 msgid ""
 "                (compose concatenate)       ;concatenate the list of rules\n"
@@ -41881,96 +45697,96 @@ msgstr ""
 "                              (rules (append initial-rules rules)))))))))\n"
 
 #. type: Plain text
-#: doc/guix.texi:22951
-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 @var{shepherd-root-service-type}, we see two new fields:"
+#: doc/guix.texi:24828
+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:22953
+#: doc/guix.texi:24830
 #, no-wrap
 msgid "compose"
 msgstr "compose"
 
 #. type: table
-#: doc/guix.texi:22956
+#: doc/guix.texi:24833
 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:22959
+#: doc/guix.texi:24836
 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:22960
+#: doc/guix.texi:24837
 #, no-wrap
 msgid "extend"
 msgstr "extend"
 
 #. type: table
-#: doc/guix.texi:22963
+#: doc/guix.texi:24840
 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:22968
+#: doc/guix.texi:24845
 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:22974
+#: doc/guix.texi:24851
 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:22979
-msgid "There can be only one instance of an extensible service type such as @var{udev-service-type}.  If there were more, the @code{service-extension} specifications would be ambiguous."
+#: doc/guix.texi:24856
+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:22982
+#: doc/guix.texi:24859
 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:22990
+#: doc/guix.texi:24867
 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:22991
+#: doc/guix.texi:24868
 #, no-wrap
 msgid "{Scheme Procedure} service @var{type} [@var{value}]"
 msgstr "{Procédure Scheme} service @var{type} [@var{value}]"
 
 #. type: deffn
-#: doc/guix.texi:22995
+#: doc/guix.texi:24872
 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."
 
 #. type: deffn
-#: doc/guix.texi:22999
+#: doc/guix.texi:24876
 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:23001
+#: doc/guix.texi:24878
 msgid "For instance, this:"
 msgstr "Par exemple ceci :"
 
 #. type: example
-#: doc/guix.texi:23004
+#: doc/guix.texi:24881
 #, no-wrap
 msgid "(service openssh-service-type)\n"
 msgstr "(service openssh-service-type)\n"
 
 #. type: deffn
-#: doc/guix.texi:23008
+#: doc/guix.texi:24885
 msgid "is equivalent to this:"
 msgstr "est équivalent à ceci :"
 
 #. type: example
-#: doc/guix.texi:23012
+#: doc/guix.texi:24889
 #, no-wrap
 msgid ""
 "(service openssh-service-type\n"
@@ -41980,50 +45796,50 @@ msgstr ""
 "         (openssh-configuration))\n"
 
 #. type: deffn
-#: doc/guix.texi:23016
+#: doc/guix.texi:24893
 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:23018
+#: doc/guix.texi:24895
 #, no-wrap
 msgid "{Scheme Procedure} service? @var{obj}"
 msgstr "{Procédure Scheme} service? @var{obj}"
 
 #. type: deffn
-#: doc/guix.texi:23020
+#: doc/guix.texi:24897
 msgid "Return true if @var{obj} is a service."
 msgstr "Renvoie vrai si @var{obj} est un service."
 
 #. type: deffn
-#: doc/guix.texi:23022
+#: doc/guix.texi:24899
 #, no-wrap
 msgid "{Scheme Procedure} service-kind @var{service}"
 msgstr "{Procédure Scheme} service-kind @var{service}"
 
 #. type: deffn
-#: doc/guix.texi:23024
+#: doc/guix.texi:24901
 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:23026
+#: doc/guix.texi:24903
 #, no-wrap
 msgid "{Scheme Procedure} service-value @var{service}"
 msgstr "{Procédure Scheme} service-value @var{service}"
 
 #. type: deffn
-#: doc/guix.texi:23029
+#: doc/guix.texi:24906
 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:23032
+#: doc/guix.texi:24909
 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:23041
+#: doc/guix.texi:24918
 #, no-wrap
 msgid ""
 "(define s\n"
@@ -42045,7 +45861,7 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix.texi:23044
+#: doc/guix.texi:24921
 #, no-wrap
 msgid ""
 "(service? s)\n"
@@ -42057,7 +45873,7 @@ msgstr ""
 "\n"
 
 #. type: example
-#: doc/guix.texi:23047
+#: doc/guix.texi:24924
 #, no-wrap
 msgid ""
 "(eq? (service-kind s) nginx-service-type)\n"
@@ -42067,169 +45883,169 @@ msgstr ""
 "@result{} #t\n"
 
 #. type: Plain text
-#: doc/guix.texi:23057
-msgid "The @code{modify-services} form provides a handy way to change the parameters of some of the services of a list such as @var{%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."
+#: doc/guix.texi:24934
+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:23058
+#: doc/guix.texi:24935
 #, no-wrap
 msgid "{Scheme Syntax} modify-services @var{services} @"
 msgstr "{Syntaxe Scheme} modify-services @var{services} @"
 
 #. type: deffn
-#: doc/guix.texi:23060
+#: doc/guix.texi:24937
 msgid "(@var{type} @var{variable} => @var{body}) @dots{}"
 msgstr "(@var{type} @var{variable} => @var{body}) @dots{}"
 
 #. type: deffn
-#: doc/guix.texi:23063
+#: doc/guix.texi:24940
 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:23066
+#: doc/guix.texi:24943
 #, no-wrap
 msgid "(@var{type} @var{variable} => @var{body})\n"
 msgstr "(@var{type} @var{variable} => @var{body})\n"
 
 #. type: deffn
-#: doc/guix.texi:23073
+#: doc/guix.texi:24950
 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:23080
+#: doc/guix.texi:24957
 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:23082
+#: doc/guix.texi:24959
 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:23089
+#: doc/guix.texi:24966
 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:23090
+#: doc/guix.texi:24967
 #, no-wrap
 msgid "{Data Type} service-type"
 msgstr "{Type de données} service-type"
 
 #. type: cindex
-#: doc/guix.texi:23091
+#: doc/guix.texi:24968
 #, no-wrap
 msgid "service type"
 msgstr "type de service"
 
 #. type: deftp
-#: doc/guix.texi:23094
+#: doc/guix.texi:24971
 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:23098
+#: doc/guix.texi:24975
 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:23099
+#: doc/guix.texi:24976
 #, no-wrap
 msgid "extensions"
 msgstr "extensions"
 
 #. type: table
-#: doc/guix.texi:23101
+#: doc/guix.texi:24978
 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:23102
+#: doc/guix.texi:24979
 #, no-wrap
 msgid "@code{compose} (default: @code{#f})"
 msgstr "@code{compose} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:23106
+#: doc/guix.texi:24983
 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:23110
+#: doc/guix.texi:24987
 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:23111
+#: doc/guix.texi:24988
 #, no-wrap
 msgid "@code{extend} (default: @code{#f})"
 msgstr "@code{extend} (par défaut : @code{#f})"
 
 #. type: table
-#: doc/guix.texi:23113
+#: doc/guix.texi:24990
 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:23119
+#: doc/guix.texi:24996
 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: deftp
-#: doc/guix.texi:23122
+#: doc/guix.texi:24999
 msgid "@xref{Service Types and Services}, for examples."
 msgstr "@xref{Service Types and Services}, pour des exemples."
 
 #. type: deffn
-#: doc/guix.texi:23124
+#: doc/guix.texi:25001
 #, no-wrap
 msgid "{Scheme Procedure} service-extension @var{target-type} @"
 msgstr "{Procédure Scheme} service-extension @var{target-type} @"
 
 #. type: deffn
-#: doc/guix.texi:23130
+#: doc/guix.texi:25007
 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:23132
+#: doc/guix.texi:25009
 #, no-wrap
 msgid "{Scheme Procedure} service-extension? @var{obj}"
 msgstr "{Procédure Scheme} service-extension? @var{obj}"
 
 #. type: deffn
-#: doc/guix.texi:23134
+#: doc/guix.texi:25011
 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:23140
+#: doc/guix.texi:25017
 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:23141
+#: doc/guix.texi:25018
 #, 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:23145
+#: doc/guix.texi:25022
 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:23148
+#: doc/guix.texi:25025
 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:23152
+#: doc/guix.texi:25029
 #, no-wrap
 msgid ""
 "(simple-service 'my-mcron-job mcron-service-type\n"
@@ -42239,298 +46055,309 @@ msgstr ""
 "                #~(job '(next-hour (3)) \"guix gc -F 2G\"))\n"
 
 #. type: Plain text
-#: doc/guix.texi:23162
+#: doc/guix.texi:25039
 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:23163
+#: doc/guix.texi:25040
 #, no-wrap
 msgid "{Scheme Procedure} fold-services @var{services} @"
 msgstr "{Procédure Scheme} fold-services @var{services} @"
 
 #. type: deffn
-#: doc/guix.texi:23167
+#: doc/guix.texi:25044
 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:23171
+#: doc/guix.texi:25048
 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:23172
+#: doc/guix.texi:25049
 #, no-wrap
 msgid "{Scheme Variable} system-service-type"
 msgstr "{Variable Scheme} system-service-type"
 
 #. type: defvr
-#: doc/guix.texi:23175
+#: doc/guix.texi:25052
 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:23177
+#: doc/guix.texi:25054
 #, no-wrap
 msgid "{Scheme Variable} boot-service-type"
 msgstr "{Variable Scheme} boot-service-type"
 
 #. type: defvr
-#: doc/guix.texi:23180
+#: doc/guix.texi:25057
 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:23182
+#: doc/guix.texi:25059
 #, no-wrap
 msgid "{Scheme Variable} etc-service-type"
 msgstr "{Variable Scheme} etc-service-type"
 
 #. type: defvr
-#: doc/guix.texi:23186
+#: doc/guix.texi:25063
 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:23189
+#: doc/guix.texi:25066
 #, 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:23193
+#: doc/guix.texi:25070
 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:23195
+#: doc/guix.texi:25072
 #, no-wrap
 msgid "{Scheme Variable} setuid-program-service-type"
 msgstr "{Variable Scheme} setuid-program-service-type"
 
 #. type: defvr
-#: doc/guix.texi:23199
+#: doc/guix.texi:25076
 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:23201
+#: doc/guix.texi:25078
 #, no-wrap
 msgid "{Scheme Variable} profile-service-type"
 msgstr "{Variable Scheme} profile-service-type"
 
 #. type: defvr
-#: doc/guix.texi:23205
+#: doc/guix.texi:25082
 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: cindex
-#: doc/guix.texi:23211
+#: doc/guix.texi:25088
 #, no-wrap
 msgid "shepherd services"
 msgstr "services shepherd"
 
 #. type: cindex
-#: doc/guix.texi:23212
+#: doc/guix.texi:25089
 #, no-wrap
 msgid "PID 1"
 msgstr "PID 1"
 
 #. type: cindex
-#: doc/guix.texi:23213
+#: doc/guix.texi:25090
 #, no-wrap
 msgid "init system"
 msgstr "système d'init"
 
 #. type: Plain text
-#: doc/guix.texi:23219
-msgid "The @code{(gnu services shepherd)} module provides a way to define services managed by the GNU@tie{}Shepherd, which is the GuixSD 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@trie{}Shepherd, qui est le système d'initialisation de GuixSD — 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})."
+#: doc/guix.texi:25096
+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:23225
+#: doc/guix.texi:25102
 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:23227
+#: doc/guix.texi:25104
 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:23231
+#: doc/guix.texi:25108
 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:23235
-msgid "The @var{%shepherd-root-service} is a service object representing PID@tie{}1, of type @var{shepherd-root-service-type}; it can be extended by passing it lists of @code{<shepherd-service>} objects."
+#: doc/guix.texi:25112
+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:23236
+#: doc/guix.texi:25113
 #, no-wrap
 msgid "{Data Type} shepherd-service"
 msgstr "{Type de données} shepherd-service"
 
 #. type: deftp
-#: doc/guix.texi:23238
+#: doc/guix.texi:25115
 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:23240
+#: doc/guix.texi:25117
 #, no-wrap
 msgid "provision"
 msgstr "provision"
 
 #. type: table
-#: doc/guix.texi:23242
+#: doc/guix.texi:25119
 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:23247
+#: doc/guix.texi:25124
 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:23248
+#: doc/guix.texi:25125
 #, no-wrap
 msgid "@code{requirements} (default: @code{'()})"
 msgstr "@code{requirements} (par défaut : @code{'()})"
 
 #. type: table
-#: doc/guix.texi:23250
+#: doc/guix.texi:25127
 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:25128
+#, no-wrap
+msgid "one-shot services, for the Shepherd"
+msgstr "services ponctuels, pour le Shepherd"
+
+#. type: table
+#: doc/guix.texi:25133
+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:23251
+#: doc/guix.texi:25134
 #, no-wrap
 msgid "@code{respawn?} (default: @code{#t})"
 msgstr "@code{respawn?} (par défaut : @code{#t})"
 
 #. type: table
-#: doc/guix.texi:23254
+#: doc/guix.texi:25137
 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:23255
+#: doc/guix.texi:25138
 #, no-wrap
 msgid "start"
 msgstr "start"
 
 #. type: itemx
-#: doc/guix.texi:23256
+#: doc/guix.texi:25139
 #, no-wrap
 msgid "@code{stop} (default: @code{#~(const #f)})"
 msgstr "@code{stop} (par défaut : @code{#~(const #f)})"
 
 #. type: table
-#: doc/guix.texi:23262
+#: doc/guix.texi:25145
 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:23263
+#: doc/guix.texi:25146
 #, no-wrap
 msgid "@code{actions} (default: @code{'()})"
 msgstr "@code{actions} (par défaut : @code{'()})"
 
 #. type: cindex
-#: doc/guix.texi:23264
+#: doc/guix.texi:25147
 #, no-wrap
 msgid "actions, of Shepherd services"
 msgstr "action, des services Shepherd"
 
 #. type: table
-#: doc/guix.texi:23269
+#: doc/guix.texi:25152
 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}."
+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:23272
+#: doc/guix.texi:25155
 #, no-wrap
 msgid "herd @var{action} @var{service} [@var{arguments}@dots{}]\n"
 msgstr "herd @var{action} @var{service} [@var{arguments}@dots{}]\n"
 
 #. type: table
-#: doc/guix.texi:23276
+#: doc/guix.texi:25159
 msgid "A documentation string, as shown when running:"
 msgstr "Une chaîne de documentation, montrée lorsqu'on lance :"
 
 #. type: example
-#: doc/guix.texi:23279
+#: doc/guix.texi:25162
 #, no-wrap
 msgid "herd doc @var{service-name}\n"
 msgstr "herd doc @var{service-name}\n"
 
 #. type: table
-#: doc/guix.texi:23283
-msgid "where @var{service-name} is one of the symbols in @var{provision} (@pxref{Invoking herd,,, shepherd, The GNU Shepherd Manual})."
+#: doc/guix.texi:25166
+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:23284
+#: doc/guix.texi:25167
 #, no-wrap
-msgid "@code{modules} (default: @var{%default-modules})"
-msgstr "@code{modules} (par défaut : @var{%default-modules})"
+msgid "@code{modules} (default: @code{%default-modules})"
+msgstr "@code{modules} (par défaut : @code{%default-modules})"
 
 #. type: table
-#: doc/guix.texi:23287
+#: doc/guix.texi:25170
 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:23291
+#: doc/guix.texi:25174
 #, no-wrap
 msgid "{Data Type} shepherd-action"
 msgstr "{Type de données} shepherd-action"
 
 #. type: deftp
-#: doc/guix.texi:23294
+#: doc/guix.texi:25177
 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:23298
+#: doc/guix.texi:25181
 msgid "Symbol naming the action."
-msgstr "Symbole nommant l'action"
+msgstr "Symbole nommant l'action."
 
 #. type: table
-#: doc/guix.texi:23301
+#: doc/guix.texi:25184
 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:23304
+#: doc/guix.texi:25187
 #, 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:23306
+#: doc/guix.texi:25189
 #, no-wrap
 msgid "procedure"
 msgstr "procedure"
 
 #. type: table
-#: doc/guix.texi:23310
+#: doc/guix.texi:25193
 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:23314
+#: doc/guix.texi:25197
 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:23323
+#: doc/guix.texi:25206
 #, no-wrap
 msgid ""
 "(shepherd-action\n"
@@ -42550,12 +46377,12 @@ msgstr ""
 "                 #t)))\n"
 
 #. type: deftp
-#: doc/guix.texi:23326
+#: doc/guix.texi:25209
 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:23332
+#: doc/guix.texi:25215
 #, no-wrap
 msgid ""
 "# herd say-hello example\n"
@@ -42569,79 +46396,79 @@ msgstr ""
 "Salut, l'ami ! arguments : (\"a\" \"b\" \"c\")\n"
 
 #. type: deftp
-#: doc/guix.texi:23337
+#: doc/guix.texi:25220
 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:23339
+#: doc/guix.texi:25222
 #, no-wrap
 msgid "{Scheme Variable} shepherd-root-service-type"
 msgstr "{Variable Scheme} shepherd-root-service-type"
 
 #. type: defvr
-#: doc/guix.texi:23341
+#: doc/guix.texi:25224
 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:23345
+#: doc/guix.texi:25228
 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:23347
+#: doc/guix.texi:25230
 #, no-wrap
 msgid "{Scheme Variable} %shepherd-root-service"
 msgstr "{Variable Scheme} %shepherd-root-service"
 
 #. type: defvr
-#: doc/guix.texi:23349
+#: doc/guix.texi:25232
 msgid "This service represents PID@tie{}1."
 msgstr "Ce service représente le PID@tie{}1."
 
 #. type: cindex
-#: doc/guix.texi:23355
+#: doc/guix.texi:25238
 #, no-wrap
 msgid "documentation, searching for"
 msgstr "documentation, recherche"
 
 #. type: cindex
-#: doc/guix.texi:23356
+#: doc/guix.texi:25239
 #, no-wrap
 msgid "searching for documentation"
 msgstr "chercher de la documentation"
 
 #. type: cindex
-#: doc/guix.texi:23357
+#: doc/guix.texi:25240
 #, no-wrap
 msgid "Info, documentation format"
 msgstr "Info, format de documentation"
 
 #. type: cindex
-#: doc/guix.texi:23358
+#: doc/guix.texi:25241
 #, no-wrap
 msgid "man pages"
 msgstr "man, pages de manuel"
 
 #. type: cindex
-#: doc/guix.texi:23359
+#: doc/guix.texi:25242
 #, no-wrap
 msgid "manual pages"
 msgstr "pages de manuel"
 
 #. type: Plain text
-#: doc/guix.texi:23366
+#: doc/guix.texi:25249
 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:23370
+#: doc/guix.texi:25253
 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:23378
+#: doc/guix.texi:25261
 #, no-wrap
 msgid ""
 "$ info -k TLS\n"
@@ -42659,12 +46486,12 @@ msgstr ""
 "@dots{}\n"
 
 #. type: Plain text
-#: doc/guix.texi:23382
+#: doc/guix.texi:25265
 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:23388
+#: doc/guix.texi:25271
 #, no-wrap
 msgid ""
 "$ man -k TLS\n"
@@ -42678,108 +46505,108 @@ msgstr ""
 "@dots {}\n"
 
 #. type: Plain text
-#: doc/guix.texi:23394
+#: doc/guix.texi:25277
 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:23397
+#: doc/guix.texi:25280
 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:23400
+#: doc/guix.texi:25283
 #, no-wrap
 msgid "$ info \"(gnutls)Core TLS API\"\n"
 msgstr "$ info \"(gnutls)Core TLS API\"\n"
 
 #. type: Plain text
-#: doc/guix.texi:23404
+#: doc/guix.texi:25287
 msgid "or:"
 msgstr "ou :"
 
 #. type: example
-#: doc/guix.texi:23407
+#: doc/guix.texi:25290
 #, no-wrap
 msgid "$ man certtool\n"
 msgstr "$ man certtool\n"
 
 #. type: Plain text
-#: doc/guix.texi:23415
+#: doc/guix.texi:25298
 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:23419
+#: doc/guix.texi:25302
 #, no-wrap
 msgid "debugging files"
 msgstr "fichiers de débogage"
 
 #. type: Plain text
-#: doc/guix.texi:23425
+#: doc/guix.texi:25308
 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:23433
+#: doc/guix.texi:25316
 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:23440
+#: doc/guix.texi:25323
 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:23448
+#: doc/guix.texi:25331
 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."
+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:23451
+#: doc/guix.texi:25334
 #, no-wrap
 msgid "guix package -i glibc:debug guile:debug\n"
 msgstr "guix package -i glibc:debug guile:debug\n"
 
 #. type: Plain text
-#: doc/guix.texi:23457
+#: doc/guix.texi:25340
 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:23460
+#: doc/guix.texi:25343
 #, 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:23464
+#: doc/guix.texi:25347
 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}."
 
 #. type: Plain text
-#: doc/guix.texi:23471
+#: doc/guix.texi:25354
 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:23480
+#: doc/guix.texi:25363
 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})."
 
 #. type: cindex
-#: doc/guix.texi:23485
+#: doc/guix.texi:25368
 #, no-wrap
 msgid "security updates"
 msgstr "mises à jour de sécurité"
 
 #. type: Plain text
-#: doc/guix.texi:23494
+#: doc/guix.texi:25377
 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éveloppeurs 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 les développeurs à trouver les versions vulnérables des paquets logiciels dans la distribution."
+msgstr "Parfois, des vulnérabilités importantes sont découvertes dans les paquets logiciels et doivent être corrigées.  Les développeurs 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 les développeurs à trouver les versions vulnérables des paquets logiciels dans la distribution :"
 
 #. type: smallexample
-#: doc/guix.texi:23501
+#: doc/guix.texi:25384
 #, no-wrap
 msgid ""
 "$ guix lint -c cve\n"
@@ -42795,44 +46622,44 @@ msgstr ""
 "@dots{}\n"
 
 #. type: Plain text
-#: doc/guix.texi:23504
+#: doc/guix.texi:25387
 msgid "@xref{Invoking guix lint}, for more information."
 msgstr "@xref{Invoking guix lint}, pour plus d'informations."
 
 #. type: quotation
-#: doc/guix.texi:23508
+#: doc/guix.texi:25391
 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:23518
+#: doc/guix.texi:25401
 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:23519
+#: doc/guix.texi:25402
 #, no-wrap
 msgid "grafts"
 msgstr "greffes"
 
 #. type: Plain text
-#: doc/guix.texi:23527
+#: doc/guix.texi:25410
 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:23528
+#: doc/guix.texi:25411
 #, no-wrap
 msgid "replacements of packages, for grafts"
 msgstr "remplacement de paquet, pour les greffes"
 
 #. type: Plain text
-#: doc/guix.texi:23534
-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 @var{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 le correctif de sécurité :"
+#: doc/guix.texi:25417
+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:23541
+#: doc/guix.texi:25424
 #, no-wrap
 msgid ""
 "(define bash\n"
@@ -42848,640 +46675,120 @@ msgstr ""
 "    (replacement bash-fixed)))\n"
 
 #. type: Plain text
-#: doc/guix.texi:23551
-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 @var{bash-fixed} instead of @var{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."
+#: doc/guix.texi:25434
+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:23559
-msgid "Currently, the length of the name and version of the graft and that of the package it replaces (@var{bash-fixed} and @var{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."
+#: doc/guix.texi:25442
+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:23563
+#: doc/guix.texi:25446
 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:23566
+#: doc/guix.texi:25449
 #, no-wrap
 msgid "guix build bash --no-grafts\n"
 msgstr "guix build bash --no-grafts\n"
 
 #. type: Plain text
-#: doc/guix.texi:23570
+#: doc/guix.texi:25453
 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:23573
+#: doc/guix.texi:25456
 #, no-wrap
 msgid "guix build bash\n"
 msgstr "guix build bash\n"
 
 #. type: Plain text
-#: doc/guix.texi:23578
+#: doc/guix.texi:25461
 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:23581
+#: doc/guix.texi:25464
 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:23584
+#: doc/guix.texi:25467
 #, 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:23589
-msgid "@dots{} and compare the store file names that you get with those above.  Likewise for a complete GuixSD 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 GuixSD :"
+#: doc/guix.texi:25472
+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:23592
+#: doc/guix.texi:25475
 #, 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:23596
+#: doc/guix.texi:25479
 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:23599
+#: doc/guix.texi:25482
 #, no-wrap
 msgid "lsof | grep /gnu/store/.*bash\n"
 msgstr "lsof | grep /gnu/store/.*bash\n"
 
-#. type: Plain text
-#: doc/guix.texi:23616
-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:23623
-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 package -i 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 package -i 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:23625
-#, no-wrap
-msgid "package module search path"
-msgstr "chemin de recherche des modules de paquets"
-
-#. type: Plain text
-#: doc/guix.texi:23634
-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 :"
-
-#. type: enumerate
-#: doc/guix.texi:23641
-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."
-
-#. type: enumerate
-#: doc/guix.texi:23647
-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."
-
-#. type: Plain text
-#: doc/guix.texi:23650
-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 :"
-
-#. type: defvr
-#: doc/guix.texi:23651
-#, no-wrap
-msgid "{Environment Variable} GUIX_PACKAGE_PATH"
-msgstr "{Variable d'environnement} GUIX_PACKAGE_PATH"
-
-#. type: defvr
-#: doc/guix.texi:23655
-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:23663
-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: cindex
-#: doc/guix.texi:23667
-#, no-wrap
-msgid "packages, creating"
-msgstr "paquets, création"
-
-#. type: Plain text
-#: doc/guix.texi:23672
-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.  @xref{Contributing}, for additional information on how you can help."
-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.  @xref{Contributing} pour des informations supplémentaires sur les différentes manière de nous aider."
-
-#. type: Plain text
-#: doc/guix.texi:23680
-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."
-
-#. type: Plain text
-#: doc/guix.texi:23689
-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/guix.texi:23695
-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/guix.texi:23698
-#, 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/guix.texi:23704
-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/guix.texi:23709
-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/guix.texi:23712
-#, 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/guix.texi:23720
-msgid "Once your package builds correctly, please send us a patch (@pxref{Contributing}).  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 commité 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}."
-
-#. type: cindex
-#: doc/guix.texi:23721
-#, no-wrap
-msgid "substituter"
-msgstr "substitution"
-
-#. type: Plain text
-#: doc/guix.texi:23728
-msgid "Users can obtain the new package definition simply by running @command{guix pull} (@pxref{Invoking guix pull}).  When @code{hydra.gnu.org} 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{hydra.gnu.org} 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: cindex
-#: doc/guix.texi:23745
-#, no-wrap
-msgid "free software"
-msgstr "logiciel libre"
-
-#. type: Plain text
-#: doc/guix.texi:23753
-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 utilisateurs puissent utiliser leur ordinateur en toute liberté.  GNU est un @dfn{logiciel libre}, ce qui signifie que les utilisateur ont les @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."
-
-#. type: Plain text
-#: doc/guix.texi:23759
-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."
-
-#. type: Plain text
-#: doc/guix.texi:23767
-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/guix.texi:23772
-#, no-wrap
-msgid "package name"
-msgstr "nom du paquet"
-
-#. type: Plain text
-#: doc/guix.texi:23780
-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/guix.texi:23785
-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/guix.texi:23790
-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/guix.texi:23792
-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/guix.texi:23797
-#, no-wrap
-msgid "package version"
-msgstr "version du paquet"
-
-#. type: Plain text
-#: doc/guix.texi:23806
-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/guix.texi:23809
-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/guix.texi:23811
-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/guix.texi:23823
-#, no-wrap
-msgid ""
-"(define-public gtk+\n"
-"  (package\n"
-"    (name \"gtk+\")\n"
-"    (version \"3.9.12\")\n"
-"    ...))\n"
-"(define-public gtk+-2\n"
-"  (package\n"
-"    (name \"gtk+\")\n"
-"    (version \"2.24.20\")\n"
-"    ...))\n"
-msgstr ""
-"(define-public gtk+\n"
-"  (package\n"
-"    (name \"gtk+\")\n"
-"    (version \"3.9.12\")\n"
-"    ...))\n"
-"(define-public gtk+-2\n"
-"  (package\n"
-"    (name \"gtk+\")\n"
-"    (version \"2.24.20\")\n"
-"    ...))\n"
-
-#. type: Plain text
-#: doc/guix.texi:23825
-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 :"
-
-#. type: example
-#: doc/guix.texi:23831
-#, no-wrap
-msgid ""
-"(define-public gtk+-3.8\n"
-"  (package\n"
-"    (name \"gtk+\")\n"
-"    (version \"3.8.2\")\n"
-"    ...))\n"
-msgstr ""
-"(define-public gtk+-3.8\n"
-"  (package\n"
-"    (name \"gtk+\")\n"
-"    (version \"3.8.2\")\n"
-"    ...))\n"
-
-#. type: cindex
-#: doc/guix.texi:23835
-#, 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/guix.texi:23841
-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/guix.texi:23849
-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/guix.texi:23858
-#, no-wrap
-msgid ""
-"2.0.11-3.cabba9e\n"
-"  ^    ^    ^\n"
-"  |    |    `-- upstream commit ID\n"
-"  |    |\n"
-"  |    `--- Guix package revision\n"
-"  |\n"
-"latest upstream version\n"
-msgstr ""
-"2.0.11-3.cabba9e\n"
-"  ^    ^    ^\n"
-"  |    |    `-- ID du commit en amont\n"
-"  |    |\n"
-"  |    `--- révision du paquet Guix\n"
-"  |\n"
-"dernière version en amont\n"
-
-#. type: Plain text
-#: doc/guix.texi:23867
-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 :"
-
-#. type: example
-#: doc/guix.texi:23883
-#, no-wrap
-msgid ""
-"(define my-package\n"
-"  (let ((commit \"c3f29bc928d5900971f65965feaae59e1272a3f7\")\n"
-"        (revision \"1\"))          ;Guix package revision\n"
-"    (package\n"
-"      (version (git-version \"0.9\" revision commit))\n"
-"      (source (origin\n"
-"                (method git-fetch)\n"
-"                (uri (git-reference\n"
-"                      (url \"git://example.org/my-package.git\")\n"
-"                      (commit commit)))\n"
-"                (sha256 (base32 \"1mbikn@dots{}\"))\n"
-"                (file-name (git-file-name name version))))\n"
-"      ;; @dots{}\n"
-"      )))\n"
-msgstr ""
-"(define my-package\n"
-"  (let ((commit \"c3f29bc928d5900971f65965feaae59e1272a3f7\")\n"
-"        (revision \"1\"))          ;révision du paquet Guix\n"
-"    (package\n"
-"      (version (git-version \"0.9\" revision commit))\n"
-"      (source (origin\n"
-"                (method git-fetch)\n"
-"                (uri (git-reference\n"
-"                      (url \"git://example.org/my-package.git\")\n"
-"                      (commit commit)))\n"
-"                (sha256 (base32 \"1mbikn@dots{}\"))\n"
-"                (file-name (git-file-name name version))))\n"
-"      ;; @dots{}\n"
-"      )))\n"
-
-#. type: cindex
-#: doc/guix.texi:23888
-#, no-wrap
-msgid "package description"
-msgstr "description du paquet"
-
-#. type: cindex
-#: doc/guix.texi:23889
-#, no-wrap
-msgid "package synopsis"
-msgstr "résumé du paquet"
-
-#. type: Plain text
-#: doc/guix.texi:23896
-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 utilisateurs à déterminer si un paquet donner correspond à leurs besoins.  En conséquence, les mainteneurs doivent prêter attention à leur contenu."
-
-#. type: Plain text
-#: doc/guix.texi:23904
-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/guix.texi:23914
-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 à l'utilisateur pour savoir si c'est ce qu'il recherche."
-
-#. type: Plain text
-#: doc/guix.texi:23922
-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 pour les utilisateurs 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/guix.texi:23923
-#, no-wrap
-msgid "Texinfo markup, in package descriptions"
-msgstr "balisage texinfo, dans les descriptions de paquets"
-
-#. type: Plain text
-#: doc/guix.texi:23932
-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 interfaces utilisateurs comme @command{guix package --show} prennent en charge le rendu."
-
-#. type: Plain text
-#: doc/guix.texi:23938
-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 d'utilisateurs possible puissent les lire dans leur langue natale.  Les interfaces utilisateurs les recherchent et les affichent dans la langue spécifiée par le paramètre de régionalisation actuel."
-
-#. type: Plain text
-#: doc/guix.texi:23943
-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/guix.texi:23949
-#, no-wrap
-msgid ""
-"(package\n"
-"  ;; @dots{}\n"
-"  (synopsis \"This is translatable\")\n"
-"  (description (string-append \"This is \" \"*not*\" \" translatable.\")))\n"
-msgstr ""
-"(package\n"
-"  ;; @dots{}\n"
-"  (synopsis \"Ceci est traduisible\")\n"
-"  (description (string-append \"Ceci n'est \" \"*pas*\" \" traduisible.\")))\n"
-
-#. type: Plain text
-#: doc/guix.texi:23957
-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, donc en tant que packageur, faîtes encore plus attention à vos résumés et descriptions car chaque changement peut demander d'autant plus de travail de la part des traducteurs.  Pour les aider, il est possible de donner des recommandations ou des instructions qu'ils pourront voir en insérant des commentaires spéciaux comme ceci (@pxref{xgettext Invocation,,, gettext, GNU Gettext}) :"
-
-#. type: example
-#: doc/guix.texi:23962
-#, no-wrap
-msgid ""
-";; TRANSLATORS: \"X11 resize-and-rotate\" should not be translated.\n"
-"(description \"ARandR is designed to provide a simple visual front end\n"
-"for the X11 resize-and-rotate (RandR) extension. @dots{}\")\n"
-msgstr ""
-";; TRANSLATORS: \"X11 resize-and-rotate\" should not be translated.\n"
-"(description \"ARandR is designed to provide a simple visual front end\n"
-"for the X11 resize-and-rotate (RandR) extension. @dots{}\")\n"
-
-#. type: cindex
-#: doc/guix.texi:23968
-#, no-wrap
-msgid "python"
-msgstr "python"
-
-#. type: Plain text
-#: doc/guix.texi:23974
-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/guix.texi:23980
-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."
-
-#. type: Plain text
-#: doc/guix.texi:23986
-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/guix.texi:23987
-#, no-wrap
-msgid "Specifying Dependencies"
-msgstr "Spécifier les dépendances"
-
-#. type: cindex
-#: doc/guix.texi:23988
-#, no-wrap
-msgid "inputs, for Python packages"
-msgstr "entrées, pour les paquets Python"
-
-#. type: Plain text
-#: doc/guix.texi:23993
-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/guix.texi:23999
-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/guix.texi:24007
-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/guix.texi:24013
-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/guix.texi:24021
-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/guix.texi:24025
-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/guix.texi:24030
-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/guix.texi:24036
-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/guix.texi:24043
-#, no-wrap
-msgid "perl"
-msgstr "perl"
-
-#. type: Plain text
-#: doc/guix.texi:24054
-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/guix.texi:24059
-#, no-wrap
-msgid "java"
-msgstr "java"
-
-#. type: Plain text
-#: doc/guix.texi:24062
-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/guix.texi:24068
-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/guix.texi:24074
-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: Plain text
-#: doc/guix.texi:24085
-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 n esont en général par installées par un utilisateurs 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/guix.texi:24089
-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'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/guix.texi:24097
-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/guix.texi:24106
-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/guix.texi:24112
-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: cindex
-#: doc/guix.texi:24120
+#: doc/guix.texi:25490
 #, no-wrap
 msgid "bootstrapping"
 msgstr "bootstrap"
 
 #. type: Plain text
-#: doc/guix.texi:24130
+#: doc/guix.texi:25500
 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:24131 doc/guix.texi:24253
+#: doc/guix.texi:25501 doc/guix.texi:25623
 #, no-wrap
 msgid "bootstrap binaries"
 msgstr "binaires de bootstrap"
 
 #. type: Plain text
-#: doc/guix.texi:24141
+#: doc/guix.texi:25511
 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:24144
+#: doc/guix.texi:25514
 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)."
 
-#. type: unnumberedsubsec
-#: doc/guix.texi:24145
+#. type: unnumberedsec
+#: doc/guix.texi:25515
 #, no-wrap
 msgid "Preparing to Use the Bootstrap Binaries"
 msgstr "Se préparer à utiliser les binaires de bootstrap"
 
 #. type: Plain text
-#: doc/guix.texi:24150
+#: doc/guix.texi:25520
 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:24155
+#: doc/guix.texi:25525
 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:24160
+#: doc/guix.texi:25530
 #, no-wrap
 msgid ""
 "guix graph -t derivation \\\n"
@@ -43493,43 +46800,43 @@ msgstr ""
 "  | dot -Tps > t.ps\n"
 
 #. type: Plain text
-#: doc/guix.texi:24169
+#: doc/guix.texi:25539
 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:24178
+#: doc/guix.texi:25548
 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:24190
+#: doc/guix.texi:25560
 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})."
 
 #. type: Plain text
-#: doc/guix.texi:24194
+#: doc/guix.texi:25564
 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."
 
-#. type: unnumberedsubsec
-#: doc/guix.texi:24196
+#. type: unnumberedsec
+#: doc/guix.texi:25566
 #, no-wrap
 msgid "Building the Build Tools"
 msgstr "Construire les outils de construction"
 
 #. type: Plain text
-#: doc/guix.texi:24205
+#: doc/guix.texi:25575
 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:24212
+#: doc/guix.texi:25582
 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:24217
+#: doc/guix.texi:25587
 #, no-wrap
 msgid ""
 "guix graph -t bag \\\n"
@@ -43541,158 +46848,385 @@ msgstr ""
 "          glibc-final-with-bootstrap-bash)' | dot -Tps > t.ps\n"
 
 #. type: Plain text
-#: doc/guix.texi:24224
+#: doc/guix.texi:25594
 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 :"
 
 #. type: Plain text
-#: doc/guix.texi:24226
+#: doc/guix.texi:25596
 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:24232
+#: doc/guix.texi:25602
 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:24237
+#: doc/guix.texi:25607
 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."
 
 #. type: Plain text
-#: doc/guix.texi:24243
+#: doc/guix.texi:25613
 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."
 
 #. type: Plain text
-#: doc/guix.texi:24249
+#: doc/guix.texi:25619
 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: unnumberedsubsec
-#: doc/guix.texi:24251
+#. type: unnumberedsec
+#: doc/guix.texi:25621
 #, no-wrap
 msgid "Building the Bootstrap Binaries"
 msgstr "Construire les binaires de bootstrap"
 
 #. type: Plain text
-#: doc/guix.texi:24258
+#: doc/guix.texi:25628
 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:24262
+#: doc/guix.texi:25632
 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) :"
 
 #. type: example
-#: doc/guix.texi:24265
+#: doc/guix.texi:25635
 #, no-wrap
 msgid "guix build bootstrap-tarballs\n"
 msgstr "guix build bootstrap-tarballs\n"
 
 #. type: Plain text
-#: doc/guix.texi:24270
+#: doc/guix.texi:25640
 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:24276
+#: doc/guix.texi:25646
 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: unnumberedsubsec
-#: doc/guix.texi:24277
+#. type: unnumberedsec
+#: doc/guix.texi:25647
 #, no-wrap
 msgid "Reducing the Set of Bootstrap Binaries"
 msgstr "Réduire l'ensemble des binaires de bootstrap"
 
 #. type: Plain text
-#: doc/guix.texi:24285
+#: doc/guix.texi:25655
 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}."
 
 #. type: Plain text
-#: doc/guix.texi:24291
+#: doc/guix.texi:25661
 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:24297
+#: doc/guix.texi:25667
 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 !"
 
-#. type: section
-#: doc/guix.texi:24300
+#. type: chapter
+#: doc/guix.texi:25670
 #, no-wrap
 msgid "Porting to a New Platform"
 msgstr "Porter vers une nouvelle plateforme"
 
 #. type: Plain text
-#: doc/guix.texi:24309
+#: doc/guix.texi:25679
 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:24314
+#: doc/guix.texi:25684
 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:24317
+#: doc/guix.texi:25687
 #, 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:24324
+#: doc/guix.texi:25694
 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:24333
+#: doc/guix.texi:25703
 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:24342
+#: doc/guix.texi:25712
 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."
 
 #. type: include
-#: doc/guix.texi:24344
+#: doc/guix.texi:25714
 #, no-wrap
 msgid "contributing.texi"
 msgstr "contributing.fr.texi"
 
 #. type: Plain text
-#: doc/guix.texi:24357
+#: doc/guix.texi:25727
 msgid "Guix is based on the @uref{http://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{http://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:24360
+#: doc/guix.texi:25730
 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:24366
+#: doc/guix.texi:25736
 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:24371
+#: doc/guix.texi:25741
 #, no-wrap
 msgid "license, GNU Free Documentation License"
 msgstr "license, GNU Free Documentation License"
 
 #. type: include
-#: doc/guix.texi:24372
+#: doc/guix.texi:25742
 #, no-wrap
 msgid "fdl-1.3.texi"
 msgstr "fdl-1.3.texi"
 
+#~ 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})."
+
+#~ 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 "Le procédé d'installation n'a pas d'interface utilisateur graphique et requiert une certaine familiarité avec GNU/Linux (voir les sous-sections suivantes pour avoir un aperçu de ce que cela signifie)."
+
+#~ msgid "More than 8,500 packages are available, but you might occasionally find that a useful package is missing."
+#~ msgstr "Plus de 8@tie{}500 paquets sont disponibles, mais vous pourrez parfois trouver qu'un paquet utile est absent."
+
+#~ msgid "@code{modules} (default: @var{%default-modules})"
+#~ msgstr "@code{modules} (par défaut : @var{%default-modules})"
+
+#~ msgid "Software for your friendly GNU system."
+#~ msgstr "Des logiciels pour un système GNU convivial."
+
+#~ msgid "The real thing."
+#~ msgstr "Pour de vrai."
+
+#~ msgid "GuixSD"
+#~ msgstr "GuixSD"
+
+#~ msgid "Note that 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}."
+#~ msgstr "Remarquez que cette section concerne l'installation du gestionnaire de paquet, ce qui se fait sur un système GNU/Linux en cours d'exécution.  Si vous souhaitez plutôt installer le système d'exploitation GNU complet, @pxref{System Installation}."
+
+#~ msgid "We provide a @uref{https://git.savannah.gnu.org/cgit/guix.git/plain/etc/guix-install.sh, shell installer script}, which automates the download, installation, and initial configuration of Guix.  It should be run as the root user."
+#~ msgstr "Nous fournissons un script @uref{https://git.savannah.gnu.org/cgit/guix.git/plain/etc/guix-install.sh, script d'intallation shell} qui automatise le téléchargement, l'installation et la configuration initiale de Guix.  Il devrait être lancé en tant qu'utilisateur root."
+
+#~ msgid "later, including 2.2.x;"
+#~ msgstr "supérieure, dont 2.2.x,"
+
+#~ msgid "Installing @url{http://savannah.nongnu.org/projects/guile-json/, Guile-JSON} will allow you to use the @command{guix import pypi} command (@pxref{Invoking guix import}).  It is of interest primarily for developers and not for casual users."
+#~ msgstr "Installer @url{http://savannah.nongnu.org/projects/guile-json/, Guile-JSON} vous permettra d'utiliser la commande @command{guix import pypi} (@pxref{Invoking guix import}).  Il est surtout utile pour les développeurs et pas pour les utilisateurs occasionnels."
+
+#~ msgid "attempt to use impure library, error message"
+#~ msgstr "tentative d'utiliser une bibliothèque impure, message d'erreur"
+
+#~ msgid "Produce verbose output.  In particular, emit the build log of the environment on the standard error port."
+#~ msgstr "Produire une sortie verbeuse.  En particulier, fournir les journaux de construction de l'environnement sur le port d'erreur standard."
+
+#~ 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."
+
+#~ msgid "@command{guix environment} also supports all of the common build options that @command{guix build} supports (@pxref{Common Build Options})."
+#~ msgstr "@command{guix environment} supporte aussi toutes les options de construction que @command{guix build} supporte (@pxref{Common Build Options})."
+
+#~ msgid "GuixSD itself is currently only available on @code{i686} and @code{x86_64}."
+#~ msgstr "GuixSD lui-même est actuellement disponible sur @code{i686} et @code{x86_64}."
+
+#~ msgid "upgrading GuixSD"
+#~ msgstr "mettre à jour GuixSD"
+
+#~ msgid "(cons* (avahi-service) (lsh-service) %base-services)\n"
+#~ msgstr "(cons* (avahi-service) (lsh-service) %base-services)\n"
+
+#~ msgid "keyboard"
+#~ msgstr "clavier"
+
+#~ msgid "{Scheme Procedure} console-keymap-service @var{files} ..."
+#~ msgstr "{Procédure Scheme} console-keymap-service @var{files} ..."
+
+#~ 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 "Renvoie un service qui charge les dispositions claviers de @var{files} avec la commande @command{loadkeys}.  Vraisemblablement, vous voudrez charger une disposition par défaut, ce qui se fait ainsi :"
+
+#~ 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 "Ou par exemple pour un clavier suédois, vous pourriez avoir besoin de combiner les dispositions suivantes :"
+
+#~ 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 "Vous pouvez aussi spécifier le nom de fichier (ou les noms de fichiers) complets de vos dispositions.  Voir @code{man loadkeys} pour des détails."
+
+#~ msgid "{Scheme Procedure} mcron-service @var{jobs} [#:mcron @var{mcron}]"
+#~ msgstr "{Procédure Scheme} mcron-service @var{jobs} [#:mcron @var{mcron}]"
+
+#~ msgid "Return an mcron service running @var{mcron} that schedules @var{jobs}, a list of gexps denoting mcron job specifications."
+#~ msgstr "Renvoie un service mcron qui lance @var{mcron} qui planifie les tâches @var{jobs}, une liste de gexps qui dénotent des spécifications de tâches de mcron."
+
+#~ msgid "This is a shorthand for:"
+#~ msgstr "C'est un raccourci pour :"
+
+#~ msgid ""
+#~ "(service mcron-service-type\n"
+#~ "         (mcron-configuration (mcron mcron) (jobs jobs)))\n"
+#~ msgstr ""
+#~ "(service mcron-service-type\n"
+#~ "         (mcron-configuration (mcron mcron) (jobs jobs)))\n"
+
+#~ msgid "{Scheme Procedure} tor-service [@var{config-file}] [#:tor @var{tor}]"
+#~ msgstr "{Procédure Scheme} tor-service [@var{config-file}] [#:tor @var{tor}]"
+
+#~ msgid "This procedure is deprecated and will be removed in a future release.  Return a service of the @code{tor-service-type} type.  @var{config-file} and @var{tor} have the same meaning as in @code{<tor-configuration>}."
+#~ msgstr "Cette procédure est obsolète et sera supprimée dans les futures versions.  Renvoie un service de type @code{tor-service-type}.  @var{config-file} et @var{tor} ont la même signification que dans @code{<tor-configuration>}."
+
+#~ msgid "{Scheme Procedure} avahi-service [#:avahi @var{avahi}] @"
+#~ msgstr "{Procédure Scheme} avahi-service [#:avahi @var{avahi}] @"
+
+#~ msgid "[#:host-name #f] [#:publish? #t] [#:ipv4? #t] @ [#:ipv6? #t] [#:wide-area? #f] @ [#:domains-to-browse '()] [#:debug? #f] Return a 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{http://avahi.org/}), and 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}.  Additionally, add the @var{avahi} package to the system profile so that commands such as @command{avahi-browse} are directly usable."
+#~ msgstr ""
+#~ "[#:host-name #f] [#:publish? #t] [#:ipv4? #t] @\n"
+#~ "[#:ipv6? #t] [#:wide-area? #f] @\n"
+#~ "[#:domains-to-browse '()] [#:debug? #f]\n"
+#~ "Renvoie un service qui lance @command{avahi-daemon}, un serveur qui répond aux requêtes mDNS/DNS-SD qui permet de découvrir des services et de chercher des noms d'hôtes « sans configuration » (voir @uref{http://avahi.org/}) et qui étend le démon de cache de services de noms (nscd) pour qu'il puisse résoudre des noms en @code{.local} avec @uref{http://0pointer.de/lennart/projects/nss-mdns/, nss-mdns}.  En plus, ajoute le paquet @var{avahi} au profil du système pour que les commandes comme @command{avahi-browse} soient directement utilisables."
+
+#~ msgid "When @var{publish?} is true, publishing of host names and services is allowed; in particular, avahi-daemon will publish the machine's host name and IP address via mDNS on the local network."
+#~ msgstr "Lorsque la valeur de @var{publish?} est vraie, la publication des noms d'hôtes et des domaines sont autorisés ; en particulier, avahi-daemon publiera le nom d'hôte et l'adresse IP de la machine via mDNS sur le réseau local."
+
+#~ msgid "@code{startx} (default: @code{(xorg-start-command)})"
+#~ msgstr "@code{startx} (par défaut : @code{(xorg-start-command)})"
+
+#~ msgid "@code{xorg-server-path} (default @code{xorg-start-command})"
+#~ msgstr "@code{xorg-server-path} (par défaut : @code{xorg-start-command})"
+
+#~ msgid "Path to xorg-server."
+#~ msgstr "Chemin vers xorg-server."
+
+#~ msgid "@code{xserver-arguments} (default \"-nolisten tcp\")"
+#~ msgstr "@code{xserver-arguments} (par défaut : \"-nolisten tcp\")"
+
+#~ msgid "Arguments to pass to xorg-server."
+#~ msgstr "Arguments à passer à xorg-server."
+
+#~ msgid "[#:modules %default-xorg-modules] @ [#:fonts %default-xorg-fonts] @ [#:configuration-file (xorg-configuration-file @dots{})] @ [#:xorg-server @var{xorg-server}] Return a @code{startx} script in which @var{modules}, a list of X module packages, and @var{fonts}, a list of X font directories, are available.  See @code{xorg-wrapper} for more details on the arguments.  The result should be used in place of @code{startx}."
+#~ msgstr ""
+#~ "[#:modules %default-xorg-modules] @\n"
+#~ "[#:fonts %default-xorg-fonts] @\n"
+#~ "[#:configuration-file (xorg-configuration-file @dots{})] @\n"
+#~ "[#:xorg-server @var{xorg-server}]\n"
+#~ "Renvoie un script @code{startx} dans lequel @var{modules}, une liste de paquets de modules X et @var{fonts}, une liste de répertoires de polices X, sont disponibles.  Voir @code{xorg-wrapper} pour plus de détails sur les arguments.  Le résultat devrait être utilisé à la place de @code{startx}."
+
+#~ msgid "[#:modules %default-xorg-modules] @ [#:fonts %default-xorg-fonts] @ [#:drivers '()] [#:resolutions '()] [#:extra-config '()] Return a configuration file for the Xorg server containing search paths for all the common drivers."
+#~ msgstr ""
+#~ "[#:modules %default-xorg-modules] @\n"
+#~ "[#:fonts %default-xorg-fonts] @\n"
+#~ "[#:drivers '()] [#:resolutions '()] [#:extra-config '()]\n"
+#~ "Renvoie un fichier de configuration pour le serveur Xorg qui contient des chemins de recherche pour tous les pilotes communs."
+
+#~ msgid "This procedure is especially useful to configure a different keyboard layout than the default US keymap.  For instance, to use the ``bépo'' keymap by default on the display manager:"
+#~ msgstr "Cette procédure est particulièrement utile pour configurer une disposition de clavier différente de la disposition US par défaut.  Par exemple, pour utiliser la disposition « bépo » par défaut sur le gestionnaire d'affichage :"
+
+#~ msgid ""
+#~ "(define bepo-evdev\n"
+#~ "  \"Section \\\"InputClass\\\"\n"
+#~ "        Identifier \\\"evdev keyboard catchall\\\"\n"
+#~ "        Driver \\\"evdev\\\"\n"
+#~ "        MatchIsKeyboard \\\"on\\\"\n"
+#~ "        Option \\\"xkb_layout\\\" \\\"fr\\\"\n"
+#~ "        Option \\\"xkb_variant\\\" \\\"bepo\\\"\n"
+#~ "EndSection\")\n"
+#~ "\n"
+#~ msgstr ""
+#~ "(define bepo-evdev\n"
+#~ "  \"Section \\\"InputClass\\\"\n"
+#~ "        Identifier \\\"evdev keyboard catchall\\\"\n"
+#~ "        Driver \\\"evdev\\\"\n"
+#~ "        MatchIsKeyboard \\\"on\\\"\n"
+#~ "        Option \\\"xkb_layout\\\" \\\"fr\\\"\n"
+#~ "        Option \\\"xkb_variant\\\" \\\"bepo\\\"\n"
+#~ "EndSection\")\n"
+#~ "\n"
+
+#~ msgid ""
+#~ "(operating-system\n"
+#~ "  ...\n"
+#~ "  (services\n"
+#~ "    (modify-services %desktop-services\n"
+#~ "      (slim-service-type config =>\n"
+#~ "        (slim-configuration\n"
+#~ "          (inherit config)\n"
+#~ "          (startx (xorg-start-command\n"
+#~ "                   #:configuration-file\n"
+#~ "                   (xorg-configuration-file\n"
+#~ "                     #:extra-config\n"
+#~ "                     (list bepo-evdev)))))))))\n"
+#~ msgstr ""
+#~ "(operating-system\n"
+#~ "  ...\n"
+#~ "  (services\n"
+#~ "    (modify-services %desktop-services\n"
+#~ "      (slim-service-type config =>\n"
+#~ "        (slim-configuration\n"
+#~ "          (inherit config)\n"
+#~ "          (startx (xorg-start-command\n"
+#~ "                   #:configuration-file\n"
+#~ "                   (xorg-configuration-file\n"
+#~ "                     #:extra-config\n"
+#~ "                     (list bepo-evdev)))))))))\n"
+
+#~ msgid "The @code{MatchIsKeyboard} line specifies that we only apply the configuration to keyboards.  Without this line, other devices such as touchpad may not work correctly because they will be attached to the wrong driver.  In this example, the user typically used @code{setxkbmap fr bepo} to set their favorite keymap once logged in.  The first argument corresponds to the layout, while the second argument corresponds to the variant.  The @code{xkb_variant} line can be omitted to select the default variant."
+#~ msgstr "La ligne @code{MatchIsKeyboard} spécifie que nous n'appliquons la configuration qu'aux claviers.  Sans cette ligne, d'autres périphériques comme les pavés tactiles ne fonctionneront pas correctement parce qu'ils seront associés au mauvais pilote.  Dans cet exemple, l'utilisateur utiliserait typiquement @code{setxkbmap fr bepo} pour utiliser sa disposition de clavier préférée une fois connecté.  Le premier argument correspond à la disposition, tandis que le second argument correspond à la variante.  La ligne @code{xkb_variant} peut être omise pour choisir la variante par défaut."
+
+#~ msgid "{Scheme Procedure} gnome-desktop-service"
+#~ msgstr "{Procédure Scheme} gnome-desktop-service"
+
+#~ msgid "{Scheme Procedure} xfce-desktop-service"
+#~ msgstr "{Procédure Scheme} xfce-desktop-service"
+
+#~ msgid "{Scheme Procedure} mate-desktop-service"
+#~ msgstr "{Procédure Scheme} mate-desktop-service"
+
+#~ msgid "{Scheme Procedure} upower-service [#:upower @var{upower}] @"
+#~ msgstr "{Procédure Scheme} upower-service [#:upower @var{upower}] @"
+
+#~ msgid "[#:watts-up-pro? #f] @ [#:poll-batteries? #t] @ [#:ignore-lid? #f] @ [#:use-percentage-for-policy? #f] @ [#:percentage-low 10] @ [#:percentage-critical 3] @ [#:percentage-action 2] @ [#:time-low 1200] @ [#:time-critical 300] @ [#:time-action 120] @ [#:critical-power-action 'hybrid-sleep] Return a service that runs @uref{http://upower.freedesktop.org/, @command{upowerd}}, a system-wide monitor for power consumption and battery levels, with the given configuration settings.  It implements the @code{org.freedesktop.UPower} D-Bus interface, and is notably used by GNOME."
+#~ msgstr ""
+#~ "[#:watts-up-pro? #f] @\n"
+#~ "[#:poll-batteries? #t] @\n"
+#~ "[#:ignore-lid? #f] @\n"
+#~ "[#:use-percentage-for-policy? #f] @\n"
+#~ "[#:percentage-low 10] @\n"
+#~ "[#:percentage-critical 3] @\n"
+#~ "[#:percentage-action 2] @\n"
+#~ "[#:time-low 1200] @\n"
+#~ "[#:time-critical 300] @\n"
+#~ "[#:time-action 120] @\n"
+#~ "[#:critical-power-action 'hybrid-sleep] \n"
+#~ "Renvoie un service qui lance @uref{http://upower.freedesktop.org/, @command{upowerd}}, un moniteur système pour la consommation électrique et le niveau de batterie, avec les paramètres de configuration données.  Il implémente l'interface D-Bus @code{org.freedesktop.UPower} et est notamment utilisé par GNOME."
+
 #~ msgid "The TLP tool."
 #~ msgstr "L'outil TLP@."
 
diff --git a/po/doc/guix-manual.zh_CN.po b/po/doc/guix-manual.zh_CN.po
new file mode 100644
index 0000000000..76a3670ea1
--- /dev/null
+++ b/po/doc/guix-manual.zh_CN.po
@@ -0,0 +1,45278 @@
+# Chinese (simplified) translation of the Guix manual.
+# Copyright (C) 2013-2019 the authors of Guix (msgids)
+# This file is distributed under the same license as the guix package.
+# Meiyo Peng <meiyo@riseup.net>, 2019.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: guix-manual 1.0.0-pre1\n"
+"Report-Msgid-Bugs-To: ludo@gnu.org\n"
+"POT-Creation-Date: 2019-04-10 21:59+0200\n"
+"PO-Revision-Date: 2019-04-24 00:23+0200\n"
+"Last-Translator: Meiyo Peng <meiyo@riseup.net>\n"
+"Language-Team: Chinese (simplified) <i18n-zh@googlegroups.com>\n"
+"Language: zh_CN\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"
+
+#. #-#-#-#-#  contributing.pot (guix 1.0.0-pre1)  #-#-#-#-#
+#. type: chapter
+#. #-#-#-#-#  guix.pot (guix 1.0.0-pre1)  #-#-#-#-#
+#. type: menuentry
+#: doc/contributing.texi:1 doc/contributing.texi:2 doc/guix.texi:133
+#, no-wrap
+msgid "Contributing"
+msgstr "贡献"
+
+#. 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 ""
+"这个项目是大家合作的成果,我们需要你的帮助以更好地发展。请通过\n"
+"@email{guix-devel@@gnu.org} 和 Freenode IRC 上的 @code{#guix} 联系我们。我们欢迎\n"
+"您的想法、bug反馈、补丁,以及任何可能对项目有帮助的贡献。我们特别欢迎帮助我们打\n"
+"包(@pxref{Packaging Guidelines})。"
+
+#. type: cindex
+#: doc/contributing.texi:10
+#, no-wrap
+msgid "code of conduct, of contributors"
+msgstr "行为准则和贡献者"
+
+#. type: cindex
+#: doc/contributing.texi:11
+#, no-wrap
+msgid "contributor covenant"
+msgstr "贡献者契约"
+
+#. 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."
+msgstr ""
+"我们希望提供一个温暖、友好,并且没有骚扰的的环境,这样每个人都能尽最大努力贡献。\n"
+"为了这个目的,我们的项目遵循“贡献者契约”,这个契约是根据\n"
+"@url{http://contributor-covenant.org/}制定的。你可以在源代码目录里的\n"
+"@file{CODE-OF-CONDUCT}文件里找到一份本地版。"
+
+#. type: Plain text
+#: doc/contributing.texi:21
+msgid "Contributors are not required to use their legal name in patches and on-line communication; they can use any name or pseudonym of their choice."
+msgstr ""
+"贡献者在提交补丁和网上交流时不需要使用法律认可的名字。他们可以使用任何名字或者假\n"
+"名。"
+
+#. type: section
+#: doc/contributing.texi:29 doc/contributing.texi:31 doc/contributing.texi:32
+#, no-wrap
+msgid "Building from Git"
+msgstr "从Git编译"
+
+#. type: menuentry
+#: doc/contributing.texi:29
+msgid "The latest and greatest."
+msgstr "最新的并且最好的."
+
+#. type: section
+#: doc/contributing.texi:29 doc/contributing.texi:103
+#: doc/contributing.texi:104
+#, no-wrap
+msgid "Running Guix Before It Is Installed"
+msgstr "在安装之前运行Guix"
+
+#. type: menuentry
+#: doc/contributing.texi:29
+msgid "Hacker tricks."
+msgstr "黑客技巧。"
+
+#. type: section
+#: doc/contributing.texi:29 doc/contributing.texi:167
+#: doc/contributing.texi:168
+#, no-wrap
+msgid "The Perfect Setup"
+msgstr "完美的配置"
+
+#. type: menuentry
+#: doc/contributing.texi:29
+msgid "The right tools."
+msgstr "正确的工具。"
+
+#. type: section
+#: doc/contributing.texi:29 doc/contributing.texi:231
+#: doc/contributing.texi:232
+#, no-wrap
+msgid "Packaging Guidelines"
+msgstr "打包指导"
+
+#. type: menuentry
+#: doc/contributing.texi:29
+msgid "Growing the distribution."
+msgstr ""
+
+#. type: section
+#: doc/contributing.texi:29 doc/contributing.texi:680
+#: doc/contributing.texi:681
+#, no-wrap
+msgid "Coding Style"
+msgstr "代码风格"
+
+#. type: menuentry
+#: doc/contributing.texi:29
+msgid "Hygiene of the contributor."
+msgstr "开发者的卫生情况"
+
+#. type: section
+#: doc/contributing.texi:29 doc/contributing.texi:778
+#: doc/contributing.texi:779
+#, no-wrap
+msgid "Submitting Patches"
+msgstr "提交补丁"
+
+#. type: menuentry
+#: doc/contributing.texi:29
+msgid "Share your work."
+msgstr "分享你的工作。"
+
+#. type: Plain text
+#: doc/contributing.texi:36
+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:39
+#, 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/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 ""
+"当从Git检出构建Guix时,除安装指导(@pxref{Requirements})里提及的软件包之外还需\n"
+"要这些包。"
+
+#. type: item
+#: doc/contributing.texi:46
+#, no-wrap
+msgid "@url{http://gnu.org/software/autoconf/, GNU Autoconf};"
+msgstr "@url{http://gnu.org/software/autoconf/, GNU Autoconf};"
+
+#. type: item
+#: doc/contributing.texi:47
+#, no-wrap
+msgid "@url{http://gnu.org/software/automake/, GNU Automake};"
+msgstr "@url{http://gnu.org/software/automake/, GNU Automake};"
+
+#. type: item
+#: doc/contributing.texi:48
+#, no-wrap
+msgid "@url{http://gnu.org/software/gettext/, GNU Gettext};"
+msgstr "@url{http://gnu.org/software/gettext/, GNU Gettext};"
+
+#. type: item
+#: doc/contributing.texi:49
+#, no-wrap
+msgid "@url{http://gnu.org/software/texinfo/, GNU Texinfo};"
+msgstr "@url{http://gnu.org/software/texinfo/, GNU Texinfo};"
+
+#. type: item
+#: doc/contributing.texi:50
+#, no-wrap
+msgid "@url{http://www.graphviz.org/, Graphviz};"
+msgstr "@url{http://www.graphviz.org/, Graphviz};"
+
+#. type: item
+#: doc/contributing.texi:51
+#, no-wrap
+msgid "@url{http://www.gnu.org/software/help2man/, GNU Help2man (optional)}."
+msgstr "@url{http://www.gnu.org/software/help2man/, GNU Help2man (可选)}。"
+
+#. 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 ""
+"设置Guix开发环境的最简单的方式当然是使用Guix!下面这些命令启动一个shell,所有的\n"
+"依赖和环境变量都为折腾Guix设置好了:"
+
+#. type: example
+#: doc/contributing.texi:61
+#, no-wrap
+msgid "guix environment guix\n"
+msgstr "guix environment guix\n"
+
+#. 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{Invoking guix environment}。额外的依赖可以通过\n"
+"@option{--ad-hoc}选项添加:"
+
+#. type: example
+#: doc/contributing.texi:68
+#, no-wrap
+msgid "guix environment guix --ad-hoc help2man git strace\n"
+msgstr "guix environment guix --ad-hoc help2man git strace\n"
+
+#. type: Plain text
+#: doc/contributing.texi:72
+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生成编译系统的基础框架。如果\n"
+"你的得到这样的错误:"
+
+#. type: example
+#: doc/contributing.texi:75
+#, 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
+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无法找到由pkg-config提供的@file{pkg.m4}。请确保@file{pkg.m4}\n"
+"可用。由Guile提供的@file{guile.m4}宏也类似。假如你的Automake安装在\n"
+"@file{/usr/local},那么它不会从@file{/usr/share}里寻找@file{.m4}文件。这种情况下,\n"
+"你必须执行下面这个命令:"
+
+#. type: example
+#: doc/contributing.texi:87
+#, 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
+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: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 ""
+"然后,像正常一样运行@command{./configure}。确保提供\n"
+"@code{--localstatedir=@var{directory}}参数,@var{directory}是你当前系统的\n"
+"@code{localstatedir}的值。(@pxref{The Store})"
+
+#. type: Plain text
+#: doc/contributing.texi:101
+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})。如果遇到任\n"
+"何错误,请参考“安装指导”(@pxref{Installation})或者给\n"
+"@email{guix-devel@@gnu.org, 邮件列表}发邮件。"
+
+#. type: Plain text
+#: doc/contributing.texi:110
+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 ""
+"为了保持一个合适的工作环境,你会发现在你的本地代码树里测试修改而不用安装它们会很\n"
+"有用。TODO: So that you can distinguish between your ``end-user'' hat and your\n"
+"``motley'' costume."
+
+#. 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 ""
+"这样,即使你没有运行@code{make install},所有的命令行工具都可以使用。为此,你先\n"
+"要有一个包含全部依赖的环境(@pxref{Building from Git}),然后,为所有的命令添加\n"
+"前缀@command{./pre-inst-env}(@file{pre-inst-env}脚本在Guix编译树的最顶层,它由\n"
+"@command{./configure}生成),如@footnote{@command{sudo}命令的@option{-E}参数\n"
+"确保@code{GUILE_LOAD_PATH}被正确设置,从而@command{guix-daemon}和它使用的工具可\n"
+"以找到它们需要的Guile模块。}:"
+
+#. type: example
+#: doc/contributing.texi:125
+#, 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"
+
+#. type: Plain text
+#: doc/contributing.texi:129
+msgid "Similarly, for a Guile session using the Guix modules:"
+msgstr "类似的,对于使用Guix模块的Guile会话:"
+
+#. type: example
+#: doc/contributing.texi:132
+#, no-wrap
+msgid ""
+"$ ./pre-inst-env guile -c '(use-modules (guix utils)) (pk (%current-system))'\n"
+"\n"
+msgstr ""
+"$ ./pre-inst-env guile -c '(use-modules (guix utils)) (pk (%current-system))'\n"
+"\n"
+
+#. type: example
+#: doc/contributing.texi:134
+#, no-wrap
+msgid ";;; (\"x86_64-linux\")\n"
+msgstr ";;; (\"x86_64-linux\")\n"
+
+#. type: cindex
+#: doc/contributing.texi:137
+#, no-wrap
+msgid "REPL"
+msgstr "REPL"
+
+#. type: cindex
+#: doc/contributing.texi:138
+#, no-wrap
+msgid "read-eval-print loop"
+msgstr "read-eval-print loop"
+
+#. type: Plain text
+#: doc/contributing.texi:141
+msgid "@dots{} and for a REPL (@pxref{Using Guile Interactively,,, guile, Guile Reference Manual}):"
+msgstr "@dots{} and for a REPL (@pxref{Using Guile Interactively,,, guile, Guile Reference Manual}):"
+
+#. type: example
+#: doc/contributing.texi:156
+#, no-wrap
+msgid ""
+"$ ./pre-inst-env guile\n"
+"scheme@@(guile-user)> ,use(guix)\n"
+"scheme@@(guile-user)> ,use(gnu)\n"
+"scheme@@(guile-user)> (define snakes\n"
+"                       (fold-packages\n"
+"                         (lambda (package lst)\n"
+"                           (if (string-prefix? \"python\"\n"
+"                                               (package-name package))\n"
+"                               (cons package lst)\n"
+"                               lst))\n"
+"                         '()))\n"
+"scheme@@(guile-user)> (length snakes)\n"
+"$1 = 361\n"
+msgstr ""
+"$ ./pre-inst-env guile\n"
+"scheme@@(guile-user)> ,use(guix)\n"
+"scheme@@(guile-user)> ,use(gnu)\n"
+"scheme@@(guile-user)> (define snakes\n"
+"                       (fold-packages\n"
+"                         (lambda (package lst)\n"
+"                           (if (string-prefix? \"python\"\n"
+"                                               (package-name package))\n"
+"                               (cons package lst)\n"
+"                               lst))\n"
+"                         '()))\n"
+"scheme@@(guile-user)> (length snakes)\n"
+"$1 = 361\n"
+
+#. type: Plain text
+#: doc/contributing.texi:160
+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}和\n"
+"@env{GUILE_LOAD_PATH}。"
+
+#. type: Plain text
+#: doc/contributing.texi:165
+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{不} 会更新本地源代码树,它只更新符号链\n"
+"接@file{~/.config/guix/current} (@pxref{Invoking guix pull})。如果你想更新本地源\n"
+"代码树,请运行@command{git pull}。"
+
+#. 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:"
+msgstr ""
+"折腾Guix的完美配置也是折腾Guile的完美配置@pxref{Using Guile in Emacs,,, guile,\n"
+"Guile Reference Manual})。首先,你需要的不仅是一个编辑器,你需要\n"
+"@url{http://www.gnu.org/software/emacs, Emacs},以及美妙的\n"
+"@url{http://nongnu.org/geiser/, Geiser}。为此,请运行:"
+
+#. type: example
+#: doc/contributing.texi:178
+#, 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
+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里进行交互式的、增长式的开发:buffer里的代码补全和执行,获取一\n"
+"行的文档(docstrings),上下文敏感的补全,@kbd{M-.}跳转到对象定义,测试代码的\n"
+"REPL,及更多(@pxref{Introduction,,, geiser, Geiser User Manual})。为了方便的\n"
+"Guix开发,请确保修改Guile的加载路径(load path)以使其能从你的项目里找到源代码文\n"
+"件。"
+
+#. type: lisp
+#: doc/contributing.texi:192
+#, no-wrap
+msgid ""
+";; @r{Assuming the Guix checkout is in ~/src/guix.}\n"
+"(with-eval-after-load 'geiser-guile\n"
+"  (add-to-list 'geiser-guile-load-path \"~/src/guix\"))\n"
+msgstr ""
+";; @r{假设Guix项目在 ~/src/guix.}\n"
+"(with-eval-after-load 'geiser-guile\n"
+"  (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."
+msgstr ""
+"真正编辑代码时别忘了Emacs自带了方便的Scheme模式。而且,一定不要错过\n"
+"@url{http://www.emacswiki.org/emacs/ParEdit, Paredit}。它提供了直接操作语法树的\n"
+"的功能,例如,用S-表达式替换父节点,为S-表达式添加、删除前后的括号,删除后面的S-\n"
+"表达式,等等。"
+
+#. type: cindex
+#: doc/contributing.texi:201
+#, no-wrap
+msgid "code snippets"
+msgstr "代码片段"
+
+#. type: cindex
+#: doc/contributing.texi:202
+#, no-wrap
+msgid "templates"
+msgstr "模板"
+
+#. type: cindex
+#: doc/contributing.texi:203
+#, no-wrap
+msgid "reducing boilerplate"
+msgstr ""
+
+#. 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 ""
+"在@file{etc/snippets}文件夹里,我们还为普通的git commit信息和软件包定义提供模板。\n"
+"这些模板可以通过@url{http://joaotavora.github.io/yasnippet/, YASnippet}使用,它\n"
+"可以把短的触发字符串扩展成交互式的文字片段。你可能希望将这个文件夹添加到Emacs的\n"
+"@var{yas-snippet-dirs}变量里。"
+
+#. type: lisp
+#: doc/contributing.texi:215
+#, no-wrap
+msgid ""
+";; @r{Assuming the Guix checkout is in ~/src/guix.}\n"
+"(with-eval-after-load 'yasnippet\n"
+"  (add-to-list 'yas-snippet-dirs \"~/src/guix/etc/snippets\"))\n"
+msgstr ""
+";; @r{假设Guix项目在 ~/src/guix.}\n"
+"(with-eval-after-load 'yasnippet\n"
+"  (add-to-list 'yas-snippet-dirs \"~/src/guix/etc/snippets\"))\n"
+
+#. type: Plain text
+#: doc/contributing.texi:223
+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 ""
+"commit信息片段显示staged文件需要依赖@url{https://magit.vc/, Magit}。编辑commit信\n"
+"息时,输入@code{add},然后按@kbd{TAB}就可以插入一段用于新增软件包的模板;输入\n"
+"@code{update},然后按@kbd{TAB}可以插入一段更新软件包的模板;输入@code{https}然后\n"
+"按@kbd{TAB}可以插入一段修改主页URI为HTTPS的模板。"
+
+#. type: Plain text
+#: doc/contributing.texi:229
+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}触发。\n"
+"这个片段还插入了触发字符串@code{origin...},以进一步展开。@code{origin}片段更进\n"
+"一步的可能插入其它以@code{...}结尾的触发字符串,它们可以被继续展开。"
+
+#. type: cindex
+#: doc/contributing.texi:234
+#, no-wrap
+msgid "packages, creating"
+msgstr "软件包, 创建"
+
+#. type: Plain text
+#: doc/contributing.texi:238
+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发行版正在开发的早期阶段,可能缺少一些你喜欢的软件。这个章节介绍你可以怎\n"
+"样帮助这个发行版成长。"
+
+#. type: Plain text
+#: doc/contributing.texi:246
+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}包。添\n"
+"加软件包到这个发行版意味着两件事:添加描述如何编译包的@dfn{配方}和一系列依赖软件,\n"
+"以及添加配方之外的@dfn{软件包元数据},如一段文字描述和证书信息。"
+
+#. type: Plain text
+#: doc/contributing.texi:255
+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{软件包定义}里。软件包定义提供了软件包的高层视角。\n"
+"它们使用Scheme编程语言编写,事实上,对每个软件包我们都定义一个绑定到软件包定义的\n"
+"的变量,并且从模块(@pxref{Package Modules})中导出那个变量。然而,深入的Scheme\n"
+"知识@emph{不}是创建软件包的前提条件。若要了解软件包的更多信息,@pxref{Defining\n"
+"Packages}。"
+
+#. type: Plain text
+#: doc/contributing.texi:261
+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\n"
+"build} (@pxref{Invoking guix build})命令测试它。假设这个新软件包的名字叫做\n"
+"@code{gnew},你可以在Guix编译树里运行这个命令(@pxref{Running Guix Before It Is\n"
+"Installed}):"
+
+#. type: example
+#: doc/contributing.texi:264
+#, 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
+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}参数会保留失败的编译树,这可以使调试编译错误更容易。\n"
+"@code{--log-file}也是一个调试时很有用的参数,它可以用来访问编译日志。"
+
+#. type: Plain text
+#: doc/contributing.texi:275
+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}命令找不到这个软件包,那可能是因为源文件包含语法错误,或者缺少\n"
+"导出软件包的@code{define-public}语句。为了查找错误,你可以用Guile导入这个模块以\n"
+"了解这个错误的详情:"
+
+#. type: example
+#: doc/contributing.texi:278
+#, 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 ""
+"一旦你的软件包可以正确编译,请给我们发送补丁(@pxref{Submitting Patches})。当然,\n"
+"如果你需要帮助,我们也会很乐意帮助你。一旦补丁被提交到Guix仓库里,这个新的软件包\n"
+"会被自动地在支持的平台上编译@url{http://hydra.gnu.org/jobset/gnu/master, our\n"
+"continuous integration system}。"
+
+#. type: cindex
+#: doc/contributing.texi:287
+#, no-wrap
+msgid "substituter"
+msgstr ""
+
+#. type: Plain text
+#: doc/contributing.texi:294
+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\n"
+"guix pull})。当@code{@value{SUBSTITUTE-SERVER}}编译好这些软件包之后,安装这些软\n"
+"件包时会自动从服务器(@pxref{Substitutes})上下载编译好的二进制包。唯一需要人工\n"
+"干预的地方是评审和应用代码补丁。"
+
+#. type: subsection
+#: doc/contributing.texi:305 doc/contributing.texi:307
+#: doc/contributing.texi:308
+#, no-wrap
+msgid "Software Freedom"
+msgstr "软件自由"
+
+#. type: menuentry
+#: doc/contributing.texi:305
+msgid "What may go into the distribution."
+msgstr "什么可以进入这个发行版。"
+
+#. type: subsection
+#: doc/contributing.texi:305 doc/contributing.texi:335
+#: doc/contributing.texi:336
+#, no-wrap
+msgid "Package Naming"
+msgstr "软件包命名"
+
+#. type: menuentry
+#: doc/contributing.texi:305
+msgid "What's in a name?"
+msgstr "名字里包含什么?"
+
+#. type: subsection
+#: doc/contributing.texi:305 doc/contributing.texi:360
+#: doc/contributing.texi:361
+#, no-wrap
+msgid "Version Numbers"
+msgstr "版本号"
+
+#. type: menuentry
+#: doc/contributing.texi:305
+msgid "When the name is not enough."
+msgstr "当名字不够时"
+
+#. type: subsection
+#: doc/contributing.texi:305 doc/contributing.texi:451
+#: doc/contributing.texi:452
+#, no-wrap
+msgid "Synopses and Descriptions"
+msgstr "简介和描述"
+
+#. type: menuentry
+#: doc/contributing.texi:305
+msgid "Helping users find the right package."
+msgstr "帮助用户寻找合适的软件包"
+
+#. type: subsection
+#: doc/contributing.texi:305 doc/contributing.texi:531
+#: doc/contributing.texi:532
+#, no-wrap
+msgid "Python Modules"
+msgstr "Python模块"
+
+#. type: menuentry
+#: doc/contributing.texi:305
+msgid "A touch of British comedy."
+msgstr "接触英式的喜剧"
+
+#. type: subsection
+#: doc/contributing.texi:305 doc/contributing.texi:606
+#: doc/contributing.texi:607
+#, no-wrap
+msgid "Perl Modules"
+msgstr "Perl模块"
+
+#. type: menuentry
+#: doc/contributing.texi:305
+msgid "Little pearls."
+msgstr "小珍珠。"
+
+#. type: subsection
+#: doc/contributing.texi:305 doc/contributing.texi:622
+#: doc/contributing.texi:623
+#, no-wrap
+msgid "Java Packages"
+msgstr "Java包"
+
+#. type: menuentry
+#: doc/contributing.texi:305
+msgid "Coffee break."
+msgstr "喝咖啡休息。"
+
+#. type: subsection
+#: doc/contributing.texi:305 doc/contributing.texi:642
+#: doc/contributing.texi:643
+#, no-wrap
+msgid "Fonts"
+msgstr "字体"
+
+#. type: menuentry
+#: doc/contributing.texi:305
+msgid "Fond of fonts."
+msgstr "字体的乐趣。"
+
+#. type: cindex
+#: doc/contributing.texi:311
+#, no-wrap
+msgid "free software"
+msgstr "自由软件"
+
+#. 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 ""
+"开发GNU操作系统是为了用户拥有计算的自由。GNU是@dfn{自由软件},这意味着它有\n"
+"@url{http://www.gnu.org/philosophy/free-sw.html,四项重要的自由}:运行程序的自由,\n"
+"以源代码形式学习和修改程序的自由,原样重新分发副本的自由,和分发修改后的版本的自\n"
+"由。GNU发行版里包含的软件包只提供遵守这四项自由的软件。"
+
+#. 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 ""
+"此外,GNU发行版遵循\n"
+"@url{http://www.gnu.org/distros/free-system-distribution-guidelines.html,自由软\n"
+"件发行版准则}。这些准则拒绝非自由的固件和对非自由软件的推荐,并讨论解决商标和专\n"
+"利的方法。"
+
+#. type: Plain text
+#: doc/contributing.texi:333
+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 ""
+"某些上游的软件包源代码包含一小部分违反上述准则的可选的子集,比如这个子集本身就是\n"
+"非自由代码。这时,这些讨厌的代码需要用合适的补丁或者软件包定义(@pxref{Defining\n"
+"Packages})里的@code{origin}里的代码片段移除。这样,@code{guix build --source}就\n"
+"可以返回自由的源代码而不是未经修改的上游源代码。"
+
+#. type: cindex
+#: doc/contributing.texi:338
+#, no-wrap
+msgid "package name"
+msgstr "软件包名字"
+
+#. type: Plain text
+#: doc/contributing.texi:346
+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变量}的名字,即用\n"
+"@code{define-public}定义的名字。通过这个名字,软件包可以被Scheme代码找到,如用作\n"
+"其它软件包的输入。第二个名字是软件包定义里的@code{name}属性的字符串值。这个名字\n"
+"用于软件包管理命令,如:@command{guix package},@command{guix build}"
+
+#. type: Plain text
+#: doc/contributing.texi:351
+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 ""
+"两个名字通常是相同的,常是上游项目名字转成小写字母并把下划线替换成连字符的结果。\n"
+"比如,GNUnet转成@code{gnunet},SDL_net转成@code{sdl-net}。"
+
+#. type: Plain text
+#: doc/contributing.texi:356
+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}前缀,除非它是项目官方名字的一部分。但是\n"
+"@pxref{Python Modules}和@ref{Perl Modules}有关于Python和Perl语言的特殊规则。"
+
+#. type: Plain text
+#: doc/contributing.texi:358
+msgid "Font package names are handled differently, @pxref{Fonts}."
+msgstr "字体软件包的名字处理起来不同,@pxref{Fonts}."
+
+#. type: cindex
+#: doc/contributing.texi:363
+#, no-wrap
+msgid "package version"
+msgstr "软件包版本"
+
+#. type: Plain text
+#: doc/contributing.texi:372
+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 ""
+"我们通常只为每个自由软件的最新版本打包。但是有时候,比如对于版本不兼容的库,需要\n"
+"有同一个软件包的两个或更多版本。它们需要使用不同的Scheme变量名。我们为最新的版本\n"
+"使用@ref{Package Naming}里规定的名字,旧的版本使用加上后缀的名字,后缀是@code{-}\n"
+"和可以区分开版本号的版本号的最小前缀。"
+
+#. type: Plain text
+#: doc/contributing.texi:375
+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:377
+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: example
+#: doc/contributing.texi:389
+#, no-wrap
+msgid ""
+"(define-public gtk+\n"
+"  (package\n"
+"    (name \"gtk+\")\n"
+"    (version \"3.9.12\")\n"
+"    ...))\n"
+"(define-public gtk+-2\n"
+"  (package\n"
+"    (name \"gtk+\")\n"
+"    (version \"2.24.20\")\n"
+"    ...))\n"
+msgstr ""
+"(define-public gtk+\n"
+"  (package\n"
+"    (name \"gtk+\")\n"
+"    (version \"3.9.12\")\n"
+"    ...))\n"
+"(define-public gtk+-2\n"
+"  (package\n"
+"    (name \"gtk+\")\n"
+"    (version \"2.24.20\")\n"
+"    ...))\n"
+
+#. type: Plain text
+#: doc/contributing.texi:391
+msgid "If we also wanted GTK+ 3.8.2, this would be packaged as"
+msgstr "如果我们还需要GTK+ 3.8.2,就这样打包"
+
+#. type: example
+#: doc/contributing.texi:397
+#, no-wrap
+msgid ""
+"(define-public gtk+-3.8\n"
+"  (package\n"
+"    (name \"gtk+\")\n"
+"    (version \"3.8.2\")\n"
+"    ...))\n"
+msgstr ""
+"(define-public gtk+-3.8\n"
+"  (package\n"
+"    (name \"gtk+\")\n"
+"    (version \"3.8.2\")\n"
+"    ...))\n"
+
+#. type: cindex
+#: doc/contributing.texi:401
+#, no-wrap
+msgid "version number, for VCS snapshots"
+msgstr "用于版本控制快照的版本号"
+
+#. type: Plain text
+#: doc/contributing.texi:407
+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 ""
+"有时候,我们为软件包上游的版本控制系统(VCS)的快照而不是正式发布版打包。这是特\n"
+"殊情况,因为决定哪个是稳定版的权力应该属于上游开发者。然而,有时候这是必须的。那\n"
+"么,我们该如何决定写在@code{version}里的版本号呢?"
+
+#. type: Plain text
+#: doc/contributing.texi:415
+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 ""
+"显然,我们需要让VCS快照的commit ID在版本号中体现出来,但是我们也需要确保版本号单\n"
+"调递增,以便@command{guix package --upgrade}决定哪个版本号更新。由于commit ID,\n"
+"尤其是Git的commit ID,不是单调递增的,我们添加一个每次升级快照时都手动增长的\n"
+"revision数字。最后的版本号字符串看起来是这样:"
+
+#. type: example
+#: doc/contributing.texi:424
+#, no-wrap
+msgid ""
+"2.0.11-3.cabba9e\n"
+"  ^    ^    ^\n"
+"  |    |    `-- upstream commit ID\n"
+"  |    |\n"
+"  |    `--- Guix package revision\n"
+"  |\n"
+"latest upstream version\n"
+msgstr ""
+"2.0.11-3.cabba9e\n"
+"  ^    ^    ^\n"
+"  |    |    `-- 上游的commit ID\n"
+"  |    |\n"
+"  |    `--- Guix软件包的revision\n"
+"  |\n"
+"最新的上游版本号\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 ""
+"把@code{版本号}里的commit ID截短,比如只取7个数字,是一个好主意。它避免了美学上\n"
+"的烦恼(假设美学在这里很重要),以及操作系统限制引起的问题(比如Linux内核的127字\n"
+"节)。尽管如此,在@code{origin}里最好使用完整的commit ID,以避免混淆。"
+
+#. type: example
+#: doc/contributing.texi:449
+#, no-wrap
+msgid ""
+"(define my-package\n"
+"  (let ((commit \"c3f29bc928d5900971f65965feaae59e1272a3f7\")\n"
+"        (revision \"1\"))          ;Guix package revision\n"
+"    (package\n"
+"      (version (git-version \"0.9\" revision commit))\n"
+"      (source (origin\n"
+"                (method git-fetch)\n"
+"                (uri (git-reference\n"
+"                      (url \"git://example.org/my-package.git\")\n"
+"                      (commit commit)))\n"
+"                (sha256 (base32 \"1mbikn@dots{}\"))\n"
+"                (file-name (git-file-name name version))))\n"
+"      ;; @dots{}\n"
+"      )))\n"
+msgstr ""
+"(define my-package\n"
+"  (let ((commit \"c3f29bc928d5900971f65965feaae59e1272a3f7\")\n"
+"        (revision \"1\"))          ;Guix软件包的revision\n"
+"    (package\n"
+"      (version (git-version \"0.9\" revision commit))\n"
+"      (source (origin\n"
+"                (method git-fetch)\n"
+"                (uri (git-reference\n"
+"                      (url \"git://example.org/my-package.git\")\n"
+"                      (commit commit)))\n"
+"                (sha256 (base32 \"1mbikn@dots{}\"))\n"
+"                (file-name (git-file-name name version))))\n"
+"      ;; @dots{}\n"
+"      )))\n"
+
+#. type: cindex
+#: doc/contributing.texi:454
+#, no-wrap
+msgid "package description"
+msgstr "软件包描述"
+
+#. type: cindex
+#: doc/contributing.texi:455
+#, no-wrap
+msgid "package synopsis"
+msgstr "软件包简介"
+
+#. type: Plain text
+#: doc/contributing.texi:462
+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里的每个软件包都包含一个简介(synopsis)和一个描述\n"
+"(description)(@pxref{Defining Packages})。简介和描述很重要:它们是\n"
+"@command{guix package --search}搜索的信息,并且是帮助用户决定一个软件包是否符合\n"
+"自己需求的重要信息。因此,打包的人应该关注怎样写它们的内容。"
+
+#. type: Plain text
+#: doc/contributing.texi:470
+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'' 等没有\n"
+"意义的词开头。例如 ``File-frobbing tool'' 要比 ``A tool that frobs files'' 更好。\n"
+"简介需要说明软件包是什么--如 ``Core GNU utilities (file, text, shell)'',或者\n"
+"它的用途--如 GNU@tie{}grep 的简介是 ``Print lines matching a pattern''。"
+
+#. type: Plain text
+#: doc/contributing.texi:480
+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 ""
+
+#. type: Plain text
+#: doc/contributing.texi:488
+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 ""
+
+#. type: cindex
+#: doc/contributing.texi:489
+#, no-wrap
+msgid "Texinfo markup, in package descriptions"
+msgstr ""
+
+#. type: Plain text
+#: doc/contributing.texi:498
+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 ""
+
+#. 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 ""
+
+#. type: Plain text
+#: doc/contributing.texi:509
+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 ""
+
+#. type: lisp
+#: doc/contributing.texi:515
+#, no-wrap
+msgid ""
+"(package\n"
+"  ;; @dots{}\n"
+"  (synopsis \"This is translatable\")\n"
+"  (description (string-append \"This is \" \"*not*\" \" translatable.\")))\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/contributing.texi:523
+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 ""
+
+#. type: example
+#: doc/contributing.texi:528
+#, no-wrap
+msgid ""
+";; TRANSLATORS: \"X11 resize-and-rotate\" should not be translated.\n"
+"(description \"ARandR is designed to provide a simple visual front end\n"
+"for the X11 resize-and-rotate (RandR) extension. @dots{}\")\n"
+msgstr ""
+
+#. type: cindex
+#: doc/contributing.texi:534
+#, no-wrap
+msgid "python"
+msgstr ""
+
+#. type: Plain text
+#: doc/contributing.texi:540
+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 ""
+
+#. 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 ""
+
+#. type: Plain text
+#: doc/contributing.texi:552
+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 ""
+
+#. type: subsubsection
+#: doc/contributing.texi:553
+#, no-wrap
+msgid "Specifying Dependencies"
+msgstr ""
+
+#. type: cindex
+#: doc/contributing.texi:554
+#, no-wrap
+msgid "inputs, for Python packages"
+msgstr ""
+
+#. type: Plain text
+#: doc/contributing.texi:559
+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 ""
+
+#. type: Plain text
+#: doc/contributing.texi:565
+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 ""
+
+#. type: itemize
+#: doc/contributing.texi:573
+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 ""
+
+#. type: itemize
+#: doc/contributing.texi:579
+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 ""
+
+#. type: itemize
+#: doc/contributing.texi:587
+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 ""
+
+#. type: itemize
+#: doc/contributing.texi:591
+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 ""
+
+#. type: itemize
+#: doc/contributing.texi:596
+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 ""
+
+#. type: itemize
+#: doc/contributing.texi:602
+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 ""
+
+#. type: cindex
+#: doc/contributing.texi:609
+#, no-wrap
+msgid "perl"
+msgstr ""
+
+#. type: Plain text
+#: doc/contributing.texi:620
+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 ""
+
+#. type: cindex
+#: doc/contributing.texi:625
+#, no-wrap
+msgid "java"
+msgstr ""
+
+#. type: Plain text
+#: doc/contributing.texi:628
+msgid "Java programs standing for themselves are named as any other package, using the lowercase upstream name."
+msgstr ""
+
+#. type: Plain text
+#: doc/contributing.texi:634
+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 ""
+
+#. type: Plain text
+#: doc/contributing.texi:640
+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 ""
+
+#. type: cindex
+#: doc/contributing.texi:645 doc/guix.texi:1656
+#, no-wrap
+msgid "fonts"
+msgstr ""
+
+#. type: Plain text
+#: doc/contributing.texi:651
+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 ""
+
+#. type: Plain text
+#: doc/contributing.texi:655
+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:663
+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 ""
+
+#. type: Plain text
+#: doc/contributing.texi:672
+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 ""
+
+#. type: Plain text
+#: doc/contributing.texi:678
+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 ""
+
+#. type: Plain text
+#: doc/contributing.texi:686
+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 ""
+
+#. type: subsection
+#: doc/contributing.texi:692 doc/contributing.texi:694
+#: doc/contributing.texi:695
+#, no-wrap
+msgid "Programming Paradigm"
+msgstr ""
+
+#. type: menuentry
+#: doc/contributing.texi:692
+msgid "How to compose your elements."
+msgstr ""
+
+#. type: subsection
+#: doc/contributing.texi:692 doc/contributing.texi:701
+#: doc/contributing.texi:702
+#, no-wrap
+msgid "Modules"
+msgstr ""
+
+#. type: menuentry
+#: doc/contributing.texi:692
+msgid "Where to store your code?"
+msgstr ""
+
+#. type: subsection
+#: doc/contributing.texi:692 doc/contributing.texi:712
+#: doc/contributing.texi:713
+#, no-wrap
+msgid "Data Types and Pattern Matching"
+msgstr ""
+
+#. type: menuentry
+#: doc/contributing.texi:692
+msgid "Implementing data structures."
+msgstr ""
+
+#. type: subsection
+#: doc/contributing.texi:692 doc/contributing.texi:726
+#: doc/contributing.texi:727
+#, no-wrap
+msgid "Formatting Code"
+msgstr ""
+
+#. type: menuentry
+#: doc/contributing.texi:692
+msgid "Writing conventions."
+msgstr ""
+
+#. type: Plain text
+#: doc/contributing.texi:700
+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 ""
+
+#. type: Plain text
+#: doc/contributing.texi:708
+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 ""
+
+#. type: Plain text
+#: doc/contributing.texi:711
+msgid "Modules that deal with the broader GNU system should be in the @code{(gnu @dots{})} name space rather than @code{(guix @dots{})}."
+msgstr ""
+
+#. type: Plain text
+#: doc/contributing.texi:720
+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 ""
+
+#. type: Plain text
+#: doc/contributing.texi:725
+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 ""
+
+#. type: cindex
+#: doc/contributing.texi:729
+#, no-wrap
+msgid "formatting code"
+msgstr ""
+
+#. type: cindex
+#: doc/contributing.texi:730
+#, no-wrap
+msgid "coding style"
+msgstr ""
+
+#. 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 ""
+
+#. type: Plain text
+#: doc/contributing.texi:744
+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 ""
+
+#. type: cindex
+#: doc/contributing.texi:745
+#, no-wrap
+msgid "indentation, of code"
+msgstr ""
+
+#. type: cindex
+#: doc/contributing.texi:746
+#, no-wrap
+msgid "formatting, of code"
+msgstr ""
+
+#. type: Plain text
+#: doc/contributing.texi:749
+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 ""
+
+#. type: example
+#: doc/contributing.texi:752
+#, no-wrap
+msgid "./etc/indent-code.el gnu/packages/@var{file}.scm @var{package}\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/contributing.texi:758
+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 ""
+
+#. type: example
+#: doc/contributing.texi:761
+#, no-wrap
+msgid "./etc/indent-code.el gnu/services/@var{file}.scm\n"
+msgstr ""
+
+#. type: cindex
+#: doc/contributing.texi:763
+#, no-wrap
+msgid "Vim, Scheme code editing"
+msgstr ""
+
+#. type: Plain text
+#: doc/contributing.texi:769
+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 ""
+
+#. type: Plain text
+#: doc/contributing.texi:773
+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 ""
+
+#. type: Plain text
+#: doc/contributing.texi:776
+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: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 ""
+
+#. 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 ""
+
+#. type: Plain text
+#: doc/contributing.texi:796
+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 ""
+
+#. type: Plain text
+#: doc/contributing.texi:799
+msgid "Before submitting a patch that adds or modifies a package definition, please run through this check list:"
+msgstr ""
+
+#. type: enumerate
+#: doc/contributing.texi:806
+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 ""
+
+#. type: enumerate
+#: doc/contributing.texi:810
+msgid "Take some time to provide an adequate synopsis and description for the package.  @xref{Synopses and Descriptions}, for some guidelines."
+msgstr ""
+
+#. type: enumerate
+#: doc/contributing.texi:815
+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 ""
+
+#. type: enumerate
+#: doc/contributing.texi:819
+msgid "Make sure the package builds on your platform, using @code{guix build @var{package}}."
+msgstr ""
+
+#. type: enumerate
+#: doc/contributing.texi:826
+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 ""
+
+#. type: example
+#: doc/contributing.texi:832
+#, 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"
+msgstr ""
+
+#. type: enumerate
+#: doc/contributing.texi:835
+msgid "Then reconfigure your system."
+msgstr ""
+
+#. type: enumerate
+#: doc/contributing.texi:840
+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 ""
+
+#. type: example
+#: doc/contributing.texi:844
+#, 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 ""
+
+#. type: cindex
+#: doc/contributing.texi:847
+#, no-wrap
+msgid "bundling"
+msgstr ""
+
+#. type: enumerate
+#: doc/contributing.texi:850
+msgid "Make sure the package does not use bundled copies of software already available as separate packages."
+msgstr ""
+
+#. type: enumerate
+#: doc/contributing.texi:859
+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:868
+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 ""
+
+#. type: enumerate
+#: doc/contributing.texi:873
+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 ""
+
+#. type: cindex
+#: doc/contributing.texi:875
+#, no-wrap
+msgid "branching strategy"
+msgstr ""
+
+#. type: cindex
+#: doc/contributing.texi:876
+#, no-wrap
+msgid "rebuild scheduling strategy"
+msgstr ""
+
+#. type: enumerate
+#: doc/contributing.texi:879
+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:881
+#, no-wrap
+msgid "300 dependent packages or less"
+msgstr ""
+
+#. type: table
+#: doc/contributing.texi:883
+msgid "@code{master} branch (non-disruptive changes)."
+msgstr ""
+
+#. type: item
+#: doc/contributing.texi:884
+#, no-wrap
+msgid "between 300 and 1,200 dependent packages"
+msgstr ""
+
+#. 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 ""
+
+#. type: item
+#: doc/contributing.texi:890
+#, no-wrap
+msgid "more than 1,200 dependent packages"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. type: enumerate
+#: doc/contributing.texi:908
+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 ""
+
+#. type: cindex
+#: doc/contributing.texi:910
+#, no-wrap
+msgid "determinism, of build processes"
+msgstr ""
+
+#. type: cindex
+#: doc/contributing.texi:911
+#, no-wrap
+msgid "reproducible builds, checking"
+msgstr ""
+
+#. type: enumerate
+#: doc/contributing.texi:915
+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:918
+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 ""
+
+#. type: example
+#: doc/contributing.texi:921
+#, no-wrap
+msgid "guix build --rounds=2 my-package\n"
+msgstr ""
+
+#. type: enumerate
+#: doc/contributing.texi:925
+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:935
+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 ""
+
+#. type: enumerate
+#: doc/contributing.texi:941
+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 ""
+
+#. type: enumerate
+#: doc/contributing.texi:945
+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:948
+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:953
+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 ""
+
+#. type: enumerate
+#: doc/contributing.texi:961
+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 ""
+
+#. 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 ""
+
+#. type: Plain text
+#: doc/contributing.texi:974
+msgid "When a bug is resolved, please close the thread by sending an email to @email{@var{NNN}-done@@debbugs.gnu.org}."
+msgstr ""
+
+#. type: anchor{#1}
+#: doc/contributing.texi:975 doc/contributing.texi:977
+#, no-wrap
+msgid "Sending a Patch Series"
+msgstr ""
+
+#. type: cindex
+#: doc/contributing.texi:977
+#, no-wrap
+msgid "patch series"
+msgstr ""
+
+#. type: code{#1}
+#: doc/contributing.texi:978
+#, no-wrap
+msgid "git send-email"
+msgstr ""
+
+#. type: code{#1}
+#: doc/contributing.texi:979
+#, no-wrap
+msgid "git-send-email"
+msgstr ""
+
+#. 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 ""
+
+#. type: Plain text
+#: doc/guix.texi:7
+msgid "@documentencoding UTF-8"
+msgstr "@documentencoding UTF-8"
+
+#. type: title
+#: doc/guix.texi:7 doc/guix.texi:87
+#, no-wrap
+msgid "GNU Guix Reference Manual"
+msgstr "GNU Guix参考手册"
+
+#. type: include
+#: doc/guix.texi:10
+#, no-wrap
+msgid "version.texi"
+msgstr "version-zh_CN.texi"
+
+#. type: copying
+#: doc/guix.texi:61
+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@*"
+msgstr ""
+
+#. type: copying
+#: doc/guix.texi:68
+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 ""
+
+#. type: dircategory
+#: doc/guix.texi:70
+#, no-wrap
+msgid "System administration"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:77
+msgid "Guix: (guix)"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:77
+msgid "Manage installed software and system configuration."
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:77
+msgid "guix package: (guix)Invoking guix package"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:77
+msgid "Installing, removing, and upgrading packages."
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:77
+msgid "guix gc: (guix)Invoking guix gc"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:77
+msgid "Reclaiming unused disk space."
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:77
+msgid "guix pull: (guix)Invoking guix pull"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:77
+msgid "Update the list of available packages."
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:77
+msgid "guix system: (guix)Invoking guix system"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:77
+msgid "Manage the operating system configuration."
+msgstr ""
+
+#. type: dircategory
+#: doc/guix.texi:79
+#, no-wrap
+msgid "Software development"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:84
+msgid "guix environment: (guix)Invoking guix environment"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:84
+msgid "Building development environments with Guix."
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:84
+msgid "guix build: (guix)Invoking guix build"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:84
+msgid "Building packages."
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:84
+msgid "guix pack: (guix)Invoking guix pack"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:84
+msgid "Creating binary bundles."
+msgstr ""
+
+#. type: subtitle
+#: doc/guix.texi:88
+#, no-wrap
+msgid "Using the GNU Guix Functional Package Manager"
+msgstr ""
+
+#. type: author
+#: doc/guix.texi:89
+#, no-wrap
+msgid "The GNU Guix Developers"
+msgstr ""
+
+#. type: titlepage
+#: doc/guix.texi:95
+msgid "Edition @value{EDITION} @* @value{UPDATED} @*"
+msgstr ""
+
+#. type: node
+#: doc/guix.texi:102
+#, no-wrap
+msgid "Top"
+msgstr ""
+
+#. type: top
+#: doc/guix.texi:103
+#, no-wrap
+msgid "GNU Guix"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:107
+msgid "This document describes GNU Guix version @value{VERSION}, a functional package management tool written for the GNU system."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:117
+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 ""
+
+#. type: chapter
+#: doc/guix.texi:133 doc/guix.texi:143 doc/guix.texi:306 doc/guix.texi:307
+#, no-wrap
+msgid "Introduction"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:133
+msgid "What is Guix about?"
+msgstr ""
+
+#. type: chapter
+#: doc/guix.texi:133 doc/guix.texi:148 doc/guix.texi:465 doc/guix.texi:466
+#, no-wrap
+msgid "Installation"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:133
+msgid "Installing Guix."
+msgstr ""
+
+#. type: chapter
+#: doc/guix.texi:133 doc/guix.texi:163 doc/guix.texi:1759 doc/guix.texi:1760
+#, no-wrap
+msgid "System Installation"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:133
+msgid "Installing the whole operating system."
+msgstr ""
+
+#. type: chapter
+#: doc/guix.texi:133 doc/guix.texi:180 doc/guix.texi:2485 doc/guix.texi:2486
+#, no-wrap
+msgid "Package Management"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:133
+msgid "Package installation, upgrade, etc."
+msgstr ""
+
+#. type: chapter
+#: doc/guix.texi:133 doc/guix.texi:202 doc/guix.texi:4308 doc/guix.texi:4309
+#, no-wrap
+msgid "Development"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:133
+msgid "Guix-aided software development."
+msgstr ""
+
+#. type: chapter
+#: doc/guix.texi:133 doc/guix.texi:207 doc/guix.texi:4932 doc/guix.texi:4933
+#, no-wrap
+msgid "Programming Interface"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:133
+msgid "Using Guix in Scheme."
+msgstr ""
+
+#. type: chapter
+#: doc/guix.texi:133 doc/guix.texi:223 doc/guix.texi:7513 doc/guix.texi:7514
+#, no-wrap
+msgid "Utilities"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:133
+msgid "Package management commands."
+msgstr ""
+
+#. type: chapter
+#: doc/guix.texi:133 doc/guix.texi:248 doc/guix.texi:10122 doc/guix.texi:10123
+#, no-wrap
+msgid "System Configuration"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:133
+msgid "Configuring the operating system."
+msgstr ""
+
+#. type: chapter
+#: doc/guix.texi:133 doc/guix.texi:25159 doc/guix.texi:25160
+#, no-wrap
+msgid "Documentation"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:133
+msgid "Browsing software user manuals."
+msgstr ""
+
+#. type: chapter
+#: doc/guix.texi:133 doc/guix.texi:25223 doc/guix.texi:25224
+#, no-wrap
+msgid "Installing Debugging Files"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:133
+msgid "Feeding the debugger."
+msgstr ""
+
+#. type: chapter
+#: doc/guix.texi:133 doc/guix.texi:25289 doc/guix.texi:25290
+#, no-wrap
+msgid "Security Updates"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:133
+msgid "Deploying security fixes quickly."
+msgstr ""
+
+#. type: chapter
+#: doc/guix.texi:133 doc/guix.texi:25409 doc/guix.texi:25410
+#, no-wrap
+msgid "Bootstrapping"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:133
+msgid "GNU/Linux built from scratch."
+msgstr ""
+
+#. type: node
+#: doc/guix.texi:133 doc/guix.texi:25593
+#, no-wrap
+msgid "Porting"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:133
+msgid "Targeting another platform or kernel."
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:133
+msgid "Your help needed!"
+msgstr ""
+
+#. type: chapter
+#: doc/guix.texi:138 doc/guix.texi:25641 doc/guix.texi:25642
+#, no-wrap
+msgid "Acknowledgments"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:138
+msgid "Thanks!"
+msgstr ""
+
+#. type: appendix
+#: doc/guix.texi:138 doc/guix.texi:25663 doc/guix.texi:25664
+#, no-wrap
+msgid "GNU Free Documentation License"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:138
+msgid "The license of this manual."
+msgstr ""
+
+#. type: unnumbered
+#: doc/guix.texi:138 doc/guix.texi:25669 doc/guix.texi:25670
+#, no-wrap
+msgid "Concept Index"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:138
+msgid "Concepts."
+msgstr ""
+
+#. type: unnumbered
+#: doc/guix.texi:138 doc/guix.texi:25673 doc/guix.texi:25674
+#, no-wrap
+msgid "Programming Index"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:138
+msgid "Data types, functions, and variables."
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:141
+msgid "--- The Detailed Node Listing ---"
+msgstr ""
+
+#. type: section
+#: doc/guix.texi:146 doc/guix.texi:333 doc/guix.texi:335 doc/guix.texi:336
+#, no-wrap
+msgid "Managing Software the Guix Way"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:146 doc/guix.texi:333
+msgid "What's special."
+msgstr ""
+
+#. type: section
+#: doc/guix.texi:146 doc/guix.texi:333 doc/guix.texi:390 doc/guix.texi:391
+#, no-wrap
+msgid "GNU Distribution"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:146 doc/guix.texi:333
+msgid "The packages and tools."
+msgstr ""
+
+#. type: section
+#: doc/guix.texi:155 doc/guix.texi:504 doc/guix.texi:506 doc/guix.texi:507
+#, no-wrap
+msgid "Binary Installation"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:155 doc/guix.texi:504
+msgid "Getting Guix running in no time!"
+msgstr ""
+
+#. type: section
+#: doc/guix.texi:155 doc/guix.texi:504 doc/guix.texi:705 doc/guix.texi:706
+#, no-wrap
+msgid "Requirements"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:155 doc/guix.texi:504
+msgid "Software needed to build and run Guix."
+msgstr ""
+
+#. type: section
+#: doc/guix.texi:155 doc/guix.texi:504 doc/guix.texi:789 doc/guix.texi:790
+#, no-wrap
+msgid "Running the Test Suite"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:155 doc/guix.texi:504
+msgid "Testing Guix."
+msgstr ""
+
+#. type: section
+#: doc/guix.texi:155 doc/guix.texi:157 doc/guix.texi:504 doc/guix.texi:854
+#: doc/guix.texi:855
+#, no-wrap
+msgid "Setting Up the Daemon"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:155 doc/guix.texi:504
+msgid "Preparing the build daemon's environment."
+msgstr ""
+
+#. type: node
+#: doc/guix.texi:155 doc/guix.texi:504 doc/guix.texi:1285
+#, no-wrap
+msgid "Invoking guix-daemon"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:155 doc/guix.texi:504
+msgid "Running the build daemon."
+msgstr ""
+
+#. type: section
+#: doc/guix.texi:155 doc/guix.texi:504 doc/guix.texi:1553 doc/guix.texi:1554
+#, no-wrap
+msgid "Application Setup"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:155 doc/guix.texi:504
+msgid "Application-specific setup."
+msgstr ""
+
+#. type: subsection
+#: doc/guix.texi:161 doc/guix.texi:874 doc/guix.texi:876 doc/guix.texi:877
+#, no-wrap
+msgid "Build Environment Setup"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:161 doc/guix.texi:874
+msgid "Preparing the isolated build environment."
+msgstr ""
+
+#. type: node
+#: doc/guix.texi:161 doc/guix.texi:874 doc/guix.texi:993
+#, no-wrap
+msgid "Daemon Offload Setup"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:161 doc/guix.texi:874
+msgid "Offloading builds to remote machines."
+msgstr ""
+
+#. type: subsection
+#: doc/guix.texi:161 doc/guix.texi:874 doc/guix.texi:1199 doc/guix.texi:1200
+#, no-wrap
+msgid "SELinux Support"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:161 doc/guix.texi:874
+msgid "Using an SELinux policy for the daemon."
+msgstr ""
+
+#. type: section
+#: doc/guix.texi:173 doc/guix.texi:1235 doc/guix.texi:1793 doc/guix.texi:1795
+#: doc/guix.texi:1796
+#, no-wrap
+msgid "Limitations"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:173 doc/guix.texi:1793
+msgid "What you can expect."
+msgstr ""
+
+#. type: section
+#: doc/guix.texi:173 doc/guix.texi:1793 doc/guix.texi:1839 doc/guix.texi:1840
+#, no-wrap
+msgid "Hardware Considerations"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:173 doc/guix.texi:1793
+msgid "Supported hardware."
+msgstr ""
+
+#. type: section
+#: doc/guix.texi:173 doc/guix.texi:1793 doc/guix.texi:1874 doc/guix.texi:1875
+#, no-wrap
+msgid "USB Stick and DVD Installation"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:173 doc/guix.texi:1793
+msgid "Preparing the installation medium."
+msgstr ""
+
+#. type: section
+#: doc/guix.texi:173 doc/guix.texi:1793 doc/guix.texi:1973 doc/guix.texi:1974
+#, no-wrap
+msgid "Preparing for Installation"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:173 doc/guix.texi:1793
+msgid "Networking, partitioning, etc."
+msgstr ""
+
+#. type: section
+#: doc/guix.texi:173 doc/guix.texi:1793 doc/guix.texi:1996 doc/guix.texi:1997
+#, no-wrap
+msgid "Guided Graphical Installation"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:173 doc/guix.texi:1793
+msgid "Easy graphical installation."
+msgstr ""
+
+#. type: section
+#: doc/guix.texi:173 doc/guix.texi:175 doc/guix.texi:1793 doc/guix.texi:2027
+#: doc/guix.texi:2028
+#, no-wrap
+msgid "Manual Installation"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:173 doc/guix.texi:1793
+msgid "Manual installation for wizards."
+msgstr ""
+
+#. type: section
+#: doc/guix.texi:173 doc/guix.texi:1793 doc/guix.texi:2370 doc/guix.texi:2371
+#, no-wrap
+msgid "After System Installation"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:173 doc/guix.texi:1793
+msgid "When installation succeeded."
+msgstr ""
+
+#. type: node
+#: doc/guix.texi:173 doc/guix.texi:1793 doc/guix.texi:2398
+#, no-wrap
+msgid "Installing Guix in a VM"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:173 doc/guix.texi:1793
+msgid "Guix System playground."
+msgstr ""
+
+#. type: section
+#: doc/guix.texi:173 doc/guix.texi:1793 doc/guix.texi:2452 doc/guix.texi:2453
+#, no-wrap
+msgid "Building the Installation Image"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:173 doc/guix.texi:1793
+msgid "How this comes to be."
+msgstr ""
+
+#. type: node
+#: doc/guix.texi:178 doc/guix.texi:2045 doc/guix.texi:2047
+#, no-wrap
+msgid "Keyboard Layout and Networking and Partitioning"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:178 doc/guix.texi:2045
+msgid "Initial setup."
+msgstr ""
+
+#. type: subsection
+#: doc/guix.texi:178 doc/guix.texi:2045 doc/guix.texi:2282 doc/guix.texi:2283
+#, no-wrap
+msgid "Proceeding with the Installation"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:178 doc/guix.texi:2045
+msgid "Installing."
+msgstr ""
+
+#. type: section
+#: doc/guix.texi:191 doc/guix.texi:2517 doc/guix.texi:2519 doc/guix.texi:2520
+#, no-wrap
+msgid "Features"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:191 doc/guix.texi:2517
+msgid "How Guix will make your life brighter."
+msgstr ""
+
+#. type: node
+#: doc/guix.texi:191 doc/guix.texi:2517 doc/guix.texi:2605
+#, no-wrap
+msgid "Invoking guix package"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:191 doc/guix.texi:2517
+msgid "Package installation, removal, etc."
+msgstr ""
+
+#. type: section
+#: doc/guix.texi:191 doc/guix.texi:193 doc/guix.texi:2517 doc/guix.texi:3086
+#: doc/guix.texi:3087
+#, no-wrap
+msgid "Substitutes"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:191 doc/guix.texi:2517
+msgid "Downloading pre-built binaries."
+msgstr ""
+
+#. type: section
+#: doc/guix.texi:191 doc/guix.texi:2517 doc/guix.texi:3314 doc/guix.texi:3315
+#, no-wrap
+msgid "Packages with Multiple Outputs"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:191 doc/guix.texi:2517
+msgid "Single source package, multiple outputs."
+msgstr ""
+
+#. type: node
+#: doc/guix.texi:191 doc/guix.texi:2517 doc/guix.texi:3368
+#, no-wrap
+msgid "Invoking guix gc"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:191 doc/guix.texi:2517
+msgid "Running the garbage collector."
+msgstr ""
+
+#. type: node
+#: doc/guix.texi:191 doc/guix.texi:2517 doc/guix.texi:3574
+#, no-wrap
+msgid "Invoking guix pull"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:191 doc/guix.texi:2517
+msgid "Fetching the latest Guix and distribution."
+msgstr ""
+
+#. type: section
+#: doc/guix.texi:191 doc/guix.texi:2517 doc/guix.texi:3720 doc/guix.texi:3721
+#, no-wrap
+msgid "Channels"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:191 doc/guix.texi:2517
+msgid "Customizing the package collection."
+msgstr ""
+
+#. type: section
+#: doc/guix.texi:191 doc/guix.texi:2517 doc/guix.texi:3933 doc/guix.texi:3934
+#, no-wrap
+msgid "Inferiors"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:191 doc/guix.texi:2517
+msgid "Interacting with another revision of Guix."
+msgstr ""
+
+#. type: node
+#: doc/guix.texi:191 doc/guix.texi:2517 doc/guix.texi:4061
+#, no-wrap
+msgid "Invoking guix describe"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:191 doc/guix.texi:2517
+msgid "Display information about your Guix revision."
+msgstr ""
+
+#. type: node
+#: doc/guix.texi:191 doc/guix.texi:2517 doc/guix.texi:4142
+#, no-wrap
+msgid "Invoking guix archive"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:191 doc/guix.texi:2517
+msgid "Exporting and importing store files."
+msgstr ""
+
+#. type: subsection
+#: doc/guix.texi:200 doc/guix.texi:3109 doc/guix.texi:3111 doc/guix.texi:3112
+#, no-wrap
+msgid "Official Substitute Server"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:200 doc/guix.texi:3109
+msgid "One particular source of substitutes."
+msgstr ""
+
+#. type: subsection
+#: doc/guix.texi:200 doc/guix.texi:3109 doc/guix.texi:3141 doc/guix.texi:3142
+#, no-wrap
+msgid "Substitute Server Authorization"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:200 doc/guix.texi:3109
+msgid "How to enable or disable substitutes."
+msgstr ""
+
+#. type: subsection
+#: doc/guix.texi:200 doc/guix.texi:3109 doc/guix.texi:3209 doc/guix.texi:3210
+#, no-wrap
+msgid "Substitute Authentication"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:200 doc/guix.texi:3109
+msgid "How Guix verifies substitutes."
+msgstr ""
+
+#. type: subsection
+#: doc/guix.texi:200 doc/guix.texi:3109 doc/guix.texi:3244 doc/guix.texi:3245
+#, no-wrap
+msgid "Proxy Settings"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:200 doc/guix.texi:3109
+msgid "How to get substitutes via proxy."
+msgstr ""
+
+#. type: subsection
+#: doc/guix.texi:200 doc/guix.texi:3109 doc/guix.texi:3256 doc/guix.texi:3257
+#, no-wrap
+msgid "Substitution Failure"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:200 doc/guix.texi:3109
+msgid "What happens when substitution fails."
+msgstr ""
+
+#. type: subsection
+#: doc/guix.texi:200 doc/guix.texi:3109 doc/guix.texi:3284 doc/guix.texi:3285
+#, no-wrap
+msgid "On Trusting Binaries"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:200 doc/guix.texi:3109
+msgid "How can you trust that binary blob?"
+msgstr ""
+
+#. type: node
+#: doc/guix.texi:205 doc/guix.texi:4325 doc/guix.texi:4327
+#, no-wrap
+msgid "Invoking guix environment"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:205 doc/guix.texi:4325
+msgid "Setting up development environments."
+msgstr ""
+
+#. type: node
+#: doc/guix.texi:205 doc/guix.texi:4325 doc/guix.texi:4666
+#, no-wrap
+msgid "Invoking guix pack"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:205 doc/guix.texi:4325
+msgid "Creating software bundles."
+msgstr ""
+
+#. type: section
+#: doc/guix.texi:216 doc/guix.texi:4969 doc/guix.texi:4971 doc/guix.texi:4972
+#, no-wrap
+msgid "Package Modules"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:216 doc/guix.texi:4969
+msgid "Packages from the programmer's viewpoint."
+msgstr ""
+
+#. type: section
+#: doc/guix.texi:216 doc/guix.texi:218 doc/guix.texi:4969 doc/guix.texi:5033
+#: doc/guix.texi:5034
+#, no-wrap
+msgid "Defining Packages"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:216 doc/guix.texi:4969
+msgid "Defining new packages."
+msgstr ""
+
+#. type: section
+#: doc/guix.texi:216 doc/guix.texi:4969 doc/guix.texi:5516 doc/guix.texi:5517
+#, no-wrap
+msgid "Build Systems"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:216 doc/guix.texi:4969
+msgid "Specifying how packages are built."
+msgstr ""
+
+#. type: section
+#: doc/guix.texi:216 doc/guix.texi:4969 doc/guix.texi:6227 doc/guix.texi:6228
+#, no-wrap
+msgid "The Store"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:216 doc/guix.texi:4969
+msgid "Manipulating the package store."
+msgstr ""
+
+#. type: section
+#: doc/guix.texi:216 doc/guix.texi:4969 doc/guix.texi:6377 doc/guix.texi:6378
+#, no-wrap
+msgid "Derivations"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:216 doc/guix.texi:4969
+msgid "Low-level interface to package derivations."
+msgstr ""
+
+#. type: section
+#: doc/guix.texi:216 doc/guix.texi:4969 doc/guix.texi:6571 doc/guix.texi:6572
+#, no-wrap
+msgid "The Store Monad"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:216 doc/guix.texi:4969
+msgid "Purely functional interface to the store."
+msgstr ""
+
+#. type: section
+#: doc/guix.texi:216 doc/guix.texi:4969 doc/guix.texi:6886 doc/guix.texi:6887
+#, no-wrap
+msgid "G-Expressions"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:216 doc/guix.texi:4969
+msgid "Manipulating build expressions."
+msgstr ""
+
+#. type: node
+#: doc/guix.texi:216 doc/guix.texi:4969 doc/guix.texi:7460
+#, no-wrap
+msgid "Invoking guix repl"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:216 doc/guix.texi:4969
+msgid "Fiddling with Guix interactively."
+msgstr ""
+
+#. type: node
+#: doc/guix.texi:221 doc/guix.texi:5302 doc/guix.texi:5305
+#, no-wrap
+msgid "package Reference"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:221 doc/guix.texi:5302
+msgid "The package data type."
+msgstr ""
+
+#. type: node
+#: doc/guix.texi:221 doc/guix.texi:5302 doc/guix.texi:5428
+#, no-wrap
+msgid "origin Reference"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:221 doc/guix.texi:5302
+msgid "The origin data type."
+msgstr ""
+
+#. type: node
+#: doc/guix.texi:239 doc/guix.texi:7537 doc/guix.texi:7539
+#, no-wrap
+msgid "Invoking guix build"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:239 doc/guix.texi:7537
+msgid "Building packages from the command line."
+msgstr ""
+
+#. type: node
+#: doc/guix.texi:239 doc/guix.texi:7537 doc/guix.texi:8188
+#, no-wrap
+msgid "Invoking guix edit"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:239 doc/guix.texi:7537
+msgid "Editing package definitions."
+msgstr ""
+
+#. type: node
+#: doc/guix.texi:239 doc/guix.texi:7537 doc/guix.texi:8214
+#, no-wrap
+msgid "Invoking guix download"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:239 doc/guix.texi:7537
+msgid "Downloading a file and printing its hash."
+msgstr ""
+
+#. type: node
+#: doc/guix.texi:239 doc/guix.texi:7537 doc/guix.texi:8267
+#, no-wrap
+msgid "Invoking guix hash"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:239 doc/guix.texi:7537
+msgid "Computing the cryptographic hash of a file."
+msgstr ""
+
+#. type: node
+#: doc/guix.texi:239 doc/guix.texi:7537 doc/guix.texi:8329
+#, no-wrap
+msgid "Invoking guix import"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:239 doc/guix.texi:7537
+msgid "Importing package definitions."
+msgstr ""
+
+#. type: node
+#: doc/guix.texi:239 doc/guix.texi:7537 doc/guix.texi:8727
+#, no-wrap
+msgid "Invoking guix refresh"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:239 doc/guix.texi:7537
+msgid "Updating package definitions."
+msgstr ""
+
+#. type: node
+#: doc/guix.texi:239 doc/guix.texi:7537 doc/guix.texi:9038
+#, no-wrap
+msgid "Invoking guix lint"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:239 doc/guix.texi:7537
+msgid "Finding errors in package definitions."
+msgstr ""
+
+#. type: node
+#: doc/guix.texi:239 doc/guix.texi:7537 doc/guix.texi:9154
+#, no-wrap
+msgid "Invoking guix size"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:239 doc/guix.texi:7537
+msgid "Profiling disk usage."
+msgstr ""
+
+#. type: node
+#: doc/guix.texi:239 doc/guix.texi:7537 doc/guix.texi:9278
+#, no-wrap
+msgid "Invoking guix graph"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:239 doc/guix.texi:7537
+msgid "Visualizing the graph of packages."
+msgstr ""
+
+#. type: node
+#: doc/guix.texi:239 doc/guix.texi:7537 doc/guix.texi:9481
+#, no-wrap
+msgid "Invoking guix publish"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:239 doc/guix.texi:7537
+msgid "Sharing substitutes."
+msgstr ""
+
+#. type: node
+#: doc/guix.texi:239 doc/guix.texi:7537 doc/guix.texi:9698
+#, no-wrap
+msgid "Invoking guix challenge"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:239 doc/guix.texi:7537
+msgid "Challenging substitute servers."
+msgstr ""
+
+#. type: node
+#: doc/guix.texi:239 doc/guix.texi:7537 doc/guix.texi:9837
+#, no-wrap
+msgid "Invoking guix copy"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:239 doc/guix.texi:7537
+msgid "Copying to and from a remote store."
+msgstr ""
+
+#. type: node
+#: doc/guix.texi:239 doc/guix.texi:7537 doc/guix.texi:9900
+#, no-wrap
+msgid "Invoking guix container"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:239 doc/guix.texi:7537
+msgid "Process isolation."
+msgstr ""
+
+#. type: node
+#: doc/guix.texi:239 doc/guix.texi:7537 doc/guix.texi:9954
+#, no-wrap
+msgid "Invoking guix weather"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:239 doc/guix.texi:7537
+msgid "Assessing substitute availability."
+msgstr ""
+
+#. type: node
+#: doc/guix.texi:239 doc/guix.texi:7537 doc/guix.texi:10065
+#, no-wrap
+msgid "Invoking guix processes"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:239 doc/guix.texi:7537
+msgid "Listing client processes."
+msgstr ""
+
+#. type: section
+#: doc/guix.texi:241 doc/guix.texi:7540
+#, no-wrap
+msgid "Invoking @command{guix build}"
+msgstr ""
+
+#. type: subsection
+#: doc/guix.texi:246 doc/guix.texi:7591 doc/guix.texi:7593 doc/guix.texi:7594
+#, no-wrap
+msgid "Common Build Options"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:246 doc/guix.texi:7591
+msgid "Build options for most commands."
+msgstr ""
+
+#. type: subsection
+#: doc/guix.texi:246 doc/guix.texi:7591 doc/guix.texi:7749 doc/guix.texi:7750
+#, no-wrap
+msgid "Package Transformation Options"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:246 doc/guix.texi:7591
+msgid "Creating variants of packages."
+msgstr ""
+
+#. type: subsection
+#: doc/guix.texi:246 doc/guix.texi:7591 doc/guix.texi:7898 doc/guix.texi:7899
+#, no-wrap
+msgid "Additional Build Options"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:246 doc/guix.texi:7591
+msgid "Options specific to 'guix build'."
+msgstr ""
+
+#. type: subsection
+#: doc/guix.texi:246 doc/guix.texi:7591 doc/guix.texi:8108 doc/guix.texi:8109
+#, no-wrap
+msgid "Debugging Build Failures"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:246 doc/guix.texi:7591
+msgid "Real life packaging experience."
+msgstr ""
+
+#. type: section
+#: doc/guix.texi:265 doc/guix.texi:10164 doc/guix.texi:10166
+#: doc/guix.texi:10167
+#, no-wrap
+msgid "Using the Configuration System"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:265 doc/guix.texi:10164
+msgid "Customizing your GNU system."
+msgstr ""
+
+#. type: node
+#: doc/guix.texi:265 doc/guix.texi:10164 doc/guix.texi:10402
+#, no-wrap
+msgid "operating-system Reference"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:265 doc/guix.texi:10164
+msgid "Detail of operating-system declarations."
+msgstr ""
+
+#. type: section
+#: doc/guix.texi:265 doc/guix.texi:10164 doc/guix.texi:10581
+#: doc/guix.texi:10582
+#, no-wrap
+msgid "File Systems"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:265 doc/guix.texi:10164
+msgid "Configuring file system mounts."
+msgstr ""
+
+#. type: section
+#: doc/guix.texi:265 doc/guix.texi:10164 doc/guix.texi:10746
+#: doc/guix.texi:10747
+#, no-wrap
+msgid "Mapped Devices"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:265 doc/guix.texi:10164
+msgid "Block device extra processing."
+msgstr ""
+
+#. type: section
+#: doc/guix.texi:265 doc/guix.texi:10164 doc/guix.texi:10867
+#: doc/guix.texi:10868
+#, no-wrap
+msgid "User Accounts"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:265 doc/guix.texi:10164
+msgid "Specifying user accounts."
+msgstr ""
+
+#. type: section
+#: doc/guix.texi:265 doc/guix.texi:2054 doc/guix.texi:10164
+#: doc/guix.texi:11020 doc/guix.texi:11021
+#, no-wrap
+msgid "Keyboard Layout"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:265 doc/guix.texi:10164
+msgid "How the system interprets key strokes."
+msgstr ""
+
+#. type: section
+#: doc/guix.texi:265 doc/guix.texi:1561 doc/guix.texi:10164
+#: doc/guix.texi:11152 doc/guix.texi:11153
+#, no-wrap
+msgid "Locales"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:265 doc/guix.texi:10164
+msgid "Language and cultural convention settings."
+msgstr ""
+
+#. type: section
+#: doc/guix.texi:265 doc/guix.texi:267 doc/guix.texi:10164 doc/guix.texi:11292
+#: doc/guix.texi:11293
+#, no-wrap
+msgid "Services"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:265 doc/guix.texi:10164
+msgid "Specifying system services."
+msgstr ""
+
+#. type: section
+#: doc/guix.texi:265 doc/guix.texi:10164 doc/guix.texi:23399
+#: doc/guix.texi:23400
+#, no-wrap
+msgid "Setuid Programs"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:265 doc/guix.texi:10164
+msgid "Programs running with root privileges."
+msgstr ""
+
+#. type: section
+#: doc/guix.texi:265 doc/guix.texi:1706 doc/guix.texi:10164
+#: doc/guix.texi:23445 doc/guix.texi:23446
+#, no-wrap
+msgid "X.509 Certificates"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:265 doc/guix.texi:10164
+msgid "Authenticating HTTPS servers."
+msgstr ""
+
+#. type: section
+#: doc/guix.texi:265 doc/guix.texi:1604 doc/guix.texi:10164
+#: doc/guix.texi:23508 doc/guix.texi:23509
+#, no-wrap
+msgid "Name Service Switch"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:265 doc/guix.texi:10164
+msgid "Configuring libc's name service switch."
+msgstr ""
+
+#. type: section
+#: doc/guix.texi:265 doc/guix.texi:10164 doc/guix.texi:23646
+#: doc/guix.texi:23647
+#, no-wrap
+msgid "Initial RAM Disk"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:265 doc/guix.texi:10164
+msgid "Linux-Libre bootstrapping."
+msgstr ""
+
+#. type: section
+#: doc/guix.texi:265 doc/guix.texi:10164 doc/guix.texi:23820
+#: doc/guix.texi:23821
+#, no-wrap
+msgid "Bootloader Configuration"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:265 doc/guix.texi:10164
+msgid "Configuring the boot loader."
+msgstr ""
+
+#. type: node
+#: doc/guix.texi:265 doc/guix.texi:10164 doc/guix.texi:24017
+#, no-wrap
+msgid "Invoking guix system"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:265 doc/guix.texi:10164
+msgid "Instantiating a system configuration."
+msgstr ""
+
+#. type: node
+#: doc/guix.texi:265 doc/guix.texi:10164 doc/guix.texi:24472
+#, no-wrap
+msgid "Running Guix in a VM"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:265 doc/guix.texi:10164
+msgid "How to run Guix System in a virtual machine."
+msgstr ""
+
+#. type: section
+#: doc/guix.texi:265 doc/guix.texi:296 doc/guix.texi:10164 doc/guix.texi:24583
+#: doc/guix.texi:24584
+#, no-wrap
+msgid "Defining Services"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:265 doc/guix.texi:10164
+msgid "Adding new service definitions."
+msgstr ""
+
+#. type: subsection
+#: doc/guix.texi:294 doc/guix.texi:11369 doc/guix.texi:11371
+#: doc/guix.texi:11372
+#, no-wrap
+msgid "Base Services"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:294 doc/guix.texi:11369
+msgid "Essential system services."
+msgstr ""
+
+#. type: subsection
+#: doc/guix.texi:294 doc/guix.texi:11369 doc/guix.texi:12164
+#: doc/guix.texi:12165
+#, no-wrap
+msgid "Scheduled Job Execution"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:294 doc/guix.texi:11369
+msgid "The mcron service."
+msgstr ""
+
+#. type: subsection
+#: doc/guix.texi:294 doc/guix.texi:11369 doc/guix.texi:12265
+#: doc/guix.texi:12266
+#, no-wrap
+msgid "Log Rotation"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:294 doc/guix.texi:11369
+msgid "The rottlog service."
+msgstr ""
+
+#. type: subsection
+#: doc/guix.texi:294 doc/guix.texi:11369 doc/guix.texi:12367
+#: doc/guix.texi:12368
+#, no-wrap
+msgid "Networking Services"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:294 doc/guix.texi:11369
+msgid "Network setup, SSH daemon, etc."
+msgstr ""
+
+#. type: subsection
+#: doc/guix.texi:294 doc/guix.texi:11369 doc/guix.texi:13312
+#: doc/guix.texi:13313
+#, no-wrap
+msgid "X Window"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:294 doc/guix.texi:11369
+msgid "Graphical display."
+msgstr ""
+
+#. type: subsection
+#: doc/guix.texi:294 doc/guix.texi:11369 doc/guix.texi:13626
+#: doc/guix.texi:13627
+#, no-wrap
+msgid "Printing Services"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:294 doc/guix.texi:11369
+msgid "Local and remote printer support."
+msgstr ""
+
+#. type: subsection
+#: doc/guix.texi:294 doc/guix.texi:11369 doc/guix.texi:14467
+#: doc/guix.texi:14468
+#, no-wrap
+msgid "Desktop Services"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:294 doc/guix.texi:11369
+msgid "D-Bus and desktop services."
+msgstr ""
+
+#. type: subsection
+#: doc/guix.texi:294 doc/guix.texi:11369 doc/guix.texi:14868
+#: doc/guix.texi:14869
+#, no-wrap
+msgid "Sound Services"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:294 doc/guix.texi:11369
+msgid "ALSA and Pulseaudio services."
+msgstr ""
+
+#. type: subsection
+#: doc/guix.texi:294 doc/guix.texi:11369 doc/guix.texi:14949
+#: doc/guix.texi:14950
+#, no-wrap
+msgid "Database Services"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:294 doc/guix.texi:11369
+msgid "SQL databases, key-value stores, etc."
+msgstr ""
+
+#. type: subsection
+#: doc/guix.texi:294 doc/guix.texi:11369 doc/guix.texi:15109
+#: doc/guix.texi:15110
+#, no-wrap
+msgid "Mail Services"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:294 doc/guix.texi:11369
+msgid "IMAP, POP3, SMTP, and all that."
+msgstr ""
+
+#. type: subsection
+#: doc/guix.texi:294 doc/guix.texi:11369 doc/guix.texi:16610
+#: doc/guix.texi:16611
+#, no-wrap
+msgid "Messaging Services"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:294 doc/guix.texi:11369
+msgid "Messaging services."
+msgstr ""
+
+#. type: subsection
+#: doc/guix.texi:294 doc/guix.texi:11369 doc/guix.texi:17112
+#: doc/guix.texi:17113
+#, no-wrap
+msgid "Telephony Services"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:294 doc/guix.texi:11369
+msgid "Telephony services."
+msgstr ""
+
+#. type: subsection
+#: doc/guix.texi:294 doc/guix.texi:11369 doc/guix.texi:17317
+#: doc/guix.texi:17318
+#, no-wrap
+msgid "Monitoring Services"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:294 doc/guix.texi:11369
+msgid "Monitoring services."
+msgstr ""
+
+#. type: subsection
+#: doc/guix.texi:294 doc/guix.texi:11369 doc/guix.texi:17822
+#: doc/guix.texi:17823
+#, no-wrap
+msgid "Kerberos Services"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:294 doc/guix.texi:11369
+msgid "Kerberos services."
+msgstr ""
+
+#. type: subsection
+#: doc/guix.texi:294 doc/guix.texi:11369 doc/guix.texi:18426
+#: doc/guix.texi:18427
+#, no-wrap
+msgid "Web Services"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:294 doc/guix.texi:11369
+msgid "Web servers."
+msgstr ""
+
+#. type: subsection
+#: doc/guix.texi:294 doc/guix.texi:11369 doc/guix.texi:19227
+#: doc/guix.texi:19228
+#, no-wrap
+msgid "Certificate Services"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:294 doc/guix.texi:11369
+msgid "TLS certificates via Let's Encrypt."
+msgstr ""
+
+#. type: subsection
+#: doc/guix.texi:294 doc/guix.texi:11369 doc/guix.texi:19373
+#: doc/guix.texi:19374
+#, no-wrap
+msgid "DNS Services"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:294 doc/guix.texi:11369
+msgid "DNS daemons."
+msgstr ""
+
+#. type: subsection
+#: doc/guix.texi:294 doc/guix.texi:11369 doc/guix.texi:19942
+#: doc/guix.texi:19943
+#, no-wrap
+msgid "VPN Services"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:294 doc/guix.texi:11369
+msgid "VPN daemons."
+msgstr ""
+
+#. type: subsection
+#: doc/guix.texi:294 doc/guix.texi:11369 doc/guix.texi:20300
+#: doc/guix.texi:20301
+#, no-wrap
+msgid "Network File System"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:294 doc/guix.texi:11369
+msgid "NFS related services."
+msgstr ""
+
+#. type: subsection
+#: doc/guix.texi:294 doc/guix.texi:11369 doc/guix.texi:20415
+#: doc/guix.texi:20416
+#, no-wrap
+msgid "Continuous Integration"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:294 doc/guix.texi:11369
+msgid "The Cuirass service."
+msgstr ""
+
+#. type: subsection
+#: doc/guix.texi:294 doc/guix.texi:11369 doc/guix.texi:20532
+#: doc/guix.texi:20533
+#, no-wrap
+msgid "Power Management Services"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:294 doc/guix.texi:11369
+msgid "Extending battery life."
+msgstr ""
+
+#. type: subsection
+#: doc/guix.texi:294 doc/guix.texi:11369 doc/guix.texi:21066
+#: doc/guix.texi:21067
+#, no-wrap
+msgid "Audio Services"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:294 doc/guix.texi:11369
+msgid "The MPD."
+msgstr ""
+
+#. type: node
+#: doc/guix.texi:294 doc/guix.texi:11369 doc/guix.texi:21125
+#, no-wrap
+msgid "Virtualization Services"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:294 doc/guix.texi:11369
+msgid "Virtualization services."
+msgstr ""
+
+#. type: subsection
+#: doc/guix.texi:294 doc/guix.texi:11369 doc/guix.texi:21918
+#: doc/guix.texi:21919
+#, no-wrap
+msgid "Version Control Services"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:294 doc/guix.texi:11369
+msgid "Providing remote access to Git repositories."
+msgstr ""
+
+#. type: subsection
+#: doc/guix.texi:294 doc/guix.texi:11369 doc/guix.texi:23106
+#: doc/guix.texi:23107
+#, no-wrap
+msgid "Game Services"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:294 doc/guix.texi:11369
+msgid "Game servers."
+msgstr ""
+
+#. type: subsection
+#: doc/guix.texi:294 doc/guix.texi:11369 doc/guix.texi:23137
+#: doc/guix.texi:23138
+#, no-wrap
+msgid "Miscellaneous Services"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:294 doc/guix.texi:11369
+msgid "Other services."
+msgstr ""
+
+#. type: subsection
+#: doc/guix.texi:301 doc/guix.texi:24595 doc/guix.texi:24597
+#: doc/guix.texi:24598
+#, no-wrap
+msgid "Service Composition"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:301 doc/guix.texi:24595
+msgid "The model for composing services."
+msgstr ""
+
+#. type: subsection
+#: doc/guix.texi:301 doc/guix.texi:24595 doc/guix.texi:24653
+#: doc/guix.texi:24654
+#, no-wrap
+msgid "Service Types and Services"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:301 doc/guix.texi:24595
+msgid "Types and services."
+msgstr ""
+
+#. type: subsection
+#: doc/guix.texi:301 doc/guix.texi:24595 doc/guix.texi:24790
+#: doc/guix.texi:24791
+#, no-wrap
+msgid "Service Reference"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:301 doc/guix.texi:24595
+msgid "API reference."
+msgstr ""
+
+#. type: subsection
+#: doc/guix.texi:301 doc/guix.texi:24595 doc/guix.texi:25015
+#: doc/guix.texi:25016
+#, no-wrap
+msgid "Shepherd Services"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:301 doc/guix.texi:24595
+msgid "A particular type of service."
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:309
+#, no-wrap
+msgid "purpose"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:317
+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 ""
+
+#. type: cindex
+#: doc/guix.texi:318 doc/guix.texi:393
+#, no-wrap
+msgid "Guix System"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:319
+#, no-wrap
+msgid "GuixSD, now Guix System"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:320
+#, no-wrap
+msgid "Guix System Distribution, now Guix System"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:329
+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 ""
+
+#. type: cindex
+#: doc/guix.texi:338
+#, no-wrap
+msgid "user interfaces"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:344
+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 ""
+
+#. type: cindex
+#: doc/guix.texi:344
+#, no-wrap
+msgid "build daemon"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:348
+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 ""
+
+#. type: cindex
+#: doc/guix.texi:349
+#, no-wrap
+msgid "extensibility of the distribution"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:350 doc/guix.texi:4993
+#, no-wrap
+msgid "customization, of packages"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:359
+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 ""
+
+#. type: cindex
+#: doc/guix.texi:360
+#, no-wrap
+msgid "functional package management"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:361
+#, no-wrap
+msgid "isolation"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:376
+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 ""
+
+#. type: cindex
+#: doc/guix.texi:377 doc/guix.texi:6230
+#, no-wrap
+msgid "store"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:384
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:388
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:403
+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."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:409
+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}):"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:412
+#, no-wrap
+msgid "guix package --list-available\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:418
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:420
+msgid "Packages are currently available on the following platforms:"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:423 doc/guix.texi:1883
+#, no-wrap
+msgid "x86_64-linux"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:425
+msgid "Intel/AMD @code{x86_64} architecture, Linux-Libre kernel;"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:426 doc/guix.texi:1886
+#, no-wrap
+msgid "i686-linux"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:428
+msgid "Intel 32-bit architecture (IA32), Linux-Libre kernel;"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:429
+#, no-wrap
+msgid "armhf-linux"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:433
+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 ""
+
+#. type: item
+#: doc/guix.texi:434
+#, no-wrap
+msgid "aarch64-linux"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:438
+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 ""
+
+#. type: item
+#: doc/guix.texi:439
+#, no-wrap
+msgid "mips64el-linux"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:442
+msgid "little-endian 64-bit MIPS processors, specifically the Loongson series, n32 ABI, and Linux-Libre kernel."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:452
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:455
+msgid "Guix System is available on all the above platforms except @code{mips64el-linux}."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:459
+msgid "For information on porting to other architectures or kernels, @pxref{Porting}."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:462
+msgid "Building this distribution is a cooperative effort, and you are invited to join! @xref{Contributing}, for information about how you can help."
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:468
+#, no-wrap
+msgid "installing Guix"
+msgstr ""
+
+#. type: quotation
+#: doc/guix.texi:470 doc/guix.texi:1539 doc/guix.texi:1770 doc/guix.texi:1990
+#: doc/guix.texi:2192 doc/guix.texi:2387 doc/guix.texi:3166 doc/guix.texi:3937
+#: doc/guix.texi:4153 doc/guix.texi:4442 doc/guix.texi:4674 doc/guix.texi:4821
+#: doc/guix.texi:6249 doc/guix.texi:6317 doc/guix.texi:8001 doc/guix.texi:8013
+#: doc/guix.texi:9904 doc/guix.texi:10437 doc/guix.texi:10960
+#: doc/guix.texi:13414 doc/guix.texi:19216 doc/guix.texi:23899
+#: doc/guix.texi:24094 doc/guix.texi:24213 doc/guix.texi:24328
+#: doc/guix.texi:25312
+#, no-wrap
+msgid "Note"
+msgstr ""
+
+#. type: quotation
+#: doc/guix.texi:480
+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 ""
+
+#. type: cindex
+#: doc/guix.texi:482 doc/guix.texi:1556
+#, no-wrap
+msgid "foreign distro"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:483
+#, no-wrap
+msgid "directories related to foreign distro"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:488
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:491
+msgid "Once installed, Guix can be updated by running @command{guix pull} (@pxref{Invoking guix pull})."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:496
+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 ""
+
+#. type: cindex
+#: doc/guix.texi:509
+#, no-wrap
+msgid "installing Guix from binaries"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:510
+#, no-wrap
+msgid "installer script"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:516
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:518
+msgid "Installing goes along these lines:"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:521
+#, no-wrap
+msgid "downloading Guix binary"
+msgstr ""
+
+#. type: enumerate
+#: doc/guix.texi:526
+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 ""
+
+#. type: enumerate
+#: doc/guix.texi:530
+msgid "Make sure to download the associated @file{.sig} file and to verify the authenticity of the tarball against it, along these lines:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:534
+#, no-wrap
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:538 doc/guix.texi:1901
+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:542 doc/guix.texi:1905
+#, no-wrap
+msgid ""
+"$ gpg --keyserver @value{KEY-SERVER} \\\n"
+"      --recv-keys @value{OPENPGP-SIGNING-KEY-ID}\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:547 doc/guix.texi:1910
+msgid "and rerun the @code{gpg --verify} command."
+msgstr ""
+
+#. type: enumerate
+#: doc/guix.texi:551
+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 ""
+
+#. type: example
+#: doc/guix.texi:557
+#, no-wrap
+msgid ""
+"# cd /tmp\n"
+"# tar --warning=no-timestamp -xf \\\n"
+"     guix-binary-@value{VERSION}.@var{system}.tar.xz\n"
+"# mv var/guix /var/ && mv gnu /\n"
+msgstr ""
+
+#. type: enumerate
+#: doc/guix.texi:562
+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 ""
+
+#. type: enumerate
+#: doc/guix.texi:565
+msgid "Do @emph{not} unpack the tarball on a working Guix system since that would overwrite its own essential files."
+msgstr ""
+
+#. type: enumerate
+#: doc/guix.texi:575
+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 ""
+
+#. type: enumerate
+#: doc/guix.texi:579
+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 ""
+
+#. type: example
+#: doc/guix.texi:584
+#, no-wrap
+msgid ""
+"# mkdir -p ~root/.config/guix\n"
+"# ln -sf /var/guix/profiles/per-user/root/current-guix \\\n"
+"         ~root/.config/guix/current\n"
+msgstr ""
+
+#. type: enumerate
+#: doc/guix.texi:588
+msgid "Source @file{etc/profile} to augment @code{PATH} and other relevant environment variables:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:592
+#, no-wrap
+msgid ""
+"# GUIX_PROFILE=\"`echo ~root`/.config/guix/current\" ; \\\n"
+"  source $GUIX_PROFILE/etc/profile\n"
+msgstr ""
+
+#. type: enumerate
+#: doc/guix.texi:597
+msgid "Create the group and user accounts for build users as explained below (@pxref{Build Environment Setup})."
+msgstr ""
+
+#. type: enumerate
+#: doc/guix.texi:600
+msgid "Run the daemon, and set it to automatically start on boot."
+msgstr ""
+
+#. type: enumerate
+#: doc/guix.texi:603
+msgid "If your host distro uses the systemd init system, this can be achieved with these commands:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:615
+#, no-wrap
+msgid ""
+"# 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"
+msgstr ""
+
+#. type: itemize
+#: doc/guix.texi:618 doc/guix.texi:9688
+msgid "If your host distro uses the Upstart init system:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:624
+#, no-wrap
+msgid ""
+"# initctl reload-configuration\n"
+"# cp ~root/.config/guix/current/lib/upstart/system/guix-daemon.conf \\\n"
+"     /etc/init/\n"
+"# start guix-daemon\n"
+msgstr ""
+
+#. type: enumerate
+#: doc/guix.texi:627
+msgid "Otherwise, you can still start the daemon manually with:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:631
+#, no-wrap
+msgid ""
+"# ~root/.config/guix/current/bin/guix-daemon \\\n"
+"       --build-users-group=guixbuild\n"
+msgstr ""
+
+#. type: enumerate
+#: doc/guix.texi:636
+msgid "Make the @command{guix} command available to other users on the machine, for instance with:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:641
+#, no-wrap
+msgid ""
+"# mkdir -p /usr/local/bin\n"
+"# cd /usr/local/bin\n"
+"# ln -s /var/guix/profiles/per-user/root/current-guix/bin/guix\n"
+msgstr ""
+
+#. type: enumerate
+#: doc/guix.texi:645
+msgid "It is also a good idea to make the Info version of this manual available there:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:651
+#, no-wrap
+msgid ""
+"# mkdir -p /usr/local/share/info\n"
+"# cd /usr/local/share/info\n"
+"# for i in /var/guix/profiles/per-user/root/current-guix/share/info/* ;\n"
+"  do ln -s $i ; done\n"
+msgstr ""
+
+#. type: enumerate
+#: doc/guix.texi:657
+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 ""
+
+#. type: cindex
+#: doc/guix.texi:659 doc/guix.texi:3145 doc/guix.texi:11878
+#, no-wrap
+msgid "substitutes, authorization thereof"
+msgstr ""
+
+#. type: enumerate
+#: doc/guix.texi:662
+msgid "To use substitutes from @code{@value{SUBSTITUTE-SERVER}} or one of its mirrors (@pxref{Substitutes}), authorize them:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:666
+#, no-wrap
+msgid ""
+"# guix archive --authorize < \\\n"
+"     ~root/.config/guix/current/share/guix/@value{SUBSTITUTE-SERVER}.pub\n"
+msgstr ""
+
+#. type: enumerate
+#: doc/guix.texi:671
+msgid "Each user may need to perform a few additional steps to make their Guix environment ready for use, @pxref{Application Setup}."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:674
+msgid "Voilà, the installation is complete!"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:677
+msgid "You can confirm that Guix is working by installing a sample package into the root profile:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:680
+#, no-wrap
+msgid "# guix package -i hello\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:687
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:690
+msgid "The binary installation tarball can be (re)produced and verified simply by running the following command in the Guix source tree:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:693
+#, no-wrap
+msgid "make guix-binary.@var{system}.tar.xz\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:697
+msgid "...@: which, in turn, runs:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:701
+#, no-wrap
+msgid ""
+"guix pack -s @var{system} --localstatedir \\\n"
+"  --profile-name=current-guix guix\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:704
+msgid "@xref{Invoking guix pack}, for more info on this handy tool."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:712
+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 ""
+
+#. type: cindex
+#: doc/guix.texi:713
+#, no-wrap
+msgid "official website"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:716
+msgid "GNU Guix is available for download from its website at @url{https://www.gnu.org/software/guix/}."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:718
+msgid "GNU Guix depends on the following packages:"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:720
+#, no-wrap
+msgid "@url{http://gnu.org/software/guile/, GNU Guile}, version 2.2.x;"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:721
+#, no-wrap
+msgid "@url{https://notabug.org/cwebber/guile-gcrypt, Guile-Gcrypt}, version"
+msgstr ""
+
+#. type: itemize
+#: doc/guix.texi:723
+msgid "0.1.0 or later;"
+msgstr ""
+
+#. type: itemize
+#: doc/guix.texi:727
+msgid "@uref{http://gnutls.org/, GnuTLS}, specifically its Guile bindings (@pxref{Guile Preparations, how to install the GnuTLS bindings for Guile,, gnutls-guile, GnuTLS-Guile});"
+msgstr ""
+
+#. type: itemize
+#: doc/guix.texi:730
+msgid "@uref{https://notabug.org/guile-sqlite3/guile-sqlite3, Guile-SQLite3}, version 0.1.0 or later;"
+msgstr ""
+
+#. type: itemize
+#: doc/guix.texi:734
+msgid "@uref{https://gitlab.com/guile-git/guile-git, Guile-Git}, from August 2017 or later;"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:734
+#, no-wrap
+msgid "@uref{https://savannah.nongnu.org/projects/guile-json/, Guile-JSON};"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:735
+#, no-wrap
+msgid "@url{http://zlib.net, zlib};"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:736
+#, no-wrap
+msgid "@url{http://www.gnu.org/software/make/, GNU Make}."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:740
+msgid "The following dependencies are optional:"
+msgstr ""
+
+#. type: itemize
+#: doc/guix.texi:748
+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 ""
+
+#. type: itemize
+#: doc/guix.texi:752
+msgid "When @url{http://www.bzip.org, libbz2} is available, @command{guix-daemon} can use it to compress build logs."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:756
+msgid "Unless @code{--disable-daemon} was passed to @command{configure}, the following packages are also needed:"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:758
+#, no-wrap
+msgid "@url{http://gnupg.org/, GNU libgcrypt};"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:759
+#, no-wrap
+msgid "@url{http://sqlite.org, SQLite 3};"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:760
+#, no-wrap
+msgid "@url{http://gcc.gnu.org, GCC's g++}, with support for the"
+msgstr ""
+
+#. type: itemize
+#: doc/guix.texi:762
+msgid "C++11 standard."
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:764
+#, no-wrap
+msgid "state directory"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:772
+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 ""
+
+#. type: cindex
+#: doc/guix.texi:773
+#, no-wrap
+msgid "Nix, compatibility"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:778
+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."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:788
+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 ""
+
+#. type: cindex
+#: doc/guix.texi:792
+#, no-wrap
+msgid "test suite"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:798
+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 ""
+
+#. type: example
+#: doc/guix.texi:801
+#, no-wrap
+msgid "make check\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:808
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:811
+msgid "It is also possible to run a subset of the tests by defining the @code{TESTS} makefile variable as in this example:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:814
+#, no-wrap
+msgid "make check TESTS=\"tests/store.scm tests/cpio.scm\"\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:819
+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 ""
+
+#. type: example
+#: doc/guix.texi:822
+#, no-wrap
+msgid "make check TESTS=\"tests/base64.scm\" SCM_LOG_DRIVER_FLAGS=\"--brief=no\"\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:828
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:832
+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 ""
+
+#. type: example
+#: doc/guix.texi:835
+#, no-wrap
+msgid "make check-system\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:839
+msgid "or, again, by defining @code{TESTS} to select a subset of tests to run:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:842
+#, no-wrap
+msgid "make check-system TESTS=\"basic mcron\"\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:850
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:853
+msgid "Again in case of test failures, please send @email{bug-guix@@gnu.org} all the details."
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:857
+#, no-wrap
+msgid "daemon"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:865
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:869
+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 ""
+
+#. type: cindex
+#: doc/guix.texi:879 doc/guix.texi:1302
+#, no-wrap
+msgid "build environment"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:887
+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 ""
+
+#. type: cindex
+#: doc/guix.texi:888
+#, no-wrap
+msgid "build users"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:899
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:902
+msgid "On a GNU/Linux system, a build user pool may be created like this (using Bash syntax and the @code{shadow} commands):"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:914
+#, no-wrap
+msgid ""
+"# groupadd --system guixbuild\n"
+"# for i in `seq -w 1 10`;\n"
+"  do\n"
+"    useradd -g guixbuild -G guixbuild           \\\n"
+"            -d /var/empty -s `which nologin`    \\\n"
+"            -c \"Guix build user $i\" --system    \\\n"
+"            guixbuilder$i;\n"
+"  done\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:924
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:933
+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 ""
+
+#. type: example
+#: doc/guix.texi:936 doc/guix.texi:1295
+#, no-wrap
+msgid "# guix-daemon --build-users-group=guixbuild\n"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:938 doc/guix.texi:1300
+#, no-wrap
+msgid "chroot"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:943
+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 ""
+
+#. type: itemize
+#: doc/guix.texi:951
+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 ""
+
+#. type: itemize
+#: doc/guix.texi:955
+msgid "the @code{/proc} directory; it only shows the processes of the container since a separate PID name space is used;"
+msgstr ""
+
+#. type: itemize
+#: doc/guix.texi:959
+msgid "@file{/etc/passwd} with an entry for the current user and an entry for user @file{nobody};"
+msgstr ""
+
+#. type: itemize
+#: doc/guix.texi:962
+msgid "@file{/etc/group} with an entry for the user's group;"
+msgstr ""
+
+#. type: itemize
+#: doc/guix.texi:966
+msgid "@file{/etc/hosts} with an entry that maps @code{localhost} to @code{127.0.0.1};"
+msgstr ""
+
+#. type: itemize
+#: doc/guix.texi:969
+msgid "a writable @file{/tmp} directory."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:978
+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 ""
+
+#. type: vindex
+#: doc/guix.texi:979 doc/guix.texi:3247
+#, no-wrap
+msgid "http_proxy"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:983
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:991
+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 ""
+
+#. type: subsection
+#: doc/guix.texi:994
+#, no-wrap
+msgid "Using the Offload Facility"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:996
+#, no-wrap
+msgid "offloading"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:997 doc/guix.texi:1358
+#, no-wrap
+msgid "build hook"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:1011
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:1013
+msgid "The @file{/etc/guix/machines.scm} file typically looks like this:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:1021
+#, no-wrap
+msgid ""
+"(list (build-machine\n"
+"        (name \"eightysix.example.org\")\n"
+"        (system \"x86_64-linux\")\n"
+"        (host-key \"ssh-ed25519 AAAAC3Nza@dots{}\")\n"
+"        (user \"bob\")\n"
+"        (speed 2.))     ;incredibly fast!\n"
+"\n"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:1030
+#, no-wrap
+msgid ""
+"      (build-machine\n"
+"        (name \"meeps.example.org\")\n"
+"        (system \"mips64el-linux\")\n"
+"        (host-key \"ssh-rsa AAAAB3Nza@dots{}\")\n"
+"        (user \"alice\")\n"
+"        (private-key\n"
+"         (string-append (getenv \"HOME\")\n"
+"                        \"/.ssh/identity-for-guix\"))))\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:1036
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:1045
+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 ""
+
+#. type: deftp
+#: doc/guix.texi:1046
+#, no-wrap
+msgid "{Data Type} build-machine"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:1049
+msgid "This data type represents build machines to which the daemon may offload builds.  The important fields are:"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:1052 doc/guix.texi:5315 doc/guix.texi:10902
+#: doc/guix.texi:10984 doc/guix.texi:11211 doc/guix.texi:12795
+#: doc/guix.texi:17298 doc/guix.texi:17883 doc/guix.texi:18494
+#: doc/guix.texi:18802 doc/guix.texi:18843 doc/guix.texi:23315
+#: doc/guix.texi:23332 doc/guix.texi:23625 doc/guix.texi:24903
+#: doc/guix.texi:25103
+#, no-wrap
+msgid "name"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:1054
+msgid "The host name of the remote machine."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:1055
+#, no-wrap
+msgid "system"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:1057
+msgid "The system type of the remote machine---e.g., @code{\"x86_64-linux\"}."
+msgstr ""
+
+#. type: code{#1}
+#: doc/guix.texi:1058 doc/guix.texi:12805
+#, no-wrap
+msgid "user"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:1062
+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 ""
+
+#. type: item
+#: doc/guix.texi:1063
+#, no-wrap
+msgid "host-key"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:1067
+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 ""
+
+#. type: example
+#: doc/guix.texi:1070
+#, no-wrap
+msgid "ssh-ed25519 AAAAC3NzaC@dots{}mde+UhL hint@@example.org\n"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:1075
+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 ""
+
+#. type: table
+#: doc/guix.texi:1080
+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 ""
+
+#. type: example
+#: doc/guix.texi:1084
+#, no-wrap
+msgid ""
+"$ lsh-export-key --openssh < /etc/lsh/host-key.pub \n"
+"ssh-rsa AAAAB3NzaC1yc2EAAAAEOp8FoQAAAQEAs1eB46LV@dots{}\n"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:1089
+msgid "A number of optional fields may be specified:"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:1092
+#, no-wrap
+msgid "@code{port} (default: @code{22})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:1094
+msgid "Port number of SSH server on the machine."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:1095
+#, no-wrap
+msgid "@code{private-key} (default: @file{~root/.ssh/id_rsa})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:1098
+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 ""
+
+#. type: table
+#: doc/guix.texi:1101
+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 ""
+
+#. type: item
+#: doc/guix.texi:1102
+#, no-wrap
+msgid "@code{compression} (default: @code{\"zlib@@openssh.com,zlib\"})"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:1103 doc/guix.texi:12098
+#, no-wrap
+msgid "@code{compression-level} (default: @code{3})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:1105
+msgid "The SSH-level compression methods and compression level requested."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:1108
+msgid "Note that offloading relies on SSH compression to reduce bandwidth usage when transferring files to and from build machines."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:1109
+#, no-wrap
+msgid "@code{daemon-socket} (default: @code{\"/var/guix/daemon-socket/socket\"})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:1112
+msgid "File name of the Unix-domain socket @command{guix-daemon} is listening to on that machine."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:1113
+#, no-wrap
+msgid "@code{parallel-builds} (default: @code{1})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:1115
+msgid "The number of builds that may run in parallel on the machine."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:1116
+#, no-wrap
+msgid "@code{speed} (default: @code{1.0})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:1119
+msgid "A ``relative speed factor''.  The offload scheduler will tend to prefer machines with a higher speed factor."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:1120
+#, no-wrap
+msgid "@code{features} (default: @code{'()})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:1125
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:1131
+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 ""
+
+#. type: example
+#: doc/guix.texi:1134
+#, no-wrap
+msgid "ssh build-machine guix repl --version\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:1141
+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 ""
+
+#. type: example
+#: doc/guix.texi:1144
+#, no-wrap
+msgid "# guix archive --generate-key\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:1149
+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:1152
+#, no-wrap
+msgid "# guix archive --authorize < master-public-key.txt\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:1156
+msgid "Likewise, the master machine must authorize the key of each build machine."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:1162
+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 ""
+
+#. type: cindex
+#: doc/guix.texi:1163
+#, no-wrap
+msgid "offload test"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:1166
+msgid "To test whether your setup is operational, run this command on the master node:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:1169
+#, no-wrap
+msgid "# guix offload test\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:1175
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:1178
+msgid "If you want to test a different machine file, just specify it on the command line:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:1181
+#, no-wrap
+msgid "# guix offload test machines-qualif.scm\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:1185
+msgid "Last, you can test the subset of the machines whose name matches a regular expression like this:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:1188
+#, no-wrap
+msgid "# guix offload test machines.scm '\\.gnu\\.org$'\n"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:1190
+#, no-wrap
+msgid "offload status"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:1193
+msgid "To display the current load of all build hosts, run this command on the main node:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:1196
+#, no-wrap
+msgid "# guix offload status\n"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:1202
+#, no-wrap
+msgid "SELinux, daemon policy"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:1203
+#, no-wrap
+msgid "mandatory access control, SELinux"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:1204
+#, no-wrap
+msgid "security, guix-daemon"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:1210
+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 ""
+
+#. type: subsubsection
+#: doc/guix.texi:1211
+#, no-wrap
+msgid "Installing the SELinux policy"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:1212
+#, no-wrap
+msgid "SELinux, policy installation"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:1214
+msgid "To install the policy run this command as root:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:1217
+#, no-wrap
+msgid "semodule -i etc/guix-daemon.cil\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:1221
+msgid "Then relabel the file system with @code{restorecon} or by a different mechanism provided by your system."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:1226
+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 ""
+
+#. type: example
+#: doc/guix.texi:1229
+#, no-wrap
+msgid "ps -Zax | grep guix-daemon\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:1234
+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 ""
+
+#. type: cindex
+#: doc/guix.texi:1236
+#, no-wrap
+msgid "SELinux, limitations"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:1241
+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 ""
+
+#. type: enumerate
+#: doc/guix.texi:1248
+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 ""
+
+#. type: enumerate
+#: doc/guix.texi:1259
+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 ""
+
+#. type: enumerate
+#: doc/guix.texi:1264
+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 ""
+
+#. type: enumerate
+#: doc/guix.texi:1275
+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 ""
+
+#. type: enumerate
+#: doc/guix.texi:1283
+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 ""
+
+#. type: section
+#: doc/guix.texi:1286
+#, no-wrap
+msgid "Invoking @command{guix-daemon}"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:1292
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:1299
+msgid "For details on how to set it up, @pxref{Setting Up the Daemon}."
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:1301
+#, no-wrap
+msgid "container, build environment"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:1303 doc/guix.texi:2567 doc/guix.texi:3228 doc/guix.texi:9701
+#, no-wrap
+msgid "reproducible builds"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:1315
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:1321
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:1325
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:1331
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:1333
+msgid "The following command-line options are supported:"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:1335
+#, no-wrap
+msgid "--build-users-group=@var{group}"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:1338
+msgid "Take users from @var{group} to run build processes (@pxref{Setting Up the Daemon, build users})."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:1339 doc/guix.texi:7653
+#, no-wrap
+msgid "--no-substitutes"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:1340 doc/guix.texi:2579 doc/guix.texi:3089
+#, no-wrap
+msgid "substitutes"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:1344 doc/guix.texi:7657
+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 ""
+
+#. type: table
+#: doc/guix.texi:1348
+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 ""
+
+#. type: item
+#: doc/guix.texi:1349 doc/guix.texi:7640 doc/guix.texi:9245 doc/guix.texi:9826
+#: doc/guix.texi:10016
+#, no-wrap
+msgid "--substitute-urls=@var{urls}"
+msgstr ""
+
+#. type: anchor{#1}
+#: doc/guix.texi:1354
+msgid "daemon-substitute-urls"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:1354
+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 ""
+
+#. type: table
+#: doc/guix.texi:1357
+msgid "This means that substitutes may be downloaded from @var{urls}, as long as they are signed by a trusted signature (@pxref{Substitutes})."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:1359 doc/guix.texi:7678
+#, no-wrap
+msgid "--no-build-hook"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:1361
+msgid "Do not use the @dfn{build hook}."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:1365
+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 ""
+
+#. type: item
+#: doc/guix.texi:1366
+#, no-wrap
+msgid "--cache-failures"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:1368
+msgid "Cache build failures.  By default, only successful builds are cached."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:1373
+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 ""
+
+#. type: item
+#: doc/guix.texi:1374 doc/guix.texi:7707
+#, no-wrap
+msgid "--cores=@var{n}"
+msgstr ""
+
+#. type: itemx
+#: doc/guix.texi:1375 doc/guix.texi:7708
+#, no-wrap
+msgid "-c @var{n}"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:1378
+msgid "Use @var{n} CPU cores to build each derivation; @code{0} means as many as available."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:1382
+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 ""
+
+#. type: table
+#: doc/guix.texi:1386
+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 ""
+
+#. type: item
+#: doc/guix.texi:1387 doc/guix.texi:7712
+#, no-wrap
+msgid "--max-jobs=@var{n}"
+msgstr ""
+
+#. type: itemx
+#: doc/guix.texi:1388 doc/guix.texi:7713
+#, no-wrap
+msgid "-M @var{n}"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:1393
+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 ""
+
+#. type: item
+#: doc/guix.texi:1394 doc/guix.texi:7683
+#, no-wrap
+msgid "--max-silent-time=@var{seconds}"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:1397 doc/guix.texi:7686
+msgid "When the build or substitution process remains silent for more than @var{seconds}, terminate it and report a build failure."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:1399 doc/guix.texi:1408
+msgid "The default value is @code{0}, which disables the timeout."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:1402
+msgid "The value specified here can be overridden by clients (@pxref{Common Build Options, @code{--max-silent-time}})."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:1403 doc/guix.texi:7690
+#, no-wrap
+msgid "--timeout=@var{seconds}"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:1406 doc/guix.texi:7693
+msgid "Likewise, when the build or substitution process lasts for more than @var{seconds}, terminate it and report a build failure."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:1411
+msgid "The value specified here can be overridden by clients (@pxref{Common Build Options, @code{--timeout}})."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:1412
+#, no-wrap
+msgid "--rounds=@var{N}"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:1417
+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 ""
+
+#. type: table
+#: doc/guix.texi:1421 doc/guix.texi:8050
+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 ""
+
+#. type: item
+#: doc/guix.texi:1422
+#, no-wrap
+msgid "--debug"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:1424
+msgid "Produce debugging output."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:1428
+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 ""
+
+#. type: item
+#: doc/guix.texi:1429
+#, no-wrap
+msgid "--chroot-directory=@var{dir}"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:1431
+msgid "Add @var{dir} to the build chroot."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:1437
+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 ""
+
+#. type: item
+#: doc/guix.texi:1438
+#, no-wrap
+msgid "--disable-chroot"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:1440
+msgid "Disable chroot builds."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:1445
+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 ""
+
+#. type: item
+#: doc/guix.texi:1446
+#, no-wrap
+msgid "--log-compression=@var{type}"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:1449
+msgid "Compress build logs according to @var{type}, one of @code{gzip}, @code{bzip2}, or @code{none}."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:1453
+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 ""
+
+#. type: item
+#: doc/guix.texi:1454
+#, no-wrap
+msgid "--disable-deduplication"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:1455 doc/guix.texi:3562
+#, no-wrap
+msgid "deduplication"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:1457
+msgid "Disable automatic file ``deduplication'' in the store."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:1464
+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:1465
+#, no-wrap
+msgid "--gc-keep-outputs[=yes|no]"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:1468
+msgid "Tell whether the garbage collector (GC) must keep outputs of live derivations."
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:1469 doc/guix.texi:3379
+#, no-wrap
+msgid "GC roots"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:1470 doc/guix.texi:3380
+#, no-wrap
+msgid "garbage collector roots"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:1475
+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 ""
+
+#. type: item
+#: doc/guix.texi:1476
+#, no-wrap
+msgid "--gc-keep-derivations[=yes|no]"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:1479
+msgid "Tell whether the garbage collector (GC) must keep derivations corresponding to live outputs."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:1484
+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 ""
+
+#. type: table
+#: doc/guix.texi:1492
+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 ""
+
+#. type: item
+#: doc/guix.texi:1493
+#, no-wrap
+msgid "--impersonate-linux-2.6"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:1496
+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 ""
+
+#. type: table
+#: doc/guix.texi:1499
+msgid "This might be helpful to build programs that (usually wrongfully) depend on the kernel version number."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:1500
+#, no-wrap
+msgid "--lose-logs"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:1503
+msgid "Do not keep build logs.  By default they are kept under @code{@var{localstatedir}/guix/log}."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:1504 doc/guix.texi:3699 doc/guix.texi:4567 doc/guix.texi:4860
+#: doc/guix.texi:7996 doc/guix.texi:9272 doc/guix.texi:9471
+#: doc/guix.texi:10021 doc/guix.texi:23727 doc/guix.texi:24347
+#, no-wrap
+msgid "--system=@var{system}"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:1508
+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 ""
+
+#. type: item
+#: doc/guix.texi:1509 doc/guix.texi:7498
+#, no-wrap
+msgid "--listen=@var{endpoint}"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:1514
+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 ""
+
+#. type: item
+#: doc/guix.texi:1516
+#, no-wrap
+msgid "--listen=/gnu/var/daemon"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:1519
+msgid "Listen for connections on the @file{/gnu/var/daemon} Unix-domain socket, creating it if needed."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:1520
+#, no-wrap
+msgid "--listen=localhost"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:1521 doc/guix.texi:6279
+#, no-wrap
+msgid "daemon, remote access"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:1522 doc/guix.texi:6280
+#, no-wrap
+msgid "remote access to the daemon"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:1523 doc/guix.texi:6281
+#, no-wrap
+msgid "daemon, cluster setup"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:1524 doc/guix.texi:6282
+#, no-wrap
+msgid "clusters, daemon setup"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:1527
+msgid "Listen for TCP connections on the network interface corresponding to @code{localhost}, on port 44146."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:1528
+#, no-wrap
+msgid "--listen=128.0.0.42:1234"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:1531
+msgid "Listen for TCP connections on the network interface corresponding to @code{128.0.0.42}, on port 1234."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:1538
+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 ""
+
+#. type: quotation
+#: doc/guix.texi:1545
+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 ""
+
+#. type: table
+#: doc/guix.texi:1550
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:1560
+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 ""
+
+#. type: anchor{#1}
+#: doc/guix.texi:1564
+msgid "locales-and-locpath"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:1564
+#, no-wrap
+msgid "locales, when not on Guix System"
+msgstr ""
+
+#. type: vindex
+#: doc/guix.texi:1565 doc/guix.texi:11195
+#, no-wrap
+msgid "LOCPATH"
+msgstr ""
+
+#. type: vindex
+#: doc/guix.texi:1566
+#, no-wrap
+msgid "GUIX_LOCPATH"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:1571
+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 ""
+
+#. type: example
+#: doc/guix.texi:1575
+#, no-wrap
+msgid ""
+"$ guix package -i glibc-locales\n"
+"$ export GUIX_LOCPATH=$HOME/.guix-profile/lib/locale\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:1581
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:1585
+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 ""
+
+#. type: enumerate
+#: doc/guix.texi:1592
+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 ""
+
+#. type: enumerate
+#: doc/guix.texi:1599
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:1603
+msgid "This is important because the locale data format used by different libc versions may be incompatible."
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:1606
+#, no-wrap
+msgid "name service switch, glibc"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:1607
+#, no-wrap
+msgid "NSS (name service switch), glibc"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:1608
+#, no-wrap
+msgid "nscd (name service caching daemon)"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:1609
+#, no-wrap
+msgid "name service caching daemon (nscd)"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:1616
+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 ""
+
+#. type: file{#1}
+#: doc/guix.texi:1617
+#, no-wrap
+msgid "nsswitch.conf"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:1622
+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 ""
+
+#. type: cindex
+#: doc/guix.texi:1623
+#, no-wrap
+msgid "Network information service (NIS)"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:1624
+#, no-wrap
+msgid "NIS (Network information service)"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:1633
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:1643
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:1648
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:1653
+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 ""
+
+#. type: subsection
+#: doc/guix.texi:1654
+#, no-wrap
+msgid "X11 Fonts"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:1664
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:1671
+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 ""
+
+#. type: example
+#: doc/guix.texi:1674
+#, no-wrap
+msgid "guix package -i font-adobe-source-han-sans:cn\n"
+msgstr ""
+
+#. type: code{#1}
+#: doc/guix.texi:1676
+#, no-wrap
+msgid "xterm"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:1680
+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 ""
+
+#. type: example
+#: doc/guix.texi:1683
+#, no-wrap
+msgid "-*-dejavu sans-medium-r-normal-*-*-100-*-*-*-*-*-1\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:1687
+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 ""
+
+#. type: example
+#: doc/guix.texi:1692
+#, no-wrap
+msgid "xset +fp $(dirname $(readlink -f ~/.guix-profile/share/fonts/truetype/fonts.dir))\n"
+msgstr ""
+
+#. type: code{#1}
+#: doc/guix.texi:1694
+#, no-wrap
+msgid "xlsfonts"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:1697
+msgid "After that, you can run @code{xlsfonts} (from @code{xlsfonts} package)  to make sure your TrueType fonts are listed there."
+msgstr ""
+
+#. type: code{#1}
+#: doc/guix.texi:1698
+#, no-wrap
+msgid "fc-cache"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:1699
+#, no-wrap
+msgid "font cache"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:1705
+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 ""
+
+#. type: code{#1}
+#: doc/guix.texi:1708 doc/guix.texi:23466
+#, no-wrap
+msgid "nss-certs"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:1711
+msgid "The @code{nss-certs} package provides X.509 certificates, which allow programs to authenticate Web servers accessed over HTTPS."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:1716
+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 ""
+
+#. type: subsection
+#: doc/guix.texi:1717
+#, no-wrap
+msgid "Emacs Packages"
+msgstr ""
+
+#. type: code{#1}
+#: doc/guix.texi:1719
+#, no-wrap
+msgid "emacs"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:1730
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:1736
+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 ""
+
+#. type: subsection
+#: doc/guix.texi:1737
+#, no-wrap
+msgid "The GCC toolchain"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:1739
+#, no-wrap
+msgid "GCC"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:1740
+#, no-wrap
+msgid "ld-wrapper"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:1749
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:1755
+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 ""
+
+#. type: cindex
+#: doc/guix.texi:1762
+#, no-wrap
+msgid "installing Guix System"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:1763
+#, no-wrap
+msgid "Guix System, installation"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:1768
+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 ""
+
+#. type: quotation
+#: doc/guix.texi:1777
+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 ""
+
+#. type: quotation
+#: doc/guix.texi:1780
+msgid "Alternately, run @command{info info} in another tty to keep the manual available."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:1807
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:1810
+msgid "Before you proceed with the installation, be aware of the following noteworthy limitations applicable to version @value{VERSION}:"
+msgstr ""
+
+#. type: itemize
+#: doc/guix.texi:1816
+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 ""
+
+#. type: itemize
+#: doc/guix.texi:1819
+msgid "Support for the Logical Volume Manager (LVM) is missing."
+msgstr ""
+
+#. type: itemize
+#: doc/guix.texi:1823
+msgid "More and more system services are provided (@pxref{Services}), but some may be missing."
+msgstr ""
+
+#. type: itemize
+#: doc/guix.texi:1827
+msgid "More than 8,500 packages are available, but you might occasionally find that a useful package is missing."
+msgstr ""
+
+#. type: itemize
+#: doc/guix.texi:1832
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:1837
+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 ""
+
+#. type: cindex
+#: doc/guix.texi:1842
+#, no-wrap
+msgid "hardware support on Guix System"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:1851
+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 ""
+
+#. type: cindex
+#: doc/guix.texi:1852
+#, no-wrap
+msgid "WiFi, hardware support"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:1861
+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 ""
+
+#. type: cindex
+#: doc/guix.texi:1862
+#, no-wrap
+msgid "RYF, Respects Your Freedom"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:1868
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:1872
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:1881
+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 ""
+
+#. type: table
+#: doc/guix.texi:1885
+msgid "for a GNU/Linux system on Intel/AMD-compatible 64-bit CPUs;"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:1888
+msgid "for a 32-bit GNU/Linux system on Intel-compatible CPUs."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:1893
+msgid "Make sure to download the associated @file{.sig} file and to verify the authenticity of the image against it, along these lines:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:1897
+#, no-wrap
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:1913
+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 ""
+
+#. type: unnumberedsubsec
+#: doc/guix.texi:1914
+#, no-wrap
+msgid "Copying to a USB Stick"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:1917
+msgid "To copy the image to a USB stick, follow these steps:"
+msgstr ""
+
+#. type: enumerate
+#: doc/guix.texi:1921 doc/guix.texi:1946
+msgid "Decompress the image using the @command{xz} command:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:1924 doc/guix.texi:1949
+#, no-wrap
+msgid "xz -d guix-system-install-@value{VERSION}.@var{system}.iso.xz\n"
+msgstr ""
+
+#. type: enumerate
+#: doc/guix.texi:1930
+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 ""
+
+#. type: example
+#: doc/guix.texi:1934
+#, no-wrap
+msgid ""
+"dd if=guix-system-install-@value{VERSION}.@var{system}.iso of=/dev/sdX\n"
+"sync\n"
+msgstr ""
+
+#. type: enumerate
+#: doc/guix.texi:1937
+msgid "Access to @file{/dev/sdX} usually requires root privileges."
+msgstr ""
+
+#. type: unnumberedsubsec
+#: doc/guix.texi:1939
+#, no-wrap
+msgid "Burning on a DVD"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:1942
+msgid "To copy the image to a DVD, follow these steps:"
+msgstr ""
+
+#. type: enumerate
+#: doc/guix.texi:1955
+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 ""
+
+#. type: example
+#: doc/guix.texi:1958
+#, no-wrap
+msgid "growisofs -dvd-compat -Z /dev/srX=guix-system-install-@value{VERSION}.@var{system}.iso\n"
+msgstr ""
+
+#. type: enumerate
+#: doc/guix.texi:1961
+msgid "Access to @file{/dev/srX} usually requires root privileges."
+msgstr ""
+
+#. type: unnumberedsubsec
+#: doc/guix.texi:1963
+#, no-wrap
+msgid "Booting"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:1968
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:1971
+msgid "@xref{Installing Guix in a VM}, if, instead, you would like to install Guix System in a virtual machine (VM)."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:1981
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:1989
+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 ""
+
+#. type: quotation
+#: doc/guix.texi:1994
+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:2001
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:2006
+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:2008
+msgid "@image{images/installer-network,5in,, networking setup with the graphical installer}"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:2013
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:2015
+msgid "@image{images/installer-partitions,5in,, partitioning with the graphical installer}"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:2018
+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:2020
+msgid "@image{images/installer-resume,5in,, resuming the installation process}"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:2025
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:2035
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:2041
+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 ""
+
+#. type: subsection
+#: doc/guix.texi:2048
+#, no-wrap
+msgid "Keyboard Layout, Networking, and Partitioning"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:2053
+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:2056 doc/guix.texi:11023
+#, no-wrap
+msgid "keyboard layout"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:2060
+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 ""
+
+#. type: example
+#: doc/guix.texi:2063
+#, no-wrap
+msgid "loadkeys dvorak\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:2068
+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 ""
+
+#. type: subsubsection
+#: doc/guix.texi:2069
+#, no-wrap
+msgid "Networking"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:2072
+msgid "Run the following command to see what your network interfaces are called:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:2075
+#, no-wrap
+msgid "ifconfig -a\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:2079
+msgid "@dots{} or, using the GNU/Linux-specific @command{ip} command:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:2082
+#, no-wrap
+msgid "ip a\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:2089
+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 ""
+
+#. type: item
+#: doc/guix.texi:2091
+#, no-wrap
+msgid "Wired connection"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:2094
+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 ""
+
+#. type: example
+#: doc/guix.texi:2097
+#, no-wrap
+msgid "ifconfig @var{interface} up\n"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:2099
+#, no-wrap
+msgid "Wireless connection"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:2100 doc/guix.texi:12454
+#, no-wrap
+msgid "wireless"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:2101 doc/guix.texi:12455
+#, no-wrap
+msgid "WiFi"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:2106
+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 ""
+
+#. type: example
+#: doc/guix.texi:2109
+#, no-wrap
+msgid "nano wpa_supplicant.conf\n"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:2114
+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 ""
+
+#. type: example
+#: doc/guix.texi:2121
+#, no-wrap
+msgid ""
+"network=@{\n"
+"  ssid=\"@var{my-ssid}\"\n"
+"  key_mgmt=WPA-PSK\n"
+"  psk=\"the network's secret passphrase\"\n"
+"@}\n"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:2126
+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 ""
+
+#. type: example
+#: doc/guix.texi:2129
+#, no-wrap
+msgid "wpa_supplicant -c wpa_supplicant.conf -i @var{interface} -B\n"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:2132
+msgid "Run @command{man wpa_supplicant} for more information."
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:2134
+#, no-wrap
+msgid "DHCP"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:2137
+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 ""
+
+#. type: example
+#: doc/guix.texi:2140
+#, no-wrap
+msgid "dhclient -v @var{interface}\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:2143
+msgid "Try to ping a server to see if networking is up and running:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:2146
+#, no-wrap
+msgid "ping -c 3 gnu.org\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:2150
+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:2151
+#, no-wrap
+msgid "installing over SSH"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:2154
+msgid "If you want to, you can continue the installation remotely by starting an SSH server:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:2157
+#, no-wrap
+msgid "herd start ssh-daemon\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:2161
+msgid "Make sure to either set a password with @command{passwd}, or configure OpenSSH public key authentication before logging in."
+msgstr ""
+
+#. type: subsubsection
+#: doc/guix.texi:2162
+#, no-wrap
+msgid "Disk Partitioning"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:2166
+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:2171
+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 ""
+
+#. type: example
+#: doc/guix.texi:2174
+#, no-wrap
+msgid "cfdisk\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:2180
+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 ""
+
+#. type: cindex
+#: doc/guix.texi:2181
+#, no-wrap
+msgid "EFI, installation"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:2182
+#, no-wrap
+msgid "UEFI, installation"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:2183
+#, no-wrap
+msgid "ESP, EFI system partition"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:2187
+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 ""
+
+#. type: example
+#: doc/guix.texi:2190
+#, no-wrap
+msgid "parted /dev/sda set 1 esp on\n"
+msgstr ""
+
+#. type: vindex
+#: doc/guix.texi:2193 doc/guix.texi:23856
+#, no-wrap
+msgid "grub-bootloader"
+msgstr ""
+
+#. type: vindex
+#: doc/guix.texi:2194 doc/guix.texi:23850
+#, no-wrap
+msgid "grub-efi-bootloader"
+msgstr ""
+
+#. type: quotation
+#: doc/guix.texi:2201
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:2209
+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 ""
+
+#. type: example
+#: doc/guix.texi:2212
+#, no-wrap
+msgid "mkfs.fat -F32 /dev/sda1\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:2220
+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 ""
+
+#. type: example
+#: doc/guix.texi:2223
+#, no-wrap
+msgid "mkfs.ext4 -L my-root /dev/sda2\n"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:2225 doc/guix.texi:10310
+#, no-wrap
+msgid "encrypted disk"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:2232
+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 ""
+
+#. type: example
+#: doc/guix.texi:2237
+#, no-wrap
+msgid ""
+"cryptsetup luksFormat /dev/sda2\n"
+"cryptsetup open --type luks /dev/sda2 my-partition\n"
+"mkfs.ext4 -L my-root /dev/mapper/my-partition\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:2242
+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 ""
+
+#. type: example
+#: doc/guix.texi:2245
+#, no-wrap
+msgid "mount LABEL=my-root /mnt\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:2251
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:2256
+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 ""
+
+#. type: example
+#: doc/guix.texi:2260
+#, no-wrap
+msgid ""
+"mkswap /dev/sda3\n"
+"swapon /dev/sda3\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:2268
+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 ""
+
+#. type: example
+#: doc/guix.texi:2276
+#, no-wrap
+msgid ""
+"# This is 10 GiB of swap space.  Adjust \"count\" to change the size.\n"
+"dd if=/dev/zero of=/mnt/swapfile bs=1MiB count=10240\n"
+"# For security, make the file readable and writable only by root.\n"
+"chmod 600 /mnt/swapfile\n"
+"mkswap /mnt/swapfile\n"
+"swapon /mnt/swapfile\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:2281
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:2287
+msgid "With the target partitions ready and the target root mounted on @file{/mnt}, we're ready to go.  First, run:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:2290
+#, no-wrap
+msgid "herd start cow-store /mnt\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:2297
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:2308
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:2315
+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 ""
+
+#. type: example
+#: doc/guix.texi:2320
+#, no-wrap
+msgid ""
+"# mkdir /mnt/etc\n"
+"# cp /etc/configuration/desktop.scm /mnt/etc/config.scm\n"
+"# nano /mnt/etc/config.scm\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:2324
+msgid "You should pay attention to what your configuration file contains, and in particular:"
+msgstr ""
+
+#. type: itemize
+#: doc/guix.texi:2335
+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 ""
+
+#. type: itemize
+#: doc/guix.texi:2341
+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 ""
+
+#. type: itemize
+#: doc/guix.texi:2345
+msgid "If there are encrypted or RAID partitions, make sure to add a @code{mapped-devices} field to describe them (@pxref{Mapped Devices})."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:2350
+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 ""
+
+#. type: example
+#: doc/guix.texi:2353
+#, no-wrap
+msgid "guix system init /mnt/etc/config.scm /mnt\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:2360
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:2368
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:2375
+msgid "Success, you've now booted into Guix System! From then on, you can update the system whenever you want by running, say:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:2379
+#, no-wrap
+msgid ""
+"guix pull\n"
+"sudo guix system reconfigure /etc/config.scm\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:2385
+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 ""
+
+#. type: cindex
+#: doc/guix.texi:2388
+#, no-wrap
+msgid "sudo vs. @command{guix pull}"
+msgstr ""
+
+#. type: quotation
+#: doc/guix.texi:2392
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:2396
+msgid "Join us on @code{#guix} on the Freenode IRC network or on @email{guix-devel@@gnu.org} to share your experience!"
+msgstr ""
+
+#. type: section
+#: doc/guix.texi:2399
+#, no-wrap
+msgid "Installing Guix in a Virtual Machine"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:2401
+#, no-wrap
+msgid "virtual machine, Guix System installation"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:2402
+#, no-wrap
+msgid "virtual private server (VPS)"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:2403
+#, no-wrap
+msgid "VPS (virtual private server)"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:2407
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:2410
+msgid "To boot a @uref{http://qemu.org/,QEMU} VM for installing Guix System in a disk image, follow these steps:"
+msgstr ""
+
+#. type: enumerate
+#: doc/guix.texi:2415
+msgid "First, retrieve and decompress the Guix system installation image as described previously (@pxref{USB Stick and DVD Installation})."
+msgstr ""
+
+#. type: enumerate
+#: doc/guix.texi:2419
+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 ""
+
+#. type: example
+#: doc/guix.texi:2422
+#, no-wrap
+msgid "qemu-img create -f qcow2 guixsd.img 50G\n"
+msgstr ""
+
+#. type: enumerate
+#: doc/guix.texi:2426
+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 ""
+
+#. type: enumerate
+#: doc/guix.texi:2429
+msgid "Boot the USB installation image in an VM:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:2435
+#, 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"
+msgstr ""
+
+#. type: enumerate
+#: doc/guix.texi:2438
+msgid "The ordering of the drives matters."
+msgstr ""
+
+#. type: enumerate
+#: doc/guix.texi:2442
+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 ""
+
+#. type: enumerate
+#: doc/guix.texi:2446
+msgid "You're now root in the VM, proceed with the installation process.  @xref{Preparing for Installation}, and follow the instructions."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:2451
+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 ""
+
+#. type: cindex
+#: doc/guix.texi:2455
+#, no-wrap
+msgid "installation image"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:2458
+msgid "The installation image described above was built using the @command{guix system} command, specifically:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:2462
+#, no-wrap
+msgid ""
+"guix system disk-image --file-system-type=iso9660 \\\n"
+"  gnu/system/install.scm\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:2467
+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 ""
+
+#. type: section
+#: doc/guix.texi:2468
+#, no-wrap
+msgid "Building the Installation Image for ARM Boards"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:2472
+msgid "Many ARM boards require a specific variant of the @uref{http://www.denx.de/wiki/U-Boot/, U-Boot} bootloader."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:2476
+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:2479
+#, 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 ""
+
+#. type: Plain text
+#: doc/guix.texi:2483
+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 ""
+
+#. type: cindex
+#: doc/guix.texi:2488
+#, no-wrap
+msgid "packages"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:2493
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:2501
+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 ""
+
+#. type: example
+#: doc/guix.texi:2504
+#, no-wrap
+msgid "guix package -i emacs-guix\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:2525
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:2530
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:2538
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:2542
+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 ""
+
+#. type: cindex
+#: doc/guix.texi:2543 doc/guix.texi:2621
+#, no-wrap
+msgid "transactions"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:2550
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:2558
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:2565
+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 ""
+
+#. type: cindex
+#: doc/guix.texi:2566 doc/guix.texi:4064
+#, no-wrap
+msgid "reproducibility"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:2578
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:2589
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:2595
+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 ""
+
+#. type: cindex
+#: doc/guix.texi:2596
+#, no-wrap
+msgid "replication, of software environments"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:2597
+#, no-wrap
+msgid "provenance tracking, of software artifacts"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:2604
+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 ""
+
+#. type: section
+#: doc/guix.texi:2606
+#, no-wrap
+msgid "Invoking @command{guix package}"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:2608
+#, no-wrap
+msgid "installing packages"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:2609
+#, no-wrap
+msgid "removing packages"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:2610
+#, no-wrap
+msgid "package installation"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:2611
+#, no-wrap
+msgid "package removal"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:2617
+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 ""
+
+#. type: example
+#: doc/guix.texi:2620
+#, no-wrap
+msgid "guix package @var{options}\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:2626
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:2629
+msgid "For example, to remove @code{lua} and install @code{guile} and @code{guile-cairo} in a single transaction:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:2632
+#, no-wrap
+msgid "guix package -r lua -i guile guile-cairo\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:2638
+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 ""
+
+#. type: cindex
+#: doc/guix.texi:2639
+#, no-wrap
+msgid "profile"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:2645
+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 ""
+
+#. type: cindex
+#: doc/guix.texi:2645 doc/guix.texi:2842
+#, no-wrap
+msgid "search paths"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:2650
+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 ""
+
+#. type: example
+#: doc/guix.texi:2654
+#, no-wrap
+msgid ""
+"GUIX_PROFILE=\"$HOME/.guix-profile\" ; \\\n"
+"source \"$HOME/.guix-profile/etc/profile\"\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:2665
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:2667
+msgid "The @var{options} can be among the following:"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:2670
+#, no-wrap
+msgid "--install=@var{package} @dots{}"
+msgstr ""
+
+#. type: itemx
+#: doc/guix.texi:2671
+#, no-wrap
+msgid "-i @var{package} @dots{}"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:2673
+msgid "Install the specified @var{package}s."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:2678
+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 ""
+
+#. type: table
+#: doc/guix.texi:2686
+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 ""
+
+#. type: cindex
+#: doc/guix.texi:2687
+#, no-wrap
+msgid "propagated inputs"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:2693
+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 ""
+
+#. type: anchor{#1}
+#: doc/guix.texi:2700
+msgid "package-cmd-propagated-inputs"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:2700
+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 ""
+
+#. type: table
+#: doc/guix.texi:2705
+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 ""
+
+#. type: item
+#: doc/guix.texi:2706
+#, no-wrap
+msgid "--install-from-expression=@var{exp}"
+msgstr ""
+
+#. type: itemx
+#: doc/guix.texi:2707
+#, no-wrap
+msgid "-e @var{exp}"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:2709
+msgid "Install the package @var{exp} evaluates to."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:2714
+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 ""
+
+#. type: table
+#: doc/guix.texi:2718
+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:2719
+#, no-wrap
+msgid "--install-from-file=@var{file}"
+msgstr ""
+
+#. type: itemx
+#: doc/guix.texi:2720 doc/guix.texi:7913
+#, no-wrap
+msgid "-f @var{file}"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:2722
+msgid "Install the package that the code within @var{file} evaluates to."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:2725 doc/guix.texi:4501
+msgid "As an example, @var{file} might contain a definition like this (@pxref{Defining Packages}):"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:2728 doc/guix.texi:7922
+#, no-wrap
+msgid "@verbatiminclude package-hello.scm\n"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:2734
+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 ""
+
+#. type: item
+#: doc/guix.texi:2735
+#, no-wrap
+msgid "--remove=@var{package} @dots{}"
+msgstr ""
+
+#. type: itemx
+#: doc/guix.texi:2736
+#, no-wrap
+msgid "-r @var{package} @dots{}"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:2738
+msgid "Remove the specified @var{package}s."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:2743
+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 ""
+
+#. type: item
+#: doc/guix.texi:2744
+#, no-wrap
+msgid "--upgrade[=@var{regexp} @dots{}]"
+msgstr ""
+
+#. type: itemx
+#: doc/guix.texi:2745
+#, no-wrap
+msgid "-u [@var{regexp} @dots{}]"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:2746
+#, no-wrap
+msgid "upgrading packages"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:2750
+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 ""
+
+#. type: table
+#: doc/guix.texi:2755
+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 ""
+
+#. type: item
+#: doc/guix.texi:2756
+#, no-wrap
+msgid "--do-not-upgrade[=@var{regexp} @dots{}]"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:2761
+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 ""
+
+#. type: example
+#: doc/guix.texi:2764
+#, no-wrap
+msgid "$ guix package --upgrade . --do-not-upgrade emacs\n"
+msgstr ""
+
+#. type: anchor{#1}
+#: doc/guix.texi:2766
+#, no-wrap
+msgid "profile-manifest"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:2766 doc/guix.texi:4506 doc/guix.texi:4847 doc/guix.texi:8844
+#: doc/guix.texi:10027
+#, no-wrap
+msgid "--manifest=@var{file}"
+msgstr ""
+
+#. type: itemx
+#: doc/guix.texi:2767 doc/guix.texi:4507 doc/guix.texi:4848 doc/guix.texi:8845
+#, no-wrap
+msgid "-m @var{file}"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:2768
+#, no-wrap
+msgid "profile declaration"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:2769
+#, no-wrap
+msgid "profile manifest"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:2772
+msgid "Create a new generation of the profile from the manifest object returned by the Scheme code in @var{file}."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:2778
+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 ""
+
+#. type: table
+#: doc/guix.texi:2782
+msgid "@var{file} must return a @dfn{manifest} object, which is roughly a list of packages:"
+msgstr ""
+
+#. type: findex
+#: doc/guix.texi:2783
+#, no-wrap
+msgid "packages->manifest"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:2786
+#, no-wrap
+msgid ""
+"(use-package-modules guile emacs)\n"
+"\n"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:2792
+#, no-wrap
+msgid ""
+"(packages->manifest\n"
+" (list emacs\n"
+"       guile-2.0\n"
+"       ;; Use a specific package output.\n"
+"       (list guile-2.0 \"debug\")))\n"
+msgstr ""
+
+#. type: findex
+#: doc/guix.texi:2794
+#, no-wrap
+msgid "specifications->manifest"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:2801
+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 ""
+
+#. type: example
+#: doc/guix.texi:2805
+#, no-wrap
+msgid ""
+"(specifications->manifest\n"
+" '(\"emacs\" \"guile@@2.2\" \"guile@@2.2:debug\"))\n"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:2807
+#, no-wrap
+msgid "--roll-back"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:2808 doc/guix.texi:24146
+#, no-wrap
+msgid "rolling back"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:2809
+#, no-wrap
+msgid "undoing transactions"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:2810
+#, no-wrap
+msgid "transactions, undoing"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:2813
+msgid "Roll back to the previous @dfn{generation} of the profile---i.e., undo the last transaction."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:2816
+msgid "When combined with options such as @code{--install}, roll back occurs before any other actions."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:2820
+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 ""
+
+#. type: table
+#: doc/guix.texi:2824
+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:2825
+#, no-wrap
+msgid "--switch-generation=@var{pattern}"
+msgstr ""
+
+#. type: itemx
+#: doc/guix.texi:2826
+#, no-wrap
+msgid "-S @var{pattern}"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:2827 doc/guix.texi:3022 doc/guix.texi:24104
+#, no-wrap
+msgid "generations"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:2829
+msgid "Switch to a particular generation defined by @var{pattern}."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:2835
+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 ""
+
+#. type: table
+#: doc/guix.texi:2840
+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 ""
+
+#. type: item
+#: doc/guix.texi:2841
+#, no-wrap
+msgid "--search-paths[=@var{kind}]"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:2847
+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 ""
+
+#. type: table
+#: doc/guix.texi:2855
+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 ""
+
+#. type: table
+#: doc/guix.texi:2858
+msgid "The typical use case is to define these environment variables in the shell:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:2861
+#, no-wrap
+msgid "$ eval `guix package --search-paths`\n"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:2867
+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 ""
+
+#. type: table
+#: doc/guix.texi:2870
+msgid "This option can also be used to compute the @emph{combined} search paths of several profiles.  Consider this example:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:2875
+#, no-wrap
+msgid ""
+"$ guix package -p foo -i guile\n"
+"$ guix package -p bar -i guile-json\n"
+"$ guix package -p foo -p bar --search-paths\n"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:2880
+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 ""
+
+#. type: item
+#: doc/guix.texi:2882 doc/guix.texi:3690 doc/guix.texi:4137
+#, no-wrap
+msgid "--profile=@var{profile}"
+msgstr ""
+
+#. type: itemx
+#: doc/guix.texi:2883 doc/guix.texi:3691 doc/guix.texi:4138
+#, no-wrap
+msgid "-p @var{profile}"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:2885
+msgid "Use @var{profile} instead of the user's default profile."
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:2886
+#, no-wrap
+msgid "collisions, in a profile"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:2887
+#, no-wrap
+msgid "colliding packages in profiles"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:2888
+#, no-wrap
+msgid "profile collisions"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:2889
+#, no-wrap
+msgid "--allow-collisions"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:2891
+msgid "Allow colliding packages in the new profile.  Use at your own risk!"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:2895
+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 ""
+
+#. type: item
+#: doc/guix.texi:2896 doc/guix.texi:3707 doc/guix.texi:4921
+#, no-wrap
+msgid "--bootstrap"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:2899
+msgid "Use the bootstrap Guile to build the profile.  This option is only useful to distribution developers."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:2905
+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 ""
+
+#. type: item
+#: doc/guix.texi:2908
+#, no-wrap
+msgid "--search=@var{regexp}"
+msgstr ""
+
+#. type: itemx
+#: doc/guix.texi:2909
+#, no-wrap
+msgid "-s @var{regexp}"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:2910
+#, no-wrap
+msgid "searching for packages"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:2916
+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 ""
+
+#. type: table
+#: doc/guix.texi:2919
+msgid "This allows specific fields to be extracted using the @command{recsel} command, for instance:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:2925
+#, no-wrap
+msgid ""
+"$ guix package -s malloc | recsel -p name,version,relevance\n"
+"name: jemalloc\n"
+"version: 4.5.0\n"
+"relevance: 6\n"
+"\n"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:2929
+#, no-wrap
+msgid ""
+"name: glibc\n"
+"version: 2.25\n"
+"relevance: 1\n"
+"\n"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:2933
+#, no-wrap
+msgid ""
+"name: libgc\n"
+"version: 7.6.0\n"
+"relevance: 1\n"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:2937
+msgid "Similarly, to show the name of all the packages available under the terms of the GNU@tie{}LGPL version 3:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:2941
+#, no-wrap
+msgid ""
+"$ guix package -s \"\" | recsel -p name -e 'license ~ \"LGPL 3\"'\n"
+"name: elfutils\n"
+"\n"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:2944
+#, no-wrap
+msgid ""
+"name: gmp\n"
+"@dots{}\n"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:2949
+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 ""
+
+#. type: example
+#: doc/guix.texi:2954
+#, no-wrap
+msgid ""
+"$ guix package -s '\\<board\\>' -s game | recsel -p name\n"
+"name: gnubg\n"
+"@dots{}\n"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:2960
+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 ""
+
+#. type: table
+#: doc/guix.texi:2964
+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 ""
+
+#. type: example
+#: doc/guix.texi:2968
+#, no-wrap
+msgid ""
+"$ guix package -s crypto -s library | \\\n"
+"    recsel -e '! (name ~ \"^(ghc|perl|python|ruby)\")' -p name,synopsis\n"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:2973
+msgid "@xref{Selection Expressions,,, recutils, GNU recutils manual}, for more information on @dfn{selection expressions} for @code{recsel -e}."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:2974
+#, no-wrap
+msgid "--show=@var{package}"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:2978
+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 ""
+
+#. type: example
+#: doc/guix.texi:2983
+#, no-wrap
+msgid ""
+"$ guix package --show=python | recsel -p name,version\n"
+"name: python\n"
+"version: 2.7.6\n"
+"\n"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:2986
+#, no-wrap
+msgid ""
+"name: python\n"
+"version: 3.3.5\n"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:2990
+msgid "You may also specify the full name of a package to only get details about a specific version of it:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:2994
+#, no-wrap
+msgid ""
+"$ guix package --show=python@@3.4 | recsel -p name,version\n"
+"name: python\n"
+"version: 3.4.3\n"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:2998
+#, no-wrap
+msgid "--list-installed[=@var{regexp}]"
+msgstr ""
+
+#. type: itemx
+#: doc/guix.texi:2999
+#, no-wrap
+msgid "-I [@var{regexp}]"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:3003
+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 ""
+
+#. type: table
+#: doc/guix.texi:3009
+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 ""
+
+#. type: item
+#: doc/guix.texi:3010
+#, no-wrap
+msgid "--list-available[=@var{regexp}]"
+msgstr ""
+
+#. type: itemx
+#: doc/guix.texi:3011
+#, no-wrap
+msgid "-A [@var{regexp}]"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:3015
+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 ""
+
+#. type: table
+#: doc/guix.texi:3019
+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 ""
+
+#. type: item
+#: doc/guix.texi:3020 doc/guix.texi:3680
+#, no-wrap
+msgid "--list-generations[=@var{pattern}]"
+msgstr ""
+
+#. type: itemx
+#: doc/guix.texi:3021 doc/guix.texi:3681
+#, no-wrap
+msgid "-l [@var{pattern}]"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:3027
+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 ""
+
+#. type: table
+#: doc/guix.texi:3032
+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 ""
+
+#. type: table
+#: doc/guix.texi:3035
+msgid "When @var{pattern} is used, the command returns only matching generations.  Valid patterns include:"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:3037
+#, no-wrap
+msgid "@emph{Integers and comma-separated integers}.  Both patterns denote"
+msgstr ""
+
+#. type: itemize
+#: doc/guix.texi:3040
+msgid "generation numbers.  For instance, @code{--list-generations=1} returns the first one."
+msgstr ""
+
+#. type: itemize
+#: doc/guix.texi:3043
+msgid "And @code{--list-generations=1,8,2} outputs three generations in the specified order.  Neither spaces nor trailing commas are allowed."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:3044
+#, no-wrap
+msgid "@emph{Ranges}.  @code{--list-generations=2..9} prints the"
+msgstr ""
+
+#. type: itemize
+#: doc/guix.texi:3047
+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:3051
+msgid "It is also possible to omit the endpoint.  For example, @code{--list-generations=2..}, returns all generations starting from the second one."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:3052
+#, no-wrap
+msgid "@emph{Durations}.  You can also get the last @emph{N}@tie{}days, weeks,"
+msgstr ""
+
+#. type: itemize
+#: doc/guix.texi:3056
+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 ""
+
+#. type: item
+#: doc/guix.texi:3058
+#, no-wrap
+msgid "--delete-generations[=@var{pattern}]"
+msgstr ""
+
+#. type: itemx
+#: doc/guix.texi:3059
+#, no-wrap
+msgid "-d [@var{pattern}]"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:3062
+msgid "When @var{pattern} is omitted, delete all generations except the current one."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:3068
+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 ""
+
+#. type: table
+#: doc/guix.texi:3071
+msgid "If the current generation matches, it is @emph{not} deleted.  Also, the zeroth generation is never deleted."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:3074
+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:3085
+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 ""
+
+#. type: cindex
+#: doc/guix.texi:3090
+#, no-wrap
+msgid "pre-built binaries"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:3096
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:3101
+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 ""
+
+#. type: cindex
+#: doc/guix.texi:3114
+#, no-wrap
+msgid "hydra"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:3115
+#, no-wrap
+msgid "build farm"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:3125
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:3131
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:3140
+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 ""
+
+#. type: cindex
+#: doc/guix.texi:3144
+#, no-wrap
+msgid "security"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:3146
+#, no-wrap
+msgid "access control list (ACL), for substitutes"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:3147
+#, no-wrap
+msgid "ACL (access control list), for substitutes"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:3154
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:3161
+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 ""
+
+#. type: example
+#: doc/guix.texi:3164
+#, no-wrap
+msgid "# guix archive --authorize < @var{prefix}/share/guix/@value{SUBSTITUTE-SERVER}.pub\n"
+msgstr ""
+
+#. type: quotation
+#: doc/guix.texi:3170
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:3174
+msgid "Once this is in place, the output of a command like @code{guix build} should change from something like:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:3183
+#, no-wrap
+msgid ""
+"$ guix build emacs --dry-run\n"
+"The following derivations would be built:\n"
+"   /gnu/store/yr7bnx8xwcayd6j95r2clmkdl1qh688w-emacs-24.3.drv\n"
+"   /gnu/store/x8qsh1hlhgjx6cwsjyvybnfv2i37z23w-dbus-1.6.4.tar.gz.drv\n"
+"   /gnu/store/1ixwp12fl950d15h2cj11c73733jay0z-alsa-lib-1.0.27.1.tar.bz2.drv\n"
+"   /gnu/store/nlma1pw0p603fpfiqy7kn4zm105r5dmw-util-linux-2.21.drv\n"
+"@dots{}\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:3187
+msgid "to something like:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:3196
+#, no-wrap
+msgid ""
+"$ guix build emacs --dry-run\n"
+"112.3 MB would be downloaded:\n"
+"   /gnu/store/pk3n22lbq6ydamyymqkkz7i69wiwjiwi-emacs-24.3\n"
+"   /gnu/store/2ygn4ncnhrpr61rssa6z0d9x22si0va3-libjpeg-8d\n"
+"   /gnu/store/71yz6lgx4dazma9dwn2mcjxaah9w77jq-cairo-1.12.16\n"
+"   /gnu/store/7zdhgp0n1518lvfn8mb96sxqfmvqrl7v-libxrender-0.9.7\n"
+"@dots{}\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:3201
+msgid "This indicates that substitutes from @code{@value{SUBSTITUTE-SERVER}} are usable and will be downloaded, when possible, for future builds."
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:3202
+#, no-wrap
+msgid "substitutes, how to disable"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:3208
+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 ""
+
+#. type: cindex
+#: doc/guix.texi:3212
+#, no-wrap
+msgid "digital signatures"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:3216
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:3222
+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 ""
+
+#. type: example
+#: doc/guix.texi:3225
+#, no-wrap
+msgid "--substitute-urls=\"https://a.example.org https://b.example.org\"\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:3236
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:3243
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:3255
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:3264
+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:3278
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:3283
+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 ""
+
+#. type: cindex
+#: doc/guix.texi:3287
+#, no-wrap
+msgid "trust, of pre-built binaries"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:3297
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:3309
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:3313
+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 ""
+
+#. type: cindex
+#: doc/guix.texi:3317
+#, no-wrap
+msgid "multiple-output packages"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:3318
+#, no-wrap
+msgid "package outputs"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:3319
+#, no-wrap
+msgid "outputs"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:3329
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:3337
+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 ""
+
+#. type: example
+#: doc/guix.texi:3340
+#, no-wrap
+msgid "guix package -i glib\n"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:3342 doc/guix.texi:25081 doc/guix.texi:25106
+#, no-wrap
+msgid "documentation"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:3344
+msgid "The command to install its documentation is:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:3347
+#, no-wrap
+msgid "guix package -i glib:doc\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:3358
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:3366
+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 ""
+
+#. type: section
+#: doc/guix.texi:3369
+#, no-wrap
+msgid "Invoking @command{guix gc}"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:3371
+#, no-wrap
+msgid "garbage collector"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:3372
+#, no-wrap
+msgid "disk space"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:3378
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:3389
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:3395
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:3399
+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 ""
+
+#. type: example
+#: doc/guix.texi:3402
+#, no-wrap
+msgid "guix gc -F 5G\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:3411
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:3417
+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 ""
+
+#. type: item
+#: doc/guix.texi:3419
+#, no-wrap
+msgid "--collect-garbage[=@var{min}]"
+msgstr ""
+
+#. type: itemx
+#: doc/guix.texi:3420
+#, no-wrap
+msgid "-C [@var{min}]"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:3424
+msgid "Collect garbage---i.e., unreachable @file{/gnu/store} files and sub-directories.  This is the default operation when no option is specified."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:3429
+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 ""
+
+#. type: table
+#: doc/guix.texi:3431
+msgid "When @var{min} is omitted, collect all the garbage."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:3432
+#, no-wrap
+msgid "--free-space=@var{free}"
+msgstr ""
+
+#. type: itemx
+#: doc/guix.texi:3433
+#, no-wrap
+msgid "-F @var{free}"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:3437
+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 ""
+
+#. type: table
+#: doc/guix.texi:3440
+msgid "When @var{free} or more is already available in @file{/gnu/store}, do nothing and exit immediately."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:3441
+#, no-wrap
+msgid "--delete-generations[=@var{duration}]"
+msgstr ""
+
+#. type: itemx
+#: doc/guix.texi:3442
+#, no-wrap
+msgid "-d [@var{duration}]"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:3446
+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 ""
+
+#. type: table
+#: doc/guix.texi:3450
+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 ""
+
+#. type: example
+#: doc/guix.texi:3453
+#, no-wrap
+msgid "guix gc -d 2m -F 10G\n"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:3455
+#, no-wrap
+msgid "--delete"
+msgstr ""
+
+#. type: itemx
+#: doc/guix.texi:3456
+#, no-wrap
+msgid "-D"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:3460
+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 ""
+
+#. type: item
+#: doc/guix.texi:3461
+#, no-wrap
+msgid "--list-failures"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:3463
+msgid "List store items corresponding to cached build failures."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:3467
+msgid "This prints nothing unless the daemon was started with @option{--cache-failures} (@pxref{Invoking guix-daemon, @option{--cache-failures}})."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:3468
+#, no-wrap
+msgid "--list-roots"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:3471
+msgid "List the GC roots owned by the user; when run as root, list @emph{all} the GC roots."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:3472
+#, no-wrap
+msgid "--clear-failures"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:3474
+msgid "Remove the specified store items from the failed-build cache."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:3477
+msgid "Again, this option only makes sense when the daemon is started with @option{--cache-failures}.  Otherwise, it does nothing."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:3478
+#, no-wrap
+msgid "--list-dead"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:3481
+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:3482
+#, no-wrap
+msgid "--list-live"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:3484
+msgid "Show the list of live store files and directories."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:3488
+msgid "In addition, the references among existing store files can be queried:"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:3491
+#, no-wrap
+msgid "--references"
+msgstr ""
+
+#. type: itemx
+#: doc/guix.texi:3492
+#, no-wrap
+msgid "--referrers"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:3493 doc/guix.texi:9283
+#, no-wrap
+msgid "package dependencies"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:3496
+msgid "List the references (respectively, the referrers) of store files given as arguments."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:3497
+#, no-wrap
+msgid "--requisites"
+msgstr ""
+
+#. type: itemx
+#: doc/guix.texi:3498 doc/guix.texi:4787
+#, no-wrap
+msgid "-R"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:3499 doc/guix.texi:9159 doc/guix.texi:9187 doc/guix.texi:9255
+#, no-wrap
+msgid "closure"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:3504
+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 ""
+
+#. type: table
+#: doc/guix.texi:3508
+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 ""
+
+#. type: item
+#: doc/guix.texi:3509
+#, no-wrap
+msgid "--derivers"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:3510 doc/guix.texi:4948 doc/guix.texi:9384
+#, no-wrap
+msgid "derivation"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:3513
+msgid "Return the derivation(s) leading to the given store items (@pxref{Derivations})."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:3515
+msgid "For example, this command:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:3518
+#, no-wrap
+msgid "guix gc --derivers `guix package -I ^emacs$ | cut -f4`\n"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:3523
+msgid "returns the @file{.drv} file(s) leading to the @code{emacs} package installed in your profile."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:3527
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:3531
+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:3534
+#, no-wrap
+msgid "--verify[=@var{options}]"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:3535
+#, no-wrap
+msgid "integrity, of the store"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:3536
+#, no-wrap
+msgid "integrity checking"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:3538
+msgid "Verify the integrity of the store."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:3541
+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 ""
+
+#. type: table
+#: doc/guix.texi:3544
+msgid "When provided, @var{options} must be a comma-separated list containing one or more of @code{contents} and @code{repair}."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:3550
+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 ""
+
+#. type: cindex
+#: doc/guix.texi:3551
+#, no-wrap
+msgid "repairing the store"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:3552 doc/guix.texi:8053
+#, no-wrap
+msgid "corruption, recovering from"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:3560
+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 ""
+
+#. type: item
+#: doc/guix.texi:3561
+#, no-wrap
+msgid "--optimize"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:3565
+msgid "Optimize the store by hard-linking identical files---this is @dfn{deduplication}."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:3571
+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 ""
+
+#. type: section
+#: doc/guix.texi:3575
+#, no-wrap
+msgid "Invoking @command{guix pull}"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:3577
+#, no-wrap
+msgid "upgrading Guix"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:3578
+#, no-wrap
+msgid "updating Guix"
+msgstr ""
+
+#. type: command{#1}
+#: doc/guix.texi:3579
+#, no-wrap
+msgid "guix pull"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:3580
+#, no-wrap
+msgid "pull"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:3588
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:3594
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:3600
+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."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:3606
+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 ""
+
+#. type: example
+#: doc/guix.texi:3610
+#, no-wrap
+msgid ""
+"export PATH=\"$HOME/.config/guix/current/bin:$PATH\"\n"
+"export INFOPATH=\"$HOME/.config/guix/current/share/info:$INFOPATH\"\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:3614
+msgid "The @code{--list-generations} or @code{-l} option lists past generations produced by @command{guix pull}, along with details about their provenance:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:3622
+#, no-wrap
+msgid ""
+"$ guix pull -l\n"
+"Generation 1\tJun 10 2018 00:18:18\n"
+"  guix 65956ad\n"
+"    repository URL: https://git.savannah.gnu.org/git/guix.git\n"
+"    branch: origin/master\n"
+"    commit: 65956ad3526ba09e1f7a40722c96c6ef7c0936fe\n"
+"\n"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:3632
+#, no-wrap
+msgid ""
+"Generation 2\tJun 11 2018 11:02:49\n"
+"  guix e0cc7f6\n"
+"    repository URL: https://git.savannah.gnu.org/git/guix.git\n"
+"    branch: origin/master\n"
+"    commit: e0cc7f669bec22c37481dd03a7941c7d11a64f1d\n"
+"  2 new packages: keepalived, libnfnetlink\n"
+"  6 packages upgraded: emacs-nix-mode@@2.0.4,\n"
+"    guile2.0-guix@@0.14.0-12.77a1aac, guix@@0.14.0-12.77a1aac,\n"
+"    heimdal@@7.5.0, milkytracker@@1.02.00, nix@@2.0.4\n"
+"\n"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:3640
+#, no-wrap
+msgid ""
+"Generation 3\tJun 13 2018 23:31:07\t(current)\n"
+"  guix 844cc1c\n"
+"    repository URL: https://git.savannah.gnu.org/git/guix.git\n"
+"    branch: origin/master\n"
+"    commit: 844cc1c8f394f03b404c5bb3aee086922373490c\n"
+"  28 new packages: emacs-helm-ls-git, emacs-helm-mu, @dots{}\n"
+"  69 packages upgraded: borg@@1.1.6, cheese@@3.28.0, @dots{}\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:3644
+msgid "@xref{Invoking guix describe, @command{guix describe}}, for other ways to describe the current status of Guix."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:3649
+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 ""
+
+#. type: example
+#: doc/guix.texi:3655
+#, no-wrap
+msgid ""
+"$ guix package -p ~/.config/guix/current --roll-back\n"
+"switched from generation 3 to 2\n"
+"$ guix package -p ~/.config/guix/current --delete-generations=1\n"
+"deleting /var/guix/profiles/per-user/charlie/current-guix-1-link\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:3659
+msgid "The @command{guix pull} command is usually invoked with no arguments, but it supports the following options:"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:3661
+#, no-wrap
+msgid "--url=@var{url}"
+msgstr ""
+
+#. type: itemx
+#: doc/guix.texi:3662
+#, no-wrap
+msgid "--commit=@var{commit}"
+msgstr ""
+
+#. type: itemx
+#: doc/guix.texi:3663
+#, no-wrap
+msgid "--branch=@var{branch}"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:3666
+msgid "Download code from the specified @var{url}, at the given @var{commit} (a valid Git commit ID represented as a hexadecimal string), or @var{branch}."
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:3667 doc/guix.texi:3724
+#, no-wrap
+msgid "@file{channels.scm}, configuration file"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:3668 doc/guix.texi:3725
+#, no-wrap
+msgid "configuration file for channels"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:3672
+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 ""
+
+#. type: item
+#: doc/guix.texi:3673
+#, no-wrap
+msgid "--channels=@var{file}"
+msgstr ""
+
+#. type: itemx
+#: doc/guix.texi:3674
+#, no-wrap
+msgid "-C @var{file}"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:3679
+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 ""
+
+#. type: table
+#: doc/guix.texi:3686
+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 ""
+
+#. type: table
+#: doc/guix.texi:3689
+msgid "@xref{Invoking guix describe}, for a way to display information about the current generation only."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:3693
+msgid "Use @var{profile} instead of @file{~/.config/guix/current}."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:3694 doc/guix.texi:7631
+#, no-wrap
+msgid "--dry-run"
+msgstr ""
+
+#. type: itemx
+#: doc/guix.texi:3695 doc/guix.texi:7632
+#, no-wrap
+msgid "-n"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:3698
+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:3700 doc/guix.texi:4568 doc/guix.texi:4861 doc/guix.texi:7997
+#: doc/guix.texi:9273 doc/guix.texi:9472 doc/guix.texi:10022
+#: doc/guix.texi:24348
+#, no-wrap
+msgid "-s @var{system}"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:3703 doc/guix.texi:4864 doc/guix.texi:8000
+msgid "Attempt to build for @var{system}---e.g., @code{i686-linux}---instead of the system type of the build host."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:3704 doc/guix.texi:9830
+#, no-wrap
+msgid "--verbose"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:3706
+msgid "Produce verbose output, writing build logs to the standard error output."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:3710
+msgid "Use the bootstrap Guile to build the latest Guix.  This option is only useful to Guix developers."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:3716
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:3719
+msgid "In addition, @command{guix pull} supports all the common build options (@pxref{Common Build Options})."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:3723 doc/guix.texi:4126
+#, no-wrap
+msgid "channels"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:3726
+#, no-wrap
+msgid "@command{guix pull}, configuration file"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:3727
+#, no-wrap
+msgid "configuration of @command{guix pull}"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:3736
+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 ""
+
+#. type: subsection
+#: doc/guix.texi:3737
+#, no-wrap
+msgid "Using a Custom Guix Channel"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:3744
+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 ""
+
+#. type: lisp
+#: doc/guix.texi:3751
+#, 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 ""
+
+#. type: Plain text
+#: doc/guix.texi:3756
+msgid "From there on, @command{guix pull} will fetch code from the @code{super-hacks} branch of the repository at @code{example.org}."
+msgstr ""
+
+#. type: subsection
+#: doc/guix.texi:3757
+#, no-wrap
+msgid "Specifying Additional Channels"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:3759
+#, no-wrap
+msgid "extending the package collection (channels)"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:3760
+#, no-wrap
+msgid "personal packages (channels)"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:3761
+#, no-wrap
+msgid "channels, for personal packages"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:3769
+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 ""
+
+#. type: quotation
+#: doc/guix.texi:3773
+#, no-wrap
+msgid "Warning"
+msgstr ""
+
+#. type: quotation
+#: doc/guix.texi:3777
+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 ""
+
+#. type: itemize
+#: doc/guix.texi:3785
+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 ""
+
+#. type: itemize
+#: doc/guix.texi:3794
+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 ""
+
+#. type: itemize
+#: doc/guix.texi:3798
+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 ""
+
+#. type: quotation
+#: doc/guix.texi:3805
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:3810
+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 ""
+
+#. type: vindex
+#: doc/guix.texi:3811
+#, no-wrap
+msgid "%default-channels"
+msgstr ""
+
+#. type: lisp
+#: doc/guix.texi:3818
+#, 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 ""
+
+#. type: Plain text
+#: doc/guix.texi:3828
+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 ""
+
+#. type: example
+#: doc/guix.texi:3843
+#, 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 ""
+
+#. type: Plain text
+#: doc/guix.texi:3851
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:3862
+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 ""
+
+#. type: cindex
+#: doc/guix.texi:3863
+#, no-wrap
+msgid "dependencies, channels"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:3864
+#, no-wrap
+msgid "meta-data, channels"
+msgstr ""
+
+#. type: subsection
+#: doc/guix.texi:3865
+#, no-wrap
+msgid "Declaring Channel Dependencies"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:3871
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:3873
+msgid "The meta-data file should contain a simple S-expression like this:"
+msgstr ""
+
+#. type: lisp
+#: doc/guix.texi:3885
+#, 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 ""
+
+#. type: Plain text
+#: doc/guix.texi:3891
+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:3895
+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: subsection
+#: doc/guix.texi:3896
+#, no-wrap
+msgid "Replicating Guix"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:3898
+#, no-wrap
+msgid "pinning, channels"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:3899 doc/guix.texi:4065
+#, no-wrap
+msgid "replicating Guix"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:3900
+#, no-wrap
+msgid "reproducibility, of Guix"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:3905
+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 ""
+
+#. type: lisp
+#: doc/guix.texi:3916
+#, 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 ""
+
+#. type: Plain text
+#: doc/guix.texi:3920
+msgid "The @command{guix describe --format=channels} command can even generate this list of channels directly (@pxref{Invoking guix describe})."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:3927
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:3932
+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 ""
+
+#. type: quotation
+#: doc/guix.texi:3940
+msgid "The functionality described here is a ``technology preview'' as of version @value{VERSION}.  As such, the interface is subject to change."
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:3942 doc/guix.texi:7477
+#, no-wrap
+msgid "inferiors"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:3943
+#, no-wrap
+msgid "composition of Guix revisions"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:3948
+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 ""
+
+#. type: cindex
+#: doc/guix.texi:3949 doc/guix.texi:4014
+#, no-wrap
+msgid "inferior packages"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:3955
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:3965
+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 ""
+
+#. type: lisp
+#: doc/guix.texi:3969
+#, no-wrap
+msgid ""
+"(use-modules (guix inferior) (guix channels)\n"
+"             (srfi srfi-1))   ;for 'first'\n"
+"\n"
+msgstr ""
+
+#. type: lisp
+#: doc/guix.texi:3978
+#, no-wrap
+msgid ""
+"(define channels\n"
+"  ;; This is the old revision from which we want to\n"
+"  ;; extract guile-json.\n"
+"  (list (channel\n"
+"         (name 'guix)\n"
+"         (url \"https://git.savannah.gnu.org/git/guix.git\")\n"
+"         (commit\n"
+"          \"65956ad3526ba09e1f7a40722c96c6ef7c0936fe\"))))\n"
+"\n"
+msgstr ""
+
+#. type: lisp
+#: doc/guix.texi:3982
+#, no-wrap
+msgid ""
+"(define inferior\n"
+"  ;; An inferior representing the above revision.\n"
+"  (inferior-for-channels channels))\n"
+"\n"
+msgstr ""
+
+#. type: lisp
+#: doc/guix.texi:3988
+#, no-wrap
+msgid ""
+";; Now create a manifest with the current \"guile\" package\n"
+";; and the old \"guile-json\" package.\n"
+"(packages->manifest\n"
+" (list (first (lookup-inferior-packages inferior \"guile-json\"))\n"
+"       (specification->package \"guile\")))\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:3993
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:3996
+msgid "The @code{(guix inferior)} module provides the following procedures to open an inferior:"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:3997
+#, no-wrap
+msgid "{Scheme Procedure} inferior-for-channels @var{channels} @"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:4002
+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 ""
+
+#. type: deffn
+#: doc/guix.texi:4005
+msgid "As a side effect, this procedure may build or substitute binaries for @var{channels}, which can take time."
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:4007
+#, no-wrap
+msgid "{Scheme Procedure} open-inferior @var{directory} @"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:4012
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:4017
+msgid "The procedures listed below allow you to obtain and manipulate inferior packages."
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:4018
+#, no-wrap
+msgid "{Scheme Procedure} inferior-packages @var{inferior}"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:4020
+msgid "Return the list of packages known to @var{inferior}."
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:4022
+#, no-wrap
+msgid "{Scheme Procedure} lookup-inferior-packages @var{inferior} @var{name} @"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:4027
+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 ""
+
+#. type: deffn
+#: doc/guix.texi:4029
+#, no-wrap
+msgid "{Scheme Procedure} inferior-package? @var{obj}"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:4031
+msgid "Return true if @var{obj} is an inferior package."
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:4033
+#, no-wrap
+msgid "{Scheme Procedure} inferior-package-name @var{package}"
+msgstr ""
+
+#. type: deffnx
+#: doc/guix.texi:4034
+#, no-wrap
+msgid "{Scheme Procedure} inferior-package-version @var{package}"
+msgstr ""
+
+#. type: deffnx
+#: doc/guix.texi:4035
+#, no-wrap
+msgid "{Scheme Procedure} inferior-package-synopsis @var{package}"
+msgstr ""
+
+#. type: deffnx
+#: doc/guix.texi:4036
+#, no-wrap
+msgid "{Scheme Procedure} inferior-package-description @var{package}"
+msgstr ""
+
+#. type: deffnx
+#: doc/guix.texi:4037
+#, no-wrap
+msgid "{Scheme Procedure} inferior-package-home-page @var{package}"
+msgstr ""
+
+#. type: deffnx
+#: doc/guix.texi:4038
+#, no-wrap
+msgid "{Scheme Procedure} inferior-package-location @var{package}"
+msgstr ""
+
+#. type: deffnx
+#: doc/guix.texi:4039
+#, no-wrap
+msgid "{Scheme Procedure} inferior-package-inputs @var{package}"
+msgstr ""
+
+#. type: deffnx
+#: doc/guix.texi:4040
+#, no-wrap
+msgid "{Scheme Procedure} inferior-package-native-inputs @var{package}"
+msgstr ""
+
+#. type: deffnx
+#: doc/guix.texi:4041
+#, no-wrap
+msgid "{Scheme Procedure} inferior-package-propagated-inputs @var{package}"
+msgstr ""
+
+#. type: deffnx
+#: doc/guix.texi:4042
+#, no-wrap
+msgid "{Scheme Procedure} inferior-package-transitive-propagated-inputs @var{package}"
+msgstr ""
+
+#. type: deffnx
+#: doc/guix.texi:4043
+#, no-wrap
+msgid "{Scheme Procedure} inferior-package-native-search-paths @var{package}"
+msgstr ""
+
+#. type: deffnx
+#: doc/guix.texi:4044
+#, no-wrap
+msgid "{Scheme Procedure} inferior-package-transitive-native-search-paths @var{package}"
+msgstr ""
+
+#. type: deffnx
+#: doc/guix.texi:4045
+#, no-wrap
+msgid "{Scheme Procedure} inferior-package-search-paths @var{package}"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:4050
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:4060
+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 ""
+
+#. type: section
+#: doc/guix.texi:4062
+#, no-wrap
+msgid "Invoking @command{guix describe}"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:4073
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:4077
+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 ""
+
+#. type: example
+#: doc/guix.texi:4085
+#, no-wrap
+msgid ""
+"$ guix describe\n"
+"Generation 10\tSep 03 2018 17:32:44\t(current)\n"
+"  guix e0fa68c\n"
+"    repository URL: https://git.savannah.gnu.org/git/guix.git\n"
+"    branch: master\n"
+"    commit: e0fa68c7718fffd33d81af415279d6ddb518f727\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:4094
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:4097
+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 ""
+
+#. type: example
+#: doc/guix.texi:4105
+#, 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"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:4114
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:4117
+msgid "The details of the options supported by @command{guix describe} are as follows:"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:4119 doc/guix.texi:4763
+#, no-wrap
+msgid "--format=@var{format}"
+msgstr ""
+
+#. type: itemx
+#: doc/guix.texi:4120 doc/guix.texi:4764
+#, no-wrap
+msgid "-f @var{format}"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:4122
+msgid "Produce output in the specified @var{format}, one of:"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:4124
+#, no-wrap
+msgid "human"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:4126
+msgid "produce human-readable output;"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:4130
+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 ""
+
+#. type: item
+#: doc/guix.texi:4130 doc/guix.texi:8512
+#, no-wrap
+msgid "json"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:4131
+#, no-wrap
+msgid "JSON"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:4133
+msgid "produce a list of channel specifications in JSON format;"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:4133
+#, no-wrap
+msgid "recutils"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:4135
+msgid "produce a list of channel specifications in Recutils format."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:4140
+msgid "Display information about @var{profile}."
+msgstr ""
+
+#. type: section
+#: doc/guix.texi:4143
+#, no-wrap
+msgid "Invoking @command{guix archive}"
+msgstr ""
+
+#. type: command{#1}
+#: doc/guix.texi:4145
+#, no-wrap
+msgid "guix archive"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:4146
+#, no-wrap
+msgid "archive"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:4152
+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 ""
+
+#. type: quotation
+#: doc/guix.texi:4156
+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 ""
+
+#. type: cindex
+#: doc/guix.texi:4158
+#, no-wrap
+msgid "exporting store items"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:4160
+msgid "To export store files as an archive to standard output, run:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:4163
+#, no-wrap
+msgid "guix archive --export @var{options} @var{specifications}...\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:4170
+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 ""
+
+#. type: example
+#: doc/guix.texi:4173
+#, no-wrap
+msgid "guix archive --export git:gui /gnu/store/...-emacs-24.3 > great.nar\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:4178
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:4181
+msgid "To transfer the @code{emacs} package to a machine connected over SSH, one would run:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:4184
+#, no-wrap
+msgid "guix archive --export -r emacs | ssh the-machine guix archive --import\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:4189
+msgid "Similarly, a complete user profile may be transferred from one machine to another like this:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:4193
+#, no-wrap
+msgid ""
+"guix archive --export -r $(readlink -f ~/.guix-profile) | \\\n"
+"  ssh the-machine guix-archive --import\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:4203
+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 ""
+
+#. type: cindex
+#: doc/guix.texi:4204
+#, no-wrap
+msgid "nar, archive format"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:4205
+#, no-wrap
+msgid "normalized archive (nar)"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:4215
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:4221
+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:4223
+msgid "The main options are:"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:4225
+#, no-wrap
+msgid "--export"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:4228
+msgid "Export the specified store files or packages (see below.)  Write the resulting archive to the standard output."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:4231
+msgid "Dependencies are @emph{not} included in the output, unless @code{--recursive} is passed."
+msgstr ""
+
+#. type: itemx
+#: doc/guix.texi:4232 doc/guix.texi:8300 doc/guix.texi:8397 doc/guix.texi:8422
+#: doc/guix.texi:8617 doc/guix.texi:8658 doc/guix.texi:8705
+#, no-wrap
+msgid "-r"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:4233 doc/guix.texi:8299 doc/guix.texi:8396 doc/guix.texi:8421
+#: doc/guix.texi:8616 doc/guix.texi:8657 doc/guix.texi:8704 doc/guix.texi:8761
+#, no-wrap
+msgid "--recursive"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:4238
+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 ""
+
+#. type: item
+#: doc/guix.texi:4239
+#, no-wrap
+msgid "--import"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:4244
+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 ""
+
+#. type: item
+#: doc/guix.texi:4245
+#, no-wrap
+msgid "--missing"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:4249
+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:4250
+#, no-wrap
+msgid "--generate-key[=@var{parameters}]"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:4251
+#, no-wrap
+msgid "signing, archives"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:4256
+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 ""
+
+#. type: table
+#: doc/guix.texi:4266
+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 ""
+
+#. type: item
+#: doc/guix.texi:4267
+#, no-wrap
+msgid "--authorize"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:4268
+#, no-wrap
+msgid "authorizing, archives"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:4272
+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 ""
+
+#. type: table
+#: doc/guix.texi:4279
+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)}."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:4280
+#, no-wrap
+msgid "--extract=@var{directory}"
+msgstr ""
+
+#. type: itemx
+#: doc/guix.texi:4281
+#, no-wrap
+msgid "-x @var{directory}"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:4285
+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 ""
+
+#. type: table
+#: doc/guix.texi:4288
+msgid "For example, the following command extracts the substitute for Emacs served by @code{@value{SUBSTITUTE-SERVER}} to @file{/tmp/emacs}:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:4293
+#, no-wrap
+msgid ""
+"$ wget -O - \\\n"
+"  https://@value{SUBSTITUTE-SERVER}/nar/@dots{}-emacs-24.5 \\\n"
+"  | bunzip2 | guix archive -x /tmp/emacs\n"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:4300
+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 ""
+
+#. type: table
+#: doc/guix.texi:4303
+msgid "The primary purpose of this operation is to facilitate inspection of archive contents coming from possibly untrusted substitute servers."
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:4311
+#, no-wrap
+msgid "software development"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:4315
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:4321
+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 ""
+
+#. type: section
+#: doc/guix.texi:4328
+#, no-wrap
+msgid "Invoking @command{guix environment}"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:4330
+#, no-wrap
+msgid "reproducible build environments"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:4331
+#, no-wrap
+msgid "development environments"
+msgstr ""
+
+#. type: command{#1}
+#: doc/guix.texi:4332
+#, no-wrap
+msgid "guix environment"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:4333
+#, no-wrap
+msgid "environment, package build environment"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:4339
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:4341 doc/guix.texi:7551 doc/guix.texi:8277 doc/guix.texi:8344
+#: doc/guix.texi:9133 doc/guix.texi:9506 doc/guix.texi:9811 doc/guix.texi:9877
+#: doc/guix.texi:9916
+msgid "The general syntax is:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:4344
+#, no-wrap
+msgid "guix environment @var{options} @var{package}@dots{}\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:4348
+msgid "The following example spawns a new shell set up for the development of GNU@tie{}Guile:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:4351
+#, no-wrap
+msgid "guix environment guile\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:4368
+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 ""
+
+#. type: vindex
+#: doc/guix.texi:4369
+#, no-wrap
+msgid "GUIX_ENVIRONMENT"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:4375
+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 ""
+
+#. type: example
+#: doc/guix.texi:4381
+#, no-wrap
+msgid ""
+"if [ -n \"$GUIX_ENVIRONMENT\" ]\n"
+"then\n"
+"    export PS1=\"\\u@@\\h \\w [dev]\\$ \"\n"
+"fi\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:4385
+msgid "...@: or to browse the profile:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:4388
+#, no-wrap
+msgid "$ ls \"$GUIX_ENVIRONMENT/bin\"\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:4394
+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 ""
+
+#. type: example
+#: doc/guix.texi:4397
+#, no-wrap
+msgid "guix environment guile emacs\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:4402
+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 ""
+
+#. type: example
+#: doc/guix.texi:4405
+#, no-wrap
+msgid "guix environment guile -- make -j4\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:4411
+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 ""
+
+#. type: example
+#: doc/guix.texi:4414
+#, no-wrap
+msgid "guix environment --ad-hoc python2-numpy python-2.7 -- python\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:4425
+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 ""
+
+#. type: example
+#: doc/guix.texi:4428
+#, no-wrap
+msgid "guix environment guix --ad-hoc git strace\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:4437
+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 ""
+
+#. type: example
+#: doc/guix.texi:4440
+#, no-wrap
+msgid "guix environment --ad-hoc --container guile -- guile\n"
+msgstr ""
+
+#. type: quotation
+#: doc/guix.texi:4444
+msgid "The @code{--container} option requires Linux-libre 3.19 or newer."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:4447
+msgid "The available options are summarized below."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:4449 doc/guix.texi:8064 doc/guix.texi:24380
+#, no-wrap
+msgid "--root=@var{file}"
+msgstr ""
+
+#. type: itemx
+#: doc/guix.texi:4450 doc/guix.texi:8065 doc/guix.texi:24381
+#, no-wrap
+msgid "-r @var{file}"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:4451
+#, no-wrap
+msgid "persistent environment"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:4452
+#, no-wrap
+msgid "garbage collector root, for environments"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:4455
+msgid "Make @var{file} a symlink to the profile for this environment, and register it as a garbage collector root."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:4458
+msgid "This is useful if you want to protect your environment from garbage collection, to make it ``persistent''."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:4464
+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 ""
+
+#. type: item
+#: doc/guix.texi:4465 doc/guix.texi:4839 doc/guix.texi:7924 doc/guix.texi:8803
+#: doc/guix.texi:9461 doc/guix.texi:24339
+#, no-wrap
+msgid "--expression=@var{expr}"
+msgstr ""
+
+#. type: itemx
+#: doc/guix.texi:4466 doc/guix.texi:4840 doc/guix.texi:7925 doc/guix.texi:8804
+#: doc/guix.texi:9462 doc/guix.texi:24340
+#, no-wrap
+msgid "-e @var{expr}"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:4469
+msgid "Create an environment for the package or list of packages that @var{expr} evaluates to."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:4471
+msgid "For example, running:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:4474
+#, no-wrap
+msgid "guix environment -e '(@@ (gnu packages maths) petsc-openmpi)'\n"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:4478
+msgid "starts a shell with the environment for this specific variant of the PETSc package."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:4480
+msgid "Running:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:4483
+#, no-wrap
+msgid "guix environment --ad-hoc -e '(@@ (gnu) %base-packages)'\n"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:4486
+msgid "starts a shell with all the base system packages available."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:4489
+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:4492
+#, no-wrap
+msgid "guix environment --ad-hoc -e '(list (@@ (gnu packages bash) bash) \"include\")'\n"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:4494
+#, no-wrap
+msgid "--load=@var{file}"
+msgstr ""
+
+#. type: itemx
+#: doc/guix.texi:4495
+#, no-wrap
+msgid "-l @var{file}"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:4498
+msgid "Create an environment for the package or list of packages that the code within @var{file} evaluates to."
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:4504
+#, no-wrap
+msgid "@verbatiminclude environment-gdb.scm\n"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:4510
+msgid "Create an environment for the packages contained in the manifest object returned by the Scheme code in @var{file}."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:4514
+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 ""
+
+#. type: item
+#: doc/guix.texi:4515
+#, no-wrap
+msgid "--ad-hoc"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:4520
+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 ""
+
+#. type: table
+#: doc/guix.texi:4522
+msgid "For instance, the command:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:4525
+#, no-wrap
+msgid "guix environment --ad-hoc guile guile-sdl -- guile\n"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:4529
+msgid "runs @command{guile} in an environment where Guile and Guile-SDL are available."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:4534
+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 ""
+
+#. type: table
+#: doc/guix.texi:4540
+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 ""
+
+#. type: item
+#: doc/guix.texi:4541
+#, no-wrap
+msgid "--pure"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:4545
+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 ""
+
+#. type: item
+#: doc/guix.texi:4546
+#, no-wrap
+msgid "--preserve=@var{regexp}"
+msgstr ""
+
+#. type: itemx
+#: doc/guix.texi:4547
+#, no-wrap
+msgid "-E @var{regexp}"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:4552
+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 ""
+
+#. type: example
+#: doc/guix.texi:4556
+#, no-wrap
+msgid ""
+"guix environment --pure --preserve=^SLURM --ad-hoc openmpi @dots{} \\\n"
+"  -- mpirun @dots{}\n"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:4562
+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 ""
+
+#. type: item
+#: doc/guix.texi:4563
+#, no-wrap
+msgid "--search-paths"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:4566
+msgid "Display the environment variable definitions that make up the environment."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:4570
+msgid "Attempt to build for @var{system}---e.g., @code{i686-linux}."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:4571
+#, no-wrap
+msgid "--container"
+msgstr ""
+
+#. type: itemx
+#: doc/guix.texi:4572
+#, no-wrap
+msgid "-C"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:4573 doc/guix.texi:9902 doc/guix.texi:24307
+#, no-wrap
+msgid "container"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:4579
+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 ""
+
+#. type: table
+#: doc/guix.texi:4583
+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 ""
+
+#. type: item
+#: doc/guix.texi:4584
+#, no-wrap
+msgid "--network"
+msgstr ""
+
+#. type: itemx
+#: doc/guix.texi:4585
+#, no-wrap
+msgid "-N"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:4589
+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:4590
+#, no-wrap
+msgid "--link-profile"
+msgstr ""
+
+#. type: itemx
+#: doc/guix.texi:4591
+#, no-wrap
+msgid "-P"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:4598
+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 ""
+
+#. type: table
+#: doc/guix.texi:4605
+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 ""
+
+#. type: item
+#: doc/guix.texi:4606 doc/guix.texi:9574
+#, no-wrap
+msgid "--user=@var{user}"
+msgstr ""
+
+#. type: itemx
+#: doc/guix.texi:4607 doc/guix.texi:9575
+#, no-wrap
+msgid "-u @var{user}"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:4614
+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 ""
+
+#. type: table
+#: doc/guix.texi:4619
+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 ""
+
+#. type: example
+#: doc/guix.texi:4626
+#, no-wrap
+msgid ""
+"# will expose paths as /home/foo/wd, /home/foo/test, and /home/foo/target\n"
+"cd $HOME/wd\n"
+"guix environment --container --user=foo \\\n"
+"     --expose=$HOME/test \\\n"
+"     --expose=/tmp/target=$HOME/target\n"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:4631
+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:4632
+#, no-wrap
+msgid "--expose=@var{source}[=@var{target}]"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:4637
+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 ""
+
+#. type: table
+#: doc/guix.texi:4641
+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 ""
+
+#. type: example
+#: doc/guix.texi:4644
+#, no-wrap
+msgid "guix environment --container --expose=$HOME=/exchange --ad-hoc guile -- guile\n"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:4646
+#, no-wrap
+msgid "--share=@var{source}[=@var{target}]"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:4651
+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 ""
+
+#. type: table
+#: doc/guix.texi:4655
+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 ""
+
+#. type: example
+#: doc/guix.texi:4658
+#, no-wrap
+msgid "guix environment --container --share=$HOME=/exchange --ad-hoc guile -- guile\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:4665
+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 ""
+
+#. type: section
+#: doc/guix.texi:4667
+#, no-wrap
+msgid "Invoking @command{guix pack}"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:4673
+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 ""
+
+#. type: quotation
+#: doc/guix.texi:4678
+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 ""
+
+#. type: cindex
+#: doc/guix.texi:4680
+#, no-wrap
+msgid "pack"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:4681
+#, no-wrap
+msgid "bundle"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:4682
+#, no-wrap
+msgid "application bundle"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:4683
+#, no-wrap
+msgid "software bundle"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:4692
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:4695
+msgid "For example, to create a bundle containing Guile, Emacs, Geiser, and all their dependencies, you can run:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:4700
+#, no-wrap
+msgid ""
+"$ guix pack guile emacs geiser\n"
+"@dots{}\n"
+"/gnu/store/@dots{}-pack.tar.gz\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:4708
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:4713
+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 ""
+
+#. type: example
+#: doc/guix.texi:4716
+#, no-wrap
+msgid "guix pack -S /opt/gnu/bin=bin guile emacs geiser\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:4720
+msgid "That way, users can happily type @file{/opt/gnu/bin/guile} and enjoy."
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:4721
+#, no-wrap
+msgid "relocatable binaries, with @command{guix pack}"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:4729
+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 ""
+
+#. type: cindex
+#: doc/guix.texi:4730
+#, no-wrap
+msgid "Docker, build an image with guix pack"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:4733
+msgid "Alternatively, you can produce a pack in the Docker image format using the following command:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:4736
+#, no-wrap
+msgid "guix pack -f docker guile emacs geiser\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:4743
+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 ""
+
+#. type: cindex
+#: doc/guix.texi:4744
+#, no-wrap
+msgid "Singularity, build an image with guix pack"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:4745
+#, no-wrap
+msgid "SquashFS, build an image with guix pack"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:4748
+msgid "Yet another option is to produce a SquashFS image with the following command:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:4751
+#, no-wrap
+msgid "guix pack -f squashfs guile emacs geiser\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:4759
+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}."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:4761
+msgid "Several command-line options allow you to customize your pack:"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:4766
+msgid "Produce a pack in the given @var{format}."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:4768
+msgid "The available formats are:"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:4770
+#, no-wrap
+msgid "tarball"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:4773
+msgid "This is the default format.  It produces a tarball containing all the specified binaries and symlinks."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:4774
+#, no-wrap
+msgid "docker"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:4778
+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 ""
+
+#. type: item
+#: doc/guix.texi:4779
+#, no-wrap
+msgid "squashfs"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:4783
+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 ""
+
+#. type: cindex
+#: doc/guix.texi:4785
+#, no-wrap
+msgid "relocatable binaries"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:4786
+#, no-wrap
+msgid "--relocatable"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:4790
+msgid "Produce @dfn{relocatable binaries}---i.e., binaries that can be placed anywhere in the file system hierarchy and run from there."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:4798
+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 ""
+
+#. type: table
+#: doc/guix.texi:4800
+msgid "For example, if you create a pack containing Bash with:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:4803
+#, no-wrap
+msgid "guix pack -RR -S /mybin=bin bash\n"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:4808
+msgid "...@: you can copy that pack to a machine that lacks Guix, and from your home directory as a normal user, run:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:4812
+#, no-wrap
+msgid ""
+"tar xf pack.tar.gz\n"
+"./mybin/sh\n"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:4820
+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 ""
+
+#. type: quotation
+#: doc/guix.texi:4826
+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 ""
+
+#. type: quotation
+#: doc/guix.texi:4831
+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 ""
+
+#. type: quotation
+#: doc/guix.texi:4837
+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 ""
+
+#. type: table
+#: doc/guix.texi:4842 doc/guix.texi:8806 doc/guix.texi:9464
+msgid "Consider the package @var{expr} evaluates to."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:4846
+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 ""
+
+#. type: table
+#: doc/guix.texi:4851
+msgid "Use the packages contained in the manifest object returned by the Scheme code in @var{file}."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:4859
+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 ""
+
+#. type: item
+#: doc/guix.texi:4865 doc/guix.texi:8028
+#, no-wrap
+msgid "--target=@var{triplet}"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:4866 doc/guix.texi:5212 doc/guix.texi:8029
+#, no-wrap
+msgid "cross-compilation"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:4870 doc/guix.texi:8033
+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 ""
+
+#. type: item
+#: doc/guix.texi:4871
+#, no-wrap
+msgid "--compression=@var{tool}"
+msgstr ""
+
+#. type: itemx
+#: doc/guix.texi:4872
+#, no-wrap
+msgid "-C @var{tool}"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:4875
+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 ""
+
+#. type: item
+#: doc/guix.texi:4876
+#, no-wrap
+msgid "--symlink=@var{spec}"
+msgstr ""
+
+#. type: itemx
+#: doc/guix.texi:4877
+#, no-wrap
+msgid "-S @var{spec}"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:4880
+msgid "Add the symlinks specified by @var{spec} to the pack.  This option can appear several times."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:4884
+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 ""
+
+#. type: table
+#: doc/guix.texi:4887
+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 ""
+
+#. type: item
+#: doc/guix.texi:4888
+#, no-wrap
+msgid "--save-provenance"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:4892
+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 ""
+
+#. type: table
+#: doc/guix.texi:4898
+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 ""
+
+#. type: table
+#: doc/guix.texi:4904
+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 ""
+
+#. type: item
+#: doc/guix.texi:4905
+#, no-wrap
+msgid "--localstatedir"
+msgstr ""
+
+#. type: itemx
+#: doc/guix.texi:4906
+#, no-wrap
+msgid "--profile-name=@var{name}"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:4911
+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 ""
+
+#. type: table
+#: doc/guix.texi:4917
+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 ""
+
+#. type: table
+#: doc/guix.texi:4920
+msgid "One use case for this is the Guix self-contained binary tarball (@pxref{Binary Installation})."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:4924
+msgid "Use the bootstrap binaries to build the pack.  This option is only useful to Guix developers."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:4929
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:4941
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:4947
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:4956
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:4959
+msgid "This chapter describes all these APIs in turn, starting from high-level package definitions."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:4985
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:4992
+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 package -i 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 ""
+
+#. type: cindex
+#: doc/guix.texi:4994
+#, no-wrap
+msgid "package module search path"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:5003
+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 ""
+
+#. type: enumerate
+#: doc/guix.texi:5010
+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 ""
+
+#. type: enumerate
+#: doc/guix.texi:5016
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:5019
+msgid "@code{GUIX_PACKAGE_PATH} works similarly to other search path variables:"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:5020
+#, no-wrap
+msgid "{Environment Variable} GUIX_PACKAGE_PATH"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:5024
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:5032
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:5040
+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 ""
+
+#. type: example
+#: doc/guix.texi:5048
+#, no-wrap
+msgid ""
+"(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"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:5067
+#, no-wrap
+msgid ""
+"(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 \"http://www.gnu.org/software/hello/\")\n"
+"    (license gpl3+)))\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:5077
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:5081
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:5087
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:5089
+msgid "There are a few points worth noting in the above package definition:"
+msgstr ""
+
+#. type: itemize
+#: doc/guix.texi:5096
+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 ""
+
+#. type: itemize
+#: doc/guix.texi:5099
+msgid "The @code{mirror://gnu} prefix instructs @code{url-fetch} to use one of the GNU mirrors defined in @code{(guix download)}."
+msgstr ""
+
+#. type: itemize
+#: doc/guix.texi:5106
+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 ""
+
+#. type: cindex
+#: doc/guix.texi:5107
+#, no-wrap
+msgid "patches"
+msgstr ""
+
+#. type: itemize
+#: doc/guix.texi:5111
+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 ""
+
+#. type: cindex
+#: doc/guix.texi:5113
+#, no-wrap
+msgid "GNU Build System"
+msgstr ""
+
+#. type: itemize
+#: doc/guix.texi:5119
+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 ""
+
+#. type: itemize
+#: doc/guix.texi:5125
+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 ""
+
+#. type: findex
+#: doc/guix.texi:5126 doc/guix.texi:5129
+#, no-wrap
+msgid "quote"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:5127
+#, no-wrap
+msgid "quoting"
+msgstr ""
+
+#. type: findex
+#: doc/guix.texi:5128
+#, no-wrap
+msgid "'"
+msgstr ""
+
+#. type: itemize
+#: doc/guix.texi:5137
+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 ""
+
+#. type: itemize
+#: doc/guix.texi:5143
+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 ""
+
+#. type: itemize
+#: doc/guix.texi:5149
+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 ""
+
+#. type: cindex
+#: doc/guix.texi:5150
+#, no-wrap
+msgid "backquote (quasiquote)"
+msgstr ""
+
+#. type: findex
+#: doc/guix.texi:5151
+#, no-wrap
+msgid "`"
+msgstr ""
+
+#. type: findex
+#: doc/guix.texi:5152
+#, no-wrap
+msgid "quasiquote"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:5153
+#, no-wrap
+msgid "comma (unquote)"
+msgstr ""
+
+#. type: findex
+#: doc/guix.texi:5154
+#, no-wrap
+msgid ","
+msgstr ""
+
+#. type: findex
+#: doc/guix.texi:5155
+#, no-wrap
+msgid "unquote"
+msgstr ""
+
+#. type: findex
+#: doc/guix.texi:5156
+#, no-wrap
+msgid ",@@"
+msgstr ""
+
+#. type: findex
+#: doc/guix.texi:5157
+#, no-wrap
+msgid "unquote-splicing"
+msgstr ""
+
+#. type: itemize
+#: doc/guix.texi:5163
+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 ""
+
+#. type: itemize
+#: doc/guix.texi:5167
+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 ""
+
+#. type: itemize
+#: doc/guix.texi:5171
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:5174
+msgid "@xref{package Reference}, for a full description of possible fields."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:5185
+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 ""
+
+#. type: vindex
+#: doc/guix.texi:5185
+#, no-wrap
+msgid "GUIX_PACKAGE_PATH"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:5189
+msgid "Lastly, @pxref{Channels}, for information on how to extend the distribution by adding your own package definitions in a ``channel''."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:5193
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:5199
+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 ""
+
+#. type: deffn
+#: doc/guix.texi:5200
+#, no-wrap
+msgid "{Scheme Procedure} package-derivation @var{store} @var{package} [@var{system}]"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:5203
+msgid "Return the @code{<derivation>} object of @var{package} for @var{system} (@pxref{Derivations})."
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:5209
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:5215
+msgid "Similarly, it is possible to compute a derivation that cross-builds a package for some other system:"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:5216
+#, no-wrap
+msgid "{Scheme Procedure} package-cross-derivation @var{store} @"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:5220
+msgid "@var{package} @var{target} [@var{system}] Return the @code{<derivation>} object of @var{package} cross-built from @var{system} to @var{target}."
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:5225
+msgid "@var{target} must be a valid GNU triplet denoting the target hardware and operating system, such as @code{\"mips64el-linux-gnu\"} (@pxref{Configuration Names, GNU configuration triplets,, configure, GNU Configure and Build System})."
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:5227
+#, no-wrap
+msgid "package transformations"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:5228
+#, no-wrap
+msgid "input rewriting"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:5229
+#, no-wrap
+msgid "dependency tree rewriting"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:5233
+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 ""
+
+#. type: deffn
+#: doc/guix.texi:5234
+#, no-wrap
+msgid "{Scheme Procedure} package-input-rewriting @var{replacements} @"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:5241
+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 ""
+
+#. type: deffn
+#: doc/guix.texi:5244
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:5248
+msgid "Consider this example:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:5254
+#, 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 ""
+
+#. type: example
+#: doc/guix.texi:5257
+#, no-wrap
+msgid ""
+"(define git-with-libressl\n"
+"  (libressl-instead-of-openssl git))\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:5265
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:5268
+msgid "The following variant of @code{package-input-rewriting} can match packages to be replaced by name rather than by identity."
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:5269
+#, no-wrap
+msgid "{Scheme Procedure} package-input-rewriting/spec @var{replacements}"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:5275
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:5278
+msgid "The example above could be rewritten this way:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:5283
+#, 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 ""
+
+#. type: Plain text
+#: doc/guix.texi:5288
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:5292
+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 ""
+
+#. type: deffn
+#: doc/guix.texi:5293
+#, no-wrap
+msgid "{Scheme Procedure} package-mapping @var{proc} [@var{cut?}]"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:5297
+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 ""
+
+#. type: subsection
+#: doc/guix.texi:5306
+#, no-wrap
+msgid "@code{package} Reference"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:5310
+msgid "This section summarizes all the options available in @code{package} declarations (@pxref{Defining Packages})."
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:5311
+#, no-wrap
+msgid "{Data Type} package"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:5313
+msgid "This is the data type representing a package recipe."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:5317
+msgid "The name of the package, as a string."
+msgstr ""
+
+#. type: code{#1}
+#: doc/guix.texi:5318
+#, no-wrap
+msgid "version"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:5320
+msgid "The version of the package, as a string."
+msgstr ""
+
+#. type: code{#1}
+#: doc/guix.texi:5321 doc/guix.texi:9058 doc/guix.texi:10777
+#: doc/guix.texi:11215
+#, no-wrap
+msgid "source"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:5328
+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 ""
+
+#. type: code{#1}
+#: doc/guix.texi:5329
+#, no-wrap
+msgid "build-system"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:5332
+msgid "The build system that should be used to build the package (@pxref{Build Systems})."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:5333 doc/guix.texi:12813
+#, no-wrap
+msgid "@code{arguments} (default: @code{'()})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:5336
+msgid "The arguments that should be passed to the build system.  This is a list, typically containing sequential keyword-value pairs."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:5337
+#, no-wrap
+msgid "@code{inputs} (default: @code{'()})"
+msgstr ""
+
+#. type: itemx
+#: doc/guix.texi:5338
+#, no-wrap
+msgid "@code{native-inputs} (default: @code{'()})"
+msgstr ""
+
+#. type: itemx
+#: doc/guix.texi:5339
+#, no-wrap
+msgid "@code{propagated-inputs} (default: @code{'()})"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:5340
+#, no-wrap
+msgid "inputs, of packages"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:5348
+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 ""
+
+#. type: example
+#: doc/guix.texi:5353
+#, no-wrap
+msgid ""
+"`((\"libffi\" ,libffi)\n"
+"  (\"libunistring\" ,libunistring)\n"
+"  (\"glib:bin\" ,glib \"bin\"))  ;the \"bin\" output of Glib\n"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:5355
+#, no-wrap
+msgid "cross compilation, package dependencies"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:5361
+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 ""
+
+#. type: table
+#: doc/guix.texi:5366
+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 ""
+
+#. type: anchor{#1}
+#: doc/guix.texi:5373
+msgid "package-propagated-inputs"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:5373
+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 ""
+
+#. type: table
+#: doc/guix.texi:5377
+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 ""
+
+#. type: table
+#: doc/guix.texi:5384
+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 ""
+
+#. type: item
+#: doc/guix.texi:5385
+#, no-wrap
+msgid "@code{outputs} (default: @code{'(\"out\")})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:5388
+msgid "The list of output names of the package.  @xref{Packages with Multiple Outputs}, for typical uses of additional outputs."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:5389
+#, no-wrap
+msgid "@code{native-search-paths} (default: @code{'()})"
+msgstr ""
+
+#. type: itemx
+#: doc/guix.texi:5390
+#, no-wrap
+msgid "@code{search-paths} (default: @code{'()})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:5393
+msgid "A list of @code{search-path-specification} objects describing search-path environment variables honored by the package."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:5394
+#, no-wrap
+msgid "@code{replacement} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:5398
+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 ""
+
+#. type: item
+#: doc/guix.texi:5399 doc/guix.texi:9050
+#, no-wrap
+msgid "synopsis"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:5401
+msgid "A one-line description of the package."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:5402 doc/guix.texi:9051 doc/guix.texi:24776
+#, no-wrap
+msgid "description"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:5404
+msgid "A more elaborate description of the package."
+msgstr ""
+
+#. type: code{#1}
+#: doc/guix.texi:5405
+#, no-wrap
+msgid "license"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:5406
+#, no-wrap
+msgid "license, of packages"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:5409
+msgid "The license of the package; a value from @code{(guix licenses)}, or a list of such values."
+msgstr ""
+
+#. type: itemx
+#: doc/guix.texi:5410 doc/guix.texi:9059
+#, no-wrap
+msgid "home-page"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:5412
+msgid "The URL to the home-page of the package, as a string."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:5413
+#, no-wrap
+msgid "@code{supported-systems} (default: @var{%supported-systems})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:5416
+msgid "The list of systems supported by the package, as strings of the form @code{architecture-kernel}, for example @code{\"x86_64-linux\"}."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:5417
+#, no-wrap
+msgid "@code{maintainers} (default: @code{'()})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:5419
+msgid "The list of maintainers of the package, as @code{maintainer} objects."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:5420
+#, no-wrap
+msgid "@code{location} (default: source location of the @code{package} form)"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:5424
+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 ""
+
+#. type: subsection
+#: doc/guix.texi:5429
+#, no-wrap
+msgid "@code{origin} Reference"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:5433
+msgid "This section summarizes all the options available in @code{origin} declarations (@pxref{Defining Packages})."
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:5434
+#, no-wrap
+msgid "{Data Type} origin"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:5436
+msgid "This is the data type representing a source code origin."
+msgstr ""
+
+#. type: code{#1}
+#: doc/guix.texi:5438 doc/guix.texi:18821
+#, no-wrap
+msgid "uri"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:5443
+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 ""
+
+#. type: code{#1}
+#: doc/guix.texi:5444
+#, no-wrap
+msgid "method"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:5446
+msgid "A procedure that handles the URI."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:5448
+msgid "Examples include:"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:5450
+#, no-wrap
+msgid "@var{url-fetch} from @code{(guix download)}"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:5453
+msgid "download a file from the HTTP, HTTPS, or FTP URL specified in the @code{uri} field;"
+msgstr ""
+
+#. type: vindex
+#: doc/guix.texi:5454 doc/guix.texi:8317
+#, no-wrap
+msgid "git-fetch"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:5455
+#, no-wrap
+msgid "@var{git-fetch} from @code{(guix git-download)}"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:5459
+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: example
+#: doc/guix.texi:5464
+#, no-wrap
+msgid ""
+"(git-reference\n"
+"  (url \"git://git.debian.org/git/pkg-shadow/shadow\")\n"
+"  (commit \"v4.1.5.1\"))\n"
+msgstr ""
+
+#. type: code{#1}
+#: doc/guix.texi:5467
+#, no-wrap
+msgid "sha256"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:5471
+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 ""
+
+#. type: table
+#: doc/guix.texi:5475
+msgid "You can obtain this information using @code{guix download} (@pxref{Invoking guix download}) or @code{guix hash} (@pxref{Invoking guix hash})."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:5476
+#, no-wrap
+msgid "@code{file-name} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:5482
+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 ""
+
+#. type: item
+#: doc/guix.texi:5483
+#, no-wrap
+msgid "@code{patches} (default: @code{'()})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:5486
+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 ""
+
+#. type: table
+#: doc/guix.texi:5490
+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 ""
+
+#. type: item
+#: doc/guix.texi:5491
+#, no-wrap
+msgid "@code{snippet} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:5495
+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 ""
+
+#. type: item
+#: doc/guix.texi:5496
+#, no-wrap
+msgid "@code{patch-flags} (default: @code{'(\"-p1\")})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:5499
+msgid "A list of command-line flags that should be passed to the @code{patch} command."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:5500
+#, no-wrap
+msgid "@code{patch-inputs} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:5504
+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 ""
+
+#. type: item
+#: doc/guix.texi:5505
+#, no-wrap
+msgid "@code{modules} (default: @code{'()})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:5508
+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 ""
+
+#. type: item
+#: doc/guix.texi:5509
+#, no-wrap
+msgid "@code{patch-guile} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:5512
+msgid "The Guile package that should be used in the patching process.  When this is @code{#f}, a sensible default is used."
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:5519
+#, no-wrap
+msgid "build system"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:5524
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:5528
+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 ""
+
+#. type: cindex
+#: doc/guix.texi:5529
+#, no-wrap
+msgid "bag (low-level package representation)"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:5536
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:5544
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:5548
+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 ""
+
+#. type: defvr
+#: doc/guix.texi:5549
+#, no-wrap
+msgid "{Scheme Variable} gnu-build-system"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:5553
+msgid "@var{gnu-build-system} represents the GNU Build System, and variants thereof (@pxref{Configuration, configuration and makefile conventions,, standards, GNU Coding Standards})."
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:5554
+#, no-wrap
+msgid "build phases"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:5561
+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 ""
+
+#. type: item
+#: doc/guix.texi:5563
+#, no-wrap
+msgid "unpack"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:5567
+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 ""
+
+#. type: item
+#: doc/guix.texi:5568
+#, no-wrap
+msgid "patch-source-shebangs"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:5572
+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 ""
+
+#. type: item
+#: doc/guix.texi:5573 doc/guix.texi:6174
+#, no-wrap
+msgid "configure"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:5577
+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 ""
+
+#. type: item
+#: doc/guix.texi:5578 doc/guix.texi:5767 doc/guix.texi:6179
+#: doc/guix.texi:24182
+#, no-wrap
+msgid "build"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:5582
+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 ""
+
+#. type: item
+#: doc/guix.texi:5583 doc/guix.texi:5777 doc/guix.texi:6183
+#, no-wrap
+msgid "check"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:5588
+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 ""
+
+#. type: item
+#: doc/guix.texi:5589 doc/guix.texi:5785 doc/guix.texi:6187
+#, no-wrap
+msgid "install"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:5591
+msgid "Run @code{make install} with the flags listed in @code{#:make-flags}."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:5592
+#, no-wrap
+msgid "patch-shebangs"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:5594
+msgid "Patch shebangs on the installed executable files."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:5595
+#, no-wrap
+msgid "strip"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:5599
+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 ""
+
+#. type: vindex
+#: doc/guix.texi:5601
+#, no-wrap
+msgid "%standard-phases"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:5606
+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 ""
+
+#. type: defvr
+#: doc/guix.texi:5609
+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:5612
+#, no-wrap
+msgid "#:phases (modify-phases %standard-phases (delete 'configure))\n"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:5616
+msgid "means that all the phases described above will be used, except the @code{configure} phase."
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:5623
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:5630
+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 ""
+
+#. type: defvr
+#: doc/guix.texi:5631
+#, no-wrap
+msgid "{Scheme Variable} ant-build-system"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:5635
+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{http://ant.apache.org/, Ant build tool}."
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:5640
+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 ""
+
+#. type: defvr
+#: doc/guix.texi:5646
+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 ""
+
+#. type: defvr
+#: doc/guix.texi:5654
+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 ""
+
+#. type: defvr
+#: doc/guix.texi:5658
+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 ""
+
+#. type: defvr
+#: doc/guix.texi:5661
+#, no-wrap
+msgid "{Scheme Variable} android-ndk-build-system"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:5662
+#, no-wrap
+msgid "Android distribution"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:5663
+#, no-wrap
+msgid "Android NDK build system"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:5667
+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 ""
+
+#. type: defvr
+#: doc/guix.texi:5671
+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 ""
+
+#. type: defvr
+#: doc/guix.texi:5674
+msgid "It's also assumed that the union of all the dependencies of a package has no conflicting files."
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:5677
+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 ""
+
+#. type: defvr
+#: doc/guix.texi:5680
+#, no-wrap
+msgid "{Scheme Variable} asdf-build-system/source"
+msgstr ""
+
+#. type: defvrx
+#: doc/guix.texi:5681
+#, no-wrap
+msgid "{Scheme Variable} asdf-build-system/sbcl"
+msgstr ""
+
+#. type: defvrx
+#: doc/guix.texi:5682
+#, no-wrap
+msgid "{Scheme Variable} asdf-build-system/ecl"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:5688
+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 ""
+
+#. type: defvr
+#: doc/guix.texi:5695
+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 ""
+
+#. type: defvr
+#: doc/guix.texi:5699
+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 ""
+
+#. type: defvr
+#: doc/guix.texi:5703
+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 ""
+
+#. type: defvr
+#: doc/guix.texi:5708
+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 ""
+
+#. type: defvr
+#: doc/guix.texi:5715
+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 ""
+
+#. type: defvr
+#: doc/guix.texi:5724
+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 ""
+
+#. type: defvr
+#: doc/guix.texi:5728
+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 ""
+
+#. type: defvr
+#: doc/guix.texi:5731
+#, no-wrap
+msgid "{Scheme Variable} cargo-build-system"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:5732
+#, no-wrap
+msgid "Rust programming language"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:5733
+#, no-wrap
+msgid "Cargo (Rust build system)"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:5737
+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 ""
+
+#. type: defvr
+#: doc/guix.texi:5742
+msgid "In its @code{configure} phase, this build system replaces dependencies specified in the @file{Carto.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 ""
+
+#. type: cindex
+#: doc/guix.texi:5744
+#, no-wrap
+msgid "Clojure (programming language)"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:5745
+#, no-wrap
+msgid "simple Clojure build system"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:5746
+#, no-wrap
+msgid "{Scheme Variable} clojure-build-system"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:5751
+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 ""
+
+#. type: defvr
+#: doc/guix.texi:5755
+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 ""
+
+#. type: defvr
+#: doc/guix.texi:5761
+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 ""
+
+#. type: defvr
+#: doc/guix.texi:5764
+msgid "This build system is an extension of @var{ant-build-system}, but with the following phases changed:"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:5776
+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 ""
+
+#. type: table
+#: doc/guix.texi:5784
+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 ""
+
+#. type: table
+#: doc/guix.texi:5787
+msgid "This phase installs all jars built previously."
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:5790
+msgid "Apart from the above, this build system also contains an additional phase:"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:5793
+#, no-wrap
+msgid "install-doc"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:5798
+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 ""
+
+#. type: defvr
+#: doc/guix.texi:5801
+#, no-wrap
+msgid "{Scheme Variable} cmake-build-system"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:5805
+msgid "This variable is exported by @code{(guix build-system cmake)}.  It implements the build procedure for packages using the @url{http://www.cmake.org, CMake build tool}."
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:5809
+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 ""
+
+#. type: defvr
+#: doc/guix.texi:5816
+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 ""
+
+#. type: defvr
+#: doc/guix.texi:5818
+#, no-wrap
+msgid "{Scheme Variable} dune-build-system"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:5825
+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 ""
+
+#. type: defvr
+#: doc/guix.texi:5829
+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 ""
+
+#. type: defvr
+#: doc/guix.texi:5833
+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 ""
+
+#. type: defvr
+#: doc/guix.texi:5837
+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 ""
+
+#. type: defvr
+#: doc/guix.texi:5842
+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 ""
+
+#. type: defvr
+#: doc/guix.texi:5844
+#, no-wrap
+msgid "{Scheme Variable} go-build-system"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:5849
+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 ""
+
+#. type: defvr
+#: doc/guix.texi:5860
+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 ""
+
+#. type: defvr
+#: doc/guix.texi:5865
+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 ""
+
+#. type: defvr
+#: doc/guix.texi:5867
+#, no-wrap
+msgid "{Scheme Variable} glib-or-gtk-build-system"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:5870
+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 ""
+
+#. type: defvr
+#: doc/guix.texi:5873
+msgid "This build system adds the following two phases to the ones defined by @var{gnu-build-system}:"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:5875 doc/guix.texi:6203
+#, no-wrap
+msgid "glib-or-gtk-wrap"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:5882
+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 ""
+
+#. type: table
+#: doc/guix.texi:5889
+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 ""
+
+#. type: item
+#: doc/guix.texi:5890 doc/guix.texi:6207
+#, no-wrap
+msgid "glib-or-gtk-compile-schemas"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:5898
+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 ""
+
+#. type: defvr
+#: doc/guix.texi:5901
+msgid "Both phases are executed after the @code{install} phase."
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:5903
+#, no-wrap
+msgid "{Scheme Variable} guile-build-system"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:5910
+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 ""
+
+#. type: defvr
+#: doc/guix.texi:5913
+msgid "This build system supports cross-compilation by using the @code{--target} option of @command{guild compile}."
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:5916
+msgid "Packages built with @code{guile-build-system} must provide a Guile package in their @code{native-inputs} field."
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:5918
+#, no-wrap
+msgid "{Scheme Variable} minify-build-system"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:5921
+msgid "This variable is exported by @code{(guix build-system minify)}.  It implements a minification procedure for simple JavaScript packages."
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:5927
+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 ""
+
+#. type: defvr
+#: doc/guix.texi:5931
+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 ""
+
+#. type: defvr
+#: doc/guix.texi:5933
+#, no-wrap
+msgid "{Scheme Variable} ocaml-build-system"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:5939
+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 ""
+
+#. type: defvr
+#: doc/guix.texi:5949
+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 ""
+
+#. type: defvr
+#: doc/guix.texi:5954
+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 ""
+
+#. type: defvr
+#: doc/guix.texi:5958
+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 ""
+
+#. type: defvr
+#: doc/guix.texi:5966
+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 ""
+
+#. type: defvr
+#: doc/guix.texi:5974
+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 ""
+
+#. type: defvr
+#: doc/guix.texi:5976
+#, no-wrap
+msgid "{Scheme Variable} python-build-system"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:5981
+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 ""
+
+#. type: defvr
+#: doc/guix.texi:5985
+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 ""
+
+#. type: defvr
+#: doc/guix.texi:5991
+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 ""
+
+#. type: defvr
+#: doc/guix.texi:5996
+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 ""
+
+#. type: defvr
+#: doc/guix.texi:5998
+#, no-wrap
+msgid "{Scheme Variable} perl-build-system"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:6010
+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 ""
+
+#. type: defvr
+#: doc/guix.texi:6014
+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 ""
+
+#. type: defvr
+#: doc/guix.texi:6016
+msgid "Which Perl package is used can be specified with @code{#:perl}."
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:6018
+#, no-wrap
+msgid "{Scheme Variable} r-build-system"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:6026
+msgid "This variable is exported by @code{(guix build-system r)}.  It implements the build procedure used by @uref{http://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 ""
+
+#. type: defvr
+#: doc/guix.texi:6028
+#, no-wrap
+msgid "{Scheme Variable} rakudo-build-system"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:6036
+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 ""
+
+#. type: defvr
+#: doc/guix.texi:6044
+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 ""
+
+#. type: defvr
+#: doc/guix.texi:6046
+#, no-wrap
+msgid "{Scheme Variable} texlive-build-system"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:6051
+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 ""
+
+#. type: defvr
+#: doc/guix.texi:6060
+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 ""
+
+#. type: defvr
+#: doc/guix.texi:6063
+msgid "The @code{#:tex-directory} parameter tells the build system where to install the built files under the texmf tree."
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:6065
+#, no-wrap
+msgid "{Scheme Variable} ruby-build-system"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:6069
+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 ""
+
+#. type: defvr
+#: doc/guix.texi:6077
+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 ""
+
+#. type: defvr
+#: doc/guix.texi:6081
+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 ""
+
+#. type: defvr
+#: doc/guix.texi:6083
+#, no-wrap
+msgid "{Scheme Variable} waf-build-system"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:6089
+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 ""
+
+#. type: defvr
+#: doc/guix.texi:6093
+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 ""
+
+#. type: defvr
+#: doc/guix.texi:6095
+#, no-wrap
+msgid "{Scheme Variable} scons-build-system"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:6101
+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 ""
+
+#. type: defvr
+#: doc/guix.texi:6106
+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 ""
+
+#. type: defvr
+#: doc/guix.texi:6108
+#, no-wrap
+msgid "{Scheme Variable} haskell-build-system"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:6122
+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 ""
+
+#. type: defvr
+#: doc/guix.texi:6125
+msgid "Which Haskell compiler is used can be specified with the @code{#:haskell} parameter which defaults to @code{ghc}."
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:6127
+#, no-wrap
+msgid "{Scheme Variable} dub-build-system"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:6132
+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 ""
+
+#. type: defvr
+#: doc/guix.texi:6135
+msgid "Which D compiler is used can be specified with the @code{#:ldc} parameter which defaults to @code{ldc}."
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:6137
+#, no-wrap
+msgid "{Scheme Variable} emacs-build-system"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:6141
+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 ""
+
+#. type: defvr
+#: doc/guix.texi:6148
+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 ""
+
+#. type: defvr
+#: doc/guix.texi:6150
+#, no-wrap
+msgid "{Scheme Variable} font-build-system"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:6156
+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 ""
+
+#. type: defvr
+#: doc/guix.texi:6158
+#, no-wrap
+msgid "{Scheme Variable} meson-build-system"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:6162
+msgid "This variable is exported by @code{(guix build-system meson)}.  It implements the build procedure for packages that use @url{http://mesonbuild.com, Meson} as their build system."
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:6168
+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 ""
+
+#. type: defvr
+#: doc/guix.texi:6171
+msgid "This build system is an extension of @var{gnu-build-system}, but with the following phases changed to some specific for Meson:"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:6178
+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 ""
+
+#. type: table
+#: doc/guix.texi:6182
+msgid "The phase runs @code{ninja} to build the package in parallel by default, but this can be changed with @code{#:parallel-build?}."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:6186
+msgid "The phase runs @code{ninja} with the target specified in @code{#:test-target}, which is @code{\"test\"} by default."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:6189
+msgid "The phase runs @code{ninja install} and can not be changed."
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:6192
+msgid "Apart from that, the build system also adds the following phases:"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:6195
+#, no-wrap
+msgid "fix-runpath"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:6202
+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 ""
+
+#. type: table
+#: doc/guix.texi:6206 doc/guix.texi:6210
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:6217
+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 ""
+
+#. type: defvr
+#: doc/guix.texi:6218
+#, no-wrap
+msgid "{Scheme Variable} trivial-build-system"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:6220
+msgid "This variable is exported by @code{(guix build-system trivial)}."
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:6225
+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 ""
+
+#. type: cindex
+#: doc/guix.texi:6231
+#, no-wrap
+msgid "store items"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:6232
+#, no-wrap
+msgid "store paths"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:6243
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:6248
+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 ""
+
+#. type: quotation
+#: doc/guix.texi:6253
+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 ""
+
+#. type: quotation
+#: doc/guix.texi:6257
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:6264
+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 ""
+
+#. type: defvr
+#: doc/guix.texi:6265
+#, no-wrap
+msgid "{Environment Variable} GUIX_DAEMON_SOCKET"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:6270
+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 ""
+
+#. type: code{#1}
+#: doc/guix.texi:6272 doc/guix.texi:18497
+#, no-wrap
+msgid "file"
+msgstr ""
+
+#. type: itemx
+#: doc/guix.texi:6273
+#, no-wrap
+msgid "unix"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:6277
+msgid "These are for Unix-domain sockets.  @code{file:///var/guix/daemon-socket/socket} is equivalent to @file{/var/guix/daemon-socket/socket}."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:6278
+#, no-wrap
+msgid "guix"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:6286
+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 ""
+
+#. type: example
+#: doc/guix.texi:6289
+#, no-wrap
+msgid "guix://master.guix.example.org:1234\n"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:6294
+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 ""
+
+#. type: table
+#: doc/guix.texi:6298
+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 ""
+
+#. type: item
+#: doc/guix.texi:6299
+#, no-wrap
+msgid "ssh"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:6300
+#, no-wrap
+msgid "SSH access to build daemons"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:6304
+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 ""
+
+#. type: example
+#: doc/guix.texi:6307
+#, no-wrap
+msgid "ssh://charlie@@guix.example.org:22\n"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:6311
+msgid "As for @command{guix copy}, the usual OpenSSH client configuration files are honored (@pxref{Invoking guix copy})."
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:6314
+msgid "Additional URI schemes may be supported in the future."
+msgstr ""
+
+#. type: quotation
+#: doc/guix.texi:6321
+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 ""
+
+#. type: deffn
+#: doc/guix.texi:6324
+#, no-wrap
+msgid "{Scheme Procedure} open-connection [@var{uri}] [#:reserve-space? #t]"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:6329
+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 ""
+
+#. type: deffn
+#: doc/guix.texi:6332
+msgid "@var{file} defaults to @var{%default-socket-path}, which is the normal location given the options that were passed to @command{configure}."
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:6334
+#, no-wrap
+msgid "{Scheme Procedure} close-connection @var{server}"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:6336
+msgid "Close the connection to @var{server}."
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:6338
+#, no-wrap
+msgid "{Scheme Variable} current-build-output-port"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:6341
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:6345
+msgid "Procedures that make RPCs all take a server object as their first argument."
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:6346
+#, no-wrap
+msgid "{Scheme Procedure} valid-path? @var{server} @var{path}"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:6347
+#, no-wrap
+msgid "invalid store items"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:6352
+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 ""
+
+#. type: deffn
+#: doc/guix.texi:6355
+msgid "A @code{&store-protocol-error} condition is raised if @var{path} is not prefixed by the store directory (@file{/gnu/store})."
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:6357
+#, no-wrap
+msgid "{Scheme Procedure} add-text-to-store @var{server} @var{name} @var{text} [@var{references}]"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:6361
+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 ""
+
+#. type: deffn
+#: doc/guix.texi:6363
+#, no-wrap
+msgid "{Scheme Procedure} build-derivations @var{server} @var{derivations}"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:6367
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:6373
+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 ""
+
+#. type: i{#1}
+#: doc/guix.texi:6376
+msgid "This section is currently incomplete."
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:6380
+#, no-wrap
+msgid "derivations"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:6384
+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 ""
+
+#. type: itemize
+#: doc/guix.texi:6389
+msgid "The outputs of the derivation---derivations produce at least one file or directory in the store, but may produce more."
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:6391
+#, no-wrap
+msgid "build-time dependencies"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:6392
+#, no-wrap
+msgid "dependencies, build-time"
+msgstr ""
+
+#. type: itemize
+#: doc/guix.texi:6396
+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 ""
+
+#. type: itemize
+#: doc/guix.texi:6399
+msgid "The system type targeted by the derivation---e.g., @code{x86_64-linux}."
+msgstr ""
+
+#. type: itemize
+#: doc/guix.texi:6403
+msgid "The file name of a build script in the store, along with the arguments to be passed."
+msgstr ""
+
+#. type: itemize
+#: doc/guix.texi:6406
+msgid "A list of environment variables to be defined."
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:6409
+#, no-wrap
+msgid "derivation path"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:6417
+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 ""
+
+#. type: cindex
+#: doc/guix.texi:6418
+#, no-wrap
+msgid "fixed-output derivations"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:6425
+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 ""
+
+#. type: item
+#: doc/guix.texi:6426 doc/guix.texi:9411
+#, no-wrap
+msgid "references"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:6427
+#, no-wrap
+msgid "run-time dependencies"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:6428
+#, no-wrap
+msgid "dependencies, run-time"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:6435
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:6440
+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 ""
+
+#. type: deffn
+#: doc/guix.texi:6441
+#, no-wrap
+msgid "{Scheme Procedure} derivation @var{store} @var{name} @var{builder} @"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:6450
+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 ""
+
+#. type: deffn
+#: doc/guix.texi:6457
+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 ""
+
+#. type: deffn
+#: doc/guix.texi:6462
+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 ""
+
+#. type: deffn
+#: doc/guix.texi:6467
+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 ""
+
+#. type: deffn
+#: doc/guix.texi:6474
+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 ""
+
+#. type: deffn
+#: doc/guix.texi:6479
+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 ""
+
+#. type: deffn
+#: doc/guix.texi:6484
+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 ""
+
+#. type: deffn
+#: doc/guix.texi:6487
+msgid "@var{properties} must be an association list describing ``properties'' of the derivation.  It is kept as-is, uninterpreted, in the derivation."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:6493
+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 ""
+
+#. type: lisp
+#: doc/guix.texi:6498
+#, no-wrap
+msgid ""
+"(use-modules (guix utils)\n"
+"             (guix store)\n"
+"             (guix derivations))\n"
+"\n"
+msgstr ""
+
+#. type: lisp
+#: doc/guix.texi:6507
+#, no-wrap
+msgid ""
+"(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"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:6514
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:6519
+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 ""
+
+#. type: deffn
+#: doc/guix.texi:6520
+#, no-wrap
+msgid "{Scheme Procedure} build-expression->derivation @var{store} @"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:6536
+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 ""
+
+#. type: deffn
+#: doc/guix.texi:6544
+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 ""
+
+#. type: deffn
+#: doc/guix.texi:6548
+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 ""
+
+#. type: deffn
+#: doc/guix.texi:6553
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:6558
+msgid "Here's an example of a single-output derivation that creates a directory containing one file:"
+msgstr ""
+
+#. type: lisp
+#: doc/guix.texi:6566
+#, no-wrap
+msgid ""
+"(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"
+msgstr ""
+
+#. type: lisp
+#: doc/guix.texi:6568
+#, no-wrap
+msgid "@result{} #<derivation /gnu/store/@dots{}-goo.drv => @dots{}>\n"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:6574
+#, no-wrap
+msgid "monad"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:6580
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:6586
+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 ""
+
+#. type: cindex
+#: doc/guix.texi:6587
+#, no-wrap
+msgid "monadic values"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:6588
+#, no-wrap
+msgid "monadic functions"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:6598
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:6600
+msgid "Consider this ``normal'' procedure:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:6609
+#, no-wrap
+msgid ""
+"(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"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:6613
+msgid "Using @code{(guix monads)} and @code{(guix gexp)}, it may be rewritten as a monadic function:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:6621
+#, no-wrap
+msgid ""
+"(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"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:6628
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:6632
+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 ""
+
+#. type: example
+#: doc/guix.texi:6638
+#, no-wrap
+msgid ""
+"(define (sh-symlink)\n"
+"  (gexp->derivation \"sh\"\n"
+"                    #~(symlink (string-append #$bash \"/bin/bash\")\n"
+"                               #$output)))\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:6647
+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 ""
+
+#. type: example
+#: doc/guix.texi:6651
+#, no-wrap
+msgid ""
+"(run-with-store (open-connection) (sh-symlink))\n"
+"@result{} /gnu/store/...-sh-symlink\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:6657
+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 ""
+
+#. type: example
+#: doc/guix.texi:6661
+#, 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 ""
+
+#. type: Plain text
+#: doc/guix.texi:6665
+msgid "The latter enters a recursive REPL, where all the return values are automatically run through the store:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:6674
+#, no-wrap
+msgid ""
+"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"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:6679
+msgid "Note that non-monadic values cannot be returned in the @code{store-monad} REPL."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:6682
+msgid "The main syntactic forms to deal with monads in general are provided by the @code{(guix monads)} module and are described below."
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:6683
+#, no-wrap
+msgid "{Scheme Syntax} with-monad @var{monad} @var{body} ..."
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:6686
+msgid "Evaluate any @code{>>=} or @code{return} forms in @var{body} as being in @var{monad}."
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:6688
+#, no-wrap
+msgid "{Scheme Syntax} return @var{val}"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:6690
+msgid "Return a monadic value that encapsulates @var{val}."
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:6692
+#, no-wrap
+msgid "{Scheme Syntax} >>= @var{mval} @var{mproc} ..."
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:6699
+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: example
+#: doc/guix.texi:6707
+#, no-wrap
+msgid ""
+"(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"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:6710
+#, no-wrap
+msgid ""
+"@result{} 4\n"
+"@result{} some-state\n"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:6713
+#, no-wrap
+msgid "{Scheme Syntax} mlet @var{monad} ((@var{var} @var{mval}) ...) @"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:6715
+msgid "@var{body} ..."
+msgstr ""
+
+#. type: deffnx
+#: doc/guix.texi:6715
+#, no-wrap
+msgid "{Scheme Syntax} mlet* @var{monad} ((@var{var} @var{mval}) ...) @"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:6727
+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:6730
+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:6732
+#, no-wrap
+msgid "{Scheme System} mbegin @var{monad} @var{mexp} ..."
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:6736
+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:6740
+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:6742
+#, no-wrap
+msgid "{Scheme System} mwhen @var{condition} @var{mexp0} @var{mexp*} ..."
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:6747
+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:6749
+#, no-wrap
+msgid "{Scheme System} munless @var{condition} @var{mexp0} @var{mexp*} ..."
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:6754
+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:6756
+#, no-wrap
+msgid "state monad"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:6760
+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:6761
+#, no-wrap
+msgid "{Scheme Variable} %state-monad"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:6764
+msgid "The state monad.  Procedures in the state monad can access and change the state that is threaded."
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:6768
+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: example
+#: doc/guix.texi:6775
+#, no-wrap
+msgid ""
+"(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"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:6779
+#, no-wrap
+msgid ""
+"(run-with-state (sequence %state-monad (map square (iota 3))) 0)\n"
+"@result{} (0 1 4)\n"
+"@result{} 3\n"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:6783
+msgid "When ``run'' through @var{%state-monad}, we obtain that additional state value, which is the number of @code{square} calls."
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:6785
+#, no-wrap
+msgid "{Monadic Procedure} current-state"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:6787
+msgid "Return the current state as a monadic value."
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:6789
+#, no-wrap
+msgid "{Monadic Procedure} set-current-state @var{value}"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:6792
+msgid "Set the current state to @var{value} and return the previous state as a monadic value."
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:6794
+#, no-wrap
+msgid "{Monadic Procedure} state-push @var{value}"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:6797
+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:6799
+#, no-wrap
+msgid "{Monadic Procedure} state-pop"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:6802
+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:6804
+#, no-wrap
+msgid "{Scheme Procedure} run-with-state @var{mval} [@var{state}]"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:6807
+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:6811
+msgid "The main interface to the store monad, provided by the @code{(guix store)} module, is as follows."
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:6812
+#, no-wrap
+msgid "{Scheme Variable} %store-monad"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:6814
+msgid "The store monad---an alias for @var{%state-monad}."
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:6818
+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:6820
+#, no-wrap
+msgid "{Scheme Procedure} run-with-store @var{store} @var{mval} [#:guile-for-build] [#:system (%current-system)]"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:6823
+msgid "Run @var{mval}, a monadic value in the store monad, in @var{store}, an open store connection."
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:6825
+#, no-wrap
+msgid "{Monadic Procedure} text-file @var{name} @var{text} [@var{references}]"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:6829
+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:6831
+#, no-wrap
+msgid "{Monadic Procedure} binary-file @var{name} @var{data} [@var{references}]"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:6835
+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:6837
+#, no-wrap
+msgid "{Monadic Procedure} interned-file @var{file} [@var{name}] @"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:6842
+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:6846 doc/guix.texi:7259
+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:6851 doc/guix.texi:7264
+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:6853
+msgid "The example below adds a file to the store, under two different names:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:6859
+#, no-wrap
+msgid ""
+"(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"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:6861
+#, no-wrap
+msgid "@result{} (\"/gnu/store/rwm@dots{}-README\" \"/gnu/store/44i@dots{}-LEGU-MIN\")\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:6867
+msgid "The @code{(guix packages)} module exports the following package-related monadic procedures:"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:6868
+#, no-wrap
+msgid "{Monadic Procedure} package-file @var{package} [@var{file}] @"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:6876
+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:6878
+#, no-wrap
+msgid "{Monadic Procedure} package->derivation @var{package} [@var{system}]"
+msgstr ""
+
+#. type: deffnx
+#: doc/guix.texi:6879
+#, no-wrap
+msgid "{Monadic Procedure} package->cross-derivation @var{package} @"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:6883
+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:6889
+#, no-wrap
+msgid "G-expression"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:6890
+#, no-wrap
+msgid "build code quoting"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:6896
+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:6897
+#, no-wrap
+msgid "strata of code"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:6909
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:6916
+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:6925
+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:6930
+msgid "Gexps are meant to be written to a file and run or manipulated by other processes."
+msgstr ""
+
+#. type: itemize
+#: doc/guix.texi:6935
+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:6940
+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:6942 doc/guix.texi:7446
+#, no-wrap
+msgid "lowering, of high-level objects in gexps"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:6952
+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:6954
+msgid "To illustrate the idea, here is an example of a gexp:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:6962
+#, no-wrap
+msgid ""
+"(define build-exp\n"
+"  #~(begin\n"
+"      (mkdir #$output)\n"
+"      (chdir #$output)\n"
+"      (symlink (string-append #$coreutils \"/bin/ls\")\n"
+"               \"list-files\")))\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:6967
+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: example
+#: doc/guix.texi:6970
+#, no-wrap
+msgid "(gexp->derivation \"the-thing\" build-exp)\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:6978
+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:6979
+#, no-wrap
+msgid "cross compilation"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:6985
+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: example
+#: doc/guix.texi:6995
+#, no-wrap
+msgid ""
+"(gexp->derivation \"vi\"\n"
+"   #~(begin\n"
+"       (mkdir #$output)\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"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:7001
+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:7002
+#, no-wrap
+msgid "imported modules, for gexps"
+msgstr ""
+
+#. type: findex
+#: doc/guix.texi:7003
+#, no-wrap
+msgid "with-imported-modules"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:7008
+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: example
+#: doc/guix.texi:7019
+#, no-wrap
+msgid ""
+"(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"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:7025
+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:7026
+#, no-wrap
+msgid "module closure"
+msgstr ""
+
+#. type: findex
+#: doc/guix.texi:7027
+#, no-wrap
+msgid "source-module-closure"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:7034
+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: example
+#: doc/guix.texi:7037
+#, no-wrap
+msgid ""
+"(use-modules (guix modules))   ;for 'source-module-closure'\n"
+"\n"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:7046
+#, no-wrap
+msgid ""
+"(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"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:7048
+#, no-wrap
+msgid "extensions, for gexps"
+msgstr ""
+
+#. type: findex
+#: doc/guix.texi:7049
+#, no-wrap
+msgid "with-extensions"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:7054
+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: example
+#: doc/guix.texi:7057
+#, no-wrap
+msgid ""
+"(use-modules (gnu packages guile))  ;for 'guile-json'\n"
+"\n"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:7063
+#, no-wrap
+msgid ""
+"(with-extensions (list guile-json)\n"
+"  (gexp->derivation \"something-with-json\"\n"
+"                    #~(begin\n"
+"                        (use-modules (json))\n"
+"                        @dots{})))\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:7066
+msgid "The syntactic form to construct gexps is summarized below."
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:7067
+#, no-wrap
+msgid "{Scheme Syntax} #~@var{exp}"
+msgstr ""
+
+#. type: deffnx
+#: doc/guix.texi:7068
+#, no-wrap
+msgid "{Scheme Syntax} (gexp @var{exp})"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:7071
+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:7073
+#, no-wrap
+msgid "#$@var{obj}"
+msgstr ""
+
+#. type: itemx
+#: doc/guix.texi:7074
+#, no-wrap
+msgid "(ungexp @var{obj})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:7079
+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:7082
+msgid "If @var{obj} is a list, it is traversed and references to supported objects are substituted similarly."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:7085
+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:7087
+msgid "If @var{obj} is another kind of object, it is inserted as is."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:7088
+#, no-wrap
+msgid "#$@var{obj}:@var{output}"
+msgstr ""
+
+#. type: itemx
+#: doc/guix.texi:7089
+#, no-wrap
+msgid "(ungexp @var{obj} @var{output})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:7093
+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:7094
+#, no-wrap
+msgid "#+@var{obj}"
+msgstr ""
+
+#. type: itemx
+#: doc/guix.texi:7095
+#, no-wrap
+msgid "#+@var{obj}:output"
+msgstr ""
+
+#. type: itemx
+#: doc/guix.texi:7096
+#, no-wrap
+msgid "(ungexp-native @var{obj})"
+msgstr ""
+
+#. type: itemx
+#: doc/guix.texi:7097
+#, no-wrap
+msgid "(ungexp-native @var{obj} @var{output})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:7100
+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:7101
+#, no-wrap
+msgid "#$output[:@var{output}]"
+msgstr ""
+
+#. type: itemx
+#: doc/guix.texi:7102
+#, no-wrap
+msgid "(ungexp output [@var{output}])"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:7105
+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:7107
+msgid "This only makes sense for gexps passed to @code{gexp->derivation}."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:7108
+#, no-wrap
+msgid "#$@@@var{lst}"
+msgstr ""
+
+#. type: itemx
+#: doc/guix.texi:7109
+#, no-wrap
+msgid "(ungexp-splicing @var{lst})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:7112
+msgid "Like the above, but splices the contents of @var{lst} inside the containing list."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:7113
+#, no-wrap
+msgid "#+@@@var{lst}"
+msgstr ""
+
+#. type: itemx
+#: doc/guix.texi:7114
+#, no-wrap
+msgid "(ungexp-native-splicing @var{lst})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:7117
+msgid "Like the above, but refers to native builds of the objects listed in @var{lst}."
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:7122
+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:7124
+#, no-wrap
+msgid "{Scheme Syntax} with-imported-modules @var{modules} @var{body}@dots{}"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:7127
+msgid "Mark the gexps defined in @var{body}@dots{} as requiring @var{modules} in their execution environment."
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:7131
+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: example
+#: doc/guix.texi:7137
+#, no-wrap
+msgid ""
+"`((guix build utils)\n"
+"  (guix gcrypt)\n"
+"  ((guix config) => ,(scheme-file \"config.scm\"\n"
+"                                  #~(define-module @dots{}))))\n"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:7142
+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:7146
+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:7148
+#, no-wrap
+msgid "{Scheme Syntax} with-extensions @var{extensions} @var{body}@dots{}"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:7153
+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:7158
+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:7160
+#, no-wrap
+msgid "{Scheme Procedure} gexp? @var{obj}"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:7162
+msgid "Return @code{#t} if @var{obj} is a G-expression."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:7168
+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:7169
+#, no-wrap
+msgid "{Monadic Procedure} gexp->derivation @var{name} @var{exp} @"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:7187
+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 ""
+
+#. type: deffn
+#: doc/guix.texi:7195
+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:7198
+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:7201
+msgid "@var{graft?} determines whether packages referred to by @var{exp} should be grafted when applicable."
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:7204
+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:7211
+#, no-wrap
+msgid ""
+"(@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"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:7217
+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:7223
+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:7226
+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:7228
+msgid "The other arguments are as for @code{derivation} (@pxref{Derivations})."
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:7230
+#, no-wrap
+msgid "file-like objects"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:7235
+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: example
+#: doc/guix.texi:7239
+#, no-wrap
+msgid ""
+"#~(system* #$(file-append glibc \"/sbin/nscd\") \"-f\"\n"
+"           #$(local-file \"/tmp/my-nscd.conf\"))\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:7248
+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:7249
+#, no-wrap
+msgid "{Scheme Procedure} local-file @var{file} [@var{name}] @"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:7255
+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}."
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:7267
+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:7269
+#, no-wrap
+msgid "{Scheme Procedure} plain-file @var{name} @var{content}"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:7272
+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:7274
+msgid "This is the declarative counterpart of @code{text-file}."
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:7276
+#, no-wrap
+msgid "{Scheme Procedure} computed-file @var{name} @var{gexp} @"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:7281
+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 ""
+
+#. type: deffn
+#: doc/guix.texi:7283
+msgid "This is the declarative counterpart of @code{gexp->derivation}."
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:7285
+#, no-wrap
+msgid "{Monadic Procedure} gexp->script @var{name} @var{exp} @"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:7290
+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}."
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:7293
+msgid "The example below builds a script that simply invokes the @command{ls} command:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:7296
+#, no-wrap
+msgid ""
+"(use-modules (guix gexp) (gnu packages base))\n"
+"\n"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:7300
+#, no-wrap
+msgid ""
+"(gexp->script \"list-files\"\n"
+"              #~(execl #$(file-append coreutils \"/bin/ls\")\n"
+"                       \"ls\"))\n"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:7305
+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:7310
+#, no-wrap
+msgid ""
+"#!/gnu/store/@dots{}-guile-2.0.11/bin/guile -ds\n"
+"!#\n"
+"(execl \"/gnu/store/@dots{}-coreutils-8.22\"/bin/ls\" \"ls\")\n"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:7313
+#, no-wrap
+msgid "{Scheme Procedure} program-file @var{name} @var{exp} @"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:7318
+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:7320
+msgid "This is the declarative counterpart of @code{gexp->script}."
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:7322
+#, no-wrap
+msgid "{Monadic Procedure} gexp->file @var{name} @var{exp} @"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:7329
+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:7334
+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:7337
+msgid "The resulting file holds references to all the dependencies of @var{exp} or a subset thereof."
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:7339
+#, no-wrap
+msgid "{Scheme Procedure} scheme-file @var{name} @var{exp} [#:splice? #f]"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:7342
+msgid "Return an object representing the Scheme file @var{name} that contains @var{exp}."
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:7344
+msgid "This is the declarative counterpart of @code{gexp->file}."
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:7346
+#, no-wrap
+msgid "{Monadic Procedure} text-file* @var{name} @var{text} @dots{}"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:7352
+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:7357
+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: example
+#: doc/guix.texi:7365
+#, no-wrap
+msgid ""
+"(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"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:7370
+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:7372
+#, no-wrap
+msgid "{Scheme Procedure} mixed-text-file @var{name} @var{text} @dots{}"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:7376
+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: example
+#: doc/guix.texi:7380
+#, no-wrap
+msgid ""
+"(mixed-text-file \"profile\"\n"
+"                 \"export PATH=\" coreutils \"/bin:\" grep \"/bin\")\n"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:7383
+msgid "This is the declarative counterpart of @code{text-file*}."
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:7385
+#, no-wrap
+msgid "{Scheme Procedure} file-union @var{name} @var{files}"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:7390
+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: example
+#: doc/guix.texi:7397
+#, no-wrap
+msgid ""
+"(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"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:7400
+msgid "This yields an @code{etc} directory containing these two files."
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:7402
+#, no-wrap
+msgid "{Scheme Procedure} directory-union @var{name} @var{things}"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:7405
+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: example
+#: doc/guix.texi:7408
+#, no-wrap
+msgid "(directory-union \"guile+emacs\" (list guile emacs))\n"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:7411
+msgid "yields a directory that is the union of the @code{guile} and @code{emacs} packages."
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:7413
+#, no-wrap
+msgid "{Scheme Procedure} file-append @var{obj} @var{suffix} @dots{}"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:7417
+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:7419
+msgid "As an example, consider this gexp:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:7424
+#, no-wrap
+msgid ""
+"(gexp->script \"run-uname\"\n"
+"              #~(system* #$(file-append coreutils\n"
+"                                        \"/bin/uname\")))\n"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:7427
+msgid "The same effect could be achieved with:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:7432
+#, no-wrap
+msgid ""
+"(gexp->script \"run-uname\"\n"
+"              #~(system* (string-append #$coreutils\n"
+"                                        \"/bin/uname\")))\n"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:7438
+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: Plain text
+#: doc/guix.texi:7445
+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:7451
+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:7452
+#, no-wrap
+msgid "{Monadic Procedure} lower-object @var{obj} [@var{system}] @"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:7458
+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 ""
+
+#. type: section
+#: doc/guix.texi:7461
+#, no-wrap
+msgid "Invoking @command{guix repl}"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:7463
+#, no-wrap
+msgid "REPL, read-eval-print loop"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:7469
+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 ""
+
+#. type: example
+#: doc/guix.texi:7475
+#, no-wrap
+msgid ""
+"$ 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"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:7482
+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:7484
+msgid "The available options are as follows:"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:7486 doc/guix.texi:9444
+#, no-wrap
+msgid "--type=@var{type}"
+msgstr ""
+
+#. type: itemx
+#: doc/guix.texi:7487 doc/guix.texi:9445 doc/guix.texi:24358
+#, no-wrap
+msgid "-t @var{type}"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:7489
+msgid "Start a REPL of the given @var{TYPE}, which can be one of the following:"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:7491
+#, no-wrap
+msgid "guile"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:7493
+msgid "This is default, and it spawns a standard full-featured Guile REPL."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:7493
+#, no-wrap
+msgid "machine"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:7496
+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:7502
+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:7504
+#, no-wrap
+msgid "--listen=tcp:37146"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:7506
+msgid "Accept connections on localhost on port 37146."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:7507
+#, no-wrap
+msgid "--listen=unix:/tmp/socket"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:7509
+msgid "Accept connections on the Unix-domain socket @file{/tmp/socket}."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:7520
+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 ""
+
+#. type: cindex
+#: doc/guix.texi:7542
+#, no-wrap
+msgid "package building"
+msgstr ""
+
+#. type: command{#1}
+#: doc/guix.texi:7543
+#, no-wrap
+msgid "guix build"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:7549
+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 ""
+
+#. type: example
+#: doc/guix.texi:7554
+#, no-wrap
+msgid "guix build @var{options} @var{package-or-derivation}@dots{}\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:7559
+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 ""
+
+#. type: example
+#: doc/guix.texi:7562
+#, no-wrap
+msgid "guix build emacs guile\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:7565
+msgid "Similarly, the following command builds all the available packages:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:7569
+#, no-wrap
+msgid ""
+"guix build --quiet --keep-going \\\n"
+"  `guix package -A | cut -f1,2 --output-delimiter=@@`\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:7577
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:7582
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:7585
+msgid "There may be zero or more @var{options}.  The available options are described in the subsections below."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:7600
+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 ""
+
+#. type: item
+#: doc/guix.texi:7603
+#, no-wrap
+msgid "--load-path=@var{directory}"
+msgstr ""
+
+#. type: itemx
+#: doc/guix.texi:7604
+#, no-wrap
+msgid "-L @var{directory}"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:7607
+msgid "Add @var{directory} to the front of the package module search path (@pxref{Package Modules})."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:7610
+msgid "This allows users to define their own packages and make them visible to the command-line tools."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:7611
+#, no-wrap
+msgid "--keep-failed"
+msgstr ""
+
+#. type: itemx
+#: doc/guix.texi:7612
+#, no-wrap
+msgid "-K"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:7618
+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 ""
+
+#. type: table
+#: doc/guix.texi:7622
+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 ""
+
+#. type: item
+#: doc/guix.texi:7623
+#, no-wrap
+msgid "--keep-going"
+msgstr ""
+
+#. type: itemx
+#: doc/guix.texi:7624
+#, no-wrap
+msgid "-k"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:7627
+msgid "Keep going when some of the derivations fail to build; return only once all the builds have either completed or failed."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:7630
+msgid "The default behavior is to stop as soon as one of the specified derivations has failed."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:7634
+msgid "Do not build the derivations."
+msgstr ""
+
+#. type: anchor{#1}
+#: doc/guix.texi:7636
+msgid "fallback-option"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:7636
+#, no-wrap
+msgid "--fallback"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:7639
+msgid "When substituting a pre-built binary fails, fall back to building packages locally (@pxref{Substitution Failure})."
+msgstr ""
+
+#. type: anchor{#1}
+#: doc/guix.texi:7645
+msgid "client-substitute-urls"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:7645
+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 ""
+
+#. type: table
+#: doc/guix.texi:7649
+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 ""
+
+#. type: table
+#: doc/guix.texi:7652
+msgid "When @var{urls} is the empty string, substitutes are effectively disabled."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:7658
+#, no-wrap
+msgid "--no-grafts"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:7662
+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 ""
+
+#. type: item
+#: doc/guix.texi:7663
+#, no-wrap
+msgid "--rounds=@var{n}"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:7666
+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 ""
+
+#. type: table
+#: doc/guix.texi:7671
+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 ""
+
+#. type: table
+#: doc/guix.texi:7677
+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:7682
+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 ""
+
+#. type: table
+#: doc/guix.texi:7689
+msgid "By default, the daemon's setting is honored (@pxref{Invoking guix-daemon, @code{--max-silent-time}})."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:7696
+msgid "By default, the daemon's setting is honored (@pxref{Invoking guix-daemon, @code{--timeout}})."
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:7699
+#, no-wrap
+msgid "verbosity, of the command-line tools"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:7700
+#, no-wrap
+msgid "build logs, verbosity"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:7701
+#, no-wrap
+msgid "-v @var{level}"
+msgstr ""
+
+#. type: itemx
+#: doc/guix.texi:7702
+#, no-wrap
+msgid "--verbosity=@var{level}"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:7706
+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 ""
+
+#. type: table
+#: doc/guix.texi:7711
+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 ""
+
+#. type: table
+#: doc/guix.texi:7717
+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 ""
+
+#. type: item
+#: doc/guix.texi:7718
+#, no-wrap
+msgid "--debug=@var{level}"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:7722
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:7729
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:7733
+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 ""
+
+#. type: defvr
+#: doc/guix.texi:7734
+#, no-wrap
+msgid "{Environment Variable} GUIX_BUILD_OPTIONS"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:7739
+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 ""
+
+#. type: example
+#: doc/guix.texi:7742
+#, no-wrap
+msgid "$ export GUIX_BUILD_OPTIONS=\"--no-substitutes -c 2 -L /foo/bar\"\n"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:7746
+msgid "These options are parsed independently, and the result is appended to the parsed command-line options."
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:7752
+#, no-wrap
+msgid "package variants"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:7760
+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 ""
+
+#. type: item
+#: doc/guix.texi:7763
+#, no-wrap
+msgid "--with-source=@var{source}"
+msgstr ""
+
+#. type: itemx
+#: doc/guix.texi:7764
+#, no-wrap
+msgid "--with-source=@var{package}=@var{source}"
+msgstr ""
+
+#. type: itemx
+#: doc/guix.texi:7765
+#, no-wrap
+msgid "--with-source=@var{package}@@@var{version}=@var{source}"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:7770
+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 ""
+
+#. type: table
+#: doc/guix.texi:7776
+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:7779
+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:7784
+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:7787
+#, no-wrap
+msgid "guix build ed --with-source=mirror://gnu/ed/ed-1.7.tar.gz\n"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:7791
+msgid "As a developer, @code{--with-source} makes it easy to test release candidates:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:7794
+#, no-wrap
+msgid "guix build guile --with-source=../guile-2.0.9.219-e1bb7.tar.xz\n"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:7797
+msgid "@dots{} or to build from a checkout in a pristine environment:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:7801
+#, no-wrap
+msgid ""
+"$ git clone git://git.sv.gnu.org/guix.git\n"
+"$ guix build guix --with-source=guix@@1.0=./guix\n"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:7803
+#, no-wrap
+msgid "--with-input=@var{package}=@var{replacement}"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:7808
+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:7812
+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:7815
+#, no-wrap
+msgid "guix build --with-input=guile=guile@@2.0 guix\n"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:7820
+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:7823
+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:7824
+#, no-wrap
+msgid "--with-graft=@var{package}=@var{replacement}"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:7830
+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 ""
+
+#. type: table
+#: doc/guix.texi:7834
+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:7837
+#, no-wrap
+msgid "guix build --with-graft=gnutls=gnutls@@3.5.4 wget\n"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:7846
+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: item
+#: doc/guix.texi:7847
+#, no-wrap
+msgid "--with-git-url=@var{package}=@var{url}"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:7848
+#, no-wrap
+msgid "Git, using the latest commit"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:7849
+#, no-wrap
+msgid "latest commit, building"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:7853
+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:7856
+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:7860
+#, no-wrap
+msgid ""
+"guix build python-numpy \\\n"
+"  --with-git-url=python=https://github.com/python/cpython\n"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:7864
+msgid "This option can also be combined with @code{--with-branch} or @code{--with-commit} (see below)."
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:7865 doc/guix.texi:20418
+#, no-wrap
+msgid "continuous integration"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:7871
+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:7875
+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:7876
+#, no-wrap
+msgid "--with-branch=@var{package}=@var{branch}"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:7882
+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 ""
+
+#. type: table
+#: doc/guix.texi:7887
+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:7890
+#, no-wrap
+msgid "guix build --with-branch=guile-sqlite3=master cuirass\n"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:7892
+#, no-wrap
+msgid "--with-commit=@var{package}=@var{commit}"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:7896
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:7903
+msgid "The command-line options presented below are specific to @command{guix build}."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:7906
+#, no-wrap
+msgid "--quiet"
+msgstr ""
+
+#. type: itemx
+#: doc/guix.texi:7907
+#, no-wrap
+msgid "-q"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:7911
+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 ""
+
+#. type: item
+#: doc/guix.texi:7912
+#, no-wrap
+msgid "--file=@var{file}"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:7916
+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:7919
+msgid "As an example, @var{file} might contain a package definition like this (@pxref{Defining Packages}):"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:7927
+msgid "Build the package or derivation @var{expr} evaluates to."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:7931
+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:7935
+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:7939
+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:7940
+#, no-wrap
+msgid "--source"
+msgstr ""
+
+#. type: itemx
+#: doc/guix.texi:7941
+#, no-wrap
+msgid "-S"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:7944
+msgid "Build the source derivations of the packages, rather than the packages themselves."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:7948
+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:7952
+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: item
+#: doc/guix.texi:7953
+#, no-wrap
+msgid "--sources"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:7960
+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 ""
+
+#. type: item
+#: doc/guix.texi:7962 doc/guix.texi:9322
+#, no-wrap
+msgid "package"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:7965
+msgid "This value causes the @code{--sources} option to behave in the same way as the @code{--source} option."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:7966 doc/guix.texi:13751
+#, no-wrap
+msgid "all"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:7969
+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:7975
+#, no-wrap
+msgid ""
+"$ guix build --sources tzdata\n"
+"The following derivations will be built:\n"
+"   /gnu/store/@dots{}-tzdata2015b.tar.gz.drv\n"
+"   /gnu/store/@dots{}-tzcode2015b.tar.gz.drv\n"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:7977
+#, no-wrap
+msgid "transitive"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:7981
+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:7992
+#, no-wrap
+msgid ""
+"$ guix build --sources=transitive tzdata\n"
+"The following derivations will be built:\n"
+"   /gnu/store/@dots{}-tzcode2015b.tar.gz.drv\n"
+"   /gnu/store/@dots{}-findutils-4.4.2.tar.xz.drv\n"
+"   /gnu/store/@dots{}-grep-2.21.tar.xz.drv\n"
+"   /gnu/store/@dots{}-coreutils-8.23.tar.xz.drv\n"
+"   /gnu/store/@dots{}-make-4.1.tar.xz.drv\n"
+"   /gnu/store/@dots{}-bash-4.3.tar.xz.drv\n"
+"@dots{}\n"
+msgstr ""
+
+#. type: quotation
+#: doc/guix.texi:8005
+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 ""
+
+#. type: table
+#: doc/guix.texi:8012
+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 ""
+
+#. type: quotation
+#: doc/guix.texi:8017
+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:8023
+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:8027
+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: anchor{#1}
+#: doc/guix.texi:8035
+msgid "build-check"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:8035
+#, no-wrap
+msgid "--check"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:8036
+#, no-wrap
+msgid "determinism, checking"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:8037
+#, no-wrap
+msgid "reproducibility, checking"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:8041
+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:8046
+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:8051
+#, no-wrap
+msgid "--repair"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:8052
+#, no-wrap
+msgid "repairing store items"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:8056
+msgid "Attempt to repair the specified store items, if they are corrupt, by re-downloading or rebuilding them."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:8058
+msgid "This operation is not atomic and thus restricted to @code{root}."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:8059
+#, no-wrap
+msgid "--derivations"
+msgstr ""
+
+#. type: itemx
+#: doc/guix.texi:8060 doc/guix.texi:24353
+#, no-wrap
+msgid "-d"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:8063
+msgid "Return the derivation paths, not the output paths, of the given packages."
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:8066
+#, no-wrap
+msgid "GC roots, adding"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:8067
+#, no-wrap
+msgid "garbage collector roots, adding"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:8070 doc/guix.texi:24384
+msgid "Make @var{file} a symlink to the result, and register it as a garbage collector root."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:8076
+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:8077
+#, no-wrap
+msgid "--log-file"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:8078
+#, no-wrap
+msgid "build logs, access"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:8082
+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:8085
+msgid "This works regardless of how packages or derivations are specified.  For instance, the following invocations are equivalent:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:8091
+#, no-wrap
+msgid ""
+"guix build --log-file `guix build -d guile`\n"
+"guix build --log-file `guix build guile`\n"
+"guix build --log-file guile\n"
+"guix build --log-file -e '(@@ (gnu packages guile) guile-2.0)'\n"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:8096
+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 ""
+
+#. type: table
+#: doc/guix.texi:8099
+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:8103
+#, no-wrap
+msgid ""
+"$ guix build --log-file gdb -s mips64el-linux\n"
+"https://@value{SUBSTITUTE-SERVER}/log/@dots{}-gdb-7.10\n"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:8106
+msgid "You can freely access a huge library of build logs!"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:8111
+#, no-wrap
+msgid "build failures, debugging"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:8117
+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:8122
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:8128
+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:8135
+#, no-wrap
+msgid ""
+"$ guix build foo -K\n"
+"@dots{} @i{build fails}\n"
+"$ cd /tmp/guix-build-foo.drv-0\n"
+"$ source ./environment-variables\n"
+"$ cd foo-1.2\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:8139
+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:8145
+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:8148
+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:8156
+#, no-wrap
+msgid ""
+"$ guix build -K foo\n"
+"@dots{}\n"
+"$ cd /tmp/guix-build-foo.drv-0\n"
+"$ guix environment --no-grafts -C foo --ad-hoc strace gdb\n"
+"[env]# source ./environment-variables\n"
+"[env]# cd foo-1.2\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:8165
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:8168
+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:8171
+#, no-wrap
+msgid "[env]# rm /bin/sh\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:8175
+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:8178
+msgid "The @command{strace} command is probably not in the search path, but we can run:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:8181
+#, no-wrap
+msgid "[env]# $GUIX_ENVIRONMENT/bin/strace -f -o log make check\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:8186
+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:8189
+#, no-wrap
+msgid "Invoking @command{guix edit}"
+msgstr ""
+
+#. type: command{#1}
+#: doc/guix.texi:8191
+#, no-wrap
+msgid "guix edit"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:8192
+#, no-wrap
+msgid "package definition, editing"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:8197
+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:8200
+#, no-wrap
+msgid "guix edit gcc@@4.9 vim\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:8206
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:8212
+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 ""
+
+#. type: section
+#: doc/guix.texi:8215
+#, no-wrap
+msgid "Invoking @command{guix download}"
+msgstr ""
+
+#. type: command{#1}
+#: doc/guix.texi:8217
+#, no-wrap
+msgid "guix download"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:8218
+#, no-wrap
+msgid "downloading package sources"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:8225
+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:8232
+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:8240
+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:8245
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:8247 doc/guix.texi:9564
+msgid "The following options are available:"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:8249 doc/guix.texi:8288
+#, no-wrap
+msgid "--format=@var{fmt}"
+msgstr ""
+
+#. type: itemx
+#: doc/guix.texi:8250 doc/guix.texi:8289
+#, no-wrap
+msgid "-f @var{fmt}"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:8253
+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:8254
+#, no-wrap
+msgid "--no-check-certificate"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:8256
+msgid "Do not validate the X.509 certificates of HTTPS servers."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:8260
+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:8261
+#, no-wrap
+msgid "--output=@var{file}"
+msgstr ""
+
+#. type: itemx
+#: doc/guix.texi:8262
+#, no-wrap
+msgid "-o @var{file}"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:8265
+msgid "Save the downloaded file to @var{file} instead of adding it to the store."
+msgstr ""
+
+#. type: section
+#: doc/guix.texi:8268
+#, no-wrap
+msgid "Invoking @command{guix hash}"
+msgstr ""
+
+#. type: command{#1}
+#: doc/guix.texi:8270
+#, no-wrap
+msgid "guix hash"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:8275
+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 ""
+
+#. type: example
+#: doc/guix.texi:8280
+#, no-wrap
+msgid "guix hash @var{option} @var{file}\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:8285
+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:8291
+msgid "Write the hash in the format specified by @var{fmt}."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:8294
+msgid "Supported formats: @code{nix-base32}, @code{base32}, @code{base16} (@code{hex} and @code{hexadecimal} can be used as well)."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:8298
+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:8302
+msgid "Compute the hash on @var{file} recursively."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:8311
+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:8312
+#, no-wrap
+msgid "--exclude-vcs"
+msgstr ""
+
+#. type: itemx
+#: doc/guix.texi:8313
+#, no-wrap
+msgid "-x"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:8316
+msgid "When combined with @option{--recursive}, exclude version control system directories (@file{.bzr}, @file{.git}, @file{.hg}, etc.)"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:8321
+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:8326
+#, no-wrap
+msgid ""
+"$ git clone http://example.org/foo.git\n"
+"$ cd foo\n"
+"$ guix hash -rx .\n"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:8330 doc/guix.texi:8335
+#, no-wrap
+msgid "Invoking @command{guix import}"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:8332
+#, no-wrap
+msgid "importing packages"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:8333
+#, no-wrap
+msgid "package import"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:8334
+#, no-wrap
+msgid "package conversion"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:8342
+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:8347
+#, no-wrap
+msgid "guix import @var{importer} @var{options}@dots{}\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:8353
+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 ""
+
+#. type: item
+#: doc/guix.texi:8355 doc/guix.texi:8855
+#, no-wrap
+msgid "gnu"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:8359
+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:8362
+msgid "Additional information such as the package dependencies and its license needs to be figured out manually."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:8365
+msgid "For example, the following command returns a package definition for GNU@tie{}Hello:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:8368
+#, no-wrap
+msgid "guix import gnu hello\n"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:8371 doc/guix.texi:8598 doc/guix.texi:8648 doc/guix.texi:8677
+msgid "Specific command-line options are:"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:8373 doc/guix.texi:9004
+#, no-wrap
+msgid "--key-download=@var{policy}"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:8377
+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 ""
+
+#. type: item
+#: doc/guix.texi:8379 doc/guix.texi:8380 doc/guix.texi:8873
+#, no-wrap
+msgid "pypi"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:8387
+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:8390
+msgid "The command below imports metadata for the @code{itsdangerous} Python package:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:8393
+#, no-wrap
+msgid "guix import pypi itsdangerous\n"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:8401 doc/guix.texi:8426 doc/guix.texi:8621 doc/guix.texi:8662
+#: doc/guix.texi:8709
+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:8403 doc/guix.texi:8404 doc/guix.texi:8875
+#, no-wrap
+msgid "gem"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:8413
+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:8415
+msgid "The command below imports metadata for the @code{rails} Ruby package:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:8418
+#, no-wrap
+msgid "guix import gem rails\n"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:8428 doc/guix.texi:8871
+#, no-wrap
+msgid "cpan"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:8429
+#, no-wrap
+msgid "CPAN"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:8437
+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:8440
+msgid "The command command below imports metadata for the @code{Acme::Boolean} Perl module:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:8443
+#, no-wrap
+msgid "guix import cpan Acme::Boolean\n"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:8445 doc/guix.texi:8867
+#, no-wrap
+msgid "cran"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:8446
+#, no-wrap
+msgid "CRAN"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:8447
+#, no-wrap
+msgid "Bioconductor"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:8451
+msgid "Import metadata from @uref{https://cran.r-project.org/, CRAN}, the central repository for the @uref{http://r-project.org, GNU@tie{}R statistical and graphical environment}."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:8453
+msgid "Information is extracted from the @code{DESCRIPTION} file of the package."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:8456
+msgid "The command command below imports metadata for the @code{Cairo} R package:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:8459
+#, no-wrap
+msgid "guix import cran Cairo\n"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:8464
+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 ""
+
+#. type: table
+#: doc/guix.texi:8469
+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 ""
+
+#. type: table
+#: doc/guix.texi:8472
+msgid "Information is extracted from the @code{DESCRIPTION} file of a package published on the web interface of the Bioconductor SVN repository."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:8475
+msgid "The command below imports metadata for the @code{GenomicRanges} R package:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:8478
+#, no-wrap
+msgid "guix import cran --archive=bioconductor GenomicRanges\n"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:8480
+#, no-wrap
+msgid "texlive"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:8481
+#, no-wrap
+msgid "TeX Live"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:8482
+#, no-wrap
+msgid "CTAN"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:8486
+msgid "Import metadata from @uref{http://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:8491
+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:8494
+msgid "The command command below imports metadata for the @code{fontspec} TeX package:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:8497
+#, no-wrap
+msgid "guix import texlive fontspec\n"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:8503
+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 ""
+
+#. type: table
+#: doc/guix.texi:8507
+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:8510
+#, no-wrap
+msgid "guix import texlive --archive=generic ifxetex\n"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:8513
+#, no-wrap
+msgid "JSON, import"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:8516
+msgid "Import package metadata from a local JSON file.  Consider the following example package definition in JSON format:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:8529
+#, no-wrap
+msgid ""
+"@{\n"
+"  \"name\": \"hello\",\n"
+"  \"version\": \"2.10\",\n"
+"  \"source\": \"mirror://gnu/hello/hello-2.10.tar.gz\",\n"
+"  \"build-system\": \"gnu\",\n"
+"  \"home-page\": \"https://www.gnu.org/software/hello/\",\n"
+"  \"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"
+"@}\n"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:8535
+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:8538
+msgid "The importer also supports a more explicit source definition using the common fields for @code{<origin>} records:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:8551
+#, no-wrap
+msgid ""
+"@{\n"
+"  @dots{}\n"
+"  \"source\": @{\n"
+"    \"method\": \"url-fetch\",\n"
+"    \"uri\": \"mirror://gnu/hello/hello-2.10.tar.gz\",\n"
+"    \"sha256\": @{\n"
+"      \"base32\": \"0ssi1wpaf7plaswqqjwigppsg5fyh99vdlb9kzl7c9lng89ndq1i\"\n"
+"    @}\n"
+"  @}\n"
+"  @dots{}\n"
+"@}\n"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:8555
+msgid "The command below reads metadata from the JSON file @code{hello.json} and outputs a package expression:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:8558
+#, no-wrap
+msgid "guix import json hello.json\n"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:8560
+#, no-wrap
+msgid "nix"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:8569
+msgid "Import metadata from a local copy of the source of the @uref{http://nixos.org/nixpkgs/, Nixpkgs distribution}@footnote{This relies on the @command{nix-instantiate} command of @uref{http://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:8572
+msgid "When importing a GNU package, the synopsis and descriptions are replaced by their canonical upstream variant."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:8574
+msgid "Usually, you will first need to do:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:8577
+#, no-wrap
+msgid "export NIX_REMOTE=daemon\n"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:8581
+msgid "so that @command{nix-instantiate} does not try to open the Nix database."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:8585
+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:8588
+#, no-wrap
+msgid "guix import nix ~/path/to/nixpkgs libreoffice\n"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:8590 doc/guix.texi:8591 doc/guix.texi:8879
+#, no-wrap
+msgid "hackage"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:8596
+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:8600
+#, no-wrap
+msgid "--stdin"
+msgstr ""
+
+#. type: itemx
+#: doc/guix.texi:8601
+#, no-wrap
+msgid "-s"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:8603
+msgid "Read a Cabal file from standard input."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:8603 doc/guix.texi:8650
+#, no-wrap
+msgid "--no-test-dependencies"
+msgstr ""
+
+#. type: itemx
+#: doc/guix.texi:8604 doc/guix.texi:8651
+#, no-wrap
+msgid "-t"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:8606 doc/guix.texi:8653
+msgid "Do not include dependencies required only by the test suites."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:8606
+#, no-wrap
+msgid "--cabal-environment=@var{alist}"
+msgstr ""
+
+#. type: itemx
+#: doc/guix.texi:8607
+#, no-wrap
+msgid "-e @var{alist}"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:8616
+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:8626
+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 ""
+
+#. type: example
+#: doc/guix.texi:8629
+#, no-wrap
+msgid "guix import hackage -t -e \"'((\\\"network-uri\\\" . false))\" HTTP\n"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:8633
+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:8636
+#, no-wrap
+msgid "guix import hackage mtl@@2.1.3.1\n"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:8638 doc/guix.texi:8639 doc/guix.texi:8881
+#, no-wrap
+msgid "stackage"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:8646
+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:8653
+#, no-wrap
+msgid "--lts-version=@var{version}"
+msgstr ""
+
+#. type: itemx
+#: doc/guix.texi:8654
+#, no-wrap
+msgid "-l @var{version}"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:8657
+msgid "@var{version} is the desired LTS release version.  If omitted the latest release is used."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:8666
+msgid "The command below imports metadata for the @code{HTTP} Haskell package included in the LTS Stackage release version 7.18:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:8669
+#, no-wrap
+msgid "guix import stackage --lts-version=7.18 HTTP\n"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:8671 doc/guix.texi:8672 doc/guix.texi:8865
+#, no-wrap
+msgid "elpa"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:8675
+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:8679
+#, no-wrap
+msgid "--archive=@var{repo}"
+msgstr ""
+
+#. type: itemx
+#: doc/guix.texi:8680
+#, no-wrap
+msgid "-a @var{repo}"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:8684
+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:8688
+msgid "@uref{http://elpa.gnu.org/packages, GNU}, selected by the @code{gnu} identifier.  This is the default."
+msgstr ""
+
+#. type: itemize
+#: doc/guix.texi:8694
+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:8698
+msgid "@uref{http://stable.melpa.org/packages, MELPA-Stable}, selected by the @code{melpa-stable} identifier."
+msgstr ""
+
+#. type: itemize
+#: doc/guix.texi:8702
+msgid "@uref{http://melpa.org/packages, MELPA}, selected by the @code{melpa} identifier."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:8711 doc/guix.texi:8712 doc/guix.texi:8883
+#, no-wrap
+msgid "crate"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:8715
+msgid "Import metadata from the crates.io Rust package repository @uref{https://crates.io, crates.io}."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:8716
+#, no-wrap
+msgid "opam"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:8717
+#, no-wrap
+msgid "OPAM"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:8718
+#, no-wrap
+msgid "OCaml"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:8721
+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:8726
+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:8728
+#, no-wrap
+msgid "Invoking @command{guix refresh}"
+msgstr ""
+
+#. type: command{#1}
+#: doc/guix.texi:8730
+#, no-wrap
+msgid "guix refresh"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:8735
+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:8740
+#, 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 ""
+
+#. type: Plain text
+#: doc/guix.texi:8744
+msgid "Alternately, 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:8749
+#, 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 ""
+
+#. type: Plain text
+#: doc/guix.texi:8758
+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:8763
+msgid "Consider the packages specified, and all the packages upon which they depend."
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:8771
+#, no-wrap
+msgid ""
+"$ 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"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:8779
+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: example
+#: doc/guix.texi:8786
+#, no-wrap
+msgid ""
+"(define-public network-manager\n"
+"  (package\n"
+"    (name \"network-manager\")\n"
+"    ;; @dots{}\n"
+"    (properties '((upstream-name . \"NetworkManager\")))))\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:8798
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:8800
+msgid "The following options are supported:"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:8808 doc/guix.texi:9466
+msgid "This is useful to precisely refer to a package, as in this example:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:8811
+#, no-wrap
+msgid "guix refresh -l -e '(@@@@ (gnu packages commencement) glibc-final)'\n"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:8815
+msgid "This command lists the dependents of the ``final'' libc (essentially all the packages.)"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:8816
+#, no-wrap
+msgid "--update"
+msgstr ""
+
+#. type: itemx
+#: doc/guix.texi:8817
+#, no-wrap
+msgid "-u"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:8821
+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:8824
+#, no-wrap
+msgid "$ ./pre-inst-env guix refresh -s non-core -u\n"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:8827
+msgid "@xref{Defining Packages}, for more information on package definitions."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:8828
+#, no-wrap
+msgid "--select=[@var{subset}]"
+msgstr ""
+
+#. type: itemx
+#: doc/guix.texi:8829
+#, no-wrap
+msgid "-s @var{subset}"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:8832
+msgid "Select all the packages in @var{subset}, one of @code{core} or @code{non-core}."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:8839
+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:8843
+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:8848
+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:8849
+#, no-wrap
+msgid "--type=@var{updater}"
+msgstr ""
+
+#. type: itemx
+#: doc/guix.texi:8850
+#, no-wrap
+msgid "-t @var{updater}"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:8853
+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:8857
+msgid "the updater for GNU packages;"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:8857
+#, no-wrap
+msgid "gnome"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:8859
+msgid "the updater for GNOME packages;"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:8859
+#, no-wrap
+msgid "kde"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:8861
+msgid "the updater for KDE packages;"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:8861
+#, no-wrap
+msgid "xorg"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:8863
+msgid "the updater for X.org packages;"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:8863
+#, no-wrap
+msgid "kernel.org"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:8865
+msgid "the updater for packages hosted on kernel.org;"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:8867
+msgid "the updater for @uref{http://elpa.gnu.org/, ELPA} packages;"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:8869
+msgid "the updater for @uref{https://cran.r-project.org/, CRAN} packages;"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:8869
+#, no-wrap
+msgid "bioconductor"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:8871
+msgid "the updater for @uref{https://www.bioconductor.org/, Bioconductor} R packages;"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:8873
+msgid "the updater for @uref{http://www.cpan.org/, CPAN} packages;"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:8875
+msgid "the updater for @uref{https://pypi.python.org, PyPI} packages."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:8877
+msgid "the updater for @uref{https://rubygems.org, RubyGems} packages."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:8877
+#, no-wrap
+msgid "github"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:8879
+msgid "the updater for @uref{https://github.com, GitHub} packages."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:8881
+msgid "the updater for @uref{https://hackage.haskell.org, Hackage} packages."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:8883
+msgid "the updater for @uref{https://www.stackage.org, Stackage} packages."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:8885
+msgid "the updater for @uref{https://crates.io, Crates} packages."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:8885
+#, no-wrap
+msgid "launchpad"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:8887
+msgid "the updater for @uref{https://launchpad.net, Launchpad} packages."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:8891
+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:8896
+#, no-wrap
+msgid ""
+"$ guix refresh --type=elpa,cran\n"
+"gnu/packages/statistics.scm:819:13: r-testthat would be upgraded from 0.10.0 to 0.11.0\n"
+"gnu/packages/emacs.scm:856:13: emacs-auctex would be upgraded from 11.88.6 to 11.88.9\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:8902
+msgid "In addition, @command{guix refresh} can be passed one or more package names, as in this example:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:8905
+#, no-wrap
+msgid "$ ./pre-inst-env guix refresh -u emacs idutils gcc@@4.8\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:8911
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:8916
+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:8919
+#, no-wrap
+msgid "--list-updaters"
+msgstr ""
+
+#. type: itemx
+#: doc/guix.texi:8920
+#, no-wrap
+msgid "-L"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:8922
+msgid "List available updaters and exit (see @option{--type} above.)"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:8925
+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:8926
+#, no-wrap
+msgid "--list-dependent"
+msgstr ""
+
+#. type: itemx
+#: doc/guix.texi:8927 doc/guix.texi:9143
+#, no-wrap
+msgid "-l"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:8930
+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:8934
+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:8940
+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 ""
+
+#. type: example
+#: doc/guix.texi:8945
+#, no-wrap
+msgid ""
+"$ guix refresh --list-dependent flex\n"
+"Building the following 120 packages would ensure 213 dependent packages are rebuilt:\n"
+"hop@@2.4.0 geiser@@0.4 notmuch@@0.18 mu@@0.9.9.5 cflow@@1.4 idutils@@4.6 @dots{}\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:8949
+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:8952
+#, no-wrap
+msgid "--list-transitive"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:8954
+msgid "List all the packages which one or more packages depend upon."
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:8959
+#, no-wrap
+msgid ""
+"$ guix refresh --list-transitive flex\n"
+"flex@@2.6.4 depends on the following 25 packages: perl@@5.28.0 help2man@@1.47.6\n"
+"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"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:8965
+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:8967
+msgid "The following options can be used to customize GnuPG operation:"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:8970
+#, no-wrap
+msgid "--gpg=@var{command}"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:8973
+msgid "Use @var{command} as the GnuPG 2.x command.  @var{command} is searched for in @code{$PATH}."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:8974
+#, no-wrap
+msgid "--keyring=@var{file}"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:8980
+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:8986
+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:8989
+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:8992
+#, no-wrap
+msgid "gpg --export rms@@gnu.org | kbxutil --import-openpgp >> mykeyring.kbx\n"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:8995
+msgid "Likewise, you can fetch keys to a specific keybox file like this:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:8999
+#, no-wrap
+msgid ""
+"gpg --no-default-keyring --keyring mykeyring.kbx \\\n"
+"  --recv-keys @value{OPENPGP-SIGNING-KEY-ID}\n"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:9003
+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:9007
+msgid "Handle missing OpenPGP keys according to @var{policy}, which may be one of:"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:9009 doc/guix.texi:15912
+#, no-wrap
+msgid "always"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:9012
+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:9013 doc/guix.texi:15914
+#, no-wrap
+msgid "never"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:9015
+msgid "Never try to download missing OpenPGP keys.  Instead just bail out."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:9016
+#, no-wrap
+msgid "interactive"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:9019
+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:9021
+#, no-wrap
+msgid "--key-server=@var{host}"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:9023
+msgid "Use @var{host} as the OpenPGP key server when importing a public key."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:9036
+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 ""
+
+#. type: section
+#: doc/guix.texi:9039
+#, no-wrap
+msgid "Invoking @command{guix lint}"
+msgstr ""
+
+#. type: command{#1}
+#: doc/guix.texi:9041
+#, no-wrap
+msgid "guix lint"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:9042
+#, no-wrap
+msgid "package, checking for errors"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:9048
+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 ""
+
+#. type: table
+#: doc/guix.texi:9054
+msgid "Validate certain typographical and stylistic rules about package descriptions and synopses."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:9055
+#, no-wrap
+msgid "inputs-should-be-native"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:9057
+msgid "Identify inputs that should most likely be native inputs."
+msgstr ""
+
+#. type: itemx
+#: doc/guix.texi:9060
+#, no-wrap
+msgid "mirror-url"
+msgstr ""
+
+#. type: itemx
+#: doc/guix.texi:9061
+#, no-wrap
+msgid "github-url"
+msgstr ""
+
+#. type: itemx
+#: doc/guix.texi:9062
+#, no-wrap
+msgid "source-file-name"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:9069
+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:9070
+#, no-wrap
+msgid "source-unstable-tarball"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:9074
+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: item
+#: doc/guix.texi:9075
+#, no-wrap
+msgid "cve"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:9076 doc/guix.texi:25293
+#, no-wrap
+msgid "security vulnerabilities"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:9077
+#, no-wrap
+msgid "CVE, Common Vulnerabilities and Exposures"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:9082
+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 ""
+
+#. type: table
+#: doc/guix.texi:9084
+msgid "To view information about a particular vulnerability, visit pages such as:"
+msgstr ""
+
+#. type: indicateurl{#1}
+#: doc/guix.texi:9088
+msgid "https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-YYYY-ABCD"
+msgstr ""
+
+#. type: indicateurl{#1}
+#: doc/guix.texi:9090
+msgid "https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-YYYY-ABCD"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:9095
+msgid "where @code{CVE-YYYY-ABCD} is the CVE identifier---e.g., @code{CVE-2015-7554}."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:9100
+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 ""
+
+#. type: example
+#: doc/guix.texi:9108
+#, no-wrap
+msgid ""
+"(package\n"
+"  (name \"grub\")\n"
+"  ;; @dots{}\n"
+"  ;; CPE calls this package \"grub2\".\n"
+"  (properties '((cpe-name . \"grub2\")\n"
+"                (cpe-version . \"2.3\")))\n"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:9115
+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: example
+#: doc/guix.texi:9125
+#, no-wrap
+msgid ""
+"(package\n"
+"  (name \"t1lib\")\n"
+"  ;; @dots{}\n"
+"  ;; These CVEs no longer apply and can be safely ignored.\n"
+"  (properties `((lint-hidden-cve . (\"CVE-2011-0433\"\n"
+"                                    \"CVE-2011-1553\"\n"
+"                                    \"CVE-2011-1554\"\n"
+"                                    \"CVE-2011-5244\")))))\n"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:9127
+#, no-wrap
+msgid "formatting"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:9130
+msgid "Warn about obvious source code formatting issues: trailing white space, use of tabulations, etc."
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:9136
+#, no-wrap
+msgid "guix lint @var{options} @var{package}@dots{}\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:9140
+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:9142
+#, no-wrap
+msgid "--list-checkers"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:9146
+msgid "List and describe all the available checkers that will be run on packages and exit."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:9147
+#, no-wrap
+msgid "--checkers"
+msgstr ""
+
+#. type: itemx
+#: doc/guix.texi:9148
+#, no-wrap
+msgid "-c"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:9151
+msgid "Only enable the checkers specified in a comma-separated list using the names returned by @code{--list-checkers}."
+msgstr ""
+
+#. type: section
+#: doc/guix.texi:9155
+#, no-wrap
+msgid "Invoking @command{guix size}"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:9157
+#, no-wrap
+msgid "size"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:9158
+#, no-wrap
+msgid "package size"
+msgstr ""
+
+#. type: command{#1}
+#: doc/guix.texi:9160
+#, no-wrap
+msgid "guix size"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:9167
+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:9172
+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:9185
+#, no-wrap
+msgid ""
+"$ guix size coreutils\n"
+"store item                               total    self\n"
+"/gnu/store/@dots{}-gcc-5.5.0-lib           60.4    30.1  38.1%\n"
+"/gnu/store/@dots{}-glibc-2.27              30.3    28.8  36.6%\n"
+"/gnu/store/@dots{}-coreutils-8.28          78.9    15.0  19.0%\n"
+"/gnu/store/@dots{}-gmp-6.1.2               63.1     2.7   3.4%\n"
+"/gnu/store/@dots{}-bash-static-4.4.12       1.5     1.5   1.9%\n"
+"/gnu/store/@dots{}-acl-2.2.52              61.1     0.4   0.5%\n"
+"/gnu/store/@dots{}-attr-2.4.47             60.6     0.2   0.3%\n"
+"/gnu/store/@dots{}-libcap-2.25             60.5     0.2   0.2%\n"
+"total: 78.9 MiB\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:9191
+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:9194
+#, no-wrap
+msgid "$ guix gc -R /gnu/store/@dots{}-coreutils-8.23\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:9202
+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:9208
+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:9217
+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:9222
+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:9224
+msgid "You can also specify several package names:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:9234
+#, no-wrap
+msgid ""
+"$ 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"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:9240
+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:9242
+msgid "The available options are:"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:9248
+msgid "Use substitute information from @var{urls}.  @xref{client-substitute-urls, the same option for @code{guix build}}."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:9249
+#, no-wrap
+msgid "--sort=@var{key}"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:9251
+msgid "Sort lines according to @var{key}, one of the following options:"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:9253
+#, no-wrap
+msgid "self"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:9255
+msgid "the size of each item (the default);"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:9257
+msgid "the total size of the item's closure."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:9259
+#, no-wrap
+msgid "--map-file=@var{file}"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:9261
+msgid "Write a graphical map of disk usage in PNG format to @var{file}."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:9263
+msgid "For the example above, the map looks like this:"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:9266
+msgid "@image{images/coreutils-size-map,5in,, map of Coreutils disk usage produced by @command{guix size}}"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:9271
+msgid "This option requires that @uref{http://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:9275
+msgid "Consider packages for @var{system}---e.g., @code{x86_64-linux}."
+msgstr ""
+
+#. type: section
+#: doc/guix.texi:9279
+#, no-wrap
+msgid "Invoking @command{guix graph}"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:9281
+#, no-wrap
+msgid "DAG"
+msgstr ""
+
+#. type: command{#1}
+#: doc/guix.texi:9282
+#, no-wrap
+msgid "guix graph"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:9296
+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{http://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{http://www.opencypher.org/, openCypher} query language.  The general syntax is:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:9299
+#, no-wrap
+msgid "guix graph @var{options} @var{package}@dots{}\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:9304
+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:9307
+#, no-wrap
+msgid "guix graph coreutils | dot -Tpdf > dag.pdf\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:9310
+msgid "The output looks like this:"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:9312
+msgid "@image{images/coreutils-graph,2in,,Dependency graph of the GNU Coreutils}"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:9314
+msgid "Nice little graph, no?"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:9320
+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:9326
+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:9327
+#, no-wrap
+msgid "reverse-package"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:9329
+msgid "This shows the @emph{reverse} DAG of packages.  For example:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:9332
+#, no-wrap
+msgid "guix graph --type=reverse-package ocaml\n"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:9337
+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:9342
+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:9343
+#, no-wrap
+msgid "bag-emerged"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:9345
+msgid "This is the package DAG, @emph{including} implicit inputs."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:9347
+msgid "For instance, the following command:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:9350
+#, no-wrap
+msgid "guix graph --type=bag-emerged coreutils | dot -Tpdf > dag.pdf\n"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:9353
+msgid "...@: yields this bigger graph:"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:9355
+msgid "@image{images/coreutils-bag-graph,,5in,Detailed dependency graph of the GNU Coreutils}"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:9358
+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:9362
+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:9363
+#, no-wrap
+msgid "bag"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:9366
+msgid "Similar to @code{bag-emerged}, but this time including all the bootstrap dependencies."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:9367
+#, no-wrap
+msgid "bag-with-origins"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:9369
+msgid "Similar to @code{bag}, but also showing origins and their dependencies."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:9370
+#, no-wrap
+msgid "reverse-bag"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:9373
+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:9376
+#, no-wrap
+msgid "guix graph -t reverse-bag dune\n"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:9383
+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:9389
+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:9392
+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:9395
+#, no-wrap
+msgid "guix graph -t derivation `guix system build -d my-config.scm`\n"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:9397
+#, no-wrap
+msgid "module"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:9401
+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:9404
+#, no-wrap
+msgid "guix graph -t module guile | dot -Tpdf > module-graph.pdf\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:9409
+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:9414
+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:9417
+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:9421
+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:9424
+#, no-wrap
+msgid "guix graph -t references `readlink -f ~/.guix-profile`\n"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:9426
+#, no-wrap
+msgid "referrers"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:9429
+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:9435
+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:9438
+msgid "It can help determine what is preventing a store item from being garbage collected."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:9442
+msgid "The available options are the following:"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:9448
+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:9449
+#, no-wrap
+msgid "--list-types"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:9451
+msgid "List the supported graph types."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:9452
+#, no-wrap
+msgid "--backend=@var{backend}"
+msgstr ""
+
+#. type: itemx
+#: doc/guix.texi:9453
+#, no-wrap
+msgid "-b @var{backend}"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:9455
+msgid "Produce a graph using the selected @var{backend}."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:9456
+#, no-wrap
+msgid "--list-backends"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:9458
+msgid "List the supported graph backends."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:9460
+msgid "Currently, the available backends are Graphviz and d3.js."
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:9469
+#, no-wrap
+msgid "guix graph -e '(@@@@ (gnu packages commencement) gnu-make-final)'\n"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:9474
+msgid "Display the graph for @var{system}---e.g., @code{i686-linux}."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:9477
+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: section
+#: doc/guix.texi:9482
+#, no-wrap
+msgid "Invoking @command{guix publish}"
+msgstr ""
+
+#. type: command{#1}
+#: doc/guix.texi:9484
+#, no-wrap
+msgid "guix publish"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:9488
+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:9494
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:9500
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:9504
+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:9509
+#, no-wrap
+msgid "guix publish @var{options}@dots{}\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:9513
+msgid "Running @command{guix publish} without any additional arguments will spawn an HTTP server on port 8080:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:9516
+#, no-wrap
+msgid "guix publish\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:9520
+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:9523
+#, no-wrap
+msgid "guix-daemon --substitute-urls=http://example.org:8080\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:9532
+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:9539
+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:9542
+#, no-wrap
+msgid "http://example.org/file/hello-2.10.tar.gz/sha256/0ssi1@dots{}ndq1i\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:9546
+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:9547
+#, no-wrap
+msgid "build logs, publication"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:9549
+msgid "Build logs are available from @code{/log} URLs like:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:9552
+#, no-wrap
+msgid "http://example.org/log/gwspk@dots{}-guile-2.2.3\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:9562
+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 ""
+
+#. type: item
+#: doc/guix.texi:9566
+#, no-wrap
+msgid "--port=@var{port}"
+msgstr ""
+
+#. type: itemx
+#: doc/guix.texi:9567
+#, no-wrap
+msgid "-p @var{port}"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:9569
+msgid "Listen for HTTP requests on @var{port}."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:9570 doc/guix.texi:20505
+#, no-wrap
+msgid "--listen=@var{host}"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:9573
+msgid "Listen on the network interface for @var{host}.  The default is to accept connections from any interface."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:9578
+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:9579
+#, no-wrap
+msgid "--compression[=@var{level}]"
+msgstr ""
+
+#. type: itemx
+#: doc/guix.texi:9580
+#, no-wrap
+msgid "-C [@var{level}]"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:9585
+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 ""
+
+#. type: table
+#: doc/guix.texi:9594
+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: item
+#: doc/guix.texi:9595
+#, no-wrap
+msgid "--cache=@var{directory}"
+msgstr ""
+
+#. type: itemx
+#: doc/guix.texi:9596
+#, no-wrap
+msgid "-c @var{directory}"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:9599
+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:9607
+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:9615
+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:9619
+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:9622
+msgid "When @option{--ttl} is used, cached entries are automatically deleted when they have expired."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:9623
+#, no-wrap
+msgid "--workers=@var{N}"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:9626
+msgid "When @option{--cache} is used, request the allocation of @var{N} worker threads to ``bake'' archives."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:9627
+#, no-wrap
+msgid "--ttl=@var{ttl}"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:9631
+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:9636
+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:9640
+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:9641
+#, no-wrap
+msgid "--nar-path=@var{path}"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:9644
+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:9648
+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:9649
+#, no-wrap
+msgid "--public-key=@var{file}"
+msgstr ""
+
+#. type: itemx
+#: doc/guix.texi:9650
+#, no-wrap
+msgid "--private-key=@var{file}"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:9653
+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:9660
+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:9661
+#, no-wrap
+msgid "--repl[=@var{port}]"
+msgstr ""
+
+#. type: itemx
+#: doc/guix.texi:9662
+#, no-wrap
+msgid "-r [@var{port}]"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:9666
+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:9672
+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:9675
+msgid "If you are instead running Guix on a ``foreign distro'', follow these instructions:”"
+msgstr ""
+
+#. type: itemize
+#: doc/guix.texi:9679
+msgid "If your host distro uses the systemd init system:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:9684
+#, no-wrap
+msgid ""
+"# ln -s ~root/.guix-profile/lib/systemd/system/guix-publish.service \\\n"
+"        /etc/systemd/system/\n"
+"# systemctl start guix-publish && systemctl enable guix-publish\n"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:9692
+#, no-wrap
+msgid ""
+"# ln -s ~root/.guix-profile/lib/upstart/system/guix-publish.conf /etc/init/\n"
+"# start guix-publish\n"
+msgstr ""
+
+#. type: itemize
+#: doc/guix.texi:9696
+msgid "Otherwise, proceed similarly with your distro's init system."
+msgstr ""
+
+#. type: section
+#: doc/guix.texi:9699
+#, no-wrap
+msgid "Invoking @command{guix challenge}"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:9702
+#, no-wrap
+msgid "verifiable builds"
+msgstr ""
+
+#. type: command{#1}
+#: doc/guix.texi:9703
+#, no-wrap
+msgid "guix challenge"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:9704
+#, no-wrap
+msgid "challenge"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:9709
+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:9717
+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:9726
+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:9728
+msgid "The command output looks like this:"
+msgstr ""
+
+#. type: smallexample
+#: doc/guix.texi:9745
+#, no-wrap
+msgid ""
+"$ guix challenge --substitute-urls=\"https://@value{SUBSTITUTE-SERVER} https://guix.example.org\"\n"
+"updating list of substitutes from 'https://@value{SUBSTITUTE-SERVER}'... 100.0%\n"
+"updating list of substitutes from 'https://guix.example.org'... 100.0%\n"
+"/gnu/store/@dots{}-openssl-1.0.2d contents differ:\n"
+"  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"
+"\n"
+msgstr ""
+
+#. type: smallexample
+#: doc/guix.texi:9747
+#, no-wrap
+msgid ""
+"@dots{}\n"
+"\n"
+msgstr ""
+
+#. type: smallexample
+#: doc/guix.texi:9752
+#, no-wrap
+msgid ""
+"6,406 store items were analyzed:\n"
+"  - 4,749 (74.1%) were identical\n"
+"  - 525 (8.2%) differed\n"
+"  - 1,132 (17.7%) were inconclusive\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:9760
+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:9761
+#, no-wrap
+msgid "non-determinism, in package builds"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:9772
+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:9775
+msgid "To find out what is wrong with this Git binary, we can do something along these lines (@pxref{Invoking guix archive}):"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:9780
+#, no-wrap
+msgid ""
+"$ wget -q -O - https://@value{SUBSTITUTE-SERVER}/nar/@dots{}-git-2.5.0 \\\n"
+"   | guix archive -x /tmp/git\n"
+"$ diff -ur --no-dereference /gnu/store/@dots{}-git.2.5.0 /tmp/git\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:9789
+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:9797
+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:9801
+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:9804
+#, no-wrap
+msgid "$ guix challenge @var{package}\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:9809
+msgid "where @var{package} is a package specification such as @code{guile@@2.0} or @code{glibc:debug}."
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:9814
+#, no-wrap
+msgid "guix challenge @var{options} [@var{packages}@dots{}]\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:9821
+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:9823
+msgid "The one option that matters is:"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:9829
+msgid "Consider @var{urls} the whitespace-separated list of substitute source URLs to compare to."
+msgstr ""
+
+#. type: itemx
+#: doc/guix.texi:9831
+#, no-wrap
+msgid "-v"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:9834
+msgid "Show details about matches (identical contents) in addition to information about mismatches."
+msgstr ""
+
+#. type: section
+#: doc/guix.texi:9838
+#, no-wrap
+msgid "Invoking @command{guix copy}"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:9840
+#, no-wrap
+msgid "copy, of store items, over SSH"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:9841
+#, no-wrap
+msgid "SSH, copy of store items"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:9842
+#, no-wrap
+msgid "sharing store items across machines"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:9843
+#, no-wrap
+msgid "transferring store items across machines"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:9850
+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:9854
+#, no-wrap
+msgid ""
+"guix copy --to=@var{user}@@@var{host} \\\n"
+"          coreutils `readlink -f ~/.guix-profile`\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:9858
+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:9861
+msgid "The command below retrieves @code{libreoffice} and @code{gimp} from @var{host}, assuming they are available there:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:9864
+#, no-wrap
+msgid "guix copy --from=@var{host} libreoffice gimp\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:9869
+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:9875
+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:9880
+#, no-wrap
+msgid "guix copy [--to=@var{spec}|--from=@var{spec}] @var{items}@dots{}\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:9883
+msgid "You must always specify one of the following options:"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:9885
+#, no-wrap
+msgid "--to=@var{spec}"
+msgstr ""
+
+#. type: itemx
+#: doc/guix.texi:9886
+#, no-wrap
+msgid "--from=@var{spec}"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:9890
+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:9894
+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:9898
+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:9901
+#, no-wrap
+msgid "Invoking @command{guix container}"
+msgstr ""
+
+#. type: command{#1}
+#: doc/guix.texi:9903
+#, no-wrap
+msgid "guix container"
+msgstr ""
+
+#. type: quotation
+#: doc/guix.texi:9907
+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:9914
+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:9919
+#, no-wrap
+msgid "guix container @var{action} @var{options}@dots{}\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:9923
+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:9925
+msgid "The following actions are available:"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:9927
+#, no-wrap
+msgid "exec"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:9929
+msgid "Execute a command within the context of a running container."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:9931
+msgid "The syntax is:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:9934
+#, no-wrap
+msgid "guix container exec @var{pid} @var{program} @var{arguments}@dots{}\n"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:9940
+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:9944
+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:9947
+#, no-wrap
+msgid "guix container exec 9001 /run/current-system/profile/bin/bash --login\n"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:9951
+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:9955
+#, no-wrap
+msgid "Invoking @command{guix weather}"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:9964
+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:9965
+#, no-wrap
+msgid "statistics, for substitutes"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:9966
+#, no-wrap
+msgid "availability of substitutes"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:9967
+#, no-wrap
+msgid "substitute availability"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:9968
+#, no-wrap
+msgid "weather, substitute availability"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:9970
+msgid "Here's a sample run:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:9982
+#, no-wrap
+msgid ""
+"$ guix weather --substitute-urls=https://guix.example.org\n"
+"computing 5,872 package derivations for x86_64-linux...\n"
+"looking for 6,128 store items on https://guix.example.org..\n"
+"updating list of substitutes from 'https://guix.example.org'... 100.0%\n"
+"https://guix.example.org\n"
+"  43.4% substitutes available (2,658 out of 6,128)\n"
+"  7,032.5 MiB of nars (compressed)\n"
+"  19,824.2 MiB on disk (uncompressed)\n"
+"  0.030 seconds per request (182.9 seconds in total)\n"
+"  33.5 requests per second\n"
+"\n"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:9992
+#, no-wrap
+msgid ""
+"  9.8% (342 out of 3,470) of the missing items are queued\n"
+"  867 queued builds\n"
+"      x86_64-linux: 518 (59.7%)\n"
+"      i686-linux: 221 (25.5%)\n"
+"      aarch64-linux: 128 (14.8%)\n"
+"  build rate: 23.41 builds per hour\n"
+"      x86_64-linux: 11.16 builds per hour\n"
+"      i686-linux: 6.03 builds per hour\n"
+"      aarch64-linux: 6.41 builds per hour\n"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:9994
+#, no-wrap
+msgid "continuous integration, statistics"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:10005
+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:10011
+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: Plain text
+#: doc/guix.texi:10014
+msgid "Among other things, it is possible to query specific system types and specific package sets.  The available options are listed below."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:10020
+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:10026
+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:10032
+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: item
+#: doc/guix.texi:10033
+#, no-wrap
+msgid "--coverage[=@var{count}]"
+msgstr ""
+
+#. type: itemx
+#: doc/guix.texi:10034
+#, no-wrap
+msgid "-c [@var{count}]"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:10040
+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:10054
+#, no-wrap
+msgid ""
+"$ guix weather --substitute-urls=https://ci.guix.info -c 10\n"
+"computing 8,983 package derivations for x86_64-linux...\n"
+"looking for 9,343 store items on https://ci.guix.info...\n"
+"updating substitutes from 'https://ci.guix.info'... 100.0%\n"
+"https://ci.guix.info\n"
+"  64.7% substitutes available (6,047 out of 9,343)\n"
+"@dots{}\n"
+"2502 packages are missing from 'https://ci.guix.info' for 'x86_64-linux', among which:\n"
+"    58  kcoreaddons@@5.49.0      /gnu/store/@dots{}-kcoreaddons-5.49.0\n"
+"    46  qgpgme@@1.11.1           /gnu/store/@dots{}-qgpgme-1.11.1\n"
+"    37  perl-http-cookiejar@@0.008  /gnu/store/@dots{}-perl-http-cookiejar-0.008\n"
+"    @dots{}\n"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:10059
+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:10063
+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: section
+#: doc/guix.texi:10066
+#, no-wrap
+msgid "Invoking @command{guix processes}"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:10074
+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:10080
+#, no-wrap
+msgid ""
+"$ sudo guix processes\n"
+"SessionPID: 19002\n"
+"ClientPID: 19090\n"
+"ClientCommand: guix environment --ad-hoc python\n"
+"\n"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:10084
+#, no-wrap
+msgid ""
+"SessionPID: 19402\n"
+"ClientPID: 19367\n"
+"ClientCommand: guix publish -u guix-publish -p 3000 -C 9 @dots{}\n"
+"\n"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:10094
+#, no-wrap
+msgid ""
+"SessionPID: 19444\n"
+"ClientPID: 19419\n"
+"ClientCommand: cuirass --cache-directory /var/cache/cuirass @dots{}\n"
+"LockHeld: /gnu/store/@dots{}-perl-ipc-cmd-0.96.lock\n"
+"LockHeld: /gnu/store/@dots{}-python-six-bootstrap-1.11.0.lock\n"
+"LockHeld: /gnu/store/@dots{}-libjpeg-turbo-2.0.0.lock\n"
+"ChildProcess: 20495: guix offload x86_64-linux 7200 1 28800\n"
+"ChildProcess: 27733: guix offload x86_64-linux 7200 1 28800\n"
+"ChildProcess: 27793: guix offload x86_64-linux 7200 1 28800\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:10101
+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:10108
+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:10113
+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:10119
+#, no-wrap
+msgid ""
+"$ sudo guix processes | \\\n"
+"    recsel -p ClientPID,ClientCommand -e 'LockHeld ~ \"perl\"'\n"
+"ClientPID: 19419\n"
+"ClientCommand: cuirass --cache-directory /var/cache/cuirass @dots{}\n"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:10125
+#, no-wrap
+msgid "system configuration"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:10131
+msgid "The Guix System Distribution 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:10141
+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:10146
+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:10174
+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: findex
+#: doc/guix.texi:10175
+#, no-wrap
+msgid "operating-system"
+msgstr ""
+
+#. type: include
+#: doc/guix.texi:10177
+#, no-wrap
+msgid "os-config-bare-bones.texi"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:10184
+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:10189
+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:10190
+#, no-wrap
+msgid "Bootloader"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:10192
+#, no-wrap
+msgid "legacy boot, on Intel machines"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:10193
+#, no-wrap
+msgid "BIOS boot, on Intel machines"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:10194
+#, no-wrap
+msgid "UEFI boot"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:10195
+#, no-wrap
+msgid "EFI boot"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:10201
+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: example
+#: doc/guix.texi:10206
+#, no-wrap
+msgid ""
+"(bootloader-configuration\n"
+"  (bootloader grub-efi-bootloader)\n"
+"  (target \"/boot/efi\"))\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:10210
+msgid "@xref{Bootloader Configuration}, for more information on the available configuration options."
+msgstr ""
+
+#. type: unnumberedsubsec
+#: doc/guix.texi:10211
+#, no-wrap
+msgid "Globally-Visible Packages"
+msgstr ""
+
+#. type: vindex
+#: doc/guix.texi:10213
+#, no-wrap
+msgid "%base-packages"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:10226
+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 ""
+
+#. type: lisp
+#: doc/guix.texi:10230
+#, no-wrap
+msgid ""
+"(use-modules (gnu packages))\n"
+"(use-modules (gnu packages dns))\n"
+"\n"
+msgstr ""
+
+#. type: lisp
+#: doc/guix.texi:10235
+#, no-wrap
+msgid ""
+"(operating-system\n"
+"  ;; ...\n"
+"  (packages (cons (list bind \"utils\")\n"
+"                  %base-packages)))\n"
+msgstr ""
+
+#. type: findex
+#: doc/guix.texi:10237
+#, no-wrap
+msgid "specification->package"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:10246
+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:10249
+#, no-wrap
+msgid ""
+"(use-modules (gnu packages))\n"
+"\n"
+msgstr ""
+
+#. type: lisp
+#: doc/guix.texi:10255
+#, no-wrap
+msgid ""
+"(operating-system\n"
+"  ;; ...\n"
+"  (packages (append (map specification->package\n"
+"                         '(\"tcpdump\" \"htop\" \"gnupg@@2.0\"))\n"
+"                    %base-packages)))\n"
+msgstr ""
+
+#. type: unnumberedsubsec
+#: doc/guix.texi:10257
+#, no-wrap
+msgid "System Services"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:10259 doc/guix.texi:23612 doc/guix.texi:24600
+#, no-wrap
+msgid "services"
+msgstr ""
+
+#. type: vindex
+#: doc/guix.texi:10260
+#, no-wrap
+msgid "%base-services"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:10270
+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:10271
+#, no-wrap
+msgid "customization, of services"
+msgstr ""
+
+#. type: findex
+#: doc/guix.texi:10272
+#, no-wrap
+msgid "modify-services"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:10276
+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:10281
+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 ""
+
+#. type: lisp
+#: doc/guix.texi:10294
+#, no-wrap
+msgid ""
+"(define %my-services\n"
+"  ;; My very own list of 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"
+"    (mingetty-service-type config =>\n"
+"                           (mingetty-configuration\n"
+"                            (inherit config)))))\n"
+"\n"
+msgstr ""
+
+#. type: lisp
+#: doc/guix.texi:10298
+#, no-wrap
+msgid ""
+"(operating-system\n"
+"  ;; @dots{}\n"
+"  (services %my-services))\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:10309
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:10316
+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:10318
+#, no-wrap
+msgid "os-config-desktop.texi"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:10323
+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:10325
+#, no-wrap
+msgid "os-config-lightweight-desktop.texi"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:10331
+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:10335
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:10342
+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 ""
+
+#. type: example
+#: doc/guix.texi:10347
+#, no-wrap
+msgid ""
+"(remove (lambda (service)\n"
+"          (eq? (service-kind service) avahi-service-type))\n"
+"        %desktop-services)\n"
+msgstr ""
+
+#. type: unnumberedsubsec
+#: doc/guix.texi:10349
+#, no-wrap
+msgid "Instantiating the System"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:10356
+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:10364
+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:10365
+#, no-wrap
+msgid "roll-back, of the operating system"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:10375
+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:10381
+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:10382
+#, no-wrap
+msgid "The Programming Interface"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:10387
+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:10388
+#, no-wrap
+msgid "{Monadic Procedure} operating-system-derivation os"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:10391
+msgid "Return a derivation that builds @var{os}, an @code{operating-system} object (@pxref{Derivations})."
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:10395
+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:10400
+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:10403
+#, no-wrap
+msgid "@code{operating-system} Reference"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:10408
+msgid "This section summarizes all the options available in @code{operating-system} declarations (@pxref{Using the Configuration System})."
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:10409
+#, no-wrap
+msgid "{Data Type} operating-system"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:10413
+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:10415
+#, no-wrap
+msgid "@code{kernel} (default: @var{linux-libre})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:10419
+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 ""
+
+#. type: item
+#: doc/guix.texi:10420
+#, no-wrap
+msgid "@code{kernel-arguments} (default: @code{'()})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:10423
+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:10424 doc/guix.texi:23823 doc/guix.texi:23842
+#, no-wrap
+msgid "bootloader"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:10426
+msgid "The system bootloader configuration object.  @xref{Bootloader Configuration}."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:10427 doc/guix.texi:13573 doc/guix.texi:23892
+#, no-wrap
+msgid "@code{keyboard-layout} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:10431
+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:10436
+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:10443
+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:10445
+#, no-wrap
+msgid "@code{initrd-modules} (default: @code{%base-initrd-modules})"
+msgstr ""
+
+#. type: code{#1}
+#: doc/guix.texi:10446 doc/guix.texi:23649 doc/guix.texi:23752
+#: doc/guix.texi:23987
+#, no-wrap
+msgid "initrd"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:10447 doc/guix.texi:23650 doc/guix.texi:23753
+#, no-wrap
+msgid "initial RAM disk"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:10450
+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:10451
+#, no-wrap
+msgid "@code{initrd} (default: @code{base-initrd})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:10455
+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:10456
+#, no-wrap
+msgid "@code{firmware} (default: @var{%base-firmware})"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:10457
+#, no-wrap
+msgid "firmware"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:10459
+msgid "List of firmware packages loadable by the operating system kernel."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:10464
+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:10465
+#, no-wrap
+msgid "host-name"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:10467
+msgid "The host name."
+msgstr ""
+
+#. type: code{#1}
+#: doc/guix.texi:10468
+#, no-wrap
+msgid "hosts-file"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:10469
+#, no-wrap
+msgid "hosts file"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:10474
+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:10475
+#, no-wrap
+msgid "@code{mapped-devices} (default: @code{'()})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:10477
+msgid "A list of mapped devices.  @xref{Mapped Devices}."
+msgstr ""
+
+#. type: code{#1}
+#: doc/guix.texi:10478
+#, no-wrap
+msgid "file-systems"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:10480
+msgid "A list of file systems.  @xref{File Systems}."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:10481
+#, no-wrap
+msgid "@code{swap-devices} (default: @code{'()})"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:10482
+#, no-wrap
+msgid "swap devices"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:10489
+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:10490
+#, no-wrap
+msgid "@code{users} (default: @code{%base-user-accounts})"
+msgstr ""
+
+#. type: itemx
+#: doc/guix.texi:10491
+#, no-wrap
+msgid "@code{groups} (default: @var{%base-groups})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:10493
+msgid "List of user accounts and groups.  @xref{User Accounts}."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:10496
+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:10497
+#, no-wrap
+msgid "@code{skeletons} (default: @code{(default-skeletons)})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:10501
+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 ""
+
+#. type: table
+#: doc/guix.texi:10503
+msgid "For instance, a valid value may look like this:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:10509
+#, no-wrap
+msgid ""
+"`((\".bashrc\" ,(plain-file \"bashrc\" \"echo Hello\\n\"))\n"
+"  (\".guile\" ,(plain-file \"guile\"\n"
+"                         \"(use-modules (ice-9 readline))\n"
+"                          (activate-readline)\")))\n"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:10511
+#, no-wrap
+msgid "@code{issue} (default: @var{%default-issue})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:10514
+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:10515
+#, no-wrap
+msgid "@code{packages} (default: @var{%base-packages})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:10518
+msgid "The set of packages installed in the global profile, which is accessible at @file{/run/current-system/profile}."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:10522
+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:10523
+#, no-wrap
+msgid "timezone"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:10525
+msgid "A timezone identifying string---e.g., @code{\"Europe/Paris\"}."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:10529
+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:10530
+#, no-wrap
+msgid "@code{locale} (default: @code{\"en_US.utf8\"})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:10533
+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:10534
+#, no-wrap
+msgid "@code{locale-definitions} (default: @var{%default-locale-definitions})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:10537
+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:10538
+#, no-wrap
+msgid "@code{locale-libcs} (default: @code{(list @var{glibc})})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:10542
+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:10543
+#, no-wrap
+msgid "@code{name-service-switch} (default: @var{%default-nss})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:10547
+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:10548
+#, no-wrap
+msgid "@code{services} (default: @var{%base-services})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:10550
+msgid "A list of service objects denoting system services.  @xref{Services}."
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:10551
+#, no-wrap
+msgid "essential services"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:10552
+#, no-wrap
+msgid "@code{essential-services} (default: ...)"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:10557
+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:10558
+#, no-wrap
+msgid "@code{pam-services} (default: @code{(base-pam-services)})"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:10559
+#, no-wrap
+msgid "PAM"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:10560
+#, no-wrap
+msgid "pluggable authentication modules"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:10563
+msgid "Linux @dfn{pluggable authentication module} (PAM) services."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:10564
+#, no-wrap
+msgid "@code{setuid-programs} (default: @var{%setuid-programs})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:10567
+msgid "List of string-valued G-expressions denoting setuid programs.  @xref{Setuid Programs}."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:10568
+#, no-wrap
+msgid "@code{sudoers-file} (default: @var{%sudoers-specification})"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:10569
+#, no-wrap
+msgid "sudoers file"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:10572
+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:10577
+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: Plain text
+#: doc/guix.texi:10588
+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: example
+#: doc/guix.texi:10594
+#, no-wrap
+msgid ""
+"(file-system\n"
+"  (mount-point \"/home\")\n"
+"  (device \"/dev/sda3\")\n"
+"  (type \"ext4\"))\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:10598
+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:10599
+#, no-wrap
+msgid "{Data Type} file-system"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:10602
+msgid "Objects of this type represent file systems to be mounted.  They contain the following members:"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:10604 doc/guix.texi:10790
+#, no-wrap
+msgid "type"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:10607
+msgid "This is a string specifying the type of the file system---e.g., @code{\"ext4\"}."
+msgstr ""
+
+#. type: code{#1}
+#: doc/guix.texi:10608
+#, no-wrap
+msgid "mount-point"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:10610
+msgid "This designates the place where the file system is to be mounted."
+msgstr ""
+
+#. type: code{#1}
+#: doc/guix.texi:10611
+#, no-wrap
+msgid "device"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:10621
+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:10622
+#, no-wrap
+msgid "file-system-label"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:10627
+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: example
+#: doc/guix.texi:10633
+#, no-wrap
+msgid ""
+"(file-system\n"
+"  (mount-point \"/home\")\n"
+"  (type \"ext4\")\n"
+"  (device (file-system-label \"my-home\")))\n"
+msgstr ""
+
+#. type: findex
+#: doc/guix.texi:10635
+#, no-wrap
+msgid "uuid"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:10643
+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: example
+#: doc/guix.texi:10649
+#, no-wrap
+msgid ""
+"(file-system\n"
+"  (mount-point \"/home\")\n"
+"  (type \"ext4\")\n"
+"  (device (uuid \"4dab5feb-d176-45de-b287-9b0a6e4c01cb\")))\n"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:10657
+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:10658
+#, no-wrap
+msgid "@code{flags} (default: @code{'()})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:10663
+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), and @code{no-exec} (disallow program execution.)"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:10664
+#, no-wrap
+msgid "@code{options} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:10666
+msgid "This is either @code{#f}, or a string denoting mount options."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:10667
+#, no-wrap
+msgid "@code{mount?} (default: @code{#t})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:10672
+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:10673
+#, no-wrap
+msgid "@code{needed-for-boot?} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:10678
+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:10679
+#, no-wrap
+msgid "@code{check?} (default: @code{#t})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:10682
+msgid "This Boolean indicates whether the file system needs to be checked for errors before being mounted."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:10683
+#, no-wrap
+msgid "@code{create-mount-point?} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:10685
+msgid "When true, the mount point is created if it does not exist yet."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:10686
+#, no-wrap
+msgid "@code{dependencies} (default: @code{'()})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:10690
+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:10694
+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:10697
+msgid "Another example is a file system that depends on a mapped device, for example for an encrypted partition (@pxref{Mapped Devices})."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:10702
+msgid "The @code{(gnu system file-systems)} exports the following useful variables."
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:10703
+#, no-wrap
+msgid "{Scheme Variable} %base-file-systems"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:10708
+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 ""
+
+#. type: defvr
+#: doc/guix.texi:10710
+#, no-wrap
+msgid "{Scheme Variable} %pseudo-terminal-file-system"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:10716
+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:10718
+#, no-wrap
+msgid "{Scheme Variable} %shared-memory-file-system"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:10722
+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:10724
+#, no-wrap
+msgid "{Scheme Variable} %immutable-store"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:10729
+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:10732
+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:10734
+#, no-wrap
+msgid "{Scheme Variable} %binary-format-file-system"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:10738
+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:10740
+#, no-wrap
+msgid "{Scheme Variable} %fuse-control-file-system"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:10744
+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: cindex
+#: doc/guix.texi:10749
+#, no-wrap
+msgid "device mapping"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:10750
+#, no-wrap
+msgid "mapped devices"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:10768
+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:10771
+msgid "Mapped devices are declared using the @code{mapped-device} form, defined as follows; for examples, see below."
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:10772
+#, no-wrap
+msgid "{Data Type} mapped-device"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:10775
+msgid "Objects of this type represent device mappings that will be made when the system boots up."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:10781
+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:10782 doc/guix.texi:23867
+#, no-wrap
+msgid "target"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:10789
+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:10793
+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:10796
+#, no-wrap
+msgid "{Scheme Variable} luks-device-mapping"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:10800
+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:10802
+#, no-wrap
+msgid "{Scheme Variable} raid-device-mapping"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:10807
+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:10809
+#, no-wrap
+msgid "disk encryption"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:10810
+#, no-wrap
+msgid "LUKS"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:10818
+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: example
+#: doc/guix.texi:10824
+#, no-wrap
+msgid ""
+"(mapped-device\n"
+"  (source \"/dev/sda3\")\n"
+"  (target \"home\")\n"
+"  (type luks-device-mapping))\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:10829
+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:10832
+#, no-wrap
+msgid "cryptsetup luksUUID /dev/sda3\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:10835
+msgid "and use it as follows:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:10841
+#, no-wrap
+msgid ""
+"(mapped-device\n"
+"  (source (uuid \"cb67fc72-0d54-4c88-9d4b-b225f30b0f44\"))\n"
+"  (target \"home\")\n"
+"  (type luks-device-mapping))\n"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:10843
+#, no-wrap
+msgid "swap encryption"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:10849
+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:10852
+msgid "A RAID device formed of the partitions @file{/dev/sda1} and @file{/dev/sdb1} may be declared as follows:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:10858
+#, no-wrap
+msgid ""
+"(mapped-device\n"
+"  (source (list \"/dev/sda1\" \"/dev/sdb1\"))\n"
+"  (target \"/dev/md0\")\n"
+"  (type raid-device-mapping))\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:10865
+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:10870
+#, no-wrap
+msgid "users"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:10871
+#, no-wrap
+msgid "accounts"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:10872
+#, no-wrap
+msgid "user accounts"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:10876
+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: example
+#: doc/guix.texi:10887
+#, no-wrap
+msgid ""
+"(user-account\n"
+"  (name \"alice\")\n"
+"  (group \"users\")\n"
+"  (supplementary-groups '(\"wheel\"   ;allow use of sudo, etc.\n"
+"                          \"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"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:10896
+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:10897
+#, no-wrap
+msgid "{Data Type} user-account"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:10900
+msgid "Objects of this type represent user accounts.  The following members may be specified:"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:10904
+msgid "The name of the user account."
+msgstr ""
+
+#. type: itemx
+#: doc/guix.texi:10905 doc/guix.texi:23603
+#, no-wrap
+msgid "group"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:10906 doc/guix.texi:10973
+#, no-wrap
+msgid "groups"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:10909
+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:10910
+#, no-wrap
+msgid "@code{supplementary-groups} (default: @code{'()})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:10913
+msgid "Optionally, this can be defined as a list of group names that this account belongs to."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:10914
+#, no-wrap
+msgid "@code{uid} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:10918
+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:10919
+#, no-wrap
+msgid "@code{comment} (default: @code{\"\"})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:10921
+msgid "A comment about the account, such as the account owner's full name."
+msgstr ""
+
+#. type: code{#1}
+#: doc/guix.texi:10922
+#, no-wrap
+msgid "home-directory"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:10924
+msgid "This is the name of the home directory for the account."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:10925
+#, no-wrap
+msgid "@code{create-home-directory?} (default: @code{#t})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:10928
+msgid "Indicates whether the home directory of this account should be created if it does not exist yet."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:10929
+#, no-wrap
+msgid "@code{shell} (default: Bash)"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:10932
+msgid "This is a G-expression denoting the file name of a program to be used as the shell (@pxref{G-Expressions})."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:10933 doc/guix.texi:10991
+#, no-wrap
+msgid "@code{system?} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:10937
+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:10939
+msgid "user-account-password"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:10939
+#, no-wrap
+msgid "password, for user accounts"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:10940 doc/guix.texi:10995
+#, no-wrap
+msgid "@code{password} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:10946
+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:10950
+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: example
+#: doc/guix.texi:10955
+#, no-wrap
+msgid ""
+"(user-account\n"
+"  (name \"charlie\")\n"
+"  (group \"users\")\n"
+"\n"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:10958
+#, no-wrap
+msgid ""
+"  ;; Specify a SHA-512-hashed initial password.\n"
+"  (password (crypt \"InitialPassword!\" \"$6$abc\")))\n"
+msgstr ""
+
+#. type: quotation
+#: doc/guix.texi:10964
+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:10969
+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:10975
+msgid "User group declarations are even simpler:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:10978
+#, no-wrap
+msgid "(user-group (name \"students\"))\n"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:10980
+#, no-wrap
+msgid "{Data Type} user-group"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:10982
+msgid "This type is for, well, user groups.  There are just a few fields:"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:10986
+msgid "The name of the group."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:10987
+#, no-wrap
+msgid "@code{id} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:10990
+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:10994
+msgid "This Boolean value indicates whether the group is a ``system'' group.  System groups have low numerical IDs."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:10998
+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:11004
+msgid "For convenience, a variable lists all the basic user groups one may expect:"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:11005
+#, no-wrap
+msgid "{Scheme Variable} %base-groups"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:11010
+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:11012
+#, no-wrap
+msgid "{Scheme Variable} %base-user-accounts"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:11015
+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:11018
+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:11024
+#, no-wrap
+msgid "keymap"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:11032
+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:11033
+#, no-wrap
+msgid "keyboard layout, definition"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:11035
+msgid "There are three components that will want to know about your keyboard layout:"
+msgstr ""
+
+#. type: itemize
+#: doc/guix.texi:11042
+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:11047
+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:11051
+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:11055
+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:11056
+#, no-wrap
+msgid "XKB, keyboard layouts"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:11064
+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: example
+#: doc/guix.texi:11069
+#, no-wrap
+msgid ""
+";; The German QWERTZ layout.  Here we assume a standard\n"
+";; \"pc105\" keyboard model.\n"
+"(keyboard-layout \"de\")\n"
+"\n"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:11072
+#, no-wrap
+msgid ""
+";; The bépo variant of the French layout.\n"
+"(keyboard-layout \"fr\" \"bepo\")\n"
+"\n"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:11075
+#, no-wrap
+msgid ""
+";; The Catalan layout.\n"
+"(keyboard-layout \"es\" \"cat\")\n"
+"\n"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:11082
+#, no-wrap
+msgid ""
+";; The Latin American Spanish layout.  In addition, the\n"
+";; \"Caps Lock\" key is used as an additional \"Ctrl\" key,\n"
+";; and the \"Menu\" key is used as a \"Compose\" key to enter\n"
+";; accented letters.\n"
+"(keyboard-layout \"latam\"\n"
+"                 #:options '(\"ctrl:nocaps\" \"compose:menu\"))\n"
+"\n"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:11085
+#, no-wrap
+msgid ""
+";; The Russian layout for a ThinkPad keyboard.\n"
+"(keyboard-layout \"ru\" #:model \"thinkpad\")\n"
+"\n"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:11090
+#, no-wrap
+msgid ""
+";; The \"US international\" layout, which is the US layout plus\n"
+";; dead keys to enter accented characters.  This is for an\n"
+";; Apple MacBook keyboard.\n"
+"(keyboard-layout \"us\" \"intl\" #:model \"macbook78\")\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:11094
+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:11095
+#, no-wrap
+msgid "keyboard layout, configuration"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:11099
+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:11100
+#, no-wrap
+msgid "set-xorg-configuration"
+msgstr ""
+
+#. type: lisp
+#: doc/guix.texi:11104
+#, no-wrap
+msgid ""
+";; Using the Turkish layout for the bootloader, the console,\n"
+";; and for Xorg.\n"
+"\n"
+msgstr ""
+
+#. type: lisp
+#: doc/guix.texi:11116
+#, no-wrap
+msgid ""
+"(operating-system\n"
+"  ;; ...\n"
+"  (keyboard-layout (keyboard-layout \"tr\"))  ;for the console\n"
+"  (bootloader (bootloader-configuration\n"
+"                (bootloader grub-efi-bootloader)\n"
+"                (target \"/boot/efi\")\n"
+"                (keyboard-layout keyboard-layout))) ;for GRUB\n"
+"  (services (cons (set-xorg-configuration\n"
+"                    (xorg-configuration             ;for Xorg\n"
+"                      (keyboard-layout keyboard-layout)))\n"
+"                  %desktop-services)))\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:11123
+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:11126
+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:11131
+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:11136
+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:11139
+#, no-wrap
+msgid "setxkbmap us dvorak\n"
+msgstr ""
+
+#. type: itemize
+#: doc/guix.texi:11146
+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:11149
+#, no-wrap
+msgid "loadkeys fr-bepo\n"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:11155
+#, no-wrap
+msgid "locale"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:11162
+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:11163
+#, no-wrap
+msgid "locale definition"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:11167
+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:11176
+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:11179
+msgid "For instance, to add the North Frisian locale for Germany, the value of that field may be:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:11184
+#, no-wrap
+msgid ""
+"(cons (locale-definition\n"
+"        (name \"fy_DE.utf8\") (source \"fy_DE\"))\n"
+"      %default-locale-definitions)\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:11188
+msgid "Likewise, to save space, one might want @code{locale-definitions} to list only the locales that are actually used, as in:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:11193
+#, no-wrap
+msgid ""
+"(list (locale-definition\n"
+"        (name \"ja_JP.eucjp\") (source \"ja_JP\")\n"
+"        (charset \"EUC-JP\")))\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:11202
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:11205
+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:11206
+#, no-wrap
+msgid "{Data Type} locale-definition"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:11208
+msgid "This is the data type of a locale definition."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:11214
+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:11218
+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:11219
+#, no-wrap
+msgid "@code{charset} (default: @code{\"UTF-8\"})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:11223
+msgid "The ``character set'' or ``code set'' for that locale, @uref{http://www.iana.org/assignments/character-sets, as defined by IANA}."
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:11227
+#, no-wrap
+msgid "{Scheme Variable} %default-locale-definitions"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:11231
+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:11232
+#, no-wrap
+msgid "locale name"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:11233
+#, no-wrap
+msgid "normalized codeset in locale names"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:11239
+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:11241
+#, no-wrap
+msgid "Locale Data Compatibility Considerations"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:11243
+#, no-wrap
+msgid "incompatibility, of locale data"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:11250
+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:11262
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:11267
+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:11271
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:11278
+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: example
+#: doc/guix.texi:11281
+#, no-wrap
+msgid ""
+"(use-package-modules base)\n"
+"\n"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:11285
+#, no-wrap
+msgid ""
+"(operating-system\n"
+"  ;; @dots{}\n"
+"  (locale-libcs (list glibc-2.21 (canonical-package glibc))))\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:11290
+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:11295
+#, no-wrap
+msgid "system services"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:11301
+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:11308
+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:11311
+#, no-wrap
+msgid "# herd status\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:11316
+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:11320
+#, no-wrap
+msgid ""
+"# herd doc nscd\n"
+"Run libc's name service cache daemon (nscd).\n"
+"\n"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:11323
+#, no-wrap
+msgid ""
+"# herd doc nscd action invalidate\n"
+"invalidate: Invalidate the given cache--e.g., 'hosts' for host name lookups.\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:11328
+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:11335
+#, no-wrap
+msgid ""
+"# herd stop nscd\n"
+"Service nscd has been stopped.\n"
+"# herd restart xorg-server\n"
+"Service xorg-server has been stopped.\n"
+"Service xorg-server has been started.\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:11340
+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:11369 doc/guix.texi:17948 doc/guix.texi:17949
+#, no-wrap
+msgid "LDAP Services"
+msgstr ""
+
+#. type: menuentry
+#: doc/guix.texi:11369
+msgid "LDAP services."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:11377
+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:11378
+#, no-wrap
+msgid "{Scheme Variable} %base-services"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:11384
+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:11389
+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 ""
+
+#. type: example
+#: doc/guix.texi:11394
+#, no-wrap
+msgid ""
+"(append (list (service avahi-service-type)\n"
+"              (service openssh-service-type))\n"
+"        %base-services)\n"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:11397
+#, no-wrap
+msgid "{Scheme Variable} special-files-service-type"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:11400
+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:11404
+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:11405
+#, no-wrap
+msgid "/bin/sh"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:11406
+#, no-wrap
+msgid "@file{sh}, in @file{/bin}"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:11409
+#, no-wrap
+msgid "`((\"/bin/sh\" ,(file-append @var{bash} \"/bin/sh\")))\n"
+msgstr ""
+
+#. type: file{#1}
+#: doc/guix.texi:11411
+#, no-wrap
+msgid "/usr/bin/env"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:11412
+#, no-wrap
+msgid "@file{env}, in @file{/usr/bin}"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:11415
+msgid "If you want to add, say, @code{/usr/bin/env} to your system, you can change it to:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:11419
+#, no-wrap
+msgid ""
+"`((\"/bin/sh\" ,(file-append @var{bash} \"/bin/sh\"))\n"
+"  (\"/usr/bin/env\" ,(file-append @var{coreutils} \"/bin/env\")))\n"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:11426
+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:11428
+#, no-wrap
+msgid "{Scheme Procedure} extra-special-file @var{file} @var{target}"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:11430
+msgid "Use @var{target} as the ``special file'' @var{file}."
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:11434
+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: example
+#: doc/guix.texi:11438
+#, no-wrap
+msgid ""
+"(extra-special-file \"/usr/bin/env\"\n"
+"                    (file-append coreutils \"/bin/env\"))\n"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:11441
+#, no-wrap
+msgid "{Scheme Procedure} host-name-service @var{name}"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:11443
+msgid "Return a service that sets the host name to @var{name}."
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:11445
+#, no-wrap
+msgid "{Scheme Procedure} login-service @var{config}"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:11449
+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:11451
+#, no-wrap
+msgid "{Data Type} login-configuration"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:11453
+msgid "This is the data type representing the configuration of login."
+msgstr ""
+
+#. type: code{#1}
+#: doc/guix.texi:11456
+#, no-wrap
+msgid "motd"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:11457
+#, no-wrap
+msgid "message of the day"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:11459
+msgid "A file-like object containing the ``message of the day''."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:11460 doc/guix.texi:13392
+#, no-wrap
+msgid "@code{allow-empty-passwords?} (default: @code{#t})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:11463
+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:11467
+#, no-wrap
+msgid "{Scheme Procedure} mingetty-service @var{config}"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:11471
+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:11473
+#, no-wrap
+msgid "{Data Type} mingetty-configuration"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:11476
+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:11479 doc/guix.texi:11515
+#, no-wrap
+msgid "tty"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:11481
+msgid "The name of the console this Mingetty runs on---e.g., @code{\"tty1\"}."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:11482 doc/guix.texi:11544 doc/guix.texi:11703
+#, no-wrap
+msgid "@code{auto-login} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:11486
+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:11487
+#, no-wrap
+msgid "@code{login-program} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:11491
+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:11492
+#, no-wrap
+msgid "@code{login-pause?} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:11495
+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:11496
+#, no-wrap
+msgid "@code{mingetty} (default: @var{mingetty})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:11498
+msgid "The Mingetty package to use."
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:11502
+#, no-wrap
+msgid "{Scheme Procedure} agetty-service @var{config}"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:11506
+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:11508
+#, no-wrap
+msgid "{Data Type} agetty-configuration"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:11512
+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:11519
+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:11523
+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:11527
+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:11531
+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:11532
+#, no-wrap
+msgid "@code{baud-rate} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:11535
+msgid "A string containing a comma-separated list of one or more baud rates, in descending order."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:11536
+#, no-wrap
+msgid "@code{term} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:11539
+msgid "A string containing the value used for the @code{TERM} environment variable."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:11540
+#, no-wrap
+msgid "@code{eight-bits?} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:11543
+msgid "When @code{#t}, the tty is assumed to be 8-bit clean, and parity detection is disabled."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:11547 doc/guix.texi:11706
+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:11548
+#, no-wrap
+msgid "@code{no-reset?} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:11550
+msgid "When @code{#t}, don't reset terminal cflags (control modes)."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:11551
+#, no-wrap
+msgid "@code{host} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:11554
+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:11555
+#, no-wrap
+msgid "@code{remote?} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:11559
+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:11560
+#, no-wrap
+msgid "@code{flow-control?} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:11562
+msgid "When set to @code{#t}, enable hardware (RTS/CTS) flow control."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:11563
+#, no-wrap
+msgid "@code{no-issue?} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:11566
+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:11567
+#, no-wrap
+msgid "@code{init-string} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:11570
+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:11571
+#, no-wrap
+msgid "@code{no-clear?} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:11574
+msgid "When set to @code{#t}, agetty will not clear the screen before showing the login prompt."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:11575
+#, no-wrap
+msgid "@code{login-program} (default: (file-append shadow \"/bin/login\"))"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:11579
+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:11580
+#, no-wrap
+msgid "@code{local-line} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:11584
+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:11585
+#, no-wrap
+msgid "@code{extract-baud?} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:11588
+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:11589
+#, no-wrap
+msgid "@code{skip-login?} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:11593
+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:11594
+#, no-wrap
+msgid "@code{no-newline?} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:11597
+msgid "When set to @code{#t}, do not print a newline before printing the @file{/etc/issue} file."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:11599
+#, no-wrap
+msgid "@code{login-options} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:11604
+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:11605
+#, no-wrap
+msgid "@code{login-pause} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:11609
+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:11610
+#, no-wrap
+msgid "@code{chroot} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:11613
+msgid "Change root to the specified directory.  This option accepts a directory path as a string."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:11614
+#, no-wrap
+msgid "@code{hangup?} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:11617
+msgid "Use the Linux system call @code{vhangup} to do a virtual hangup of the specified terminal."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:11618
+#, no-wrap
+msgid "@code{keep-baud?} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:11622
+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:11623
+#, no-wrap
+msgid "@code{timeout} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:11626
+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:11627
+#, no-wrap
+msgid "@code{detect-case?} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:11633
+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:11634
+#, no-wrap
+msgid "@code{wait-cr?} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:11639
+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:11640
+#, no-wrap
+msgid "@code{no-hints?} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:11643
+msgid "When set to @code{#t}, do not print hints about Num, Caps, and Scroll locks."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:11644
+#, no-wrap
+msgid "@code{no-hostname?} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:11647
+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:11648
+#, no-wrap
+msgid "@code{long-hostname?} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:11652
+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:11653
+#, no-wrap
+msgid "@code{erase-characters} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:11656
+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:11657
+#, no-wrap
+msgid "@code{kill-characters} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:11661
+msgid "This option accepts a string that should be interpreted to mean \"ignore all previous characters\" (also called a \"kill\" character) when the types their login name."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:11662
+#, no-wrap
+msgid "@code{chdir} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:11665
+msgid "This option accepts, as a string, a directory path that will be changed to before login."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:11666
+#, no-wrap
+msgid "@code{delay} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:11669
+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:11670
+#, no-wrap
+msgid "@code{nice} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:11673
+msgid "This option accepts, as an integer, the nice value with which to run the @command{login} program."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:11674 doc/guix.texi:11905 doc/guix.texi:12592
+#: doc/guix.texi:18928
+#, no-wrap
+msgid "@code{extra-options} (default: @code{'()})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:11677
+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:11681
+#, no-wrap
+msgid "{Scheme Procedure} kmscon-service-type @var{config}"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:11685
+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:11687
+#, no-wrap
+msgid "{Data Type} kmscon-configuration"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:11690
+msgid "This is the data type representing the configuration of Kmscon, which implements virtual console log-in."
+msgstr ""
+
+#. type: code{#1}
+#: doc/guix.texi:11693
+#, no-wrap
+msgid "virtual-terminal"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:11695
+msgid "The name of the console this Kmscon runs on---e.g., @code{\"tty1\"}."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:11696
+#, no-wrap
+msgid "@code{login-program} (default: @code{#~(string-append #$shadow \"/bin/login\")})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:11699
+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:11700
+#, no-wrap
+msgid "@code{login-arguments} (default: @code{'(\"-p\")})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:11702
+msgid "A list of arguments to pass to @command{login}."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:11707
+#, no-wrap
+msgid "@code{hardware-acceleration?} (default: #f)"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:11709
+msgid "Whether to use hardware acceleration."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:11710
+#, no-wrap
+msgid "@code{kmscon} (default: @var{kmscon})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:11712
+msgid "The Kmscon package to use."
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:11716
+#, no-wrap
+msgid "name service cache daemon"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:11717
+#, no-wrap
+msgid "nscd"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:11718
+#, no-wrap
+msgid "{Scheme Procedure} nscd-service [@var{config}] [#:glibc glibc] @"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:11723
+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:11725
+msgid "For convenience, the Shepherd service for nscd provides the following actions:"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:11727
+#, no-wrap
+msgid "invalidate"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:11728
+#, no-wrap
+msgid "cache invalidation, nscd"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:11729
+#, no-wrap
+msgid "nscd, cache invalidation"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:11731
+msgid "This invalidate the given cache.  For instance, running:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:11734
+#, no-wrap
+msgid "herd invalidate nscd hosts\n"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:11738
+msgid "invalidates the host name lookup cache of nscd."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:11739
+#, no-wrap
+msgid "statistics"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:11742
+msgid "Running @command{herd statistics nscd} displays information about nscd usage and caches."
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:11746
+#, no-wrap
+msgid "{Scheme Variable} %nscd-default-configuration"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:11750
+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 ""
+
+#. type: deftp
+#: doc/guix.texi:11752
+#, no-wrap
+msgid "{Data Type} nscd-configuration"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:11755
+msgid "This is the data type representing the name service cache daemon (nscd)  configuration."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:11758
+#, no-wrap
+msgid "@code{name-services} (default: @code{'()})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:11761
+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:11762
+#, no-wrap
+msgid "@code{glibc} (default: @var{glibc})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:11765
+msgid "Package object denoting the GNU C Library providing the @command{nscd} command."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:11766
+#, no-wrap
+msgid "@code{log-file} (default: @code{\"/var/log/nscd.log\"})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:11769
+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:11770
+#, no-wrap
+msgid "@code{debug-level} (default: @code{0})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:11773
+msgid "Integer denoting the debugging levels.  Higher numbers mean that more debugging output is logged."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:11774
+#, no-wrap
+msgid "@code{caches} (default: @var{%nscd-default-caches})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:11777
+msgid "List of @code{<nscd-cache>} objects denoting things to be cached; see below."
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:11781
+#, no-wrap
+msgid "{Data Type} nscd-cache"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:11783
+msgid "Data type representing a cache database of nscd and its parameters."
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:11786 doc/guix.texi:14952
+#, no-wrap
+msgid "database"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:11791
+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:11792
+#, no-wrap
+msgid "positive-time-to-live"
+msgstr ""
+
+#. type: itemx
+#: doc/guix.texi:11793
+#, no-wrap
+msgid "@code{negative-time-to-live} (default: @code{20})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:11796
+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:11797
+#, no-wrap
+msgid "@code{check-files?} (default: @code{#t})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:11800
+msgid "Whether to check for updates of the files corresponding to @var{database}."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:11804
+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:11805
+#, no-wrap
+msgid "@code{persistent?} (default: @code{#t})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:11807
+msgid "Whether the cache should be stored persistently on disk."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:11808
+#, no-wrap
+msgid "@code{shared?} (default: @code{#t})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:11810
+msgid "Whether the cache should be shared among users."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:11811
+#, no-wrap
+msgid "@code{max-database-size} (default: 32@tie{}MiB)"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:11813
+msgid "Maximum size in bytes of the database cache."
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:11820
+#, no-wrap
+msgid "{Scheme Variable} %nscd-default-caches"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:11823
+msgid "List of @code{<nscd-cache>} objects used by default by @code{nscd-configuration} (see above)."
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:11829
+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:11832
+msgid "syslog-configuration-type"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:11832 doc/guix.texi:11848
+#, no-wrap
+msgid "syslog"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:11833 doc/guix.texi:12270
+#, no-wrap
+msgid "logging"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:11834
+#, no-wrap
+msgid "{Data Type} syslog-configuration"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:11836
+msgid "This data type represents the configuration of the syslog daemon."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:11838
+#, no-wrap
+msgid "@code{syslogd} (default: @code{#~(string-append #$inetutils \"/libexec/syslogd\")})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:11840
+msgid "The syslog daemon to use."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:11841
+#, no-wrap
+msgid "@code{config-file} (default: @code{%default-syslog.conf})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:11843
+msgid "The syslog configuration file to use."
+msgstr ""
+
+#. type: anchor{#1}
+#: doc/guix.texi:11848
+msgid "syslog-service"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:11849
+#, no-wrap
+msgid "{Scheme Procedure} syslog-service @var{config}"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:11851
+msgid "Return a service that runs a syslog daemon according to @var{config}."
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:11854
+msgid "@xref{syslogd invocation,,, inetutils, GNU Inetutils}, for more information on the configuration file syntax."
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:11856
+#, no-wrap
+msgid "{Scheme Variable} guix-service-type"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:11860
+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:11863
+msgid "guix-configuration-type"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:11863
+#, no-wrap
+msgid "{Data Type} guix-configuration"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:11866
+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:11868
+#, no-wrap
+msgid "@code{guix} (default: @var{guix})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:11870 doc/guix.texi:12090
+msgid "The Guix package to use."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:11871
+#, no-wrap
+msgid "@code{build-group} (default: @code{\"guixbuild\"})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:11873
+msgid "Name of the group for build user accounts."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:11874
+#, no-wrap
+msgid "@code{build-accounts} (default: @code{10})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:11876
+msgid "Number of build user accounts to create."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:11877
+#, no-wrap
+msgid "@code{authorize-key?} (default: @code{#t})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:11882
+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:11883
+#, no-wrap
+msgid "%default-authorized-guix-keys"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:11884
+#, no-wrap
+msgid "@code{authorized-keys} (default: @var{%default-authorized-guix-keys})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:11888
+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:11889
+#, no-wrap
+msgid "@code{use-substitutes?} (default: @code{#t})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:11891
+msgid "Whether to use substitutes."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:11892
+#, no-wrap
+msgid "@code{substitute-urls} (default: @var{%default-substitute-urls})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:11894
+msgid "The list of URLs where to look for substitutes by default."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:11895
+#, no-wrap
+msgid "@code{max-silent-time} (default: @code{0})"
+msgstr ""
+
+#. type: itemx
+#: doc/guix.texi:11896
+#, no-wrap
+msgid "@code{timeout} (default: @code{0})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:11900
+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:11901
+#, no-wrap
+msgid "@code{log-compression} (default: @code{'bzip2})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:11904
+msgid "The type of compression used for build logs---one of @code{gzip}, @code{bzip2}, or @code{none}."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:11907
+msgid "List of extra command-line options for @command{guix-daemon}."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:11908
+#, no-wrap
+msgid "@code{log-file} (default: @code{\"/var/log/guix-daemon.log\"})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:11911
+msgid "File where @command{guix-daemon}'s standard output and standard error are written."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:11912
+#, no-wrap
+msgid "@code{http-proxy} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:11915
+msgid "The HTTP proxy used for downloading fixed-output derivations and substitutes."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:11916
+#, no-wrap
+msgid "@code{tmpdir} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:11918
+msgid "A directory path where the @command{guix-daemon} will perform builds."
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:11922
+#, no-wrap
+msgid "{Scheme Procedure} udev-service [#:udev @var{eudev} #:rules @code{'()}]"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:11927
+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 @var{udev-rule} and @var{file->udev-rule} from @code{(gnu services base)} simplify the creation of such rule files."
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:11929
+#, no-wrap
+msgid "{Scheme Procedure} udev-rule [@var{file-name} @var{contents}]"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:11932
+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:11936
+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: example
+#: doc/guix.texi:11944
+#, no-wrap
+msgid ""
+"(define %example-udev-rule\n"
+"  (udev-rule\n"
+"    \"90-usb-thing.rules\"\n"
+"    (string-append \"ACTION==\\\"add\\\", SUBSYSTEM==\\\"usb\\\", \"\n"
+"                   \"ATTR@{product@}==\\\"Example\\\", \"\n"
+"                   \"RUN+=\\\"/path/to/script\\\"\")))\n"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:11948
+msgid "The @command{herd rules udev} command, as root, returns the name of the directory containing all the active udev rules."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:11951
+msgid "Here we show how the default @var{udev-service} can be extended with it."
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:11961
+#, 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"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:11963
+#, no-wrap
+msgid "{Scheme Procedure} file->udev-rule [@var{file-name} @var{file}]"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:11966
+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:11968
+msgid "The following example showcases how we can use an existing rule file."
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:11973
+#, no-wrap
+msgid ""
+"(use-modules (guix download)     ;for url-fetch\n"
+"             (guix packages)     ;for origin\n"
+"             ;; @dots{})\n"
+"\n"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:11984
+#, no-wrap
+msgid ""
+"(define %android-udev-rules\n"
+"  (file->udev-rule\n"
+"    \"51-android-udev.rules\"\n"
+"    (let ((version \"20170910\"))\n"
+"      (origin\n"
+"       (method url-fetch)\n"
+"       (uri (string-append \"https://raw.githubusercontent.com/M0Rf30/\"\n"
+"                           \"android-udev-rules/\" version \"/51-android.rules\"))\n"
+"       (sha256\n"
+"        (base32 \"0lmmagpyb6xsq6zcr2w1cyx9qmjqmajkvrdbhjx32gqf1d9is003\"))))))\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:11993
+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:12002
+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 ""
+
+#. type: example
+#: doc/guix.texi:12007
+#, no-wrap
+msgid ""
+"(use-modules (gnu packages android)  ;for android-udev-rules\n"
+"             (gnu system shadow)     ;for user-group\n"
+"             ;; @dots{})\n"
+"\n"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:12016
+#, no-wrap
+msgid ""
+"(operating-system\n"
+"  ;; @dots{}\n"
+"  (users (cons (user-acount\n"
+"                ;; @dots{}\n"
+"                (supplementary-groups\n"
+"                 '(\"adbusers\"   ;for adb\n"
+"                   \"wheel\" \"netdev\" \"audio\" \"video\"))\n"
+"                ;; @dots{})))\n"
+"\n"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:12019
+#, no-wrap
+msgid ""
+"  (groups (cons (user-group (system? #t) (name \"adbusers\"))\n"
+"                %base-groups))\n"
+"\n"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:12021
+#, no-wrap
+msgid ""
+"  ;; @dots{}\n"
+"\n"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:12029
+#, 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 ""
+
+#. type: defvr
+#: doc/guix.texi:12031
+#, no-wrap
+msgid "{Scheme Variable} urandom-seed-service-type"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:12036
+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 ""
+
+#. type: defvr
+#: doc/guix.texi:12038
+#, no-wrap
+msgid "{Scheme Variable} %random-seed-file"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:12042
+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:12044
+#, no-wrap
+msgid "mouse"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:12045
+#, no-wrap
+msgid "gpm"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:12046
+#, no-wrap
+msgid "{Scheme Variable} gpm-service-type"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:12051
+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:12054
+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 ""
+
+#. type: deftp
+#: doc/guix.texi:12056
+#, no-wrap
+msgid "{Data Type} gpm-configuration"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:12058
+msgid "Data type representing the configuration of GPM."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:12060
+#, no-wrap
+msgid "@code{options} (default: @code{%default-gpm-options})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:12065
+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:12066
+#, no-wrap
+msgid "@code{gpm} (default: @code{gpm})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:12068
+msgid "The GPM package to use."
+msgstr ""
+
+#. type: anchor{#1}
+#: doc/guix.texi:12073
+msgid "guix-publish-service-type"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:12073
+#, no-wrap
+msgid "{Scheme Variable} guix-publish-service-type"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:12077
+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 ""
+
+#. type: deffn
+#: doc/guix.texi:12081
+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:12083
+#, no-wrap
+msgid "{Data Type} guix-publish-configuration"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:12086
+msgid "Data type representing the configuration of the @code{guix publish} service."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:12088
+#, no-wrap
+msgid "@code{guix} (default: @code{guix})"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:12091
+#, no-wrap
+msgid "@code{port} (default: @code{80})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:12093
+msgid "The TCP port to listen for connections."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:12094
+#, no-wrap
+msgid "@code{host} (default: @code{\"localhost\"})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:12097
+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: table
+#: doc/guix.texi:12102
+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 ""
+
+#. type: item
+#: doc/guix.texi:12103
+#, no-wrap
+msgid "@code{nar-path} (default: @code{\"nar\"})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:12106
+msgid "The URL path at which ``nars'' can be fetched.  @xref{Invoking guix publish, @code{--nar-path}}, for details."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:12107
+#, no-wrap
+msgid "@code{cache} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:12113
+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:12114
+#, no-wrap
+msgid "@code{workers} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:12118
+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:12119
+#, no-wrap
+msgid "@code{ttl} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:12123
+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:12127
+msgid "rngd-service"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:12127
+#, no-wrap
+msgid "{Scheme Procedure} rngd-service [#:rng-tools @var{rng-tools}] @"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:12132
+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:12135
+msgid "pam-limits-service"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:12135
+#, no-wrap
+msgid "session limits"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:12136
+#, no-wrap
+msgid "ulimit"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:12137
+#, no-wrap
+msgid "priority"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:12138
+#, no-wrap
+msgid "realtime"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:12139
+#, no-wrap
+msgid "jackd"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:12140
+#, no-wrap
+msgid "{Scheme Procedure} pam-limits-service [#:limits @code{'()}]"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:12147
+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:12150
+msgid "The following limits definition sets two hard and soft limits for all login sessions of users in the @code{realtime} group:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:12156
+#, no-wrap
+msgid ""
+"(pam-limits-service\n"
+" (list\n"
+"  (pam-limits-entry \"@@realtime\" 'both 'rtprio 99)\n"
+"  (pam-limits-entry \"@@realtime\" 'both 'memlock 'unlimited)))\n"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:12162
+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:12167
+#, no-wrap
+msgid "cron"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:12168
+#, no-wrap
+msgid "mcron"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:12169
+#, no-wrap
+msgid "scheduling jobs"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:12176
+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:12184
+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:12188
+#, no-wrap
+msgid ""
+"(use-modules (guix) (gnu) (gnu services mcron))\n"
+"(use-package-modules base idutils)\n"
+"\n"
+msgstr ""
+
+#. type: lisp
+#: doc/guix.texi:12197
+#, no-wrap
+msgid ""
+"(define updatedb-job\n"
+"  ;; Run 'updatedb' at 3AM every day.  Here we write the\n"
+"  ;; job's action as a Scheme procedure.\n"
+"  #~(job '(next-hour '(3))\n"
+"         (lambda ()\n"
+"           (execl (string-append #$findutils \"/bin/updatedb\")\n"
+"                  \"updatedb\"\n"
+"                  \"--prunepaths=/tmp /var/tmp /gnu/store\"))))\n"
+"\n"
+msgstr ""
+
+#. type: lisp
+#: doc/guix.texi:12203
+#, no-wrap
+msgid ""
+"(define garbage-collector-job\n"
+"  ;; Collect garbage 5 minutes after midnight every day.\n"
+"  ;; The job's action is a shell command.\n"
+"  #~(job \"5 0 * * *\"            ;Vixie cron syntax\n"
+"         \"guix gc -F 1G\"))\n"
+"\n"
+msgstr ""
+
+#. type: lisp
+#: doc/guix.texi:12210
+#, no-wrap
+msgid ""
+"(define idutils-job\n"
+"  ;; Update the index database as user \"charlie\" at 12:15PM\n"
+"  ;; and 19:15PM.  This runs from the user's home directory.\n"
+"  #~(job '(next-minute-from (next-hour '(12 19)) '(15))\n"
+"         (string-append #$idutils \"/bin/mkid src\")\n"
+"         #:user \"charlie\"))\n"
+"\n"
+msgstr ""
+
+#. type: lisp
+#: doc/guix.texi:12219
+#, no-wrap
+msgid ""
+"(operating-system\n"
+"  ;; @dots{}\n"
+"  (services (cons (service mcron-service-type\n"
+"                           (mcron-configuration\n"
+"                            (jobs (list garbage-collector-job\n"
+"                                        updatedb-job\n"
+"                                        idutils-job))))\n"
+"                  %base-services)))\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:12224
+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:12227
+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:12230
+#, no-wrap
+msgid "# herd schedule mcron\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:12235
+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:12238
+#, no-wrap
+msgid "# herd schedule mcron 10\n"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:12240
+#, no-wrap
+msgid "{Scheme Variable} mcron-service-type"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:12243
+msgid "This is the type of the @code{mcron} service, whose value is an @code{mcron-configuration} object."
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:12248
+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:12250
+#, no-wrap
+msgid "{Data Type} mcron-configuration"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:12252
+msgid "Data type representing the configuration of mcron."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:12254
+#, no-wrap
+msgid "@code{mcron} (default: @var{mcron})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:12256
+msgid "The mcron package to use."
+msgstr ""
+
+#. type: code{#1}
+#: doc/guix.texi:12257 doc/guix.texi:12316
+#, no-wrap
+msgid "jobs"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:12261
+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:12268
+#, no-wrap
+msgid "rottlog"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:12269
+#, no-wrap
+msgid "log rotation"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:12276
+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:12279
+msgid "The example below defines an operating system that provides log rotation with the default settings, for commonly encountered log files."
+msgstr ""
+
+#. type: lisp
+#: doc/guix.texi:12284
+#, no-wrap
+msgid ""
+"(use-modules (guix) (gnu))\n"
+"(use-service-modules admin mcron)\n"
+"(use-package-modules base idutils)\n"
+"\n"
+msgstr ""
+
+#. type: lisp
+#: doc/guix.texi:12289
+#, no-wrap
+msgid ""
+"(operating-system\n"
+"  ;; @dots{}\n"
+"  (services (cons (service rottlog-service-type)\n"
+"                  %base-services)))\n"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:12291
+#, no-wrap
+msgid "{Scheme Variable} rottlog-service-type"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:12294
+msgid "This is the type of the Rottlog service, whose value is a @code{rottlog-configuration} object."
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:12297
+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:12300
+msgid "This service type can define mcron jobs (@pxref{Scheduled Job Execution}) to run the rottlog service."
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:12302
+#, no-wrap
+msgid "{Data Type} rottlog-configuration"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:12304
+msgid "Data type representing the configuration of rottlog."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:12306
+#, no-wrap
+msgid "@code{rottlog} (default: @code{rottlog})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:12308
+msgid "The Rottlog package to use."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:12309
+#, no-wrap
+msgid "@code{rc-file} (default: @code{(file-append rottlog \"/etc/rc\")})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:12312
+msgid "The Rottlog configuration file to use (@pxref{Mandatory RC Variables,,, rottlog, GNU Rot[t]log Manual})."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:12313
+#, no-wrap
+msgid "@code{rotations} (default: @code{%default-rotations})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:12315
+msgid "A list of @code{log-rotation} objects as defined below."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:12319
+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:12322
+#, no-wrap
+msgid "{Data Type} log-rotation"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:12324
+msgid "Data type representing the rotation of a group of log files."
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:12328
+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: example
+#: doc/guix.texi:12337
+#, no-wrap
+msgid ""
+"(log-rotation\n"
+"  (frequency 'daily)\n"
+"  (files '(\"/var/log/apache/*\"))\n"
+"  (options '(\"storedir apache-archives\"\n"
+"             \"rotate 6\"\n"
+"             \"notifempty\"\n"
+"             \"nocompress\")))\n"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:12340
+msgid "The list of fields is as follows:"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:12342
+#, no-wrap
+msgid "@code{frequency} (default: @code{'weekly})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:12344
+msgid "The log rotation frequency, a symbol."
+msgstr ""
+
+#. type: code{#1}
+#: doc/guix.texi:12345
+#, no-wrap
+msgid "files"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:12347
+msgid "The list of files or file glob patterns to rotate."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:12348
+#, no-wrap
+msgid "@code{options} (default: @code{'()})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:12351
+msgid "The list of rottlog options for this rotation (@pxref{Configuration parameters,,, rottlog, GNU Rot[t]lg Manual})."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:12352
+#, no-wrap
+msgid "@code{post-rotate} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:12354
+msgid "Either @code{#f} or a gexp to execute once the rotation has completed."
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:12357
+#, no-wrap
+msgid "{Scheme Variable} %default-rotations"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:12360
+msgid "Specifies weekly rotation of @var{%rotated-files} and a couple of other files."
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:12362
+#, no-wrap
+msgid "{Scheme Variable} %rotated-files"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:12365
+msgid "The list of syslog-controlled files to be rotated.  By default it is: @code{'(\"/var/log/messages\" \"/var/log/secure\")}."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:12372
+msgid "The @code{(gnu services networking)} module provides services to configure the network interface."
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:12373
+#, no-wrap
+msgid "DHCP, networking service"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:12374
+#, no-wrap
+msgid "{Scheme Variable} dhcp-client-service-type"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:12378
+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:12380
+#, no-wrap
+msgid "{Scheme Procedure} dhcpd-service-type"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:12384
+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: example
+#: doc/guix.texi:12390
+#, no-wrap
+msgid ""
+"(service dhcpd-service-type\n"
+"         (dhcpd-configuration\n"
+"          (config-file (local-file \"my-dhcpd.conf\"))\n"
+"          (interfaces '(\"enp0s25\"))))\n"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:12393
+#, no-wrap
+msgid "{Data Type} dhcpd-configuration"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:12395
+#, no-wrap
+msgid "@code{package} (default: @code{isc-dhcp})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:12400
+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{http://www.isc.org/products/DHCP, ISC's DHCP server}."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:12400 doc/guix.texi:12589 doc/guix.texi:16542
+#, no-wrap
+msgid "@code{config-file} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:12405
+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:12405
+#, no-wrap
+msgid "@code{version} (default: @code{\"4\"})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:12410
+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:12410
+#, no-wrap
+msgid "@code{run-directory} (default: @code{\"/run/dhcpd\"})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:12413
+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:12413
+#, no-wrap
+msgid "@code{pid-file} (default: @code{\"/run/dhcpd/dhcpd.pid\"})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:12416
+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:12416
+#, no-wrap
+msgid "@code{interfaces} (default: @code{'()})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:12422
+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:12425
+#, no-wrap
+msgid "{Scheme Variable} static-networking-service-type"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:12428
+msgid "This is the type for statically-configured network interfaces."
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:12430
+#, no-wrap
+msgid "{Scheme Procedure} static-networking-service @var{interface} @var{ip} @"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:12438
+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:12443
+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:12445
+msgid "For example:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:12450
+#, no-wrap
+msgid ""
+"(static-networking-service \"eno1\" \"192.168.1.82\"\n"
+"                           #:gateway \"192.168.1.2\"\n"
+"                           #:name-servers '(\"192.168.1.2\"))\n"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:12453
+#, no-wrap
+msgid "wicd"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:12456
+#, no-wrap
+msgid "network management"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:12457
+#, no-wrap
+msgid "{Scheme Procedure} wicd-service [#:wicd @var{wicd}]"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:12460
+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:12465
+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:12467
+#, no-wrap
+msgid "ModemManager"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:12469
+#, no-wrap
+msgid "{Scheme Variable} modem-manager-service-type"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:12474
+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:12477 doc/guix.texi:12499
+msgid "This service is part of @code{%desktop-services} (@pxref{Desktop Services})."
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:12479
+#, no-wrap
+msgid "{Data Type} modem-manager-configuration"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:12481
+msgid "Data type representing the configuration of ModemManager."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:12483
+#, no-wrap
+msgid "@code{modem-manager} (default: @code{modem-manager})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:12485
+msgid "The ModemManager package to use."
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:12489
+#, no-wrap
+msgid "NetworkManager"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:12491
+#, no-wrap
+msgid "{Scheme Variable} network-manager-service-type"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:12496
+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:12501
+#, no-wrap
+msgid "{Data Type} network-manager-configuration"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:12503
+msgid "Data type representing the configuration of NetworkManager."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:12505
+#, no-wrap
+msgid "@code{network-manager} (default: @code{network-manager})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:12507
+msgid "The NetworkManager package to use."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:12508
+#, no-wrap
+msgid "@code{dns} (default: @code{\"default\"})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:12511
+msgid "Processing mode for DNS, which affects how NetworkManager uses the @code{resolv.conf} configuration file."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:12513
+#, no-wrap
+msgid "default"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:12516
+msgid "NetworkManager will update @code{resolv.conf} to reflect the nameservers provided by currently active connections."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:12517
+#, no-wrap
+msgid "dnsmasq"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:12521
+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 ""
+
+#. type: item
+#: doc/guix.texi:12522 doc/guix.texi:13748
+#, no-wrap
+msgid "none"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:12524
+msgid "NetworkManager will not modify @code{resolv.conf}."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:12526
+#, no-wrap
+msgid "@code{vpn-plugins} (default: @code{'()})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:12530
+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:12534
+#, no-wrap
+msgid "Connman"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:12535
+#, no-wrap
+msgid "{Scheme Variable} connman-service-type"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:12538
+msgid "This is the service type to run @url{https://01.org/connman,Connman}, a network connection manager."
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:12541
+msgid "Its value must be an @code{connman-configuration} record as in this example:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:12546
+#, no-wrap
+msgid ""
+"(service connman-service-type\n"
+"         (connman-configuration\n"
+"           (disable-vpn? #t)))\n"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:12549
+msgid "See below for details about @code{connman-configuration}."
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:12551
+#, no-wrap
+msgid "{Data Type} connman-configuration"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:12553
+msgid "Data Type representing the configuration of connman."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:12555
+#, no-wrap
+msgid "@code{connman} (default: @var{connman})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:12557
+msgid "The connman package to use."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:12558
+#, no-wrap
+msgid "@code{disable-vpn?} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:12560
+msgid "When true, disable connman's vpn plugin."
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:12563
+#, no-wrap
+msgid "WPA Supplicant"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:12564
+#, no-wrap
+msgid "{Scheme Variable} wpa-supplicant-service-type"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:12568
+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:12570
+#, no-wrap
+msgid "{Data Type} wpa-supplicant-configuration"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:12572
+msgid "Data type representing the configuration of WPA Supplicant."
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:12574
+msgid "It takes the following parameters:"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:12576
+#, no-wrap
+msgid "@code{wpa-supplicant} (default: @code{wpa-supplicant})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:12578
+msgid "The WPA Supplicant package to use."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:12579
+#, no-wrap
+msgid "@code{dbus?} (default: @code{#t})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:12581
+msgid "Whether to listen for requests on D-Bus."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:12582
+#, no-wrap
+msgid "@code{pid-file} (default: @code{\"/var/run/wpa_supplicant.pid\"})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:12584
+msgid "Where to store the PID file."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:12585
+#, no-wrap
+msgid "@code{interface} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:12588
+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:12591
+msgid "Optional configuration file to use."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:12594
+msgid "List of additional command-line arguments to pass to the daemon."
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:12597
+#, no-wrap
+msgid "iptables"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:12598
+#, no-wrap
+msgid "{Scheme Variable} iptables-service-type"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:12604
+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:12624
+#, no-wrap
+msgid ""
+"(service iptables-service-type\n"
+"         (iptables-configuration\n"
+"          (ipv4-rules (plain-file \"iptables.rules\" \"*filter\n"
+":INPUT ACCEPT\n"
+":FORWARD ACCEPT\n"
+":OUTPUT ACCEPT\n"
+"-A INPUT -p tcp --dport 22 -j ACCEPT\n"
+"-A INPUT -j REJECT --reject-with icmp-port-unreachable\n"
+"COMMIT\n"
+"\"))\n"
+"          (ipv6-rules (plain-file \"ip6tables.rules\" \"*filter\n"
+":INPUT ACCEPT\n"
+":FORWARD ACCEPT\n"
+":OUTPUT ACCEPT\n"
+"-A INPUT -p tcp --dport 22 -j ACCEPT\n"
+"-A INPUT -j REJECT --reject-with icmp6-port-unreachable\n"
+"COMMIT\n"
+"\"))))\n"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:12627
+#, no-wrap
+msgid "{Data Type} iptables-configuration"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:12629
+msgid "The data type representing the configuration of iptables."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:12631
+#, no-wrap
+msgid "@code{iptables} (default: @code{iptables})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:12634
+msgid "The iptables package that provides @code{iptables-restore} and @code{ip6tables-restore}."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:12634
+#, no-wrap
+msgid "@code{ipv4-rules} (default: @code{%iptables-accept-all-rules})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:12638
+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:12638
+#, no-wrap
+msgid "@code{ipv6-rules} (default: @code{%iptables-accept-all-rules})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:12642
+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:12645
+#, no-wrap
+msgid "NTP (Network Time Protocol), service"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:12646
+#, no-wrap
+msgid "real time clock"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:12647
+#, no-wrap
+msgid "{Scheme Variable} ntp-service-type"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:12651
+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 ""
+
+#. type: defvr
+#: doc/guix.texi:12654
+msgid "The value of this service is an @code{ntpd-configuration} object, as described below."
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:12656
+#, no-wrap
+msgid "{Data Type} ntp-configuration"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:12658
+msgid "This is the data type for the NTP service configuration."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:12660
+#, no-wrap
+msgid "@code{servers} (default: @code{%ntp-servers})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:12663
+msgid "This is the list of servers (host names) with which @command{ntpd} will be synchronized."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:12664 doc/guix.texi:12725
+#, no-wrap
+msgid "@code{allow-large-adjustment?} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:12667
+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:12668
+#, no-wrap
+msgid "@code{ntp} (default: @code{ntp})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:12670
+msgid "The NTP package to use."
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:12673
+#, no-wrap
+msgid "{Scheme Variable} %ntp-servers"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:12676
+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: cindex
+#: doc/guix.texi:12678
+#, no-wrap
+msgid "OpenNTPD"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:12679
+#, no-wrap
+msgid "{Scheme Procedure} openntpd-service-type"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:12683
+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: example
+#: doc/guix.texi:12693
+#, no-wrap
+msgid ""
+"(service\n"
+" openntpd-service-type\n"
+" (openntpd-configuration\n"
+"  (listen-on '(\"127.0.0.1\" \"::1\"))\n"
+"  (sensor '(\"udcf0 correction 70000\"))\n"
+"  (constraint-from '(\"www.gnu.org\"))\n"
+"  (constraints-from '(\"https://www.google.com/\"))\n"
+"  (allow-large-adjustment? #t)))\n"
+"\n"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:12697
+#, no-wrap
+msgid "{Data Type} openntpd-configuration"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:12699
+#, no-wrap
+msgid "@code{openntpd} (default: @code{(file-append openntpd \"/sbin/ntpd\")})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:12701
+msgid "The openntpd executable to use."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:12701
+#, no-wrap
+msgid "@code{listen-on} (default: @code{'(\"127.0.0.1\" \"::1\")})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:12703
+msgid "A list of local IP addresses or hostnames the ntpd daemon should listen on."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:12703
+#, no-wrap
+msgid "@code{query-from} (default: @code{'()})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:12705
+msgid "A list of local IP address the ntpd daemon should use for outgoing queries."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:12705
+#, no-wrap
+msgid "@code{sensor} (default: @code{'()})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:12710
+msgid "Specify a list of timedelta sensor devices ntpd should use.  @code{ntpd} will listen to each sensor that acutally exists and ignore non-existant ones.  See @uref{https://man.openbsd.org/ntpd.conf, upstream documentation} for more information."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:12710
+#, no-wrap
+msgid "@code{server} (default: @var{%ntp-servers})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:12712
+msgid "Specify a list of IP addresses or hostnames of NTP servers to synchronize to."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:12712 doc/guix.texi:19821
+#, no-wrap
+msgid "@code{servers} (default: @code{'()})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:12714
+msgid "Specify a list of IP addresses or hostnames of NTP pools to synchronize to."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:12714
+#, no-wrap
+msgid "@code{constraint-from} (default: @code{'()})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:12721
+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:12721
+#, no-wrap
+msgid "@code{constraints-from} (default: @code{'()})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:12725
+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: table
+#: doc/guix.texi:12728
+msgid "Determines if @code{ntpd} is allowed to make an initial adjustment of more than 180 seconds."
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:12731
+#, no-wrap
+msgid "inetd"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:12732
+#, no-wrap
+msgid "{Scheme variable} inetd-service-type"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:12737
+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:12743
+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: example
+#: doc/guix.texi:12766
+#, no-wrap
+msgid ""
+"(service\n"
+" inetd-service-type\n"
+" (inetd-configuration\n"
+"  (entries (list\n"
+"            (inetd-entry\n"
+"             (name \"echo\")\n"
+"             (socket-type 'stream)\n"
+"             (protocol \"tcp\")\n"
+"             (wait? #f)\n"
+"             (user \"root\"))\n"
+"            (inetd-entry\n"
+"             (node \"127.0.0.1\")\n"
+"             (name \"smtp\")\n"
+"             (socket-type 'stream)\n"
+"             (protocol \"tcp\")\n"
+"             (wait? #f)\n"
+"             (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"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:12769
+msgid "See below for more details about @code{inetd-configuration}."
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:12771
+#, no-wrap
+msgid "{Data Type} inetd-configuration"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:12773
+msgid "Data type representing the configuration of @command{inetd}."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:12775
+#, no-wrap
+msgid "@code{program} (default: @code{(file-append inetutils \"/libexec/inetd\")})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:12777
+msgid "The @command{inetd} executable to use."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:12778 doc/guix.texi:19527
+#, no-wrap
+msgid "@code{entries} (default: @code{'()})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:12781
+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:12784
+#, no-wrap
+msgid "{Data Type} inetd-entry"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:12788
+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:12790
+#, no-wrap
+msgid "@code{node} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:12795
+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:12797
+msgid "A string, the name must correspond to an entry in @code{/etc/services}."
+msgstr ""
+
+#. type: code{#1}
+#: doc/guix.texi:12797
+#, no-wrap
+msgid "socket-type"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:12800
+msgid "One of @code{'stream}, @code{'dgram}, @code{'raw}, @code{'rdm} or @code{'seqpacket}."
+msgstr ""
+
+#. type: code{#1}
+#: doc/guix.texi:12800
+#, no-wrap
+msgid "protocol"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:12802
+msgid "A string, must correspond to an entry in @code{/etc/protocols}."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:12802
+#, no-wrap
+msgid "@code{wait?} (default: @code{#t})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:12805
+msgid "Whether @command{inetd} should wait for the server to exit before listening to new service requests."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:12810
+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:12810
+#, no-wrap
+msgid "@code{program} (default: @code{\"internal\"})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:12813
+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:12818
+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:12822
+msgid "@xref{Configuration file,,, inetutils, GNU Inetutils} for a more detailed discussion of each configuration field."
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:12824
+#, no-wrap
+msgid "Tor"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:12825
+#, no-wrap
+msgid "{Scheme Variable} tor-service-type"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:12830
+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:12833
+#, no-wrap
+msgid "{Data Type} tor-configuration"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:12835
+#, no-wrap
+msgid "@code{tor} (default: @code{tor})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:12840
+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:12841
+#, no-wrap
+msgid "@code{config-file} (default: @code{(plain-file \"empty\" \"\")})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:12847
+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:12848
+#, no-wrap
+msgid "@code{hidden-services} (default: @code{'()})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:12854
+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:12855
+#, no-wrap
+msgid "@code{socks-socket-type} (default: @code{'tcp})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:12862
+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:12867
+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:12870
+#, no-wrap
+msgid "hidden service"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:12871
+#, no-wrap
+msgid "{Scheme Procedure} tor-hidden-service @var{name} @var{mapping}"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:12874
+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:12878
+#, no-wrap
+msgid ""
+" '((22 \"127.0.0.1:22\")\n"
+"   (80 \"127.0.0.1:8080\"))\n"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:12882
+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:12886
+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:12889
+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:12892
+msgid "The @code{(gnu services rsync)} module provides the following services:"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:12896
+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:12897
+#, no-wrap
+msgid "{Scheme Variable} rsync-service-type"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:12900
+msgid "This is the type for the @uref{https://rsync.samba.org, rsync} rsync daemon, @command{rsync-configuration} record as in this example:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:12903
+#, no-wrap
+msgid "(service rsync-service-type)\n"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:12906
+msgid "See below for details about @code{rsync-configuration}."
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:12908
+#, no-wrap
+msgid "{Data Type} rsync-configuration"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:12910
+msgid "Data type representing the configuration for @code{rsync-service}."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:12912
+#, no-wrap
+msgid "@code{package} (default: @var{rsync})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:12914
+msgid "@code{rsync} package to use."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:12915
+#, no-wrap
+msgid "@code{port-number} (default: @code{873})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:12919
+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:12920
+#, no-wrap
+msgid "@code{pid-file} (default: @code{\"/var/run/rsyncd/rsyncd.pid\"})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:12922
+msgid "Name of the file where @command{rsync} writes its PID."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:12923
+#, no-wrap
+msgid "@code{lock-file} (default: @code{\"/var/run/rsyncd/rsyncd.lock\"})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:12925
+msgid "Name of the file where @command{rsync} writes its lock file."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:12926
+#, no-wrap
+msgid "@code{log-file} (default: @code{\"/var/log/rsyncd.log\"})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:12928
+msgid "Name of the file where @command{rsync} writes its log file."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:12929
+#, no-wrap
+msgid "@code{use-chroot?} (default: @var{#t})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:12931
+msgid "Whether to use chroot for @command{rsync} shared directory."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:12932
+#, no-wrap
+msgid "@code{share-path} (default: @file{/srv/rsync})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:12934
+msgid "Location of the @command{rsync} shared directory."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:12935
+#, no-wrap
+msgid "@code{share-comment} (default: @code{\"Rsync share\"})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:12937
+msgid "Comment of the @command{rsync} shared directory."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:12938
+#, no-wrap
+msgid "@code{read-only?} (default: @var{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:12940
+msgid "Read-write permissions to shared directory."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:12941
+#, no-wrap
+msgid "@code{timeout} (default: @code{300})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:12943
+msgid "I/O timeout in seconds."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:12944
+#, no-wrap
+msgid "@code{user} (default: @var{\"root\"})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:12946
+msgid "Owner of the @code{rsync} process."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:12947
+#, no-wrap
+msgid "@code{group} (default: @var{\"root\"})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:12949
+msgid "Group of the @code{rsync} process."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:12950
+#, no-wrap
+msgid "@code{uid} (default: @var{\"rsyncd\"})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:12953
+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:12954
+#, no-wrap
+msgid "@code{gid} (default: @var{\"rsyncd\"})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:12956
+msgid "Group name or group ID that will be used when accessing the module."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:12961
+msgid "Furthermore, @code{(gnu services ssh)} provides the following services."
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:12961 doc/guix.texi:13000 doc/guix.texi:24540
+#, no-wrap
+msgid "SSH"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:12962 doc/guix.texi:13001 doc/guix.texi:24541
+#, no-wrap
+msgid "SSH server"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:12964
+#, no-wrap
+msgid "{Scheme Procedure} lsh-service [#:host-key \"/etc/lsh/host-key\"] @"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:12973
+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:12979
+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:12983
+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:12988
+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:12992
+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:12996
+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:12998
+msgid "The other options should be self-descriptive."
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:13002
+#, no-wrap
+msgid "{Scheme Variable} openssh-service-type"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:13006
+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: example
+#: doc/guix.texi:13015
+#, no-wrap
+msgid ""
+"(service openssh-service-type\n"
+"         (openssh-configuration\n"
+"           (x11-forwarding? #t)\n"
+"           (permit-root-login 'without-password)\n"
+"           (authorized-keys\n"
+"             `((\"alice\" ,(local-file \"alice.pub\"))\n"
+"               (\"bob\" ,(local-file \"bob.pub\"))))))\n"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:13018
+msgid "See below for details about @code{openssh-configuration}."
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:13021
+msgid "This service can be extended with extra authorized keys, as in this example:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:13026
+#, no-wrap
+msgid ""
+"(service-extension openssh-service-type\n"
+"                   (const `((\"charlie\"\n"
+"                             ,(local-file \"charlie.pub\")))))\n"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:13029
+#, no-wrap
+msgid "{Data Type} openssh-configuration"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:13031
+msgid "This is the configuration record for OpenSSH's @command{sshd}."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13033
+#, no-wrap
+msgid "@code{pid-file} (default: @code{\"/var/run/sshd.pid\"})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:13035
+msgid "Name of the file where @command{sshd} writes its PID."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13036
+#, no-wrap
+msgid "@code{port-number} (default: @code{22})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:13038
+msgid "TCP port on which @command{sshd} listens for incoming connections."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13039
+#, no-wrap
+msgid "@code{permit-root-login} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:13044
+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:13045 doc/guix.texi:13206
+#, no-wrap
+msgid "@code{allow-empty-passwords?} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:13048
+msgid "When true, users with empty passwords may log in.  When false, they may not."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13049 doc/guix.texi:13209
+#, no-wrap
+msgid "@code{password-authentication?} (default: @code{#t})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:13052
+msgid "When true, users may log in with their password.  When false, they have other authentication methods."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13053
+#, no-wrap
+msgid "@code{public-key-authentication?} (default: @code{#t})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:13056
+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:13059
+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:13060
+#, no-wrap
+msgid "@code{x11-forwarding?} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:13064
+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:13065
+#, no-wrap
+msgid "@code{allow-agent-forwarding?} (default: @code{#t})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:13067
+msgid "Whether to allow agent forwarding."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13068
+#, no-wrap
+msgid "@code{allow-tcp-forwarding?} (default: @code{#t})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:13070
+msgid "Whether to allow TCP forwarding."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13071
+#, no-wrap
+msgid "@code{gateway-ports?} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:13073
+msgid "Whether to allow gateway ports."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13074
+#, no-wrap
+msgid "@code{challenge-response-authentication?} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:13077
+msgid "Specifies whether challenge response authentication is allowed (e.g.@: via PAM)."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13078
+#, no-wrap
+msgid "@code{use-pam?} (default: @code{#t})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:13084
+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:13089
+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:13090
+#, no-wrap
+msgid "@code{print-last-log?} (default: @code{#t})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:13093
+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:13094
+#, no-wrap
+msgid "@code{subsystems} (default: @code{'((\"sftp\" \"internal-sftp\"))})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:13096
+msgid "Configures external subsystems (e.g.@: file transfer daemon)."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:13100
+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:13103
+msgid "The command @command{internal-sftp} implements an in-process SFTP server.  Alternately, one can specify the @command{sftp-server} command:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:13108
+#, no-wrap
+msgid ""
+"(service openssh-service-type\n"
+"         (openssh-configuration\n"
+"          (subsystems\n"
+"           `((\"sftp\" ,(file-append openssh \"/libexec/sftp-server\"))))))\n"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13110
+#, no-wrap
+msgid "@code{accepted-environment} (default: @code{'()})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:13112
+msgid "List of strings describing which environment variables may be exported."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:13115
+msgid "Each string gets on its own line.  See the @code{AcceptEnv} option in @code{man sshd_config}."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:13120
+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 ""
+
+#. type: example
+#: doc/guix.texi:13125
+#, no-wrap
+msgid ""
+"(service openssh-service-type\n"
+"         (openssh-configuration\n"
+"           (accepted-environment '(\"COLORTERM\"))))\n"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13127
+#, no-wrap
+msgid "@code{authorized-keys} (default: @code{'()})"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:13128
+#, no-wrap
+msgid "authorized keys, SSH"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:13129
+#, no-wrap
+msgid "SSH authorized keys"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:13133
+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: example
+#: doc/guix.texi:13140
+#, no-wrap
+msgid ""
+"(openssh-configuration\n"
+"  (authorized-keys\n"
+"    `((\"rekado\" ,(local-file \"rekado.pub\"))\n"
+"      (\"chris\" ,(local-file \"chris.pub\"))\n"
+"      (\"root\" ,(local-file \"rekado.pub\") ,(local-file \"chris.pub\")))))\n"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:13145
+msgid "registers the specified public keys for user accounts @code{rekado}, @code{chris}, and @code{root}."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:13148
+msgid "Additional authorized keys can be specified @i{via} @code{service-extension}."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:13151
+msgid "Note that this does @emph{not} interfere with the use of @file{~/.ssh/authorized_keys}."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13152
+#, no-wrap
+msgid "@code{log-level} (default: @code{'info})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:13156
+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:13157 doc/guix.texi:18738
+#, no-wrap
+msgid "@code{extra-content} (default: @code{\"\"})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:13162
+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: example
+#: doc/guix.texi:13168
+#, no-wrap
+msgid ""
+"(openssh-configuration\n"
+"  (extra-content \"\\\n"
+"Match Address 192.168.0.1\n"
+"  PermitRootLogin yes\"))\n"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:13173
+#, no-wrap
+msgid "{Scheme Procedure} dropbear-service [@var{config}]"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:13177
+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:13180
+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: example
+#: doc/guix.texi:13184
+#, no-wrap
+msgid ""
+"(dropbear-service (dropbear-configuration\n"
+"                    (port-number 1234)))\n"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:13187
+#, no-wrap
+msgid "{Data Type} dropbear-configuration"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:13189
+msgid "This data type represents the configuration of a Dropbear SSH daemon."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13191
+#, no-wrap
+msgid "@code{dropbear} (default: @var{dropbear})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:13193
+msgid "The Dropbear package to use."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13194
+#, no-wrap
+msgid "@code{port-number} (default: 22)"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:13196
+msgid "The TCP port where the daemon waits for incoming connections."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13197
+#, no-wrap
+msgid "@code{syslog-output?} (default: @code{#t})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:13199
+msgid "Whether to enable syslog output."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13200
+#, no-wrap
+msgid "@code{pid-file} (default: @code{\"/var/run/dropbear.pid\"})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:13202
+msgid "File name of the daemon's PID file."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13203
+#, no-wrap
+msgid "@code{root-login?} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:13205
+msgid "Whether to allow @code{root} logins."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:13208
+msgid "Whether to allow empty passwords."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:13211
+msgid "Whether to enable password-based authentication."
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:13214
+#, no-wrap
+msgid "{Scheme Variable} %facebook-host-aliases"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:13220
+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:13224
+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: example
+#: doc/guix.texi:13227
+#, no-wrap
+msgid ""
+"(use-modules (gnu) (guix))\n"
+"\n"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:13237
+#, no-wrap
+msgid ""
+"(operating-system\n"
+"  (host-name \"mymachine\")\n"
+"  ;; ...\n"
+"  (hosts-file\n"
+"    ;; Create a /etc/hosts file with aliases for \"localhost\"\n"
+"    ;; and \"mymachine\", as well as for Facebook servers.\n"
+"    (plain-file \"hosts\"\n"
+"                (string-append (local-host-aliases host-name)\n"
+"                               %facebook-host-aliases))))\n"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:13241
+msgid "This mechanism can prevent programs running locally, such as Web browsers, from accessing Facebook."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:13244
+msgid "The @code{(gnu services avahi)} provides the following definition."
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:13245
+#, no-wrap
+msgid "{Scheme Variable} avahi-service-type"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:13250
+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{http://avahi.org/}).  Its value must be a @code{zero-configuration} record---see below."
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:13255
+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 ""
+
+#. type: defvr
+#: doc/guix.texi:13258
+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:13260
+#, no-wrap
+msgid "{Data Type} avahi-configuration"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:13262
+msgid "Data type representation the configuration for Avahi."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13265
+#, no-wrap
+msgid "@code{host-name} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:13268
+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:13269
+#, no-wrap
+msgid "@code{publish?} (default: @code{#t})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:13272
+msgid "When true, allow host names and services to be published (broadcast) over the network."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13273
+#, no-wrap
+msgid "@code{publish-workstation?} (default: @code{#t})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:13277
+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:13280
+#, no-wrap
+msgid "avahi-browse _workstation._tcp\n"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13282
+#, no-wrap
+msgid "@code{wide-area?} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:13284
+msgid "When true, DNS-SD over unicast DNS is enabled."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13285
+#, no-wrap
+msgid "@code{ipv4?} (default: @code{#t})"
+msgstr ""
+
+#. type: itemx
+#: doc/guix.texi:13286
+#, no-wrap
+msgid "@code{ipv6?} (default: @code{#t})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:13288
+msgid "These fields determine whether to use IPv4/IPv6 sockets."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13289
+#, no-wrap
+msgid "@code{domains-to-browse} (default: @code{'()})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:13291
+msgid "This is a list of domains to browse."
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:13294
+#, no-wrap
+msgid "{Scheme Variable} openvswitch-service-type"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:13298
+msgid "This is the type of the @uref{http://www.openvswitch.org, Open vSwitch} service, whose value should be an @code{openvswitch-configuration} object."
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:13300
+#, no-wrap
+msgid "{Data Type} openvswitch-configuration"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:13304
+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:13306
+#, no-wrap
+msgid "@code{package} (default: @var{openvswitch})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:13308
+msgid "Package object of the Open vSwitch."
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:13315
+#, no-wrap
+msgid "X11"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:13316
+#, no-wrap
+msgid "X Window System"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:13317 doc/guix.texi:13533
+#, no-wrap
+msgid "login manager"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:13322
+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:13323
+#, no-wrap
+msgid "GDM"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:13324
+#, no-wrap
+msgid "GNOME, login manager"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:13328
+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:13329
+#, no-wrap
+msgid "window manager"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:13334
+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:13335
+#, no-wrap
+msgid "{Scheme Variable} gdm-service-type"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:13340
+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:13341
+#, no-wrap
+msgid "session types (X11)"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:13342
+#, no-wrap
+msgid "X11 session types"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:13348
+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:13352
+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:13354
+#, no-wrap
+msgid "{Data Type} gdm-configuration"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13356 doc/guix.texi:13395
+#, no-wrap
+msgid "@code{auto-login?} (default: @code{#f})"
+msgstr ""
+
+#. type: itemx
+#: doc/guix.texi:13357
+#, no-wrap
+msgid "@code{default-user} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:13359
+msgid "When @code{auto-login?} is false, GDM presents a log-in screen."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:13362
+msgid "When @code{auto-login?} is true, GDM logs in directly as @code{default-user}."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13363
+#, no-wrap
+msgid "@code{gnome-shell-assets} (default: ...)"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:13365
+msgid "List of GNOME Shell assets needed by GDM: icon theme, fonts, etc."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13366
+#, no-wrap
+msgid "@code{xorg-configuration} (default: @code{(xorg-configuration)})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:13368 doc/guix.texi:13422 doc/guix.texi:13499
+msgid "Configuration of the Xorg graphical server."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13369
+#, no-wrap
+msgid "@code{xsession} (default: @code{(xinitrc)})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:13371 doc/guix.texi:13514
+msgid "Script to run before starting a X session."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13372
+#, no-wrap
+msgid "@code{dbus-daemon} (default: @code{dbus-daemon-wrapper})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:13374
+msgid "File name of the @code{dbus-daemon} executable."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13375
+#, no-wrap
+msgid "@code{gdm} (default: @code{gdm})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:13377
+msgid "The GDM package to use."
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:13380
+#, no-wrap
+msgid "{Scheme Variable} slim-service-type"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:13382
+msgid "This is the type for the SLiM graphical login manager for X11."
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:13386
+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: deftp
+#: doc/guix.texi:13388
+#, no-wrap
+msgid "{Data Type} slim-configuration"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:13390
+msgid "Data type representing the configuration of @code{slim-service-type}."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:13394
+msgid "Whether to allow logins with empty passwords."
+msgstr ""
+
+#. type: itemx
+#: doc/guix.texi:13396
+#, no-wrap
+msgid "@code{default-user} (default: @code{\"\"})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:13398
+msgid "When @code{auto-login?} is false, SLiM presents a log-in screen."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:13401
+msgid "When @code{auto-login?} is true, SLiM logs in directly as @code{default-user}."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13402
+#, no-wrap
+msgid "@code{theme} (default: @code{%default-slim-theme})"
+msgstr ""
+
+#. type: itemx
+#: doc/guix.texi:13403
+#, no-wrap
+msgid "@code{theme-name} (default: @code{%default-slim-theme-name})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:13405
+msgid "The graphical theme to use and its name."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13406
+#, no-wrap
+msgid "@code{auto-login-session} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:13409
+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:13413
+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:13418
+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:13420 doc/guix.texi:13497
+#, no-wrap
+msgid "@code{xorg-configuration} (default @code{(xorg-configuration)})"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13423
+#, no-wrap
+msgid "@code{xauth} (default: @code{xauth})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:13425
+msgid "The XAuth package to use."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13426
+#, no-wrap
+msgid "@code{shepherd} (default: @code{shepherd})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:13429
+msgid "The Shepherd package used when invoking @command{halt} and @command{reboot}."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13430
+#, no-wrap
+msgid "@code{sessreg} (default: @code{sessreg})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:13432
+msgid "The sessreg package used in order to register the session."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13433
+#, no-wrap
+msgid "@code{slim} (default: @code{slim})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:13435
+msgid "The SLiM package to use."
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:13438 doc/guix.texi:24007
+#, no-wrap
+msgid "{Scheme Variable} %default-theme"
+msgstr ""
+
+#. type: defvrx
+#: doc/guix.texi:13439
+#, no-wrap
+msgid "{Scheme Variable} %default-theme-name"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:13441
+msgid "The default SLiM theme and its name."
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:13444
+#, no-wrap
+msgid "{Data Type} sddm-configuration"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:13446
+msgid "This is the data type representing the sddm service configuration."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13448
+#, no-wrap
+msgid "@code{display-server} (default: \"x11\")"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:13451
+msgid "Select display server to use for the greeter. Valid values are \"x11\" or \"wayland\"."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13452
+#, no-wrap
+msgid "@code{numlock} (default: \"on\")"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:13454
+msgid "Valid values are \"on\", \"off\" or \"none\"."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13455
+#, no-wrap
+msgid "@code{halt-command} (default @code{#~(string-apppend #$shepherd \"/sbin/halt\")})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:13457
+msgid "Command to run when halting."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13458
+#, no-wrap
+msgid "@code{reboot-command} (default @code{#~(string-append #$shepherd \"/sbin/reboot\")})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:13460
+msgid "Command to run when rebooting."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13461
+#, no-wrap
+msgid "@code{theme} (default \"maldives\")"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:13463
+msgid "Theme to use. Default themes provided by SDDM are \"elarun\" or \"maldives\"."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13464
+#, no-wrap
+msgid "@code{themes-directory} (default \"/run/current-system/profile/share/sddm/themes\")"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:13466
+msgid "Directory to look for themes."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13467
+#, no-wrap
+msgid "@code{faces-directory} (default \"/run/current-system/profile/share/sddm/faces\")"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:13469
+msgid "Directory to look for faces."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13470
+#, no-wrap
+msgid "@code{default-path} (default \"/run/current-system/profile/bin\")"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:13472
+msgid "Default PATH to use."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13473
+#, no-wrap
+msgid "@code{minimum-uid} (default 1000)"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:13475
+msgid "Minimum UID to display in SDDM."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13476
+#, no-wrap
+msgid "@code{maximum-uid} (default 2000)"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:13478
+msgid "Maximum UID to display in SDDM"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13479
+#, no-wrap
+msgid "@code{remember-last-user?} (default #t)"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:13481
+msgid "Remember last user."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13482
+#, no-wrap
+msgid "@code{remember-last-session?} (default #t)"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:13484
+msgid "Remember last session."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13485
+#, no-wrap
+msgid "@code{hide-users} (default \"\")"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:13487
+msgid "Usernames to hide from SDDM greeter."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13488
+#, no-wrap
+msgid "@code{hide-shells} (default @code{#~(string-append #$shadow \"/sbin/nologin\")})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:13490
+msgid "Users with shells listed will be hidden from the SDDM greeter."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13491
+#, no-wrap
+msgid "@code{session-command} (default @code{#~(string-append #$sddm \"/share/sddm/scripts/wayland-session\")})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:13493
+msgid "Script to run before starting a wayland session."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13494
+#, no-wrap
+msgid "@code{sessions-directory} (default \"/run/current-system/profile/share/wayland-sessions\")"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:13496
+msgid "Directory to look for desktop files starting wayland sessions."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13500
+#, no-wrap
+msgid "@code{xauth-path} (default @code{#~(string-append #$xauth \"/bin/xauth\")})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:13502
+msgid "Path to xauth."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13503
+#, no-wrap
+msgid "@code{xephyr-path} (default @code{#~(string-append #$xorg-server \"/bin/Xephyr\")})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:13505
+msgid "Path to Xephyr."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13506
+#, no-wrap
+msgid "@code{xdisplay-start} (default @code{#~(string-append #$sddm \"/share/sddm/scripts/Xsetup\")})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:13508
+msgid "Script to run after starting xorg-server."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13509
+#, no-wrap
+msgid "@code{xdisplay-stop} (default @code{#~(string-append #$sddm \"/share/sddm/scripts/Xstop\")})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:13511
+msgid "Script to run before stopping xorg-server."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13512
+#, no-wrap
+msgid "@code{xsession-command} (default: @code{xinitrc})"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13515
+#, no-wrap
+msgid "@code{xsessions-directory} (default: \"/run/current-system/profile/share/xsessions\")"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:13517
+msgid "Directory to look for desktop files starting X sessions."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13518
+#, no-wrap
+msgid "@code{minimum-vt} (default: 7)"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:13520
+msgid "Minimum VT to use."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13521
+#, no-wrap
+msgid "@code{auto-login-user} (default \"\")"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:13523
+msgid "User to use for auto-login."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13524
+#, no-wrap
+msgid "@code{auto-login-session} (default \"\")"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:13526
+msgid "Desktop file to use for auto-login."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13527
+#, no-wrap
+msgid "@code{relogin?} (default #f)"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:13529
+msgid "Relogin after logout."
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:13534
+#, no-wrap
+msgid "X11 login"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:13535
+#, no-wrap
+msgid "{Scheme Procedure} sddm-service config"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:13538
+msgid "Return a service that spawns the SDDM graphical login manager for config of type @code{<sddm-configuration>}."
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:13543
+#, no-wrap
+msgid ""
+"  (sddm-service (sddm-configuration\n"
+"                 (auto-login-user \"Alice\")\n"
+"                 (auto-login-session \"xfce.desktop\")))\n"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:13546
+#, no-wrap
+msgid "Xorg, configuration"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:13547
+#, no-wrap
+msgid "{Data Type} xorg-configuration"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:13552
+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 ""
+
+#. type: item
+#: doc/guix.texi:13554
+#, no-wrap
+msgid "@code{modules} (default: @code{%default-xorg-modules})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:13557
+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:13558
+#, no-wrap
+msgid "@code{fonts} (default: @code{%default-xorg-fonts})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:13560
+msgid "This is a list of font directories to add to the server's @dfn{font path}."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13561
+#, no-wrap
+msgid "@code{drivers} (default: @code{'()})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:13565
+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:13566
+#, no-wrap
+msgid "@code{resolutions} (default: @code{'()})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:13570
+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:13571
+#, no-wrap
+msgid "keyboard layout, for Xorg"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:13572
+#, no-wrap
+msgid "keymap, for Xorg"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:13576
+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:13580
+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:13581
+#, no-wrap
+msgid "@code{extra-config} (default: @code{'()})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:13584
+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:13585
+#, no-wrap
+msgid "@code{server} (default: @code{xorg-server})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:13587
+msgid "This is the package providing the Xorg server."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13588
+#, no-wrap
+msgid "@code{server-arguments} (default: @code{%default-xorg-server-arguments})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:13591
+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:13594
+#, no-wrap
+msgid "{Scheme Procedure} set-xorg-configuration @var{config} @"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:13598
+msgid "[@var{login-manager-service-type}] Tell the log-in manager (of type @var{login-manager-service-type}) to use @var{config}, an <xorg-configuration> record."
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:13602
+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:13604
+#, no-wrap
+msgid "{Scheme Procedure} xorg-start-command [@var{config}]"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:13608
+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:13610
+msgid "Usually the X server is started by a login manager."
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:13613
+#, no-wrap
+msgid "{Scheme Procedure} screen-locker-service @var{package} [@var{program}]"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:13617
+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:13620
+#, no-wrap
+msgid "(screen-locker-service xlockmore \"xlock\")\n"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:13623
+msgid "makes the good ol' XlockMore usable."
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:13629
+#, no-wrap
+msgid "printer support with CUPS"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:13633
+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:13634
+#, no-wrap
+msgid "{Scheme Variable} cups-service-type"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:13638
+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: example
+#: doc/guix.texi:13640
+#, no-wrap
+msgid "(service cups-service-type)\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:13650
+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:13655
+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: example
+#: doc/guix.texi:13662
+#, no-wrap
+msgid ""
+"(service cups-service-type\n"
+"         (cups-configuration\n"
+"           (web-interface? #t)\n"
+"           (extensions\n"
+"             (list cups-filters escpr hplip-minimal))))\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:13667
+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:13674
+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:13685
+msgid "Available @code{cups-configuration} fields are:"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:13686
+#, no-wrap
+msgid "{@code{cups-configuration} parameter} package cups"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:13688 doc/guix.texi:14445
+msgid "The CUPS package."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:13690
+#, no-wrap
+msgid "{@code{cups-configuration} parameter} package-list extensions"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:13692
+msgid "Drivers and other extensions to the CUPS package."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:13694
+#, no-wrap
+msgid "{@code{cups-configuration} parameter} files-configuration files-configuration"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:13697
+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:13699
+msgid "Available @code{files-configuration} fields are:"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:13700
+#, no-wrap
+msgid "{@code{files-configuration} parameter} log-location access-log"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:13708
+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:13710
+msgid "Defaults to @samp{\"/var/log/cups/access_log\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:13712
+#, no-wrap
+msgid "{@code{files-configuration} parameter} file-name cache-dir"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:13714
+msgid "Where CUPS should cache data."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:13716
+msgid "Defaults to @samp{\"/var/cache/cups\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:13718
+#, no-wrap
+msgid "{@code{files-configuration} parameter} string config-file-perm"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:13721
+msgid "Specifies the permissions for all configuration files that the scheduler writes."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:13727
+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:13729
+msgid "Defaults to @samp{\"0640\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:13731
+#, no-wrap
+msgid "{@code{files-configuration} parameter} log-location error-log"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:13739
+msgid "Defines the error 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-error_log}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:13741
+msgid "Defaults to @samp{\"/var/log/cups/error_log\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:13743
+#, no-wrap
+msgid "{@code{files-configuration} parameter} string fatal-errors"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:13746
+msgid "Specifies which errors are fatal, causing the scheduler to exit.  The kind strings are:"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:13750
+msgid "No errors are fatal."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:13753
+msgid "All of the errors below are fatal."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13754
+#, no-wrap
+msgid "browse"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:13757
+msgid "Browsing initialization errors are fatal, for example failed connections to the DNS-SD daemon."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13758
+#, no-wrap
+msgid "config"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:13760
+msgid "Configuration file syntax errors are fatal."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13761
+#, no-wrap
+msgid "listen"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:13764
+msgid "Listen or Port errors are fatal, except for IPv6 failures on the loopback or @code{any} addresses."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13765
+#, no-wrap
+msgid "log"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:13767
+msgid "Log file creation or write errors are fatal."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:13768
+#, no-wrap
+msgid "permissions"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:13771
+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:13774
+msgid "Defaults to @samp{\"all -browse\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:13776
+#, no-wrap
+msgid "{@code{files-configuration} parameter} boolean file-device?"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:13779
+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:13781 doc/guix.texi:13851 doc/guix.texi:13887
+#: doc/guix.texi:13899 doc/guix.texi:13905 doc/guix.texi:13921
+#: doc/guix.texi:14009 doc/guix.texi:14103 doc/guix.texi:14419
+#: doc/guix.texi:14432 doc/guix.texi:20054 doc/guix.texi:20068
+#: doc/guix.texi:20190 doc/guix.texi:20211 doc/guix.texi:20232
+#: doc/guix.texi:20239 doc/guix.texi:20284 doc/guix.texi:20291
+#: doc/guix.texi:20718 doc/guix.texi:20732 doc/guix.texi:20904
+#: doc/guix.texi:20949 doc/guix.texi:21036 doc/guix.texi:21177
+#: doc/guix.texi:21210 doc/guix.texi:21350 doc/guix.texi:21361
+#: doc/guix.texi:21611 doc/guix.texi:22253 doc/guix.texi:22262
+#: doc/guix.texi:22270 doc/guix.texi:22278 doc/guix.texi:22294
+#: doc/guix.texi:22310 doc/guix.texi:22318 doc/guix.texi:22326
+#: doc/guix.texi:22335 doc/guix.texi:22344 doc/guix.texi:22360
+#: doc/guix.texi:22424 doc/guix.texi:22530 doc/guix.texi:22538
+#: doc/guix.texi:22546 doc/guix.texi:22571 doc/guix.texi:22625
+#: doc/guix.texi:22673 doc/guix.texi:22874 doc/guix.texi:22881
+msgid "Defaults to @samp{#f}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:13783
+#, no-wrap
+msgid "{@code{files-configuration} parameter} string group"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:13786
+msgid "Specifies the group name or ID that will be used when executing external programs."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:13788 doc/guix.texi:13868
+msgid "Defaults to @samp{\"lp\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:13790
+#, no-wrap
+msgid "{@code{files-configuration} parameter} string log-file-perm"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:13792
+msgid "Specifies the permissions for all log files that the scheduler writes."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:13794
+msgid "Defaults to @samp{\"0644\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:13796
+#, no-wrap
+msgid "{@code{files-configuration} parameter} log-location page-log"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:13804
+msgid "Defines the page 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-page_log}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:13806
+msgid "Defaults to @samp{\"/var/log/cups/page_log\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:13808
+#, no-wrap
+msgid "{@code{files-configuration} parameter} string remote-root"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:13811
+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:13813
+msgid "Defaults to @samp{\"remroot\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:13815
+#, no-wrap
+msgid "{@code{files-configuration} parameter} file-name request-root"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:13818
+msgid "Specifies the directory that contains print jobs and other HTTP request data."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:13820
+msgid "Defaults to @samp{\"/var/spool/cups\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:13822
+#, no-wrap
+msgid "{@code{files-configuration} parameter} sandboxing sandboxing"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:13827
+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:13829
+msgid "Defaults to @samp{strict}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:13831
+#, no-wrap
+msgid "{@code{files-configuration} parameter} file-name server-keychain"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:13836
+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 ""
+
+#. type: deftypevr
+#: doc/guix.texi:13838
+msgid "Defaults to @samp{\"/etc/cups/ssl\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:13840
+#, no-wrap
+msgid "{@code{files-configuration} parameter} file-name server-root"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:13842
+msgid "Specifies the directory containing the server configuration files."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:13844
+msgid "Defaults to @samp{\"/etc/cups\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:13846
+#, no-wrap
+msgid "{@code{files-configuration} parameter} boolean sync-on-close?"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:13849
+msgid "Specifies whether the scheduler calls fsync(2) after writing configuration or state files."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:13853
+#, no-wrap
+msgid "{@code{files-configuration} parameter} space-separated-string-list system-group"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:13855
+msgid "Specifies the group(s) to use for @code{@@SYSTEM} group authentication."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:13857
+#, no-wrap
+msgid "{@code{files-configuration} parameter} file-name temp-dir"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:13859
+msgid "Specifies the directory where temporary files are stored."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:13861
+msgid "Defaults to @samp{\"/var/spool/cups/tmp\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:13863
+#, no-wrap
+msgid "{@code{files-configuration} parameter} string user"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:13866
+msgid "Specifies the user name or ID that is used when running external programs."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:13871
+#, no-wrap
+msgid "{@code{cups-configuration} parameter} access-log-level access-log-level"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:13878
+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:13880
+msgid "Defaults to @samp{actions}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:13882
+#, no-wrap
+msgid "{@code{cups-configuration} parameter} boolean auto-purge-jobs?"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:13885
+msgid "Specifies whether to purge job history data automatically when it is no longer required for quotas."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:13889
+#, no-wrap
+msgid "{@code{cups-configuration} parameter} browse-local-protocols browse-local-protocols"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:13891
+msgid "Specifies which protocols to use for local printer sharing."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:13893
+msgid "Defaults to @samp{dnssd}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:13895
+#, no-wrap
+msgid "{@code{cups-configuration} parameter} boolean browse-web-if?"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:13897
+msgid "Specifies whether the CUPS web interface is advertised."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:13901
+#, no-wrap
+msgid "{@code{cups-configuration} parameter} boolean browsing?"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:13903
+msgid "Specifies whether shared printers are advertised."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:13907
+#, no-wrap
+msgid "{@code{cups-configuration} parameter} string classification"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:13912
+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:13914 doc/guix.texi:14251 doc/guix.texi:15854
+#: doc/guix.texi:15866 doc/guix.texi:17568 doc/guix.texi:17594
+#: doc/guix.texi:17630 doc/guix.texi:17695 doc/guix.texi:17734
+#: doc/guix.texi:17793 doc/guix.texi:17802 doc/guix.texi:21316
+#: doc/guix.texi:21324 doc/guix.texi:21332 doc/guix.texi:21340
+#: doc/guix.texi:21618 doc/guix.texi:22096 doc/guix.texi:22104
+#: doc/guix.texi:22112 doc/guix.texi:22220 doc/guix.texi:22245
+#: doc/guix.texi:22376 doc/guix.texi:22384 doc/guix.texi:22392
+#: doc/guix.texi:22400 doc/guix.texi:22408 doc/guix.texi:22416
+#: doc/guix.texi:22439 doc/guix.texi:22447 doc/guix.texi:22499
+#: doc/guix.texi:22515 doc/guix.texi:22523 doc/guix.texi:22562
+#: doc/guix.texi:22585 doc/guix.texi:22607 doc/guix.texi:22614
+#: doc/guix.texi:22649 doc/guix.texi:22657 doc/guix.texi:22681
+#: doc/guix.texi:22713 doc/guix.texi:22742 doc/guix.texi:22749
+#: doc/guix.texi:22756 doc/guix.texi:22764 doc/guix.texi:22778
+#: doc/guix.texi:22787 doc/guix.texi:22797 doc/guix.texi:22804
+#: doc/guix.texi:22811 doc/guix.texi:22818 doc/guix.texi:22889
+#: doc/guix.texi:22896 doc/guix.texi:22903 doc/guix.texi:22912
+#: doc/guix.texi:22928 doc/guix.texi:22935 doc/guix.texi:22942
+#: doc/guix.texi:22949 doc/guix.texi:22957 doc/guix.texi:22965
+msgid "Defaults to @samp{\"\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:13916
+#, no-wrap
+msgid "{@code{cups-configuration} parameter} boolean classify-override?"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:13919
+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:13923
+#, no-wrap
+msgid "{@code{cups-configuration} parameter} default-auth-type default-auth-type"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:13925
+msgid "Specifies the default type of authentication to use."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:13927
+msgid "Defaults to @samp{Basic}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:13929
+#, no-wrap
+msgid "{@code{cups-configuration} parameter} default-encryption default-encryption"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:13931
+msgid "Specifies whether encryption will be used for authenticated requests."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:13933
+msgid "Defaults to @samp{Required}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:13935
+#, no-wrap
+msgid "{@code{cups-configuration} parameter} string default-language"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:13937
+msgid "Specifies the default language to use for text and web content."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:13939
+msgid "Defaults to @samp{\"en\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:13941
+#, no-wrap
+msgid "{@code{cups-configuration} parameter} string default-paper-size"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:13946
+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:13948
+msgid "Defaults to @samp{\"Auto\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:13950
+#, no-wrap
+msgid "{@code{cups-configuration} parameter} string default-policy"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:13952
+msgid "Specifies the default access policy to use."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:13954
+msgid "Defaults to @samp{\"default\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:13956
+#, no-wrap
+msgid "{@code{cups-configuration} parameter} boolean default-shared?"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:13958
+msgid "Specifies whether local printers are shared by default."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:13960 doc/guix.texi:14040 doc/guix.texi:14336
+#: doc/guix.texi:19876 doc/guix.texi:19904 doc/guix.texi:20024
+#: doc/guix.texi:20031 doc/guix.texi:20039 doc/guix.texi:20061
+#: doc/guix.texi:20075 doc/guix.texi:20160 doc/guix.texi:20167
+#: doc/guix.texi:20175 doc/guix.texi:20585 doc/guix.texi:20725
+#: doc/guix.texi:20911 doc/guix.texi:20918 doc/guix.texi:20940
+#: doc/guix.texi:20979 doc/guix.texi:20999 doc/guix.texi:21013
+#: doc/guix.texi:21165 doc/guix.texi:22198 doc/guix.texi:22286
+#: doc/guix.texi:22302 doc/guix.texi:22352
+msgid "Defaults to @samp{#t}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:13962
+#, no-wrap
+msgid "{@code{cups-configuration} parameter} non-negative-integer dirty-clean-interval"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:13966
+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:13968 doc/guix.texi:14016 doc/guix.texi:14025
+#: doc/guix.texi:14046 doc/guix.texi:14343
+msgid "Defaults to @samp{30}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:13970
+#, no-wrap
+msgid "{@code{cups-configuration} parameter} error-policy error-policy"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:13976
+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 ""
+
+#. type: deftypevr
+#: doc/guix.texi:13978
+msgid "Defaults to @samp{stop-printer}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:13980
+#, no-wrap
+msgid "{@code{cups-configuration} parameter} non-negative-integer filter-limit"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:13988
+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:13990 doc/guix.texi:13998 doc/guix.texi:14053
+#: doc/guix.texi:14169 doc/guix.texi:14183 doc/guix.texi:14190
+#: doc/guix.texi:15296 doc/guix.texi:15312 doc/guix.texi:15958
+#: doc/guix.texi:15970 doc/guix.texi:20601 doc/guix.texi:20926
+#: doc/guix.texi:22191 doc/guix.texi:22491 doc/guix.texi:22665
+msgid "Defaults to @samp{0}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:13992
+#, no-wrap
+msgid "{@code{cups-configuration} parameter} non-negative-integer filter-nice"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:13996
+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:14000
+#, no-wrap
+msgid "{@code{cups-configuration} parameter} host-name-lookups host-name-lookups"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14007
+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:14011
+#, no-wrap
+msgid "{@code{cups-configuration} parameter} non-negative-integer job-kill-delay"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14014
+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:14018
+#, no-wrap
+msgid "{@code{cups-configuration} parameter} non-negative-integer job-retry-interval"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14023
+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:14027
+#, no-wrap
+msgid "{@code{cups-configuration} parameter} non-negative-integer job-retry-limit"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14032
+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:14034 doc/guix.texi:21417 doc/guix.texi:21437
+#: doc/guix.texi:21453 doc/guix.texi:21467 doc/guix.texi:21474
+#: doc/guix.texi:21481 doc/guix.texi:21488 doc/guix.texi:21647
+#: doc/guix.texi:21663 doc/guix.texi:21670 doc/guix.texi:21677
+#: doc/guix.texi:21688 doc/guix.texi:22143 doc/guix.texi:22151
+#: doc/guix.texi:22159 doc/guix.texi:22183
+msgid "Defaults to @samp{5}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14036
+#, no-wrap
+msgid "{@code{cups-configuration} parameter} boolean keep-alive?"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14038
+msgid "Specifies whether to support HTTP keep-alive connections."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14042
+#, no-wrap
+msgid "{@code{cups-configuration} parameter} non-negative-integer keep-alive-timeout"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14044
+msgid "Specifies how long an idle client connection remains open, in seconds."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14048
+#, no-wrap
+msgid "{@code{cups-configuration} parameter} non-negative-integer limit-request-body"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14051
+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:14055
+#, no-wrap
+msgid "{@code{cups-configuration} parameter} multiline-string-list listen"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14062
+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:14064
+#, no-wrap
+msgid "{@code{cups-configuration} parameter} non-negative-integer listen-back-log"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14071
+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:14073
+msgid "Defaults to @samp{128}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14075
+#, no-wrap
+msgid "{@code{cups-configuration} parameter} location-access-control-list location-access-controls"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14077
+msgid "Specifies a set of additional access controls."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14079
+msgid "Available @code{location-access-controls} fields are:"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14080
+#, no-wrap
+msgid "{@code{location-access-controls} parameter} file-name path"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14082
+msgid "Specifies the URI path to which the access control applies."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14084
+#, no-wrap
+msgid "{@code{location-access-controls} parameter} access-control-list access-controls"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14087
+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:14089 doc/guix.texi:14095 doc/guix.texi:14109
+#: doc/guix.texi:14116 doc/guix.texi:14258 doc/guix.texi:14317
+#: doc/guix.texi:14401 doc/guix.texi:14412 doc/guix.texi:16444
+#: doc/guix.texi:17638 doc/guix.texi:17742 doc/guix.texi:18167
+#: doc/guix.texi:18175 doc/guix.texi:18420 doc/guix.texi:19935
+#: doc/guix.texi:20082 doc/guix.texi:20270 doc/guix.texi:21308
+#: doc/guix.texi:21368 doc/guix.texi:21376 doc/guix.texi:22206
+#: doc/guix.texi:22213 doc/guix.texi:22555 doc/guix.texi:22633
+#: doc/guix.texi:22727 doc/guix.texi:22735 doc/guix.texi:22771
+#: doc/guix.texi:22921 doc/guix.texi:22972 doc/guix.texi:22981
+msgid "Defaults to @samp{()}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14091
+#, no-wrap
+msgid "{@code{location-access-controls} parameter} method-access-control-list method-access-controls"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14093
+msgid "Access controls for method-specific access to this path."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14097
+msgid "Available @code{method-access-controls} fields are:"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14098
+#, no-wrap
+msgid "{@code{method-access-controls} parameter} boolean reverse?"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14101
+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:14105
+#, no-wrap
+msgid "{@code{method-access-controls} parameter} method-list methods"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14107
+msgid "Methods to which this access control applies."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14111
+#, no-wrap
+msgid "{@code{method-access-controls} parameter} access-control-list access-controls"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14114
+msgid "Access control directives, as a list of strings.  Each string should be one directive, such as \"Order allow,deny\"."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14120
+#, no-wrap
+msgid "{@code{cups-configuration} parameter} non-negative-integer log-debug-history"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14124
+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:14126 doc/guix.texi:14147 doc/guix.texi:14154
+#: doc/guix.texi:16204 doc/guix.texi:20255
+msgid "Defaults to @samp{100}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14128
+#, no-wrap
+msgid "{@code{cups-configuration} parameter} log-level log-level"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14131
+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:14133
+msgid "Defaults to @samp{info}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14135
+#, no-wrap
+msgid "{@code{cups-configuration} parameter} log-time-format log-time-format"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14138
+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:14140
+msgid "Defaults to @samp{standard}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14142
+#, no-wrap
+msgid "{@code{cups-configuration} parameter} non-negative-integer max-clients"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14145
+msgid "Specifies the maximum number of simultaneous clients that are allowed by the scheduler."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14149
+#, no-wrap
+msgid "{@code{cups-configuration} parameter} non-negative-integer max-clients-per-host"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14152
+msgid "Specifies the maximum number of simultaneous clients that are allowed from a single address."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14156
+#, no-wrap
+msgid "{@code{cups-configuration} parameter} non-negative-integer max-copies"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14159
+msgid "Specifies the maximum number of copies that a user can print of each job."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14161
+msgid "Defaults to @samp{9999}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14163
+#, no-wrap
+msgid "{@code{cups-configuration} parameter} non-negative-integer max-hold-time"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14167
+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:14171
+#, no-wrap
+msgid "{@code{cups-configuration} parameter} non-negative-integer max-jobs"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14174
+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:14176
+msgid "Defaults to @samp{500}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14178
+#, no-wrap
+msgid "{@code{cups-configuration} parameter} non-negative-integer max-jobs-per-printer"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14181
+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:14185
+#, no-wrap
+msgid "{@code{cups-configuration} parameter} non-negative-integer max-jobs-per-user"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14188
+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:14192
+#, no-wrap
+msgid "{@code{cups-configuration} parameter} non-negative-integer max-job-time"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14195
+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:14197
+msgid "Defaults to @samp{10800}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14199
+#, no-wrap
+msgid "{@code{cups-configuration} parameter} non-negative-integer max-log-size"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14202
+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:14204
+msgid "Defaults to @samp{1048576}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14206
+#, no-wrap
+msgid "{@code{cups-configuration} parameter} non-negative-integer multiple-operation-timeout"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14209
+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:14211 doc/guix.texi:14425 doc/guix.texi:19869
+msgid "Defaults to @samp{300}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14213
+#, no-wrap
+msgid "{@code{cups-configuration} parameter} string page-log-format"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14218
+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:14220
+#, no-wrap
+msgid "%%"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:14222
+msgid "insert a single percent character"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:14223
+#, no-wrap
+msgid "%@{name@}"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:14225
+msgid "insert the value of the specified IPP attribute"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:14226
+#, no-wrap
+msgid "%C"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:14228
+msgid "insert the number of copies for the current page"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:14229
+#, no-wrap
+msgid "%P"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:14231
+msgid "insert the current page number"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:14232
+#, no-wrap
+msgid "%T"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:14234
+msgid "insert the current date and time in common log format"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:14235
+#, no-wrap
+msgid "%j"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:14237
+msgid "insert the job ID"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:14238 doc/guix.texi:15814
+#, no-wrap
+msgid "%p"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:14240
+msgid "insert the printer name"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:14241 doc/guix.texi:15837
+#, no-wrap
+msgid "%u"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:14243
+msgid "insert the username"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14249
+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:14253
+#, no-wrap
+msgid "{@code{cups-configuration} parameter} environment-variables environment-variables"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14256
+msgid "Passes the specified environment variable(s) to child processes; a list of strings."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14260
+#, no-wrap
+msgid "{@code{cups-configuration} parameter} policy-configuration-list policies"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14262
+msgid "Specifies named access control policies."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14264
+msgid "Available @code{policy-configuration} fields are:"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14265
+#, no-wrap
+msgid "{@code{policy-configuration} parameter} string name"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14267
+msgid "Name of the policy."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14269
+#, no-wrap
+msgid "{@code{policy-configuration} parameter} string job-private-access"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14279
+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:14281 doc/guix.texi:14303
+msgid "Defaults to @samp{\"@@OWNER @@SYSTEM\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14283
+#, no-wrap
+msgid "{@code{policy-configuration} parameter} string job-private-values"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14286 doc/guix.texi:14308
+msgid "Specifies the list of job values to make private, or @code{all}, @code{default}, or @code{none}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14289
+msgid "Defaults to @samp{\"job-name job-originating-host-name job-originating-user-name phone\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14291
+#, no-wrap
+msgid "{@code{policy-configuration} parameter} string subscription-private-access"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14301
+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:14305
+#, no-wrap
+msgid "{@code{policy-configuration} parameter} string subscription-private-values"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14311
+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:14313
+#, no-wrap
+msgid "{@code{policy-configuration} parameter} operation-access-control-list access-controls"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14315
+msgid "Access control by IPP operation."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14320
+#, no-wrap
+msgid "{@code{cups-configuration} parameter} boolean-or-non-negative-integer preserve-job-files"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14325
+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:14327
+msgid "Defaults to @samp{86400}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14329
+#, no-wrap
+msgid "{@code{cups-configuration} parameter} boolean-or-non-negative-integer preserve-job-history"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14334
+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:14338
+#, no-wrap
+msgid "{@code{cups-configuration} parameter} non-negative-integer reload-timeout"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14341
+msgid "Specifies the amount of time to wait for job completion before restarting the scheduler."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14345
+#, no-wrap
+msgid "{@code{cups-configuration} parameter} string rip-cache"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14348
+msgid "Specifies the maximum amount of memory to use when converting documents into bitmaps for a printer."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14350
+msgid "Defaults to @samp{\"128m\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14352
+#, no-wrap
+msgid "{@code{cups-configuration} parameter} string server-admin"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14354
+msgid "Specifies the email address of the server administrator."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14356
+msgid "Defaults to @samp{\"root@@localhost.localdomain\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14358
+#, no-wrap
+msgid "{@code{cups-configuration} parameter} host-name-list-or-* server-alias"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14366
+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:14368
+msgid "Defaults to @samp{*}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14370
+#, no-wrap
+msgid "{@code{cups-configuration} parameter} string server-name"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14372
+msgid "Specifies the fully-qualified host name of the server."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14374 doc/guix.texi:17765 doc/guix.texi:17809
+msgid "Defaults to @samp{\"localhost\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14376
+#, no-wrap
+msgid "{@code{cups-configuration} parameter} server-tokens server-tokens"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14384
+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:14386
+msgid "Defaults to @samp{Minimal}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14388
+#, no-wrap
+msgid "{@code{cups-configuration} parameter} string set-env"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14390
+msgid "Set the specified environment variable to be passed to child processes."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14392
+msgid "Defaults to @samp{\"variable value\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14394
+#, no-wrap
+msgid "{@code{cups-configuration} parameter} multiline-string-list ssl-listen"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14399
+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:14403
+#, no-wrap
+msgid "{@code{cups-configuration} parameter} ssl-options ssl-options"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14410
+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 ""
+
+#. type: deftypevr
+#: doc/guix.texi:14414
+#, no-wrap
+msgid "{@code{cups-configuration} parameter} boolean strict-conformance?"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14417
+msgid "Specifies whether the scheduler requires clients to strictly adhere to the IPP specifications."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14421
+#, no-wrap
+msgid "{@code{cups-configuration} parameter} non-negative-integer timeout"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14423
+msgid "Specifies the HTTP request timeout, in seconds."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14428
+#, no-wrap
+msgid "{@code{cups-configuration} parameter} boolean web-interface?"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14430
+msgid "Specifies whether the web interface is enabled."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:14440
+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:14442
+msgid "Available @code{opaque-cups-configuration} fields are:"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14443
+#, no-wrap
+msgid "{@code{opaque-cups-configuration} parameter} package cups"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14447
+#, no-wrap
+msgid "{@code{opaque-cups-configuration} parameter} string cupsd.conf"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14449
+msgid "The contents of the @code{cupsd.conf}, as a string."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14451
+#, no-wrap
+msgid "{@code{opaque-cups-configuration} parameter} string cups-files.conf"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:14453
+msgid "The contents of the @code{cups-files.conf} file, as a string."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:14458
+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: example
+#: doc/guix.texi:14464
+#, no-wrap
+msgid ""
+"(service cups-service-type\n"
+"         (opaque-cups-configuration\n"
+"           (cupsd.conf cupsd.conf)\n"
+"           (cups-files.conf cups-files.conf)))\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:14475
+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:14479
+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:14480
+#, no-wrap
+msgid "{Scheme Variable} %desktop-services"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:14483
+msgid "This is a list of services that builds upon @var{%base-services} and adds or adjusts services for a typical ``desktop'' setup."
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:14493
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:14498
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:14521
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:14530
+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:14531
+#, no-wrap
+msgid "{Scheme Variable} gnome-desktop-service-type"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:14535
+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:14538
+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:14540
+#, no-wrap
+msgid "{Data Type} gnome-desktop-configuration"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:14542
+msgid "Configuration record for the GNOME desktop environment."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:14544
+#, no-wrap
+msgid "@code{gnome} (default @code{gnome})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:14546
+msgid "The GNOME package to use."
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:14549
+#, no-wrap
+msgid "{Scheme Variable} xfce-desktop-service-type"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:14553
+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:14558
+msgid "This service that 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:14560
+#, no-wrap
+msgid "{Data Type} xfce-desktop-configuration"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:14562
+msgid "Configuration record for the Xfce desktop environment."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:14564
+#, no-wrap
+msgid "@code{xfce} (default @code{xfce})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:14566
+msgid "The Xfce package to use."
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:14569
+#, no-wrap
+msgid "{Scheme Variable} mate-desktop-service-type"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:14573
+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:14577
+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:14579
+#, no-wrap
+msgid "{Data Type} mate-desktop-configuration"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:14581
+msgid "Configuration record for the MATE desktop environment."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:14583
+#, no-wrap
+msgid "@code{mate} (default @code{mate})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:14585
+msgid "The MATE package to use."
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:14588
+#, no-wrap
+msgid "{Scheme Variable} enlightenment-desktop-service-type"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:14591
+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:14593
+#, no-wrap
+msgid "{Data Type} enlightenment-desktop-service-configuration"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:14595
+#, no-wrap
+msgid "@code{enlightenment} (default @code{enlightenment})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:14597
+msgid "The enlightenment package to use."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:14605
+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: example
+#: doc/guix.texi:14616
+#, no-wrap
+msgid ""
+"(use-modules (gnu))\n"
+"(use-service-modules desktop)\n"
+"(operating-system\n"
+"  ...\n"
+"  ;; cons* adds items to the list given as its last argument.\n"
+"  (services (cons* (service gnome-desktop-service-type)\n"
+"                   (service xfce-desktop-service)\n"
+"                   %desktop-services))\n"
+"  ...)\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:14620
+msgid "These desktop environments will then be available as options in the graphical login window."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:14624
+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:14625
+#, no-wrap
+msgid "{Scheme Procedure} dbus-service [#:dbus @var{dbus}] [#:services '()]"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:14628
+msgid "Return a service that runs the ``system bus'', using @var{dbus}, with support for @var{services}."
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:14632
+msgid "@uref{http://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:14637
+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:14639
+#, no-wrap
+msgid "{Scheme Procedure} elogind-service [#:config @var{config}]"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:14645
+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:14649
+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:14654
+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:14656
+#, no-wrap
+msgid "kill-user-processes?"
+msgstr ""
+
+#. type: code{#1}
+#: doc/guix.texi:14658 doc/guix.texi:14676 doc/guix.texi:14678
+#: doc/guix.texi:14680 doc/guix.texi:14692
+msgid "#f"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:14658
+#, no-wrap
+msgid "kill-only-users"
+msgstr ""
+
+#. type: code{#1}
+#: doc/guix.texi:14660 doc/guix.texi:14698
+msgid "()"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:14660
+#, no-wrap
+msgid "kill-exclude-users"
+msgstr ""
+
+#. type: code{#1}
+#: doc/guix.texi:14662
+msgid "(\"root\")"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:14662
+#, no-wrap
+msgid "inhibit-delay-max-seconds"
+msgstr ""
+
+#. type: code{#1}
+#: doc/guix.texi:14664
+msgid "5"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:14664
+#, no-wrap
+msgid "handle-power-key"
+msgstr ""
+
+#. type: code{#1}
+#: doc/guix.texi:14666
+msgid "poweroff"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:14666
+#, no-wrap
+msgid "handle-suspend-key"
+msgstr ""
+
+#. type: code{#1}
+#: doc/guix.texi:14668 doc/guix.texi:14672
+msgid "suspend"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:14668
+#, no-wrap
+msgid "handle-hibernate-key"
+msgstr ""
+
+#. type: code{#1}
+#: doc/guix.texi:14670
+msgid "hibernate"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:14670
+#, no-wrap
+msgid "handle-lid-switch"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:14672
+#, no-wrap
+msgid "handle-lid-switch-docked"
+msgstr ""
+
+#. type: code{#1}
+#: doc/guix.texi:14674 doc/guix.texi:14686
+msgid "ignore"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:14674
+#, no-wrap
+msgid "power-key-ignore-inhibited?"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:14676
+#, no-wrap
+msgid "suspend-key-ignore-inhibited?"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:14678
+#, no-wrap
+msgid "hibernate-key-ignore-inhibited?"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:14680
+#, no-wrap
+msgid "lid-switch-ignore-inhibited?"
+msgstr ""
+
+#. type: code{#1}
+#: doc/guix.texi:14682 doc/guix.texi:14694
+msgid "#t"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:14682
+#, no-wrap
+msgid "holdoff-timeout-seconds"
+msgstr ""
+
+#. type: code{#1}
+#: doc/guix.texi:14684
+msgid "30"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:14684
+#, no-wrap
+msgid "idle-action"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:14686
+#, no-wrap
+msgid "idle-action-seconds"
+msgstr ""
+
+#. type: code{#1}
+#: doc/guix.texi:14688
+msgid "(* 30 60)"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:14688
+#, no-wrap
+msgid "runtime-directory-size-percent"
+msgstr ""
+
+#. type: code{#1}
+#: doc/guix.texi:14690
+msgid "10"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:14690
+#, no-wrap
+msgid "runtime-directory-size"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:14692
+#, no-wrap
+msgid "remove-ipc?"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:14694
+#, no-wrap
+msgid "suspend-state"
+msgstr ""
+
+#. type: code{#1}
+#: doc/guix.texi:14696
+msgid "(\"mem\" \"standby\" \"freeze\")"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:14696
+#, no-wrap
+msgid "suspend-mode"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:14698
+#, no-wrap
+msgid "hibernate-state"
+msgstr ""
+
+#. type: code{#1}
+#: doc/guix.texi:14700 doc/guix.texi:14704
+msgid "(\"disk\")"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:14700
+#, no-wrap
+msgid "hibernate-mode"
+msgstr ""
+
+#. type: code{#1}
+#: doc/guix.texi:14702
+msgid "(\"platform\" \"shutdown\")"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:14702
+#, no-wrap
+msgid "hybrid-sleep-state"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:14704
+#, no-wrap
+msgid "hybrid-sleep-mode"
+msgstr ""
+
+#. type: code{#1}
+#: doc/guix.texi:14706
+msgid "(\"suspend\" \"platform\" \"shutdown\")"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:14709
+#, no-wrap
+msgid "{Scheme Procedure} accountsservice-service @"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:14717
+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:14720
+msgid "The @var{accountsservice} keyword argument is the @code{accountsservice} package to expose as a service."
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:14722
+#, no-wrap
+msgid "{Scheme Procedure} polkit-service @"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:14731
+msgid "[#:polkit @var{polkit}] Return a service that runs the @uref{http://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:14733
+#, no-wrap
+msgid "{Scheme Variable} upower-service-type"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:14737
+msgid "Service that runs @uref{http://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:14740
+msgid "It implements the @code{org.freedesktop.UPower} D-Bus interface, and is notably used by GNOME."
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:14742
+#, no-wrap
+msgid "{Data Type} upower-configuration"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:14744
+msgid "Data type representation the configuration for UPower."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:14747
+#, no-wrap
+msgid "@code{upower} (default: @var{upower})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:14749
+msgid "Package to use for @code{upower}."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:14750
+#, no-wrap
+msgid "@code{watts-up-pro?} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:14752
+msgid "Enable the Watts Up Pro device."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:14753
+#, no-wrap
+msgid "@code{poll-batteries?} (default: @code{#t})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:14755
+msgid "Enable polling the kernel for battery level changes."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:14756
+#, no-wrap
+msgid "@code{ignore-lid?} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:14758
+msgid "Ignore the lid state, this can be useful if it's incorrect on a device."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:14759
+#, no-wrap
+msgid "@code{use-percentage-for-policy?} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:14762
+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:14763
+#, no-wrap
+msgid "@code{percentage-low} (default: @code{10})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:14766
+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:14767
+#, no-wrap
+msgid "@code{percentage-critical} (default: @code{3})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:14770
+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:14771
+#, no-wrap
+msgid "@code{percentage-action} (default: @code{2})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:14774
+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:14775
+#, no-wrap
+msgid "@code{time-low} (default: @code{1200})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:14778
+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:14779
+#, no-wrap
+msgid "@code{time-critical} (default: @code{300})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:14782
+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:14783
+#, no-wrap
+msgid "@code{time-action} (default: @code{120})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:14786
+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:14787
+#, no-wrap
+msgid "@code{critical-power-action} (default: @code{'hybrid-sleep})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:14790
+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:14792
+msgid "Possible values are:"
+msgstr ""
+
+#. type: code{#1}
+#: doc/guix.texi:14796
+msgid "'power-off"
+msgstr ""
+
+#. type: code{#1}
+#: doc/guix.texi:14799
+msgid "'hibernate"
+msgstr ""
+
+#. type: itemize
+#: doc/guix.texi:14802
+msgid "@code{'hybrid-sleep}."
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:14807
+#, no-wrap
+msgid "{Scheme Procedure} udisks-service [#:udisks @var{udisks}]"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:14812
+msgid "Return a service for @uref{http://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 ""
+
+#. type: deffn
+#: doc/guix.texi:14814
+#, no-wrap
+msgid "{Scheme Procedure} colord-service [#:colord @var{colord}]"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:14820
+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{http://www.freedesktop.org/software/colord/, the colord web site} for more information."
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:14822
+#, no-wrap
+msgid "{Scheme Procedure} geoclue-application name [#:allowed? #t] [#:system? #f] [#:users '()]"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:14831
+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: defvr
+#: doc/guix.texi:14833
+#, no-wrap
+msgid "{Scheme Variable} %standard-geoclue-applications"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:14840
+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:14842
+#, no-wrap
+msgid "{Scheme Procedure} geoclue-service [#:colord @var{colord}] @"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:14855
+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:14857
+#, no-wrap
+msgid "{Scheme Procedure} bluetooth-service [#:bluez @var{bluez}] @"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:14864
+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:14866
+msgid "Users need to be in the @code{lp} group to access the D-Bus service."
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:14871
+#, no-wrap
+msgid "sound support"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:14872
+#, no-wrap
+msgid "ALSA"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:14873
+#, no-wrap
+msgid "PulseAudio, sound support"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:14878
+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:14879
+#, no-wrap
+msgid "{Scheme Variable} alsa-service-type"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:14884
+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: example
+#: doc/guix.texi:14887
+#, no-wrap
+msgid "(service alsa-service-type)\n"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:14890
+msgid "See below for details about @code{alsa-configuration}."
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:14892
+#, no-wrap
+msgid "{Data Type} alsa-configuration"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:14894
+msgid "Data type representing the configuration for @code{alsa-service}."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:14896
+#, no-wrap
+msgid "@code{alsa-plugins} (default: @var{alsa-plugins})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:14898
+msgid "@code{alsa-plugins} package to use."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:14899
+#, no-wrap
+msgid "@code{pulseaudio?} (default: @var{#t})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:14902
+msgid "Whether ALSA applications should transparently be made to use the @uref{http://www.pulseaudio.org/, PulseAudio} sound server."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:14906
+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:14907
+#, no-wrap
+msgid "@code{extra-options} (default: @var{\"\"})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:14909
+msgid "String to append to the @file{/etc/asound.conf} file."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:14915
+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:14921
+#, no-wrap
+msgid ""
+"# In guix, we have to specify the absolute path for plugins.\n"
+"pcm_type.jack @{\n"
+"  lib \"/home/alice/.guix-profile/lib/alsa-lib/libasound_module_pcm_jack.so\"\n"
+"@}\n"
+"\n"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:14930
+#, no-wrap
+msgid ""
+"# Routing ALSA to jack:\n"
+"# <http://jackaudio.org/faq/routing_alsa.html>.\n"
+"pcm.rawjack @{\n"
+"  type jack\n"
+"  playback_ports @{\n"
+"    0 system:playback_1\n"
+"    1 system:playback_2\n"
+"  @}\n"
+"\n"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:14936
+#, no-wrap
+msgid ""
+"  capture_ports @{\n"
+"    0 system:capture_1\n"
+"    1 system:capture_2\n"
+"  @}\n"
+"@}\n"
+"\n"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:14943
+#, no-wrap
+msgid ""
+"pcm.!default @{\n"
+"  type plug\n"
+"  slave @{\n"
+"    pcm \"rawjack\"\n"
+"  @}\n"
+"@}\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:14947
+msgid "See @uref{https://www.alsa-project.org/main/index.php/Asoundrc} for the details."
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:14953
+#, no-wrap
+msgid "SQL"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:14955
+msgid "The @code{(gnu services databases)} module provides the following services."
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:14956
+#, no-wrap
+msgid "{Scheme Procedure} postgresql-service [#:postgresql postgresql] @"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:14961
+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:14965
+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: cindex
+#: doc/guix.texi:14966
+#, no-wrap
+msgid "postgresql extension-packages"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:14971
+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:14972
+#, no-wrap
+msgid "postgis"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:14975
+#, no-wrap
+msgid ""
+"(use-package-modules databases geo)\n"
+"\n"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:14985
+#, no-wrap
+msgid ""
+"(operating-system\n"
+"  ...\n"
+"  ;; postgresql is required to run `psql' but postgis is not required for\n"
+"  ;; proper operation.\n"
+"  (packages (cons* postgresql %base-packages))\n"
+"  (services\n"
+"    (cons*\n"
+"      (postgresql-service #:extension-packages (list postgis))\n"
+"      %base-services)))\n"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:14989
+msgid "Then the extension becomes visible and you can initialise an empty geographic database in this way:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:14996
+#, no-wrap
+msgid ""
+"psql -U postgres\n"
+"> create database postgistest;\n"
+"> \\connect postgistest;\n"
+"> create extension postgis;\n"
+"> create extension postgis_topology;\n"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:15001
+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:15003
+#, no-wrap
+msgid "{Scheme Procedure} mysql-service [#:config (mysql-configuration)]"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:15006
+msgid "Return a service that runs @command{mysqld}, the MySQL or MariaDB database server."
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:15009
+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:15011
+#, no-wrap
+msgid "{Data Type} mysql-configuration"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:15013
+msgid "Data type representing the configuration of @var{mysql-service}."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:15015
+#, no-wrap
+msgid "@code{mysql} (default: @var{mariadb})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:15018
+msgid "Package object of the MySQL database server, can be either @var{mariadb} or @var{mysql}."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:15021
+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:15022
+#, no-wrap
+msgid "@code{port} (default: @code{3306})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:15024
+msgid "TCP port on which the database server listens for incoming connections."
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:15027
+#, no-wrap
+msgid "{Scheme Variable} memcached-service-type"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:15031
+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: example
+#: doc/guix.texi:15035
+#, no-wrap
+msgid "(service memcached-service-type)\n"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:15037
+#, no-wrap
+msgid "{Data Type} memcached-configuration"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:15039
+msgid "Data type representing the configuration of memcached."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:15041
+#, no-wrap
+msgid "@code{memcached} (default: @code{memcached})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:15043
+msgid "The Memcached package to use."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:15044
+#, no-wrap
+msgid "@code{interfaces} (default: @code{'(\"0.0.0.0\")})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:15046
+msgid "Network interfaces on which to listen."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:15047
+#, no-wrap
+msgid "@code{tcp-port} (default: @code{11211})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:15049
+msgid "Port on which to accept connections on,"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:15050
+#, no-wrap
+msgid "@code{udp-port} (default: @code{11211})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:15053
+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:15054
+#, no-wrap
+msgid "@code{additional-options} (default: @code{'()})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:15056
+msgid "Additional command line options to pass to @code{memcached}."
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:15059
+#, no-wrap
+msgid "{Scheme Variable} mongodb-service-type"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:15062
+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: example
+#: doc/guix.texi:15066
+#, no-wrap
+msgid "(service mongodb-service-type)\n"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:15068
+#, no-wrap
+msgid "{Data Type} mongodb-configuration"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:15070
+msgid "Data type representing the configuration of mongodb."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:15072
+#, no-wrap
+msgid "@code{mongodb} (default: @code{mongodb})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:15074
+msgid "The MongoDB package to use."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:15075
+#, no-wrap
+msgid "@code{config-file} (default: @code{%default-mongodb-configuration-file})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:15077
+msgid "The configuration file for MongoDB."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:15078
+#, no-wrap
+msgid "@code{data-directory} (default: @code{\"/var/lib/mongodb\"})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:15082
+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:15085
+#, no-wrap
+msgid "{Scheme Variable} redis-service-type"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:15088
+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:15090
+#, no-wrap
+msgid "{Data Type} redis-configuration"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:15092
+msgid "Data type representing the configuration of redis."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:15094
+#, no-wrap
+msgid "@code{redis} (default: @code{redis})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:15096
+msgid "The Redis package to use."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:15097
+#, no-wrap
+msgid "@code{bind} (default: @code{\"127.0.0.1\"})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:15099
+msgid "Network interface on which to listen."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:15100
+#, no-wrap
+msgid "@code{port} (default: @code{6379})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:15103
+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:15104
+#, no-wrap
+msgid "@code{working-directory} (default: @code{\"/var/lib/redis\"})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:15106
+msgid "Directory in which to store the database and related files."
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:15112
+#, no-wrap
+msgid "mail"
+msgstr ""
+
+#. type: code{#1}
+#: doc/guix.texi:15113 doc/guix.texi:19313
+#, no-wrap
+msgid "email"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:15118
+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:15119
+#, no-wrap
+msgid "Dovecot Service"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:15121
+#, no-wrap
+msgid "{Scheme Procedure} dovecot-service [#:config (dovecot-configuration)]"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:15123
+msgid "Return a service that runs the Dovecot IMAP/POP3/LMTP mail server."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:15133
+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:15136
+msgid "For example, to specify that mail is located at @code{maildir~/.mail}, one would instantiate the Dovecot service like this:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:15141
+#, no-wrap
+msgid ""
+"(dovecot-service #:config\n"
+"                 (dovecot-configuration\n"
+"                  (mail-location \"maildir:~/.mail\")))\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:15149
+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:15159
+msgid "Available @code{dovecot-configuration} fields are:"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15160
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} package dovecot"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15162 doc/guix.texi:16468
+msgid "The dovecot package."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15164
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} comma-separated-string-list listen"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15170
+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:15172
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} protocol-configuration-list protocols"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15175
+msgid "List of protocols we want to serve.  Available protocols include @samp{imap}, @samp{pop3}, and @samp{lmtp}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15177
+msgid "Available @code{protocol-configuration} fields are:"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15178
+#, no-wrap
+msgid "{@code{protocol-configuration} parameter} string name"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15180
+msgid "The name of the protocol."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15182
+#, no-wrap
+msgid "{@code{protocol-configuration} parameter} string auth-socket-path"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15186
+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:15188
+#, no-wrap
+msgid "{@code{protocol-configuration} parameter} space-separated-string-list mail-plugins"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15190
+msgid "Space separated list of plugins to load."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15192
+#, no-wrap
+msgid "{@code{protocol-configuration} parameter} non-negative-integer mail-max-userip-connections"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15196
+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:15200
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} service-configuration-list services"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15204
+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:15206
+msgid "Available @code{service-configuration} fields are:"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15207
+#, no-wrap
+msgid "{@code{service-configuration} parameter} string kind"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15212
+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:15214
+#, no-wrap
+msgid "{@code{service-configuration} parameter} listener-configuration-list listeners"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15219
+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:15221
+msgid "Available @code{unix-listener-configuration} fields are:"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15222
+#, no-wrap
+msgid "{@code{unix-listener-configuration} parameter} string path"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15225 doc/guix.texi:15248
+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:15227
+#, no-wrap
+msgid "{@code{unix-listener-configuration} parameter} string mode"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15230 doc/guix.texi:15253
+msgid "The access mode for the socket.  Defaults to @samp{\"0600\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15232
+#, no-wrap
+msgid "{@code{unix-listener-configuration} parameter} string user"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15235 doc/guix.texi:15258
+msgid "The user to own the socket.  Defaults to @samp{\"\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15237
+#, no-wrap
+msgid "{@code{unix-listener-configuration} parameter} string group"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15240 doc/guix.texi:15263
+msgid "The group to own the socket.  Defaults to @samp{\"\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15244
+msgid "Available @code{fifo-listener-configuration} fields are:"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15245
+#, no-wrap
+msgid "{@code{fifo-listener-configuration} parameter} string path"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15250
+#, no-wrap
+msgid "{@code{fifo-listener-configuration} parameter} string mode"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15255
+#, no-wrap
+msgid "{@code{fifo-listener-configuration} parameter} string user"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15260
+#, no-wrap
+msgid "{@code{fifo-listener-configuration} parameter} string group"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15267
+msgid "Available @code{inet-listener-configuration} fields are:"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15268
+#, no-wrap
+msgid "{@code{inet-listener-configuration} parameter} string protocol"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15270
+msgid "The protocol to listen for."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15272
+#, no-wrap
+msgid "{@code{inet-listener-configuration} parameter} string address"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15275
+msgid "The address on which to listen, or empty for all addresses.  Defaults to @samp{\"\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15277
+#, no-wrap
+msgid "{@code{inet-listener-configuration} parameter} non-negative-integer port"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15279
+msgid "The port on which to listen."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15281
+#, no-wrap
+msgid "{@code{inet-listener-configuration} parameter} boolean ssl?"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15285
+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:15289
+#, no-wrap
+msgid "{@code{service-configuration} parameter} non-negative-integer client-limit"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15294
+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:15299
+#, no-wrap
+msgid "{@code{service-configuration} parameter} non-negative-integer service-count"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15304
+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:15307
+#, no-wrap
+msgid "{@code{service-configuration} parameter} non-negative-integer process-limit"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15310
+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:15315
+#, no-wrap
+msgid "{@code{service-configuration} parameter} non-negative-integer process-min-avail"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15318
+msgid "Number of processes to always keep waiting for more connections.  Defaults to @samp{0}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15320
+#, no-wrap
+msgid "{@code{service-configuration} parameter} non-negative-integer vsz-limit"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15324
+msgid "If you set @samp{service-count 0}, you probably need to grow this.  Defaults to @samp{256000000}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15328
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} dict-configuration dict"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15331
+msgid "Dict configuration, as created by the @code{dict-configuration} constructor."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15333
+msgid "Available @code{dict-configuration} fields are:"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15334
+#, no-wrap
+msgid "{@code{dict-configuration} parameter} free-form-fields entries"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15337
+msgid "A list of key-value pairs that this dict should hold.  Defaults to @samp{()}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15341
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} passdb-configuration-list passdbs"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15344
+msgid "A list of passdb configurations, each one created by the @code{passdb-configuration} constructor."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15346
+msgid "Available @code{passdb-configuration} fields are:"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15347
+#, no-wrap
+msgid "{@code{passdb-configuration} parameter} string driver"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15352
+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:15354
+#, no-wrap
+msgid "{@code{passdb-configuration} parameter} space-separated-string-list args"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15357
+msgid "Space separated list of arguments to the passdb driver.  Defaults to @samp{\"\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15361
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} userdb-configuration-list userdbs"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15364
+msgid "List of userdb configurations, each one created by the @code{userdb-configuration} constructor."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15366
+msgid "Available @code{userdb-configuration} fields are:"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15367
+#, no-wrap
+msgid "{@code{userdb-configuration} parameter} string driver"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15371
+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:15373
+#, no-wrap
+msgid "{@code{userdb-configuration} parameter} space-separated-string-list args"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15376
+msgid "Space separated list of arguments to the userdb driver.  Defaults to @samp{\"\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15378
+#, no-wrap
+msgid "{@code{userdb-configuration} parameter} free-form-args override-fields"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15381
+msgid "Override fields from passwd.  Defaults to @samp{()}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15385
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} plugin-configuration plugin-configuration"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15388
+msgid "Plug-in configuration, created by the @code{plugin-configuration} constructor."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15390
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} list-of-namespace-configuration namespaces"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15393
+msgid "List of namespaces.  Each item in the list is created by the @code{namespace-configuration} constructor."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15395
+msgid "Available @code{namespace-configuration} fields are:"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15396
+#, no-wrap
+msgid "{@code{namespace-configuration} parameter} string name"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15398
+msgid "Name for this namespace."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15400
+#, no-wrap
+msgid "{@code{namespace-configuration} parameter} string type"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15403
+msgid "Namespace type: @samp{private}, @samp{shared} or @samp{public}.  Defaults to @samp{\"private\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15405
+#, no-wrap
+msgid "{@code{namespace-configuration} parameter} string separator"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15411
+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:15413
+#, no-wrap
+msgid "{@code{namespace-configuration} parameter} string prefix"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15417
+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:15419
+#, no-wrap
+msgid "{@code{namespace-configuration} parameter} string location"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15423
+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:15425
+#, no-wrap
+msgid "{@code{namespace-configuration} parameter} boolean inbox?"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15429
+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:15431
+#, no-wrap
+msgid "{@code{namespace-configuration} parameter} boolean hidden?"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15439
+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:15441
+#, no-wrap
+msgid "{@code{namespace-configuration} parameter} boolean list?"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15447
+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:15449
+#, no-wrap
+msgid "{@code{namespace-configuration} parameter} boolean subscriptions?"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15454
+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:15456
+#, no-wrap
+msgid "{@code{namespace-configuration} parameter} mailbox-configuration-list mailboxes"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15459
+msgid "List of predefined mailboxes in this namespace.  Defaults to @samp{()}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15461
+msgid "Available @code{mailbox-configuration} fields are:"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15462
+#, no-wrap
+msgid "{@code{mailbox-configuration} parameter} string name"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15464
+msgid "Name for this mailbox."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15466
+#, no-wrap
+msgid "{@code{mailbox-configuration} parameter} string auto"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15470
+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:15472
+#, no-wrap
+msgid "{@code{mailbox-configuration} parameter} space-separated-string-list special-use"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15477
+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:15483
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} file-name base-dir"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15486
+msgid "Base directory where to store runtime data.  Defaults to @samp{\"/var/run/dovecot/\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15488
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} string login-greeting"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15491
+msgid "Greeting message for clients.  Defaults to @samp{\"Dovecot ready.\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15493
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} space-separated-string-list login-trusted-networks"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15500
+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:15502
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} space-separated-string-list login-access-sockets"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15505
+msgid "List of login access check sockets (e.g.@: tcpwrap).  Defaults to @samp{()}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15507
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} boolean verbose-proctitle?"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15513
+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:15515
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} boolean shutdown-clients?"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15521
+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:15523
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} non-negative-integer doveadm-worker-count"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15527
+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:15529
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} string doveadm-socket-path"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15532
+msgid "UNIX socket or host:port used for connecting to doveadm server.  Defaults to @samp{\"doveadm-server\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15534
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} space-separated-string-list import-environment"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15538
+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:15540
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} boolean disable-plaintext-auth?"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15547
+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:15549
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} non-negative-integer auth-cache-size"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15554
+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:15556
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} string auth-cache-ttl"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15564
+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:15566
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} string auth-cache-negative-ttl"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15570
+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:15572
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} space-separated-string-list auth-realms"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15578
+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:15580
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} string auth-default-realm"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15585
+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:15587
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} string auth-username-chars"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15594
+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:15596
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} string auth-username-translation"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15602
+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:15604
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} string auth-username-format"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15611
+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:15613
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} string auth-master-user-separator"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15621
+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:15623
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} string auth-anonymous-username"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15627
+msgid "Username to use for users logging in with ANONYMOUS SASL mechanism.  Defaults to @samp{\"anonymous\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15629
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} non-negative-integer auth-worker-max-count"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15634
+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:15636
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} string auth-gssapi-hostname"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15641
+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:15643
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} string auth-krb5-keytab"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15649
+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:15651
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} boolean auth-use-winbind?"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15656
+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:15658
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} file-name auth-winbind-helper-path"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15661
+msgid "Path for Samba's @samp{ntlm-auth} helper binary.  Defaults to @samp{\"/usr/bin/ntlm_auth\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15663
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} string auth-failure-delay"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15666
+msgid "Time to delay before replying to failed authentications.  Defaults to @samp{\"2 secs\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15668
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} boolean auth-ssl-require-client-cert?"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15672
+msgid "Require a valid SSL client certificate or the authentication fails.  Defaults to @samp{#f}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15674
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} boolean auth-ssl-username-from-cert?"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15679
+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:15681
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} space-separated-string-list auth-mechanisms"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15687
+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:15689
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} space-separated-string-list director-servers"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15694
+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:15696
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} space-separated-string-list director-mail-servers"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15700
+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:15702
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} string director-user-expire"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15706
+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:15708
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} string director-username-hash"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15713
+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:15715
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} string log-path"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15719
+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:15721
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} string info-log-path"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15725
+msgid "Log file to use for informational messages.  Defaults to @samp{log-path}.  Defaults to @samp{\"\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15727
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} string debug-log-path"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15731
+msgid "Log file to use for debug messages.  Defaults to @samp{info-log-path}.  Defaults to @samp{\"\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15733
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} string syslog-facility"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15738
+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:15740
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} boolean auth-verbose?"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15744
+msgid "Log unsuccessful authentication attempts and the reasons why they failed.  Defaults to @samp{#f}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15746
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} boolean auth-verbose-passwords?"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15753
+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{#f}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15755
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} boolean auth-debug?"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15759
+msgid "Even more verbose logging for debugging purposes.  Shows for example SQL queries.  Defaults to @samp{#f}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15761
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} boolean auth-debug-passwords?"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15766
+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:15768
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} boolean mail-debug?"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15772
+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:15774
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} boolean verbose-ssl?"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15777
+msgid "Show protocol level SSL errors.  Defaults to @samp{#f}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15779
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} string log-timestamp"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15783
+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:15785
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} space-separated-string-list login-log-format-elements"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15789
+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:15791
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} string login-log-format"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15795
+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:15797
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} string mail-log-prefix"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15801
+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:15803
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} string deliver-log-format"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15805
+msgid "Format to use for logging mail deliveries.  You can use variables:"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:15806
+#, no-wrap
+msgid "%$"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:15808
+msgid "Delivery status message (e.g.@: @samp{saved to INBOX})"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:15808
+#, no-wrap
+msgid "%m"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:15810
+msgid "Message-ID"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:15810 doc/guix.texi:16342
+#, no-wrap
+msgid "%s"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:15812
+msgid "Subject"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:15812
+#, no-wrap
+msgid "%f"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:15814
+msgid "From address"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:15816
+msgid "Physical size"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:15816
+#, no-wrap
+msgid "%w"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:15818
+msgid "Virtual size."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15820
+msgid "Defaults to @samp{\"msgid=%m: %$\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15822
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} string mail-location"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15827
+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:15833
+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 ""
+
+#. type: deftypevr
+#: doc/guix.texi:15835
+msgid "There are a few special variables you can use, eg.:"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:15839
+msgid "username"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:15839 doc/guix.texi:16338
+#, no-wrap
+msgid "%n"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:15841
+msgid "user part in user@@domain, same as %u if there's no domain"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:15841
+#, no-wrap
+msgid "%d"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:15843
+msgid "domain part in user@@domain, empty if there's no domain"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:15843
+#, no-wrap
+msgid "%h"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:15845
+msgid "home director"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15848
+msgid "See doc/wiki/Variables.txt for full list.  Some examples:"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:15849
+#, no-wrap
+msgid "maildir:~/Maildir"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:15850
+#, no-wrap
+msgid "mbox:~/mail:INBOX=/var/mail/%u"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:15851
+#, no-wrap
+msgid "mbox:/var/mail/%d/%1n/%n:INDEX=/var/indexes/%d/%1n/%"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15856
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} string mail-uid"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15861
+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:15863
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} string mail-gid"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15868
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} string mail-privileged-group"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15874
+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 ""
+
+#. type: deftypevr
+#: doc/guix.texi:15876
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} string mail-access-groups"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15884
+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 ""
+
+#. type: deftypevr
+#: doc/guix.texi:15886
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} boolean mail-full-filesystem-access?"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15892
+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 ""
+
+#. type: deftypevr
+#: doc/guix.texi:15894
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} boolean mmap-disable?"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15898
+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 ""
+
+#. type: deftypevr
+#: doc/guix.texi:15900
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} boolean dotlock-use-excl?"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15905
+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:15907
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} string mail-fsync"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15909
+msgid "When to use fsync() or fdatasync() calls:"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:15910
+#, no-wrap
+msgid "optimized"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:15912
+msgid "Whenever necessary to avoid losing important data"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:15914
+msgid "Useful with e.g.@: NFS when write()s are delayed"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:15916
+msgid "Never use it (best performance, but crashes can lose data)."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15918
+msgid "Defaults to @samp{\"optimized\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15920
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} boolean mail-nfs-storage?"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15925
+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:15927
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} boolean mail-nfs-index?"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15931
+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:15933
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} string lock-method"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15939
+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:15941
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} file-name mail-temp-dir"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15945
+msgid "Directory in which LDA/LMTP temporarily stores incoming mails >128 kB.  Defaults to @samp{\"/tmp\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15947
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} non-negative-integer first-valid-uid"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15953
+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:15955
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} non-negative-integer last-valid-uid"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15960
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} non-negative-integer first-valid-gid"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15965
+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:15967
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} non-negative-integer last-valid-gid"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15972
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} non-negative-integer mail-max-keyword-length"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15976
+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:15978
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} colon-separated-file-name-list valid-chroot-dirs"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15988
+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 ""
+
+#. type: deftypevr
+#: doc/guix.texi:15990
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} string mail-chroot"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:15999
+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 ""
+
+#. type: deftypevr
+#: doc/guix.texi:16001
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} file-name auth-socket-path"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16005
+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:16007
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} file-name mail-plugin-dir"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16010
+msgid "Directory where to look up mail plugins.  Defaults to @samp{\"/usr/lib/dovecot\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16012
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} space-separated-string-list mail-plugins"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16016
+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:16018
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} non-negative-integer mail-cache-min-mail-count"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16023
+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:16025
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} string mailbox-idle-check-interval"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16032
+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:16034
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} boolean mail-save-crlf?"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16041
+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:16043
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} boolean maildir-stat-dirs?"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16051
+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:16053
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} boolean maildir-copy-with-hardlinks?"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16058
+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:16060
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} boolean maildir-very-dirty-syncs?"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16065
+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:16067
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} space-separated-string-list mbox-read-locks"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16070
+msgid "Which locking methods to use for locking mbox.  There are four available:"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:16072
+#, no-wrap
+msgid "dotlock"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:16076
+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:16076
+#, no-wrap
+msgid "dotlock-try"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:16079
+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:16079
+#, no-wrap
+msgid "fcntl"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:16081
+msgid "Use this if possible.  Works with NFS too if lockd is used."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:16081
+#, no-wrap
+msgid "flock"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:16083 doc/guix.texi:16085
+msgid "May not exist in all systems.  Doesn't work with NFS."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:16083
+#, no-wrap
+msgid "lockf"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16091
+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:16093
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} space-separated-string-list mbox-write-locks"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16097
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} string mbox-lock-timeout"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16100
+msgid "Maximum time to wait for lock (all of them) before aborting.  Defaults to @samp{\"5 mins\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16102
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} string mbox-dotlock-change-timeout"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16106
+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:16108
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} boolean mbox-dirty-syncs?"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16119
+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:16121
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} boolean mbox-very-dirty-syncs?"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16126
+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:16128
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} boolean mbox-lazy-writes?"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16134
+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:16136
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} non-negative-integer mbox-min-index-size"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16141
+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:16143
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} non-negative-integer mdbox-rotate-size"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16146
+msgid "Maximum dbox file size until it's rotated.  Defaults to @samp{10000000}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16148
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} string mdbox-rotate-interval"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16153
+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:16155
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} boolean mdbox-preallocate-space?"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16160
+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:16162
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} string mail-attachment-dir"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16166
+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:16168
+msgid "WARNING: This feature hasn't been tested much yet.  Use at your own risk."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16171
+msgid "Directory root where to store mail attachments.  Disabled, if empty.  Defaults to @samp{\"\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16173
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} non-negative-integer mail-attachment-min-size"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16178
+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:16180
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} string mail-attachment-fs"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16182
+msgid "File system backend to use for saving attachments:"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:16183
+#, no-wrap
+msgid "posix"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:16185
+msgid "No SiS done by Dovecot (but this might help FS's own deduplication)"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:16185
+#, no-wrap
+msgid "sis posix"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:16187
+msgid "SiS with immediate byte-by-byte comparison during saving"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:16187
+#, no-wrap
+msgid "sis-queue posix"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:16189
+msgid "SiS with delayed comparison and deduplication."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16191
+msgid "Defaults to @samp{\"sis posix\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16193
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} string mail-attachment-hash"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16199
+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:16201
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} non-negative-integer default-process-limit"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16206
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} non-negative-integer default-client-limit"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16209 doc/guix.texi:21402
+msgid "Defaults to @samp{1000}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16211
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} non-negative-integer default-vsz-limit"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16216
+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:16218
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} string default-login-user"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16223
+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:16225
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} string default-internal-user"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16230
+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:16232
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} string ssl?"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16235
+msgid "SSL/TLS support: yes, no, required.  <doc/wiki/SSL.txt>.  Defaults to @samp{\"required\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16237
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} string ssl-cert"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16240
+msgid "PEM encoded X.509 SSL/TLS certificate (public key).  Defaults to @samp{\"</etc/dovecot/default.pem\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16242
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} string ssl-key"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16247
+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:16249
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} string ssl-key-password"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16255
+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:16257
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} string ssl-ca"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16263
+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:16265
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} boolean ssl-require-crl?"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16268
+msgid "Require that CRL check succeeds for client certificates.  Defaults to @samp{#t}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16270
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} boolean ssl-verify-client-cert?"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16274
+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:16276
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} string ssl-cert-username-field"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16281
+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:16283
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} string ssl-min-protocol"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16286
+msgid "Minimum SSL protocol version to accept.  Defaults to @samp{\"TLSv1\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16288
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} string ssl-cipher-list"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16291
+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:16293
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} string ssl-crypto-device"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16296
+msgid "SSL crypto device to use, for valid values run \"openssl engine\".  Defaults to @samp{\"\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16298
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} string postmaster-address"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16302
+msgid "Address to use when sending rejection mails.  %d expands to recipient domain.  Defaults to @samp{\"postmaster@@%d\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16304
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} string hostname"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16308
+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:16310
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} boolean quota-full-tempfail?"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16314
+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:16316
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} file-name sendmail-path"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16319
+msgid "Binary to use for sending mails.  Defaults to @samp{\"/usr/sbin/sendmail\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16321
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} string submission-host"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16325
+msgid "If non-empty, send mails via this SMTP host[:port] instead of sendmail.  Defaults to @samp{\"\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16327
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} string rejection-subject"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16331
+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:16333
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} string rejection-reason"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16336
+msgid "Human readable error message for rejection mails.  You can use variables:"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:16340
+msgid "CRLF"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:16340
+#, no-wrap
+msgid "%r"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:16342
+msgid "reason"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:16344
+msgid "original subject"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:16344
+#, no-wrap
+msgid "%t"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:16346
+msgid "recipient"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16348
+msgid "Defaults to @samp{\"Your message to <%t> was automatically rejected:%n%r\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16350
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} string recipient-delimiter"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16354
+msgid "Delimiter character between local-part and detail in email address.  Defaults to @samp{\"+\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16356
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} string lda-original-recipient-header"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16362
+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:16364
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} boolean lda-mailbox-autocreate?"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16368
+msgid "Should saving a mail to a nonexistent mailbox automatically create it?.  Defaults to @samp{#f}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16370
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} boolean lda-mailbox-autosubscribe?"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16374
+msgid "Should automatically created mailboxes be also automatically subscribed?.  Defaults to @samp{#f}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16376
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} non-negative-integer imap-max-line-length"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16382
+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:16384
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} string imap-logout-format"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16386
+msgid "IMAP logout format string:"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:16387
+#, no-wrap
+msgid "%i"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:16389
+msgid "total number of bytes read from client"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:16389
+#, no-wrap
+msgid "%o"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:16391
+msgid "total number of bytes sent to client."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16394
+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:16396
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} string imap-capability"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16400
+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:16402
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} string imap-idle-notify-interval"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16406
+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:16408
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} string imap-id-send"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16414
+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:16416
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} string imap-id-log"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16419
+msgid "ID fields sent by client to log.  * means everything.  Defaults to @samp{\"\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16421
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} space-separated-string-list imap-client-workarounds"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16423
+msgid "Workarounds for various client bugs:"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:16425
+#, no-wrap
+msgid "delay-newmail"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:16432
+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:16433
+#, no-wrap
+msgid "tb-extra-mailbox-sep"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:16437
+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:16438
+#, no-wrap
+msgid "tb-lsub-flags"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:16442
+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:16446
+#, no-wrap
+msgid "{@code{dovecot-configuration} parameter} string imap-urlauth-host"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16449
+msgid "Host allowed in URLAUTH URLs sent by client.  \"*\" allows all.  Defaults to @samp{\"\"}."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:16457
+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:16463
+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:16465
+msgid "Available @code{opaque-dovecot-configuration} fields are:"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16466
+#, no-wrap
+msgid "{@code{opaque-dovecot-configuration} parameter} package dovecot"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16470
+#, no-wrap
+msgid "{@code{opaque-dovecot-configuration} parameter} string string"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16472
+msgid "The contents of the @code{dovecot.conf}, as a string."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:16476
+msgid "For example, if your @code{dovecot.conf} is just the empty string, you could instantiate a dovecot service like this:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:16481
+#, no-wrap
+msgid ""
+"(dovecot-service #:config\n"
+"                 (opaque-dovecot-configuration\n"
+"                  (string \"\")))\n"
+msgstr ""
+
+#. type: subsubheading
+#: doc/guix.texi:16483
+#, no-wrap
+msgid "OpenSMTPD Service"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:16485
+#, no-wrap
+msgid "{Scheme Variable} opensmtpd-service-type"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:16489
+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: example
+#: doc/guix.texi:16494
+#, no-wrap
+msgid ""
+"(service opensmtpd-service-type\n"
+"         (opensmtpd-configuration\n"
+"           (config-file (local-file \"./my-smtpd.conf\"))))\n"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:16497
+#, no-wrap
+msgid "{Data Type} opensmtpd-configuration"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:16499
+msgid "Data type representing the configuration of opensmtpd."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:16501
+#, no-wrap
+msgid "@code{package} (default: @var{opensmtpd})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:16503
+msgid "Package object of the OpenSMTPD SMTP server."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:16504
+#, no-wrap
+msgid "@code{config-file} (default: @var{%default-opensmtpd-file})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:16509
+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:16513
+#, no-wrap
+msgid "Exim Service"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:16515
+#, no-wrap
+msgid "mail transfer agent (MTA)"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:16516
+#, no-wrap
+msgid "MTA (mail transfer agent)"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:16517
+#, no-wrap
+msgid "SMTP"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:16519
+#, no-wrap
+msgid "{Scheme Variable} exim-service-type"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:16523
+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: example
+#: doc/guix.texi:16528
+#, no-wrap
+msgid ""
+"(service exim-service-type\n"
+"         (exim-configuration\n"
+"           (config-file (local-file \"./my-exim.conf\"))))\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:16534
+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:16535
+#, no-wrap
+msgid "{Data Type} exim-configuration"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:16537
+msgid "Data type representing the configuration of exim."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:16539
+#, no-wrap
+msgid "@code{package} (default: @var{exim})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:16541
+msgid "Package object of the Exim server."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:16548
+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:16552
+#, no-wrap
+msgid "Mail Aliases Service"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:16554
+#, no-wrap
+msgid "email aliases"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:16555
+#, no-wrap
+msgid "aliases, for email addresses"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:16557
+#, no-wrap
+msgid "{Scheme Variable} mail-aliases-service-type"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:16560
+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: example
+#: doc/guix.texi:16565
+#, no-wrap
+msgid ""
+"(service mail-aliases-service-type\n"
+"         '((\"postmaster\" \"bob\")\n"
+"           (\"bob\" \"bob@@example.com\" \"bob@@example2.com\")))\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:16573
+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:16579
+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:16580 doc/guix.texi:16581
+#, no-wrap
+msgid "GNU Mailutils IMAP4 Daemon"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:16583
+#, no-wrap
+msgid "{Scheme Variable} imap4d-service-type"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:16587
+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: example
+#: doc/guix.texi:16592
+#, no-wrap
+msgid ""
+"(service imap4d-service-type\n"
+"         (imap4d-configuration\n"
+"           (config-file (local-file \"imap4d.conf\"))))\n"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:16595
+#, no-wrap
+msgid "{Data Type} imap4d-configuration"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:16597
+msgid "Data type representing the configuration of @command{imap4d}."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:16599
+#, no-wrap
+msgid "@code{package} (default: @code{mailutils})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:16601
+msgid "The package that provides @command{imap4d}."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:16602
+#, no-wrap
+msgid "@code{config-file} (default: @code{%default-imap4d-config-file})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:16606
+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:16613
+#, no-wrap
+msgid "messaging"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:16614
+#, no-wrap
+msgid "jabber"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:16615
+#, no-wrap
+msgid "XMPP"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:16618
+msgid "The @code{(gnu services messaging)} module provides Guix service definitions for messaging services: currently only Prosody is supported."
+msgstr ""
+
+#. type: subsubheading
+#: doc/guix.texi:16619
+#, no-wrap
+msgid "Prosody Service"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:16621
+#, no-wrap
+msgid "{Scheme Variable} prosody-service-type"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:16625
+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: example
+#: doc/guix.texi:16640
+#, no-wrap
+msgid ""
+"(service prosody-service-type\n"
+"         (prosody-configuration\n"
+"          (modules-enabled (cons \"groups\" \"mam\" %default-modules-enabled))\n"
+"          (int-components\n"
+"           (list\n"
+"            (int-component-configuration\n"
+"             (hostname \"conference.example.net\")\n"
+"             (plugin \"muc\")\n"
+"             (mod-muc (mod-muc-configuration)))))\n"
+"          (virtualhosts\n"
+"           (list\n"
+"            (virtualhost-configuration\n"
+"             (domain \"example.net\"))))))\n"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:16643
+msgid "See below for details about @code{prosody-configuration}."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:16649
+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:16652
+msgid "You can perform various sanity checks on the generated configuration with the @code{prosodyctl check} command."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:16656
+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:16659
+#, no-wrap
+msgid "prosodyctl --root cert import /etc/letsencrypt/live\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:16666
+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:16670
+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:16673
+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:16683
+msgid "Available @code{prosody-configuration} fields are:"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16684
+#, no-wrap
+msgid "{@code{prosody-configuration} parameter} package prosody"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16686
+msgid "The Prosody package."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16688
+#, no-wrap
+msgid "{@code{prosody-configuration} parameter} file-name data-path"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16692
+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:16694
+#, no-wrap
+msgid "{@code{prosody-configuration} parameter} file-object-list plugin-paths"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16698
+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:16700
+#, no-wrap
+msgid "{@code{prosody-configuration} parameter} file-name certificates"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16705
+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:16707
+#, no-wrap
+msgid "{@code{prosody-configuration} parameter} string-list admins"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16713
+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:16715
+#, no-wrap
+msgid "{@code{prosody-configuration} parameter} boolean use-libevent?"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16719
+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:16721
+#, no-wrap
+msgid "{@code{prosody-configuration} parameter} module-list modules-enabled"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16727
+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:16729
+#, no-wrap
+msgid "{@code{prosody-configuration} parameter} string-list modules-disabled"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16733
+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:16735
+#, no-wrap
+msgid "{@code{prosody-configuration} parameter} file-object groups-file"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16740
+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:16742
+#, no-wrap
+msgid "{@code{prosody-configuration} parameter} boolean allow-registration?"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16746
+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:16748
+#, no-wrap
+msgid "{@code{prosody-configuration} parameter} maybe-ssl-configuration ssl"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16753
+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:16755
+msgid "Available @code{ssl-configuration} fields are:"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16756
+#, no-wrap
+msgid "{@code{ssl-configuration} parameter} maybe-string protocol"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16758
+msgid "This determines what handshake to use."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16760
+#, no-wrap
+msgid "{@code{ssl-configuration} parameter} maybe-file-name key"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16762
+msgid "Path to your private key file."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16764
+#, no-wrap
+msgid "{@code{ssl-configuration} parameter} maybe-file-name certificate"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16766
+msgid "Path to your certificate file."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16768
+#, no-wrap
+msgid "{@code{ssl-configuration} parameter} file-object capath"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16772
+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:16774
+#, no-wrap
+msgid "{@code{ssl-configuration} parameter} maybe-file-object cafile"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16777
+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:16779
+#, no-wrap
+msgid "{@code{ssl-configuration} parameter} maybe-string-list verify"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16782
+msgid "A list of verification options (these mostly map to OpenSSL's @code{set_verify()} flags)."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16784
+#, no-wrap
+msgid "{@code{ssl-configuration} parameter} maybe-string-list options"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16788
+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:16790
+#, no-wrap
+msgid "{@code{ssl-configuration} parameter} maybe-non-negative-integer depth"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16793
+msgid "How long a chain of certificate authorities to check when looking for a trusted root certificate."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16795
+#, no-wrap
+msgid "{@code{ssl-configuration} parameter} maybe-string ciphers"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16798
+msgid "An OpenSSL cipher string.  This selects what ciphers Prosody will offer to clients, and in what order."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16800
+#, no-wrap
+msgid "{@code{ssl-configuration} parameter} maybe-file-name dhparam"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16804
+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:16806
+#, no-wrap
+msgid "{@code{ssl-configuration} parameter} maybe-string curve"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16809
+msgid "Curve for Elliptic curve Diffie-Hellman. Prosody's default is @samp{\"secp384r1\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16811
+#, no-wrap
+msgid "{@code{ssl-configuration} parameter} maybe-string-list verifyext"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16813
+msgid "A list of \"extra\" verification options."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16815
+#, no-wrap
+msgid "{@code{ssl-configuration} parameter} maybe-string password"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16817
+msgid "Password for encrypted private keys."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16821
+#, no-wrap
+msgid "{@code{prosody-configuration} parameter} boolean c2s-require-encryption?"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16825
+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:16827
+#, no-wrap
+msgid "{@code{prosody-configuration} parameter} string-list disable-sasl-mechanisms"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16831
+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:16833
+#, no-wrap
+msgid "{@code{prosody-configuration} parameter} boolean s2s-require-encryption?"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16837
+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:16839
+#, no-wrap
+msgid "{@code{prosody-configuration} parameter} boolean s2s-secure-auth?"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16845
+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:16847
+#, no-wrap
+msgid "{@code{prosody-configuration} parameter} string-list s2s-insecure-domains"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16853
+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:16855
+#, no-wrap
+msgid "{@code{prosody-configuration} parameter} string-list s2s-secure-domains"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16860
+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:16862
+#, no-wrap
+msgid "{@code{prosody-configuration} parameter} string authentication"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16870
+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:16872
+#, no-wrap
+msgid "{@code{prosody-configuration} parameter} maybe-string log"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16876
+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:16878
+#, no-wrap
+msgid "{@code{prosody-configuration} parameter} file-name pidfile"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16881
+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:16883
+#, no-wrap
+msgid "{@code{prosody-configuration} parameter} maybe-non-negative-integer http-max-content-size"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16885
+msgid "Maximum allowed size of the HTTP body (in bytes)."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16887
+#, no-wrap
+msgid "{@code{prosody-configuration} parameter} maybe-string http-external-url"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16892
+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:16894
+#, no-wrap
+msgid "{@code{prosody-configuration} parameter} virtualhost-configuration-list virtualhosts"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16899
+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:16905
+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 ""
+
+#. type: deftypevr
+#: doc/guix.texi:16907
+msgid "See @url{https://prosody.im/doc/configure#virtual_host_settings}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16909
+msgid "Available @code{virtualhost-configuration} fields are:"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16911 doc/guix.texi:16933 doc/guix.texi:16986
+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:16911
+#, no-wrap
+msgid "{@code{virtualhost-configuration} parameter} string domain"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16913
+msgid "Domain you wish Prosody to serve."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16917
+#, no-wrap
+msgid "{@code{prosody-configuration} parameter} int-component-configuration-list int-components"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16922
+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:16926
+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:16929
+msgid "See @url{https://prosody.im/doc/components}.  Defaults to @samp{()}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16931
+msgid "Available @code{int-component-configuration} fields are:"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16933
+#, no-wrap
+msgid "{@code{int-component-configuration} parameter} string hostname"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16935 doc/guix.texi:16992
+msgid "Hostname of the component."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16937
+#, no-wrap
+msgid "{@code{int-component-configuration} parameter} string plugin"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16939
+msgid "Plugin you wish to use for the component."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16941
+#, no-wrap
+msgid "{@code{int-component-configuration} parameter} maybe-mod-muc-configuration mod-muc"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16944
+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:16948
+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:16950
+msgid "See also @url{https://prosody.im/doc/modules/mod_muc}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16952
+msgid "Available @code{mod-muc-configuration} fields are:"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16953
+#, no-wrap
+msgid "{@code{mod-muc-configuration} parameter} string name"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16956
+msgid "The name to return in service discovery responses.  Defaults to @samp{\"Prosody Chatrooms\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16958
+#, no-wrap
+msgid "{@code{mod-muc-configuration} parameter} string-or-boolean restrict-room-creation"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16965
+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:16967
+#, no-wrap
+msgid "{@code{mod-muc-configuration} parameter} non-negative-integer max-history-messages"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16971
+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:16977
+#, no-wrap
+msgid "{@code{prosody-configuration} parameter} ext-component-configuration-list ext-components"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16982
+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:16984
+msgid "Available @code{ext-component-configuration} fields are:"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16986
+#, no-wrap
+msgid "{@code{ext-component-configuration} parameter} string component-secret"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16988
+msgid "Password which the component will use to log in."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16990
+#, no-wrap
+msgid "{@code{ext-component-configuration} parameter} string hostname"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16996
+#, no-wrap
+msgid "{@code{prosody-configuration} parameter} non-negative-integer-list component-ports"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:16999
+msgid "Port(s) Prosody listens on for component connections.  Defaults to @samp{(5347)}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17001
+#, no-wrap
+msgid "{@code{prosody-configuration} parameter} string component-interface"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17004
+msgid "Interface Prosody listens on for component connections.  Defaults to @samp{\"127.0.0.1\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17006
+#, no-wrap
+msgid "{@code{prosody-configuration} parameter} maybe-raw-content raw-content"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17008
+msgid "Raw content that will be added to the configuration file."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:17016
+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:17017
+#, no-wrap
+msgid "{@code{opaque-prosody-configuration} parameter} package prosody"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17019
+msgid "The prosody package."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17021
+#, no-wrap
+msgid "{@code{opaque-prosody-configuration} parameter} string prosody.cfg.lua"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17023
+msgid "The contents of the @code{prosody.cfg.lua} to use."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:17027
+msgid "For example, if your @code{prosody.cfg.lua} is just the empty string, you could instantiate a prosody service like this:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:17032
+#, no-wrap
+msgid ""
+"(service prosody-service-type\n"
+"         (opaque-prosody-configuration\n"
+"          (prosody.cfg.lua \"\")))\n"
+msgstr ""
+
+#. type: subsubheading
+#: doc/guix.texi:17036
+#, no-wrap
+msgid "BitlBee Service"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:17038 doc/guix.texi:17082
+#, no-wrap
+msgid "IRC (Internet Relay Chat)"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:17039
+#, no-wrap
+msgid "IRC gateway"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:17042
+msgid "@url{http://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:17043
+#, no-wrap
+msgid "{Scheme Variable} bitlbee-service-type"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:17047
+msgid "This is the service type for the @url{http://bitlbee.org,BitlBee} IRC gateway daemon.  Its value is a @code{bitlbee-configuration} (see below)."
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:17050
+msgid "To have BitlBee listen on port 6667 on localhost, add this line to your services:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:17053
+#, no-wrap
+msgid "(service bitlbee-service-type)\n"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:17056
+#, no-wrap
+msgid "{Data Type} bitlbee-configuration"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:17058
+msgid "This is the configuration for BitlBee, with the following fields:"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17060
+#, no-wrap
+msgid "@code{interface} (default: @code{\"127.0.0.1\"})"
+msgstr ""
+
+#. type: itemx
+#: doc/guix.texi:17061
+#, no-wrap
+msgid "@code{port} (default: @code{6667})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:17064
+msgid "Listen on the network interface corresponding to the IP address specified in @var{interface}, on @var{port}."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:17068
+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:17069
+#, no-wrap
+msgid "@code{package} (default: @code{bitlbee})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:17071
+msgid "The BitlBee package to use."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17072
+#, no-wrap
+msgid "@code{plugins} (default: @code{'()})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:17074
+msgid "List of plugin packages to use---e.g., @code{bitlbee-discord}."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17075
+#, no-wrap
+msgid "@code{extra-settings} (default: @code{\"\"})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:17077
+msgid "Configuration snippet added as-is to the BitlBee configuration file."
+msgstr ""
+
+#. type: subsubheading
+#: doc/guix.texi:17080
+#, no-wrap
+msgid "Quassel Service"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:17086
+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:17087
+#, no-wrap
+msgid "{Scheme Variable} quassel-service-type"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:17091
+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:17093
+#, no-wrap
+msgid "{Data Type} quassel-configuration"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:17095
+msgid "This is the configuration for Quassel, with the following fields:"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17097
+#, no-wrap
+msgid "@code{quassel} (default: @code{quassel})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:17099
+msgid "The Quassel package to use."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17100
+#, no-wrap
+msgid "@code{interface} (default: @code{\"::,0.0.0.0\"})"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17101
+#, no-wrap
+msgid "@code{port} (default: @code{4242})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:17105
+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:17106
+#, no-wrap
+msgid "@code{loglevel} (default: @code{\"Info\"})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:17109
+msgid "The level of logging desired.  Accepted values are Debug, Info, Warning and Error."
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:17115
+#, no-wrap
+msgid "Murmur (VoIP server)"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:17116
+#, no-wrap
+msgid "VoIP server"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:17120
+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:17121
+#, no-wrap
+msgid "{Data Type} murmur-configuration"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:17124
+msgid "The service type for the Murmur server.  An example configuration can look like this:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:17133
+#, no-wrap
+msgid ""
+"(service murmur-service-type\n"
+"         (murmur-configuration\n"
+"          (welcome-text\n"
+"            \"Welcome to this Mumble server running on Guix!\")\n"
+"          (cert-required? #t) ;disallow text password logins\n"
+"          (ssl-cert \"/etc/letsencrypt/live/mumble.example.com/fullchain.pem\")\n"
+"          (ssl-key \"/etc/letsencrypt/live/mumble.example.com/privkey.pem\")))\n"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:17137
+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:17146
+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:17148
+msgid "Available @code{murmur-configuration} fields are:"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17150
+#, no-wrap
+msgid "@code{package} (default: @code{mumble})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:17152
+msgid "Package that contains @code{bin/murmurd}."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17153
+#, no-wrap
+msgid "@code{user} (default: @code{\"murmur\"})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:17155
+msgid "User who will run the Murmur server."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17156
+#, no-wrap
+msgid "@code{group} (default: @code{\"murmur\"})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:17158
+msgid "Group of the user who will run the murmur server."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17159
+#, no-wrap
+msgid "@code{port} (default: @code{64738})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:17161
+msgid "Port on which the server will listen."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17162
+#, no-wrap
+msgid "@code{welcome-text} (default: @code{\"\"})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:17164
+msgid "Welcome text sent to clients when they connect."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17165
+#, no-wrap
+msgid "@code{server-password} (default: @code{\"\"})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:17167
+msgid "Password the clients have to enter in order to connect."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17168
+#, no-wrap
+msgid "@code{max-users} (default: @code{100})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:17170
+msgid "Maximum of users that can be connected to the server at once."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17171
+#, no-wrap
+msgid "@code{max-user-bandwidth} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:17173
+msgid "Maximum voice traffic a user can send per second."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17174
+#, no-wrap
+msgid "@code{database-file} (default: @code{\"/var/lib/murmur/db.sqlite\"})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:17177
+msgid "File name of the sqlite database.  The service's user will become the owner of the directory."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17178
+#, no-wrap
+msgid "@code{log-file} (default: @code{\"/var/log/murmur/murmur.log\"})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:17181
+msgid "File name of the log file.  The service's user will become the owner of the directory."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17182
+#, no-wrap
+msgid "@code{autoban-attempts} (default: @code{10})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:17185
+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:17186
+#, no-wrap
+msgid "@code{autoban-timeframe} (default: @code{120})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:17188
+msgid "Timeframe for autoban in seconds."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17189
+#, no-wrap
+msgid "@code{autoban-time} (default: @code{300})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:17192
+msgid "Amount of time in seconds for which a client gets banned when violating the autoban limits."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17193
+#, no-wrap
+msgid "@code{opus-threshold} (default: @code{100})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:17196
+msgid "Percentage of clients that need to support opus before switching over to opus audio codec."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17197
+#, no-wrap
+msgid "@code{channel-nesting-limit} (default: @code{10})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:17199
+msgid "How deep channels can be nested at maximum."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17200
+#, no-wrap
+msgid "@code{channelname-regex} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:17202
+msgid "A string in form of a Qt regular expression that channel names must conform to."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17203
+#, no-wrap
+msgid "@code{username-regex} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:17205
+msgid "A string in form of a Qt regular expression that user names must conform to."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17206
+#, no-wrap
+msgid "@code{text-message-length} (default: @code{5000})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:17208
+msgid "Maximum size in bytes that a user can send in one text chat message."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17209
+#, no-wrap
+msgid "@code{image-message-length} (default: @code{(* 128 1024)})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:17211
+msgid "Maximum size in bytes that a user can send in one image message."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17212
+#, no-wrap
+msgid "@code{cert-required?} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:17215
+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."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17216
+#, no-wrap
+msgid "@code{remember-channel?} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:17219
+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:17220
+#, no-wrap
+msgid "@code{allow-html?} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:17222
+msgid "Should html be allowed in text messages, user comments, and channel descriptions."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17223
+#, no-wrap
+msgid "@code{allow-ping?} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:17227
+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:17229
+msgid "Disabling this setting will prevent public listing of the server."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17230
+#, no-wrap
+msgid "@code{bonjour?} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:17232
+msgid "Should the server advertise itself in the local network through the bonjour protocol."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17233
+#, no-wrap
+msgid "@code{send-version?} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:17235
+msgid "Should the murmur server version be exposed in ping requests."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17236
+#, no-wrap
+msgid "@code{log-days} (default: @code{31})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:17240
+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:17241
+#, no-wrap
+msgid "@code{obfuscate-ips?} (default: @code{#t})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:17243
+msgid "Should logged ips be obfuscated to protect the privacy of users."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17244
+#, no-wrap
+msgid "@code{ssl-cert} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:17246
+msgid "File name of the SSL/TLS certificate used for encrypted connections."
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:17249
+#, no-wrap
+msgid "(ssl-cert \"/etc/letsencrypt/live/example.com/fullchain.pem\")\n"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17250
+#, no-wrap
+msgid "@code{ssl-key} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:17252
+msgid "Filepath to the ssl private key used for encrypted connections."
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:17254
+#, no-wrap
+msgid "(ssl-key \"/etc/letsencrypt/live/example.com/privkey.pem\")\n"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17256
+#, no-wrap
+msgid "@code{ssl-dh-params} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:17261
+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:17262
+#, no-wrap
+msgid "@code{ssl-ciphers} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:17265
+msgid "The @code{ssl-ciphers} option chooses the cipher suites to make available for use in SSL/TLS."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:17269
+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:17274
+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:17278
+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:17279
+#, no-wrap
+msgid "@code{public-registration} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:17281
+msgid "Must be a @code{<murmur-public-registration-configuration>} record or @code{#f}."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:17286
+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:17288
+msgid "It might take a few hours until it shows up in the public list."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17289 doc/guix.texi:18720
+#, no-wrap
+msgid "@code{file} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:17291
+msgid "Optional alternative override for this configuration."
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:17294
+#, no-wrap
+msgid "{Data Type} murmur-public-registration-configuration"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:17296
+msgid "Configuration for public registration of a murmur service."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:17300
+msgid "This is a display name for your server. Not to be confused with the hostname."
+msgstr ""
+
+#. type: itemx
+#: doc/guix.texi:17301 doc/guix.texi:23609
+#, no-wrap
+msgid "password"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:17304
+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:17305
+#, no-wrap
+msgid "url"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:17308
+msgid "This should be a @code{http://} or @code{https://} link to your web site."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17309
+#, no-wrap
+msgid "@code{hostname} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:17312
+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:17320
+#, no-wrap
+msgid "Tailon Service"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:17324
+msgid "@uref{https://tailon.readthedocs.io/, Tailon} is a web application for viewing and searching log files."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:17327
+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: example
+#: doc/guix.texi:17330
+#, no-wrap
+msgid "(service tailon-service-type)\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:17334
+msgid "The following example customises more of the Tailon configuration, adding @command{sed} to the list of allowed commands."
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:17341
+#, no-wrap
+msgid ""
+"(service tailon-service-type\n"
+"         (tailon-configuration\n"
+"           (config-file\n"
+"             (tailon-configuration-file\n"
+"               (allowed-commands '(\"tail\" \"grep\" \"awk\" \"sed\"))))))\n"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:17344
+#, no-wrap
+msgid "{Data Type} tailon-configuration"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:17347
+msgid "Data type representing the configuration of Tailon.  This type has the following parameters:"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17349
+#, no-wrap
+msgid "@code{config-file} (default: @code{(tailon-configuration-file)})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:17353
+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:17356
+msgid "For example, to instead use a local file, the @code{local-file} function can be used:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:17361
+#, no-wrap
+msgid ""
+"(service tailon-service-type\n"
+"         (tailon-configuration\n"
+"           (config-file (local-file \"./my-tailon.conf\"))))\n"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17363
+#, no-wrap
+msgid "@code{package} (default: @code{tailon})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:17365
+msgid "The tailon package to use."
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:17369
+#, no-wrap
+msgid "{Data Type} tailon-configuration-file"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:17372
+msgid "Data type representing the configuration options for Tailon.  This type has the following parameters:"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17374
+#, no-wrap
+msgid "@code{files} (default: @code{(list \"/var/log\")})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:17379
+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:17380
+#, no-wrap
+msgid "@code{bind} (default: @code{\"localhost:8080\"})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:17382
+msgid "Address and port to which Tailon should bind on."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17383
+#, no-wrap
+msgid "@code{relative-root} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:17385
+msgid "URL path to use for Tailon, set to @code{#f} to not use a path."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17386
+#, no-wrap
+msgid "@code{allow-transfers?} (default: @code{#t})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:17388
+msgid "Allow downloading the log files in the web interface."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17389
+#, no-wrap
+msgid "@code{follow-names?} (default: @code{#t})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:17391
+msgid "Allow tailing of not-yet existent files."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17392
+#, no-wrap
+msgid "@code{tail-lines} (default: @code{200})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:17394
+msgid "Number of lines to read initially from each file."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17395
+#, no-wrap
+msgid "@code{allowed-commands} (default: @code{(list \"tail\" \"grep\" \"awk\")})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:17397
+msgid "Commands to allow running. By default, @code{sed} is disabled."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17398
+#, no-wrap
+msgid "@code{debug?} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:17400
+msgid "Set @code{debug?} to @code{#t} to show debug messages."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17401
+#, no-wrap
+msgid "@code{wrap-lines} (default: @code{#t})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:17405
+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:17406
+#, no-wrap
+msgid "@code{http-auth} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:17410
+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:17411
+#, no-wrap
+msgid "@code{users} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:17416
+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: example
+#: doc/guix.texi:17422
+#, no-wrap
+msgid ""
+"(tailon-configuration-file\n"
+"  (http-auth \"basic\")\n"
+"  (users     '((\"user1\" . \"password1\")\n"
+"               (\"user2\" . \"password2\"))))\n"
+msgstr ""
+
+#. type: subsubheading
+#: doc/guix.texi:17428
+#, no-wrap
+msgid "Darkstat Service"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:17429
+#, no-wrap
+msgid "darkstat"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:17432
+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:17433
+#, no-wrap
+msgid "{Scheme Variable} darkstat-service-type"
+msgstr ""
+
+#. type: defvar
+#: doc/guix.texi:17438
+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: example
+#: doc/guix.texi:17443
+#, no-wrap
+msgid ""
+"(service darkstat-service-type\n"
+"         (darkstat-configuration\n"
+"           (interface \"eno1\")))\n"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:17446
+#, no-wrap
+msgid "{Data Type} darkstat-configuration"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:17448
+msgid "Data type representing the configuration of @command{darkstat}."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17450
+#, no-wrap
+msgid "@code{package} (default: @code{darkstat})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:17452
+msgid "The darkstat package to use."
+msgstr ""
+
+#. type: code{#1}
+#: doc/guix.texi:17453
+#, no-wrap
+msgid "interface"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:17455
+msgid "Capture traffic on the specified network interface."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17456
+#, no-wrap
+msgid "@code{port} (default: @code{\"667\"})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:17458
+msgid "Bind the web interface to the specified port."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17459
+#, no-wrap
+msgid "@code{bind-address} (default: @code{\"127.0.0.1\"})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:17461 doc/guix.texi:17499
+msgid "Bind the web interface to the specified address."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17462
+#, no-wrap
+msgid "@code{base} (default: @code{\"/\"})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:17465
+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:17469
+#, no-wrap
+msgid "Prometheus Node Exporter Service"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:17471
+#, no-wrap
+msgid "prometheus-node-exporter"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:17476
+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:17477
+#, no-wrap
+msgid "{Scheme variable} prometheus-node-exporter-service-type"
+msgstr ""
+
+#. type: defvar
+#: doc/guix.texi:17482
+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: example
+#: doc/guix.texi:17487
+#, no-wrap
+msgid ""
+"(service prometheus-node-exporter-service-type\n"
+"         (prometheus-node-exporter-configuration\n"
+"           (web-listen-address \":9100\")))\n"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:17490
+#, no-wrap
+msgid "{Data Type} prometheus-node-exporter-configuration"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:17492
+msgid "Data type representing the configuration of @command{node_exporter}."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17494
+#, no-wrap
+msgid "@code{package} (default: @code{go-github-com-prometheus-node-exporter})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:17496
+msgid "The prometheus-node-exporter package to use."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17497
+#, no-wrap
+msgid "@code{web-listen-address} (default: @code{\":9100\"})"
+msgstr ""
+
+#. type: subsubheading
+#: doc/guix.texi:17503
+#, no-wrap
+msgid "Zabbix server"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:17504
+#, no-wrap
+msgid "zabbix zabbix-server"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:17507
+msgid "Zabbix provides monitoring metrics, among others network utilization, CPU load and disk space consumption:"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17509
+#, no-wrap
+msgid "High performance, high capacity (able to monitor hundreds of thousands of devices)."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17510
+#, no-wrap
+msgid "Auto-discovery of servers and network devices and interfaces."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17511
+#, 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:17512
+#, no-wrap
+msgid "Distributed monitoring with centralized web administration."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17513
+#, no-wrap
+msgid "Native high performance agents."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17514
+#, no-wrap
+msgid "SLA, and ITIL KPI metrics on reporting."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17515
+#, no-wrap
+msgid "High-level (business) view of monitored resources through user-defined visual console screens and dashboards."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17516
+#, no-wrap
+msgid "Remote command execution through Zabbix proxies."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:17522
+msgid "Available @code{zabbix-server-configuration} fields are:"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17523
+#, no-wrap
+msgid "{@code{zabbix-server-configuration} parameter} package zabbix-server"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17525
+msgid "The zabbix-server package."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17528
+#, no-wrap
+msgid "{@code{zabbix-server-configuration} parameter} string user"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17530
+msgid "User who will run the Zabbix server."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17532 doc/guix.texi:17539 doc/guix.texi:17553
+#: doc/guix.texi:17560 doc/guix.texi:17661 doc/guix.texi:17668
+#: doc/guix.texi:17779 doc/guix.texi:17786
+msgid "Defaults to @samp{\"zabbix\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17535
+#, no-wrap
+msgid "{@code{zabbix-server-configuration} parameter} group group"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17537
+msgid "Group who will run the Zabbix server."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17542
+#, no-wrap
+msgid "{@code{zabbix-server-configuration} parameter} string db-host"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17544 doc/guix.texi:17763
+msgid "Database host name."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17546
+msgid "Defaults to @samp{\"127.0.0.1\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17549
+#, no-wrap
+msgid "{@code{zabbix-server-configuration} parameter} string db-name"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17551 doc/guix.texi:17777
+msgid "Database name."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17556
+#, no-wrap
+msgid "{@code{zabbix-server-configuration} parameter} string db-user"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17558 doc/guix.texi:17784
+msgid "Database user."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17563
+#, no-wrap
+msgid "{@code{zabbix-server-configuration} parameter} string db-password"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17566
+msgid "Database password.  Please, use @code{include-files} with @code{DBPassword=SECRET} inside a specified file instead."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17571
+#, no-wrap
+msgid "{@code{zabbix-server-configuration} parameter} number db-port"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17573 doc/guix.texi:17770
+msgid "Database port."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17575 doc/guix.texi:17772
+msgid "Defaults to @samp{5432}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17578
+#, no-wrap
+msgid "{@code{zabbix-server-configuration} parameter} string log-type"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17580 doc/guix.texi:17681
+msgid "Specifies where log messages are written to:"
+msgstr ""
+
+#. type: itemize
+#: doc/guix.texi:17584 doc/guix.texi:17685
+msgid "@code{system} - syslog."
+msgstr ""
+
+#. type: itemize
+#: doc/guix.texi:17587 doc/guix.texi:17688
+msgid "@code{file} - file specified with @code{log-file} parameter."
+msgstr ""
+
+#. type: itemize
+#: doc/guix.texi:17590 doc/guix.texi:17691
+msgid "@code{console} - standard output."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17597
+#, no-wrap
+msgid "{@code{zabbix-server-configuration} parameter} string log-file"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17599 doc/guix.texi:17700
+msgid "Log file name for @code{log-type} @code{file} parameter."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17601
+msgid "Defaults to @samp{\"/var/log/zabbix/server.log\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17604
+#, no-wrap
+msgid "{@code{zabbix-server-configuration} parameter} string pid-file"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17606 doc/guix.texi:17707
+msgid "Name of PID file."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17608
+msgid "Defaults to @samp{\"/var/run/zabbix/zabbix_server.pid\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17611
+#, no-wrap
+msgid "{@code{zabbix-server-configuration} parameter} string ssl-ca-location"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17614
+msgid "The location of certificate authority (CA) files for SSL server certificate verification."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17616
+msgid "Defaults to @samp{\"/etc/ssl/certs/ca-certificates.crt\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17619
+#, no-wrap
+msgid "{@code{zabbix-server-configuration} parameter} string ssl-cert-location"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17621
+msgid "Location of SSL client certificates."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17623
+msgid "Defaults to @samp{\"/etc/ssl/certs\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17626
+#, no-wrap
+msgid "{@code{zabbix-server-configuration} parameter} string extra-options"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17628 doc/guix.texi:17732
+msgid "Extra options will be appended to Zabbix server configuration file."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17633
+#, no-wrap
+msgid "{@code{zabbix-server-configuration} parameter} include-files include-files"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17636 doc/guix.texi:17740
+msgid "You may include individual files or all files in a directory in the configuration file."
+msgstr ""
+
+#. type: subsubheading
+#: doc/guix.texi:17643
+#, no-wrap
+msgid "Zabbix agent"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:17644
+#, no-wrap
+msgid "zabbix zabbix-agent"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:17647
+msgid "Zabbix agent gathers information for Zabbix server."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:17651
+msgid "Available @code{zabbix-agent-configuration} fields are:"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17652
+#, no-wrap
+msgid "{@code{zabbix-agent-configuration} parameter} package zabbix-agent"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17654
+msgid "The zabbix-agent package."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17657
+#, no-wrap
+msgid "{@code{zabbix-agent-configuration} parameter} string user"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17659
+msgid "User who will run the Zabbix agent."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17664
+#, no-wrap
+msgid "{@code{zabbix-agent-configuration} parameter} group group"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17666
+msgid "Group who will run the Zabbix agent."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17671
+#, no-wrap
+msgid "{@code{zabbix-agent-configuration} parameter} string hostname"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17674
+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:17676
+msgid "Defaults to @samp{\"Zabbix server\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17679
+#, no-wrap
+msgid "{@code{zabbix-agent-configuration} parameter} string log-type"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17698
+#, no-wrap
+msgid "{@code{zabbix-agent-configuration} parameter} string log-file"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17702
+msgid "Defaults to @samp{\"/var/log/zabbix/agent.log\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17705
+#, no-wrap
+msgid "{@code{zabbix-agent-configuration} parameter} string pid-file"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17709
+msgid "Defaults to @samp{\"/var/run/zabbix/zabbix_agent.pid\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17712
+#, no-wrap
+msgid "{@code{zabbix-agent-configuration} parameter} list server"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17716
+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:17718 doc/guix.texi:17727
+msgid "Defaults to @samp{(\"127.0.0.1\")}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17721
+#, no-wrap
+msgid "{@code{zabbix-agent-configuration} parameter} list server-active"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17725
+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:17730
+#, no-wrap
+msgid "{@code{zabbix-agent-configuration} parameter} string extra-options"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17737
+#, no-wrap
+msgid "{@code{zabbix-agent-configuration} parameter} include-files include-files"
+msgstr ""
+
+#. type: subsubheading
+#: doc/guix.texi:17747
+#, no-wrap
+msgid "Zabbix front-end"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:17748
+#, no-wrap
+msgid "zabbix zabbix-front-end"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:17751
+msgid "This service provides a WEB interface to Zabbix server."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:17755
+msgid "Available @code{zabbix-front-end-configuration} fields are:"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17756
+#, no-wrap
+msgid "{@code{zabbix-front-end-configuration} parameter} nginx-server-configuration-list nginx"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17758 doc/guix.texi:22088
+msgid "NGINX configuration."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17761
+#, no-wrap
+msgid "{@code{zabbix-front-end-configuration} parameter} string db-host"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17768
+#, no-wrap
+msgid "{@code{zabbix-front-end-configuration} parameter} number db-port"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17775
+#, no-wrap
+msgid "{@code{zabbix-front-end-configuration} parameter} string db-name"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17782
+#, no-wrap
+msgid "{@code{zabbix-front-end-configuration} parameter} string db-user"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17789
+#, no-wrap
+msgid "{@code{zabbix-front-end-configuration} parameter} string db-password"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17791
+msgid "Database password.  Please, use @code{db-secret-file} instead."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17796
+#, no-wrap
+msgid "{@code{zabbix-front-end-configuration} parameter} string db-secret-file"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17800
+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:17805
+#, no-wrap
+msgid "{@code{zabbix-front-end-configuration} parameter} string zabbix-host"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17807
+msgid "Zabbix server hostname."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17812
+#, no-wrap
+msgid "{@code{zabbix-front-end-configuration} parameter} number zabbix-port"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17814
+msgid "Zabbix server port."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17816
+msgid "Defaults to @samp{10051}."
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:17824
+#, no-wrap
+msgid "Kerberos"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:17828
+msgid "The @code{(gnu services kerberos)} module provides services relating to the authentication protocol @dfn{Kerberos}."
+msgstr ""
+
+#. type: subsubheading
+#: doc/guix.texi:17829
+#, no-wrap
+msgid "Krb5 Service"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:17836
+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:17840
+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:17841
+#, no-wrap
+msgid "{Scheme Variable} krb5-service-type"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:17843
+msgid "A service type for Kerberos 5 clients."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:17847
+msgid "Here is an example of its use:"
+msgstr ""
+
+#. type: lisp
+#: doc/guix.texi:17861
+#, no-wrap
+msgid ""
+"(service krb5-service-type\n"
+"         (krb5-configuration\n"
+"          (default-realm \"EXAMPLE.COM\")\n"
+"          (allow-weak-crypto? #t)\n"
+"          (realms (list\n"
+"                   (krb5-realm\n"
+"                    (name \"EXAMPLE.COM\")\n"
+"                    (admin-server \"groucho.example.com\")\n"
+"                    (kdc \"karl.example.com\"))\n"
+"                   (krb5-realm\n"
+"                    (name \"ARGRX.EDU\")\n"
+"                    (admin-server \"kerb-admin.argrx.edu\")\n"
+"                    (kdc \"keys.argrx.edu\"))))))\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:17865
+msgid "This example provides a Kerberos@tie{}5 client configuration which:"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17866
+#, no-wrap
+msgid "Recognizes two realms, @i{viz:} ``EXAMPLE.COM'' and ``ARGRX.EDU'', both"
+msgstr ""
+
+#. type: itemize
+#: doc/guix.texi:17868
+msgid "of which have distinct administration servers and key distribution centers;"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17868
+#, no-wrap
+msgid "Will default to the realm ``EXAMPLE.COM'' if the realm is not explicitly"
+msgstr ""
+
+#. type: itemize
+#: doc/guix.texi:17870
+msgid "specified by clients;"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17870
+#, no-wrap
+msgid "Accepts services which only support encryption types known to be weak."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:17878
+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{http://web.mit.edu/kerberos/krb5-devel/doc/admin/conf_files/krb5_conf.html,,krb5.conf} documentation."
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:17880
+#, no-wrap
+msgid "{Data Type} krb5-realm"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:17881
+#, no-wrap
+msgid "realm, kerberos"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:17887
+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:17888
+#, no-wrap
+msgid "admin-server"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:17891
+msgid "This field is a string identifying the host where the administration server is running."
+msgstr ""
+
+#. type: code{#1}
+#: doc/guix.texi:17892
+#, no-wrap
+msgid "kdc"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:17895
+msgid "This field is a string identifying the key distribution center for the realm."
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:17898
+#, no-wrap
+msgid "{Data Type} krb5-configuration"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17901
+#, no-wrap
+msgid "@code{allow-weak-crypto?} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:17904
+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:17905
+#, no-wrap
+msgid "@code{default-realm} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:17912
+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:17913
+#, no-wrap
+msgid "realms"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:17918
+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:17922
+#, no-wrap
+msgid "PAM krb5 Service"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:17923
+#, no-wrap
+msgid "pam-krb5"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:17929
+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:17930
+#, no-wrap
+msgid "{Scheme Variable} pam-krb5-service-type"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:17932
+msgid "A service type for the Kerberos 5 PAM module."
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:17934
+#, no-wrap
+msgid "{Data Type} pam-krb5-configuration"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:17937
+msgid "Data type representing the configuration of the Kerberos 5 PAM module This type has the following parameters:"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17938
+#, no-wrap
+msgid "@code{pam-krb5} (default: @code{pam-krb5})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:17940
+msgid "The pam-krb5 package to use."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:17941
+#, no-wrap
+msgid "@code{minimum-uid} (default: @code{1000})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:17944
+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:17950
+#, no-wrap
+msgid "LDAP"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:17951
+#, no-wrap
+msgid "nslcd, LDAP service"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:17958
+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:17962
+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: example
+#: doc/guix.texi:17985
+#, no-wrap
+msgid ""
+"(use-service-modules authentication)\n"
+"(use-modules (gnu system nss))\n"
+"...\n"
+"(operating-system\n"
+"  ...\n"
+"  (services\n"
+"    (cons*\n"
+"      (service nslcd-service-type)\n"
+"      (service dhcp-client-service-type)\n"
+"      %base-services))\n"
+"  (name-service-switch\n"
+"   (let ((services (list (name-service (name \"db\"))\n"
+"                         (name-service (name \"files\"))\n"
+"                         (name-service (name \"ldap\")))))\n"
+"     (name-service-switch\n"
+"      (inherit %mdns-host-lookup-nss)\n"
+"      (password services)\n"
+"      (shadow   services)\n"
+"      (group    services)\n"
+"      (netgroup services)\n"
+"      (gshadow  services)))))\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:17990
+msgid "Available @code{nslcd-configuration} fields are:"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17991
+#, no-wrap
+msgid "{@code{nslcd-configuration} parameter} package nss-pam-ldapd"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17993
+msgid "The @code{nss-pam-ldapd} package to use."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:17996
+#, no-wrap
+msgid "{@code{nslcd-configuration} parameter} maybe-number threads"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18000
+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:18002 doc/guix.texi:18044 doc/guix.texi:18052
+#: doc/guix.texi:18060 doc/guix.texi:18068 doc/guix.texi:18077
+#: doc/guix.texi:18085 doc/guix.texi:18092 doc/guix.texi:18100
+#: doc/guix.texi:18108 doc/guix.texi:18118 doc/guix.texi:18125
+#: doc/guix.texi:18149 doc/guix.texi:18157 doc/guix.texi:18183
+#: doc/guix.texi:18192 doc/guix.texi:18201 doc/guix.texi:18210
+#: doc/guix.texi:18219 doc/guix.texi:18228 doc/guix.texi:18236
+#: doc/guix.texi:18244 doc/guix.texi:18251 doc/guix.texi:18259
+#: doc/guix.texi:18266 doc/guix.texi:18274 doc/guix.texi:18282
+#: doc/guix.texi:18291 doc/guix.texi:18300 doc/guix.texi:18308
+#: doc/guix.texi:18316 doc/guix.texi:18324 doc/guix.texi:18335
+#: doc/guix.texi:18345 doc/guix.texi:18356 doc/guix.texi:18365
+#: doc/guix.texi:18375 doc/guix.texi:18383 doc/guix.texi:18394
+#: doc/guix.texi:18403 doc/guix.texi:18413 doc/guix.texi:20631
+#: doc/guix.texi:20638 doc/guix.texi:20645 doc/guix.texi:20652
+#: doc/guix.texi:20659 doc/guix.texi:20666 doc/guix.texi:20674
+#: doc/guix.texi:20682 doc/guix.texi:20689 doc/guix.texi:20696
+#: doc/guix.texi:20703 doc/guix.texi:20710 doc/guix.texi:20740
+#: doc/guix.texi:20778 doc/guix.texi:20785 doc/guix.texi:20794
+#: doc/guix.texi:20816 doc/guix.texi:20824 doc/guix.texi:20831
+#: doc/guix.texi:20986 doc/guix.texi:21006 doc/guix.texi:21021
+#: doc/guix.texi:21028 doc/guix.texi:22826 doc/guix.texi:22834
+#: doc/guix.texi:22842 doc/guix.texi:22850 doc/guix.texi:22858
+#: doc/guix.texi:22866
+msgid "Defaults to @samp{disabled}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18005
+#, no-wrap
+msgid "{@code{nslcd-configuration} parameter} string uid"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18007
+msgid "This specifies the user id with which the daemon should be run."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18009 doc/guix.texi:18016
+msgid "Defaults to @samp{\"nslcd\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18012
+#, no-wrap
+msgid "{@code{nslcd-configuration} parameter} string gid"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18014
+msgid "This specifies the group id with which the daemon should be run."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18019
+#, no-wrap
+msgid "{@code{nslcd-configuration} parameter} log-option log"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18026
+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 ""
+
+#. type: deftypevr
+#: doc/guix.texi:18028
+msgid "Defaults to @samp{(\"/var/log/nslcd\" info)}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18031
+#, no-wrap
+msgid "{@code{nslcd-configuration} parameter} list uri"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18034
+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:18036
+msgid "Defaults to @samp{(\"ldap://localhost:389/\")}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18039
+#, no-wrap
+msgid "{@code{nslcd-configuration} parameter} maybe-string ldap-version"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18042
+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:18047
+#, no-wrap
+msgid "{@code{nslcd-configuration} parameter} maybe-string binddn"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18050
+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:18055
+#, no-wrap
+msgid "{@code{nslcd-configuration} parameter} maybe-string bindpw"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18058
+msgid "Specifies the credentials with which to bind.  This option is only applicable when used with binddn."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18063
+#, no-wrap
+msgid "{@code{nslcd-configuration} parameter} maybe-string rootpwmoddn"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18066
+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:18071
+#, no-wrap
+msgid "{@code{nslcd-configuration} parameter} maybe-string rootpwmodpw"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18075
+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:18080
+#, no-wrap
+msgid "{@code{nslcd-configuration} parameter} maybe-string sasl-mech"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18083
+msgid "Specifies the SASL mechanism to be used when performing SASL authentication."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18088
+#, no-wrap
+msgid "{@code{nslcd-configuration} parameter} maybe-string sasl-realm"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18090
+msgid "Specifies the SASL realm to be used when performing SASL authentication."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18095
+#, no-wrap
+msgid "{@code{nslcd-configuration} parameter} maybe-string sasl-authcid"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18098
+msgid "Specifies the authentication identity to be used when performing SASL authentication."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18103
+#, no-wrap
+msgid "{@code{nslcd-configuration} parameter} maybe-string sasl-authzid"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18106
+msgid "Specifies the authorization identity to be used when performing SASL authentication."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18111
+#, no-wrap
+msgid "{@code{nslcd-configuration} parameter} maybe-boolean sasl-canonicalize?"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18116
+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:18121
+#, no-wrap
+msgid "{@code{nslcd-configuration} parameter} maybe-string krb5-ccname"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18123
+msgid "Set the name for the GSS-API Kerberos credentials cache."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18128
+#, no-wrap
+msgid "{@code{nslcd-configuration} parameter} string base"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18130
+msgid "The directory search base."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18132
+msgid "Defaults to @samp{\"dc=example,dc=com\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18135
+#, no-wrap
+msgid "{@code{nslcd-configuration} parameter} scope-option scope"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18139
+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:18141
+msgid "Defaults to @samp{(subtree)}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18144
+#, no-wrap
+msgid "{@code{nslcd-configuration} parameter} maybe-deref-option deref"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18147
+msgid "Specifies the policy for dereferencing aliases.  The default policy is to never dereference aliases."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18152
+#, no-wrap
+msgid "{@code{nslcd-configuration} parameter} maybe-boolean referrals"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18155
+msgid "Specifies whether automatic referral chasing should be enabled.  The default behaviour is to chase referrals."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18160
+#, no-wrap
+msgid "{@code{nslcd-configuration} parameter} list-of-map-entries maps"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18165
+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:18170
+#, no-wrap
+msgid "{@code{nslcd-configuration} parameter} list-of-filter-entries filters"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18173
+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:18178
+#, no-wrap
+msgid "{@code{nslcd-configuration} parameter} maybe-number bind-timelimit"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18181
+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:18186
+#, no-wrap
+msgid "{@code{nslcd-configuration} parameter} maybe-number timelimit"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18190
+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:18195
+#, no-wrap
+msgid "{@code{nslcd-configuration} parameter} maybe-number idle-timelimit"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18199
+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:18204
+#, no-wrap
+msgid "{@code{nslcd-configuration} parameter} maybe-number reconnect-sleeptime"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18208
+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:18213
+#, no-wrap
+msgid "{@code{nslcd-configuration} parameter} maybe-number reconnect-retrytime"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18217
+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:18222
+#, no-wrap
+msgid "{@code{nslcd-configuration} parameter} maybe-ssl-option ssl"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18226
+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:18231
+#, no-wrap
+msgid "{@code{nslcd-configuration} parameter} maybe-tls-reqcert-option tls-reqcert"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18234
+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:18239
+#, no-wrap
+msgid "{@code{nslcd-configuration} parameter} maybe-string tls-cacertdir"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18242
+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:18247
+#, no-wrap
+msgid "{@code{nslcd-configuration} parameter} maybe-string tls-cacertfile"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18249
+msgid "Specifies the path to the X.509 certificate for peer authentication."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18254
+#, no-wrap
+msgid "{@code{nslcd-configuration} parameter} maybe-string tls-randfile"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18257
+msgid "Specifies the path to an entropy source.  This parameter is ignored when using GnuTLS."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18262
+#, no-wrap
+msgid "{@code{nslcd-configuration} parameter} maybe-string tls-ciphers"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18264
+msgid "Specifies the ciphers to use for TLS as a string."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18269
+#, no-wrap
+msgid "{@code{nslcd-configuration} parameter} maybe-string tls-cert"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18272
+msgid "Specifies the path to the file containing the local certificate for client TLS authentication."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18277
+#, no-wrap
+msgid "{@code{nslcd-configuration} parameter} maybe-string tls-key"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18280
+msgid "Specifies the path to the file containing the private key for client TLS authentication."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18285
+#, no-wrap
+msgid "{@code{nslcd-configuration} parameter} maybe-number pagesize"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18289
+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:18294
+#, no-wrap
+msgid "{@code{nslcd-configuration} parameter} maybe-ignore-users-option nss-initgroups-ignoreusers"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18298
+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:18303
+#, no-wrap
+msgid "{@code{nslcd-configuration} parameter} maybe-number nss-min-uid"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18306
+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:18311
+#, no-wrap
+msgid "{@code{nslcd-configuration} parameter} maybe-number nss-uid-offset"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18314
+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:18319
+#, no-wrap
+msgid "{@code{nslcd-configuration} parameter} maybe-number nss-gid-offset"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18322
+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:18327
+#, no-wrap
+msgid "{@code{nslcd-configuration} parameter} maybe-boolean nss-nested-groups"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18333
+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:18338
+#, no-wrap
+msgid "{@code{nslcd-configuration} parameter} maybe-boolean nss-getgrent-skipmembers"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18343
+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:18348
+#, no-wrap
+msgid "{@code{nslcd-configuration} parameter} maybe-boolean nss-disable-enumeration"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18354
+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:18359
+#, no-wrap
+msgid "{@code{nslcd-configuration} parameter} maybe-string validnames"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18363
+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:18368
+#, no-wrap
+msgid "{@code{nslcd-configuration} parameter} maybe-boolean ignorecase"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18373
+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:18378
+#, no-wrap
+msgid "{@code{nslcd-configuration} parameter} maybe-boolean pam-authc-ppolicy"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18381
+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:18386
+#, no-wrap
+msgid "{@code{nslcd-configuration} parameter} maybe-string pam-authc-search"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18392
+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:18397
+#, no-wrap
+msgid "{@code{nslcd-configuration} parameter} maybe-string pam-authz-search"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18401
+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:18406
+#, no-wrap
+msgid "{@code{nslcd-configuration} parameter} maybe-string pam-password-prohibit-message"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18411
+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:18416
+#, no-wrap
+msgid "{@code{nslcd-configuration} parameter} list pam-services"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:18418
+msgid "List of pam service names for which LDAP authentication should suffice."
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:18429
+#, no-wrap
+msgid "web"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:18430
+#, no-wrap
+msgid "www"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:18431
+#, no-wrap
+msgid "HTTP"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:18434
+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:18435
+#, no-wrap
+msgid "Apache HTTP Server"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:18437
+#, no-wrap
+msgid "{Scheme Variable} httpd-service-type"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:18441
+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:18443 doc/guix.texi:18624
+msgid "A simple example configuration is given below."
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:18451
+#, no-wrap
+msgid ""
+"(service httpd-service-type\n"
+"         (httpd-configuration\n"
+"           (config\n"
+"             (httpd-config-file\n"
+"               (server-name \"www.example.com\")\n"
+"               (document-root \"/srv/http/www.example.com\")))))\n"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:18455
+msgid "Other services can also extend the @code{httpd-service-type} to add to the configuration."
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:18464 doc/guix.texi:18604
+#, no-wrap
+msgid ""
+"(simple-service 'my-extra-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"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:18470
+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:18471
+#, no-wrap
+msgid "{Data Type} httpd-configuration"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:18473
+msgid "This data type represents the configuration for the httpd service."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:18475
+#, no-wrap
+msgid "@code{package} (default: @code{httpd})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:18477
+msgid "The httpd package to use."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:18478 doc/guix.texi:18567
+#, no-wrap
+msgid "@code{pid-file} (default: @code{\"/var/run/httpd\"})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:18480
+msgid "The pid file used by the shepherd-service."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:18481
+#, no-wrap
+msgid "@code{config} (default: @code{(httpd-config-file)})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:18486
+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:18490
+#, no-wrap
+msgid "{Data Type} httpd-module"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:18492
+msgid "This data type represents a module for the httpd service."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:18496
+msgid "The name of the module."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:18502
+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:18506
+#, no-wrap
+msgid "{Scheme Variable} %default-httpd-modules"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:18508
+msgid "A default list of @code{httpd-module} objects."
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:18510
+#, no-wrap
+msgid "{Data Type} httpd-config-file"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:18512
+msgid "This data type represents a configuration file for the httpd service."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:18514
+#, no-wrap
+msgid "@code{modules} (default: @code{%default-httpd-modules})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:18517
+msgid "The modules to load. Additional modules can be added here, or loaded by additional configuration."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:18520
+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: example
+#: doc/guix.texi:18542
+#, no-wrap
+msgid ""
+"(service httpd-service-type\n"
+"         (httpd-configuration\n"
+"          (config\n"
+"           (httpd-config-file\n"
+"            (modules (cons*\n"
+"                      (httpd-module\n"
+"                       (name \"proxy_module\")\n"
+"                       (file \"modules/mod_proxy.so\"))\n"
+"                      (httpd-module\n"
+"                       (name \"proxy_fcgi_module\")\n"
+"                       (file \"modules/mod_proxy_fcgi.so\"))\n"
+"                      %default-httpd-modules))\n"
+"            (extra-config (list \"\\\n"
+"<FilesMatch \\\\.php$>\n"
+"    SetHandler \\\"proxy:unix:/var/run/php-fpm.sock|fcgi://localhost/\\\"\n"
+"</FilesMatch>\"))))))\n"
+"(service php-fpm-service-type\n"
+"         (php-fpm-configuration\n"
+"          (socket \"/var/run/php-fpm.sock\")\n"
+"          (socket-group \"httpd\")))\n"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:18544
+#, no-wrap
+msgid "@code{server-root} (default: @code{httpd})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:18548
+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:18549
+#, no-wrap
+msgid "@code{server-name} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:18553
+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:18557
+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}."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:18558
+#, no-wrap
+msgid "@code{document-root} (default: @code{\"/srv/http\"})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:18560
+msgid "The @code{DocumentRoot} from which files will be served."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:18561
+#, no-wrap
+msgid "@code{listen} (default: @code{'(\"80\")})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:18566
+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:18571
+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:18572
+#, no-wrap
+msgid "@code{error-log} (default: @code{\"/var/log/httpd/error_log\"})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:18574
+msgid "The @code{ErrorLog} to which the server will log errors."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:18575
+#, no-wrap
+msgid "@code{user} (default: @code{\"httpd\"})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:18577
+msgid "The @code{User} which the server will answer requests as."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:18578
+#, no-wrap
+msgid "@code{group} (default: @code{\"httpd\"})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:18580
+msgid "The @code{Group} which the server will answer requests as."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:18581
+#, no-wrap
+msgid "@code{extra-config} (default: @code{(list \"TypesConfig etc/httpd/mime.types\")})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:18584
+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:18587
+msgid "Any values which the service is extended with will be appended to this list."
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:18591
+#, no-wrap
+msgid "{Data Type} httpd-virtualhost"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:18593
+msgid "This data type represents a virtualhost configuration block for the httpd service."
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:18595
+msgid "These should be added to the extra-config for the httpd-service."
+msgstr ""
+
+#. type: code{#1}
+#: doc/guix.texi:18607
+#, no-wrap
+msgid "addresses-and-ports"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:18609
+msgid "The addresses and ports for the @code{VirtualHost} directive."
+msgstr ""
+
+#. type: code{#1}
+#: doc/guix.texi:18610
+#, no-wrap
+msgid "contents"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:18613
+msgid "The contents of the @code{VirtualHost} directive, this should be a list of strings and G-expressions."
+msgstr ""
+
+#. type: subsubheading
+#: doc/guix.texi:18617
+#, no-wrap
+msgid "NGINX"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:18619
+#, no-wrap
+msgid "{Scheme Variable} nginx-service-type"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:18622
+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: example
+#: doc/guix.texi:18632 doc/guix.texi:18686
+#, no-wrap
+msgid ""
+"(service nginx-service-type\n"
+"         (nginx-configuration\n"
+"           (server-blocks\n"
+"             (list (nginx-server-configuration\n"
+"                     (server-name '(\"www.example.com\"))\n"
+"                     (root \"/srv/http/www.example.com\"))))))\n"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:18637
+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: example
+#: doc/guix.texi:18643
+#, no-wrap
+msgid ""
+"(simple-service 'my-extra-server nginx-service-type\n"
+"                (list (nginx-server-configuration\n"
+"                        (root \"/srv/http/extra-website\")\n"
+"                        (try-files (list \"$uri\" \"$uri/index.html\")))))\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:18654
+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:18655
+#, no-wrap
+msgid "{Data Type} nginx-configuration"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:18659
+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:18661
+#, no-wrap
+msgid "@code{nginx} (default: @code{nginx})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:18663
+msgid "The nginx package to use."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:18664
+#, no-wrap
+msgid "@code{log-directory} (default: @code{\"/var/log/nginx\"})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:18666
+msgid "The directory to which NGinx will write log files."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:18667
+#, no-wrap
+msgid "@code{run-directory} (default: @code{\"/var/run/nginx\"})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:18670
+msgid "The directory in which NGinx will create a pid file, and write temporary files."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:18671
+#, no-wrap
+msgid "@code{server-blocks} (default: @code{'()})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:18675
+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:18679
+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:18688
+#, no-wrap
+msgid "@code{upstream-blocks} (default: @code{'()})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:18692
+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:18699
+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: example
+#: doc/guix.texi:18718
+#, no-wrap
+msgid ""
+"(service\n"
+"  nginx-service-type\n"
+"  (nginx-configuration\n"
+"    (server-blocks\n"
+"      (list (nginx-server-configuration\n"
+"              (server-name '(\"www.example.com\"))\n"
+"              (root \"/srv/http/www.example.com\")\n"
+"              (locations\n"
+"                (list\n"
+"                  (nginx-location-configuration\n"
+"                  (uri \"/path1\")\n"
+"                  (body '(\"proxy_pass http://server-proxy;\"))))))))\n"
+"    (upstream-blocks\n"
+"      (list (nginx-upstream-configuration\n"
+"              (name \"server-proxy\")\n"
+"              (servers (list \"server1.example.com\"\n"
+"                             \"server2.example.com\")))))))\n"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:18726
+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:18730
+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:18731
+#, no-wrap
+msgid "@code{server-names-hash-bucket-size} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:18734
+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:18735
+#, no-wrap
+msgid "@code{server-names-hash-bucket-max-size} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:18737
+msgid "Maximum bucket size for the server names hash tables."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:18741
+msgid "Extra content for the @code{http} block.  Should be string or a string valued G-expression."
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:18745
+#, no-wrap
+msgid "{Data Type} nginx-server-configuration"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:18748
+msgid "Data type representing the configuration of an nginx server block.  This type has the following parameters:"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:18750
+#, no-wrap
+msgid "@code{listen} (default: @code{'(\"80\" \"443 ssl\")})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:18755
+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: example
+#: doc/guix.texi:18758
+#, no-wrap
+msgid "'(\"127.0.0.1:8000\" \"127.0.0.1\" \"8000\" \"*:8000\" \"localhost:8000\")\n"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:18760
+#, no-wrap
+msgid "@code{server-name} (default: @code{(list 'default)})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:18763
+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:18764
+#, no-wrap
+msgid "@code{root} (default: @code{\"/srv/http\"})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:18766
+msgid "Root of the website nginx will serve."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:18767
+#, no-wrap
+msgid "@code{locations} (default: @code{'()})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:18771
+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:18772
+#, no-wrap
+msgid "@code{index} (default: @code{(list \"index.html\")})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:18775
+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:18776
+#, no-wrap
+msgid "@code{try-files} (default: @code{'()})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:18779
+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:18780
+#, no-wrap
+msgid "@code{ssl-certificate} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:18783
+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:18784
+#, no-wrap
+msgid "@code{ssl-certificate-key} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:18787
+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:18788
+#, no-wrap
+msgid "@code{server-tokens?} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:18790
+msgid "Whether the server should add its configuration to response."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:18791
+#, no-wrap
+msgid "@code{raw-content} (default: @code{'()})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:18793
+msgid "A list of raw lines added to the server block."
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:18797
+#, no-wrap
+msgid "{Data Type} nginx-upstream-configuration"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:18800
+msgid "Data type representing the configuration of an nginx @code{upstream} block.  This type has the following parameters:"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:18804
+msgid "Name for this group of servers."
+msgstr ""
+
+#. type: code{#1}
+#: doc/guix.texi:18805
+#, no-wrap
+msgid "servers"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:18812
+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:18816
+#, no-wrap
+msgid "{Data Type} nginx-location-configuration"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:18819
+msgid "Data type representing the configuration of an nginx @code{location} block.  This type has the following parameters:"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:18823
+msgid "URI which this location block matches."
+msgstr ""
+
+#. type: anchor{#1}
+#: doc/guix.texi:18825
+msgid "nginx-location-configuration body"
+msgstr ""
+
+#. type: code{#1}
+#: doc/guix.texi:18825 doc/guix.texi:18846
+#, no-wrap
+msgid "body"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:18832
+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:18836
+#, no-wrap
+msgid "{Data Type} nginx-named-location-configuration"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:18841
+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:18845
+msgid "Name to identify this location block."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:18851
+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:18855
+#, no-wrap
+msgid "Varnish Cache"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:18856
+#, no-wrap
+msgid "Varnish"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:18861
+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:18862
+#, no-wrap
+msgid "{Scheme Variable} varnish-service-type"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:18864
+msgid "Service type for the Varnish daemon."
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:18866
+#, no-wrap
+msgid "{Data Type} varnish-configuration"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:18869
+msgid "Data type representing the @code{varnish} service configuration.  This type has the following parameters:"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:18871
+#, no-wrap
+msgid "@code{package} (default: @code{varnish})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:18873
+msgid "The Varnish package to use."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:18874
+#, no-wrap
+msgid "@code{name} (default: @code{\"default\"})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:18879
+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:18882
+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:18883
+#, no-wrap
+msgid "@code{backend} (default: @code{\"localhost:8080\"})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:18885
+msgid "The backend to use.  This option has no effect if @code{vcl} is set."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:18886
+#, no-wrap
+msgid "@code{vcl} (default: #f)"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:18891
+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:18895
+msgid "For example, to mirror @url{http://www.gnu.org,www.gnu.org} with VCL you can do something along these lines:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:18902
+#, no-wrap
+msgid ""
+"(define %gnu-mirror\n"
+"  (plain-file\n"
+"   \"gnu.vcl\"\n"
+"   \"vcl 4.1;\n"
+"backend gnu @{ .host = \"www.gnu.org\"; @}\"))\n"
+"\n"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:18910
+#, no-wrap
+msgid ""
+"(operating-system\n"
+"  ...\n"
+"  (services (cons (service varnish-service-type\n"
+"                           (varnish-configuration\n"
+"                            (listen '(\":80\"))\n"
+"                            (vcl %gnu-mirror)))\n"
+"                  %base-services)))\n"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:18914
+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:18918
+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:18919
+#, no-wrap
+msgid "@code{listen} (default: @code{'(\"localhost:80\")})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:18921
+msgid "List of addresses Varnish will listen on."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:18922
+#, no-wrap
+msgid "@code{storage} (default: @code{'(\"malloc,128m\")})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:18924
+msgid "List of storage backends that will be available in VCL."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:18925
+#, no-wrap
+msgid "@code{parameters} (default: @code{'()})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:18927
+msgid "List of run-time parameters in the form @code{'((\"parameter\" . \"value\"))}."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:18930
+msgid "Additional arguments to pass to the @command{varnishd} process."
+msgstr ""
+
+#. type: subsubheading
+#: doc/guix.texi:18934
+#, no-wrap
+msgid "FastCGI"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:18935
+#, no-wrap
+msgid "fastcgi"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:18936
+#, no-wrap
+msgid "fcgiwrap"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:18943
+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:18950
+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:18951
+#, no-wrap
+msgid "{Scheme Variable} fcgiwrap-service-type"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:18953
+msgid "A service type for the @code{fcgiwrap} FastCGI proxy."
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:18955
+#, no-wrap
+msgid "{Data Type} fcgiwrap-configuration"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:18958
+msgid "Data type representing the configuration of the @code{fcgiwrap} service.  This type has the following parameters:"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:18959
+#, no-wrap
+msgid "@code{package} (default: @code{fcgiwrap})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:18961
+msgid "The fcgiwrap package to use."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:18962
+#, no-wrap
+msgid "@code{socket} (default: @code{tcp:127.0.0.1:9000})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:18968
+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:18969
+#, no-wrap
+msgid "@code{user} (default: @code{fcgiwrap})"
+msgstr ""
+
+#. type: itemx
+#: doc/guix.texi:18970
+#, no-wrap
+msgid "@code{group} (default: @code{fcgiwrap})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:18975
+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:18982
+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:18985
+#, no-wrap
+msgid "php-fpm"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:18988
+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:18990
+msgid "These features include:"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:18991
+#, no-wrap
+msgid "Adaptive process spawning"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:18992
+#, no-wrap
+msgid "Basic statistics (similar to Apache's mod_status)"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:18993
+#, no-wrap
+msgid "Advanced process management with graceful stop/start"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:18994
+#, no-wrap
+msgid "Ability to start workers with different uid/gid/chroot/environment"
+msgstr ""
+
+#. type: itemize
+#: doc/guix.texi:18996
+msgid "and different php.ini (replaces safe_mode)"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:18996
+#, no-wrap
+msgid "Stdout & stderr logging"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:18997
+#, no-wrap
+msgid "Emergency restart in case of accidental opcode cache destruction"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:18998
+#, no-wrap
+msgid "Accelerated upload support"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:18999
+#, no-wrap
+msgid "Support for a \"slowlog\""
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19000
+#, no-wrap
+msgid "Enhancements to FastCGI, such as fastcgi_finish_request() -"
+msgstr ""
+
+#. type: itemize
+#: doc/guix.texi:19003
+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:19005
+msgid "...@: and much more."
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:19006
+#, no-wrap
+msgid "{Scheme Variable} php-fpm-service-type"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:19008
+msgid "A Service type for @code{php-fpm}."
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:19010
+#, no-wrap
+msgid "{Data Type} php-fpm-configuration"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:19012
+msgid "Data Type for php-fpm service configuration."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19013
+#, no-wrap
+msgid "@code{php} (default: @code{php})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:19015
+msgid "The php package to use."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19015
+#, 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:19017
+msgid "The address on which to accept FastCGI requests.  Valid syntaxes are:"
+msgstr ""
+
+#. type: code{#1}
+#: doc/guix.texi:19018
+#, no-wrap
+msgid "\"ip.add.re.ss:port\""
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:19020
+msgid "Listen on a TCP socket to a specific address on a specific port."
+msgstr ""
+
+#. type: code{#1}
+#: doc/guix.texi:19020
+#, no-wrap
+msgid "\"port\""
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:19022
+msgid "Listen on a TCP socket to all addresses on a specific port."
+msgstr ""
+
+#. type: code{#1}
+#: doc/guix.texi:19022
+#, no-wrap
+msgid "\"/path/to/unix/socket\""
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:19024
+msgid "Listen on a unix socket."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19026
+#, no-wrap
+msgid "@code{user} (default: @code{php-fpm})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:19028
+msgid "User who will own the php worker processes."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19028
+#, no-wrap
+msgid "@code{group} (default: @code{php-fpm})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:19030
+msgid "Group of the worker processes."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19030
+#, no-wrap
+msgid "@code{socket-user} (default: @code{php-fpm})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:19032
+msgid "User who can speak to the php-fpm socket."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19032
+#, no-wrap
+msgid "@code{socket-group} (default: @code{php-fpm})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:19034
+msgid "Group that can speak to the php-fpm socket."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19034
+#, 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:19037
+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:19037
+#, 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:19039
+msgid "Log for the php-fpm master process."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19039
+#, no-wrap
+msgid "@code{process-manager} (default: @code{(php-fpm-dynamic-process-manager-configuration)})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:19042
+msgid "Detailed settings for the php-fpm process manager.  Must be either:"
+msgstr ""
+
+#. type: code{#1}
+#: doc/guix.texi:19043
+#, no-wrap
+msgid "<php-fpm-dynamic-process-manager-configuration>"
+msgstr ""
+
+#. type: code{#1}
+#: doc/guix.texi:19044
+#, no-wrap
+msgid "<php-fpm-static-process-manager-configuration>"
+msgstr ""
+
+#. type: code{#1}
+#: doc/guix.texi:19045
+#, no-wrap
+msgid "<php-fpm-on-demand-process-manager-configuration>"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19047
+#, no-wrap
+msgid "@code{display-errors} (default @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:19052
+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:19052
+#, no-wrap
+msgid "@code{timezone} (default @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:19054
+msgid "Specifies @code{php_admin_value[date.timezone]} parameter."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19054
+#, 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:19057
+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:19057
+#, no-wrap
+msgid "@code{file} (default @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:19060
+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: deftp
+#: doc/guix.texi:19063
+#, no-wrap
+msgid "{Data type} php-fpm-dynamic-process-manager-configuration"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:19067
+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:19068 doc/guix.texi:19084 doc/guix.texi:19094
+#, no-wrap
+msgid "@code{max-children} (default: @code{5})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:19070 doc/guix.texi:19086 doc/guix.texi:19096
+msgid "Maximum of worker processes."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19070
+#, no-wrap
+msgid "@code{start-servers} (default: @code{2})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:19072
+msgid "How many worker processes should be started on start-up."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19072
+#, no-wrap
+msgid "@code{min-spare-servers} (default: @code{1})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:19074
+msgid "How many spare worker processes should be kept around at minimum."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19074
+#, no-wrap
+msgid "@code{max-spare-servers} (default: @code{3})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:19076
+msgid "How many spare worker processes should be kept around at maximum."
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:19079
+#, no-wrap
+msgid "{Data type} php-fpm-static-process-manager-configuration"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:19083
+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:19089
+#, no-wrap
+msgid "{Data type} php-fpm-on-demand-process-manager-configuration"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:19093
+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:19096
+#, no-wrap
+msgid "@code{process-idle-timeout} (default: @code{10})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:19098
+msgid "The time in seconds after which a process with no requests is killed."
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:19102
+#, no-wrap
+msgid "{Scheme Procedure} nginx-php-fpm-location @"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:19108
+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:19111
+msgid "A simple services setup for nginx with php can look like this:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:19124
+#, no-wrap
+msgid ""
+"(services (cons* (service dhcp-client-service-type)\n"
+"                 (service php-fpm-service-type)\n"
+"                 (service nginx-service-type\n"
+"                          (nginx-server-configuration\n"
+"                           (server-name '(\"example.com\"))\n"
+"                           (root \"/srv/http/\")\n"
+"                           (locations\n"
+"                            (list (nginx-php-location)))\n"
+"                           (listen '(\"80\"))\n"
+"                           (ssl-certificate #f)\n"
+"                           (ssl-certificate-key #f)))\n"
+"                 %base-services))\n"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:19126
+#, no-wrap
+msgid "cat-avatar-generator"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:19130
+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:19131
+#, no-wrap
+msgid "{Scheme Procedure} cat-avatar-generator-service @"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:19139
+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:19142
+msgid "A simple setup for cat-avatar-generator can look like this:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:19149
+#, no-wrap
+msgid ""
+"(services (cons* (cat-avatar-generator-service\n"
+"                  #:configuration\n"
+"                  (nginx-server-configuration\n"
+"                    (server-name '(\"example.com\"))))\n"
+"                 ...\n"
+"                 %base-services))\n"
+msgstr ""
+
+#. type: subsubheading
+#: doc/guix.texi:19151
+#, no-wrap
+msgid "Hpcguix-web"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:19153
+#, no-wrap
+msgid "hpcguix-web"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:19158
+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 ""
+
+#. type: defvr
+#: doc/guix.texi:19159
+#, no-wrap
+msgid "{Scheme Variable} hpcguix-web-service-type"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:19161
+msgid "The service type for @code{hpcguix-web}."
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:19163
+#, no-wrap
+msgid "{Data Type} hpcguix-web-configuration"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:19165
+msgid "Data type for the hpcguix-web service configuration."
+msgstr ""
+
+#. type: code{#1}
+#: doc/guix.texi:19167
+#, no-wrap
+msgid "specs"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:19170
+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:19172
+#, no-wrap
+msgid "@code{title-prefix} (default: @code{\"hpcguix | \"})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:19174
+msgid "The page title prefix."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19175
+#, no-wrap
+msgid "@code{guix-command} (default: @code{\"guix\"})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:19177
+msgid "The @command{guix} command."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19178
+#, no-wrap
+msgid "@code{package-filter-proc} (default: @code{(const #t)})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:19180
+msgid "A procedure specifying how to filter packages that are displayed."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19181
+#, no-wrap
+msgid "@code{package-page-extension-proc} (default: @code{(const '())})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:19183
+msgid "Extension package for @code{hpcguix-web}."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19184
+#, no-wrap
+msgid "@code{menu} (default: @code{'()})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:19186
+msgid "Additional entry in page @code{menu}."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19187
+#, no-wrap
+msgid "@code{channels} (default: @code{%default-channels})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:19189
+msgid "List of channels from which the package list is built (@pxref{Channels})."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19190
+#, no-wrap
+msgid "@code{package-list-expiration} (default: @code{(* 12 3600)})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:19193
+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:19198
+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:19199
+#, no-wrap
+msgid "@code{package} (default: @code{hpcguix-web})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:19201
+msgid "The hpcguix-web package to use."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:19205
+msgid "A typical hpcguix-web service declaration looks like this:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:19214
+#, no-wrap
+msgid ""
+"(service hpcguix-web-service-type\n"
+"         (hpcguix-web-configuration\n"
+"          (specs\n"
+"           #~(define site-config\n"
+"               (hpcweb-configuration\n"
+"                (title-prefix \"Guix-HPC - \")\n"
+"                (menu '((\"/about\" \"ABOUT\"))))))))\n"
+msgstr ""
+
+#. type: quotation
+#: doc/guix.texi:19221
+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:19225
+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:19230
+#, no-wrap
+msgid "Web"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:19231
+#, no-wrap
+msgid "HTTP, HTTPS"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:19232
+#, no-wrap
+msgid "Let's Encrypt"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:19233
+#, no-wrap
+msgid "TLS certificates"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:19240
+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:19252
+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:19259
+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:19265
+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:19269
+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:19270
+#, no-wrap
+msgid "{Scheme Variable} certbot-service-type"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:19273
+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: example
+#: doc/guix.texi:19280
+#, no-wrap
+msgid ""
+"(define %nginx-deploy-hook\n"
+"  (program-file\n"
+"   \"nginx-deploy-hook\"\n"
+"   #~(let ((pid (call-with-input-file \"/var/run/nginx/pid\" read)))\n"
+"       (kill pid SIGHUP))))\n"
+"\n"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:19291
+#, no-wrap
+msgid ""
+"(service certbot-service-type\n"
+"         (certbot-configuration\n"
+"          (email \"foo@@example.net\")\n"
+"          (certificates\n"
+"           (list\n"
+"            (certificate-configuration\n"
+"             (domains '(\"example.net\" \"www.example.net\"))\n"
+"             (deploy-hook %nginx-deploy-hook))\n"
+"            (certificate-configuration\n"
+"             (domains '(\"bar.example.net\")))))))\n"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:19294
+msgid "See below for details about @code{certbot-configuration}."
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:19296
+#, no-wrap
+msgid "{Data Type} certbot-configuration"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:19299
+msgid "Data type representing the configuration of the @code{certbot} service.  This type has the following parameters:"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19301
+#, no-wrap
+msgid "@code{package} (default: @code{certbot})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:19303
+msgid "The certbot package to use."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19304
+#, no-wrap
+msgid "@code{webroot} (default: @code{/var/www})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:19307
+msgid "The directory from which to serve the Let's Encrypt challenge/response files."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19308
+#, no-wrap
+msgid "@code{certificates} (default: @code{()})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:19312
+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: table
+#: doc/guix.texi:19316
+msgid "Mandatory email used for registration, recovery contact, and important account notifications."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19317
+#, no-wrap
+msgid "@code{rsa-key-size} (default: @code{2048})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:19319
+msgid "Size of the RSA key."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19320
+#, no-wrap
+msgid "@code{default-location} (default: @i{see below})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:19329
+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:19333
+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:19337
+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:19339
+msgid "Pass @code{#f} to not issue a default location."
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:19342
+#, no-wrap
+msgid "{Data Type} certificate-configuration"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:19345
+msgid "Data type representing the configuration of a certificate.  This type has the following parameters:"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19347
+#, no-wrap
+msgid "@code{name} (default: @i{see below})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:19351
+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:19353
+msgid "Its default is the first provided domain."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19354
+#, no-wrap
+msgid "@code{domains} (default: @code{()})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:19357
+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:19358
+#, no-wrap
+msgid "@code{deploy-hook} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:19366
+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:19373
+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:19375
+#, no-wrap
+msgid "DNS (domain name system)"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:19376
+#, no-wrap
+msgid "domain name system (DNS)"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:19384
+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:19385
+#, no-wrap
+msgid "Knot Service"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:19389
+msgid "An example configuration of an authoritative server for two zones, one master and one slave, is:"
+msgstr ""
+
+#. type: lisp
+#: doc/guix.texi:19396
+#, no-wrap
+msgid ""
+"(define-zone-entries example.org.zone\n"
+";; Name TTL Class Type Data\n"
+"  (\"@@\"  \"\"  \"IN\"  \"A\"  \"127.0.0.1\")\n"
+"  (\"@@\"  \"\"  \"IN\"  \"NS\" \"ns\")\n"
+"  (\"ns\" \"\"  \"IN\"  \"A\"  \"127.0.0.1\"))\n"
+"\n"
+msgstr ""
+
+#. type: lisp
+#: doc/guix.texi:19403
+#, no-wrap
+msgid ""
+"(define master-zone\n"
+"  (knot-zone-configuration\n"
+"    (domain \"example.org\")\n"
+"    (zone (zone-file\n"
+"            (origin \"example.org\")\n"
+"            (entries example.org.zone)))))\n"
+"\n"
+msgstr ""
+
+#. type: lisp
+#: doc/guix.texi:19409
+#, no-wrap
+msgid ""
+"(define slave-zone\n"
+"  (knot-zone-configuration\n"
+"    (domain \"plop.org\")\n"
+"    (dnssec-policy \"default\")\n"
+"    (master (list \"plop-master\"))))\n"
+"\n"
+msgstr ""
+
+#. type: lisp
+#: doc/guix.texi:19414
+#, no-wrap
+msgid ""
+"(define plop-master\n"
+"  (knot-remote-configuration\n"
+"    (id \"plop-master\")\n"
+"    (address (list \"208.76.58.171\"))))\n"
+"\n"
+msgstr ""
+
+#. type: lisp
+#: doc/guix.texi:19423
+#, no-wrap
+msgid ""
+"(operating-system\n"
+"  ;; ...\n"
+"  (services (cons* (service knot-service-type\n"
+"                     (knot-configuration\n"
+"                       (remotes (list plop-master))\n"
+"                       (zones (list master-zone slave-zone))))\n"
+"                   ;; ...\n"
+"                   %base-services)))\n"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:19425
+#, no-wrap
+msgid "{Scheme Variable} knot-service-type"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:19427
+msgid "This is the type for the Knot DNS server."
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:19435
+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:19437
+msgid "The following data types are used to configure the Knot DNS server:"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:19439
+#, no-wrap
+msgid "{Data Type} knot-key-configuration"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:19442
+msgid "Data type representing a key.  This type has the following parameters:"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19444 doc/guix.texi:19464 doc/guix.texi:19579
+#: doc/guix.texi:19605 doc/guix.texi:19640
+#, no-wrap
+msgid "@code{id} (default: @code{\"\"})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:19447
+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:19448
+#, no-wrap
+msgid "@code{algorithm} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:19452
+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:19453
+#, no-wrap
+msgid "@code{secret} (default: @code{\"\"})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:19455
+msgid "The secret key itself."
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:19459
+#, no-wrap
+msgid "{Data Type} knot-acl-configuration"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:19462
+msgid "Data type representing an Access Control List (ACL) configuration.  This type has the following parameters:"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:19467
+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:19468 doc/guix.texi:19583
+#, no-wrap
+msgid "@code{address} (default: @code{'()})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:19472
+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:19473
+#, no-wrap
+msgid "@code{key} (default: @code{'()})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:19477
+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:19478
+#, no-wrap
+msgid "@code{action} (default: @code{'()})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:19482
+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:19483
+#, no-wrap
+msgid "@code{deny?} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:19486
+msgid "When true, the ACL defines restrictions.  Listed actions are forbidden.  When false, listed actions are allowed."
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:19490
+#, no-wrap
+msgid "{Data Type} zone-entry"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:19493
+msgid "Data type represnting a record entry in a zone file.  This type has the following parameters:"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19495
+#, no-wrap
+msgid "@code{name} (default: @code{\"@@\"})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:19501
+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:19502
+#, no-wrap
+msgid "@code{ttl} (default: @code{\"\"})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:19504
+msgid "The Time-To-Live (TTL) of this record.  If not set, the default TTL is used."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19505
+#, no-wrap
+msgid "@code{class} (default: @code{\"IN\"})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:19508
+msgid "The class of the record.  Knot currently supports only @code{\"IN\"} and partially @code{\"CH\"}."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19509
+#, no-wrap
+msgid "@code{type} (default: @code{\"A\"})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:19513
+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:19514
+#, no-wrap
+msgid "@code{data} (default: @code{\"\"})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:19518
+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:19522
+#, no-wrap
+msgid "{Data Type} zone-file"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:19525
+msgid "Data type representing the content of a zone file.  This type has the following parameters:"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:19534
+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:19535
+#, no-wrap
+msgid "@code{origin} (default: @code{\"\"})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:19537
+msgid "The name of your zone.  This parameter cannot be empty."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19538
+#, no-wrap
+msgid "@code{ns} (default: @code{\"ns\"})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:19543
+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:19544
+#, no-wrap
+msgid "@code{mail} (default: @code{\"hostmaster\"})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:19547
+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:19548
+#, no-wrap
+msgid "@code{serial} (default: @code{1})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:19552
+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:19553
+#, no-wrap
+msgid "@code{refresh} (default: @code{(* 2 24 3600)})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:19557
+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:19558
+#, no-wrap
+msgid "@code{retry} (default: @code{(* 15 60)})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:19561
+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:19562
+#, no-wrap
+msgid "@code{expiry} (default: @code{(* 14 24 3600)})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:19566
+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:19567
+#, no-wrap
+msgid "@code{nx} (default: @code{3600})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:19570
+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:19574
+#, no-wrap
+msgid "{Data Type} knot-remote-configuration"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:19577
+msgid "Data type representing a remote configuration.  This type has the following parameters:"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:19582
+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:19587
+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:19588
+#, no-wrap
+msgid "@code{via} (default: @code{'()})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:19592
+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:19593
+#, no-wrap
+msgid "@code{key} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:19596
+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:19600
+#, no-wrap
+msgid "{Data Type} knot-keystore-configuration"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:19603
+msgid "Data type representing a keystore to hold dnssec keys.  This type has the following parameters:"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:19607
+msgid "The id of the keystore.  It must not be empty."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19608
+#, no-wrap
+msgid "@code{backend} (default: @code{'pem})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:19610
+msgid "The backend to store the keys in.  Can be @code{'pem} or @code{'pkcs11}."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19611
+#, no-wrap
+msgid "@code{config} (default: @code{\"/var/lib/knot/keys/keys\"})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:19615
+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 ""
+
+#. type: deftp
+#: doc/guix.texi:19619
+#, no-wrap
+msgid "{Data Type} knot-policy-configuration"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:19623
+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:19630
+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:19636
+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:19638
+msgid "This type has the following parameters:"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:19642
+msgid "The id of the policy.  It must not be empty."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19643
+#, no-wrap
+msgid "@code{keystore} (default: @code{\"default\"})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:19648
+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:19649
+#, no-wrap
+msgid "@code{manual?} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:19651
+msgid "Whether the key management is manual or automatic."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19652
+#, no-wrap
+msgid "@code{single-type-signing?} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:19654
+msgid "When @code{#t}, use the Single-Type Signing Scheme."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19655
+#, no-wrap
+msgid "@code{algorithm} (default: @code{\"ecdsap256sha256\"})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:19657
+msgid "An algorithm of signing keys and issued signatures."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19658
+#, no-wrap
+msgid "@code{ksk-size} (default: @code{256})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:19661
+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:19662
+#, no-wrap
+msgid "@code{zsk-size} (default: @code{256})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:19665
+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:19666
+#, no-wrap
+msgid "@code{dnskey-ttl} (default: @code{'default})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:19669
+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:19670
+#, no-wrap
+msgid "@code{zsk-lifetime} (default: @code{(* 30 24 3600)})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:19672
+msgid "The period between ZSK publication and the next rollover initiation."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19673
+#, no-wrap
+msgid "@code{propagation-delay} (default: @code{(* 24 3600)})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:19676
+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:19677
+#, no-wrap
+msgid "@code{rrsig-lifetime} (default: @code{(* 14 24 3600)})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:19679
+msgid "A validity period of newly issued signatures."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19680
+#, no-wrap
+msgid "@code{rrsig-refresh} (default: @code{(* 7 24 3600)})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:19682
+msgid "A period how long before a signature expiration the signature will be refreshed."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19683
+#, no-wrap
+msgid "@code{nsec3?} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:19685
+msgid "When @code{#t}, NSEC3 will be used instead of NSEC."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19686
+#, no-wrap
+msgid "@code{nsec3-iterations} (default: @code{5})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:19688
+msgid "The number of additional times the hashing is performed."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19689
+#, no-wrap
+msgid "@code{nsec3-salt-length} (default: @code{8})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:19692
+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:19693
+#, no-wrap
+msgid "@code{nsec3-salt-lifetime} (default: @code{(* 30 24 3600)})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:19695
+msgid "The validity period of newly issued salt field."
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:19699
+#, no-wrap
+msgid "{Data Type} knot-zone-configuration"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:19702
+msgid "Data type representing a zone served by Knot.  This type has the following parameters:"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19704
+#, no-wrap
+msgid "@code{domain} (default: @code{\"\"})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:19706
+msgid "The domain served by this configuration.  It must not be empty."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19707
+#, no-wrap
+msgid "@code{file} (default: @code{\"\"})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:19710
+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:19711
+#, no-wrap
+msgid "@code{zone} (default: @code{(zone-file)})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:19714
+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:19715
+#, no-wrap
+msgid "@code{master} (default: @code{'()})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:19718
+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:19719
+#, no-wrap
+msgid "@code{ddns-master} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:19722
+msgid "The main master.  When empty, it defaults to the first master in the list of masters."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19723
+#, no-wrap
+msgid "@code{notify} (default: @code{'()})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:19725
+msgid "A list of slave remote identifiers."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19726
+#, no-wrap
+msgid "@code{acl} (default: @code{'()})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:19728
+msgid "A list of acl identifiers."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19729
+#, no-wrap
+msgid "@code{semantic-checks?} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:19731
+msgid "When set, this adds more semantic checks to the zone."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19732
+#, no-wrap
+msgid "@code{disable-any?} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:19734
+msgid "When set, this forbids queries of the ANY type."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19735
+#, no-wrap
+msgid "@code{zonefile-sync} (default: @code{0})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:19738
+msgid "The delay between a modification in memory and on disk.  0 means immediate synchronization."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19739
+#, no-wrap
+msgid "@code{serial-policy} (default: @code{'increment})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:19741
+msgid "A policy between @code{'increment} and @code{'unixtime}."
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:19745
+#, no-wrap
+msgid "{Data Type} knot-configuration"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:19748
+msgid "Data type representing the Knot configuration.  This type has the following parameters:"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19750
+#, no-wrap
+msgid "@code{knot} (default: @code{knot})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:19752
+msgid "The Knot package."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19753
+#, no-wrap
+msgid "@code{run-directory} (default: @code{\"/var/run/knot\"})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:19755
+msgid "The run directory.  This directory will be used for pid file and sockets."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19756
+#, no-wrap
+msgid "@code{listen-v4} (default: @code{\"0.0.0.0\"})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:19758 doc/guix.texi:19761
+msgid "An ip address on which to listen."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19759
+#, no-wrap
+msgid "@code{listen-v6} (default: @code{\"::\"})"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19762
+#, no-wrap
+msgid "@code{listen-port} (default: @code{53})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:19764
+msgid "A port on which to listen."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19765
+#, no-wrap
+msgid "@code{keys} (default: @code{'()})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:19767
+msgid "The list of knot-key-configuration used by this configuration."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19768
+#, no-wrap
+msgid "@code{acls} (default: @code{'()})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:19770
+msgid "The list of knot-acl-configuration used by this configuration."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19771
+#, no-wrap
+msgid "@code{remotes} (default: @code{'()})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:19773
+msgid "The list of knot-remote-configuration used by this configuration."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19774
+#, no-wrap
+msgid "@code{zones} (default: @code{'()})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:19776
+msgid "The list of knot-zone-configuration used by this configuration."
+msgstr ""
+
+#. type: subsubheading
+#: doc/guix.texi:19780
+#, no-wrap
+msgid "Dnsmasq Service"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:19782
+#, no-wrap
+msgid "{Scheme Variable} dnsmasq-service-type"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:19785
+msgid "This is the type of the dnsmasq service, whose value should be an @code{dnsmasq-configuration} object as in this example:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:19791
+#, no-wrap
+msgid ""
+"(service dnsmasq-service-type\n"
+"         (dnsmasq-configuration\n"
+"           (no-resolv? #t)\n"
+"           (servers '(\"192.168.1.1\"))))\n"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:19794
+#, no-wrap
+msgid "{Data Type} dnsmasq-configuration"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:19796
+msgid "Data type representing the configuration of dnsmasq."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19798
+#, no-wrap
+msgid "@code{package} (default: @var{dnsmasq})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:19800
+msgid "Package object of the dnsmasq server."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19801
+#, no-wrap
+msgid "@code{no-hosts?} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:19803
+msgid "When true, don't read the hostnames in /etc/hosts."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19804
+#, no-wrap
+msgid "@code{port} (default: @code{53})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:19807
+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:19808
+#, no-wrap
+msgid "@code{local-service?} (default: @code{#t})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:19811
+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:19812
+#, no-wrap
+msgid "@code{listen-addresses} (default: @code{'()})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:19814
+msgid "Listen on the given IP addresses."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19815
+#, no-wrap
+msgid "@code{resolv-file} (default: @code{\"/etc/resolv.conf\"})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:19817
+msgid "The file to read the IP address of the upstream nameservers from."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19818
+#, no-wrap
+msgid "@code{no-resolv?} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:19820
+msgid "When true, don't read @var{resolv-file}."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:19823
+msgid "Specify IP address of upstream servers directly."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19824
+#, no-wrap
+msgid "@code{cache-size} (default: @code{150})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:19827
+msgid "Set the size of dnsmasq's cache.  Setting the cache size to zero disables caching."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:19828
+#, no-wrap
+msgid "@code{negative-cache?} (default: @code{#t})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:19830
+msgid "When false, disable negative caching."
+msgstr ""
+
+#. type: subsubheading
+#: doc/guix.texi:19834
+#, no-wrap
+msgid "ddclient Service"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:19836
+#, no-wrap
+msgid "ddclient"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:19840
+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:19843
+msgid "The following example show instantiates the service with its default configuration:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:19846
+#, no-wrap
+msgid "(service ddclient-service-type)\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:19855
+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:19859
+msgid "Available @code{ddclient-configuration} fields are:"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:19860
+#, no-wrap
+msgid "{@code{ddclient-configuration} parameter} package ddclient"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:19862
+msgid "The ddclient package."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:19865
+#, no-wrap
+msgid "{@code{ddclient-configuration} parameter} integer daemon"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:19867
+msgid "The period after which ddclient will retry to check IP and domain name."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:19872
+#, no-wrap
+msgid "{@code{ddclient-configuration} parameter} boolean syslog"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:19874
+msgid "Use syslog for the output."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:19879
+#, no-wrap
+msgid "{@code{ddclient-configuration} parameter} string mail"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:19881
+msgid "Mail to user."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:19883 doc/guix.texi:19890 doc/guix.texi:21227
+msgid "Defaults to @samp{\"root\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:19886
+#, no-wrap
+msgid "{@code{ddclient-configuration} parameter} string mail-failure"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:19888
+msgid "Mail failed update to user."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:19893
+#, no-wrap
+msgid "{@code{ddclient-configuration} parameter} string pid"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:19895
+msgid "The ddclient PID file."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:19897
+msgid "Defaults to @samp{\"/var/run/ddclient/ddclient.pid\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:19900
+#, no-wrap
+msgid "{@code{ddclient-configuration} parameter} boolean ssl"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:19902
+msgid "Enable SSL support."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:19907
+#, no-wrap
+msgid "{@code{ddclient-configuration} parameter} string user"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:19910
+msgid "Specifies the user name or ID that is used when running ddclient program."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:19912 doc/guix.texi:19919
+msgid "Defaults to @samp{\"ddclient\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:19915
+#, no-wrap
+msgid "{@code{ddclient-configuration} parameter} string group"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:19917
+msgid "Group of the user who will run the ddclient program."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:19922
+#, no-wrap
+msgid "{@code{ddclient-configuration} parameter} string secret-file"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:19926
+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:19928
+msgid "Defaults to @samp{\"/etc/ddclient/secrets.conf\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:19931
+#, no-wrap
+msgid "{@code{ddclient-configuration} parameter} list extra-options"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:19933
+msgid "Extra options will be appended to @file{ddclient.conf} file."
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:19944
+#, no-wrap
+msgid "VPN (virtual private network)"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:19945
+#, no-wrap
+msgid "virtual private network (VPN)"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:19951
+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{servire} service for your machine to host a VPN.  Both services use @uref{https://openvpn.net/, OpenVPN}."
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:19952
+#, no-wrap
+msgid "{Scheme Procedure} openvpn-client-service @"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:19954
+msgid "[#:config (openvpn-client-configuration)]"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:19956
+msgid "Return a service that runs @command{openvpn}, a VPN daemon, as a client."
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:19958
+#, no-wrap
+msgid "{Scheme Procedure} openvpn-server-service @"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:19960
+msgid "[#:config (openvpn-server-configuration)]"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:19962
+msgid "Return a service that runs @command{openvpn}, a VPN daemon, as a server."
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:19964
+msgid "Both can be run simultaneously."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:19969
+msgid "Available @code{openvpn-client-configuration} fields are:"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:19970
+#, no-wrap
+msgid "{@code{openvpn-client-configuration} parameter} package openvpn"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:19972 doc/guix.texi:20108
+msgid "The OpenVPN package."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:19975
+#, no-wrap
+msgid "{@code{openvpn-client-configuration} parameter} string pid-file"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:19977 doc/guix.texi:20113
+msgid "The OpenVPN pid file."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:19979 doc/guix.texi:20115
+msgid "Defaults to @samp{\"/var/run/openvpn/openvpn.pid\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:19982
+#, no-wrap
+msgid "{@code{openvpn-client-configuration} parameter} proto proto"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:19985 doc/guix.texi:20121
+msgid "The protocol (UDP or TCP) used to open a channel between clients and servers."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:19987 doc/guix.texi:20123
+msgid "Defaults to @samp{udp}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:19990
+#, no-wrap
+msgid "{@code{openvpn-client-configuration} parameter} dev dev"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:19992 doc/guix.texi:20128
+msgid "The device type used to represent the VPN connection."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:19994 doc/guix.texi:20130
+msgid "Defaults to @samp{tun}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:19997
+#, no-wrap
+msgid "{@code{openvpn-client-configuration} parameter} string ca"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:19999 doc/guix.texi:20135
+msgid "The certificate authority to check connections against."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20001 doc/guix.texi:20137
+msgid "Defaults to @samp{\"/etc/openvpn/ca.crt\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20004
+#, no-wrap
+msgid "{@code{openvpn-client-configuration} parameter} string cert"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20007 doc/guix.texi:20143
+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:20009 doc/guix.texi:20145
+msgid "Defaults to @samp{\"/etc/openvpn/client.crt\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20012
+#, no-wrap
+msgid "{@code{openvpn-client-configuration} parameter} string key"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20015 doc/guix.texi:20151
+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:20017 doc/guix.texi:20153
+msgid "Defaults to @samp{\"/etc/openvpn/client.key\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20020
+#, no-wrap
+msgid "{@code{openvpn-client-configuration} parameter} boolean comp-lzo?"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20022 doc/guix.texi:20158
+msgid "Whether to use the lzo compression algorithm."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20027
+#, no-wrap
+msgid "{@code{openvpn-client-configuration} parameter} boolean persist-key?"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20029 doc/guix.texi:20165
+msgid "Don't re-read key files across SIGUSR1 or --ping-restart."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20034
+#, no-wrap
+msgid "{@code{openvpn-client-configuration} parameter} boolean persist-tun?"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20037 doc/guix.texi:20173
+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:20042
+#, no-wrap
+msgid "{@code{openvpn-client-configuration} parameter} number verbosity"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20044 doc/guix.texi:20180
+msgid "Verbosity level."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20046 doc/guix.texi:20182 doc/guix.texi:21495
+#: doc/guix.texi:21718
+msgid "Defaults to @samp{3}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20049
+#, no-wrap
+msgid "{@code{openvpn-client-configuration} parameter} tls-auth-client tls-auth"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20052 doc/guix.texi:20188
+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:20057
+#, no-wrap
+msgid "{@code{openvpn-client-configuration} parameter} key-usage verify-key-usage?"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20059
+msgid "Whether to check the server certificate has server usage extension."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20064
+#, no-wrap
+msgid "{@code{openvpn-client-configuration} parameter} bind bind?"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20066
+msgid "Bind to a specific local port number."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20071
+#, no-wrap
+msgid "{@code{openvpn-client-configuration} parameter} resolv-retry resolv-retry?"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20073
+msgid "Retry resolving server address."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20078
+#, no-wrap
+msgid "{@code{openvpn-client-configuration} parameter} openvpn-remote-list remote"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20080
+msgid "A list of remote servers to connect to."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20084
+msgid "Available @code{openvpn-remote-configuration} fields are:"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20085
+#, no-wrap
+msgid "{@code{openvpn-remote-configuration} parameter} string name"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20087
+msgid "Server name."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20089
+msgid "Defaults to @samp{\"my-server\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20092
+#, no-wrap
+msgid "{@code{openvpn-remote-configuration} parameter} number port"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20094
+msgid "Port number the server listens to."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20096 doc/guix.texi:20197
+msgid "Defaults to @samp{1194}."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:20105
+msgid "Available @code{openvpn-server-configuration} fields are:"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20106
+#, no-wrap
+msgid "{@code{openvpn-server-configuration} parameter} package openvpn"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20111
+#, no-wrap
+msgid "{@code{openvpn-server-configuration} parameter} string pid-file"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20118
+#, no-wrap
+msgid "{@code{openvpn-server-configuration} parameter} proto proto"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20126
+#, no-wrap
+msgid "{@code{openvpn-server-configuration} parameter} dev dev"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20133
+#, no-wrap
+msgid "{@code{openvpn-server-configuration} parameter} string ca"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20140
+#, no-wrap
+msgid "{@code{openvpn-server-configuration} parameter} string cert"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20148
+#, no-wrap
+msgid "{@code{openvpn-server-configuration} parameter} string key"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20156
+#, no-wrap
+msgid "{@code{openvpn-server-configuration} parameter} boolean comp-lzo?"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20163
+#, no-wrap
+msgid "{@code{openvpn-server-configuration} parameter} boolean persist-key?"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20170
+#, no-wrap
+msgid "{@code{openvpn-server-configuration} parameter} boolean persist-tun?"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20178
+#, no-wrap
+msgid "{@code{openvpn-server-configuration} parameter} number verbosity"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20185
+#, no-wrap
+msgid "{@code{openvpn-server-configuration} parameter} tls-auth-server tls-auth"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20193
+#, no-wrap
+msgid "{@code{openvpn-server-configuration} parameter} number port"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20195
+msgid "Specifies the port number on which the server listens."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20200
+#, no-wrap
+msgid "{@code{openvpn-server-configuration} parameter} ip-mask server"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20202
+msgid "An ip and mask specifying the subnet inside the virtual network."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20204
+msgid "Defaults to @samp{\"10.8.0.0 255.255.255.0\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20207
+#, no-wrap
+msgid "{@code{openvpn-server-configuration} parameter} cidr6 server-ipv6"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20209
+msgid "A CIDR notation specifying the IPv6 subnet inside the virtual network."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20214
+#, no-wrap
+msgid "{@code{openvpn-server-configuration} parameter} string dh"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20216
+msgid "The Diffie-Hellman parameters file."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20218
+msgid "Defaults to @samp{\"/etc/openvpn/dh2048.pem\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20221
+#, no-wrap
+msgid "{@code{openvpn-server-configuration} parameter} string ifconfig-pool-persist"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20223
+msgid "The file that records client IPs."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20225
+msgid "Defaults to @samp{\"/etc/openvpn/ipp.txt\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20228
+#, no-wrap
+msgid "{@code{openvpn-server-configuration} parameter} gateway redirect-gateway?"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20230
+msgid "When true, the server will act as a gateway for its clients."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20235
+#, no-wrap
+msgid "{@code{openvpn-server-configuration} parameter} boolean client-to-client?"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20237
+msgid "When true, clients are allowed to talk to each other inside the VPN."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20242
+#, no-wrap
+msgid "{@code{openvpn-server-configuration} parameter} keepalive keepalive"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20248
+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:20251
+#, no-wrap
+msgid "{@code{openvpn-server-configuration} parameter} number max-clients"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20253
+msgid "The maximum number of clients."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20258
+#, no-wrap
+msgid "{@code{openvpn-server-configuration} parameter} string status"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20261
+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:20263
+msgid "Defaults to @samp{\"/var/run/openvpn/status\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20266
+#, no-wrap
+msgid "{@code{openvpn-server-configuration} parameter} openvpn-ccd-list client-config-dir"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20268
+msgid "The list of configuration for some clients."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20272
+msgid "Available @code{openvpn-ccd-configuration} fields are:"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20273
+#, no-wrap
+msgid "{@code{openvpn-ccd-configuration} parameter} string name"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20275
+msgid "Client name."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20277
+msgid "Defaults to @samp{\"client\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20280
+#, no-wrap
+msgid "{@code{openvpn-ccd-configuration} parameter} ip-mask iroute"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20282
+msgid "Client own network"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20287
+#, no-wrap
+msgid "{@code{openvpn-ccd-configuration} parameter} ip-mask ifconfig-push"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20289
+msgid "Client VPN IP."
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:20302
+#, no-wrap
+msgid "NFS"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:20307
+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: subsubheading
+#: doc/guix.texi:20308
+#, no-wrap
+msgid "RPC Bind Service"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:20309
+#, no-wrap
+msgid "rpcbind"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:20315
+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:20316
+#, no-wrap
+msgid "{Scheme Variable} rpcbind-service-type"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:20318
+msgid "A service type for the RPC portmapper daemon."
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:20321
+#, no-wrap
+msgid "{Data Type} rpcbind-configuration"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:20324
+msgid "Data type representing the configuration of the RPC Bind Service.  This type has the following parameters:"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:20325
+#, no-wrap
+msgid "@code{rpcbind} (default: @code{rpcbind})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:20327
+msgid "The rpcbind package to use."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:20328
+#, no-wrap
+msgid "@code{warm-start?} (default: @code{#t})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:20332
+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:20336
+#, no-wrap
+msgid "Pipefs Pseudo File System"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:20337
+#, no-wrap
+msgid "pipefs"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:20338
+#, no-wrap
+msgid "rpc_pipefs"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:20342
+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:20343
+#, no-wrap
+msgid "{Scheme Variable} pipefs-service-type"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:20345
+msgid "A service type for the pipefs pseudo file system."
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:20347
+#, no-wrap
+msgid "{Data Type} pipefs-configuration"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:20350
+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:20351
+#, no-wrap
+msgid "@code{mount-point} (default: @code{\"/var/lib/nfs/rpc_pipefs\"})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:20353
+msgid "The directory to which the file system is to be attached."
+msgstr ""
+
+#. type: subsubheading
+#: doc/guix.texi:20357
+#, no-wrap
+msgid "GSS Daemon Service"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:20358
+#, no-wrap
+msgid "GSSD"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:20359
+#, no-wrap
+msgid "GSS"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:20360
+#, no-wrap
+msgid "global security system"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:20367
+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:20368
+#, no-wrap
+msgid "{Scheme Variable} gss-service-type"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:20370
+msgid "A service type for the Global Security System (GSS) daemon."
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:20372
+#, no-wrap
+msgid "{Data Type} gss-configuration"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:20375
+msgid "Data type representing the configuration of the GSS daemon service.  This type has the following parameters:"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:20376 doc/guix.texi:20401
+#, no-wrap
+msgid "@code{nfs-utils} (default: @code{nfs-utils})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:20378
+msgid "The package in which the @command{rpc.gssd} command is to be found."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:20379 doc/guix.texi:20404
+#, no-wrap
+msgid "@code{pipefs-directory} (default: @code{\"/var/lib/nfs/rpc_pipefs\"})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:20381 doc/guix.texi:20406
+msgid "The directory where the pipefs file system is mounted."
+msgstr ""
+
+#. type: subsubheading
+#: doc/guix.texi:20386
+#, no-wrap
+msgid "IDMAP Daemon Service"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:20387
+#, no-wrap
+msgid "idmapd"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:20388
+#, no-wrap
+msgid "name mapper"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:20392
+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:20393
+#, no-wrap
+msgid "{Scheme Variable} idmap-service-type"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:20395
+msgid "A service type for the Identity Mapper (IDMAP) daemon."
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:20397
+#, no-wrap
+msgid "{Data Type} idmap-configuration"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:20400
+msgid "Data type representing the configuration of the IDMAP daemon service.  This type has the following parameters:"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:20403
+msgid "The package in which the @command{rpc.idmapd} command is to be found."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:20407
+#, no-wrap
+msgid "@code{domain} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:20411
+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: Plain text
+#: doc/guix.texi:20422
+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:20424
+msgid "The @code{(gnu services cuirass)} module provides the following service."
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:20425
+#, no-wrap
+msgid "{Scheme Procedure} cuirass-service-type"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:20428
+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:20435
+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 ""
+
+#. type: example
+#: doc/guix.texi:20463
+#, no-wrap
+msgid ""
+"(define %cuirass-specs\n"
+"  #~(list\n"
+"     '((#:name . \"my-manifest\")\n"
+"       (#:load-path-inputs . (\"guix\"))\n"
+"       (#:package-path-inputs . (\"custom-packages\"))\n"
+"       (#:proc-input . \"guix\")\n"
+"       (#:proc-file . \"build-aux/cuirass/gnu-system.scm\")\n"
+"       (#:proc . cuirass-jobs)\n"
+"       (#:proc-args . ((subset . \"manifests\")\n"
+"                       (systems . (\"x86_64-linux\"))\n"
+"                       (manifests . ((\"config\" . \"guix/manifest.scm\")))))\n"
+"       (#:inputs . (((#:name . \"guix\")\n"
+"                     (#:url . \"git://git.savannah.gnu.org/guix.git\")\n"
+"                     (#:load-path . \".\")\n"
+"                     (#:branch . \"master\")\n"
+"                     (#:no-compile? . #t))\n"
+"                    ((#:name . \"config\")\n"
+"                     (#:url . \"git://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"
+"                     (#:load-path . \".\")\n"
+"                     (#:branch . \"master\")\n"
+"                     (#:no-compile? . #t)))))))\n"
+"\n"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:20467
+#, no-wrap
+msgid ""
+"(service cuirass-service-type\n"
+"         (cuirass-configuration\n"
+"          (specifications %cuirass-specs)))\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:20472
+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:20473
+#, no-wrap
+msgid "{Data Type} cuirass-configuration"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:20475
+msgid "Data type representing the configuration of Cuirass."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:20477
+#, no-wrap
+msgid "@code{log-file} (default: @code{\"/var/log/cuirass.log\"})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:20479
+msgid "Location of the log file."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:20480
+#, no-wrap
+msgid "@code{cache-directory} (default: @code{\"/var/cache/cuirass\"})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:20482
+msgid "Location of the repository cache."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:20483
+#, no-wrap
+msgid "@code{user} (default: @code{\"cuirass\"})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:20485
+msgid "Owner of the @code{cuirass} process."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:20486
+#, no-wrap
+msgid "@code{group} (default: @code{\"cuirass\"})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:20488
+msgid "Owner's group of the @code{cuirass} process."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:20489
+#, no-wrap
+msgid "@code{interval} (default: @code{60})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:20492
+msgid "Number of seconds between the poll of the repositories followed by the Cuirass jobs."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:20493
+#, no-wrap
+msgid "@code{database} (default: @code{\"/var/lib/cuirass/cuirass.db\"})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:20496
+msgid "Location of sqlite database which contains the build results and previously added specifications."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:20497
+#, no-wrap
+msgid "@code{ttl} (default: @code{(* 30 24 3600)})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:20501
+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:20502
+#, no-wrap
+msgid "@code{port} (default: @code{8081})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:20504
+msgid "Port number used by the HTTP server."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:20508
+msgid "Listen on the network interface for @var{host}.  The default is to accept connections from localhost."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:20509
+#, no-wrap
+msgid "@code{specifications} (default: @code{#~'()})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:20515
+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:20516
+#, no-wrap
+msgid "@code{use-substitutes?} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:20519
+msgid "This allows using substitutes to avoid building every dependencies of a job from source."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:20520
+#, no-wrap
+msgid "@code{one-shot?} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:20522
+msgid "Only evaluate specifications and build derivations once."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:20523
+#, no-wrap
+msgid "@code{fallback?} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:20526
+msgid "When substituting a pre-built binary fails, fall back to building packages locally."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:20527
+#, no-wrap
+msgid "@code{cuirass} (default: @code{cuirass})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:20529
+msgid "The Cuirass package to use."
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:20535
+#, no-wrap
+msgid "tlp"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:20536
+#, no-wrap
+msgid "power management with TLP"
+msgstr ""
+
+#. type: subsubheading
+#: doc/guix.texi:20537
+#, no-wrap
+msgid "TLP daemon"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:20541
+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:20547
+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{http://linrunner.de/en/tlp/tlp.html, TLP home page}."
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:20548
+#, no-wrap
+msgid "{Scheme Variable} tlp-service-type"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:20552
+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 ""
+
+#. type: example
+#: doc/guix.texi:20554
+#, no-wrap
+msgid "(service tlp-service-type)\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:20559
+msgid "By default TLP does not need much configuration but most TLP parameters can be tweaked using @code{tlp-configuration}."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:20565
+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:20575
+msgid "Available @code{tlp-configuration} fields are:"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20576
+#, no-wrap
+msgid "{@code{tlp-configuration} parameter} package tlp"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20578
+msgid "The TLP package."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20581
+#, no-wrap
+msgid "{@code{tlp-configuration} parameter} boolean tlp-enable?"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20583
+msgid "Set to true if you wish to enable TLP."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20588
+#, no-wrap
+msgid "{@code{tlp-configuration} parameter} string tlp-default-mode"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20591
+msgid "Default mode when no power supply can be detected.  Alternatives are AC and BAT."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20593
+msgid "Defaults to @samp{\"AC\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20596
+#, no-wrap
+msgid "{@code{tlp-configuration} parameter} non-negative-integer disk-idle-secs-on-ac"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20599
+msgid "Number of seconds Linux kernel has to wait after the disk goes idle, before syncing on AC."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20604
+#, no-wrap
+msgid "{@code{tlp-configuration} parameter} non-negative-integer disk-idle-secs-on-bat"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20606
+msgid "Same as @code{disk-idle-ac} but on BAT mode."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20608
+msgid "Defaults to @samp{2}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20611
+#, no-wrap
+msgid "{@code{tlp-configuration} parameter} non-negative-integer max-lost-work-secs-on-ac"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20613
+msgid "Dirty pages flushing periodicity, expressed in seconds."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20615 doc/guix.texi:20838 doc/guix.texi:22167
+#: doc/guix.texi:22175
+msgid "Defaults to @samp{15}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20618
+#, no-wrap
+msgid "{@code{tlp-configuration} parameter} non-negative-integer max-lost-work-secs-on-bat"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20620
+msgid "Same as @code{max-lost-work-secs-on-ac} but on BAT mode."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20622
+msgid "Defaults to @samp{60}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20625
+#, no-wrap
+msgid "{@code{tlp-configuration} parameter} maybe-space-separated-string-list cpu-scaling-governor-on-ac"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20629
+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:20634
+#, no-wrap
+msgid "{@code{tlp-configuration} parameter} maybe-space-separated-string-list cpu-scaling-governor-on-bat"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20636
+msgid "Same as @code{cpu-scaling-governor-on-ac} but on BAT mode."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20641
+#, no-wrap
+msgid "{@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-scaling-min-freq-on-ac"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20643
+msgid "Set the min available frequency for the scaling governor on AC."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20648
+#, no-wrap
+msgid "{@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-scaling-max-freq-on-ac"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20650
+msgid "Set the max available frequency for the scaling governor on AC."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20655
+#, no-wrap
+msgid "{@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-scaling-min-freq-on-bat"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20657
+msgid "Set the min available frequency for the scaling governor on BAT."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20662
+#, no-wrap
+msgid "{@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-scaling-max-freq-on-bat"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20664
+msgid "Set the max available frequency for the scaling governor on BAT."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20669
+#, no-wrap
+msgid "{@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-min-perf-on-ac"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20672
+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:20677
+#, no-wrap
+msgid "{@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-max-perf-on-ac"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20680
+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:20685
+#, no-wrap
+msgid "{@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-min-perf-on-bat"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20687
+msgid "Same as @code{cpu-min-perf-on-ac} on BAT mode."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20692
+#, no-wrap
+msgid "{@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-max-perf-on-bat"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20694
+msgid "Same as @code{cpu-max-perf-on-ac} on BAT mode."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20699
+#, no-wrap
+msgid "{@code{tlp-configuration} parameter} maybe-boolean cpu-boost-on-ac?"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20701
+msgid "Enable CPU turbo boost feature on AC mode."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20706
+#, no-wrap
+msgid "{@code{tlp-configuration} parameter} maybe-boolean cpu-boost-on-bat?"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20708
+msgid "Same as @code{cpu-boost-on-ac?} on BAT mode."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20713
+#, no-wrap
+msgid "{@code{tlp-configuration} parameter} boolean sched-powersave-on-ac?"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20716
+msgid "Allow Linux kernel to minimize the number of CPU cores/hyper-threads used under light load conditions."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20721
+#, no-wrap
+msgid "{@code{tlp-configuration} parameter} boolean sched-powersave-on-bat?"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20723
+msgid "Same as @code{sched-powersave-on-ac?} but on BAT mode."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20728
+#, no-wrap
+msgid "{@code{tlp-configuration} parameter} boolean nmi-watchdog?"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20730
+msgid "Enable Linux kernel NMI watchdog."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20735
+#, no-wrap
+msgid "{@code{tlp-configuration} parameter} maybe-string phc-controls"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20738
+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:20743
+#, no-wrap
+msgid "{@code{tlp-configuration} parameter} string energy-perf-policy-on-ac"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20746
+msgid "Set CPU performance versus energy saving policy on AC.  Alternatives are performance, normal, powersave."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20748 doc/guix.texi:20846 doc/guix.texi:20876
+msgid "Defaults to @samp{\"performance\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20751
+#, no-wrap
+msgid "{@code{tlp-configuration} parameter} string energy-perf-policy-on-bat"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20753
+msgid "Same as @code{energy-perf-policy-ac} but on BAT mode."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20755 doc/guix.texi:20853
+msgid "Defaults to @samp{\"powersave\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20758
+#, no-wrap
+msgid "{@code{tlp-configuration} parameter} space-separated-string-list disks-devices"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20760
+msgid "Hard disk devices."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20763
+#, no-wrap
+msgid "{@code{tlp-configuration} parameter} space-separated-string-list disk-apm-level-on-ac"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20765
+msgid "Hard disk advanced power management level."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20768
+#, no-wrap
+msgid "{@code{tlp-configuration} parameter} space-separated-string-list disk-apm-level-on-bat"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20770
+msgid "Same as @code{disk-apm-bat} but on BAT mode."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20773
+#, no-wrap
+msgid "{@code{tlp-configuration} parameter} maybe-space-separated-string-list disk-spindown-timeout-on-ac"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20776
+msgid "Hard disk spin down timeout.  One value has to be specified for each declared hard disk."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20781
+#, no-wrap
+msgid "{@code{tlp-configuration} parameter} maybe-space-separated-string-list disk-spindown-timeout-on-bat"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20783
+msgid "Same as @code{disk-spindown-timeout-on-ac} but on BAT mode."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20788
+#, no-wrap
+msgid "{@code{tlp-configuration} parameter} maybe-space-separated-string-list disk-iosched"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20792
+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:20797
+#, no-wrap
+msgid "{@code{tlp-configuration} parameter} string sata-linkpwr-on-ac"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20800
+msgid "SATA aggressive link power management (ALPM) level.  Alternatives are min_power, medium_power, max_performance."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20802
+msgid "Defaults to @samp{\"max_performance\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20805
+#, no-wrap
+msgid "{@code{tlp-configuration} parameter} string sata-linkpwr-on-bat"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20807
+msgid "Same as @code{sata-linkpwr-ac} but on BAT mode."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20809
+msgid "Defaults to @samp{\"min_power\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20812
+#, no-wrap
+msgid "{@code{tlp-configuration} parameter} maybe-string sata-linkpwr-blacklist"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20814
+msgid "Exclude specified SATA host devices for link power management."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20819
+#, no-wrap
+msgid "{@code{tlp-configuration} parameter} maybe-on-off-boolean ahci-runtime-pm-on-ac?"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20822
+msgid "Enable Runtime Power Management for AHCI controller and disks on AC mode."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20827
+#, no-wrap
+msgid "{@code{tlp-configuration} parameter} maybe-on-off-boolean ahci-runtime-pm-on-bat?"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20829
+msgid "Same as @code{ahci-runtime-pm-on-ac} on BAT mode."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20834
+#, no-wrap
+msgid "{@code{tlp-configuration} parameter} non-negative-integer ahci-runtime-pm-timeout"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20836
+msgid "Seconds of inactivity before disk is suspended."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20841
+#, no-wrap
+msgid "{@code{tlp-configuration} parameter} string pcie-aspm-on-ac"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20844
+msgid "PCI Express Active State Power Management level.  Alternatives are default, performance, powersave."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20849
+#, no-wrap
+msgid "{@code{tlp-configuration} parameter} string pcie-aspm-on-bat"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20851
+msgid "Same as @code{pcie-aspm-ac} but on BAT mode."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20856
+#, no-wrap
+msgid "{@code{tlp-configuration} parameter} string radeon-power-profile-on-ac"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20859
+msgid "Radeon graphics clock speed level.  Alternatives are low, mid, high, auto, default."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20861
+msgid "Defaults to @samp{\"high\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20864
+#, no-wrap
+msgid "{@code{tlp-configuration} parameter} string radeon-power-profile-on-bat"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20866
+msgid "Same as @code{radeon-power-ac} but on BAT mode."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20868
+msgid "Defaults to @samp{\"low\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20871
+#, no-wrap
+msgid "{@code{tlp-configuration} parameter} string radeon-dpm-state-on-ac"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20874
+msgid "Radeon dynamic power management method (DPM).  Alternatives are battery, performance."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20879
+#, no-wrap
+msgid "{@code{tlp-configuration} parameter} string radeon-dpm-state-on-bat"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20881
+msgid "Same as @code{radeon-dpm-state-ac} but on BAT mode."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20883
+msgid "Defaults to @samp{\"battery\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20886
+#, no-wrap
+msgid "{@code{tlp-configuration} parameter} string radeon-dpm-perf-level-on-ac"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20888
+msgid "Radeon DPM performance level.  Alternatives are auto, low, high."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20890 doc/guix.texi:20897 doc/guix.texi:20971
+msgid "Defaults to @samp{\"auto\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20893
+#, no-wrap
+msgid "{@code{tlp-configuration} parameter} string radeon-dpm-perf-level-on-bat"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20895
+msgid "Same as @code{radeon-dpm-perf-ac} but on BAT mode."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20900
+#, no-wrap
+msgid "{@code{tlp-configuration} parameter} on-off-boolean wifi-pwr-on-ac?"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20902
+msgid "Wifi power saving mode."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20907
+#, no-wrap
+msgid "{@code{tlp-configuration} parameter} on-off-boolean wifi-pwr-on-bat?"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20909
+msgid "Same as @code{wifi-power-ac?} but on BAT mode."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20914
+#, no-wrap
+msgid "{@code{tlp-configuration} parameter} y-n-boolean wol-disable?"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20916
+msgid "Disable wake on LAN."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20921
+#, no-wrap
+msgid "{@code{tlp-configuration} parameter} non-negative-integer sound-power-save-on-ac"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20924
+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:20929
+#, no-wrap
+msgid "{@code{tlp-configuration} parameter} non-negative-integer sound-power-save-on-bat"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20931
+msgid "Same as @code{sound-powersave-ac} but on BAT mode."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20933 doc/guix.texi:21460 doc/guix.texi:21604
+msgid "Defaults to @samp{1}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20936
+#, no-wrap
+msgid "{@code{tlp-configuration} parameter} y-n-boolean sound-power-save-controller?"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20938
+msgid "Disable controller in powersaving mode on Intel HDA devices."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20943
+#, no-wrap
+msgid "{@code{tlp-configuration} parameter} boolean bay-poweroff-on-bat?"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20947
+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:20952
+#, no-wrap
+msgid "{@code{tlp-configuration} parameter} string bay-device"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20954
+msgid "Name of the optical drive device to power off."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20956
+msgid "Defaults to @samp{\"sr0\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20959
+#, no-wrap
+msgid "{@code{tlp-configuration} parameter} string runtime-pm-on-ac"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20962
+msgid "Runtime Power Management for PCI(e) bus devices.  Alternatives are on and auto."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20964
+msgid "Defaults to @samp{\"on\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20967
+#, no-wrap
+msgid "{@code{tlp-configuration} parameter} string runtime-pm-on-bat"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20969
+msgid "Same as @code{runtime-pm-ac} but on BAT mode."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20974
+#, no-wrap
+msgid "{@code{tlp-configuration} parameter} boolean runtime-pm-all?"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20977
+msgid "Runtime Power Management for all PCI(e) bus devices, except blacklisted ones."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20982
+#, no-wrap
+msgid "{@code{tlp-configuration} parameter} maybe-space-separated-string-list runtime-pm-blacklist"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20984
+msgid "Exclude specified PCI(e) device addresses from Runtime Power Management."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20989
+#, no-wrap
+msgid "{@code{tlp-configuration} parameter} space-separated-string-list runtime-pm-driver-blacklist"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20992
+msgid "Exclude PCI(e) devices assigned to the specified drivers from Runtime Power Management."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20995
+#, no-wrap
+msgid "{@code{tlp-configuration} parameter} boolean usb-autosuspend?"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:20997
+msgid "Enable USB autosuspend feature."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21002
+#, no-wrap
+msgid "{@code{tlp-configuration} parameter} maybe-string usb-blacklist"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21004
+msgid "Exclude specified devices from USB autosuspend."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21009
+#, no-wrap
+msgid "{@code{tlp-configuration} parameter} boolean usb-blacklist-wwan?"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21011
+msgid "Exclude WWAN devices from USB autosuspend."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21016
+#, no-wrap
+msgid "{@code{tlp-configuration} parameter} maybe-string usb-whitelist"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21019
+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:21024
+#, no-wrap
+msgid "{@code{tlp-configuration} parameter} maybe-boolean usb-autosuspend-disable-on-shutdown?"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21026
+msgid "Enable USB autosuspend before shutdown."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21031
+#, no-wrap
+msgid "{@code{tlp-configuration} parameter} boolean restore-device-state-on-startup?"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21034
+msgid "Restore radio device state (bluetooth, wifi, wwan) from previous shutdown on system startup."
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:21039
+#, no-wrap
+msgid "thermald"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:21040
+#, no-wrap
+msgid "CPU frequency scaling with thermald"
+msgstr ""
+
+#. type: subsubheading
+#: doc/guix.texi:21041
+#, no-wrap
+msgid "Thermald daemon"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:21045
+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:21046
+#, no-wrap
+msgid "{Scheme Variable} thermald-service-type"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:21051
+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:21053
+#, no-wrap
+msgid "{Data Type} thermald-configuration"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:21055
+msgid "Data type representing the configuration of @code{thermald-service-type}."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:21057
+#, no-wrap
+msgid "@code{ignore-cpuid-check?} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:21059
+msgid "Ignore cpuid check for supported CPU models."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:21060
+#, no-wrap
+msgid "@code{thermald} (default: @var{thermald})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:21062
+msgid "Package object of thermald."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:21071
+msgid "The @code{(gnu services audio)} module provides a service to start MPD (the Music Player Daemon)."
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:21072
+#, no-wrap
+msgid "mpd"
+msgstr ""
+
+#. type: subsubheading
+#: doc/guix.texi:21073
+#, no-wrap
+msgid "Music Player Daemon"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:21078
+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:21081
+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: example
+#: doc/guix.texi:21087
+#, no-wrap
+msgid ""
+"(service mpd-service-type\n"
+"         (mpd-configuration\n"
+"          (user \"bob\")\n"
+"          (port \"6666\")))\n"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:21089
+#, no-wrap
+msgid "{Scheme Variable} mpd-service-type"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:21091
+msgid "The service type for @command{mpd}"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:21093
+#, no-wrap
+msgid "{Data Type} mpd-configuration"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:21095
+msgid "Data type representing the configuration of @command{mpd}."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:21097
+#, no-wrap
+msgid "@code{user} (default: @code{\"mpd\"})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:21099
+msgid "The user to run mpd as."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:21100
+#, no-wrap
+msgid "@code{music-dir} (default: @code{\"~/Music\"})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:21102
+msgid "The directory to scan for music files."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:21103
+#, no-wrap
+msgid "@code{playlist-dir} (default: @code{\"~/.mpd/playlists\"})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:21105
+msgid "The directory to store playlists."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:21106
+#, no-wrap
+msgid "@code{db-file} (default: @code{\"~/.mpd/tag_cache\"})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:21108
+msgid "The location of the music database."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:21109
+#, no-wrap
+msgid "@code{state-file} (default: @code{\"~/.mpd/state\"})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:21111
+msgid "The location of the file that stores current MPD's state."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:21112
+#, no-wrap
+msgid "@code{sticker-file} (default: @code{\"~/.mpd/sticker.sql\"})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:21114
+msgid "The location of the sticker database."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:21115
+#, no-wrap
+msgid "@code{port} (default: @code{\"6600\"})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:21117
+msgid "The port to run mpd on."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:21118
+#, no-wrap
+msgid "@code{address} (default: @code{\"any\"})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:21121
+msgid "The address that mpd will bind to.  To use a Unix domain socket, an absolute path can be specified here."
+msgstr ""
+
+#. type: subsection
+#: doc/guix.texi:21126
+#, no-wrap
+msgid "Virtualization services"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:21131
+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:21132
+#, no-wrap
+msgid "Libvirt daemon"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:21136
+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:21137
+#, no-wrap
+msgid "{Scheme Variable} libvirt-service-type"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:21140
+msgid "This is the type of the @uref{https://libvirt.org, libvirt daemon}.  Its value must be a @code{libvirt-configuration}."
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:21146
+#, no-wrap
+msgid ""
+"(service libvirt-service-type\n"
+"         (libvirt-configuration\n"
+"          (unix-sock-group \"libvirt\")\n"
+"          (tls-port \"16555\")))\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:21151
+msgid "Available @code{libvirt-configuration} fields are:"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21152
+#, no-wrap
+msgid "{@code{libvirt-configuration} parameter} package libvirt"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21154
+msgid "Libvirt package."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21157
+#, no-wrap
+msgid "{@code{libvirt-configuration} parameter} boolean listen-tls?"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21160
+msgid "Flag listening for secure TLS connections on the public TCP/IP port.  must set @code{listen} for this to have any effect."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21163
+msgid "It is necessary to setup a CA and issue server certificates before using this capability."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21168
+#, no-wrap
+msgid "{@code{libvirt-configuration} parameter} boolean listen-tcp?"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21171
+msgid "Listen for unencrypted TCP connections on the public TCP/IP port.  must set @code{listen} for this to have any effect."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21175
+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:21180
+#, no-wrap
+msgid "{@code{libvirt-configuration} parameter} string tls-port"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21183
+msgid "Port for accepting secure TLS connections This can be a port number, or service name"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21185
+msgid "Defaults to @samp{\"16514\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21188
+#, no-wrap
+msgid "{@code{libvirt-configuration} parameter} string tcp-port"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21191
+msgid "Port for accepting insecure TCP connections This can be a port number, or service name"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21193
+msgid "Defaults to @samp{\"16509\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21196
+#, no-wrap
+msgid "{@code{libvirt-configuration} parameter} string listen-addr"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21198
+msgid "IP address or hostname used for client connections."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21200
+msgid "Defaults to @samp{\"0.0.0.0\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21203
+#, no-wrap
+msgid "{@code{libvirt-configuration} parameter} boolean mdns-adv?"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21205
+msgid "Flag toggling mDNS advertisement of the libvirt service."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21208
+msgid "Alternatively can disable for all services on a host by stopping the Avahi daemon."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21213
+#, no-wrap
+msgid "{@code{libvirt-configuration} parameter} string mdns-name"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21216
+msgid "Default mDNS advertisement name.  This must be unique on the immediate broadcast network."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21218
+msgid "Defaults to @samp{\"Virtualization Host <hostname>\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21221
+#, no-wrap
+msgid "{@code{libvirt-configuration} parameter} string unix-sock-group"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21225
+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:21230
+#, no-wrap
+msgid "{@code{libvirt-configuration} parameter} string unix-sock-ro-perms"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21233
+msgid "UNIX socket permissions for the R/O socket.  This is used for monitoring VM status only."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21235 doc/guix.texi:21253
+msgid "Defaults to @samp{\"0777\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21238
+#, no-wrap
+msgid "{@code{libvirt-configuration} parameter} string unix-sock-rw-perms"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21242
+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:21244
+msgid "Defaults to @samp{\"0770\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21247
+#, no-wrap
+msgid "{@code{libvirt-configuration} parameter} string unix-sock-admin-perms"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21251
+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:21256
+#, no-wrap
+msgid "{@code{libvirt-configuration} parameter} string unix-sock-dir"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21258
+msgid "The directory in which sockets will be found/created."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21260
+msgid "Defaults to @samp{\"/var/run/libvirt\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21263
+#, no-wrap
+msgid "{@code{libvirt-configuration} parameter} string auth-unix-ro"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21266
+msgid "Authentication scheme for UNIX read-only sockets.  By default socket permissions allow anyone to connect"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21268 doc/guix.texi:21277
+msgid "Defaults to @samp{\"polkit\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21271
+#, no-wrap
+msgid "{@code{libvirt-configuration} parameter} string auth-unix-rw"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21275
+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:21280
+#, no-wrap
+msgid "{@code{libvirt-configuration} parameter} string auth-tcp"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21284
+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:21286
+msgid "Defaults to @samp{\"sasl\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21289
+#, no-wrap
+msgid "{@code{libvirt-configuration} parameter} string auth-tls"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21293
+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:21296
+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:21298
+msgid "Defaults to @samp{\"none\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21301
+#, no-wrap
+msgid "{@code{libvirt-configuration} parameter} optional-list access-drivers"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21303
+msgid "API access control scheme."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21306
+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:21311
+#, no-wrap
+msgid "{@code{libvirt-configuration} parameter} string key-file"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21314
+msgid "Server key file path.  If set to an empty string, then no private key is loaded."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21319
+#, no-wrap
+msgid "{@code{libvirt-configuration} parameter} string cert-file"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21322
+msgid "Server key file path.  If set to an empty string, then no certificate is loaded."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21327
+#, no-wrap
+msgid "{@code{libvirt-configuration} parameter} string ca-file"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21330
+msgid "Server key file path.  If set to an empty string, then no CA certificate is loaded."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21335
+#, no-wrap
+msgid "{@code{libvirt-configuration} parameter} string crl-file"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21338
+msgid "Certificate revocation list path.  If set to an empty string, then no CRL is loaded."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21343
+#, no-wrap
+msgid "{@code{libvirt-configuration} parameter} boolean tls-no-sanity-cert"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21345
+msgid "Disable verification of our own server certificates."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21348
+msgid "When libvirtd starts it performs some sanity checks against its own certificates."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21353
+#, no-wrap
+msgid "{@code{libvirt-configuration} parameter} boolean tls-no-verify-cert"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21355
+msgid "Disable verification of client certificates."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21359
+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:21364
+#, no-wrap
+msgid "{@code{libvirt-configuration} parameter} optional-list tls-allowed-dn-list"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21366
+msgid "Whitelist of allowed x509 Distinguished Name."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21371
+#, no-wrap
+msgid "{@code{libvirt-configuration} parameter} optional-list sasl-allowed-usernames"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21374
+msgid "Whitelist of allowed SASL usernames.  The format for username depends on the SASL authentication mechanism."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21379
+#, no-wrap
+msgid "{@code{libvirt-configuration} parameter} string tls-priority"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21383
+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 ""
+
+#. type: deftypevr
+#: doc/guix.texi:21385
+msgid "Defaults to @samp{\"NORMAL\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21388
+#, no-wrap
+msgid "{@code{libvirt-configuration} parameter} integer max-clients"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21391 doc/guix.texi:21814
+msgid "Maximum number of concurrent client connections to allow over all sockets combined."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21393
+msgid "Defaults to @samp{5000}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21396
+#, no-wrap
+msgid "{@code{libvirt-configuration} parameter} integer max-queued-clients"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21400
+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:21405
+#, no-wrap
+msgid "{@code{libvirt-configuration} parameter} integer max-anonymous-clients"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21408
+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:21410 doc/guix.texi:21428 doc/guix.texi:21444
+msgid "Defaults to @samp{20}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21413
+#, no-wrap
+msgid "{@code{libvirt-configuration} parameter} integer min-workers"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21415
+msgid "Number of workers to start up initially."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21420
+#, no-wrap
+msgid "{@code{libvirt-configuration} parameter} integer max-workers"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21422
+msgid "Maximum number of worker threads."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21426
+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:21431
+#, no-wrap
+msgid "{@code{libvirt-configuration} parameter} integer prio-workers"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21435
+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:21440
+#, no-wrap
+msgid "{@code{libvirt-configuration} parameter} integer max-requests"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21442
+msgid "Total global limit on concurrent RPC calls."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21447
+#, no-wrap
+msgid "{@code{libvirt-configuration} parameter} integer max-client-requests"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21451
+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:21456
+#, no-wrap
+msgid "{@code{libvirt-configuration} parameter} integer admin-min-workers"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21458
+msgid "Same as @code{min-workers} but for the admin interface."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21463
+#, no-wrap
+msgid "{@code{libvirt-configuration} parameter} integer admin-max-workers"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21465
+msgid "Same as @code{max-workers} but for the admin interface."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21470
+#, no-wrap
+msgid "{@code{libvirt-configuration} parameter} integer admin-max-clients"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21472
+msgid "Same as @code{max-clients} but for the admin interface."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21477
+#, no-wrap
+msgid "{@code{libvirt-configuration} parameter} integer admin-max-queued-clients"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21479
+msgid "Same as @code{max-queued-clients} but for the admin interface."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21484
+#, no-wrap
+msgid "{@code{libvirt-configuration} parameter} integer admin-max-client-requests"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21486
+msgid "Same as @code{max-client-requests} but for the admin interface."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21491
+#, no-wrap
+msgid "{@code{libvirt-configuration} parameter} integer log-level"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21493 doc/guix.texi:21716
+msgid "Logging level.  4 errors, 3 warnings, 2 information, 1 debug."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21498
+#, no-wrap
+msgid "{@code{libvirt-configuration} parameter} string log-filters"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21500 doc/guix.texi:21723
+msgid "Logging filters."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21503 doc/guix.texi:21726
+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:21507 doc/guix.texi:21730
+msgid "x:name"
+msgstr ""
+
+#. type: itemize
+#: doc/guix.texi:21510 doc/guix.texi:21733
+msgid "x:+name"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21520 doc/guix.texi:21743
+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: itemize
+#: doc/guix.texi:21524 doc/guix.texi:21569 doc/guix.texi:21747
+#: doc/guix.texi:21792
+msgid "1: DEBUG"
+msgstr ""
+
+#. type: itemize
+#: doc/guix.texi:21527 doc/guix.texi:21572 doc/guix.texi:21750
+#: doc/guix.texi:21795
+msgid "2: INFO"
+msgstr ""
+
+#. type: itemize
+#: doc/guix.texi:21530 doc/guix.texi:21575 doc/guix.texi:21753
+#: doc/guix.texi:21798
+msgid "3: WARNING"
+msgstr ""
+
+#. type: itemize
+#: doc/guix.texi:21533 doc/guix.texi:21578 doc/guix.texi:21756
+#: doc/guix.texi:21801
+msgid "4: ERROR"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21538 doc/guix.texi:21761
+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:21540 doc/guix.texi:21763
+msgid "Defaults to @samp{\"3:remote 4:event\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21543
+#, no-wrap
+msgid "{@code{libvirt-configuration} parameter} string log-outputs"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21545 doc/guix.texi:21768
+msgid "Logging outputs."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21548 doc/guix.texi:21771
+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:21550 doc/guix.texi:21773
+#, no-wrap
+msgid "x:stderr"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:21552 doc/guix.texi:21775
+msgid "output goes to stderr"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:21553 doc/guix.texi:21776
+#, no-wrap
+msgid "x:syslog:name"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:21555 doc/guix.texi:21778
+msgid "use syslog for the output and use the given name as the ident"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:21556 doc/guix.texi:21779
+#, no-wrap
+msgid "x:file:file_path"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:21558 doc/guix.texi:21781
+msgid "output to a file, with the given filepath"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:21559 doc/guix.texi:21782
+#, no-wrap
+msgid "x:journald"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:21561 doc/guix.texi:21784
+msgid "output to journald logging system"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21565 doc/guix.texi:21788
+msgid "In all case the x prefix is the minimal level, acting as a filter"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21583 doc/guix.texi:21806
+msgid "Multiple outputs can be defined, they just need to be separated by spaces."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21585 doc/guix.texi:21808
+msgid "Defaults to @samp{\"3:stderr\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21588
+#, no-wrap
+msgid "{@code{libvirt-configuration} parameter} integer audit-level"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21590
+msgid "Allows usage of the auditing subsystem to be altered"
+msgstr ""
+
+#. type: itemize
+#: doc/guix.texi:21594
+msgid "0: disable all auditing"
+msgstr ""
+
+#. type: itemize
+#: doc/guix.texi:21597
+msgid "1: enable auditing, only if enabled on host"
+msgstr ""
+
+#. type: itemize
+#: doc/guix.texi:21600
+msgid "2: enable auditing, and exit if disabled on host."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21607
+#, no-wrap
+msgid "{@code{libvirt-configuration} parameter} boolean audit-logging"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21609
+msgid "Send audit messages via libvirt logging infrastructure."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21614
+#, no-wrap
+msgid "{@code{libvirt-configuration} parameter} optional-string host-uuid"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21616
+msgid "Host UUID.  UUID must not have all digits be the same."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21621
+#, no-wrap
+msgid "{@code{libvirt-configuration} parameter} string host-uuid-source"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21623
+msgid "Source to read host UUID."
+msgstr ""
+
+#. type: itemize
+#: doc/guix.texi:21627
+msgid "@code{smbios}: fetch the UUID from @code{dmidecode -s system-uuid}"
+msgstr ""
+
+#. type: itemize
+#: doc/guix.texi:21630
+msgid "@code{machine-id}: fetch the UUID from @code{/etc/machine-id}"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21635
+msgid "If @code{dmidecode} does not provide a valid UUID a temporary UUID will be generated."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21637
+msgid "Defaults to @samp{\"smbios\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21640
+#, no-wrap
+msgid "{@code{libvirt-configuration} parameter} integer keepalive-interval"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21645
+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:21650
+#, no-wrap
+msgid "{@code{libvirt-configuration} parameter} integer keepalive-count"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21654
+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:21661
+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:21666
+#, no-wrap
+msgid "{@code{libvirt-configuration} parameter} integer admin-keepalive-interval"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21668 doc/guix.texi:21675
+msgid "Same as above but for admin interface."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21673
+#, no-wrap
+msgid "{@code{libvirt-configuration} parameter} integer admin-keepalive-count"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21680
+#, no-wrap
+msgid "{@code{libvirt-configuration} parameter} integer ovs-timeout"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21682
+msgid "Timeout for Open vSwitch calls."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21686
+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:21693
+#, no-wrap
+msgid "Virtlog daemon"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:21696
+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:21702
+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:21703
+#, no-wrap
+msgid "{Scheme Variable} virtlog-service-type"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:21706
+msgid "This is the type of the virtlog daemon.  Its value must be a @code{virtlog-configuration}."
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:21711
+#, no-wrap
+msgid ""
+"(service virtlog-service-type\n"
+"         (virtlog-configuration\n"
+"          (max-clients 1000)))\n"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21714
+#, no-wrap
+msgid "{@code{virtlog-configuration} parameter} integer log-level"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21721
+#, no-wrap
+msgid "{@code{virtlog-configuration} parameter} string log-filters"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21766
+#, no-wrap
+msgid "{@code{virtlog-configuration} parameter} string log-outputs"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21811
+#, no-wrap
+msgid "{@code{virtlog-configuration} parameter} integer max-clients"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21816
+msgid "Defaults to @samp{1024}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21819
+#, no-wrap
+msgid "{@code{virtlog-configuration} parameter} integer max-size"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21821
+msgid "Maximum file size before rolling over."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21823
+msgid "Defaults to @samp{2MB}"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21826
+#, no-wrap
+msgid "{@code{virtlog-configuration} parameter} integer max-backups"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21828
+msgid "Maximum number of backup files to keep."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:21830
+msgid "Defaults to @samp{3}"
+msgstr ""
+
+#. type: subsubheading
+#: doc/guix.texi:21833
+#, no-wrap
+msgid "Transparent Emulation with QEMU"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:21835
+#, no-wrap
+msgid "emulation"
+msgstr ""
+
+#. type: code{#1}
+#: doc/guix.texi:21836
+#, no-wrap
+msgid "binfmt_misc"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:21842
+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 ""
+
+#. type: defvr
+#: doc/guix.texi:21843
+#, no-wrap
+msgid "{Scheme Variable} qemu-binfmt-service-type"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:21848
+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: example
+#: doc/guix.texi:21853
+#, no-wrap
+msgid ""
+"(service qemu-binfmt-service-type\n"
+"         (qemu-binfmt-configuration\n"
+"           (platforms (lookup-qemu-platforms \"arm\" \"aarch64\" \"mips64el\"))))\n"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:21859
+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:21861
+#, no-wrap
+msgid "{Data Type} qemu-binfmt-configuration"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:21863
+msgid "This is the configuration for the @code{qemu-binfmt} service."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:21865
+#, no-wrap
+msgid "@code{platforms} (default: @code{'()})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:21868
+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:21869
+#, no-wrap
+msgid "@code{guix-support?} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:21875
+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 ""
+
+#. type: table
+#: doc/guix.texi:21878
+msgid "For example, let's suppose you're on an x86_64 machine and you have this service:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:21884
+#, no-wrap
+msgid ""
+"(service qemu-binfmt-service-type\n"
+"         (qemu-binfmt-configuration\n"
+"           (platforms (lookup-qemu-platforms \"arm\"))\n"
+"           (guix-support? #t)))\n"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:21887
+msgid "You can run:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:21890
+#, no-wrap
+msgid "guix build -s armhf-linux inkscape\n"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:21897
+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:21898
+#, no-wrap
+msgid "@code{qemu} (default: @code{qemu})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:21900
+msgid "The QEMU package to use."
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:21903
+#, no-wrap
+msgid "{Scheme Procedure} lookup-qemu-platforms @var{platforms}@dots{}"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:21908
+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:21910
+#, no-wrap
+msgid "{Scheme Procedure} qemu-platform? @var{obj}"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:21912
+msgid "Return true if @var{obj} is a platform object."
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:21914
+#, no-wrap
+msgid "{Scheme Procedure} qemu-platform-name @var{platform}"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:21916
+msgid "Return the name of @var{platform}---a string such as @code{\"arm\"}."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:21928
+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:21929
+#, no-wrap
+msgid "{Scheme Procedure} git-daemon-service [#:config (git-daemon-configuration)]"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:21933
+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:21939
+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 ""
+
+#. type: deftp
+#: doc/guix.texi:21942
+#, no-wrap
+msgid "{Data Type} git-daemon-configuration"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:21944
+msgid "Data type representing the configuration for @code{git-daemon-service}."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:21946 doc/guix.texi:22002
+#, no-wrap
+msgid "@code{package} (default: @var{git})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:21948 doc/guix.texi:22004
+msgid "Package object of the Git distributed version control system."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:21949 doc/guix.texi:22008
+#, no-wrap
+msgid "@code{export-all?} (default: @var{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:21952
+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:21953
+#, no-wrap
+msgid "@code{base-path} (default: @file{/srv/git})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:21958
+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 ""
+
+#. type: item
+#: doc/guix.texi:21959
+#, no-wrap
+msgid "@code{user-path} (default: @var{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:21966
+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 ""
+
+#. type: item
+#: doc/guix.texi:21967
+#, no-wrap
+msgid "@code{listen} (default: @var{'()})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:21970
+msgid "Whether to listen on specific IP addresses or hostnames, defaults to all."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:21971
+#, no-wrap
+msgid "@code{port} (default: @var{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:21973
+msgid "Whether to listen on an alternative port, which defaults to 9418."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:21974
+#, no-wrap
+msgid "@code{whitelist} (default: @var{'()})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:21976
+msgid "If not empty, only allow access to this list of directories."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:21977
+#, no-wrap
+msgid "@code{extra-options} (default: @var{'()})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:21980
+msgid "Extra options will be passed to @code{git daemon}, please run @command{man git-daemon} for more information."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:21994
+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."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:21997
+msgid "Guix has a separate configuration data type for serving Git repositories over HTTP."
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:21998
+#, no-wrap
+msgid "{Data Type} git-http-configuration"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:22000
+msgid "Data type representing the configuration for @code{git-http-service}."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:22005
+#, no-wrap
+msgid "@code{git-root} (default: @file{/srv/git})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:22007
+msgid "Directory containing the Git repositories to expose to the world."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:22011
+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:22012
+#, no-wrap
+msgid "@code{uri-path} (default: @file{/git/})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:22017
+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 ""
+
+#. type: item
+#: doc/guix.texi:22018
+#, no-wrap
+msgid "@code{fcgiwrap-socket} (default: @code{127.0.0.1:9000})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:22021
+msgid "The socket on which the @code{fcgiwrap} daemon is listening.  @xref{Web Services}."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:22028
+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:22029
+#, no-wrap
+msgid "{Scheme Procedure} git-http-nginx-location-configuration @"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:22034
+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: example
+#: doc/guix.texi:22051
+#, no-wrap
+msgid ""
+"(service nginx-service-type\n"
+"         (nginx-configuration\n"
+"          (server-blocks\n"
+"           (list\n"
+"            (nginx-server-configuration\n"
+"             (listen '(\"443 ssl\"))\n"
+"             (server-name \"git.my-host.org\")\n"
+"             (ssl-certificate\n"
+"              \"/etc/letsencrypt/live/git.my-host.org/fullchain.pem\")\n"
+"             (ssl-certificate-key\n"
+"              \"/etc/letsencrypt/live/git.my-host.org/privkey.pem\")\n"
+"             (locations\n"
+"              (list\n"
+"               (git-http-nginx-location-configuration\n"
+"                (git-http-configuration (uri-path \"/\"))))))))))\n"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:22058
+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:22060
+#, no-wrap
+msgid "Cgit Service"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:22062
+#, no-wrap
+msgid "Cgit service"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:22063
+#, no-wrap
+msgid "Git, web interface"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:22066
+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:22069
+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: example
+#: doc/guix.texi:22072
+#, no-wrap
+msgid "(service cgit-service-type)\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:22076
+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:22080
+msgid "Available @code{cgit-configuration} fields are:"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22081
+#, no-wrap
+msgid "{@code{cgit-configuration} parameter} package package"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22083
+msgid "The CGIT package."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22086
+#, no-wrap
+msgid "{@code{cgit-configuration} parameter} nginx-server-configuration-list nginx"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22091
+#, no-wrap
+msgid "{@code{cgit-configuration} parameter} file-object about-filter"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22094
+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:22099
+#, no-wrap
+msgid "{@code{cgit-configuration} parameter} string agefile"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22102
+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:22107
+#, no-wrap
+msgid "{@code{cgit-configuration} parameter} file-object auth-filter"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22110
+msgid "Specifies a command that will be invoked for authenticating repository access."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22115
+#, no-wrap
+msgid "{@code{cgit-configuration} parameter} string branch-sort"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22118
+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:22120
+msgid "Defaults to @samp{\"name\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22123
+#, no-wrap
+msgid "{@code{cgit-configuration} parameter} string cache-root"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22125
+msgid "Path used to store the cgit cache entries."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22127
+msgid "Defaults to @samp{\"/var/cache/cgit\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22130
+#, no-wrap
+msgid "{@code{cgit-configuration} parameter} integer cache-static-ttl"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22133
+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:22135 doc/guix.texi:22578
+msgid "Defaults to @samp{-1}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22138
+#, no-wrap
+msgid "{@code{cgit-configuration} parameter} integer cache-dynamic-ttl"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22141
+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:22146
+#, no-wrap
+msgid "{@code{cgit-configuration} parameter} integer cache-repo-ttl"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22149
+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:22154
+#, no-wrap
+msgid "{@code{cgit-configuration} parameter} integer cache-root-ttl"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22157
+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:22162
+#, no-wrap
+msgid "{@code{cgit-configuration} parameter} integer cache-scanrc-ttl"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22165
+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:22170
+#, no-wrap
+msgid "{@code{cgit-configuration} parameter} integer cache-about-ttl"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22173
+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:22178
+#, no-wrap
+msgid "{@code{cgit-configuration} parameter} integer cache-snapshot-ttl"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22181
+msgid "Number which specifies the time-to-live, in minutes, for the cached version of snapshots."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22186
+#, no-wrap
+msgid "{@code{cgit-configuration} parameter} integer cache-size"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22189
+msgid "The maximum number of entries in the cgit cache.  When set to @samp{0}, caching is disabled."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22194
+#, no-wrap
+msgid "{@code{cgit-configuration} parameter} boolean case-sensitive-sort?"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22196
+msgid "Sort items in the repo list case sensitively."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22201
+#, no-wrap
+msgid "{@code{cgit-configuration} parameter} list clone-prefix"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22204
+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:22209
+#, no-wrap
+msgid "{@code{cgit-configuration} parameter} list clone-url"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22211
+msgid "List of @code{clone-url} templates."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22216
+#, no-wrap
+msgid "{@code{cgit-configuration} parameter} file-object commit-filter"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22218
+msgid "Command which will be invoked to format commit messages."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22223
+#, no-wrap
+msgid "{@code{cgit-configuration} parameter} string commit-sort"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22227 doc/guix.texi:22785
+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:22229
+msgid "Defaults to @samp{\"git log\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22232
+#, no-wrap
+msgid "{@code{cgit-configuration} parameter} file-object css"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22234
+msgid "URL which specifies the css document to include in all cgit pages."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22236
+msgid "Defaults to @samp{\"/share/cgit/cgit.css\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22239
+#, no-wrap
+msgid "{@code{cgit-configuration} parameter} file-object email-filter"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22243
+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:22248
+#, no-wrap
+msgid "{@code{cgit-configuration} parameter} boolean embedded?"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22251
+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:22256
+#, no-wrap
+msgid "{@code{cgit-configuration} parameter} boolean enable-commit-graph?"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22260
+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:22265
+#, no-wrap
+msgid "{@code{cgit-configuration} parameter} boolean enable-filter-overrides?"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22268
+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:22273
+#, no-wrap
+msgid "{@code{cgit-configuration} parameter} boolean enable-follow-links?"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22276
+msgid "Flag which, when set to @samp{#t}, allows users to follow a file in the log view."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22281
+#, no-wrap
+msgid "{@code{cgit-configuration} parameter} boolean enable-http-clone?"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22284
+msgid "If set to @samp{#t}, cgit will act as an dumb HTTP endpoint for Git clones."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22289
+#, no-wrap
+msgid "{@code{cgit-configuration} parameter} boolean enable-index-links?"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22292
+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:22297
+#, no-wrap
+msgid "{@code{cgit-configuration} parameter} boolean enable-index-owner?"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22300
+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:22305
+#, no-wrap
+msgid "{@code{cgit-configuration} parameter} boolean enable-log-filecount?"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22308
+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:22313
+#, no-wrap
+msgid "{@code{cgit-configuration} parameter} boolean enable-log-linecount?"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22316
+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:22321
+#, no-wrap
+msgid "{@code{cgit-configuration} parameter} boolean enable-remote-branches?"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22324 doc/guix.texi:22848
+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:22329
+#, no-wrap
+msgid "{@code{cgit-configuration} parameter} boolean enable-subject-links?"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22333
+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:22338
+#, no-wrap
+msgid "{@code{cgit-configuration} parameter} boolean enable-html-serving?"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22342
+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:22347
+#, no-wrap
+msgid "{@code{cgit-configuration} parameter} boolean enable-tree-linenumbers?"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22350
+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:22355
+#, no-wrap
+msgid "{@code{cgit-configuration} parameter} boolean enable-git-config?"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22358
+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:22363
+#, no-wrap
+msgid "{@code{cgit-configuration} parameter} file-object favicon"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22365
+msgid "URL used as link to a shortcut icon for cgit."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22367
+msgid "Defaults to @samp{\"/favicon.ico\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22370
+#, no-wrap
+msgid "{@code{cgit-configuration} parameter} string footer"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22374
+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:22379
+#, no-wrap
+msgid "{@code{cgit-configuration} parameter} string head-include"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22382
+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:22387
+#, no-wrap
+msgid "{@code{cgit-configuration} parameter} string header"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22390
+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:22395
+#, no-wrap
+msgid "{@code{cgit-configuration} parameter} file-object include"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22398
+msgid "Name of a configfile to include before the rest of the current config- file is parsed."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22403
+#, no-wrap
+msgid "{@code{cgit-configuration} parameter} string index-header"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22406
+msgid "The content of the file specified with this option will be included verbatim above the repository index."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22411
+#, no-wrap
+msgid "{@code{cgit-configuration} parameter} string index-info"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22414
+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:22419
+#, no-wrap
+msgid "{@code{cgit-configuration} parameter} boolean local-time?"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22422
+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:22427
+#, no-wrap
+msgid "{@code{cgit-configuration} parameter} file-object logo"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22430
+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:22432
+msgid "Defaults to @samp{\"/share/cgit/cgit.png\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22435
+#, no-wrap
+msgid "{@code{cgit-configuration} parameter} string logo-link"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22437 doc/guix.texi:22894
+msgid "URL loaded when clicking on the cgit logo image."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22442
+#, no-wrap
+msgid "{@code{cgit-configuration} parameter} file-object owner-filter"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22445
+msgid "Command which will be invoked to format the Owner column of the main page."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22450
+#, no-wrap
+msgid "{@code{cgit-configuration} parameter} integer max-atom-items"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22452
+msgid "Number of items to display in atom feeds view."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22454 doc/guix.texi:22689 doc/guix.texi:22697
+#: doc/guix.texi:22705
+msgid "Defaults to @samp{10}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22457
+#, no-wrap
+msgid "{@code{cgit-configuration} parameter} integer max-commit-count"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22459
+msgid "Number of entries to list per page in \"log\" view."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22461 doc/guix.texi:22476
+msgid "Defaults to @samp{50}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22464
+#, no-wrap
+msgid "{@code{cgit-configuration} parameter} integer max-message-length"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22466
+msgid "Number of commit message characters to display in \"log\" view."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22468 doc/guix.texi:22484
+msgid "Defaults to @samp{80}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22471
+#, no-wrap
+msgid "{@code{cgit-configuration} parameter} integer max-repo-count"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22474
+msgid "Specifies the number of entries to list per page on the repository index page."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22479
+#, no-wrap
+msgid "{@code{cgit-configuration} parameter} integer max-repodesc-length"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22482
+msgid "Specifies the maximum number of repo description characters to display on the repository index page."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22487
+#, no-wrap
+msgid "{@code{cgit-configuration} parameter} integer max-blob-size"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22489
+msgid "Specifies the maximum size of a blob to display HTML for in KBytes."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22494
+#, no-wrap
+msgid "{@code{cgit-configuration} parameter} string max-stats"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22497
+msgid "Maximum statistics period.  Valid values are @samp{week},@samp{month}, @samp{quarter} and @samp{year}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22502
+#, no-wrap
+msgid "{@code{cgit-configuration} parameter} mimetype-alist mimetype"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22504
+msgid "Mimetype for the specified filename extension."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22508
+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:22511
+#, no-wrap
+msgid "{@code{cgit-configuration} parameter} file-object mimetype-file"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22513
+msgid "Specifies the file to use for automatic mimetype lookup."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22518
+#, no-wrap
+msgid "{@code{cgit-configuration} parameter} string module-link"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22521
+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:22526
+#, no-wrap
+msgid "{@code{cgit-configuration} parameter} boolean nocache?"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22528
+msgid "If set to the value @samp{#t} caching will be disabled."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22533
+#, no-wrap
+msgid "{@code{cgit-configuration} parameter} boolean noplainemail?"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22536
+msgid "If set to @samp{#t} showing full author email addresses will be disabled."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22541
+#, no-wrap
+msgid "{@code{cgit-configuration} parameter} boolean noheader?"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22544
+msgid "Flag which, when set to @samp{#t}, will make cgit omit the standard header on all pages."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22549
+#, no-wrap
+msgid "{@code{cgit-configuration} parameter} project-list project-list"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22553
+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:22558
+#, no-wrap
+msgid "{@code{cgit-configuration} parameter} file-object readme"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22560
+msgid "Text which will be used as default value for @code{cgit-repo-readme}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22565
+#, no-wrap
+msgid "{@code{cgit-configuration} parameter} boolean remove-suffix?"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22569
+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:22574
+#, no-wrap
+msgid "{@code{cgit-configuration} parameter} integer renamelimit"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22576
+msgid "Maximum number of files to consider when detecting renames."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22581
+#, no-wrap
+msgid "{@code{cgit-configuration} parameter} string repository-sort"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22583
+msgid "The way in which repositories in each section are sorted."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22588
+#, no-wrap
+msgid "{@code{cgit-configuration} parameter} robots-list robots"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22590
+msgid "Text used as content for the @code{robots} meta-tag."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22592
+msgid "Defaults to @samp{(\"noindex\" \"nofollow\")}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22595
+#, no-wrap
+msgid "{@code{cgit-configuration} parameter} string root-desc"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22597
+msgid "Text printed below the heading on the repository index page."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22599
+msgid "Defaults to @samp{\"a fast webinterface for the git dscm\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22602
+#, no-wrap
+msgid "{@code{cgit-configuration} parameter} string root-readme"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22605
+msgid "The content of the file specified with this option will be included verbatim below thef \"about\" link on the repository index page."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22610
+#, no-wrap
+msgid "{@code{cgit-configuration} parameter} string root-title"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22612
+msgid "Text printed as heading on the repository index page."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22617
+#, no-wrap
+msgid "{@code{cgit-configuration} parameter} boolean scan-hidden-path"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22623
+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 ""
+
+#. type: deftypevr
+#: doc/guix.texi:22628
+#, no-wrap
+msgid "{@code{cgit-configuration} parameter} list snapshots"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22631
+msgid "Text which specifies the default set of snapshot formats that cgit generates links for."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22636
+#, no-wrap
+msgid "{@code{cgit-configuration} parameter} repository-directory repository-directory"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22639
+msgid "Name of the directory to scan for repositories (represents @code{scan-path})."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22641
+msgid "Defaults to @samp{\"/srv/git\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22644
+#, no-wrap
+msgid "{@code{cgit-configuration} parameter} string section"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22647 doc/guix.texi:22963
+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:22652
+#, no-wrap
+msgid "{@code{cgit-configuration} parameter} string section-sort"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22655
+msgid "Flag which, when set to @samp{1}, will sort the sections on the repository listing by name."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22660
+#, no-wrap
+msgid "{@code{cgit-configuration} parameter} integer section-from-path"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22663
+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:22668
+#, no-wrap
+msgid "{@code{cgit-configuration} parameter} boolean side-by-side-diffs?"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22671
+msgid "If set to @samp{#t} shows side-by-side diffs instead of unidiffs per default."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22676
+#, no-wrap
+msgid "{@code{cgit-configuration} parameter} file-object source-filter"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22679
+msgid "Specifies a command which will be invoked to format plaintext blobs in the tree view."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22684
+#, no-wrap
+msgid "{@code{cgit-configuration} parameter} integer summary-branches"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22687
+msgid "Specifies the number of branches to display in the repository \"summary\" view."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22692
+#, no-wrap
+msgid "{@code{cgit-configuration} parameter} integer summary-log"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22695
+msgid "Specifies the number of log entries to display in the repository \"summary\" view."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22700
+#, no-wrap
+msgid "{@code{cgit-configuration} parameter} integer summary-tags"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22703
+msgid "Specifies the number of tags to display in the repository \"summary\" view."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22708
+#, no-wrap
+msgid "{@code{cgit-configuration} parameter} string strict-export"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22711
+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:22716
+#, no-wrap
+msgid "{@code{cgit-configuration} parameter} string virtual-root"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22718
+msgid "URL which, if specified, will be used as root for all cgit links."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22720
+msgid "Defaults to @samp{\"/\"}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22723
+#, no-wrap
+msgid "{@code{cgit-configuration} parameter} repository-cgit-configuration-list repositories"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22725
+msgid "A list of @dfn{cgit-repo} records to use with config."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22729
+msgid "Available @code{repository-cgit-configuration} fields are:"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22730
+#, no-wrap
+msgid "{@code{repository-cgit-configuration} parameter} repo-list snapshots"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22733
+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:22738
+#, no-wrap
+msgid "{@code{repository-cgit-configuration} parameter} repo-file-object source-filter"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22740
+msgid "Override the default @code{source-filter}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22745
+#, no-wrap
+msgid "{@code{repository-cgit-configuration} parameter} repo-string url"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22747
+msgid "The relative URL used to access the repository."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22752
+#, no-wrap
+msgid "{@code{repository-cgit-configuration} parameter} repo-file-object about-filter"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22754
+msgid "Override the default @code{about-filter}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22759
+#, no-wrap
+msgid "{@code{repository-cgit-configuration} parameter} repo-string branch-sort"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22762
+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:22767
+#, no-wrap
+msgid "{@code{repository-cgit-configuration} parameter} repo-list clone-url"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22769
+msgid "A list of URLs which can be used to clone repo."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22774
+#, no-wrap
+msgid "{@code{repository-cgit-configuration} parameter} repo-file-object commit-filter"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22776
+msgid "Override the default @code{commit-filter}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22781
+#, no-wrap
+msgid "{@code{repository-cgit-configuration} parameter} repo-string commit-sort"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22790
+#, no-wrap
+msgid "{@code{repository-cgit-configuration} parameter} repo-string defbranch"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22795
+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:22800
+#, no-wrap
+msgid "{@code{repository-cgit-configuration} parameter} repo-string desc"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22802
+msgid "The value to show as repository description."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22807
+#, no-wrap
+msgid "{@code{repository-cgit-configuration} parameter} repo-string homepage"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22809
+msgid "The value to show as repository homepage."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22814
+#, no-wrap
+msgid "{@code{repository-cgit-configuration} parameter} repo-file-object email-filter"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22816
+msgid "Override the default @code{email-filter}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22821
+#, no-wrap
+msgid "{@code{repository-cgit-configuration} parameter} maybe-repo-boolean enable-commit-graph?"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22824
+msgid "A flag which can be used to disable the global setting @code{enable-commit-graph?}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22829
+#, no-wrap
+msgid "{@code{repository-cgit-configuration} parameter} maybe-repo-boolean enable-log-filecount?"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22832
+msgid "A flag which can be used to disable the global setting @code{enable-log-filecount?}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22837
+#, no-wrap
+msgid "{@code{repository-cgit-configuration} parameter} maybe-repo-boolean enable-log-linecount?"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22840
+msgid "A flag which can be used to disable the global setting @code{enable-log-linecount?}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22845
+#, no-wrap
+msgid "{@code{repository-cgit-configuration} parameter} maybe-repo-boolean enable-remote-branches?"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22853
+#, no-wrap
+msgid "{@code{repository-cgit-configuration} parameter} maybe-repo-boolean enable-subject-links?"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22856
+msgid "A flag which can be used to override the global setting @code{enable-subject-links?}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22861
+#, no-wrap
+msgid "{@code{repository-cgit-configuration} parameter} maybe-repo-boolean enable-html-serving?"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22864
+msgid "A flag which can be used to override the global setting @code{enable-html-serving?}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22869
+#, no-wrap
+msgid "{@code{repository-cgit-configuration} parameter} repo-boolean hide?"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22872
+msgid "Flag which, when set to @code{#t}, hides the repository from the repository index."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22877
+#, no-wrap
+msgid "{@code{repository-cgit-configuration} parameter} repo-boolean ignore?"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22879
+msgid "Flag which, when set to @samp{#t}, ignores the repository."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22884
+#, no-wrap
+msgid "{@code{repository-cgit-configuration} parameter} repo-file-object logo"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22887
+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:22892
+#, no-wrap
+msgid "{@code{repository-cgit-configuration} parameter} repo-string logo-link"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22899
+#, no-wrap
+msgid "{@code{repository-cgit-configuration} parameter} repo-file-object owner-filter"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22901
+msgid "Override the default @code{owner-filter}."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22906
+#, no-wrap
+msgid "{@code{repository-cgit-configuration} parameter} repo-string module-link"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22910
+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:22915
+#, no-wrap
+msgid "{@code{repository-cgit-configuration} parameter} module-link-path module-link-path"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22919
+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:22924
+#, no-wrap
+msgid "{@code{repository-cgit-configuration} parameter} repo-string max-stats"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22926
+msgid "Override the default maximum statistics period."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22931
+#, no-wrap
+msgid "{@code{repository-cgit-configuration} parameter} repo-string name"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22933
+msgid "The value to show as repository name."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22938
+#, no-wrap
+msgid "{@code{repository-cgit-configuration} parameter} repo-string owner"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22940
+msgid "A value used to identify the owner of the repository."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22945
+#, no-wrap
+msgid "{@code{repository-cgit-configuration} parameter} repo-string path"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22947
+msgid "An absolute path to the repository directory."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22952
+#, no-wrap
+msgid "{@code{repository-cgit-configuration} parameter} repo-string readme"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22955
+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:22960
+#, no-wrap
+msgid "{@code{repository-cgit-configuration} parameter} repo-string section"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22968
+#, no-wrap
+msgid "{@code{repository-cgit-configuration} parameter} repo-list extra-options"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22970 doc/guix.texi:22979
+msgid "Extra options will be appended to cgitrc file."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22977
+#, no-wrap
+msgid "{@code{cgit-configuration} parameter} list extra-options"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:22991
+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:22993
+msgid "Available @code{opaque-cgit-configuration} fields are:"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22994
+#, no-wrap
+msgid "{@code{opaque-cgit-configuration} parameter} package cgit"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22996
+msgid "The cgit package."
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:22998
+#, no-wrap
+msgid "{@code{opaque-cgit-configuration} parameter} string string"
+msgstr ""
+
+#. type: deftypevr
+#: doc/guix.texi:23000
+msgid "The contents of the @code{cgitrc}, as a string."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:23004
+msgid "For example, if your @code{cgitrc} is just the empty string, you could instantiate a cgit service like this:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:23009
+#, no-wrap
+msgid ""
+"(service cgit-service-type\n"
+"         (opaque-cgit-configuration\n"
+"          (cgitrc \"\")))\n"
+msgstr ""
+
+#. type: subsubheading
+#: doc/guix.texi:23011
+#, no-wrap
+msgid "Gitolite Service"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:23013
+#, no-wrap
+msgid "Gitolite service"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:23014
+#, no-wrap
+msgid "Git, hosting"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:23017
+msgid "@uref{http://gitolite.com/gitolite/, Gitolite} is a tool for hosting Git repositories on a central server."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:23020
+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:23023
+msgid "The following example will configure Gitolite using the default @code{git} user, and the provided SSH public key."
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:23030
+#, no-wrap
+msgid ""
+"(service gitolite-service-type\n"
+"         (gitolite-configuration\n"
+"           (admin-pubkey (plain-file\n"
+"                           \"yourname.pub\"\n"
+"                           \"ssh-rsa AAAA... guix@@example.com\"))))\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:23035
+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:23038
+#, no-wrap
+msgid "git clone git@@example.com:gitolite-admin\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:23044
+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:23045
+#, no-wrap
+msgid "{Data Type} gitolite-configuration"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:23047
+msgid "Data type representing the configuration for @code{gitolite-service-type}."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:23049
+#, no-wrap
+msgid "@code{package} (default: @var{gitolite})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:23051
+msgid "Gitolite package to use."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:23052
+#, no-wrap
+msgid "@code{user} (default: @var{git})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:23055
+msgid "User to use for Gitolite.  This will be user that you use when accessing Gitolite over SSH."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:23056
+#, no-wrap
+msgid "@code{group} (default: @var{git})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:23058
+msgid "Group to use for Gitolite."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:23059
+#, no-wrap
+msgid "@code{home-directory} (default: @var{\"/var/lib/gitolite\"})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:23061
+msgid "Directory in which to store the Gitolite configuration and repositories."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:23062
+#, no-wrap
+msgid "@code{rc-file} (default: @var{(gitolite-rc-file)})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:23065
+msgid "A ``file-like'' object (@pxref{G-Expressions, file-like objects}), representing the configuration for Gitolite."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:23066
+#, no-wrap
+msgid "@code{admin-pubkey} (default: @var{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:23070
+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:23072
+msgid "To specify the SSH key as a string, use the @code{plain-file} function."
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:23075
+#, no-wrap
+msgid "(plain-file \"yourname.pub\" \"ssh-rsa AAAA... guix@@example.com\")\n"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:23080
+#, no-wrap
+msgid "{Data Type} gitolite-rc-file"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:23082
+msgid "Data type representing the Gitolite RC file."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:23084
+#, no-wrap
+msgid "@code{umask} (default: @code{#o0077})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:23087
+msgid "This controls the permissions Gitolite sets on the repositories and their contents."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:23091
+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:23092
+#, no-wrap
+msgid "@code{git-config-keys} (default: @code{\"\"})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:23095
+msgid "Gitolite allows you to set git config values using the \"config\" keyword. This setting allows control over the config keys to accept."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:23096
+#, no-wrap
+msgid "@code{roles} (default: @code{'((\"READERS\" . 1) (\"WRITERS\" . ))})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:23098
+msgid "Set the role names allowed to be used by users running the perms command."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:23099
+#, no-wrap
+msgid "@code{enable} (default: @code{'(\"help\" \"desc\" \"info\" \"perms\" \"writable\" \"ssh-authkeys\" \"git-config\" \"daemon\" \"gitweb\")})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:23101
+msgid "This setting controls the commands and features to enable within Gitolite."
+msgstr ""
+
+#. type: subsubheading
+#: doc/guix.texi:23109
+#, no-wrap
+msgid "The Battle for Wesnoth Service"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:23110
+#, no-wrap
+msgid "wesnothd"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:23114
+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:23115
+#, no-wrap
+msgid "{Scheme Variable} wesnothd-service-type"
+msgstr ""
+
+#. type: defvar
+#: doc/guix.texi:23119
+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: example
+#: doc/guix.texi:23122
+#, no-wrap
+msgid "(service wesnothd-service-type)\n"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:23125
+#, no-wrap
+msgid "{Data Type} wesnothd-configuration"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:23127
+msgid "Data type representing the configuration of @command{wesnothd}."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:23129
+#, no-wrap
+msgid "@code{package} (default: @code{wesnoth-server})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:23131
+msgid "The wesnoth server package to use."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:23132
+#, no-wrap
+msgid "@code{port} (default: @code{15000})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:23134
+msgid "The port to bind the server to."
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:23140
+#, no-wrap
+msgid "fingerprint"
+msgstr ""
+
+#. type: subsubheading
+#: doc/guix.texi:23141
+#, no-wrap
+msgid "Fingerprint Service"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:23145
+msgid "The @code{(gnu services fingerprint)} module provides a DBus service to read and identify fingerprints via a fingerprint sensor."
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:23146
+#, no-wrap
+msgid "{Scheme Variable} fprintd-service-type"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:23149
+msgid "The service type for @command{fprintd}, which provides the fingerprint reading capability."
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:23152
+#, no-wrap
+msgid "(service fprintd-service-type)\n"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:23155
+#, no-wrap
+msgid "sysctl"
+msgstr ""
+
+#. type: subsubheading
+#: doc/guix.texi:23156
+#, no-wrap
+msgid "System Control Service"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:23160
+msgid "The @code{(gnu services sysctl)} provides a service to configure kernel parameters at boot."
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:23161
+#, no-wrap
+msgid "{Scheme Variable} sysctl-service-type"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:23165
+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: example
+#: doc/guix.texi:23170
+#, no-wrap
+msgid ""
+"(service sysctl-service-type\n"
+"         (sysctl-configuration\n"
+"           (settings '((\"net.ipv4.ip_forward\" . \"1\")))))\n"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:23173
+#, no-wrap
+msgid "{Data Type} sysctl-configuration"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:23175
+msgid "The data type representing the configuration of @command{sysctl}."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:23177
+#, no-wrap
+msgid "@code{sysctl} (default: @code{(file-append procps \"/sbin/sysctl\"})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:23179
+msgid "The @command{sysctl} executable to use."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:23180
+#, no-wrap
+msgid "@code{settings} (default: @code{'()})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:23182
+msgid "An association list specifies kernel parameters and their values."
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:23185
+#, no-wrap
+msgid "pcscd"
+msgstr ""
+
+#. type: subsubheading
+#: doc/guix.texi:23186
+#, no-wrap
+msgid "PC/SC Smart Card Daemon Service"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:23193
+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:23194
+#, no-wrap
+msgid "{Scheme Variable} pcscd-service-type"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:23198
+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: example
+#: doc/guix.texi:23201
+#, no-wrap
+msgid "(service pcscd-service-type)\n"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:23204
+#, no-wrap
+msgid "{Data Type} pcscd-configuration"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:23206
+msgid "The data type representing the configuration of @command{pcscd}."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:23208
+#, no-wrap
+msgid "@code{pcsc-lite} (default: @code{pcsc-lite})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:23210
+msgid "The pcsc-lite package that provides pcscd."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:23210
+#, no-wrap
+msgid "@code{usb-drivers} (default: @code{(list ccid)})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:23213
+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:23216
+#, no-wrap
+msgid "lirc"
+msgstr ""
+
+#. type: subsubheading
+#: doc/guix.texi:23217
+#, no-wrap
+msgid "Lirc Service"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:23220
+msgid "The @code{(gnu services lirc)} module provides the following service."
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:23221
+#, no-wrap
+msgid "{Scheme Procedure} lirc-service [#:lirc lirc] @"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:23226
+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:23230
+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:23233
+msgid "Finally, @var{extra-options} is a list of additional command-line options passed to @command{lircd}."
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:23235
+#, no-wrap
+msgid "spice"
+msgstr ""
+
+#. type: subsubheading
+#: doc/guix.texi:23236
+#, no-wrap
+msgid "Spice Service"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:23239
+msgid "The @code{(gnu services spice)} module provides the following service."
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:23240
+#, no-wrap
+msgid "{Scheme Procedure} spice-vdagent-service [#:spice-vdagent]"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:23244
+msgid "Returns a service that runs @url{http://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:23246
+#, no-wrap
+msgid "inputattach"
+msgstr ""
+
+#. type: subsubheading
+#: doc/guix.texi:23247
+#, no-wrap
+msgid "inputattach Service"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:23249
+#, no-wrap
+msgid "tablet input, for Xorg"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:23250
+#, no-wrap
+msgid "touchscreen input, for Xorg"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:23254
+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:23255
+#, no-wrap
+msgid "{Scheme Variable} inputattach-service-type"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:23258
+msgid "Type of a service that runs @command{inputattach} on a device and dispatches events from it."
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:23260
+#, no-wrap
+msgid "{Data Type} inputattach-configuration"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:23262
+#, no-wrap
+msgid "@code{device-type} (default: @code{\"wacom\"})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:23265
+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:23266
+#, no-wrap
+msgid "@code{device} (default: @code{\"/dev/ttyS0\"})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:23268
+msgid "The device file to connect to the device."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:23269
+#, no-wrap
+msgid "@code{log-file} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:23271
+msgid "If true, this must be the name of a file to log messages to."
+msgstr ""
+
+#. type: subsection
+#: doc/guix.texi:23274
+#, no-wrap
+msgid "Dictionary Services"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:23275
+#, no-wrap
+msgid "dictionary"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:23277
+msgid "The @code{(gnu services dict)} module provides the following service:"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:23278
+#, no-wrap
+msgid "{Scheme Procedure} dicod-service [#:config (dicod-configuration)]"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:23281
+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:23285
+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."
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:23289
+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:23291
+#, no-wrap
+msgid "{Data Type} dicod-configuration"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:23293
+msgid "Data type representing the configuration of dicod."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:23295
+#, no-wrap
+msgid "@code{dico} (default: @var{dico})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:23297
+msgid "Package object of the GNU Dico dictionary server."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:23298
+#, no-wrap
+msgid "@code{interfaces} (default: @var{'(\"localhost\")})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:23302
+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:23303
+#, no-wrap
+msgid "@code{handlers} (default: @var{'()})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:23305
+msgid "List of @code{<dicod-handler>} objects denoting handlers (module instances)."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:23306
+#, no-wrap
+msgid "@code{databases} (default: @var{(list %dicod-database:gcide)})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:23308
+msgid "List of @code{<dicod-database>} objects denoting dictionaries to be served."
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:23311
+#, no-wrap
+msgid "{Data Type} dicod-handler"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:23313
+msgid "Data type representing a dictionary handler (module instance)."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:23317
+msgid "Name of the handler (module instance)."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:23318
+#, no-wrap
+msgid "@code{module} (default: @var{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:23322
+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: code{#1}
+#: doc/guix.texi:23323 doc/guix.texi:23343
+#, no-wrap
+msgid "options"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:23325
+msgid "List of strings or gexps representing the arguments for the module handler"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:23328
+#, no-wrap
+msgid "{Data Type} dicod-database"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:23330
+msgid "Data type representing a dictionary database."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:23334
+msgid "Name of the database, will be used in DICT commands."
+msgstr ""
+
+#. type: code{#1}
+#: doc/guix.texi:23335
+#, no-wrap
+msgid "handler"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:23338
+msgid "Name of the dicod handler (module instance) used by this database (@pxref{Handlers,,, dico, GNU Dico Manual})."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:23339
+#, no-wrap
+msgid "@code{complex?} (default: @var{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:23342
+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:23346
+msgid "List of strings or gexps representing the arguments for the database (@pxref{Databases,,, dico, GNU Dico Manual})."
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:23349
+#, no-wrap
+msgid "{Scheme Variable} %dicod-database:gcide"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:23352
+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:23355
+msgid "The following is an example @code{dicod-service} configuration."
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:23370
+#, no-wrap
+msgid ""
+"(dicod-service #:config\n"
+"  (dicod-configuration\n"
+"   (handlers (list (dicod-handler\n"
+"                    (name \"wordnet\")\n"
+"                    (module \"dictorg\")\n"
+"                    (options\n"
+"                     (list #~(string-append \"dbdir=\" #$wordnet))))))\n"
+"   (databases (list (dicod-database\n"
+"                     (name \"wordnet\")\n"
+"                     (complex? #t)\n"
+"                     (handler \"wordnet\")\n"
+"                     (options '(\"database=wn\")))\n"
+"                    %dicod-database:gcide))))\n"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:23372
+#, no-wrap
+msgid "Docker"
+msgstr ""
+
+#. type: subsubheading
+#: doc/guix.texi:23373
+#, no-wrap
+msgid "Docker Service"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:23376
+msgid "The @code{(gnu services docker)} module provides the following service."
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:23377
+#, no-wrap
+msgid "{Scheme Variable} docker-service-type"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:23382
+msgid "This is the type of the service that runs @url{http://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:23385
+#, no-wrap
+msgid "{Data Type} docker-configuration"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:23387
+msgid "This is the data type representing the configuration of Docker and Containerd."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:23390
+#, no-wrap
+msgid "@code{package} (default: @code{docker})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:23392
+msgid "The Docker package to use."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:23393
+#, no-wrap
+msgid "@code{containerd} (default: @var{containerd})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:23395
+msgid "The Containerd package to use."
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:23402
+#, no-wrap
+msgid "setuid programs"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:23412
+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:23419
+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:23425
+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:23428
+#, no-wrap
+msgid "#~(string-append #$shadow \"/bin/passwd\")\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:23432
+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:23433
+#, no-wrap
+msgid "{Scheme Variable} %setuid-programs"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:23435
+msgid "A list of G-expressions denoting common programs that are setuid-root."
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:23438
+msgid "The list includes commands such as @command{passwd}, @command{ping}, @command{su}, and @command{sudo}."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:23444
+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:23448
+#, no-wrap
+msgid "HTTPS, certificates"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:23449
+#, no-wrap
+msgid "X.509 certificates"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:23450
+#, no-wrap
+msgid "TLS"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:23457
+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:23461
+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:23465
+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:23472
+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:23477
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:23487
+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 ""
+
+#. type: example
+#: doc/guix.texi:23493
+#, no-wrap
+msgid ""
+"$ guix package -i 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:23498
+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 ""
+
+#. type: example
+#: doc/guix.texi:23502
+#, no-wrap
+msgid ""
+"$ guix package -i nss-certs\n"
+"$ export CURL_CA_BUNDLE=\"$HOME/.guix-profile/etc/ssl/certs/ca-certificates.crt\"\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:23506
+msgid "For other applications you may want to look up the required environment variable in the relevant documentation."
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:23511
+#, no-wrap
+msgid "name service switch"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:23512
+#, no-wrap
+msgid "NSS"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:23521
+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:23528
+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:23529
+#, no-wrap
+msgid "nss-mdns"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:23530
+#, no-wrap
+msgid ".local, host name lookup"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:23535
+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 ""
+
+#. type: example
+#: doc/guix.texi:23539
+#, no-wrap
+msgid ""
+"(name-service-switch\n"
+"   (hosts (list %files    ;first, check /etc/hosts\n"
+"\n"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:23544
+#, no-wrap
+msgid ""
+"                ;; If the above did not succeed, try\n"
+"                ;; with 'mdns_minimal'.\n"
+"                (name-service\n"
+"                  (name \"mdns_minimal\")\n"
+"\n"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:23550
+#, no-wrap
+msgid ""
+"                  ;; 'mdns_minimal' is authoritative for\n"
+"                  ;; '.local'.  When it returns \"not found\",\n"
+"                  ;; no need to try the next methods.\n"
+"                  (reaction (lookup-specification\n"
+"                             (not-found => return))))\n"
+"\n"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:23554
+#, no-wrap
+msgid ""
+"                ;; Then fall back to DNS.\n"
+"                (name-service\n"
+"                  (name \"dns\"))\n"
+"\n"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:23558
+#, no-wrap
+msgid ""
+"                ;; Finally, try with the \"full\" 'mdns'.\n"
+"                (name-service\n"
+"                  (name \"mdns\")))))\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:23563
+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:23571
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:23574
+msgid "For convenience, the following variables provide typical NSS configurations."
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:23575
+#, no-wrap
+msgid "{Scheme Variable} %default-nss"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:23578
+msgid "This is the default name service switch configuration, a @code{name-service-switch} object."
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:23580
+#, no-wrap
+msgid "{Scheme Variable} %mdns-host-lookup-nss"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:23583
+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:23593
+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:23594
+#, no-wrap
+msgid "{Data Type} name-service-switch"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:23599
+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:23601
+#, no-wrap
+msgid "aliases"
+msgstr ""
+
+#. type: itemx
+#: doc/guix.texi:23602
+#, no-wrap
+msgid "ethers"
+msgstr ""
+
+#. type: itemx
+#: doc/guix.texi:23604
+#, no-wrap
+msgid "gshadow"
+msgstr ""
+
+#. type: itemx
+#: doc/guix.texi:23605
+#, no-wrap
+msgid "hosts"
+msgstr ""
+
+#. type: itemx
+#: doc/guix.texi:23606
+#, no-wrap
+msgid "initgroups"
+msgstr ""
+
+#. type: itemx
+#: doc/guix.texi:23607
+#, no-wrap
+msgid "netgroup"
+msgstr ""
+
+#. type: itemx
+#: doc/guix.texi:23608
+#, no-wrap
+msgid "networks"
+msgstr ""
+
+#. type: itemx
+#: doc/guix.texi:23610
+#, no-wrap
+msgid "public-key"
+msgstr ""
+
+#. type: itemx
+#: doc/guix.texi:23611
+#, no-wrap
+msgid "rpc"
+msgstr ""
+
+#. type: itemx
+#: doc/guix.texi:23613
+#, no-wrap
+msgid "shadow"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:23616
+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:23619
+#, no-wrap
+msgid "{Data Type} name-service"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:23623
+msgid "This is the data type representing an actual name service and the associated lookup action."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:23628
+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:23633
+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:23634
+#, no-wrap
+msgid "reaction"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:23638
+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: example
+#: doc/guix.texi:23642
+#, no-wrap
+msgid ""
+"(lookup-specification (unavailable => continue)\n"
+"                      (success => return))\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:23656
+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:23665
+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: example
+#: doc/guix.texi:23670
+#, no-wrap
+msgid ""
+"(operating-system\n"
+"  ;; @dots{}\n"
+"  (initrd-modules (cons \"megaraid_sas\" %base-initrd-modules)))\n"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:23672
+#, no-wrap
+msgid "{Scheme Variable} %base-initrd-modules"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:23674
+msgid "This is the list of kernel modules included in the initrd by default."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:23682
+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:23687
+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: example
+#: doc/guix.texi:23695
+#, no-wrap
+msgid ""
+"(initrd (lambda (file-systems . rest)\n"
+"          ;; Create a standard initrd but set up networking\n"
+"          ;; with the parameters QEMU expects by default.\n"
+"          (apply base-initrd file-systems\n"
+"                 #:qemu-networking? #t\n"
+"                 rest)))\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:23700
+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:23707
+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:23712
+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:23714
+#, no-wrap
+msgid "--load=@var{boot}"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:23717
+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:23721
+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:23722
+#, no-wrap
+msgid "--root=@var{root}"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:23726
+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 ""
+
+#. type: table
+#: doc/guix.texi:23730
+msgid "Have @file{/run/booted-system} and @file{/run/current-system} point to @var{system}."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:23731
+#, no-wrap
+msgid "modprobe.blacklist=@var{modules}@dots{}"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:23732
+#, no-wrap
+msgid "module, black-listing"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:23733
+#, no-wrap
+msgid "black list, of kernel modules"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:23738
+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:23739
+#, no-wrap
+msgid "--repl"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:23745
+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:23751
+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:23754
+#, no-wrap
+msgid "{Scheme Procedure} raw-initrd @var{file-systems} @"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:23767
+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 ""
+
+#. type: deffn
+#: doc/guix.texi:23773 doc/guix.texi:23797
+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:23777
+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:23780
+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:23782
+#, no-wrap
+msgid "{Scheme Procedure} base-initrd @var{file-systems} @"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:23791
+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 ""
+
+#. type: deffn
+#: doc/guix.texi:23799
+msgid "@var{qemu-networking?} and @var{volatile-root?} behaves as in @code{raw-initrd}."
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:23804
+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:23811
+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:23812
+#, no-wrap
+msgid "{Scheme Procedure} expression->initrd @var{exp} @"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:23818
+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 ""
+
+#. type: cindex
+#: doc/guix.texi:23824
+#, no-wrap
+msgid "boot loader"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:23831
+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:23836
+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:23837
+#, no-wrap
+msgid "{Data Type} bootloader-configuration"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:23839
+msgid "The type of a bootloader configuration declaration."
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:23843
+#, no-wrap
+msgid "EFI, bootloader"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:23844
+#, no-wrap
+msgid "UEFI, bootloader"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:23845
+#, no-wrap
+msgid "BIOS, bootloader"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:23849
+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 ""
+
+#. type: table
+#: doc/guix.texi:23855
+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:23859
+msgid "@code{grub-bootloader} allows you to boot in particular Intel-based machines in ``legacy'' BIOS mode."
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:23860
+#, no-wrap
+msgid "ARM, bootloaders"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:23861
+#, no-wrap
+msgid "AArch64, bootloaders"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:23866
+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{http://www.denx.de/wiki/U-Boot/, U-Boot bootloader}."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:23870
+msgid "This is a string denoting the target onto which to install the bootloader."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:23877
+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 ""
+
+#. type: item
+#: doc/guix.texi:23878
+#, no-wrap
+msgid "@code{menu-entries} (default: @code{()})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:23882
+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:23883
+#, no-wrap
+msgid "@code{default-entry} (default: @code{0})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:23886
+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:23887
+#, no-wrap
+msgid "@code{timeout} (default: @code{5})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:23890
+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:23891
+#, no-wrap
+msgid "keyboard layout, for the bootloader"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:23895
+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:23898
+msgid "Otherwise, this must be a @code{keyboard-layout} object (@pxref{Keyboard Layout})."
+msgstr ""
+
+#. type: quotation
+#: doc/guix.texi:23902
+msgid "This option is currently ignored by bootloaders other than @code{grub} and @code{grub-efi}."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:23904
+#, no-wrap
+msgid "@code{theme} (default: @var{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:23908
+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:23909
+#, no-wrap
+msgid "@code{terminal-outputs} (default: @code{'gfxterm})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:23916
+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:23917
+#, no-wrap
+msgid "@code{terminal-inputs} (default: @code{'()})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:23925
+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:23926
+#, no-wrap
+msgid "@code{serial-unit} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:23930
+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:23931
+#, no-wrap
+msgid "@code{serial-speed} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:23935
+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:23939
+#, no-wrap
+msgid "dual boot"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:23940
+#, no-wrap
+msgid "boot menu"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:23946
+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: example
+#: doc/guix.texi:23953
+#, no-wrap
+msgid ""
+"(menu-entry\n"
+"  (label \"The Other Distro\")\n"
+"  (linux \"/boot/old/vmlinux-2.6.32\")\n"
+"  (linux-arguments '(\"root=/dev/sda2\"))\n"
+"  (initrd \"/boot/old/initrd\"))\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:23956
+msgid "Details below."
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:23957
+#, no-wrap
+msgid "{Data Type} menu-entry"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:23959
+msgid "The type of an entry in the bootloader menu."
+msgstr ""
+
+#. type: code{#1}
+#: doc/guix.texi:23962
+#, no-wrap
+msgid "label"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:23964
+msgid "The label to show in the menu---e.g., @code{\"GNU\"}."
+msgstr ""
+
+#. type: code{#1}
+#: doc/guix.texi:23965
+#, no-wrap
+msgid "linux"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:23967
+msgid "The Linux kernel image to boot, for example:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:23970
+#, no-wrap
+msgid "(file-append linux-libre \"/bzImage\")\n"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:23975
+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:23978
+#, no-wrap
+msgid "\"(hd0,msdos1)/boot/vmlinuz\"\n"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:23982
+msgid "If the device is specified explicitly as above, then the @code{device} field is ignored entirely."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:23983
+#, no-wrap
+msgid "@code{linux-arguments} (default: @code{()})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:23986
+msgid "The list of extra Linux kernel command-line arguments---e.g., @code{(\"console=ttyS0\")}."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:23990
+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:23990
+#, no-wrap
+msgid "@code{device} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:23993
+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:23999
+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: Plain text
+#: doc/guix.texi:24006
+msgid "Fow now only GRUB has theme support. GRUB themes are created using the @code{grub-theme} form, which is not documented yet."
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:24011
+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 ""
+
+#. type: defvr
+#: doc/guix.texi:24014
+msgid "It comes with a fancy background image displaying the GNU and Guix logos."
+msgstr ""
+
+#. type: section
+#: doc/guix.texi:24018
+#, no-wrap
+msgid "Invoking @code{guix system}"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:24023
+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:24026
+#, no-wrap
+msgid "guix system @var{options}@dots{} @var{action} @var{file}\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:24032
+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:24034
+#, no-wrap
+msgid "search"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:24037
+msgid "Display available service type definitions that match the given regular expressions, sorted by relevance:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:24049
+#, no-wrap
+msgid ""
+"$ guix system search console font\n"
+"name: console-fonts\n"
+"location: gnu/services/base.scm:729: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"
+"\n"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:24055
+#, no-wrap
+msgid ""
+"name: mingetty\n"
+"location: gnu/services/base.scm:1048:2\n"
+"extends: shepherd-root\n"
+"description: Provide console login using the `mingetty' program.\n"
+"relevance: 2\n"
+"\n"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:24062
+#, no-wrap
+msgid ""
+"name: login\n"
+"location: gnu/services/base.scm:775:2\n"
+"extends: pam\n"
+"description: Provide a console log-in service as specified by its\n"
+"+ configuration value, a `login-configuration' object.\n"
+"relevance: 2\n"
+"\n"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:24064
+#, no-wrap
+msgid "@dots{}\n"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:24069
+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:24070
+#, no-wrap
+msgid "reconfigure"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:24075
+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: table
+#: doc/guix.texi:24082
+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:24088
+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:24093
+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: quotation
+#: doc/guix.texi:24101
+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: item
+#: doc/guix.texi:24103
+#, no-wrap
+msgid "switch-generation"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:24112
+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 ""
+
+#. type: table
+#: doc/guix.texi:24116
+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:24120
+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:24123
+#, no-wrap
+msgid "guix system switch-generation 7\n"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:24131
+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:24134
+#, no-wrap
+msgid "guix system switch-generation -- -1\n"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:24142
+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:24144
+msgid "This action will fail if the specified generation does not exist."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:24145
+#, no-wrap
+msgid "roll-back"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:24151
+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:24155
+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:24156
+#, no-wrap
+msgid "delete-generations"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:24157
+#, no-wrap
+msgid "deleting system generations"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:24158
+#, no-wrap
+msgid "saving space"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:24162
+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:24166
+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 ""
+
+#. type: example
+#: doc/guix.texi:24169
+#, no-wrap
+msgid "guix system delete-generations\n"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:24173
+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:24176
+#, no-wrap
+msgid "guix system delete-generations 2m\n"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:24181
+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:24186
+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:24187
+#, no-wrap
+msgid "init"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:24191
+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:24194
+#, no-wrap
+msgid "guix system init my-os-config.scm /mnt\n"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:24201
+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:24205
+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:24206
+#, no-wrap
+msgid "vm"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:24207 doc/guix.texi:24475
+#, no-wrap
+msgid "virtual machine"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:24208
+#, no-wrap
+msgid "VM"
+msgstr ""
+
+#. type: anchor{#1}
+#: doc/guix.texi:24212
+msgid "guix system vm"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:24212
+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:24220
+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:24225
+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:24228
+#, no-wrap
+msgid "$ /gnu/store/@dots{}-run-vm.sh -m 1024 -net user\n"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:24231
+msgid "The VM shares its store with the host system."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:24236
+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 ""
+
+#. type: table
+#: doc/guix.texi:24240
+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:24244
+#, no-wrap
+msgid ""
+"guix system vm my-config.scm \\\n"
+"   --expose=$HOME --share=$HOME/tmp=/exchange\n"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:24249
+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:24255
+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 ""
+
+#. type: cindex
+#: doc/guix.texi:24256
+#, no-wrap
+msgid "System images, creation in various formats"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:24257
+#, no-wrap
+msgid "Creating system images in various formats"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:24258
+#, no-wrap
+msgid "vm-image"
+msgstr ""
+
+#. type: itemx
+#: doc/guix.texi:24259
+#, no-wrap
+msgid "disk-image"
+msgstr ""
+
+#. type: itemx
+#: doc/guix.texi:24260
+#, no-wrap
+msgid "docker-image"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:24268
+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:24271
+msgid "You can specify the root file system type by using the @option{--file-system-type} option.  It defaults to @code{ext4}."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:24275
+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:24280
+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 ""
+
+#. type: example
+#: doc/guix.texi:24283
+#, no-wrap
+msgid "# dd if=$(guix system disk-image my-os.scm) of=/dev/sdc\n"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:24290
+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:24296
+#, 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"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:24306
+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}."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:24314
+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:24318
+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:24322
+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:24326
+#, no-wrap
+msgid ""
+"guix system container my-config.scm \\\n"
+"   --expose=$HOME --share=$HOME/tmp=/exchange\n"
+msgstr ""
+
+#. type: quotation
+#: doc/guix.texi:24330
+msgid "This option requires Linux-libre 3.19 or newer."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:24337
+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:24346
+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:24351
+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: item
+#: doc/guix.texi:24352
+#, no-wrap
+msgid "--derivation"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:24356
+msgid "Return the derivation file name of the given operating system without building anything."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:24357
+#, no-wrap
+msgid "--file-system-type=@var{type}"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:24361
+msgid "For the @code{disk-image} action, create a file system of the given @var{type} on the image."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:24363
+msgid "When this option is omitted, @command{guix system} uses @code{ext4}."
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:24364
+#, no-wrap
+msgid "ISO-9660 format"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:24365
+#, no-wrap
+msgid "CD image format"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:24366
+#, no-wrap
+msgid "DVD image format"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:24369
+msgid "@code{--file-system-type=iso9660} produces an ISO-9660 image, suitable for burning on CDs and DVDs."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:24370
+#, no-wrap
+msgid "--image-size=@var{size}"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:24375
+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:24379
+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: item
+#: doc/guix.texi:24385
+#, no-wrap
+msgid "--skip-checks"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:24387
+msgid "Skip pre-installation safety checks."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:24394
+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: cindex
+#: doc/guix.texi:24395
+#, no-wrap
+msgid "on-error"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:24396
+#, no-wrap
+msgid "on-error strategy"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:24397
+#, no-wrap
+msgid "error strategy"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:24398
+#, no-wrap
+msgid "--on-error=@var{strategy}"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:24401
+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:24403
+#, no-wrap
+msgid "nothing-special"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:24405
+msgid "Report the error concisely and exit.  This is the default strategy."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:24406
+#, no-wrap
+msgid "backtrace"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:24408
+msgid "Likewise, but also display a backtrace."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:24409
+#, no-wrap
+msgid "debug"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:24415
+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:24422
+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:24425
+#, no-wrap
+msgid "list-generations"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:24430
+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:24435
+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:24438
+#, no-wrap
+msgid "$ guix system list-generations 10d\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:24445
+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:24447
+msgid "system-extension-graph"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:24449
+#, no-wrap
+msgid "extension-graph"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:24454
+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:24456
+msgid "The command:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:24459
+#, no-wrap
+msgid "$ guix system extension-graph @var{file} | dot -Tpdf > services.pdf\n"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:24462
+msgid "produces a PDF file showing the extension relations among services."
+msgstr ""
+
+#. type: anchor{#1}
+#: doc/guix.texi:24464
+msgid "system-shepherd-graph"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:24464
+#, no-wrap
+msgid "shepherd-graph"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:24469
+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:24473
+#, no-wrap
+msgid "Running Guix in a Virtual Machine"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:24483
+msgid "To run Guix in a virtual machine (VM), one can either use the pre-built Guix VM image distributed at @indicateurl{https://alpha.gnu.org/gnu/guix/guix-system-vm-image-@value{VERSION}.@var{system}.xz} , or 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{http://qemu.org/, QEMU emulator} can efficiently use."
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:24484
+#, no-wrap
+msgid "QEMU"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:24491
+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:24496
+#, no-wrap
+msgid ""
+"$ qemu-system-x86_64 \\\n"
+"   -net user -net nic,model=virtio \\\n"
+"   -enable-kvm -m 256 /tmp/qemu-image\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:24499
+msgid "Here is what each of these options means:"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:24501
+#, no-wrap
+msgid "qemu-system-x86_64"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:24504
+msgid "This specifies the hardware platform to emulate.  This should match the host."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:24505
+#, no-wrap
+msgid "-net user"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:24509
+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 ""
+
+#. type: item
+#: doc/guix.texi:24510
+#, no-wrap
+msgid "-net nic,model=virtio"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:24515
+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 ""
+
+#. type: item
+#: doc/guix.texi:24516
+#, no-wrap
+msgid "-enable-kvm"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:24520
+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:24521
+#, no-wrap
+msgid "-m 256"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:24524
+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:24525
+#, no-wrap
+msgid "/tmp/qemu-image"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:24527
+msgid "The file name of the qcow2 image."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:24537
+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 ""
+
+#. type: subsection
+#: doc/guix.texi:24538
+#, no-wrap
+msgid "Connecting Through SSH"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:24547
+msgid "To enable SSH inside a VM you need to add a SSH server like @code{(dropbear-service)} or @code{(lsh-service)} to your VM.  The @code{(lsh-service}) doesn't currently boot unsupervised.  It requires you to type some characters to initialize the randomness generator.  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:24550
+#, no-wrap
+msgid "`guix system vm config.scm` -net user,hostfwd=tcp::10022-:22\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:24553
+msgid "To connect to the VM you can run"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:24556
+#, no-wrap
+msgid "ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -p 10022\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:24563
+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:24564
+#, no-wrap
+msgid "Using @command{virt-viewer} with Spice"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:24570
+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:24573
+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:24579
+#, no-wrap
+msgid ""
+"-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"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:24582
+msgid "You'll also need to add the @pxref{Miscellaneous Services, Spice service}."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:24589
+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:24601
+#, no-wrap
+msgid "daemons"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:24614
+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:24615
+#, no-wrap
+msgid "service extensions"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:24627
+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:24631
+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:24633
+msgid "@image{images/service-graph,,5in,Typical service extension graph.}"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:24634
+#, no-wrap
+msgid "system service"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:24642
+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:24643
+#, no-wrap
+msgid "service types"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:24649
+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:24652
+msgid "The following section describes the programming interface for service types and services."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:24659
+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: example
+#: doc/guix.texi:24669
+#, no-wrap
+msgid ""
+"(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"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:24673
+msgid "It defines three things:"
+msgstr ""
+
+#. type: enumerate
+#: doc/guix.texi:24677
+msgid "A name, whose sole purpose is to make inspection and debugging easier."
+msgstr ""
+
+#. type: enumerate
+#: doc/guix.texi:24682
+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:24685
+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:24688
+msgid "Optionally, a default value for instances of this type."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:24691
+msgid "In this example, @var{guix-service-type} extends three services:"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:24693
+#, no-wrap
+msgid "shepherd-root-service-type"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:24698
+msgid "The @var{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:24699
+#, no-wrap
+msgid "account-service-type"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:24704
+msgid "This extension for this service is computed by @var{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:24705
+#, no-wrap
+msgid "activation-service-type"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:24709
+msgid "Here @var{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:24712
+msgid "A service of this type is instantiated like this:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:24718
+#, no-wrap
+msgid ""
+"(service guix-service-type\n"
+"         (guix-configuration\n"
+"           (build-accounts 5)\n"
+"           (use-substitutes? #f)))\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:24726
+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: example
+#: doc/guix.texi:24729
+#, no-wrap
+msgid "(service guix-service-type)\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:24733
+msgid "@var{guix-service-type} is quite simple because it extends other services but is not extensible itself."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:24737
+msgid "The service type for an @emph{extensible} service looks like this:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:24744
+#, no-wrap
+msgid ""
+"(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"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:24752
+#, no-wrap
+msgid ""
+"                (compose concatenate)       ;concatenate the list of rules\n"
+"                (extend (lambda (config rules)\n"
+"                          (match config\n"
+"                            (($ <udev-configuration> udev initial-rules)\n"
+"                             (udev-configuration\n"
+"                              (udev udev)   ;the udev package to use\n"
+"                              (rules (append initial-rules rules)))))))))\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:24758
+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 @var{shepherd-root-service-type}, we see two new fields:"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:24760
+#, no-wrap
+msgid "compose"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:24763
+msgid "This is the procedure to @dfn{compose} the list of extensions to services of this type."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:24766
+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:24767
+#, no-wrap
+msgid "extend"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:24770
+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:24775
+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:24781
+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:24786
+msgid "There can be only one instance of an extensible service type such as @var{udev-service-type}.  If there were more, the @code{service-extension} specifications would be ambiguous."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:24789
+msgid "Still here? The next section provides a reference of the programming interface for services."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:24797
+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:24798
+#, no-wrap
+msgid "{Scheme Procedure} service @var{type} [@var{value}]"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:24802
+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:24806
+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:24808
+msgid "For instance, this:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:24811
+#, no-wrap
+msgid "(service openssh-service-type)\n"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:24815
+msgid "is equivalent to this:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:24819
+#, no-wrap
+msgid ""
+"(service openssh-service-type\n"
+"         (openssh-configuration))\n"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:24823
+msgid "In both cases the result is an instance of @code{openssh-service-type} with the default configuration."
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:24825
+#, no-wrap
+msgid "{Scheme Procedure} service? @var{obj}"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:24827
+msgid "Return true if @var{obj} is a service."
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:24829
+#, no-wrap
+msgid "{Scheme Procedure} service-kind @var{service}"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:24831
+msgid "Return the type of @var{service}---i.e., a @code{<service-type>} object."
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:24833
+#, no-wrap
+msgid "{Scheme Procedure} service-value @var{service}"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:24836
+msgid "Return the value associated with @var{service}.  It represents its parameters."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:24839
+msgid "Here is an example of how a service is created and manipulated:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:24848
+#, no-wrap
+msgid ""
+"(define s\n"
+"  (service nginx-service-type\n"
+"           (nginx-configuration\n"
+"            (nginx nginx)\n"
+"            (log-directory log-directory)\n"
+"            (run-directory run-directory)\n"
+"            (file config-file))))\n"
+"\n"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:24851
+#, no-wrap
+msgid ""
+"(service? s)\n"
+"@result{} #t\n"
+"\n"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:24854
+#, no-wrap
+msgid ""
+"(eq? (service-kind s) nginx-service-type)\n"
+"@result{} #t\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:24864
+msgid "The @code{modify-services} form provides a handy way to change the parameters of some of the services of a list such as @var{%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:24865
+#, no-wrap
+msgid "{Scheme Syntax} modify-services @var{services} @"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:24867
+msgid "(@var{type} @var{variable} => @var{body}) @dots{}"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:24870
+msgid "Modify the services listed in @var{services} according to the given clauses.  Each clause has the form:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:24873
+#, no-wrap
+msgid "(@var{type} @var{variable} => @var{body})\n"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:24880
+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:24887
+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:24889
+msgid "@xref{Using the Configuration System}, for example usage."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:24896
+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:24897
+#, no-wrap
+msgid "{Data Type} service-type"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:24898
+#, no-wrap
+msgid "service type"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:24901
+msgid "This is the representation of a @dfn{service type} (@pxref{Service Types and Services})."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:24905
+msgid "This is a symbol, used only to simplify inspection and debugging."
+msgstr ""
+
+#. type: code{#1}
+#: doc/guix.texi:24906
+#, no-wrap
+msgid "extensions"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:24908
+msgid "A non-empty list of @code{<service-extension>} objects (see below)."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:24909
+#, no-wrap
+msgid "@code{compose} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:24913
+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:24917
+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:24918
+#, no-wrap
+msgid "@code{extend} (default: @code{#f})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:24920
+msgid "If this is @code{#f}, services of this type cannot be extended."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:24926
+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: deftp
+#: doc/guix.texi:24929
+msgid "@xref{Service Types and Services}, for examples."
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:24931
+#, no-wrap
+msgid "{Scheme Procedure} service-extension @var{target-type} @"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:24937
+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:24939
+#, no-wrap
+msgid "{Scheme Procedure} service-extension? @var{obj}"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:24941
+msgid "Return true if @var{obj} is a service extension."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:24947
+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:24948
+#, no-wrap
+msgid "{Scheme Procedure} simple-service @var{name} @var{target} @var{value}"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:24952
+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:24955
+msgid "For example, this extends mcron (@pxref{Scheduled Job Execution}) with an additional job:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:24959
+#, no-wrap
+msgid ""
+"(simple-service 'my-mcron-job mcron-service-type\n"
+"                #~(job '(next-hour (3)) \"guix gc -F 2G\"))\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:24969
+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:24970
+#, no-wrap
+msgid "{Scheme Procedure} fold-services @var{services} @"
+msgstr ""
+
+#. type: deffn
+#: doc/guix.texi:24974
+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:24978
+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:24979
+#, no-wrap
+msgid "{Scheme Variable} system-service-type"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:24982
+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:24984
+#, no-wrap
+msgid "{Scheme Variable} boot-service-type"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:24987
+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:24989
+#, no-wrap
+msgid "{Scheme Variable} etc-service-type"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:24993
+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: example
+#: doc/guix.texi:24996
+#, no-wrap
+msgid "(list `(\"issue\" ,(plain-file \"issue\" \"Welcome!\\n\")))\n"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:25000
+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:25002
+#, no-wrap
+msgid "{Scheme Variable} setuid-program-service-type"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:25006
+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:25008
+#, no-wrap
+msgid "{Scheme Variable} profile-service-type"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:25012
+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: cindex
+#: doc/guix.texi:25018
+#, no-wrap
+msgid "shepherd services"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:25019
+#, no-wrap
+msgid "PID 1"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:25020
+#, no-wrap
+msgid "init system"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:25026
+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:25032
+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:25034
+msgid "@image{images/shepherd-graph,,5in,Typical shepherd service graph.}"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:25038
+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:25042
+msgid "The @var{%shepherd-root-service} is a service object representing PID@tie{}1, of type @var{shepherd-root-service-type}; it can be extended by passing it lists of @code{<shepherd-service>} objects."
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:25043
+#, no-wrap
+msgid "{Data Type} shepherd-service"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:25045
+msgid "The data type representing a service managed by the Shepherd."
+msgstr ""
+
+#. type: code{#1}
+#: doc/guix.texi:25047
+#, no-wrap
+msgid "provision"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:25049
+msgid "This is a list of symbols denoting what the service provides."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:25054
+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:25055
+#, no-wrap
+msgid "@code{requirements} (default: @code{'()})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:25057
+msgid "List of symbols denoting the Shepherd services this one depends on."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:25058
+#, no-wrap
+msgid "@code{respawn?} (default: @code{#t})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:25061
+msgid "Whether to restart the service when it stops, for instance when the underlying process dies."
+msgstr ""
+
+#. type: code{#1}
+#: doc/guix.texi:25062
+#, no-wrap
+msgid "start"
+msgstr ""
+
+#. type: itemx
+#: doc/guix.texi:25063
+#, no-wrap
+msgid "@code{stop} (default: @code{#~(const #f)})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:25069
+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:25070
+#, no-wrap
+msgid "@code{actions} (default: @code{'()})"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:25071
+#, no-wrap
+msgid "actions, of Shepherd services"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:25076
+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:25079
+#, no-wrap
+msgid "herd @var{action} @var{service} [@var{arguments}@dots{}]\n"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:25083
+msgid "A documentation string, as shown when running:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:25086
+#, no-wrap
+msgid "herd doc @var{service-name}\n"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:25090
+msgid "where @var{service-name} is one of the symbols in @var{provision} (@pxref{Invoking herd,,, shepherd, The GNU Shepherd Manual})."
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:25091
+#, no-wrap
+msgid "@code{modules} (default: @var{%default-modules})"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:25094
+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:25098
+#, no-wrap
+msgid "{Data Type} shepherd-action"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:25101
+msgid "This is the data type that defines additional actions implemented by a Shepherd service (see above)."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:25105
+msgid "Symbol naming the action."
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:25108
+msgid "This is a documentation string for the action.  It can be viewed by running:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:25111
+#, no-wrap
+msgid "herd doc @var{service} action @var{action}\n"
+msgstr ""
+
+#. type: item
+#: doc/guix.texi:25113
+#, no-wrap
+msgid "procedure"
+msgstr ""
+
+#. type: table
+#: doc/guix.texi:25117
+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:25121
+msgid "The following example defines an action called @code{say-hello} that kindly greets the user:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:25130
+#, no-wrap
+msgid ""
+"(shepherd-action\n"
+"  (name 'say-hello)\n"
+"  (documentation \"Say hi!\")\n"
+"  (procedure #~(lambda (running . args)\n"
+"                 (format #t \"Hello, friend! arguments: ~s\\n\"\n"
+"                         args)\n"
+"                 #t)))\n"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:25133
+msgid "Assuming this action is added to the @code{example} service, then you can do:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:25139
+#, no-wrap
+msgid ""
+"# herd say-hello example\n"
+"Hello, friend! arguments: ()\n"
+"# herd say-hello example a b c\n"
+"Hello, friend! arguments: (\"a\" \"b\" \"c\")\n"
+msgstr ""
+
+#. type: deftp
+#: doc/guix.texi:25144
+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:25146
+#, no-wrap
+msgid "{Scheme Variable} shepherd-root-service-type"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:25148
+msgid "The service type for the Shepherd ``root service''---i.e., PID@tie{}1."
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:25152
+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:25154
+#, no-wrap
+msgid "{Scheme Variable} %shepherd-root-service"
+msgstr ""
+
+#. type: defvr
+#: doc/guix.texi:25156
+msgid "This service represents PID@tie{}1."
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:25162
+#, no-wrap
+msgid "documentation, searching for"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:25163
+#, no-wrap
+msgid "searching for documentation"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:25164
+#, no-wrap
+msgid "Info, documentation format"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:25165
+#, no-wrap
+msgid "man pages"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:25166
+#, no-wrap
+msgid "manual pages"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:25173
+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:25177
+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:25185
+#, no-wrap
+msgid ""
+"$ 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"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:25189
+msgid "The command below searches for the same keyword in man pages:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:25195
+#, no-wrap
+msgid ""
+"$ man -k TLS\n"
+"SSL (7)              - OpenSSL SSL/TLS library\n"
+"certtool (1)         - GnuTLS certificate tool\n"
+"@dots {}\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:25201
+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:25204
+msgid "Once you have these results, you can view the relevant documentation by running, say:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:25207
+#, no-wrap
+msgid "$ info \"(gnutls)Core TLS API\"\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:25211
+msgid "or:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:25214
+#, no-wrap
+msgid "$ man certtool\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:25222
+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:25226
+#, no-wrap
+msgid "debugging files"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:25232
+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:25240
+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:25247
+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:25255
+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:25258
+#, no-wrap
+msgid "guix package -i glibc:debug guile:debug\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:25264
+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:25267
+#, no-wrap
+msgid "(gdb) set debug-file-directory ~/.guix-profile/lib/debug\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:25271
+msgid "From there on, GDB will pick up debugging information from the @code{.debug} files under @file{~/.guix-profile/lib/debug}."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:25278
+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:25287
+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 ""
+
+#. type: cindex
+#: doc/guix.texi:25292
+#, no-wrap
+msgid "security updates"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:25301
+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:25308
+#, no-wrap
+msgid ""
+"$ guix lint -c cve\n"
+"gnu/packages/base.scm:652:2: glibc@@2.21: probably vulnerable to CVE-2015-1781, CVE-2015-7547\n"
+"gnu/packages/gcc.scm:334:2: gcc@@4.9.3: probably vulnerable to CVE-2015-5276\n"
+"gnu/packages/image.scm:312:2: openjpeg@@2.1.0: probably vulnerable to CVE-2016-1923, CVE-2016-1924\n"
+"@dots{}\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:25311
+msgid "@xref{Invoking guix lint}, for more information."
+msgstr ""
+
+#. type: quotation
+#: doc/guix.texi:25315
+msgid "As of version @value{VERSION}, the feature described below is considered ``beta''."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:25325
+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:25326
+#, no-wrap
+msgid "grafts"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:25334
+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:25335
+#, no-wrap
+msgid "replacements of packages, for grafts"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:25341
+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 @var{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: example
+#: doc/guix.texi:25348
+#, no-wrap
+msgid ""
+"(define bash\n"
+"  (package\n"
+"    (name \"bash\")\n"
+"    ;; @dots{}\n"
+"    (replacement bash-fixed)))\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:25358
+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 @var{bash-fixed} instead of @var{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:25366
+msgid "Currently, the length of the name and version of the graft and that of the package it replaces (@var{bash-fixed} and @var{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:25370
+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:25373
+#, no-wrap
+msgid "guix build bash --no-grafts\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:25377
+msgid "returns the store file name of the original Bash, whereas:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:25380
+#, no-wrap
+msgid "guix build bash\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:25385
+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:25388
+msgid "To verify which Bash your whole profile refers to, you can run (@pxref{Invoking guix gc}):"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:25391
+#, no-wrap
+msgid "guix gc -R `readlink -f ~/.guix-profile` | grep bash\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:25396
+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:25399
+#, no-wrap
+msgid "guix gc -R `guix system build my-config.scm` | grep bash\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:25403
+msgid "Lastly, to check which Bash running processes are using, you can use the @command{lsof} command:"
+msgstr ""
+
+#. type: example
+#: doc/guix.texi:25406
+#, no-wrap
+msgid "lsof | grep /gnu/store/.*bash\n"
+msgstr ""
+
+#. type: cindex
+#: doc/guix.texi:25414
+#, no-wrap
+msgid "bootstrapping"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:25424
+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:25425 doc/guix.texi:25547
+#, no-wrap
+msgid "bootstrap binaries"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:25435
+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:25438
+msgid "These bootstrap binaries are ``taken for granted'', though we can also re-create them if needed (more on that later)."
+msgstr ""
+
+#. type: unnumberedsec
+#: doc/guix.texi:25439
+#, no-wrap
+msgid "Preparing to Use the Bootstrap Binaries"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:25444
+msgid "@image{images/bootstrap-graph,6in,,Dependency graph of the early bootstrap derivations}"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:25449
+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:25454
+#, no-wrap
+msgid ""
+"guix graph -t derivation \\\n"
+"  -e '(@@@@ (gnu packages bootstrap) %bootstrap-gcc)' \\\n"
+"  | dot -Tps > t.ps\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:25463
+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:25472
+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:25484
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:25488
+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 ""
+
+#. type: unnumberedsec
+#: doc/guix.texi:25490
+#, no-wrap
+msgid "Building the Build Tools"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:25499
+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:25506
+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:25511
+#, no-wrap
+msgid ""
+"guix graph -t bag \\\n"
+"  -e '(@@@@ (gnu packages commencement)\n"
+"          glibc-final-with-bootstrap-bash)' | dot -Tps > t.ps\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:25518
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:25520
+msgid "@image{images/bootstrap-packages,6in,,Dependency graph of the early packages}"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:25526
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:25531
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:25537
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:25543
+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 ""
+
+#. type: unnumberedsec
+#: doc/guix.texi:25545
+#, no-wrap
+msgid "Building the Bootstrap Binaries"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:25552
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:25556
+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 ""
+
+#. type: example
+#: doc/guix.texi:25559
+#, no-wrap
+msgid "guix build bootstrap-tarballs\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:25564
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:25570
+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:25571
+#, no-wrap
+msgid "Reducing the Set of Bootstrap Binaries"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:25579
+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 ""
+
+#. type: Plain text
+#: doc/guix.texi:25585
+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:25591
+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 ""
+
+#. type: chapter
+#: doc/guix.texi:25594
+#, no-wrap
+msgid "Porting to a New Platform"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:25603
+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:25608
+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:25611
+#, no-wrap
+msgid "guix build --target=armv5tel-linux-gnueabi bootstrap-tarballs\n"
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:25618
+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:25627
+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:25636
+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 ""
+
+#. type: include
+#: doc/guix.texi:25638
+#, no-wrap
+msgid "contributing.texi"
+msgstr "contributing.zh_CN.texi"
+
+#. type: Plain text
+#: doc/guix.texi:25651
+msgid "Guix is based on the @uref{http://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:25654
+msgid "The Nix-based software distributions, Nixpkgs and NixOS, have also been an inspiration for Guix."
+msgstr ""
+
+#. type: Plain text
+#: doc/guix.texi:25660
+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:25665
+#, no-wrap
+msgid "license, GNU Free Documentation License"
+msgstr ""
+
+#. type: include
+#: doc/guix.texi:25666
+#, no-wrap
+msgid "fdl-1.3.texi"
+msgstr ""
diff --git a/po/doc/local.mk b/po/doc/local.mk
index 6b934d945a..6b51c2a071 100644
--- a/po/doc/local.mk
+++ b/po/doc/local.mk
@@ -16,9 +16,11 @@
 # You should have received a copy of the GNU General Public License
 # along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 
-DOC_PO_FILES= \
-  %D%/guix-manual.de.po \
-  %D%/guix-manual.fr.po
+DOC_PO_FILES=					\
+  %D%/guix-manual.es.po				\
+  %D%/guix-manual.de.po				\
+  %D%/guix-manual.fr.po				\
+  %D%/guix-manual.zh_CN.po
 
 EXTRA_DIST = \
   %D%/guix-manual.pot \
diff --git a/po/guix/POTFILES.in b/po/guix/POTFILES.in
index debff5ae8e..ceee589b2e 100644
--- a/po/guix/POTFILES.in
+++ b/po/guix/POTFILES.in
@@ -15,12 +15,14 @@ gnu/installer/keymap.scm
 gnu/installer/locale.scm
 gnu/installer/newt.scm
 gnu/installer/newt/ethernet.scm
+gnu/installer/newt/final.scm
 gnu/installer/newt/hostname.scm
 gnu/installer/newt/keymap.scm
 gnu/installer/newt/locale.scm
 gnu/installer/newt/menu.scm
 gnu/installer/newt/network.scm
 gnu/installer/newt/page.scm
+gnu/installer/newt/partition.scm
 gnu/installer/newt/services.scm
 gnu/installer/newt/timezone.scm
 gnu/installer/newt/user.scm
@@ -39,6 +41,10 @@ guix/scripts/build.scm
 guix/discovery.scm
 guix/scripts/download.scm
 guix/scripts/package.scm
+guix/scripts/install.scm
+guix/scripts/remove.scm
+guix/scripts/upgrade.scm
+guix/scripts/search.scm
 guix/scripts/gc.scm
 guix/scripts/hash.scm
 guix/scripts/import.scm
diff --git a/po/guix/de.po b/po/guix/de.po
index 81a9c87a84..5cb3e61cb8 100644
--- a/po/guix/de.po
+++ b/po/guix/de.po
@@ -1,15 +1,16 @@
 # German translation of guix.
-# Copyright (C) 2018 the authors of Guix (msgids)
+# Copyright (C) 2018-2019 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.
 #
+#: guix/ui.scm:204
 msgid ""
 msgstr ""
-"Project-Id-Version: guix 0.16.0\n"
+"Project-Id-Version: guix 1.0.0-pre2\n"
 "Report-Msgid-Bugs-To: ludo@gnu.org\n"
-"POT-Creation-Date: 2018-11-28 15:05+0100\n"
-"PO-Revision-Date: 2019-02-13 00:03+0100\n"
+"POT-Creation-Date: 2019-04-24 13:25+0200\n"
+"PO-Revision-Date: 2019-04-24 22:46+0200\n"
 "Last-Translator: Florian Pelz <pelzflorian@pelzflorian.de>\n"
 "Language-Team: German <translation-team-de@lists.sourceforge.net>\n"
 "Language: de\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:82
+#: gnu.scm:83
 #, scheme-format
 msgid "module ~a not found"
 msgstr "Modul »~a« nicht gefunden"
 
-#: gnu.scm:100
+#: gnu.scm:101
 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 ""
 "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:108
+#: gnu.scm:109
 #, scheme-format
 msgid "Try adding @code{(use-package-modules ~a)}."
 msgstr "Vielleicht sollten Sie @code{(use-package-modules ~a)} einfügen."
 
-#: gnu.scm:123
+#: gnu.scm:124
 #, scheme-format
 msgid ""
 "You may use @command{guix system search ~a} to search for a service\n"
@@ -54,47 +55,47 @@ 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:132
+#: gnu.scm:133
 #, scheme-format
 msgid "Try adding @code{(use-service-modules ~a)}."
 msgstr "Vielleicht sollten Sie @code{(use-service-modules ~a)} einfügen."
 
-#: gnu/packages.scm:94
+#: gnu/packages.scm:103
 #, scheme-format
 msgid "~a: patch not found"
 msgstr "~a: Patch nicht gefunden"
 
-#: gnu/packages.scm:110
+#: gnu/packages.scm:119
 #, 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.scm:270
+#: gnu/packages.scm:480 gnu/packages.scm:521
 #, scheme-format
 msgid "ambiguous package specification `~a'~%"
 msgstr "Nicht eindeutige Paketangabe »~a«~%"
 
-#: gnu/packages.scm:271
+#: 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:276 guix/scripts/package.scm:206
+#: gnu/packages.scm:486 guix/scripts/package.scm:208
 #, scheme-format
 msgid "package '~a' has been superseded by '~a'~%"
 msgstr "Paket »~a« wurde abgelöst durch »~a«~%"
 
-#: gnu/packages.scm:283
+#: 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:284
+#: gnu/packages.scm:494 gnu/packages.scm:511
 #, scheme-format
 msgid "~A: unknown package~%"
 msgstr "~A: Unbekanntes Paket~%"
 
-#: gnu/packages.scm:312
+#: gnu/packages.scm:546
 #, scheme-format
 msgid "package `~a' lacks output `~a'~%"
 msgstr "Paket »~a« fehlt die Ausgabe »~a«~%"
@@ -201,48 +202,48 @@ msgstr "Mehr als ein Ziel-Dienst von Typ »~a«"
 msgid "service of type '~a' not found"
 msgstr "Dienst des Typs »~a« wurde nicht gefunden"
 
-#: gnu/system.scm:317
+#: gnu/system.scm:334
 #, scheme-format
 msgid "unrecognized boot parameters at '~a'~%"
 msgstr "Nicht erkannte Boot-Parameter für »~a«~%"
 
-#: gnu/system.scm:725
+#: gnu/system.scm:732
 #, 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"
 "obsolet, benutzen Sie »plain-file«~%"
 
-#: gnu/system.scm:741
+#: gnu/system.scm:748
 #, 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"
 "obsolet, benutzen Sie »plain-file«~%"
 
-#: gnu/system.scm:885
+#: gnu/system.scm:893
 #, scheme-format
 msgid "~a: invalid locale name"
 msgstr "~a: Ungültiger Locale-Name~%"
 
-#: gnu/services/shepherd.scm:192
+#: gnu/services/shepherd.scm:194
 #, scheme-format
 msgid "service '~a' provided more than once"
 msgstr "Der Dienst »~a« kommt mehr als einmal vor"
 
-#: gnu/services/shepherd.scm:207
+#: gnu/services/shepherd.scm:209
 #, 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:147
+#: gnu/system/mapped-devices.scm:136
 #, 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:151
+#: gnu/system/mapped-devices.scm:140
 #, scheme-format
 msgid ""
 "Try adding them to the\n"
@@ -272,42 +273,695 @@ 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:230
+#: gnu/system/mapped-devices.scm:219
 #, scheme-format
 msgid "no LUKS partition with UUID '~a'"
 msgstr "Keine LUKS-Partition mit UUID »~a«"
 
-#: gnu/system/shadow.scm:258
+#: gnu/system/shadow.scm:236
 #, scheme-format
 msgid "supplementary group '~a' of user '~a' is undeclared"
 msgstr "Zusätzliche Gruppe »~a« von Nutzer »~a« wurde nicht deklariert"
 
-#: gnu/system/shadow.scm:268
+#: gnu/system/shadow.scm:246
 #, scheme-format
 msgid "primary group '~a' of user '~a' is undeclared"
 msgstr "Primäre Gruppe »~a« von Nutzer »~a« wurde nicht deklariert"
 
-#: guix/scripts.scm:60
+#: guix/import/opam.scm:133
+#, scheme-format
+msgid "Package not found in opam repository: ~a~%"
+msgstr "Paket nicht in der OPAM-Paketsammlung gefunden: ~a~%"
+
+#: guix/import/opam.scm:344
+msgid "Updater for OPAM packages"
+msgstr "Aktualisierungsprogramm für OPAM-Pakete"
+
+#: gnu/installer.scm:191
+msgid "Locale"
+msgstr "Locale"
+
+#: gnu/installer.scm:207 gnu/installer/newt/timezone.scm:58
+msgid "Timezone"
+msgstr "Zeitzone"
+
+#: gnu/installer.scm:223
+msgid "Keyboard mapping selection"
+msgstr "Tastaturbelegung auswählen"
+
+#: gnu/installer.scm:232
+msgid "Partitioning"
+msgstr "Partitionierung"
+
+#: gnu/installer.scm:240 gnu/installer/newt/hostname.scm:26
+msgid "Hostname"
+msgstr "Rechnername"
+
+#: gnu/installer.scm:249
+msgid "Network selection"
+msgstr "Netzwerkanbindung auswählen"
+
+#: gnu/installer.scm:256 gnu/installer/newt/user.scm:46
+msgid "User creation"
+msgstr "Benutzerkonten einrichten"
+
+#: gnu/installer.scm:264
+msgid "Services"
+msgstr "Dienste"
+
+#: gnu/installer.scm:271 gnu/installer/newt/final.scm:41
+msgid "Configuration file"
+msgstr "Konfigurationsdatei"
+
+#: gnu/installer/connman.scm:196
+msgid "Could not determine the state of connman."
+msgstr "Der Zustand von Connman konnte nicht festgestellt werden."
+
+#: gnu/installer/connman.scm:322
+msgid "Unable to find expected regexp."
+msgstr "Erwarteter regulärer Ausdruck konnte nicht gefunden werden."
+
+#: gnu/installer/newt.scm:60
+#, scheme-format
+msgid "The installer has encountered an unexpected problem. The backtrace is displayed below. Please report it by email to <~a>."
+msgstr "Beim Installationsprogramm ist ein unerwartetes Problem aufgetreten. Unten sehen Sie die Rückverfolgung (Backtrace). Bitte melden Sie dies in einer E-Mail an <~a>."
+
+#: gnu/installer/newt.scm:63
+msgid "Unexpected problem"
+msgstr "Unerwartetes Problem"
+
+#: gnu/installer/newt/ethernet.scm:65
+msgid "No ethernet service available, please try again."
+msgstr "Kein Ethernet-Dienst verfügbar. Bitte versuchen Sie es erneut."
+
+#: gnu/installer/newt/ethernet.scm:66
+msgid "No service"
+msgstr "Kein Dienst"
+
+#: gnu/installer/newt/ethernet.scm:71
+msgid "Please select an ethernet network."
+msgstr "Bitte wählen Sie ein Ethernet-Netzwerk."
+
+#: gnu/installer/newt/ethernet.scm:72
+msgid "Ethernet connection"
+msgstr "Ethernet-Verbindung"
+
+#: gnu/installer/newt/ethernet.scm:75 gnu/installer/newt/keymap.scm:44
+#: gnu/installer/newt/locale.scm:43 gnu/installer/newt/network.scm:61
+#: gnu/installer/newt/network.scm:76 gnu/installer/newt/page.scm:156
+#: gnu/installer/newt/page.scm:481 gnu/installer/newt/page.scm:538
+#: gnu/installer/newt/partition.scm:52 gnu/installer/newt/partition.scm:80
+#: gnu/installer/newt/partition.scm:112 gnu/installer/newt/partition.scm:123
+#: gnu/installer/newt/partition.scm:619 gnu/installer/newt/partition.scm:640
+#: gnu/installer/newt/partition.scm:679 gnu/installer/newt/partition.scm:730
+#: gnu/installer/newt/partition.scm:741 gnu/installer/newt/services.scm:81
+#: gnu/installer/newt/timezone.scm:63 gnu/installer/newt/user.scm:119
+#: gnu/installer/newt/wifi.scm:201
+msgid "Exit"
+msgstr "Verlassen"
+
+#: gnu/installer/newt/final.scm:37
+msgid "We're now ready to proceed with the installation! A system configuration file has been generated, it is displayed below.  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. 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:54
+msgid "Installation complete"
+msgstr "Installation abgeschlossen"
+
+#: gnu/installer/newt/final.scm:55 gnu/installer/newt/welcome.scm:115
+msgid "Reboot"
+msgstr "Neustart"
+
+#: gnu/installer/newt/final.scm:56
+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:62
+msgid "Installation failed"
+msgstr "Installation fehlgeschlagen"
+
+#: gnu/installer/newt/final.scm:63
+msgid "Restart installer"
+msgstr "Installationsprogramm neu starten"
+
+#: gnu/installer/newt/final.scm:64
+msgid "Retry system install"
+msgstr "Systeminstallation erneut versuchen"
+
+#: gnu/installer/newt/final.scm:65
+msgid "The final system installation step failed.  You can retry the last step, or restart the installer."
+msgstr "Der letzte Installationsschritt ist fehlgeschlagen. Sie können den letzten Schritt wiederholen oder mit dem Installationsprogramm von vorne beginnen."
+
+#: gnu/installer/newt/hostname.scm:25
+msgid "Please enter the system hostname."
+msgstr "Bitte geben Sie den Rechnernamen des Systems ein."
+
+#: gnu/installer/newt/keymap.scm:37
+msgid "Layout"
+msgstr "Belegung"
+
+#: gnu/installer/newt/keymap.scm:40
+msgid "Please choose your keyboard layout."
+msgstr "Bitte wählen Sie Ihre Tastaturbelegung."
+
+#: gnu/installer/newt/keymap.scm:52
+msgid "Variant"
+msgstr "Variante"
+
+#: gnu/installer/newt/keymap.scm:55
+msgid "Please choose a variant for your keyboard layout."
+msgstr "Bitte wählen Sie die zu benutzende Variante Ihrer Tastaturbelegung."
+
+#: 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:575 gnu/installer/newt/timezone.scm:64
+msgid "Back"
+msgstr "Zurück"
+
+#: gnu/installer/newt/locale.scm:36
+msgid "Locale language"
+msgstr "Locale-Sprache"
+
+#: gnu/installer/newt/locale.scm:37
+msgid "Choose the language to use for the installation process and for the installed system."
+msgstr "Wählen Sie die Sprache aus, die für den Installationsvorgang und das installierte System verwendet werden soll."
+
+#: gnu/installer/newt/locale.scm:57
+msgid "Locale location"
+msgstr "Locale-Gebiet"
+
+#: gnu/installer/newt/locale.scm:60
+msgid "Choose a territory for this language."
+msgstr "Wählen Sie das Gebiet für diese Sprache aus."
+
+#: gnu/installer/newt/locale.scm:71
+msgid "Locale codeset"
+msgstr "Locale-Kodierung"
+
+#: gnu/installer/newt/locale.scm:74
+msgid "Choose the locale encoding."
+msgstr "Wählen Sie die Kodierung der Locale."
+
+#: gnu/installer/newt/locale.scm:86
+msgid "Locale modifier"
+msgstr "Locale-Modifikator"
+
+#: 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 "Wählen Sie einen Modifikator für Ihre Locale aus. Der häufigste Modifikator ist »euro«, womit Sie angeben, dass Sie das Eurozeichen als Währungssymbol verwenden möchten."
+
+#: gnu/installer/newt/locale.scm:190
+msgid "No location"
+msgstr "Kein Gebiet"
+
+#: gnu/installer/newt/locale.scm:217
+msgid "No modifier"
+msgstr "Kein Modifikator"
+
+#: 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 "Wählen Sie aus, wo Sie die Installation fortsetzen möchten. Sie können die Installation auch abbrechen, indem Sie den Abbrechen-Knopf benutzen."
+
+#: gnu/installer/newt/menu.scm:37
+msgid "Installation menu"
+msgstr "Installationsmenü"
+
+#: gnu/installer/newt/menu.scm:41
+msgid "Abort"
+msgstr "Abbrechen"
+
+#: gnu/installer/newt/network.scm:59 gnu/installer/newt/network.scm:73
+msgid "Internet access"
+msgstr "Internetzugang"
+
+#: gnu/installer/newt/network.scm:60 gnu/installer/newt/page.scm:155
+msgid "Continue"
+msgstr "Fortfahren"
+
+#: gnu/installer/newt/network.scm:62
+msgid "The install process requires Internet access but no network device were found. Do you want to continue anyway?"
+msgstr "Zum Installieren wird eine Internetverbindung vorausgesetzt, aber keine Netzwerkgeräte wurden gefunden. Möchten Sie dennoch fortfahren?"
+
+#: gnu/installer/newt/network.scm:71
+msgid "The install process requires Internet access. Please select a network device."
+msgstr "Zum Installieren wird eine Internetverbindung vorausgesetzt. Bitte wählen Sie ein Netzwerkgerät aus."
+
+#: gnu/installer/newt/network.scm:95
+msgid "Powering technology"
+msgstr "Technologie wird eingeschaltet"
+
+#: gnu/installer/newt/network.scm:115
+msgid "Checking connectivity"
+msgstr "Verbindung wird geprüft"
+
+#: gnu/installer/newt/network.scm:116
+msgid "Waiting for Internet access establishment..."
+msgstr "Auf Herstellung des Internetzugangs wird gewartet …"
+
+#: gnu/installer/newt/network.scm:126
+msgid "The selected network does not provide access to the Internet, please try again."
+msgstr "Das ausgewählte Netzwerk stellt keinen Zugang zum Internet bereit, bitte versuchen Sie es erneut."
+
+#: gnu/installer/newt/network.scm:128 gnu/installer/newt/wifi.scm:105
+msgid "Connection error"
+msgstr "Verbindungsfehler"
+
+#: gnu/installer/newt/page.scm:71
+#, scheme-format
+msgid "Connecting to ~a, please wait."
+msgstr "Verbindung mit ~a wird hergestellt, bitte warten Sie."
+
+#: gnu/installer/newt/page.scm:72
+msgid "Connection in progress"
+msgstr "Verbindung wird hergestellt"
+
+#: gnu/installer/newt/page.scm:89 gnu/installer/newt/page.scm:480
+#: gnu/installer/newt/page.scm:537 gnu/installer/newt/partition.scm:438
+#: gnu/installer/newt/partition.scm:618 gnu/installer/newt/partition.scm:639
+#: gnu/installer/newt/partition.scm:677 gnu/installer/newt/user.scm:44
+#: gnu/installer/newt/user.scm:118
+msgid "OK"
+msgstr "OK"
+
+#: gnu/installer/newt/page.scm:104
+msgid "Please enter a non empty input."
+msgstr "Bitte lassen Sie das Eingabefeld nicht leer."
+
+#: gnu/installer/newt/page.scm:105 gnu/installer/newt/user.scm:76
+msgid "Empty input"
+msgstr "Leere Eingabe"
+
+#: gnu/installer/newt/partition.scm:48
+msgid "Please select a partitioning scheme."
+msgstr "Bitte wählen Sie, nach welchem Schema Partitionen angelegt werden sollen."
+
+#: gnu/installer/newt/partition.scm:49
+msgid "Partition scheme"
+msgstr "Partitionierungsschema"
+
+#: gnu/installer/newt/partition.scm:59
+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?"
+
+#: gnu/installer/newt/partition.scm:61
+msgid "Format disk?"
+msgstr "Datenträger formatieren?"
+
+#: gnu/installer/newt/partition.scm:64
+msgid "Partition formatting is in progress, please wait."
+msgstr "Partition wird formatiert, bitte warten."
+
+#: gnu/installer/newt/partition.scm:65
+msgid "Preparing partitions"
+msgstr "Bereite Partitionen vor"
+
+#: gnu/installer/newt/partition.scm:76
+msgid "Please select a disk."
+msgstr "Bitte wählen Sie einen Datenträger aus."
+
+#: gnu/installer/newt/partition.scm:77
+msgid "Disk"
+msgstr "Datenträger"
+
+#: gnu/installer/newt/partition.scm:88
+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:90
+msgid "Partition table"
+msgstr "Partitionstabelle"
+
+#: gnu/installer/newt/partition.scm:107
+msgid "Please select a partition type."
+msgstr "Bitte wählen Sie einen Partitionstyp aus."
+
+#: gnu/installer/newt/partition.scm:108
+msgid "Partition type"
+msgstr "Partitionstyp"
+
+#: gnu/installer/newt/partition.scm:118
+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:119
+msgid "File-system type"
+msgstr "Dateisystemtyp"
+
+#: gnu/installer/newt/partition.scm:132
+msgid "Primary partitions count exceeded."
+msgstr "Maximalzahl primärer Partitionen überschritten."
+
+#: gnu/installer/newt/partition.scm:133 gnu/installer/newt/partition.scm:138
+#: gnu/installer/newt/partition.scm:143
+msgid "Creation error"
+msgstr "Fehler beim Erzeugen"
+
+#: gnu/installer/newt/partition.scm:137
+msgid "Extended partition creation error."
+msgstr "Fehler beim Erzeugen einer erweiterten Partition."
+
+#: gnu/installer/newt/partition.scm:142
+msgid "Logical partition creation error."
+msgstr "Fehler beim Erzeugen einer logischen Partition."
+
+#: gnu/installer/newt/partition.scm:156
+#, 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:158 gnu/installer/newt/wifi.scm:90
+msgid "Password required"
+msgstr "Passwort erforderlich"
+
+#: gnu/installer/newt/partition.scm:162
+#, 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:164
+msgid "Password confirmation required"
+msgstr "Bestätigung des Passworts erforderlich"
+
+#: gnu/installer/newt/partition.scm:175
+msgid "Password mismatch, please try again."
+msgstr "Die Passwörter stimmen nicht überein, bitte versuchen Sie es erneut."
+
+#: gnu/installer/newt/partition.scm:176
+msgid "Password error"
+msgstr "Passwortfehler"
+
+#: gnu/installer/newt/partition.scm:262
+msgid "Please enter the partition gpt name."
+msgstr "Bitte geben Sie den GPT-Namen der Partition ein."
+
+#: gnu/installer/newt/partition.scm:263
+msgid "Partition name"
+msgstr "Partitionsname"
+
+#: gnu/installer/newt/partition.scm:293
+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:294
+msgid "Encryption label"
+msgstr "Name mit Verschlüsselung"
+
+#: gnu/installer/newt/partition.scm:311
+#, 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:313
+msgid "Partition size"
+msgstr "Partitionsgröße"
+
+#: gnu/installer/newt/partition.scm:331
+msgid "The percentage can not be superior to 100."
+msgstr "Der Prozentwert kann nicht größer als 100 sein."
+
+#: gnu/installer/newt/partition.scm:332 gnu/installer/newt/partition.scm:337
+#: gnu/installer/newt/partition.scm:342
+msgid "Size error"
+msgstr "Größenfehler"
+
+#: gnu/installer/newt/partition.scm:336
+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:341
+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:361
+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:363
+msgid "Mounting point"
+msgstr "Einhängepunkt"
+
+#: gnu/installer/newt/partition.scm:432
+msgid "Partition creation"
+msgstr "Partition erzeugen"
+
+#: gnu/installer/newt/partition.scm:433
+msgid "Partition edit"
+msgstr "Partition bearbeiten"
+
+#: gnu/installer/newt/partition.scm:615
+#, 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:617
+msgid "Delete disk"
+msgstr "Datenträger löschen"
+
+#: gnu/installer/newt/partition.scm:631
+msgid "You cannot delete a free space area."
+msgstr "Sie können keinen leeren Speicher löschen."
+
+#: gnu/installer/newt/partition.scm:632 gnu/installer/newt/partition.scm:638
+msgid "Delete partition"
+msgstr "Partition löschen"
+
+#: gnu/installer/newt/partition.scm:636
+#, 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:653
+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 ""
+"Sie können die Partitionstabelle eines Datenträgers verändern, indem Sie ihn auswählen und die EINGABE-Taste drücken. Sie können außerdem eine Partition bearbeiten, indem Sie sie auswählen und die EINGABE-Taste drücken, oder die Partition löschen, indem Sie ENTFERNEN drücken. Um eine neue Partition zu erzeugen, wählen Sie einen leeren Speicherbereich aus und drücken Sie die EINGABE-Taste.\n"
+"\n"
+"Mindestens eine Partition muss als Einhängepunkt »/« haben."
+
+#: gnu/installer/newt/partition.scm:659
+#, 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:669
+msgid "Guided partitioning"
+msgstr "Geführte Partitionierung"
+
+#: gnu/installer/newt/partition.scm:670
+msgid "Manual partitioning"
+msgstr "Manuelle Partitionierung"
+
+#: gnu/installer/newt/partition.scm:688
+msgid "No root mount point found."
+msgstr "Kein Einhängepunkt für das Wurzeldateisystem gefunden."
+
+#: gnu/installer/newt/partition.scm:689
+msgid "Missing mount point"
+msgstr "Fehlender Einhängepunkt"
+
+#: gnu/installer/newt/partition.scm:726
+msgid "Please select a partitioning method."
+msgstr "Bitte wählen Sie, nach welcher Methode Sie partitionieren möchten."
+
+#: gnu/installer/newt/partition.scm:727
+msgid "Partitioning method"
+msgstr "Partitionierungsmethode"
+
+#: gnu/installer/newt/services.scm:35
+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:38
+msgid "Desktop environment"
+msgstr "Arbeitsumgebung"
+
+#: gnu/installer/newt/services.scm:51
+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:53
+msgid "Network service"
+msgstr "Netzwerkdienst"
+
+#: gnu/installer/newt/services.scm:67
+msgid "Network management"
+msgstr "Netzwerkverwaltung"
+
+#: gnu/installer/newt/services.scm:70
+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 ""
+"Wählen Sie eine Methode, um Netzwerkverbindungen zu verwalten.\n"
+"\n"
+"Wir empfehlen, für WLAN-fähige Laptops NetworkManager oder Connman zu benutzen; der DHCP-Client kann für einen Server ausreichend sein."
+
+#: gnu/installer/newt/timezone.scm:59
+msgid "Please select a timezone."
+msgstr "Bitte wählen Sie eine Zeitzone aus."
+
+#: gnu/installer/newt/user.scm:36
+msgid "Name"
+msgstr "Name"
+
+#: gnu/installer/newt/user.scm:38
+msgid "Home directory"
+msgstr "Persönliches Verzeichnis"
+
+#: gnu/installer/newt/user.scm:75
+msgid "Empty inputs are not allowed."
+msgstr "Leere Eingaben sind nicht zulässig."
+
+#: gnu/installer/newt/user.scm:106
+msgid "Please add at least one user to system using the 'Add' button."
+msgstr "Bitte fügen Sie mindestens ein Benutzerkonto zum System hinzu, indem Sie den Hinzufügen-Knopf benutzen."
+
+#: gnu/installer/newt/user.scm:109
+msgid "Add"
+msgstr "Hinzufügen"
+
+#: gnu/installer/newt/user.scm:110
+msgid "Delete"
+msgstr "Löschen"
+
+#: gnu/installer/newt/user.scm:169
+msgid "Please create at least one user."
+msgstr "Bitte lassen Sie mindestens einen Nutzer erzeugen."
+
+#: gnu/installer/newt/user.scm:170
+msgid "No user"
+msgstr "Kein Nutzer"
+
+#: gnu/installer/newt/welcome.scm:95
+msgid "GNU Guix install"
+msgstr "Installation von GNU Guix"
+
+#: gnu/installer/newt/welcome.scm:96
+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 ""
+"Willkommen beim Systeminstallationsprogramm von GNU Guix!\n"
+"\n"
+"Sie werden durch ein grafisches Installationsprogramm begleitet werden.\n"
+"\n"
+"Wenn Sie sich mit GNU/Linux auskennen und die genaue Kontrolle über den Installationsvorgang behalten möchten, können Sie sich stattdessen für eine manuelle Installation entscheiden. Auf die Dokumentation können Sie jederzeit durch Drücken von Strg-Alt-F2 zugreifen."
+
+#: gnu/installer/newt/welcome.scm:105
+msgid "Graphical install using a terminal based interface"
+msgstr "Grafische Installation mit konsolenbasierter Oberfläche"
+
+#: gnu/installer/newt/welcome.scm:108
+msgid "Install using the shell based process"
+msgstr "Shell-basierter Installationsvorgang"
+
+#: gnu/installer/newt/wifi.scm:80
+msgid "Unable to find a wifi technology"
+msgstr "Keine WLAN-Technologie konnte gefunden werden"
+
+#: gnu/installer/newt/wifi.scm:84
+msgid "Scanning wifi for available networks, please wait."
+msgstr "Nach verfügbaren WLAN-Netzwerken wird gesucht, bitte warten Sie."
+
+#: gnu/installer/newt/wifi.scm:85
+msgid "Scan in progress"
+msgstr "Suche läuft"
+
+#: gnu/installer/newt/wifi.scm:89
+msgid "Please enter the wifi password."
+msgstr "Bitte geben Sie das WLAN-Passwort ein."
+
+#: gnu/installer/newt/wifi.scm:95
+#, scheme-format
+msgid "The password you entered for ~a is incorrect."
+msgstr "Das eingegebene Passwort für ~a ist falsch."
+
+#: gnu/installer/newt/wifi.scm:97
+msgid "Wrong password"
+msgstr "Falsches Passwort"
+
+#: gnu/installer/newt/wifi.scm:103
+#, scheme-format
+msgid "An error occurred while trying to connect to ~a, please retry."
+msgstr "Beim Versuch, eine Verbindung mit ~a herzustellen, ist ein Fehler aufgetreten. Bitte versuchen Sie es erneut."
+
+#: gnu/installer/newt/wifi.scm:196
+msgid "Please select a wifi network."
+msgstr "Bitte wählen Sie ein WLAN-Netzwerk aus."
+
+#: gnu/installer/newt/wifi.scm:202
+msgid "Scan"
+msgstr "Suche"
+
+#: gnu/installer/newt/wifi.scm:207
+msgid "No wifi detected"
+msgstr "Kein WLAN gefunden"
+
+#: gnu/installer/newt/wifi.scm:222
+msgid "Wifi"
+msgstr "WLAN"
+
+#: gnu/installer/parted.scm:428 gnu/installer/parted.scm:465
+msgid "Free space"
+msgstr "Freier Speicher"
+
+#: gnu/installer/parted.scm:1345
+#, scheme-format
+msgid "Device ~a is still in use."
+msgstr "Gerät ~a wird noch verwendet."
+
+#: gnu/installer/services.scm:81
+msgid "OpenSSH secure shell daemon (sshd)"
+msgstr "OpenSSH-Secure-Shell-Daemon (sshd)"
+
+#: gnu/installer/services.scm:85
+msgid "Tor anonymous network router"
+msgstr "Tor-Dienst für anonyme Netzwerkrouten"
+
+#: gnu/installer/services.scm:91
+msgid "NetworkManager network connection manager"
+msgstr "NetworkManager zur Netzwerkverwaltung"
+
+#: gnu/installer/services.scm:96
+msgid "Connman network connection manager"
+msgstr "Connman-Dienst zur Netzwerkverwaltung"
+
+#: gnu/installer/services.scm:101
+msgid "DHCP client (dynamic IP address assignment)"
+msgstr "DHCP-Client (dynamische IP-Adressenzuweisung)"
+
+#: gnu/installer/timezone.scm:110
+#, scheme-format
+msgid "Unable to locate path: ~a."
+msgstr "Pfad konnte nicht gefunden werden: ~a."
+
+#: guix/scripts.scm:61
 #, scheme-format
 msgid "invalid argument: ~a~%"
 msgstr "Ungültiges Argument: ~a~%"
 
-#: guix/scripts.scm:88 guix/scripts/download.scm:135
+#: guix/scripts.scm:89 guix/scripts/download.scm:135
 #: guix/scripts/import/cran.scm:84 guix/scripts/import/elpa.scm:85
-#: guix/scripts/publish.scm:881 guix/scripts/edit.scm:81
-#: guix/scripts/describe.scm:197 guix/scripts/processes.scm:216
+#: guix/scripts/publish.scm:888 guix/scripts/edit.scm:79
+#: guix/scripts/describe.scm:199 guix/scripts/processes.scm:216
 #, scheme-format
 msgid "~A: unrecognized option~%"
 msgstr "~A: Nicht erkannte Option~%"
 
-#: guix/scripts.scm:182
+#: guix/scripts.scm:172
 #, 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:187
+#: guix/scripts.scm:178
 #, scheme-format
 msgid ""
 "Consider running 'guix pull' followed by\n"
@@ -316,54 +970,48 @@ msgstr ""
 "Vielleicht wollen Sie »guix pull« ausführen vor »~a«, um\n"
 "aktuelle Pakete und Sicherheitsaktualisierungen zu bekommen.\n"
 
-#: guix/scripts.scm:211
+#: guix/scripts.scm:202
 #, scheme-format
 msgid "only ~,1f% of free space available on ~a~%"
 msgstr "Nur ~,1f% freier Speicher unter ~a verfügbar~%"
 
-#: guix/scripts.scm:214
-#, scheme-format
+#: guix/scripts.scm:204
 msgid ""
 "Consider deleting old profile\n"
 "generations and collecting garbage, along these lines:\n"
 "\n"
 "@example\n"
-"guix package -p ~s --delete-generations=1m\n"
-"guix gc\n"
+"guix gc --delete-generations=1m\n"
 "@end example\n"
 msgstr ""
 "Vielleicht möchten Sie alte Profilgenerationen\n"
 "löschen und Müll sammeln lassen, etwa so:\n"
 "\n"
 "@example\n"
-"guix package -p ~s --delete-generations=1m\n"
-"guix gc\n"
+"guix gc --delete-generations=1m\n"
 "@end example\n"
 
-#: guix/scripts.scm:222
-msgid ""
-"Consider running @command{guix gc} to free\n"
-"space."
-msgstr ""
-"Vielleicht möchten Sie mit dem Befehl @command{guix gc}\n"
-"freien Speicherplatz auf Ihrer Platte schaffen."
-
-#: guix/scripts/build.scm:84
+#: guix/scripts/build.scm:86
 #, scheme-format
 msgid "cannot access build log at '~a':~%"
 msgstr "Auf Erstellungsprotokoll auf »~a« kann nicht zugegriffen werden:~%"
 
-#: guix/scripts/build.scm:138
+#: guix/scripts/build.scm:140
 #, scheme-format
 msgid "failed to create GC root `~a': ~a~%"
 msgstr "Müllsammler-Wurzel »~a« konnte nicht erzeugt werden: ~a~%"
 
-#: guix/scripts/build.scm:240
+#: guix/scripts/build.scm:245 guix/scripts/build.scm:310
 #, scheme-format
 msgid "invalid replacement specification: ~s~%"
 msgstr "Ungültige Ersatzspezifikation: ~s~%"
 
-#: guix/scripts/build.scm:297
+#: guix/scripts/build.scm:292
+#, 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:417
 msgid ""
 "\n"
 "      --with-source=SOURCE\n"
@@ -374,7 +1022,7 @@ msgstr ""
 "                         beim Erstellen des entsprechenden Pakets QUELLE\n"
 "                           benutzen"
 
-#: guix/scripts/build.scm:300
+#: guix/scripts/build.scm:420
 msgid ""
 "\n"
 "      --with-input=PACKAGE=REPLACEMENT\n"
@@ -384,7 +1032,7 @@ msgstr ""
 "      --with-input=PAKET=ERSATZ\n"
 "                         Abhängigkeit PAKET durch ERSATZ ersetzen"
 
-#: guix/scripts/build.scm:303
+#: guix/scripts/build.scm:423
 msgid ""
 "\n"
 "      --with-graft=PACKAGE=REPLACEMENT\n"
@@ -394,12 +1042,43 @@ msgstr ""
 "      --with-graft=PAKET=ERSATZ\n"
 "                         mit ERSATZ jedes PAKET referenzierende Paket veredeln"
 
-#: guix/scripts/build.scm:328
+#: guix/scripts/build.scm:426
+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:429
+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:432
+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:463
 #, scheme-format
 msgid "transformation '~a' had no effect on ~a~%"
 msgstr "Transformation »~a« wirkte sich nicht aus auf ~a~%"
 
-#: guix/scripts/build.scm:346
+#: guix/scripts/build.scm:481
 msgid ""
 "\n"
 "  -L, --load-path=DIR    prepend DIR to the package module search path"
@@ -408,7 +1087,7 @@ msgstr ""
 "  -L, --load-path=VERZEICHNIS\n"
 "                         VERZEICHNIS vorne an den Paketmodulsuchpfad anhängen"
 
-#: guix/scripts/build.scm:348
+#: guix/scripts/build.scm:483
 msgid ""
 "\n"
 "  -K, --keep-failed      keep build tree of failed builds"
@@ -417,7 +1096,7 @@ msgstr ""
 "  -K, --keep-failed      Verzeichnisse zum Erstellen nach fehlgeschlagener\n"
 "                           Erstellung behalten"
 
-#: guix/scripts/build.scm:350
+#: guix/scripts/build.scm:485
 msgid ""
 "\n"
 "  -k, --keep-going       keep going when some of the derivations fail"
@@ -425,7 +1104,7 @@ msgstr ""
 "\n"
 "  -k, --keep-going       weitermachen, wenn manche Ableitungen fehlschlagen"
 
-#: guix/scripts/build.scm:352
+#: guix/scripts/build.scm:487
 msgid ""
 "\n"
 "  -n, --dry-run          do not build the derivations"
@@ -433,7 +1112,7 @@ msgstr ""
 "\n"
 "  -n, --dry-run          die Ableitungen nicht erstellen"
 
-#: guix/scripts/build.scm:354
+#: guix/scripts/build.scm:489
 msgid ""
 "\n"
 "      --fallback         fall back to building when the substituter fails"
@@ -442,7 +1121,7 @@ msgstr ""
 "      --fallback         notfalls selbst erstellen, wenn der Substituierer\n"
 "                           fehlschlägt"
 
-#: guix/scripts/build.scm:356
+#: guix/scripts/build.scm:491
 msgid ""
 "\n"
 "      --no-substitutes   build instead of resorting to pre-built substitutes"
@@ -451,7 +1130,7 @@ msgstr ""
 "      --no-substitutes   selbst erstellen, statt vorgefertigte Substitute zu\n"
 "                           benutzen"
 
-#: guix/scripts/build.scm:358 guix/scripts/size.scm:223
+#: guix/scripts/build.scm:493 guix/scripts/size.scm:233
 msgid ""
 "\n"
 "      --substitute-urls=URLS\n"
@@ -461,7 +1140,7 @@ msgstr ""
 "      --substitute-urls=URLS\n"
 "                         Substitute von URLS laden, wenn sie autorisiert sind"
 
-#: guix/scripts/build.scm:361
+#: guix/scripts/build.scm:496
 msgid ""
 "\n"
 "      --no-grafts        do not graft packages"
@@ -469,7 +1148,7 @@ msgstr ""
 "\n"
 "      --no-grafts        Pakete nicht veredeln"
 
-#: guix/scripts/build.scm:363
+#: guix/scripts/build.scm:498
 msgid ""
 "\n"
 "      --no-build-hook    do not attempt to offload builds via the build hook"
@@ -478,7 +1157,7 @@ msgstr ""
 "      --no-build-hook    nicht versuchen, Erstellungen über den »Build-Hook«\n"
 "                           auszulagern"
 
-#: guix/scripts/build.scm:365
+#: guix/scripts/build.scm:500
 msgid ""
 "\n"
 "      --max-silent-time=SECONDS\n"
@@ -489,7 +1168,7 @@ msgstr ""
 "                         das Erstellen als Fehlschlag markieren nach\n"
 "                           SEKUNDEN-langer Stille"
 
-#: guix/scripts/build.scm:368
+#: guix/scripts/build.scm:503
 msgid ""
 "\n"
 "      --timeout=SECONDS  mark the build as failed after SECONDS of activity"
@@ -499,15 +1178,7 @@ msgstr ""
 "                         das Erstellen als Fehlschlag markieren nach\n"
 "                           SEKUNDEN-langer Aktivität"
 
-#: guix/scripts/build.scm:370
-msgid ""
-"\n"
-"      --verbosity=LEVEL  use the given verbosity LEVEL"
-msgstr ""
-"\n"
-"      --verbosity=STUFE  die angegebene Ausführlichkeitsstufe verwenden"
-
-#: guix/scripts/build.scm:372
+#: guix/scripts/build.scm:505
 msgid ""
 "\n"
 "      --rounds=N         build N times in a row to detect non-determinism"
@@ -516,7 +1187,7 @@ msgstr ""
 "      --rounds=N         N-mal nacheinander erstellen, um Nichtdeterminismus\n"
 "                           festzustellen"
 
-#: guix/scripts/build.scm:374
+#: guix/scripts/build.scm:507
 msgid ""
 "\n"
 "  -c, --cores=N          allow the use of up to N CPU cores for the build"
@@ -524,7 +1195,7 @@ msgstr ""
 "\n"
 "  -c, --cores=N          bis zu N Prozessorkerne für die Erstellung nutzen"
 
-#: guix/scripts/build.scm:376
+#: guix/scripts/build.scm:509
 msgid ""
 "\n"
 "  -M, --max-jobs=N       allow at most N build jobs"
@@ -532,12 +1203,21 @@ msgstr ""
 "\n"
 "  -M, --max-jobs=N       höchstens N gleichzeitige Erstellungsarbeiten zulassen"
 
-#: guix/scripts/build.scm:486 guix/scripts/build.scm:493
+#: guix/scripts/build.scm:511
+msgid ""
+"\n"
+"      --debug=LEVEL      produce debugging output at LEVEL"
+msgstr ""
+"\n"
+"      --debug=STUFE      Informationen zur Fehlersuche in der angegebenen\n"
+"                           Ausführlichkeits-STUFE ausgeben"
+
+#: guix/scripts/build.scm:621 guix/scripts/build.scm:628
 #, scheme-format
 msgid "not a number: '~a' option argument: ~a~%"
 msgstr "Keine Zahl: Befehlszeilenargument von »~a«: ~a~%"
 
-#: guix/scripts/build.scm:514
+#: guix/scripts/build.scm:649
 msgid ""
 "Usage: guix build [OPTION]... PACKAGE-OR-DERIVATION...\n"
 "Build the given PACKAGE-OR-DERIVATION and return their output paths.\n"
@@ -545,7 +1225,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:516
+#: guix/scripts/build.scm:651
 msgid ""
 "\n"
 "  -e, --expression=EXPR  build the package or derivation EXPR evaluates to"
@@ -555,7 +1235,7 @@ msgstr ""
 "                         das Paket oder die Ableitung erstellen, zu der AUSDRUCK\n"
 "                           ausgewertet wird"
 
-#: guix/scripts/build.scm:518
+#: guix/scripts/build.scm:653
 msgid ""
 "\n"
 "  -f, --file=FILE        build the package or derivation that the code within\n"
@@ -565,7 +1245,7 @@ msgstr ""
 "  -f, --file=DATEI       das Paket oder die Ableitung erstellen, zu der der\n"
 "                           Code in DATEI ausgewertet wird"
 
-#: guix/scripts/build.scm:521
+#: guix/scripts/build.scm:656
 msgid ""
 "\n"
 "  -S, --source           build the packages' source derivations"
@@ -573,7 +1253,7 @@ msgstr ""
 "\n"
 "  -S, --source           die Quellcode-Ableitungen der Pakete erstellen"
 
-#: guix/scripts/build.scm:523
+#: guix/scripts/build.scm:658
 msgid ""
 "\n"
 "      --sources[=TYPE]   build source derivations; TYPE may optionally be one\n"
@@ -584,7 +1264,8 @@ msgstr ""
 "                           entweder »package«, »all« (Voreinstellung) oder\n"
 "                           »transitive« ist"
 
-#: guix/scripts/build.scm:526 guix/scripts/pack.scm:712
+#: guix/scripts/build.scm:661 guix/scripts/pull.scm:97
+#: guix/scripts/pack.scm:754
 msgid ""
 "\n"
 "  -s, --system=SYSTEM    attempt to build for SYSTEM--e.g., \"i686-linux\""
@@ -593,7 +1274,7 @@ msgstr ""
 "  -s, --system=SYSTEM    versuchen, für die angegebene Art von SYSTEM zu\n"
 "                           erstellen — z.B. »i686-linux«"
 
-#: guix/scripts/build.scm:528 guix/scripts/pack.scm:714
+#: guix/scripts/build.scm:663 guix/scripts/pack.scm:756
 msgid ""
 "\n"
 "      --target=TRIPLET   cross-build for TRIPLET--e.g., \"armel-linux-gnu\""
@@ -601,7 +1282,7 @@ msgstr ""
 "\n"
 "      --target=TRIPLET   cross-erstellen für TRIPLET — z.B. »armel-linux-gnu«"
 
-#: guix/scripts/build.scm:530
+#: guix/scripts/build.scm:665
 msgid ""
 "\n"
 "  -d, --derivations      return the derivation paths of the given packages"
@@ -609,7 +1290,7 @@ msgstr ""
 "\n"
 "  -d, --derivations      die Ableitungspfade der angegebenen Pakete liefern"
 
-#: guix/scripts/build.scm:532
+#: guix/scripts/build.scm:667
 msgid ""
 "\n"
 "      --check            rebuild items to check for non-determinism issues"
@@ -618,7 +1299,7 @@ msgstr ""
 "      --check            Objekte erneut erstellen, um auf Probleme wegen\n"
 "                           Nichtdeterminismus zu prüfen"
 
-#: guix/scripts/build.scm:534
+#: guix/scripts/build.scm:669
 msgid ""
 "\n"
 "      --repair           repair the specified items"
@@ -626,7 +1307,7 @@ msgstr ""
 "\n"
 "      --repair           die angegebenen Objekte reparieren"
 
-#: guix/scripts/build.scm:536
+#: guix/scripts/build.scm:671
 msgid ""
 "\n"
 "  -r, --root=FILE        make FILE a symlink to the result, and register it\n"
@@ -637,7 +1318,17 @@ msgstr ""
 "                           Ergebnis machen und als Müllsammler-Wurzel\n"
 "                           registrieren"
 
-#: guix/scripts/build.scm:539
+#: guix/scripts/build.scm:674 guix/scripts/package.scm:360
+#: guix/scripts/pull.scm:95 guix/scripts/system.scm:1032
+#: guix/scripts/copy.scm:120 guix/scripts/pack.scm:771
+msgid ""
+"\n"
+"  -v, --verbosity=LEVEL  use the given verbosity LEVEL"
+msgstr ""
+"\n"
+"      --verbosity=STUFE  die angegebene Ausführlichkeits-STUFE verwenden"
+
+#: guix/scripts/build.scm:676
 msgid ""
 "\n"
 "  -q, --quiet            do not show the build log"
@@ -645,7 +1336,7 @@ msgstr ""
 "\n"
 "  -q, --quiet            kein Protokoll der Erstellung anzeigen"
 
-#: guix/scripts/build.scm:541
+#: guix/scripts/build.scm:678
 msgid ""
 "\n"
 "      --log-file         return the log file names for the given derivations"
@@ -654,16 +1345,16 @@ msgstr ""
 "      --log-file         die Namen der Protokolldateien für die\n"
 "                           angegebenen Ableitungen liefern"
 
-#: guix/scripts/build.scm:548 guix/scripts/download.scm:83
-#: guix/scripts/package.scm:366 guix/scripts/gc.scm:76
+#: guix/scripts/build.scm:685 guix/scripts/download.scm:83
+#: guix/scripts/package.scm:378 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:95
-#: guix/scripts/substitute.scm:889 guix/scripts/system.scm:1017
-#: guix/scripts/lint.scm:1115 guix/scripts/publish.scm:94
-#: guix/scripts/edit.scm:44 guix/scripts/size.scm:234
-#: guix/scripts/graph.scm:472 guix/scripts/challenge.scm:241
-#: guix/scripts/copy.scm:122 guix/scripts/pack.scm:730
-#: guix/scripts/weather.scm:259 guix/scripts/describe.scm:71
+#: 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:71
 #: guix/scripts/processes.scm:200 guix/scripts/container.scm:34
 #: guix/scripts/container/exec.scm:43
 msgid ""
@@ -673,16 +1364,16 @@ msgstr ""
 "\n"
 "  -h, --help             diese Hilfe anzeigen und beenden"
 
-#: guix/scripts/build.scm:550 guix/scripts/download.scm:85
-#: guix/scripts/package.scm:368 guix/scripts/gc.scm:78
+#: guix/scripts/build.scm:687 guix/scripts/download.scm:85
+#: guix/scripts/package.scm:380 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:97
-#: guix/scripts/substitute.scm:891 guix/scripts/system.scm:1019
-#: guix/scripts/lint.scm:1119 guix/scripts/publish.scm:96
-#: guix/scripts/edit.scm:46 guix/scripts/size.scm:236
-#: guix/scripts/graph.scm:474 guix/scripts/challenge.scm:243
-#: guix/scripts/copy.scm:124 guix/scripts/pack.scm:732
-#: guix/scripts/weather.scm:261 guix/scripts/describe.scm:73
+#: 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:73
 #: guix/scripts/processes.scm:202 guix/scripts/container.scm:36
 #: guix/scripts/container/exec.scm:45
 msgid ""
@@ -692,7 +1383,7 @@ msgstr ""
 "\n"
 "  -V, --version          Versionsinformationen anzeigen und beenden"
 
-#: guix/scripts/build.scm:577
+#: guix/scripts/build.scm:714
 #, scheme-format
 msgid ""
 "invalid argument: '~a' option argument: ~a, ~\n"
@@ -701,22 +1392,22 @@ msgstr ""
 "Ungültiges Argument der Befehlszeilenoption »~a«: ~a, ~\n"
 "muss entweder »package«, »all« oder »transitive« sein~%"
 
-#: guix/scripts/build.scm:630
+#: guix/scripts/build.scm:772
 #, scheme-format
 msgid "~s: not something we can build~%"
 msgstr "~s: Ist nichts, was Guix erstellen kann~%"
 
-#: guix/scripts/build.scm:688
+#: guix/scripts/build.scm:837
 #, scheme-format
 msgid "~a: warning: package '~a' has no source~%"
 msgstr "~a: Warnung: Paket »~a« hat keinen Quellort~%"
 
-#: guix/scripts/build.scm:726
+#: guix/scripts/build.scm:885
 #, scheme-format
 msgid "no build log for '~a'~%"
 msgstr "Kein Erstellungsprotokoll für »~a«~%"
 
-#: guix/discovery.scm:91
+#: guix/discovery.scm:92
 #, scheme-format
 msgid "cannot access `~a': ~a~%"
 msgstr "Zugriff auf »~a« nicht möglich: ~a~%"
@@ -768,11 +1459,11 @@ msgstr ""
 msgid "unsupported hash format: ~a~%"
 msgstr "Nicht unterstütztes Prüfsummenformat: ~a~%"
 
-#: guix/scripts/download.scm:138 guix/scripts/package.scm:905
-#: guix/scripts/publish.scm:883
+#: guix/scripts/download.scm:138 guix/scripts/package.scm:896
+#: guix/scripts/publish.scm:890
 #, scheme-format
 msgid "~A: extraneous argument~%"
-msgstr "~A: Zusätzliches Argument~%"
+msgstr "~A: Überzähliges Argument~%"
 
 #: guix/scripts/download.scm:146
 #, scheme-format
@@ -789,45 +1480,45 @@ msgstr "~a: URI~% konnte nicht verarbeitet werden"
 msgid "~a: download failed~%"
 msgstr "~a: Herunterladen fehlgeschlagen~%"
 
-#: guix/scripts/package.scm:109
+#: guix/scripts/package.scm:111
 #, 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:116
+#: guix/scripts/package.scm:118
 #, scheme-format
 msgid "no matching generation~%"
 msgstr "Keine passende Generation~%"
 
-#: guix/scripts/package.scm:119 guix/scripts/package.scm:707
-#: guix/scripts/system.scm:622
+#: guix/scripts/package.scm:121 guix/scripts/package.scm:693
+#: guix/scripts/system.scm:626
 #, scheme-format
 msgid "invalid syntax: ~a~%"
 msgstr "Unzulässige Syntax: ~a~%"
 
-#: guix/scripts/package.scm:148
+#: guix/scripts/package.scm:150
 #, scheme-format
 msgid "nothing to be done~%"
 msgstr "Nichts zu tun~%"
 
-#: guix/scripts/package.scm:162
+#: guix/scripts/package.scm:164
 #, scheme-format
 msgid "~a package in profile~%"
 msgid_plural "~a packages in profile~%"
 msgstr[0] "~a Paket im Profil~%"
 msgstr[1] "~a Pakete im Profil~%"
 
-#: guix/scripts/package.scm:248
+#: guix/scripts/package.scm:251
 #, scheme-format
 msgid "package '~a' no longer exists~%"
 msgstr "Paket »~a« existiert nicht mehr~%"
 
-#: guix/scripts/package.scm:286
+#: guix/scripts/package.scm:297
 #, scheme-format
 msgid "The following environment variable definitions may be needed:~%"
 msgstr "Die Definition der folgenden Umgebungsvariablen könnte nötig sein:~%"
 
-#: guix/scripts/package.scm:305
+#: guix/scripts/package.scm:317
 msgid ""
 "Usage: guix package [OPTION]...\n"
 "Install, remove, or upgrade packages in a single transaction.\n"
@@ -836,7 +1527,7 @@ msgstr ""
 "Pakete in einer einzigen Transaktion installieren,\n"
 "entfernen oder aktualisieren.\n"
 
-#: guix/scripts/package.scm:307
+#: guix/scripts/package.scm:319
 msgid ""
 "\n"
 "  -i, --install PACKAGE ...\n"
@@ -845,7 +1536,7 @@ msgstr ""
 "\n"
 "  -i, --install=PAKET …  PAKET oder PAKETE installieren"
 
-#: guix/scripts/package.scm:310
+#: guix/scripts/package.scm:322
 msgid ""
 "\n"
 "  -e, --install-from-expression=EXP\n"
@@ -856,7 +1547,7 @@ msgstr ""
 "                         das Paket installieren, zu dem AUSDRUCK ausgewertet\n"
 "                           wird"
 
-#: guix/scripts/package.scm:313
+#: guix/scripts/package.scm:325
 msgid ""
 "\n"
 "  -f, --install-from-file=FILE\n"
@@ -868,7 +1559,7 @@ msgstr ""
 "                         das Paket installieren, zu dem der Code in der DATEI\n"
 "                           ausgewertet wird"
 
-#: guix/scripts/package.scm:317
+#: guix/scripts/package.scm:329
 msgid ""
 "\n"
 "  -r, --remove PACKAGE ...\n"
@@ -877,7 +1568,7 @@ msgstr ""
 "\n"
 "  -r, --remove=PAKET …   PAKET oder PAKETE entfernen"
 
-#: guix/scripts/package.scm:320
+#: guix/scripts/package.scm:332
 msgid ""
 "\n"
 "  -u, --upgrade[=REGEXP] upgrade all the installed packages matching REGEXP"
@@ -887,7 +1578,7 @@ msgstr ""
 "                         alle installierten Pakete aktualisieren, die zum\n"
 "                           regulären Ausdruck REGEXP passen"
 
-#: guix/scripts/package.scm:322
+#: guix/scripts/package.scm:334
 msgid ""
 "\n"
 "  -m, --manifest=FILE    create a new profile generation with the manifest\n"
@@ -897,7 +1588,7 @@ msgstr ""
 "  -m, --manifest=DATEI   eine neue Profilgeneration mit dem Manifest\n"
 "                           aus DATEI erzeugen"
 
-#: guix/scripts/package.scm:325
+#: guix/scripts/package.scm:337
 msgid ""
 "\n"
 "      --do-not-upgrade[=REGEXP] do not upgrade any packages matching REGEXP"
@@ -907,7 +1598,7 @@ msgstr ""
 "                         keine Pakete aktualisieren, die zum regulären\n"
 "                           Ausdruck REGEXP passen"
 
-#: guix/scripts/package.scm:327
+#: guix/scripts/package.scm:339
 msgid ""
 "\n"
 "      --roll-back        roll back to the previous generation"
@@ -915,7 +1606,7 @@ msgstr ""
 "\n"
 "      --roll-back        zurück zur vorherigen Generation wechseln"
 
-#: guix/scripts/package.scm:329
+#: guix/scripts/package.scm:341
 msgid ""
 "\n"
 "      --search-paths[=KIND]\n"
@@ -925,7 +1616,7 @@ msgstr ""
 "      --search-paths[=ART]\n"
 "                         benötigte Definitionen von Umgebungsvariablen anzeigen"
 
-#: guix/scripts/package.scm:332 guix/scripts/pull.scm:84
+#: guix/scripts/package.scm:344 guix/scripts/pull.scm:90
 msgid ""
 "\n"
 "  -l, --list-generations[=PATTERN]\n"
@@ -935,7 +1626,7 @@ msgstr ""
 "  -l, --list-generations[=MUSTER]\n"
 "                         zum MUSTER passende Generationen auflisten"
 
-#: guix/scripts/package.scm:335
+#: guix/scripts/package.scm:347
 msgid ""
 "\n"
 "  -d, --delete-generations[=PATTERN]\n"
@@ -945,7 +1636,7 @@ msgstr ""
 "  -d, --delete-generations[=MUSTER]\n"
 "                         zum MUSTER passende Generationen löschen"
 
-#: guix/scripts/package.scm:338
+#: guix/scripts/package.scm:350
 msgid ""
 "\n"
 "  -S, --switch-generation=PATTERN\n"
@@ -955,7 +1646,7 @@ msgstr ""
 "  -S, --switch-generation=MUSTER\n"
 "                         zu einer zum MUSTER passenden Generation wechseln"
 
-#: guix/scripts/package.scm:341
+#: guix/scripts/package.scm:353
 msgid ""
 "\n"
 "  -p, --profile=PROFILE  use PROFILE instead of the user's default profile"
@@ -964,7 +1655,7 @@ msgstr ""
 "  -p, --profile=PROFIL   PROFIL benutzen anstelle des Standardprofils\n"
 "                           des Nutzers"
 
-#: guix/scripts/package.scm:344
+#: guix/scripts/package.scm:356
 msgid ""
 "\n"
 "      --allow-collisions do not treat collisions in the profile as an error"
@@ -973,7 +1664,7 @@ msgstr ""
 "      --allow-collisions\n"
 "                         Kollisionen im Profil nicht als Fehler auffassen"
 
-#: guix/scripts/package.scm:346
+#: guix/scripts/package.scm:358
 msgid ""
 "\n"
 "      --bootstrap        use the bootstrap Guile to build the profile"
@@ -982,15 +1673,7 @@ msgstr ""
 "      --bootstrap        das Bootstrap-Guile benutzen, um das Profil zu\n"
 "                           erstellen"
 
-#: guix/scripts/package.scm:348 guix/scripts/pull.scm:74
-msgid ""
-"\n"
-"      --verbose          produce verbose output"
-msgstr ""
-"\n"
-"      --verbose          ausführliche Ausgaben anzeigen"
-
-#: guix/scripts/package.scm:351
+#: guix/scripts/package.scm:363
 msgid ""
 "\n"
 "  -s, --search=REGEXP    search in synopsis and description using REGEXP"
@@ -998,7 +1681,7 @@ msgstr ""
 "\n"
 "  -s, --search=REGEXP    in Zusammenfassung und Beschreibung mit REGEXP suchen"
 
-#: guix/scripts/package.scm:353
+#: guix/scripts/package.scm:365
 msgid ""
 "\n"
 "  -I, --list-installed[=REGEXP]\n"
@@ -1008,7 +1691,7 @@ msgstr ""
 "  -I, --list-installed[=REGEXP]\n"
 "                         zu REGEXP passende installierte Pakete auflisten"
 
-#: guix/scripts/package.scm:356
+#: guix/scripts/package.scm:368
 msgid ""
 "\n"
 "  -A, --list-available[=REGEXP]\n"
@@ -1018,7 +1701,7 @@ msgstr ""
 "  -A, --list-available[=REGEXP]\n"
 "                         zu REGEXP passende verfügbare Pakete auflisten"
 
-#: guix/scripts/package.scm:359
+#: guix/scripts/package.scm:371
 msgid ""
 "\n"
 "      --show=PACKAGE     show details about PACKAGE"
@@ -1026,44 +1709,44 @@ msgstr ""
 "\n"
 "      --show=PAKET       Details zu PAKET anzeigen"
 
-#: guix/scripts/package.scm:411
+#: guix/scripts/package.scm:423
 #, 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:414
+#: guix/scripts/package.scm:426
 #, scheme-format
 msgid "is this intended?~%"
 msgstr "Ist das gewollt?~%"
 
-#: guix/scripts/package.scm:459
+#: guix/scripts/package.scm:471
 #, scheme-format
 msgid "~a: unsupported kind of search path~%"
 msgstr "~a: Nicht unterstützte Art von Suchpfad~%"
 
-#: guix/scripts/package.scm:776
+#: guix/scripts/package.scm:767
 #, scheme-format
 msgid "~a~@[@~a~]: package not found~%"
 msgstr "~a~@[@~a~]: Paket nicht gefunden~%"
 
-#: guix/scripts/package.scm:810
+#: guix/scripts/package.scm:801
 #, scheme-format
 msgid "cannot switch to generation '~a'~%"
 msgstr "Zu Generation »~a« kann nicht gewechselt werden~%"
 
-#: guix/scripts/package.scm:827
+#: guix/scripts/package.scm:818
 #, scheme-format
 msgid "would install new manifest from '~a' with ~d entries~%"
 msgstr "Neues Manifest aus »~a« mit ~d Einträgen würde installiert~%"
 
-#: guix/scripts/package.scm:829
+#: guix/scripts/package.scm:820
 #, scheme-format
 msgid "installing new manifest from '~a' with ~d entries~%"
 msgstr "Neues Manifest aus »~a« mit ~d Einträgen wird installiert~%"
 
-#: guix/scripts/gc.scm:42
+#: guix/scripts/gc.scm:45
 msgid ""
 "Usage: guix gc [OPTION]... PATHS...\n"
 "Invoke the garbage collector.\n"
@@ -1071,7 +1754,7 @@ msgstr ""
 "Aufruf: guix gc [OPTION] … PFADE …\n"
 "Den Müllsammler aufrufen.\n"
 
-#: guix/scripts/gc.scm:44
+#: guix/scripts/gc.scm:47
 msgid ""
 "\n"
 "  -C, --collect-garbage[=MIN]\n"
@@ -1081,7 +1764,7 @@ msgstr ""
 "  -C, --collect-garbage[=MIN]\n"
 "                         mindestens MIN Bytes an Müll sammeln"
 
-#: guix/scripts/gc.scm:47
+#: guix/scripts/gc.scm:50
 msgid ""
 "\n"
 "  -F, --free-space=FREE  attempt to reach FREE available space in the store"
@@ -1091,15 +1774,33 @@ msgstr ""
 "                         versuchen, im Store die angegebene MENGE an Speicher\n"
 "                           frei zu machen"
 
-#: guix/scripts/gc.scm:49
+#: guix/scripts/gc.scm:52
 msgid ""
 "\n"
-"  -d, --delete           attempt to delete PATHS"
+"  -d, --delete-generations[=PATTERN]\n"
+"                         delete profile generations matching PATTERN"
 msgstr ""
 "\n"
-"  -d, --delete           PFADE zu löschen versuchen"
+"  -d, --delete-generations[=MUSTER]\n"
+"                         zum MUSTER passende Profilgenerationen löschen"
 
-#: guix/scripts/gc.scm:51
+#: guix/scripts/gc.scm:55
+msgid ""
+"\n"
+"  -D, --delete           attempt to delete PATHS"
+msgstr ""
+"\n"
+"  -D, --delete           PFADE zu löschen versuchen"
+
+#: guix/scripts/gc.scm:57
+msgid ""
+"\n"
+"      --list-roots       list the user's garbage collector roots"
+msgstr ""
+"\n"
+"      --list-roots       Müllsammlerwurzeln des Benutzers auflisten"
+
+#: guix/scripts/gc.scm:59
 msgid ""
 "\n"
 "      --optimize         optimize the store by deduplicating identical files"
@@ -1108,7 +1809,7 @@ msgstr ""
 "      --optimize         den Store durch Deduplizieren identischer\n"
 "                           Dateien optimieren"
 
-#: guix/scripts/gc.scm:53
+#: guix/scripts/gc.scm:61
 msgid ""
 "\n"
 "      --list-dead        list dead paths"
@@ -1116,7 +1817,7 @@ msgstr ""
 "\n"
 "      --list-dead        tote Pfade auflisten"
 
-#: guix/scripts/gc.scm:55
+#: guix/scripts/gc.scm:63
 msgid ""
 "\n"
 "      --list-live        list live paths"
@@ -1124,7 +1825,7 @@ msgstr ""
 "\n"
 "      --list-live        lebende Pfade auflisten"
 
-#: guix/scripts/gc.scm:58
+#: guix/scripts/gc.scm:66
 msgid ""
 "\n"
 "      --references       list the references of PATHS"
@@ -1132,7 +1833,7 @@ msgstr ""
 "\n"
 "      --references       Referenzen der PFADE auflisten"
 
-#: guix/scripts/gc.scm:60
+#: guix/scripts/gc.scm:68
 msgid ""
 "\n"
 "  -R, --requisites       list the requisites of PATHS"
@@ -1140,7 +1841,7 @@ msgstr ""
 "\n"
 "  -R, --requisites       Voraussetzungen der PFADE auflisten"
 
-#: guix/scripts/gc.scm:62
+#: guix/scripts/gc.scm:70
 msgid ""
 "\n"
 "      --referrers        list the referrers of PATHS"
@@ -1148,7 +1849,7 @@ msgstr ""
 "\n"
 "      --referrers        auflisten, wo die PFADE referenziert werden"
 
-#: guix/scripts/gc.scm:64
+#: guix/scripts/gc.scm:72
 msgid ""
 "\n"
 "      --derivers         list the derivers of PATHS"
@@ -1156,7 +1857,7 @@ msgstr ""
 "\n"
 "      --derivers         die Ableiter der PFADE auflisten"
 
-#: guix/scripts/gc.scm:67
+#: guix/scripts/gc.scm:75
 msgid ""
 "\n"
 "      --verify[=OPTS]    verify the integrity of the store; OPTS is a\n"
@@ -1169,7 +1870,7 @@ msgstr ""
 "                           eine kommagetrennte Kombination aus\n"
 "                           »repair« (reparieren) und »contents« (Inhalt)"
 
-#: guix/scripts/gc.scm:71
+#: guix/scripts/gc.scm:79
 msgid ""
 "\n"
 "      --list-failures    list cached build failures"
@@ -1177,7 +1878,7 @@ msgstr ""
 "\n"
 "      --list-failures    gespeicherte Fehlschläge beim Erstellen auflisten"
 
-#: guix/scripts/gc.scm:73
+#: guix/scripts/gc.scm:81
 msgid ""
 "\n"
 "      --clear-failures   remove PATHS from the set of cached failures"
@@ -1185,30 +1886,40 @@ msgstr ""
 "\n"
 "      --clear-failures   PFADE aus der Menge gespeicherter Fehlschläge entfernen"
 
-#: guix/scripts/gc.scm:87
+#: guix/scripts/gc.scm:95
 #, scheme-format
 msgid "~a: invalid '--verify' option~%"
 msgstr "~a: Ungültige Argumente für »--verify«~%"
 
-#: guix/scripts/gc.scm:117
+#: guix/scripts/gc.scm:135
 #, scheme-format
 msgid "invalid amount of storage: ~a~%"
 msgstr "Ungültige Speichermenge: ~a~%"
 
-#: guix/scripts/gc.scm:202
+#: guix/scripts/gc.scm:149
+#, scheme-format
+msgid "'-d' as an alias for '--delete' is deprecated; use '-D'~%"
+msgstr "»-d« anstatt »--delete« zu schreiben, ist obsolet, benutzen Sie »-D«~%"
+
+#: guix/scripts/gc.scm:156
+#, scheme-format
+msgid "~s does not denote a duration~%"
+msgstr "~s gibt keine Dauer an~%"
+
+#: guix/scripts/gc.scm:239
 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:205
+#: guix/scripts/gc.scm:242
 msgid "freeing ~h MiBs~%"
 msgstr "~h MiB werden freigegeben~%"
 
-#: guix/scripts/gc.scm:217
+#: guix/scripts/gc.scm:275
 #, scheme-format
 msgid "extraneous arguments: ~{~a ~}~%"
 msgstr "Zusätzliche Argumente: ~{~a ~}~%"
 
-#: guix/scripts/gc.scm:237 guix/scripts/gc.scm:240
+#: guix/scripts/gc.scm:299 guix/scripts/gc.scm:302
 msgid "freed ~h MiBs~%"
 msgstr "~h MiB wurden freigegeben~%"
 
@@ -1242,13 +1953,16 @@ msgstr ""
 "\n"
 "  -r, --recursive        die Prüfsumme der DATEI rekursiv errechnen"
 
-#: guix/scripts/hash.scm:151 guix/ui.scm:371 guix/ui.scm:728 guix/ui.scm:781
+#: guix/scripts/hash.scm:151 guix/ui.scm:443 guix/ui.scm:450 guix/ui.scm:475
+#: guix/ui.scm:785 guix/ui.scm:807 guix/ui.scm:813 guix/ui.scm:819
+#: guix/ui.scm:872
 #, scheme-format
 msgid "~a~%"
 msgstr "~a~%"
 
-#: guix/scripts/hash.scm:154 guix/scripts/system.scm:1189
-#: guix/scripts/system.scm:1198 guix/scripts/system.scm:1205
+#: 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
 #, scheme-format
 msgid "wrong number of arguments~%"
 msgstr "Falsche Argumentanzahl~%"
@@ -1341,7 +2055,7 @@ msgid ""
 "  -h, --help                     display this help and exit"
 msgstr ""
 "\n"
-"  -h, --help                     diese Hilfe anzeigen und beenden"
+"  -h, --help             diese Hilfe anzeigen und beenden"
 
 #: guix/scripts/import/elpa.scm:50
 msgid ""
@@ -1358,14 +2072,14 @@ msgid ""
 "  -V, --version                  display version information and exit"
 msgstr ""
 "\n"
-"  -V, --version                  Versionsinformationen anzeigen und beenden"
+"  -V, --version          Versionsinformationen anzeigen und beenden"
 
 #: guix/scripts/import/elpa.scm:110
 #, scheme-format
 msgid "failed to download package '~a'~%"
 msgstr "Paket »~a« konnte nicht heruntergeladen werden~%"
 
-#: guix/scripts/pull.scm:72
+#: guix/scripts/pull.scm:76
 msgid ""
 "Usage: guix pull [OPTION]...\n"
 "Download and deploy the latest version of Guix.\n"
@@ -1373,7 +2087,15 @@ msgstr ""
 "Aufruf: guix pull [OPTION] …\n"
 "Die neuste Version von Guix herunterladen und installieren.\n"
 
-#: guix/scripts/pull.scm:76
+#: guix/scripts/pull.scm:78
+msgid ""
+"\n"
+"      --verbose          produce verbose output"
+msgstr ""
+"\n"
+"      --verbose          ausführliche Ausgaben anzeigen"
+
+#: guix/scripts/pull.scm:80
 msgid ""
 "\n"
 "  -C, --channels=FILE    deploy the channels defined in FILE"
@@ -1381,7 +2103,7 @@ msgstr ""
 "\n"
 "  -C, --channels=DATEI   in der DATEI definierte Kanäle laden"
 
-#: guix/scripts/pull.scm:78
+#: guix/scripts/pull.scm:82
 msgid ""
 "\n"
 "      --url=URL          download from the Git repository at URL"
@@ -1389,7 +2111,7 @@ msgstr ""
 "\n"
 "      --url=URL          das Tar-Archiv von Guix von URL herunterladen"
 
-#: guix/scripts/pull.scm:80
+#: guix/scripts/pull.scm:84
 msgid ""
 "\n"
 "      --commit=COMMIT    download the specified COMMIT"
@@ -1397,7 +2119,7 @@ msgstr ""
 "\n"
 "      --commit=COMMIT    den angegebenen COMMIT herunterladen"
 
-#: guix/scripts/pull.scm:82
+#: guix/scripts/pull.scm:86
 msgid ""
 "\n"
 "      --branch=BRANCH    download the tip of the specified BRANCH"
@@ -1405,25 +2127,24 @@ msgstr ""
 "\n"
 "      --branch=BRANCH    die Spitze des angegebenen Branchs herunterladen"
 
-#: guix/scripts/pull.scm:87
-#, scheme-format
+#: guix/scripts/pull.scm:88
 msgid ""
 "\n"
-"  -p, --profile=PROFILE  use PROFILE instead of ~/.config/guix/current"
+"  -N, --news             display news compared to the previous generation"
 msgstr ""
 "\n"
-"  -p, --profile=PROFIL   PROFIL benutzen statt ~/.config/guix/current"
+"  -N, --news             Neuerungen seit der vorherigen Generation anzeigen"
 
-#: guix/scripts/pull.scm:89
+#: guix/scripts/pull.scm:93
+#, scheme-format
 msgid ""
 "\n"
-"  -n, --dry-run          show what would be pulled and built"
+"  -p, --profile=PROFILE  use PROFILE instead of ~/.config/guix/current"
 msgstr ""
 "\n"
-"  -n, --dry-run          anzeigen, was heruntergeladen und\n"
-"                           erstellt würde"
+"  -p, --profile=PROFIL   PROFIL benutzen statt ~/.config/guix/current"
 
-#: guix/scripts/pull.scm:91
+#: guix/scripts/pull.scm:99
 msgid ""
 "\n"
 "      --bootstrap        use the bootstrap Guile to build the new Guix"
@@ -1432,63 +2153,80 @@ msgstr ""
 "      --bootstrap        das Bootstrap-Guile benutzen, um das neue Guix zu\n"
 "                           erstellen"
 
-#: guix/scripts/pull.scm:165
+#: guix/scripts/pull.scm:196
 msgid "New in this revision:\n"
 msgstr "Neu in dieser Version:\n"
 
-#: guix/scripts/pull.scm:223
+#: guix/scripts/pull.scm:221
+#, scheme-format
+msgid ""
+"After setting @code{PATH}, run\n"
+"@command{hash guix} to make sure your shell refers to @file{~a}."
+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:245
 #, scheme-format
 msgid "Git error ~a~%"
 msgstr "Git-Fehler ~a~%"
 
-#: guix/scripts/pull.scm:225
+#: guix/scripts/pull.scm:247 guix/git.scm:306
 #, scheme-format
 msgid "Git error: ~a~%"
 msgstr "Git-Fehler: ~a~%"
 
-#: guix/scripts/pull.scm:250
+#: guix/scripts/pull.scm:272
 #, scheme-format
 msgid "Migrating profile generations to '~a'...~%"
 msgstr "Verschiebe Profilgenerationen nach »~a« …~%"
 
-#: guix/scripts/pull.scm:285
+#: guix/scripts/pull.scm:307
 #, scheme-format
 msgid "while creating symlink '~a': ~a~%"
 msgstr "Beim Erstellen einer symbolischen Verknüpfung »~a«: ~a~%"
 
-#: guix/scripts/pull.scm:307
+#: guix/scripts/pull.scm:329
 #, scheme-format
 msgid "    repository URL: ~a~%"
 msgstr "    Repository-URL: ~a~%"
 
-#: guix/scripts/pull.scm:309
+#: guix/scripts/pull.scm:331
 #, scheme-format
 msgid "    branch: ~a~%"
 msgstr "    Branch: ~a~%"
 
-#: guix/scripts/pull.scm:310
+#: guix/scripts/pull.scm:332
 #, scheme-format
 msgid "    commit: ~a~%"
 msgstr "    Commit: ~a~%"
 
-#: guix/scripts/pull.scm:376
+#: guix/scripts/pull.scm:434
 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:387
+#: guix/scripts/pull.scm:442
 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:451
+msgid ""
+"Run @command{guix pull --news} to view the complete\n"
+"list of package changes."
+msgstr ""
+"Führen Sie @command{guix pull --news} aus, um die vollständige\n"
+"Liste der Änderungen an Paketen einzusehen."
+
+#: guix/scripts/pull.scm:515
 #, scheme-format
 msgid "'~a' did not return a list of channels~%"
 msgstr "»~a« hat keine Liste von Kanälen geliefert~%"
 
-#: guix/scripts/pull.scm:465
+#: guix/scripts/pull.scm:529
 #, scheme-format
 msgid ""
 "The 'GUIX_PULL_URL' environment variable is deprecated.\n"
@@ -1497,12 +2235,7 @@ msgstr ""
 "Die Umgebungsvariable »GUIX_PULL_URL« wird nicht mehr lange unterstützt.\n"
 "Benutzen Sie stattdessen »~/.config/guix/channels.scm«."
 
-#: guix/scripts/pull.scm:490
-#, scheme-format
-msgid "'--url', '--commit', and '--branch' are not applicable~%"
-msgstr "»--url«, »--commit« und »--branch« passen hier nicht.~%"
-
-#: guix/scripts/pull.scm:515
+#: guix/scripts/pull.scm:578
 #, scheme-format
 msgid "Building from this channel:~%"
 msgid_plural "Building from these channels:~%"
@@ -1584,37 +2317,37 @@ msgstr "»~a« wurde mit einem unautorisierten Schlüssel signiert~%"
 msgid "signature on '~a' is corrupt~%"
 msgstr "Signatur von »~a« ist beschädigt~%"
 
-#: guix/scripts/substitute.scm:458
+#: guix/scripts/substitute.scm:467
 #, scheme-format
 msgid "'~a' does not name a store item~%"
 msgstr "»~a« benennt kein Objekt im Store~%"
 
-#: guix/scripts/substitute.scm:620
+#: guix/scripts/substitute.scm:629
 #, scheme-format
 msgid "updating substitutes from '~a'... ~5,1f%"
 msgstr "Liste der Substitute von »~a« wird aktualisiert … ~5,1f%"
 
-#: guix/scripts/substitute.scm:684
+#: guix/scripts/substitute.scm:693
 #, scheme-format
 msgid "~s: unsupported server URI scheme~%"
 msgstr "~s: Nicht unterstütztes URI-Schema für den Server~%"
 
-#: guix/scripts/substitute.scm:694
+#: guix/scripts/substitute.scm:703
 #, scheme-format
 msgid "'~a' uses different store '~a'; ignoring it~%"
 msgstr "»~a« verwendet einen anderen Store »~a«; wird ignoriert~%"
 
-#: guix/scripts/substitute.scm:863
+#: guix/scripts/substitute.scm:872
 #, scheme-format
 msgid "host name lookup error: ~a~%"
 msgstr "Fehler beim Nachschlagen des Rechnernamens: ~a~%"
 
-#: guix/scripts/substitute.scm:868
+#: guix/scripts/substitute.scm:877
 #, scheme-format
 msgid "TLS error in procedure '~a': ~a~%"
 msgstr "TLS-Fehler in Prozedur »~a«: ~a~%"
 
-#: guix/scripts/substitute.scm:879
+#: guix/scripts/substitute.scm:888
 msgid ""
 "Usage: guix substitute [OPTION]...\n"
 "Internal tool to substitute a pre-built binary to a local build.\n"
@@ -1623,7 +2356,7 @@ msgstr ""
 "Internes Werkzeug zum Substituieren einer vorab erstellten Binärdatei zu einer\n"
 "lokalen Erstellung.\n"
 
-#: guix/scripts/substitute.scm:881
+#: guix/scripts/substitute.scm:890
 msgid ""
 "\n"
 "      --query            report on the availability of substitutes for the\n"
@@ -1634,7 +2367,7 @@ msgstr ""
 "                           Standardeingabe übermittelten Store-Dateinamen\n"
 "                           berichten"
 
-#: guix/scripts/substitute.scm:884
+#: guix/scripts/substitute.scm:893
 msgid ""
 "\n"
 "      --substitute STORE-FILE DESTINATION\n"
@@ -1646,28 +2379,28 @@ msgstr ""
 "                         STORE-DATEI herunterladen und als ein Nar in einer\n"
 "                           Datei namens ZIEL speichern"
 
-#: guix/scripts/substitute.scm:949
+#: guix/scripts/substitute.scm:958
 #, scheme-format
 msgid "no valid substitute for '~a'~%"
 msgstr "Kein gültiges Substitut für »~a«~%"
 
-#: guix/scripts/substitute.scm:957
+#: guix/scripts/substitute.scm:966
 #, scheme-format
 msgid "Downloading ~a...~%"
 msgstr "~a wird heruntergeladen …~%"
 
-#: guix/scripts/substitute.scm:1019
+#: guix/scripts/substitute.scm:1028
 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:1073
+#: guix/scripts/substitute.scm:1082
 #, scheme-format
 msgid "~a: invalid URI~%"
 msgstr "~a: Ungültige URI~%"
 
-#: guix/scripts/substitute.scm:1144
+#: guix/scripts/substitute.scm:1153
 #, scheme-format
 msgid "~a: unrecognized options~%"
 msgstr "~a: Nicht erkannte Optionen~%"
@@ -1708,79 +2441,79 @@ msgstr ""
 msgid "wrong arguments"
 msgstr "Falsche Argumente"
 
-#: guix/scripts/system.scm:148
+#: guix/scripts/system.scm:150
 #, scheme-format
 msgid "failed to register '~a' under '~a'~%"
 msgstr "»~a« konnte nicht unter »~a« registriert werden~%"
 
-#: guix/scripts/system.scm:163
+#: guix/scripts/system.scm:165
 #, scheme-format
 msgid "copying to '~a'..."
 msgstr "Nach »~a« kopieren …"
 
-#: guix/scripts/system.scm:204
+#: guix/scripts/system.scm:206
 #, scheme-format
 msgid "failed to install bootloader ~a~%"
 msgstr "Bootloader »~a« konnte nicht installiert werden~%~%"
 
-#: guix/scripts/system.scm:224
+#: guix/scripts/system.scm:226
 #, scheme-format
 msgid "initializing the current root file system~%"
 msgstr "Aktuelles Wurzeldateisystem wird initialisiert~%"
 
-#: guix/scripts/system.scm:238
+#: guix/scripts/system.scm:240
 #, 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:290
+#: guix/scripts/system.scm:292
 #, scheme-format
 msgid "while talking to shepherd: ~a~%"
 msgstr "Bei der Kommunikation mit Shepherd: ~a~%"
 
-#: guix/scripts/system.scm:297
+#: guix/scripts/system.scm:299
 #, scheme-format
 msgid "service '~a' could not be found~%"
 msgstr "Dienst »~a« konnte nicht gefunden werden~%"
 
-#: guix/scripts/system.scm:300
+#: guix/scripts/system.scm:302
 #, scheme-format
 msgid "service '~a' does not have an action '~a'~%"
 msgstr "Dienst »~a« hat keine Aktion »~a«~%"
 
-#: guix/scripts/system.scm:304
+#: guix/scripts/system.scm:306
 #, 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:312
+#: guix/scripts/system.scm:314
 #, scheme-format
 msgid "something went wrong: ~s~%"
 msgstr "Etwas ist schiefgelaufen: ~s~%"
 
-#: guix/scripts/system.scm:315
+#: guix/scripts/system.scm:317
 #, scheme-format
 msgid "shepherd error~%"
 msgstr "Shepherd-Fehler~%"
 
-#: guix/scripts/system.scm:332
+#: guix/scripts/system.scm:334
 #, scheme-format
 msgid "failed to obtain list of shepherd services~%"
 msgstr "Liste der Shepherd-Dienste konnte nicht abgerufen werden.~%"
 
-#: guix/scripts/system.scm:352
+#: guix/scripts/system.scm:354
 #, scheme-format
 msgid "unloading service '~a'...~%"
 msgstr "Dienst »~a« entladen …~%"
 
-#: guix/scripts/system.scm:361
+#: guix/scripts/system.scm:363
 #, scheme-format
 msgid "loading new services:~{ ~a~}...~%"
 msgstr "Neue Dienste laden:~{ ~a~} …~%"
 
-#: guix/scripts/system.scm:366
+#: 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"
@@ -1789,41 +2522,41 @@ 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:393
+#: guix/scripts/system.scm:395
 #, scheme-format
 msgid "activating system...~%"
 msgstr "System wird aktiviert …~%"
 
-#: guix/scripts/system.scm:471
+#: guix/scripts/system.scm:473
 #, scheme-format
 msgid "cannot switch to system generation '~a'~%"
 msgstr "Zu Generation »~a« kann nicht gewechselt werden~%"
 
-#: guix/scripts/system.scm:542
+#: guix/scripts/system.scm:546
 msgid "the DAG of services"
 msgstr "gerichteter azyklischer Graph der Dienste"
 
-#: guix/scripts/system.scm:555
+#: guix/scripts/system.scm:559
 msgid "the dependency graph of shepherd services"
 msgstr "Abhängigkeitsgraph der Shepherd-Dienste"
 
-#: guix/scripts/system.scm:579
+#: guix/scripts/system.scm:583
 #, scheme-format
 msgid "  file name: ~a~%"
 msgstr "  Dateiname: ~a~%"
 
-#: guix/scripts/system.scm:580
+#: guix/scripts/system.scm:584
 #, scheme-format
 msgid "  canonical file name: ~a~%"
 msgstr "  kanonischer Dateiname: ~a~%"
 
 #. TRANSLATORS: Please preserve the two-space indentation.
-#: guix/scripts/system.scm:582
+#: guix/scripts/system.scm:586
 #, scheme-format
 msgid "  label: ~a~%"
 msgstr "  Bezeichnung: ~a~%"
 
-#: guix/scripts/system.scm:583
+#: guix/scripts/system.scm:587
 #, scheme-format
 msgid "  bootloader: ~a~%"
 msgstr "  Bootloader: ~a~%"
@@ -1836,22 +2569,22 @@ msgstr "  Bootloader: ~a~%"
 #. root device: label: "my-root"
 #. or just:
 #. root device: /dev/sda3
-#: guix/scripts/system.scm:593
+#: guix/scripts/system.scm:597
 #, scheme-format
 msgid "  root device: ~[UUID: ~a~;label: ~s~;~a~]~%"
 msgstr "  Root-Gerät: ~[UUID: ~a~;label: ~s~;~a~]~%"
 
-#: guix/scripts/system.scm:604
+#: guix/scripts/system.scm:608
 #, scheme-format
 msgid "  kernel: ~a~%"
 msgstr "  Kernel: ~a~%"
 
-#: guix/scripts/system.scm:675
+#: guix/scripts/system.scm:679
 #, scheme-format
 msgid "~a: error: device '~a' not found: ~a~%"
 msgstr "~a: Fehler: Gerät »~a« nicht gefunden: ~a~%"
 
-#: guix/scripts/system.scm:679
+#: guix/scripts/system.scm:683
 #, scheme-format
 msgid ""
 "If '~a' is a file system\n"
@@ -1860,37 +2593,37 @@ msgstr ""
 "Falls »~a« ein Dateisystem bezeichnet, schreiben Sie\n"
 "@code{(file-system-label ~s)} in Ihr @code{device}-Feld."
 
-#: guix/scripts/system.scm:687
+#: guix/scripts/system.scm:691
 #, scheme-format
 msgid "~a: error: file system with label '~a' not found~%"
 msgstr "~a: Fehler: Kein Dateisystem mit Bezeichnung »~a« gefunden~%"
 
-#: guix/scripts/system.scm:692
+#: guix/scripts/system.scm:696
 #, scheme-format
 msgid "~a: error: file system with UUID '~a' not found~%"
 msgstr "~a: Fehler: Kein Dateisystem mit UUID »~a« gefunden~%"
 
-#: guix/scripts/system.scm:793
+#: guix/scripts/system.scm:797
 #, scheme-format
 msgid "~a not found: 'guix pull' was never run~%"
 msgstr "~a nicht gefunden: »guix pull« wurde nie aufgerufen~%"
 
-#: guix/scripts/system.scm:794
+#: guix/scripts/system.scm:798
 #, scheme-format
 msgid "Consider running 'guix pull' before 'reconfigure'.~%"
 msgstr "Vielleicht möchten Sie »guix pull« ausführen vor »reconfigure«.~%"
 
-#: guix/scripts/system.scm:795
+#: guix/scripts/system.scm:799
 #, scheme-format
 msgid "Failing to do that may downgrade your system!~%"
-msgstr "Andernfalls könnte Ihr System auf einen älteren Stand heruntergestuft werden!~%"
+msgstr "Andernfalls könnte Ihr System auf einen älteren Stand zurückgesetzt werden!~%"
 
-#: guix/scripts/system.scm:907
+#: guix/scripts/system.scm:920
 #, scheme-format
 msgid "initializing operating system under '~a'...~%"
 msgstr "Betriebssystem unter »~a« wird initialisiert …~%"
 
-#: guix/scripts/system.scm:952
+#: guix/scripts/system.scm:965
 msgid ""
 "Usage: guix system [OPTION ...] ACTION [ARG ...] [FILE]\n"
 "Build the operating system declared in FILE according to ACTION.\n"
@@ -1900,73 +2633,77 @@ msgstr ""
 "Das in DATEI deklarierte Betriebssystem entsprechend der AKTION erstellen.\n"
 "Manche AKTIONEN unterstützen weitere ARGUMENTE.\n"
 
-#: guix/scripts/system.scm:956 guix/scripts/container.scm:29
+#: guix/scripts/system.scm:969 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:958
+#: guix/scripts/system.scm:971
 msgid "   search           search for existing service types\n"
-msgstr "   search             suche nach bestehenden Diensttypen\n"
+msgstr "   search              suche nach bestehenden Diensttypen\n"
 
-#: guix/scripts/system.scm:960
+#: guix/scripts/system.scm:973
 msgid "   reconfigure      switch to a new operating system configuration\n"
-msgstr "   reconfigure        zur neuen Betriebssystemkonfiguration wechseln\n"
+msgstr "   reconfigure         zur neuen Betriebssystemkonfiguration wechseln\n"
 
-#: guix/scripts/system.scm:962
+#: guix/scripts/system.scm:975
 msgid "   roll-back        switch to the previous operating system configuration\n"
-msgstr "   roll-back          zur vorherigen Betriebssystemkonfiguration wechseln\n"
+msgstr "   roll-back           zur vorherigen Betriebssystemkonfiguration wechseln\n"
+
+#: guix/scripts/system.scm:977
+msgid "   list-generations list the system generations\n"
+msgstr "   list-generations    die Systemgenerationen auflisten\n"
 
-#: guix/scripts/system.scm:964
+#: guix/scripts/system.scm:979
 msgid "   switch-generation switch to an existing operating system configuration\n"
-msgstr "   switch-generation  zu einer bestehenden Betriebssystemkonfiguration wechseln\n"
+msgstr "   switch-generation   zu einer bestehenden Betriebssystemkonfiguration wechseln\n"
 
-#: guix/scripts/system.scm:966
-msgid "   list-generations list the system generations\n"
-msgstr "   list-generations   die Systemgenerationen auflisten\n"
+#: guix/scripts/system.scm:981
+msgid "   delete-generations delete old system generations\n"
+msgstr "   delete-generations  alte Systemgenerationen löschen\n"
 
-#: guix/scripts/system.scm:968
+#: guix/scripts/system.scm:983
 msgid "   build            build the operating system without installing anything\n"
-msgstr "   build              das Betriebssystem erstellen, ohne etwas zu installieren\n"
+msgstr "   build               das Betriebssystem erstellen, ohne etwas zu installieren\n"
 
-#: guix/scripts/system.scm:970
+#: guix/scripts/system.scm:985
 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"
+"   container           einen Container erstellen, der den Store mit dem\n"
+"                         Wirtssystem teilt\n"
 
-#: guix/scripts/system.scm:972
+#: guix/scripts/system.scm:987
 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"
+"   vm                  ein Image für eine virtuelle Maschine erstellen, das den\n"
+"                         Store mit dem Wirtssystem teilt\n"
 
-#: guix/scripts/system.scm:974
+#: guix/scripts/system.scm:989
 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"
+"   vm-image            ein unabhängiges Image für eine virtuelle Maschine\n"
+"                         erstellen\n"
 
-#: guix/scripts/system.scm:976
+#: guix/scripts/system.scm:991
 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"
+msgstr "   disk-image          ein Disk-Image z.B. für einen USB-Stick erstellen\n"
 
-#: guix/scripts/system.scm:978
+#: guix/scripts/system.scm:993
 msgid "   docker-image     build a Docker image\n"
-msgstr "   docker-image       ein Docker-Image z.B. für einen USB-Stick erstellen\n"
+msgstr "   docker-image        ein Docker-Image z.B. für einen USB-Stick erstellen\n"
 
-#: guix/scripts/system.scm:980
+#: guix/scripts/system.scm:995
 msgid "   init             initialize a root file system to run GNU\n"
-msgstr "   init               ein Wurzeldateisystem initialisieren, um GNU auszuführen.\n"
+msgstr "   init                ein Wurzeldateisystem initialisieren, um GNU auszuführen\n"
 
-#: guix/scripts/system.scm:982
+#: guix/scripts/system.scm:997
 msgid "   extension-graph  emit the service extension graph in Dot format\n"
-msgstr "   extension-graph    den Erweiterungsgraphen im Dot-Format ausgeben\n"
+msgstr "   extension-graph     den Erweiterungsgraphen im Dot-Format ausgeben\n"
 
-#: guix/scripts/system.scm:984
+#: guix/scripts/system.scm:999
 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"
+msgstr "   shepherd-graph      den Graphen der Shepherd-Dienste im Dot-Format ausgeben\n"
 
-#: guix/scripts/system.scm:988
+#: guix/scripts/system.scm:1003
 msgid ""
 "\n"
 "  -d, --derivation       return the derivation of the given system"
@@ -1974,7 +2711,7 @@ msgstr ""
 "\n"
 "  -d, --derivation       die Ableitung des gegebenen Systems liefern"
 
-#: guix/scripts/system.scm:990
+#: guix/scripts/system.scm:1005
 msgid ""
 "\n"
 "  -e, --expression=EXPR  consider the operating-system EXPR evaluates to\n"
@@ -1985,18 +2722,20 @@ msgstr ""
 "                         das operating-system betrachten, zu dem AUSDRUCK\n"
 "                           ausgewertet wird, statt etwa eine DATEI auszulesen"
 
-#: guix/scripts/system.scm:993
+#: guix/scripts/system.scm:1008
 msgid ""
 "\n"
 "      --on-error=STRATEGY\n"
-"                         apply STRATEGY when an error occurs while reading FILE"
+"                         apply STRATEGY (one of nothing-special, backtrace,\n"
+"                         or debug) when an error occurs while reading FILE"
 msgstr ""
 "\n"
 "      --on-error=STRATEGIE\n"
-"                         STRATEGIE anwenden, wenn beim Lesen der DATEI ein\n"
+"                         STRATEGIE (entweder nothing-special, backtrace oder\n"
+"                           debug) anwenden, wenn beim Lesen der DATEI ein\n"
 "                           Fehler auftritt"
 
-#: guix/scripts/system.scm:996
+#: guix/scripts/system.scm:1012
 msgid ""
 "\n"
 "      --file-system-type=TYPE\n"
@@ -2008,7 +2747,7 @@ msgstr ""
 "                         bei »disk-image« ein Wurzeldateisystem des angegebenen\n"
 "                           TYPS (»ext4« oder »iso9660«) erzeugen"
 
-#: guix/scripts/system.scm:1000
+#: guix/scripts/system.scm:1016
 msgid ""
 "\n"
 "      --image-size=SIZE  for 'vm-image', produce an image of SIZE"
@@ -2017,7 +2756,7 @@ msgstr ""
 "      --image-size=GRÖSSE\n"
 "                         bei »vm-image« ein Image der GRÖSSE erstellen"
 
-#: guix/scripts/system.scm:1002
+#: guix/scripts/system.scm:1018
 msgid ""
 "\n"
 "      --no-bootloader    for 'init', do not install a bootloader"
@@ -2025,7 +2764,7 @@ msgstr ""
 "\n"
 "      --no-bootloader    bei »init« keinen Bootloader installieren"
 
-#: guix/scripts/system.scm:1004
+#: guix/scripts/system.scm:1020
 msgid ""
 "\n"
 "      --share=SPEC       for 'vm', share host file system according to SPEC"
@@ -2035,7 +2774,7 @@ msgstr ""
 "                         bei »vm« das Wirtsdateisystem entsprechend der\n"
 "                           SPEZIFIKATION teilen"
 
-#: guix/scripts/system.scm:1006
+#: guix/scripts/system.scm:1022
 msgid ""
 "\n"
 "  -r, --root=FILE        for 'vm', 'vm-image', 'disk-image', 'container',\n"
@@ -2048,7 +2787,7 @@ msgstr ""
 "                           auf das Ergebnis machen und als Müllsammler-Wurzel\n"
 "                           registrieren"
 
-#: guix/scripts/system.scm:1010
+#: guix/scripts/system.scm:1026
 msgid ""
 "\n"
 "      --expose=SPEC      for 'vm', expose host file system according to SPEC"
@@ -2058,7 +2797,7 @@ msgstr ""
 "                         bei »vm« das Wirtsdateisystem entsprechend der\n"
 "                           SPEZIFIKATION zugänglich machen"
 
-#: guix/scripts/system.scm:1012
+#: guix/scripts/system.scm:1028
 msgid ""
 "\n"
 "      --full-boot        for 'vm', make a full boot sequence"
@@ -2066,7 +2805,7 @@ msgstr ""
 "\n"
 "      --full-boot        bei »vm« einen vollständigen Bootvorgang simulieren"
 
-#: guix/scripts/system.scm:1014
+#: guix/scripts/system.scm:1030
 msgid ""
 "\n"
 "      --skip-checks      skip file system and initrd module safety checks"
@@ -2075,54 +2814,54 @@ msgstr ""
 "      --skip-checks      Dateisystem- und Initrd-Modul-Fehlerprüfung\n"
 "                           überspringen"
 
-#: guix/scripts/system.scm:1116
+#: guix/scripts/system.scm:1140
 #, 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:1123
+#: guix/scripts/system.scm:1147
 #, scheme-format
 msgid "no configuration specified~%"
 msgstr "Keine Konfiguration angegeben~%"
 
-#: guix/scripts/system.scm:1224
+#: guix/scripts/system.scm:1257
 #, scheme-format
 msgid "~a: unknown action~%"
 msgstr "~a: Unbekannte Aktion~%"
 
-#: guix/scripts/system.scm:1240
+#: guix/scripts/system.scm:1273
 #, scheme-format
 msgid "wrong number of arguments for action '~a'~%"
 msgstr "Falsche Anzahl an Argumenten für Aktion »~a«~%"
 
-#: guix/scripts/system.scm:1245
+#: guix/scripts/system.scm:1278
 #, scheme-format
 msgid "guix system: missing command name~%"
 msgstr "guix system: Befehlsname fehlt~%"
 
-#: guix/scripts/system.scm:1247
+#: guix/scripts/system.scm:1280
 #, 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:88 guix/ui.scm:1205 guix/ui.scm:1219
+#: guix/scripts/system/search.scm:88 guix/ui.scm:1330 guix/ui.scm:1344
 msgid "unknown"
 msgstr "unbekannt"
 
-#: guix/scripts/lint.scm:140
+#: guix/scripts/lint.scm:144
 #, scheme-format
 msgid "Available checkers:~%"
 msgstr "Verfügbare Prüfer:~%"
 
-#: guix/scripts/lint.scm:164
+#: guix/scripts/lint.scm:168
 msgid "description should not be empty"
 msgstr "Die Beschreibung sollte nicht leer sein"
 
-#: guix/scripts/lint.scm:174
+#: guix/scripts/lint.scm:178
 msgid "Texinfo markup in description is invalid"
 msgstr "Das Texinfo-Markup in der Beschreibung ist ungültig"
 
-#: guix/scripts/lint.scm:184
+#: guix/scripts/lint.scm:188
 #, scheme-format
 msgid ""
 "description should not contain ~\n"
@@ -2131,15 +2870,15 @@ msgstr "Die Beschreibung sollte kein »Trademark«-Zeichen »~a« bei ~d enthalt
 
 #. TRANSLATORS: '@code' is Texinfo markup and must be kept
 #. as is.
-#: guix/scripts/lint.scm:197
+#: guix/scripts/lint.scm:201
 msgid "use @code or similar ornament instead of quotes"
 msgstr "Benutzen Sie @code oder ähnliche Verzierungen statt Anführungszeichen"
 
-#: guix/scripts/lint.scm:204
+#: guix/scripts/lint.scm:208
 msgid "description should start with an upper-case letter or digit"
 msgstr "Die Beschreibung sollte mit einem Großbuchstaben oder einer Ziffer beginnen."
 
-#: guix/scripts/lint.scm:220
+#: guix/scripts/lint.scm:224
 #, scheme-format
 msgid ""
 "sentences in description should be followed ~\n"
@@ -2148,265 +2887,282 @@ msgstr ""
 "Auf Sätze in der Beschreibung sollten zwei Leerzeichen folgen;\n"
 "mögliche Verletzung~p bei ~{~a~^, ~}"
 
-#: guix/scripts/lint.scm:238
+#: guix/scripts/lint.scm:242
 #, scheme-format
 msgid "invalid description: ~s"
 msgstr "Ungültige Beschreibung: ~s"
 
-#: guix/scripts/lint.scm:283
+#: guix/scripts/lint.scm:287
 #, scheme-format
 msgid "'~a' should probably be a native input"
 msgstr "»~a« sollte wahrscheinlich als native Eingabe deklariert werden"
 
-#: guix/scripts/lint.scm:299
+#: guix/scripts/lint.scm:303
 #, scheme-format
 msgid "'~a' should probably not be an input at all"
 msgstr "»~a« sollte wahrscheinlich gar keine Eingabe sein"
 
-#: guix/scripts/lint.scm:316
+#: guix/scripts/lint.scm:320
 msgid "synopsis should not be empty"
 msgstr "Die Zusammenfassung sollte nicht leer sein"
 
-#: guix/scripts/lint.scm:324
+#: guix/scripts/lint.scm:328
 msgid "no period allowed at the end of the synopsis"
 msgstr "Am Ende der Zusammenfassung darf kein Punkt gesetzt werden"
 
-#: guix/scripts/lint.scm:336
+#: guix/scripts/lint.scm:340
 msgid "no article allowed at the beginning of the synopsis"
 msgstr "Am Beginn der Zusammenfassung darf kein Artikel stehen"
 
-#: guix/scripts/lint.scm:343
+#: guix/scripts/lint.scm:347
 msgid "synopsis should be less than 80 characters long"
 msgstr "Die Zusammenfassung sollte nicht länger als 80 Zeichen sein"
 
-#: guix/scripts/lint.scm:349
+#: guix/scripts/lint.scm:353
 msgid "synopsis should start with an upper-case letter or digit"
 msgstr "Die Zusammenfassung sollte mit einem Großbuchstaben oder einer Zahl beginnen"
 
-#: guix/scripts/lint.scm:356
+#: guix/scripts/lint.scm:360
 msgid "synopsis should not start with the package name"
 msgstr "Die Zusammenfassung sollte nicht mit dem Paketnamen beginnen"
 
-#: guix/scripts/lint.scm:366
+#: guix/scripts/lint.scm:370
 msgid "Texinfo markup in synopsis is invalid"
 msgstr "Das Texinfo-Markup in der Zusammenfassung ist ungültig"
 
-#: guix/scripts/lint.scm:385
+#: guix/scripts/lint.scm:389
 #, scheme-format
 msgid "invalid synopsis: ~s"
 msgstr "Unzulässige Zusammenfassung: ~s"
 
-#: guix/scripts/lint.scm:504
+#: guix/scripts/lint.scm:508
 #, scheme-format
 msgid "URI ~a returned suspiciously small file (~a bytes)"
 msgstr "URI ~a hat eine verdächtig kleine Datei geliefert (~a Bytes)"
 
-#: guix/scripts/lint.scm:514
+#: guix/scripts/lint.scm:518
 #, scheme-format
 msgid "permanent redirect from ~a to ~a"
 msgstr "Permanente Weiterleitung von ~a auf ~a"
 
-#: guix/scripts/lint.scm:521
+#: guix/scripts/lint.scm:525
 #, scheme-format
 msgid "invalid permanent redirect from ~a"
 msgstr "Ungültige permanente Weiterleitung von ~a"
 
-#: guix/scripts/lint.scm:528 guix/scripts/lint.scm:540
+#: guix/scripts/lint.scm:532 guix/scripts/lint.scm:544
 #, scheme-format
 msgid "URI ~a not reachable: ~a (~s)"
 msgstr "URI ~a nicht erreichbar: ~a (~s)"
 
-#: guix/scripts/lint.scm:547
+#: guix/scripts/lint.scm:551
 #, scheme-format
 msgid "URI ~a domain not found: ~a"
 msgstr "Domain der URI ~a nicht gefunden: ~a"
 
-#: guix/scripts/lint.scm:555
+#: guix/scripts/lint.scm:559
 #, scheme-format
 msgid "URI ~a unreachable: ~a"
 msgstr "URI ~a ist nicht erreichbar: ~a"
 
-#: guix/scripts/lint.scm:564
+#: guix/scripts/lint.scm:568
 #, scheme-format
 msgid "TLS certificate error: ~a"
 msgstr "TLS-Zertifikatsfehler: ~a"
 
-#: guix/scripts/lint.scm:585
+#: guix/scripts/lint.scm:589
 msgid "invalid value for home page"
 msgstr "Ungültiger Wert für Homepage"
 
-#: guix/scripts/lint.scm:588
+#: guix/scripts/lint.scm:592
 #, scheme-format
 msgid "invalid home page URL: ~s"
 msgstr "Ungültige URL für Homepage: ~s"
 
-#: guix/scripts/lint.scm:614
+#: guix/scripts/lint.scm:619
 msgid "file names of patches should start with the package name"
 msgstr "Dateinamen von Patches sollten mit dem Paketnamen beginnen"
 
-#: guix/scripts/lint.scm:630
+#: guix/scripts/lint.scm:635
 #, scheme-format
 msgid "~a: file name is too long"
 msgstr "~a: Der Dateiname ist zu lang"
 
-#: guix/scripts/lint.scm:671
+#: guix/scripts/lint.scm:676
 #, scheme-format
 msgid "~a: ~a: proposed synopsis: ~s~%"
 msgstr "~a: ~a: Vorgeschlagene Zusammenfassung: ~s~%"
 
-#: guix/scripts/lint.scm:684
+#: guix/scripts/lint.scm:689
 #, scheme-format
 msgid "~a: ~a: proposed description:~%     \"~a\"~%"
 msgstr "~a: ~a: Vorgeschlagene Beschreibung:~%     \"~a\"~%"
 
-#: guix/scripts/lint.scm:726
+#: guix/scripts/lint.scm:731
 msgid "all the source URIs are unreachable:"
 msgstr "Alle Quell-URIs sind nicht erreichbar:"
 
-#: guix/scripts/lint.scm:748
+#: guix/scripts/lint.scm:753
 msgid "the source file name should contain the package name"
 msgstr "Der Name der Quelldatei sollte den Paketnamen enthalten"
 
-#: guix/scripts/lint.scm:764
+#: guix/scripts/lint.scm:765
+msgid "the source URI should not be an autogenerated tarball"
+msgstr "Als Quell-URI sollte kein automatisch erzeugter Tarball verwendet werden"
+
+#: guix/scripts/lint.scm:786
 #, scheme-format
 msgid "URL should be 'mirror://~a/~a'"
 msgstr "URL sollte »mirror://~a/~a« lauten"
 
-#: guix/scripts/lint.scm:783 guix/scripts/lint.scm:788
+#: guix/scripts/lint.scm:829
+#, scheme-format
+msgid "URL should be '~a'"
+msgstr "URL sollte »~a« lauten"
+
+#: guix/scripts/lint.scm:840 guix/scripts/lint.scm:845
 #, scheme-format
 msgid "failed to create ~a derivation: ~a"
 msgstr "Ableitung für ~a konnte nicht erstellt werden: ~a"
 
-#: guix/scripts/lint.scm:805
+#: guix/scripts/lint.scm:862
 #, scheme-format
 msgid "failed to create ~a derivation: ~s"
 msgstr "Ableitung für ~a konnte nicht erstellt werden: ~s"
 
-#: guix/scripts/lint.scm:817
+#: guix/scripts/lint.scm:874
 msgid "invalid license field"
 msgstr "Ungültiges Lizenz-Feld"
 
-#: guix/scripts/lint.scm:824
+#: guix/scripts/lint.scm:881
 #, scheme-format
 msgid "~a: HTTP GET error for ~a: ~a (~s)~%"
 msgstr "~a: HTTP-GET-Fehler für ~a: ~a (~s)~%"
 
-#: guix/scripts/lint.scm:834
+#: guix/scripts/lint.scm:891
 #, scheme-format
 msgid "~a: host lookup failure: ~a~%"
 msgstr "~a: Nachschlagen des Rechners fehlgeschlagen: ~a~%"
 
-#: guix/scripts/lint.scm:839
+#: guix/scripts/lint.scm:896
 #, scheme-format
 msgid "~a: TLS certificate error: ~a"
 msgstr "~a: TLS-Zertifikatsfehler: ~a"
 
-#: guix/scripts/lint.scm:854
+#: guix/scripts/lint.scm:911
 msgid "while retrieving CVE vulnerabilities"
 msgstr "Beim Laden der CVE-Sicherheitslücken"
 
-#: guix/scripts/lint.scm:891
+#: guix/scripts/lint.scm:948
 #, scheme-format
 msgid "probably vulnerable to ~a"
 msgstr "Wahrscheinlich angreifbar durch ~a"
 
-#: guix/scripts/lint.scm:898
+#: guix/scripts/lint.scm:955
 #, scheme-format
 msgid "while retrieving upstream info for '~a'"
 msgstr "Beim Laden der Informationen vom Ursprung für »~a«"
 
-#: guix/scripts/lint.scm:906
+#: guix/scripts/lint.scm:963
 #, scheme-format
 msgid "can be upgraded to ~a"
 msgstr "Kann aktualisiert werden auf »~a«"
 
-#: guix/scripts/lint.scm:921
+#: guix/scripts/lint.scm:978
 #, scheme-format
 msgid "tabulation on line ~a, column ~a"
 msgstr "Tabulator in Zeile ~a, Spalte ~a"
 
-#: guix/scripts/lint.scm:930
+#: guix/scripts/lint.scm:987
 #, scheme-format
 msgid "trailing white space on line ~a"
 msgstr "Leerzeichen am Ende der Zeile ~a"
 
-#: guix/scripts/lint.scm:940
+#: guix/scripts/lint.scm:997
 #, scheme-format
 msgid "line ~a is way too long (~a characters)"
 msgstr "Zeile ~a ist viel zu lang (~a Zeichen)"
 
-#: guix/scripts/lint.scm:951
+#: guix/scripts/lint.scm:1008
 #, scheme-format
 msgid "line ~a: parentheses feel lonely, move to the previous or next line"
 msgstr "Zeile ~a hat einsame Klammern, setzen Sie sie auf die vorige oder nächste Zeile"
 
-#: guix/scripts/lint.scm:1021
+#: guix/scripts/lint.scm:1078
 msgid "Validate package descriptions"
 msgstr "Paketbeschreibungen überprüfen"
 
-#: guix/scripts/lint.scm:1025
+#: guix/scripts/lint.scm:1082
 msgid "Validate synopsis & description of GNU packages"
 msgstr "GNU-Paketzusammenfassung und -beschreibung überprüfen"
 
-#: guix/scripts/lint.scm:1029
+#: guix/scripts/lint.scm:1086
 msgid "Identify inputs that should be native inputs"
 msgstr "Eingaben suchen, die native Eingaben sein sollten"
 
-#: guix/scripts/lint.scm:1033
+#: guix/scripts/lint.scm:1090
 msgid "Identify inputs that shouldn't be inputs at all"
 msgstr ""
 "Eingaben suchen, die gar keine Eingaben\n"
 "    sein sollten"
 
-#: guix/scripts/lint.scm:1037
+#: guix/scripts/lint.scm:1094
 msgid "Validate file names and availability of patches"
 msgstr "Dateinamen und Verfügbarkeit der Patches überprüfen"
 
-#: guix/scripts/lint.scm:1041
+#: guix/scripts/lint.scm:1098
 msgid "Validate home-page URLs"
 msgstr "Homepage-URLs überprüfen"
 
 #. TRANSLATORS: <license> is the name of a data type and must not be
 #. translated.
-#: guix/scripts/lint.scm:1047
+#: guix/scripts/lint.scm:1104
 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/scripts/lint.scm:1052
+#: guix/scripts/lint.scm:1109
 msgid "Validate source URLs"
 msgstr "Quell-URLs überprüfen"
 
-#: guix/scripts/lint.scm:1056
+#: guix/scripts/lint.scm:1113
 msgid "Suggest 'mirror://' URLs"
 msgstr "»mirror://«-URLs vorschlagen"
 
-#: guix/scripts/lint.scm:1060
+#: guix/scripts/lint.scm:1117
+msgid "Suggest GitHub URLs"
+msgstr "GitHub-URLs vorschlagen"
+
+#: guix/scripts/lint.scm:1121
 msgid "Validate file names of sources"
 msgstr "Dateinamen der Quellorte überprüfen"
 
-#: guix/scripts/lint.scm:1064
+#: guix/scripts/lint.scm:1125
+msgid "Check for autogenerated tarballs"
+msgstr "Auf automatisch erzeugte Tarballs prüfen"
+
+#: guix/scripts/lint.scm:1129
 msgid "Report failure to compile a package to a derivation"
 msgstr "Fehler dabei melden, ein Paket zu einer Ableitung zu kompilieren"
 
-#: guix/scripts/lint.scm:1068
+#: guix/scripts/lint.scm:1133
 msgid "Validate package synopses"
 msgstr "Paketzusammenfassungen überprüfen"
 
-#: guix/scripts/lint.scm:1072
+#: guix/scripts/lint.scm:1137
 msgid "Check the Common Vulnerabilities and Exposures (CVE) database"
 msgstr "Die Datenbank der Common Vulnerabilities and Exposures (CVE) überprüfen"
 
-#: guix/scripts/lint.scm:1077
+#: guix/scripts/lint.scm:1142
 msgid "Check the package for new upstream releases"
 msgstr "Den Ursprung des Pakets auf neue Veröffentlichungen hin prüfen"
 
-#: guix/scripts/lint.scm:1081
+#: guix/scripts/lint.scm:1146
 msgid "Look for formatting issues in the source"
 msgstr "Nach Formatierungsfehlern im Quellort schauen"
 
-#: guix/scripts/lint.scm:1109
+#: guix/scripts/lint.scm:1174
 msgid ""
 "Usage: guix lint [OPTION]... [PACKAGE]...\n"
 "Run a set of checkers on the specified package; if none is specified,\n"
@@ -2417,7 +3173,7 @@ msgstr ""
 "Falls keine Prüfer angegeben werden, alle verfügbaren Prüfer\n"
 "auf alle Paketen anwenden.\n"
 
-#: guix/scripts/lint.scm:1112
+#: guix/scripts/lint.scm:1177
 msgid ""
 "\n"
 "  -c, --checkers=CHECKER1,CHECKER2...\n"
@@ -2427,7 +3183,7 @@ msgstr ""
 "  -c, --checkers=PRÜFER1,PRÜFER2 …\n"
 "                         nur die angegebenen Prüfer anwenden"
 
-#: guix/scripts/lint.scm:1117
+#: guix/scripts/lint.scm:1182
 msgid ""
 "\n"
 "  -l, --list-checkers    display the list of available lint checkers"
@@ -2435,7 +3191,7 @@ msgstr ""
 "\n"
 "  -l, --list-checkers    Liste der verfügbaren Prüfer anzeigen"
 
-#: guix/scripts/lint.scm:1137
+#: guix/scripts/lint.scm:1202
 #, scheme-format
 msgid "~a: invalid checker~%"
 msgstr "~a: Unzulässiger Prüfer~%"
@@ -2500,7 +3256,7 @@ msgid ""
 "      --workers=N        use N workers to bake items"
 msgstr ""
 "\n"
-"      --workers=N        mit N Worker-Prozessen angeforderte Objekte in den\n"
+"      --workers=N        mit N Worker-Threads angeforderte Objekte in den\n"
 "                           Zwischenspeicher einlagern"
 
 #: guix/scripts/publish.scm:83
@@ -2566,24 +3322,24 @@ msgstr "zlib-Unterstützung fehlt; Kompression deaktiviert~%"
 msgid "~a: invalid duration~%"
 msgstr "~a: Ungültige Dauer~%"
 
-#: guix/scripts/publish.scm:869
+#: guix/scripts/publish.scm:876
 #, scheme-format
 msgid "user '~a' not found: ~a~%"
 msgstr "Benutzer »~a« nicht gefunden: ~a~%"
 
-#: guix/scripts/publish.scm:910
+#: guix/scripts/publish.scm:917
 #, 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:915
+#: guix/scripts/publish.scm:922
 #, scheme-format
 msgid "publishing ~a on ~a, port ~d~%"
 msgstr "~a wird auf ~a bereitgestellt, Port ~d~%"
 
-#: guix/scripts/edit.scm:41
+#: guix/scripts/edit.scm:40
 msgid ""
 "Usage: guix edit PACKAGE...\n"
 "Start $VISUAL or $EDITOR to edit the definitions of PACKAGE...\n"
@@ -2591,39 +3347,34 @@ msgstr ""
 "Aufruf: guix edit PAKET …\n"
 "Starte $VISUAL oder $EDITOR, um die Definitionen von PAKET zu bearbeiten …\n"
 
-#: guix/scripts/edit.scm:62
+#: guix/scripts/edit.scm:61
 #, scheme-format
 msgid "file '~a' not found in search path ~s~%"
 msgstr "Datei »~a« im Suchpfad ~s nicht gefunden~%"
 
-#: guix/scripts/edit.scm:90
-#, scheme-format
-msgid "source location of package '~a' is unknown~%"
-msgstr "Stelle im Quellcode für das Paket »~a« ist unbekannt~%"
-
-#: guix/scripts/edit.scm:103
+#: guix/scripts/edit.scm:96
 #, scheme-format
 msgid "failed to launch '~a': ~a~%"
 msgstr "»~a« konnte nicht gestartet werden: ~a~%"
 
-#: guix/scripts/size.scm:68
+#: guix/scripts/size.scm:69
 #, scheme-format
 msgid "no available substitute information for '~a'~%"
 msgstr "Keine Substitutinformationen für »~a« verfügbar~%"
 
-#: guix/scripts/size.scm:90
+#: guix/scripts/size.scm:91
 msgid "store item"
 msgstr "Store-Objekt"
 
-#: guix/scripts/size.scm:90
+#: guix/scripts/size.scm:91
 msgid "total"
 msgstr "Gesamt"
 
-#: guix/scripts/size.scm:90
+#: guix/scripts/size.scm:91
 msgid "self"
 msgstr "Selbst"
 
-#: guix/scripts/size.scm:98
+#: guix/scripts/size.scm:99
 #, scheme-format
 msgid "total: ~,1f MiB~%"
 msgstr "Gesamt: ~,1f MiB~%"
@@ -2631,11 +3382,11 @@ msgstr "Gesamt: ~,1f MiB~%"
 #. 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:212
+#: guix/scripts/size.scm:222
 msgid "store profile"
 msgstr "Store-Profil"
 
-#: guix/scripts/size.scm:221
+#: guix/scripts/size.scm:231
 msgid ""
 "Usage: guix size [OPTION]... PACKAGE\n"
 "Report the size of PACKAGE and its dependencies.\n"
@@ -2643,7 +3394,7 @@ msgstr ""
 "Aufruf: guix size [OPTION] … PAKET …\n"
 "Größe des PAKETs und seiner Abhängigkeiten ermitteln.\n"
 
-#: guix/scripts/size.scm:226
+#: guix/scripts/size.scm:236
 msgid ""
 "\n"
 "  -s, --system=SYSTEM    consider packages for SYSTEM--e.g., \"i686-linux\""
@@ -2653,7 +3404,7 @@ msgstr ""
 "                           z.B. »i686-linux«"
 
 #. TRANSLATORS: "closure" and "self" must not be translated.
-#: guix/scripts/size.scm:229
+#: guix/scripts/size.scm:239
 msgid ""
 "\n"
 "      --sort=KEY         sort according to KEY--\"closure\" or \"self\""
@@ -2661,7 +3412,7 @@ msgstr ""
 "\n"
 "      --sort=SCHLÜSSEL   nach SCHLÜSSEL sortieren — »closure« oder »self«"
 
-#: guix/scripts/size.scm:231
+#: guix/scripts/size.scm:241
 msgid ""
 "\n"
 "  -m, --map-file=FILE    write to FILE a graphical map of disk usage"
@@ -2670,90 +3421,96 @@ msgstr ""
 "  -m, --map-file=DATEI   eine grafische Darstellung des Plattenplatzverbrauchs\n"
 "                           in DATEI schreiben"
 
-#: guix/scripts/size.scm:262
+#: guix/scripts/size.scm:272
 #, scheme-format
 msgid "~a: invalid sorting key~%"
 msgstr "~a: Ungültiger Sortierschlüssel~%"
 
-#: guix/scripts/size.scm:297
+#: guix/scripts/size.scm:307
 msgid "missing store item argument\n"
 msgstr "Kein Store-Objekt als Argument übergeben\n"
 
-#: guix/scripts/graph.scm:87
+#: guix/scripts/graph.scm:88
 #, scheme-format
 msgid "~a: invalid argument (package name expected)"
 msgstr "~a: Unzulässiges Argument (Paketname wurde erwartet)"
 
-#: guix/scripts/graph.scm:98
+#: guix/scripts/graph.scm:99
 msgid "the DAG of packages, excluding implicit inputs"
 msgstr "der gerichtete azyklische Paket-Graph ohne implizite Eingaben"
 
-#: guix/scripts/graph.scm:124
+#: guix/scripts/graph.scm:135
 msgid "the reverse DAG of packages"
 msgstr "der umgekehrte gerichtete azyklische Paket-Graph"
 
-#: guix/scripts/graph.scm:174
+#: guix/scripts/graph.scm:185
 msgid "the DAG of packages, including implicit inputs"
 msgstr "der gerichtete azyklische Paket-Graph mit impliziten Eingaben"
 
-#: guix/scripts/graph.scm:184
+#: guix/scripts/graph.scm:195
 msgid "the DAG of packages and origins, including implicit inputs"
 msgstr "der gerichtete azyklische Paket- und Ursprungs-Graph mit impliziten Eingaben"
 
-#: guix/scripts/graph.scm:214
+#: guix/scripts/graph.scm:225
 msgid "same as 'bag', but without the bootstrap nodes"
 msgstr "genau wie »bag«, aber ohne Bootstrap-Knoten"
 
-#: guix/scripts/graph.scm:256
+#: guix/scripts/graph.scm:242
+msgid "the reverse DAG of packages, including implicit inputs"
+msgstr ""
+"der umgekehrte gerichtete azyklische Paket-Graph mit\n"
+"                        impliziten Eingaben"
+
+#: guix/scripts/graph.scm:282
 msgid "the DAG of derivations"
 msgstr "der gerichtete azyklische Ableitungsgraph"
 
-#: guix/scripts/graph.scm:268
+#: guix/scripts/graph.scm:294
 msgid "unsupported argument for derivation graph"
 msgstr "Argument für Referenzgraph wird nicht unterstützt"
 
-#: guix/scripts/graph.scm:294
+#: guix/scripts/graph.scm:320
 msgid "unsupported argument for this type of graph"
 msgstr "Argument für diesen Typ von Graph wird nicht unterstützt"
 
-#: guix/scripts/graph.scm:307
+#: guix/scripts/graph.scm:333
 #, scheme-format
 msgid "references for '~a' are not known~%"
 msgstr "Referenzen für »~a« sind unbekannt~%"
 
-#: guix/scripts/graph.scm:314
+#: guix/scripts/graph.scm:340
 msgid "the DAG of run-time dependencies (store references)"
 msgstr "der gerichtete azyklische Laufzeitabhängigkeits-Graph (Store-Referenzen)"
 
-#: guix/scripts/graph.scm:330
+#: guix/scripts/graph.scm:356
 msgid "the DAG of referrers in the store"
 msgstr "der gerichtete azyklische Graph der Referenzen unter Store-Objekten"
 
-#: guix/scripts/graph.scm:360
+#: guix/scripts/graph.scm:386
 msgid "the graph of package modules"
 msgstr "der Graph der Paketmodule"
 
-#: guix/scripts/graph.scm:388
+#: guix/scripts/graph.scm:415
 #, scheme-format
 msgid "~a: unknown node type~%"
 msgstr "~a: Unbekannter Knotentyp~%"
 
-#: guix/scripts/graph.scm:395
+#: guix/scripts/graph.scm:422
 #, scheme-format
 msgid "~a: unknown backend~%"
 msgstr "~a: Unbekanntes Backend~%"
 
-#: guix/scripts/graph.scm:399
+#: guix/scripts/graph.scm:426
 msgid "The available node types are:\n"
 msgstr "Die verfügbaren Knotenttypen sind:\n"
 
-#: guix/scripts/graph.scm:409
+#: guix/scripts/graph.scm:436
 msgid "The available backend types are:\n"
 msgstr "Die gültigen Backend-Typen sind:\n"
 
 #. TRANSLATORS: Here 'dot' is the name of a program; it must not be
 #. translated.
-#: guix/scripts/graph.scm:457
+#: guix/scripts/graph.scm:484
 msgid ""
 "Usage: guix graph PACKAGE...\n"
 "Emit a representation of the dependency graph of PACKAGE...\n"
@@ -2761,7 +3518,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:459
+#: guix/scripts/graph.scm:486
 msgid ""
 "\n"
 "  -b, --backend=TYPE     produce a graph with the given backend TYPE"
@@ -2769,7 +3526,7 @@ msgstr ""
 "\n"
 "  -b, --backend=TYP      einen Graphen mit dem angegebenen Backend-TYP erzeugen"
 
-#: guix/scripts/graph.scm:461
+#: guix/scripts/graph.scm:488
 msgid ""
 "\n"
 "      --list-backends    list the available graph backends"
@@ -2777,7 +3534,7 @@ msgstr ""
 "\n"
 "      --list-backends    verfügbare Graph-Backends auflisten"
 
-#: guix/scripts/graph.scm:463
+#: guix/scripts/graph.scm:490
 msgid ""
 "\n"
 "  -t, --type=TYPE        represent nodes of the given TYPE"
@@ -2785,7 +3542,7 @@ msgstr ""
 "\n"
 "  -t, --type=TYP         Knoten des angegebenen TYPS darstellen"
 
-#: guix/scripts/graph.scm:465
+#: guix/scripts/graph.scm:492
 msgid ""
 "\n"
 "      --list-types       list the available graph types"
@@ -2793,7 +3550,7 @@ msgstr ""
 "\n"
 "      --list-types       verfügbare Knotentypen auflisten"
 
-#: guix/scripts/graph.scm:467 guix/scripts/pack.scm:710
+#: guix/scripts/graph.scm:494 guix/scripts/pack.scm:752
 msgid ""
 "\n"
 "  -e, --expression=EXPR  consider the package EXPR evaluates to"
@@ -2802,7 +3559,7 @@ msgstr ""
 "  -e, --expression=AUSDRUCK\n"
 "                         das Paket betrachten, zu dem AUSDRUCK ausgewertet wird"
 
-#: guix/scripts/graph.scm:469
+#: guix/scripts/graph.scm:496
 msgid ""
 "\n"
 "  -s, --system=SYSTEM    consider the graph for SYSTEM--e.g., \"i686-linux\""
@@ -2888,17 +3645,17 @@ msgstr ""
 "\n"
 "      --verbose          Details über erfolgreiche Vergleiche anzeigen"
 
-#: guix/scripts/copy.scm:59
+#: guix/scripts/copy.scm:60
 #, scheme-format
 msgid "~a: invalid TCP port number~%"
 msgstr "~a: Ungültige TCP-Portnummer~%"
 
-#: guix/scripts/copy.scm:61
+#: guix/scripts/copy.scm:62
 #, scheme-format
 msgid "~a: invalid SSH specification~%"
 msgstr "~a: Ungültige SSH-Angaben~%"
 
-#: guix/scripts/copy.scm:113
+#: guix/scripts/copy.scm:114
 msgid ""
 "Usage: guix copy [OPTION]... ITEMS...\n"
 "Copy ITEMS to or from the specified host over SSH.\n"
@@ -2906,7 +3663,7 @@ msgstr ""
 "Aufruf: guix copy [OPTION] … OBJEKTE …\n"
 "OBJEKTE zum oder vom angegebenen Host über SSH kopieren.\n"
 
-#: guix/scripts/copy.scm:115
+#: guix/scripts/copy.scm:116
 msgid ""
 "\n"
 "      --to=HOST          send ITEMS to HOST"
@@ -2914,7 +3671,7 @@ msgstr ""
 "\n"
 "      --to=HOST          OBJEKTE an HOST senden"
 
-#: guix/scripts/copy.scm:117
+#: guix/scripts/copy.scm:118
 msgid ""
 "\n"
 "      --from=HOST        receive ITEMS from HOST"
@@ -2922,17 +3679,17 @@ msgstr ""
 "\n"
 "      --from=HOST        OBJEKTE vom HOST beziehen"
 
-#: guix/scripts/copy.scm:169
+#: guix/scripts/copy.scm:182
 #, scheme-format
 msgid "use '--to' or '--from'~%"
 msgstr "Benutzen Sie »--to« oder »--from«~%"
 
-#: guix/scripts/pack.scm:93
+#: guix/scripts/pack.scm:95
 #, scheme-format
 msgid "~a: compressor not found~%"
 msgstr "~a: Kompressionsmethode nicht gefunden~%"
 
-#: guix/scripts/pack.scm:504
+#: guix/scripts/pack.scm:513
 #, scheme-format
 msgid ""
 "cross-compilation not implemented here;\n"
@@ -2941,11 +3698,11 @@ msgstr ""
 "Cross-Kompilieren wurde hier nicht implementiert,\n"
 "bitte senden Sie eine E-Mail an »~a«~%"
 
-#: guix/scripts/pack.scm:615
+#: guix/scripts/pack.scm:644
 msgid "The supported formats for 'guix pack' are:"
 msgstr "Die von »guix pack« unterstützten Formate sind:"
 
-#: guix/scripts/pack.scm:617
+#: guix/scripts/pack.scm:646
 msgid ""
 "\n"
 "  tarball       Self-contained tarball, ready to run on another machine"
@@ -2954,7 +3711,7 @@ msgstr ""
 "  tarball       eigenständiger Tarball, der auf anderen Maschinen\n"
 "                  ausgeführt werden kann"
 
-#: guix/scripts/pack.scm:619
+#: guix/scripts/pack.scm:648
 msgid ""
 "\n"
 "  squashfs      Squashfs image suitable for Singularity"
@@ -2962,7 +3719,7 @@ msgstr ""
 "\n"
 "  squashfs      Squashfs-Abbild, das für Singularity geeignet ist"
 
-#: guix/scripts/pack.scm:621
+#: guix/scripts/pack.scm:650
 msgid ""
 "\n"
 "  docker        Tarball ready for 'docker load'"
@@ -2970,17 +3727,17 @@ msgstr ""
 "\n"
 "  docker        Tarball, der mit »docker load« benutzt werden kann"
 
-#: guix/scripts/pack.scm:678
+#: guix/scripts/pack.scm:712
 #, scheme-format
 msgid "~a: invalid symlink specification~%"
 msgstr "~a: Ungültige Angabe zur symbolischen Verknüpfung~%"
 
-#: guix/scripts/pack.scm:689
+#: guix/scripts/pack.scm:726
 #, scheme-format
 msgid "~a: unsupported profile name~%"
 msgstr "~a: Nicht unterstützter Profilname~%"
 
-#: guix/scripts/pack.scm:698
+#: guix/scripts/pack.scm:740
 msgid ""
 "Usage: guix pack [OPTION]... PACKAGE...\n"
 "Create a bundle of PACKAGE.\n"
@@ -2988,7 +3745,7 @@ msgstr ""
 "Aufruf: guix pack [OPTION] … PAKET …\n"
 "Ein Bündel mit PAKET erstellen.\n"
 
-#: guix/scripts/pack.scm:704
+#: guix/scripts/pack.scm:746
 msgid ""
 "\n"
 "  -f, --format=FORMAT    build a pack in the given FORMAT"
@@ -2996,7 +3753,7 @@ msgstr ""
 "\n"
 "  -f, --format=FORMAT    das Bündel im angegebenen Format erstellen"
 
-#: guix/scripts/pack.scm:706
+#: guix/scripts/pack.scm:748
 msgid ""
 "\n"
 "      --list-formats     list the formats available"
@@ -3004,7 +3761,7 @@ msgstr ""
 "\n"
 "      --list-formats     verfügbare Formate auflisten"
 
-#: guix/scripts/pack.scm:708
+#: guix/scripts/pack.scm:750
 msgid ""
 "\n"
 "  -R, --relocatable      produce relocatable executables"
@@ -3012,7 +3769,7 @@ msgstr ""
 "\n"
 "  -R, --relocatable      pfad-agnostische ausführbare Datei erzeugen"
 
-#: guix/scripts/pack.scm:716
+#: guix/scripts/pack.scm:758
 msgid ""
 "\n"
 "  -C, --compression=TOOL compress using TOOL--e.g., \"lzip\""
@@ -3021,7 +3778,7 @@ msgstr ""
 "  -C, --compression=WERKZEUG\n"
 "                         mit dem WERKZEUG komprimieren — z.B. »lzip«"
 
-#: guix/scripts/pack.scm:718
+#: guix/scripts/pack.scm:760
 msgid ""
 "\n"
 "  -S, --symlink=SPEC     create symlinks to the profile according to SPEC"
@@ -3031,7 +3788,7 @@ msgstr ""
 "                         symbolische Verknüpfungen zum Profil erzeugen gemäß\n"
 "                           der SPEZIFIKATION"
 
-#: guix/scripts/pack.scm:720
+#: guix/scripts/pack.scm:762
 msgid ""
 "\n"
 "  -m, --manifest=FILE    create a pack with the manifest from FILE"
@@ -3039,7 +3796,15 @@ msgstr ""
 "\n"
 "  -m, --manifest=DATEI   ein Bündel mit dem Manifest aus DATEI erzeugen"
 
-#: guix/scripts/pack.scm:722
+#: guix/scripts/pack.scm:764
+msgid ""
+"\n"
+"      --save-provenance  save provenance information"
+msgstr ""
+"\n"
+"      --save-provenance  Provenienzinformationen speichern"
+
+#: guix/scripts/pack.scm:766
 msgid ""
 "\n"
 "      --localstatedir    include /var/guix in the resulting pack"
@@ -3047,7 +3812,7 @@ msgstr ""
 "\n"
 "      --localstatedir    »/var/guix« auch ins Bündel packen"
 
-#: guix/scripts/pack.scm:724
+#: guix/scripts/pack.scm:768
 msgid ""
 "\n"
 "      --profile-name=NAME\n"
@@ -3057,7 +3822,7 @@ msgstr ""
 "      --profile-name=NAME\n"
 "                         auch in /var/guix/profiles/…/NAME einfügen"
 
-#: guix/scripts/pack.scm:727
+#: guix/scripts/pack.scm:773
 msgid ""
 "\n"
 "      --bootstrap        use the bootstrap binaries to build the pack"
@@ -3065,91 +3830,96 @@ msgstr ""
 "\n"
 "      --bootstrap        mit den Bootstrap-Binärdateien das Bündel erstellen"
 
-#: guix/scripts/pack.scm:769
+#: guix/scripts/pack.scm:818
+#, scheme-format
+msgid "could not determine provenance of package ~a~%"
+msgstr "Konnte die Provenienz von Paket ~a nicht feststellen~%"
+
+#: guix/scripts/pack.scm:827
 #, 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:814
+#: guix/scripts/pack.scm:882
 #, scheme-format
 msgid "~a: unknown pack format~%"
 msgstr "~a: Unbekanntes Bündelformat~%"
 
-#: guix/scripts/weather.scm:73
+#: guix/scripts/weather.scm:80
 msgid "computing ~h package derivations for ~a...~%"
 msgstr "~h Paketableitungen für ~a berechnen …~%"
 
-#: guix/scripts/weather.scm:162
+#: guix/scripts/weather.scm:169
 msgid "looking for ~h store items on ~a...~%"
 msgstr "Nach ~h Store-Objekten von ~a suchen …~%"
 
-#: guix/scripts/weather.scm:174
+#: guix/scripts/weather.scm:181
 msgid "  ~2,1f% substitutes available (~h out of ~h)~%"
 msgstr "  ~2,1f% Substitute verfügbar (~h von ~h)~%"
 
-#: guix/scripts/weather.scm:180
+#: guix/scripts/weather.scm:187
 #, scheme-format
 msgid "  unknown substitute sizes~%"
 msgstr "  Unbekannte Substitutgrößen~%"
 
-#: guix/scripts/weather.scm:183
+#: guix/scripts/weather.scm:190
 msgid "  ~,1h MiB of nars (compressed)~%"
 msgstr "  ~,1h MiB an Nars (komprimiert)~%"
 
-#: guix/scripts/weather.scm:184
+#: guix/scripts/weather.scm:191
 msgid "  at least ~,1h MiB of nars (compressed)~%"
 msgstr "  Mindestens ~,1h MiB an Nars (komprimiert)~%"
 
-#: guix/scripts/weather.scm:186
+#: guix/scripts/weather.scm:193
 msgid "  ~,1h MiB on disk (uncompressed)~%"
 msgstr "  ~,1h MiB auf der Platte (unkomprimiert)~%"
 
-#: guix/scripts/weather.scm:188
+#: guix/scripts/weather.scm:195
 msgid "  ~,3h seconds per request (~,1h seconds in total)~%"
 msgstr "  ~,3h Sekunden pro Anfrage (~,1h Sekunden insgesamt)~%"
 
-#: guix/scripts/weather.scm:190
+#: guix/scripts/weather.scm:197
 msgid "  ~,1h requests per second~%"
 msgstr "  ~,1h Anfragen pro Sekunde~%"
 
-#: guix/scripts/weather.scm:196
+#: guix/scripts/weather.scm:203
 #, scheme-format
 msgid "  (continuous integration information unavailable)~%"
 msgstr "  (Keine Informationen zu kontinuierlicher Integration verfügbar)~%"
 
-#: guix/scripts/weather.scm:199
+#: guix/scripts/weather.scm:206
 #, scheme-format
 msgid "  '~a' returned ~a (~s)~%"
 msgstr "  »~a« lieferte ~a (~s)~%"
 
-#: guix/scripts/weather.scm:216
+#: guix/scripts/weather.scm:223
 msgid "  ~,1f% (~h out of ~h) of the missing items are queued~%"
 msgstr "  ~,1f% (~h von ~h) der fehlenden Objekte sind in der Warteschlange~%"
 
-#: guix/scripts/weather.scm:222
+#: guix/scripts/weather.scm:229
 msgid "  at least ~h queued builds~%"
 msgstr "  Mindestens ~h Erstellungen in der Warteschlange~%"
 
-#: guix/scripts/weather.scm:223
+#: guix/scripts/weather.scm:230
 msgid "  ~h queued builds~%"
 msgstr "  ~h Erstellungen in der Warteschlange~%"
 
-#: guix/scripts/weather.scm:226
+#: guix/scripts/weather.scm:233
 #, scheme-format
 msgid "      ~a: ~a (~0,1f%)~%"
 msgstr "      ~a: ~a (~0,1f%)~%"
 
-#: guix/scripts/weather.scm:232
+#: guix/scripts/weather.scm:239
 #, scheme-format
 msgid "  build rate: ~1,2f builds per hour~%"
 msgstr "  Erstellungsgeschwindigkeit: ~1,2f Erstellungen pro Stunde~%"
 
-#: guix/scripts/weather.scm:236
+#: guix/scripts/weather.scm:243
 #, scheme-format
 msgid "      ~a: ~,2f builds per hour~%"
 msgstr "      ~a: ~,2f Erstellungen pro Stunde~%"
 
-#: guix/scripts/weather.scm:248
+#: guix/scripts/weather.scm:255
 msgid ""
 "Usage: guix weather [OPTIONS]\n"
 "Report the availability of substitutes.\n"
@@ -3157,7 +3927,7 @@ msgstr ""
 "Aufruf: guix weather [OPTIONEN]\n"
 "Über die Verfügbarkeit von Substituten berichten.\n"
 
-#: guix/scripts/weather.scm:250
+#: guix/scripts/weather.scm:257
 msgid ""
 "\n"
 "      --substitute-urls=URLS\n"
@@ -3167,7 +3937,7 @@ msgstr ""
 "      --substitute-urls=URLS\n"
 "                         die auf URLS verfügbaren Substitute prüfen"
 
-#: guix/scripts/weather.scm:253
+#: guix/scripts/weather.scm:260
 msgid ""
 "\n"
 "  -m, --manifest=MANIFEST\n"
@@ -3177,7 +3947,19 @@ msgstr ""
 "  -m, --manifest=MANIFEST\n"
 "                         Substitute für im Manifest angegebene Pakete suchen"
 
-#: guix/scripts/weather.scm:256
+#: guix/scripts/weather.scm:263
+msgid ""
+"\n"
+"  -c, --coverage[=COUNT]\n"
+"                         show substitute coverage for packages with at least\n"
+"                         COUNT dependents"
+msgstr ""
+"\n"
+"  -c, --coverage[=ANZAHL]\n"
+"                         angeben, wieviele Substitute es für Pakete mit\n"
+"                           mindestens ANZAHL-vielen abhängigen Paketen gibt"
+
+#: guix/scripts/weather.scm:267
 msgid ""
 "\n"
 "  -s, --system=SYSTEM    consider substitutes for SYSTEM--e.g., \"i686-linux\""
@@ -3185,11 +3967,25 @@ msgstr ""
 "\n"
 "  -s, --system=SYSTEM    Substitute für SYSTEM angeben — z.B. »i686-linux«"
 
-#: guix/scripts/weather.scm:280
+#: guix/scripts/weather.scm:291
 #, scheme-format
 msgid "~a: invalid URL~%"
 msgstr "~a: Ungültige URL~%"
 
+#: guix/scripts/weather.scm:420
+#, 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:426
+#, 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:45
 #, scheme-format
 msgid "~a: unsupported output format~%"
@@ -3224,27 +4020,32 @@ msgstr ""
 msgid "~%;; warning: GUIX_PACKAGE_PATH=\"~a\"~%"
 msgstr "~%;; Warnung: GUIX_PACKAGE_PATH=\"~a\"~%"
 
-#: guix/scripts/describe.scm:115
+#: guix/scripts/describe.scm:90
+#, 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:117
 #, scheme-format
 msgid "failed to determine origin~%"
 msgstr "Konnte Ursprung nicht finden~%"
 
-#: guix/scripts/describe.scm:121
+#: guix/scripts/describe.scm:123
 #, scheme-format
 msgid "Git checkout:~%"
 msgstr "Git-Checkout:~%"
 
-#: guix/scripts/describe.scm:122
+#: guix/scripts/describe.scm:124
 #, scheme-format
 msgid "  repository: ~a~%"
 msgstr "  Repository: ~a~%"
 
-#: guix/scripts/describe.scm:123
+#: guix/scripts/describe.scm:125
 #, scheme-format
 msgid "  branch: ~a~%"
 msgstr "  Branch: ~a~%"
 
-#: guix/scripts/describe.scm:124
+#: guix/scripts/describe.scm:126
 #, scheme-format
 msgid "  commit: ~a~%"
 msgstr "  Commit: ~a~%"
@@ -3257,25 +4058,25 @@ msgstr ""
 "Aufruf: guix processes\n"
 "Zeigt eine Liste laufender Guix-Sitzungen mit ihren Prozessen."
 
-#: guix/gnu-maintenance.scm:661
+#: guix/gnu-maintenance.scm:660
 msgid "Updater for GNU packages"
-msgstr "Aktualisierungswerkzeug für GNU-Pakete"
+msgstr "Aktualisierungsprogramm für GNU-Pakete"
 
-#: guix/gnu-maintenance.scm:670
+#: guix/gnu-maintenance.scm:669
 msgid "Updater for GNU packages only available via FTP"
-msgstr "Aktualisierungswerkzeug für GNU-Pakete, die nur über FTP verfügbar sind"
+msgstr "Aktualisierungsprogramm für GNU-Pakete, die nur über FTP verfügbar sind"
 
-#: guix/gnu-maintenance.scm:679
+#: guix/gnu-maintenance.scm:678
 msgid "Updater for KDE packages"
-msgstr "Aktualisierungswerkzeug für KDE-Pakete"
+msgstr "Aktualisierungsprogramm für KDE-Pakete"
 
-#: guix/gnu-maintenance.scm:686
+#: guix/gnu-maintenance.scm:685
 msgid "Updater for X.org packages"
-msgstr "Aktualisierungswerkzeug für X.org-Pakete"
+msgstr "Aktualisierungsprogramm für X.org-Pakete"
 
-#: guix/gnu-maintenance.scm:693
+#: guix/gnu-maintenance.scm:692
 msgid "Updater for packages hosted on kernel.org"
-msgstr "Aktualisierungswerkzeug für auf kernel.org gehostete Pakete"
+msgstr "Aktualisierungsprogramm für auf kernel.org gehostete Pakete"
 
 #: guix/scripts/container.scm:26
 msgid ""
@@ -3332,90 +4133,89 @@ msgstr "Kein solcher Prozess ~d~%"
 msgid "exec failed with status ~d~%"
 msgstr "exec fehlgeschlagen mit Status ~d~%"
 
-#: guix/upstream.scm:250
+#: guix/upstream.scm:327
 #, scheme-format
 msgid "signature verification failed for `~a'~%"
 msgstr "Verifizierung der Signatur fehlgeschlagen für »~a«~%"
 
-#: guix/upstream.scm:252
+#: guix/upstream.scm:329
 #, scheme-format
 msgid "(could be because the public key is not in your keyring)~%"
 msgstr "(vielleicht befindet sich Ihr öffentlicher Schlüssel nicht im Schlüsselbund)~%"
 
-#: guix/upstream.scm:337
+#: guix/upstream.scm:397
+#, scheme-format
+msgid "cannot download for this method: ~s"
+msgstr "Kann mit dieser Methode nicht heruntergeladen werden: ~s"
+
+#: guix/upstream.scm:460
 #, scheme-format
 msgid "~a: could not locate source file"
 msgstr "~a: Quelldatei konnte nicht gefunden werden"
 
-#: guix/upstream.scm:342
+#: guix/upstream.scm:465
 #, scheme-format
 msgid "~a: ~a: no `version' field in source; skipping~%"
 msgstr "~a: ~a: Kein »version«-Feld beim Quellort; wird übersprungen~%"
 
-#: guix/ui.scm:175
+#. TRANSLATORS: The goal is to emit "warning:" followed by a short phrase;
+#. "~a" is a placeholder for that phrase.
+#: guix/ui.scm:203
+msgid "warning: "
+msgstr "Warnung: "
+
+#: guix/ui.scm:205
+msgid "error: "
+msgstr "Fehler: "
+
+#: guix/ui.scm:252
 #, scheme-format
 msgid "error: ~a: unbound variable"
 msgstr "Fehler: ~a: Nicht gebundene Variable"
 
-#: guix/ui.scm:271
+#: guix/ui.scm:348
 msgid "entering debugger; type ',bt' for a backtrace\n"
 msgstr "Debugger wird betreten; tippen Sie »,bt« für einen Backtrace\n"
 
-#: guix/ui.scm:320
-#, scheme-format
-msgid "hint: ~a~%"
-msgstr "Hinweis: ~a~%"
+#: guix/ui.scm:403
+msgid "hint: "
+msgstr "Hinweis: "
 
-#: guix/ui.scm:336
+#: guix/ui.scm:420
 msgid "Did you forget a @code{use-modules} form?"
 msgstr "Vielleicht haben Sie eine @code{use-modules}-Form vergessen?"
 
-#: guix/ui.scm:338
+#: guix/ui.scm:422
 #, scheme-format
 msgid "Did you forget @code{(use-modules ~a)}?"
 msgstr "Vielleicht haben Sie @code{(use-modules ~a)} vergessen?"
 
-#: guix/ui.scm:347 guix/ui.scm:387 guix/ui.scm:394
+#: guix/ui.scm:431 guix/ui.scm:472 guix/ui.scm:478
 #, scheme-format
 msgid "failed to load '~a': ~a~%"
 msgstr "»~a« konnte nicht geladen werden: ~a~%"
 
-#: guix/ui.scm:354
+#: guix/ui.scm:438
 #, scheme-format
 msgid "~amissing closing parenthesis~%"
 msgstr "~aschließende Klammer fehlt~%"
 
-#: guix/ui.scm:359 guix/ui.scm:367 guix/ui.scm:714
-#, scheme-format
-msgid "~a: error: ~a~%"
-msgstr "~a: Fehler: ~a~%"
-
-#: guix/ui.scm:374 guix/ui.scm:784
+#: guix/ui.scm:452 guix/ui.scm:875
 #, scheme-format
 msgid "exception thrown: ~s~%"
 msgstr "Ausnahme ausgelöst: ~s~%"
 
-#: guix/ui.scm:378 guix/ui.scm:400
+#: guix/ui.scm:456 guix/ui.scm:484
 #, scheme-format
 msgid "failed to load '~a':~%"
 msgstr "»~a« konnte nicht geladen werden:~%"
 
-#: guix/ui.scm:390
-#, scheme-format
-msgid "~a: warning: ~a~%"
-msgstr "~a: Warnung: ~a~%"
-
-#: guix/ui.scm:397
+#: guix/ui.scm:481
 #, scheme-format
 msgid "failed to load '~a': exception thrown: ~s~%"
 msgstr "»~a« konnte nicht geladen werden: Ausnahme ausgelöst: ~s~%"
 
-#: guix/ui.scm:433
-#, scheme-format
-msgid "failed to install locale: ~a~%"
-msgstr "Locale konnte nicht installiert werden: ~a~%"
-
-#: guix/ui.scm:435
+#: guix/ui.scm:514
 msgid ""
 "Consider installing the @code{glibc-utf8-locales} or\n"
 "@code{glibc-locales} package and defining @code{GUIX_LOCPATH}, along these\n"
@@ -3443,15 +4243,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:473
+#: guix/ui.scm:552
 msgid "(C)"
 msgstr "©"
 
-#: guix/ui.scm:474
+#: guix/ui.scm:553
 msgid "the Guix authors\n"
 msgstr "die Guix-Autoren\n"
 
-#: guix/ui.scm:475
+#: guix/ui.scm:554
 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"
@@ -3465,7 +4265,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:487
+#: guix/ui.scm:566
 #, scheme-format
 msgid ""
 "\n"
@@ -3475,7 +4275,7 @@ msgstr ""
 "Melden Sie Fehler an: ~a.\n"
 "Melden Sie Übersetzungsfehler an: translation-team-de@lists.sourceforge.net."
 
-#: guix/ui.scm:489
+#: guix/ui.scm:568
 #, scheme-format
 msgid ""
 "\n"
@@ -3484,7 +4284,7 @@ msgstr ""
 "\n"
 "Homepage von ~a: <~a>"
 
-#: guix/ui.scm:491
+#: guix/ui.scm:570
 msgid ""
 "\n"
 "General help using GNU software: <http://www.gnu.org/gethelp/>"
@@ -3492,27 +4292,27 @@ msgstr ""
 "\n"
 "Allgemeine Hilfe zu GNU-Software: <http://www.gnu.org/gethelp/>"
 
-#: guix/ui.scm:539
+#: guix/ui.scm:625
 #, scheme-format
 msgid "'~a' is not a valid regular expression: ~a~%"
 msgstr "»~a« ist kein gültiger regulärer Ausdruck: ~a~%"
 
-#: guix/ui.scm:545
+#: guix/ui.scm:631
 #, scheme-format
 msgid "~a: invalid number~%"
 msgstr "~a: Ungültige Zahl~%"
 
-#: guix/ui.scm:562
+#: guix/ui.scm:648
 #, scheme-format
 msgid "invalid number: ~a~%"
 msgstr "Ungültige Zahl: ~a~%"
 
-#: guix/ui.scm:585
+#: guix/ui.scm:671
 #, scheme-format
 msgid "unknown unit: ~a~%"
 msgstr "Unbekannte Einheit: ~a~%"
 
-#: guix/ui.scm:600
+#: guix/ui.scm:686
 #, scheme-format
 msgid ""
 "You cannot have two different versions\n"
@@ -3521,7 +4321,7 @@ msgstr ""
 "Sie können keine zwei verschiedenen Versionen\n"
 "oder Varianten von @code{~a} im selben Profil haben."
 
-#: guix/ui.scm:603
+#: guix/ui.scm:689
 #, scheme-format
 msgid ""
 "Try upgrading both @code{~a} and @code{~a},\n"
@@ -3530,116 +4330,116 @@ 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:622
+#: 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:629
+#: 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:635
+#: guix/ui.scm:721
 #, scheme-format
 msgid "~s: invalid G-expression input~%"
 msgstr "~s: Ungültige Eingabe eines G-Ausdrucks~%"
 
-#: guix/ui.scm:638
+#: guix/ui.scm:724
 #, scheme-format
 msgid "profile '~a' does not exist~%"
 msgstr "Profil »~a« existiert nicht~%"
 
-#: guix/ui.scm:641
+#: 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:650
+#: 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:744
 #, scheme-format
 msgid "   ... propagated from ~a@~a~%"
 msgstr "   … propagiert von ~a@~a~%"
 
-#: guix/ui.scm:660
+#: 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:663
+#: guix/ui.scm:757
 #, scheme-format
 msgid "  first entry: ~a@~a~a ~a~%"
 msgstr "  erster Eintrag: ~a@~a~a ~a~%"
 
-#: guix/ui.scm:669
+#: guix/ui.scm:763
 #, scheme-format
 msgid "  second entry: ~a@~a~a ~a~%"
 msgstr "  zweiter Eintrag: ~a@~a~a ~a~%"
 
-#: guix/ui.scm:681
+#: 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:683
+#: 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:686
+#: guix/ui.scm:780
 #, scheme-format
 msgid "failed to connect to `~a': ~a~%"
 msgstr "Verbindung zu »~a« fehlgeschlagen: ~a~%"
 
-#: guix/ui.scm:691
-#, scheme-format
-msgid "build failed: ~a~%"
-msgstr "Erstellung fehlgeschlagen: ~a~%"
-
-#: guix/ui.scm:694
+#: 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:698
+#: 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:703
+#: 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:734
+#: guix/ui.scm:825
 #, scheme-format
 msgid "~a: ~a~%"
 msgstr "~a: ~a~%"
 
-#: guix/ui.scm:769
+#: guix/ui.scm:860
 #, scheme-format
 msgid "failed to read expression ~s: ~s~%"
 msgstr "Ausdruck ~s konnte nicht gelesen werden: ~s~%"
 
-#: guix/ui.scm:775
+#: guix/ui.scm:866
 #, scheme-format
 msgid "failed to evaluate expression '~a':~%"
 msgstr "Ausdruck »~a« kann nicht ausgewertet werden:~%"
 
-#: guix/ui.scm:778
+#: guix/ui.scm:869
 #, scheme-format
 msgid "syntax error: ~a~%"
 msgstr "Syntaxfehler: ~a~%"
 
-#: guix/ui.scm:796
+#: guix/ui.scm:887
 #, scheme-format
 msgid "expression ~s does not evaluate to a package~%"
 msgstr "Ausdruck ~s ergibt kein Paket~%"
 
-#: guix/ui.scm:816
+#: guix/ui.scm:907
 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:894
+#: guix/ui.scm:1009
 #, scheme-format
 msgid "~:[The following derivation would be built:~%~{   ~a~%~}~;~]"
 msgid_plural "~:[The following derivations would be built:~%~{   ~a~%~}~;~]"
@@ -3648,25 +4448,32 @@ msgstr[1] "~:[Folgende Ableitungen würden erstellt:~%~{   ~a~%~}~;~]"
 
 #. TRANSLATORS: "MB" is for "megabyte"; it should be
 #. translated to the corresponding abbreviation.
-#: guix/ui.scm:902
+#: guix/ui.scm:1017
 msgid "~:[~,1h MB would be downloaded:~%~{   ~a~%~}~;~]"
 msgstr "~:[~,1h MB würden heruntergeladen:~%~{   ~a~%~}~;~]"
 
-#: guix/ui.scm:907
+#: guix/ui.scm:1022
 #, 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:913
+#: guix/ui.scm:1028
 #, 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:919
+#: guix/ui.scm:1033
+#, 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:1039
 #, scheme-format
 msgid "~:[The following derivation will be built:~%~{   ~a~%~}~;~]"
 msgid_plural "~:[The following derivations will be built:~%~{   ~a~%~}~;~]"
@@ -3675,85 +4482,92 @@ msgstr[1] "~:[Folgende Ableitungen werden erstellt:~%~{   ~a~%~}~;~]"
 
 #. TRANSLATORS: "MB" is for "megabyte"; it should be
 #. translated to the corresponding abbreviation.
-#: guix/ui.scm:927
+#: guix/ui.scm:1047
 msgid "~:[~,1h MB will be downloaded:~%~{   ~a~%~}~;~]"
 msgstr "~:[~,1h MB werden heruntergeladen:~%~{   ~a~%~}~;~]"
 
-#: guix/ui.scm:932
+#: guix/ui.scm:1052
 #, 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:938
+#: guix/ui.scm:1058
 #, 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:997
+#: guix/ui.scm:1063
+#, 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:1122
 #, 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:1002
+#: guix/ui.scm:1127
 #, 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:1015
+#: guix/ui.scm:1140
 #, 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:1020
+#: guix/ui.scm:1145
 #, 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:1033
+#: guix/ui.scm:1158
 #, 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:1038
+#: guix/ui.scm:1163
 #, 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:1049
+#: guix/ui.scm:1174
 #, 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:1054
+#: guix/ui.scm:1179
 #, 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:1071
+#: guix/ui.scm:1196 guix/deprecation.scm:46
 msgid "<unknown location>"
 msgstr "<unbekannte Stelle>"
 
-#: guix/ui.scm:1436
+#: guix/ui.scm:1567
 #, scheme-format
 msgid "Generation ~a\t~a"
 msgstr "Generation ~a\t~a"
@@ -3763,7 +4577,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:1445
+#: guix/ui.scm:1576
 #, scheme-format
 msgid "~b ~d ~Y ~T"
 msgstr "~d. ~B ~Y ~T"
@@ -3771,27 +4585,27 @@ 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:1451
+#: guix/ui.scm:1582
 #, scheme-format
 msgid "~a\t(current)~%"
 msgstr "~a\t(aktuell)~%"
 
-#: guix/ui.scm:1494
+#: guix/ui.scm:1625
 #, scheme-format
 msgid "switched from generation ~a to ~a~%"
 msgstr "Von Generation »~a« zu »~a« gewechselt~%"
 
-#: guix/ui.scm:1510
+#: guix/ui.scm:1641
 #, scheme-format
 msgid "deleting ~a~%"
 msgstr "~a wird gelöscht~%"
 
-#: guix/ui.scm:1541
+#: guix/ui.scm:1672
 #, scheme-format
 msgid "Try `guix --help' for more information.~%"
 msgstr "Rufen Sie »guix --help« auf, um weitere Informationen zu erhalten.~%"
 
-#: guix/ui.scm:1569
+#: guix/ui.scm:1700
 msgid ""
 "Usage: guix COMMAND ARGS...\n"
 "Run COMMAND with ARGS.\n"
@@ -3799,92 +4613,153 @@ msgstr ""
 "Aufruf: guix BEFEHL ARGUMENTE …\n"
 "BEFEHL mit ARGUMENTEN ausführen.\n"
 
-#: guix/ui.scm:1572
+#: guix/ui.scm:1703
 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:1592
+#: guix/ui.scm:1723
 #, scheme-format
 msgid "guix: ~a: command not found~%"
 msgstr "guix: ~a: Befehl nicht gefunden~%"
 
-#: guix/ui.scm:1622
+#: guix/ui.scm:1753
 #, scheme-format
 msgid "guix: missing command name~%"
 msgstr "guix: Befehlsname fehlt~%"
 
-#: guix/ui.scm:1630
+#: guix/ui.scm:1761
 #, scheme-format
 msgid "guix: unrecognized option '~a'~%"
 msgstr "guix: Nicht erkannte Option »~a«~%"
 
-#: guix/status.scm:335
+#. 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 "»~a«-Phase"
+
+#: guix/status.scm:378
+msgid "building directory of Info manuals..."
+msgstr "Verzeichnis von Info-Handbüchern wird erstellt …"
+
+#: guix/status.scm:380
+msgid "building GHC package cache..."
+msgstr "GHC-Paket-Zwischenspeicher wird erstellt …"
+
+#: guix/status.scm:382
+msgid "building CA certificate bundle..."
+msgstr "Zertifaktsbündel der Zertifikatsautoritäten wird erstellt …"
+
+#: guix/status.scm:384
+msgid "generating GLib schema cache..."
+msgstr "Zwischenspeicher für GLib-Schemata wird erzeugt …"
+
+#: guix/status.scm:386
+msgid "creating GTK+ icon theme cache..."
+msgstr "Zwischenspeicher für GTK-Symbolthemen wird erzeugt …"
+
+#: guix/status.scm:388
+msgid "building cache files for GTK+ input methods..."
+msgstr "Dateien im Zwischenspeicher für GTK-Eingabemethoden werden erstellt …"
+
+#: guix/status.scm:390
+msgid "building XDG desktop file cache..."
+msgstr "Zwischenspeicher für XDG-Desktop-Dateien wird erzeugt …"
+
+#: guix/status.scm:392
+msgid "building XDG MIME database..."
+msgstr "XDG-Mime-Datenbank wird erstellt …"
+
+#: guix/status.scm:394
+msgid "building fonts directory..."
+msgstr "Schriftartenverzeichnis wird erstellt …"
+
+#: guix/status.scm:396
+msgid "building TeX Live configuration..."
+msgstr "TeX-Live-Konfiguration wird erstellt …"
+
+#: guix/status.scm:398
+msgid "building database for manual pages..."
+msgstr "Datenbank für Handbuchseiten wird erstellt …"
+
+#: guix/status.scm:400
+msgid "building package cache..."
+msgstr "Paket-Zwischenspeicher wird erstellt …"
+
+#: guix/status.scm:475
 #, scheme-format
 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 …"
 
-#: guix/status.scm:340
+#: guix/status.scm:484
+#, scheme-format
+msgid "running profile hook of type '~a'..."
+msgstr "Profil-Hook von Typ »~a« wird ausgeführt …"
+
+#: guix/status.scm:487
 #, scheme-format
 msgid "building ~a..."
-msgstr "~a wird erstellt …~%"
+msgstr "~a wird erstellt …"
 
-#: guix/status.scm:344
+#: guix/status.scm:492
 #, scheme-format
 msgid "successfully built ~a"
 msgstr "~a wurde erfolgreich erstellt"
 
-#: guix/status.scm:350
+#: guix/status.scm:498
 #, scheme-format
 msgid "The following build is still in progress:~%~{  ~a~%~}~%"
 msgid_plural "The following builds are still in progress:~%~{  ~a~%~}~%"
 msgstr[0] "Die folgende Erstellung läuft noch:~%~{  ~a~%~}~%"
 msgstr[1] "Die folgenden Erstellungen laufen noch:~%~{  ~a~%~}~%"
 
-#: guix/status.scm:355
+#: guix/status.scm:504
 #, scheme-format
 msgid "build of ~a failed"
 msgstr "Erstellung von ~a fehlgeschlagen"
 
-#: guix/status.scm:359
+#: guix/status.scm:508
 #, scheme-format
 msgid "Could not find build log for '~a'."
 msgstr "Kein Erstellungsprotokoll für »~a« gefunden."
 
-#: guix/status.scm:362
+#: guix/status.scm:511
 #, scheme-format
 msgid "View build log at '~a'."
 msgstr "Das Erstellungsprotokoll kann unter »~a« eingesehen werden."
 
-#: guix/status.scm:366
+#: guix/status.scm:516
 #, scheme-format
 msgid "substituting ~a..."
 msgstr "Substituiere ~a …"
 
-#: guix/status.scm:369
+#: guix/status.scm:520
 #, scheme-format
 msgid "downloading from ~a..."
 msgstr "Lade von ~a herunter …"
 
-#: guix/status.scm:394
+#: guix/status.scm:545
 #, scheme-format
 msgid "substitution of ~a complete"
 msgstr "Substitution von ~a abgeschlossen"
 
-#: guix/status.scm:397
+#: guix/status.scm:548
 #, scheme-format
 msgid "substitution of ~a failed"
 msgstr "Substitution von ~a fehlgeschlagen"
 
 #. TRANSLATORS: The final string looks like "sha256 hash mismatch for
 #. /gnu/store/…-sth:", where "sha256" is the hash algorithm.
-#: guix/status.scm:402
+#: guix/status.scm:553
 #, scheme-format
 msgid "~a hash mismatch for ~a:"
 msgstr "»~a«-Prüfsummenfehler für ~a:"
 
-#: guix/status.scm:404
+#: guix/status.scm:555
 #, scheme-format
 msgid ""
 "  expected hash: ~a\n"
@@ -3893,7 +4768,7 @@ msgstr ""
 "  erwartete Prüfsumme:    ~a\n"
 "  tatsächliche Prüfsumme: ~a~%"
 
-#: guix/status.scm:409
+#: guix/status.scm:560
 #, scheme-format
 msgid "offloading build of ~a to '~a'"
 msgstr "Lagere Erstellung von ~a an »~a« aus"
@@ -3950,35 +4825,78 @@ msgstr "Der importierten Datei fehlt eine Signatur"
 msgid "invalid inter-file archive mark"
 msgstr "Ungültige Archiv-Markierung zwischen Dateien"
 
-#: guix/channels.scm:108
+#: guix/channels.scm:177
 #, scheme-format
 msgid "Updating channel '~a' from Git repository at '~a'...~%"
 msgstr "Kanal »~a« wird vom Git-Repository auf »~a« aktualisiert …~%"
 
-#: guix/profiles.scm:501
+#: guix/channels.scm:366
+msgid "'guix' channel is lacking"
+msgstr "Ein »guix«-Kanal fehlt"
+
+#: guix/profiles.scm:511
 msgid "unsupported manifest format"
 msgstr "Nicht unterstütztes Manifest-Format"
 
-#: guix/profiles.scm:1630
+#: guix/profiles.scm:1748
 #, scheme-format
 msgid "while creating directory `~a': ~a"
 msgstr "Beim Anlegen des Verzeichnisses »~a«: ~a"
 
-#: guix/profiles.scm:1635
+#: guix/profiles.scm:1753
 #, 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:1644
+#: guix/profiles.scm:1762
 #, scheme-format
 msgid "directory `~a' is not owned by you"
 msgstr "Das Verzeichnis »~a« gehört Ihnen nicht."
 
-#: guix/profiles.scm:1648
+#: guix/profiles.scm:1766
 #, 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:159
+msgid "long Git object ID is required"
+msgstr "Eine lange Git-Objekt-ID muss angegeben werden"
+
+#: guix/git.scm:192
+#, scheme-format
+msgid "updating submodule '~a'...~%"
+msgstr "Aktualisiere Submodul »~a« …~%"
+
+#: guix/git.scm:205
+#, scheme-format
+msgid "Support for submodules is missing; please upgrade Guile-Git.~%"
+msgstr "Unterstützung für Submodule fehlt; bitte aktualisieren Sie Guile-Git.~%"
+
+#: guix/git.scm:344
+#, scheme-format
+msgid "cannot fetch commit ~a from ~a: ~a"
+msgstr "Kann Commit ~a aus ~a nicht holen: ~a"
+
+#: guix/git.scm:347
+#, scheme-format
+msgid "cannot fetch branch '~a' from ~a: ~a"
+msgstr "Kann Branch »~a« aus ~a nicht holen: ~a"
+
+#: guix/git.scm:350
+#, scheme-format
+msgid "Git failure while fetching ~a: ~a"
+msgstr "Git-Fehler beim Holen von ~a: ~a"
+
+#: guix/deprecation.scm:51
+#, scheme-format
+msgid "~a: warning: '~a' is deprecated~@[, use '~a' instead~]~%"
+msgstr "~a: Warnung: »~a« ist obsolet~@[, benutzen Sie »~a«~]~%"
+
+#: gnu/build/bootloader.scm:91
+#, 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~%~}"
+
 #: nix/nix-daemon/guix-daemon.cc:66
 msgid "guix-daemon -- perform derivation builds and store accesses"
 msgstr "guix-daemon — Ableitungserstellungen und Store-Zugriffe durchführen"
@@ -4103,9 +5021,39 @@ msgstr "auf Verbindungen an SOCKET lauschen"
 msgid "produce debugging output"
 msgstr "Debug-Ausgabe zur Fehlersuche erzeugen"
 
+#~ msgid "'--url', '--commit', and '--branch' are not applicable~%"
+#~ msgstr "»--url«, »--commit« und »--branch« passen hier nicht.~%"
+
+#~ msgid ""
+#~ "Consider running @command{guix gc} to free\n"
+#~ "space."
+#~ msgstr ""
+#~ "Vielleicht möchten Sie mit dem Befehl @command{guix gc}\n"
+#~ "freien Speicherplatz auf Ihrer Platte schaffen."
+
+#~ msgid ""
+#~ "\n"
+#~ "  -n, --dry-run          show what would be pulled and built"
+#~ msgstr ""
+#~ "\n"
+#~ "  -n, --dry-run          anzeigen, was heruntergeladen und\n"
+#~ "                           erstellt würde"
+
+#~ msgid "source location of package '~a' is unknown~%"
+#~ msgstr "Stelle im Quellcode für das Paket »~a« ist unbekannt~%"
+
+#~ msgid "~a: error: ~a~%"
+#~ msgstr "~a: Fehler: ~a~%"
+
+#~ msgid "failed to install locale: ~a~%"
+#~ msgstr "Locale konnte nicht installiert werden: ~a~%"
+
+#~ msgid "build failed: ~a~%"
+#~ msgstr "Erstellung fehlgeschlagen: ~a~%"
+
 #~ msgid "Try \"info '(guix) Invoking guix package'\" for more information.~%"
 #~ msgstr ""
-#~ "Versuchen Sie, »info '(guix) Invoking guix package'« aufzurufen, um mehr\n"
+#~ "Versuchen Sie, »info '(guix.de) guix package aufrufen'« aufzurufen, um mehr\n"
 #~ "Informationen zu erhalten.~%"
 
 #~ msgid ""
@@ -4144,7 +5092,7 @@ msgstr "Debug-Ausgabe zur Fehlersuche erzeugen"
 #~ msgstr "Guix ist bereits aktuell\n"
 
 #~ msgid "failed to update Guix, check the build log~%"
-#~ msgstr "Guix konnte nicht aktualisiert werden, schauen Sie in das Build-Protokoll~%"
+#~ msgstr "Guix konnte nicht aktualisiert werden, schauen Sie in das Erstellungsprotokoll~%"
 
 #~ msgid "~A: unexpected argument~%"
 #~ msgstr "~A: unerwartetes Argument~%"
@@ -4152,24 +5100,15 @@ msgstr "Debug-Ausgabe zur Fehlersuche erzeugen"
 #~ msgid "failed to download up-to-date source, exiting\n"
 #~ msgstr "Aktueller Quellcode konnte nicht heruntergeladen werden, Abbruch\n"
 
-#, fuzzy
-#~| msgid "found valid signature for '~a'~%"
 #~ msgid "~%Found valid signature for ~a~%"
-#~ msgstr "Gültige Signatur für »~a« gefunden~%"
+#~ msgstr "~%Gültige Signatur für »~a« gefunden~%"
 
-#, fuzzy
-#~| msgid "~a~%"
 #~ msgid "From ~a~%"
-#~ msgstr "~a~%"
+#~ msgstr "Von ~a~%"
 
 #~ msgid "failed to install GRUB on device '~a'~%"
 #~ msgstr "GRUB konnte nicht auf Gerät »~a« installiert werden~%"
 
-#, fuzzy
-#~| msgid "failed to load '~a': ~a~%"
-#~ msgid "failed to lookup NIST host: ~a~%"
-#~ msgstr "»~a« konnte nicht geladen werden: ~a~%"
-
 #~ msgid "  ~50a: unavailable~%"
 #~ msgstr "  ~50a: nicht verfügbar~%"
 
@@ -4182,11 +5121,20 @@ msgstr "Debug-Ausgabe zur Fehlersuche erzeugen"
 #~ msgid "download failed"
 #~ msgstr "Herunterladen fehlgeschlagen"
 
-#~ msgid "error: %s\n"
-#~ msgstr "Fehler: %s\n"
-
 #~ msgid "error: libgcrypt version mismatch\n"
 #~ msgstr "Fehler: libgcrypt-Version passt nicht\n"
 
-#~ msgid "too many arguments\n"
-#~ msgstr "Zu wenige Argumente\n"
+#~ msgid ""
+#~ "Choose the locale's language to be used for the installation process. A locale is a regional variant of your language encompassing number, date and currency format, among other details.\n"
+#~ "\n"
+#~ "Based on the language you choose, you will possibly be asked to select a locale's territory, codeset and modifier in the next steps. The locale will also be used as the default one for the installed system."
+#~ msgstr ""
+#~ "Wählen Sie die Sprache Ihrer Locale aus, die während der Installation verwendet werden soll. Eine Locale ist eine regionale Variante Ihrer Sprache einschließlich des Formats für Zahlen, Datumsangaben und Währungsangaben, sowie weitere Eigenschaften.\n"
+#~ "\n"
+#~ "Basierend auf der hier gewählten Sprache werden Ihnen möglicherweise weitere Fragen nach dem Gebiet bzw. Territorium, der Kodierung und Modifikatoren gestellt werden. Diese Locale wird auch als voreingestellte Locale für das installierte System genutzt werden."
+
+#~ msgid "Choose your locale's location. This is a shortlist of locations based on the language you selected."
+#~ msgstr "Wo befindet sich die gewünschte Locale? Zur Auswahl stehen Gebiete basierend auf der gewählten Sprache."
+
+#~ msgid "Choose your locale's codeset. If UTF-8 is available,  it should be preferred."
+#~ msgstr "Welche Kodierung (»Codeset«) soll für Ihre Locale benutzt werden? Sie sollten UTF-8 bevorzugen, falls es verfügbar ist."
diff --git a/po/guix/es.po b/po/guix/es.po
index e3362c0545..4859d26d89 100644
--- a/po/guix/es.po
+++ b/po/guix/es.po
@@ -1,15 +1,17 @@
 # Spanish messages for GNU Guix.
-# Copyright (C) 2017 the authors of Guix (msgids)
+# Copyright (C) 2017, 2018, 2019 the authors of Guix (msgids)
 # This file is distributed under the same license as the guix package.
 # Jorge Maldonado Ventura <jorgesumle@freakspot.net>, 2018.
+# Miguel Ángel Arruga Vivas <rosen644835@gmail.com>, 2019.
 #
+#: guix/ui.scm:204
 msgid ""
 msgstr ""
-"Project-Id-Version: guix 0.14.0\n"
+"Project-Id-Version: guix 1.0.0-pre2\n"
 "Report-Msgid-Bugs-To: ludo@gnu.org\n"
-"POT-Creation-Date: 2017-11-28 08:56+0100\n"
-"PO-Revision-Date: 2018-03-30 02:16+0200\n"
-"Last-Translator: Jorge Maldonado Ventura <jorgesumle@freakspot.net>\n"
+"POT-Creation-Date: 2019-04-24 13:25+0200\n"
+"PO-Revision-Date: 2019-04-25 13:24+0200\n"
+"Last-Translator: Miguel Ángel Arruga Vivas <rosen644835@gmail.com>\n"
 "Language-Team: Spanish <es@tp.org.es>\n"
 "Language: es\n"
 "MIME-Version: 1.0\n"
@@ -17,14 +19,13 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "X-Bugs: Report translation errors to the Language-Team address.\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Poedit 2.0.4\n"
 
-#: gnu.scm:82
+#: gnu.scm:83
 #, scheme-format
 msgid "module ~a not found"
 msgstr "módulo ~a no encontrado"
 
-#: gnu.scm:100
+#: gnu.scm:101
 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,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:108
+#: gnu.scm:109
 #, scheme-format
 msgid "Try adding @code{(use-package-modules ~a)}."
-msgstr "Pruebe añadiendo @code{(use-package-modules ~a)}"
+msgstr "Intente añadir @code{(use-package-modules ~a)}"
 
-#: gnu.scm:123
+# FUZZY
+#: gnu.scm:124
 #, scheme-format
 msgid ""
 "You may use @command{guix system search ~a} to search for a service\n"
@@ -49,412 +51,1395 @@ 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 ""
+"Puede usar @command{guix system search ~a} para buscar un servicio que\n"
+"corresponda con @code{~a}.\n"
+"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:132
+#: gnu.scm:133
 #, scheme-format
 msgid "Try adding @code{(use-service-modules ~a)}."
-msgstr ""
+msgstr "Intente añadir @code{(use-package-modules ~a)}."
 
-#: gnu/packages.scm:92
+#: gnu/packages.scm:103
 #, scheme-format
 msgid "~a: patch not found"
 msgstr "~a: parche no encontrado"
 
-#: gnu/packages.scm:108
+#: gnu/packages.scm:119
 #, scheme-format
 msgid "could not find bootstrap binary '~a' for system '~a'"
-msgstr ""
+msgstr "no se pudo encontrar el binario del lanzamiento inicial '~a' para el sistema '~a'"
 
-#: gnu/packages.scm:240
+#: 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:241
+#: gnu/packages.scm:481 gnu/packages.scm:522
 #, scheme-format
 msgid "choosing ~a@~a from ~a~%"
-msgstr ""
+msgstr "seleccionando ~a@~a de ~a~%"
 
-#: gnu/packages.scm:246 guix/scripts/package.scm:271
+# FUZZY
+#: gnu/packages.scm:486 guix/scripts/package.scm:208
 #, scheme-format
 msgid "package '~a' has been superseded by '~a'~%"
-msgstr ""
+msgstr "el paquete '~a' ha sido reemplazado por '~a'~%"
 
-#: gnu/packages.scm:253
+#: 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:254
+#: gnu/packages.scm:494 gnu/packages.scm:511
 #, scheme-format
 msgid "~A: unknown package~%"
 msgstr "~A: paquete desconocido~%"
 
-#: gnu/packages.scm:282
+#: gnu/packages.scm:546
 #, scheme-format
 msgid "package `~a' lacks output `~a'~%"
-msgstr ""
+msgstr "el paquete '~a' carece de la salida '~a'~%"
 
-#: gnu/services.scm:235
+#: gnu/services.scm:238
 #, 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:336
+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 "Construye el directorio de nivel superior del sistema operativo, el cual a su vez hace referencia a todo lo que el sistema operativo necesita: su núcleo, initrd, perfil del sistema, guión de arranque y demás."
+
+#: gnu/services.scm:366
+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."
+
+# FUZZY
+#: gnu/services.scm:422
+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"
+"ubicaciones temporales durante el tiempo de arranque."
+
+#: gnu/services.scm:476
+msgid ""
+"Run @dfn{activation} code at boot time and upon\n"
+"@command{guix system reconfigure} completion."
+msgstr ""
+"Ejecuta el código de @dfn{activación} durante el arranque\n"
+"y una vez termina @command{guix system reconfigure}."
+
+#: gnu/services.scm:527
+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"
+"raíz---por ejemplo, @file{/usr/bin/env}."
 
-#: gnu/services.scm:650
+# FUZZY
+#: gnu/services.scm:563
+msgid "Populate the @file{/etc} directory."
+msgstr "Genera el contenido del directorio @file{/etc}."
+
+#: gnu/services.scm:580
+msgid ""
+"Populate @file{/run/setuid-programs} with the specified\n"
+"executables, making them setuid-root."
+msgstr ""
+"Genera el contenido de @file{/run/setuid-programs} con los\n"
+"ejecutables especificados, marcandolos con setuid de root."
+
+#: gnu/services.scm:600
+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 ""
+"Este es el @dfn{perfil del sistema}, disponible como\n"
+"@file{/run/current-system/profile}. Contiene paquetes que la\n"
+"administradora del sistema desea que estén disponibles globalmente a\n"
+"todas las usuarias del sistema."
+
+#: gnu/services.scm:620
+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"
+"del sistema operativo. El firmware puede cargarse en algunos\n"
+"dispositivos de la máquina como tarjetas WiFi."
+
+#: gnu/services.scm:651
+msgid ""
+"Register garbage-collector roots---i.e., store items that\n"
+"will not be reclaimed by the garbage collector."
+msgstr ""
+"Registra raíces del recolector de basura---es decir, elementos del\n"
+"almacén que el recolector de basura no reclamará."
+
+# FUZZY
+#: gnu/services.scm:676
 #, scheme-format
 msgid "no target of type '~a' for service '~a'"
-msgstr ""
+msgstr "ningún objetivo de tipo '~a' para el servicio '~a'"
 
-#: gnu/services.scm:662 gnu/services.scm:723
+# FUZZY
+#: gnu/services.scm:702 gnu/services.scm:805
 #, scheme-format
 msgid "more than one target service of type '~a'"
-msgstr ""
+msgstr "más de un servicio objetivo de tipo '~a'"
 
-#: gnu/services.scm:713
+#: gnu/services.scm:795
 #, scheme-format
 msgid "service of type '~a' not found"
-msgstr ""
+msgstr "servicio de tipo '~a' no encontrado"
 
-#: gnu/system.scm:305
+#: gnu/system.scm:334
 #, scheme-format
-msgid "unrecognized boot parameters for '~a'~%"
-msgstr ""
+msgid "unrecognized boot parameters at '~a'~%"
+msgstr "parámetros de arranque en '~a' no reconocidos~%"
 
-#: gnu/system.scm:695
+#: gnu/system.scm:732
 #, scheme-format
 msgid "using a string for file '~a' is deprecated; use 'plain-file' instead~%"
-msgstr ""
+msgstr "el uso de una cadena para el fichero '~a' está obsoleto; use 'plain-file'~%"
 
-#: gnu/system.scm:711
+#: gnu/system.scm:748
 #, scheme-format
 msgid "using a monadic value for '~a' is deprecated; use 'plain-file' instead~%"
-msgstr ""
+msgstr "el uso de un valor monádico para '~a' está obsoleto; use 'plain-file'~%"
 
-#: gnu/system.scm:856
+#: gnu/system.scm:893
 #, scheme-format
 msgid "~a: invalid locale name"
-msgstr "~a: nombre de configuración regional inválido"
+msgstr "~a: nombre de localización no válido"
 
-#: gnu/services/shepherd.scm:166
+#: gnu/services/shepherd.scm:194
 #, scheme-format
 msgid "service '~a' provided more than once"
-msgstr ""
+msgstr "se proporciona el servicio '~a' más de una vez"
 
-#: gnu/services/shepherd.scm:181
+#: gnu/services/shepherd.scm:209
 #, 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
+#, 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
+#, 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 ""
+"Intente añadirlos al campo\n"
+"@code{initrd-modules} de su declaración @code{operating-system}, más\n"
+"o menos así:\n"
+"\n"
+"@example\n"
+" (operating-system\n"
+"   ;; @dots{}\n"
+"   (initrd-modules (append (list~{ ~s~})\n"
+"                           %base-initrd-modules)))\n"
+"@end example\n"
+"\n"
+"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
+#, scheme-format
+msgid "no LUKS partition with UUID '~a'"
+msgstr "ninguna partición LUKS con UUID '~a'"
 
-#: gnu/system/shadow.scm:231
+#: gnu/system/shadow.scm:236
 #, scheme-format
 msgid "supplementary group '~a' of user '~a' is undeclared"
-msgstr ""
+msgstr "el grupo suplementario '~a' de la usuaria '~a' no se ha declarado"
 
-#: gnu/system/shadow.scm:241
+#: gnu/system/shadow.scm:246
 #, scheme-format
 msgid "primary group '~a' of user '~a' is undeclared"
+msgstr "el grupo primario '~a' de la usuaria '~a' no se ha declarado"
+
+#: guix/import/opam.scm:133
+#, scheme-format
+msgid "Package not found in opam repository: ~a~%"
+msgstr "Paquete no encontrado en el repositorio opam: ~a~%"
+
+#: guix/import/opam.scm:344
+msgid "Updater for OPAM packages"
+msgstr "Actualizador para paquetes OPAM"
+
+#: gnu/installer.scm:191
+msgid "Locale"
+msgstr "Localización"
+
+#: gnu/installer.scm:207 gnu/installer/newt/timezone.scm:58
+msgid "Timezone"
+msgstr "Zona horaria"
+
+#: gnu/installer.scm:223
+msgid "Keyboard mapping selection"
+msgstr "Selección de distribución de teclado"
+
+#: gnu/installer.scm:232
+msgid "Partitioning"
+msgstr "Particionado"
+
+#: gnu/installer.scm:240 gnu/installer/newt/hostname.scm:26
+msgid "Hostname"
+msgstr "Nombre de máquina"
+
+#: gnu/installer.scm:249
+msgid "Network selection"
+msgstr "Selección de red"
+
+#: gnu/installer.scm:256 gnu/installer/newt/user.scm:46
+msgid "User creation"
+msgstr "Creación de usuarias"
+
+#: gnu/installer.scm:264
+msgid "Services"
+msgstr "Servicios"
+
+#: gnu/installer.scm:271 gnu/installer/newt/final.scm:41
+msgid "Configuration file"
+msgstr "Fichero de configuración"
+
+#: gnu/installer/connman.scm:196
+msgid "Could not determine the state of connman."
+msgstr "No se pudo determinar el estado de connman."
+
+# FUZZY
+#: gnu/installer/connman.scm:322
+msgid "Unable to find expected regexp."
+msgstr "No se pudo encontrar la expresión regular esperada."
+
+#: gnu/installer/newt.scm:60
+#, scheme-format
+msgid "The installer has encountered an unexpected problem. The backtrace is displayed below. Please report it by email to <~a>."
+msgstr "El instalador ha encontrado un problema inesperado. La pila de llamadas se muestra a continuación. Por favor, informe del error por correo electrónico a <~a>."
+
+#: gnu/installer/newt.scm:63
+msgid "Unexpected problem"
+msgstr "Problema inesperado"
+
+#: gnu/installer/newt/ethernet.scm:65
+msgid "No ethernet service available, please try again."
+msgstr "No hay un servicio ethernet disponible, por favor, intentelo de nuevo."
+
+#: gnu/installer/newt/ethernet.scm:66
+msgid "No service"
+msgstr "Ningún servicio"
+
+#: gnu/installer/newt/ethernet.scm:71
+msgid "Please select an ethernet network."
+msgstr "Por favor, seleccione una red ethernet."
+
+#: gnu/installer/newt/ethernet.scm:72
+msgid "Ethernet connection"
+msgstr "Conexión ethernet"
+
+#: gnu/installer/newt/ethernet.scm:75 gnu/installer/newt/keymap.scm:44
+#: gnu/installer/newt/locale.scm:43 gnu/installer/newt/network.scm:61
+#: gnu/installer/newt/network.scm:76 gnu/installer/newt/page.scm:156
+#: gnu/installer/newt/page.scm:481 gnu/installer/newt/page.scm:538
+#: gnu/installer/newt/partition.scm:52 gnu/installer/newt/partition.scm:80
+#: gnu/installer/newt/partition.scm:112 gnu/installer/newt/partition.scm:123
+#: gnu/installer/newt/partition.scm:619 gnu/installer/newt/partition.scm:640
+#: gnu/installer/newt/partition.scm:679 gnu/installer/newt/partition.scm:730
+#: gnu/installer/newt/partition.scm:741 gnu/installer/newt/services.scm:81
+#: gnu/installer/newt/timezone.scm:63 gnu/installer/newt/user.scm:119
+#: gnu/installer/newt/wifi.scm:201
+msgid "Exit"
+msgstr "Salir"
+
+#: gnu/installer/newt/final.scm:37
+msgid "We're now ready to proceed with the installation! A system configuration file has been generated, it is displayed below.  The new system will be created from this file once you've pressed OK.  This will take a few minutes."
+msgstr "¡Estamos procediento con la instalación! Un fichero de configuración del sistema se ha generado, se muestra a continuación. El nuevo sistema se creará desde este fichero una vez haya pulsado OK. Esto tomará algunos minutos."
+
+#: gnu/installer/newt/final.scm:54
+msgid "Installation complete"
+msgstr "Instalación completada"
+
+#: gnu/installer/newt/final.scm:55 gnu/installer/newt/welcome.scm:115
+msgid "Reboot"
+msgstr "Reiniciar"
+
+#: gnu/installer/newt/final.scm:56
+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:62
+msgid "Installation failed"
+msgstr "Fallo en la instalación"
+
+#: gnu/installer/newt/final.scm:63
+msgid "Restart installer"
+msgstr "Reiniciar el instalador"
+
+#: gnu/installer/newt/final.scm:64
+msgid "Retry system install"
+msgstr "Reintentar la instalación del sistema"
+
+#: gnu/installer/newt/final.scm:65
+msgid "The final system installation step failed.  You can retry the last step, or restart the installer."
+msgstr "Falló el paso final de la instalación del sistema. Puede reintentar el último paso o reiniciar el instalador."
+
+#: gnu/installer/newt/hostname.scm:25
+msgid "Please enter the system hostname."
+msgstr "Por favor, introduzca el nombre de máquina del sistema."
+
+#: gnu/installer/newt/keymap.scm:37
+msgid "Layout"
+msgstr "Distribución del teclado"
+
+#: gnu/installer/newt/keymap.scm:40
+msgid "Please choose your keyboard layout."
+msgstr "Por favor, seleccione su distribución del teclado."
+
+# FUZZY
+#: gnu/installer/newt/keymap.scm:52
+msgid "Variant"
+msgstr "Variante"
+
+# FUZZY
+#: gnu/installer/newt/keymap.scm:55
+msgid "Please choose a variant for your keyboard layout."
+msgstr "Por favor, seleccione la variante de su distribución del teclado."
+
+#: 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:575 gnu/installer/newt/timezone.scm:64
+msgid "Back"
+msgstr "Atrás"
+
+#: gnu/installer/newt/locale.scm:36
+msgid "Locale language"
+msgstr "Lengua de la localización"
+
+#: gnu/installer/newt/locale.scm:37
+msgid "Choose the language to use for the installation process and for the installed system."
+msgstr "Seleccione la lengua a usar en el proceso de instalación y para el sistema instalado."
+
+# FUZZY
+#: gnu/installer/newt/locale.scm:57
+msgid "Locale location"
+msgstr "Localización física"
+
+#: gnu/installer/newt/locale.scm:60
+msgid "Choose a territory for this language."
+msgstr "Seleccione un territorio para esta lengua."
+
+#: gnu/installer/newt/locale.scm:71
+msgid "Locale codeset"
+msgstr "Conjunto de códigos de la localización"
+
+#: gnu/installer/newt/locale.scm:74
+msgid "Choose the locale encoding."
+msgstr "Seleccione la codificación de la localización."
+
+#: gnu/installer/newt/locale.scm:86
+msgid "Locale modifier"
+msgstr "Modificadores de la localización"
+
+#: 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 "Seleccione los modificadores de su localización. El más frecuente es euro. Indica que desea usar Euro como símbolo de la moneda."
+
+#: gnu/installer/newt/locale.scm:190
+msgid "No location"
+msgstr "Ninguna localización"
+
+#: gnu/installer/newt/locale.scm:217
+msgid "No modifier"
+msgstr "Ningún modificador"
+
+# FUZZY
+#: 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 "Seleccione donde desea reanudar la instalación. Puede también abortar la instalación pulsando el botón Abortar."
+
+#: gnu/installer/newt/menu.scm:37
+msgid "Installation menu"
+msgstr "Menú de instalación"
+
+#: gnu/installer/newt/menu.scm:41
+msgid "Abort"
+msgstr "Abortar"
+
+#: gnu/installer/newt/network.scm:59 gnu/installer/newt/network.scm:73
+msgid "Internet access"
+msgstr "Acceso a internet"
+
+#: gnu/installer/newt/network.scm:60 gnu/installer/newt/page.scm:155
+msgid "Continue"
+msgstr "Continuar"
+
+#: gnu/installer/newt/network.scm:62
+msgid "The install process requires Internet access but no network device were found. Do you want to continue anyway?"
+msgstr "El proceso de instalación necesita acceso a internet pero no se ha encontrado ningún dispositivo de red. ¿Desea continuar de todos modos?"
+
+#: gnu/installer/newt/network.scm:71
+msgid "The install process requires Internet access. Please select a network device."
+msgstr "El proceso de instalación necesita acceso a internet. Por favor, seleccione un dispositivo de red."
+
+# FUZZY
+#: gnu/installer/newt/network.scm:95
+msgid "Powering technology"
+msgstr "Tecnología de alimentación"
+
+#: gnu/installer/newt/network.scm:115
+msgid "Checking connectivity"
+msgstr "Comprobando la conectividad"
+
+#: gnu/installer/newt/network.scm:116
+msgid "Waiting for Internet access establishment..."
+msgstr "Esperando al establecimiento del acceso a internet..."
+
+#: gnu/installer/newt/network.scm:126
+msgid "The selected network does not provide access to the Internet, please try again."
+msgstr "La red seleccionada no proporciona acceso a internet, por favor, intente de nuevo."
+
+#: gnu/installer/newt/network.scm:128 gnu/installer/newt/wifi.scm:105
+msgid "Connection error"
+msgstr "Error de conexión"
+
+#: gnu/installer/newt/page.scm:71
+#, scheme-format
+msgid "Connecting to ~a, please wait."
+msgstr "Conectando a ~a, por favor, espere."
+
+#: gnu/installer/newt/page.scm:72
+msgid "Connection in progress"
+msgstr "Conexión en progreso"
+
+# FUZZY
+#: gnu/installer/newt/page.scm:89 gnu/installer/newt/page.scm:480
+#: gnu/installer/newt/page.scm:537 gnu/installer/newt/partition.scm:438
+#: gnu/installer/newt/partition.scm:618 gnu/installer/newt/partition.scm:639
+#: gnu/installer/newt/partition.scm:677 gnu/installer/newt/user.scm:44
+#: gnu/installer/newt/user.scm:118
+msgid "OK"
+msgstr "OK"
+
+#: gnu/installer/newt/page.scm:104
+msgid "Please enter a non empty input."
+msgstr "Por favor, proporcione una entrada no vacía."
+
+#: gnu/installer/newt/page.scm:105 gnu/installer/newt/user.scm:76
+msgid "Empty input"
+msgstr "Entrada vacía"
+
+#: gnu/installer/newt/partition.scm:48
+msgid "Please select a partitioning scheme."
+msgstr "Por favor, seleccione un esquema de particionado."
+
+#: gnu/installer/newt/partition.scm:49
+msgid "Partition scheme"
+msgstr "Esquema de particionado"
+
+#: gnu/installer/newt/partition.scm:59
+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?"
+
+#: gnu/installer/newt/partition.scm:61
+msgid "Format disk?"
+msgstr "¿Dar formato al disco?"
+
+#: gnu/installer/newt/partition.scm:64
+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:65
+msgid "Preparing partitions"
+msgstr "Preparando las particiones"
+
+#: gnu/installer/newt/partition.scm:76
+msgid "Please select a disk."
+msgstr "Por favor, seleccione un disco."
+
+#: gnu/installer/newt/partition.scm:77
+msgid "Disk"
+msgstr "Disco"
+
+#: gnu/installer/newt/partition.scm:88
+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:90
+msgid "Partition table"
+msgstr "Tabla de particiones"
+
+#: gnu/installer/newt/partition.scm:107
+msgid "Please select a partition type."
+msgstr "Por favor, seleccione un tipo de partición."
+
+#: gnu/installer/newt/partition.scm:108
+msgid "Partition type"
+msgstr "Tipo de partición"
+
+#: gnu/installer/newt/partition.scm:118
+msgid "Please select the file-system type for this partition."
+msgstr "Por favor, seleccione el tipo de sistema de ficheros para esta partición."
+
+#: gnu/installer/newt/partition.scm:119
+msgid "File-system type"
+msgstr "Tipo del sistema de ficheros"
+
+#: gnu/installer/newt/partition.scm:132
+msgid "Primary partitions count exceeded."
+msgstr "Se excedió el número posible de particiones primarias."
+
+#: gnu/installer/newt/partition.scm:133 gnu/installer/newt/partition.scm:138
+#: gnu/installer/newt/partition.scm:143
+msgid "Creation error"
+msgstr "Error de creación"
+
+#: gnu/installer/newt/partition.scm:137
+msgid "Extended partition creation error."
+msgstr "Error al crear la partición extendida."
+
+#: gnu/installer/newt/partition.scm:142
+msgid "Logical partition creation error."
+msgstr "Error al crear la partición lógica."
+
+#: gnu/installer/newt/partition.scm:156
+#, 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:158 gnu/installer/newt/wifi.scm:90
+msgid "Password required"
+msgstr "Contraseña necesaria"
+
+#: gnu/installer/newt/partition.scm:162
+#, 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:164
+msgid "Password confirmation required"
+msgstr "Se necesita la confirmación de la contraseña"
+
+#: gnu/installer/newt/partition.scm:175
+msgid "Password mismatch, please try again."
+msgstr "Las contraseñas no coinciden, por favor, intentelo de nuevo."
+
+#: gnu/installer/newt/partition.scm:176
+msgid "Password error"
+msgstr "Error de contraseña"
+
+#: gnu/installer/newt/partition.scm:262
+msgid "Please enter the partition gpt name."
+msgstr "Por favor, introduzca el nombre de gpt de la partición."
+
+#: gnu/installer/newt/partition.scm:263
+msgid "Partition name"
+msgstr "Nombre de la partición"
+
+#: gnu/installer/newt/partition.scm:293
+msgid "Please enter the encrypted label"
+msgstr "Por favor, introduzca la etiqueta de cifrado"
+
+#: gnu/installer/newt/partition.scm:294
+msgid "Encryption label"
+msgstr "Etiqueta de cifrado"
+
+#: gnu/installer/newt/partition.scm:311
+#, 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:313
+msgid "Partition size"
+msgstr "Tamaño de la partición"
+
+#: gnu/installer/newt/partition.scm:331
+msgid "The percentage can not be superior to 100."
+msgstr "El porcentaje no puede ser superior a 100."
+
+#: gnu/installer/newt/partition.scm:332 gnu/installer/newt/partition.scm:337
+#: gnu/installer/newt/partition.scm:342
+msgid "Size error"
+msgstr "Error en el tamaño"
+
+#: gnu/installer/newt/partition.scm:336
+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:341
+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:361
+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:363
+msgid "Mounting point"
+msgstr "Punto de montaje"
+
+# FUZZY
+#: gnu/installer/newt/partition.scm:432
+msgid "Partition creation"
+msgstr "Crear partición"
+
+# FUZZY
+#: gnu/installer/newt/partition.scm:433
+msgid "Partition edit"
+msgstr "Editar partición"
+
+#: gnu/installer/newt/partition.scm:615
+#, 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:617
+msgid "Delete disk"
+msgstr "Borrar disco"
+
+#: gnu/installer/newt/partition.scm:631
+msgid "You cannot delete a free space area."
+msgstr "No puede borrar un área de espacio libre."
+
+#: gnu/installer/newt/partition.scm:632 gnu/installer/newt/partition.scm:638
+msgid "Delete partition"
+msgstr "Borrar partición"
+
+#: gnu/installer/newt/partition.scm:636
+#, 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:653
+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 ""
+"Puede cambiar una tabla de particiones de un disco seleccionandola y pulsando INTRO, También puede editar una partición seleccionandola y pulsando INTRO, o borrarla pulsando SUPR. Para crear una nueva partición, seleccione un área con espacio libre y pulse INTRO.\n"
+"\n"
+"Al menos una partición debe tener '/' como su punto de montaje."
 
-#: guix/scripts.scm:56
+#: gnu/installer/newt/partition.scm:659
 #, scheme-format
-msgid "invalid argument: ~a~%"
+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:669
+msgid "Guided partitioning"
+msgstr "Particionado guiado"
+
+#: gnu/installer/newt/partition.scm:670
+msgid "Manual partitioning"
+msgstr "Particionado manual"
+
+#: gnu/installer/newt/partition.scm:688
+msgid "No root mount point found."
+msgstr "No se ha encontrado un punto de montaje para la raíz."
+
+#: gnu/installer/newt/partition.scm:689
+msgid "Missing mount point"
+msgstr "Falta el punto de montaje"
+
+#: gnu/installer/newt/partition.scm:726
+msgid "Please select a partitioning method."
+msgstr "Por favor, seleccione un método de particionado."
+
+#: gnu/installer/newt/partition.scm:727
+msgid "Partitioning method"
+msgstr "Método de particionado"
+
+#: gnu/installer/newt/services.scm:35
+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:38
+msgid "Desktop environment"
+msgstr "Entorno de escritorio"
+
+#: gnu/installer/newt/services.scm:51
+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:53
+msgid "Network service"
+msgstr "Servicio de red"
+
+#: gnu/installer/newt/services.scm:67
+msgid "Network management"
+msgstr "Gestión de red"
+
+#: gnu/installer/newt/services.scm:70
+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 ""
+"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."
+
+#: gnu/installer/newt/timezone.scm:59
+msgid "Please select a timezone."
+msgstr "Por favor, seleccione una zona horaria."
+
+#: gnu/installer/newt/user.scm:36
+msgid "Name"
+msgstr "Nombre"
+
+#: gnu/installer/newt/user.scm:38
+msgid "Home directory"
+msgstr "Directorio de la usuaria"
+
+#: gnu/installer/newt/user.scm:75
+msgid "Empty inputs are not allowed."
+msgstr "No se permiten entradas vacías."
+
+#: gnu/installer/newt/user.scm:106
+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'."
+
+#: gnu/installer/newt/user.scm:109
+msgid "Add"
+msgstr "Añadir"
+
+#: gnu/installer/newt/user.scm:110
+msgid "Delete"
+msgstr "Borrar"
+
+#: gnu/installer/newt/user.scm:169
+msgid "Please create at least one user."
+msgstr "Por favor, cree al menos una usuaria."
+
+#: gnu/installer/newt/user.scm:170
+msgid "No user"
+msgstr "Ninguna usuaria"
+
+#: gnu/installer/newt/welcome.scm:95
+msgid "GNU Guix install"
+msgstr "Instalación de GNU Guix"
+
+#: gnu/installer/newt/welcome.scm:96
+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 ""
+"¡Bienvenida al instalador del sistema GNU Guix!\n"
+"\n"
+"Se le guiará durante el proceso mediante un programa de instalación gráfica.\n"
+"\n"
+"Si está familiarizada con GNU/Linux y desea un control exhaustivo sobre el proceso de instalación, puede seleccionar la instalación manual. La documentación se encuentra accesible en todo momento presionando Ctrl-Alt-F2."
+
+#: gnu/installer/newt/welcome.scm:105
+msgid "Graphical install using a terminal based interface"
+msgstr "Instalación gráfica mediante una interfaz basada en terminal"
+
+#: gnu/installer/newt/welcome.scm:108
+msgid "Install using the shell based process"
+msgstr "Instalación mediante el proceso basado en shell"
+
+# FUZZY
+#: gnu/installer/newt/wifi.scm:80
+msgid "Unable to find a wifi technology"
+msgstr "No se pudo encntrar una tecnología wifi"
+
+#: gnu/installer/newt/wifi.scm:84
+msgid "Scanning wifi for available networks, please wait."
+msgstr "Buscando redes wifi disponibles, por favor, espere."
+
+#: gnu/installer/newt/wifi.scm:85
+msgid "Scan in progress"
+msgstr "Búsqueda en progreso"
+
+#: gnu/installer/newt/wifi.scm:89
+msgid "Please enter the wifi password."
+msgstr "Por favor, introduzca la contraseña de la wifi."
+
+#: gnu/installer/newt/wifi.scm:95
+#, scheme-format
+msgid "The password you entered for ~a is incorrect."
+msgstr "La contraseña que introdujo para ~a es incorrecta."
+
+#: gnu/installer/newt/wifi.scm:97
+msgid "Wrong password"
+msgstr "Contraseña incorrecta"
+
+#: gnu/installer/newt/wifi.scm:103
+#, scheme-format
+msgid "An error occurred while trying to connect to ~a, please retry."
+msgstr "Sucedió un error mientras se intentaba conectar a ~a, por favor, vuelva a intentarlo."
+
+#: gnu/installer/newt/wifi.scm:196
+msgid "Please select a wifi network."
+msgstr "Por favor, seleccione una red wifi."
+
+#: gnu/installer/newt/wifi.scm:202
+msgid "Scan"
+msgstr "Búscar"
+
+#: gnu/installer/newt/wifi.scm:207
+msgid "No wifi detected"
+msgstr "No se detectó wifi"
+
+#: gnu/installer/newt/wifi.scm:222
+msgid "Wifi"
+msgstr "Wifi"
+
+#: gnu/installer/parted.scm:428 gnu/installer/parted.scm:465
+msgid "Free space"
+msgstr "Espacio libre"
+
+#: gnu/installer/parted.scm:1345
+#, scheme-format
+msgid "Device ~a is still in use."
+msgstr "El dispositivo ~a está todavía en uso."
+
+#: gnu/installer/services.scm:81
+msgid "OpenSSH secure shell daemon (sshd)"
+msgstr "Daemon de shell seguro OpenSSH (sshd)"
+
+#: gnu/installer/services.scm:85
+msgid "Tor anonymous network router"
+msgstr "Encaminador de red anónima Tor"
+
+#: gnu/installer/services.scm:91
+msgid "NetworkManager network connection manager"
+msgstr "Gestor de conexiones de red NetworkManager"
+
+#: gnu/installer/services.scm:96
+msgid "Connman network connection manager"
+msgstr "Gestor de conexiones de red Connman"
+
+#: gnu/installer/services.scm:101
+msgid "DHCP client (dynamic IP address assignment)"
+msgstr "Cliente DHCP (asignación de IP dinámica)"
+
+#: gnu/installer/timezone.scm:110
+#, scheme-format
+msgid "Unable to locate path: ~a."
+msgstr "No se pudo encontrar la ruta: ~a."
+
+#: guix/scripts.scm:61
+#, scheme-format
+msgid "invalid argument: ~a~%"
+msgstr "parámetro no válido: ~a~%"
 
-#: guix/scripts.scm:84 guix/scripts/download.scm:135
-#: guix/scripts/import/cran.scm:82 guix/scripts/import/elpa.scm:77
-#: guix/scripts/publish.scm:844 guix/scripts/edit.scm:81
+#: guix/scripts.scm:89 guix/scripts/download.scm:135
+#: 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:199 guix/scripts/processes.scm:216
 #, scheme-format
 msgid "~A: unrecognized option~%"
-msgstr ""
+msgstr "~A: opción no reconocida~%"
 
-#: guix/scripts.scm:179
+# FUZZY
+#: guix/scripts.scm:172
 #, 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] ""
+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:184
+#: guix/scripts.scm:178
 #, scheme-format
 msgid ""
 "Consider running 'guix pull' followed by\n"
 "'~a' to get up-to-date packages and security updates.\n"
 msgstr ""
-"Considere ejecutar 'guix pull' seguido de\n"
+"Considere la ejecución 'guix pull' seguida de\n"
 "'~a' para obtener paquetes actualizados y actualizaciones de seguridad.\n"
 
-#: guix/scripts/build.scm:124
+#: guix/scripts.scm:202
 #, scheme-format
-msgid "failed to create GC root `~a': ~a~%"
+msgid "only ~,1f% of free space available on ~a~%"
+msgstr "únicamente ~,1f% de espacio libre disponible en ~a~%"
+
+# FUZZY
+#: guix/scripts.scm:204
+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 ""
+"Considere el borrado de generaciones\n"
+"de perfil antiguas y la recolección de basura, más o menos así:\n"
+"\n"
+"@example\n"
+"guix gc --delete-generations=1m\n"
+"@end example\n"
+
+# FUZZY
+#: guix/scripts/build.scm:86
+#, 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:206
+#: guix/scripts/build.scm:140
+#, 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:245 guix/scripts/build.scm:310
 #, scheme-format
 msgid "invalid replacement specification: ~s~%"
-msgstr ""
+msgstr "especificación de reemplazo no válida: ~s~%"
 
-#: guix/scripts/build.scm:263
+#: guix/scripts/build.scm:292
+#, scheme-format
+msgid "the source of ~a is not a Git reference~%"
+msgstr "la fuente de ~a no es una referencia Git~%"
+
+#: guix/scripts/build.scm:417
 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:266
+#: guix/scripts/build.scm:420
 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:269
+#: guix/scripts/build.scm:423
 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:294
+#: guix/scripts/build.scm:426
+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:429
+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:432
+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:463
 #, scheme-format
 msgid "transformation '~a' had no effect on ~a~%"
-msgstr ""
+msgstr "la transformación '~a' no tuvo efecto en ~a~%"
 
-#: guix/scripts/build.scm:312
+#: guix/scripts/build.scm:481
 msgid ""
 "\n"
 "  -L, --load-path=DIR    prepend DIR to the package module search path"
 msgstr ""
+"\n"
+"  -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:314
+#: guix/scripts/build.scm:483
 msgid ""
 "\n"
 "  -K, --keep-failed      keep build tree of failed builds"
 msgstr ""
+"\n"
+"  -K, --keep-failed      mantiene el árbol de construcción de las\n"
+"                         construcciones fallidas"
 
-#: guix/scripts/build.scm:316
+#: guix/scripts/build.scm:485
 msgid ""
 "\n"
 "  -k, --keep-going       keep going when some of the derivations fail"
 msgstr ""
+"\n"
+"  -k, --keep-going       sigue adelante cuando falla alguna de\n"
+"                         las derivaciones"
 
-#: guix/scripts/build.scm:318
+#: guix/scripts/build.scm:487
 msgid ""
 "\n"
 "  -n, --dry-run          do not build the derivations"
 msgstr ""
+"\n"
+"  -n, --dry-run          no construye las derivaciones"
 
-#: guix/scripts/build.scm:320
+# FUZZY
+# TODO (MAAV): No tengo clara la traducción de substituter, habría que
+# clarificarla y unificarla con el manual.
+#: guix/scripts/build.scm:489
 msgid ""
 "\n"
 "      --fallback         fall back to building when the substituter fails"
 msgstr ""
+"\n"
+"      --fallback         intenta la construcción cuando las sustituciones\n"
+"                         fallen"
 
-#: guix/scripts/build.scm:322
+# FUZZY
+#: guix/scripts/build.scm:491
 msgid ""
 "\n"
 "      --no-substitutes   build instead of resorting to pre-built substitutes"
 msgstr ""
+"\n"
+"      --no-substitutes   construye en vez de obtener sustituciones\n"
+"                         preconstruídas"
 
-#: guix/scripts/build.scm:324 guix/scripts/size.scm:232
+#: guix/scripts/build.scm:493 guix/scripts/size.scm:233
 msgid ""
 "\n"
 "      --substitute-urls=URLS\n"
 "                         fetch substitute from URLS if they are authorized"
 msgstr ""
+"\n"
+"      --substitute-urls=URLS\n"
+"                         obtiene las sustituciones de URLS si están autorizadas"
 
-#: guix/scripts/build.scm:327
+#: guix/scripts/build.scm:496
 msgid ""
 "\n"
 "      --no-grafts        do not graft packages"
 msgstr ""
+"\n"
+"      --no-grafts        no injerta paquetes"
 
-#: guix/scripts/build.scm:329
+# FUZZY
+# MAAV (TODO): Hook no tengo claro cómo traducirlo. Habría que unificar
+# con el manual.
+#: guix/scripts/build.scm:498
 msgid ""
 "\n"
 "      --no-build-hook    do not attempt to offload builds via the build hook"
 msgstr ""
+"\n"
+"      --no-build-hook    no intenta delegar construcciones a través del hook\n"
+"                         de construcción"
 
-#: guix/scripts/build.scm:331
+#: guix/scripts/build.scm:500
 msgid ""
 "\n"
 "      --max-silent-time=SECONDS\n"
 "                         mark the build as failed after SECONDS of silence"
 msgstr ""
+"\n"
+"      --max-silent-time=SEGUNDOS\n"
+"                         marca la construcción como fallida tras SEGUNDOS\n"
+"                         de silencio"
 
-#: guix/scripts/build.scm:334
+#: guix/scripts/build.scm:503
 msgid ""
 "\n"
 "      --timeout=SECONDS  mark the build as failed after SECONDS of activity"
 msgstr ""
-
-#: guix/scripts/build.scm:336
-msgid ""
 "\n"
-"      --verbosity=LEVEL  use the given verbosity LEVEL"
-msgstr ""
+"      --timeout=SEGUNDOS marca la construcción como fallida tras SEGUNDOS\n"
+"                         de actividad"
 
-#: guix/scripts/build.scm:338
+#: guix/scripts/build.scm:505
 msgid ""
 "\n"
 "      --rounds=N         build N times in a row to detect non-determinism"
 msgstr ""
+"\n"
+"      --rounds=N         construye N veces seguidas para detectar\n"
+"                         no-determinismo"
 
-#: guix/scripts/build.scm:340
+#: guix/scripts/build.scm:507
 msgid ""
 "\n"
 "  -c, --cores=N          allow the use of up to N CPU cores for the build"
 msgstr ""
+"\n"
+"  -c, --cores=N          permite el uso de hasta N núcleos de la CPU\n"
+"                         para la construcción."
 
-#: guix/scripts/build.scm:342
+#: guix/scripts/build.scm:509
 msgid ""
 "\n"
 "  -M, --max-jobs=N       allow at most N build jobs"
 msgstr ""
+"\n"
+"  -M, --max-jobs=N       permite N trabajos de construcción como máximo"
 
-#: guix/scripts/build.scm:448 guix/scripts/build.scm:455
+#: guix/scripts/build.scm:511
+msgid ""
+"\n"
+"      --debug=LEVEL      produce debugging output at LEVEL"
+msgstr ""
+"\n"
+"      --debug=NIVEL      el NIVEL de depuración en la salida"
+
+#: guix/scripts/build.scm:621 guix/scripts/build.scm:628
 #, scheme-format
 msgid "not a number: '~a' option argument: ~a~%"
-msgstr ""
+msgstr "no es un número: parámetro de la opción '~a': ~a~%"
 
-#: guix/scripts/build.scm:474
+#: guix/scripts/build.scm:649
 msgid ""
 "Usage: guix build [OPTION]... PACKAGE-OR-DERIVATION...\n"
 "Build the given PACKAGE-OR-DERIVATION and return their output paths.\n"
 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:476
+#: guix/scripts/build.scm:651
 msgid ""
 "\n"
 "  -e, --expression=EXPR  build the package or derivation EXPR evaluates to"
 msgstr ""
+"\n"
+"  -e, --expression=EXPR  construye el paquete o la derivación a la que\n"
+"                         EXPR evalúa"
 
-#: guix/scripts/build.scm:478
+#: guix/scripts/build.scm:653
 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"
 
-#: guix/scripts/build.scm:481
+#: guix/scripts/build.scm:656
 msgid ""
 "\n"
 "  -S, --source           build the packages' source derivations"
 msgstr ""
+"\n"
+"  -S, --source           construye las derivaciones de fuentes de\n"
+"                         los paquetes"
 
-#: guix/scripts/build.scm:483
+#: guix/scripts/build.scm:658
 msgid ""
 "\n"
 "      --sources[=TYPE]   build source derivations; TYPE may optionally be one\n"
 "                         of \"package\", \"all\" (default), or \"transitive\""
 msgstr ""
+"\n"
+"      --sources[=TIPO]   construye las derivaciones de fuentes; TIPO puede\n"
+"                         ser de manera opcional \"package\",\n"
+"                         \"all\" (predeterminado) o \"transitive\""
 
-#: guix/scripts/build.scm:486 guix/scripts/pack.scm:338
+#: guix/scripts/build.scm:661 guix/scripts/pull.scm:97
+#: guix/scripts/pack.scm:754
 msgid ""
 "\n"
 "  -s, --system=SYSTEM    attempt to build for SYSTEM--e.g., \"i686-linux\""
 msgstr ""
+"\n"
+"  -s, --system=SISTEMA   intenta la construcción para el SISTEMA--por\n"
+"                         ejemplo, \"i686-linux\""
 
-#: guix/scripts/build.scm:488 guix/scripts/pack.scm:340
+#: guix/scripts/build.scm:663 guix/scripts/pack.scm:756
 msgid ""
 "\n"
 "      --target=TRIPLET   cross-build for TRIPLET--e.g., \"armel-linux-gnu\""
 msgstr ""
+"\n"
+"      --target=TRIPLETA  construcción cruzada para la TRIPLETA--por\n"
+"                         ejemplo, \"armel-linux-gnu\""
 
-#: guix/scripts/build.scm:490
+#: guix/scripts/build.scm:665
 msgid ""
 "\n"
 "  -d, --derivations      return the derivation paths of the given packages"
 msgstr ""
+"\n"
+"  -d, --derivations      devuelve las rutas de las derivaciones de los\n"
+"                         paquetes proporcionados"
 
-#: guix/scripts/build.scm:492
+#: guix/scripts/build.scm:667
 msgid ""
 "\n"
 "      --check            rebuild items to check for non-determinism issues"
 msgstr ""
+"\n"
+"      --check            reconstruye elementos para comprobar problemas\n"
+"                         de no-determinismo"
 
-#: guix/scripts/build.scm:494
+#: guix/scripts/build.scm:669
 msgid ""
 "\n"
 "      --repair           repair the specified items"
 msgstr ""
+"\n"
+"      --repair           repara los elementos especificados"
 
-#: guix/scripts/build.scm:496
+#: guix/scripts/build.scm:671
 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"
+"                         y se registra como una raíz del recolector de basura"
 
-#: guix/scripts/build.scm:499
+# FUZZY
+# MAAV: No es literal, pero me parece adecuado.
+#: guix/scripts/build.scm:674 guix/scripts/package.scm:360
+#: guix/scripts/pull.scm:95 guix/scripts/system.scm:1032
+#: guix/scripts/copy.scm:120 guix/scripts/pack.scm:771
+msgid ""
+"\n"
+"  -v, --verbosity=LEVEL  use the given verbosity LEVEL"
+msgstr ""
+"\n"
+"  -v, --verbosity=NIVEL  usa el NIVEL de detalle proporcionado"
+
+# FUZZY
+#: guix/scripts/build.scm:676
 msgid ""
 "\n"
 "  -q, --quiet            do not show the build log"
 msgstr ""
+"\n"
+"  -q, --quiet            no muestra el registro de construcción"
 
-#: guix/scripts/build.scm:501
+#: guix/scripts/build.scm:678
 msgid ""
 "\n"
 "      --log-file         return the log file names for the given derivations"
 msgstr ""
-
-#: guix/scripts/build.scm:508 guix/scripts/download.scm:83
-#: guix/scripts/package.scm:425 guix/scripts/gc.scm:74
-#: guix/scripts/hash.scm:59 guix/scripts/import.scm:92
-#: guix/scripts/import/cran.scm:47 guix/scripts/pull.scm:110
-#: guix/scripts/substitute.scm:889 guix/scripts/system.scm:870
-#: guix/scripts/lint.scm:1090 guix/scripts/publish.scm:94
-#: guix/scripts/edit.scm:44 guix/scripts/size.scm:243
-#: guix/scripts/graph.scm:432 guix/scripts/challenge.scm:241
-#: guix/scripts/copy.scm:122 guix/scripts/pack.scm:349
-#: guix/scripts/weather.scm:156 guix/scripts/container.scm:33
+"\n"
+"      --log-file         devuelve los nombres de fichero de los registros\n"
+"                         de las derivaciones proporcionadas"
+
+#: guix/scripts/build.scm:685 guix/scripts/download.scm:83
+#: guix/scripts/package.scm:378 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:71
+#: guix/scripts/processes.scm:200 guix/scripts/container.scm:34
 #: guix/scripts/container/exec.scm:43
 msgid ""
 "\n"
 "  -h, --help             display this help and exit"
 msgstr ""
+"\n"
+"  -h, --help             muestra este mensaje de ayuda y termina"
 
-#: guix/scripts/build.scm:510 guix/scripts/download.scm:85
-#: guix/scripts/package.scm:427 guix/scripts/gc.scm:76
-#: guix/scripts/hash.scm:61 guix/scripts/import.scm:94
-#: guix/scripts/import/cran.scm:49 guix/scripts/pull.scm:112
-#: guix/scripts/substitute.scm:891 guix/scripts/system.scm:872
-#: guix/scripts/lint.scm:1094 guix/scripts/publish.scm:96
-#: guix/scripts/edit.scm:46 guix/scripts/size.scm:245
-#: guix/scripts/graph.scm:434 guix/scripts/challenge.scm:243
-#: guix/scripts/copy.scm:124 guix/scripts/pack.scm:351
-#: guix/scripts/weather.scm:158 guix/scripts/container.scm:35
+#: guix/scripts/build.scm:687 guix/scripts/download.scm:85
+#: guix/scripts/package.scm:380 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:73
+#: guix/scripts/processes.scm:202 guix/scripts/container.scm:36
 #: guix/scripts/container/exec.scm:45
 msgid ""
 "\n"
 "  -V, --version          display version information and exit"
 msgstr ""
+"\n"
+"  -V, --version          muestra información de la versión y termina"
 
-#: guix/scripts/build.scm:537
+#: guix/scripts/build.scm:714
 #, scheme-format
 msgid ""
 "invalid argument: '~a' option argument: ~a, ~\n"
 "must be one of 'package', 'all', or 'transitive'~%"
 msgstr ""
+"parámetro no válido: parámetro de la opción '~a': ~a, ~\n"
+"debe ser o bien 'package', o 'all' o 'transitive'~%"
 
-#: guix/scripts/build.scm:590
+# FUZZY
+#: guix/scripts/build.scm:772
 #, scheme-format
 msgid "~s: not something we can build~%"
-msgstr ""
+msgstr "~s: no es algo que podamos construir~%"
 
-#: guix/scripts/build.scm:644
+#: guix/scripts/build.scm:837
 #, scheme-format
 msgid "~a: warning: package '~a' has no source~%"
-msgstr ""
+msgstr "~a: aviso: el paquete '~a' no tiene fuentes~%"
 
-#: guix/scripts/build.scm:678
+# FUZZY
+#: guix/scripts/build.scm:885
 #, scheme-format
 msgid "no build log for '~a'~%"
-msgstr ""
+msgstr "ningún registro de construcción para '~a'~%"
 
-#: guix/discovery.scm:88
+# FUZZY
+#: guix/discovery.scm:92
 #, scheme-format
 msgid "cannot access `~a': ~a~%"
-msgstr ""
+msgstr "no se puede acceder a «~a»: ~a~%"
 
 #: guix/scripts/download.scm:69
 msgid ""
@@ -465,12 +1450,20 @@ msgid ""
 "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"
 
-#: guix/scripts/download.scm:75 guix/scripts/hash.scm:54
+#: guix/scripts/download.scm:75 guix/scripts/hash.scm:55
 msgid ""
 "\n"
 "  -f, --format=FMT       write the hash in the given format"
 msgstr ""
+"\n"
+"  -f, --format=FMT       escribe el hash en el formato proporcionado"
 
 #: guix/scripts/download.scm:77
 msgid ""
@@ -478,103 +1471,87 @@ msgid ""
 "      --no-check-certificate\n"
 "                         do not validate the certificate of HTTPS servers "
 msgstr ""
+"\n"
+"      --no-check-certificate\n"
+"                         no valida el certificado de los servidores HTTPS"
 
 #: guix/scripts/download.scm:80
 msgid ""
 "\n"
 "  -o, --output=FILE      download to FILE"
 msgstr ""
+"\n"
+"  -o, --output=FICHERO   descarga en FICHERO"
 
-#: guix/scripts/download.scm:103 guix/scripts/hash.scm:82
+#: guix/scripts/download.scm:103 guix/scripts/hash.scm:83
 #, scheme-format
 msgid "unsupported hash format: ~a~%"
-msgstr ""
+msgstr "formato de hash no implementado: ~a~%"
 
-#: guix/scripts/download.scm:138 guix/scripts/package.scm:906
-#: guix/scripts/publish.scm:846
+# FUZZY
+#: guix/scripts/download.scm:138 guix/scripts/package.scm:896
+#: guix/scripts/publish.scm:890
 #, scheme-format
 msgid "~A: extraneous argument~%"
-msgstr ""
+msgstr "~A: parámetro no conocido~%"
 
 #: guix/scripts/download.scm:146
 #, scheme-format
 msgid "no download URI was specified~%"
-msgstr ""
+msgstr "ninguna URI de descarga fue especificada~%"
 
 #: guix/scripts/download.scm:151
 #, scheme-format
 msgid "~a: failed to parse URI~%"
-msgstr ""
+msgstr "~a: se produjo un fallo al procesar la URI~%"
 
+# FUZZY
 #: guix/scripts/download.scm:161
 #, scheme-format
 msgid "~a: download failed~%"
-msgstr ""
-
-#: guix/scripts/package.scm:112
-#, scheme-format
-msgid "Try \"info '(guix) Invoking guix package'\" for more information.~%"
-msgstr ""
-
-#: guix/scripts/package.scm:134
-#, scheme-format
-msgid "error: while creating directory `~a': ~a~%"
-msgstr ""
-
-#: guix/scripts/package.scm:138
-#, scheme-format
-msgid "Please create the `~a' directory, with you as the owner.~%"
-msgstr ""
-
-#: guix/scripts/package.scm:145
-#, scheme-format
-msgid "error: directory `~a' is not owned by you~%"
-msgstr ""
-
-#: guix/scripts/package.scm:148
-#, scheme-format
-msgid "Please change the owner of `~a' to user ~s.~%"
-msgstr ""
+msgstr "~a: descarga fallida~%"
 
-#: guix/scripts/package.scm:183
+#: guix/scripts/package.scm:111
 #, scheme-format
 msgid "not removing generation ~a, which is current~%"
-msgstr ""
+msgstr "no se borra la generación ~a, que es la actual~%"
 
-#: guix/scripts/package.scm:190
+# FUZZY
+#: guix/scripts/package.scm:118
 #, scheme-format
 msgid "no matching generation~%"
-msgstr ""
+msgstr "ninguna generación corresponde con el patrón~%"
 
-#: guix/scripts/package.scm:193 guix/scripts/package.scm:716
-#: guix/scripts/system.scm:558
+# FUZZY
+#: guix/scripts/package.scm:121 guix/scripts/package.scm:693
+#: guix/scripts/system.scm:626
 #, scheme-format
 msgid "invalid syntax: ~a~%"
-msgstr ""
+msgstr "sintaxis erronea: ~a~%"
 
-#: guix/scripts/package.scm:219
+#: guix/scripts/package.scm:150
 #, scheme-format
 msgid "nothing to be done~%"
-msgstr ""
+msgstr "nada que hacer~%"
 
-#: guix/scripts/package.scm:233
+#: guix/scripts/package.scm:164
 #, scheme-format
 msgid "~a package in profile~%"
 msgid_plural "~a packages in profile~%"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "~a paquete en el perfil~%"
+msgstr[1] "~a paquetes en el perfil~%"
 
-#: guix/scripts/package.scm:313
+#: guix/scripts/package.scm:251
 #, scheme-format
 msgid "package '~a' no longer exists~%"
 msgstr "paquete '~a' ya no existe~%"
 
-#: guix/scripts/package.scm:351
+#: guix/scripts/package.scm:297
 #, scheme-format
 msgid "The following environment variable definitions may be needed:~%"
 msgstr "Puede que se necesiten las siguientes definiciones de variables de entorno:~%"
 
-#: guix/scripts/package.scm:366
+#: guix/scripts/package.scm:317
 msgid ""
 "Usage: guix package [OPTION]...\n"
 "Install, remove, or upgrade packages in a single transaction.\n"
@@ -582,7 +1559,7 @@ msgstr ""
 "Uso: guix package [OPCIÓN]...\n"
 "Instala, elimina o actualiza paquetes en una única transacción.\n"
 
-#: guix/scripts/package.scm:368
+#: guix/scripts/package.scm:319
 msgid ""
 "\n"
 "  -i, --install PACKAGE ...\n"
@@ -590,264 +1567,400 @@ msgid ""
 msgstr ""
 "\n"
 "  -i, --install PAQUETE ...\n"
-"                         install PAQUETEs"
+"                         instala PAQUETE"
 
-#: guix/scripts/package.scm:371
+#: guix/scripts/package.scm:322
 msgid ""
 "\n"
 "  -e, --install-from-expression=EXP\n"
 "                         install the package EXP evaluates to"
 msgstr ""
+"\n"
+"  -e, --install-from-expression=EXP\n"
+"                         instala el paquete al que EXP evalúa"
 
-#: guix/scripts/package.scm:374
+#: guix/scripts/package.scm:325
 msgid ""
 "\n"
 "  -f, --install-from-file=FILE\n"
 "                         install the package that the code within FILE\n"
 "                         evaluates to"
 msgstr ""
+"\n"
+"  -f, --install-from-file=FICHERO\n"
+"                         instala el paquete al que el código en\n"
+"                         FICHERO evalúa"
 
-#: guix/scripts/package.scm:378
+#: guix/scripts/package.scm:329
 msgid ""
 "\n"
 "  -r, --remove PACKAGE ...\n"
 "                         remove PACKAGEs"
 msgstr ""
 "\n"
-"  -r, --remove PAQUETES ...\n"
-"                         elimina PAQUETESs"
+"  -r, --remove PAQUETE ...\n"
+"                         elimina PAQUETE"
 
-#: guix/scripts/package.scm:381
+#: guix/scripts/package.scm:332
 msgid ""
 "\n"
 "  -u, --upgrade[=REGEXP] upgrade all the installed packages matching REGEXP"
 msgstr ""
+"\n"
+"  -u, --upgrade[=REGEXP] actualiza todos los paquetes instalados cuyo nombre\n"
+"                         acepta REGEXP"
 
-#: guix/scripts/package.scm:383
+#: guix/scripts/package.scm:334
 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"
 
-#: guix/scripts/package.scm:386
+# FUZZY
+#: guix/scripts/package.scm:337
 msgid ""
 "\n"
 "      --do-not-upgrade[=REGEXP] do not upgrade any packages matching REGEXP"
 msgstr ""
+"\n"
+"      --do-not-upgrade[=REGEXP] no actualiza ningún paquete que REGEXP acepte"
 
-#: guix/scripts/package.scm:388
+#: guix/scripts/package.scm:339
 msgid ""
 "\n"
 "      --roll-back        roll back to the previous generation"
 msgstr ""
+"\n"
+"      --roll-back        vuelve a la generación previa"
 
-#: guix/scripts/package.scm:390
+#: guix/scripts/package.scm:341
 msgid ""
 "\n"
 "      --search-paths[=KIND]\n"
 "                         display needed environment variable definitions"
 msgstr ""
+"\n"
+"      --search-paths[=TIPO]\n"
+"                         muestra las definiciones de variables de entorno\n"
+"                         necesarias"
 
-#: guix/scripts/package.scm:393
+#: guix/scripts/package.scm:344 guix/scripts/pull.scm:90
 msgid ""
 "\n"
 "  -l, --list-generations[=PATTERN]\n"
 "                         list generations matching PATTERN"
 msgstr ""
+"\n"
+"  -l, --list-generations[=PATRÓN]\n"
+"                         enumera las generaciones que correspondan con PATRÓN"
 
-#: guix/scripts/package.scm:396
+#: guix/scripts/package.scm:347
 msgid ""
 "\n"
 "  -d, --delete-generations[=PATTERN]\n"
 "                         delete generations matching PATTERN"
 msgstr ""
+"\n"
+"  -d, --delete-generations[=PATRÓN]\n"
+"                         borra las generaciones que correspondan con PATRÓN"
 
-#: guix/scripts/package.scm:399
+#: guix/scripts/package.scm:350
 msgid ""
 "\n"
 "  -S, --switch-generation=PATTERN\n"
 "                         switch to a generation matching PATTERN"
 msgstr ""
+"\n"
+"  -S, --switch-generation=PATRÓN\n"
+"                         cambia a una generación que corresponda con PATRÓN"
 
-#: guix/scripts/package.scm:402
+#: guix/scripts/package.scm:353
 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"
 
-#: guix/scripts/package.scm:405
+#: guix/scripts/package.scm:356
 msgid ""
 "\n"
-"      --bootstrap        use the bootstrap Guile to build the profile"
+"      --allow-collisions do not treat collisions in the profile as an error"
 msgstr ""
+"\n"
+"      --allow-collisions no toma las colisiones en el perfil como errores"
 
-#: guix/scripts/package.scm:407 guix/scripts/pull.scm:98
+# FUZZY
+#: guix/scripts/package.scm:358
 msgid ""
 "\n"
-"      --verbose          produce verbose output"
+"      --bootstrap        use the bootstrap Guile to build the profile"
 msgstr ""
+"\n"
+"      --bootstrap        usa Guile del lanzamiento inicial para construir\n"
+"                         el perfil"
 
-#: guix/scripts/package.scm:410
+# FUZZY
+#: guix/scripts/package.scm:363
 msgid ""
 "\n"
 "  -s, --search=REGEXP    search in synopsis and description using REGEXP"
 msgstr ""
+"\n"
+"  -s, --search=REGEXP    busca en las sinopsis y descripciones usando REGEXP"
 
-#: guix/scripts/package.scm:412
+#: guix/scripts/package.scm:365
 msgid ""
 "\n"
 "  -I, --list-installed[=REGEXP]\n"
 "                         list installed packages matching REGEXP"
 msgstr ""
+"\n"
+"  -I, --list-installed[=REGEXP]\n"
+"                         enumera los paquetes instalados que REGEXP acepte"
 
-#: guix/scripts/package.scm:415
+#: guix/scripts/package.scm:368
 msgid ""
 "\n"
 "  -A, --list-available[=REGEXP]\n"
 "                         list available packages matching REGEXP"
 msgstr ""
+"\n"
+"  -A, --list-available[=REGEXP]\n"
+"                         enumera los paquetes disponibles que REGEXP acepte"
 
-#: guix/scripts/package.scm:418
+#: guix/scripts/package.scm:371
 msgid ""
 "\n"
 "      --show=PACKAGE     show details about PACKAGE"
 msgstr ""
+"\n"
+"      --show=PAQUETE     muestra los detalles de PAQUETE"
 
-#: guix/scripts/package.scm:470
+#: guix/scripts/package.scm:423
 #, scheme-format
 msgid "upgrade regexp '~a' looks like a command-line option~%"
-msgstr ""
+msgstr "la expresión regular de actualización '~a' parece una opción de línea de ordenes~%"
 
-#: guix/scripts/package.scm:473
+# FUZZY
+#: guix/scripts/package.scm:426
 #, scheme-format
 msgid "is this intended?~%"
-msgstr ""
+msgstr "¿es lo que deseaba?~%"
 
-#: guix/scripts/package.scm:518
+#: guix/scripts/package.scm:471
 #, scheme-format
 msgid "~a: unsupported kind of search path~%"
-msgstr ""
+msgstr "~a: tipo de ruta de búsqueda no implementado~%"
 
-#: guix/scripts/package.scm:815
+#: guix/scripts/package.scm:767
+#, scheme-format
+msgid "~a~@[@~a~]: package not found~%"
+msgstr "~a~@[@~a~]: paquete no encontrado~%"
+
+# FUZZY
+#: guix/scripts/package.scm:801
 #, scheme-format
 msgid "cannot switch to generation '~a'~%"
-msgstr ""
+msgstr "no se pudo pasar a la generación '~a'~%"
 
-#: guix/scripts/package.scm:831
+#: guix/scripts/package.scm:818
 #, scheme-format
 msgid "would install new manifest from '~a' with ~d entries~%"
-msgstr ""
+msgstr "se instalaría un nuevo manifiesto desde '~a' con ~d entradas~%"
 
-#: guix/scripts/package.scm:833
+#: guix/scripts/package.scm:820
 #, scheme-format
 msgid "installing new manifest from '~a' with ~d entries~%"
-msgstr ""
+msgstr "instalando un nuevo manifiesto desde '~a' con ~d entradas~%"
 
-#: guix/scripts/gc.scm:42
+#: guix/scripts/gc.scm:45
 msgid ""
 "Usage: guix gc [OPTION]... PATHS...\n"
 "Invoke the garbage collector.\n"
 msgstr ""
+"Uso: guix gc [OPCIÓN]... RUTAS...\n"
+"Invoca la recolección de basura.\n"
 
-#: guix/scripts/gc.scm:44
+#: guix/scripts/gc.scm:47
 msgid ""
 "\n"
 "  -C, --collect-garbage[=MIN]\n"
 "                         collect at least MIN bytes of garbage"
 msgstr ""
+"\n"
+"  -C, --collect-garbage[=MIN]\n"
+"                         recolecta al menos MIN bytes de basura"
 
-#: guix/scripts/gc.scm:47
+#: guix/scripts/gc.scm:50
 msgid ""
 "\n"
 "  -F, --free-space=FREE  attempt to reach FREE available space in the store"
 msgstr ""
+"\n"
+"  -F, --free-space=LIBRE intenta alcanzar un espacio disponible LIBRE en\n"
+"                         el almacén"
 
-#: guix/scripts/gc.scm:49
+#: guix/scripts/gc.scm:52
 msgid ""
 "\n"
-"  -d, --delete           attempt to delete PATHS"
+"  -d, --delete-generations[=PATTERN]\n"
+"                         delete profile generations matching PATTERN"
 msgstr ""
+"\n"
+"  -d, --delete-generations[=PATRÓN]\n"
+"                         borra las generaciones del perfil que\n"
+"                         correspondan con el PATRÓN"
+
+#: guix/scripts/gc.scm:55
+msgid ""
+"\n"
+"  -D, --delete           attempt to delete PATHS"
+msgstr ""
+"\n"
+"  -D, --delete           intenta borrar las RUTAS"
 
-#: guix/scripts/gc.scm:51
+#: guix/scripts/gc.scm:57
+msgid ""
+"\n"
+"      --list-roots       list the user's garbage collector roots"
+msgstr ""
+"\n"
+"      --list-roots       enumera las raices del recolector de basura\n"
+"                         de la usuaria"
+
+#: guix/scripts/gc.scm:59
 msgid ""
 "\n"
 "      --optimize         optimize the store by deduplicating identical files"
 msgstr ""
+"\n"
+"      --optimize         optimiza el almacén mediante la deduplicación de\n"
+"                         ficheros idénticos"
 
-#: guix/scripts/gc.scm:53
+#: guix/scripts/gc.scm:61
 msgid ""
 "\n"
 "      --list-dead        list dead paths"
 msgstr ""
+"\n"
+"      --list-dead        enumera las rutas muertas"
 
-#: guix/scripts/gc.scm:55
+#: guix/scripts/gc.scm:63
 msgid ""
 "\n"
 "      --list-live        list live paths"
 msgstr ""
+"\n"
+"      --list-live        enumera las rutas vivas"
 
-#: guix/scripts/gc.scm:58
+#: guix/scripts/gc.scm:66
 msgid ""
 "\n"
 "      --references       list the references of PATHS"
 msgstr ""
+"\n"
+"      --references       enumera las referencias de las RUTAS"
 
-#: guix/scripts/gc.scm:60
+#: guix/scripts/gc.scm:68
 msgid ""
 "\n"
 "  -R, --requisites       list the requisites of PATHS"
 msgstr ""
+"\n"
+"  -R, --requisites       enumera los requisitos de las RUTAS"
 
-#: guix/scripts/gc.scm:62
+#: guix/scripts/gc.scm:70
 msgid ""
 "\n"
 "      --referrers        list the referrers of PATHS"
 msgstr ""
+"\n"
+"      --referrers        enumera quienes hacen referencia a las RUTAS"
+
+#: guix/scripts/gc.scm:72
+msgid ""
+"\n"
+"      --derivers         list the derivers of PATHS"
+msgstr ""
+"\n"
+"      --derivers         enumera quienes derivan de las RUTAS"
 
-#: guix/scripts/gc.scm:65
+#: guix/scripts/gc.scm:75
 msgid ""
 "\n"
 "      --verify[=OPTS]    verify the integrity of the store; OPTS is a\n"
 "                         comma-separated combination of 'repair' and\n"
 "                         'contents'"
 msgstr ""
+"\n"
+"      --verify[=OPTS]    verifica la integridad del almacén; OPTS es una\n"
+"                         combinación separada por comas de 'repair' y\n"
+"                         'contents'"
 
-#: guix/scripts/gc.scm:69
+#: guix/scripts/gc.scm:79
 msgid ""
 "\n"
 "      --list-failures    list cached build failures"
 msgstr ""
+"\n"
+"      --list-failures    enumera las construcciones fallidas en caché"
 
-#: guix/scripts/gc.scm:71
+#: guix/scripts/gc.scm:81
 msgid ""
 "\n"
 "      --clear-failures   remove PATHS from the set of cached failures"
 msgstr ""
+"\n"
+"      --clear-failures   elimina RUTAS del conjunto de fallos en caché"
 
-#: guix/scripts/gc.scm:100
+#: guix/scripts/gc.scm:95
+#, scheme-format
+msgid "~a: invalid '--verify' option~%"
+msgstr "~a: opción '--verify' no válida~%"
+
+# FUZZY
+#: guix/scripts/gc.scm:135
 #, scheme-format
 msgid "invalid amount of storage: ~a~%"
-msgstr ""
+msgstr "tamaño de almacenamiento no válido: ~a~%"
 
-#: guix/scripts/gc.scm:185
-msgid "already ~h bytes available on ~a, nothing to do~%"
-msgstr ""
+# FUZZY
+#: guix/scripts/gc.scm:149
+#, scheme-format
+msgid "'-d' as an alias for '--delete' is deprecated; use '-D'~%"
+msgstr "'-d' como alias para '--delete' está obsoleto; use '-D'~%"
 
-#: guix/scripts/gc.scm:188
-msgid "freeing ~h bytes~%"
-msgstr ""
+# FUZZY
+#: guix/scripts/gc.scm:156
+#, scheme-format
+msgid "~s does not denote a duration~%"
+msgstr "~s no denota una duración~%"
+
+#: guix/scripts/gc.scm:239
+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:200
+#: guix/scripts/gc.scm:242
+msgid "freeing ~h MiBs~%"
+msgstr "liberando ~h MiB~%"
+
+# FUZZY
+#: guix/scripts/gc.scm:275
 #, scheme-format
 msgid "extraneous arguments: ~{~a ~}~%"
-msgstr ""
+msgstr "parámetros no esperados: ~{~a ~}~%"
 
-#: guix/scripts/gc.scm:220 guix/scripts/gc.scm:223
-msgid "freed ~h bytes~%"
-msgstr ""
+#: guix/scripts/gc.scm:299 guix/scripts/gc.scm:302
+msgid "freed ~h MiBs~%"
+msgstr "liberados ~h MiB~%"
 
-#: guix/scripts/hash.scm:47
+#: guix/scripts/hash.scm:48
 msgid ""
 "Usage: guix hash [OPTION] FILE\n"
 "Return the cryptographic hash of FILE.\n"
@@ -855,1008 +1968,1321 @@ msgid ""
 "Supported formats: 'nix-base32' (default), 'base32', and 'base16' ('hex'\n"
 "and 'hexadecimal' can be used as well).\n"
 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"
 
-#: guix/scripts/hash.scm:52
+#: guix/scripts/hash.scm:53
 msgid ""
 "\n"
 "  -x, --exclude-vcs      exclude version control directories"
 msgstr ""
+"\n"
+"  -x, --exclude-vcs      excluye directorios de control de versiones"
 
-#: guix/scripts/hash.scm:56
+#: guix/scripts/hash.scm:57
 msgid ""
 "\n"
 "  -r, --recursive        compute the hash on FILE recursively"
 msgstr ""
+"\n"
+"  -r, --recursive        calcula recursivamente el hash en FICHERO"
 
-#: guix/scripts/hash.scm:150 guix/ui.scm:326 guix/ui.scm:601 guix/ui.scm:654
+#: guix/scripts/hash.scm:151 guix/ui.scm:443 guix/ui.scm:450 guix/ui.scm:475
+#: guix/ui.scm:785 guix/ui.scm:807 guix/ui.scm:813 guix/ui.scm:819
+#: guix/ui.scm:872
 #, scheme-format
 msgid "~a~%"
-msgstr ""
+msgstr "~a~%"
 
-#: guix/scripts/hash.scm:153 guix/scripts/system.scm:1022
-#: guix/scripts/system.scm:1031 guix/scripts/system.scm:1038
+#: 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
 #, scheme-format
 msgid "wrong number of arguments~%"
-msgstr ""
+msgstr "número de parámetros incorrecto~%"
 
-#: guix/scripts/import.scm:86
+#: guix/scripts/import.scm:87
 msgid ""
 "Usage: guix import IMPORTER ARGS ...\n"
 "Run IMPORTER with ARGS.\n"
 msgstr ""
+"Uso: guix import IMPORTADOR PARÁMETROS ...\n"
+"Ejecuta IMPORTADOR con PARÁMETROS.\n"
 
-#: guix/scripts/import.scm:89
+#: guix/scripts/import.scm:90
 msgid "IMPORTER must be one of the importers listed below:\n"
-msgstr ""
+msgstr "IMPORTADOR debe ser uno de los importadores mostrados a continuación:\n"
 
-#: guix/scripts/import.scm:103
+# FUZZY
+#: guix/scripts/import.scm:104
 #, scheme-format
 msgid "guix import: missing importer name~%"
-msgstr ""
+msgstr "guix import: falta el nombre del importador~%"
 
-#: guix/scripts/import.scm:123
+#: guix/scripts/import.scm:124
 #, scheme-format
 msgid "'~a' import failed~%"
-msgstr ""
+msgstr "importador '~a' falló~%"
 
-#: guix/scripts/import.scm:124
+#: guix/scripts/import.scm:125
 #, scheme-format
 msgid "~a: invalid importer~%"
-msgstr ""
+msgstr "~a: importador no válido~%"
 
 #: 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 ""
+"Uso: guix import cran NOMBRE-DE-PAQUETE\n"
+"Importa y convierte el paquete CRAN con NOMBRE-DE-PAQUETE.\n"
 
 #: guix/scripts/import/cran.scm:45
 msgid ""
 "\n"
 "  -a, --archive=ARCHIVE  specify the archive repository"
 msgstr ""
+"\n"
+"  -a, --archive=ARCHIVO  especifica el repositorio de archivado"
 
-#: guix/scripts/import/cran.scm:108
+#: guix/scripts/import/cran.scm:49
+msgid ""
+"\n"
+"  -r, --recursive        import packages recursively"
+msgstr ""
+"\n"
+"  -r, --recursive        importa paquetes recursivamente"
+
+#: guix/scripts/import/cran.scm:112
 #, scheme-format
 msgid "failed to download description for package '~a'~%"
-msgstr ""
+msgstr "no se pudo descargar la descripción para el paquete '~a'~%"
 
-#: guix/scripts/import/cran.scm:112 guix/scripts/import/elpa.scm:95
+#: guix/scripts/import/cran.scm:116 guix/scripts/import/elpa.scm:113
 #, scheme-format
 msgid "too few arguments~%"
-msgstr ""
+msgstr "muy pocos parámetros~%"
 
-#: guix/scripts/import/cran.scm:114 guix/scripts/import/elpa.scm:97
+#: guix/scripts/import/cran.scm:118 guix/scripts/import/elpa.scm:115
 #, scheme-format
 msgid "too many arguments~%"
-msgstr ""
+msgstr "demasiados parámetros~%"
 
-#: guix/scripts/import/elpa.scm:41
+#: guix/scripts/import/elpa.scm:44
 msgid ""
 "Usage: guix import elpa PACKAGE-NAME\n"
 "Import the latest package named PACKAGE-NAME from an ELPA repository.\n"
 msgstr ""
+"Uso: guix import elpa NOMBRE-DE-PAQUETE\n"
+"Importa el último paquete llamado NOMBRE-DE-PAQUETE de un repositorio ELPA.\n"
 
-#: guix/scripts/import/elpa.scm:43
+#: guix/scripts/import/elpa.scm:46
 msgid ""
 "\n"
 "  -a, --archive=ARCHIVE          specify the archive repository"
 msgstr ""
+"\n"
+"  -a, --archive=ARCHIVO          especifica el repositorio de archivado"
 
-#: guix/scripts/import/elpa.scm:45
+#: guix/scripts/import/elpa.scm:48
 msgid ""
 "\n"
 "  -h, --help                     display this help and exit"
 msgstr ""
+"\n"
+"  -h, --help                     muestra este mensaje de ayuda y termina"
+
+#: guix/scripts/import/elpa.scm:50
+msgid ""
+"\n"
+"  -r, --recursive                generate package expressions for all Emacs packages that are not yet in Guix"
+msgstr ""
+"\n"
+"  -r, --recursive                genera expresiones de paquete para todos los paquetes Emacs que no estén todavía en Guix"
 
-#: guix/scripts/import/elpa.scm:47
+#: guix/scripts/import/elpa.scm:52
 msgid ""
 "\n"
 "  -V, --version                  display version information and exit"
 msgstr ""
+"\n"
+"  -V, --version                  muestra información de la versión y termina"
 
-#: guix/scripts/import/elpa.scm:92
+#: guix/scripts/import/elpa.scm:110
 #, scheme-format
 msgid "failed to download package '~a'~%"
+msgstr "se produjo un fallo al descargar el paquete '~a'~%"
+
+#: guix/scripts/pull.scm:76
+msgid ""
+"Usage: guix pull [OPTION]...\n"
+"Download and deploy the latest version of Guix.\n"
 msgstr ""
+"Uso: guix pull [OPCIÓN]...\n"
+"Descarga y despliega la última versión de Guix.\n"
 
-#: guix/scripts/pull.scm:60
-#, scheme-format
+#: guix/scripts/pull.scm:78
 msgid ""
-"Guile-Git is missing but it is now required by 'guix pull'.\n"
-"Install it by running:\n"
-"\n"
-"  guix package -i ~a\n"
-"  export GUILE_LOAD_PATH=$HOME/.guix-profile/share/guile/site/~a:$GUILE_LOAD_PATH\n"
-"  export GUILE_LOAD_COMPILED_PATH=$HOME/.guix-profile/lib/guile/~a/site-ccache:$GUILE_LOAD_COMPILED_PATH\n"
 "\n"
+"      --verbose          produce verbose output"
 msgstr ""
+"\n"
+"      --verbose          produce una salida prolija"
 
-#: guix/scripts/pull.scm:96
+#: guix/scripts/pull.scm:80
 msgid ""
-"Usage: guix pull [OPTION]...\n"
-"Download and deploy the latest version of Guix.\n"
+"\n"
+"  -C, --channels=FILE    deploy the channels defined in FILE"
 msgstr ""
+"\n"
+"  -C, --channels=FICHERO despliega los canales definidos en FICHERO"
 
-#: guix/scripts/pull.scm:100
+#: guix/scripts/pull.scm:82
 msgid ""
 "\n"
 "      --url=URL          download from the Git repository at URL"
 msgstr ""
+"\n"
+"      --url=URL          descarga del repositorio Git en URL"
 
-#: guix/scripts/pull.scm:102
+#: guix/scripts/pull.scm:84
 msgid ""
 "\n"
 "      --commit=COMMIT    download the specified COMMIT"
 msgstr ""
+"\n"
+"      --commit=REVISIÓN  descarga la REVISIÓN especificada"
 
-#: guix/scripts/pull.scm:104
+# FUZZY
+#: guix/scripts/pull.scm:86
 msgid ""
 "\n"
 "      --branch=BRANCH    download the tip of the specified BRANCH"
 msgstr ""
+"\n"
+"      --branch=RAMA      descarga la punta de la RAMA especificada"
 
-#: guix/scripts/pull.scm:106
+#: guix/scripts/pull.scm:88
 msgid ""
 "\n"
-"      --bootstrap        use the bootstrap Guile to build the new Guix"
-msgstr ""
-
-#: guix/scripts/pull.scm:192
-msgid "Guix already up to date\n"
+"  -N, --news             display news compared to the previous generation"
 msgstr ""
+"\n"
+"  -N, --news             muestra novedades con respecto a la generación previa"
 
-#: guix/scripts/pull.scm:197
+#: guix/scripts/pull.scm:93
 #, scheme-format
-msgid "updated ~a successfully deployed under `~a'~%"
+msgid ""
+"\n"
+"  -p, --profile=PROFILE  use PROFILE instead of ~/.config/guix/current"
 msgstr ""
+"\n"
+"  -p, --profile=PERFIL   usa PERFIL en vez de ~/.config/guix/current"
 
-#: guix/scripts/pull.scm:200
-#, scheme-format
-msgid "failed to update Guix, check the build log~%"
+#: guix/scripts/pull.scm:99
+msgid ""
+"\n"
+"      --bootstrap        use the bootstrap Guile to build the new Guix"
 msgstr ""
+"\n"
+"      --bootstrap        usa Guile del lanzamiento inicial para construir\n"
+"                         la nueva versión de Guix"
 
-#: guix/scripts/pull.scm:216
-#, scheme-format
-msgid "cannot enforce use of the Let's Encrypt certificates~%"
-msgstr ""
+#: guix/scripts/pull.scm:196
+msgid "New in this revision:\n"
+msgstr "Nuevo en esta revisión:\n"
 
-#: guix/scripts/pull.scm:218
+#: guix/scripts/pull.scm:221
 #, scheme-format
-msgid "please upgrade Guile-Git~%"
+msgid ""
+"After setting @code{PATH}, run\n"
+"@command{hash guix} to make sure your shell refers to @file{~a}."
 msgstr ""
+"Tras establecer el valor de @code{PATH}, ejecute\n"
+"@command{hash guix} para asegurarsede que su shell hace referencia a @file{~a}."
 
-#: guix/scripts/pull.scm:226
+# FUZZY
+#: guix/scripts/pull.scm:245
 #, scheme-format
 msgid "Git error ~a~%"
-msgstr ""
+msgstr "Error Git ~a~%"
 
-#: guix/scripts/pull.scm:228
+# FUZZY
+#: guix/scripts/pull.scm:247 guix/git.scm:306
 #, scheme-format
 msgid "Git error: ~a~%"
-msgstr ""
+msgstr "Error git: ~a~%"
+
+#: guix/scripts/pull.scm:272
+#, scheme-format
+msgid "Migrating profile generations to '~a'...~%"
+msgstr "Migrando las generaciones del perfil a '~a'...~%"
 
-#: guix/scripts/pull.scm:262
+#: guix/scripts/pull.scm:307
 #, scheme-format
-msgid "Updating from Git repository at '~a'...~%"
+msgid "while creating symlink '~a': ~a~%"
+msgstr "durante la creación del enlace simbólico '~a': ~a~%"
+
+#: guix/scripts/pull.scm:329
+#, scheme-format
+msgid "    repository URL: ~a~%"
+msgstr "    URL del repositorio: ~a~%"
+
+#: guix/scripts/pull.scm:331
+#, scheme-format
+msgid "    branch: ~a~%"
+msgstr "    rama: ~a~%"
+
+#: guix/scripts/pull.scm:332
+#, scheme-format
+msgid "    commit: ~a~%"
+msgstr "    revisión: ~a~%"
+
+#: guix/scripts/pull.scm:434
+msgid "  ~h new package: ~a~%"
+msgid_plural "  ~h new packages: ~a~%"
+msgstr[0] "  ~h nuevo paquete: ~a~%"
+msgstr[1] "  ~h nuevos paquetes: ~a~%"
+
+#: guix/scripts/pull.scm:442
+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:451
+msgid ""
+"Run @command{guix pull --news} to view the complete\n"
+"list of package changes."
 msgstr ""
+"Ejecute @command{guix pull --news} para ver la lista\n"
+"completa de cambios en los paquetes."
+
+#: guix/scripts/pull.scm:515
+#, scheme-format
+msgid "'~a' did not return a list of channels~%"
+msgstr "'~a' no ha devuelto una lista de canales~%"
 
-#: guix/scripts/pull.scm:271
+#: guix/scripts/pull.scm:529
 #, scheme-format
-msgid "Building from Git commit ~a...~%"
+msgid ""
+"The 'GUIX_PULL_URL' environment variable is deprecated.\n"
+"Use '~/.config/guix/channels.scm' instead."
 msgstr ""
+"La variable de entorno 'GUIX_PULL_URL' está obsoleta.\n"
+"Use '~/.config/guix/channels.scm' en vez de dicha variable."
 
-#: guix/scripts/substitute.scm:125
+#: guix/scripts/pull.scm:578
+#, scheme-format
+msgid "Building from this channel:~%"
+msgid_plural "Building from these channels:~%"
+msgstr[0] "Construyendo de este canal:~%"
+msgstr[1] "Construyendo de estos canales:~%"
+
+#: guix/scripts/substitute.scm:126
 #, scheme-format
 msgid "authentication and authorization of substitutes disabled!~%"
-msgstr ""
+msgstr "¡la validación y autorización de sustituciones no está activada!~%"
 
-#: guix/scripts/substitute.scm:200
+#: guix/scripts/substitute.scm:201
 #, scheme-format
 msgid "download from '~a' failed: ~a, ~s~%"
-msgstr ""
+msgstr "la descarga desde '~a' ha fallado: ~a, ~s~%"
 
-#: guix/scripts/substitute.scm:213
+# FUZZY
+#: guix/scripts/substitute.scm:214
 #, scheme-format
 msgid "while fetching ~a: server is somewhat slow~%"
-msgstr ""
+msgstr "durante la obtención de ~a: el servidor va lento por alguna razón~%"
 
-#: guix/scripts/substitute.scm:215
+#: guix/scripts/substitute.scm:216
 #, scheme-format
 msgid "try `--no-substitutes' if the problem persists~%"
-msgstr ""
+msgstr "intente «--no-substitutes» si el problema persiste~%"
 
-#: guix/scripts/substitute.scm:233
+# FUZZY
+#: guix/scripts/substitute.scm:226
 #, scheme-format
 msgid "unsupported substitute URI scheme: ~a~%"
-msgstr ""
+msgstr "esquema de URI de sustituciones no implementado: ~a~%"
 
-#: guix/scripts/substitute.scm:268
+#: guix/scripts/substitute.scm:261
 #, scheme-format
 msgid "while fetching '~a': ~a (~s)~%"
-msgstr ""
+msgstr "durante la descarga de '~a': ~a (~s)~%"
 
-#: guix/scripts/substitute.scm:273
+#: guix/scripts/substitute.scm:266
 #, scheme-format
 msgid "ignoring substitute server at '~s'~%"
-msgstr ""
+msgstr "se ignora el servidor de sustituciones en '~s'~%"
 
-#: guix/scripts/substitute.scm:323
+#: guix/scripts/substitute.scm:316
 #, scheme-format
 msgid "signature version must be a number: ~s~%"
-msgstr ""
+msgstr "la versión de firma debe ser un número: ~s~%"
 
-#: guix/scripts/substitute.scm:327
+#: guix/scripts/substitute.scm:320
 #, scheme-format
 msgid "unsupported signature version: ~a~%"
-msgstr ""
+msgstr "versión de firma no implementada: ~a~%"
 
-#: guix/scripts/substitute.scm:335
+# FUZZY
+#: guix/scripts/substitute.scm:328
 #, scheme-format
 msgid "signature is not a valid s-expression: ~s~%"
-msgstr ""
+msgstr "la firma no es una expresión-s válida: ~s~%"
 
-#: guix/scripts/substitute.scm:339
+# FUZZY
+#: guix/scripts/substitute.scm:332
 #, scheme-format
 msgid "invalid format of the signature field: ~a~%"
-msgstr ""
+msgstr "formato no válido del campo de la firma: ~a~%"
 
-#: guix/scripts/substitute.scm:374
+#: guix/scripts/substitute.scm:367
 #, scheme-format
 msgid "invalid signature for '~a'~%"
-msgstr ""
+msgstr "firma no válida para '~a'~%"
 
-#: guix/scripts/substitute.scm:376
+# FUZZY
+#: guix/scripts/substitute.scm:369
 #, scheme-format
 msgid "hash mismatch for '~a'~%"
-msgstr ""
+msgstr "el hash de '~a' no corresponde~%"
 
-#: guix/scripts/substitute.scm:378
+# FUZZY
+#: guix/scripts/substitute.scm:371
 #, scheme-format
 msgid "'~a' is signed with an unauthorized key~%"
-msgstr ""
+msgstr "'~a' está firmado con una clave no autorizada~%"
 
-#: guix/scripts/substitute.scm:380
+# FUZZY
+#: guix/scripts/substitute.scm:373
 #, scheme-format
 msgid "signature on '~a' is corrupt~%"
-msgstr ""
+msgstr "la firma en '~a' está corrupta~%"
 
-#: guix/scripts/substitute.scm:465
+#: guix/scripts/substitute.scm:467
 #, scheme-format
 msgid "'~a' does not name a store item~%"
-msgstr ""
+msgstr "'~a' no nombra un elemento del almacén~%"
 
 #: guix/scripts/substitute.scm:629
 #, scheme-format
-msgid "updating list of substitutes from '~a'... ~5,1f%"
-msgstr ""
+msgid "updating substitutes from '~a'... ~5,1f%"
+msgstr "actualizando sustituciones desde '~a'... ~5,1f%"
 
 #: guix/scripts/substitute.scm:693
 #, scheme-format
 msgid "~s: unsupported server URI scheme~%"
-msgstr ""
+msgstr "~s: esquema de URI del servidor no implementado~%"
 
 #: guix/scripts/substitute.scm:703
 #, scheme-format
 msgid "'~a' uses different store '~a'; ignoring it~%"
-msgstr ""
+msgstr "'~a' usa un almacén '~a' que es diferente; ignorandolo~%"
 
-#: guix/scripts/substitute.scm:863
+#: guix/scripts/substitute.scm:872
 #, scheme-format
 msgid "host name lookup error: ~a~%"
-msgstr ""
+msgstr "error en la búsqueda de nombres de máquinas: ~a~%"
 
-#: guix/scripts/substitute.scm:868
+#: guix/scripts/substitute.scm:877
 #, scheme-format
 msgid "TLS error in procedure '~a': ~a~%"
-msgstr ""
+msgstr "error TLS en el procedimiento '~a': ~a~%"
 
-#: guix/scripts/substitute.scm:879
+# FUZZY
+#: guix/scripts/substitute.scm:888
 msgid ""
 "Usage: guix substitute [OPTION]...\n"
 "Internal tool to substitute a pre-built binary to a local build.\n"
 msgstr ""
+"Uso: guix substitute [OPCIÓN]...\n"
+"Herramienta interna para sustituir con un binario una construcción local.\n"
 
-#: guix/scripts/substitute.scm:881
+#: guix/scripts/substitute.scm:890
 msgid ""
 "\n"
 "      --query            report on the availability of substitutes for the\n"
 "                         store file names passed on the standard input"
 msgstr ""
+"\n"
+"      --query            informa de la disponibilidad de sustituciones para\n"
+"                         los nombres de fichero proporcionados por la\n"
+"                         entrada estándar"
 
-#: guix/scripts/substitute.scm:884
+#: guix/scripts/substitute.scm:893
 msgid ""
 "\n"
 "      --substitute STORE-FILE DESTINATION\n"
 "                         download STORE-FILE and store it as a Nar in file\n"
 "                         DESTINATION"
 msgstr ""
+"\n"
+"      --substitute FICHERO-ALMACÉN DESTINO\n"
+"                         descarga FICHERO-ALMACÉN y lo almacena como un Nar\n"
+"                         en el fichero DESTINO"
 
-#: guix/scripts/substitute.scm:949
+#: guix/scripts/substitute.scm:958
 #, scheme-format
 msgid "no valid substitute for '~a'~%"
-msgstr ""
+msgstr "ninguna sustitución válida para '~a'~%"
 
-#: guix/scripts/substitute.scm:956
+#: guix/scripts/substitute.scm:966
 #, scheme-format
 msgid "Downloading ~a...~%"
-msgstr ""
+msgstr "Descargando ~a...~%"
 
-#: guix/scripts/substitute.scm:1012
+#: guix/scripts/substitute.scm:1028
 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:1066
+#: guix/scripts/substitute.scm:1082
 #, scheme-format
 msgid "~a: invalid URI~%"
-msgstr ""
+msgstr "~a: URI no válida~%"
 
-#: guix/scripts/substitute.scm:1126
+#: guix/scripts/substitute.scm:1153
 #, scheme-format
 msgid "~a: unrecognized options~%"
-msgstr ""
+msgstr "~a: opciones no reconocidas~%"
 
 #: guix/scripts/authenticate.scm:59
 #, scheme-format
 msgid "cannot find public key for secret key '~a'~%"
-msgstr ""
+msgstr "no se pudo encontrar una clave pública para la clave secreta '~a'~%"
 
 #: guix/scripts/authenticate.scm:79
 #, scheme-format
 msgid "error: invalid signature: ~a~%"
-msgstr ""
+msgstr "error: firma no válida: ~a~%"
 
 #: guix/scripts/authenticate.scm:81
 #, scheme-format
 msgid "error: unauthorized public key: ~a~%"
-msgstr ""
+msgstr "error: clave pública no autorizada: ~a~%"
 
 #: guix/scripts/authenticate.scm:83
 #, scheme-format
 msgid "error: corrupt signature data: ~a~%"
-msgstr ""
+msgstr "error: datos de firma corruptos: ~a~%"
 
+# FUZZY
 #: guix/scripts/authenticate.scm:121
 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"
 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"
 
 #: guix/scripts/authenticate.scm:127
 msgid "wrong arguments"
-msgstr "argumentos incorrectos"
+msgstr "parámetros incorrectos"
 
-#: guix/scripts/system.scm:135
+#: guix/scripts/system.scm:150
 #, scheme-format
 msgid "failed to register '~a' under '~a'~%"
-msgstr ""
+msgstr "no se pudo registrar '~a' bajo '~a'~%"
+
+#: guix/scripts/system.scm:165
+#, scheme-format
+msgid "copying to '~a'..."
+msgstr "copiando a '~a'..."
 
-#: guix/scripts/system.scm:174
+#: guix/scripts/system.scm:206
 #, scheme-format
 msgid "failed to install bootloader ~a~%"
-msgstr ""
+msgstr "no se pudo instalar el cargador de arranque ~a~%"
 
-#: guix/scripts/system.scm:194
+#: guix/scripts/system.scm:226
 #, scheme-format
 msgid "initializing the current root file system~%"
-msgstr ""
+msgstr "inicializando el sistema de ficheros raíz actual~%"
 
-#: guix/scripts/system.scm:208
+# FUZZY
+#: guix/scripts/system.scm:240
 #, scheme-format
 msgid "not running as 'root', so the ownership of '~a' may be incorrect!~%"
-msgstr ""
+msgstr "¡no se está ejecutando como 'root', por lo que la propiedad de '~a' puede ser incorrecta!~%"
 
-#: guix/scripts/system.scm:253
+#: guix/scripts/system.scm:292
 #, scheme-format
 msgid "while talking to shepherd: ~a~%"
-msgstr ""
+msgstr "durante la comunicación con shepherd: ~a~%"
 
-#: guix/scripts/system.scm:260
+#: guix/scripts/system.scm:299
 #, scheme-format
 msgid "service '~a' could not be found~%"
-msgstr ""
+msgstr "no se pudo encontrar el servicio '~a'~%"
 
-#: guix/scripts/system.scm:263
+#: guix/scripts/system.scm:302
 #, scheme-format
 msgid "service '~a' does not have an action '~a'~%"
-msgstr ""
+msgstr "el servicio '~a' no tiene una acción '~a'~%"
 
-#: guix/scripts/system.scm:267
+#: guix/scripts/system.scm:306
 #, scheme-format
 msgid "exception caught while executing '~a' on service '~a':~%"
-msgstr ""
+msgstr "se ha capturado una excepción durante la ejecución de '~a' en el servicio '~a':~%"
 
-#: guix/scripts/system.scm:275
+# FUZZY
+#: guix/scripts/system.scm:314
 #, scheme-format
 msgid "something went wrong: ~s~%"
-msgstr ""
+msgstr "algo fue mal: ~s~%"
 
-#: guix/scripts/system.scm:278
+#: guix/scripts/system.scm:317
 #, scheme-format
 msgid "shepherd error~%"
-msgstr ""
+msgstr "error de shepherd~%"
 
-#: guix/scripts/system.scm:295
+#: guix/scripts/system.scm:334
 #, scheme-format
 msgid "failed to obtain list of shepherd services~%"
-msgstr ""
+msgstr "no se pudo obtener la lista de servicios shepherd~%"
 
-#: guix/scripts/system.scm:315
+# FUZZY
+#: guix/scripts/system.scm:354
 #, scheme-format
 msgid "unloading service '~a'...~%"
-msgstr ""
+msgstr "descargando servicio '~a'...~%"
 
-#: guix/scripts/system.scm:323
+#: guix/scripts/system.scm:363
 #, scheme-format
 msgid "loading new services:~{ ~a~}...~%"
+msgstr "cargando nuevos servicios:~{ ~a~}...~%"
+
+#: 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"
 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:347
+#: guix/scripts/system.scm:395
 #, scheme-format
 msgid "activating system...~%"
-msgstr ""
+msgstr "activando sistema...~%"
 
-#: guix/scripts/system.scm:423
+#: guix/scripts/system.scm:473
 #, scheme-format
 msgid "cannot switch to system generation '~a'~%"
-msgstr ""
+msgstr "no se pudo pasar a la generación '~a' del sistema~%"
 
-#: guix/scripts/system.scm:494
+#: guix/scripts/system.scm:546
 msgid "the DAG of services"
-msgstr ""
+msgstr "el GAD de servicios"
 
-#: guix/scripts/system.scm:507
+#: guix/scripts/system.scm:559
 msgid "the dependency graph of shepherd services"
-msgstr ""
+msgstr "el grafo de dependencias de los servicios de shepherd"
 
-#: guix/scripts/system.scm:531
+#: guix/scripts/system.scm:583
 #, scheme-format
 msgid "  file name: ~a~%"
-msgstr ""
+msgstr "  nombre de fichero: ~a~%"
 
-#: guix/scripts/system.scm:532
+#: guix/scripts/system.scm:584
 #, scheme-format
 msgid "  canonical file name: ~a~%"
-msgstr ""
+msgstr "  nombre canónico de fichero: ~a~%"
 
 #. TRANSLATORS: Please preserve the two-space indentation.
-#: guix/scripts/system.scm:534
+#: guix/scripts/system.scm:586
 #, scheme-format
 msgid "  label: ~a~%"
-msgstr ""
+msgstr "  etiqueta: ~a~%"
 
-#: guix/scripts/system.scm:535
+#: guix/scripts/system.scm:587
 #, scheme-format
 msgid "  bootloader: ~a~%"
-msgstr ""
+msgstr "  cargador de arranque: ~a~%"
 
-#: guix/scripts/system.scm:536
+#. 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:597
 #, scheme-format
-msgid "  root device: ~a~%"
-msgstr ""
+msgid "  root device: ~[UUID: ~a~;label: ~s~;~a~]~%"
+msgstr "  dispositivo raíz: ~[UUID: ~a~;etiqueta: ~s~;~a~]~%"
 
-#: guix/scripts/system.scm:540
+#: guix/scripts/system.scm:608
 #, scheme-format
 msgid "  kernel: ~a~%"
+msgstr "  núcleo: ~a~%"
+
+#: guix/scripts/system.scm:679
+#, scheme-format
+msgid "~a: error: device '~a' not found: ~a~%"
+msgstr "~a: error: dispositivo '~a' no encontrado: ~a~%"
+
+#: guix/scripts/system.scm:683
+#, 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}."
 
-#: guix/scripts/system.scm:600
+#: guix/scripts/system.scm:691
 #, scheme-format
 msgid "~a: error: file system with label '~a' not found~%"
-msgstr ""
+msgstr "~a: error: sistema de ficheros con etiqueta '~a' no encontrado~%"
 
-#: guix/scripts/system.scm:606
+#: guix/scripts/system.scm:696
 #, scheme-format
 msgid "~a: error: file system with UUID '~a' not found~%"
-msgstr ""
+msgstr "~a: error: sistema de ficheros con UUID '~a' no encontrado~%"
 
-#: guix/scripts/system.scm:658
+#: guix/scripts/system.scm:797
 #, scheme-format
 msgid "~a not found: 'guix pull' was never run~%"
-msgstr ""
+msgstr "~a no encontrado: no se ha ejecutado nunca 'guix pull'~%"
 
-#: guix/scripts/system.scm:659
+#: guix/scripts/system.scm:798
 #, scheme-format
 msgid "Consider running 'guix pull' before 'reconfigure'.~%"
-msgstr ""
+msgstr "Considere ejecutar 'guix pull' antes de 'reconfigure'.~%"
 
-#: guix/scripts/system.scm:660
+# FUZZY
+# MAAV (TODO): ¿Desactualizar? ¿instalar una versión previa/antigua?
+#: guix/scripts/system.scm:799
 #, scheme-format
 msgid "Failing to do that may downgrade your system!~%"
-msgstr ""
+msgstr "¡En caso de no hacerlo puede desactualizar su sistema!~%"
 
-#: guix/scripts/system.scm:767
+# FUZZY
+#: guix/scripts/system.scm:920
 #, scheme-format
 msgid "initializing operating system under '~a'...~%"
-msgstr ""
+msgstr "inicializando el sistema operativo bajo '~a'...~%"
 
-#: guix/scripts/system.scm:812
+#: guix/scripts/system.scm:965
 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"
+"Algunas ACCIONES permiten PARÁMETROS adicionales.\n"
 
-#: guix/scripts/system.scm:816 guix/scripts/container.scm:28
+#: guix/scripts/system.scm:969 guix/scripts/container.scm:29
 msgid "The valid values for ACTION are:\n"
-msgstr ""
+msgstr "Los valores permitidos para ACCIÓN son:\n"
 
-#: guix/scripts/system.scm:818
+#: guix/scripts/system.scm:971
 msgid "   search           search for existing service types\n"
-msgstr ""
+msgstr "   search           busca tipos de servicio existentes\n"
 
-#: guix/scripts/system.scm:820
+#: guix/scripts/system.scm:973
 msgid "   reconfigure      switch to a new operating system configuration\n"
-msgstr ""
+msgstr "   reconfigure      cambia a una configuración nueva de sistema operativo\n"
 
-#: guix/scripts/system.scm:822
+#: guix/scripts/system.scm:975
 msgid "   roll-back        switch to the previous operating system configuration\n"
-msgstr ""
+msgstr "   roll-back        cambia a la configuración previa del sistema operativo\n"
 
-#: guix/scripts/system.scm:824
+#: guix/scripts/system.scm:977
+msgid "   list-generations list the system generations\n"
+msgstr "   list-generations enumera las generaciones del sistema\n"
+
+#: guix/scripts/system.scm:979
 msgid "   switch-generation switch to an existing operating system configuration\n"
-msgstr ""
+msgstr "   switch-generation cambia a configuración existente del sistema operativo\n"
 
-#: guix/scripts/system.scm:826
-msgid "   list-generations list the system generations\n"
-msgstr ""
+#: guix/scripts/system.scm:981
+msgid "   delete-generations delete old system generations\n"
+msgstr "   delete-generations borra generaciones antiguas del sistema\n"
 
-#: guix/scripts/system.scm:828
+#: guix/scripts/system.scm:983
 msgid "   build            build the operating system without installing anything\n"
-msgstr ""
+msgstr "   build            construye el sistema operativo sin instalar nada\n"
 
-#: guix/scripts/system.scm:830
+#: guix/scripts/system.scm:985
 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:832
+#: guix/scripts/system.scm:987
 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:834
+#: guix/scripts/system.scm:989
 msgid "   vm-image         build a freestanding virtual machine image\n"
-msgstr ""
+msgstr "   vm-image         construye una imagen de máquina virtual independiente\n"
 
-#: guix/scripts/system.scm:836
+#: guix/scripts/system.scm:991
 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:993
+msgid "   docker-image     build a Docker image\n"
+msgstr "   docker-image     construye una imagen Docker\n"
 
-#: guix/scripts/system.scm:838
+#: guix/scripts/system.scm:995
 msgid "   init             initialize a root file system to run GNU\n"
-msgstr ""
+msgstr "   init             inicializa un sistema de ficheros raíz para ejecutar GNU\n"
 
-#: guix/scripts/system.scm:840
+#: guix/scripts/system.scm:997
 msgid "   extension-graph  emit the service extension graph in Dot format\n"
-msgstr ""
+msgstr "   extension-graph  emite el grafo de extensiones de servicios en formato Dot\n"
 
-#: guix/scripts/system.scm:842
+#: guix/scripts/system.scm:999
 msgid "   shepherd-graph   emit the graph of shepherd services in Dot format\n"
-msgstr ""
+msgstr "   shepherd-graph   emite el grafo de servicios de shepherd en formato Dot\n"
 
-#: guix/scripts/system.scm:846
+#: guix/scripts/system.scm:1003
 msgid ""
 "\n"
 "  -d, --derivation       return the derivation of the given system"
 msgstr ""
+"\n"
+"  -d, --derivation       devuelve la derivación del sistema proporcionado"
+
+#: guix/scripts/system.scm:1005
+msgid ""
+"\n"
+"  -e, --expression=EXPR  consider the operating-system EXPR evaluates to\n"
+"                         instead of reading FILE, when applicable"
+msgstr ""
+"\n"
+"  -e, --expression=EXPR  considera el sistema operativo al cual EXPR evalúa\n"
+"                         en vez de leer FICHERO, cuando sea posible"
 
-#: guix/scripts/system.scm:848
+#: guix/scripts/system.scm:1008
 msgid ""
 "\n"
 "      --on-error=STRATEGY\n"
-"                         apply STRATEGY when an error occurs while reading FILE"
+"                         apply STRATEGY (one of nothing-special, backtrace,\n"
+"                         or debug) when an error occurs while reading FILE"
 msgstr ""
+"\n"
+"      --on-error=ESTRATEGIA\n"
+"                         aplica ESTRATEGIA (o bien 'nothing-special',\n"
+"                         'backtrace' o 'debug') cuando suceda un error\n"
+"                         durante la lectura de FICHERO"
 
-#: guix/scripts/system.scm:851
+#: guix/scripts/system.scm:1012
 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 ficheros raíz\n"
+"                         de TIPO (uno de 'ext4', 'iso9660')"
 
-#: guix/scripts/system.scm:855
+#: guix/scripts/system.scm:1016
 msgid ""
 "\n"
 "      --image-size=SIZE  for 'vm-image', produce an image of SIZE"
 msgstr ""
+"\n"
+"      --image-size=TAMAÑO\n"
+"                         con 'vm-image', produce una imagen de TAMAÑO"
 
-#: guix/scripts/system.scm:857
+#: guix/scripts/system.scm:1018
 msgid ""
 "\n"
 "      --no-bootloader    for 'init', do not install a bootloader"
 msgstr ""
+"\n"
+"      --no-bootloader    con 'init', no instala un cargador de arranque"
 
-#: guix/scripts/system.scm:859
+# FUZZY
+#: guix/scripts/system.scm:1020
 msgid ""
 "\n"
 "      --share=SPEC       for 'vm', share host file system according to SPEC"
 msgstr ""
+"\n"
+"      --share=SPEC       con 'vm', comparte el sistema de ficheros del sistema\n"
+"                         anfitrión de acuerdo con SPEC"
 
-#: guix/scripts/system.scm:861
+#: guix/scripts/system.scm:1022
 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=FICHERO     con 'vm', 'vm-image', 'disk-image', 'container'\n"
+"                         y 'build', crea FICHERO como un enlace simbólico\n"
+"                         al resultado y lo registra como una raíz del\n"
+"                         recolector de basura"
 
-#: guix/scripts/system.scm:865
+# FUZZY
+#: guix/scripts/system.scm:1026
 msgid ""
 "\n"
 "      --expose=SPEC      for 'vm', expose host file system according to SPEC"
 msgstr ""
+"\n"
+"      --expose=SPEC      con 'vm', expone el sistema de ficheros del sistema\n"
+"                         anfitrión de acuerdo con SPEC"
 
-#: guix/scripts/system.scm:867
+#: guix/scripts/system.scm:1028
 msgid ""
 "\n"
 "      --full-boot        for 'vm', make a full boot sequence"
 msgstr ""
+"\n"
+"      --full-boot        con 'vm', genera una secuencia de arranque completa"
 
-#: guix/scripts/system.scm:959
-#, scheme-format
-msgid "no configuration file specified~%"
+#: guix/scripts/system.scm:1030
+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"
+
+#: guix/scripts/system.scm:1140
+#, scheme-format
+msgid "both file and expression cannot be specified~%"
+msgstr "no se pueden especificar tanto el fichero como la expresión~%"
 
-#: guix/scripts/system.scm:1057
+#: guix/scripts/system.scm:1147
+#, scheme-format
+msgid "no configuration specified~%"
+msgstr "ninguna configuración especificada~%"
+
+#: guix/scripts/system.scm:1257
 #, scheme-format
 msgid "~a: unknown action~%"
-msgstr ""
+msgstr "~a: acción desconocida~%"
 
-#: guix/scripts/system.scm:1072
+#: guix/scripts/system.scm:1273
 #, scheme-format
 msgid "wrong number of arguments for action '~a'~%"
-msgstr ""
+msgstr "número de parámetros incorrecto para la acción '~a'~%"
 
-#: guix/scripts/system.scm:1077
+#: guix/scripts/system.scm:1278
 #, scheme-format
 msgid "guix system: missing command name~%"
-msgstr ""
+msgstr "guix system: falta el nombre de la orden~%"
 
-#: guix/scripts/system.scm:1079
+#: guix/scripts/system.scm:1280
 #, scheme-format
 msgid "Try 'guix system --help' for more information.~%"
-msgstr ""
+msgstr "Pruebe 'guix system --help' para más información.~%"
 
-#: guix/scripts/system/search.scm:64 guix/ui.scm:1057 guix/ui.scm:1071
+#: guix/scripts/system/search.scm:88 guix/ui.scm:1330 guix/ui.scm:1344
 msgid "unknown"
-msgstr ""
+msgstr "desconocida"
 
-#: guix/scripts/lint.scm:138
+#: guix/scripts/lint.scm:144
 #, scheme-format
 msgid "Available checkers:~%"
-msgstr ""
+msgstr "Comprobaciones disponibles:~%"
 
-#: guix/scripts/lint.scm:162
+#: guix/scripts/lint.scm:168
 msgid "description should not be empty"
-msgstr ""
+msgstr "la descripción no debe estar vacía"
 
-#: guix/scripts/lint.scm:172
+#: guix/scripts/lint.scm:178
 msgid "Texinfo markup in description is invalid"
-msgstr ""
+msgstr "el marcado Texinfo en la descripción no es válido"
 
-#: guix/scripts/lint.scm:182
+#: guix/scripts/lint.scm:188
 #, scheme-format
 msgid ""
 "description should not contain ~\n"
 "trademark sign '~a' at ~d"
 msgstr ""
+"la descripción no debe contener ~\n"
+"el símbolo '~a' de marca registrada en ~d"
 
+# FUZZY
 #. TRANSLATORS: '@code' is Texinfo markup and must be kept
 #. as is.
-#: guix/scripts/lint.scm:195
+#: guix/scripts/lint.scm:201
 msgid "use @code or similar ornament instead of quotes"
-msgstr ""
+msgstr "use @code u ornamentos similares en vez de comillas"
 
-#: guix/scripts/lint.scm:202
+#: guix/scripts/lint.scm:208
 msgid "description should start with an upper-case letter or digit"
-msgstr ""
+msgstr "la descripción debe empezar con una letra mayúscula o un dígito"
 
-#: guix/scripts/lint.scm:218
+#: guix/scripts/lint.scm:224
 #, scheme-format
 msgid ""
 "sentences in description should be followed ~\n"
 "by two spaces; possible infraction~p at ~{~a~^, ~}"
 msgstr ""
+"las oraciones en descripción deben separarse ~\n"
+"con dos espacios; posible infracción~p en ~{~a~^, ~}"
 
-#: guix/scripts/lint.scm:236
+#: guix/scripts/lint.scm:242
 #, scheme-format
 msgid "invalid description: ~s"
-msgstr ""
+msgstr "descripción no válida: ~s"
 
-#: guix/scripts/lint.scm:281
+#: guix/scripts/lint.scm:287
 #, scheme-format
 msgid "'~a' should probably be a native input"
-msgstr ""
+msgstr "probablemente '~a' debería ser una entrada nativa"
 
-#: guix/scripts/lint.scm:297
+#: guix/scripts/lint.scm:303
 #, scheme-format
 msgid "'~a' should probably not be an input at all"
-msgstr ""
+msgstr "probablemente '~a' no debería ser una entrada en absoluto"
 
-#: guix/scripts/lint.scm:314
+#: guix/scripts/lint.scm:320
 msgid "synopsis should not be empty"
-msgstr ""
+msgstr "la sinopsis no debe estar vacía"
 
-#: guix/scripts/lint.scm:322
+#: guix/scripts/lint.scm:328
 msgid "no period allowed at the end of the synopsis"
-msgstr ""
+msgstr "no se permite un punto al final de la sinopsis"
 
-#: guix/scripts/lint.scm:334
+#: guix/scripts/lint.scm:340
 msgid "no article allowed at the beginning of the synopsis"
-msgstr ""
+msgstr "no se permite un artículo al inicio de la sinopsis"
 
-#: guix/scripts/lint.scm:341
+#: guix/scripts/lint.scm:347
 msgid "synopsis should be less than 80 characters long"
-msgstr ""
+msgstr "la sinopsis debe tener menos de 80 caracteres"
 
-#: guix/scripts/lint.scm:347
+#: guix/scripts/lint.scm:353
 msgid "synopsis should start with an upper-case letter or digit"
-msgstr ""
+msgstr "la sinopsis debe empezar con una letra mayúscula o un dígito"
 
-#: guix/scripts/lint.scm:354
+#: guix/scripts/lint.scm:360
 msgid "synopsis should not start with the package name"
-msgstr ""
+msgstr "la sinopsis no debe empezar con el nombre del paquete"
 
-#: guix/scripts/lint.scm:364
+#: guix/scripts/lint.scm:370
 msgid "Texinfo markup in synopsis is invalid"
-msgstr ""
+msgstr "el marcado Texinfo de la sinopsis no es válido"
 
-#: guix/scripts/lint.scm:383
+#: guix/scripts/lint.scm:389
 #, scheme-format
 msgid "invalid synopsis: ~s"
-msgstr ""
+msgstr "sinopsis no válida: ~s"
 
-#: guix/scripts/lint.scm:502
+# FUZZY
+#: guix/scripts/lint.scm:508
 #, scheme-format
 msgid "URI ~a returned suspiciously small file (~a bytes)"
-msgstr ""
+msgstr "la URI ~a devolvió un fichero sospechosamente pequeño (~a bytes)"
 
-#: guix/scripts/lint.scm:512
+#: guix/scripts/lint.scm:518
 #, scheme-format
 msgid "permanent redirect from ~a to ~a"
-msgstr ""
+msgstr "redirección permanente de ~a a ~a"
 
-#: guix/scripts/lint.scm:519
+#: guix/scripts/lint.scm:525
 #, scheme-format
 msgid "invalid permanent redirect from ~a"
-msgstr ""
+msgstr "redirección permanente no válida de ~a"
 
-#: guix/scripts/lint.scm:526 guix/scripts/lint.scm:538
+# FUZZY
+#: guix/scripts/lint.scm:532 guix/scripts/lint.scm:544
 #, scheme-format
 msgid "URI ~a not reachable: ~a (~s)"
-msgstr ""
+msgstr "URI ~a no alcanzable: ~a (~s)"
 
-#: guix/scripts/lint.scm:545
+#: guix/scripts/lint.scm:551
 #, scheme-format
 msgid "URI ~a domain not found: ~a"
-msgstr ""
+msgstr "dominio de URI ~a no encontrado: ~a"
 
-#: guix/scripts/lint.scm:553
+#: guix/scripts/lint.scm:559
 #, scheme-format
 msgid "URI ~a unreachable: ~a"
-msgstr ""
+msgstr "URI ~a no alcanzable: ~a"
 
-#: guix/scripts/lint.scm:562
+#: guix/scripts/lint.scm:568
 #, scheme-format
 msgid "TLS certificate error: ~a"
-msgstr ""
+msgstr "error en el certificado TLS: ~a"
 
-#: guix/scripts/lint.scm:583
+#: guix/scripts/lint.scm:589
 msgid "invalid value for home page"
-msgstr ""
+msgstr "valor no válido en página Web del paquete"
 
-#: guix/scripts/lint.scm:586
+#: guix/scripts/lint.scm:592
 #, scheme-format
 msgid "invalid home page URL: ~s"
-msgstr ""
+msgstr "URL de la página Web del paquete no válida: ~s"
 
-#: guix/scripts/lint.scm:606
+#: guix/scripts/lint.scm:619
 msgid "file names of patches should start with the package name"
-msgstr ""
+msgstr "los nombres de ficheros de los parches deben empezar con el nombre del paquete"
 
-#: guix/scripts/lint.scm:644
+#: guix/scripts/lint.scm:635
+#, scheme-format
+msgid "~a: file name is too long"
+msgstr "~a: el nombre de fichero es demasiado largo"
+
+#: guix/scripts/lint.scm:676
 #, scheme-format
 msgid "~a: ~a: proposed synopsis: ~s~%"
-msgstr ""
+msgstr "~a: ~a: sinopsis propuesta: ~s~%"
 
-#: guix/scripts/lint.scm:657
+#: guix/scripts/lint.scm:689
 #, scheme-format
 msgid "~a: ~a: proposed description:~%     \"~a\"~%"
-msgstr ""
+msgstr "~a: ~a: descripción propuesta:~%     \"~a\"~%"
 
-#: guix/scripts/lint.scm:699
+#: guix/scripts/lint.scm:731
 msgid "all the source URIs are unreachable:"
-msgstr ""
+msgstr "ninguna URI de fuentes es alcanzable:"
 
-#: guix/scripts/lint.scm:721
+#: guix/scripts/lint.scm:753
 msgid "the source file name should contain the package name"
-msgstr ""
+msgstr "el nombre de fichero de las fuentes debe contener el nombre del paquete"
+
+#: guix/scripts/lint.scm:765
+msgid "the source URI should not be an autogenerated tarball"
+msgstr "la URI de las fuentes no debe ser un archivador tar autogenerado"
 
-#: guix/scripts/lint.scm:737
+#: guix/scripts/lint.scm:786
 #, scheme-format
 msgid "URL should be 'mirror://~a/~a'"
-msgstr ""
+msgstr "la URL debe ser 'mirror://~a/~a'"
 
-#: guix/scripts/lint.scm:755 guix/scripts/lint.scm:759
+#: guix/scripts/lint.scm:829
 #, scheme-format
-msgid "failed to create derivation: ~a"
-msgstr ""
+msgid "URL should be '~a'"
+msgstr "la URL debe ser '~a'"
 
-#: guix/scripts/lint.scm:773
+#: guix/scripts/lint.scm:840 guix/scripts/lint.scm:845
 #, scheme-format
-msgid "failed to create derivation: ~s~%"
-msgstr ""
+msgid "failed to create ~a derivation: ~a"
+msgstr "no se pudo crear derivación para ~a: ~a"
+
+#: guix/scripts/lint.scm:862
+#, scheme-format
+msgid "failed to create ~a derivation: ~s"
+msgstr "no se pudo crear la derivación para ~a: ~s"
 
-#: guix/scripts/lint.scm:783
+#: guix/scripts/lint.scm:874
 msgid "invalid license field"
-msgstr ""
+msgstr "campo license no válido"
 
-#: guix/scripts/lint.scm:799
+#: guix/scripts/lint.scm:881
 #, scheme-format
 msgid "~a: HTTP GET error for ~a: ~a (~s)~%"
-msgstr ""
+msgstr "~a: error HTTP GET para ~a: ~a (~s)~%"
 
-#: guix/scripts/lint.scm:809
+#: guix/scripts/lint.scm:891
 #, scheme-format
 msgid "~a: host lookup failure: ~a~%"
-msgstr ""
+msgstr "~a: fallo en la búsqueda de máquinas: ~a~%"
 
-#: guix/scripts/lint.scm:814
+# FUZZY
+#: guix/scripts/lint.scm:896
 #, scheme-format
 msgid "~a: TLS certificate error: ~a"
-msgstr ""
+msgstr "~a: error de certificado TLS: ~a"
 
-#: guix/scripts/lint.scm:829
+#: guix/scripts/lint.scm:911
 msgid "while retrieving CVE vulnerabilities"
-msgstr ""
+msgstr "durante la obtención de vulnerabilidades CVE"
 
-#: guix/scripts/lint.scm:866
+#: guix/scripts/lint.scm:948
 #, scheme-format
 msgid "probably vulnerable to ~a"
-msgstr ""
+msgstr "probablemente vulnerable a ~a"
 
-#: guix/scripts/lint.scm:873
+# FUZZY
+#: guix/scripts/lint.scm:955
 #, scheme-format
 msgid "while retrieving upstream info for '~a'"
-msgstr ""
+msgstr "durante la obtención de información oficial para '~a'"
 
-#: guix/scripts/lint.scm:881
+#: guix/scripts/lint.scm:963
 #, scheme-format
 msgid "can be upgraded to ~a"
-msgstr ""
+msgstr "puede actualizarse a ~a"
 
-#: guix/scripts/lint.scm:896
+#: guix/scripts/lint.scm:978
 #, scheme-format
 msgid "tabulation on line ~a, column ~a"
-msgstr ""
+msgstr "tabulador en línea ~a, columna ~a"
 
-#: guix/scripts/lint.scm:905
+#: guix/scripts/lint.scm:987
 #, scheme-format
 msgid "trailing white space on line ~a"
-msgstr ""
+msgstr "espacio en blanco al final de la línea ~a"
 
-#: guix/scripts/lint.scm:915
+#: guix/scripts/lint.scm:997
 #, scheme-format
 msgid "line ~a is way too long (~a characters)"
-msgstr ""
+msgstr "la línea ~a es demasiado larga (~a caracteres)"
 
-#: guix/scripts/lint.scm:926
+# FUZZY
+#: guix/scripts/lint.scm:1008
 #, scheme-format
 msgid "line ~a: parentheses feel lonely, move to the previous or next line"
-msgstr ""
+msgstr "línea ~a: el paréntesis se siente solo, muevalo a la línea anterior o posterior"
 
-#: guix/scripts/lint.scm:996
+#: guix/scripts/lint.scm:1078
 msgid "Validate package descriptions"
-msgstr ""
+msgstr "Valida descripciones de paquete"
 
-#: guix/scripts/lint.scm:1000
+#: guix/scripts/lint.scm:1082
 msgid "Validate synopsis & description of GNU packages"
-msgstr ""
+msgstr "Valida sinopsis y descripciones de paquetes GNU"
 
-#: guix/scripts/lint.scm:1004
+#: guix/scripts/lint.scm:1086
 msgid "Identify inputs that should be native inputs"
-msgstr ""
+msgstr "Identifica entradas que deberían ser entradas nativas"
 
-#: guix/scripts/lint.scm:1008
-msgid "Identify inputs that should be inputs at all"
-msgstr ""
+#: guix/scripts/lint.scm:1090
+msgid "Identify inputs that shouldn't be inputs at all"
+msgstr "Identifica entradas que no deberían ser entradas en absoluto"
 
-#: guix/scripts/lint.scm:1012
+#: guix/scripts/lint.scm:1094
 msgid "Validate file names and availability of patches"
-msgstr ""
+msgstr "Valida nombres de fichero y disponibilidad de parches"
 
-#: guix/scripts/lint.scm:1016
+#: guix/scripts/lint.scm:1098
 msgid "Validate home-page URLs"
-msgstr ""
+msgstr "Valida URL de las páginas Web del paquete"
 
 #. TRANSLATORS: <license> is the name of a data type and must not be
 #. translated.
-#: guix/scripts/lint.scm:1022
+#: guix/scripts/lint.scm:1104
 msgid "Make sure the 'license' field is a <license> or a list thereof"
-msgstr ""
+msgstr "Asegura que el campo 'license' es un objeto <license> o una lista de ellos"
 
-#: guix/scripts/lint.scm:1027
+#: guix/scripts/lint.scm:1109
 msgid "Validate source URLs"
-msgstr ""
+msgstr "Valida las URL de las fuentes"
 
-#: guix/scripts/lint.scm:1031
+#: guix/scripts/lint.scm:1113
 msgid "Suggest 'mirror://' URLs"
-msgstr ""
+msgstr "Sugiere URL 'mirror://'"
+
+#: guix/scripts/lint.scm:1117
+msgid "Suggest GitHub URLs"
+msgstr "Sugiere URL de GitHub"
 
-#: guix/scripts/lint.scm:1035
+#: guix/scripts/lint.scm:1121
 msgid "Validate file names of sources"
-msgstr ""
+msgstr "Valida nombres de fichero de fuentes"
+
+#: guix/scripts/lint.scm:1125
+msgid "Check for autogenerated tarballs"
+msgstr "Comprueba archivadores tar autogenerados"
 
-#: guix/scripts/lint.scm:1039
+#: guix/scripts/lint.scm:1129
 msgid "Report failure to compile a package to a derivation"
-msgstr ""
+msgstr "Informa fallos al compilar un paquete en una derivación"
 
-#: guix/scripts/lint.scm:1043
+#: guix/scripts/lint.scm:1133
 msgid "Validate package synopses"
-msgstr ""
+msgstr "Valida sinopsis de paquete"
 
-#: guix/scripts/lint.scm:1047
+#: guix/scripts/lint.scm:1137
 msgid "Check the Common Vulnerabilities and Exposures (CVE) database"
-msgstr ""
+msgstr "Comprueba la base de datos de vulnerabilidades y exposiciones comunes (CVE)"
 
-#: guix/scripts/lint.scm:1052
+# FUZZY
+#: guix/scripts/lint.scm:1142
 msgid "Check the package for new upstream releases"
-msgstr ""
+msgstr "Comprueba el paquete en busca de nuevas publicaciones oficiales"
 
-#: guix/scripts/lint.scm:1056
+#: guix/scripts/lint.scm:1146
 msgid "Look for formatting issues in the source"
-msgstr ""
+msgstr "Busca problemas en el formato de las fuentes"
 
-#: guix/scripts/lint.scm:1084
+#: guix/scripts/lint.scm:1174
 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 ""
+"Uso: guix lint [OPCIÓN]... [PAQUETE]...\n"
+"Ejecuta un conjunto de comprobaciones en el paquete especificado; si no\n"
+"se especifica ninguno, ejecuta las comprobaciones en todos los paquetes.\n"
 
-#: guix/scripts/lint.scm:1087
+#: guix/scripts/lint.scm:1177
 msgid ""
 "\n"
 "  -c, --checkers=CHECKER1,CHECKER2...\n"
 "                         only run the specified checkers"
 msgstr ""
+"\n"
+"  -c, --checkers=COMPROBACIÓN1,COMPROBACIÓN2...\n"
+"                         ejecuta únicamente las comprobaciones especificadas"
 
-#: guix/scripts/lint.scm:1092
+# FUZZY
+#: guix/scripts/lint.scm:1182
 msgid ""
 "\n"
 "  -l, --list-checkers    display the list of available lint checkers"
 msgstr ""
+"\n"
+"  -l, --list-checkers    muestra la lista de comprobaciones lint disponibles"
 
-#: guix/scripts/lint.scm:1112
+#: guix/scripts/lint.scm:1202
 #, scheme-format
 msgid "~a: invalid checker~%"
-msgstr ""
+msgstr "~a: comprobación no válida~%"
 
+# FUZZY
 #: guix/scripts/publish.scm:68
 #, scheme-format
 msgid ""
 "Usage: guix publish [OPTION]...\n"
 "Publish ~a over HTTP.\n"
 msgstr ""
+"Uso: guix publish [OPCIÓN]...\n"
+"Publica ~a por HTTP.\n"
 
 #: guix/scripts/publish.scm:70
 msgid ""
 "\n"
 "  -p, --port=PORT        listen on PORT"
 msgstr ""
+"\n"
+"  -p, --port=PUERTO      escucha en PUERTO"
 
 #: guix/scripts/publish.scm:72
 msgid ""
 "\n"
 "      --listen=HOST      listen on the network interface for HOST"
 msgstr ""
+"\n"
+"      --listen=DIRECCIÓN escucha en la interfaz de red de DIRECCIÓN"
 
 #: guix/scripts/publish.scm:74
 msgid ""
 "\n"
 "  -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"
+"                         como sea posible"
 
 #: guix/scripts/publish.scm:76
 msgid ""
@@ -1864,330 +3290,393 @@ msgid ""
 "  -C, --compression[=LEVEL]\n"
 "                         compress archives at LEVEL"
 msgstr ""
+"\n"
+"  -C, --compression[=NIVEL]\n"
+"                         comprime los archivos al NIVEL especificado"
 
 #: guix/scripts/publish.scm:79
 msgid ""
 "\n"
 "  -c, --cache=DIRECTORY  cache published items to DIRECTORY"
 msgstr ""
+"\n"
+"  -c, --cache=DIRECTORIO almacena los elementos publicados en caché en\n"
+"                         el DIRECTORIO"
 
+# FUZZY
 #: guix/scripts/publish.scm:81
 msgid ""
 "\n"
 "      --workers=N        use N workers to bake items"
 msgstr ""
+"\n"
+"      --workers=N        usa N trabajadores para cocinar elementos"
 
 #: guix/scripts/publish.scm:83
 msgid ""
 "\n"
 "      --ttl=TTL          announce narinfos can be cached for TTL seconds"
 msgstr ""
+"\n"
+"      --ttl=TTL          anuncia que los archivos narinfo pueden estar en caché\n"
+"                         durante TTL segundos"
 
 #: guix/scripts/publish.scm:85
 msgid ""
 "\n"
 "      --nar-path=PATH    use PATH as the prefix for nar URLs"
 msgstr ""
+"\n"
+"      --nar-path=RUTA    usa RUTA como prefijo para las URL de nar"
 
 #: guix/scripts/publish.scm:87
 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"
 
 #: guix/scripts/publish.scm:89
 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"
 
+# FUZZY
 #: guix/scripts/publish.scm:91
 msgid ""
 "\n"
 "  -r, --repl[=PORT]      spawn REPL server on PORT"
 msgstr ""
+"\n"
+"  -r, --repl[=PUERTO]    lanza un servidor REPL en PUERTO"
 
 #: guix/scripts/publish.scm:107
 #, scheme-format
 msgid "lookup of host '~a' failed: ~a~%"
-msgstr ""
+msgstr "falló la búsqueda de la máquina '~a': ~a~%"
 
 #: guix/scripts/publish.scm:152
 #, scheme-format
 msgid "lookup of host '~a' returned nothing"
-msgstr ""
+msgstr "la búsqueda de la máquina '~a' no ha devuelto nada"
 
 #: guix/scripts/publish.scm:165
 #, scheme-format
 msgid "zlib support is missing; compression disabled~%"
-msgstr ""
+msgstr "no es posible usar zlib; compresión desactivada~%"
 
 #: guix/scripts/publish.scm:179
 #, scheme-format
 msgid "~a: invalid duration~%"
-msgstr ""
+msgstr "~a: duración no válida~%"
 
-#: guix/scripts/publish.scm:832
+#: guix/scripts/publish.scm:876
 #, scheme-format
 msgid "user '~a' not found: ~a~%"
-msgstr ""
+msgstr "usuaria '~a' no encontrada: ~a~%"
 
-#: guix/scripts/publish.scm:873
+#: guix/scripts/publish.scm:917
 #, scheme-format
 msgid "server running as root; consider using the '--user' option!~%"
-msgstr ""
+msgstr "servidor en ejecución como root; ¡considere el uso de la opción '--user'!~%"
 
-#: guix/scripts/publish.scm:878
+#: guix/scripts/publish.scm:922
 #, scheme-format
 msgid "publishing ~a on ~a, port ~d~%"
-msgstr ""
+msgstr "publicando ~a en ~a, puerto ~d~%"
 
-#: guix/scripts/edit.scm:41
+#: guix/scripts/edit.scm:40
 msgid ""
 "Usage: guix edit PACKAGE...\n"
 "Start $VISUAL or $EDITOR to edit the definitions of PACKAGE...\n"
 msgstr ""
+"Uso: guix edit PAQUETE...\n"
+"Inicia $VISUAL o $EDITOR para editar las definiciones de PAQUETE...\n"
 
-#: guix/scripts/edit.scm:62
+#: guix/scripts/edit.scm:61
 #, scheme-format
 msgid "file '~a' not found in search path ~s~%"
-msgstr ""
-
-#: guix/scripts/edit.scm:90
-#, scheme-format
-msgid "source location of package '~a' is unknown~%"
-msgstr ""
+msgstr "fichero '~a' no encontrado en la ruta de búsqueda ~s~%"
 
-#: guix/scripts/edit.scm:103
+#: guix/scripts/edit.scm:96
 #, scheme-format
 msgid "failed to launch '~a': ~a~%"
-msgstr ""
+msgstr "no se pudo ejecutar '~a': ~a~%"
 
-#: guix/scripts/size.scm:77
+#: guix/scripts/size.scm:69
 #, scheme-format
 msgid "no available substitute information for '~a'~%"
-msgstr ""
+msgstr "no hay información de sustituciones para '~a' disponible~%"
 
-#: guix/scripts/size.scm:99
+#: guix/scripts/size.scm:91
 msgid "store item"
-msgstr ""
+msgstr "el. almacén"
 
-#: guix/scripts/size.scm:99
+#: guix/scripts/size.scm:91
 msgid "total"
-msgstr ""
+msgstr "total"
 
-#: guix/scripts/size.scm:99
+#: guix/scripts/size.scm:91
 msgid "self"
-msgstr ""
+msgstr "self"
 
-#: guix/scripts/size.scm:107
+#: guix/scripts/size.scm:99
 #, scheme-format
 msgid "total: ~,1f MiB~%"
-msgstr ""
+msgstr "total: ~,1f MiB~%"
 
 #. 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:221
+#: guix/scripts/size.scm:222
 msgid "store profile"
-msgstr ""
+msgstr "perfil del almacén"
 
-#: guix/scripts/size.scm:230
+#: guix/scripts/size.scm:231
 msgid ""
 "Usage: guix size [OPTION]... PACKAGE\n"
 "Report the size of PACKAGE and its dependencies.\n"
 msgstr ""
+"Uso: guix size [OPCIÓN]... PAQUETE\n"
+"Informa del tamaño de PAQUETE y sus dependencias.\n"
 
-#: guix/scripts/size.scm:235
+#: guix/scripts/size.scm:236
 msgid ""
 "\n"
 "  -s, --system=SYSTEM    consider packages for SYSTEM--e.g., \"i686-linux\""
 msgstr ""
+"\n"
+"  -s, --system=SISTEMA   considera paquetes para SISTEMA---por ejemplo, \"i686-linux\""
 
 #. TRANSLATORS: "closure" and "self" must not be translated.
-#: guix/scripts/size.scm:238
+#: guix/scripts/size.scm:239
 msgid ""
 "\n"
 "      --sort=KEY         sort according to KEY--\"closure\" or \"self\""
 msgstr ""
+"\n"
+"      --sort=CLAVE       ordena de acuerdo a CLAVE--\"closure\" o \"self\""
 
-#: guix/scripts/size.scm:240
+#: guix/scripts/size.scm:241
 msgid ""
 "\n"
 "  -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"
 
-#: guix/scripts/size.scm:271
+#: guix/scripts/size.scm:272
 #, scheme-format
 msgid "~a: invalid sorting key~%"
-msgstr ""
+msgstr "~a: clave de ordenación no válida~%"
 
-#: guix/scripts/size.scm:306
+#: guix/scripts/size.scm:307
 msgid "missing store item argument\n"
-msgstr ""
+msgstr "falta algún parámetro de elemento del almacén\n"
 
-#: guix/scripts/graph.scm:84
+#: guix/scripts/graph.scm:88
 #, scheme-format
 msgid "~a: invalid argument (package name expected)"
-msgstr ""
+msgstr "~a: parámetro no válido (se esperaba un nombre de paquete)"
 
-#: guix/scripts/graph.scm:95
+#: guix/scripts/graph.scm:99
 msgid "the DAG of packages, excluding implicit inputs"
-msgstr ""
+msgstr "el GAD de paquetes, excluyendo entradas implícitas"
 
-#: guix/scripts/graph.scm:121
+# FUZZY
+#: guix/scripts/graph.scm:135
 msgid "the reverse DAG of packages"
-msgstr ""
+msgstr "el GAD invertido de paquetes"
 
-#: guix/scripts/graph.scm:171
+#: guix/scripts/graph.scm:185
 msgid "the DAG of packages, including implicit inputs"
-msgstr ""
+msgstr "el GAD de paquetes, incluyendo entradas implícitas"
 
-#: guix/scripts/graph.scm:181
+#: guix/scripts/graph.scm:195
 msgid "the DAG of packages and origins, including implicit inputs"
-msgstr ""
+msgstr "el GAD de paquetes y orígenes, incluyendo entradas implícitas"
 
-#: guix/scripts/graph.scm:211
+#: guix/scripts/graph.scm:225
 msgid "same as 'bag', but without the bootstrap nodes"
-msgstr ""
+msgstr "igual que 'bag', pero sin los nodos del lanzamiento inicial"
 
-#: guix/scripts/graph.scm:253
+#: guix/scripts/graph.scm:242
+msgid "the reverse DAG of packages, including implicit inputs"
+msgstr "el GAD inverso de paquetes, incluyendo entradas implícitas"
+
+#: guix/scripts/graph.scm:282
 msgid "the DAG of derivations"
-msgstr ""
+msgstr "el GAD de derivaciones"
 
-#: guix/scripts/graph.scm:265
+#: guix/scripts/graph.scm:294
 msgid "unsupported argument for derivation graph"
-msgstr ""
+msgstr "parámetro no implementado para el grafo de derivaciones"
 
-#: guix/scripts/graph.scm:291
+#: guix/scripts/graph.scm:320
 msgid "unsupported argument for this type of graph"
-msgstr ""
+msgstr "parámetro no implementado para este tipo de grafo"
 
-#: guix/scripts/graph.scm:304
+# FUZZY
+#: guix/scripts/graph.scm:333
 #, scheme-format
 msgid "references for '~a' are not known~%"
-msgstr ""
+msgstr "las referencias de '~a' no son conocidas~%"
 
-#: guix/scripts/graph.scm:311
+#: guix/scripts/graph.scm:340
 msgid "the DAG of run-time dependencies (store references)"
-msgstr ""
+msgstr "el GAD de dependencias en tiempo de ejecución (referencias al almacén)"
 
-#: guix/scripts/graph.scm:327
+# FUZZY
+# MAAV: ¿Referentes?
+#: guix/scripts/graph.scm:356
 msgid "the DAG of referrers in the store"
-msgstr ""
+msgstr "el GAD de referentes en el almacén"
+
+#: guix/scripts/graph.scm:386
+msgid "the graph of package modules"
+msgstr "el grafo de módulos de paquetes"
 
-#: guix/scripts/graph.scm:354
+#: guix/scripts/graph.scm:415
 #, scheme-format
 msgid "~a: unknown node type~%"
-msgstr ""
+msgstr "~a: tipo de nodo desconocido~%"
 
-#: guix/scripts/graph.scm:361
+#: guix/scripts/graph.scm:422
 #, scheme-format
 msgid "~a: unknown backend~%"
-msgstr ""
+msgstr "~a: motor desconocido~%"
 
-#: guix/scripts/graph.scm:365
+#: guix/scripts/graph.scm:426
 msgid "The available node types are:\n"
-msgstr ""
+msgstr "Los tipos de nodo disponibles son:\n"
 
-#: guix/scripts/graph.scm:375
+#: guix/scripts/graph.scm:436
 msgid "The available backend types are:\n"
-msgstr ""
+msgstr "Los tipos de motor disponibles son:\n"
 
 #. TRANSLATORS: Here 'dot' is the name of a program; it must not be
 #. translated.
-#: guix/scripts/graph.scm:419
+#: guix/scripts/graph.scm:484
 msgid ""
 "Usage: guix graph PACKAGE...\n"
 "Emit a representation of the dependency graph of PACKAGE...\n"
 msgstr ""
+"Uso: guix graph PAQUETE...\n"
+"Emite una representación del grafo de dependencias de PAQUETE...\n"
 
-#: guix/scripts/graph.scm:421
+#: guix/scripts/graph.scm:486
 msgid ""
 "\n"
 "  -b, --backend=TYPE     produce a graph with the given backend TYPE"
 msgstr ""
+"\n"
+"  -b, --backend=TIPO     produce un grafo con el motor TIPO proporcionado"
 
-#: guix/scripts/graph.scm:423
+#: guix/scripts/graph.scm:488
 msgid ""
 "\n"
 "      --list-backends    list the available graph backends"
 msgstr ""
+"\n"
+"      --list-backends    enumera los motores de grafo disponibles"
 
-#: guix/scripts/graph.scm:425
+#: guix/scripts/graph.scm:490
 msgid ""
 "\n"
 "  -t, --type=TYPE        represent nodes of the given TYPE"
 msgstr ""
+"\n"
+"  -t, --type=TIPO        representa nodos del TIPO proporcionado"
 
-#: guix/scripts/graph.scm:427
+#: guix/scripts/graph.scm:492
 msgid ""
 "\n"
 "      --list-types       list the available graph types"
 msgstr ""
+"\n"
+"      --list-types       enumera los tipos de grafo disponibles"
 
-#: guix/scripts/graph.scm:429 guix/scripts/pack.scm:336
+#: guix/scripts/graph.scm:494 guix/scripts/pack.scm:752
 msgid ""
 "\n"
 "  -e, --expression=EXPR  consider the package EXPR evaluates to"
 msgstr ""
+"\n"
+"  -e, --expression=EXPR  considera el paquete al que EXPR evalúa"
+
+#: guix/scripts/graph.scm:496
+msgid ""
+"\n"
+"  -s, --system=SYSTEM    consider the graph for SYSTEM--e.g., \"i686-linux\""
+msgstr ""
+"\n"
+"  -s, --system=SISTEMA   considera el grafo para SISTEMA--por ejemplo, \"i686-linux\""
 
 #: guix/scripts/challenge.scm:191
 #, scheme-format
 msgid "  local hash: ~a~%"
-msgstr ""
+msgstr "  hash local: ~a~%"
 
 #: guix/scripts/challenge.scm:192
 #, scheme-format
 msgid "  no local build for '~a'~%"
-msgstr ""
+msgstr "  no existe una construcción local de '~a'~%"
 
 #: guix/scripts/challenge.scm:194
 #, scheme-format
 msgid "  ~50a: ~a~%"
-msgstr ""
+msgstr "  ~50a: ~a~%"
 
 #: guix/scripts/challenge.scm:202
 #, scheme-format
 msgid "~a contents differ:~%"
-msgstr ""
+msgstr "el contenido de ~a es diferente:~%"
 
 #: guix/scripts/challenge.scm:205
 #, scheme-format
 msgid "could not challenge '~a': no local build~%"
-msgstr ""
+msgstr "no se pudo poner a prueba '~a': no existe una construcción local~%"
 
 #: guix/scripts/challenge.scm:207
 #, scheme-format
 msgid "could not challenge '~a': no substitutes~%"
-msgstr ""
+msgstr "no se pudo poner a prueba '~a': no existen sustituciones~%"
 
 #: guix/scripts/challenge.scm:210
 #, scheme-format
 msgid "~a contents match:~%"
-msgstr ""
+msgstr "el contenido de ~a corresponde:~%"
 
 #: guix/scripts/challenge.scm:219
 msgid "~h store items were analyzed:~%"
-msgstr ""
+msgstr "~h elementos del almacén fueron analizados:~%"
 
 #: guix/scripts/challenge.scm:220
 msgid "  - ~h (~,1f%) were identical~%"
-msgstr ""
+msgstr "  - ~h (~,1f%) fueron idénticos~%"
 
 #: guix/scripts/challenge.scm:222
 msgid "  - ~h (~,1f%) differed~%"
-msgstr ""
+msgstr "  - ~h (~,1f%) fueron diferentes~%"
 
 #: guix/scripts/challenge.scm:224
 msgid "  - ~h (~,1f%) were inconclusive~%"
-msgstr ""
+msgstr "  - ~h (~,1f%) no arrojaron resultados concluyentes~%"
 
 #: guix/scripts/challenge.scm:233
 msgid ""
 "Usage: guix challenge [PACKAGE...]\n"
 "Challenge the substitutes for PACKAGE... provided by one or more servers.\n"
 msgstr ""
+"Uso: guix challenge [PAQUETE...]\n"
+"Pone a prueba las sustituciones para PAQUETE... proporcionadas por uno o\n"
+"más servidores.\n"
 
 #: guix/scripts/challenge.scm:235
 msgid ""
@@ -2195,800 +3684,1492 @@ msgid ""
 "      --substitute-urls=URLS\n"
 "                         compare build results with those at URLS"
 msgstr ""
+"\n"
+"      --substitute-urls=URLS\n"
+"                         compara los resultados de construcción en dichas URLS"
 
 #: guix/scripts/challenge.scm:238
 msgid ""
 "\n"
 "      -v, --verbose      show details about successful comparisons"
 msgstr ""
+"\n"
+"      -v, --verbose      muestra detalles de comparaciones satisfactorias"
 
-#: guix/scripts/copy.scm:59
+#: guix/scripts/copy.scm:60
 #, scheme-format
 msgid "~a: invalid TCP port number~%"
-msgstr ""
+msgstr "~a: número no válido de puerto TCP~%"
 
-#: guix/scripts/copy.scm:61
+#: guix/scripts/copy.scm:62
 #, scheme-format
 msgid "~a: invalid SSH specification~%"
-msgstr ""
+msgstr "~a: especificación SSH no válida~%"
 
-#: guix/scripts/copy.scm:113
+#: guix/scripts/copy.scm:114
 msgid ""
 "Usage: guix copy [OPTION]... ITEMS...\n"
 "Copy ITEMS to or from the specified host over SSH.\n"
 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:115
+#: guix/scripts/copy.scm:116
 msgid ""
 "\n"
 "      --to=HOST          send ITEMS to HOST"
 msgstr ""
+"\n"
+"      --to=DIRECCIÓN     envía ELEMENTOS a DIRECCIÓN"
 
-#: guix/scripts/copy.scm:117
+#: guix/scripts/copy.scm:118
 msgid ""
 "\n"
 "      --from=HOST        receive ITEMS from HOST"
 msgstr ""
+"\n"
+"      --from=DIRECCIÓN   recive ELEMENTOS desde DIRECCIÓN"
 
-#: guix/scripts/copy.scm:168
+#: guix/scripts/copy.scm:182
 #, scheme-format
 msgid "use '--to' or '--from'~%"
-msgstr ""
+msgstr "use '--to' o '--from'~%"
 
-#: guix/scripts/pack.scm:76
+#: guix/scripts/pack.scm:95
 #, scheme-format
 msgid "~a: compressor not found~%"
+msgstr "~a: compresor no encontrado~%"
+
+# FUZZY
+#: guix/scripts/pack.scm:513
+#, scheme-format
+msgid ""
+"cross-compilation not implemented here;\n"
+"please email '~a'~%"
+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:644
+msgid "The supported formats for 'guix pack' are:"
+msgstr "Los formatos implementados por 'guix pack' son:"
+
+#: guix/scripts/pack.scm:646
+msgid ""
+"\n"
+"  tarball       Self-contained tarball, ready to run on another machine"
+msgstr ""
+"\n"
+"  tarball       Archivador tar autocontenido, preparado para ejecutarse\n"
+"                en otra máquina"
+
+#: guix/scripts/pack.scm:648
+msgid ""
+"\n"
+"  squashfs      Squashfs image suitable for Singularity"
+msgstr ""
+"\n"
+"  squashfs      Imagen squashfs adecuada para Singularity"
+
+#: guix/scripts/pack.scm:650
+msgid ""
+"\n"
+"  docker        Tarball ready for 'docker load'"
 msgstr ""
+"\n"
+"  docker        Archivador tar preparado para 'docker load'"
 
-#: guix/scripts/pack.scm:318
+#: guix/scripts/pack.scm:712
 #, scheme-format
 msgid "~a: invalid symlink specification~%"
-msgstr ""
+msgstr "~a: especificación de enlace simbólico no válida~%"
 
-#: guix/scripts/pack.scm:328
+#: guix/scripts/pack.scm:726
+#, scheme-format
+msgid "~a: unsupported profile name~%"
+msgstr "~a: nombre de perfil no implementado~%"
+
+# FUZZY
+# MAAV (TODO): Paquete
+#: guix/scripts/pack.scm:740
 msgid ""
 "Usage: guix pack [OPTION]... PACKAGE...\n"
 "Create a bundle of PACKAGE.\n"
 msgstr ""
+"Uso: guix pack [OPCIÓN]... PAQUETE...\n"
+"Crea un empaquetado con PAQUETE.\n"
 
-#: guix/scripts/pack.scm:334
+#: guix/scripts/pack.scm:746
 msgid ""
 "\n"
 "  -f, --format=FORMAT    build a pack in the given FORMAT"
 msgstr ""
+"\n"
+"  -f, --format=FORMATO   construye un empaquetado en el FORMATO especificado"
 
-#: guix/scripts/pack.scm:342
+#: guix/scripts/pack.scm:748
+msgid ""
+"\n"
+"      --list-formats     list the formats available"
+msgstr ""
+"\n"
+"      --list-formats     enumera los formatos disponibles"
+
+# FUZZY
+# MAAV: ¿Portables?
+#: guix/scripts/pack.scm:750
+msgid ""
+"\n"
+"  -R, --relocatable      produce relocatable executables"
+msgstr ""
+"\n"
+"  -R, --relocatable      produce ejecutables reposicionables"
+
+#: guix/scripts/pack.scm:758
 msgid ""
 "\n"
 "  -C, --compression=TOOL compress using TOOL--e.g., \"lzip\""
 msgstr ""
+"\n"
+"  -C, --compression=HERRAMIENTA\n"
+"                         comprime con HERRAMIENTA--por ejemplo, \"lzip\""
 
-#: guix/scripts/pack.scm:344
+#: guix/scripts/pack.scm:760
 msgid ""
 "\n"
 "  -S, --symlink=SPEC     create symlinks to the profile according to SPEC"
 msgstr ""
+"\n"
+"  -S, --symlink=SPEC     crea enlaces simbólicos al perfil de acuerdo con SPEC"
+
+#: guix/scripts/pack.scm:762
+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"
 
-#: guix/scripts/pack.scm:346
+#: guix/scripts/pack.scm:764
+msgid ""
+"\n"
+"      --save-provenance  save provenance information"
+msgstr ""
+"\n"
+"      --save-provenance  almacena información de la proveniencia"
+
+#: guix/scripts/pack.scm:766
 msgid ""
 "\n"
 "      --localstatedir    include /var/guix in the resulting pack"
 msgstr ""
+"\n"
+"      --localstatedir    incluye /var/guix en el empaquetado resultante"
 
-#: guix/scripts/pack.scm:390
-#, scheme-format
-msgid "~a: unknown pack format"
+#: guix/scripts/pack.scm:768
+msgid ""
+"\n"
+"      --profile-name=NAME\n"
+"                         populate /var/guix/profiles/.../NAME"
 msgstr ""
+"\n"
+"      --profile-name=NOMBRE\n"
+"                         genera /var/guix/profiles/.../NOMBRE"
 
-#: guix/scripts/weather.scm:74
-msgid "computing ~h package derivations for ~a...~%"
+#: guix/scripts/pack.scm:773
+msgid ""
+"\n"
+"      --bootstrap        use the bootstrap binaries to build the pack"
 msgstr ""
+"\n"
+"      --bootstrap        usa los binarios del lanzamiento inicial para\n"
+"                         construir el empaquetado"
 
-#: guix/scripts/weather.scm:110
+#: guix/scripts/pack.scm:818
+#, scheme-format
+msgid "could not determine provenance of package ~a~%"
+msgstr "no se pudo determinar la proveniencia del paquete ~a~%"
+
+#: guix/scripts/pack.scm:827
+#, 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:882
+#, scheme-format
+msgid "~a: unknown pack format~%"
+msgstr "~a: formato de empaquetado desconocido~%"
+
+#: guix/scripts/weather.scm:80
+msgid "computing ~h package derivations for ~a...~%"
+msgstr "calculando ~h derivaciones de paquete para ~a...~%"
+
+#: guix/scripts/weather.scm:169
 msgid "looking for ~h store items on ~a...~%"
-msgstr ""
+msgstr "buscando ~h elementos del almacén en ~a...~%"
 
-#: guix/scripts/weather.scm:120
+#: guix/scripts/weather.scm:181
 msgid "  ~2,1f% substitutes available (~h out of ~h)~%"
-msgstr ""
+msgstr "  ~2,1f% sustituciones disponibles (~h de ~h)~%"
 
-#: guix/scripts/weather.scm:126
+#: guix/scripts/weather.scm:187
 #, scheme-format
 msgid "  unknown substitute sizes~%"
-msgstr ""
+msgstr "  tamaños de sustituciones desconocidos~%"
 
-#: guix/scripts/weather.scm:129
+# FUZZY
+#: guix/scripts/weather.scm:190
 msgid "  ~,1h MiB of nars (compressed)~%"
-msgstr ""
+msgstr "  ~,1h MiB de nars (comprimidos)~%"
 
-#: guix/scripts/weather.scm:130
+#: guix/scripts/weather.scm:191
 msgid "  at least ~,1h MiB of nars (compressed)~%"
-msgstr ""
+msgstr "  al menos ~,1h MiB de nars (comprimidos)~%"
 
-#: guix/scripts/weather.scm:132
+#: guix/scripts/weather.scm:193
 msgid "  ~,1h MiB on disk (uncompressed)~%"
-msgstr ""
+msgstr "  ~,1h MiB en disco (sin comprimir)~%"
 
-#: guix/scripts/weather.scm:134
+#: guix/scripts/weather.scm:195
 msgid "  ~,3h seconds per request (~,1h seconds in total)~%"
-msgstr ""
+msgstr "  ~,3h segundos por petición (~,1h segundos en total)~%"
 
-#: guix/scripts/weather.scm:136
+#: guix/scripts/weather.scm:197
 msgid "  ~,1h requests per second~%"
-msgstr ""
+msgstr "  ~,1h peticiones por segundo~%"
+
+#: guix/scripts/weather.scm:203
+#, scheme-format
+msgid "  (continuous integration information unavailable)~%"
+msgstr "  (información de integración continua no disponible)~%"
+
+#: guix/scripts/weather.scm:206
+#, scheme-format
+msgid "  '~a' returned ~a (~s)~%"
+msgstr "  '~a' devolvió ~a (~s)~%"
+
+#: guix/scripts/weather.scm:223
+msgid "  ~,1f% (~h out of ~h) of the missing items are queued~%"
+msgstr "  ~,1f% (~h de ~h) de los elementos no encontrados están encolados~%"
+
+#: guix/scripts/weather.scm:229
+msgid "  at least ~h queued builds~%"
+msgstr "  al menos ~h construcciones encoladas~%"
 
-#: guix/scripts/weather.scm:145
+#: guix/scripts/weather.scm:230
+msgid "  ~h queued builds~%"
+msgstr "  ~h construcciones encoladas~%"
+
+#: guix/scripts/weather.scm:233
+#, scheme-format
+msgid "      ~a: ~a (~0,1f%)~%"
+msgstr "      ~a: ~a (~0,1f%)~%"
+
+#: guix/scripts/weather.scm:239
+#, scheme-format
+msgid "  build rate: ~1,2f builds per hour~%"
+msgstr "  ratio de construcción: ~1,2f construcciones por hora~%"
+
+#: guix/scripts/weather.scm:243
+#, scheme-format
+msgid "      ~a: ~,2f builds per hour~%"
+msgstr "      ~a: ~,2f construcciones por hora~%"
+
+#: guix/scripts/weather.scm:255
 msgid ""
 "Usage: guix weather [OPTIONS]\n"
 "Report the availability of substitutes.\n"
 msgstr ""
+"Uso: guix weather [OPCIONES]\n"
+"Informa sobre la disponibilidad de sustituciones.\n"
 
-#: guix/scripts/weather.scm:147
+#: guix/scripts/weather.scm:257
 msgid ""
 "\n"
 "      --substitute-urls=URLS\n"
 "                         check for available substitutes at URLS"
 msgstr ""
+"\n"
+"      --substitute-urls=URLS\n"
+"                         comprueba sustituciones disponibles en URLS"
 
-#: guix/scripts/weather.scm:150
+#: guix/scripts/weather.scm:260
 msgid ""
 "\n"
 "  -m, --manifest=MANIFEST\n"
 "                         look up substitutes for packages specified in MANIFEST"
 msgstr ""
+"\n"
+"  -m, --manifest=MANIFIESTO\n"
+"                         busca sustituciones para paquetes especificados\n"
+"                         en MANIFIESTO"
+
+#: guix/scripts/weather.scm:263
+msgid ""
+"\n"
+"  -c, --coverage[=COUNT]\n"
+"                         show substitute coverage for packages with at least\n"
+"                         COUNT dependents"
+msgstr ""
+"\n"
+"  -c, --coverage[=CUENTA]\n"
+"                         muestra la cobertura de sustituciones para paquetes\n"
+"                         con al menos CUENTA de paquetes dependientes"
 
-#: guix/scripts/weather.scm:153
+#: guix/scripts/weather.scm:267
 msgid ""
 "\n"
 "  -s, --system=SYSTEM    consider substitutes for SYSTEM--e.g., \"i686-linux\""
 msgstr ""
+"\n"
+"  -s, --system=SISTEMA   considera sustituciones para SISTEMA--por\n"
+"                         ejemplo, \"i686-linux\""
 
-#: guix/scripts/weather.scm:177
+#: guix/scripts/weather.scm:291
 #, scheme-format
 msgid "~a: invalid URL~%"
+msgstr "~a: URL no válida~%"
+
+# TODO: Mirar en gettext, el siguiente 1 paquete suena mal en inglés y
+# 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:420
+#, 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:426
+#, 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':~%"
+
+#: guix/scripts/describe.scm:45
+#, scheme-format
+msgid "~a: unsupported output format~%"
+msgstr "~a: formato de salida no implementado~%"
+
+#: guix/scripts/describe.scm:64
+msgid ""
+"Usage: guix describe [OPTION]...\n"
+"Display information about the channels currently in use.\n"
 msgstr ""
+"Uso: guix describe [OPCIÓN]...\n"
+"Muestra información sobre los canales en uso actualmente.\n"
 
-#: guix/gnu-maintenance.scm:567
-msgid "Updater for GNU packages"
+#: guix/scripts/describe.scm:66
+msgid ""
+"\n"
+"  -f, --format=FORMAT    display information in the given FORMAT"
 msgstr ""
+"\n"
+"  -f, --format=FORMATO   muestra información en el FORMATO proporcionado"
 
-#: guix/gnu-maintenance.scm:576
-msgid "Updater for GNU packages only available via FTP"
+#: guix/scripts/describe.scm:68
+msgid ""
+"\n"
+"  -p, --profile=PROFILE  display information about PROFILE"
 msgstr ""
+"\n"
+"  -p, --profile=PERFIL   muestra información sobre PERFIL"
 
-#: guix/gnu-maintenance.scm:585
-msgid "Updater for KDE packages"
+#: guix/scripts/describe.scm:87
+#, scheme-format
+msgid "~%;; warning: GUIX_PACKAGE_PATH=\"~a\"~%"
+msgstr "~%;; aviso: GUIX_PACKAGE_PATH=\"~a\"~%"
+
+#: guix/scripts/describe.scm:90
+#, 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:117
+#, scheme-format
+msgid "failed to determine origin~%"
+msgstr "no se pudo determinar el origen~%"
+
+#: guix/scripts/describe.scm:123
+#, scheme-format
+msgid "Git checkout:~%"
+msgstr "Copia de trabajo Git:~%"
+
+#: guix/scripts/describe.scm:124
+#, scheme-format
+msgid "  repository: ~a~%"
+msgstr "  repositorio: ~a~%"
+
+#: guix/scripts/describe.scm:125
+#, scheme-format
+msgid "  branch: ~a~%"
+msgstr "  rama: ~a~%"
+
+#: guix/scripts/describe.scm:126
+#, scheme-format
+msgid "  commit: ~a~%"
+msgstr "  revisión: ~a~%"
+
+# FUZZY
+#: guix/scripts/processes.scm:197
+msgid ""
+"Usage: guix processes\n"
+"List the current Guix sessions and their processes."
 msgstr ""
+"Uso: guix processes\n"
+"Enumera las sesiones Guix actuales y sus procesos."
+
+#: guix/gnu-maintenance.scm:660
+msgid "Updater for GNU packages"
+msgstr "Actualizador para paquetes GNU"
+
+#: guix/gnu-maintenance.scm:669
+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:592
+#: guix/gnu-maintenance.scm:678
+msgid "Updater for KDE packages"
+msgstr "Actualizador para paquetes KDE"
+
+#: guix/gnu-maintenance.scm:685
 msgid "Updater for X.org packages"
-msgstr ""
+msgstr "Actualizador para paquetes X.org"
 
-#: guix/gnu-maintenance.scm:599
+#: guix/gnu-maintenance.scm:692
 msgid "Updater for packages hosted on kernel.org"
-msgstr ""
+msgstr "Actualizador para paquetes alojados en kernel.org"
 
-#: guix/scripts/container.scm:25
+#: guix/scripts/container.scm:26
 msgid ""
 "Usage: guix container ACTION ARGS...\n"
 "Build and manipulate Linux containers.\n"
 msgstr ""
+"Uso: guix container ACCIÓN PARÁMETROS...\n"
+"Construye y manipula contenedores Linux.\n"
 
-#: guix/scripts/container.scm:30
+#: guix/scripts/container.scm:31
 msgid "   exec            execute a command inside of an existing container\n"
-msgstr ""
+msgstr "   exec            ejecuta una orden dentro de un contenedor existente\n"
 
-#: guix/scripts/container.scm:53
+#: guix/scripts/container.scm:54
 #, scheme-format
 msgid "guix container: missing action~%"
-msgstr ""
+msgstr "guix container: acción no encontrada~%"
 
-#: guix/scripts/container.scm:63
+#: guix/scripts/container.scm:64
 #, scheme-format
 msgid "guix container: invalid action~%"
-msgstr ""
+msgstr "guix container: acción no válida~%"
 
 #: guix/scripts/container/exec.scm:40
 msgid ""
 "Usage: guix container exec PID COMMAND [ARGS...]\n"
 "Execute COMMMAND within the container process PID.\n"
 msgstr ""
+"Uso: guix container exec PID ORDEN [PARÁMETROS...]\n"
+"Ejecuta ORDEN dentro del proceso del contenedor PID.\n"
 
 #: guix/scripts/container/exec.scm:69
 #, scheme-format
 msgid "~a: extraneous argument~%"
-msgstr ""
+msgstr "~a: parámetro no esperado~%"
 
 #: guix/scripts/container/exec.scm:87
 #, scheme-format
 msgid "no pid specified~%"
-msgstr ""
+msgstr "ningún PID especificado~%"
 
 #: guix/scripts/container/exec.scm:90
 #, scheme-format
 msgid "no command specified~%"
-msgstr ""
+msgstr "ninguna orden especificada~%"
 
 #: guix/scripts/container/exec.scm:93
 #, scheme-format
 msgid "no such process ~d~%"
-msgstr ""
+msgstr "no existe el proceso ~d~%"
 
 #: guix/scripts/container/exec.scm:105
 #, scheme-format
 msgid "exec failed with status ~d~%"
-msgstr ""
+msgstr "exec ha fallado con estado ~d~%"
 
-#: guix/upstream.scm:249
+#: guix/upstream.scm:327
 #, scheme-format
 msgid "signature verification failed for `~a'~%"
-msgstr ""
+msgstr "la verificación de la firma ha fallado para «~a»~%"
 
-#: guix/upstream.scm:251
+#: guix/upstream.scm:329
 #, scheme-format
 msgid "(could be because the public key is not in your keyring)~%"
-msgstr ""
+msgstr "(puede ser debido a que la clave pública no se encuentre en su anillo de claves)~%"
+
+#: guix/upstream.scm:397
+#, scheme-format
+msgid "cannot download for this method: ~s"
+msgstr "no se puede descargar con este método: ~s"
 
-#: guix/upstream.scm:330
+#: guix/upstream.scm:460
 #, scheme-format
 msgid "~a: could not locate source file"
-msgstr ""
+msgstr "~a: no se pudo encontrar el fichero de fuente"
 
-#: guix/upstream.scm:335
+#: guix/upstream.scm:465
 #, scheme-format
 msgid "~a: ~a: no `version' field in source; skipping~%"
-msgstr ""
+msgstr "~a: ~a: no hay campo «version» en las fuentes; omitiendo~%"
+
+#. TRANSLATORS: The goal is to emit "warning:" followed by a short phrase;
+#. "~a" is a placeholder for that phrase.
+#: guix/ui.scm:203
+msgid "warning: "
+msgstr "aviso: "
+
+# FUZZY
+#: guix/ui.scm:205
+msgid "error: "
+msgstr "error: "
 
-#: guix/ui.scm:159
+#: guix/ui.scm:252
 #, scheme-format
-msgid "~a: unbound variable"
-msgstr ""
+msgid "error: ~a: unbound variable"
+msgstr "error: ~a: variable sin asignar"
 
-#: guix/ui.scm:235
+#: guix/ui.scm:348
 msgid "entering debugger; type ',bt' for a backtrace\n"
-msgstr ""
+msgstr "entrando en el depurador; teclee ',bt' para ver la pila de llamadas\n"
 
-#: guix/ui.scm:284
-#, scheme-format
-msgid "hint: ~a~%"
-msgstr ""
+# FUZZY
+#: guix/ui.scm:403
+msgid "hint: "
+msgstr "indicación: "
 
-#: guix/ui.scm:294 guix/ui.scm:342 guix/ui.scm:349
-#, scheme-format
-msgid "failed to load '~a': ~a~%"
-msgstr ""
+#: guix/ui.scm:420
+msgid "Did you forget a @code{use-modules} form?"
+msgstr "¿Se ha olvidado de usar una forma @code{use-modules}?"
 
-#: guix/ui.scm:301
+#: guix/ui.scm:422
 #, scheme-format
-msgid "~amissing closing parenthesis~%"
-msgstr ""
+msgid "Did you forget @code{(use-modules ~a)}?"
+msgstr "¿Se ha olvidado de @code{(use-modules ~a)}?"
 
-#: guix/ui.scm:306 guix/ui.scm:322 guix/ui.scm:596
+#: guix/ui.scm:431 guix/ui.scm:472 guix/ui.scm:478
 #, scheme-format
-msgid "~a: error: ~a~%"
-msgstr ""
-
-#: guix/ui.scm:314
-msgid "Did you forget a @code{use-modules} form?"
-msgstr ""
+msgid "failed to load '~a': ~a~%"
+msgstr "no se pudo cargar '~a': ~a~%"
 
-#: guix/ui.scm:316
+#: guix/ui.scm:438
 #, scheme-format
-msgid "Try adding @code{(use-modules ~a)}."
-msgstr ""
+msgid "~amissing closing parenthesis~%"
+msgstr "~afalta el paréntesis de cierre~%"
 
-#: guix/ui.scm:329 guix/ui.scm:657
+#: guix/ui.scm:452 guix/ui.scm:875
 #, scheme-format
 msgid "exception thrown: ~s~%"
-msgstr ""
+msgstr "excepción lanzada: ~s~%"
 
-#: guix/ui.scm:333 guix/ui.scm:355
+#: guix/ui.scm:456 guix/ui.scm:484
 #, scheme-format
 msgid "failed to load '~a':~%"
-msgstr ""
+msgstr "no se pudo cargar '~a':~%"
 
-#: guix/ui.scm:345
-#, scheme-format
-msgid "~a: warning: ~a~%"
-msgstr ""
-
-#: guix/ui.scm:352
+#: guix/ui.scm:481
 #, scheme-format
 msgid "failed to load '~a': exception thrown: ~s~%"
-msgstr ""
+msgstr "no se pudo cargar '~a': excepción lanzada: ~s~%"
 
-#: guix/ui.scm:364
-#, scheme-format
-msgid "failed to install locale: ~a~%"
+# FUZZY
+#: guix/ui.scm:514
+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"
 msgstr ""
+"Considere la instalación del paquete @code{glibc-utf8-locales} o\n"
+"@code{glibc-locales} y la definición de @code{GUIX_LOCPATH}, más\n"
+"o menos de esta manera:\n"
+"\n"
+"@example\n"
+"guix package -i glibc-utf8-locales\n"
+"export GUIX_LOCPATH=\"$HOME/.guix-profile/lib/locale\"\n"
+"@end example\n"
+"\n"
+"Véase la sección \"Application Setup\"/«Configuración de la aplicación»\n"
+"en el manual, para más información.\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:394
+#: guix/ui.scm:552
 msgid "(C)"
-msgstr ""
+msgstr "©"
 
-#: guix/ui.scm:395
+#: guix/ui.scm:553
 msgid "the Guix authors\n"
-msgstr ""
+msgstr "las autoras de Guix\n"
 
-#: guix/ui.scm:396
+# MAAV: Esta traducción debería ser uniforme/legal
+#: guix/ui.scm:554
 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 ""
+"Licencia GPLv3+: GPL de GNU versión 3 o posterior <http://gnu.org/licenses/gpl.html>\n"
+"Esto es software libre: usted es libre para cambiarlo y redistribuirlo.\n"
+"No se proporciona NINGUNA GARANTÍA, en la medida en que la ley lo permita.\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:408
+#: guix/ui.scm:566
 #, scheme-format
 msgid ""
 "\n"
 "Report bugs to: ~a."
 msgstr ""
+"\n"
+"Informe de errores a: ~a.\n"
+"Informe de errores de traducción a: es@tp.org.es."
 
-#: guix/ui.scm:410
+#: guix/ui.scm:568
 #, scheme-format
 msgid ""
 "\n"
 "~a home page: <~a>"
 msgstr ""
+"\n"
+"Página Web de ~a: <~a>"
 
-#: guix/ui.scm:412
+#: guix/ui.scm:570
 msgid ""
 "\n"
 "General help using GNU software: <http://www.gnu.org/gethelp/>"
 msgstr ""
+"\n"
+"Ayuda general para el uso de software GNU: <http://www.gnu.org/gethelp/>"
 
-#: guix/ui.scm:457
+#: guix/ui.scm:625
 #, scheme-format
 msgid "'~a' is not a valid regular expression: ~a~%"
-msgstr ""
+msgstr "'~a' no es una expresión regular válida: ~a~%"
 
-#: guix/ui.scm:463
+#: guix/ui.scm:631
 #, scheme-format
 msgid "~a: invalid number~%"
-msgstr ""
+msgstr "~a: número no válido~%"
 
-#: guix/ui.scm:480
+#: guix/ui.scm:648
 #, scheme-format
 msgid "invalid number: ~a~%"
-msgstr ""
+msgstr "número no válido: ~a~%"
 
-#: guix/ui.scm:503
+#: guix/ui.scm:671
 #, scheme-format
 msgid "unknown unit: ~a~%"
+msgstr "unidad desconocida: ~a~%"
+
+#: guix/ui.scm:686
+#, scheme-format
+msgid ""
+"You cannot have two different versions\n"
+"or variants of @code{~a} in the same profile."
 msgstr ""
+"No puede tener dos versiones diferentes\n"
+"o variantes de @code{~a} en el mismo perfil."
 
-#: guix/ui.scm:520
+#: guix/ui.scm:689
 #, scheme-format
-msgid "~a:~a:~a: package `~a' has an invalid input: ~s~%"
+msgid ""
+"Try upgrading both @code{~a} and @code{~a},\n"
+"or remove one of them from the profile."
 msgstr ""
+"Intente actualizar @code{~a} y @code{~a},\n"
+"o borre uno de ellos del perfil."
 
-#: guix/ui.scm:527
+#: 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:715
 #, scheme-format
 msgid "~a: ~a: build system `~a' does not support cross builds~%"
-msgstr ""
+msgstr "~a: ~a: el sistema de construcción «~a» no permite la compilación cruzada~%"
 
-#: guix/ui.scm:533
+#: guix/ui.scm:721
 #, scheme-format
 msgid "~s: invalid G-expression input~%"
-msgstr ""
+msgstr "~s: entrada de expresión-G no válida~%"
 
-#: guix/ui.scm:536
+#: guix/ui.scm:724
 #, scheme-format
 msgid "profile '~a' does not exist~%"
-msgstr ""
+msgstr "el perfil '~a' no existe~%"
 
-#: guix/ui.scm:539
+#: guix/ui.scm:727
 #, scheme-format
 msgid "generation ~a of profile '~a' does not exist~%"
-msgstr ""
+msgstr "la generación ~a del perfil '~a' no existe~%"
+
+#: 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:548
+#: guix/ui.scm:744
 #, scheme-format
 msgid "   ... propagated from ~a@~a~%"
-msgstr ""
+msgstr "   ... propagada desde ~a@~a~%"
 
-#: guix/ui.scm:553
+#: guix/ui.scm:754
 #, scheme-format
-msgid "profile contains conflicting entries for ~a:~a~%"
-msgstr ""
+msgid "profile contains conflicting entries for ~a~a~%"
+msgstr "el perfil contiene entradas en conflicto para ~a~a~%"
 
-#: guix/ui.scm:556
+#: guix/ui.scm:757
 #, scheme-format
-msgid "  first entry: ~a@~a:~a ~a~%"
-msgstr ""
+msgid "  first entry: ~a@~a~a ~a~%"
+msgstr "  primera entrada: ~a@~a~a ~a~%"
 
-#: guix/ui.scm:562
+#: guix/ui.scm:763
 #, scheme-format
-msgid "  second entry: ~a@~a:~a ~a~%"
-msgstr ""
+msgid "  second entry: ~a@~a~a ~a~%"
+msgstr "  segunda entrada: ~a@~a~a ~a~%"
 
-#: guix/ui.scm:573
+#: guix/ui.scm:775
 #, scheme-format
 msgid "corrupt input while restoring '~a' from ~s~%"
-msgstr ""
+msgstr "entrada corrupta durante la restauración de '~a' desde ~s~%"
 
-#: guix/ui.scm:575
+#: guix/ui.scm:777
 #, scheme-format
 msgid "corrupt input while restoring archive from ~s~%"
-msgstr ""
+msgstr "entrada corrupta durante la restauración del archivo desde ~s~%"
 
-#: guix/ui.scm:578
+#: guix/ui.scm:780
 #, scheme-format
 msgid "failed to connect to `~a': ~a~%"
-msgstr ""
-
-#: guix/ui.scm:583
-#, scheme-format
-msgid "build failed: ~a~%"
-msgstr ""
+msgstr "no se pudo conectar a «~a»: ~a~%"
 
-#: guix/ui.scm:586
+#: guix/ui.scm:788
 #, scheme-format
 msgid "reference to invalid output '~a' of derivation '~a'~%"
-msgstr ""
+msgstr "referencia a la salida '~a' no válida de la derivación '~a'~%"
 
-#: guix/ui.scm:590
+#: guix/ui.scm:792
 #, scheme-format
 msgid "file '~a' could not be found in these directories:~{ ~a~}~%"
-msgstr ""
+msgstr "el fichero '~a' no se ha podido encontrar en estos directorios:~{ ~a~}~%"
 
-#: guix/ui.scm:607
+#: 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:825
 #, scheme-format
 msgid "~a: ~a~%"
-msgstr ""
+msgstr "~a: ~a~%"
 
-#: guix/ui.scm:642
+#: guix/ui.scm:860
 #, scheme-format
 msgid "failed to read expression ~s: ~s~%"
-msgstr ""
+msgstr "no se pudo leer la expresión ~s: ~s~%"
 
-#: guix/ui.scm:648
+#: guix/ui.scm:866
 #, scheme-format
 msgid "failed to evaluate expression '~a':~%"
-msgstr ""
+msgstr "no se pudo evaluar la expresión '~a':~%"
 
-#: guix/ui.scm:651
+#: guix/ui.scm:869
 #, scheme-format
 msgid "syntax error: ~a~%"
-msgstr ""
+msgstr "error sintáctico: ~a~%"
 
-#: guix/ui.scm:669
+#: guix/ui.scm:887
 #, scheme-format
 msgid "expression ~s does not evaluate to a package~%"
-msgstr ""
+msgstr "la expresión ~s no evalúa a un paquete~%"
 
-#: guix/ui.scm:688
+#: guix/ui.scm:907
 msgid "at least ~,1h MB needed but only ~,1h MB available in ~a~%"
-msgstr ""
+msgstr "se necesita al menos ~,1h MB pero únicamente ~,1h MB está disponible en ~a~%"
 
-#: guix/ui.scm:756
+#: guix/ui.scm:1009
 #, 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] "~:[Se construiría la siguiente derivación:~%~{   ~a~%~}~;~]"
+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:764
+#: guix/ui.scm:1017
 msgid "~:[~,1h MB would be downloaded:~%~{   ~a~%~}~;~]"
-msgstr ""
+msgstr "~:[se descargarían ~,1h MB:~%~{   ~a~%~}~;~]"
 
-#: guix/ui.scm:769
+#: guix/ui.scm:1022
 #, 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] "~:[Se descargaría el siguiente fichero:~%~{   ~a~%~}~;~]"
+msgstr[1] "~:[Se descargarían los siguientes ficheros:~%~{   ~a~%~}~;~]"
 
-#: guix/ui.scm:776
+#: guix/ui.scm:1028
+#, scheme-format
+msgid "~:[The following graft would be made:~%~{   ~a~%~}~;~]"
+msgid_plural "~:[The following grafts would be made:~%~{   ~a~%~}~;~]"
+msgstr[0] "~:[Se realizaría el siguiente injerto:~%~{   ~a~%~}~;~]"
+msgstr[1] "~:[Se realizarían los siguientes injertos:~%~{   ~a~%~}~;~]"
+
+# FUZZY
+#: guix/ui.scm:1033
+#, 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 el siguiente hook del perfil:~%~{   ~a~%~}~;~]"
+msgstr[1] "~:[Se construirían los siguientes hook del perfil:~%~{   ~a~%~}~;~]"
+
+#: guix/ui.scm:1039
 #, scheme-format
 msgid "~:[The following derivation will be built:~%~{   ~a~%~}~;~]"
 msgid_plural "~:[The following derivations will be built:~%~{   ~a~%~}~;~]"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "~:[Se construirá la siguiente derivación:~%~{   ~a~%~}~;~]"
+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:784
+#: guix/ui.scm:1047
 msgid "~:[~,1h MB will be downloaded:~%~{   ~a~%~}~;~]"
-msgstr ""
+msgstr "~:[se descargarán ~,1h MB:~%~{   ~a~%~}~;~]"
 
-#: guix/ui.scm:789
+#: guix/ui.scm:1052
 #, 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] "~:[Se descargará el siguiente fichero:~%~{   ~a~%~}~;~]"
+msgstr[1] "~:[Se descargarán los siguientes ficheros:~%~{   ~a~%~}~;~]"
+
+#: guix/ui.scm:1058
+#, 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:1063
+#, 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á el siguiente hook del perfil:~%~{   ~a~%~}~;~]"
+msgstr[1] "~:[Se construirán los siguientes hook del perfil:~%~{   ~a~%~}~;~]"
 
-#: guix/ui.scm:849
+#: guix/ui.scm:1122
 #, 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] "Se eliminaría el siguiente paquete:~%~{~a~%~}~%"
+msgstr[1] "Se eliminarían los siguientes paquetes:~%~{~a~%~}~%"
 
-#: guix/ui.scm:854
+#: guix/ui.scm:1127
 #, 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] "Se eliminará el siguiente paquete:~%~{~a~%~}~%"
+msgstr[1] "Se eliminarán los siguientes paquetes:~%~{~a~%~}~%"
 
-#: guix/ui.scm:867
+#: guix/ui.scm:1140
 #, 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] "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:872
+#: guix/ui.scm:1145
 #, 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] "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:885
+#: guix/ui.scm:1158
 #, scheme-format
 msgid "The following package would be upgraded:~%~{~a~%~}~%"
 msgid_plural "The following packages would be upgraded:~%~{~a~%~}~%"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "Se actualizaría el siguiente paquete:~%~{~a~%~}~%"
+msgstr[1] "Se actualizarían los siguientes paquetes:~%~{~a~%~}~%"
 
-#: guix/ui.scm:890
+#: guix/ui.scm:1163
 #, scheme-format
 msgid "The following package will be upgraded:~%~{~a~%~}~%"
 msgid_plural "The following packages will be upgraded:~%~{~a~%~}~%"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "Se actualizará el siguiente paquete:~%~{~a~%~}~%"
+msgstr[1] "Se actualizarán los siguientes paquetes:~%~{~a~%~}~%"
 
-#: guix/ui.scm:901
+#: guix/ui.scm:1174
 #, scheme-format
 msgid "The following package would be installed:~%~{~a~%~}~%"
 msgid_plural "The following packages would be installed:~%~{~a~%~}~%"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "Se instalaría el siguiente paquete:~%~{~a~%~}~%"
+msgstr[1] "Se instalarían los siguientes paquetes:~%~{~a~%~}~%"
 
-#: guix/ui.scm:906
+#: guix/ui.scm:1179
 #, scheme-format
 msgid "The following package will be installed:~%~{~a~%~}~%"
 msgid_plural "The following packages will be installed:~%~{~a~%~}~%"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "Se instalará el siguiente paquete:~%~{~a~%~}~%"
+msgstr[1] "Se instalarán los siguientes paquetes:~%~{~a~%~}~%"
 
-#: guix/ui.scm:923
+#: guix/ui.scm:1196 guix/deprecation.scm:46
 msgid "<unknown location>"
 msgstr "<ubicación desconocida>"
 
-#: guix/ui.scm:1285
+#: guix/ui.scm:1567
 #, scheme-format
 msgid "Generation ~a\t~a"
-msgstr ""
+msgstr "Generación ~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:1576
+#, scheme-format
+msgid "~b ~d ~Y ~T"
+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:1295
+#: guix/ui.scm:1582
 #, scheme-format
 msgid "~a\t(current)~%"
-msgstr ""
+msgstr "~a\t(actual)~%"
 
-#: guix/ui.scm:1338
+#: guix/ui.scm:1625
 #, scheme-format
 msgid "switched from generation ~a to ~a~%"
-msgstr ""
+msgstr "se pasó de la generación ~a a la ~a."
 
-#: guix/ui.scm:1354
+#: guix/ui.scm:1641
 #, scheme-format
 msgid "deleting ~a~%"
-msgstr ""
+msgstr "borrando ~a~%"
 
-#: guix/ui.scm:1385
+#: guix/ui.scm:1672
 #, scheme-format
 msgid "Try `guix --help' for more information.~%"
-msgstr ""
+msgstr "Pruebe «guix --help» para obtener más información.~%"
 
-#: guix/ui.scm:1413
+#: guix/ui.scm:1700
 msgid ""
 "Usage: guix COMMAND ARGS...\n"
 "Run COMMAND with ARGS.\n"
 msgstr ""
+"Uso: guix ORDEN PARÁMETROS...\n"
+"Ejecuta ORDEN con PARÁMETROS.\n"
 
-#: guix/ui.scm:1416
+# FUZZY
+#: guix/ui.scm:1703
 msgid "COMMAND must be one of the sub-commands listed below:\n"
-msgstr ""
+msgstr "ORDEN debe ser una de las enumeradas a continuación:\n"
 
-#: guix/ui.scm:1436
+#: guix/ui.scm:1723
 #, scheme-format
 msgid "guix: ~a: command not found~%"
-msgstr ""
+msgstr "guix: ~a: orden no encontrada~%"
 
-#: guix/ui.scm:1466
+#: guix/ui.scm:1753
 #, scheme-format
 msgid "guix: missing command name~%"
-msgstr ""
+msgstr "guix: falta el nombre de la orden~%"
 
-#: guix/ui.scm:1474
+#: guix/ui.scm:1761
 #, scheme-format
 msgid "guix: unrecognized option '~a'~%"
+msgstr "guix: opción '~a' no reconocida~%"
+
+#. 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 "fase '~a'"
+
+#: guix/status.scm:378
+msgid "building directory of Info manuals..."
+msgstr "construyendo el directorio de manuales Info..."
+
+#: guix/status.scm:380
+msgid "building GHC package cache..."
+msgstr "construyendo caché de paquetes GHC..."
+
+#: guix/status.scm:382
+msgid "building CA certificate bundle..."
+msgstr "construyendo empaquetado de certificados de CA..."
+
+#: guix/status.scm:384
+msgid "generating GLib schema cache..."
+msgstr "generando la caché de esquemas de GLib..."
+
+#: guix/status.scm:386
+msgid "creating GTK+ icon theme cache..."
+msgstr "creando la caché de temas de iconos 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+..."
+
+#: guix/status.scm:390
+msgid "building XDG desktop file cache..."
+msgstr "construyendo la caché de ficheros desktop XDG..."
+
+#: guix/status.scm:392
+msgid "building XDG MIME database..."
+msgstr "construyendo la base de datos MIME XDG..."
+
+#: guix/status.scm:394
+msgid "building fonts directory..."
+msgstr "construyendo el directorio de tipografías..."
+
+#: guix/status.scm:396
+msgid "building TeX Live configuration..."
+msgstr "construyendo configuración de TeX Live..."
+
+#: guix/status.scm:398
+msgid "building database for manual pages..."
+msgstr "construyendo la base de datos para páginas de manual..."
+
+#: guix/status.scm:400
+msgid "building package cache..."
+msgstr "construyendo caché de paquetes..."
+
+#: 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..."
+
+# FUZZY
+#: guix/status.scm:484
+#, scheme-format
+msgid "running profile hook of type '~a'..."
+msgstr "ejecuntando el hook de perfil de tipo '~a'..."
+
+#: guix/status.scm:487
+#, scheme-format
+msgid "building ~a..."
+msgstr "construyendo ~a..."
+
+#: guix/status.scm:492
+#, scheme-format
+msgid "successfully built ~a"
+msgstr "~a construido satisfactoriamente"
+
+#: guix/status.scm:498
+#, scheme-format
+msgid "The following build is still in progress:~%~{  ~a~%~}~%"
+msgid_plural "The following builds are still in progress:~%~{  ~a~%~}~%"
+msgstr[0] "La siguiente construcción sigue llevandose a cabo:~%~{  ~a~%~}~%"
+msgstr[1] "Las siguientes construcciones siguen llevandose a cabo:~%~{  ~a~%~}~%"
+
+#: guix/status.scm:504
+#, scheme-format
+msgid "build of ~a failed"
+msgstr "la construcción de ~a falló"
+
+#: guix/status.scm:508
+#, scheme-format
+msgid "Could not find build log for '~a'."
+msgstr "No se pudo encontrar el registro de construcción para '~a'."
+
+# FUZZY
+#: guix/status.scm:511
+#, scheme-format
+msgid "View build log at '~a'."
+msgstr "Muestra el registro de construcción en '~a'."
+
+#: guix/status.scm:516
+#, scheme-format
+msgid "substituting ~a..."
+msgstr "sustituyendo ~a..."
+
+#: guix/status.scm:520
+#, scheme-format
+msgid "downloading from ~a..."
+msgstr "descargando de ~a..."
+
+#: guix/status.scm:545
+#, scheme-format
+msgid "substitution of ~a complete"
+msgstr "sustitución de ~a completada"
+
+#: guix/status.scm:548
+#, scheme-format
+msgid "substitution of ~a failed"
+msgstr "sustitución de ~a fallida"
+
+#. TRANSLATORS: The final string looks like "sha256 hash mismatch for
+#. /gnu/store/…-sth:", where "sha256" is the hash algorithm.
+#: guix/status.scm:553
+#, scheme-format
+msgid "~a hash mismatch for ~a:"
+msgstr "el hash ~a de ~a no corresponde:"
+
+#: guix/status.scm:555
+#, scheme-format
+msgid ""
+"  expected hash: ~a\n"
+"  actual hash:   ~a~%"
 msgstr ""
+"  hash esperado: ~a\n"
+"  hash real:     ~a~%"
+
+#: guix/status.scm:560
+#, scheme-format
+msgid "offloading build of ~a to '~a'"
+msgstr "delegando la construcción de ~a a '~a'"
 
-#: guix/http-client.scm:269
+#: guix/http-client.scm:117
 #, scheme-format
 msgid "following redirection to `~a'...~%"
-msgstr ""
+msgstr "siguiendo la redirección a «~a»...~%"
 
-#: guix/http-client.scm:281
+#: guix/http-client.scm:129
 #, scheme-format
 msgid "~a: HTTP download failed: ~a (~s)"
-msgstr ""
+msgstr "~a: descarga HTTP fallida: ~a (~s)"
 
-#: guix/nar.scm:155
+#: guix/nar.scm:157
 msgid "signature is not a valid s-expression"
-msgstr ""
+msgstr "la firma no es una expresión-s válida"
 
-#: guix/nar.scm:164
+#: guix/nar.scm:166
 msgid "invalid signature"
-msgstr "firma inválida"
+msgstr "firma no válida"
 
-#: guix/nar.scm:168
+#: guix/nar.scm:170
 msgid "invalid hash"
-msgstr "hash inválido"
+msgstr "hash no válido"
 
-#: guix/nar.scm:176
+#: guix/nar.scm:178
 msgid "unauthorized public key"
-msgstr ""
+msgstr "clave pública no autorizada"
 
-#: guix/nar.scm:181
+#: guix/nar.scm:183
 msgid "corrupt signature data"
-msgstr ""
+msgstr "datos de firma corruptos"
 
-#: guix/nar.scm:201
+# FUZZY
+#: guix/nar.scm:203
 msgid "corrupt file set archive"
-msgstr ""
+msgstr "archivo de conjunto de ficheros corrupto"
 
-#: guix/nar.scm:211
+#: guix/nar.scm:213
 #, scheme-format
 msgid "importing file or directory '~a'...~%"
-msgstr ""
+msgstr "importando el fichero o directorio '~a'...~%"
 
-#: guix/nar.scm:222
+# FUZZY
+#: guix/nar.scm:224
 #, scheme-format
 msgid "found valid signature for '~a'~%"
-msgstr ""
+msgstr "encontrada una firma válida para '~a'~%"
 
-#: guix/nar.scm:229
+#: guix/nar.scm:231
 msgid "imported file lacks a signature"
-msgstr ""
+msgstr "el fichero importado carece de firma"
 
-#: guix/nar.scm:268
+# FUZZY
+#: guix/nar.scm:270
 msgid "invalid inter-file archive mark"
-msgstr ""
+msgstr "marca de archivo entre-ficheros no válida"
+
+#: guix/channels.scm:177
+#, scheme-format
+msgid "Updating channel '~a' from Git repository at '~a'...~%"
+msgstr "Actualizando el canal '~a' del repositorio Git en '~a'...~%"
+
+# FUZZY
+#: guix/channels.scm:366
+msgid "'guix' channel is lacking"
+msgstr "falta el canal de guix"
+
+#: guix/profiles.scm:511
+msgid "unsupported manifest format"
+msgstr "formato de manifiesto no disponible"
+
+#: guix/profiles.scm:1748
+#, scheme-format
+msgid "while creating directory `~a': ~a"
+msgstr "durante la creación del directorio «~a»: ~a"
+
+#: guix/profiles.scm:1753
+#, 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:1762
+#, scheme-format
+msgid "directory `~a' is not owned by you"
+msgstr "usted no es la propietaria del directorio «~a»"
+
+#: guix/profiles.scm:1766
+#, 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."
+
+#: guix/git.scm:159
+msgid "long Git object ID is required"
+msgstr "es necesario el ID largo de objeto Git"
+
+#: guix/git.scm:192
+#, scheme-format
+msgid "updating submodule '~a'...~%"
+msgstr "actualizando el submódulo '~a'...~%"
+
+#: guix/git.scm:205
+#, scheme-format
+msgid "Support for submodules is missing; please upgrade Guile-Git.~%"
+msgstr "No están implementados los submodulos; por favor, actualice Guile-Git.~%"
+
+#: guix/git.scm:344
+#, 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:347
+#, scheme-format
+msgid "cannot fetch branch '~a' from ~a: ~a"
+msgstr "no se puede obtener la rama '~a' desde ~a: ~a"
+
+#: guix/git.scm:350
+#, scheme-format
+msgid "Git failure while fetching ~a: ~a"
+msgstr "Git ha fallado al obtener ~a: ~a"
+
+#: guix/deprecation.scm:51
+#, scheme-format
+msgid "~a: warning: '~a' is deprecated~@[, use '~a' instead~]~%"
+msgstr "~a: aviso: '~a' está obsoleto~@[, use '~a'~]~%"
+
+#: gnu/build/bootloader.scm:91
+#, 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~%~}"
 
 #: nix/nix-daemon/guix-daemon.cc:66
 msgid "guix-daemon -- perform derivation builds and store accesses"
-msgstr ""
+msgstr "guix-daemon -- realiza construcciones de derivaciones y accesos al almacén"
 
 #: 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 ""
+msgstr "Este programa es un daemon destinado a la ejecución en segundo plano. Responde a las peticiones enviadas por un socket de dominio Unix. Accede al almacén y construye derivaciones en delegación de sus clientes."
 
-#: nix/nix-daemon/guix-daemon.cc:94
+#: nix/nix-daemon/guix-daemon.cc:95
 msgid "SYSTEM"
-msgstr ""
+msgstr "SISTEMA"
 
-#: nix/nix-daemon/guix-daemon.cc:95
+#: nix/nix-daemon/guix-daemon.cc:96
 msgid "assume SYSTEM as the current system type"
-msgstr ""
+msgstr "asume SISTEMA como el tipo de sistema actual"
 
-#: nix/nix-daemon/guix-daemon.cc:96 nix/nix-daemon/guix-daemon.cc:99
+#: nix/nix-daemon/guix-daemon.cc:97 nix/nix-daemon/guix-daemon.cc:100
 msgid "N"
 msgstr "N"
 
-#: nix/nix-daemon/guix-daemon.cc:97
+#: nix/nix-daemon/guix-daemon.cc:98
 msgid "use N CPU cores to build each derivation; 0 means as many as available"
-msgstr ""
+msgstr "usa N núcleos de la CPU para construir cada derivación; 0 significa tantos como estén disponibles"
 
-#: nix/nix-daemon/guix-daemon.cc:100
+#: nix/nix-daemon/guix-daemon.cc:101
 msgid "allow at most N build jobs"
-msgstr ""
+msgstr "permite como máximo N trabajos de construcción"
 
-#: nix/nix-daemon/guix-daemon.cc:101 nix/nix-daemon/guix-daemon.cc:103
+#: nix/nix-daemon/guix-daemon.cc:102 nix/nix-daemon/guix-daemon.cc:104
 msgid "SECONDS"
-msgstr ""
+msgstr "SEGUNDOS"
 
-#: nix/nix-daemon/guix-daemon.cc:102
+# FUZZY
+#: nix/nix-daemon/guix-daemon.cc:103
 msgid "mark builds as failed after SECONDS of activity"
-msgstr ""
+msgstr "marca las construcciones como fallidas tras SEGUNDOS de actividad"
 
-#: nix/nix-daemon/guix-daemon.cc:104
+# FUZZY
+#: nix/nix-daemon/guix-daemon.cc:105
 msgid "mark builds as failed after SECONDS of silence"
-msgstr ""
+msgstr "marca las construcciones como fallidas tras SEGUNDOS de silencio"
 
-#: nix/nix-daemon/guix-daemon.cc:106
+#: nix/nix-daemon/guix-daemon.cc:107
 msgid "disable chroot builds"
-msgstr ""
+msgstr "desactiva las construcciones en chroot"
 
-#: nix/nix-daemon/guix-daemon.cc:107
+#: nix/nix-daemon/guix-daemon.cc:108
 msgid "DIR"
-msgstr ""
+msgstr "DIR"
 
-#: nix/nix-daemon/guix-daemon.cc:108
+#: nix/nix-daemon/guix-daemon.cc:109
 msgid "add DIR to the build chroot"
-msgstr ""
+msgstr "añade DIR al chroot de construcción"
 
-#: nix/nix-daemon/guix-daemon.cc:109
+#: nix/nix-daemon/guix-daemon.cc:110
 msgid "GROUP"
-msgstr ""
+msgstr "GRUPO"
 
-#: nix/nix-daemon/guix-daemon.cc:110
+#: nix/nix-daemon/guix-daemon.cc:111
 msgid "perform builds as a user of GROUP"
-msgstr ""
+msgstr "realiza las construcciones como una usuaria del GRUPO"
 
-#: nix/nix-daemon/guix-daemon.cc:112
+#: nix/nix-daemon/guix-daemon.cc:113
 msgid "do not use substitutes"
-msgstr ""
+msgstr "no usa sustituciones"
 
-#: nix/nix-daemon/guix-daemon.cc:113
+#: nix/nix-daemon/guix-daemon.cc:114
 msgid "URLS"
-msgstr ""
+msgstr "URLS"
 
-#: nix/nix-daemon/guix-daemon.cc:114
+# FUZZY
+#: nix/nix-daemon/guix-daemon.cc:115
 msgid "use URLS as the default list of substitute providers"
-msgstr ""
+msgstr "usa URLS como la lista predeterminada de proveedoras de sustituciones"
 
-#: nix/nix-daemon/guix-daemon.cc:116
+# FUZZY
+#: nix/nix-daemon/guix-daemon.cc:117
 msgid "do not use the 'build hook'"
-msgstr ""
+msgstr "no usa el 'hook de construcción'"
 
-#: nix/nix-daemon/guix-daemon.cc:118
+#: nix/nix-daemon/guix-daemon.cc:119
 msgid "cache build failures"
-msgstr ""
+msgstr "almacena los fallos de construcción en la caché"
 
-#: nix/nix-daemon/guix-daemon.cc:120
+#: nix/nix-daemon/guix-daemon.cc:121
 msgid "build each derivation N times in a row"
-msgstr ""
+msgstr "construye cada derivación N veces seguidas"
 
-#: nix/nix-daemon/guix-daemon.cc:122
+# FUZZY
+#: nix/nix-daemon/guix-daemon.cc:123
 msgid "do not keep build logs"
-msgstr ""
+msgstr "no mantiene los registros de construcción"
 
-#: nix/nix-daemon/guix-daemon.cc:124
+# FUZZY
+#: nix/nix-daemon/guix-daemon.cc:126
 msgid "disable compression of the build logs"
-msgstr ""
+msgstr "desactiva la compresión de los registros de construcción"
+
+# FUZZY
+#: nix/nix-daemon/guix-daemon.cc:128
+msgid "use the specified compression type for build logs"
+msgstr "usa el tipo de compresión especificado para los registros de construcción"
 
-#: nix/nix-daemon/guix-daemon.cc:129
+#: nix/nix-daemon/guix-daemon.cc:133
 msgid "disable automatic file \"deduplication\" in the store"
-msgstr ""
+msgstr "desactiva la \"deduplicación\" automática de ficheros en el almacén"
 
-#: nix/nix-daemon/guix-daemon.cc:139
+# FUZZY
+#: nix/nix-daemon/guix-daemon.cc:143
 msgid "impersonate Linux 2.6"
-msgstr ""
+msgstr "aparenta Linux 2.6"
 
-#: nix/nix-daemon/guix-daemon.cc:143
+#: nix/nix-daemon/guix-daemon.cc:147
 msgid "tell whether the GC must keep outputs of live derivations"
-msgstr ""
+msgstr "determina si la recolección de basura debe mantener las salidas de las derivaciones vivas"
 
-#: nix/nix-daemon/guix-daemon.cc:146
+#: nix/nix-daemon/guix-daemon.cc:150
 msgid "tell whether the GC must keep derivations corresponding to live outputs"
-msgstr ""
+msgstr "determina si la recolección de basura debe mantener derivaciones correspondientes a salidas vivas"
 
-#: nix/nix-daemon/guix-daemon.cc:149
+#: nix/nix-daemon/guix-daemon.cc:153
 msgid "SOCKET"
 msgstr "SOCKET"
 
-#: nix/nix-daemon/guix-daemon.cc:150
+#: nix/nix-daemon/guix-daemon.cc:154
 msgid "listen for connections on SOCKET"
 msgstr "escucha conexiones en SOCKET"
 
-#: nix/nix-daemon/guix-daemon.cc:152
+#: nix/nix-daemon/guix-daemon.cc:156
 msgid "produce debugging output"
 msgstr "produce salida de depuración"
+
+#~ msgid ""
+#~ "Consider running @command{guix gc} to free\n"
+#~ "space."
+#~ msgstr ""
+#~ "Considere la ejecución de @command{guix gc}\n"
+#~ "para liberar espacio."
+
+#~ msgid ""
+#~ "Usage: guix archive [OPTION]... PACKAGE...\n"
+#~ "Export/import one or more packages from/to the store.\n"
+#~ msgstr ""
+#~ "Uso: guix archive [OPCIÓN]... PAQUETE...\n"
+#~ "Exporta/importa uno o más paquetes desde/a el almacén.\n"
+
+#~ msgid "package `~a' has no source~%"
+#~ msgstr "el paquete '~a' no tiene fuentes~%"
+
+#~ msgid "key generation failed: ~a: ~a~%"
+#~ msgstr "ha fallado la generación de clave: ~a: ~a~%"
+
+#~ msgid "failed to read public key: ~a: ~a~%"
+#~ msgstr "no se pudo leer la clave pública: ~a: ~a~%"
+
+# FUZZY
+#~ msgid "either '--export' or '--import' must be specified~%"
+#~ msgstr "se debe especificar '--export' o '--import'~%"
+
+#~ msgid "source location of package '~a' is unknown~%"
+#~ msgstr "se desconoce la ubicación de las fuentes del paquete '~a'~%"
+
+#~ msgid ""
+#~ "\n"
+#~ "      --pure             unset existing environment variables"
+#~ msgstr ""
+#~ "\n"
+#~ "      --pure             descarta las variables de entorno existentes"
+
+#~ msgid ""
+#~ "\n"
+#~ "  -n, --dry-run          show what would be pulled and built"
+#~ msgstr ""
+#~ "\n"
+#~ "  -n, --dry-run          muestra qué sería obtenido y construido"
+
+#~ msgid "~A: invalid listen specification~%"
+#~ msgstr "~A: especificación de escucha no válida~%"
+
+#~ msgid "~A: unsupported protocol family~%"
+#~ msgstr "~A: familia de protocolos no implementada~%"
+
+#~ msgid "accepted connection from ~a~%"
+#~ msgstr "aceptada conexión desde ~a~%"
+
+#~ msgid "~a: unknown type of REPL~%"
+#~ msgstr "~a: tipo de REPL desconocido~%"
+
+#~ msgid "~a: error: ~a~%"
+#~ msgstr "~a: error: ~a~%"
+
+#~ msgid "failed to install locale: ~a~%"
+#~ msgstr "no se pudo instalar la localización: ~a~%"
+
+# FUZZY
+#~ msgid "build failed: ~a~%"
+#~ msgstr "construcción fallida: ~a~%"
+
+# FUZZY
+#~ msgid "'--url', '--commit', and '--branch' are not applicable~%"
+#~ msgstr "'--url', '--commit' y '--branch' no son aplicables~%"
diff --git a/po/guix/fr.po b/po/guix/fr.po
index 7928b4f93d..2399261308 100644
--- a/po/guix/fr.po
+++ b/po/guix/fr.po
@@ -13,12 +13,13 @@
 # mais il est traité un peu différemment : on dit « le shepherd » (« the
 # shepherd » en anglais) avec l'article.
 #
+#: guix/ui.scm:204
 msgid ""
 msgstr ""
-"Project-Id-Version: guix 0.16.0\n"
+"Project-Id-Version: guix 1.0.0-pre2\n"
 "Report-Msgid-Bugs-To: ludo@gnu.org\n"
-"POT-Creation-Date: 2018-11-28 15:05+0100\n"
-"PO-Revision-Date: 2018-12-03 19:23+0100\n"
+"POT-Creation-Date: 2019-04-24 13:25+0200\n"
+"PO-Revision-Date: 2019-04-24 21:45+0200\n"
 "Last-Translator: Julien Lepiller <julien@lepiller.eu>\n"
 "Language-Team: French <traduc@traduc.org>\n"
 "Language: fr\n"
@@ -29,12 +30,12 @@ msgstr ""
 "X-Bugs: Report translation errors to the Language-Team address.\n"
 "X-Generator: Offlate 0.1\n"
 
-#: gnu.scm:82
+#: gnu.scm:83
 #, scheme-format
 msgid "module ~a not found"
-msgstr "module « ~a » introuvable"
+msgstr "module ~a introuvable"
 
-#: gnu.scm:100
+#: gnu.scm:101
 msgid ""
 "You may use @command{guix package --show=foo | grep location} to search\n"
 "for the location of package @code{foo}.\n"
@@ -46,12 +47,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:108
+#: gnu.scm:109
 #, scheme-format
 msgid "Try adding @code{(use-package-modules ~a)}."
 msgstr "Essayez d'ajouter @code{(use-package-modules ~a)}."
 
-#: gnu.scm:123
+#: gnu.scm:124
 #, scheme-format
 msgid ""
 "You may use @command{guix system search ~a} to search for a service\n"
@@ -64,47 +65,47 @@ 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:132
+#: gnu.scm:133
 #, scheme-format
 msgid "Try adding @code{(use-service-modules ~a)}."
 msgstr "Essayez d'ajouter @code{(use-service-modules ~a)}."
 
-#: gnu/packages.scm:94
+#: gnu/packages.scm:103
 #, scheme-format
 msgid "~a: patch not found"
 msgstr "~a : correctif introuvable"
 
-#: gnu/packages.scm:110
+#: gnu/packages.scm:119
 #, 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.scm:270
+#: 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:271
+#: gnu/packages.scm:481 gnu/packages.scm:522
 #, scheme-format
 msgid "choosing ~a@~a from ~a~%"
 msgstr "choix de ~a@~a parmi ~a~%"
 
-#: gnu/packages.scm:276 guix/scripts/package.scm:206
+#: gnu/packages.scm:486 guix/scripts/package.scm:208
 #, scheme-format
 msgid "package '~a' has been superseded by '~a'~%"
 msgstr "le paquet « ~a » a été remplacé par « ~a »~%"
 
-#: gnu/packages.scm:283
+#: 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:284
+#: gnu/packages.scm:494 gnu/packages.scm:511
 #, scheme-format
 msgid "~A: unknown package~%"
 msgstr "~A : paquet inconnu~%"
 
-#: gnu/packages.scm:312
+#: gnu/packages.scm:546
 #, scheme-format
 msgid "package `~a' lacks output `~a'~%"
 msgstr "le paquet « ~a » requiert la sortie « ~a »~%"
@@ -213,42 +214,42 @@ msgstr "plus d'un service cible de type « ~a »"
 msgid "service of type '~a' not found"
 msgstr "service de type « ~a » pas trouvé"
 
-#: gnu/system.scm:317
+#: gnu/system.scm:334
 #, scheme-format
 msgid "unrecognized boot parameters at '~a'~%"
 msgstr "paramètres de démarrage non reconnus dans « ~a »~%"
 
-#: gnu/system.scm:725
+#: gnu/system.scm:732
 #, 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 »~%"
 
-#: gnu/system.scm:741
+#: gnu/system.scm:748
 #, 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:885
+#: gnu/system.scm:893
 #, scheme-format
 msgid "~a: invalid locale name"
 msgstr "~a : nom d'environnement linguistique non valide"
 
-#: gnu/services/shepherd.scm:192
+#: gnu/services/shepherd.scm:194
 #, scheme-format
 msgid "service '~a' provided more than once"
 msgstr "service « ~a » fourni plus d'une fois"
 
-#: gnu/services/shepherd.scm:207
+#: gnu/services/shepherd.scm:209
 #, 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:147
+#: gnu/system/mapped-devices.scm:136
 #, 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:151
+#: gnu/system/mapped-devices.scm:140
 #, scheme-format
 msgid ""
 "Try adding them to the\n"
@@ -278,42 +279,696 @@ 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:230
+#: gnu/system/mapped-devices.scm:219
 #, scheme-format
 msgid "no LUKS partition with UUID '~a'"
 msgstr "aucune partition LUKS avec l’UUID « ~a »"
 
-#: gnu/system/shadow.scm:258
+#: gnu/system/shadow.scm:236
 #, scheme-format
 msgid "supplementary group '~a' of user '~a' is undeclared"
 msgstr "le groupe supplémentaire « ~a » de l'utilisateur « ~a » n'est pas déclaré"
 
-#: gnu/system/shadow.scm:268
+#: gnu/system/shadow.scm:246
 #, scheme-format
 msgid "primary group '~a' of user '~a' is undeclared"
 msgstr "le groupe primaire « ~a » de l'utilisateur « ~a » n'est pas déclaré"
 
-#: guix/scripts.scm:60
+#: guix/import/opam.scm:133
+#, scheme-format
+msgid "Package not found in opam repository: ~a~%"
+msgstr "Paquet introuvable dans le dépôt opam : ~a~%"
+
+#: guix/import/opam.scm:344
+msgid "Updater for OPAM packages"
+msgstr "Logiciel de mise à jour des paquets OPAM"
+
+#: gnu/installer.scm:191
+msgid "Locale"
+msgstr "Paramètres régionaux"
+
+#: gnu/installer.scm:207 gnu/installer/newt/timezone.scm:58
+msgid "Timezone"
+msgstr "Fuseau horaire"
+
+#: gnu/installer.scm:223
+msgid "Keyboard mapping selection"
+msgstr "Sélection de la disposition du clavier"
+
+#: gnu/installer.scm:232
+msgid "Partitioning"
+msgstr "Partitionnement"
+
+#: gnu/installer.scm:240 gnu/installer/newt/hostname.scm:26
+msgid "Hostname"
+msgstr "Nom d'hôte"
+
+#: gnu/installer.scm:249
+msgid "Network selection"
+msgstr "Sélection du réseau"
+
+#: gnu/installer.scm:256 gnu/installer/newt/user.scm:46
+msgid "User creation"
+msgstr "Création de l'utilisateur"
+
+#: gnu/installer.scm:264
+msgid "Services"
+msgstr "Services"
+
+#: gnu/installer.scm:271 gnu/installer/newt/final.scm:41
+msgid "Configuration file"
+msgstr "Fichier de configuration"
+
+#: gnu/installer/connman.scm:196
+msgid "Could not determine the state of connman."
+msgstr "Impossible de déterminer l'état de connman."
+
+#: gnu/installer/connman.scm:322
+msgid "Unable to find expected regexp."
+msgstr "Impossible de trouver l'expression régulière attendue."
+
+#: gnu/installer/newt.scm:60
+#, scheme-format
+msgid "The installer has encountered an unexpected problem. The backtrace is displayed below. Please report it by email to <~a>."
+msgstr "L'installateur a rencontré un problème inattendu. La trace de débogage est affichée ci-dessous. Merci de l'envoyer par courriel à <~a>."
+
+#: gnu/installer/newt.scm:63
+msgid "Unexpected problem"
+msgstr "Problème inattendu"
+
+#: gnu/installer/newt/ethernet.scm:65
+msgid "No ethernet service available, please try again."
+msgstr "Aucun service de réseau filaire disponible, réessayez."
+
+#: gnu/installer/newt/ethernet.scm:66
+msgid "No service"
+msgstr "Aucun service"
+
+#: gnu/installer/newt/ethernet.scm:71
+msgid "Please select an ethernet network."
+msgstr "Sélectionnez un réseau filaire."
+
+#: gnu/installer/newt/ethernet.scm:72
+msgid "Ethernet connection"
+msgstr "Connexion filaire"
+
+#: gnu/installer/newt/ethernet.scm:75 gnu/installer/newt/keymap.scm:44
+#: gnu/installer/newt/locale.scm:43 gnu/installer/newt/network.scm:61
+#: gnu/installer/newt/network.scm:76 gnu/installer/newt/page.scm:156
+#: gnu/installer/newt/page.scm:481 gnu/installer/newt/page.scm:538
+#: gnu/installer/newt/partition.scm:52 gnu/installer/newt/partition.scm:80
+#: gnu/installer/newt/partition.scm:112 gnu/installer/newt/partition.scm:123
+#: gnu/installer/newt/partition.scm:619 gnu/installer/newt/partition.scm:640
+#: gnu/installer/newt/partition.scm:679 gnu/installer/newt/partition.scm:730
+#: gnu/installer/newt/partition.scm:741 gnu/installer/newt/services.scm:81
+#: gnu/installer/newt/timezone.scm:63 gnu/installer/newt/user.scm:119
+#: gnu/installer/newt/wifi.scm:201
+msgid "Exit"
+msgstr "Sortir"
+
+#: gnu/installer/newt/final.scm:37
+msgid "We're now ready to proceed with the installation! A system configuration file has been generated, it is displayed below.  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. 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:54
+msgid "Installation complete"
+msgstr "Installation terminée"
+
+#: gnu/installer/newt/final.scm:55 gnu/installer/newt/welcome.scm:115
+msgid "Reboot"
+msgstr "Redémarrer"
+
+#: gnu/installer/newt/final.scm:56
+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:62
+msgid "Installation failed"
+msgstr "Installation échouée"
+
+#: gnu/installer/newt/final.scm:63
+msgid "Restart installer"
+msgstr "Redémarrer l'installateur"
+
+#: gnu/installer/newt/final.scm:64
+msgid "Retry system install"
+msgstr "Réessayer l'installation du système"
+
+#: gnu/installer/newt/final.scm:65
+msgid "The final system installation step failed.  You can retry the last step, or restart the installer."
+msgstr "La dernière étape de l'installation du système a échouée. Vous pouvez réessayer la dernière étape ou redémarrer l'installateur."
+
+#: gnu/installer/newt/hostname.scm:25
+msgid "Please enter the system hostname."
+msgstr "Saisissez le nom d'hôte du système."
+
+#: gnu/installer/newt/keymap.scm:37
+msgid "Layout"
+msgstr "Disposition"
+
+#: gnu/installer/newt/keymap.scm:40
+msgid "Please choose your keyboard layout."
+msgstr "Choisissez la disposition de votre clavier."
+
+#: gnu/installer/newt/keymap.scm:52
+msgid "Variant"
+msgstr "Variante"
+
+#: gnu/installer/newt/keymap.scm:55
+msgid "Please choose a variant for your keyboard layout."
+msgstr "Choisissez une variante pour la disposition de votre clavier."
+
+#: 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:575 gnu/installer/newt/timezone.scm:64
+msgid "Back"
+msgstr "Retour"
+
+#: gnu/installer/newt/locale.scm:36
+msgid "Locale language"
+msgstr "Paramètres linguistiques"
+
+#: gnu/installer/newt/locale.scm:37
+msgid "Choose the language to use for the installation process and for the installed system."
+msgstr "Choisissez la langue à utiliser pour le processus d'installation et le système installé."
+
+#: gnu/installer/newt/locale.scm:57
+msgid "Locale location"
+msgstr "Situation géographique"
+
+#: gnu/installer/newt/locale.scm:60
+msgid "Choose a territory for this language."
+msgstr "Choisissez votre situation géographique."
+
+#: gnu/installer/newt/locale.scm:71
+msgid "Locale codeset"
+msgstr "Jeu de caractères"
+
+#: gnu/installer/newt/locale.scm:74
+msgid "Choose the locale encoding."
+msgstr "Choisissez l'encodage de la langue."
+
+#: gnu/installer/newt/locale.scm:86
+msgid "Locale modifier"
+msgstr "Modificateur régional"
+
+#: 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 "Choisissez le modificateur pour vos paramètres linguistiques. Le plus courant est « euro ». Cela indique que vous voulez utiliser l'Euro comme symbole monétaire."
+
+#: gnu/installer/newt/locale.scm:190
+msgid "No location"
+msgstr "Pas de situation géographique"
+
+#: gnu/installer/newt/locale.scm:217
+msgid "No modifier"
+msgstr "Pas de modificateur"
+
+#: 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 "Choisissez où reprendre l'installation. Vous pouvez aussi l'annuler en appuyant sur le bouton « Annuler »."
+
+#: gnu/installer/newt/menu.scm:37
+msgid "Installation menu"
+msgstr "Menu d'installation"
+
+#: gnu/installer/newt/menu.scm:41
+msgid "Abort"
+msgstr "Annuler"
+
+#: gnu/installer/newt/network.scm:59 gnu/installer/newt/network.scm:73
+msgid "Internet access"
+msgstr "Accès internet"
+
+#: gnu/installer/newt/network.scm:60 gnu/installer/newt/page.scm:155
+msgid "Continue"
+msgstr "Continuer"
+
+#: gnu/installer/newt/network.scm:62
+msgid "The install process requires Internet access but no network device were found. Do you want to continue anyway?"
+msgstr "Le processus d'installation a besoin d'un accès à internet mais aucun périphérique réseau n'a été trouvé. Voulez-vous tout de même continuer ?"
+
+#: gnu/installer/newt/network.scm:71
+msgid "The install process requires Internet access. Please select a network device."
+msgstr "Le processus d'installation a besoin d'une connexion internet. Sélectionnez un périphérique réseau."
+
+#: gnu/installer/newt/network.scm:95
+msgid "Powering technology"
+msgstr "Démarrage de la technologie"
+
+#: gnu/installer/newt/network.scm:115
+msgid "Checking connectivity"
+msgstr "Vérification de la connexion"
+
+#: gnu/installer/newt/network.scm:116
+msgid "Waiting for Internet access establishment..."
+msgstr "Attente de l'accès internet…"
+
+#: gnu/installer/newt/network.scm:126
+msgid "The selected network does not provide access to the Internet, please try again."
+msgstr "Le réseau sélectionné ne fournit pas d'accès à internet, réessayez."
+
+#: gnu/installer/newt/network.scm:128 gnu/installer/newt/wifi.scm:105
+msgid "Connection error"
+msgstr "Erreur à la connexion"
+
+#: gnu/installer/newt/page.scm:71
+#, scheme-format
+msgid "Connecting to ~a, please wait."
+msgstr "Connexion à ~a, patientez."
+
+#: gnu/installer/newt/page.scm:72
+msgid "Connection in progress"
+msgstr "Connexion en cours"
+
+#: gnu/installer/newt/page.scm:89 gnu/installer/newt/page.scm:480
+#: gnu/installer/newt/page.scm:537 gnu/installer/newt/partition.scm:438
+#: gnu/installer/newt/partition.scm:618 gnu/installer/newt/partition.scm:639
+#: gnu/installer/newt/partition.scm:677 gnu/installer/newt/user.scm:44
+#: gnu/installer/newt/user.scm:118
+msgid "OK"
+msgstr "OK"
+
+#: gnu/installer/newt/page.scm:104
+msgid "Please enter a non empty input."
+msgstr "Saisissez une valeur non vide."
+
+#: gnu/installer/newt/page.scm:105 gnu/installer/newt/user.scm:76
+msgid "Empty input"
+msgstr "Valeur vide"
+
+#: gnu/installer/newt/partition.scm:48
+msgid "Please select a partitioning scheme."
+msgstr "Sélectionnez un schéma de partitionnement."
+
+#: gnu/installer/newt/partition.scm:49
+msgid "Partition scheme"
+msgstr "Schéma de partitionnement"
+
+#: gnu/installer/newt/partition.scm:59
+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 ?"
+
+#: gnu/installer/newt/partition.scm:61
+msgid "Format disk?"
+msgstr "Formater le disque ?"
+
+#: gnu/installer/newt/partition.scm:64
+msgid "Partition formatting is in progress, please wait."
+msgstr "Formatage du disque en cours, patientez."
+
+#: gnu/installer/newt/partition.scm:65
+msgid "Preparing partitions"
+msgstr "Préparation des partitions"
+
+#: gnu/installer/newt/partition.scm:76
+msgid "Please select a disk."
+msgstr "Sélectionnez un disque."
+
+#: gnu/installer/newt/partition.scm:77
+msgid "Disk"
+msgstr "Disque"
+
+#: gnu/installer/newt/partition.scm:88
+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:90
+msgid "Partition table"
+msgstr "Table des partitions"
+
+#: gnu/installer/newt/partition.scm:107
+msgid "Please select a partition type."
+msgstr "Sélectionnez un type de partition."
+
+#: gnu/installer/newt/partition.scm:108
+msgid "Partition type"
+msgstr "Type de partition"
+
+#: gnu/installer/newt/partition.scm:118
+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:119
+msgid "File-system type"
+msgstr "Type de système de fichier"
+
+#: gnu/installer/newt/partition.scm:132
+msgid "Primary partitions count exceeded."
+msgstr "Nombre maximal de partitions primaires dépassé."
+
+#: gnu/installer/newt/partition.scm:133 gnu/installer/newt/partition.scm:138
+#: gnu/installer/newt/partition.scm:143
+msgid "Creation error"
+msgstr "Erreur à la création"
+
+#: gnu/installer/newt/partition.scm:137
+msgid "Extended partition creation error."
+msgstr "Erreur à la création d'une partition étendue."
+
+#: gnu/installer/newt/partition.scm:142
+msgid "Logical partition creation error."
+msgstr "Erreur à la création d'une partition logique."
+
+#: gnu/installer/newt/partition.scm:156
+#, 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:158 gnu/installer/newt/wifi.scm:90
+msgid "Password required"
+msgstr "Mot de passe requis"
+
+#: gnu/installer/newt/partition.scm:162
+#, 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:164
+msgid "Password confirmation required"
+msgstr "Confirmation du mot de passe requise"
+
+#: gnu/installer/newt/partition.scm:175
+msgid "Password mismatch, please try again."
+msgstr "Les mots de passe sont différents, réessayez."
+
+#: gnu/installer/newt/partition.scm:176
+msgid "Password error"
+msgstr "Erreur de mot de passe"
+
+#: gnu/installer/newt/partition.scm:262
+msgid "Please enter the partition gpt name."
+msgstr "Saisissez le nom gpt de la partition."
+
+#: gnu/installer/newt/partition.scm:263
+msgid "Partition name"
+msgstr "Nom de la partition"
+
+#: gnu/installer/newt/partition.scm:293
+msgid "Please enter the encrypted label"
+msgstr "Saisissez l'étiquette chiffrée"
+
+#: gnu/installer/newt/partition.scm:294
+msgid "Encryption label"
+msgstr "Étiquette de chiffrement"
+
+#: gnu/installer/newt/partition.scm:311
+#, 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:313
+msgid "Partition size"
+msgstr "Taille de la partition"
+
+#: gnu/installer/newt/partition.scm:331
+msgid "The percentage can not be superior to 100."
+msgstr "Le pourcentage ne peut être supérieur à 100."
+
+#: gnu/installer/newt/partition.scm:332 gnu/installer/newt/partition.scm:337
+#: gnu/installer/newt/partition.scm:342
+msgid "Size error"
+msgstr "Erreur de taille"
+
+#: gnu/installer/newt/partition.scm:336
+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:341
+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:361
+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:363
+msgid "Mounting point"
+msgstr "Point de montage"
+
+#: gnu/installer/newt/partition.scm:432
+msgid "Partition creation"
+msgstr "Création de la partition"
+
+#: gnu/installer/newt/partition.scm:433
+msgid "Partition edit"
+msgstr "Modification de la partition"
+
+#: gnu/installer/newt/partition.scm:615
+#, 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:617
+msgid "Delete disk"
+msgstr "Supprimer le disque"
+
+#: gnu/installer/newt/partition.scm:631
+msgid "You cannot delete a free space area."
+msgstr "Vous ne pouvez pas supprimer un espace libre."
+
+#: gnu/installer/newt/partition.scm:632 gnu/installer/newt/partition.scm:638
+msgid "Delete partition"
+msgstr "Supprimer la partition"
+
+#: gnu/installer/newt/partition.scm:636
+#, 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:653
+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 ""
+"Vous pouvez modifier la table des partitions d'un disque en le sélectionnant et en appuyant sur la touche ENTRÉE de votre clavier. Vous pouvez aussi modifier une partition en la sélectionnant et en appuyant sur la touche ENTRÉE, et la supprimer en appuyant sur la touche SUPPR. Pour créer une nouvelle partition, sélectionnez un espace libre et appuyez sur la touche ENTRÉE.\n"
+"\n"
+"Au moins une partition doit avoir « / » comme point de montage."
+
+#: gnu/installer/newt/partition.scm:659
+#, 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:669
+msgid "Guided partitioning"
+msgstr "Partitionnement guidé"
+
+#: gnu/installer/newt/partition.scm:670
+msgid "Manual partitioning"
+msgstr "Partitionnement manuel"
+
+#: gnu/installer/newt/partition.scm:688
+msgid "No root mount point found."
+msgstr "Pas de point de montage pour la racine."
+
+#: gnu/installer/newt/partition.scm:689
+msgid "Missing mount point"
+msgstr "Point de montage absent"
+
+#: gnu/installer/newt/partition.scm:726
+msgid "Please select a partitioning method."
+msgstr "Sélectionnez une méthode de partitionnement."
+
+#: gnu/installer/newt/partition.scm:727
+msgid "Partitioning method"
+msgstr "Méthode de partitionnement"
+
+#: gnu/installer/newt/services.scm:35
+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:38
+msgid "Desktop environment"
+msgstr "Environnement de bureau"
+
+#: gnu/installer/newt/services.scm:51
+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:53
+msgid "Network service"
+msgstr "Service réseau"
+
+#: gnu/installer/newt/services.scm:67
+msgid "Network management"
+msgstr "Gestion du réseau"
+
+#: gnu/installer/newt/services.scm:70
+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 ""
+"Choisissez la méthode de gestion des connexions réseaux.\n"
+"\n"
+"Nous vous recommandons NetworkManager ou Connman pour un ordinateur portable avec WiFi, tandis que le client DHCP sera sans doute suffisant pour un serveur."
+
+#: gnu/installer/newt/timezone.scm:59
+msgid "Please select a timezone."
+msgstr "Sélectionnez un fuseau horaire."
+
+#: gnu/installer/newt/user.scm:36
+msgid "Name"
+msgstr "Nom"
+
+#: gnu/installer/newt/user.scm:38
+msgid "Home directory"
+msgstr "Répertoire personnel"
+
+#: gnu/installer/newt/user.scm:75
+msgid "Empty inputs are not allowed."
+msgstr "Les valeurs vides ne sont pas permises."
+
+#: gnu/installer/newt/user.scm:106
+msgid "Please add at least one user to system using the 'Add' button."
+msgstr "Ajoutez au moins un utilisateur au système avec le bouton « Ajouter »."
+
+#: gnu/installer/newt/user.scm:109
+msgid "Add"
+msgstr "Ajouter"
+
+#: gnu/installer/newt/user.scm:110
+msgid "Delete"
+msgstr "Supprimer"
+
+#: gnu/installer/newt/user.scm:169
+msgid "Please create at least one user."
+msgstr "Définissez au moins un utilisateur."
+
+#: gnu/installer/newt/user.scm:170
+msgid "No user"
+msgstr "Aucun utilisateur"
+
+#: gnu/installer/newt/welcome.scm:95
+msgid "GNU Guix install"
+msgstr "Installation de GNU Guix"
+
+#: gnu/installer/newt/welcome.scm:96
+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 ""
+"Bienvenue dans l'installateur du système GNU Guix !\n"
+"\n"
+"Nous allons vous guider à travers ce programme d'installation graphique.\n"
+"\n"
+"Si vous connaissez bien GNU/Linux et que vous voulez contrôler finement le processus d'installation, vous pouvez aussi choisir l'installation manuelle.\n"
+"La documentation est disponible à tout moment en appuyant sur Ctrl-Alt-F2."
+
+#: gnu/installer/newt/welcome.scm:105
+msgid "Graphical install using a terminal based interface"
+msgstr "Installation graphique avec une interface orientée terminal"
+
+#: gnu/installer/newt/welcome.scm:108
+msgid "Install using the shell based process"
+msgstr "Installation avec un processus orienté shell"
+
+#: gnu/installer/newt/wifi.scm:80
+msgid "Unable to find a wifi technology"
+msgstr "Impossible de trouver un périphérique wifi"
+
+#: gnu/installer/newt/wifi.scm:84
+msgid "Scanning wifi for available networks, please wait."
+msgstr "Scan des réseaux wifi disponible, patientez."
+
+#: gnu/installer/newt/wifi.scm:85
+msgid "Scan in progress"
+msgstr "Scan en cours"
+
+#: gnu/installer/newt/wifi.scm:89
+msgid "Please enter the wifi password."
+msgstr "Saisissez le mot de passe wifi."
+
+#: gnu/installer/newt/wifi.scm:95
+#, scheme-format
+msgid "The password you entered for ~a is incorrect."
+msgstr "Le mot de passe que vous avez saisi pour ~a est incorrect."
+
+#: gnu/installer/newt/wifi.scm:97
+msgid "Wrong password"
+msgstr "Mauvais mot de passe"
+
+#: gnu/installer/newt/wifi.scm:103
+#, scheme-format
+msgid "An error occurred while trying to connect to ~a, please retry."
+msgstr "Une erreur est survenue lors de la tentative de connexion à ~a, réessayez."
+
+#: gnu/installer/newt/wifi.scm:196
+msgid "Please select a wifi network."
+msgstr "Sélectionnez un réseau wifi."
+
+#: gnu/installer/newt/wifi.scm:202
+msgid "Scan"
+msgstr "Scan"
+
+#: gnu/installer/newt/wifi.scm:207
+msgid "No wifi detected"
+msgstr "Aucun réseau wifi détecté"
+
+#: gnu/installer/newt/wifi.scm:222
+msgid "Wifi"
+msgstr "Wifi"
+
+#: gnu/installer/parted.scm:428 gnu/installer/parted.scm:465
+msgid "Free space"
+msgstr "Espace libre"
+
+#: gnu/installer/parted.scm:1345
+#, scheme-format
+msgid "Device ~a is still in use."
+msgstr "Le périphérique ~a est toujours utilisé."
+
+#: gnu/installer/services.scm:81
+msgid "OpenSSH secure shell daemon (sshd)"
+msgstr "Démon de shell sécurisé OpenSSH (sshd)"
+
+#: gnu/installer/services.scm:85
+msgid "Tor anonymous network router"
+msgstr "Réseau anonyme Tor"
+
+#: gnu/installer/services.scm:91
+msgid "NetworkManager network connection manager"
+msgstr "Gestionnaire de connexions réseaux NetworkManager"
+
+#: gnu/installer/services.scm:96
+msgid "Connman network connection manager"
+msgstr "Gestionnaire de connexions réseaux Connman"
+
+#: gnu/installer/services.scm:101
+msgid "DHCP client (dynamic IP address assignment)"
+msgstr "Client DHCP (affectation dynamique d'adresse IP)"
+
+#: gnu/installer/timezone.scm:110
+#, scheme-format
+msgid "Unable to locate path: ~a."
+msgstr "Impossible de trouver le chemin : ~a."
+
+#: guix/scripts.scm:61
 #, scheme-format
 msgid "invalid argument: ~a~%"
 msgstr "argument non valide : ~a~%"
 
-#: guix/scripts.scm:88 guix/scripts/download.scm:135
+#: guix/scripts.scm:89 guix/scripts/download.scm:135
 #: guix/scripts/import/cran.scm:84 guix/scripts/import/elpa.scm:85
-#: guix/scripts/publish.scm:881 guix/scripts/edit.scm:81
-#: guix/scripts/describe.scm:197 guix/scripts/processes.scm:216
+#: guix/scripts/publish.scm:888 guix/scripts/edit.scm:79
+#: guix/scripts/describe.scm:199 guix/scripts/processes.scm:216
 #, scheme-format
 msgid "~A: unrecognized option~%"
 msgstr "~A : option non reconnue~%"
 
-#: guix/scripts.scm:182
+#: guix/scripts.scm:172
 #, 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:187
+#: guix/scripts.scm:178
 #, scheme-format
 msgid ""
 "Consider running 'guix pull' followed by\n"
@@ -322,52 +977,48 @@ 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:211
+#: guix/scripts.scm:202
 #, scheme-format
 msgid "only ~,1f% of free space available on ~a~%"
 msgstr "seulement ~,1f % d'espace libre sur ~a~%"
 
-#: guix/scripts.scm:214
-#, scheme-format
+#: guix/scripts.scm:204
 msgid ""
 "Consider deleting old profile\n"
 "generations and collecting garbage, along these lines:\n"
 "\n"
 "@example\n"
-"guix package -p ~s --delete-generations=1m\n"
-"guix gc\n"
+"guix gc --delete-generations=1m\n"
 "@end example\n"
 msgstr ""
 "Pensez à supprimer de vieilles générations du profil\n"
 "et à lancer le ramasse-miettes de cette façon :\n"
 "\n"
 "@example\n"
-"guix package -p ~s --delete-generations=1m\n"
-"guix gc\n"
+"guix gc --delete-generations=1m\n"
 "@end example\n"
 
-#: guix/scripts.scm:222
-msgid ""
-"Consider running @command{guix gc} to free\n"
-"space."
-msgstr "Pensez à lancer @command{guix gc} pour libérer de l'espace."
-
-#: guix/scripts/build.scm:84
+#: guix/scripts/build.scm:86
 #, scheme-format
 msgid "cannot access build log at '~a':~%"
 msgstr "aucun journal de compilation sur « ~a »~%"
 
-#: guix/scripts/build.scm:138
+#: guix/scripts/build.scm:140
 #, 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:240
+#: guix/scripts/build.scm:245 guix/scripts/build.scm:310
 #, scheme-format
 msgid "invalid replacement specification: ~s~%"
 msgstr "spécification de remplacement invalide : ~s~%"
 
-#: guix/scripts/build.scm:297
+#: guix/scripts/build.scm:292
+#, 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:417
 msgid ""
 "\n"
 "      --with-source=SOURCE\n"
@@ -377,7 +1028,7 @@ msgstr ""
 "      --with-source=SOURCE\n"
 "                         utiliser la SOURCE donnée pour compiler le paquet correspondant"
 
-#: guix/scripts/build.scm:300
+#: guix/scripts/build.scm:420
 msgid ""
 "\n"
 "      --with-input=PACKAGE=REPLACEMENT\n"
@@ -387,7 +1038,7 @@ msgstr ""
 "      --with-input=PAQUET=REMPLACEMENT\n"
 "                         remplacer le paquet de dépendance PAQUET par REMPLACEMENT"
 
-#: guix/scripts/build.scm:303
+#: guix/scripts/build.scm:423
 msgid ""
 "\n"
 "      --with-graft=PACKAGE=REPLACEMENT\n"
@@ -397,12 +1048,42 @@ msgstr ""
 "      --with-graft=PAQUET=REMPLACEMENT\n"
 "                         greffer le paquet REMPLACEMENT sur les paquets qui font référence à PAQUET"
 
-#: guix/scripts/build.scm:328
+#: guix/scripts/build.scm:426
+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:429
+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:432
+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:463
 #, 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:346
+#: guix/scripts/build.scm:481
 msgid ""
 "\n"
 "  -L, --load-path=DIR    prepend DIR to the package module search path"
@@ -410,7 +1091,7 @@ msgstr ""
 "\n"
 "  -L, --load-path=REP    préfixer le chemin de recherche par REP"
 
-#: guix/scripts/build.scm:348
+#: guix/scripts/build.scm:483
 msgid ""
 "\n"
 "  -K, --keep-failed      keep build tree of failed builds"
@@ -418,7 +1099,7 @@ msgstr ""
 "\n"
 "  -K, --keep-failed      garder l'arbre de compilation pour les compilations ayant échoué"
 
-#: guix/scripts/build.scm:350
+#: guix/scripts/build.scm:485
 msgid ""
 "\n"
 "  -k, --keep-going       keep going when some of the derivations fail"
@@ -426,7 +1107,7 @@ msgstr ""
 "\n"
 "  -k, --keep-going       continuer si certaines dérivations échouent"
 
-#: guix/scripts/build.scm:352
+#: guix/scripts/build.scm:487
 msgid ""
 "\n"
 "  -n, --dry-run          do not build the derivations"
@@ -434,7 +1115,7 @@ msgstr ""
 "\n"
 "  -n, --dry-run          ne pas compiler les dérivations"
 
-#: guix/scripts/build.scm:354
+#: guix/scripts/build.scm:489
 msgid ""
 "\n"
 "      --fallback         fall back to building when the substituter fails"
@@ -442,7 +1123,7 @@ msgstr ""
 "\n"
 "      --fallback         revenir à la compilation quand le substitut échoue"
 
-#: guix/scripts/build.scm:356
+#: guix/scripts/build.scm:491
 msgid ""
 "\n"
 "      --no-substitutes   build instead of resorting to pre-built substitutes"
@@ -450,7 +1131,7 @@ msgstr ""
 "\n"
 "      --no-substitutes   compiler plutôt que recourir à des substituts pré-compilés"
 
-#: guix/scripts/build.scm:358 guix/scripts/size.scm:223
+#: guix/scripts/build.scm:493 guix/scripts/size.scm:233
 msgid ""
 "\n"
 "      --substitute-urls=URLS\n"
@@ -460,7 +1141,7 @@ msgstr ""
 "      --substitute-urls=URLS\n"
 "                         récupérer les substituts depuis les URLS si elles sont autorisées"
 
-#: guix/scripts/build.scm:361
+#: guix/scripts/build.scm:496
 msgid ""
 "\n"
 "      --no-grafts        do not graft packages"
@@ -468,7 +1149,7 @@ msgstr ""
 "\n"
 "      --no-grafts        ne pas greffer les paquets"
 
-#: guix/scripts/build.scm:363
+#: guix/scripts/build.scm:498
 msgid ""
 "\n"
 "      --no-build-hook    do not attempt to offload builds via the build hook"
@@ -476,7 +1157,7 @@ msgstr ""
 "\n"
 "      --no-build-hook    ne pas essayer de décharger les compilations via le hook de compilation"
 
-#: guix/scripts/build.scm:365
+#: guix/scripts/build.scm:500
 msgid ""
 "\n"
 "      --max-silent-time=SECONDS\n"
@@ -486,7 +1167,7 @@ msgstr ""
 "      --max-silent-time=N\n"
 "                         marquer la compilation comme ayant échouée après N secondes de silence"
 
-#: guix/scripts/build.scm:368
+#: guix/scripts/build.scm:503
 msgid ""
 "\n"
 "      --timeout=SECONDS  mark the build as failed after SECONDS of activity"
@@ -494,15 +1175,7 @@ msgstr ""
 "\n"
 "      --timeout=N        marquer la compilation comme ayant échouée après N secondes d'activité"
 
-#: guix/scripts/build.scm:370
-msgid ""
-"\n"
-"      --verbosity=LEVEL  use the given verbosity LEVEL"
-msgstr ""
-"\n"
-"      --verbosity=NIVEAU utiliser le NIVEAU de verbosité donné"
-
-#: guix/scripts/build.scm:372
+#: guix/scripts/build.scm:505
 msgid ""
 "\n"
 "      --rounds=N         build N times in a row to detect non-determinism"
@@ -510,7 +1183,7 @@ msgstr ""
 "\n"
 "      --rounds=N         compiler N fois de suite pour détecter les non déterminismes"
 
-#: guix/scripts/build.scm:374
+#: guix/scripts/build.scm:507
 msgid ""
 "\n"
 "  -c, --cores=N          allow the use of up to N CPU cores for the build"
@@ -518,7 +1191,7 @@ msgstr ""
 "\n"
 "  -c, --cores=N          utiliser jusqu'à N cœurs CPU pour la compilation"
 
-#: guix/scripts/build.scm:376
+#: guix/scripts/build.scm:509
 msgid ""
 "\n"
 "  -M, --max-jobs=N       allow at most N build jobs"
@@ -526,12 +1199,20 @@ msgstr ""
 "\n"
 "  -M, --max-jobs=N       autoriser au plus N tâches de compilation"
 
-#: guix/scripts/build.scm:486 guix/scripts/build.scm:493
+#: guix/scripts/build.scm:511
+msgid ""
+"\n"
+"      --debug=LEVEL      produce debugging output at LEVEL"
+msgstr ""
+"\n"
+"      --debug=NIVEAU     produire une sortie de débogage à ce NIVEAU"
+
+#: guix/scripts/build.scm:621 guix/scripts/build.scm:628
 #, scheme-format
 msgid "not a number: '~a' option argument: ~a~%"
 msgstr "pas un nombre: argument d'option « ~a » : ~a~%"
 
-#: guix/scripts/build.scm:514
+#: guix/scripts/build.scm:649
 msgid ""
 "Usage: guix build [OPTION]... PACKAGE-OR-DERIVATION...\n"
 "Build the given PACKAGE-OR-DERIVATION and return their output paths.\n"
@@ -539,7 +1220,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:516
+#: guix/scripts/build.scm:651
 msgid ""
 "\n"
 "  -e, --expression=EXPR  build the package or derivation EXPR evaluates to"
@@ -547,7 +1228,7 @@ msgstr ""
 "\n"
 "  -e, --expression=EXPR  compiler le paquet ou la dérivation évalué par EXPR"
 
-#: guix/scripts/build.scm:518
+#: guix/scripts/build.scm:653
 msgid ""
 "\n"
 "  -f, --file=FILE        build the package or derivation that the code within\n"
@@ -557,7 +1238,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:521
+#: guix/scripts/build.scm:656
 msgid ""
 "\n"
 "  -S, --source           build the packages' source derivations"
@@ -565,7 +1246,7 @@ msgstr ""
 "\n"
 "  -S, --source           compiler les dérivations de source du paquet"
 
-#: guix/scripts/build.scm:523
+#: guix/scripts/build.scm:658
 msgid ""
 "\n"
 "      --sources[=TYPE]   build source derivations; TYPE may optionally be one\n"
@@ -575,7 +1256,8 @@ msgstr ""
 "      --sources[=TYPE]   compiler les dérivations sources. TYPE peut optionnellement\n"
 "                         être « package », « all » (défaut) ou « transitive »"
 
-#: guix/scripts/build.scm:526 guix/scripts/pack.scm:712
+#: guix/scripts/build.scm:661 guix/scripts/pull.scm:97
+#: guix/scripts/pack.scm:754
 msgid ""
 "\n"
 "  -s, --system=SYSTEM    attempt to build for SYSTEM--e.g., \"i686-linux\""
@@ -583,7 +1265,7 @@ msgstr ""
 "\n"
 "  -s, --system=SYSTÈME   essayer de compiler pour le SYSTÈME donné, par exemple « i686-linux »"
 
-#: guix/scripts/build.scm:528 guix/scripts/pack.scm:714
+#: guix/scripts/build.scm:663 guix/scripts/pack.scm:756
 msgid ""
 "\n"
 "      --target=TRIPLET   cross-build for TRIPLET--e.g., \"armel-linux-gnu\""
@@ -591,7 +1273,7 @@ msgstr ""
 "\n"
 "      --target=TRIPLET   effectuer une compilation croisée pour TRIPLET, par exemple « armel-linux-gnu »"
 
-#: guix/scripts/build.scm:530
+#: guix/scripts/build.scm:665
 msgid ""
 "\n"
 "  -d, --derivations      return the derivation paths of the given packages"
@@ -599,7 +1281,7 @@ msgstr ""
 "\n"
 "  -d, --derivations      retourner les chemins de dérivation pour les paquets donnés"
 
-#: guix/scripts/build.scm:532
+#: guix/scripts/build.scm:667
 msgid ""
 "\n"
 "      --check            rebuild items to check for non-determinism issues"
@@ -607,7 +1289,7 @@ msgstr ""
 "\n"
 "      --check            recompiler les éléments pour détecter des problèmes de non déterminisme"
 
-#: guix/scripts/build.scm:534
+#: guix/scripts/build.scm:669
 msgid ""
 "\n"
 "      --repair           repair the specified items"
@@ -615,7 +1297,7 @@ msgstr ""
 "\n"
 "      --repair           réparer les éléments spécifiés"
 
-#: guix/scripts/build.scm:536
+#: guix/scripts/build.scm:671
 msgid ""
 "\n"
 "  -r, --root=FILE        make FILE a symlink to the result, and register it\n"
@@ -625,7 +1307,17 @@ 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:539
+#: guix/scripts/build.scm:674 guix/scripts/package.scm:360
+#: guix/scripts/pull.scm:95 guix/scripts/system.scm:1032
+#: guix/scripts/copy.scm:120 guix/scripts/pack.scm:771
+msgid ""
+"\n"
+"  -v, --verbosity=LEVEL  use the given verbosity LEVEL"
+msgstr ""
+"\n"
+"      --verbosity=NIVEAU utiliser le NIVEAU de verbosité donné"
+
+#: guix/scripts/build.scm:676
 msgid ""
 "\n"
 "  -q, --quiet            do not show the build log"
@@ -633,7 +1325,7 @@ msgstr ""
 "\n"
 "  -q, --quiet            ne pas montrer le journal de compilation"
 
-#: guix/scripts/build.scm:541
+#: guix/scripts/build.scm:678
 msgid ""
 "\n"
 "      --log-file         return the log file names for the given derivations"
@@ -641,16 +1333,16 @@ msgstr ""
 "\n"
 "      --log-file         retourner les fichiers de journalisation pour les dérivations données"
 
-#: guix/scripts/build.scm:548 guix/scripts/download.scm:83
-#: guix/scripts/package.scm:366 guix/scripts/gc.scm:76
+#: guix/scripts/build.scm:685 guix/scripts/download.scm:83
+#: guix/scripts/package.scm:378 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:95
-#: guix/scripts/substitute.scm:889 guix/scripts/system.scm:1017
-#: guix/scripts/lint.scm:1115 guix/scripts/publish.scm:94
-#: guix/scripts/edit.scm:44 guix/scripts/size.scm:234
-#: guix/scripts/graph.scm:472 guix/scripts/challenge.scm:241
-#: guix/scripts/copy.scm:122 guix/scripts/pack.scm:730
-#: guix/scripts/weather.scm:259 guix/scripts/describe.scm:71
+#: 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:71
 #: guix/scripts/processes.scm:200 guix/scripts/container.scm:34
 #: guix/scripts/container/exec.scm:43
 msgid ""
@@ -660,16 +1352,16 @@ msgstr ""
 "\n"
 "  -h, --help             afficher cette aide et quitter"
 
-#: guix/scripts/build.scm:550 guix/scripts/download.scm:85
-#: guix/scripts/package.scm:368 guix/scripts/gc.scm:78
+#: guix/scripts/build.scm:687 guix/scripts/download.scm:85
+#: guix/scripts/package.scm:380 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:97
-#: guix/scripts/substitute.scm:891 guix/scripts/system.scm:1019
-#: guix/scripts/lint.scm:1119 guix/scripts/publish.scm:96
-#: guix/scripts/edit.scm:46 guix/scripts/size.scm:236
-#: guix/scripts/graph.scm:474 guix/scripts/challenge.scm:243
-#: guix/scripts/copy.scm:124 guix/scripts/pack.scm:732
-#: guix/scripts/weather.scm:261 guix/scripts/describe.scm:73
+#: 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:73
 #: guix/scripts/processes.scm:202 guix/scripts/container.scm:36
 #: guix/scripts/container/exec.scm:45
 msgid ""
@@ -679,7 +1371,7 @@ msgstr ""
 "\n"
 "  -V, --version          afficher les informations sur la version et quitter"
 
-#: guix/scripts/build.scm:577
+#: guix/scripts/build.scm:714
 #, scheme-format
 msgid ""
 "invalid argument: '~a' option argument: ~a, ~\n"
@@ -688,22 +1380,22 @@ msgstr ""
 "argument invalide: argument en option « ~a » : ~a, ~\n"
 "doit être « package », « all » ou « transitive »~%"
 
-#: guix/scripts/build.scm:630
+#: guix/scripts/build.scm:772
 #, scheme-format
 msgid "~s: not something we can build~%"
 msgstr "~s : pas quelque chose qu'on sait compiler~%"
 
-#: guix/scripts/build.scm:688
+#: guix/scripts/build.scm:837
 #, scheme-format
 msgid "~a: warning: package '~a' has no source~%"
 msgstr "~a : attention : le paquet « ~a » n'a pas de source~%"
 
-#: guix/scripts/build.scm:726
+#: guix/scripts/build.scm:885
 #, scheme-format
 msgid "no build log for '~a'~%"
 msgstr "aucun journal de compilation pour « ~a »~%"
 
-#: guix/discovery.scm:91
+#: guix/discovery.scm:92
 #, scheme-format
 msgid "cannot access `~a': ~a~%"
 msgstr "impossible d'accéder à « ~a » : ~a~%"
@@ -722,7 +1414,7 @@ msgstr ""
 "au fichier spécifié puis afficher son nom de fichier et l'empreinte de son\n"
 "contenu.\n"
 "\n"
-"Formats supportés : « nix-base32 » (par défaut), « base32 », et « base16 »\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:75 guix/scripts/hash.scm:55
@@ -754,10 +1446,10 @@ msgstr ""
 #: guix/scripts/download.scm:103 guix/scripts/hash.scm:83
 #, scheme-format
 msgid "unsupported hash format: ~a~%"
-msgstr "format d'empreinte non supporté : ~a~%"
+msgstr "format d'empreinte non pris en charge : ~a~%"
 
-#: guix/scripts/download.scm:138 guix/scripts/package.scm:905
-#: guix/scripts/publish.scm:883
+#: guix/scripts/download.scm:138 guix/scripts/package.scm:896
+#: guix/scripts/publish.scm:890
 #, scheme-format
 msgid "~A: extraneous argument~%"
 msgstr "~A : argument superflu~%"
@@ -777,45 +1469,45 @@ msgstr "~a : impossible d'évaluer l'URI~%"
 msgid "~a: download failed~%"
 msgstr "~a : le téléchargement a échoué~%"
 
-#: guix/scripts/package.scm:109
+#: guix/scripts/package.scm:111
 #, 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:116
+#: guix/scripts/package.scm:118
 #, scheme-format
 msgid "no matching generation~%"
 msgstr "aucune génération correspondante~%"
 
-#: guix/scripts/package.scm:119 guix/scripts/package.scm:707
-#: guix/scripts/system.scm:622
+#: guix/scripts/package.scm:121 guix/scripts/package.scm:693
+#: guix/scripts/system.scm:626
 #, scheme-format
 msgid "invalid syntax: ~a~%"
 msgstr "syntaxe non valide : ~a~%"
 
-#: guix/scripts/package.scm:148
+#: guix/scripts/package.scm:150
 #, scheme-format
 msgid "nothing to be done~%"
 msgstr "aucune action à faire~%"
 
-#: guix/scripts/package.scm:162
+#: guix/scripts/package.scm:164
 #, scheme-format
 msgid "~a package in profile~%"
 msgid_plural "~a packages in profile~%"
 msgstr[0] "~a paquet dans le profile~%"
 msgstr[1] "~a paquets dans le profile~%"
 
-#: guix/scripts/package.scm:248
+#: guix/scripts/package.scm:251
 #, scheme-format
 msgid "package '~a' no longer exists~%"
 msgstr "le paquet « ~a » n'existe plus~%"
 
-#: guix/scripts/package.scm:286
+#: guix/scripts/package.scm:297
 #, scheme-format
 msgid "The following environment variable definitions may be needed:~%"
 msgstr "Il pourrait être nécessaire de définir les variables d'environnement suivantes :~%"
 
-#: guix/scripts/package.scm:305
+#: guix/scripts/package.scm:317
 msgid ""
 "Usage: guix package [OPTION]...\n"
 "Install, remove, or upgrade packages in a single transaction.\n"
@@ -823,7 +1515,7 @@ msgstr ""
 "Usage : guix package [OPTION]...\n"
 "Installer, supprimer ou mettre à jour les paquets en une seule transaction.\n"
 
-#: guix/scripts/package.scm:307
+#: guix/scripts/package.scm:319
 msgid ""
 "\n"
 "  -i, --install PACKAGE ...\n"
@@ -833,7 +1525,7 @@ msgstr ""
 "  -i, --install=PAQUET ...\n"
 "                         installer les PAQUETs"
 
-#: guix/scripts/package.scm:310
+#: guix/scripts/package.scm:322
 msgid ""
 "\n"
 "  -e, --install-from-expression=EXP\n"
@@ -843,7 +1535,7 @@ msgstr ""
 "  -e, --install-from-expression=EXP\n"
 "                         installer le paquet évalué par EXP"
 
-#: guix/scripts/package.scm:313
+#: guix/scripts/package.scm:325
 msgid ""
 "\n"
 "  -f, --install-from-file=FILE\n"
@@ -855,7 +1547,7 @@ msgstr ""
 "                         installer le paquet évalué par le code dans\n"
 "                         FICHIER"
 
-#: guix/scripts/package.scm:317
+#: guix/scripts/package.scm:329
 msgid ""
 "\n"
 "  -r, --remove PACKAGE ...\n"
@@ -865,7 +1557,7 @@ msgstr ""
 "  -r, --remove=PAQUET ...\n"
 "                         supprimer les PAQUETs"
 
-#: guix/scripts/package.scm:320
+#: guix/scripts/package.scm:332
 msgid ""
 "\n"
 "  -u, --upgrade[=REGEXP] upgrade all the installed packages matching REGEXP"
@@ -873,7 +1565,7 @@ msgstr ""
 "\n"
 "  -u, --upgrade[=REGEXP] mettre à jour tous les paquets installés correspondant à REGEXP"
 
-#: guix/scripts/package.scm:322
+#: guix/scripts/package.scm:334
 msgid ""
 "\n"
 "  -m, --manifest=FILE    create a new profile generation with the manifest\n"
@@ -883,7 +1575,7 @@ msgstr ""
 "  -m, --manifest=FICHIER créer une nouvelle génération de profil avec le\n"
 "                         manifeste dans FICHIER"
 
-#: guix/scripts/package.scm:325
+#: guix/scripts/package.scm:337
 msgid ""
 "\n"
 "      --do-not-upgrade[=REGEXP] do not upgrade any packages matching REGEXP"
@@ -891,7 +1583,7 @@ msgstr ""
 "\n"
 "      --do-not-upgrade[=REGEXP] ne pas mettre à jour les paquets correspondant à REGEXP"
 
-#: guix/scripts/package.scm:327
+#: guix/scripts/package.scm:339
 msgid ""
 "\n"
 "      --roll-back        roll back to the previous generation"
@@ -899,7 +1591,7 @@ msgstr ""
 "\n"
 "      --roll-back        revenir à la génération antérieure"
 
-#: guix/scripts/package.scm:329
+#: guix/scripts/package.scm:341
 msgid ""
 "\n"
 "      --search-paths[=KIND]\n"
@@ -909,7 +1601,7 @@ msgstr ""
 "      --search-paths=[GENRE]\n"
 "                         afficher les définitions de variables d'environnement requises"
 
-#: guix/scripts/package.scm:332 guix/scripts/pull.scm:84
+#: guix/scripts/package.scm:344 guix/scripts/pull.scm:90
 msgid ""
 "\n"
 "  -l, --list-generations[=PATTERN]\n"
@@ -919,7 +1611,7 @@ msgstr ""
 "  -l, --list-generations[=MOTIF]\n"
 "                         lister les générations correspondant à MOTIF"
 
-#: guix/scripts/package.scm:335
+#: guix/scripts/package.scm:347
 msgid ""
 "\n"
 "  -d, --delete-generations[=PATTERN]\n"
@@ -929,7 +1621,7 @@ msgstr ""
 "  -d, --delete-generations[=MOTIF]\n"
 "                         supprimer les générations correspondant à MOTIF"
 
-#: guix/scripts/package.scm:338
+#: guix/scripts/package.scm:350
 msgid ""
 "\n"
 "  -S, --switch-generation=PATTERN\n"
@@ -939,7 +1631,7 @@ msgstr ""
 "  -S, --switch-generation=MOTIF\n"
 "                         basculer vers une génération correspondant à MOTIF"
 
-#: guix/scripts/package.scm:341
+#: guix/scripts/package.scm:353
 msgid ""
 "\n"
 "  -p, --profile=PROFILE  use PROFILE instead of the user's default profile"
@@ -947,7 +1639,7 @@ msgstr ""
 "\n"
 "  -p, --profile=PROFIL   utiliser PROFIL au lieu du profil par défaut de l'utilisateur"
 
-#: guix/scripts/package.scm:344
+#: guix/scripts/package.scm:356
 msgid ""
 "\n"
 "      --allow-collisions do not treat collisions in the profile as an error"
@@ -955,7 +1647,7 @@ msgstr ""
 "\n"
 "      --allow-collisions ne pas traiter les collisions dans le profil comme une erreur"
 
-#: guix/scripts/package.scm:346
+#: guix/scripts/package.scm:358
 msgid ""
 "\n"
 "      --bootstrap        use the bootstrap Guile to build the profile"
@@ -963,15 +1655,7 @@ msgstr ""
 "\n"
 "      --bootstrap        utiliser le programme d'amorçage Guile pour compiler le profil"
 
-#: guix/scripts/package.scm:348 guix/scripts/pull.scm:74
-msgid ""
-"\n"
-"      --verbose          produce verbose output"
-msgstr ""
-"\n"
-"      --verbose          produire une sortie verbeuse"
-
-#: guix/scripts/package.scm:351
+#: guix/scripts/package.scm:363
 msgid ""
 "\n"
 "  -s, --search=REGEXP    search in synopsis and description using REGEXP"
@@ -979,7 +1663,7 @@ msgstr ""
 "\n"
 "  -s, --search=REGEXP    chercher dans le synopsis et la description en utilisant REGEXP"
 
-#: guix/scripts/package.scm:353
+#: guix/scripts/package.scm:365
 msgid ""
 "\n"
 "  -I, --list-installed[=REGEXP]\n"
@@ -989,7 +1673,7 @@ msgstr ""
 "  -I, --list-installed[=REGEXP]\n"
 "                         lister les paquets installés correspondant à REGEXP"
 
-#: guix/scripts/package.scm:356
+#: guix/scripts/package.scm:368
 msgid ""
 "\n"
 "  -A, --list-available[=REGEXP]\n"
@@ -999,7 +1683,7 @@ msgstr ""
 "  -A, --list-available[=REGEXP]\n"
 "                         lister les paquets disponibles correspondant à REGEXP"
 
-#: guix/scripts/package.scm:359
+#: guix/scripts/package.scm:371
 msgid ""
 "\n"
 "      --show=PACKAGE     show details about PACKAGE"
@@ -1007,42 +1691,42 @@ msgstr ""
 "\n"
 "      --show=PAQUET      montrer des détails du PAQUET"
 
-#: guix/scripts/package.scm:411
+#: guix/scripts/package.scm:423
 #, 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:414
+#: guix/scripts/package.scm:426
 #, scheme-format
 msgid "is this intended?~%"
 msgstr "est-ce intentionnel ?~%"
 
-#: guix/scripts/package.scm:459
+#: guix/scripts/package.scm:471
 #, scheme-format
 msgid "~a: unsupported kind of search path~%"
-msgstr "~a : type de chemin de recherche non supporté~%"
+msgstr "~a : type de chemin de recherche non pris en charge~%"
 
-#: guix/scripts/package.scm:776
+#: guix/scripts/package.scm:767
 #, scheme-format
 msgid "~a~@[@~a~]: package not found~%"
 msgstr "~a~@[@~a~] : paquet introuvable~%"
 
-#: guix/scripts/package.scm:810
+#: guix/scripts/package.scm:801
 #, scheme-format
 msgid "cannot switch to generation '~a'~%"
 msgstr "impossible de passer à la génération « ~a »~%"
 
-#: guix/scripts/package.scm:827
+#: guix/scripts/package.scm:818
 #, scheme-format
 msgid "would install new manifest from '~a' with ~d entries~%"
 msgstr "installerait le nouveau manifeste depuis « ~a » avec ~d entrées~%"
 
-#: guix/scripts/package.scm:829
+#: guix/scripts/package.scm:820
 #, scheme-format
 msgid "installing new manifest from '~a' with ~d entries~%"
 msgstr "installation du nouveau manifeste depuis « ~a » avec ~d entrées~%"
 
-#: guix/scripts/gc.scm:42
+#: guix/scripts/gc.scm:45
 msgid ""
 "Usage: guix gc [OPTION]... PATHS...\n"
 "Invoke the garbage collector.\n"
@@ -1050,7 +1734,7 @@ msgstr ""
 "Usage : guix gc [OPTION]... CHEMINS...\n"
 "Appeler le ramasse-miettes (GC).\n"
 
-#: guix/scripts/gc.scm:44
+#: guix/scripts/gc.scm:47
 msgid ""
 "\n"
 "  -C, --collect-garbage[=MIN]\n"
@@ -1060,7 +1744,7 @@ msgstr ""
 "  -C, --collect-garbage[=MIN]\n"
 "                         collecter au moins MIN octets dans le ramasse-miettes"
 
-#: guix/scripts/gc.scm:47
+#: guix/scripts/gc.scm:50
 msgid ""
 "\n"
 "  -F, --free-space=FREE  attempt to reach FREE available space in the store"
@@ -1068,15 +1752,33 @@ msgstr ""
 "\n"
 "  -F, --free-space=LIBRE essayer d'atteindre LIBRE espace dans le dépôt"
 
-#: guix/scripts/gc.scm:49
+#: guix/scripts/gc.scm:52
+msgid ""
+"\n"
+"  -d, --delete-generations[=PATTERN]\n"
+"                         delete profile generations matching PATTERN"
+msgstr ""
+"\n"
+"  -d, --delete-generations[=MOTIF]\n"
+"                         supprimer les générations correspondant à MOTIF"
+
+#: guix/scripts/gc.scm:55
+msgid ""
+"\n"
+"  -D, --delete           attempt to delete PATHS"
+msgstr ""
+"\n"
+"  -D, --delete           essayer de supprimer les CHEMINS"
+
+#: guix/scripts/gc.scm:57
 msgid ""
 "\n"
-"  -d, --delete           attempt to delete PATHS"
+"      --list-roots       list the user's garbage collector roots"
 msgstr ""
 "\n"
-"  -d, --delete           essayer de supprimer les CHEMINS"
+"      --list-roots       lister les racine du ramasse-miettes pour l'utilisateur"
 
-#: guix/scripts/gc.scm:51
+#: guix/scripts/gc.scm:59
 msgid ""
 "\n"
 "      --optimize         optimize the store by deduplicating identical files"
@@ -1084,7 +1786,7 @@ msgstr ""
 "\n"
 "      --optimize         optimise le dépôt en supprimant les doublons des fichiers identiques"
 
-#: guix/scripts/gc.scm:53
+#: guix/scripts/gc.scm:61
 msgid ""
 "\n"
 "      --list-dead        list dead paths"
@@ -1092,7 +1794,7 @@ msgstr ""
 "\n"
 "      --list-dead        lister les chemins non valides"
 
-#: guix/scripts/gc.scm:55
+#: guix/scripts/gc.scm:63
 msgid ""
 "\n"
 "      --list-live        list live paths"
@@ -1100,7 +1802,7 @@ msgstr ""
 "\n"
 "      --list-live        lister les chemins valides"
 
-#: guix/scripts/gc.scm:58
+#: guix/scripts/gc.scm:66
 msgid ""
 "\n"
 "      --references       list the references of PATHS"
@@ -1108,7 +1810,7 @@ msgstr ""
 "\n"
 "      --references       lister les références de CHEMINS"
 
-#: guix/scripts/gc.scm:60
+#: guix/scripts/gc.scm:68
 msgid ""
 "\n"
 "  -R, --requisites       list the requisites of PATHS"
@@ -1116,7 +1818,7 @@ msgstr ""
 "\n"
 "  -R, --requisites       lister les prérequis de CHEMINS"
 
-#: guix/scripts/gc.scm:62
+#: guix/scripts/gc.scm:70
 msgid ""
 "\n"
 "      --referrers        list the referrers of PATHS"
@@ -1124,7 +1826,7 @@ msgstr ""
 "\n"
 "      --referrers        lister les référents de CHEMINS"
 
-#: guix/scripts/gc.scm:64
+#: guix/scripts/gc.scm:72
 msgid ""
 "\n"
 "      --derivers         list the derivers of PATHS"
@@ -1132,7 +1834,7 @@ msgstr ""
 "\n"
 "      --derivers        lister les dérivations menant à CHEMINS"
 
-#: guix/scripts/gc.scm:67
+#: guix/scripts/gc.scm:75
 msgid ""
 "\n"
 "      --verify[=OPTS]    verify the integrity of the store; OPTS is a\n"
@@ -1144,7 +1846,7 @@ msgstr ""
 "                         combinaison de « repair » et « contents » séparés\n"
 "                         par une virgule"
 
-#: guix/scripts/gc.scm:71
+#: guix/scripts/gc.scm:79
 msgid ""
 "\n"
 "      --list-failures    list cached build failures"
@@ -1152,7 +1854,7 @@ msgstr ""
 "\n"
 "      --list-failures    lister les échecs de compilation en cache"
 
-#: guix/scripts/gc.scm:73
+#: guix/scripts/gc.scm:81
 msgid ""
 "\n"
 "      --clear-failures   remove PATHS from the set of cached failures"
@@ -1160,30 +1862,40 @@ msgstr ""
 "\n"
 "      --clear-failures   supprimer CHEMINS de l'ensemble des échecs en cache"
 
-#: guix/scripts/gc.scm:87
+#: guix/scripts/gc.scm:95
 #, scheme-format
 msgid "~a: invalid '--verify' option~%"
 msgstr "~a : option « --verify » invalide~%"
 
-#: guix/scripts/gc.scm:117
+#: guix/scripts/gc.scm:135
 #, scheme-format
 msgid "invalid amount of storage: ~a~%"
 msgstr "quantité de stockage non valide : ~a~%"
 
-#: guix/scripts/gc.scm:202
+#: guix/scripts/gc.scm:149
+#, scheme-format
+msgid "'-d' as an alias for '--delete' is deprecated; use '-D'~%"
+msgstr "l'utilisation de « -d » pour « --delete » est obsolète. Utilisez plutôt « -D »~%"
+
+#: guix/scripts/gc.scm:156
+#, scheme-format
+msgid "~s does not denote a duration~%"
+msgstr "« ~s » ne correspond pas à une durée~%"
+
+#: guix/scripts/gc.scm:239
 msgid "already ~h MiBs available on ~a, nothing to do~%"
 msgstr "déjà ~h Mo disponibles sur ~a, rien à faire~%"
 
-#: guix/scripts/gc.scm:205
+#: guix/scripts/gc.scm:242
 msgid "freeing ~h MiBs~%"
 msgstr "libération de ~h Mo~%"
 
-#: guix/scripts/gc.scm:217
+#: guix/scripts/gc.scm:275
 #, scheme-format
 msgid "extraneous arguments: ~{~a ~}~%"
 msgstr "arguments superflus : ~{~a ~}~%"
 
-#: guix/scripts/gc.scm:237 guix/scripts/gc.scm:240
+#: guix/scripts/gc.scm:299 guix/scripts/gc.scm:302
 msgid "freed ~h MiBs~%"
 msgstr "~h Mo libérés~%"
 
@@ -1198,7 +1910,7 @@ msgstr ""
 "Usage : guix hash [OPTION] FICHIER\n"
 "Retourner l'empreinte cryptographique du FICHIER.\n"
 "\n"
-"Formats supportés: « nix-base32 » (par défaut), « base32 », et « base16 » (« hex »\n"
+"Formats pris en charge : « nix-base32 » (par défaut), « base32 », et « base16 » (« hex »\n"
 "et « hexadecimal » peuvent également être utilisés).\n"
 
 #: guix/scripts/hash.scm:53
@@ -1217,13 +1929,16 @@ msgstr ""
 "\n"
 "  -r, --recursive        calculer l'empreinte de FICHIER de manière récursive"
 
-#: guix/scripts/hash.scm:151 guix/ui.scm:371 guix/ui.scm:728 guix/ui.scm:781
+#: guix/scripts/hash.scm:151 guix/ui.scm:443 guix/ui.scm:450 guix/ui.scm:475
+#: guix/ui.scm:785 guix/ui.scm:807 guix/ui.scm:813 guix/ui.scm:819
+#: guix/ui.scm:872
 #, scheme-format
 msgid "~a~%"
 msgstr "~a~%"
 
-#: guix/scripts/hash.scm:154 guix/scripts/system.scm:1189
-#: guix/scripts/system.scm:1198 guix/scripts/system.scm:1205
+#: 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
 #, scheme-format
 msgid "wrong number of arguments~%"
 msgstr "nombre d'arguments incorrect~%"
@@ -1243,7 +1958,7 @@ msgstr "IMPORTATEUR doit être un des importateurs listés ci-dessous:\n"
 #: guix/scripts/import.scm:104
 #, scheme-format
 msgid "guix import: missing importer name~%"
-msgstr "guix import: nom d'importateur manquant~%"
+msgstr "guix import: nom d'importateur absent~%"
 
 #: guix/scripts/import.scm:124
 #, scheme-format
@@ -1339,7 +2054,7 @@ msgstr ""
 msgid "failed to download package '~a'~%"
 msgstr "échec lors du téléchargement du paquet « ~a »~%"
 
-#: guix/scripts/pull.scm:72
+#: guix/scripts/pull.scm:76
 msgid ""
 "Usage: guix pull [OPTION]...\n"
 "Download and deploy the latest version of Guix.\n"
@@ -1347,7 +2062,15 @@ msgstr ""
 "Usage : guix pull [OPTION]...\n"
 "Télécharger et déployer la dernière version de Guix.\n"
 
-#: guix/scripts/pull.scm:76
+#: guix/scripts/pull.scm:78
+msgid ""
+"\n"
+"      --verbose          produce verbose output"
+msgstr ""
+"\n"
+"      --verbose          produire une sortie verbeuse"
+
+#: guix/scripts/pull.scm:80
 msgid ""
 "\n"
 "  -C, --channels=FILE    deploy the channels defined in FILE"
@@ -1355,7 +2078,7 @@ msgstr ""
 "\n"
 "  -C, --channels=FICHIER déploie les canaux définis dans FICHIER"
 
-#: guix/scripts/pull.scm:78
+#: guix/scripts/pull.scm:82
 msgid ""
 "\n"
 "      --url=URL          download from the Git repository at URL"
@@ -1363,7 +2086,7 @@ msgstr ""
 "\n"
 "      --url=URL          télécharger le dépôt Git depuis URL"
 
-#: guix/scripts/pull.scm:80
+#: guix/scripts/pull.scm:84
 msgid ""
 "\n"
 "      --commit=COMMIT    download the specified COMMIT"
@@ -1371,7 +2094,7 @@ msgstr ""
 "\n"
 "      --commit=COMMIT    télécharger le COMMIT indiqué"
 
-#: guix/scripts/pull.scm:82
+#: guix/scripts/pull.scm:86
 msgid ""
 "\n"
 "      --branch=BRANCH    download the tip of the specified BRANCH"
@@ -1379,24 +2102,24 @@ msgstr ""
 "\n"
 "      --branch=BRANCHE   télécharger le bout de la BRANCHE indiquée"
 
-#: guix/scripts/pull.scm:87
-#, scheme-format
+#: guix/scripts/pull.scm:88
 msgid ""
 "\n"
-"  -p, --profile=PROFILE  use PROFILE instead of ~/.config/guix/current"
+"  -N, --news             display news compared to the previous generation"
 msgstr ""
 "\n"
-"  -p, --profile=PROFIL   utiliser PROFIL au lieu de ~/.config/guix/current"
+"  -N, --news             affiche les nouveautés par rapport à la génération précédente"
 
-#: guix/scripts/pull.scm:89
+#: guix/scripts/pull.scm:93
+#, scheme-format
 msgid ""
 "\n"
-"  -n, --dry-run          show what would be pulled and built"
+"  -p, --profile=PROFILE  use PROFILE instead of ~/.config/guix/current"
 msgstr ""
 "\n"
-"  -n, --dry-run          montrer ce qui serait récupéré et ce qui serait construit"
+"  -p, --profile=PROFIL   utiliser PROFIL au lieu de ~/.config/guix/current"
 
-#: guix/scripts/pull.scm:91
+#: guix/scripts/pull.scm:99
 msgid ""
 "\n"
 "      --bootstrap        use the bootstrap Guile to build the new Guix"
@@ -1404,63 +2127,80 @@ msgstr ""
 "\n"
 "      --bootstrap        utiliser le programme d'amorçage Guile pour compiler le nouveau Guix"
 
-#: guix/scripts/pull.scm:165
+#: guix/scripts/pull.scm:196
 msgid "New in this revision:\n"
 msgstr "Nouveautés de cette révision :\n"
 
-#: guix/scripts/pull.scm:223
+#: guix/scripts/pull.scm:221
+#, scheme-format
+msgid ""
+"After setting @code{PATH}, run\n"
+"@command{hash guix} to make sure your shell refers to @file{~a}."
+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:245
 #, scheme-format
 msgid "Git error ~a~%"
 msgstr "Erreur Git : ~a~%"
 
-#: guix/scripts/pull.scm:225
+#: guix/scripts/pull.scm:247 guix/git.scm:306
 #, scheme-format
 msgid "Git error: ~a~%"
 msgstr "Erreur Git : ~a~%"
 
-#: guix/scripts/pull.scm:250
+#: guix/scripts/pull.scm:272
 #, scheme-format
 msgid "Migrating profile generations to '~a'...~%"
 msgstr "Migration des générations du profil vers « ~a »...~%"
 
-#: guix/scripts/pull.scm:285
+#: guix/scripts/pull.scm:307
 #, scheme-format
 msgid "while creating symlink '~a': ~a~%"
 msgstr "pendant la création du lien symbolique « ~a » : ~a ~%"
 
-#: guix/scripts/pull.scm:307
+#: guix/scripts/pull.scm:329
 #, scheme-format
 msgid "    repository URL: ~a~%"
 msgstr "    URL du dépôt : ~a~%"
 
-#: guix/scripts/pull.scm:309
+#: guix/scripts/pull.scm:331
 #, scheme-format
 msgid "    branch: ~a~%"
 msgstr "    branche: ~a~%"
 
-#: guix/scripts/pull.scm:310
+#: guix/scripts/pull.scm:332
 #, scheme-format
 msgid "    commit: ~a~%"
 msgstr "    commit : ~a~%"
 
-#: guix/scripts/pull.scm:376
+#: guix/scripts/pull.scm:434
 msgid "  ~h new package: ~a~%"
 msgid_plural "  ~h new packages: ~a~%"
 msgstr[0] "  ~h nouveau paquet : ~a~%"
-msgstr[1] "  ~h nouveau paquets : ~a~%"
+msgstr[1] "  ~h nouveaux paquets : ~a~%"
 
-#: guix/scripts/pull.scm:387
+#: guix/scripts/pull.scm:442
 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:451
+msgid ""
+"Run @command{guix pull --news} to view the complete\n"
+"list of package changes."
+msgstr ""
+"Lancez @command{guix pull --news} pour voir la liste complète\n"
+"des paquets modifiés."
+
+#: guix/scripts/pull.scm:515
 #, 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:465
+#: guix/scripts/pull.scm:529
 #, scheme-format
 msgid ""
 "The 'GUIX_PULL_URL' environment variable is deprecated.\n"
@@ -1469,12 +2209,7 @@ msgstr ""
 "La variable d'environnement « GUIX_PULL_URL » est obsolète.\n"
 "Utilisez « ~/.config/guix/channels.scm » à la place."
 
-#: guix/scripts/pull.scm:490
-#, scheme-format
-msgid "'--url', '--commit', and '--branch' are not applicable~%"
-msgstr "'--url', '--commit' et '--branch' ne sont pas utilisables~%"
-
-#: guix/scripts/pull.scm:515
+#: guix/scripts/pull.scm:578
 #, scheme-format
 msgid "Building from this channel:~%"
 msgid_plural "Building from these channels:~%"
@@ -1504,7 +2239,7 @@ msgstr "essayez l'option « --no-substitutes » si le problème persiste~%"
 #: guix/scripts/substitute.scm:226
 #, scheme-format
 msgid "unsupported substitute URI scheme: ~a~%"
-msgstr "schéma de substitution URI non supporté : ~a~%"
+msgstr "schéma de substitution d'URI non pris en charge : ~a~%"
 
 #: guix/scripts/substitute.scm:261
 #, scheme-format
@@ -1524,7 +2259,7 @@ msgstr "la version de la signature doit être un nombre: ~s~%"
 #: guix/scripts/substitute.scm:320
 #, scheme-format
 msgid "unsupported signature version: ~a~%"
-msgstr "version de signature non supportée : ~a~%"
+msgstr "version de signature non prise en charge : ~a~%"
 
 #: guix/scripts/substitute.scm:328
 #, scheme-format
@@ -1556,37 +2291,37 @@ msgstr "« ~a » est signé avec une clé non autorisée~%"
 msgid "signature on '~a' is corrupt~%"
 msgstr "la signature de « ~a » est corrompue~%"
 
-#: guix/scripts/substitute.scm:458
+#: guix/scripts/substitute.scm:467
 #, scheme-format
 msgid "'~a' does not name a store item~%"
 msgstr "« ~a » ne nomme pas un élément du stockage~%"
 
-#: guix/scripts/substitute.scm:620
+#: guix/scripts/substitute.scm:629
 #, scheme-format
 msgid "updating substitutes from '~a'... ~5,1f%"
-msgstr "mise à jour des substituts depuis « ~a »... ~5,1f%"
+msgstr "mise à jour des substituts depuis « ~a »... ~5,1f %"
 
-#: guix/scripts/substitute.scm:684
+#: guix/scripts/substitute.scm:693
 #, scheme-format
 msgid "~s: unsupported server URI scheme~%"
-msgstr "~s : schéma de URI serveur non supporté~%"
+msgstr "~s : schéma d'URI du serveur non pris en charge~%"
 
-#: guix/scripts/substitute.scm:694
+#: guix/scripts/substitute.scm:703
 #, scheme-format
 msgid "'~a' uses different store '~a'; ignoring it~%"
 msgstr "« ~a » utilise un stockage « ~a » différent. Il est ignoré~%"
 
-#: guix/scripts/substitute.scm:863
+#: guix/scripts/substitute.scm:872
 #, scheme-format
 msgid "host name lookup error: ~a~%"
 msgstr "erreur lors de la consultation du nom d'hôte : ~a~%"
 
-#: guix/scripts/substitute.scm:868
+#: guix/scripts/substitute.scm:877
 #, scheme-format
 msgid "TLS error in procedure '~a': ~a~%"
 msgstr "Erreur TLS dans la procédure « ~a » : ~a~%"
 
-#: guix/scripts/substitute.scm:879
+#: guix/scripts/substitute.scm:888
 msgid ""
 "Usage: guix substitute [OPTION]...\n"
 "Internal tool to substitute a pre-built binary to a local build.\n"
@@ -1594,7 +2329,7 @@ msgstr ""
 "Usage : guix substitute [OPTION]...\n"
 "Outil interne pour substituer un binaire pré-compilé à une compilation locale.\n"
 
-#: guix/scripts/substitute.scm:881
+#: guix/scripts/substitute.scm:890
 msgid ""
 "\n"
 "      --query            report on the availability of substitutes for the\n"
@@ -1605,7 +2340,7 @@ msgstr ""
 "                         noms de fichiers de dépôt passés sur l'entrée\n"
 "                         standard"
 
-#: guix/scripts/substitute.scm:884
+#: guix/scripts/substitute.scm:893
 msgid ""
 "\n"
 "      --substitute STORE-FILE DESTINATION\n"
@@ -1617,26 +2352,26 @@ msgstr ""
 "                         télécharger FICHIER-DÉPÔT et l'enregistrer comme un Nar\n"
 "                         dans le fichier DESTINATION"
 
-#: guix/scripts/substitute.scm:949
+#: guix/scripts/substitute.scm:958
 #, scheme-format
 msgid "no valid substitute for '~a'~%"
 msgstr "pas de substitut valide pour « ~a »~%"
 
-#: guix/scripts/substitute.scm:957
+#: guix/scripts/substitute.scm:966
 #, scheme-format
 msgid "Downloading ~a...~%"
 msgstr "Téléchargement de « ~a »...~%"
 
-#: guix/scripts/substitute.scm:1019
+#: guix/scripts/substitute.scm:1028
 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:1073
+#: guix/scripts/substitute.scm:1082
 #, scheme-format
 msgid "~a: invalid URI~%"
 msgstr "~a : URI invalide~%"
 
-#: guix/scripts/substitute.scm:1144
+#: guix/scripts/substitute.scm:1153
 #, scheme-format
 msgid "~a: unrecognized options~%"
 msgstr "~a : options non reconnues~%"
@@ -1675,77 +2410,77 @@ msgstr ""
 msgid "wrong arguments"
 msgstr "mauvais arguments"
 
-#: guix/scripts/system.scm:148
+#: guix/scripts/system.scm:150
 #, scheme-format
 msgid "failed to register '~a' under '~a'~%"
 msgstr "impossible d'enregistrer « ~a » sous « ~a »~%"
 
-#: guix/scripts/system.scm:163
+#: guix/scripts/system.scm:165
 #, scheme-format
 msgid "copying to '~a'..."
 msgstr "copie vers « ~a »..."
 
-#: guix/scripts/system.scm:204
+#: guix/scripts/system.scm:206
 #, scheme-format
 msgid "failed to install bootloader ~a~%"
 msgstr "impossible d'installer le chargeur de démarrage : ~a~%"
 
-#: guix/scripts/system.scm:224
+#: guix/scripts/system.scm:226
 #, scheme-format
 msgid "initializing the current root file system~%"
 msgstr "initialisation du système de fichier racine courant~%"
 
-#: guix/scripts/system.scm:238
+#: guix/scripts/system.scm:240
 #, 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:290
+#: guix/scripts/system.scm:292
 #, scheme-format
 msgid "while talking to shepherd: ~a~%"
 msgstr "en parlant au shepherd : ~a~%"
 
-#: guix/scripts/system.scm:297
+#: guix/scripts/system.scm:299
 #, scheme-format
 msgid "service '~a' could not be found~%"
 msgstr "service: « ~a » introuvable~%"
 
-#: guix/scripts/system.scm:300
+#: guix/scripts/system.scm:302
 #, 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:304
+#: guix/scripts/system.scm:306
 #, 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:312
+#: guix/scripts/system.scm:314
 #, scheme-format
 msgid "something went wrong: ~s~%"
 msgstr "quelque chose s'est mal passé : ~s~%"
 
-#: guix/scripts/system.scm:315
+#: guix/scripts/system.scm:317
 #, scheme-format
 msgid "shepherd error~%"
 msgstr "erreur du shepherd~%"
 
-#: guix/scripts/system.scm:332
+#: guix/scripts/system.scm:334
 #, scheme-format
 msgid "failed to obtain list of shepherd services~%"
 msgstr "erreur en essayant d'obtenir la liste des services du shepherd~%"
 
-#: guix/scripts/system.scm:352
+#: guix/scripts/system.scm:354
 #, scheme-format
 msgid "unloading service '~a'...~%"
 msgstr "déchargement du service « ~a »...~%"
 
-#: guix/scripts/system.scm:361
+#: guix/scripts/system.scm:363
 #, scheme-format
 msgid "loading new services:~{ ~a~}...~%"
 msgstr "chargement des nouveaux services :~{ ~a~}...~%"
 
-#: guix/scripts/system.scm:366
+#: 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"
@@ -1754,41 +2489,41 @@ msgstr ""
 "mettre à jour et redémarrer tous les services qui n'ont pas été redémarrés\n"
 "automatiquement.\n"
 
-#: guix/scripts/system.scm:393
+#: guix/scripts/system.scm:395
 #, scheme-format
 msgid "activating system...~%"
 msgstr "activation du système...~%"
 
-#: guix/scripts/system.scm:471
+#: guix/scripts/system.scm:473
 #, 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:542
+#: guix/scripts/system.scm:546
 msgid "the DAG of services"
 msgstr "le graphe orienté acyclique (DAG) des services"
 
-#: guix/scripts/system.scm:555
+#: guix/scripts/system.scm:559
 msgid "the dependency graph of shepherd services"
 msgstr "le graphique des dépendances des services du shepherd"
 
-#: guix/scripts/system.scm:579
+#: guix/scripts/system.scm:583
 #, scheme-format
 msgid "  file name: ~a~%"
 msgstr "  nom de fichier: ~a~%"
 
-#: guix/scripts/system.scm:580
+#: guix/scripts/system.scm:584
 #, scheme-format
 msgid "  canonical file name: ~a~%"
 msgstr "  nom de fichier canonique : ~a~%"
 
 #. TRANSLATORS: Please preserve the two-space indentation.
-#: guix/scripts/system.scm:582
+#: guix/scripts/system.scm:586
 #, scheme-format
 msgid "  label: ~a~%"
 msgstr "  étiquette : ~a~%"
 
-#: guix/scripts/system.scm:583
+#: guix/scripts/system.scm:587
 #, scheme-format
 msgid "  bootloader: ~a~%"
 msgstr "  chargeur de démarrage : ~a~%"
@@ -1801,22 +2536,22 @@ msgstr "  chargeur de démarrage : ~a~%"
 #. root device: label: "my-root"
 #. or just:
 #. root device: /dev/sda3
-#: guix/scripts/system.scm:593
+#: guix/scripts/system.scm:597
 #, scheme-format
 msgid "  root device: ~[UUID: ~a~;label: ~s~;~a~]~%"
 msgstr "  périphérique racine : ~[UUID : ~a~;étiquette : ~s~;~a~]~%"
 
-#: guix/scripts/system.scm:604
+#: guix/scripts/system.scm:608
 #, scheme-format
 msgid "  kernel: ~a~%"
 msgstr "  noyau : ~a~%"
 
-#: guix/scripts/system.scm:675
+#: guix/scripts/system.scm:679
 #, scheme-format
 msgid "~a: error: device '~a' not found: ~a~%"
 msgstr "~a : erreur : périphérique « ~a » non trouvé : ~a~%"
 
-#: guix/scripts/system.scm:679
+#: guix/scripts/system.scm:683
 #, scheme-format
 msgid ""
 "If '~a' is a file system\n"
@@ -1825,37 +2560,37 @@ 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:687
+#: guix/scripts/system.scm:691
 #, scheme-format
 msgid "~a: error: file system with label '~a' not found~%"
 msgstr "~a : erreur : le système de fichier étiqueté « ~a » est introuvable~%"
 
-#: guix/scripts/system.scm:692
+#: guix/scripts/system.scm:696
 #, 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~%"
 
-#: guix/scripts/system.scm:793
+#: guix/scripts/system.scm:797
 #, scheme-format
 msgid "~a not found: 'guix pull' was never run~%"
 msgstr "~a pas trouvé : « guix pull » n'a jamais été exécuté~%"
 
-#: guix/scripts/system.scm:794
+#: guix/scripts/system.scm:798
 #, scheme-format
 msgid "Consider running 'guix pull' before 'reconfigure'.~%"
 msgstr "Envisagez d'exécuter « guix pull » avant « reconfigure ».~%"
 
-#: guix/scripts/system.scm:795
+#: guix/scripts/system.scm:799
 #, 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:907
+#: guix/scripts/system.scm:920
 #, scheme-format
 msgid "initializing operating system under '~a'...~%"
 msgstr "initialisation du système d'exploitation sous « ~a »...~%"
 
-#: guix/scripts/system.scm:952
+#: guix/scripts/system.scm:965
 msgid ""
 "Usage: guix system [OPTION ...] ACTION [ARG ...] [FILE]\n"
 "Build the operating system declared in FILE according to ACTION.\n"
@@ -1863,69 +2598,73 @@ msgid ""
 msgstr ""
 "Usage : guix system [OPTION ...] ACTION [ARG ...] [FICHIER]\n"
 "Compiler le système d'exploitation déclaré dans FICHER en suivant ACTION.\n"
-"Certaines ACTIONS supportent des ARGUMENTS supplémentaires.\n"
+"Certaines ACTIONS prennent en charge des ARGUMENTS supplémentaires.\n"
 
-#: guix/scripts/system.scm:956 guix/scripts/container.scm:29
+#: guix/scripts/system.scm:969 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:958
+#: guix/scripts/system.scm:971
 msgid "   search           search for existing service types\n"
 msgstr "   search           chercher des types de services existants\n"
 
-#: guix/scripts/system.scm:960
+#: guix/scripts/system.scm:973
 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:962
+#: guix/scripts/system.scm:975
 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:964
+#: guix/scripts/system.scm:977
+msgid "   list-generations list the system generations\n"
+msgstr "   list-generations lister les générations du système\n"
+
+#: guix/scripts/system.scm:979
 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:966
-msgid "   list-generations list the system generations\n"
-msgstr "   list-generations lister les générations du système\n"
+#: guix/scripts/system.scm:981
+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:968
+#: guix/scripts/system.scm:983
 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:970
+#: guix/scripts/system.scm:985
 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:972
+#: guix/scripts/system.scm:987
 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:974
+#: guix/scripts/system.scm:989
 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:976
+#: guix/scripts/system.scm:991
 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:978
+#: guix/scripts/system.scm:993
 msgid "   docker-image     build a Docker image\n"
 msgstr "   docker-image     compiler une image Docker\n"
 
-#: guix/scripts/system.scm:980
+#: guix/scripts/system.scm:995
 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:982
+#: guix/scripts/system.scm:997
 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:984
+#: guix/scripts/system.scm:999
 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:988
+#: guix/scripts/system.scm:1003
 msgid ""
 "\n"
 "  -d, --derivation       return the derivation of the given system"
@@ -1933,7 +2672,7 @@ msgstr ""
 "\n"
 "  -d, --derivation       retourner les dérivations pour le système donné"
 
-#: guix/scripts/system.scm:990
+#: guix/scripts/system.scm:1005
 msgid ""
 "\n"
 "  -e, --expression=EXPR  consider the operating-system EXPR evaluates to\n"
@@ -1943,17 +2682,19 @@ 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:993
+#: guix/scripts/system.scm:1008
 msgid ""
 "\n"
 "      --on-error=STRATEGY\n"
-"                         apply STRATEGY when an error occurs while reading FILE"
+"                         apply STRATEGY (one of nothing-special, backtrace,\n"
+"                         or debug) when an error occurs while reading FILE"
 msgstr ""
 "\n"
 "      --on-error=STRATÉGIE\n"
-"                         appliquer la STRATÉGIE quand une erreur survient en lisant le FICHIER"
+"                         appliquer la STRATÉGIE (nothing-special, backtrace ou debug)\n"
+"                         quand une erreur survient en lisant le FICHIER"
 
-#: guix/scripts/system.scm:996
+#: guix/scripts/system.scm:1012
 msgid ""
 "\n"
 "      --file-system-type=TYPE\n"
@@ -1965,7 +2706,7 @@ msgstr ""
 "                         avec « disk-image », produit un système de fichiers racine de TYPE\n"
 "                         (parmis « ext4» et « iso9660 »)"
 
-#: guix/scripts/system.scm:1000
+#: guix/scripts/system.scm:1016
 msgid ""
 "\n"
 "      --image-size=SIZE  for 'vm-image', produce an image of SIZE"
@@ -1974,7 +2715,7 @@ msgstr ""
 "      --image-size=TAILLE\n"
 "                         pour « vm-image », produire une image de TAILLE"
 
-#: guix/scripts/system.scm:1002
+#: guix/scripts/system.scm:1018
 msgid ""
 "\n"
 "      --no-bootloader    for 'init', do not install a bootloader"
@@ -1982,7 +2723,7 @@ msgstr ""
 "\n"
 "      --no-bootloader    pour « init », ne pas installer un chargeur de démarrage"
 
-#: guix/scripts/system.scm:1004
+#: guix/scripts/system.scm:1020
 msgid ""
 "\n"
 "      --share=SPEC       for 'vm', share host file system according to SPEC"
@@ -1991,7 +2732,7 @@ msgstr ""
 "      --share=SPEC       pour « vm », partager le système de fichiers hôte selon\n"
 "                         SPEC"
 
-#: guix/scripts/system.scm:1006
+#: guix/scripts/system.scm:1022
 msgid ""
 "\n"
 "  -r, --root=FILE        for 'vm', 'vm-image', 'disk-image', 'container',\n"
@@ -2004,7 +2745,7 @@ msgstr ""
 "                         sur le résultat et l'enregistrer en tant que racine du\n"
 "                         ramasse-miettes"
 
-#: guix/scripts/system.scm:1010
+#: guix/scripts/system.scm:1026
 msgid ""
 "\n"
 "      --expose=SPEC      for 'vm', expose host file system according to SPEC"
@@ -2013,7 +2754,7 @@ msgstr ""
 "      --expose=SPEC      pour « vm », exposer le système de fichiers hôte selon\n"
 "                         SPEC"
 
-#: guix/scripts/system.scm:1012
+#: guix/scripts/system.scm:1028
 msgid ""
 "\n"
 "      --full-boot        for 'vm', make a full boot sequence"
@@ -2021,7 +2762,7 @@ msgstr ""
 "\n"
 "      --full-boot        pour « vm », accomplir une séquence complète de démarrage"
 
-#: guix/scripts/system.scm:1014
+#: guix/scripts/system.scm:1030
 msgid ""
 "\n"
 "      --skip-checks      skip file system and initrd module safety checks"
@@ -2030,54 +2771,54 @@ 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:1116
+#: guix/scripts/system.scm:1140
 #, 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:1123
+#: guix/scripts/system.scm:1147
 #, scheme-format
 msgid "no configuration specified~%"
 msgstr "aucune configuration spécifiée~%"
 
-#: guix/scripts/system.scm:1224
+#: guix/scripts/system.scm:1257
 #, scheme-format
 msgid "~a: unknown action~%"
 msgstr "~a : action inconnue~%"
 
-#: guix/scripts/system.scm:1240
+#: guix/scripts/system.scm:1273
 #, scheme-format
 msgid "wrong number of arguments for action '~a'~%"
 msgstr "nombre d'arguments incorrect pour l'action « ~a »~%"
 
-#: guix/scripts/system.scm:1245
+#: guix/scripts/system.scm:1278
 #, scheme-format
 msgid "guix system: missing command name~%"
 msgstr "guix system : nom de commande manquant~%"
 
-#: guix/scripts/system.scm:1247
+#: guix/scripts/system.scm:1280
 #, scheme-format
 msgid "Try 'guix system --help' for more information.~%"
 msgstr "Essayez « guix system --help » pour plus d'informations.~%"
 
-#: guix/scripts/system/search.scm:88 guix/ui.scm:1205 guix/ui.scm:1219
+#: guix/scripts/system/search.scm:88 guix/ui.scm:1330 guix/ui.scm:1344
 msgid "unknown"
 msgstr "inconnu"
 
-#: guix/scripts/lint.scm:140
+#: guix/scripts/lint.scm:144
 #, scheme-format
 msgid "Available checkers:~%"
 msgstr "Vérificateurs disponibles :~%"
 
-#: guix/scripts/lint.scm:164
+#: guix/scripts/lint.scm:168
 msgid "description should not be empty"
 msgstr "la description ne devrait pas être vide"
 
-#: guix/scripts/lint.scm:174
+#: guix/scripts/lint.scm:178
 msgid "Texinfo markup in description is invalid"
 msgstr "Des balises Texinfo dans la description sont invalides"
 
-#: guix/scripts/lint.scm:184
+#: guix/scripts/lint.scm:188
 #, scheme-format
 msgid ""
 "description should not contain ~\n"
@@ -2088,15 +2829,15 @@ msgstr ""
 
 #. TRANSLATORS: '@code' is Texinfo markup and must be kept
 #. as is.
-#: guix/scripts/lint.scm:197
+#: guix/scripts/lint.scm:201
 msgid "use @code or similar ornament instead of quotes"
 msgstr "utiliser @code ou une décoration similaire au lieu des guillemets"
 
-#: guix/scripts/lint.scm:204
+#: guix/scripts/lint.scm:208
 msgid "description should start with an upper-case letter or digit"
 msgstr "la description devrait commencer par une majuscule ou un chiffre"
 
-#: guix/scripts/lint.scm:220
+#: guix/scripts/lint.scm:224
 #, scheme-format
 msgid ""
 "sentences in description should be followed ~\n"
@@ -2105,261 +2846,278 @@ msgstr ""
 "les phrases dans la description devraient être suivies ~\n"
 "par deux espaces. Infraction probable~p à ~{~a~^, ~}"
 
-#: guix/scripts/lint.scm:238
+#: guix/scripts/lint.scm:242
 #, scheme-format
 msgid "invalid description: ~s"
 msgstr "description invalide : ~s"
 
-#: guix/scripts/lint.scm:283
+#: guix/scripts/lint.scm:287
 #, scheme-format
 msgid "'~a' should probably be a native input"
 msgstr "« ~a » devrait sans doute être une entrée native"
 
-#: guix/scripts/lint.scm:299
+#: guix/scripts/lint.scm:303
 #, 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/scripts/lint.scm:316
+#: guix/scripts/lint.scm:320
 msgid "synopsis should not be empty"
 msgstr "le synopsis ne devrait pas être vide"
 
-#: guix/scripts/lint.scm:324
+#: guix/scripts/lint.scm:328
 msgid "no period allowed at the end of the synopsis"
 msgstr "un point n'est pas autorisé à la fin du synopsis"
 
-#: guix/scripts/lint.scm:336
+#: guix/scripts/lint.scm:340
 msgid "no article allowed at the beginning of the synopsis"
 msgstr "les articles ne sont pas permis au début du synopsis"
 
-#: guix/scripts/lint.scm:343
+#: guix/scripts/lint.scm:347
 msgid "synopsis should be less than 80 characters long"
 msgstr "le synopsis devrait être plus court que 80 caractères"
 
-#: guix/scripts/lint.scm:349
+#: guix/scripts/lint.scm:353
 msgid "synopsis should start with an upper-case letter or digit"
 msgstr "le synopsis devrait commencer par une majuscule ou un chiffre"
 
-#: guix/scripts/lint.scm:356
+#: guix/scripts/lint.scm:360
 msgid "synopsis should not start with the package name"
 msgstr "le synopsis ne devrait pas commencer par un nom de paquet"
 
-#: guix/scripts/lint.scm:366
+#: guix/scripts/lint.scm:370
 msgid "Texinfo markup in synopsis is invalid"
 msgstr "La balise Texinfo dans le synopsis est invalide"
 
-#: guix/scripts/lint.scm:385
+#: guix/scripts/lint.scm:389
 #, scheme-format
 msgid "invalid synopsis: ~s"
 msgstr "synopsis non valide : ~s"
 
-#: guix/scripts/lint.scm:504
+#: guix/scripts/lint.scm:508
 #, scheme-format
 msgid "URI ~a returned suspiciously small file (~a bytes)"
 msgstr "L'URI ~a a renvoyé un fichier étrangement petit (~a octets)"
 
-#: guix/scripts/lint.scm:514
+#: guix/scripts/lint.scm:518
 #, scheme-format
 msgid "permanent redirect from ~a to ~a"
 msgstr "redirection permanente de ~a vers ~a"
 
-#: guix/scripts/lint.scm:521
+#: guix/scripts/lint.scm:525
 #, scheme-format
 msgid "invalid permanent redirect from ~a"
 msgstr "redirection permanente invalide : ~a"
 
-#: guix/scripts/lint.scm:528 guix/scripts/lint.scm:540
+#: guix/scripts/lint.scm:532 guix/scripts/lint.scm:544
 #, scheme-format
 msgid "URI ~a not reachable: ~a (~s)"
 msgstr "L'URI ~a n'a pu être atteinte : ~a (~s)"
 
-#: guix/scripts/lint.scm:547
+#: guix/scripts/lint.scm:551
 #, scheme-format
 msgid "URI ~a domain not found: ~a"
 msgstr "Le domaine de l'URI ~a n'a pas été trouvé : ~a"
 
-#: guix/scripts/lint.scm:555
+#: guix/scripts/lint.scm:559
 #, scheme-format
 msgid "URI ~a unreachable: ~a"
 msgstr "L'URI ~a n'a pu être atteinte : ~a"
 
-#: guix/scripts/lint.scm:564
+#: guix/scripts/lint.scm:568
 #, scheme-format
 msgid "TLS certificate error: ~a"
 msgstr "Erreur de certificat TLS : ~a"
 
-#: guix/scripts/lint.scm:585
+#: guix/scripts/lint.scm:589
 msgid "invalid value for home page"
 msgstr "valeur invalide pour la page d'accueil"
 
-#: guix/scripts/lint.scm:588
+#: guix/scripts/lint.scm:592
 #, scheme-format
 msgid "invalid home page URL: ~s"
 msgstr "URL de la page d'accueil invalide : ~s"
 
-#: guix/scripts/lint.scm:614
+#: guix/scripts/lint.scm:619
 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/scripts/lint.scm:630
+#: guix/scripts/lint.scm:635
 #, scheme-format
 msgid "~a: file name is too long"
 msgstr "~a : le nom de fichier est trop long"
 
-#: guix/scripts/lint.scm:671
+#: guix/scripts/lint.scm:676
 #, scheme-format
 msgid "~a: ~a: proposed synopsis: ~s~%"
 msgstr "~a : ~a : synopsis proposé : ~s~%"
 
-#: guix/scripts/lint.scm:684
+#: guix/scripts/lint.scm:689
 #, scheme-format
 msgid "~a: ~a: proposed description:~%     \"~a\"~%"
 msgstr "~a : ~a : description proposée :~%     « ~a »~%"
 
-#: guix/scripts/lint.scm:726
+#: guix/scripts/lint.scm:731
 msgid "all the source URIs are unreachable:"
 msgstr "toutes les URI sources sont inatteignables :"
 
-#: guix/scripts/lint.scm:748
+#: guix/scripts/lint.scm:753
 msgid "the source file name should contain the package name"
 msgstr "le nom du fichier source devrait contenir le nom du paquet"
 
-#: guix/scripts/lint.scm:764
+#: guix/scripts/lint.scm:765
+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/scripts/lint.scm:786
 #, scheme-format
 msgid "URL should be 'mirror://~a/~a'"
 msgstr "L'URL devrait être « mirror://~a/~a »"
 
-#: guix/scripts/lint.scm:783 guix/scripts/lint.scm:788
+#: guix/scripts/lint.scm:829
+#, scheme-format
+msgid "URL should be '~a'"
+msgstr "L'URL devrait être « ~a »"
+
+#: guix/scripts/lint.scm:840 guix/scripts/lint.scm:845
 #, scheme-format
 msgid "failed to create ~a derivation: ~a"
 msgstr "échec à la création de la dérivation pour ~a : ~a"
 
-#: guix/scripts/lint.scm:805
+#: guix/scripts/lint.scm:862
 #, scheme-format
 msgid "failed to create ~a derivation: ~s"
 msgstr "échec à la création de la dérivation pour ~a : ~s"
 
-#: guix/scripts/lint.scm:817
+#: guix/scripts/lint.scm:874
 msgid "invalid license field"
 msgstr "champ de licence invalide"
 
-#: guix/scripts/lint.scm:824
+#: guix/scripts/lint.scm:881
 #, scheme-format
 msgid "~a: HTTP GET error for ~a: ~a (~s)~%"
 msgstr "~a : erreur HTTP GET pour ~a : ~a (~s)~%"
 
-#: guix/scripts/lint.scm:834
+#: guix/scripts/lint.scm:891
 #, scheme-format
 msgid "~a: host lookup failure: ~a~%"
 msgstr "~a : erreur lors de la consultation du nom d'hôte : ~a~%"
 
-#: guix/scripts/lint.scm:839
+#: guix/scripts/lint.scm:896
 #, scheme-format
 msgid "~a: TLS certificate error: ~a"
 msgstr "~a : erreur de certificat TLS : ~a"
 
-#: guix/scripts/lint.scm:854
+#: guix/scripts/lint.scm:911
 msgid "while retrieving CVE vulnerabilities"
 msgstr "pendant la récupération des vulnérabilités CVE"
 
-#: guix/scripts/lint.scm:891
+#: guix/scripts/lint.scm:948
 #, scheme-format
 msgid "probably vulnerable to ~a"
 msgstr "probablement vulnérable à ~a"
 
-#: guix/scripts/lint.scm:898
+#: guix/scripts/lint.scm:955
 #, scheme-format
 msgid "while retrieving upstream info for '~a'"
 msgstr "pendant la récupération des informations en amont de « ~a »"
 
-#: guix/scripts/lint.scm:906
+#: guix/scripts/lint.scm:963
 #, scheme-format
 msgid "can be upgraded to ~a"
 msgstr "peut être mis à jour vers ~a"
 
-#: guix/scripts/lint.scm:921
+#: guix/scripts/lint.scm:978
 #, scheme-format
 msgid "tabulation on line ~a, column ~a"
 msgstr "tabulation à la ligne ~a, colonne ~a"
 
-#: guix/scripts/lint.scm:930
+#: guix/scripts/lint.scm:987
 #, scheme-format
 msgid "trailing white space on line ~a"
 msgstr "espace à la fin de la ligne ~a"
 
-#: guix/scripts/lint.scm:940
+#: guix/scripts/lint.scm:997
 #, scheme-format
 msgid "line ~a is way too long (~a characters)"
 msgstr "la ligne ~a est beaucoup trop longue (~a caractères)"
 
-#: guix/scripts/lint.scm:951
+#: guix/scripts/lint.scm:1008
 #, scheme-format
 msgid "line ~a: parentheses feel lonely, move to the previous or next line"
 msgstr "ligne ~a : des parenthèses se sentent seules. À déplacer à la ligne suivante ou précédente"
 
-#: guix/scripts/lint.scm:1021
+#: guix/scripts/lint.scm:1078
 msgid "Validate package descriptions"
 msgstr "Valider des descriptions de paquets"
 
-#: guix/scripts/lint.scm:1025
+#: guix/scripts/lint.scm:1082
 msgid "Validate synopsis & description of GNU packages"
 msgstr "Valider le synopsis et la description de paquets GNU"
 
-#: guix/scripts/lint.scm:1029
+#: guix/scripts/lint.scm:1086
 msgid "Identify inputs that should be native inputs"
 msgstr "Identifier les entrées qui devraient être natives"
 
-#: guix/scripts/lint.scm:1033
+#: guix/scripts/lint.scm:1090
 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"
 
-#: guix/scripts/lint.scm:1037
+#: guix/scripts/lint.scm:1094
 msgid "Validate file names and availability of patches"
 msgstr "Valider les noms de fichiers et la disponibilité de correctifs"
 
-#: guix/scripts/lint.scm:1041
+#: guix/scripts/lint.scm:1098
 msgid "Validate home-page URLs"
 msgstr "Valider les URL des pages d'accueil"
 
 #. TRANSLATORS: <license> is the name of a data type and must not be
 #. translated.
-#: guix/scripts/lint.scm:1047
+#: guix/scripts/lint.scm:1104
 msgid "Make sure the 'license' field is a <license> or a list thereof"
-msgstr "Assurez vous que le champ « licence » est une <licence> ou une telle liste"
+msgstr "S'assurer que le champ « licence » est une <licence> ou une telle liste"
 
-#: guix/scripts/lint.scm:1052
+#: guix/scripts/lint.scm:1109
 msgid "Validate source URLs"
 msgstr "Valider les URL sources"
 
-#: guix/scripts/lint.scm:1056
+#: guix/scripts/lint.scm:1113
 msgid "Suggest 'mirror://' URLs"
-msgstr "Suggérer les URL « mirror:// »"
+msgstr "Suggérer des URL « mirror:// »"
+
+#: guix/scripts/lint.scm:1117
+msgid "Suggest GitHub URLs"
+msgstr "Suggérer des URL GitHub"
 
-#: guix/scripts/lint.scm:1060
+#: guix/scripts/lint.scm:1121
 msgid "Validate file names of sources"
 msgstr "Valider les noms des fichiers des sources"
 
-#: guix/scripts/lint.scm:1064
+#: guix/scripts/lint.scm:1125
+msgid "Check for autogenerated tarballs"
+msgstr "Vérifier les archives auto-générées"
+
+#: guix/scripts/lint.scm:1129
 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/scripts/lint.scm:1068
+#: guix/scripts/lint.scm:1133
 msgid "Validate package synopses"
 msgstr "Valider les synopsis des paquets"
 
-#: guix/scripts/lint.scm:1072
+#: guix/scripts/lint.scm:1137
 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/scripts/lint.scm:1077
+#: guix/scripts/lint.scm:1142
 msgid "Check the package for new upstream releases"
 msgstr "Vérifier s'il y a une nouvelle version en amont pour le paquet"
 
-#: guix/scripts/lint.scm:1081
+#: guix/scripts/lint.scm:1146
 msgid "Look for formatting issues in the source"
 msgstr "Rechercher des problèmes de format dans la source"
 
-#: guix/scripts/lint.scm:1109
+#: guix/scripts/lint.scm:1174
 msgid ""
 "Usage: guix lint [OPTION]... [PACKAGE]...\n"
 "Run a set of checkers on the specified package; if none is specified,\n"
@@ -2369,7 +3127,7 @@ msgstr ""
 "Lancer un ensemble de vérificateurs sur le paquet spécifié ; si aucun n'est spécifié,\n"
 "lancer les vérificateurs sur tous les paquets.\n"
 
-#: guix/scripts/lint.scm:1112
+#: guix/scripts/lint.scm:1177
 msgid ""
 "\n"
 "  -c, --checkers=CHECKER1,CHECKER2...\n"
@@ -2379,7 +3137,7 @@ msgstr ""
 "  -c, --checkers=CHECKER1,CHECKER2...\n"
 "                         lancer uniquement les vérificateurs spécifiés"
 
-#: guix/scripts/lint.scm:1117
+#: guix/scripts/lint.scm:1182
 msgid ""
 "\n"
 "  -l, --list-checkers    display the list of available lint checkers"
@@ -2387,7 +3145,7 @@ msgstr ""
 "\n"
 "  -l, --list-checkers    afficher la liste des vérificateurs disponibles"
 
-#: guix/scripts/lint.scm:1137
+#: guix/scripts/lint.scm:1202
 #, scheme-format
 msgid "~a: invalid checker~%"
 msgstr "~a : vérificateur non valide~%"
@@ -2509,29 +3267,29 @@ msgstr "la recherche de l'hôte « ~a » n'a rien retourné"
 #: guix/scripts/publish.scm:165
 #, scheme-format
 msgid "zlib support is missing; compression disabled~%"
-msgstr "le support zlib est manquant. La compression est désactivée~%"
+msgstr "la prise en charge de zlib est absente. La compression est désactivée~%"
 
 #: guix/scripts/publish.scm:179
 #, scheme-format
 msgid "~a: invalid duration~%"
 msgstr "~a : durée non valide~%"
 
-#: guix/scripts/publish.scm:869
+#: guix/scripts/publish.scm:876
 #, scheme-format
 msgid "user '~a' not found: ~a~%"
 msgstr "utilisateur « ~a » non trouvé : ~a~%"
 
-#: guix/scripts/publish.scm:910
+#: guix/scripts/publish.scm:917
 #, 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:915
+#: guix/scripts/publish.scm:922
 #, scheme-format
 msgid "publishing ~a on ~a, port ~d~%"
 msgstr "diffusion de ~a sur ~a, port ~d~%"
 
-#: guix/scripts/edit.scm:41
+#: guix/scripts/edit.scm:40
 msgid ""
 "Usage: guix edit PACKAGE...\n"
 "Start $VISUAL or $EDITOR to edit the definitions of PACKAGE...\n"
@@ -2539,39 +3297,34 @@ msgstr ""
 "Usage : guix edit PAQUET...\n"
 "Démarrer $VISUAL ou $EDITOR pour éditer la définition de PAQUET...\n"
 
-#: guix/scripts/edit.scm:62
+#: guix/scripts/edit.scm:61
 #, 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:90
-#, scheme-format
-msgid "source location of package '~a' is unknown~%"
-msgstr "l'emplacement source du paquet « ~a » est inconnue~%"
-
-#: guix/scripts/edit.scm:103
+#: guix/scripts/edit.scm:96
 #, scheme-format
 msgid "failed to launch '~a': ~a~%"
 msgstr "impossible de démarrer « ~a » : ~a~%"
 
-#: guix/scripts/size.scm:68
+#: guix/scripts/size.scm:69
 #, scheme-format
 msgid "no available substitute information for '~a'~%"
 msgstr "pas d'information de substitution disponible pour « ~a »~%"
 
-#: guix/scripts/size.scm:90
+#: guix/scripts/size.scm:91
 msgid "store item"
 msgstr "élément stockage"
 
-#: guix/scripts/size.scm:90
+#: guix/scripts/size.scm:91
 msgid "total"
 msgstr "total"
 
-#: guix/scripts/size.scm:90
+#: guix/scripts/size.scm:91
 msgid "self"
 msgstr "lui-même"
 
-#: guix/scripts/size.scm:98
+#: guix/scripts/size.scm:99
 #, scheme-format
 msgid "total: ~,1f MiB~%"
 msgstr "total : ~,1f MiB~%"
@@ -2579,11 +3332,11 @@ msgstr "total : ~,1f MiB~%"
 #. 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:212
+#: guix/scripts/size.scm:222
 msgid "store profile"
 msgstr "profil du dépôt"
 
-#: guix/scripts/size.scm:221
+#: guix/scripts/size.scm:231
 msgid ""
 "Usage: guix size [OPTION]... PACKAGE\n"
 "Report the size of PACKAGE and its dependencies.\n"
@@ -2591,7 +3344,7 @@ msgstr ""
 "Usage : guix size [OPTION]... PAQUET\n"
 "Rapporter la taille du PAQUET et de ses dépendances.\n"
 
-#: guix/scripts/size.scm:226
+#: guix/scripts/size.scm:236
 msgid ""
 "\n"
 "  -s, --system=SYSTEM    consider packages for SYSTEM--e.g., \"i686-linux\""
@@ -2600,7 +3353,7 @@ msgstr ""
 "  -s, --system=SYSTÈME   prend en compte les paquets pour le SYSTÈME, par exemple « i686-linux »"
 
 #. TRANSLATORS: "closure" and "self" must not be translated.
-#: guix/scripts/size.scm:229
+#: guix/scripts/size.scm:239
 msgid ""
 "\n"
 "      --sort=KEY         sort according to KEY--\"closure\" or \"self\""
@@ -2608,7 +3361,7 @@ msgstr ""
 "\n"
 "      --sort=CLEF        tri en fonction de la CLEF : « closure » ou « self »"
 
-#: guix/scripts/size.scm:231
+#: guix/scripts/size.scm:241
 msgid ""
 "\n"
 "  -m, --map-file=FILE    write to FILE a graphical map of disk usage"
@@ -2616,90 +3369,94 @@ msgstr ""
 "\n"
 "  -m, --map-file=FICHIER écrit dans le FICHIER une carte graphique de l'utilisation du disque"
 
-#: guix/scripts/size.scm:262
+#: guix/scripts/size.scm:272
 #, scheme-format
 msgid "~a: invalid sorting key~%"
 msgstr "~a : clef de tri invalide~%"
 
-#: guix/scripts/size.scm:297
+#: guix/scripts/size.scm:307
 msgid "missing store item argument\n"
 msgstr "argument d'élément de stockage manquant\n"
 
-#: guix/scripts/graph.scm:87
+#: guix/scripts/graph.scm:88
 #, scheme-format
 msgid "~a: invalid argument (package name expected)"
 msgstr "~a : argument invalide (nom de paquet attendu)"
 
-#: guix/scripts/graph.scm:98
+#: guix/scripts/graph.scm:99
 msgid "the DAG of packages, excluding implicit inputs"
 msgstr "le DAG des paquets en excluant les entrées implicites"
 
-#: guix/scripts/graph.scm:124
+#: guix/scripts/graph.scm:135
 msgid "the reverse DAG of packages"
 msgstr "le graphe orienté acyclique (DAG) inversé des paquets"
 
-#: guix/scripts/graph.scm:174
+#: guix/scripts/graph.scm:185
 msgid "the DAG of packages, including implicit inputs"
 msgstr "le DAG des paquets en incluant les entrées implicites"
 
-#: guix/scripts/graph.scm:184
+#: guix/scripts/graph.scm:195
 msgid "the DAG of packages and origins, including implicit inputs"
 msgstr "le DAG des paquets et origines en incluant les entrées implicites"
 
-#: guix/scripts/graph.scm:214
+#: guix/scripts/graph.scm:225
 msgid "same as 'bag', but without the bootstrap nodes"
 msgstr "comme « bag » mais sans les nœuds d'amorçage"
 
-#: guix/scripts/graph.scm:256
+#: guix/scripts/graph.scm:242
+msgid "the reverse DAG of packages, including implicit inputs"
+msgstr "le DAG inversé des paquets en incluant les entrées implicites"
+
+#: guix/scripts/graph.scm:282
 msgid "the DAG of derivations"
 msgstr "le DAG des dérivations"
 
-#: guix/scripts/graph.scm:268
+#: guix/scripts/graph.scm:294
 msgid "unsupported argument for derivation graph"
-msgstr "argument non supporté pour le graphe de dérivation"
+msgstr "argument non pris en charge pour le graphe de dérivation"
 
-#: guix/scripts/graph.scm:294
+#: guix/scripts/graph.scm:320
 msgid "unsupported argument for this type of graph"
-msgstr "argument non supporté pour ce type de graphe"
+msgstr "argument non pris en charge pour ce type de graphe"
 
-#: guix/scripts/graph.scm:307
+#: guix/scripts/graph.scm:333
 #, scheme-format
 msgid "references for '~a' are not known~%"
 msgstr "les références pour « ~a » sont inconnues~%"
 
-#: guix/scripts/graph.scm:314
+#: guix/scripts/graph.scm:340
 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:330
+#: guix/scripts/graph.scm:356
 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:360
+#: guix/scripts/graph.scm:386
 msgid "the graph of package modules"
 msgstr "le graphe des modules de paquets"
 
-#: guix/scripts/graph.scm:388
+#: guix/scripts/graph.scm:415
 #, scheme-format
 msgid "~a: unknown node type~%"
 msgstr "~a : type de nœud inconnu~%"
 
-#: guix/scripts/graph.scm:395
+#: guix/scripts/graph.scm:422
 #, scheme-format
 msgid "~a: unknown backend~%"
 msgstr "~a : moteur de graphe inconnu~%"
 
-#: guix/scripts/graph.scm:399
+#: guix/scripts/graph.scm:426
 msgid "The available node types are:\n"
 msgstr "Les types de nœuds disponibles sont :\n"
 
-#: guix/scripts/graph.scm:409
+#: guix/scripts/graph.scm:436
 msgid "The available backend types are:\n"
 msgstr "Les types de moteurs de graphes disponibles sont :\n"
 
 #. TRANSLATORS: Here 'dot' is the name of a program; it must not be
 #. translated.
-#: guix/scripts/graph.scm:457
+#: guix/scripts/graph.scm:484
 msgid ""
 "Usage: guix graph PACKAGE...\n"
 "Emit a representation of the dependency graph of PACKAGE...\n"
@@ -2707,7 +3464,7 @@ msgstr ""
 "Usage : guix graph PAQUET...\n"
 "Produit une représentation du graphe des dépendances de PAQUET...\n"
 
-#: guix/scripts/graph.scm:459
+#: guix/scripts/graph.scm:486
 msgid ""
 "\n"
 "  -b, --backend=TYPE     produce a graph with the given backend TYPE"
@@ -2715,7 +3472,7 @@ msgstr ""
 "\n"
 "  -b, --backend=TYPE     produire un graphe avec le TYPE de moteur donné"
 
-#: guix/scripts/graph.scm:461
+#: guix/scripts/graph.scm:488
 msgid ""
 "\n"
 "      --list-backends    list the available graph backends"
@@ -2723,7 +3480,7 @@ msgstr ""
 "\n"
 "      --list-backends    lister les types de moteurs de graphes disponibles"
 
-#: guix/scripts/graph.scm:463
+#: guix/scripts/graph.scm:490
 msgid ""
 "\n"
 "  -t, --type=TYPE        represent nodes of the given TYPE"
@@ -2731,7 +3488,7 @@ msgstr ""
 "\n"
 "  -t, --type=TYPE        représenter les nœuds du TYPE donné"
 
-#: guix/scripts/graph.scm:465
+#: guix/scripts/graph.scm:492
 msgid ""
 "\n"
 "      --list-types       list the available graph types"
@@ -2739,7 +3496,7 @@ msgstr ""
 "\n"
 "      --list-types       lister les types de graphes disponibles"
 
-#: guix/scripts/graph.scm:467 guix/scripts/pack.scm:710
+#: guix/scripts/graph.scm:494 guix/scripts/pack.scm:752
 msgid ""
 "\n"
 "  -e, --expression=EXPR  consider the package EXPR evaluates to"
@@ -2747,7 +3504,7 @@ msgstr ""
 "\n"
 "  -e, --expression=EXPR  considère le paquet évalué par EXPR"
 
-#: guix/scripts/graph.scm:469
+#: guix/scripts/graph.scm:496
 msgid ""
 "\n"
 "  -s, --system=SYSTEM    consider the graph for SYSTEM--e.g., \"i686-linux\""
@@ -2796,15 +3553,15 @@ msgstr "~h éléments du dépôt ont été analysés :~%"
 
 #: guix/scripts/challenge.scm:220
 msgid "  - ~h (~,1f%) were identical~%"
-msgstr "  - ~h (~,1f%) étaient identiques~%"
+msgstr "  - ~h (~,1f %) étaient identiques~%"
 
 #: guix/scripts/challenge.scm:222
 msgid "  - ~h (~,1f%) differed~%"
-msgstr "  - ~h (~,1f%) étaient différents~%"
+msgstr "  - ~h (~,1f %) étaient différents~%"
 
 #: guix/scripts/challenge.scm:224
 msgid "  - ~h (~,1f%) were inconclusive~%"
-msgstr "  - ~h (~,1f%) étaient impossibles à évaluer~%"
+msgstr "  - ~h (~,1f %) étaient impossibles à évaluer~%"
 
 #: guix/scripts/challenge.scm:233
 msgid ""
@@ -2832,17 +3589,17 @@ msgstr ""
 "\n"
 "      -v, --verbose      montrer les détails des comparaisons réussies"
 
-#: guix/scripts/copy.scm:59
+#: guix/scripts/copy.scm:60
 #, scheme-format
 msgid "~a: invalid TCP port number~%"
 msgstr "~a : numéro de port TCP invalide~%"
 
-#: guix/scripts/copy.scm:61
+#: guix/scripts/copy.scm:62
 #, scheme-format
 msgid "~a: invalid SSH specification~%"
 msgstr "~a : spécification SSH invalide~%"
 
-#: guix/scripts/copy.scm:113
+#: guix/scripts/copy.scm:114
 msgid ""
 "Usage: guix copy [OPTION]... ITEMS...\n"
 "Copy ITEMS to or from the specified host over SSH.\n"
@@ -2850,7 +3607,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:115
+#: guix/scripts/copy.scm:116
 msgid ""
 "\n"
 "      --to=HOST          send ITEMS to HOST"
@@ -2858,7 +3615,7 @@ msgstr ""
 "\n"
 "      --to=HÔTE          envoyer les ÉLÉMENTS vers l'HÔTE"
 
-#: guix/scripts/copy.scm:117
+#: guix/scripts/copy.scm:118
 msgid ""
 "\n"
 "      --from=HOST        receive ITEMS from HOST"
@@ -2866,17 +3623,17 @@ msgstr ""
 "\n"
 "      --from=HÔTE        recevoir les ÉLÉMENTS depuis l'HÔTE"
 
-#: guix/scripts/copy.scm:169
+#: guix/scripts/copy.scm:182
 #, scheme-format
 msgid "use '--to' or '--from'~%"
 msgstr "utilisez « --to » ou « --from »~%"
 
-#: guix/scripts/pack.scm:93
+#: guix/scripts/pack.scm:95
 #, scheme-format
 msgid "~a: compressor not found~%"
 msgstr "~a : compresseur introuvable~%"
 
-#: guix/scripts/pack.scm:504
+#: guix/scripts/pack.scm:513
 #, scheme-format
 msgid ""
 "cross-compilation not implemented here;\n"
@@ -2885,11 +3642,11 @@ msgstr ""
 "la compilation croisée n'est pas implémentée ici ;\n"
 "envoyez un courriel à « ~a »~%"
 
-#: guix/scripts/pack.scm:615
+#: guix/scripts/pack.scm:644
 msgid "The supported formats for 'guix pack' are:"
-msgstr "Les formats supportés par « guix pack » sont :"
+msgstr "Les formats pris en charge par « guix pack » sont :"
 
-#: guix/scripts/pack.scm:617
+#: guix/scripts/pack.scm:646
 msgid ""
 "\n"
 "  tarball       Self-contained tarball, ready to run on another machine"
@@ -2897,7 +3654,7 @@ msgstr ""
 "\n"
 "  tarball       Archive auto-contenue, prête à être lancée sur d'autres machines"
 
-#: guix/scripts/pack.scm:619
+#: guix/scripts/pack.scm:648
 msgid ""
 "\n"
 "  squashfs      Squashfs image suitable for Singularity"
@@ -2905,7 +3662,7 @@ msgstr ""
 "\n"
 "  squashfs      Image Squashfs compatible avec Singularity"
 
-#: guix/scripts/pack.scm:621
+#: guix/scripts/pack.scm:650
 msgid ""
 "\n"
 "  docker        Tarball ready for 'docker load'"
@@ -2913,17 +3670,17 @@ msgstr ""
 "\n"
 "  docker        Archive prête à être utilisée avec « docker load »"
 
-#: guix/scripts/pack.scm:678
+#: guix/scripts/pack.scm:712
 #, scheme-format
 msgid "~a: invalid symlink specification~%"
 msgstr "~a : spécification de lien symbolique invalide~%"
 
-#: guix/scripts/pack.scm:689
+#: guix/scripts/pack.scm:726
 #, scheme-format
 msgid "~a: unsupported profile name~%"
-msgstr "~a : nom de profil non supporté~%"
+msgstr "~a : nom de profil non pris en charge~%"
 
-#: guix/scripts/pack.scm:698
+#: guix/scripts/pack.scm:740
 msgid ""
 "Usage: guix pack [OPTION]... PACKAGE...\n"
 "Create a bundle of PACKAGE.\n"
@@ -2931,7 +3688,7 @@ msgstr ""
 "Utilisation : guix pack [OPTION]... PAQUET...\n"
 "Créer un lot applicatif de PAQUET.\n"
 
-#: guix/scripts/pack.scm:704
+#: guix/scripts/pack.scm:746
 msgid ""
 "\n"
 "  -f, --format=FORMAT    build a pack in the given FORMAT"
@@ -2939,7 +3696,7 @@ msgstr ""
 "\n"
 "  -f, --format=FORMAT    créer un lot applicatif dans le FORMAT donné"
 
-#: guix/scripts/pack.scm:706
+#: guix/scripts/pack.scm:748
 msgid ""
 "\n"
 "      --list-formats     list the formats available"
@@ -2947,7 +3704,7 @@ msgstr ""
 "\n"
 "      --list-formats     lister les formats disponibles"
 
-#: guix/scripts/pack.scm:708
+#: guix/scripts/pack.scm:750
 msgid ""
 "\n"
 "  -R, --relocatable      produce relocatable executables"
@@ -2955,7 +3712,7 @@ msgstr ""
 "\n"
 "  -R, --relocatable      produire des exécutables repositionnables"
 
-#: guix/scripts/pack.scm:716
+#: guix/scripts/pack.scm:758
 msgid ""
 "\n"
 "  -C, --compression=TOOL compress using TOOL--e.g., \"lzip\""
@@ -2964,7 +3721,7 @@ msgstr ""
 "  -C, --compression=OUTIL\n"
 "                         compresser en utilisant l'OUTIL, par ex, « lzip »"
 
-#: guix/scripts/pack.scm:718
+#: guix/scripts/pack.scm:760
 msgid ""
 "\n"
 "  -S, --symlink=SPEC     create symlinks to the profile according to SPEC"
@@ -2972,7 +3729,7 @@ msgstr ""
 "\n"
 "  -S, --symlink=SPEC     créer des liens symboliques vers le profil selon la SPEC"
 
-#: guix/scripts/pack.scm:720
+#: guix/scripts/pack.scm:762
 msgid ""
 "\n"
 "  -m, --manifest=FILE    create a pack with the manifest from FILE"
@@ -2980,7 +3737,15 @@ msgstr ""
 "\n"
 "  -m, --manifest=FICHIER créer un lot avec le manifeste dans FICHIER"
 
-#: guix/scripts/pack.scm:722
+#: guix/scripts/pack.scm:764
+msgid ""
+"\n"
+"      --save-provenance  save provenance information"
+msgstr ""
+"\n"
+"      --save-provenance  sauvegarder les informations de provenance"
+
+#: guix/scripts/pack.scm:766
 msgid ""
 "\n"
 "      --localstatedir    include /var/guix in the resulting pack"
@@ -2988,7 +3753,7 @@ msgstr ""
 "\n"
 "      --localstatedir    inclure /var/guix dans le lot résultant"
 
-#: guix/scripts/pack.scm:724
+#: guix/scripts/pack.scm:768
 msgid ""
 "\n"
 "      --profile-name=NAME\n"
@@ -2997,7 +3762,7 @@ msgstr ""
 "\n"
 "      --profile-name=NOM rempli /var/guix/profiles/.../NOM"
 
-#: guix/scripts/pack.scm:727
+#: guix/scripts/pack.scm:773
 msgid ""
 "\n"
 "      --bootstrap        use the bootstrap binaries to build the pack"
@@ -3005,91 +3770,96 @@ msgstr ""
 "\n"
 "      --bootstrap        utiliser les programmes d'amorçage pour compiler le lot"
 
-#: guix/scripts/pack.scm:769
+#: guix/scripts/pack.scm:818
+#, scheme-format
+msgid "could not determine provenance of package ~a~%"
+msgstr "impossible de déterminer la provenance du paquet ~a~%"
+
+#: guix/scripts/pack.scm:827
 #, 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:814
+#: guix/scripts/pack.scm:882
 #, scheme-format
 msgid "~a: unknown pack format~%"
 msgstr "~a : format de lot inconnu~%"
 
-#: guix/scripts/weather.scm:73
+#: guix/scripts/weather.scm:80
 msgid "computing ~h package derivations for ~a...~%"
 msgstr "calcul de ~h dérivations de paquets pour ~a…~%"
 
-#: guix/scripts/weather.scm:162
+#: guix/scripts/weather.scm:169
 msgid "looking for ~h store items on ~a...~%"
 msgstr "recherche de ~h éléments du dépôt sur ~a...~%"
 
-#: guix/scripts/weather.scm:174
+#: guix/scripts/weather.scm:181
 msgid "  ~2,1f% substitutes available (~h out of ~h)~%"
-msgstr "  ~2,1f% substituts disponibles (~h sur ~h)~%"
+msgstr "  ~2,1f % des substituts sont disponibles (~h sur ~h)~%"
 
-#: guix/scripts/weather.scm:180
+#: guix/scripts/weather.scm:187
 #, scheme-format
 msgid "  unknown substitute sizes~%"
 msgstr "  taille des substituts inconnue~%"
 
-#: guix/scripts/weather.scm:183
+#: guix/scripts/weather.scm:190
 msgid "  ~,1h MiB of nars (compressed)~%"
 msgstr "  ~,1h Mo de fichiers nar (compressés)~%"
 
-#: guix/scripts/weather.scm:184
+#: guix/scripts/weather.scm:191
 msgid "  at least ~,1h MiB of nars (compressed)~%"
 msgstr "  au moins ~,1h Mo de fichiers nar (compressés)~%"
 
-#: guix/scripts/weather.scm:186
+#: guix/scripts/weather.scm:193
 msgid "  ~,1h MiB on disk (uncompressed)~%"
 msgstr "  ~,1h Mo sur le disque (décompressé)~%"
 
-#: guix/scripts/weather.scm:188
+#: guix/scripts/weather.scm:195
 msgid "  ~,3h seconds per request (~,1h seconds in total)~%"
 msgstr "  ~,3h secondes par requête (~,1h secondesen tout)~%"
 
-#: guix/scripts/weather.scm:190
+#: guix/scripts/weather.scm:197
 msgid "  ~,1h requests per second~%"
 msgstr "  ~,1h requêtes par seconde~%"
 
-#: guix/scripts/weather.scm:196
+#: guix/scripts/weather.scm:203
 #, scheme-format
 msgid "  (continuous integration information unavailable)~%"
 msgstr "  (informations sur l’intégration continue indisponibles)~%"
 
-#: guix/scripts/weather.scm:199
+#: guix/scripts/weather.scm:206
 #, scheme-format
 msgid "  '~a' returned ~a (~s)~%"
 msgstr "  « ~a » a renvoyé ~a (~s)~%"
 
-#: guix/scripts/weather.scm:216
+#: guix/scripts/weather.scm:223
 msgid "  ~,1f% (~h out of ~h) of the missing items are queued~%"
-msgstr "  ~,1f% (~h sur ~h) des éléments manquants sont dans la queue~%"
+msgstr "  ~,1f % (~h sur ~h) des éléments manquants sont dans la queue~%"
 
-#: guix/scripts/weather.scm:222
+#: guix/scripts/weather.scm:229
 msgid "  at least ~h queued builds~%"
 msgstr "  au moins ~h constructions dans la queue~%"
 
-#: guix/scripts/weather.scm:223
+#: guix/scripts/weather.scm:230
 msgid "  ~h queued builds~%"
 msgstr "  ~h constructions dans la queue~%"
 
-#: guix/scripts/weather.scm:226
+#: guix/scripts/weather.scm:233
 #, scheme-format
 msgid "      ~a: ~a (~0,1f%)~%"
-msgstr "      ~a : ~a (~0,1f%)~%"
+msgstr "      ~a : ~a (~0,1f %)~%"
 
-#: guix/scripts/weather.scm:232
+#: guix/scripts/weather.scm:239
 #, scheme-format
 msgid "  build rate: ~1,2f builds per hour~%"
 msgstr "  vitesse de construction : ~1,2f constructions par l'heure~%"
 
-#: guix/scripts/weather.scm:236
+#: guix/scripts/weather.scm:243
 #, scheme-format
 msgid "      ~a: ~,2f builds per hour~%"
 msgstr "      ~a: ~,2f constructions par heure~%"
 
-#: guix/scripts/weather.scm:248
+#: guix/scripts/weather.scm:255
 msgid ""
 "Usage: guix weather [OPTIONS]\n"
 "Report the availability of substitutes.\n"
@@ -3097,7 +3867,7 @@ msgstr ""
 "Usage : guix weather [OPTIONS]\n"
 "Rapporte la disponibilité des substituts.\n"
 
-#: guix/scripts/weather.scm:250
+#: guix/scripts/weather.scm:257
 msgid ""
 "\n"
 "      --substitute-urls=URLS\n"
@@ -3107,7 +3877,7 @@ msgstr ""
 "      --substitute-urls=URLS\n"
 "                         vérifie la disponibilité des substituts aux URLS"
 
-#: guix/scripts/weather.scm:253
+#: guix/scripts/weather.scm:260
 msgid ""
 "\n"
 "  -m, --manifest=MANIFEST\n"
@@ -3117,7 +3887,19 @@ msgstr ""
 "  -m, --manifest=MANIFESTE\n"
 "                         recherche les substituts des paquets du MANIFESTE"
 
-#: guix/scripts/weather.scm:256
+#: guix/scripts/weather.scm:263
+msgid ""
+"\n"
+"  -c, --coverage[=COUNT]\n"
+"                         show substitute coverage for packages with at least\n"
+"                         COUNT dependents"
+msgstr ""
+"\n"
+"  -c, --coverage[=COMPTE]\n"
+"                         affiche la couverture des substituts pour les paquets qui ont au\n"
+"                         moins COMPTE paquets qui en dépendent"
+
+#: guix/scripts/weather.scm:267
 msgid ""
 "\n"
 "  -s, --system=SYSTEM    consider substitutes for SYSTEM--e.g., \"i686-linux\""
@@ -3125,15 +3907,29 @@ msgstr ""
 "\n"
 "  -s, --system=SYSTÈME   prend en compte les substituts pour le SYSTÈME, par exemple « i686-linux »"
 
-#: guix/scripts/weather.scm:280
+#: guix/scripts/weather.scm:291
 #, scheme-format
 msgid "~a: invalid URL~%"
 msgstr "~a : URL invalide~%"
 
+#: guix/scripts/weather.scm:420
+#, 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:426
+#, 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:45
 #, scheme-format
 msgid "~a: unsupported output format~%"
-msgstr "~a : format de sortie non supporté~%"
+msgstr "~a : format de sortie non pris en charge~%"
 
 #: guix/scripts/describe.scm:64
 msgid ""
@@ -3164,27 +3960,32 @@ msgstr ""
 msgid "~%;; warning: GUIX_PACKAGE_PATH=\"~a\"~%"
 msgstr "~%;; attention : GUIX_PACKAGE_PATH=\"~a\"~%"
 
-#: guix/scripts/describe.scm:115
+#: guix/scripts/describe.scm:90
+#, 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:117
 #, scheme-format
 msgid "failed to determine origin~%"
 msgstr "échec à la détection de l'origine~%"
 
-#: guix/scripts/describe.scm:121
+#: guix/scripts/describe.scm:123
 #, scheme-format
 msgid "Git checkout:~%"
 msgstr "Dépôt git :~%"
 
-#: guix/scripts/describe.scm:122
+#: guix/scripts/describe.scm:124
 #, scheme-format
 msgid "  repository: ~a~%"
 msgstr "  URL du dépôt : ~a~%"
 
-#: guix/scripts/describe.scm:123
+#: guix/scripts/describe.scm:125
 #, scheme-format
 msgid "  branch: ~a~%"
 msgstr "  branche: ~a~%"
 
-#: guix/scripts/describe.scm:124
+#: guix/scripts/describe.scm:126
 #, scheme-format
 msgid "  commit: ~a~%"
 msgstr "  commit : ~a~%"
@@ -3197,23 +3998,23 @@ msgstr ""
 "Utilisation : guix processes\n"
 "Liste les sessions Guix actuelles et leurs processus."
 
-#: guix/gnu-maintenance.scm:661
+#: guix/gnu-maintenance.scm:660
 msgid "Updater for GNU packages"
 msgstr "Logiciel de mise à jour des paquets GNU"
 
-#: guix/gnu-maintenance.scm:670
+#: guix/gnu-maintenance.scm:669
 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:679
+#: guix/gnu-maintenance.scm:678
 msgid "Updater for KDE packages"
 msgstr "Logiciel de mise à jour des paquets KDE"
 
-#: guix/gnu-maintenance.scm:686
+#: guix/gnu-maintenance.scm:685
 msgid "Updater for X.org packages"
 msgstr "Logiciel de mise à jour des paquets X.org"
 
-#: guix/gnu-maintenance.scm:693
+#: guix/gnu-maintenance.scm:692
 msgid "Updater for packages hosted on kernel.org"
 msgstr "Logiciel de mise à jour des paquets hébergés sur kernel.org"
 
@@ -3272,90 +4073,89 @@ msgstr "aucun processus ~d~%"
 msgid "exec failed with status ~d~%"
 msgstr "exec a échoué avec le statut ~d~%"
 
-#: guix/upstream.scm:250
+#: guix/upstream.scm:327
 #, scheme-format
 msgid "signature verification failed for `~a'~%"
 msgstr "la vérification de la signature a échoué pour « ~a »~%"
 
-#: guix/upstream.scm:252
+#: guix/upstream.scm:329
 #, scheme-format
 msgid "(could be because the public key is not in your keyring)~%"
 msgstr "(il est possible que la clé publique ne soit pas dans dans votre trousseau)~%"
 
-#: guix/upstream.scm:337
+#: guix/upstream.scm:397
+#, scheme-format
+msgid "cannot download for this method: ~s"
+msgstr "impossible de télécharger pour cette méthode : ~s"
+
+#: guix/upstream.scm:460
 #, scheme-format
 msgid "~a: could not locate source file"
 msgstr "~a : le fichier source est introuvable"
 
-#: guix/upstream.scm:342
+#: guix/upstream.scm:465
 #, scheme-format
 msgid "~a: ~a: no `version' field in source; skipping~%"
 msgstr "~a : ~a : aucun champ « version » dans la source ; ignoré~%"
 
-#: guix/ui.scm:175
+#. TRANSLATORS: The goal is to emit "warning:" followed by a short phrase;
+#. "~a" is a placeholder for that phrase.
+#: guix/ui.scm:203
+msgid "warning: "
+msgstr "avertissement : "
+
+#: guix/ui.scm:205
+msgid "error: "
+msgstr "erreur : "
+
+#: guix/ui.scm:252
 #, scheme-format
 msgid "error: ~a: unbound variable"
 msgstr "erreur : ~a : variable non liée"
 
-#: guix/ui.scm:271
+#: guix/ui.scm:348
 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:320
-#, scheme-format
-msgid "hint: ~a~%"
-msgstr "conseil : ~a~%"
+#: guix/ui.scm:403
+msgid "hint: "
+msgstr "conseil : "
 
-#: guix/ui.scm:336
+#: guix/ui.scm:420
 msgid "Did you forget a @code{use-modules} form?"
 msgstr "Auriez-vous oublié un @code{use-modules} ?"
 
-#: guix/ui.scm:338
+#: guix/ui.scm:422
 #, scheme-format
 msgid "Did you forget @code{(use-modules ~a)}?"
 msgstr "Auriez-vous oublié @code{(use-modules ~a)} ?"
 
-#: guix/ui.scm:347 guix/ui.scm:387 guix/ui.scm:394
+#: guix/ui.scm:431 guix/ui.scm:472 guix/ui.scm:478
 #, scheme-format
 msgid "failed to load '~a': ~a~%"
 msgstr "impossible de charger « ~a » : ~a~%"
 
-#: guix/ui.scm:354
+#: guix/ui.scm:438
 #, scheme-format
 msgid "~amissing closing parenthesis~%"
 msgstr "~a parenthèses fermantes manquantes~%"
 
-#: guix/ui.scm:359 guix/ui.scm:367 guix/ui.scm:714
-#, scheme-format
-msgid "~a: error: ~a~%"
-msgstr "~a : erreur: ~a~%"
-
-#: guix/ui.scm:374 guix/ui.scm:784
+#: guix/ui.scm:452 guix/ui.scm:875
 #, scheme-format
 msgid "exception thrown: ~s~%"
 msgstr "exception générée : ~s~%"
 
-#: guix/ui.scm:378 guix/ui.scm:400
+#: guix/ui.scm:456 guix/ui.scm:484
 #, scheme-format
 msgid "failed to load '~a':~%"
 msgstr "échec lors du chargement de « ~a » :~%"
 
-#: guix/ui.scm:390
-#, scheme-format
-msgid "~a: warning: ~a~%"
-msgstr "~a : avertissement : ~a~%"
-
-#: guix/ui.scm:397
+#: guix/ui.scm:481
 #, 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:433
-#, scheme-format
-msgid "failed to install locale: ~a~%"
-msgstr "impossible d'installer l'environnement linguistique : ~a~%"
-
-#: guix/ui.scm:435
+#: guix/ui.scm:514
 msgid ""
 "Consider installing the @code{glibc-utf8-locales} or\n"
 "@code{glibc-locales} package and defining @code{GUIX_LOCPATH}, along these\n"
@@ -3382,15 +4182,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:473
+#: guix/ui.scm:552
 msgid "(C)"
 msgstr "©"
 
-#: guix/ui.scm:474
+#: guix/ui.scm:553
 msgid "the Guix authors\n"
 msgstr "les auteurs de Guix\n"
 
-#: guix/ui.scm:475
+#: guix/ui.scm:554
 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"
@@ -3404,7 +4204,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:487
+#: guix/ui.scm:566
 #, scheme-format
 msgid ""
 "\n"
@@ -3414,7 +4214,7 @@ msgstr ""
 "Signalez toute anomalie à : ~a.\n"
 "Signalez toute erreur de traduction à : traduc@traduc.org."
 
-#: guix/ui.scm:489
+#: guix/ui.scm:568
 #, scheme-format
 msgid ""
 "\n"
@@ -3423,7 +4223,7 @@ msgstr ""
 "\n"
 "~a page d'accueil : <~a>"
 
-#: guix/ui.scm:491
+#: guix/ui.scm:570
 msgid ""
 "\n"
 "General help using GNU software: <http://www.gnu.org/gethelp/>"
@@ -3431,27 +4231,27 @@ msgstr ""
 "\n"
 "Aide générale sur l'utilisation des logiciels GNU : <http://www.gnu.org/gethelp/>"
 
-#: guix/ui.scm:539
+#: guix/ui.scm:625
 #, scheme-format
 msgid "'~a' is not a valid regular expression: ~a~%"
 msgstr "« ~a » n'est pas une expression rationnelle valide : ~a~%"
 
-#: guix/ui.scm:545
+#: guix/ui.scm:631
 #, scheme-format
 msgid "~a: invalid number~%"
 msgstr "~a : nombre non valide~%"
 
-#: guix/ui.scm:562
+#: guix/ui.scm:648
 #, scheme-format
 msgid "invalid number: ~a~%"
 msgstr "nombre non valide : ~a~%"
 
-#: guix/ui.scm:585
+#: guix/ui.scm:671
 #, scheme-format
 msgid "unknown unit: ~a~%"
 msgstr "unité inconnue : ~a~%"
 
-#: guix/ui.scm:600
+#: guix/ui.scm:686
 #, scheme-format
 msgid ""
 "You cannot have two different versions\n"
@@ -3460,7 +4260,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:603
+#: guix/ui.scm:689
 #, scheme-format
 msgid ""
 "Try upgrading both @code{~a} and @code{~a},\n"
@@ -3469,116 +4269,116 @@ msgstr ""
 "Essayez de mettre à jour à la fois @code{~a} et @code{~a},\n"
 "ou supprimez-en un du profil."
 
-#: guix/ui.scm:622
+#: 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:629
+#: guix/ui.scm:715
 #, scheme-format
 msgid "~a: ~a: build system `~a' does not support cross builds~%"
-msgstr "~a : ~a : le système de compilation « ~a » ne supporte pas la compilation croisée~%"
+msgstr "~a : ~a : le système de construction « ~a » ne prend pas en charge la compilation croisée~%"
 
-#: guix/ui.scm:635
+#: guix/ui.scm:721
 #, scheme-format
 msgid "~s: invalid G-expression input~%"
 msgstr "~s : entrée G-expression invalide~%"
 
-#: guix/ui.scm:638
+#: guix/ui.scm:724
 #, scheme-format
 msgid "profile '~a' does not exist~%"
 msgstr "le profile « ~a » n'existe pas~%"
 
-#: guix/ui.scm:641
+#: guix/ui.scm:727
 #, scheme-format
 msgid "generation ~a of profile '~a' does not exist~%"
 msgstr "la génération ~a du profile « ~a » n'existe pas~%"
 
-#: guix/ui.scm:650
+#: 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:744
 #, scheme-format
 msgid "   ... propagated from ~a@~a~%"
 msgstr "   ... propagé depuis ~a@~a~%"
 
-#: guix/ui.scm:660
+#: 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:663
+#: 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:669
+#: 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:681
+#: 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:683
+#: 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:686
+#: guix/ui.scm:780
 #, scheme-format
 msgid "failed to connect to `~a': ~a~%"
 msgstr "impossible de se connecter à « ~a » : ~a~%"
 
-#: guix/ui.scm:691
-#, scheme-format
-msgid "build failed: ~a~%"
-msgstr "la compilation a échoué : ~a~%"
-
-#: guix/ui.scm:694
+#: 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:698
+#: 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:703
+#: 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:734
+#: guix/ui.scm:825
 #, scheme-format
 msgid "~a: ~a~%"
 msgstr "~a: ~a~%"
 
-#: guix/ui.scm:769
+#: guix/ui.scm:860
 #, scheme-format
 msgid "failed to read expression ~s: ~s~%"
 msgstr "impossible de lire l'expression ~s : ~s~%"
 
-#: guix/ui.scm:775
+#: guix/ui.scm:866
 #, scheme-format
 msgid "failed to evaluate expression '~a':~%"
 msgstr "impossible d'évaluer l'expression « ~a » :~%"
 
-#: guix/ui.scm:778
+#: guix/ui.scm:869
 #, scheme-format
 msgid "syntax error: ~a~%"
 msgstr "erreur de syntaxe : ~a~%"
 
-#: guix/ui.scm:796
+#: guix/ui.scm:887
 #, scheme-format
 msgid "expression ~s does not evaluate to a package~%"
 msgstr "l'expression ~s ne correspond à aucun paquet~%"
 
-#: guix/ui.scm:816
+#: guix/ui.scm:907
 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:894
+#: guix/ui.scm:1009
 #, scheme-format
 msgid "~:[The following derivation would be built:~%~{   ~a~%~}~;~]"
 msgid_plural "~:[The following derivations would be built:~%~{   ~a~%~}~;~]"
@@ -3587,25 +4387,32 @@ 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:902
+#: guix/ui.scm:1017
 msgid "~:[~,1h MB would be downloaded:~%~{   ~a~%~}~;~]"
 msgstr "~:[~,1h Mo seraient téléchargés :~%~{   ~a~%~}~;~]"
 
-#: guix/ui.scm:907
+#: guix/ui.scm:1022
 #, 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:913
+#: guix/ui.scm:1028
 #, 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:919
+#: guix/ui.scm:1033
+#, 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:1039
 #, scheme-format
 msgid "~:[The following derivation will be built:~%~{   ~a~%~}~;~]"
 msgid_plural "~:[The following derivations will be built:~%~{   ~a~%~}~;~]"
@@ -3614,85 +4421,92 @@ 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:927
+#: guix/ui.scm:1047
 msgid "~:[~,1h MB will be downloaded:~%~{   ~a~%~}~;~]"
 msgstr "~:[~,1h Mo seront téléchargés :~%~{   ~a~%~}~;~]"
 
-#: guix/ui.scm:932
+#: guix/ui.scm:1052
 #, 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:938
+#: guix/ui.scm:1058
 #, 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:997
+#: guix/ui.scm:1063
+#, 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:1122
 #, 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:1002
+#: guix/ui.scm:1127
 #, 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:1015
+#: guix/ui.scm:1140
 #, 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:1020
+#: guix/ui.scm:1145
 #, 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:1033
+#: guix/ui.scm:1158
 #, 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:1038
+#: guix/ui.scm:1163
 #, 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:1049
+#: guix/ui.scm:1174
 #, 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:1054
+#: guix/ui.scm:1179
 #, 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:1071
+#: guix/ui.scm:1196 guix/deprecation.scm:46
 msgid "<unknown location>"
 msgstr "<emplacement inconnu>"
 
-#: guix/ui.scm:1436
+#: guix/ui.scm:1567
 #, scheme-format
 msgid "Generation ~a\t~a"
 msgstr "Génération ~a\t~a"
@@ -3702,7 +4516,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:1445
+#: guix/ui.scm:1576
 #, scheme-format
 msgid "~b ~d ~Y ~T"
 msgstr "~d ~b ~Y ~T"
@@ -3710,27 +4524,27 @@ 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:1451
+#: guix/ui.scm:1582
 #, scheme-format
 msgid "~a\t(current)~%"
 msgstr "~a\t(actuelle)~%"
 
-#: guix/ui.scm:1494
+#: guix/ui.scm:1625
 #, scheme-format
 msgid "switched from generation ~a to ~a~%"
 msgstr "passé de la génération ~a à ~a~%"
 
-#: guix/ui.scm:1510
+#: guix/ui.scm:1641
 #, scheme-format
 msgid "deleting ~a~%"
 msgstr "suppression de ~a~%"
 
-#: guix/ui.scm:1541
+#: guix/ui.scm:1672
 #, scheme-format
 msgid "Try `guix --help' for more information.~%"
 msgstr "Essayez « guix --help » pour plus d'informations.~%"
 
-#: guix/ui.scm:1569
+#: guix/ui.scm:1700
 msgid ""
 "Usage: guix COMMAND ARGS...\n"
 "Run COMMAND with ARGS.\n"
@@ -3738,92 +4552,153 @@ msgstr ""
 "Usage : guix COMMANDE ARGS...\n"
 "Lance la COMMANDE avec les arguments ARGS.\n"
 
-#: guix/ui.scm:1572
+#: guix/ui.scm:1703
 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:1592
+#: guix/ui.scm:1723
 #, scheme-format
 msgid "guix: ~a: command not found~%"
 msgstr "guix : ~a : commande introuvable~%"
 
-#: guix/ui.scm:1622
+#: guix/ui.scm:1753
 #, scheme-format
 msgid "guix: missing command name~%"
 msgstr "guix : nom de commande manquant~%"
 
-#: guix/ui.scm:1630
+#: guix/ui.scm:1761
 #, scheme-format
 msgid "guix: unrecognized option '~a'~%"
 msgstr "guix : option « ~a » non reconnue ~%"
 
-#: guix/status.scm:335
+#. 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 "phase « ~a »"
+
+#: guix/status.scm:378
+msgid "building directory of Info manuals..."
+msgstr "construction du répertoire des manuels Info…"
+
+#: guix/status.scm:380
+msgid "building GHC package cache..."
+msgstr "construction du cache des paquets GHC…"
+
+#: guix/status.scm:382
+msgid "building CA certificate bundle..."
+msgstr "construction de l'ensemble des certificats des AC…"
+
+#: guix/status.scm:384
+msgid "generating GLib schema cache..."
+msgstr "génération du cache de schémas GLib…"
+
+#: guix/status.scm:386
+msgid "creating GTK+ icon theme cache..."
+msgstr "création du cache des thèmes d'icônes GTK+…"
+
+#: guix/status.scm:388
+msgid "building cache files for GTK+ input methods..."
+msgstr "construction des fichiers de cache pour les méthodes d'entrée GTK+…"
+
+#: guix/status.scm:390
+msgid "building XDG desktop file cache..."
+msgstr "construction du cache des fichiers desktop du XDG…"
+
+#: guix/status.scm:392
+msgid "building XDG MIME database..."
+msgstr "construction de la base de données MIME du XDG…"
+
+#: guix/status.scm:394
+msgid "building fonts directory..."
+msgstr "construction du répertoire des polices…"
+
+#: guix/status.scm:396
+msgid "building TeX Live configuration..."
+msgstr "construction de la configuration de TeX Live…"
+
+#: guix/status.scm:398
+msgid "building database for manual pages..."
+msgstr "construction de la base de données des pages de manuel…"
+
+#: guix/status.scm:400
+msgid "building package cache..."
+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..."
 msgstr[0] "application de ~a greffe pour ~a..."
 msgstr[1] "application de ~a greffes pour ~a..."
 
-#: guix/status.scm:340
+#: guix/status.scm:484
+#, scheme-format
+msgid "running profile hook of type '~a'..."
+msgstr "lancement du crochet de profil de type « ~a »…"
+
+#: guix/status.scm:487
 #, scheme-format
 msgid "building ~a..."
 msgstr "construction de ~a..."
 
-#: guix/status.scm:344
+#: guix/status.scm:492
 #, scheme-format
 msgid "successfully built ~a"
 msgstr "construction de ~a réussie"
 
-#: guix/status.scm:350
+#: guix/status.scm:498
 #, scheme-format
 msgid "The following build is still in progress:~%~{  ~a~%~}~%"
 msgid_plural "The following builds are still in progress:~%~{  ~a~%~}~%"
 msgstr[0] "La construction suivante est toujours en cours :~%~{  ~a~%~}~%"
 msgstr[1] "Les constructions suivantes sont toujours en cours :~%~{  ~a~%~}~%"
 
-#: guix/status.scm:355
+#: guix/status.scm:504
 #, scheme-format
 msgid "build of ~a failed"
 msgstr "la compilation de ~a a échoué"
 
-#: guix/status.scm:359
+#: guix/status.scm:508
 #, scheme-format
 msgid "Could not find build log for '~a'."
-msgstr "Aucun journal de compilation pour « ~a »~%"
+msgstr "Aucun journal de compilation pour « ~a »."
 
-#: guix/status.scm:362
+#: guix/status.scm:511
 #, scheme-format
 msgid "View build log at '~a'."
 msgstr "Vous trouverez le journal de compilation dans « ~a »."
 
-#: guix/status.scm:366
+#: guix/status.scm:516
 #, scheme-format
 msgid "substituting ~a..."
 msgstr "substitution de ~a..."
 
-#: guix/status.scm:369
+#: guix/status.scm:520
 #, scheme-format
 msgid "downloading from ~a..."
 msgstr "téléchargement depuis ~a..."
 
-#: guix/status.scm:394
+#: guix/status.scm:545
 #, scheme-format
 msgid "substitution of ~a complete"
 msgstr "substitution de ~a terminée"
 
-#: guix/status.scm:397
+#: guix/status.scm:548
 #, scheme-format
 msgid "substitution of ~a failed"
 msgstr "la substitution de ~a a échoué"
 
 #. TRANSLATORS: The final string looks like "sha256 hash mismatch for
 #. /gnu/store/…-sth:", where "sha256" is the hash algorithm.
-#: guix/status.scm:402
+#: guix/status.scm:553
 #, scheme-format
 msgid "~a hash mismatch for ~a:"
 msgstr "l'empreinte ~a ne correspond pas pour ~a :"
 
-#: guix/status.scm:404
+#: guix/status.scm:555
 #, scheme-format
 msgid ""
 "  expected hash: ~a\n"
@@ -3832,7 +4707,7 @@ msgstr ""
 "  empreinte attendue : ~a\n"
 "  empreinte obtenue :   ~a~%"
 
-#: guix/status.scm:409
+#: guix/status.scm:560
 #, scheme-format
 msgid "offloading build of ~a to '~a'"
 msgstr "déchargement de la construction de ~a sur « ~a »"
@@ -3889,35 +4764,78 @@ msgstr "les fichiers importés requièrent une signature"
 msgid "invalid inter-file archive mark"
 msgstr "marque d'archive inter-fichier non valide"
 
-#: guix/channels.scm:108
+#: guix/channels.scm:177
 #, scheme-format
 msgid "Updating channel '~a' from Git repository at '~a'...~%"
 msgstr "Mise à jour du canal « ~a » depuis le dépôt Git sur « ~a »...~%"
 
-#: guix/profiles.scm:501
+#: guix/channels.scm:366
+msgid "'guix' channel is lacking"
+msgstr "le canal « guix » est absent"
+
+#: guix/profiles.scm:511
 msgid "unsupported manifest format"
-msgstr "format de manifeste non supporté"
+msgstr "format de manifeste non pris en charge"
 
-#: guix/profiles.scm:1630
+#: guix/profiles.scm:1748
 #, scheme-format
 msgid "while creating directory `~a': ~a"
 msgstr "pendant la création du répertoire « ~a » : ~a"
 
-#: guix/profiles.scm:1635
+#: guix/profiles.scm:1753
 #, 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:1644
+#: guix/profiles.scm:1762
 #, scheme-format
 msgid "directory `~a' is not owned by you"
 msgstr "vous ne possédez pas le répertoire « ~a »"
 
-#: guix/profiles.scm:1648
+#: guix/profiles.scm:1766
 #, 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:159
+msgid "long Git object ID is required"
+msgstr "l'ID long de l'objet Git est requis"
+
+#: guix/git.scm:192
+#, scheme-format
+msgid "updating submodule '~a'...~%"
+msgstr "mise à jour du sous-module « ~a »…~%"
+
+#: guix/git.scm:205
+#, 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.~%"
+
+#: guix/git.scm:344
+#, 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:347
+#, 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:350
+#, scheme-format
+msgid "Git failure while fetching ~a: ~a"
+msgstr "Échec de Git pendant la récupération de ~a : ~a"
+
+#: guix/deprecation.scm:51
+#, scheme-format
+msgid "~a: warning: '~a' is deprecated~@[, use '~a' instead~]~%"
+msgstr "~a : attention : « ~a » est obsolète~@[, utilisez « ~a » à la place~]~%"
+
+#: gnu/build/bootloader.scm:91
+#, 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~%~}"
+
 #: nix/nix-daemon/guix-daemon.cc:66
 msgid "guix-daemon -- perform derivation builds and store accesses"
 msgstr "guix-daemon -- réalise les compilations des dérivations et les accès au stockage"
@@ -4042,6 +4960,33 @@ msgstr "écoute sur SOCKET pour des connexions"
 msgid "produce debugging output"
 msgstr "produit une sortie de déboguage"
 
+#~ msgid "'--url', '--commit', and '--branch' are not applicable~%"
+#~ msgstr "'--url', '--commit' et '--branch' ne sont pas utilisables~%"
+
+#~ msgid ""
+#~ "Consider running @command{guix gc} to free\n"
+#~ "space."
+#~ msgstr "Pensez à lancer @command{guix gc} pour libérer de l'espace."
+
+#~ msgid ""
+#~ "\n"
+#~ "  -n, --dry-run          show what would be pulled and built"
+#~ msgstr ""
+#~ "\n"
+#~ "  -n, --dry-run          montrer ce qui serait récupéré et ce qui serait construit"
+
+#~ msgid "source location of package '~a' is unknown~%"
+#~ msgstr "l'emplacement source du paquet « ~a » est inconnue~%"
+
+#~ msgid "~a: error: ~a~%"
+#~ msgstr "~a : erreur: ~a~%"
+
+#~ msgid "failed to install locale: ~a~%"
+#~ msgstr "impossible d'installer l'environnement linguistique : ~a~%"
+
+#~ msgid "build failed: ~a~%"
+#~ msgstr "la compilation a échoué : ~a~%"
+
 #~ msgid "Try \"info '(guix) Invoking guix package'\" for more information.~%"
 #~ msgstr "Essayez « info '(guix) Invoking guix package' » pour plus d'information.~%"
 
@@ -4116,9 +5061,6 @@ msgstr "produit une sortie de déboguage"
 #~ msgid "failed to lookup NIST host: ~a~%"
 #~ msgstr "impossible de trouver l'hôte NIST: ~a~%"
 
-#~ msgid "Updater for GNOME packages"
-#~ msgstr "Logiciel de mise à jour des paquets GNOME"
-
 #~ msgid "failed to create configuration directory `~a': ~a~%"
 #~ msgstr "impossible de créer le répertoire de configuration « ~a »: ~a~%"
 
@@ -4143,9 +5085,6 @@ msgstr "produit une sortie de déboguage"
 #~ msgid "error: %s: invalid number of rounds\n"
 #~ msgstr "erreur: %s: nombre de tours invalide\n"
 
-#~ msgid "error: %s\n"
-#~ msgstr "erreur: %s\n"
-
 #~ msgid "error: libgcrypt version mismatch\n"
 #~ msgstr "erreur: désaccord de version de libgcrypt\n"
 
diff --git a/po/packages/es.po b/po/packages/es.po
index d906142cbb..1c93aaa7b8 100644
--- a/po/packages/es.po
+++ b/po/packages/es.po
@@ -1,102 +1,101 @@
-# Spanish translation for guix-packages 0.14.0
-# Copyright (C) 2018 Ludovic Courtès
+# Spanish translation for guix-packages 1.0.0-pre2
+# Copyright (C) 2019 Ludovic Courtès
 # 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 0.14.0\n"
+"Project-Id-Version: guix-packages 1.0.0-pre2\n"
 "Report-Msgid-Bugs-To: ludo@gnu.org\n"
-"POT-Creation-Date: 2017-11-28 08:56+0100\n"
-"PO-Revision-Date: 2018-04-17 10:57+0200\n"
-"Last-Translator: Francisco Javier Serrador <fserrador@gmail.com>\n"
+"POT-Creation-Date: 2019-04-24 13:25+0200\n"
+"PO-Revision-Date: 2019-04-24 21:50+0200\n"
+"Last-Translator: Miguel Ángel Arruga Vivas <rosen644835@gmail.com>\n"
 "Language-Team: Spanish <es@tp.org.es>\n"
 "Language: es\n"
 "MIME-Version: 1.0\n"
 "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.0.4\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Poedit-SourceCharset: UTF-8\n"
 
-#: gnu/packages/abiword.scm:114
+#: gnu/packages/abiword.scm:115
 msgid "Word processing program"
-msgstr "Programa de procesado de palabras"
+msgstr "Programa de procesado de texto"
 
 #. 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:123
+#: gnu/packages/abiword.scm:124
 msgid ""
 "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 es un programa de procesado de palabras.  Es\n"
-"rápidamente convirtiéndose en un estado de arte del proceso de palabras,\n"
-"con muchas características útiles para su trabajo diario, necesidades\n"
-"personales, o para tan solo algo bueno de tecleo a la usanza."
+"AbiWord es un procesador de texto. Rápidamente se está convirtiendo\n"
+"en un procesador de texto de última tecnología, con muchas características\n"
+"ú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:70 gnu/packages/libreoffice.scm:715
+#: gnu/packages/aspell.scm:85 gnu/packages/libreoffice.scm:771
 msgid "Spell checker"
 msgstr "Comprobador ortográfico"
 
-#: gnu/packages/aspell.scm:72
+#: 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"
 "documents written in the UTF-8 encoding and its ability to use multiple\n"
 "dictionaries, including personal ones."
 msgstr ""
-"Aspell es un comprobador de palabras las cuales pueden ser usadas o\n"
-"como una biblioteca o como un programa por sí mismo.  Características\n"
-"notables de Aspell es compatibilidad completa de documentos escritos\n"
-"en codificación UTF-8 y sus capacidades para utilizar múltiples diccionarios,\n"
-"incluyendo unos personales."
+"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."
 
-#: gnu/packages/aspell.scm:114
+#: gnu/packages/aspell.scm:129
 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:285 gnu/packages/libreoffice.scm:765
+#: gnu/packages/aspell.scm:324 gnu/packages/libreoffice.scm:821
 msgid ""
 "This package provides a dictionary for the Hunspell spell-checking\n"
 "library."
 msgstr ""
 "Este paquete proporciona un diccionario para la biblioteca de\n"
-"ortografía Hunspell"
+"comprobación ortográfica Hunspell."
 
-#: gnu/packages/aspell.scm:303
+#: gnu/packages/aspell.scm:342
 msgid "Hunspell dictionary for English"
 msgstr "Diccionario Hunspell para inglés"
 
-#: gnu/packages/aspell.scm:307
+#: gnu/packages/aspell.scm:346
 msgid "Hunspell dictionary for Australian English"
 msgstr "Diccionario Hunspell para inglés australiano"
 
-#: gnu/packages/aspell.scm:311
+#: gnu/packages/aspell.scm:350
 msgid "Hunspell dictionary for Canadian English"
 msgstr "Diccionario Hunspell para inglés canadiense"
 
-#: gnu/packages/aspell.scm:315
+#: gnu/packages/aspell.scm:354
 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:319
+#: gnu/packages/aspell.scm:358
 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:323
+#: gnu/packages/aspell.scm:362
 msgid "Hunspell dictionary for United States English"
 msgstr "Diccionario Hunspell para inglés norteamericano"
 
-#: gnu/packages/audio.scm:128
+#: gnu/packages/audio.scm:147
 msgid "Realtime modular synthesizer and effect processor"
-msgstr ""
+msgstr "Sintetizador modular y procesador de efectos de tiempo real"
 
-#: gnu/packages/audio.scm:130
+#: gnu/packages/audio.scm:149
 msgid ""
 "AlsaModularSynth is a digital implementation of a classical analog\n"
 "modular synthesizer system.  It uses virtual control voltages to control the\n"
@@ -105,11 +104,11 @@ msgid ""
 "Filter) modules follow the convention of 1V / Octave."
 msgstr ""
 
-#: gnu/packages/audio.scm:167
+#: gnu/packages/audio.scm:188
 msgid "Library for audio labelling"
 msgstr "Biblioteca para etiquetado de sonido"
 
-#: gnu/packages/audio.scm:169
+#: gnu/packages/audio.scm:190
 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"
@@ -117,35 +116,47 @@ msgid ""
 "streams from live audio."
 msgstr ""
 
-#: gnu/packages/audio.scm:270
-#, fuzzy
+#: gnu/packages/audio.scm:314
 msgid "Digital audio workstation"
-msgstr "Ampliación Digital"
+msgstr "Estación de trabajo para sonido digital"
 
-#: gnu/packages/audio.scm:272
+#: gnu/packages/audio.scm:316
 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:407
+#: gnu/packages/audio.scm:454
 msgid "Software for recording and editing sounds"
-msgstr ""
+msgstr "Sofware para grabación y edición de sonido"
 
-#: gnu/packages/audio.scm:409
+#: gnu/packages/audio.scm:456
 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 es un editor de audio multipista diseñado para grabar,\n"
+"reproducir y editar audio digital. Implementa efectos digitales y herramientas\n"
+"de análisis del espectro de onda."
 
-#: gnu/packages/audio.scm:444
-#, fuzzy
+#: gnu/packages/audio.scm:492
+msgid "Pitch-correction LADSPA audio plugin"
+msgstr ""
+
+#: gnu/packages/audio.scm:494
+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
 msgid "Tonewheel organ synthesizer"
-msgstr "Sintentizado SoundFont"
+msgstr "Sintetizador de órgano Tonewheel"
 
-#: gnu/packages/audio.scm:446
+#: gnu/packages/audio.scm:540
 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"
@@ -154,11 +165,11 @@ msgid ""
 "plugins are provided."
 msgstr ""
 
-#: gnu/packages/audio.scm:483
+#: gnu/packages/audio.scm:577
 msgid "Audio plug-in pack for LV2 and JACK environments"
 msgstr ""
 
-#: gnu/packages/audio.scm:485
+#: gnu/packages/audio.scm:579
 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"
@@ -167,36 +178,36 @@ msgid ""
 "tools (analyzer, mono/stereo tools, crossovers)."
 msgstr ""
 
-#: gnu/packages/audio.scm:537
+#: gnu/packages/audio.scm:622
 #, fuzzy
-msgid "Software speech synthesizer"
-msgstr "Sintentizado SoundFont"
+#| msgid "LV2 audio plugin specification"
+msgid "LV2 port of the CAPS audio plugin colection"
+msgstr "Especificación de complemento para audio LV2"
 
-#: gnu/packages/audio.scm:538
+#: gnu/packages/audio.scm:624
 msgid ""
-"eSpeak is a software speech synthesizer for English and\n"
-"other languages.  eSpeak uses a \"formant synthesis\" method.  This allows many\n"
-"languages to be provided in a small size.  The speech is clear, and can be used\n"
-"at high speeds, but is not as natural or smooth as larger synthesizers which are\n"
-"based on human speech recordings."
+"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:585
+#: gnu/packages/audio.scm:661
 msgid "LV2 plugins for live use"
-msgstr ""
+msgstr "Complementos LV2 para usar live"
 
-#: gnu/packages/audio.scm:587
+#: gnu/packages/audio.scm:663
 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:628
+#: gnu/packages/audio.scm:705
+#, fuzzy
 msgid "SWH plugins in LV2 format"
-msgstr ""
+msgstr "Complementos LV2 para usar live"
 
-#: gnu/packages/audio.scm:630
+#: gnu/packages/audio.scm:707
 msgid ""
 "Swh-plugins-lv2 is a collection of audio plugins in LV2 format.  Plugin\n"
 "classes include: dynamics (compressor, limiter), time (delay, chorus,\n"
@@ -204,43 +215,43 @@ msgid ""
 "emulation (valve, tape), bit fiddling (decimator, pointer-cast), etc."
 msgstr ""
 
-#: gnu/packages/audio.scm:664
+#: gnu/packages/audio.scm:741
 msgid "Sound and music computing system"
 msgstr "Sistema de computación de música y sonido"
 
-#: gnu/packages/audio.scm:666
+#: gnu/packages/audio.scm:743
 msgid ""
 "Csound is a user-programmable and user-extensible sound processing\n"
 "language and software synthesizer."
 msgstr ""
 
-#: gnu/packages/audio.scm:707 gnu/packages/audio.scm:2808
+# FUZZY
+#: gnu/packages/audio.scm:785 gnu/packages/audio.scm:3112
 msgid "C++ wrapper around the ALSA API"
-msgstr ""
+msgstr "Recubrimiento C++ sobre la interfaz de ALSA"
 
-#: gnu/packages/audio.scm:709
+#: gnu/packages/audio.scm:787
 msgid ""
 "clalsadrv is a C++ wrapper around the ALSA API simplifying access to\n"
 "ALSA PCM devices."
 msgstr ""
 
-#: gnu/packages/audio.scm:746
-#, fuzzy
+#: gnu/packages/audio.scm:824
 msgid "LADSPA ambisonics plugins"
-msgstr "Complementos"
+msgstr "Complementos ambisonics de LADSPA"
 
-#: gnu/packages/audio.scm:748
+#: gnu/packages/audio.scm:826
 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:783
+#: gnu/packages/audio.scm:861
 msgid "Chorus, phaser, and vintage high-pass and low-pass filters"
 msgstr ""
 
-#: gnu/packages/audio.scm:785
+#: gnu/packages/audio.scm:863
 msgid ""
 "This package provides various LADSPA plugins.  @code{cs_chorus} and\n"
 "@code{cs_phaser} provide chorus and phaser effects, respectively;\n"
@@ -250,21 +261,21 @@ msgid ""
 "the non-linear circuit elements of their original analog counterparts."
 msgstr ""
 
-#: gnu/packages/audio.scm:823
+#: gnu/packages/audio.scm:901
 msgid "LADSPA reverb plugin"
-msgstr "LADSPA reverbera complemento>"
+msgstr "LADSPA reverbera complemento"
 
-#: gnu/packages/audio.scm:825
+#: gnu/packages/audio.scm:903
 msgid ""
 "This package provides a stereo reverb LADSPA plugin based on the\n"
 "well-known greverb."
 msgstr ""
 
-#: gnu/packages/audio.scm:859
+#: gnu/packages/audio.scm:937
 msgid "LADSPA four-band parametric equalizer plugin"
-msgstr ""
+msgstr "Complemento LADSPA cuatro-bandas paramétrica ecualizada"
 
-#: gnu/packages/audio.scm:861
+#: gnu/packages/audio.scm:939
 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"
@@ -273,27 +284,28 @@ msgid ""
 "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 'live'\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:904
+#: gnu/packages/audio.scm:982
 msgid "LADSPA stereo width plugin"
-msgstr ""
+msgstr "Anchura LADSPA estéreo complemento"
 
-#: gnu/packages/audio.scm:906
+#: gnu/packages/audio.scm:984
 msgid ""
 "This package provides a LADSPA plugin to manipulate the stereo width of\n"
 "audio signals."
 msgstr ""
 
-#: gnu/packages/audio.scm:941
+#: gnu/packages/audio.scm:1019
+#, fuzzy
 msgid "LADSPA plugin for synthesizer oscillators"
-msgstr ""
+msgstr "Anchura LADSPA estéreo complemento"
 
-#: gnu/packages/audio.scm:943
+#: gnu/packages/audio.scm:1021
 msgid ""
 "The @code{blvco} LADSPA plugin provides three anti-aliased oscillators:\n"
 "\n"
@@ -308,29 +320,31 @@ msgid ""
 "output of analog synthesizers such as the Moog Voyager."
 msgstr ""
 
-#: gnu/packages/audio.scm:985
+#: gnu/packages/audio.scm:1063
+#, fuzzy
 msgid "LADSPA Autowah effect plugin"
-msgstr ""
+msgstr "Anchura LADSPA estéreo complemento"
 
-#: gnu/packages/audio.scm:987
+#: gnu/packages/audio.scm:1065
 msgid ""
 "This package provides a LADSPA plugin for a Wah effect with envelope\n"
 "follower."
 msgstr ""
 
-#: gnu/packages/audio.scm:1021
+#: gnu/packages/audio.scm:1099
+#, fuzzy
 msgid "LADSPA stereo reverb plugin"
-msgstr ""
+msgstr "LADSPA reverbera complemento"
 
-#: gnu/packages/audio.scm:1023
+#: gnu/packages/audio.scm:1101
 msgid "This package provides a LADSPA plugin for a stereo reverb effect."
 msgstr ""
 
-#: gnu/packages/audio.scm:1061
+#: gnu/packages/audio.scm:1140
 msgid "SoundFont synthesizer"
 msgstr "Sintentizado SoundFont"
 
-#: gnu/packages/audio.scm:1063
+#: gnu/packages/audio.scm:1142
 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"
@@ -338,39 +352,39 @@ msgid ""
 "also play midifiles using a Soundfont."
 msgstr ""
 
-#: gnu/packages/audio.scm:1094
+#: gnu/packages/audio.scm:1189
 msgid "MPEG-4 and MPEG-2 AAC decoder"
-msgstr ""
+msgstr "Decodificador MPEG-4 y MPEG-2 AAC"
 
-#: gnu/packages/audio.scm:1096
+#: 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+."
 msgstr ""
 
-#: gnu/packages/audio.scm:1125
+#: gnu/packages/audio.scm:1231
 msgid "Signal processing language"
-msgstr "Señal procesando lenguaje"
+msgstr "Lenguaje de procesamiento de señales"
 
-#: gnu/packages/audio.scm:1127
+#: gnu/packages/audio.scm:1233
 msgid "Faust is a programming language for realtime audio signal processing."
 msgstr ""
 
-#: gnu/packages/audio.scm:1207
+#: gnu/packages/audio.scm:1300
 msgid "GUS compatible patches for MIDI players"
-msgstr ""
+msgstr "Parches compatibles con GUS para reproductores MIDI"
 
-#: gnu/packages/audio.scm:1209
+#: gnu/packages/audio.scm:1302
 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:1261
+#: gnu/packages/audio.scm:1368
 msgid "Virtual guitar amplifier"
-msgstr "Amplificador virtual guitarra"
+msgstr "Amplificador de guitarra virtual"
 
-#: gnu/packages/audio.scm:1262
+#: gnu/packages/audio.scm:1369
 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"
@@ -381,12 +395,11 @@ msgid ""
 "auto-wah."
 msgstr ""
 
-#: gnu/packages/audio.scm:1316
-#, fuzzy
+#: gnu/packages/audio.scm:1423
 msgid "Audio effects processor"
-msgstr "Efectos"
+msgstr "Procesador de efectos de sonido"
 
-#: gnu/packages/audio.scm:1318
+#: gnu/packages/audio.scm:1425
 msgid ""
 "Rakarrack is a richly featured multi-effects processor emulating a\n"
 "guitar effects pedalboard.  Effects include compressor, expander, noise gate,\n"
@@ -398,22 +411,22 @@ msgid ""
 "well suited to all musical instruments and vocals."
 msgstr ""
 
-#: gnu/packages/audio.scm:1369
+#: gnu/packages/audio.scm:1476
 msgid "LV2 convolution reverb"
-msgstr ""
+msgstr "Reverbera convolución LV2"
 
-#: gnu/packages/audio.scm:1371
+#: gnu/packages/audio.scm:1478
 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:1401
+#: gnu/packages/audio.scm:1516
 msgid "JACK audio connection kit"
-msgstr ""
+msgstr "Conjunto de conexión de sonido JACK"
 
-#: gnu/packages/audio.scm:1403
+#: gnu/packages/audio.scm:1518
 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"
@@ -423,32 +436,32 @@ msgid ""
 "synchronous execution of all clients, and low latency operation."
 msgstr ""
 
-#: gnu/packages/audio.scm:1509
+#: gnu/packages/audio.scm:1616
 msgid "Simple LV2 host for JACK"
 msgstr ""
 
-#: gnu/packages/audio.scm:1511
+#: gnu/packages/audio.scm:1618
 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:1554
+#: gnu/packages/audio.scm:1662
 msgid "Linux Audio Developer's Simple Plugin API (LADSPA)"
 msgstr ""
 
-#: gnu/packages/audio.scm:1556
+#: gnu/packages/audio.scm:1664
 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:1602
+#: gnu/packages/audio.scm:1710
 msgid "Audio application session manager"
-msgstr "Gestor aplicando sonido de sesión"
+msgstr "Gestor de sesiones de aplicaciones de sonido"
 
-#: gnu/packages/audio.scm:1604
+#: gnu/packages/audio.scm:1712
 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"
@@ -456,11 +469,11 @@ msgid ""
 "connections between them."
 msgstr ""
 
-#: gnu/packages/audio.scm:1625
+#: gnu/packages/audio.scm:1733
 msgid "Bauer stereophonic-to-binaural DSP"
 msgstr ""
 
-#: gnu/packages/audio.scm:1627
+#: gnu/packages/audio.scm:1735
 msgid ""
 "The Bauer stereophonic-to-binaural DSP (bs2b) library and plugins is\n"
 "designed to improve headphone listening of stereo audio records.  Recommended\n"
@@ -468,22 +481,31 @@ msgid ""
 "essential distortions."
 msgstr ""
 
-#: gnu/packages/audio.scm:1650
+#: gnu/packages/audio.scm:1758
 msgid "Implementation of the Open Sound Control protocol"
 msgstr ""
 
-#: gnu/packages/audio.scm:1652
+#: gnu/packages/audio.scm:1760
 msgid ""
 "liblo is a lightweight library that provides an easy to use\n"
-"implementation of the Open Sound Control (OSC) protocol."
+"implementation of the Open Sound Control (@dfn{OSC}) protocol."
 msgstr ""
 
-#: gnu/packages/audio.scm:1674
-#, fuzzy
+#: gnu/packages/audio.scm:1779
+msgid "Bindings for PortAudio v19"
+msgstr ""
+
+#: gnu/packages/audio.scm:1780
+msgid ""
+"This package provides bindings for PortAudio v19, the\n"
+"cross-platform audio input/output stream library."
+msgstr ""
+
+#: gnu/packages/audio.scm:1805
 msgid "Python bindings for liblo"
-msgstr "Enlazando XOSD para Guile"
+msgstr "Enlaces binarios para liblo"
 
-#: gnu/packages/audio.scm:1676
+#: gnu/packages/audio.scm:1807
 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"
@@ -491,22 +513,22 @@ msgid ""
 "included are the command line utilities @code{send_osc} and @code{dump_osc}."
 msgstr ""
 
-#: gnu/packages/audio.scm:1717
+#: gnu/packages/audio.scm:1848
 msgid "Library to simplify use of LV2 plugins in applications"
 msgstr ""
 
-#: gnu/packages/audio.scm:1719
+#: gnu/packages/audio.scm:1850
 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:1745
+#: gnu/packages/audio.scm:1876
 msgid "LV2 audio plugin specification"
-msgstr ""
+msgstr "Especificación de complemento para audio LV2"
 
-#: gnu/packages/audio.scm:1747
+#: gnu/packages/audio.scm:1878
 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"
@@ -514,38 +536,38 @@ msgid ""
 "software."
 msgstr ""
 
-#: gnu/packages/audio.scm:1797
+#: gnu/packages/audio.scm:1914
 msgid "LV2 port of the mda Piano plugin"
 msgstr ""
 
-#: gnu/packages/audio.scm:1798
+#: gnu/packages/audio.scm:1915
 msgid "An LV2 port of the mda Piano VSTi."
-msgstr ""
+msgstr "Un puerto LV2 del mda Piano VSTi."
 
-#: gnu/packages/audio.scm:1811
+#: gnu/packages/audio.scm:1928
 msgid "LV2 port of the mda EPiano plugin"
 msgstr ""
 
-#: gnu/packages/audio.scm:1812
+#: gnu/packages/audio.scm:1929
 msgid "An LV2 port of the mda EPiano VSTi."
-msgstr ""
+msgstr "Un puerto LV2 del EPiano mda VSTi."
 
-#: gnu/packages/audio.scm:1857
+#: gnu/packages/audio.scm:1974
 msgid "C++ libraries for LV2 plugins"
-msgstr ""
+msgstr "Bibliotecas C++ para complementos LV2"
 
-#: gnu/packages/audio.scm:1859
+#: gnu/packages/audio.scm:1976
 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:1900
+#: gnu/packages/audio.scm:2017
 msgid "3D audio API"
 msgstr "API sonido3D"
 
-#: gnu/packages/audio.scm:1902
+#: gnu/packages/audio.scm:2019
 msgid ""
 "OpenAL provides capabilities for playing audio in a virtual 3D\n"
 "environment.  Distance attenuation, doppler shift, and directional sound\n"
@@ -555,80 +577,121 @@ msgid ""
 "buffers, and audio capture."
 msgstr ""
 
-#: gnu/packages/audio.scm:1932
+#: gnu/packages/audio.scm:2049
 msgid "Free implementation of OpenAL's ALUT standard"
 msgstr ""
 
-#: gnu/packages/audio.scm:1933
+#: gnu/packages/audio.scm:2050
 msgid "freealut is the OpenAL Utility Toolkit."
 msgstr ""
 
-#: gnu/packages/audio.scm:1962
+#: gnu/packages/audio.scm:2081
 msgid "Modular patch bay for audio and MIDI systems"
 msgstr ""
 
-#: gnu/packages/audio.scm:1964
+#: gnu/packages/audio.scm:2083
 msgid ""
 "Patchage is a modular patch bay for audio and MIDI systems based on JACK\n"
 "and ALSA."
 msgstr ""
 
-#: gnu/packages/audio.scm:1990
-msgid "Jack server control application"
+#: gnu/packages/audio.scm:2111
+#, fuzzy
+#| msgid "Portable system access library"
+msgid "Portable C audio library"
+msgstr "Biblioteca de sistema de acceso portable"
+
+#: gnu/packages/audio.scm:2113
+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:1991
+#: gnu/packages/audio.scm:2143
+msgid "Jack server control application"
+msgstr "Aplicación controladora de servicio Jack"
+
+#: gnu/packages/audio.scm:2144
 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:2017
+#: gnu/packages/audio.scm:2177
+msgid "Stereo audio recorder for JACK"
+msgstr ""
+
+#: gnu/packages/audio.scm:2178
+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"
+msgid "Synthesis engine and programming language"
+msgstr "Implementación del lenguaje de programación Perl"
+
+#: gnu/packages/audio.scm:2262
+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:2293
 msgid "Real-time audio utility library"
 msgstr ""
 
-#: gnu/packages/audio.scm:2019
+#: gnu/packages/audio.scm:2295
 msgid ""
 "Raul (Real-time Audio Utility Library) is a C++ utility library primarily\n"
 "aimed at audio/musical applications."
 msgstr ""
 
-#: gnu/packages/audio.scm:2062
+#: gnu/packages/audio.scm:2349
 msgid "Audio time-stretching and pitch-shifting library"
 msgstr ""
 
-#: gnu/packages/audio.scm:2064
+#: gnu/packages/audio.scm:2351
 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:2112
+#: gnu/packages/audio.scm:2395
 msgid "Cross-platform MIDI library for C++"
-msgstr ""
+msgstr "Plataforma cruzada de biblioteca MIDI para C++"
 
-#: gnu/packages/audio.scm:2114
+#: gnu/packages/audio.scm:2397
 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:2139
+#: gnu/packages/audio.scm:2422
 msgid "Library for serialising LV2 atoms to/from RDF"
 msgstr ""
 
-#: gnu/packages/audio.scm:2141
+#: gnu/packages/audio.scm:2424
 msgid ""
 "Sratom is a library for serialising LV2 atoms to/from RDF, particularly\n"
 "the Turtle syntax."
 msgstr ""
 
-#: gnu/packages/audio.scm:2169
+#: gnu/packages/audio.scm:2452
 msgid "Library for loading and wrapping LV2 plugin UIs"
-msgstr ""
+msgstr "Biblioteca para carga y contorno de complemento IU LV2"
 
-#: gnu/packages/audio.scm:2171
+#: gnu/packages/audio.scm:2454
 msgid ""
 "Suil is a lightweight C library for loading and wrapping LV2 plugin UIs.\n"
 "\n"
@@ -640,11 +703,11 @@ msgid ""
 "Suil currently supports every combination of Gtk, Qt, and X11."
 msgstr ""
 
-#: gnu/packages/audio.scm:2228
+#: gnu/packages/audio.scm:2511
 msgid "Software synthesizer for playing MIDI files"
 msgstr ""
 
-#: gnu/packages/audio.scm:2230
+#: gnu/packages/audio.scm:2513
 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"
@@ -653,43 +716,44 @@ msgid ""
 "disks as various audio file formats."
 msgstr ""
 
-#: gnu/packages/audio.scm:2268
+#: gnu/packages/audio.scm:2551
 msgid "Modular and extensible audio processing system"
 msgstr ""
 
-#: gnu/packages/audio.scm:2270
+#: gnu/packages/audio.scm:2553
 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:2309
+#: gnu/packages/audio.scm:2593
 msgid "Library for time stretching and pitch scaling of audio"
 msgstr ""
 
-#: gnu/packages/audio.scm:2311
+#: gnu/packages/audio.scm:2595
 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:2330
+#: gnu/packages/audio.scm:2617
+#, fuzzy
 msgid "Hybrid lossless audio codec"
-msgstr ""
+msgstr "Código de sonido sin pérdida libre"
 
-#: gnu/packages/audio.scm:2332
+#: gnu/packages/audio.scm:2619
 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:2351
+#: gnu/packages/audio.scm:2638
 msgid "Mod file playing library"
 msgstr "Fichero Mod reproduciendo biblioteca"
 
-#: gnu/packages/audio.scm:2353
+#: gnu/packages/audio.scm:2640
 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"
@@ -697,35 +761,34 @@ msgid ""
 "surround and reverb."
 msgstr ""
 
-#: gnu/packages/audio.scm:2372
-#, fuzzy
+#: gnu/packages/audio.scm:2659
 msgid "Module player library"
-msgstr "Jugador"
+msgstr "Biblioteca de módulo jugador"
 
-#: gnu/packages/audio.scm:2374
+#: gnu/packages/audio.scm:2661
 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:2397
-#, fuzzy
+#: gnu/packages/audio.scm:2684
 msgid "Extended module player"
-msgstr "Jugador"
+msgstr "Módulo jugador extendido"
 
-#: gnu/packages/audio.scm:2399
+#: gnu/packages/audio.scm:2686
 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:2430
+#: gnu/packages/audio.scm:2714
+#, fuzzy
 msgid "Audio processing library for changing tempo, pitch and playback rate"
-msgstr ""
+msgstr "Sonido procesando biblioteca para modificar tempo, pitch y tasa de reproducción"
 
-#: gnu/packages/audio.scm:2432
+#: gnu/packages/audio.scm:2716
 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"
@@ -733,11 +796,11 @@ msgid ""
 "control functionality, or just for playing around with the sound effects."
 msgstr ""
 
-#: gnu/packages/audio.scm:2469
+#: gnu/packages/audio.scm:2753
 msgid "Sound processing utility"
 msgstr "Utilidad de sonido procesado"
 
-#: gnu/packages/audio.scm:2471
+#: gnu/packages/audio.scm:2755
 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"
@@ -745,93 +808,92 @@ msgid ""
 "can play and record audio files."
 msgstr ""
 
-#: gnu/packages/audio.scm:2494
+#: gnu/packages/audio.scm:2778
 msgid "One-dimensional sample-rate conversion library"
 msgstr ""
 
-#: gnu/packages/audio.scm:2496
+#: gnu/packages/audio.scm:2780
 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:2526
+#: gnu/packages/audio.scm:2810
 msgid "MPEG Audio Layer 2 (MP2) encoder"
 msgstr ""
 
-#: gnu/packages/audio.scm:2528
+#: gnu/packages/audio.scm:2812
 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:2567
+#: gnu/packages/audio.scm:2864
 msgid "Audio I/O library"
 msgstr "Biblioteca E/S del sonido"
 
-#: gnu/packages/audio.scm:2569
+#: gnu/packages/audio.scm:2866
 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:2599
-#, fuzzy
+#: gnu/packages/audio.scm:2895
 msgid "Graphical user interface for FluidSynth"
-msgstr "Interfaz de usuario"
+msgstr "Interfaz gráfico del usuario para FluidSynth"
 
-#: gnu/packages/audio.scm:2601
+#: gnu/packages/audio.scm:2897
 msgid ""
 "Qsynth is a GUI front-end application for the FluidSynth SoundFont\n"
 "synthesizer written in C++."
 msgstr ""
 
-#: gnu/packages/audio.scm:2638
+#: gnu/packages/audio.scm:2934
 msgid "Networked audio system"
 msgstr "Sistema de sonido por red"
 
-#: gnu/packages/audio.scm:2640
+#: gnu/packages/audio.scm:2936
 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:2671
+#: gnu/packages/audio.scm:2967
 msgid "JACK audio frequency analyzer and display"
-msgstr ""
+msgstr "Analizador y presentación de frecuencia de audio JACK "
 
-#: gnu/packages/audio.scm:2673
+#: gnu/packages/audio.scm:2969
 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:2717
+#: gnu/packages/audio.scm:3017
 msgid "Fast, partitioned convolution engine library"
 msgstr ""
 
-#: gnu/packages/audio.scm:2719
+#: gnu/packages/audio.scm:3019
 msgid ""
 "Zita convolver is a C++ library providing a real-time convolution\n"
 "engine."
 msgstr ""
 
-#: gnu/packages/audio.scm:2764
+#: gnu/packages/audio.scm:3067
 msgid "C++ library for resampling audio signals"
 msgstr ""
 
-#: gnu/packages/audio.scm:2766
+#: gnu/packages/audio.scm:3069
 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:2810
+#: gnu/packages/audio.scm:3114
 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"
@@ -839,11 +901,11 @@ msgid ""
 "point audio data."
 msgstr ""
 
-#: gnu/packages/audio.scm:2841
+#: gnu/packages/audio.scm:3140
 msgid "Cue and toc file parsers and utilities"
 msgstr ""
 
-#: gnu/packages/audio.scm:2842
+#: gnu/packages/audio.scm:3141
 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"
@@ -851,11 +913,11 @@ msgid ""
 "machine-readable ASCII format."
 msgstr ""
 
-#: gnu/packages/audio.scm:2861
+#: gnu/packages/audio.scm:3160
 msgid "WAVE audio data processing tool"
 msgstr ""
 
-#: gnu/packages/audio.scm:2862
+#: gnu/packages/audio.scm:3161
 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"
@@ -864,74 +926,182 @@ msgid ""
 "use them split WAVE data into multiple files."
 msgstr ""
 
-#: gnu/packages/audio.scm:2900
+#: gnu/packages/audio.scm:3200
 msgid "DTS Coherent Acoustics decoder"
 msgstr ""
 
-#: gnu/packages/audio.scm:2901
+#: gnu/packages/audio.scm:3201
 msgid ""
 "Dcadec is a DTS Coherent Acoustics surround sound decoder\n"
 "with support for HD extensions."
 msgstr ""
 
-#: gnu/packages/audio.scm:2922
+#: gnu/packages/audio.scm:3231
 msgid "Tool to adjust loudness of media files"
 msgstr ""
 
-#: gnu/packages/audio.scm:2924
+#: gnu/packages/audio.scm:3233
 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:2955
+#: gnu/packages/audio.scm:3264
 msgid "Lightweight audio filtering library"
-msgstr ""
+msgstr "Biblioteca de filtro de sonido ligero"
 
-#: gnu/packages/audio.scm:2956
+#: gnu/packages/audio.scm:3265
 msgid ""
 "An easy to use audio filtering library made from webrtc\n"
 "code, used in @code{libtoxcore}."
 msgstr ""
 
-#: gnu/packages/audio.scm:3000
+#: gnu/packages/audio.scm:3311
 msgid "GSM 06.10 lossy speech compression library"
 msgstr ""
 
-#: gnu/packages/audio.scm:3001
+#: gnu/packages/audio.scm:3312
 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:3022
+#: gnu/packages/audio.scm:3333
 msgid "ALSA wrappers for Python"
 msgstr "Cubiertas ALSA para Python"
 
-#: gnu/packages/audio.scm:3024
+#: gnu/packages/audio.scm:3335
 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:3083
+#: gnu/packages/audio.scm:3373
+msgid "Bluetooth ALSA backend"
+msgstr ""
+
+#: gnu/packages/audio.scm:3374
+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:3436
 msgid "Sound editor"
 msgstr "Editor de sonido"
 
-#: gnu/packages/audio.scm:3086
+#: gnu/packages/audio.scm:3439
 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/backup.scm:112
+#: gnu/packages/audio.scm:3472
+msgid "LV2 plugin for broadband noise reduction"
+msgstr ""
+
+#: gnu/packages/audio.scm:3473
+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:3542
+#, fuzzy
+#| msgid "Command-line WebDAV client"
+msgid "Command-line audio visualizer"
+msgstr "Cliente WebDAV por mandato lineal"
+
+#: gnu/packages/audio.scm:3543
+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
+msgid "Console audio visualizer for ALSA, MPD, and PulseAudio"
+msgstr ""
+
+#: gnu/packages/audio.scm:3597
+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
+msgid "Pro-quality GM soundfont"
+msgstr ""
+
+#: gnu/packages/audio.scm:3631
+msgid "Fluid-3 is Frank Wen's pro-quality GM soundfont."
+msgstr ""
+
+#: gnu/packages/audio.scm:3657
+msgid "Fraunhofer FDK AAC library"
+msgstr ""
+
+#: gnu/packages/audio.scm:3658
+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:3697
+msgid "Audio editing and playback for OpenShot"
+msgstr ""
+
+#: gnu/packages/audio.scm:3698
+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
+msgid "XAudio reimplementation"
+msgstr "Reimplementación de XAudio"
+
+#: gnu/packages/audio.scm:3725
+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"
 msgstr ""
 
-#: gnu/packages/backup.scm:114
+#: gnu/packages/backup.scm:127
 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"
@@ -941,11 +1111,11 @@ msgid ""
 "spying and/or modification by the server."
 msgstr ""
 
-#: gnu/packages/backup.scm:143
+#: gnu/packages/backup.scm:152
 msgid "File verification and repair tools"
-msgstr ""
+msgstr "Herramientas para verificación y reparación de ficheros"
 
-#: gnu/packages/backup.scm:144
+#: gnu/packages/backup.scm:153
 msgid ""
 "Par2cmdline uses Reed-Solomon error-correcting codes to\n"
 "generate and verify PAR2 recovery files.  These files can be distributed\n"
@@ -957,11 +1127,11 @@ msgid ""
 "can even repair them."
 msgstr ""
 
-#: gnu/packages/backup.scm:180
+#: gnu/packages/backup.scm:189
 msgid "Simple incremental backup tool"
-msgstr ""
+msgstr "Herramienta de respaldo incremental sencillo"
 
-#: gnu/packages/backup.scm:182
+#: gnu/packages/backup.scm:191
 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"
@@ -969,11 +1139,11 @@ msgid ""
 "backups (called chunks) to allow easy burning to CD/DVD."
 msgstr ""
 
-#: gnu/packages/backup.scm:236
+#: gnu/packages/backup.scm:266
 msgid "Multi-format archive and compression library"
 msgstr ""
 
-#: gnu/packages/backup.scm:238
+#: gnu/packages/backup.scm:268
 msgid ""
 "Libarchive provides a flexible interface for reading and writing\n"
 "archives in various formats such as tar and cpio.  Libarchive also supports\n"
@@ -984,11 +1154,11 @@ msgid ""
 "random access nor for in-place modification."
 msgstr ""
 
-#: gnu/packages/backup.scm:315
+#: gnu/packages/backup.scm:342
 msgid "Provide a list of files to backup"
 msgstr "Proporciona una lista de fichero para respaldo"
 
-#: gnu/packages/backup.scm:317
+#: gnu/packages/backup.scm:344
 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"
@@ -996,11 +1166,11 @@ msgid ""
 "list and implement the backup strategy."
 msgstr ""
 
-#: gnu/packages/backup.scm:347
+#: gnu/packages/backup.scm:374
 msgid "Tar-compatible archiver"
 msgstr "Archivador compatible con tar"
 
-#: gnu/packages/backup.scm:349
+#: gnu/packages/backup.scm:376
 msgid ""
 "Btar is a tar-compatible archiver which allows arbitrary compression and\n"
 "ciphering, redundancy, differential backup, indexed extraction, multicore\n"
@@ -1008,11 +1178,11 @@ msgid ""
 "errors."
 msgstr ""
 
-#: gnu/packages/backup.scm:375
+#: gnu/packages/backup.scm:402
 msgid "Local/remote mirroring+incremental backup"
 msgstr ""
 
-#: gnu/packages/backup.scm:377
+#: gnu/packages/backup.scm:404
 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"
@@ -1027,23 +1197,23 @@ msgid ""
 "rdiff-backup is easy to use and settings have sensible defaults."
 msgstr ""
 
-#: gnu/packages/backup.scm:419
+#: gnu/packages/backup.scm:446
 msgid "Deduplicating snapshot backup utility based on rsync"
 msgstr ""
 
-#: gnu/packages/backup.scm:420
+#: gnu/packages/backup.scm:447
 msgid ""
-"rsnapshot is a filesystem snapshot utility based on rsync.\n"
+"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:455
+#: gnu/packages/backup.scm:500
 msgid "Tools & library for data backup and distributed storage"
 msgstr ""
 
-#: gnu/packages/backup.scm:457
+#: gnu/packages/backup.scm:502
 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"
@@ -1054,11 +1224,11 @@ msgid ""
 "detection, and lossless compression."
 msgstr ""
 
-#: gnu/packages/backup.scm:556
+#: gnu/packages/backup.scm:620
 msgid "Deduplicated, encrypted, authenticated and compressed backups"
 msgstr ""
 
-#: gnu/packages/backup.scm:557
+#: gnu/packages/backup.scm:621
 msgid ""
 "Borg is a deduplicating backup program.  Optionally, it\n"
 "supports compression and authenticated encryption.  The main goal of Borg is to\n"
@@ -1068,11 +1238,11 @@ msgid ""
 "to not fully trusted targets.  Borg is a fork of Attic."
 msgstr ""
 
-#: gnu/packages/backup.scm:603
+#: gnu/packages/backup.scm:665
 msgid "Deduplicating backup program"
 msgstr "Deduplicando programa de respaldo"
 
-#: gnu/packages/backup.scm:604
+#: gnu/packages/backup.scm:666
 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"
@@ -1080,11 +1250,11 @@ msgid ""
 "changes are stored."
 msgstr ""
 
-#: gnu/packages/backup.scm:634
+#: gnu/packages/backup.scm:696
 msgid "WIM file manipulation library and utilities"
 msgstr ""
 
-#: gnu/packages/backup.scm:635
+#: gnu/packages/backup.scm:697
 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"
@@ -1092,46 +1262,95 @@ msgid ""
 "NTFS volumes using @code{ntfs-3g}, preserving NTFS-specific attributes."
 msgstr ""
 
-#: gnu/packages/backup.scm:692
-msgid "Easy and secure backup program"
-msgstr ""
+#: gnu/packages/backup.scm:754
+msgid "Retired backup program"
+msgstr "Programa de copias de seguridad retirado"
 
-#: gnu/packages/backup.scm:693
+#: gnu/packages/backup.scm:756
 msgid ""
-"Obnam is an easy, secure backup program.  Features\n"
-"include snapshot backups, data de-duplication and encrypted backups\n"
-"using GnuPG.  Backups can be stored on local hard disks, or online via\n"
-"the SSH SFTP protocol.  The backup server, if used, does not require\n"
-"any special software, on top of SSH."
+"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:799
+#: gnu/packages/backup.scm:864
 msgid "Fast, disk based, rotating network backup system"
 msgstr ""
 
-#: gnu/packages/backup.scm:801
+#: gnu/packages/backup.scm:866
 msgid ""
 "With dirvish you can maintain a set of complete images of your\n"
-"filesystems with unattended creation and expiration.  A dirvish backup vault\n"
+"file systems with unattended creation and expiration.  A dirvish backup vault\n"
 "is like a time machine for your data. "
 msgstr ""
 
-#: gnu/packages/base.scm:73
-msgid "Hello, GNU world: An example GNU package"
+#: gnu/packages/backup.scm:964
+msgid "Backup program with multiple revisions, encryption and more"
+msgstr ""
+
+#: gnu/packages/backup.scm:965
+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:1016
+msgid "Differential backup and restore"
 msgstr ""
 
-#: gnu/packages/base.scm:75
+#: gnu/packages/backup.scm:1017
+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
+msgid "Hello, GNU world: An example GNU package"
+msgstr "Hola, mundo GNU: un ejemplo de paquete GNU"
+
+#: gnu/packages/base.scm:85
 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/packages/base.scm:110
+#: gnu/packages/base.scm:129
 msgid "Print lines matching a pattern"
 msgstr "Escribe líneas coincidiendo un patrón"
 
-#: gnu/packages/base.scm:112
+#: gnu/packages/base.scm:131
 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"
@@ -1142,11 +1361,11 @@ msgid ""
 "including, for example, recursive directory searching."
 msgstr ""
 
-#: gnu/packages/base.scm:134
+#: gnu/packages/base.scm:153
 msgid "Stream editor"
 msgstr "Editorde flujo"
 
-#: gnu/packages/base.scm:156
+#: gnu/packages/base.scm:169
 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"
@@ -1155,12 +1374,11 @@ msgid ""
 "implementation offers several extensions over the standard utility."
 msgstr ""
 
-#: gnu/packages/base.scm:196
-#, fuzzy
+#: gnu/packages/base.scm:229
 msgid "Managing tar archives"
-msgstr "Depurar archivos tar"
+msgstr "Gestionando archivos tar"
 
-#: gnu/packages/base.scm:198
+#: gnu/packages/base.scm:231
 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"
@@ -1170,11 +1388,11 @@ msgid ""
 "standard utility."
 msgstr ""
 
-#: gnu/packages/base.scm:221
+#: gnu/packages/base.scm:260
 msgid "Apply differences to originals, with optional backups"
 msgstr ""
 
-#: gnu/packages/base.scm:223
+#: gnu/packages/base.scm:262
 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"
@@ -1183,11 +1401,11 @@ msgid ""
 "differences."
 msgstr ""
 
-#: gnu/packages/base.scm:243
+#: gnu/packages/base.scm:283
 msgid "Comparing and merging files"
 msgstr "Comparando y uniendo ficheros"
 
-#: gnu/packages/base.scm:245
+#: gnu/packages/base.scm:285
 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"
@@ -1196,11 +1414,11 @@ msgid ""
 "interactive means to merge two files."
 msgstr ""
 
-#: gnu/packages/base.scm:282
+#: gnu/packages/base.scm:330
 msgid "Operating on files matching given criteria"
 msgstr ""
 
-#: gnu/packages/base.scm:284
+#: gnu/packages/base.scm:332
 msgid ""
 "Findutils supplies the basic file directory searching utilities of the\n"
 "GNU system.  It consists of two primary searching utilities: \"find\"\n"
@@ -1210,11 +1428,11 @@ msgid ""
 "used to apply commands with arbitrarily long arguments."
 msgstr ""
 
-#: gnu/packages/base.scm:340
+#: gnu/packages/base.scm:400
 msgid "Core GNU utilities (file, text, shell)"
 msgstr ""
 
-#: gnu/packages/base.scm:342
+#: gnu/packages/base.scm:402
 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"
@@ -1222,12 +1440,11 @@ msgid ""
 "functionality beyond that which is outlined in the POSIX standard."
 msgstr ""
 
-#: gnu/packages/base.scm:384
-#, fuzzy
+#: gnu/packages/base.scm:449
 msgid "Remake files automatically"
-msgstr "(rellenado automáticamente)"
+msgstr "Recrear ficheros automáticamente"
 
-#: gnu/packages/base.scm:386
+#: gnu/packages/base.scm:451
 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"
@@ -1237,11 +1454,11 @@ msgid ""
 "change.  GNU make offers many powerful extensions over the standard utility."
 msgstr ""
 
-#: gnu/packages/base.scm:428
+#: gnu/packages/base.scm:497
 msgid "Binary utilities: bfd gas gprof ld"
 msgstr ""
 
-#: gnu/packages/base.scm:430
+#: gnu/packages/base.scm:499
 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"
@@ -1251,23 +1468,22 @@ msgid ""
 "included."
 msgstr ""
 
-#: gnu/packages/base.scm:517
+#: gnu/packages/base.scm:601
 msgid "The linker wrapper"
 msgstr "La cubierta del enlazador"
 
-#: gnu/packages/base.scm:519
+#: gnu/packages/base.scm:603
 msgid ""
-"The linker wrapper (or 'ld-wrapper') wraps the linker to add any\n"
-"missing '-rpath' flags, and to detect any misuse of libraries outside of the\n"
-"store."
+"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:695
-#, fuzzy
+#: gnu/packages/base.scm:866
 msgid "The GNU C Library"
-msgstr "Biblioteca común C++ de GNU"
+msgstr "La biblioteca GNU C"
 
-#: gnu/packages/base.scm:697
+#: gnu/packages/base.scm:868
 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"
@@ -1277,48 +1493,43 @@ msgid ""
 "with the Linux kernel."
 msgstr ""
 
-#: gnu/packages/base.scm:775
-#, fuzzy
-msgid "The GNU C Library (GNU Hurd variant)"
-msgstr "Biblioteca común C++ de GNU"
-
-#: gnu/packages/base.scm:887
+#: gnu/packages/base.scm:1019
 msgid "All the locales supported by the GNU C Library"
-msgstr ""
+msgstr "Todos los locales compatibles por la Biblioteca GNU C"
 
-#: gnu/packages/base.scm:889
+#: gnu/packages/base.scm:1021
 msgid ""
 "This package provides all the locales supported by the GNU C Library,\n"
-"more than 400 in total.  To use them set the 'LOCPATH' environment variable to\n"
-"the 'share/locale' sub-directory of this package."
+"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:957
+#: gnu/packages/base.scm:1090
 msgid "Small sample of UTF-8 locales"
 msgstr ""
 
-#: gnu/packages/base.scm:959
+#: gnu/packages/base.scm:1092
 msgid ""
 "This package provides a small sample of UTF-8 locales mostly useful in\n"
 "test environments."
 msgstr ""
 
-#: gnu/packages/base.scm:977
+#: gnu/packages/base.scm:1122
 msgid "Find full path of shell commands"
 msgstr ""
 
-#: gnu/packages/base.scm:979
+#: gnu/packages/base.scm:1124
 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:1084
+#: gnu/packages/base.scm:1220
 msgid "Database of current and historical time zones"
 msgstr ""
 
-#: gnu/packages/base.scm:1085
+#: gnu/packages/base.scm:1221
 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"
@@ -1327,22 +1538,22 @@ msgid ""
 "and daylight-saving rules."
 msgstr ""
 
-#: gnu/packages/base.scm:1136
+#: gnu/packages/base.scm:1277
 msgid "Character set conversion library"
 msgstr "Biblioteca de conversión de conjunto de caracteres"
 
-#: gnu/packages/base.scm:1138
+#: gnu/packages/base.scm:1279
 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:108
+#: gnu/packages/bittorrent.scm:114
 msgid "Fast and easy BitTorrent client"
-msgstr ""
+msgstr "Cliente BitTorrent rápido y fácil"
 
-#: gnu/packages/bittorrent.scm:110
+#: 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"
@@ -1350,131 +1561,157 @@ msgid ""
 "DHT, µTP, PEX and Magnet Links."
 msgstr ""
 
-#: gnu/packages/bittorrent.scm:142
+#: gnu/packages/bittorrent.scm:148
 msgid "BitTorrent library of rtorrent"
 msgstr "Biblioteca BitTorrent de rtorrent"
 
-#: gnu/packages/bittorrent.scm:144
+#: 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:171
+#: gnu/packages/bittorrent.scm:177
 msgid "BitTorrent client with ncurses interface"
-msgstr ""
+msgstr "Cliente BitTorrent con interfaz ncurses"
 
-#: gnu/packages/bittorrent.scm:173
+#: 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:210 gnu/packages/bittorrent.scm:251
 msgid "Console client for the Transmission BitTorrent daemon"
 msgstr ""
 
-#: gnu/packages/bittorrent.scm:218
+#: gnu/packages/bittorrent.scm:211
 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:252
 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
-#, fuzzy
+#: gnu/packages/bittorrent.scm:301
 msgid "Utility for parallel downloading files"
-msgstr "Descargando, subiendo y manipulando ficheros"
+msgstr "Utilidad para paralelos descargando ficheros"
 
-#: 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:342
+#: gnu/packages/bittorrent.scm:334
 msgid "Universal download manager with GTK+ interface"
 msgstr ""
 
-#: gnu/packages/bittorrent.scm:344
+#: 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 ""
+msgstr "Utilidad para crear ficheros metainfo de BitTorrent"
 
-#: gnu/packages/bittorrent.scm:373
+#: gnu/packages/bittorrent.scm:368
 msgid ""
-"mktorrent is a simple command-line utility to create\n"
-"BitTorrent @dfn{metainfo} files, often known simply as @dfn{torrents}, from\n"
-"both single files and whole directories.  It can add multiple trackers and web\n"
-"seed URLs, and set the @code{private} flag to disallow advertisement through\n"
-"the distributed hash table (DHT) and Peer Exchange.  Hashing is multi-threaded\n"
+"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:414
+#: gnu/packages/bittorrent.scm:419
 msgid "Feature complete BitTorrent implementation"
 msgstr ""
 
-#: gnu/packages/bittorrent.scm:416
+#: gnu/packages/bittorrent.scm:421
 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/certs.scm:66
-msgid "Python script to extract .pem data from certificate collection"
+#: gnu/packages/bittorrent.scm:459
+msgid "Graphical BitTorrent client"
+msgstr "Cliente BitTorrent gráfico"
+
+#: gnu/packages/bittorrent.scm:461
+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:496
+msgid "Fully-featured cross-platform ​BitTorrent client"
+msgstr ""
+
+#: gnu/packages/bittorrent.scm:498
+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:137
+#: gnu/packages/certs.scm:140
 msgid "CA certificates from Mozilla"
-msgstr ""
+msgstr "Certificado CA desde Mozilla"
 
-#: gnu/packages/certs.scm:139
+#: 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:208
+#: gnu/packages/certs.scm:210
 msgid "Let's Encrypt root and intermediate certificates"
 msgstr ""
 
-#: gnu/packages/certs.scm:209
+#: 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:100
-#, fuzzy
+#: gnu/packages/compression.scm:108
 msgid "Compression library"
-msgstr "Biblioteca Zip de compresión"
+msgstr "Biblioteca de compresión"
 
-#: gnu/packages/compression.scm:102
+#: gnu/packages/compression.scm:110
 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"
@@ -1487,30 +1724,30 @@ msgid ""
 "in compression."
 msgstr ""
 
-#: gnu/packages/compression.scm:133
+#: gnu/packages/compression.scm:138
 msgid "Zip Compression library"
 msgstr "Biblioteca Zip de compresión"
 
-#: gnu/packages/compression.scm:135
+#: gnu/packages/compression.scm:140
 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:154
+#: gnu/packages/compression.scm:159
 msgid "Replacement for Sun's 'jar' utility"
 msgstr ""
 
-#: gnu/packages/compression.scm:156
+#: gnu/packages/compression.scm:161
 msgid ""
-"FastJar is an attempt to create a much faster replacement for Sun's 'jar'\n"
-"utility.  Instead of being written in Java, FastJar is written in C."
+"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
 msgid "C library for manipulating POSIX tar files"
-msgstr ""
+msgstr "Biblioteca C para manipulador de ficheros tar POSIX"
 
 #: gnu/packages/compression.scm:192
 msgid ""
@@ -1522,7 +1759,7 @@ msgstr ""
 msgid "General file (de)compression (using lzw)"
 msgstr ""
 
-#: gnu/packages/compression.scm:214
+#: gnu/packages/compression.scm:238
 msgid ""
 "GNU Gzip provides data compression and decompression utilities; the\n"
 "typical extension is \".gz\".  Unlike the \"zip\" format, it compresses a single\n"
@@ -1530,11 +1767,11 @@ msgid ""
 "\".tar.gz\" or \".tgz\", etc."
 msgstr ""
 
-#: gnu/packages/compression.scm:284
+#: gnu/packages/compression.scm:332
 msgid "High-quality data compression program"
-msgstr ""
+msgstr "Programa de compresión de datos de alta calidad"
 
-#: gnu/packages/compression.scm:286
+#: gnu/packages/compression.scm:334
 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"
@@ -1543,11 +1780,11 @@ msgid ""
 "decompression."
 msgstr ""
 
-#: gnu/packages/compression.scm:307
+#: gnu/packages/compression.scm:368
 msgid "Parallel bzip2 compression utility"
 msgstr "Utilidad de compresión bzip2 paralela"
 
-#: gnu/packages/compression.scm:309
+#: gnu/packages/compression.scm:370
 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"
@@ -1557,12 +1794,11 @@ msgid ""
 "compatible with bzip2 – both at file format and command line level."
 msgstr ""
 
-#: gnu/packages/compression.scm:339
-#, fuzzy
+#: gnu/packages/compression.scm:400
 msgid "Parallel bzip2 implementation"
-msgstr "Sin Implementación"
+msgstr "Implementación bzip2 paralelo"
 
-#: gnu/packages/compression.scm:341
+#: gnu/packages/compression.scm:402
 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"
@@ -1570,11 +1806,11 @@ msgid ""
 "compressed with pbzip2 can be decompressed with bzip2)."
 msgstr ""
 
-#: gnu/packages/compression.scm:362
+#: gnu/packages/compression.scm:423
 msgid "General-purpose data compression"
 msgstr "Propósito general de compresión de datos"
 
-#: gnu/packages/compression.scm:364
+#: gnu/packages/compression.scm:425
 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"
@@ -1587,11 +1823,26 @@ msgid ""
 "than gzip and 15 % smaller output than bzip2."
 msgstr ""
 
-#: gnu/packages/compression.scm:392
+#: gnu/packages/compression.scm:461
+#, fuzzy
+msgid "LHA archive decompressor"
+msgstr "Descompresor de archivos LHA"
+
+#: gnu/packages/compression.scm:462
+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:486
 msgid "Data compression library suitable for real-time data de-/compression"
 msgstr ""
 
-#: gnu/packages/compression.scm:394
+#: gnu/packages/compression.scm:488
 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"
@@ -1601,22 +1852,11 @@ msgid ""
 "format are designed to be portable across platforms."
 msgstr ""
 
-#: gnu/packages/compression.scm:430
-msgid "Python bindings for the LZO data compression library"
-msgstr ""
-
-#: gnu/packages/compression.scm:432
-msgid ""
-"Python-LZO provides Python bindings for LZO, i.e. you can access\n"
-"the LZO library from your Python scripts thereby compressing ordinary\n"
-"Python strings."
-msgstr ""
-
-#: gnu/packages/compression.scm:455
+#: gnu/packages/compression.scm:511
 msgid "Compress or expand files"
 msgstr "Comprime o expande ficheros"
 
-#: gnu/packages/compression.scm:457
+#: gnu/packages/compression.scm:513
 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"
@@ -1624,11 +1864,11 @@ msgid ""
 "some compression ratio)."
 msgstr ""
 
-#: gnu/packages/compression.scm:476
+#: gnu/packages/compression.scm:532
 msgid "Lossless data compressor based on the LZMA algorithm"
 msgstr ""
 
-#: gnu/packages/compression.scm:478
+#: gnu/packages/compression.scm:534
 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"
@@ -1636,11 +1876,11 @@ msgid ""
 "archiving.  Lzip is a clean implementation of the LZMA algorithm."
 msgstr ""
 
-#: gnu/packages/compression.scm:497
+#: gnu/packages/compression.scm:553
 msgid "Recover and decompress data from damaged lzip files"
 msgstr ""
 
-#: gnu/packages/compression.scm:499
+#: gnu/packages/compression.scm:555
 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"
@@ -1656,11 +1896,11 @@ msgid ""
 "decompressors when faced with corrupted input."
 msgstr ""
 
-#: gnu/packages/compression.scm:540
+#: gnu/packages/compression.scm:610
 msgid "Archives in shell scripts, uuencode/uudecode"
 msgstr ""
 
-#: gnu/packages/compression.scm:542
+#: gnu/packages/compression.scm:612
 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"
@@ -1668,72 +1908,41 @@ msgid ""
 "This package is mostly for compatibility and historical interest."
 msgstr ""
 
-#: gnu/packages/compression.scm:573
-#, fuzzy
+#: gnu/packages/compression.scm:643
 msgid "Library for SoundFont decompression"
-msgstr "Biblioteca descompresora GIF"
+msgstr "Biblioteca descompresión SoundFont"
 
-#: gnu/packages/compression.scm:575
+#: gnu/packages/compression.scm:645
 msgid ""
 "SfArkLib is a C++ library for decompressing SoundFont files compressed\n"
 "with the sfArk algorithm."
 msgstr ""
 
-#: gnu/packages/compression.scm:608
+#: gnu/packages/compression.scm:680
 msgid "Basic sfArk decompressor"
 msgstr "Descompresor básico sfArk"
 
-#: gnu/packages/compression.scm:609
+#: gnu/packages/compression.scm:681
 msgid ""
 "SfArk extractor converts SoundFonts in the compressed legacy\n"
 "sfArk file format to the uncompressed sf2 format."
 msgstr ""
 
-#: gnu/packages/compression.scm:626
+#: gnu/packages/compression.scm:699
 msgid "Compression tools for some formats used by Microsoft"
 msgstr ""
 
-#: gnu/packages/compression.scm:628
+#: gnu/packages/compression.scm:701
 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:647
-msgid "Low-level interface to bzip2 compression library"
-msgstr ""
-
-#: gnu/packages/compression.scm:648
-msgid ""
-"This module provides a Perl interface to the bzip2\n"
-"compression library."
-msgstr ""
-
-#: gnu/packages/compression.scm:682
-msgid "Low-level interface to zlib compression library"
-msgstr ""
-
-#: gnu/packages/compression.scm:683
-msgid ""
-"This module provides a Perl interface to the zlib\n"
-"compression library."
-msgstr ""
-
-#: gnu/packages/compression.scm:704
-msgid "IO Interface to compressed files/buffers"
-msgstr ""
-
-#: gnu/packages/compression.scm:705
-msgid ""
-"IO-Compress provides a Perl interface to allow reading and\n"
-"writing of compressed data created with the zlib and bzip2 libraries."
-msgstr ""
-
-#: gnu/packages/compression.scm:732
+#: gnu/packages/compression.scm:727
 msgid "Compression algorithm focused on speed"
 msgstr "Compresión algorítmica dedicada a velocidad"
 
-#: gnu/packages/compression.scm:733
+#: gnu/packages/compression.scm:728
 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"
@@ -1742,32 +1951,11 @@ msgid ""
 "time for compression ratio."
 msgstr ""
 
-#: gnu/packages/compression.scm:758
-#, fuzzy
-msgid "LZ4 bindings for Python"
-msgstr "Enlazando XOSD para Guile"
-
-#: gnu/packages/compression.scm:760
-msgid ""
-"This package provides python bindings for the lz4 compression library\n"
-"by Yann Collet.  The project contains bindings for the LZ4 block format and\n"
-"the LZ4 frame format."
-msgstr ""
-
-#: gnu/packages/compression.scm:783
-#, fuzzy
-msgid "String compression"
-msgstr "Compresión"
-
-#: gnu/packages/compression.scm:784
-msgid "Lz-string is a string compressor library for Python."
-msgstr ""
-
-#: gnu/packages/compression.scm:822
+#: gnu/packages/compression.scm:777
 msgid "Tools to create and extract squashfs file systems"
 msgstr ""
 
-#: gnu/packages/compression.scm:824
+#: gnu/packages/compression.scm:779
 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"
@@ -1777,22 +1965,21 @@ msgid ""
 "extract such file systems."
 msgstr ""
 
-#: gnu/packages/compression.scm:861
-#, fuzzy
+#: gnu/packages/compression.scm:833
 msgid "Parallel implementation of gzip"
-msgstr "Sin Implementación"
+msgstr "Paralelismo implementado para gzip"
 
-#: gnu/packages/compression.scm:863
+#: gnu/packages/compression.scm:835
 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:887
+#: gnu/packages/compression.scm:859
 msgid "Parallel indexing implementation of LZMA"
-msgstr ""
+msgstr "Implementado indizada paralela de LZMA"
 
-#: gnu/packages/compression.scm:889
+#: gnu/packages/compression.scm:861
 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"
@@ -1801,12 +1988,11 @@ msgid ""
 "tarballs."
 msgstr ""
 
-#: gnu/packages/compression.scm:930
-#, fuzzy
+#: gnu/packages/compression.scm:903
 msgid "Implementation of the Brotli compression algorithm"
-msgstr "Compresión algorítmica dedicada a velocidad"
+msgstr "Implementación del algoritmo de compresión Brotli"
 
-#: gnu/packages/compression.scm:932
+#: 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"
@@ -1814,19 +2000,34 @@ msgid ""
 "respectively, based on the reference implementation from Google."
 msgstr ""
 
-#: gnu/packages/compression.scm:956
+#: gnu/packages/compression.scm:939
+#, fuzzy
+#| msgid "Delta encoder for binary files"
+msgid "Patch binary files"
+msgstr "Codificador delta para ficheros binarios"
+
+#: gnu/packages/compression.scm:941
+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:987
 msgid "Tool to unpack Cabinet archives"
 msgstr ""
 
-#: gnu/packages/compression.scm:957
+#: gnu/packages/compression.scm:988
 msgid "Extracts files out of Microsoft Cabinet (.cab) archives"
 msgstr ""
 
-#: gnu/packages/compression.scm:989
+#: gnu/packages/compression.scm:1021
 msgid "Delta encoder for binary files"
 msgstr "Codificador delta para ficheros binarios"
 
-#: gnu/packages/compression.scm:990
+#: gnu/packages/compression.scm:1022
 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"
@@ -1835,11 +2036,11 @@ msgid ""
 "human-readable output."
 msgstr ""
 
-#: gnu/packages/compression.scm:1022
+#: gnu/packages/compression.scm:1055
 msgid "Large file compressor with a very high compression ratio"
 msgstr ""
 
-#: gnu/packages/compression.scm:1023
+#: gnu/packages/compression.scm:1056
 msgid ""
 "lrzip is a compression utility that uses long-range\n"
 "redundancy reduction to improve the subsequent compression ratio of\n"
@@ -1850,90 +2051,45 @@ msgid ""
 "well as bzip2."
 msgstr ""
 
-#: gnu/packages/compression.scm:1059
-msgid "Filter for improving compression of typed binary data"
-msgstr ""
-
-#: gnu/packages/compression.scm:1060
-msgid ""
-"Bitshuffle is an algorithm that rearranges typed, binary data\n"
-"for improving compression, as well as a python/C package that implements this\n"
-"algorithm within the Numpy framework."
-msgstr ""
-
-#: gnu/packages/compression.scm:1079
+#: gnu/packages/compression.scm:1083
 msgid "Fast compressor/decompressor"
 msgstr "Compresor/descompresor rápido"
 
-#: gnu/packages/compression.scm:1080
+#: gnu/packages/compression.scm:1084
 msgid ""
-"Snappy is a compression/decompression library. It does not\n"
+"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"
+"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:1204
-#, fuzzy
-msgid "Compression/decompression algorithm in Java"
-msgstr "Compresión algorítmica dedicada a velocidad"
-
-#: gnu/packages/compression.scm:1205
-msgid ""
-"Snappy-java is a Java port of the snappy, a fast C++\n"
-"compresser/decompresser."
-msgstr ""
-
-#: gnu/packages/compression.scm:1311
-#, fuzzy
-msgid "Java port of snappy"
-msgstr "Puerto Java de (...)"
-
-#: gnu/packages/compression.scm:1312
-msgid ""
-"Iq80-snappy is a rewrite (port) of Snappy writen in pure\n"
-"Java.  This compression code produces a byte-for-byte exact copy of the output\n"
-"created by the original C++ code, and extremely fast."
-msgstr ""
-
-#: gnu/packages/compression.scm:1351
-msgid "Java bzip2 compression/decompression library"
-msgstr ""
-
-#: gnu/packages/compression.scm:1352
-msgid ""
-"Jbzip2 is a Java bzip2 compression/decompression library.\n"
-"It can be used as a replacement for the Apache @code{CBZip2InputStream} /\n"
-"@code{CBZip2OutputStream} classes."
-msgstr ""
-
-#: gnu/packages/compression.scm:1417
+#: gnu/packages/compression.scm:1153
 msgid "Command-line file archiver with high compression ratio"
 msgstr ""
 
-#: gnu/packages/compression.scm:1418
+#: gnu/packages/compression.scm:1154
 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:1457
+#: gnu/packages/compression.scm:1195
 msgid "Compressed C++ iostream"
 msgstr "Flujo E/S C++ comprimido"
 
-#: gnu/packages/compression.scm:1458
+#: gnu/packages/compression.scm:1196
 msgid ""
 "gzstream is a small library for providing zlib\n"
 "functionality in a C++ iostream."
 msgstr ""
 
-#: gnu/packages/compression.scm:1505
+#: gnu/packages/compression.scm:1245
 msgid "Incremental journaling archiver"
 msgstr "Archivador diario incremental"
 
-#: gnu/packages/compression.scm:1506
+#: gnu/packages/compression.scm:1246
 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"
@@ -1947,21 +2103,21 @@ msgid ""
 "or junctions, and always follows hard links."
 msgstr ""
 
-#: gnu/packages/compression.scm:1587
+#: gnu/packages/compression.scm:1345
 msgid "Extract CAB files from InstallShield installers"
 msgstr ""
 
-#: gnu/packages/compression.scm:1589
+#: gnu/packages/compression.scm:1347
 msgid ""
 "@command{unshield} is a tool and library for extracting @file{.cab}\n"
 " archives from InstallShield installers."
 msgstr ""
 
-#: gnu/packages/compression.scm:1615
+#: gnu/packages/compression.scm:1377
 msgid "Zstandard real-time compression algorithm"
 msgstr ""
 
-#: gnu/packages/compression.scm:1616
+#: gnu/packages/compression.scm:1378
 msgid ""
 "Zstandard (@command{zstd}) is a lossless compression algorithm\n"
 "that combines very fast operation with a compression ratio comparable to that of\n"
@@ -1971,11 +2127,12 @@ msgid ""
 "speed."
 msgstr ""
 
-#: gnu/packages/compression.scm:1658
+#: gnu/packages/compression.scm:1420
+#, fuzzy
 msgid "Threaded implementation of the Zstandard compression algorithm"
-msgstr ""
+msgstr "Implementación del algoritmo de compresión Brotli"
 
-#: gnu/packages/compression.scm:1659
+#: gnu/packages/compression.scm:1421
 msgid ""
 "Parallel Zstandard (PZstandard or @command{pzstd}) is a\n"
 "multi-threaded implementation of the @uref{http://zstd.net/, Zstandard\n"
@@ -1988,12 +2145,11 @@ msgid ""
 "the actual decompression, the other input and output."
 msgstr ""
 
-#: gnu/packages/compression.scm:1700
-#, fuzzy
+#: gnu/packages/compression.scm:1459
 msgid "Compression and file packing utility"
-msgstr "Compresión del fichero"
+msgstr "Utilidad de empaquetado y compresión"
 
-#: gnu/packages/compression.scm:1702
+#: gnu/packages/compression.scm:1461
 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"
@@ -2008,11 +2164,11 @@ msgid ""
 "Compression ratios of 2:1 to 3:1 are common for text files."
 msgstr ""
 
-#: gnu/packages/compression.scm:1757
+#: gnu/packages/compression.scm:1523
 msgid "Decompression and file extraction utility"
-msgstr ""
+msgstr "Utilidad de extracción y descompresión de fichero"
 
-#: gnu/packages/compression.scm:1759
+#: gnu/packages/compression.scm:1525
 msgid ""
 "UnZip is an extraction utility for archives compressed in .zip format,\n"
 "also called \"zipfiles\".\n"
@@ -2023,30 +2179,19 @@ msgid ""
 "recreates the stored directory structure by default."
 msgstr ""
 
-#: gnu/packages/compression.scm:1800
-#, fuzzy
+#: gnu/packages/compression.scm:1556
 msgid "Library for accessing zip files"
-msgstr "Biblioteca Zip de compresión"
+msgstr "Biblioteca para acceso a ficheros zip"
 
-#: gnu/packages/compression.scm:1802
+#: gnu/packages/compression.scm:1558
 msgid "ZZipLib is a library based on zlib for accessing zip files."
 msgstr ""
 
-#: gnu/packages/compression.scm:1819
-msgid "Provides an interface to ZIP archive files"
-msgstr ""
-
-#: gnu/packages/compression.scm:1820 gnu/packages/perl.scm:279
-msgid ""
-"The Archive::Zip module allows a Perl program to create,\n"
-"manipulate, read, and write Zip archive files."
-msgstr ""
-
-#: gnu/packages/compression.scm:1842
+#: gnu/packages/compression.scm:1580
 msgid "C library for reading, creating, and modifying zip archives"
 msgstr ""
 
-#: gnu/packages/compression.scm:1843
+#: gnu/packages/compression.scm:1581
 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"
@@ -2054,11 +2199,11 @@ msgid ""
 "archive can be reverted."
 msgstr ""
 
-#: gnu/packages/compression.scm:1876
+#: gnu/packages/compression.scm:1614
 msgid "Universal tool to manage file archives of various types"
 msgstr ""
 
-#: gnu/packages/compression.scm:1877
+#: gnu/packages/compression.scm:1615
 msgid ""
 "The main command is @command{aunpack} which extracts files\n"
 "from an archive.  The other commands provided are @command{apack} (to create\n"
@@ -2068,98 +2213,179 @@ msgid ""
 "of archives."
 msgstr ""
 
-#: gnu/packages/compression.scm:1899
-msgid "Generic archive extracting mechanism"
+#: gnu/packages/compression.scm:1639
+msgid "Small, stand-alone lzip decompressor"
 msgstr ""
 
-#: gnu/packages/compression.scm:1900
+#: gnu/packages/compression.scm:1641
 msgid ""
-"It allows you to extract any archive file of the type .tar,\n"
-".tar.gz, .gz, .Z, tar.bz2, .tbz, .bz2, .zip, .xz,, .txz, .tar.xz or .lzma\n"
-"without having to worry how it does so, or use different interfaces for each\n"
-"type by using either Perl modules, or command-line tools on your system."
+"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:1936
-msgid "XZ in Java"
-msgstr "XZ en Java"
+#: gnu/packages/compression.scm:1666
+#, fuzzy
+#| msgid "Fast compressor/decompressor"
+msgid "Small, stand-alone lzip compressor and decompressor"
+msgstr "Compresor/descompresor rápido"
 
-#: gnu/packages/compression.scm:1937
+#: gnu/packages/compression.scm:1668
 msgid ""
-"Tukaani-xz is an implementation of xz compression/decompression\n"
-"algorithms in Java."
+"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/databases.scm:147
-msgid "Clustered RDF storage and query engine"
+#: gnu/packages/compression.scm:1693
+#, fuzzy
+#| msgid "Zip Compression library"
+msgid "Lzip data compression C library"
+msgstr "Biblioteca Zip de compresión"
+
+#: gnu/packages/compression.scm:1695
+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:1717
+msgid "Parallel lossless data compressor for the lzip format"
 msgstr ""
 
-#: gnu/packages/databases.scm:148
+#: gnu/packages/compression.scm:1719
 msgid ""
-"4store is a RDF/SPARQL store written in C, supporting\n"
-"either single machines or networked clusters."
+"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/databases.scm:167
-msgid "Hash library of database functions compatible with traditional dbm"
+#: gnu/packages/compression.scm:1753
+msgid "Tool for extracting Inno Setup installers"
 msgstr ""
 
-#: gnu/packages/databases.scm:169
+#: gnu/packages/compression.scm:1754
 msgid ""
-"GDBM is a library for manipulating hashed databases.  It is used to\n"
-"store key/value pairs in a file in a manner similar to the Unix dbm library\n"
-"and provides interfaces to the traditional file format."
+"innoextract allows extracting Inno Setup installers under\n"
+"non-Windows systems without running the actual installer using wine."
 msgstr ""
 
-#: gnu/packages/databases.scm:219
-#, fuzzy
-msgid "Berkeley database"
-msgstr "DB Berkeley"
+#: gnu/packages/compression.scm:1792
+msgid "General-purpose lossless compression"
+msgstr "Compresión sin pérdida de propósito general"
+
+#: gnu/packages/compression.scm:1793
+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:1816
+msgid "Portable lossless data compression library"
+msgstr "Biblioteca portable de compresión de datos sin pérdida"
+
+#: gnu/packages/compression.scm:1817
+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:1873
+msgid "Compression tool for executables"
+msgstr "Herramienta de compresión para ejecutables"
+
+#: gnu/packages/compression.scm:1875
+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/databases.scm:161
+msgid "Clustered RDF storage and query engine"
+msgstr "Almacenamiento racimo RDF y motor de petición"
+
+#: gnu/packages/databases.scm:162
+msgid ""
+"4store is a RDF/SPARQL store written in C, supporting\n"
+"either single machines or networked clusters."
+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
+msgid "@code{mgo} offers a rich MongoDB driver for Go."
+msgstr ""
 
-#: gnu/packages/databases.scm:221
+#: gnu/packages/databases.scm:206
 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."
+"@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:310
+#: gnu/packages/databases.scm:232
 msgid "Utility for dumping and restoring ElasticSearch indexes"
 msgstr ""
 
-#: gnu/packages/databases.scm:312
+#: gnu/packages/databases.scm:234
 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:350
+#: gnu/packages/databases.scm:259
 msgid "Fast key-value storage library"
 msgstr ""
 
-#: gnu/packages/databases.scm:352
+#: gnu/packages/databases.scm:261
 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:372
-#, fuzzy
-msgid "In memory caching service"
-msgstr "SERVICIO"
+#: gnu/packages/databases.scm:281
+msgid "In-memory caching service"
+msgstr "Servicio de caché en memoria"
 
-#: gnu/packages/databases.scm:373
+#: gnu/packages/databases.scm:282
 msgid ""
-"Memcached is a in memory key value store.  It has a small\n"
+"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:478
+#: gnu/packages/databases.scm:405
 msgid "High performance and high availability document database"
 msgstr ""
 
-#: gnu/packages/databases.scm:480
+#: gnu/packages/databases.scm:407
 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"
@@ -2167,33 +2393,32 @@ msgid ""
 "RDBMS systems (which are deep in functionality)."
 msgstr ""
 
-#: gnu/packages/databases.scm:556
+#: gnu/packages/databases.scm:477
 msgid "Fast, easy to use, and popular database"
 msgstr ""
 
-#: gnu/packages/databases.scm:558
+#: gnu/packages/databases.scm:479
 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:634
-#, fuzzy
+#: gnu/packages/databases.scm:667
 msgid "SQL database server"
-msgstr "Insertar la información en una base de datos SQL"
+msgstr "Servidor BBDD SQL"
 
-#: gnu/packages/databases.scm:636
+#: gnu/packages/databases.scm:669
 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:674
+#: gnu/packages/databases.scm:709
 msgid "Powerful object-relational database system"
 msgstr ""
 
-#: gnu/packages/databases.scm:676
+#: gnu/packages/databases.scm:711
 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"
@@ -2203,11 +2428,21 @@ msgid ""
 "pictures, sounds, or video."
 msgstr ""
 
-#: gnu/packages/databases.scm:715
+#: gnu/packages/databases.scm:750
+msgid "Pure-Python MySQL driver"
+msgstr ""
+
+#: gnu/packages/databases.scm:752
+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
 msgid "Key-value database"
 msgstr "Valor-clave de BD"
 
-#: gnu/packages/databases.scm:716
+#: gnu/packages/databases.scm:778
 msgid ""
 "QDBM is a library of routines for managing a\n"
 "database.  The database is a simple data file containing key-value\n"
@@ -2217,11 +2452,11 @@ msgid ""
 "organized in a hash table or B+ tree."
 msgstr ""
 
-#: gnu/packages/databases.scm:771
+#: gnu/packages/databases.scm:814
 msgid "Manipulate plain text files as databases"
 msgstr ""
 
-#: gnu/packages/databases.scm:773
+#: gnu/packages/databases.scm:816
 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"
@@ -2230,11 +2465,11 @@ msgid ""
 "types are supported, as is encryption."
 msgstr ""
 
-#: gnu/packages/databases.scm:860
+#: gnu/packages/databases.scm:913
 msgid "Persistent key-value store for fast storage"
-msgstr ""
+msgstr "Almacenaje clave-valor persistente para almacenar rápido"
 
-#: gnu/packages/databases.scm:862
+#: gnu/packages/databases.scm:915
 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"
@@ -2245,14 +2480,14 @@ msgid ""
 "data in a single database.  RocksDB is partially based on @code{LevelDB}."
 msgstr ""
 
-#: gnu/packages/databases.scm:921
+#: gnu/packages/databases.scm:975
 msgid "Command-line tool for accessing SPARQL endpoints over HTTP"
 msgstr ""
 
-#: gnu/packages/databases.scm:922
+#: gnu/packages/databases.scm:976
 msgid ""
 "Sparql-query is a command-line tool for accessing SPARQL\n"
-"endpoints over HTTP.  It has been intentionally designed to 'feel' similar to\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"
@@ -2260,23 +2495,35 @@ msgid ""
 "for example from a shell script."
 msgstr ""
 
-#: gnu/packages/databases.scm:964
-msgid "The SQLite database management system"
-msgstr "El sistema gestor de BBDD SQLite"
+#: gnu/packages/databases.scm:1067
+msgid "Database change management tool"
+msgstr ""
 
-#: gnu/packages/databases.scm:966
+#: gnu/packages/databases.scm:1069
 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."
+"Sqitch is a standalone change management system for database schemas,\n"
+"which uses SQL to describe changes."
 msgstr ""
 
-#: gnu/packages/databases.scm:1015
+#: gnu/packages/databases.scm:1096
+#, fuzzy
+#| msgid "Extensible console-based Jabber client"
+msgid "Text console-based database viewer and editor"
+msgstr "Cliente extensible Jabber basado en consola"
+
+#: gnu/packages/databases.scm:1098
+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:1134
 msgid "Trivial database"
 msgstr "BD trivial"
 
-#: gnu/packages/databases.scm:1017
+#: gnu/packages/databases.scm:1136
 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"
@@ -2284,19 +2531,19 @@ msgid ""
 "extremely small."
 msgstr ""
 
-#: gnu/packages/databases.scm:1036
+#: gnu/packages/databases.scm:1155
 msgid "Database independent interface for Perl"
-msgstr ""
+msgstr "Interfaz de base de datos independiente para Perl"
 
-#: gnu/packages/databases.scm:1037
+#: gnu/packages/databases.scm:1156
 msgid "This package provides an database interface for Perl."
 msgstr ""
 
-#: gnu/packages/databases.scm:1085
+#: gnu/packages/databases.scm:1204
 msgid "Extensible and flexible object <-> relational mapper"
 msgstr ""
 
-#: gnu/packages/databases.scm:1086
+#: gnu/packages/databases.scm:1205
 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"
@@ -2308,21 +2555,21 @@ msgid ""
 "\"ORDER BY\" and \"HAVING\" support."
 msgstr ""
 
-#: gnu/packages/databases.scm:1117
+#: gnu/packages/databases.scm:1236
 msgid "Cursor with built-in caching support"
 msgstr ""
 
-#: gnu/packages/databases.scm:1118
+#: gnu/packages/databases.scm:1237
 msgid ""
 "DBIx::Class::Cursor::Cached provides a cursor class with\n"
 "built-in caching support."
 msgstr ""
 
-#: gnu/packages/databases.scm:1140
+#: gnu/packages/databases.scm:1259
 msgid "Introspect many-to-many relationships"
 msgstr "Introspección relaciones muchos-a-muchos"
 
-#: gnu/packages/databases.scm:1141
+#: gnu/packages/databases.scm:1260
 msgid ""
 "Because the many-to-many relationships are not real\n"
 "relationships, they can not be introspected with DBIx::Class.  Many-to-many\n"
@@ -2332,44 +2579,42 @@ msgid ""
 "introspected and examined."
 msgstr ""
 
-#: gnu/packages/databases.scm:1199
+#: gnu/packages/databases.scm:1318
 msgid "Create a DBIx::Class::Schema based on a database"
 msgstr ""
 
-#: gnu/packages/databases.scm:1200
+#: gnu/packages/databases.scm:1319
 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:1224
+#: gnu/packages/databases.scm:1343
 msgid "DBI PostgreSQL interface"
 msgstr "Interfaz PostgreSQL DBI"
 
-#: gnu/packages/databases.scm:1225
+#: gnu/packages/databases.scm:1344
 msgid ""
 "This package provides a PostgreSQL driver for the Perl5\n"
 "@dfn{Database Interface} (DBI)."
 msgstr ""
 
-#: gnu/packages/databases.scm:1249
-#, fuzzy
+#: gnu/packages/databases.scm:1380
 msgid "DBI MySQL interface"
-msgstr "Interfaz: "
+msgstr "Interfaz BDI MySQL"
 
-#: gnu/packages/databases.scm:1250
+#: gnu/packages/databases.scm:1381
 msgid ""
 "This package provides a MySQL driver for the Perl5\n"
 "@dfn{Database Interface} (DBI)."
 msgstr ""
 
-#: gnu/packages/databases.scm:1269
-#, fuzzy
+#: gnu/packages/databases.scm:1400
 msgid "SQlite interface for Perl"
-msgstr "Generando varias BD sqlite"
+msgstr "Interfaz SQlite para Perl"
 
-#: gnu/packages/databases.scm:1270
+#: gnu/packages/databases.scm:1401
 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"
@@ -2377,11 +2622,23 @@ msgid ""
 "module, and nothing else."
 msgstr ""
 
-#: gnu/packages/databases.scm:1301
+#: gnu/packages/databases.scm:1424
+#, scheme-format
+msgid "Parse and utilize MySQL's /etc/my.cnf and ~/.my.cnf files"
+msgstr ""
+
+#: gnu/packages/databases.scm:1426
+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"
+"@code{Getopt::Long}."
+msgstr ""
+
+#: gnu/packages/databases.scm:1454
 msgid "Generate SQL from Perl data structures"
 msgstr ""
 
-#: gnu/packages/databases.scm:1302
+#: gnu/packages/databases.scm:1455
 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"
@@ -2391,44 +2648,43 @@ msgid ""
 "time your data changes."
 msgstr ""
 
-#: gnu/packages/databases.scm:1331
+#: gnu/packages/databases.scm:1484
 msgid "Split SQL code into atomic statements"
 msgstr ""
 
-#: gnu/packages/databases.scm:1332
+#: gnu/packages/databases.scm:1485
 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:1350
-#, fuzzy
+#: gnu/packages/databases.scm:1503
 msgid "SQL tokenizer"
-msgstr "incompletado SQL: %s"
+msgstr "Generador de símbolo SQL"
 
-#: gnu/packages/databases.scm:1351
+#: gnu/packages/databases.scm:1504
 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:1369
+#: gnu/packages/databases.scm:1522
 msgid "Data source abstraction library"
-msgstr ""
+msgstr "Biblioteca abstracta de origen de datos"
 
-#: gnu/packages/databases.scm:1370
+#: gnu/packages/databases.scm:1523
 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:1394
+#: gnu/packages/databases.scm:1547
 msgid "In-memory key/value and document store"
 msgstr "Almacén en memoria de clave/valor y documento"
 
-#: gnu/packages/databases.scm:1396
+#: gnu/packages/databases.scm:1549
 msgid ""
 "UnQLite is an in-process software library which implements a\n"
 "self-contained, serverless, zero-configuration, transactional NoSQL\n"
@@ -2437,33 +2693,33 @@ msgid ""
 "similar to BerkeleyDB, LevelDB, etc."
 msgstr ""
 
-#: gnu/packages/databases.scm:1424
+#: gnu/packages/databases.scm:1577
 msgid "Key-value cache and store"
 msgstr "Caché de valor-llave y almacenaje"
 
-#: gnu/packages/databases.scm:1425
+#: gnu/packages/databases.scm:1578
 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:1452
+#: gnu/packages/databases.scm:1605
 msgid "Kyoto Cabinet is a modern implementation of the DBM database"
 msgstr ""
 
-#: gnu/packages/databases.scm:1454
+#: gnu/packages/databases.scm:1607
 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:1480
+#: gnu/packages/databases.scm:1633
 msgid "Tokyo Cabinet is a modern implementation of the DBM database"
 msgstr ""
 
-#: gnu/packages/databases.scm:1482
+#: gnu/packages/databases.scm:1635
 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"
@@ -2473,12 +2729,11 @@ msgid ""
 "organized in hash table, B+ tree, or fixed-length array."
 msgstr ""
 
-#: gnu/packages/databases.scm:1517
-#, fuzzy
+#: gnu/packages/databases.scm:1671
 msgid "NoSQL data engine"
-msgstr "Activar Motor de Busqueda"
+msgstr "Motor de datos NoSQL"
 
-#: gnu/packages/databases.scm:1519
+#: gnu/packages/databases.scm:1673
 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"
@@ -2487,29 +2742,31 @@ msgid ""
 "trees (LSM), for sustained throughput under random insert workloads."
 msgstr ""
 
-#: gnu/packages/databases.scm:1570
-msgid "Wired Tiger bindings for GNU Guile"
-msgstr ""
+#: gnu/packages/databases.scm:1724
+#, fuzzy
+#| msgid "Wired Tiger bindings for GNU Guile"
+msgid "WiredTiger bindings for GNU Guile"
+msgstr "Enlazando Tiger cableado para GNU Guile"
 
-#: gnu/packages/databases.scm:1572
+#: gnu/packages/databases.scm:1726
 msgid ""
 "This package provides Guile bindings to the WiredTiger ``NoSQL''\n"
 "database."
 msgstr ""
 
-#: gnu/packages/databases.scm:1604
+#: gnu/packages/databases.scm:1758
 msgid "Perl5 access to Berkeley DB version 1.x"
-msgstr ""
+msgstr "Acceso Perl5 a versión 1.x de BD Berkeley"
 
-#: gnu/packages/databases.scm:1606
+#: gnu/packages/databases.scm:1760
 msgid "The DB::File module provides Perl bindings to the Berkeley DB version 1.x."
 msgstr ""
 
-#: gnu/packages/databases.scm:1633
+#: gnu/packages/databases.scm:1788
 msgid "Lightning Memory-Mapped Database library"
 msgstr ""
 
-#: gnu/packages/databases.scm:1635
+#: gnu/packages/databases.scm:1790
 msgid ""
 "The @dfn{Lightning Memory-Mapped Database} (LMDB) is a high-performance\n"
 "transactional database.  Unlike more complex relational databases, LMDB handles\n"
@@ -2522,22 +2779,22 @@ msgid ""
 "virtual address space — not physical RAM."
 msgstr ""
 
-#: gnu/packages/databases.scm:1672
+#: gnu/packages/databases.scm:1827
 msgid "C++ connector for PostgreSQL"
 msgstr "Conector C++ para PostgreSQL"
 
-#: gnu/packages/databases.scm:1674
+#: gnu/packages/databases.scm:1829
 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:1697
+#: gnu/packages/databases.scm:1852
 msgid "Small object-relational mapping utility"
 msgstr ""
 
-#: gnu/packages/databases.scm:1699
+#: gnu/packages/databases.scm:1854
 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"
@@ -2546,11 +2803,11 @@ msgid ""
 "can autogenerate peewee models using @code{pwiz}, a model generator."
 msgstr ""
 
-#: gnu/packages/databases.scm:1746
+#: gnu/packages/databases.scm:1900
 msgid "Library providing transparent encryption of SQLite database files"
 msgstr ""
 
-#: gnu/packages/databases.scm:1747
+#: gnu/packages/databases.scm:1901
 msgid ""
 "SQLCipher is an implementation of SQLite, extended to\n"
 "provide transparent 256-bit AES encryption of database files.  Pages are\n"
@@ -2559,29 +2816,27 @@ msgid ""
 "development."
 msgstr ""
 
-#: gnu/packages/databases.scm:1779 gnu/packages/databases.scm:1806
-#, fuzzy
+#: gnu/packages/databases.scm:1933 gnu/packages/databases.scm:1959
 msgid "Python ODBC Library"
-msgstr "ORM ActiceRecord  para python"
+msgstr "Biblioteca Python ODBC"
 
-#: gnu/packages/databases.scm:1780
+#: gnu/packages/databases.scm:1934
 msgid ""
 "@code{python-pyodbc-c} provides a Python DB-API driver\n"
 "for ODBC."
 msgstr ""
 
-#: gnu/packages/databases.scm:1807
+#: gnu/packages/databases.scm:1960
 msgid ""
 "@code{python-pyodbc} provides a Python DB-API driver\n"
 "for ODBC."
 msgstr ""
 
-#: gnu/packages/databases.scm:1844
-#, fuzzy
+#: gnu/packages/databases.scm:1992
 msgid "Read Microsoft Access databases"
-msgstr "Técnico (sin acceso lectura, sin envío)"
+msgstr "Lee bbdd Microsoft Access"
 
-#: gnu/packages/databases.scm:1845
+#: gnu/packages/databases.scm:1993
 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"
@@ -2590,81 +2845,65 @@ msgid ""
 "etc., and an SQL engine for performing simple SQL queries."
 msgstr ""
 
-#: gnu/packages/databases.scm:1886
+#: gnu/packages/databases.scm:2036
 msgid "Python binding for the ‘Lightning’ database (LMDB)"
 msgstr ""
 
-#: gnu/packages/databases.scm:1888
+#: gnu/packages/databases.scm:2038
 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:1942
+#: gnu/packages/databases.scm:2092
 msgid "ActiveRecord ORM for Python"
 msgstr "ORM ActiceRecord para Python"
 
-#: gnu/packages/databases.scm:1944
+#: gnu/packages/databases.scm:2094
 msgid ""
 "Orator provides a simple ActiveRecord-like Object Relational Mapping\n"
 "implementation for Python."
 msgstr ""
 
-#: gnu/packages/databases.scm:1971
+#: gnu/packages/databases.scm:2127
 msgid "Multi-model database system"
-msgstr ""
+msgstr "Sistema BBDD multi-modelo"
 
-#: gnu/packages/databases.scm:1972
+#: gnu/packages/databases.scm:2128
 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:2000
-msgid "Database interface and MySQL driver for R"
-msgstr ""
-
-#: gnu/packages/databases.scm:2002
-msgid ""
-"This package provides a DBI interface to MySQL / MariaDB.  The RMySQL\n"
-"package contains an old implementation based on legacy code from S-PLUS which\n"
-"is being phased out.  A modern MySQL client based on Rcpp is available from\n"
-"the RMariaDB package."
-msgstr ""
-
-#: gnu/packages/databases.scm:2027
+#: gnu/packages/databases.scm:2154
 msgid ""
 "Cassandra Cluster Manager for Apache Cassandra clusters on\n"
 "localhost"
 msgstr ""
 
-#: gnu/packages/databases.scm:2029
+#: gnu/packages/databases.scm:2156
 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:2055
-#, fuzzy
+#: gnu/packages/databases.scm:2182
 msgid "SQLite bindings for Python"
-msgstr "Generando varias BD sqlite"
+msgstr "Enlazando SQLite para Python"
 
-#: gnu/packages/databases.scm:2057
+#: gnu/packages/databases.scm:2184
 msgid ""
 "Pysqlite provides SQLite bindings for Python that comply to the\n"
 "Database API 2.0T."
 msgstr ""
 
-#: gnu/packages/databases.scm:2084
-#, fuzzy
+#: gnu/packages/databases.scm:2209
 msgid "Database abstraction library"
-msgstr ""
-"\t-l biblioteca\t\t--load=biblioteca\n"
-"\n"
+msgstr "Biblioteca abstracta de BD"
 
-#: gnu/packages/databases.scm:2086
+#: gnu/packages/databases.scm:2211
 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"
@@ -2673,11 +2912,11 @@ msgid ""
 "simple and Pythonic domain language."
 msgstr ""
 
-#: gnu/packages/databases.scm:2125
+#: gnu/packages/databases.scm:2250
 msgid "Various utility functions for SQLAlchemy"
 msgstr ""
 
-#: gnu/packages/databases.scm:2127
+#: gnu/packages/databases.scm:2252
 msgid ""
 "SQLAlchemy-utils provides various utility functions and custom data types\n"
 "for SQLAlchemy.  SQLAlchemy is an SQL database abstraction library for Python.\n"
@@ -2694,22 +2933,23 @@ msgid ""
 "@end enumerate\n"
 msgstr ""
 
-#: gnu/packages/databases.scm:2168
-#, fuzzy
+#: gnu/packages/databases.scm:2293
 msgid "Database migration tool for SQLAlchemy"
-msgstr "mfdbtool -- Herramienta de gestión de base de datos Mailfromd"
+msgstr "Herramienta de migración de BD para SQLAlchemy"
 
-#: gnu/packages/databases.scm:2170
+#: gnu/packages/databases.scm:2295
 msgid ""
 "Alembic is a lightweight database migration tool for usage with the\n"
 "SQLAlchemy Database Toolkit for Python."
 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:2192
+#: gnu/packages/databases.scm:2321
 msgid "Tiny key value database with concurrency support"
 msgstr ""
 
-#: gnu/packages/databases.scm:2194
+#: gnu/packages/databases.scm:2323
 msgid ""
 "PickleShare is a small ‘shelve’-like datastore with concurrency support.\n"
 "Like shelve, a PickleShareDB object acts like a normal dictionary.  Unlike\n"
@@ -2720,11 +2960,11 @@ msgid ""
 "PickleShare."
 msgstr ""
 
-#: gnu/packages/databases.scm:2239
+#: gnu/packages/databases.scm:2375
 msgid "Another Python SQLite Wrapper"
-msgstr ""
+msgstr "Otra cubierta SQLite para Python"
 
-#: gnu/packages/databases.scm:2240
+#: gnu/packages/databases.scm:2376
 msgid ""
 "APSW is a Python wrapper for the SQLite\n"
 "embedded relational database engine.  In contrast to other wrappers such as\n"
@@ -2732,22 +2972,22 @@ msgid ""
 "translate the complete SQLite API into Python."
 msgstr ""
 
-#: gnu/packages/databases.scm:2264
+#: gnu/packages/databases.scm:2400
 msgid "Neo4j driver code written in Python"
 msgstr ""
 
-#: gnu/packages/databases.scm:2265
+#: gnu/packages/databases.scm:2401
 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:2284
+#: gnu/packages/databases.scm:2420
 msgid "Library and toolkit for working with Neo4j in Python"
 msgstr ""
 
-#: gnu/packages/databases.scm:2285
+#: gnu/packages/databases.scm:2421
 msgid ""
 "This package provides a client library and toolkit for\n"
 "working with Neo4j from within Python applications and from the command\n"
@@ -2755,32 +2995,32 @@ msgid ""
 "designed to be easy and intuitive to use."
 msgstr ""
 
-#: gnu/packages/databases.scm:2310
-#, fuzzy
+#: gnu/packages/databases.scm:2445
 msgid "Python PostgreSQL adapter"
-msgstr "Cubiertas ALSA para Python"
+msgstr "Adaptador Python PosgreSQL"
 
-#: gnu/packages/databases.scm:2312
-msgid "psycopg2 is a thread-safe PostgreSQL adapter that implements DB-API 2.0. "
+#: gnu/packages/databases.scm:2447
+msgid ""
+"psycopg2 is a thread-safe PostgreSQL adapter that implements DB-API\n"
+"2.0."
 msgstr ""
 
-#: gnu/packages/databases.scm:2335
-#, fuzzy
+#: gnu/packages/databases.scm:2472
 msgid "SQLAlchemy schema displayer"
-msgstr "consultando información esquemática"
+msgstr "Consultador de schema SQLAlchemy"
 
-#: gnu/packages/databases.scm:2336
+#: gnu/packages/databases.scm:2473
 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:2366
+#: gnu/packages/databases.scm:2503
 msgid "MySQLdb is an interface to the popular MySQL database server for Python"
 msgstr ""
 
-#: gnu/packages/databases.scm:2367
+#: gnu/packages/databases.scm:2504
 msgid ""
 "MySQLdb is an interface to the popular MySQL database server\n"
 "for Python.  The design goals are:\n"
@@ -2791,87 +3031,141 @@ msgid ""
 "@end enumerate"
 msgstr ""
 
-#: gnu/packages/databases.scm:2395
+#: gnu/packages/databases.scm:2532
 msgid "Python extension that wraps protocol parsing code in hiredis"
 msgstr ""
 
-#: gnu/packages/databases.scm:2396
+#: gnu/packages/databases.scm:2533
 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:2419
+#: gnu/packages/databases.scm:2556
 msgid "Fake implementation of redis API for testing purposes"
 msgstr ""
 
-#: gnu/packages/databases.scm:2420
+#: gnu/packages/databases.scm:2558
 msgid ""
-"Fakeredis is a pure python implementation of the redis-py\n"
-"python client that simulates talking to a redis server.  This was created for a\n"
-"single purpose: to write unittests.  Setting up redis is not hard, but many time\n"
-" you want to write unittests that do not talk to an external server (such as\n"
-"redis).  This module now allows tests to simply use this module as a reasonable\n"
-"substitute for redis."
+"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:2448
-#, fuzzy
+#: gnu/packages/databases.scm:2587
 msgid "Redis Python client"
-msgstr "Cliente"
+msgstr "Cliente Python Redis"
 
-#: gnu/packages/databases.scm:2450
+#: gnu/packages/databases.scm:2589
 msgid "This package provides a Python interface to the Redis key-value store."
 msgstr ""
 
-#: gnu/packages/databases.scm:2471
+#: gnu/packages/databases.scm:2610
 msgid "Simple job queues for Python"
 msgstr ""
 
-#: gnu/packages/databases.scm:2473
+#: gnu/packages/databases.scm:2612
 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:2496
+#: gnu/packages/databases.scm:2635
 msgid "Port of asyncio-redis to trollius"
 msgstr ""
 
-#: gnu/packages/databases.scm:2497
+#: gnu/packages/databases.scm:2636
 msgid ""
 "@code{trollius-redis} is a Redis client for Python\n"
 "  trollius.  It is an asynchronious IO (PEP 3156) implementation of the\n"
 "  Redis protocol."
 msgstr ""
 
-#: gnu/packages/databases.scm:2524
+#: gnu/packages/databases.scm:2663
 msgid "Non-validating SQL parser"
 msgstr ""
 
-#: gnu/packages/databases.scm:2525
+#: gnu/packages/databases.scm:2664
 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:2545
+#: gnu/packages/databases.scm:2683
 msgid "Library to write SQL queries in a pythonic way"
-msgstr ""
+msgstr "Biblioteca para escribir peticiones SQL dentro de una forma pythonisa"
 
-#: gnu/packages/databases.scm:2546
+#: gnu/packages/databases.scm:2684
 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/debug.scm:80
+#: gnu/packages/databases.scm:2781
+msgid "Various tools for interacting with MongoDB and BSON"
+msgstr ""
+
+#: gnu/packages/databases.scm:2783
+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:2867
+msgid "Columnar in-memory analytics"
+msgstr ""
+
+#: gnu/packages/databases.scm:2868
+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:2913
 #, fuzzy
+#| msgid "Python bindings for cairo"
+msgid "Python bindings for Apache Arrow"
+msgstr "Enlace Python para cairo"
+
+#: gnu/packages/databases.scm:2914
+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."
+msgstr ""
+
+#: gnu/packages/debug.scm:85
 msgid "Heuristical file minimizer"
-msgstr "[FICHERO]..."
+msgstr "Fichero heurístico minimizador"
 
-#: gnu/packages/debug.scm:82
+#: gnu/packages/debug.scm:87
 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"
@@ -2879,12 +3173,11 @@ msgid ""
 "program to exhibit a bug."
 msgstr ""
 
-#: gnu/packages/debug.scm:137
-#, fuzzy
+#: gnu/packages/debug.scm:147
 msgid "Reducer for interesting code"
-msgstr "Tu familia tiene un linaje interesante."
+msgstr "Reducir para códigos interesante"
 
-#: gnu/packages/debug.scm:139
+#: gnu/packages/debug.scm:149
 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"
@@ -2893,12 +3186,11 @@ msgid ""
 "tools that process C/C++ code."
 msgstr ""
 
-#: gnu/packages/debug.scm:268
-#, fuzzy
+#: gnu/packages/debug.scm:256
 msgid "Security-oriented fuzzer"
-msgstr "Página Principal de Proyecto orientada a Widgets"
+msgstr "Zumbado orientado garantizado"
 
-#: gnu/packages/debug.scm:270
+#: gnu/packages/debug.scm:258
 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"
@@ -2909,11 +3201,11 @@ msgid ""
 "down the road."
 msgstr ""
 
-#: gnu/packages/debug.scm:328
+#: gnu/packages/debug.scm:314
 msgid "Expose race conditions in Makefiles"
 msgstr ""
 
-#: gnu/packages/debug.scm:330
+#: gnu/packages/debug.scm:316
 msgid ""
 "Stress Make is a customized GNU Make that explicitely manages the order\n"
 "in which concurrent jobs are run to provoke erroneous behavior into becoming\n"
@@ -2923,63 +3215,124 @@ msgid ""
 "conditions."
 msgstr ""
 
-#: gnu/packages/debug.scm:357
+#: gnu/packages/debug.scm:343
 msgid "Transparent application input fuzzer"
-msgstr ""
+msgstr "Aplicación transparente de entrada fuzzer"
 
-#: gnu/packages/debug.scm:358
+#: gnu/packages/debug.scm:344
 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 ""
+"Zzuf es una entrada de aplicación transparente fuzzer.  Trabaja por\n"
+"interceptando operaciones de fichero y modifica aleatoriamente\n"
+"varios bit dentro de la entrada del programa.  El comportamiento\n"
+"de Zzuf es determinalístico, creando fácil su reproducción de\n"
+"defectos."
 
-#: gnu/packages/dejagnu.scm:77
-msgid "GNU software testing framework"
+#: gnu/packages/debug.scm:397
+msgid "Memory scanner"
+msgstr ""
+
+#: gnu/packages/debug.scm:398
+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/dejagnu.scm:79
+#: gnu/packages/dejagnu.scm:78
+msgid "GNU software testing framework"
+msgstr "Marco de pruebas de software GNU"
+
+#: 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:164
-#, fuzzy
+#: gnu/packages/games.scm:230
+msgid "Action game in four spatial dimensions"
+msgstr "Juego de acción en cuatro dimensiones espaciales"
+
+#: gnu/packages/games.scm:232
+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 ""
+
+# FUZZY
+#: gnu/packages/games.scm:282
+msgid "Retro platform game"
+msgstr "Juego de plataformas «retro»"
+
+#: gnu/packages/games.scm:284
+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:311
 msgid "Tron clone in 3D"
-msgstr "Seguimiento 3D"
+msgstr "Clon de Tron en 3D"
 
-#: gnu/packages/games.scm:165
+#: gnu/packages/games.scm:312
 msgid ""
-"Armagetron is a multiplayer game in 3d that attempts to\n"
-"emulate and expand on the lightcycle sequence from the movie Tron.  It's\n"
-"an old school arcade game slung into the 21st century.  Highlights include\n"
-"a customizable playing arena, HUD, unique graphics, and AI bots.  For the\n"
-"more advanced player there are new game modes and a wide variety of physics\n"
-"settings to tweak as well."
+"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:238
-msgid "Survival horror roguelike video game"
+#: gnu/packages/games.scm:377
+msgid "Antagonistic Tetris-style falling brick game for text terminals"
 msgstr ""
 
-#: gnu/packages/games.scm:240
+#: gnu/packages/games.scm:379
 msgid ""
-"Cataclysm: Dark Days Ahead is a roguelike set in a post-apocalyptic world.\n"
-"Struggle to survive in a harsh, persistent, procedurally generated world.\n"
-"Scavenge the remnants of a dead civilization for food, equipment, or, if you are\n"
-"lucky, a vehicle with a full tank of gas to get you out of Dodge.  Fight to\n"
-"defeat or escape from a wide variety of powerful monstrosities, from zombies to\n"
-"giant insects to killer robots and things far stranger and deadlier, and against\n"
-"the others like yourself, that want what you have."
+"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:281
-msgid "Speaking cow text filter"
+#: gnu/packages/games.scm:440
+msgid "Survival horror roguelike video game"
+msgstr "Videojuego de horror y supervivencia tipo mazmorra"
+
+#: gnu/packages/games.scm:442
+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:282
+#: gnu/packages/games.scm:487
+msgid "Speaking cow text filter"
+msgstr "Filtro de texto para una vaca hablante"
+
+#: gnu/packages/games.scm:488
 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"
@@ -2987,11 +3340,11 @@ msgid ""
 "tired of cows, a variety of other ASCII-art messengers are available."
 msgstr ""
 
-#: gnu/packages/games.scm:348
+#: gnu/packages/games.scm:557
 msgid "Free content game based on the Doom engine"
-msgstr ""
+msgstr "Juego de contenido libre basado en el motor de Doom"
 
-#: gnu/packages/games.scm:350
+#: gnu/packages/games.scm:566
 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"
@@ -3000,24 +3353,92 @@ msgid ""
 "effects and music to make a completely free game."
 msgstr ""
 
-#: gnu/packages/games.scm:381
+#: gnu/packages/games.scm:614
+msgid "Isometric role-playing game against killer robots"
+msgstr "Juego de rol isométrico contra robots asesinos"
+
+#: gnu/packages/games.scm:616
+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:693
+msgid "Software for exploring cellular automata"
+msgstr "Software para la exploración de autómatas celulares"
+
+#: gnu/packages/games.scm:695
+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:740
+msgid "Puzzle/platform game"
+msgstr "Puzzle/juego de plataformas"
+
+#: gnu/packages/games.scm:741
+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 ""
+
+# FUZZY
+#: gnu/packages/games.scm:776
+msgid "Multiplayer dungeon game involving knights and quests"
+msgstr "Juego de mazmorras multijugador que incluye caballeros y desafíos"
+
+#: gnu/packages/games.scm:777
+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:814
 msgid "Backgammon game"
 msgstr "Juego backgammon"
 
-#: gnu/packages/games.scm:382
+#: gnu/packages/games.scm:815
 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:411
+#: gnu/packages/games.scm:847
 msgid "3d Rubik's cube game"
-msgstr ""
+msgstr "Juego del cubo de Rubik 3D"
 
-#: gnu/packages/games.scm:413
+#: gnu/packages/games.scm:849
 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"
@@ -3026,21 +3447,24 @@ msgid ""
 "scriptable with Guile."
 msgstr ""
 
-#: gnu/packages/games.scm:435
+#: gnu/packages/games.scm:871
 msgid "The game of Shogi (Japanese chess)"
-msgstr ""
+msgstr "El juego de Shogi (Ajedrez japonés)"
 
-#: gnu/packages/games.scm:436
+#: gnu/packages/games.scm:872
 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 Shogi es un programa que juega al Shogi (ajedrez japonés). Es\n"
+"parecido al ajedrez estándar pero esta variante es mucho más\n"
+"complicada."
 
-#: gnu/packages/games.scm:467
+#: gnu/packages/games.scm:903
 msgid "Tetris clone based on the SDL library"
-msgstr ""
+msgstr "Clon de Tetris basado en la biblioteca SDL"
 
-#: gnu/packages/games.scm:469
+#: gnu/packages/games.scm:905
 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"
@@ -3054,38 +3478,83 @@ msgid ""
 "watch your CPU playing while enjoying a cup of tea!"
 msgstr ""
 
-#: gnu/packages/games.scm:520
-msgid "Version of the classic 3D shoot'em'up game Doom"
+#: gnu/packages/games.scm:1028
+#, fuzzy
+msgid "Classic dungeon crawl game"
+msgstr "Explorador de mazmorra similar a Dungeon Rogue"
+
+#: gnu/packages/games.scm:1029
+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:522
+#: gnu/packages/games.scm:1073
+#, fuzzy
+#| msgid "Logic puzzle game"
+msgid "Logical tile puzzle"
+msgstr "Juego lógico de puzzle"
+
+#: gnu/packages/games.scm:1075
+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:1122
+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
 msgid "PrBoom+ is a Doom source port developed from the original PrBoom project."
 msgstr ""
 
-#: gnu/packages/games.scm:569
-#, fuzzy
+#: gnu/packages/games.scm:1172
 msgid "Action platformer game"
-msgstr "Operación"
+msgstr "Juego de plataforma de acción"
 
-#: gnu/packages/games.scm:571
+#: gnu/packages/games.scm:1174
 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:600
+#: gnu/packages/games.scm:1280
+msgid "A classical roguelike/sandbox game"
+msgstr ""
+
+#: gnu/packages/games.scm:1282
+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:1309
 msgid "User interface for gnushogi"
 msgstr "Interfaz de usuario para gnushogi"
 
-#: gnu/packages/games.scm:601
+#: gnu/packages/games.scm:1310
 msgid "A graphical user interface for the package @code{gnushogi}."
-msgstr ""
+msgstr "Un interfaz gráfico para usuario para el paquete @code{gnushogi}."
 
-#: gnu/packages/games.scm:650
+#: gnu/packages/games.scm:1361
 msgid "GNU/Linux port of the indie game \"l'Abbaye des Morts\""
 msgstr ""
 
-#: gnu/packages/games.scm:651
+#: gnu/packages/games.scm:1362
 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"
@@ -3094,24 +3563,22 @@ msgid ""
 "that beneath its ruins lay buried an ancient evil."
 msgstr ""
 
-#: gnu/packages/games.scm:703
-#, fuzzy
+#: gnu/packages/games.scm:1418
 msgid "Dungeon exploration roguelike"
-msgstr "Hay un tipo atrapado en una mazmorra cerca de aquí."
+msgstr "Explorador de mazmorra similar a Dungeon Rogue"
 
-#: gnu/packages/games.scm:704
+#: gnu/packages/games.scm:1419
 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:744
-#, fuzzy
+#: gnu/packages/games.scm:1457
 msgid "Lemmings clone"
-msgstr "Clonar"
+msgstr "Clon de Lemmings"
 
-#: gnu/packages/games.scm:746
+#: gnu/packages/games.scm:1459
 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"
@@ -3121,47 +3588,54 @@ msgid ""
 "level's exit.  The game is presented in a 2D side view."
 msgstr ""
 
-#: gnu/packages/games.scm:768
+#: gnu/packages/games.scm:1481
 msgid "Convert English text to humorous dialects"
-msgstr ""
+msgstr "Convierte texto inglés a dialectos humorísticos"
 
-#: gnu/packages/games.scm:769
+#: gnu/packages/games.scm:1482
 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:801
-#, fuzzy
+#: gnu/packages/games.scm:1513
 msgid "Simulate the display from \"The Matrix\""
-msgstr " Enseña información desde objeto <fichero(s)>.\n"
+msgstr "Simula la pantalla de «The Matrix»"
 
-#: gnu/packages/games.scm:802
+#: gnu/packages/games.scm:1514
 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"
 "settings up to 132x300 and can scroll lines all at the same rate or\n"
 "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"
+"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:822
-#, fuzzy
+#: gnu/packages/games.scm:1534
 msgid "Full chess implementation"
-msgstr "Sin Implementación"
+msgstr "Implementación completa de ajedrez"
 
-#: gnu/packages/games.scm:823
+#: gnu/packages/games.scm:1535
 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 Chess es un motor de ajedrez. Le permite competir contra la\n"
+"máquina en una partida de ajedrez, tanto a través de la interfaz\n"
+"predeterminada del terminal o mediante una interfaz visual externa\n"
+"como GNU XBoard."
 
-#: gnu/packages/games.scm:851
+#: gnu/packages/games.scm:1575
 msgid "Twisted adventures of young pig farmer Dink Smallwood"
 msgstr ""
 
-#: gnu/packages/games.scm:853
+#: gnu/packages/games.scm:1577
 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"
@@ -3169,19 +3643,29 @@ msgid ""
 "To that extent, it also includes a front-end for managing all of your D-Mods."
 msgstr ""
 
-#: gnu/packages/games.scm:878
+#: gnu/packages/games.scm:1603
 msgid "Game data for GNU Freedink"
-msgstr ""
+msgstr "Datos de juego para GNU Freedink"
 
-#: gnu/packages/games.scm:880
+#: gnu/packages/games.scm:1605
 msgid "This package contains the game data of GNU Freedink."
 msgstr ""
 
-#: gnu/packages/games.scm:932
-msgid "Graphical user interface for chess programs"
+#: gnu/packages/games.scm:1628
+msgid "Front-end for managing and playing Dink Modules"
 msgstr ""
 
-#: gnu/packages/games.scm:933
+#: gnu/packages/games.scm:1629
+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
+msgid "Graphical user interface for chess programs"
+msgstr "Interfaz gráfica para programas de ajedrez"
+
+#: gnu/packages/games.scm:1682
 msgid ""
 "GNU XBoard is a graphical board for all varieties of chess,\n"
 "including international chess, xiangqi (Chinese chess), shogi (Japanese chess)\n"
@@ -3189,25 +3673,18 @@ msgid ""
 "fully interactive graphical interface and it can load and save games in the\n"
 "Portable Game Notation."
 msgstr ""
+"GNU XBoard es un tablero gráfico para todas las variedades de ajedrez,\n"
+"incluyendo ajedrez internacional, xiangqi (ajedrez chino), shogi\n"
+"(ajedrez japonés) y Makruk. Algunas variantes menos conocidas también\n"
+"están implementadas. Presenta una interfaz gráfica completamente\n"
+"interactiva y puede cargar y almacenar juegos en la notación de juegos\n"
+"portable (PGN)."
 
-#: gnu/packages/games.scm:986
-#, fuzzy
-msgid "Ball and paddle game"
-msgstr "_Juego"
-
-#: gnu/packages/games.scm:987
-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:1019
+#: gnu/packages/games.scm:1716
 msgid "Typing tutor"
-msgstr ""
+msgstr "Tutor de mecanografía"
 
-#: gnu/packages/games.scm:1021
+#: gnu/packages/games.scm:1718
 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"
@@ -3216,11 +3693,11 @@ msgid ""
 "are primarily in English, however some in other languages are provided."
 msgstr ""
 
-#: gnu/packages/games.scm:1068
+#: gnu/packages/games.scm:1784
 msgid "3D game engine written in C++"
-msgstr ""
+msgstr "Motor de juegos 3D escrito en C++"
 
-#: gnu/packages/games.scm:1070
+#: gnu/packages/games.scm:1786
 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"
@@ -3228,12 +3705,11 @@ msgid ""
 "for common mesh file formats, and collision detection."
 msgstr ""
 
-#: gnu/packages/games.scm:1122
-#, fuzzy
+#: gnu/packages/games.scm:1838
 msgid "2D space shooter"
-msgstr "Biblioteca de dibujo 2D"
+msgstr "Caza espacial 2D"
 
-#: gnu/packages/games.scm:1124
+#: gnu/packages/games.scm:1840
 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"
@@ -3241,19 +3717,21 @@ msgid ""
 "match, cannon keep, and grave-itation pit."
 msgstr ""
 
-#: gnu/packages/games.scm:1165
+#: gnu/packages/games.scm:1874
 msgid "Main game data for the Minetest game engine"
 msgstr ""
 
-#: gnu/packages/games.scm:1167
-msgid "Game data for the Minetest infinite-world block sandox game."
-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:1219
+#: gnu/packages/games.scm:1936
 msgid "Infinite-world block sandbox game"
-msgstr ""
+msgstr "Juego de arena de bloque de palabra infinitas"
 
-#: gnu/packages/games.scm:1221
+#: gnu/packages/games.scm:1938
 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"
@@ -3262,11 +3740,11 @@ msgid ""
 "in different ways."
 msgstr ""
 
-#: gnu/packages/games.scm:1260
+#: gnu/packages/games.scm:1977
 msgid "Curses Implementation of the Glk API"
 msgstr ""
 
-#: gnu/packages/games.scm:1262
+#: gnu/packages/games.scm:1979
 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"
@@ -3275,12 +3753,11 @@ msgid ""
 "using the @code{curses.h} library for screen control."
 msgstr ""
 
-#: gnu/packages/games.scm:1300
-#, fuzzy
+#: gnu/packages/games.scm:2017
 msgid "Interpreter for Glulx VM"
-msgstr " programa intérprete"
+msgstr "Intérprete para Clulx VM"
 
-#: gnu/packages/games.scm:1302
+#: gnu/packages/games.scm:2019
 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"
@@ -3288,36 +3765,22 @@ msgid ""
 "reference interpreter, using the Glk API."
 msgstr ""
 
-#: gnu/packages/games.scm:1339
+#: gnu/packages/games.scm:2053
 msgid "Z-machine interpreter"
 msgstr "Interpretador Z-machine"
 
-#: gnu/packages/games.scm:1341
+#: gnu/packages/games.scm:2055
 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:1395
-msgid "Reference frontend for the libretro API"
-msgstr ""
-
-#: gnu/packages/games.scm:1397
-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."
-msgstr ""
-
-#: gnu/packages/games.scm:1417
-#, fuzzy
+#: gnu/packages/games.scm:2073
 msgid "Play the game of Go"
-msgstr "Anímate y juega"
+msgstr "Jugar al juego de Go"
 
-#: gnu/packages/games.scm:1419
+#: gnu/packages/games.scm:2075
 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"
@@ -3328,11 +3791,11 @@ msgid ""
 "Protocol)."
 msgstr ""
 
-#: gnu/packages/games.scm:1447
-msgid "High speed arctic racing game based on Tux Racer"
+#: gnu/packages/games.scm:2103
+msgid "High-speed arctic racing game based on Tux Racer"
 msgstr ""
 
-#: gnu/packages/games.scm:1449
+#: gnu/packages/games.scm:2105
 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"
@@ -3345,11 +3808,11 @@ msgid ""
 "This game is based on the GPL version of the famous game TuxRacer."
 msgstr ""
 
-#: gnu/packages/games.scm:1531
+#: gnu/packages/games.scm:2177
 msgid "3D kart racing game"
-msgstr ""
+msgstr "Juego de carreras de kart 3D"
 
-#: gnu/packages/games.scm:1532
+#: gnu/packages/games.scm:2178
 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"
@@ -3357,11 +3820,11 @@ msgid ""
 "also available."
 msgstr ""
 
-#: gnu/packages/games.scm:1564
+#: gnu/packages/games.scm:2210
 msgid "Game of jumping to the next floor, trying not to fall"
 msgstr ""
 
-#: gnu/packages/games.scm:1566
+#: gnu/packages/games.scm:2212
 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"
@@ -3369,12 +3832,11 @@ msgid ""
 "falling, themeable graphics and sounds, and replays."
 msgstr ""
 
-#: gnu/packages/games.scm:1609
-#, fuzzy
+#: gnu/packages/games.scm:2246
 msgid "Turn-based strategy game"
-msgstr "juego;interestelar;trasporte;estrategia;"
+msgstr "Juego estratégico basado en turnos"
 
-#: gnu/packages/games.scm:1611
+#: gnu/packages/games.scm:2248
 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"
@@ -3386,48 +3848,32 @@ msgid ""
 "next campaign."
 msgstr ""
 
-#: gnu/packages/games.scm:1655
-msgid "X86 emulator with CGA/EGA/VGA/etc. graphics and sound"
+#: gnu/packages/games.scm:2273
+msgid "Dedicated @emph{Battle for Wesnoth} server"
 msgstr ""
 
-#: gnu/packages/games.scm:1656
+#: gnu/packages/games.scm:2274
 msgid ""
-"DOSBox is a DOS-emulator that uses the SDL library.  DOSBox\n"
-"also emulates CPU:286/386 realmode/protected mode, Directory\n"
-"FileSystem/XMS/EMS, Tandy/Hercules/CGA/EGA/VGA/VESA graphics, a\n"
-"SoundBlaster/Gravis Ultra Sound card for excellent sound compatibility with\n"
-"older games."
+"This package contains a dedicated server for @emph{The\n"
+"Battle for Wesnoth}."
 msgstr ""
 
-#: gnu/packages/games.scm:1701
+#: gnu/packages/games.scm:2318
 msgid "Mouse and keyboard discovery for children"
-msgstr ""
+msgstr "Descubrimiento de ratón y teclado para niños"
 
-#: gnu/packages/games.scm:1703
+#: gnu/packages/games.scm:2320
 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:1735
-msgid "Puzzle game with a cat in lead role"
-msgstr ""
-
-#: gnu/packages/games.scm:1736
-msgid ""
-"Project Raincat is a game developed by Carnegie Mellon\n"
-"students through GCS during the Fall 2008 semester.  Raincat features game\n"
-"play inspired from classics Lemmings and The Incredible Machine.  The project\n"
-"proved to be an excellent learning experience for the programmers.  Everything\n"
-"is programmed in Haskell."
-msgstr ""
-
-#: gnu/packages/games.scm:1770
+#: gnu/packages/games.scm:2353
 msgid "Client for 'The Mana World' and similar games"
 msgstr ""
 
-#: gnu/packages/games.scm:1772
+#: gnu/packages/games.scm:2355
 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"
@@ -3435,132 +3881,13 @@ msgid ""
 "@uref{http://landoffire.org, Land of fire}."
 msgstr ""
 
-#: gnu/packages/games.scm:1822
-msgid "Nintendo 64 emulator core library"
-msgstr ""
-
-#: gnu/packages/games.scm:1824
-msgid ""
-"Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator\n"
-"which is capable of accurately playing many games.  This package contains the\n"
-"core library."
-msgstr ""
-
-#: gnu/packages/games.scm:1868 gnu/packages/games.scm:1913
-#: gnu/packages/games.scm:1955 gnu/packages/games.scm:1997
-#: gnu/packages/games.scm:2313
-msgid "Mupen64Plus SDL input plugin"
-msgstr ""
-
-#: gnu/packages/games.scm:1870
-msgid ""
-"Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator\n"
-"which is capable of accurately playing many games.  This package contains the\n"
-"SDL audio plugin."
-msgstr ""
-
-#: gnu/packages/games.scm:1915
-msgid ""
-"Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator\n"
-"which is capable of accurately playing many games.  This package contains the\n"
-"SDL input plugin."
-msgstr ""
-
-#: gnu/packages/games.scm:1957
-msgid ""
-"Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator\n"
-"which is capable of accurately playing many games.  This package contains the\n"
-"high-level emulation (HLE) RSP processor plugin."
-msgstr ""
-
-#: gnu/packages/games.scm:1999
-msgid ""
-"Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator\n"
-"which is capable of accurately playing many games.  This package contains the\n"
-"Z64 RSP processor plugin."
-msgstr ""
-
-#: gnu/packages/games.scm:2043 gnu/packages/games.scm:2097
-#: gnu/packages/games.scm:2147 gnu/packages/games.scm:2195
-msgid "Mupen64Plus Rice Video plugin"
-msgstr ""
-
-#: gnu/packages/games.scm:2045
-msgid ""
-"Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator\n"
-"which is capable of accurately playing many games.  This package contains the\n"
-"Arachnoid video plugin."
-msgstr ""
-
-#: gnu/packages/games.scm:2099
-msgid ""
-"Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator\n"
-"which is capable of accurately playing many games.  This package contains the\n"
-"Glide64 video plugin."
-msgstr ""
-
-#: gnu/packages/games.scm:2149
-msgid ""
-"Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator\n"
-"which is capable of accurately playing many games.  This package contains the\n"
-"Glide64MK2 video plugin."
-msgstr ""
-
-#: gnu/packages/games.scm:2197
-msgid ""
-"Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator\n"
-"which is capable of accurately playing many games.  This package contains the\n"
-"Rice Video plugin."
-msgstr ""
-
-#: gnu/packages/games.scm:2249
-msgid "Mupen64Plus Z64 video plugin"
-msgstr ""
-
-#: gnu/packages/games.scm:2251
-msgid ""
-"Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator\n"
-"which is capable of accurately playing many games.  This package contains the\n"
-"Z64 video plugin."
-msgstr ""
-
-#: gnu/packages/games.scm:2315
-msgid ""
-"Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator\n"
-"which is capable of accurately playing many games.  This package contains the\n"
-"command line user interface.  Installing this package is the easiest way\n"
-"towards a working Mupen64Plus for casual users."
-msgstr ""
-
-#: gnu/packages/games.scm:2372
-msgid "Nintendo Entertainment System (NES/Famicom) emulator"
-msgstr ""
-
-#: gnu/packages/games.scm:2374
-msgid ""
-"Nestopia UE (Undead Edition) is a fork of the Nintendo Entertainment\n"
-"System (NES/Famicom) emulator Nestopia, with enhancements from members of the\n"
-"emulation community.  It provides highly accurate emulation."
-msgstr ""
-
-#: gnu/packages/games.scm:2404
-msgid "Video game console emulator front-end"
-msgstr ""
-
-#: gnu/packages/games.scm:2405
-msgid ""
-"EmulationStation provides a graphical front-end to a large\n"
-"number of video game console emulators.  It features an interface that is\n"
-"usable with any game controller that has at least 4 buttons, theming support,\n"
-"and a game metadata scraper."
-msgstr ""
-
-#: gnu/packages/games.scm:2459
+# FUZZY
+#: gnu/packages/games.scm:2422
 #, fuzzy
-msgid "Transportation economics simulator"
-msgstr "mtasím -- MTA simulador para mailfromd"
+msgid "Transportation economics simulator game"
+msgstr "Juego de simulación económica de transportes"
 
-#: gnu/packages/games.scm:2460
+#: gnu/packages/games.scm:2423
 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"
@@ -3570,11 +3897,11 @@ msgid ""
 "engine.  When you start it you will be prompted to download a graphics set."
 msgstr ""
 
-#: gnu/packages/games.scm:2517
+#: gnu/packages/games.scm:2480
 msgid "Base graphics set for OpenTTD"
-msgstr "Gráficos básicos establecidos para OpenTTD"
+msgstr "Conjunto de gráficos básicos para OpenTTD"
 
-#: gnu/packages/games.scm:2519
+#: gnu/packages/games.scm:2482
 msgid ""
 "The OpenGFX projects is an implementation of the OpenTTD base grahics\n"
 "set that aims to ensure the best possible out-of-the-box experience.\n"
@@ -3589,35 +3916,49 @@ msgid ""
 "@end enumerate"
 msgstr ""
 
-#: gnu/packages/games.scm:2564
-#, fuzzy
+#: gnu/packages/games.scm:2527
 msgid "Base sounds for OpenTTD"
-msgstr "Caray, suena bastante siniestro."
+msgstr "Sonidos básicos para OpenTTD"
 
-#: gnu/packages/games.scm:2565
+#: gnu/packages/games.scm:2528
 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:2602
-#, fuzzy
+#: gnu/packages/games.scm:2565
 msgid "Music set for OpenTTD"
-msgstr "música por:"
+msgstr "Conjunto de música para OpenTTD"
 
-#: gnu/packages/games.scm:2603
+#: gnu/packages/games.scm:2566
 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:2681
+#: gnu/packages/games.scm:2635
+msgid "Title sequences for OpenRCT2"
+msgstr "Secuencias de título para OpenRCT2"
+
+#: gnu/packages/games.scm:2637
+msgid "openrct2-title-sequences is a set of title sequences for OpenRCT2."
+msgstr ""
+
+#: gnu/packages/games.scm:2675
+msgid "Objects for OpenRCT2"
+msgstr "Objetos para OpenRCT2"
+
+#: gnu/packages/games.scm:2677
+msgid "openrct2-objects is a set of objects for OpenRCT2."
+msgstr ""
+
+#: gnu/packages/games.scm:2742
 msgid "Free software re-implementation of RollerCoaster Tycoon 2"
 msgstr ""
 
-#: gnu/packages/games.scm:2682
+#: gnu/packages/games.scm:2743
 msgid ""
 "OpenRCT2 is a free software re-implementation of\n"
 "RollerCoaster Tycoon 2 (RCT2).  The gameplay revolves around building and\n"
@@ -3627,55 +3968,45 @@ msgid ""
 "images, etc.)"
 msgstr ""
 
-#: gnu/packages/games.scm:2724
-#, fuzzy
+#: gnu/packages/games.scm:2785
 msgid "Pinball simulator"
-msgstr "mtasím -- MTA simulador para mailfromd"
+msgstr "Simulador Pinball"
 
-#: gnu/packages/games.scm:2725
+#: gnu/packages/games.scm:2786
 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:2746
+#: gnu/packages/games.scm:2809
 msgid "Board game inspired by The Settlers of Catan"
 msgstr ""
 
-#: gnu/packages/games.scm:2747
+#: gnu/packages/games.scm:2810
 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 ""
+"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:2781
-#, fuzzy
-msgid "Nintendo DS emulator"
-msgstr "Depurar TPM emulado"
-
-#: gnu/packages/games.scm:2783
-msgid "DeSmuME is an emulator for the Nintendo DS handheld gaming console."
-msgstr ""
-
-#: gnu/packages/games.scm:2821 gnu/packages/gnome.scm:2617
-#, fuzzy
+#: gnu/packages/games.scm:2851 gnu/packages/gnome.scm:2746
 msgid "Logic puzzle game"
-msgstr "Un puzzle de cubo mágico de tres dimensiones"
+msgstr "Juego lógico de puzzle"
 
-#: gnu/packages/games.scm:2822
+#: gnu/packages/games.scm:2852
 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:2851
-#, fuzzy
+#: gnu/packages/games.scm:2880
 msgid "MUD and telnet client"
-msgstr "Cliente MUD"
+msgstr "Cliente MUD y telnet"
 
-#: gnu/packages/games.scm:2853
+#: gnu/packages/games.scm:2882
 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"
@@ -3683,11 +4014,11 @@ msgid ""
 "http://lavachat.symlynx.com/unix/"
 msgstr ""
 
-#: gnu/packages/games.scm:3023
+#: gnu/packages/games.scm:3057
 msgid "Arena shooter derived from the Cube 2 engine"
 msgstr ""
 
-#: gnu/packages/games.scm:3025
+#: gnu/packages/games.scm:3059
 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"
@@ -3695,46 +4026,21 @@ msgid ""
 msgstr ""
 
 #: gnu/packages/games.scm:3119
-msgid "Nintendo multi-system emulator"
-msgstr ""
-
-#: gnu/packages/games.scm:3121
-msgid ""
-"higan (formerly bsnes) is an emulator for multiple Nintendo video game\n"
-"consoles, including the Nintendo Entertainment System (NES/Famicom), Super\n"
-"Nintendo Entertainment System (SNES/Super Famicom), Game Boy, Game Boy\n"
-"Color (GBC), and Game Boy Advance (GBA).  It also supports the subsystems\n"
-"Super Game Boy, BS-X Satellaview, and Sufami Turbo."
-msgstr ""
-
-#: gnu/packages/games.scm:3179
-msgid "Game Boy Advance emulator"
-msgstr ""
-
-#: gnu/packages/games.scm:3181
-msgid ""
-"mGBA is an emulator for running Game Boy Advance games.  It aims to be\n"
-"faster and more accurate than many existing Game Boy Advance emulators, as\n"
-"well as adding features that other emulators lack.  It also supports Game Boy\n"
-"and Game Boy Color games."
-msgstr ""
-
-#: gnu/packages/games.scm:3237
 msgid "Text adventure game"
 msgstr "Juego textual de aventura"
 
-#: gnu/packages/games.scm:3239
+#: gnu/packages/games.scm:3121
 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:3281
+#: gnu/packages/games.scm:3163
 msgid "Old-school earthworm action game"
 msgstr ""
 
-#: gnu/packages/games.scm:3283
+#: gnu/packages/games.scm:3165
 msgid ""
 "lierolibre is an earthworm action game where you fight another player\n"
 "(or the computer) underground using a wide array of weapons.\n"
@@ -3759,11 +4065,11 @@ msgid ""
 "fullscreen, use F5 or Alt+Enter."
 msgstr ""
 
-#: gnu/packages/games.scm:3358
+#: gnu/packages/games.scm:3239
 msgid "3D Real-time strategy and real-time tactics game"
-msgstr ""
+msgstr "Juego táctico y estratégico en tiempo real en 3D"
 
-#: gnu/packages/games.scm:3360
+#: gnu/packages/games.scm:3241
 msgid ""
 "Warzone 2100 offers campaign, multi-player, and single-player skirmish\n"
 "modes. An extensive tech tree with over 400 different technologies, combined\n"
@@ -3771,11 +4077,11 @@ msgid ""
 "tactics."
 msgstr ""
 
-#: gnu/packages/games.scm:3393
+#: gnu/packages/games.scm:3274
 msgid "2D scrolling shooter game"
-msgstr ""
+msgstr "Juego disparador multiplataforma 2D"
 
-#: gnu/packages/games.scm:3395
+#: gnu/packages/games.scm:3276
 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"
@@ -3783,12 +4089,17 @@ msgid ""
 "way, you will encounter new foes, make new allies, and assist local rebels\n"
 "in strikes against the evil corporation."
 msgstr ""
+"En el año 2579, la compañía de armamento intergaláctico, WEAPCO, tiene\n"
+"dominada la galaxia.  Guide Chris Bainfield y  su amigo Sid Wilson en su lucha\n"
+"para liberar la galaxia desde las .. de WEAPCO.  A lo largo de ese camino,\n"
+"necesitara colaborar nuevos enemigos, crear nuevas alianzas, y asistir\n"
+"rebeliones locales en intentos dente la corporación maligna."
 
-#: gnu/packages/games.scm:3426
+#: gnu/packages/games.scm:3310
 msgid "Fast-paced, arcade-style, top-scrolling space shooter"
 msgstr ""
 
-#: gnu/packages/games.scm:3428
+#: gnu/packages/games.scm:3312
 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"
@@ -3796,12 +4107,11 @@ msgid ""
 "safety of the Chromium vessel."
 msgstr ""
 
-#: gnu/packages/games.scm:3503
-#, fuzzy
+#: gnu/packages/games.scm:3394
 msgid "Drawing software for children"
-msgstr "Biblioteca de dibujo 2D"
+msgstr "Software de dibujo para niños"
 
-#: gnu/packages/games.scm:3505
+#: gnu/packages/games.scm:3396
 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"
@@ -3810,55 +4120,52 @@ msgid ""
 "your child be creative."
 msgstr ""
 
-#: gnu/packages/games.scm:3543
+#: gnu/packages/games.scm:3435
 msgid "Stamp images for Tux Paint"
-msgstr ""
+msgstr "Imágenes selladas para Pintor Tux"
 
-#: gnu/packages/games.scm:3545
+#: gnu/packages/games.scm:3437
 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:3592
-#, fuzzy
+#: gnu/packages/games.scm:3484
 msgid "Configure Tux Paint"
-msgstr "Configurar"
+msgstr "Configurar Pintor Tux"
 
-#: gnu/packages/games.scm:3594
+#: gnu/packages/games.scm:3486
 msgid "Tux Paint Config is a graphical configuration editor for Tux Paint."
 msgstr ""
 
-#: gnu/packages/games.scm:3626
-#, fuzzy
+#: gnu/packages/games.scm:3518
 msgid "2D platformer game"
-msgstr "_Juego"
+msgstr "Juego de plataforma 2D"
 
-#: gnu/packages/games.scm:3627
+#: gnu/packages/games.scm:3519
 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."
 msgstr ""
 
-#: gnu/packages/games.scm:3661
+#: gnu/packages/games.scm:3554
 msgid "MUD client"
 msgstr "Cliente MUD"
 
-#: gnu/packages/games.scm:3663
+#: gnu/packages/games.scm:3556
 msgid ""
-"TinTin++ is a MUD client which supports MCCP (Mud Client Compression Protocol),\n"
-"MMCP (Mud Master Chat Protocol), xterm 256 colors, most TELNET options used by MUDs,\n"
-"as well as those required to login via telnet on Linux / Mac OS X servers, and an\n"
-"auto mapper with a VT100 map display."
+"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:3700
-#, fuzzy
+#: gnu/packages/games.scm:3600
 msgid "Programming game"
-msgstr "error de programación"
+msgstr "Programación de juegos"
 
-#: gnu/packages/games.scm:3701
+#: gnu/packages/games.scm:3601
 msgid ""
 "Learn programming, playing with ants and spider webs ;-)\n"
 "Your robot ant can be programmed in many languages: OCaml, Python, C, C++,\n"
@@ -3866,34 +4173,34 @@ msgid ""
 "programmers may also add their own favorite language."
 msgstr ""
 
-#: gnu/packages/games.scm:3745
+#: gnu/packages/games.scm:3646
 msgid "Keyboard mashing and doodling game for babies"
 msgstr ""
 
-#: gnu/packages/games.scm:3746
+#: gnu/packages/games.scm:3647
 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:3789
+#: gnu/packages/games.scm:3711
 msgid "Arcade-style fire fighting game"
-msgstr ""
+msgstr "Juego de lucha a tiros estilo arcade"
 
-#: gnu/packages/games.scm:3791
+#: gnu/packages/games.scm:3713
 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"
+"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:3898
+#: gnu/packages/games.scm:3822
 msgid "Non-euclidean graphical rogue-like game"
 msgstr ""
 
-#: gnu/packages/games.scm:3900
+#: gnu/packages/games.scm:3824
 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"
@@ -3907,21 +4214,21 @@ msgid ""
 "symbols, it still needs graphics to render the non-euclidean world."
 msgstr ""
 
-#: gnu/packages/games.scm:3943
+#: gnu/packages/games.scm:3867
 msgid "Shooter with space station destruction"
-msgstr ""
+msgstr "Disparos con destrucción de estaciones del espacio"
 
-#: gnu/packages/games.scm:3945
+#: gnu/packages/games.scm:3869
 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:3977
+#: gnu/packages/games.scm:3901
 msgid "Turn based empire building strategy game"
-msgstr ""
+msgstr "Juego estratégico basado en construcción de imperio basado en turnos"
 
-#: gnu/packages/games.scm:3978
+#: gnu/packages/games.scm:3902
 msgid ""
 "Freeciv is a turn based empire building strategy game\n"
 "inspired by the history of human civilization.  The game commences in\n"
@@ -3929,11 +4236,11 @@ msgid ""
 "to the Space Age."
 msgstr ""
 
-#: gnu/packages/games.scm:4009
+#: gnu/packages/games.scm:3933
 msgid "Recreation of data decryption effect in \"Sneakers\""
 msgstr ""
 
-#: gnu/packages/games.scm:4011
+#: gnu/packages/games.scm:3935
 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"
@@ -3944,42 +4251,41 @@ msgid ""
 "starting a decryption sequence to reveal the original plaintext characters."
 msgstr ""
 
-#: gnu/packages/games.scm:4038
-#, fuzzy
+#: gnu/packages/games.scm:3962
 msgid "Data files for MegaGlest"
-msgstr "NT_PROCSTAT_FILES (datos ficheros)"
+msgstr "Datos de fichero para MegaGlest"
 
-#: gnu/packages/games.scm:4039
+#: gnu/packages/games.scm:3963
 msgid "This package contains the data files required for MegaGlest."
 msgstr ""
 
-#: gnu/packages/games.scm:4092
+#: gnu/packages/games.scm:4016
 msgid "3D real-time strategy (RTS) game"
-msgstr ""
+msgstr "Juego estratégico 3D en tiempo real (RTS)"
 
-#: gnu/packages/games.scm:4093
+#: gnu/packages/games.scm:4017
 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:4143
+#: gnu/packages/games.scm:4068
 msgid "Side-scrolling physics platformer with a ball of tar"
 msgstr ""
 
-#: gnu/packages/games.scm:4144
+#: gnu/packages/games.scm:4069
 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:4179
+#: gnu/packages/games.scm:4105
 msgid "Classic overhead run-and-gun game"
 msgstr ""
 
-#: gnu/packages/games.scm:4180
+#: gnu/packages/games.scm:4106
 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"
@@ -3987,34 +4293,33 @@ msgid ""
 "over 100 user-created campaigns."
 msgstr ""
 
-#: gnu/packages/games.scm:4280
-#, fuzzy
+#: gnu/packages/games.scm:4206
 msgid "3D puzzle game"
-msgstr "Un puzzle de cubo mágico de tres dimensiones"
+msgstr "Juego de puzzle 3D"
 
-#: gnu/packages/games.scm:4281
+#: gnu/packages/games.scm:4207
 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:4371
+#: gnu/packages/games.scm:4341
 msgid "2D retro multiplayer shooter game"
-msgstr ""
+msgstr "Juego disparador multiplataforma retro de 2D"
 
-#: gnu/packages/games.scm:4372
+#: gnu/packages/games.scm:4342
 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:4425
+#: gnu/packages/games.scm:4395
 msgid "Puzzle game with a dexterity component"
-msgstr ""
+msgstr "Juego de puzzle con un componente de destreza"
 
-#: gnu/packages/games.scm:4426
+#: gnu/packages/games.scm:4396
 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"
@@ -4026,12 +4331,25 @@ msgid ""
 "with the mouse isn’t always trivial."
 msgstr ""
 
-#: gnu/packages/games.scm:4497
-#, fuzzy
+#: gnu/packages/games.scm:4429
+msgid "Abstract puzzle game"
+msgstr "Juego de puzzles abstractos"
+
+#: gnu/packages/games.scm:4430
+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:4499
 msgid "Puzzle game"
-msgstr "_Juego"
+msgstr "Juego de Puzzle"
 
-#: gnu/packages/games.scm:4498
+#: gnu/packages/games.scm:4500
 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"
@@ -4040,26 +4358,27 @@ msgid ""
 "fish.  The whole game is accompanied by quiet, comforting music."
 msgstr ""
 
-#: gnu/packages/games.scm:4562
+#: gnu/packages/games.scm:4576
+#, fuzzy
 msgid "Roguelike dungeon crawler game"
-msgstr ""
+msgstr "Explorador de mazmorra similar a Dungeon Rogue"
 
-#: gnu/packages/games.scm:4563
+#: gnu/packages/games.scm:4577
 msgid ""
-"Dungeon Crawl Stone Soup is a roguelike adventure through\n"
-"dungeons filled with dangerous monsters in a quest to find the mystifyingly\n"
-"fabulous Orb of Zot."
+"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:4609
+#: gnu/packages/games.scm:4626
 msgid "Graphical roguelike dungeon crawler game"
 msgstr ""
 
-#: gnu/packages/games.scm:4639
+#: gnu/packages/games.scm:4659
 msgid "Cross-platform third-person action game"
 msgstr ""
 
-#: gnu/packages/games.scm:4640
+#: gnu/packages/games.scm:4660
 msgid ""
 "Lugaru is a third-person action game.  The main character,\n"
 "Turner, is an anthropomorphic rebel bunny rabbit with impressive combat skills.\n"
@@ -4069,20 +4388,19 @@ msgid ""
 "fight against their plot and save his fellow rabbits from slavery."
 msgstr ""
 
-#: gnu/packages/games.scm:4691
-#, fuzzy
+#: gnu/packages/games.scm:4710
 msgid "Data files for 0ad"
-msgstr "Indexado y búsqueda de meta-datos de ficheros."
+msgstr "Datos de fichero para 0ad"
 
-#: gnu/packages/games.scm:4692
+#: gnu/packages/games.scm:4711
 msgid "0ad-data provides the data files required by the game 0ad."
-msgstr ""
+msgstr "0ad-data proporciona el fichero de datos solicitado por el juego 0ad."
 
-#: gnu/packages/games.scm:4814
+#: gnu/packages/games.scm:4829
 msgid "3D real-time strategy game of ancient warfare"
-msgstr ""
+msgstr "Juego estratégico en tiempo real 3D de guerras antiguas"
 
-#: gnu/packages/games.scm:4815
+#: gnu/packages/games.scm:4830
 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"
@@ -4091,13 +4409,18 @@ msgid ""
 "\n"
 "0ad needs a window manager that supports 'Extended Window Manager Hints'."
 msgstr ""
+"0 A.D. es un juego estratégico en tiempo real (RTS) de\n"
+"guerras históricas.  Es una guerra histórica-economica basada que este juego\n"
+"permite jugarpara revivir o rescribir la historia de veintes civilizaciones antiguas,\n"
+"cada una detallada en su punto de crecimiento económico y militar progresado.\n"
+"\n"
+"0ad requiere un gestor de ventanas que sea compatible con 'Extended Window Manager Hints'."
 
-#: gnu/packages/games.scm:4891
-#, fuzzy
+#: gnu/packages/games.scm:4905
 msgid "Colossal Cave Adventure"
-msgstr "Esta cueva apesta, salgamos..."
+msgstr "Colossal Cave Adventure"
 
-#: gnu/packages/games.scm:4892
+#: gnu/packages/games.scm:4906
 msgid ""
 "The original Colossal Cave Adventure from 1976 was the\n"
 "origin of all text adventures, dungeon-crawl (computer) games, and\n"
@@ -4106,11 +4429,11 @@ msgid ""
 "\"adventure 2.5\" and \"430-point adventure\"."
 msgstr ""
 
-#: gnu/packages/games.scm:4903
+#: gnu/packages/games.scm:4917
 msgid "Single-player, RPG roguelike game set in the world of Eyal"
 msgstr ""
 
-#: gnu/packages/games.scm:5008
+#: gnu/packages/games.scm:5027
 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"
@@ -4121,42 +4444,469 @@ msgid ""
 "Tales of Maj’Eyal offers engaging roguelike gameplay for the 21st century."
 msgstr ""
 
-#: gnu/packages/gcc.scm:336
+#: gnu/packages/games.scm:5076
+msgid "First person shooter engine for Quake 1"
+msgstr ""
+
+#: gnu/packages/games.scm:5077
+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
+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
+msgid "First person shooter engine based on quake2"
+msgstr ""
+
+#: gnu/packages/games.scm:5179
+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:5207
+msgid "Sudoku for your terminal"
+msgstr ""
+
+#: gnu/packages/games.scm:5208
+msgid "Nudoku is a ncurses-based Sudoku game for your terminal."
+msgstr ""
+
+#: gnu/packages/games.scm:5254
+#, fuzzy
+#| msgid "Logic puzzle game"
+msgid "Realistic physics puzzle game"
+msgstr "Juego lógico de puzzle"
+
+#: gnu/packages/games.scm:5255
+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"
+msgid "Game of lonely space adventure"
+msgstr "Colossal Cave Adventure"
+
+#: gnu/packages/games.scm:5308
+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:5335
+msgid "Hacking contribution graphs in git"
+msgstr ""
+
+#: gnu/packages/games.scm:5337
+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
+msgid "Educational programming strategy game"
+msgstr ""
+
+#: gnu/packages/games.scm:5411
+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:5494
+msgid "Modern Doom 2 source port"
+msgstr ""
+
+#: gnu/packages/games.scm:5495
+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:5531
+msgid "Multiplayer Doom port"
+msgstr "Adaptación multijugador de Doom"
+
+#: gnu/packages/games.scm:5532
+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
+msgid "The Fortune Cookie program from BSD games"
+msgstr ""
+
+#: gnu/packages/games.scm:5599
+msgid ""
+"Fortune is a command-line utility which displays a random\n"
+"quotation from a collection of quotes."
+msgstr ""
+
+#: gnu/packages/games.scm:5639
+msgid "Data files for Xonotic"
+msgstr "Ficheros de datos para Xonotic"
+
+#: gnu/packages/games.scm:5641
+#, fuzzy
+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
+msgid "Fast-paced first-person shooter game"
+msgstr "Juego de disparos en primera persona de acción rápida"
+
+#: gnu/packages/games.scm:5837
+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:5887
+msgid "Portable Z-machine interpreter (ncurses version) for text adventure games"
+msgstr ""
+
+#: gnu/packages/games.scm:5888
+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:5929
+msgid "Portable Z-machine dumb interpreter for text adventure games"
+msgstr ""
+
+#: gnu/packages/games.scm:5930
+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:5993
+msgid "Portable Z-machine interpreter (SDL port) for text adventure games"
+msgstr ""
+
+#: gnu/packages/games.scm:5994
+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:6025
+msgid "Game controller library"
+msgstr "Biblioteca de controladores para juegos"
+
+#: gnu/packages/games.scm:6026
+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:6061
+msgid "GNOME version of Tetris"
+msgstr "Versión de Tetris de GNOME"
+
+#: gnu/packages/games.scm:6062
+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:6116
+msgid "2D space trading and combat game"
+msgstr ""
+
+#: gnu/packages/games.scm:6117
+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:6266
+msgid "Advanced rhythm game designed for both home and arcade use"
+msgstr ""
+
+#: gnu/packages/games.scm:6267
+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:6351
+msgid "Multiplayer tank battle game"
+msgstr ""
+
+#: gnu/packages/games.scm:6352
+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:6385
+msgid "Simple 2D shooting strategy game set in space"
+msgstr ""
+
+#: gnu/packages/games.scm:6386
+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:6432
+msgid "4D Tetris"
+msgstr ""
+
+#: gnu/packages/games.scm:6433
+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
+msgid "Port of Arx Fatalis, a first-person role-playing game"
+msgstr ""
+
+#: gnu/packages/games.scm:6510
+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."
+msgstr ""
+
+# FUZZY
+#: gnu/packages/games.scm:6556
+msgid "2d action platformer game"
+msgstr "Juego de acción de plataformas 2d"
+
+#: gnu/packages/games.scm:6557
+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:6645
+msgid "Multiplayer action game where you control small and nimble humanoids"
+msgstr ""
+
+#: gnu/packages/games.scm:6646
+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"
+"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
+msgid "Action Roleplaying Engine"
+msgstr ""
+
+#: gnu/packages/games.scm:6678
+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
+msgid "Fantasy action RPG using the FLARE engine"
+msgstr ""
+
+#: gnu/packages/games.scm:6743
+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
+#, fuzzy
+msgid "Action-adventure dungeon crawl game"
+msgstr "Explorador de mazmorra similar a Dungeon Rogue"
+
+#: gnu/packages/games.scm:6795
+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:6858
+msgid "Guide a marble across fractal landscapes"
+msgstr ""
+
+#: gnu/packages/games.scm:6859
+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:6900
+msgid "Libraries for 3D simulations and games"
+msgstr ""
+
+#: gnu/packages/games.scm:6901
+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:6993
+msgid "Flight simulator"
+msgstr "Simulador de vuelo"
+
+# FUZZY
+# TODO: Revisar traducción.
+#: gnu/packages/games.scm:6994
+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 ""
+"La meta del proyecto FlightGear es crear un sofisticado marco de\n"
+"simulación de vuelo para el uso en entornos de investigación o\n"
+"académicos, entrenamiento para el pilotaje, como herramienta\n"
+"industrial, para gente que quiere perseguir su interesante idea de\n"
+"simulacion de vuelo por su cuenta, y, por ultimo pero no menos\n"
+"importante, como un simulador de vuelo de escritorio divertido,\n"
+"realista y desafiante."
+
+#: gnu/packages/gcc.scm:348
 msgid "GNU Compiler Collection"
 msgstr "Colección de compiladores GNU"
 
-#: gnu/packages/gcc.scm:338
+# FUZZY
+#: gnu/packages/gcc.scm:350
 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 ""
+"GCC es la colección de compiladores de GNU. Proporciona compiladores\n"
+"para varios lenguajes, incluyendo C, C++, Objective-C, Fortran, Java,\n"
+"Ada y Go. También incluye bibliotecas de soporte en tiempo de\n"
+"ejecuciñon para dichos lenguajes."
 
-#: gnu/packages/gcc.scm:432
+#: gnu/packages/gcc.scm:504
 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 ""
+"GCC es la colección de compiladores de GNU. Proporciona compiladores\n"
+"para varios lenguajes, incluyendo C, C++, Objective-C, Fortran, Ada y\n"
+"Go. También incluye bibliotecas de soporte en tiempo de ejecuciñon\n"
+"para dichos lenguajes."
 
-#: gnu/packages/gcc.scm:462
+#: gnu/packages/gcc.scm:549
 msgid "GNU C++ standard library"
-msgstr "Biblioteca común C++ de GNU"
+msgstr "Biblioteca estándar de C++ de GNU"
 
-#: gnu/packages/gcc.scm:497
+#: gnu/packages/gcc.scm:584
 msgid "Collection of subroutines used by various GNU programs"
-msgstr ""
+msgstr "Collección de subrutinas usadas por varios programas GNU"
 
-#: gnu/packages/gcc.scm:682
-#, fuzzy
+#: gnu/packages/gcc.scm:791
 msgid "GNU libstdc++ documentation"
-msgstr "Gestor Documental"
+msgstr "Documentación de GNU libstdc++"
 
-#: gnu/packages/gcc.scm:750
+#: gnu/packages/gcc.scm:861
 msgid "Manipulating sets and relations of integer points bounded by linear constraints"
 msgstr ""
 
-#: gnu/packages/gcc.scm:753
+#: gnu/packages/gcc.scm:864
 msgid ""
 "isl is a library for manipulating sets and relations of integer points\n"
 "bounded by linear constraints.  Supported operations on sets include\n"
@@ -4168,11 +4918,11 @@ msgid ""
 "dependence analysis and bounds on piecewise step-polynomials."
 msgstr ""
 
-#: gnu/packages/gcc.scm:803
+#: gnu/packages/gcc.scm:928
 msgid "Library to generate code for scanning Z-polyhedra"
 msgstr ""
 
-#: gnu/packages/gcc.scm:805
+#: gnu/packages/gcc.scm:930
 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"
@@ -4187,66 +4937,76 @@ msgid ""
 "effective code."
 msgstr ""
 
-#: gnu/packages/gcc.scm:860
+#: gnu/packages/gcc.scm:985
 msgid "Reference manual for the C programming language"
-msgstr ""
+msgstr "Manual de referencia para el lenguaje de programación C"
 
-#: gnu/packages/gcc.scm:862
+#: gnu/packages/gcc.scm:987
 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 ""
+"Este es el manual de referencia para el lenguaje de programación C,\n"
+"como lo implementa el compilador de C de GNU (gcc). Como referencia,\n"
+"no es su propósito servir de tutorial para el lenguaje. En vez de eso,\n"
+"enumera todas las construcciones del lenguaje. Las funciones de la\n"
+"biblioteca no están incluidas."
 
-#: gnu/packages/gettext.scm:98
+#: gnu/packages/gettext.scm:109
 msgid "Tools and documentation for translation (used to build other packages)"
-msgstr ""
+msgstr "Herramientas y documentación para traducciones (usadas para construir otros paquetes)"
 
-#: gnu/packages/gettext.scm:100
+#: gnu/packages/gettext.scm:111
 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, and a runtime library to load\n"
 "translated messages from the catalogs.  Nearly all GNU packages use Gettext."
 msgstr ""
+"GNU Gettext es un paquete que proporciona un marco de trabajo para la\n"
+"traducción de salida textual de programas en múltiples\n"
+"lenguas. Proporciona a las traductoras los medios para crear catálogos\n"
+"de mensajes, y una biblioteca de tiempo de ejecución para cargar los\n"
+"mensajes traducidos desde los catálogos. Prácticamente todos los\n"
+"paquetes GNU usan Gettext."
 
-#: gnu/packages/gettext.scm:130
-#, fuzzy
+#: gnu/packages/gettext.scm:141
 msgid "Tools and documentation for translation"
-msgstr "Herramientas documentales Yelp"
+msgstr "Herramientas y documentación para traducción"
 
-#: gnu/packages/gettext.scm:195
+#: gnu/packages/gettext.scm:206
 msgid "Scripts to ease maintenance of translations"
-msgstr ""
+msgstr "Guiones para facilitar el mantenimiento de traducciones"
 
-#: gnu/packages/gettext.scm:197
+#: gnu/packages/gettext.scm:208
 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:60
+#: gnu/packages/gimp.scm:69
 msgid "Image pixel format conversion library"
 msgstr ""
 
-#: gnu/packages/gimp.scm:62
+#: gnu/packages/gimp.scm:71
 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"
-"pixel formats that have with different bitdepths and other data\n"
-"representations, color models and component permutations.\n"
+"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 the framework to add new color models and data types."
+"provided, as well as a framework to add new color models and data types."
 msgstr ""
 
-#: gnu/packages/gimp.scm:119
+#: gnu/packages/gimp.scm:110
 msgid "Graph based image processing framework"
 msgstr ""
 
-#: gnu/packages/gimp.scm:120
+#: gnu/packages/gimp.scm:111
 msgid ""
 "GEGL (Generic Graphics Library) provides infrastructure to\n"
 "do demand based cached non destructive image editing on larger than RAM\n"
@@ -4254,9 +5014,8 @@ msgid ""
 msgstr ""
 
 #: gnu/packages/gimp.scm:180
-#, fuzzy
 msgid "GNU Image Manipulation Program"
-msgstr "Programa de descarga de imágenes"
+msgstr "Programa de Manipulación de Imágenes GNU GIMP"
 
 #: gnu/packages/gimp.scm:182
 msgid ""
@@ -4266,11 +5025,11 @@ msgid ""
 "that is extensible via a plugin system."
 msgstr ""
 
-#: gnu/packages/gimp.scm:230
+#: gnu/packages/gimp.scm:242
 msgid "GIMP plug-in to edit image in fourier space"
-msgstr ""
+msgstr "Complemento GIMP para editar imagen en espacio Fourier"
 
-#: gnu/packages/gimp.scm:232
+#: gnu/packages/gimp.scm:244
 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"
@@ -4278,34 +5037,68 @@ msgid ""
 "inverse fourier transform."
 msgstr ""
 
-#: gnu/packages/gnome.scm:200
-msgid "CD/DVD burning tool for Gnome"
+#: gnu/packages/gimp.scm:272
+msgid "Artistic brushes library"
+msgstr ""
+
+#: gnu/packages/gimp.scm:273
+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
+msgid "Default brushes for MyPaint"
+msgstr ""
+
+#: gnu/packages/gimp.scm:305
+msgid ""
+"This package provides the default set of brushes for\n"
+"MyPaint."
+msgstr ""
+
+#: gnu/packages/gimp.scm:366
+msgid "GIMP plugins for texture synthesis"
 msgstr ""
 
-#: gnu/packages/gnome.scm:201
+#: gnu/packages/gimp.scm:368
+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:221
+msgid "CD/DVD burning tool for Gnome"
+msgstr "Herramienta de quemado CD/DVD para GNOME"
+
+#: gnu/packages/gnome.scm:222
 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:276
+#: gnu/packages/gnome.scm:297
 msgid "Simple backup tool, for regular encrypted backups"
-msgstr ""
+msgstr "Herramienta simple de respaldo, para respaldo cifrado regular"
 
-#: gnu/packages/gnome.scm:278
+#: gnu/packages/gnome.scm:299
 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 ""
+"Déjà Dup es una herramienta simple de respaldo, para respaldos regulares\n"
+"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:325
-#, fuzzy
+#: gnu/packages/gnome.scm:346
 msgid "Diagram creation for GNOME"
-msgstr "(Kit de herramientas de accesibilidad GNOME"
+msgstr "Creación de diagrama para GNOME"
 
-#: gnu/packages/gnome.scm:326
+#: gnu/packages/gnome.scm:347
 msgid ""
 "Dia can be used to draw different types of diagrams, and\n"
 "includes support for UML static structure diagrams (class diagrams), entity\n"
@@ -4313,45 +5106,50 @@ msgid ""
 "formats like PNG, SVG, PDF and EPS."
 msgstr ""
 
-#: gnu/packages/gnome.scm:382
+#: gnu/packages/gnome.scm:397
 msgid "Library for accessing online service APIs"
-msgstr ""
+msgstr "Biblioteca para acceso por conexión a varias API de servicio"
 
-#: gnu/packages/gnome.scm:384
+#: gnu/packages/gnome.scm:399
 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:414
+#: gnu/packages/gnome.scm:432
 msgid "GObject-based library for handling and rendering XPS documents"
 msgstr ""
 
-#: gnu/packages/gnome.scm:416
+#: gnu/packages/gnome.scm:434
 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:436
+#: gnu/packages/gnome.scm:454
 msgid "Bootstrap GNOME modules built from Git"
-msgstr ""
+msgstr "Módulos GNOME de arranque compilados desde Git"
 
-#: gnu/packages/gnome.scm:437
+#: gnu/packages/gnome.scm:455
 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 ""
+"gnome-common contiene varios ficheros requeridos para bootstrap\n"
+"módulos GNOME compilados desde Git.  Contiene un guión común\n"
+"\"autogen.sh\" que puede ser utilizado para configurar un directorio de\n"
+"fuente comprobado desde Git y empleados algunos normalmente en\n"
+"macros."
 
-#: gnu/packages/gnome.scm:488
+#: gnu/packages/gnome.scm:506
 msgid "Libgnome-desktop, gnome-about, and desktop-wide documents"
 msgstr ""
 
-#: gnu/packages/gnome.scm:490
+#: gnu/packages/gnome.scm:508
 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"
@@ -4361,51 +5159,49 @@ msgid ""
 "The gnome-about program helps find which version of GNOME is installed."
 msgstr ""
 
-#: gnu/packages/gnome.scm:523
+#: gnu/packages/gnome.scm:541
 msgid "Documentation utilities for the Gnome project"
-msgstr ""
+msgstr "Utilidades de documentación para el proyecto GNOME"
 
-#: gnu/packages/gnome.scm:525
+#: gnu/packages/gnome.scm:543
 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:564
-#, fuzzy
+#: gnu/packages/gnome.scm:582
 msgid "Disk management utility for GNOME"
-msgstr "Gestión de cuota del disco"
+msgstr "Utilidad de gestión de disco para GNOME"
 
-#: gnu/packages/gnome.scm:565
-#, fuzzy
+#: gnu/packages/gnome.scm:583
 msgid "Disk management utility for GNOME."
-msgstr "Gestión de cuota del disco"
+msgstr "Utilidad de gestión de disco para GNOME."
 
-#: gnu/packages/gnome.scm:608
+#: gnu/packages/gnome.scm:626
 msgid "Libraries for displaying certificates and accessing key stores"
 msgstr ""
 
-#: gnu/packages/gnome.scm:610
+#: gnu/packages/gnome.scm:628
 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:639
+#: gnu/packages/gnome.scm:657
 msgid "Accessing passwords from the GNOME keyring"
-msgstr ""
+msgstr "Accediendo contraseña desde el anillo GNOME"
 
-#: gnu/packages/gnome.scm:641
+#: gnu/packages/gnome.scm:659
 msgid "Client library to access passwords from the GNOME keyring."
 msgstr ""
 
-#: gnu/packages/gnome.scm:703
+#: gnu/packages/gnome.scm:729
 msgid "Daemon to store passwords and encryption keys"
 msgstr ""
 
-#: gnu/packages/gnome.scm:705
+#: gnu/packages/gnome.scm:731
 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"
@@ -4416,11 +5212,11 @@ msgid ""
 "forgotten when the session ends."
 msgstr ""
 
-#: gnu/packages/gnome.scm:774
+#: gnu/packages/gnome.scm:805
 msgid "GNOME's document viewer"
 msgstr "Visor documental de GNOME"
 
-#: gnu/packages/gnome.scm:776
+#: gnu/packages/gnome.scm:807
 msgid ""
 "Evince is a document viewer for multiple document formats.  It\n"
 "currently supports PDF, PostScript, DjVu, TIFF and DVI.  The goal\n"
@@ -4428,51 +5224,50 @@ msgid ""
 "on the GNOME Desktop with a single simple application."
 msgstr ""
 
-#: gnu/packages/gnome.scm:805
+#: gnu/packages/gnome.scm:836
 msgid "GNOME settings for various desktop components"
 msgstr ""
 
-#: gnu/packages/gnome.scm:807
+#: gnu/packages/gnome.scm:838
 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:841
+#: gnu/packages/gnome.scm:872
 msgid "Utility to implement the Freedesktop Icon Naming Specification"
 msgstr ""
 
-#: gnu/packages/gnome.scm:843
+#: gnu/packages/gnome.scm:874
 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:874
-#, fuzzy
+#: gnu/packages/gnome.scm:905
 msgid "GNOME icon theme"
-msgstr "Tema icónico Tango"
+msgstr "Tema icónico GNOME"
 
-#: gnu/packages/gnome.scm:876
+#: gnu/packages/gnome.scm:907
 msgid "Icons for the GNOME desktop."
 msgstr "Iconos para el escritorio GNOME."
 
-#: gnu/packages/gnome.scm:913
+#: gnu/packages/gnome.scm:944
 msgid "Tango icon theme"
 msgstr "Tema icónico Tango"
 
-#: gnu/packages/gnome.scm:914
+#: gnu/packages/gnome.scm:945
 msgid ""
 "This is an icon theme that follows the Tango visual\n"
 "guidelines."
 msgstr ""
 
-#: gnu/packages/gnome.scm:940
+#: gnu/packages/gnome.scm:971
 msgid "Database of common MIME types"
-msgstr ""
+msgstr "BD de tipo MIME común"
 
-#: gnu/packages/gnome.scm:942
+#: gnu/packages/gnome.scm:973
 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"
@@ -4481,22 +5276,32 @@ msgid ""
 "database is translated at Transifex."
 msgstr ""
 
-#: gnu/packages/gnome.scm:966
+#: gnu/packages/gnome.scm:1055
 #, fuzzy
+#| msgid "Yelp documentation tools"
+msgid "CUPS administration tool"
+msgstr "Herramientas documentales Yelp"
+
+#: gnu/packages/gnome.scm:1057
+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:1079
 msgid "Freedesktop icon theme"
-msgstr "Tema icónico Tango"
+msgstr "Tema icónico Freedesktop"
 
-#: gnu/packages/gnome.scm:968
-#, fuzzy
+#: gnu/packages/gnome.scm:1081
 msgid "Freedesktop icon theme."
-msgstr "Tema icónico Tango"
+msgstr "Tema icónico Freedesktop."
 
-#: gnu/packages/gnome.scm:996
-#, fuzzy
+#: gnu/packages/gnome.scm:1109
 msgid "GNOME desktop notification library"
-msgstr "Iconos para el escritorio GNOME."
+msgstr "Biblioteca de notificación de escritorio GNOME"
 
-#: gnu/packages/gnome.scm:998
+#: gnu/packages/gnome.scm:1111
 msgid ""
 "Libnotify is a library that sends desktop notifications to a\n"
 "notification daemon, as defined in the Desktop Notifications spec.  These\n"
@@ -4504,12 +5309,11 @@ msgid ""
 "some form of information without getting in the user's way."
 msgstr ""
 
-#: gnu/packages/gnome.scm:1032
-#, fuzzy
+#: gnu/packages/gnome.scm:1145
 msgid "GObject plugin system"
-msgstr "Colección bibliotecaria de GObject"
+msgstr "Complemento GObject sistema"
 
-#: gnu/packages/gnome.scm:1034
+#: gnu/packages/gnome.scm:1147
 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"
@@ -4518,35 +5322,33 @@ msgid ""
 "API."
 msgstr ""
 
-#: gnu/packages/gnome.scm:1063
-#, fuzzy
+#: gnu/packages/gnome.scm:1186
 msgid "OpenGL extension to GTK+"
-msgstr " Compatibilidad Gtk+ desactivada.\n"
+msgstr "Extensión OpenGL para GTK+"
 
-#: gnu/packages/gnome.scm:1064
+#: gnu/packages/gnome.scm:1187
 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:1107
+#: gnu/packages/gnome.scm:1230
 msgid "GTK+ rapid application development tool"
-msgstr ""
+msgstr "Herramienta de desarrollo de aplicación rápida en GTK+"
 
-#: gnu/packages/gnome.scm:1108
+#: gnu/packages/gnome.scm:1231
 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:1136
-#, fuzzy
+#: gnu/packages/gnome.scm:1259
 msgid "CSS2 parsing and manipulation library"
-msgstr "Biblioteca para interpreción del formato CorelDraw"
+msgstr "Biblioteca interpretando CSS2 y manipulación"
 
-#: gnu/packages/gnome.scm:1138
+#: gnu/packages/gnome.scm:1261
 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"
@@ -4554,32 +5356,31 @@ msgid ""
 "XML/CSS rendering engine."
 msgstr ""
 
-#: gnu/packages/gnome.scm:1171
-#, fuzzy
+#: gnu/packages/gnome.scm:1294
 msgid "GNOME's Structured File Library"
-msgstr "Se crea el fichero de biblioteca: %s\n"
+msgstr "Biblioteca de Fichero Estructurado de GNOME"
 
-#: gnu/packages/gnome.scm:1173
+#: gnu/packages/gnome.scm:1296
 msgid ""
 "Libgsf aims to provide an efficient extensible I/O abstraction for\n"
 "dealing with different structured file formats."
 msgstr ""
 
-#: gnu/packages/gnome.scm:1224
+#: gnu/packages/gnome.scm:1361
 msgid "Render SVG files using Cairo"
-msgstr ""
+msgstr "Renderiza ficheros SVG utilizando Cairo"
 
-#: gnu/packages/gnome.scm:1226
+#: gnu/packages/gnome.scm:1363
 msgid ""
 "Librsvg is a C library to render SVG files using the Cairo 2D graphics\n"
 "library."
 msgstr ""
 
-#: gnu/packages/gnome.scm:1250
+#: gnu/packages/gnome.scm:1387
 msgid "Create trees of CORBA Interface Definition Language files"
 msgstr ""
 
-#: gnu/packages/gnome.scm:1251
+#: gnu/packages/gnome.scm:1388
 msgid ""
 "Libidl is a library for creating trees of CORBA Interface\n"
 "Definition Language (idl) files, which is a specification for defining\n"
@@ -4588,146 +5389,146 @@ msgid ""
 "functionality was designed to be as reusable and portable as possible."
 msgstr ""
 
-#: gnu/packages/gnome.scm:1291
+#: gnu/packages/gnome.scm:1432
 msgid "CORBA 2.4-compliant Object Request Broker"
 msgstr ""
 
-#: gnu/packages/gnome.scm:1292
+#: gnu/packages/gnome.scm:1433
 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:1339
+#: gnu/packages/gnome.scm:1488
 msgid "Framework for creating reusable components for use in GNOME applications"
 msgstr ""
 
-#: gnu/packages/gnome.scm:1340
+#: gnu/packages/gnome.scm:1489
 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:1371
+#: gnu/packages/gnome.scm:1520
 msgid "Store application preferences"
 msgstr "Almacena preferencias de aplicación"
 
-#: gnu/packages/gnome.scm:1372
+#: gnu/packages/gnome.scm:1521
 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:1406
+#: gnu/packages/gnome.scm:1555
 msgid "Base MIME and Application database for GNOME"
-msgstr ""
+msgstr "Base MIME y base de datos de Aplicación para GNOME"
 
-#: gnu/packages/gnome.scm:1407
+#: gnu/packages/gnome.scm:1556
 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:1450
+#: gnu/packages/gnome.scm:1599
 msgid "Access files and folders in GNOME applications"
-msgstr ""
+msgstr "Fichero de acceso y carpetas en aplicaciones GNOME"
 
-#: gnu/packages/gnome.scm:1452
+#: gnu/packages/gnome.scm:1601
 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:1496
+#: gnu/packages/gnome.scm:1646
 msgid "Useful routines for building applications"
 msgstr ""
 
-#: gnu/packages/gnome.scm:1497
+#: gnu/packages/gnome.scm:1647
 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:1520
+#: gnu/packages/gnome.scm:1670
 msgid "2D drawing library"
 msgstr "Biblioteca de dibujo 2D"
 
-#: gnu/packages/gnome.scm:1521
+#: gnu/packages/gnome.scm:1671
 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:1548
+#: gnu/packages/gnome.scm:1698
 msgid "Flexible widget for creating interactive structured graphics"
 msgstr ""
 
-#: gnu/packages/gnome.scm:1549
+#: gnu/packages/gnome.scm:1699
 msgid ""
 "The GnomeCanvas widget provides a flexible widget for\n"
 "creating interactive structured graphics."
 msgstr ""
 
-#: gnu/packages/gnome.scm:1573
+#: gnu/packages/gnome.scm:1723
 msgid "C++ bindings to the GNOME Canvas library"
 msgstr ""
 
-#: gnu/packages/gnome.scm:1574
+#: gnu/packages/gnome.scm:1724
 msgid "C++ bindings to the GNOME Canvas library."
 msgstr ""
 
-#: gnu/packages/gnome.scm:1605
-#, fuzzy
+#: gnu/packages/gnome.scm:1756
 msgid "Additional widgets for applications"
-msgstr "Aplicaciones configuradas para la delegación"
+msgstr "Widgets adicional para aplicaciones"
 
-#: gnu/packages/gnome.scm:1606
+#: gnu/packages/gnome.scm:1757
 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:1632
+#: gnu/packages/gnome.scm:1783
 msgid "Load glade interfaces and access the glade built widgets"
 msgstr ""
 
-#: gnu/packages/gnome.scm:1633
+#: gnu/packages/gnome.scm:1784
 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:1663 gnu/packages/gnome.scm:1695
-#, fuzzy
+#: gnu/packages/gnome.scm:1814 gnu/packages/gnome.scm:1846
 msgid "Printing framework for GNOME"
-msgstr "Iconos para el escritorio GNOME."
+msgstr "Impresión para marco de trabajo de GNOME"
 
-#: gnu/packages/gnome.scm:1665
+#: gnu/packages/gnome.scm:1816
 msgid ""
 "GNOME-print was a printing framework for GNOME.  It has been deprecated\n"
 "since ca. 2006, when GTK+ itself incorporated printing support."
 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:1739
+#: gnu/packages/gnome.scm:1890
 msgid "Some user interface controls using Bonobo"
 msgstr ""
 
-#: gnu/packages/gnome.scm:1740
+#: gnu/packages/gnome.scm:1891
 msgid ""
 "The Bonobo UI library provides a number of user interface\n"
 "controls using the Bonobo component framework."
 msgstr ""
 
-#: gnu/packages/gnome.scm:1765
+#: gnu/packages/gnome.scm:1916
 msgid "Window Navigator Construction Kit"
 msgstr ""
 
-#: gnu/packages/gnome.scm:1767
+#: gnu/packages/gnome.scm:1918
 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"
@@ -4735,20 +5536,19 @@ msgid ""
 "Hints specification (EWMH)."
 msgstr ""
 
-#: gnu/packages/gnome.scm:1820
+#: gnu/packages/gnome.scm:1971
 msgid "Document-centric objects and utilities"
-msgstr ""
+msgstr "Objeto documental céntrico y utilidades"
 
-#: gnu/packages/gnome.scm:1821
+#: gnu/packages/gnome.scm:1972
 msgid "A GLib/GTK+ set of document-centric objects and utilities."
-msgstr ""
+msgstr "Un conjunto GLib/GTK+ de objetos y utilidades documentales-centrados."
 
-#: gnu/packages/gnome.scm:1905
-#, fuzzy
+#: gnu/packages/gnome.scm:2056
 msgid "Spreadsheet application"
-msgstr "Aplicación\n"
+msgstr "Aplicación de hojas de cálculo"
 
-#: gnu/packages/gnome.scm:1907
+#: gnu/packages/gnome.scm:2058
 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"
@@ -4757,30 +5557,29 @@ msgid ""
 "engineering."
 msgstr ""
 
-#: gnu/packages/gnome.scm:1947
+#: gnu/packages/gnome.scm:2098
 msgid "Default GNOME 3 themes"
-msgstr ""
+msgstr "Temas de GNOME 3 predeterminado"
 
-#: gnu/packages/gnome.scm:1949
+#: gnu/packages/gnome.scm:2100
 msgid "The default GNOME 3 themes (Adwaita and some accessibility themes)."
 msgstr ""
 
-#: gnu/packages/gnome.scm:1982
+#: gnu/packages/gnome.scm:2133
 msgid "Manage encryption keys and passwords in the GNOME keyring"
 msgstr ""
 
-#: gnu/packages/gnome.scm:1984
+#: gnu/packages/gnome.scm:2135
 msgid ""
 "Seahorse is a GNOME application for managing encryption keys and\n"
 "passwords in the GNOME keyring."
 msgstr ""
 
-#: gnu/packages/gnome.scm:2022 gnu/packages/gnome.scm:2258
-#, fuzzy
+#: gnu/packages/gnome.scm:2178 gnu/packages/gnome.scm:2411
 msgid "Compiler for the GObject type system"
-msgstr "asume SISTEMA como la actual tipo de sistema"
+msgstr "Compilador para el sistema tipado GObject"
 
-#: gnu/packages/gnome.scm:2024
+#: gnu/packages/gnome.scm:2180
 msgid ""
 "Vala is a programming language that aims to bring modern programming\n"
 "language features to GNOME developers without imposing any additional runtime\n"
@@ -4788,11 +5587,11 @@ msgid ""
 "libraries written in C."
 msgstr ""
 
-#: gnu/packages/gnome.scm:2056
+#: gnu/packages/gnome.scm:2212
 msgid "Virtual Terminal Emulator"
 msgstr "Emulador de Terminal Virtual"
 
-#: gnu/packages/gnome.scm:2058
+#: gnu/packages/gnome.scm:2214
 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"
@@ -4800,40 +5599,39 @@ msgid ""
 "editors, IDEs, etc."
 msgstr ""
 
-#: gnu/packages/gnome.scm:2091
+#: gnu/packages/gnome.scm:2246
 msgid "Enhanced VTE terminal widget"
 msgstr ""
 
-#: gnu/packages/gnome.scm:2093
+#: gnu/packages/gnome.scm:2248
 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:2179
-#, fuzzy
+#: gnu/packages/gnome.scm:2344
 msgid "Remote desktop viewer for GNOME"
-msgstr "Iconos para el escritorio GNOME."
+msgstr "Visor de escritorio remoto para GNOME"
 
-#: gnu/packages/gnome.scm:2180
+#: gnu/packages/gnome.scm:2345
 msgid ""
 "Vinagre is a remote display client supporting the VNC, SPICE\n"
 "and RDP protocols."
 msgstr ""
 
-#: gnu/packages/gnome.scm:2232
+#: gnu/packages/gnome.scm:2384
 msgid "Low-level GNOME configuration system"
 msgstr ""
 
-#: gnu/packages/gnome.scm:2233
+#: gnu/packages/gnome.scm:2385
 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:2260
+#: gnu/packages/gnome.scm:2413
 msgid ""
 "JSON-GLib is a C library based on GLib providing serialization and\n"
 "deserialization support for the JavaScript Object Notation (JSON) format\n"
@@ -4842,11 +5640,11 @@ msgid ""
 "and objects."
 msgstr ""
 
-#: gnu/packages/gnome.scm:2299
+#: gnu/packages/gnome.scm:2452
 msgid "High-level API for X Keyboard Extension"
 msgstr ""
 
-#: gnu/packages/gnome.scm:2301
+#: gnu/packages/gnome.scm:2454
 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"
@@ -4854,58 +5652,58 @@ msgid ""
 "indicators etc)."
 msgstr ""
 
-#: gnu/packages/gnome.scm:2329
+#: gnu/packages/gnome.scm:2482
 msgid "Python bindings to librsvg"
 msgstr "Enlazando Python para librsvg"
 
-#: gnu/packages/gnome.scm:2331
+#: gnu/packages/gnome.scm:2484
 msgid ""
 "This packages provides Python bindings to librsvg, the SVG rendering\n"
 "library."
 msgstr ""
 
-#: gnu/packages/gnome.scm:2381
+#: gnu/packages/gnome.scm:2523
 msgid "Network-related GIO modules"
 msgstr ""
 
-#: gnu/packages/gnome.scm:2383
+#: gnu/packages/gnome.scm:2525
 msgid ""
 "This package contains various network related extensions for the GIO\n"
 "library."
 msgstr ""
 
-#: gnu/packages/gnome.scm:2414
+#: gnu/packages/gnome.scm:2556
 msgid "RESTful web api query library"
 msgstr ""
 
-#: gnu/packages/gnome.scm:2416
+#: gnu/packages/gnome.scm:2558
 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:2539
+#: gnu/packages/gnome.scm:2668
 msgid "GLib-based HTTP Library"
-msgstr ""
+msgstr "Biblioteca HTTP basada en GLib"
 
-#: gnu/packages/gnome.scm:2541
+#: gnu/packages/gnome.scm:2670
 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:2587
+#: gnu/packages/gnome.scm:2716
 msgid "GObject bindings for \"Secret Service\" API"
-msgstr ""
+msgstr "Enlazando GObject para API «Servicio Secreto»"
 
-#: gnu/packages/gnome.scm:2589
+#: gnu/packages/gnome.scm:2718
 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:2618
+#: gnu/packages/gnome.scm:2747
 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"
@@ -4913,22 +5711,21 @@ msgid ""
 " Try to last as long as possible."
 msgstr ""
 
-#: gnu/packages/gnome.scm:2656
-#, fuzzy
+#: gnu/packages/gnome.scm:2785
 msgid "Minesweeper game"
-msgstr "Buscaminas"
+msgstr "Juego buscaminas"
 
-#: gnu/packages/gnome.scm:2658
+#: gnu/packages/gnome.scm:2787
 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:2689
+#: gnu/packages/gnome.scm:2818
 msgid "Japanese logic game"
 msgstr "Juego lógico japonés"
 
-#: gnu/packages/gnome.scm:2691
+#: gnu/packages/gnome.scm:2820
 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"
@@ -4936,11 +5733,11 @@ msgid ""
 "more fun."
 msgstr ""
 
-#: gnu/packages/gnome.scm:2737
+#: gnu/packages/gnome.scm:2866
 msgid "Terminal emulator"
 msgstr "Emulador de terminal"
 
-#: gnu/packages/gnome.scm:2739
+#: gnu/packages/gnome.scm:2868
 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"
@@ -4950,23 +5747,22 @@ msgid ""
 "keyboard shortcuts."
 msgstr ""
 
-#: gnu/packages/gnome.scm:2805
+#: gnu/packages/gnome.scm:2934
 msgid "Color management service"
 msgstr "Servicio de gestión de color"
 
-#: gnu/packages/gnome.scm:2806
+#: gnu/packages/gnome.scm:2935
 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:2850
-#, fuzzy
+#: gnu/packages/gnome.scm:2980
 msgid "Geolocation service"
-msgstr "SERVICIO"
+msgstr "Servicio de geolocalización"
 
-#: gnu/packages/gnome.scm:2851
+#: gnu/packages/gnome.scm:2981
 msgid ""
 "Geoclue is a D-Bus service that provides location\n"
 "information.  The primary goal of the Geoclue project is to make creating\n"
@@ -4975,11 +5771,11 @@ msgid ""
 "permission from user."
 msgstr ""
 
-#: gnu/packages/gnome.scm:2886
+#: gnu/packages/gnome.scm:3016
 msgid "Geocoding and reverse-geocoding library"
-msgstr ""
+msgstr "Biblioteca de geocódigo y reversión de geocódigo"
 
-#: gnu/packages/gnome.scm:2888
+#: gnu/packages/gnome.scm:3018
 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"
@@ -4987,11 +5783,11 @@ msgid ""
 "faster results and to avoid unnecessary server load."
 msgstr ""
 
-#: gnu/packages/gnome.scm:2941
+#: gnu/packages/gnome.scm:3065
 msgid "System daemon for managing power devices"
 msgstr ""
 
-#: gnu/packages/gnome.scm:2943
+#: gnu/packages/gnome.scm:3067
 msgid ""
 "UPower is an abstraction for enumerating power devices,\n"
 "listening to device events and querying history and statistics.  Any\n"
@@ -4999,24 +5795,21 @@ msgid ""
 "service via the system message bus."
 msgstr ""
 
-#: gnu/packages/gnome.scm:3001
+#: gnu/packages/gnome.scm:3125
 msgid "Location, time zone, and weather library for GNOME"
 msgstr ""
 
-#: gnu/packages/gnome.scm:3003
+#: gnu/packages/gnome.scm:3127
 msgid ""
 "libgweather is a library to access weather information from online\n"
 "services for numerous locations."
 msgstr ""
 
-#: gnu/packages/gnome.scm:3054
-#, fuzzy
+#: gnu/packages/gnome.scm:3178
 msgid "GNOME settings daemon"
-msgstr ""
-"-- \n"
-"El demonio de Fetchmail"
+msgstr "GNOME configurando demonios"
 
-#: gnu/packages/gnome.scm:3056
+#: gnu/packages/gnome.scm:3180
 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"
@@ -5024,43 +5817,42 @@ msgid ""
 "settings, themes, mouse settings, and startup of other daemons."
 msgstr ""
 
-#: gnu/packages/gnome.scm:3093
+#: gnu/packages/gnome.scm:3217
 msgid "Library to parse and save media playlists for GNOME"
 msgstr ""
 
-#: gnu/packages/gnome.scm:3094
+#: gnu/packages/gnome.scm:3218
 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:3128
+#: gnu/packages/gnome.scm:3252
 msgid "Solitaire card games"
 msgstr "Juegos de cartas solitatias"
 
-#: gnu/packages/gnome.scm:3130
+#: gnu/packages/gnome.scm:3254
 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:3154
-#, fuzzy
+#: gnu/packages/gnome.scm:3278
 msgid "API documentation browser for GNOME"
-msgstr "Explorador web para GNOME"
+msgstr "Documentación de API para GNOME"
 
-#: gnu/packages/gnome.scm:3156
+#: gnu/packages/gnome.scm:3280
 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:3223
+#: gnu/packages/gnome.scm:3347
 msgid "Object oriented GL/GLES Abstraction/Utility Layer"
 msgstr ""
 
-#: gnu/packages/gnome.scm:3225
+#: gnu/packages/gnome.scm:3349
 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"
@@ -5068,38 +5860,38 @@ msgid ""
 "without stepping on each others toes."
 msgstr ""
 
-#: gnu/packages/gnome.scm:3282
-msgid "Open GL based interactive canvas library"
+#: gnu/packages/gnome.scm:3406
+msgid "OpenGL-based interactive canvas library"
 msgstr ""
 
-#: gnu/packages/gnome.scm:3284 gnu/packages/gnome.scm:3313
+#: gnu/packages/gnome.scm:3408 gnu/packages/gnome.scm:3437
 msgid ""
-"Clutter is an Open GL based interactive canvas library, designed for\n"
+"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:3311
-msgid "Open GL based interactive canvas library GTK+ widget"
+#: gnu/packages/gnome.scm:3435
+msgid "OpenGL-based interactive canvas library GTK+ widget"
 msgstr ""
 
-#: gnu/packages/gnome.scm:3341
+#: gnu/packages/gnome.scm:3464
 msgid "Integration library for using GStreamer with Clutter"
 msgstr ""
 
-#: gnu/packages/gnome.scm:3343
+#: gnu/packages/gnome.scm:3466
 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 Open\n"
-"GL based interactive canvas library."
+"implements the ClutterGstPlayer interface using playbin.  Clutter is an\n"
+"OpenGL-based interactive canvas library."
 msgstr ""
 
-#: gnu/packages/gnome.scm:3377
+#: gnu/packages/gnome.scm:3500
 msgid "C library providing a ClutterActor to display maps"
-msgstr ""
+msgstr "Biblioteca C proporcionando un ClustterActor para enseñar distribuciones"
 
-#: gnu/packages/gnome.scm:3379
+#: gnu/packages/gnome.scm:3502
 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"
@@ -5107,33 +5899,32 @@ msgid ""
 "such as OpenStreetMap, OpenCycleMap, OpenAerialMap, and Maps for free."
 msgstr ""
 
-#: gnu/packages/gnome.scm:3410
+#: gnu/packages/gnome.scm:3533
 msgid "Object mapper from GObjects to SQLite"
 msgstr ""
 
-#: gnu/packages/gnome.scm:3412
+#: gnu/packages/gnome.scm:3535
 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:3447
+#: gnu/packages/gnome.scm:3570
 msgid "Useful functionality shared among GNOME games"
 msgstr ""
 
-#: gnu/packages/gnome.scm:3449
+#: gnu/packages/gnome.scm:3572
 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:3477
-#, fuzzy
+#: gnu/packages/gnome.scm:3600
 msgid "Sliding block puzzles"
-msgstr "Bloque Guardado"
+msgstr "Puzzles de bloque corredizo"
 
-#: gnu/packages/gnome.scm:3479
+#: gnu/packages/gnome.scm:3602
 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"
@@ -5141,57 +5932,55 @@ msgid ""
 "as possible!"
 msgstr ""
 
-#: gnu/packages/gnome.scm:3532
+#: gnu/packages/gnome.scm:3656
 msgid "Framework for discovering and browsing media"
 msgstr ""
 
-#: gnu/packages/gnome.scm:3534 gnu/packages/gnome.scm:3587
+#: gnu/packages/gnome.scm:3658 gnu/packages/gnome.scm:3711
 msgid ""
 "Grilo is a framework focused on making media discovery and browsing easy\n"
 "for application developers."
 msgstr ""
 
-#: gnu/packages/gnome.scm:3585
+#: gnu/packages/gnome.scm:3709
 msgid "Plugins for the Grilo media discovery library"
 msgstr ""
 
-#: gnu/packages/gnome.scm:3683
+#: gnu/packages/gnome.scm:3812
 msgid "Simple media player for GNOME based on GStreamer"
 msgstr ""
 
-#: gnu/packages/gnome.scm:3684
+#: gnu/packages/gnome.scm:3813
 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:3774
-#, fuzzy
+#: gnu/packages/gnome.scm:3914
 msgid "Music player for GNOME"
-msgstr "música por:"
+msgstr "Reproductor musical para GNOME"
 
-#: gnu/packages/gnome.scm:3775
+#: gnu/packages/gnome.scm:3915
 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:3825
-#, fuzzy
+#: gnu/packages/gnome.scm:3965
 msgid "GNOME image viewer"
-msgstr "/Ver con…/Visualizador incorporado"
+msgstr "Visor de imagen GNOME"
 
-#: gnu/packages/gnome.scm:3826
+#: gnu/packages/gnome.scm:3966
 msgid ""
 "Eye of GNOME is the GNOME image viewer.  It\n"
 "supports image conversion, rotation, and slideshows."
 msgstr ""
 
-#: gnu/packages/gnome.scm:3848
+#: gnu/packages/gnome.scm:3988
 msgid "Extensions for the Eye of GNOME image viewer"
-msgstr ""
+msgstr "Extensiones para el visor de imagen del Ojo de GNOME"
 
-#: gnu/packages/gnome.scm:3860
+#: gnu/packages/gnome.scm:4000
 msgid ""
 "This package provides plugins for the Eye of GNOME (EOG) image viewer,\n"
 "notably:\n"
@@ -5204,22 +5993,21 @@ msgid ""
 "@end itemize\n"
 msgstr ""
 
-#: gnu/packages/gnome.scm:3896
-#, fuzzy
+#: gnu/packages/gnome.scm:4036
 msgid "GObject bindings for libudev"
-msgstr "Colección bibliotecaria de GObject"
+msgstr "Enlaces GObject para libudev"
 
-#: gnu/packages/gnome.scm:3898
+#: gnu/packages/gnome.scm:4038
 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:3946
+#: gnu/packages/gnome.scm:4086
 msgid "Userspace virtual file system for GIO"
 msgstr ""
 
-#: gnu/packages/gnome.scm:3948
+#: gnu/packages/gnome.scm:4088
 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"
@@ -5230,12 +6018,11 @@ msgid ""
 "DAV, and others."
 msgstr ""
 
-#: gnu/packages/gnome.scm:3994
-#, fuzzy
+#: gnu/packages/gnome.scm:4121
 msgid "GLib binding for libusb1"
-msgstr "no admitió enlace simbólico %d"
+msgstr "Enlazando GLib para libusb1"
 
-#: gnu/packages/gnome.scm:3996
+#: gnu/packages/gnome.scm:4123
 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"
@@ -5243,12 +6030,11 @@ msgid ""
 "USB transfers with your high-level application or system daemon."
 msgstr ""
 
-#: gnu/packages/gnome.scm:4047
-#, fuzzy
+#: gnu/packages/gnome.scm:4174
 msgid "Document and image scanner"
-msgstr "  opciones del analizador: -"
+msgstr "Documento e imagen analíticos (escaner)"
 
-#: gnu/packages/gnome.scm:4048
+#: gnu/packages/gnome.scm:4175
 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"
@@ -5257,64 +6043,62 @@ msgid ""
 "work and the interface is well tested."
 msgstr ""
 
-#: gnu/packages/gnome.scm:4121
+#: gnu/packages/gnome.scm:4242
 msgid "Web browser for GNOME"
 msgstr "Explorador web para GNOME"
 
-#: gnu/packages/gnome.scm:4123
+#: gnu/packages/gnome.scm:4244
 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:4170
+#: gnu/packages/gnome.scm:4301
 msgid "GNOME web browser"
 msgstr "Explorador web GNOME"
 
-#: gnu/packages/gnome.scm:4172
+#: gnu/packages/gnome.scm:4303
 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:4228
-#, fuzzy
+#: gnu/packages/gnome.scm:4359
 msgid "D-Bus debugger"
-msgstr "Error de bus"
+msgstr "Depurador D-Bus"
 
-#: gnu/packages/gnome.scm:4230
+#: gnu/packages/gnome.scm:4361
 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:4252
+#: gnu/packages/gnome.scm:4383
 msgid "XSL stylesheets for Yelp"
 msgstr "Hojas de estilos XSL para Yelp"
 
-#: gnu/packages/gnome.scm:4254
+#: gnu/packages/gnome.scm:4385
 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:4285
-#, fuzzy
+#: gnu/packages/gnome.scm:4416
 msgid "GNOME help browser"
-msgstr "Explorador web GNOME"
+msgstr "Explorador ayuda GNOME"
 
-#: gnu/packages/gnome.scm:4287
+#: gnu/packages/gnome.scm:4418
 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:4315
+#: gnu/packages/gnome.scm:4446
 msgid "Yelp documentation tools"
 msgstr "Herramientas documentales Yelp"
 
-#: gnu/packages/gnome.scm:4317
+#: gnu/packages/gnome.scm:4448
 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"
@@ -5322,33 +6106,32 @@ msgid ""
 "wraps things up in a developer-friendly way."
 msgstr ""
 
-#: gnu/packages/gnome.scm:4354
+#: gnu/packages/gnome.scm:4485
 msgid "GObject collection library"
 msgstr "Colección bibliotecaria de GObject"
 
-#: gnu/packages/gnome.scm:4356
+#: gnu/packages/gnome.scm:4487
 msgid ""
 "Libgee is a utility library providing GObject-based interfaces and\n"
 "classes for commonly used data structures."
 msgstr ""
 
-#: gnu/packages/gnome.scm:4383
+#: gnu/packages/gnome.scm:4514
 msgid "GObject wrapper around the Exiv2 photo metadata library"
 msgstr ""
 
-#: gnu/packages/gnome.scm:4385
+#: gnu/packages/gnome.scm:4516
 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:4429
-#, fuzzy
+#: gnu/packages/gnome.scm:4560
 msgid "Photo manager for GNOME 3"
-msgstr "Gestor de sesión para GNOME"
+msgstr "Gestor de fotos para GNOME"
 
-#: gnu/packages/gnome.scm:4431
+#: gnu/packages/gnome.scm:4562
 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"
@@ -5356,64 +6139,62 @@ msgid ""
 "share them with others via social networking and more."
 msgstr ""
 
-#: gnu/packages/gnome.scm:4472
-#, fuzzy
+#: gnu/packages/gnome.scm:4603
 msgid "Graphical archive manager for GNOME"
-msgstr "Gestor de sesión para GNOME"
+msgstr "Gestor de archivo gráfico para GNOME"
 
-#: gnu/packages/gnome.scm:4473
+#: gnu/packages/gnome.scm:4604
 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:4551
+#: gnu/packages/gnome.scm:4680
 msgid "Session manager for GNOME"
 msgstr "Gestor de sesión para GNOME"
 
-#: gnu/packages/gnome.scm:4553
+#: gnu/packages/gnome.scm:4682
 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:4606
-#, fuzzy
+#: gnu/packages/gnome.scm:4735
 msgid "Javascript bindings for GNOME"
-msgstr "Enlazando XOSD para Guile"
+msgstr "Enlazados Javascript para GNOME"
 
-#: gnu/packages/gnome.scm:4609
+#: gnu/packages/gnome.scm:4738
 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:4668
+#: gnu/packages/gnome.scm:4797
 msgid "GNOME text editor"
 msgstr "Editor textual de GNOME"
 
-#: gnu/packages/gnome.scm:4669
+#: gnu/packages/gnome.scm:4798
 msgid ""
 "While aiming at simplicity and ease of use, gedit is a\n"
 "powerful general purpose text editor."
 msgstr ""
 
-#: gnu/packages/gnome.scm:4693
+#: gnu/packages/gnome.scm:4822
 msgid "Display graphical dialog boxes from shell scripts"
 msgstr ""
 
-#: gnu/packages/gnome.scm:4696
+#: gnu/packages/gnome.scm:4825
 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:4790
+#: gnu/packages/gnome.scm:4924
 msgid "Window and compositing manager"
 msgstr "Ventana y composicion de gestor"
 
-#: gnu/packages/gnome.scm:4793
+#: gnu/packages/gnome.scm:4927
 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"
@@ -5421,11 +6202,12 @@ msgid ""
 "window manager."
 msgstr ""
 
-#: gnu/packages/gnome.scm:4828
+#: gnu/packages/gnome.scm:4977
+#, fuzzy
 msgid "Single sign-on framework for GNOME"
-msgstr ""
+msgstr "Impresión para marco de trabajo de GNOME"
 
-#: gnu/packages/gnome.scm:4831
+#: gnu/packages/gnome.scm:4980
 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"
@@ -5433,34 +6215,32 @@ msgid ""
 "Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos."
 msgstr ""
 
-#: gnu/packages/gnome.scm:4889
-#, fuzzy
+#: gnu/packages/gnome.scm:5098
 msgid "Store address books and calendars"
-msgstr "STO_CA (almacena direcc código) %.*s\n"
+msgstr "Dirección de almacén de libros y calendarios"
 
-#: gnu/packages/gnome.scm:4892
+#: gnu/packages/gnome.scm:5101
 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:4955
+#: gnu/packages/gnome.scm:5164
 msgid "Text entry and UI navigation application"
-msgstr ""
+msgstr "Entrada textual y aplicación de explorador IU"
 
-#: gnu/packages/gnome.scm:4958
+#: gnu/packages/gnome.scm:5167
 msgid ""
 "Caribou is an input assistive technology intended for switch and pointer\n"
 "users."
 msgstr ""
 
-#: gnu/packages/gnome.scm:5075
-#, fuzzy
+#: gnu/packages/gnome.scm:5285
 msgid "Network connection manager"
-msgstr "Gestor"
+msgstr "Gestor de conexión a red"
 
-#: gnu/packages/gnome.scm:5078
+#: gnu/packages/gnome.scm:5288
 msgid ""
 "NetworkManager is a system network service that manages your network\n"
 "devices and connections, attempting to keep active network connectivity when\n"
@@ -5469,83 +6249,79 @@ msgid ""
 "services."
 msgstr ""
 
-#: gnu/packages/gnome.scm:5112
+#: gnu/packages/gnome.scm:5322
 msgid "OpenVPN plug-in for NetworkManager"
 msgstr ""
 
-#: gnu/packages/gnome.scm:5114
+#: gnu/packages/gnome.scm:5324
 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:5136
-#, fuzzy
+#: gnu/packages/gnome.scm:5346
 msgid "Database of broadband connection configuration"
-msgstr "<b>Conexión a Base de Datos</b>"
+msgstr "Configuración de BD para conexión ancha"
 
-#: gnu/packages/gnome.scm:5137
-#, fuzzy
+#: gnu/packages/gnome.scm:5347
 msgid "Database of broadband connection configuration."
-msgstr "<b>Conexión a Base de Datos</b>"
+msgstr "Configuración de BD para conexión ancha."
 
-#: gnu/packages/gnome.scm:5171
+#: gnu/packages/gnome.scm:5381
 msgid "Applet for managing network connections"
-msgstr ""
+msgstr "Applet para gestión de conexiones de red"
 
-#: gnu/packages/gnome.scm:5174
+#: gnu/packages/gnome.scm:5384
 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:5199
+#: gnu/packages/gnome.scm:5409
 msgid "C++ wrapper for XML parser library libxml2"
 msgstr ""
 
-#: gnu/packages/gnome.scm:5201
+#: gnu/packages/gnome.scm:5411
 msgid ""
 "This package provides a C++ wrapper for the XML parser library\n"
 "libxml2."
 msgstr ""
 
-#: gnu/packages/gnome.scm:5337
-#, fuzzy
+#: gnu/packages/gnome.scm:5575
 msgid "Display manager for GNOME"
-msgstr "Gestor de sesión para GNOME"
+msgstr "Gestor de pantalla para GNOME"
 
-#: gnu/packages/gnome.scm:5340
+#: gnu/packages/gnome.scm:5578
 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:5364
+#: gnu/packages/gnome.scm:5602
 msgid "Portable system access library"
-msgstr ""
+msgstr "Biblioteca de sistema de acceso portable"
 
-#: gnu/packages/gnome.scm:5367
+#: gnu/packages/gnome.scm:5605
 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:5397
-#, fuzzy
+#: gnu/packages/gnome.scm:5635
 msgid "GNOME Bluetooth subsystem"
-msgstr "Gestor de sesión para GNOME"
+msgstr "Subsistema Bluetooth GNOME"
 
-#: gnu/packages/gnome.scm:5400
+#: gnu/packages/gnome.scm:5638
 msgid ""
 "This package contains tools for managing and manipulating Bluetooth\n"
 "devices using the GNOME desktop."
 msgstr ""
 
-#: gnu/packages/gnome.scm:5466
+#: gnu/packages/gnome.scm:5705
 msgid "Utilities to configure the GNOME desktop"
 msgstr "Utilidades para configurar el escritorio de GNOME"
 
-#: gnu/packages/gnome.scm:5469
+#: gnu/packages/gnome.scm:5708
 msgid ""
 "This package contains configuration applets for the GNOME desktop,\n"
 "allowing to set accessibility configuration, desktop fonts, keyboard and mouse\n"
@@ -5553,22 +6329,21 @@ msgid ""
 "properties, screen resolution, and other GNOME parameters."
 msgstr ""
 
-#: gnu/packages/gnome.scm:5554
-#, fuzzy
+#: gnu/packages/gnome.scm:5853
 msgid "Desktop shell for GNOME"
-msgstr "Iconos para el escritorio GNOME."
+msgstr "Shell de escritorio para GNOME"
 
-#: gnu/packages/gnome.scm:5557
+#: gnu/packages/gnome.scm:5856
 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:5591
+#: gnu/packages/gnome.scm:5891
 msgid "VNC viewer widget for GTK+"
 msgstr ""
 
-#: gnu/packages/gnome.scm:5593
+#: gnu/packages/gnome.scm:5893
 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"
@@ -5576,44 +6351,43 @@ msgid ""
 "as SASL, TLS and VeNCrypt.  Additionally it supports encoding extensions."
 msgstr ""
 
-#: gnu/packages/gnome.scm:5621
+#: gnu/packages/gnome.scm:5921
 msgid "Archives integration support for GNOME"
 msgstr ""
 
-#: gnu/packages/gnome.scm:5624
+#: gnu/packages/gnome.scm:5924
 msgid ""
 "GNOME Autoar is a library which makes creating and extracting archives\n"
 "easy, safe, and automatic."
 msgstr ""
 
-#: gnu/packages/gnome.scm:5676
+#: gnu/packages/gnome.scm:5976
 msgid "Metadata database, indexer and search tool"
 msgstr ""
 
-#: gnu/packages/gnome.scm:5679
+#: gnu/packages/gnome.scm:5979
 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:5728
-#, fuzzy
+#: gnu/packages/gnome.scm:6030
 msgid "File manager for GNOME"
-msgstr "Gestor de sesión para GNOME"
+msgstr "Gestor de ficheros para GNOME"
 
-#: gnu/packages/gnome.scm:5731
+#: gnu/packages/gnome.scm:6033
 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:5759
+#: gnu/packages/gnome.scm:6065
 msgid "Disk usage analyzer for GNOME"
-msgstr ""
+msgstr "Análisis de utilización de disco para GNOME"
 
-#: gnu/packages/gnome.scm:5761
+#: gnu/packages/gnome.scm:6067
 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"
@@ -5621,12 +6395,11 @@ msgid ""
 "is complete it provides a graphical representation of each selected folder."
 msgstr ""
 
-#: gnu/packages/gnome.scm:5785
-#, fuzzy
+#: gnu/packages/gnome.scm:6091
 msgid "Background images for the GNOME desktop"
-msgstr "Iconos para el escritorio GNOME."
+msgstr "Fondo de imágenes para el escritorio GNOME"
 
-#: gnu/packages/gnome.scm:5787
+#: gnu/packages/gnome.scm:6093
 msgid ""
 "GNOME backgrounds package contains a collection of graphics files which\n"
 "can be used as backgrounds in the GNOME Desktop environment.  Additionally,\n"
@@ -5634,33 +6407,33 @@ msgid ""
 "can add your own files to the collection."
 msgstr ""
 
-#: gnu/packages/gnome.scm:5820
+#: gnu/packages/gnome.scm:6126
 msgid "Take pictures of your screen"
 msgstr "Toma cuadros en su pantalla"
 
-#: gnu/packages/gnome.scm:5822
+#: gnu/packages/gnome.scm:6128
 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:5859
+#: gnu/packages/gnome.scm:6165
 msgid "Graphical editor for GNOME's dconf configuration system"
 msgstr ""
 
-#: gnu/packages/gnome.scm:5861
+#: gnu/packages/gnome.scm:6167
 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:5887
+#: gnu/packages/gnome.scm:6196
 msgid "Default MIME type associations for the GNOME desktop"
-msgstr ""
+msgstr "Tipo MIME predeterminado para el escritorio GNOME"
 
-#: gnu/packages/gnome.scm:5889
+#: gnu/packages/gnome.scm:6198
 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"
@@ -5669,98 +6442,96 @@ msgid ""
 "associations for GNOME."
 msgstr ""
 
-#: gnu/packages/gnome.scm:5948
-#, fuzzy
+#: gnu/packages/gnome.scm:6258
 msgid "The GNU desktop environment"
-msgstr "Iconos para el escritorio GNOME."
+msgstr "El entorno de escritorio GNU"
 
-#: gnu/packages/gnome.scm:5951
+#: gnu/packages/gnome.scm:6261
 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:6003
-#, fuzzy
+#: gnu/packages/gnome.scm:6313
 msgid "Desktop recording program"
-msgstr "Iconos para el escritorio GNOME."
+msgstr "Escritorio grabando programa"
 
-#: gnu/packages/gnome.scm:6004
+#: gnu/packages/gnome.scm:6314
 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:6031
+#: gnu/packages/gnome.scm:6341
 msgid "GObject wrapper for libcanberra"
 msgstr "Envoltura GObject para libcanberra"
 
-#: gnu/packages/gnome.scm:6033
+#: gnu/packages/gnome.scm:6343
 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:6060
+#: gnu/packages/gnome.scm:6370
 msgid "Library for accessing SkyDrive and Hotmail"
-msgstr ""
+msgstr "Biblioteca para acceso a SkyDrive y Hotmail"
 
-#: gnu/packages/gnome.scm:6062
+#: gnu/packages/gnome.scm:6372
 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:6098
-#, fuzzy
+#: gnu/packages/gnome.scm:6408
 msgid "GNOME's clock application"
-msgstr "Aplicación ToDo de GNOME"
+msgstr "Aplicación reloj de GNOME"
 
-#: gnu/packages/gnome.scm:6100
+#: gnu/packages/gnome.scm:6410
 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:6132
-#, fuzzy
+#: gnu/packages/gnome.scm:6443
 msgid "GNOME's calendar application"
-msgstr "Aplicación ToDo de GNOME"
+msgstr "Aplicación calendario de GNOME"
 
-#: gnu/packages/gnome.scm:6134
+#: gnu/packages/gnome.scm:6445
 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 ""
+"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:6183
+#: gnu/packages/gnome.scm:6496
 msgid "GNOME's ToDo Application"
 msgstr "Aplicación ToDo de GNOME"
 
-#: gnu/packages/gnome.scm:6185
+#: gnu/packages/gnome.scm:6498
 msgid ""
 "GNOME To Do is a simplistic personal task manager designed to perfectly\n"
 "fit the GNOME desktop."
 msgstr ""
 
-#: gnu/packages/gnome.scm:6213
+#: gnu/packages/gnome.scm:6536
 msgid "Look up words in dictionary sources"
 msgstr ""
 
-#: gnu/packages/gnome.scm:6215
+#: gnu/packages/gnome.scm:6538
 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:6261
+#: gnu/packages/gnome.scm:6598
 msgid "Customize advanced GNOME 3 options"
 msgstr ""
 
-#: gnu/packages/gnome.scm:6264
+#: gnu/packages/gnome.scm:6601
 msgid ""
 "GNOME Tweak Tool allows adjusting advanced configuration settings in\n"
 "GNOME 3.  This includes things like the fonts used in user interface elements,\n"
@@ -5768,67 +6539,63 @@ msgid ""
 "GNOME Shell appearance and extension, etc."
 msgstr ""
 
-#: gnu/packages/gnome.scm:6291
-#, fuzzy
+#: gnu/packages/gnome.scm:6628
 msgid "Extensions for GNOME Shell"
-msgstr "Shell: "
+msgstr "Extensiones para GNOME Shell"
 
-#: gnu/packages/gnome.scm:6292
+#: gnu/packages/gnome.scm:6629
 msgid ""
 "GNOME Shell extensions modify and extend GNOME Shell\n"
 "functionality and behavior."
 msgstr ""
 
-#: gnu/packages/gnome.scm:6322
+#: gnu/packages/gnome.scm:6664
 msgid "A flat GTK+ theme with transparent elements"
-msgstr ""
+msgstr "Un marcado de tema GTK+ con elementos transparentes"
 
-#: gnu/packages/gnome.scm:6323
+#: gnu/packages/gnome.scm:6665
 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:6359
-#, fuzzy
+#: gnu/packages/gnome.scm:6696
 msgid "Faba icon theme"
-msgstr "Tema icónico Tango"
+msgstr "Tema icónico Faba"
 
-#: gnu/packages/gnome.scm:6361
+#: gnu/packages/gnome.scm:6698
 msgid ""
 "Faba is a minimal icon set used as a basis for other themes such as\n"
 "Moka"
 msgstr ""
 
-#: gnu/packages/gnome.scm:6385
-#, fuzzy
+#: gnu/packages/gnome.scm:6722
 msgid "Moka icon theme"
-msgstr "Tema icónico Tango"
+msgstr "Tema icónico Moka"
 
-#: gnu/packages/gnome.scm:6386
+#: gnu/packages/gnome.scm:6723
 msgid ""
 "Moka is a stylized desktop icon set, designed to be clear,\n"
 "simple and consistent."
 msgstr ""
 
-#: gnu/packages/gnome.scm:6416
-#, fuzzy
+#: gnu/packages/gnome.scm:6755
 msgid "Arc icon theme"
-msgstr "Tema icónico Tango"
+msgstr "Tema icónico Arc"
 
-#: gnu/packages/gnome.scm:6417
+#: gnu/packages/gnome.scm:6756
 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:6449
+#: gnu/packages/gnome.scm:6788
 msgid "Library to aggregate data about people"
-msgstr ""
+msgstr "Biblioteca para agregar datos acerca de gente"
 
-#: gnu/packages/gnome.scm:6450
+#: gnu/packages/gnome.scm:6789
 msgid ""
 "Libfolks is a library that aggregates information about people\n"
 "from multiple sources (e.g., Telepathy connection managers for IM contacts,\n"
@@ -5837,32 +6604,31 @@ msgid ""
 "compiled."
 msgstr ""
 
-#: gnu/packages/gnome.scm:6485
+#: gnu/packages/gnome.scm:6824
 msgid "GLib/GObject wrapper for the Facebook API"
 msgstr ""
 
-#: gnu/packages/gnome.scm:6486
+#: gnu/packages/gnome.scm:6825
 msgid ""
 "This library allows you to use the Facebook API from\n"
 "GLib/GObject code."
 msgstr ""
 
-#: gnu/packages/gnome.scm:6514
-#, fuzzy
+#: gnu/packages/gnome.scm:6853
 msgid "GNOME keyboard configuration library"
-msgstr "Biblioteca de fichero de configuración C/C++"
+msgstr "Biblioteca de configuración de teclado GNOME"
 
-#: gnu/packages/gnome.scm:6516
+#: gnu/packages/gnome.scm:6855
 msgid ""
 "Libgnomekbd is a keyboard configuration library for the GNOME desktop\n"
 "environment, which can notably display keyboard layouts."
 msgstr ""
 
-#: gnu/packages/gnome.scm:6550
+#: gnu/packages/gnome.scm:6889
 msgid "Library for writing single instance applications"
 msgstr ""
 
-#: gnu/packages/gnome.scm:6552
+#: gnu/packages/gnome.scm:6891
 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"
@@ -5872,33 +6638,32 @@ msgid ""
 "handling the startup notification side."
 msgstr ""
 
-#: gnu/packages/gnome.scm:6585
-#, fuzzy
+#: gnu/packages/gnome.scm:6924
 msgid "Desktop calculator"
-msgstr "Iconos para el escritorio GNOME."
+msgstr "Calculadora para escritorio"
 
-#: gnu/packages/gnome.scm:6587
+#: gnu/packages/gnome.scm:6926
 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:6612
+#: gnu/packages/gnome.scm:6954
 msgid "Virtual sticky note"
 msgstr "Anotación chincheta virtual"
 
-#: gnu/packages/gnome.scm:6614
+#: gnu/packages/gnome.scm:6956
 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:6644
+#: gnu/packages/gnome.scm:6986
 msgid "Unicode character picker and font browser"
 msgstr ""
 
-#: gnu/packages/gnome.scm:6646
+#: gnu/packages/gnome.scm:6988
 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"
@@ -5906,23 +6671,22 @@ msgid ""
 "only know by its Unicode name or code point."
 msgstr ""
 
-#: gnu/packages/gnome.scm:6676
-#, fuzzy
+#: gnu/packages/gnome.scm:7018
 msgid "Web development studio"
-msgstr "Web:"
+msgstr "Estudio de desarrollo web"
 
-#: gnu/packages/gnome.scm:6678
+#: gnu/packages/gnome.scm:7020
 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:6710
+#: gnu/packages/gnome.scm:7052
 msgid "Process viewer and system resource monitor for GNOME"
 msgstr ""
 
-#: gnu/packages/gnome.scm:6712
+#: gnu/packages/gnome.scm:7054
 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"
@@ -5931,43 +6695,43 @@ msgid ""
 "kill/reinice processes."
 msgstr ""
 
-#: gnu/packages/gnome.scm:6738
+#: gnu/packages/gnome.scm:7080
 msgid "Python client bindings for D-Bus AT-SPI"
 msgstr ""
 
-#: gnu/packages/gnome.scm:6742
+#: gnu/packages/gnome.scm:7084
 msgid ""
 "This package includes a python client library for the AT-SPI D-Bus\n"
 "accessibility infrastructure."
 msgstr ""
 
-#: gnu/packages/gnome.scm:6801
+#: gnu/packages/gnome.scm:7143
 msgid "Screen reader for individuals who are blind or visually impaired"
 msgstr ""
 
-#: gnu/packages/gnome.scm:6804
+#: gnu/packages/gnome.scm:7146
 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:6856
+#: gnu/packages/gnome.scm:7198
 msgid "GNOME's alternative spell checker"
 msgstr "Comprobador ortográfico alternativo de GNOME"
 
-#: gnu/packages/gnome.scm:6858
+#: gnu/packages/gnome.scm:7200
 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:6900
+#: gnu/packages/gnome.scm:7242
 msgid "Project management software for the GNOME desktop"
 msgstr ""
 
-#: gnu/packages/gnome.scm:6902
+#: gnu/packages/gnome.scm:7244
 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"
@@ -5979,12 +6743,11 @@ msgid ""
 "views can be printed as PDF or PostScript files, or exported to HTML."
 msgstr ""
 
-#: gnu/packages/gnome.scm:6980
-#, fuzzy
+#: gnu/packages/gnome.scm:7310
 msgid "GNOME music playing application"
-msgstr "Aplicación ToDo de GNOME"
+msgstr "Aplicación de reproducción musical de GNOME"
 
-#: gnu/packages/gnome.scm:6982
+#: gnu/packages/gnome.scm:7312
 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"
@@ -5992,90 +6755,141 @@ msgid ""
 "automatically and it can stream songs from online music services and charts."
 msgstr ""
 
-#: gnu/packages/gnome.scm:7009
+#: gnu/packages/gnome.scm:7339
 msgid "Video effects for Cheese and other GNOME applications"
 msgstr ""
 
-#: gnu/packages/gnome.scm:7011
+#: gnu/packages/gnome.scm:7341
 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."
 
-#: gnu/packages/gnome.scm:7071
+#: gnu/packages/gnome.scm:7401
 msgid "Webcam photo booth software for GNOME"
 msgstr ""
 
-#: gnu/packages/gnome.scm:7073
+#: gnu/packages/gnome.scm:7403
 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 ""
+"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/gnuzilla.scm:118
-#, fuzzy
-msgid "Mozilla javascript engine"
-msgstr "scripts internos empotrados en JavaScript."
+#: gnu/packages/gnome.scm:7440
+msgid "Audio music cd ripper"
+msgstr ""
 
-#: gnu/packages/gnuzilla.scm:119
+#: gnu/packages/gnome.scm:7441
 msgid ""
-"SpiderMonkey is Mozilla's JavaScript engine written\n"
-"in C/C++."
+"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:7498
+msgid "Convert between audio formats with a graphical interface"
+msgstr ""
+
+#: gnu/packages/gnome.scm:7500
+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/gnuzilla.scm:276
-msgid "Netscape API for system level and libc-like functions"
+#: gnu/packages/gnome.scm:7543
+msgid "Tool to help prevent repetitive strain injury (RSI)"
 msgstr ""
 
-#: gnu/packages/gnuzilla.scm:277
+#: gnu/packages/gnome.scm:7545
 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."
+"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/gnuzilla.scm:383
+#: gnu/packages/gnome.scm:7574
 #, fuzzy
-msgid "Network Security Services"
-msgstr "Máscara de red"
+#| msgid "GNOME text editor"
+msgid "GNOME hexadecimal editor"
+msgstr "Editor textual de GNOME"
+
+#: gnu/packages/gnome.scm:7575
+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
+msgid "Companion library to GObject and Gtk+"
+msgstr ""
+
+#: gnu/packages/gnome.scm:7620
+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:7668
+msgid "Manage your email, contacts and schedule"
+msgstr ""
+
+#: gnu/packages/gnome.scm:7669
+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
+msgid "Mozilla javascript engine"
+msgstr "Motor JavaScript Mozilla"
 
-#: gnu/packages/gnuzilla.scm:385
+#: gnu/packages/gnuzilla.scm:138
 msgid ""
-"Network Security Services (@dfn{NSS}) is a set of libraries designed to\n"
-"support cross-platform development of security-enabled client and server\n"
-"applications.  Applications built with NSS can support SSL v2 and v3, TLS,\n"
-"PKCS #5, PKCS #7, PKCS #11, PKCS #12, S/MIME, X.509 v3 certificates, and other\n"
-"security standards."
+"SpiderMonkey is Mozilla's JavaScript engine written\n"
+"in C/C++."
 msgstr ""
 
-#: gnu/packages/gnuzilla.scm:767
+#: gnu/packages/gnuzilla.scm:955
 msgid "Entirely free browser derived from Mozilla Firefox"
 msgstr ""
 
-#: gnu/packages/gnuzilla.scm:769
+#: gnu/packages/gnuzilla.scm:957
 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."
 msgstr ""
 
-#: gnu/packages/gtk.scm:97
+#: gnu/packages/gtk.scm:109
 msgid "GNOME accessibility toolkit"
 msgstr "(Kit de herramientas de accesibilidad GNOME"
 
-#: gnu/packages/gtk.scm:99
+#: gnu/packages/gtk.scm:111
 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 ""
+"ATK proporciona el conjunto de interfaces accesibles que son implementados\n"
+"por otros toolkits y aplicaciones.  Utilizando los interfaces ATK, herramientas\n"
+"de accesibilidad tienen acceso completo para ver ty controlar ejecuciones de \n"
+"aplicaciones."
 
-#: gnu/packages/gtk.scm:139
-#, fuzzy
+#: gnu/packages/gtk.scm:150
 msgid "2D graphics library"
-msgstr "Biblioteca de dibujo 2D"
+msgstr "Biblioteca de gráficos 2D"
 
-#: gnu/packages/gtk.scm:141
+#: gnu/packages/gtk.scm:152
 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"
@@ -6093,57 +6907,56 @@ msgid ""
 "affine transformation (scale, rotation, shear, etc.)."
 msgstr ""
 
-#: gnu/packages/gtk.scm:169
+#: gnu/packages/gtk.scm:180
 msgid "2D graphics library (with X11 support)"
-msgstr ""
+msgstr "Biblioteca de gráficos 2D (con apoyo X11)"
 
-#: gnu/packages/gtk.scm:202
+#: gnu/packages/gtk.scm:214
 msgid "OpenType text shaping engine"
 msgstr ""
 
-#: gnu/packages/gtk.scm:204
+#: gnu/packages/gtk.scm:216
 msgid "HarfBuzz is an OpenType text shaping engine."
 msgstr ""
 
-#: gnu/packages/gtk.scm:235
+#: gnu/packages/gtk.scm:252
 msgid "GNOME text and font handling library"
 msgstr ""
 
-#: gnu/packages/gtk.scm:237
+#: gnu/packages/gtk.scm:254
 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:263
-#, fuzzy
+#: gnu/packages/gtk.scm:280
 msgid "Obsolete pango functions"
-msgstr "reubicación obsoleta "
+msgstr "Funciones pango obsoletas"
 
-#: gnu/packages/gtk.scm:264
+#: gnu/packages/gtk.scm:281
 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:301
+#: gnu/packages/gtk.scm:319
 msgid "GTK+ widget for interactive graph-like environments"
 msgstr ""
 
-#: gnu/packages/gtk.scm:303
+#: gnu/packages/gtk.scm:321
 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:371
+#: gnu/packages/gtk.scm:390
 msgid "Widget that extends the standard GTK+ 2.x 'GtkTextView' widget"
 msgstr ""
 
-#: gnu/packages/gtk.scm:373
+#: gnu/packages/gtk.scm:392
 msgid ""
 "GtkSourceView is a portable C library that extends the standard GTK+\n"
 "framework for multiline text editing with support for configurable syntax\n"
@@ -6151,57 +6964,56 @@ msgid ""
 "printing and other features typical of a source code editor."
 msgstr ""
 
-#: gnu/packages/gtk.scm:422
-#, fuzzy
+#: gnu/packages/gtk.scm:441
 msgid "GNOME source code widget"
-msgstr "Activar repositorios de código fuente"
+msgstr "Widget de código fuente GNOME"
 
-#: gnu/packages/gtk.scm:423
+#: gnu/packages/gtk.scm:442
 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:473
+#: gnu/packages/gtk.scm:509
 msgid "GNOME image loading and manipulation library"
 msgstr ""
 
-#: gnu/packages/gtk.scm:475
+#: gnu/packages/gtk.scm:511
 msgid ""
 "GdkPixbuf is a library for image loading and manipulation developed\n"
 "in the GNOME project."
 msgstr ""
 
-#: gnu/packages/gtk.scm:507
+#: gnu/packages/gtk.scm:545
 msgid "GNOME image loading and manipulation library, with SVG support"
 msgstr ""
 
-#: gnu/packages/gtk.scm:547
+#: gnu/packages/gtk.scm:585
 msgid "Assistive Technology Service Provider Interface, core components"
 msgstr ""
 
-#: gnu/packages/gtk.scm:549
+#: gnu/packages/gtk.scm:587
 msgid ""
 "The Assistive Technology Service Provider Interface, core components,\n"
 "is part of the GNOME accessibility project."
 msgstr ""
 
-#: gnu/packages/gtk.scm:582
+#: gnu/packages/gtk.scm:620
 msgid "Assistive Technology Service Provider Interface, ATK bindings"
 msgstr ""
 
-#: gnu/packages/gtk.scm:584
+#: gnu/packages/gtk.scm:622
 msgid ""
 "The Assistive Technology Service Provider Interface\n"
 "is part of the GNOME accessibility project."
 msgstr ""
 
-#: gnu/packages/gtk.scm:643
+#: gnu/packages/gtk.scm:682
 msgid "Cross-platform toolkit for creating graphical user interfaces"
 msgstr ""
 
-#: gnu/packages/gtk.scm:645
+#: gnu/packages/gtk.scm:684
 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"
@@ -6209,12 +7021,11 @@ msgid ""
 "application suites."
 msgstr ""
 
-#: gnu/packages/gtk.scm:805
-#, fuzzy
+#: gnu/packages/gtk.scm:840
 msgid "Cairo bindings for GNU Guile"
-msgstr "Enlazando XOSD para Guile"
+msgstr "Enlazando Cairo para GNU Guile"
 
-#: gnu/packages/gtk.scm:807
+#: gnu/packages/gtk.scm:842
 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"
@@ -6224,21 +7035,21 @@ msgid ""
 "exceptions, macros, and a dynamic programming environment."
 msgstr ""
 
-#: gnu/packages/gtk.scm:853
+#: gnu/packages/gtk.scm:890
 msgid "Render SVG images using Cairo from Guile"
 msgstr ""
 
-#: gnu/packages/gtk.scm:855
+#: gnu/packages/gtk.scm:892
 msgid ""
 "Guile-RSVG wraps the RSVG library for Guile, allowing you to render SVG\n"
 "images onto Cairo surfaces."
 msgstr ""
 
-#: gnu/packages/gtk.scm:900
+#: gnu/packages/gtk.scm:932
 msgid "Create SVG or PDF presentations in Guile"
 msgstr ""
 
-#: gnu/packages/gtk.scm:902
+#: gnu/packages/gtk.scm:934
 msgid ""
 "Guile-Present defines a declarative vocabulary for presentations,\n"
 "together with tools to render presentation documents as SVG or PDF.\n"
@@ -6247,51 +7058,51 @@ msgid ""
 "documents."
 msgstr ""
 
-#: gnu/packages/gtk.scm:956
+#: gnu/packages/gtk.scm:988
 msgid "Guile interface for GTK+ programming for GNOME"
 msgstr ""
 
-#: gnu/packages/gtk.scm:958
+#: gnu/packages/gtk.scm:990
 msgid ""
 "Includes guile-clutter, guile-gnome-gstreamer,\n"
 "guile-gnome-platform (GNOME developer libraries), and guile-gtksourceview."
 msgstr ""
 
-#: gnu/packages/gtk.scm:991
+#: gnu/packages/gtk.scm:1023
 msgid "C++ bindings to the Cairo 2D graphics library"
 msgstr ""
 
-#: gnu/packages/gtk.scm:993
+#: gnu/packages/gtk.scm:1025
 msgid ""
 "Cairomm provides a C++ programming interface to the Cairo 2D graphics\n"
 "library."
 msgstr ""
 
-#: gnu/packages/gtk.scm:1017
+#: gnu/packages/gtk.scm:1049
 msgid "C++ interface to the Pango text rendering library"
 msgstr ""
 
-#: gnu/packages/gtk.scm:1019
+#: gnu/packages/gtk.scm:1051
 msgid ""
 "Pangomm provides a C++ programming interface to the Pango text rendering\n"
 "library."
 msgstr ""
 
-#: gnu/packages/gtk.scm:1040
+#: gnu/packages/gtk.scm:1072
 msgid "C++ interface to the ATK accessibility library"
 msgstr ""
 
-#: gnu/packages/gtk.scm:1042
+#: gnu/packages/gtk.scm:1074
 msgid ""
 "ATKmm provides a C++ programming interface to the ATK accessibility\n"
 "toolkit."
 msgstr ""
 
-#: gnu/packages/gtk.scm:1082
+#: gnu/packages/gtk.scm:1118
 msgid "C++ interface to the GTK+ graphical user interface library"
 msgstr ""
 
-#: gnu/packages/gtk.scm:1084
+#: gnu/packages/gtk.scm:1120
 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"
@@ -6300,32 +7111,86 @@ msgid ""
 "extensive documentation, including API reference and a tutorial."
 msgstr ""
 
-#: gnu/packages/gtk.scm:1143
-#, fuzzy
+#: gnu/packages/gtk.scm:1169
+msgid "C++ interface to the GTK+ 'GtkTextView' widget"
+msgstr ""
+
+#: gnu/packages/gtk.scm:1171
+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:1201
 msgid "Python bindings for cairo"
-msgstr "Enlazando XOSD para Guile"
+msgstr "Enlace Python para cairo"
 
-#: gnu/packages/gtk.scm:1145
+#: gnu/packages/gtk.scm:1203
 msgid "Pycairo is a set of Python bindings for the Cairo graphics library."
 msgstr ""
 
-#: gnu/packages/gtk.scm:1229
-#, fuzzy
+#: gnu/packages/gtk.scm:1276
 msgid "Python bindings for GTK+"
-msgstr "Enlazando XOSD para Guile"
+msgstr "Enlaces Python para GTK+"
 
-#: gnu/packages/gtk.scm:1231
+#: gnu/packages/gtk.scm:1278
 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:1262
+#: gnu/packages/gtk.scm:1302
+msgid "Perl interface to the cairo 2d vector graphics library"
+msgstr ""
+
+#: gnu/packages/gtk.scm:1303
+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
+msgid "Perl interface to the 2.x series of the Gimp Toolkit library"
+msgstr ""
+
+#: gnu/packages/gtk.scm:1329
+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:1356
+msgid "Layout and render international text"
+msgstr ""
+
+#: gnu/packages/gtk.scm:1357
+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:1410
 msgid "Library for minimalistic gtk+3 user interfaces"
 msgstr ""
 
-#: gnu/packages/gtk.scm:1263
+#: gnu/packages/gtk.scm:1411
 msgid ""
 "Girara is a library that implements a user interface that\n"
 "focuses on simplicity and minimalism.  Currently based on GTK+, a\n"
@@ -6336,188 +7201,126 @@ msgid ""
 "information."
 msgstr ""
 
-#: gnu/packages/gtk.scm:1330
+#: gnu/packages/gtk.scm:1510
 msgid "Documentation generator from C source code"
-msgstr ""
+msgstr "Generador de documentación desde código fuente C"
 
-#: gnu/packages/gtk.scm:1332
+#: gnu/packages/gtk.scm:1512
 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 ""
+"GTK-Doc genera documentación API desde comentarios añadidos al código C.\n"
+"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:1360
+#: gnu/packages/gtk.scm:1540
 msgid "Theming engines for GTK+ 2.x"
-msgstr ""
+msgstr "Motores de temarios para GTK+ 2.x"
 
-#: gnu/packages/gtk.scm:1362
+#: gnu/packages/gtk.scm:1542
 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:1390
+#: gnu/packages/gtk.scm:1570
 msgid "Cairo-based theming engine for GTK+ 2.x"
 msgstr ""
 
-#: gnu/packages/gtk.scm:1392
+#: gnu/packages/gtk.scm:1572
 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:1417
+#: gnu/packages/gtk.scm:1598
 msgid "Spell-checking addon for GTK's TextView widget"
 msgstr ""
 
-#: gnu/packages/gtk.scm:1419
+#: gnu/packages/gtk.scm:1600
 msgid ""
 "GtkSpell provides word-processor-style highlighting and replacement of\n"
 "misspelled words in a GtkTextView widget."
 msgstr ""
 
-#: gnu/packages/gtk.scm:1442
+#: gnu/packages/gtk.scm:1626
 msgid "Lightweight GTK+ clipboard manager"
-msgstr ""
+msgstr "Gestor de portapapeles GTK+ ligero"
 
-#: gnu/packages/gtk.scm:1444
+#: gnu/packages/gtk.scm:1628
 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:1481
+#: gnu/packages/gtk.scm:1660
 msgid "Thin layer of graphic data types"
-msgstr ""
+msgstr "Capa delgada para tipos de datos gráficos"
 
-#: gnu/packages/gtk.scm:1482
+#: gnu/packages/gtk.scm:1661
 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."
 msgstr ""
 
-#: gnu/packages/guile.scm:132 gnu/packages/guile.scm:211
-msgid "Scheme implementation intended especially for extensions"
-msgstr ""
-
-#: gnu/packages/guile.scm:134 gnu/packages/guile.scm:213
-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"
-"the Scheme language which can be easily embedded in other applications to\n"
-"provide a convenient means of extending the functionality of the application\n"
-"without requiring the source code to be rewritten."
+#: gnu/packages/gtk.scm:1686
+msgid "Gtk+ widget for dealing with 2-D tabular data"
 msgstr ""
 
-#: gnu/packages/guile.scm:379
-msgid "Package manager for Guile"
-msgstr "Gestor de Paquetes para Guile"
-
-#: gnu/packages/guile.scm:381
+#: gnu/packages/gtk.scm:1688
 msgid ""
-"Guildhall is a package manager written for Guile Scheme.  A guild is\n"
-"an association of independent craftspeople.  A guildhall is where they meet.\n"
-"This Guildhall aims to make a virtual space for Guile wizards and journeyfolk\n"
-"to share code.\n"
-"\n"
-"On a practical level, Guildhall lets you share Scheme modules and programs\n"
-"over the internet, and install code that has been shared by others.  Guildhall\n"
-"can handle dependencies, so when a program requires several libraries, and\n"
-"each of those has further dependencies, all of the prerequisites for the\n"
-"program can be installed in one go."
+"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/guile.scm:473
-msgid "Web application framework written in Guile"
+#: gnu/packages/gtk.scm:1729
+msgid "GTK+ dialog boxes for shell scripts"
 msgstr ""
 
-#: gnu/packages/guile.scm:474
+#: gnu/packages/gtk.scm:1731
 msgid ""
-"GNU Artanis is a web application framework written in Guile\n"
-"Scheme.  A web application framework (WAF) is a software framework that is\n"
-"designed to support the development of dynamic websites, web applications, web\n"
-"services and web resources.  The framework aims to alleviate the overhead\n"
-"associated with common activities performed in web development.  Artanis\n"
-"provides several tools for web development: database access, templating\n"
-"frameworks, session management, URL-remapping for RESTful, page caching, and\n"
-"more."
+"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:500
-msgid "Framework for building readers for GNU Guile"
+#: gnu/packages/guile.scm:125 gnu/packages/guile.scm:206
+msgid "Scheme implementation intended especially for extensions"
 msgstr ""
 
-#: gnu/packages/guile.scm:502
+#: gnu/packages/guile.scm:127 gnu/packages/guile.scm:208
 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"
-"\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)."
+"Guile is the GNU Ubiquitous Intelligent Language for Extensions, the\n"
+"official extension language of the GNU system.  It is an implementation of\n"
+"the Scheme language which can be easily embedded in other applications to\n"
+"provide a convenient means of extending the functionality of the application\n"
+"without requiring the source code to be rewritten."
 msgstr ""
 
-#: gnu/packages/guile.scm:556
+#: gnu/packages/guile.scm:364
 #, fuzzy
-msgid "Guile bindings to ncurses"
-msgstr "Enlazando XOSD para Guile"
-
-#: gnu/packages/guile.scm:558
-msgid ""
-"guile-ncurses provides Guile language bindings for the ncurses\n"
-"library."
-msgstr ""
-
-#: gnu/packages/guile.scm:585
-msgid "Run jobs at scheduled times"
-msgstr ""
-
-#: gnu/packages/guile.scm:587
-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."
-msgstr ""
+#| msgid "Cairo bindings for GNU Guile"
+msgid "Line editing support for GNU Guile"
+msgstr "Enlazando Cairo para GNU Guile"
 
-#: gnu/packages/guile.scm:674
-msgid "Guile parser library for the iCalendar format"
-msgstr ""
-
-#: gnu/packages/guile.scm:676
-msgid ""
-"Guile-ICS is an iCalendar (RFC5545) format parser library written in\n"
-"pure Scheme.  The library can be used to read and write iCalendar data.\n"
-"\n"
-"The library is shipped with documentation in Info format and usage examples."
-msgstr ""
-
-#: gnu/packages/guile.scm:711
-msgid "Collection of useful Guile Scheme modules"
-msgstr ""
-
-#: gnu/packages/guile.scm:713
+#: gnu/packages/guile.scm:366
 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 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:754
+#: gnu/packages/guile.scm:446
 msgid "JSON module for Guile"
 msgstr "JSON modular para Guile"
 
-#: gnu/packages/guile.scm:756
+#: gnu/packages/guile.scm:448
 msgid ""
 "Guile-JSON supports parsing and building JSON documents according to the\n"
 "specification.  These are the main features:\n"
@@ -6530,218 +7333,29 @@ msgid ""
 "@end itemize\n"
 msgstr ""
 
-#: gnu/packages/guile.scm:843
-msgid "MiniKanren declarative logic system, packaged for Guile"
-msgstr ""
-
-#: gnu/packages/guile.scm:845
-msgid ""
-"MiniKanren is a relational programming extension to the Scheme\n"
-"programming Language, written as a smaller version of Kanren suitable for\n"
-"pedagogical purposes.  It is featured in the book, The Reasoned Schemer,\n"
-"written by Dan Friedman, William Byrd, and Oleg Kiselyov.\n"
-"\n"
-"This is Ian Price's r6rs packaged version of miniKanren, which deviates\n"
-"slightly from miniKanren mainline.\n"
-"\n"
-"See http://minikanren.org/ for more on miniKanren generally."
-msgstr ""
-
-#: gnu/packages/guile.scm:916
-msgid ""
-"Minimal implementation of incremental computation in Guile\n"
-"Scheme"
-msgstr ""
-
-#: gnu/packages/guile.scm:918
-msgid ""
-"This package provides a complete Scheme implementation of\n"
-"miniAdapton, which implements the core functionality of the Adapton system for\n"
-"incremental computation (also known as self-adjusting computation).  Like\n"
-"Adapton, miniAdapton allows programmers to safely combine mutation and\n"
-"memoization.  miniAdapton is built on top of an even simpler system,\n"
-"microAdapton.  Both miniAdapton and microAdapton are designed to be easy to\n"
-"understand, extend, and port to host languages other than Scheme."
-msgstr ""
-
-#: gnu/packages/guile.scm:1002
-#, fuzzy
-msgid "S-expression based regular expressions"
-msgstr ""
-"Error en la expresión regular «%s»:\n"
-"%s"
-
-#: gnu/packages/guile.scm:1004
-msgid ""
-"Irregex is an s-expression based alternative to your classic\n"
-"string-based regular expressions.  It implements SRFI 115 and is deeply\n"
-"inspired by the SCSH regular expression system."
-msgstr ""
-
-#: gnu/packages/guile.scm:1085
+#: gnu/packages/guile.scm:524
 msgid "Guile bindings to the GDBM library via Guile's FFI"
 msgstr ""
 
-#: gnu/packages/guile.scm:1087
+#: gnu/packages/guile.scm:526
 msgid ""
 "Guile bindings to the GDBM key-value storage system, using\n"
 "Guile's foreign function interface."
 msgstr ""
 
-#: gnu/packages/guile.scm:1140
+#: gnu/packages/guile.scm:558
 msgid "Access SQLite databases from Guile"
-msgstr ""
+msgstr "BD Access SQLite desde Guile"
 
-#: gnu/packages/guile.scm:1142
+#: gnu/packages/guile.scm:560
 msgid "This package provides Guile bindings to the SQLite database system."
 msgstr ""
 
-#: gnu/packages/guile.scm:1187
-msgid "Functional static site generator"
-msgstr ""
-
-#: gnu/packages/guile.scm:1188
-msgid ""
-"Haunt is a static site generator written in Guile\n"
-"Scheme.  Haunt features a functional build system and an extensible\n"
-"interface for reading articles in any format."
-msgstr ""
-
-#: gnu/packages/guile.scm:1215
-msgid "Guile application configuration parsing library"
-msgstr ""
-
-#: gnu/packages/guile.scm:1217
-msgid ""
-"Guile Config is a library providing a declarative approach to\n"
-"application configuration specification.  The library provides clean\n"
-"configuration declaration forms, and processors that take care of:\n"
-"configuration file creation; configuration file parsing; command-line\n"
-"parameter parsing using getopt-long; basic GNU command-line parameter\n"
-"generation (--help, --usage, --version); automatic output generation for the\n"
-"above command-line parameters."
-msgstr ""
-
-#: gnu/packages/guile.scm:1255
-msgid "Redis client library for Guile"
-msgstr ""
-
-#: gnu/packages/guile.scm:1256
-msgid ""
-"Guile-redis provides a Scheme interface to the Redis\n"
-"key-value cache and store."
-msgstr ""
-
-#: gnu/packages/guile.scm:1330
-msgid "Whitespace to lisp syntax for Guile"
-msgstr ""
-
-#: gnu/packages/guile.scm:1331
-msgid ""
-"Wisp is a syntax for Guile which provides a Python-like\n"
-"whitespace-significant language.  It may be easier on the eyes for some\n"
-"users and in some situations."
-msgstr ""
-
-#: gnu/packages/guile.scm:1381
-msgid "2D/3D game engine for GNU Guile"
-msgstr ""
-
-#: gnu/packages/guile.scm:1382
-msgid ""
-"Sly is a 2D/3D game engine written in Guile Scheme.  Sly\n"
-"features a functional reactive programming interface and live coding\n"
-"capabilities."
-msgstr ""
-
-#: gnu/packages/guile.scm:1418
-#, fuzzy
-msgid "Generate C bindings for Guile"
-msgstr "Enlazando XOSD para Guile"
-
-#: gnu/packages/guile.scm:1419
-msgid ""
-"G-Wrap is a tool and Guile library for generating function\n"
-"wrappers for inter-language calls.  It currently only supports generating Guile\n"
-"wrappers for C functions.  Given a definition of the types and prototypes for\n"
-"a given C interface, G-Wrap will automatically generate the C code that\n"
-"provides access to that interface and its types from the Scheme level."
-msgstr ""
-
-#: gnu/packages/guile.scm:1456
-msgid "Guile database abstraction layer"
-msgstr ""
-
-#: gnu/packages/guile.scm:1459
-msgid ""
-"guile-dbi is a library for Guile that provides a convenient interface to\n"
-"SQL databases.  Database programming with guile-dbi is generic in that the same\n"
-"programming interface is presented regardless of which database system is used.\n"
-"It currently supports MySQL, Postgres and SQLite3."
-msgstr ""
-
-#: gnu/packages/guile.scm:1485
-msgid "Guile DBI driver for SQLite"
-msgstr ""
-
-#: gnu/packages/guile.scm:1488
-msgid ""
-"guile-dbi is a library for Guile that provides a convenient interface to\n"
-"SQL databases.  This package implements the interface for SQLite."
-msgstr ""
-
-#: gnu/packages/guile.scm:1534
-msgid "DSV module for Guile"
-msgstr "Módulo DSV para Guile"
-
-#: gnu/packages/guile.scm:1536
-msgid ""
-"Guile-DSV is a GNU Guile module for working with the\n"
-"delimiter-separated values (DSV) data format.  Guile-DSV supports the\n"
-"Unix-style DSV format and RFC 4180 format."
-msgstr ""
-
-#: gnu/packages/guile.scm:1563
-msgid "XOSD bindings for Guile"
-msgstr "Enlazando XOSD para Guile"
-
-#: gnu/packages/guile.scm:1565
-msgid ""
-"Guile-XOSD provides Guile bindings for @code{libxosd},\n"
-"@uref{http://sourceforge.net/projects/libxosd/, the X On Screen Display\n"
-"library}."
-msgstr ""
-
-#: gnu/packages/guile.scm:1588
-msgid "Evaluate code in a running Guile process"
-msgstr ""
-
-#: gnu/packages/guile.scm:1590
-msgid ""
-"Guile-Daemon is a small Guile program that loads your initial\n"
-"configuration file, and then reads and evaluates Guile expressions that\n"
-"you send to a FIFO file."
-msgstr ""
-
-#: gnu/packages/guile.scm:1621
-#, fuzzy
-msgid "CommonMark parser for Guile"
-msgstr "Gestor de Paquetes para Guile"
-
-#: gnu/packages/guile.scm:1623
-msgid ""
-"guile-commonmark is a library for parsing CommonMark, a fully specified\n"
-"variant of Markdown.  The library is written in Guile Scheme and is designed\n"
-"to transform a CommonMark document to SXML.  guile-commonmark tries to closely\n"
-"follow the @uref{http://commonmark.org/, CommonMark spec}, the main difference\n"
-"is no support for parsing block and inline level HTML."
-msgstr ""
-
-#: gnu/packages/guile.scm:1726
+#: gnu/packages/guile.scm:584
 msgid "Structured access to bytevector contents for Guile"
 msgstr ""
 
-#: gnu/packages/guile.scm:1728
+#: gnu/packages/guile.scm:586
 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"
@@ -6750,121 +7364,21 @@ msgid ""
 "type system, elevating types to first-class status."
 msgstr ""
 
-#: gnu/packages/guile.scm:1772
-msgid "Spell-checking from Guile"
-msgstr ""
-
-#: gnu/packages/guile.scm:1774
-msgid ""
-"guile-aspell is a Guile Scheme library for comparing a string against a\n"
-"dictionary and suggesting spelling corrections."
-msgstr ""
-
-#: gnu/packages/guile.scm:1828
-msgid "Extend Bash using Guile"
-msgstr ""
-
-#: gnu/packages/guile.scm:1830
-#, scheme-format
-msgid ""
-"Guile-Bash provides a shared library and set of Guile modules,\n"
-"allowing you to extend Bash in Scheme.  Scheme interfaces allow you to access\n"
-"the following aspects of Bash:\n"
-"\n"
-"@itemize\n"
-"@item aliases;\n"
-"@item setting and getting Bash variables;\n"
-"@item creating dynamic variables;\n"
-"@item creating Bash functions with a Scheme implementation;\n"
-"@item reader macro for output capturing;\n"
-"@item reader macro for evaluating raw Bash commands.\n"
-"@end itemize\n"
-"\n"
-"To enable it, run:\n"
-"\n"
-"@example\n"
-"enable -f ~/.guix-profile/lib/bash/libguile-bash.so scm\n"
-"@end example\n"
-"\n"
-"and then run @command{scm example.scm}."
-msgstr ""
-
-#: gnu/packages/guile.scm:1877
-msgid "Asynchronous actor model library for Guile"
-msgstr ""
-
-#: gnu/packages/guile.scm:1879
-msgid ""
-"GNU 8sync (pronounced \"eight-sync\") is an asynchronous programming\n"
-"library for GNU Guile based on the actor model.\n"
-"\n"
-"Note that 8sync is only available for Guile 2.2."
-msgstr ""
-
-#: gnu/packages/guile.scm:1902
-msgid "Lightweight concurrency facility for Guile"
-msgstr ""
-
-#: gnu/packages/guile.scm:1904
-msgid ""
-"Fibers is a Guile library that implements a a lightweight concurrency\n"
-"facility, inspired by systems like Concurrent ML, Go, and Erlang.  A fiber is\n"
-"like a \"goroutine\" from the Go language: a lightweight thread-like\n"
-"abstraction.  Systems built with Fibers can scale up to millions of concurrent\n"
-"fibers, tens of thousands of concurrent socket connections, and many parallel\n"
-"cores.  The Fibers library also provides Concurrent ML-like channels for\n"
-"communication between fibers.\n"
-"\n"
-"Note that Fibers makes use of some Guile 2.1/2.2-specific features and\n"
-"is not available for Guile 2.0."
-msgstr ""
-
-#: gnu/packages/guile.scm:1959
+#: gnu/packages/guile.scm:620
 msgid "Guile bindings for libgit2"
 msgstr "Enlazando Guile para libgit2"
 
-#: gnu/packages/guile.scm:1961
+#: gnu/packages/guile.scm:622
 msgid ""
 "This package provides Guile bindings to libgit2, a library to\n"
 "manipulate repositories of the Git version control system."
 msgstr ""
 
-#: gnu/packages/guile.scm:1996
-msgid "General-purpose syntax highlighter for GNU Guile"
-msgstr ""
-
-#: gnu/packages/guile.scm:1997
-msgid ""
-"Guile-syntax-highlight is a general-purpose syntax\n"
-"highlighting library for GNU Guile.  It can parse code written in various\n"
-"programming languages into a simple s-expression that can be converted to\n"
-"HTML (via SXML) or any other format for rendering."
-msgstr ""
-
-#: gnu/packages/guile.scm:2028
-msgid "S-expression based json reader/writer for Guile"
-msgstr ""
-
-#: gnu/packages/guile.scm:2029
-msgid ""
-"guile-sjson is a json reader/writer for Guile.\n"
-"It has a nice, simple s-expression based syntax."
-msgstr ""
-
-#: gnu/packages/guile.scm:2073
-#, fuzzy
-msgid "Colorized REPL for Guile"
-msgstr "Gestor de Paquetes para Guile"
-
-#: gnu/packages/guile.scm:2075
-msgid "Guile-colorized provides you with a colorized REPL for GNU Guile."
-msgstr ""
-
-#: gnu/packages/imagemagick.scm:109 gnu/packages/imagemagick.scm:220
+#: gnu/packages/imagemagick.scm:113 gnu/packages/imagemagick.scm:216
 msgid "Create, edit, compose, or convert bitmap images"
 msgstr ""
 
-#: gnu/packages/imagemagick.scm:111
+#: gnu/packages/imagemagick.scm:115
 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"
@@ -6874,12 +7388,11 @@ msgid ""
 "text, lines, polygons, ellipses and Bézier curves."
 msgstr ""
 
-#: gnu/packages/imagemagick.scm:156
-#, fuzzy
+#: gnu/packages/imagemagick.scm:162
 msgid "Perl interface to ImageMagick"
-msgstr "scripts internos empotrados en perl."
+msgstr "Interfaz Perl para ImageMagic"
 
-#: gnu/packages/imagemagick.scm:157
+#: gnu/packages/imagemagick.scm:163
 msgid ""
 "This Perl extension allows the reading, manipulation and\n"
 "writing of a large number of image file formats using the ImageMagick library.\n"
@@ -6887,98 +7400,103 @@ msgid ""
 "script."
 msgstr ""
 
-#: gnu/packages/imagemagick.scm:222
+#: gnu/packages/imagemagick.scm:218
 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:94
-#, fuzzy
+#: gnu/packages/image.scm:109
 msgid "Library for handling PNG files"
-msgstr "Biblioteca descodificante para ficheros GIF"
+msgstr "Biblioteca para manipulación de ficheros PNG"
 
-#: gnu/packages/image.scm:96
+#: gnu/packages/image.scm:111
 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:160
+#: gnu/packages/image.scm:194
 msgid "APNG patch for libpng"
 msgstr "Parche APNG para libpng"
 
-#: gnu/packages/image.scm:162
+#: gnu/packages/image.scm:196
 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:202
-#, fuzzy
-msgid "Read and write PNG images"
-msgstr "Lectura-Escritura"
+#: gnu/packages/image.scm:251
+msgid "Utility to compress PNG files"
+msgstr "Utilidad para comprimir ficheros PNG"
 
-#: gnu/packages/image.scm:204
+#: gnu/packages/image.scm:252
 msgid ""
-"This package provides an easy and simple way to read, write and display\n"
-"bitmap images stored in the PNG format.  It can read and write both files and\n"
-"in-memory raw vectors."
+"pngcrusqh is an optimizer for PNG (Portable Network Graphics)\n"
+"files.  It can compress them as much as 40% losslessly."
 msgstr ""
 
-#: gnu/packages/image.scm:239
+#: gnu/packages/image.scm:310
 #, fuzzy
-msgid "Utility to compress PNG files"
-msgstr "Comprime o expande ficheros"
+#| msgid "Parser building library"
+msgid "Pretty small png library"
+msgstr "Interpretador construyendo biblioteca"
 
-#: gnu/packages/image.scm:240
+#: gnu/packages/image.scm:311
 msgid ""
-"pngcrusqh is an optimizer for PNG (Portable Network Graphics)\n"
-"files.  It can compress them as much as 40% losslessly."
+"A pretty small png library.\n"
+"Currently all documentation resides in @file{pnglite.h}."
 msgstr ""
 
-#: gnu/packages/image.scm:259
-#, fuzzy
+#: gnu/packages/image.scm:326
 msgid "Library for handling JPEG files"
-msgstr "Biblioteca descodificante para ficheros GIF"
+msgstr "Biblioteca para manipulación de ficheros JPEG"
 
-#: gnu/packages/image.scm:261
+#: gnu/packages/image.scm:328
 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:326
+#: gnu/packages/image.scm:401
 msgid "Implementation of the JPEG XR standard"
 msgstr ""
 
-#: gnu/packages/image.scm:327
+#: gnu/packages/image.scm:402
 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:350
+#: gnu/packages/image.scm:424
 msgid "Optimize JPEG images"
 msgstr "Optimiza imágenes JPEG"
 
-#: gnu/packages/image.scm:352
+#: gnu/packages/image.scm:426
 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:377
+#: gnu/packages/image.scm:451
 msgid "Library for handling Mac OS icns resource files"
-msgstr ""
+msgstr "Biblioteca para manipulación de ficheros de recursos icns Mac OS"
 
-#: gnu/packages/image.scm:379
+#: gnu/packages/image.scm:453
 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"
@@ -6988,12 +7506,11 @@ msgid ""
 "extracting icontainer icon files."
 msgstr ""
 
-#: gnu/packages/image.scm:418
-#, fuzzy
+#: gnu/packages/image.scm:486
 msgid "Library for handling TIFF files"
-msgstr "Biblioteca descodificante para ficheros GIF"
+msgstr "Biblioteca para manipulación de ficheros TIFF"
 
-#: gnu/packages/image.scm:420
+#: gnu/packages/image.scm:488
 msgid ""
 "Libtiff provides support for the Tag Image File Format (TIFF), a format\n"
 "used for storing image data.\n"
@@ -7001,11 +7518,11 @@ msgid ""
 "collection of tools for doing simple manipulations of TIFF images."
 msgstr ""
 
-#: gnu/packages/image.scm:472
+#: gnu/packages/image.scm:541
 msgid "Library and tools for image processing and analysis"
 msgstr ""
 
-#: gnu/packages/image.scm:474
+#: gnu/packages/image.scm:543
 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"
@@ -7015,13 +7532,13 @@ msgid ""
 "arithmetic ops."
 msgstr ""
 
-#: gnu/packages/image.scm:500
+#: gnu/packages/image.scm:566
 msgid "Decoder of the JBIG2 image compression format"
 msgstr ""
 
-#: gnu/packages/image.scm:502
+#: gnu/packages/image.scm:568
 msgid ""
-"JBIG2 is designed for lossy or lossless encoding of 'bilevel' (1-bit\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"
@@ -7032,11 +7549,11 @@ msgid ""
 "work."
 msgstr ""
 
-#: gnu/packages/image.scm:537
+#: gnu/packages/image.scm:604
 msgid "JPEG 2000 codec"
 msgstr "Código JPEG 2000"
 
-#: gnu/packages/image.scm:539
+#: gnu/packages/image.scm:606
 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"
@@ -7049,11 +7566,11 @@ msgid ""
 "error-resilience, a Java-viewer for j2k-images, ..."
 msgstr ""
 
-#: gnu/packages/image.scm:602
+#: gnu/packages/image.scm:687
 msgid "Tools and library for working with GIF images"
 msgstr ""
 
-#: gnu/packages/image.scm:604
+#: gnu/packages/image.scm:689
 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"
@@ -7061,19 +7578,19 @@ msgid ""
 "compose, and analyze GIF images."
 msgstr ""
 
-#: gnu/packages/image.scm:626
+#: gnu/packages/image.scm:711
 msgid "GIF decompression library"
 msgstr "Biblioteca descompresora GIF"
 
-#: gnu/packages/image.scm:628
+#: gnu/packages/image.scm:713
 msgid "libungif is the old GIF decompression library by the GIFLIB project."
 msgstr ""
 
-#: gnu/packages/image.scm:657
+#: gnu/packages/image.scm:742
 msgid "Loading, saving, rendering and manipulating image files"
 msgstr ""
 
-#: gnu/packages/image.scm:659
+#: gnu/packages/image.scm:744
 msgid ""
 "Imlib2 is a library that does image file loading and saving as well as\n"
 "rendering, manipulation, arbitrary polygon support, etc.\n"
@@ -7086,35 +7603,32 @@ msgid ""
 "more modular, simple, and flexible."
 msgstr ""
 
-#: gnu/packages/image.scm:691
+#: gnu/packages/image.scm:776
 msgid "Wrapper library for imlib2"
 msgstr "Biblioteca cubierta para imlib2"
 
-#: gnu/packages/image.scm:693
+#: gnu/packages/image.scm:778
 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:735
+#: gnu/packages/image.scm:859
 msgid "Library for handling popular graphics image formats"
 msgstr ""
 
-#: gnu/packages/image.scm:737
+#: gnu/packages/image.scm:861
 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:792
-#, fuzzy
+#: gnu/packages/image.scm:927
 msgid "Computer vision library"
-msgstr ""
-"\t-l biblioteca\t\t--load=biblioteca\n"
-"\n"
+msgstr "Biblioteca de visión de computación"
 
-#: gnu/packages/image.scm:794
+#: gnu/packages/image.scm:929
 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"
@@ -7122,12 +7636,24 @@ msgid ""
 "multi-dimensional image processing."
 msgstr ""
 
-#: gnu/packages/image.scm:826
+#: gnu/packages/image.scm:962
 #, 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
+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
 msgid "Lossless and lossy image compression"
-msgstr "Compresión de Imagen"
+msgstr "Compresión de Imagen de pérdida menor y mínima"
 
-#: gnu/packages/image.scm:828
+#: gnu/packages/image.scm:1006
 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"
@@ -7139,53 +7665,52 @@ msgid ""
 "channels."
 msgstr ""
 
-#: gnu/packages/image.scm:856
-#, fuzzy
+#: gnu/packages/image.scm:1034
 msgid "Library for handling MNG files"
-msgstr "Biblioteca descodificante para ficheros GIF"
+msgstr "Biblioteca para manipulación de ficheros MNG"
 
-#: gnu/packages/image.scm:858
+#: gnu/packages/image.scm:1036
 msgid "Libmng is the MNG (Multiple-image Network Graphics) reference library."
 msgstr ""
 
-#: gnu/packages/image.scm:886
+#: gnu/packages/image.scm:1064
 msgid "Library and command-line utility to manage image metadata"
 msgstr ""
 
-#: gnu/packages/image.scm:888
+#: gnu/packages/image.scm:1066
 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:928
+#: gnu/packages/image.scm:1106
 msgid "Library for manipulating many image formats"
 msgstr ""
 
-#: gnu/packages/image.scm:929
+#: gnu/packages/image.scm:1107
 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:949
+#: gnu/packages/image.scm:1128
 msgid "JPEG-2000 library"
 msgstr "Biblioteca JPEG-2000"
 
-#: gnu/packages/image.scm:950
+#: gnu/packages/image.scm:1129
 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:980
+#: gnu/packages/image.scm:1160
 msgid "Scaling, colorspace conversion, and dithering library"
 msgstr ""
 
-#: gnu/packages/image.scm:981
+#: gnu/packages/image.scm:1161
 msgid ""
 "Zimg implements the commonly required image processing basics\n"
 "of scaling, colorspace conversion, and depth conversion.  A simple API enables\n"
@@ -7193,11 +7718,11 @@ msgid ""
 "the programmer."
 msgstr ""
 
-#: gnu/packages/image.scm:1014
+#: gnu/packages/image.scm:1195
 msgid "Perceptual image comparison utility"
-msgstr ""
+msgstr "Utilidad de comparación de imagen perceptible"
 
-#: gnu/packages/image.scm:1015
+#: gnu/packages/image.scm:1196
 msgid ""
 "PerceptualDiff visually compares two images to determine\n"
 "whether they look alike.  It uses a computational model of the human visual\n"
@@ -7205,37 +7730,33 @@ msgid ""
 "differences in file encoding, image quality, and other small variations."
 msgstr ""
 
-#: gnu/packages/image.scm:1055
-#, fuzzy
+#: gnu/packages/image.scm:1236
 msgid "Image and audio steganography"
-msgstr "                                        : Audio\n"
+msgstr "Esteganografía de imagen y sonido"
 
-#: gnu/packages/image.scm:1057
+#: gnu/packages/image.scm:1238
 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:1082
-#, fuzzy
+#: gnu/packages/image.scm:1263
 msgid "Image library for Extempore"
-msgstr "                                        : Imagen\n"
+msgstr "Biblioteca de imagen para Extempore"
 
-#: gnu/packages/image.scm:1084
+#: 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:1112
-msgid ""
-"Optimizer that recompresses PNG image files to a\n"
-"smaller size"
+#: gnu/packages/image.scm:1302
+msgid "Optimizer that recompresses PNG image files to a smaller size"
 msgstr ""
 
-#: gnu/packages/image.scm:1114
+#: gnu/packages/image.scm:1303
 msgid ""
 "OptiPNG is a PNG optimizer that recompresses image\n"
 "files to a smaller size, without losing any information.  This program\n"
@@ -7243,11 +7764,11 @@ msgid ""
 "PNG, and performs PNG integrity checks and corrections."
 msgstr ""
 
-#: gnu/packages/image.scm:1139
+#: gnu/packages/image.scm:1329
 msgid "SIMD-accelerated JPEG image handling library"
 msgstr ""
 
-#: gnu/packages/image.scm:1140
+#: gnu/packages/image.scm:1330
 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"
@@ -7260,11 +7781,11 @@ msgid ""
 "and decompress to 32-bit and big-endian pixel buffers (RGBX, XBGR, etc.)."
 msgstr ""
 
-#: gnu/packages/image.scm:1188
+#: gnu/packages/image.scm:1392
 msgid "Library for reading and writing files in the nifti-1 format"
 msgstr ""
 
-#: gnu/packages/image.scm:1189
+#: gnu/packages/image.scm:1393
 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"
@@ -7272,19 +7793,114 @@ msgid ""
 "(fMRI) brain images."
 msgstr ""
 
-#: gnu/packages/image.scm:1235
+#: gnu/packages/image.scm:1434
 msgid "Color picker"
 msgstr "Escogedor de color"
 
-#: gnu/packages/image.scm:1236
+#: gnu/packages/image.scm:1435
 msgid "Gpick is an advanced color picker and palette editing tool."
 msgstr ""
 
-#: gnu/packages/image-viewers.scm:91
-msgid "Fast and light imlib2-based image viewer"
+#: gnu/packages/image.scm:1453
+#, fuzzy
+#| msgid "CSS2 parsing and manipulation library"
+msgid "IPTC metadata manipulation library"
+msgstr "Biblioteca interpretando CSS2 y manipulación"
+
+#: gnu/packages/image.scm:1455
+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:1492
+msgid "Powerful yet simple to use screenshot software"
+msgstr ""
+
+#: gnu/packages/image.scm:1493
+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: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
+msgid "Edit GIF images and animations"
+msgstr ""
+
+#: gnu/packages/image.scm:1554
+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:1594
+msgid "Convert JPEG images to ASCII"
+msgstr ""
+
+#: gnu/packages/image.scm:1596
+msgid "Jp2a is a small utility that converts JPEG images to ASCII."
+msgstr ""
+
+#: gnu/packages/image.scm:1620
+msgid "Create screenshots from a Wayland compositor"
 msgstr ""
 
-#: gnu/packages/image-viewers.scm:93
+#: gnu/packages/image.scm:1621
+msgid "grim can create screenshots from a Wayland compositor."
+msgstr ""
+
+#: gnu/packages/image.scm:1645
+msgid "Select a region in a Wayland compositor"
+msgstr ""
+
+#: gnu/packages/image.scm:1646
+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
+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
 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"
@@ -7293,11 +7909,11 @@ msgid ""
 "actions."
 msgstr ""
 
-#: gnu/packages/image-viewers.scm:143
+#: gnu/packages/image-viewers.scm:155
 msgid "Lightweight GTK+ based image viewer"
 msgstr ""
 
-#: gnu/packages/image-viewers.scm:145
+#: 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"
@@ -7307,21 +7923,21 @@ msgid ""
 "collection.  Geeqie was initially based on GQview."
 msgstr ""
 
-#: gnu/packages/image-viewers.scm:170
+#: gnu/packages/image-viewers.scm:182
 msgid "Simple and fast image viewer for X"
-msgstr ""
+msgstr "Visor de imagen simple y rápido para X"
 
-#: gnu/packages/image-viewers.scm:171
+#: 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:202
+#: gnu/packages/image-viewers.scm:224
 msgid "Simple X Image Viewer"
-msgstr ""
+msgstr "Visor Imagen X Simple"
 
-#: gnu/packages/image-viewers.scm:204
+#: gnu/packages/image-viewers.scm:226
 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"
@@ -7330,11 +7946,11 @@ msgid ""
 "it and customize it for your needs."
 msgstr ""
 
-#: gnu/packages/image-viewers.scm:251
+#: gnu/packages/image-viewers.scm:268
 msgid "Simple, fast and elegant image viewer"
-msgstr ""
+msgstr "Visor de imagen elegante, rápido y simple"
 
-#: gnu/packages/image-viewers.scm:252
+#: gnu/packages/image-viewers.scm:269
 msgid ""
 "Viewnior is an image viewer program.  Created to be simple,\n"
 "fast and elegant.  Its minimalistic interface provides more screenspace for\n"
@@ -7352,22 +7968,21 @@ msgid ""
 "@end enumerate\n"
 msgstr ""
 
-#: gnu/packages/image-viewers.scm:320
-#, fuzzy
+#: gnu/packages/image-viewers.scm:324
 msgid "Render images in the terminal"
-msgstr "fallo al establecer la salida estándar como no utilizable"
+msgstr "Tratamiento de imágenes dentro del terminal"
 
-#: gnu/packages/image-viewers.scm:322
+#: gnu/packages/image-viewers.scm:326
 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:373
+#: gnu/packages/image-viewers.scm:377
 msgid "High dynamic range (HDR) imaging application"
 msgstr ""
 
-#: gnu/packages/image-viewers.scm:375
+#: gnu/packages/image-viewers.scm:379
 msgid ""
 "Luminance HDR (formerly QtPFSGui) is a graphical user interface\n"
 "application that aims to provide a workflow for high dynamic range (HDR)\n"
@@ -7383,11 +7998,11 @@ msgid ""
 "@end itemize\n"
 msgstr ""
 
-#: gnu/packages/image-viewers.scm:422
+#: gnu/packages/image-viewers.scm:427
 msgid "Image viewer for comics"
 msgstr "Visor imagen para comics"
 
-#: gnu/packages/image-viewers.scm:423
+#: gnu/packages/image-viewers.scm:428
 msgid ""
 "MComix is a customizable image viewer that specializes as\n"
 "a comic and manga reader.  It supports a variety of container formats\n"
@@ -7405,22 +8020,21 @@ msgid ""
 "as the native format."
 msgstr ""
 
-#: gnu/packages/jemalloc.scm:60
+#: gnu/packages/jemalloc.scm:63
 msgid "General-purpose scalable concurrent malloc implementation"
 msgstr ""
 
-#: gnu/packages/jemalloc.scm:62
+#: gnu/packages/jemalloc.scm:65
 msgid ""
 "This library providing a malloc(3) implementation that emphasizes\n"
 "fragmentation avoidance and scalable concurrency support."
 msgstr ""
 
-#: gnu/packages/key-mon.scm:50
-#, fuzzy
+#: gnu/packages/key-mon.scm:51
 msgid "Show keyboard and mouse status"
-msgstr "Muestra el estado del árbol de trabajo."
+msgstr "Muestra estado del teclado y ratón"
 
-#: gnu/packages/key-mon.scm:52
+#: 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."
@@ -7441,17 +8055,17 @@ msgstr ""
 
 #: gnu/packages/lesstif.scm:47
 msgid "Clone of the Motif toolkit for the X window system"
-msgstr ""
+msgstr "Clon del kit de herramientas Motif para el sistema de ventanas X"
 
 #: gnu/packages/lesstif.scm:48
 msgid "Clone of the Motif toolkit for the X window system."
-msgstr ""
+msgstr "Clon del kit de herramientas Motif para el sistema de ventanas X."
 
-#: gnu/packages/libreoffice.scm:95
+#: gnu/packages/libreoffice.scm:103
 msgid "General purpose formula parser and interpreter"
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:96
+#: gnu/packages/libreoffice.scm:104
 msgid ""
 "Ixion is a library for calculating the results of formula\n"
 "expressions stored in multiple named targets, or \"cells\".  The cells can\n"
@@ -7459,11 +8073,11 @@ msgid ""
 "their dependencies automatically upon calculation."
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:122
+#: gnu/packages/libreoffice.scm:131
 msgid "File import filter library for spreadsheet documents"
-msgstr ""
+msgstr "Importar fichero filtrador de biblioteca para docuento de hojas de cálculo"
 
-#: gnu/packages/libreoffice.scm:123
+#: gnu/packages/libreoffice.scm:132
 msgid ""
 "Orcus is a library that provides a collection of standalone\n"
 "file processing filters.  It is currently focused on providing filters for\n"
@@ -7473,33 +8087,33 @@ msgid ""
 "CSV, CSS and XML."
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:157
+#: gnu/packages/libreoffice.scm:166
 msgid "Document importer for office suites"
-msgstr ""
+msgstr "Importador documento para suites ofimáticas"
 
-#: gnu/packages/libreoffice.scm:158
+#: gnu/packages/libreoffice.scm:167
 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:183
+#: gnu/packages/libreoffice.scm:192
 msgid "Library for importing WordPerfect documents"
-msgstr ""
+msgstr "Biblioteca para importar documentos WordPerfect"
 
-#: gnu/packages/libreoffice.scm:184
+#: gnu/packages/libreoffice.scm:193
 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:216
+#: gnu/packages/libreoffice.scm:226
 msgid "Library for import of reflowable e-book formats"
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:217
+#: gnu/packages/libreoffice.scm:227
 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"
@@ -7509,64 +8123,75 @@ msgid ""
 "ZVR (simple compressed text format)."
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:246
+#: gnu/packages/libreoffice.scm:257
+#, fuzzy
+#| msgid "Wrapper library for imlib2"
+msgid "EPUB generator library for librevenge"
+msgstr "Biblioteca cubierta para imlib2"
+
+#: gnu/packages/libreoffice.scm:258
+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
 msgid "Library and tools for the WordPerfect Graphics format"
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:247
+#: gnu/packages/libreoffice.scm:285
 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:288
+#: gnu/packages/libreoffice.scm:323
 msgid "CMIS client library"
 msgstr "Cliente biblioteca CMIS"
 
-#: gnu/packages/libreoffice.scm:289
+#: gnu/packages/libreoffice.scm:324
 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:320
-#, fuzzy
+#: gnu/packages/libreoffice.scm:355
 msgid "Library for parsing the AbiWord format"
-msgstr "Biblioteca para interpreción del formato CorelDraw"
+msgstr "Biblioteca para interpretación del formato AbiWord"
 
-#: gnu/packages/libreoffice.scm:321
+#: gnu/packages/libreoffice.scm:356
 msgid ""
 "Libabw is a library that parses the file format of\n"
 "AbiWord documents."
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:352
+#: gnu/packages/libreoffice.scm:384
 msgid "Library for parsing the CorelDRAW format"
-msgstr "Biblioteca para interpreción del formato CorelDraw"
+msgstr "Biblioteca para interpretación del formato CorelDraw"
 
-#: gnu/packages/libreoffice.scm:353
+#: gnu/packages/libreoffice.scm:385
 msgid ""
 "Libcdr is a library that parses the file format of\n"
 "CorelDRAW documents of all versions."
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:385
-#, fuzzy
+#: gnu/packages/libreoffice.scm:418
 msgid "Library for parsing the Apple Keynote format"
-msgstr "Biblioteca para interpreción del formato CorelDraw"
+msgstr "Biblioteca para interpretación del formato Apple Keynote"
 
-#: gnu/packages/libreoffice.scm:386
+#: gnu/packages/libreoffice.scm:419
 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:409
+#: gnu/packages/libreoffice.scm:443
 msgid "Library to access tags for identifying languages"
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:410
+#: gnu/packages/libreoffice.scm:444
 msgid ""
 "Liblangtag implements an interface to work with tags\n"
 "for identifying languages as described in RFC 5646.  It supports the\n"
@@ -7575,66 +8200,73 @@ msgid ""
 "standard 21.0.2."
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:430
+#: gnu/packages/libreoffice.scm:464
 msgid "Text Categorization library"
 msgstr "Biblioteca de Categoría Textual"
 
-#: gnu/packages/libreoffice.scm:431
+#: gnu/packages/libreoffice.scm:465
 msgid ""
 "Libexttextcat is an N-Gram-Based Text Categorization\n"
 "library primarily intended for language guessing."
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:461
-#, fuzzy
+#: gnu/packages/libreoffice.scm:495
 msgid "Library for parsing the FreeHand format"
-msgstr "Biblioteca para interpreción del formato CorelDraw"
+msgstr "Biblioteca para interpretación del formato FreeHand"
 
-#: gnu/packages/libreoffice.scm:462
+#: gnu/packages/libreoffice.scm:496
 msgid ""
 "Libfreehand is a library that parses the file format of\n"
 "Aldus/Macromedia/Adobe FreeHand documents."
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:488
-#, fuzzy
+#: gnu/packages/libreoffice.scm:522
 msgid "Library for parsing the Microsoft Publisher format"
-msgstr "Biblioteca para interpreción del formato CorelDraw"
+msgstr "Biblioteca para interpretación del formato Microsoft Publisher"
 
-#: gnu/packages/libreoffice.scm:489
+#: gnu/packages/libreoffice.scm:523
 msgid ""
 "Libmspub is a library that parses the file format of\n"
 "Microsoft Publisher documents of all versions."
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:514
-#, fuzzy
+#: gnu/packages/libreoffice.scm:543
+msgid "Language-neutral @code{NUMBERTEXT} and @code{MONEYTEXT} functions"
+msgstr ""
+
+#: gnu/packages/libreoffice.scm:545
+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
 msgid "Library for parsing the PageMaker format"
-msgstr "Biblioteca para interpreción del formato CorelDraw"
+msgstr "Biblioteca para interpretación del formato PageMaker"
 
-#: gnu/packages/libreoffice.scm:515
+#: gnu/packages/libreoffice.scm:572
 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:545
-#, fuzzy
+#: gnu/packages/libreoffice.scm:602
 msgid "Library for parsing the Microsoft Visio format"
-msgstr "Biblioteca para interpreción del formato CorelDraw"
+msgstr "Biblioteca para interpretación del formato Microsoft Visio"
 
-#: gnu/packages/libreoffice.scm:546
+#: gnu/packages/libreoffice.scm:603
 msgid ""
 "Libvisio is a library that parses the file format of\n"
 "Microsoft Visio documents of all versions."
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:574
+#: gnu/packages/libreoffice.scm:631
 msgid "ODF (Open Document Format) library"
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:575
+#: gnu/packages/libreoffice.scm:632
 msgid ""
 "Libodfgen is a library for generating documents in the\n"
 "Open Document Format (ODF).  It provides generator implementations for all\n"
@@ -7642,49 +8274,49 @@ msgid ""
 "text documents, vector drawings, presentations and spreadsheets."
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:602
+#: gnu/packages/libreoffice.scm:659
 msgid "Import library for some old Macintosh text documents"
-msgstr ""
+msgstr "Importar biblioteca para algunos antiguos documentos de texto Macintosh"
 
-#: gnu/packages/libreoffice.scm:603
+#: gnu/packages/libreoffice.scm:660
 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:626
+#: gnu/packages/libreoffice.scm:683
 msgid "Provides LibreOffice support for old StarOffice documents"
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:627
+#: gnu/packages/libreoffice.scm:684
 msgid ""
 "@code{libstaroffice} is an import filter for the document formats\n"
 "from the old StarOffice (.sdc, .sdw, ...)."
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:652
+#: gnu/packages/libreoffice.scm:709
 msgid "Import library for Microsoft Works text documents"
-msgstr ""
+msgstr "Importar biblioteca para texto documental Microsoft Works"
 
-#: gnu/packages/libreoffice.scm:653
+#: gnu/packages/libreoffice.scm:710
 msgid ""
 "Libwps is a library for importing files in the Microsoft\n"
 "Works word processor file format."
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:680
+#: gnu/packages/libreoffice.scm:740
 msgid "Parses file format of Zoner Callisto/Draw documents"
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:681
+#: gnu/packages/libreoffice.scm:741
 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:716
+#: gnu/packages/libreoffice.scm:772
 msgid ""
 "Hunspell is a spell checker and morphological analyzer\n"
 "library and program designed for languages with rich morphology and complex\n"
@@ -7692,50 +8324,59 @@ msgid ""
 msgstr ""
 
 #. TRANSLATORS: In French, this is "Français classique".
-#: gnu/packages/libreoffice.scm:779
+#: gnu/packages/libreoffice.scm:835
 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:784
+#: gnu/packages/libreoffice.scm:840
 msgid "Hunspell dictionary for ``modern'' French"
-msgstr "Diccionario Hunspell para francés ``moderno''"
+msgstr "Diccionario Hunspell para el ``moderno'' francés"
 
-#: gnu/packages/libreoffice.scm:788
+#: gnu/packages/libreoffice.scm:844
 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:792
-#, fuzzy
+#: gnu/packages/libreoffice.scm:848
 msgid "Hunspell dictionary for all variants of French"
-msgstr "Diccionario Hunspell para francés ``moderno''"
+msgstr "Diccionario Hunspell para todas las variantes francesas"
 
-#: gnu/packages/libreoffice.scm:810
+#: gnu/packages/libreoffice.scm:866
 msgid "Hyphenation library"
 msgstr "Biblioteca separación silábica"
 
-#: gnu/packages/libreoffice.scm:811
+#: gnu/packages/libreoffice.scm:867
 msgid ""
 "Hyphen is a hyphenation library using TeX hyphenation\n"
 "patterns, which are pre-processed by a perl script."
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:834
+#: gnu/packages/libreoffice.scm:890
 msgid "Thesaurus"
 msgstr "Tesausus"
 
-#: gnu/packages/libreoffice.scm:835
+#: gnu/packages/libreoffice.scm:891
 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:1042
+#: gnu/packages/libreoffice.scm:919
+msgid "Library and tools for the QuarkXPress file format"
+msgstr ""
+
+#: gnu/packages/libreoffice.scm:920
+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
 msgid "Office suite"
 msgstr "Suite oficina"
 
-#: gnu/packages/libreoffice.scm:1043
+#: gnu/packages/libreoffice.scm:1163
 msgid ""
 "LibreOffice is a comprehensive office suite.  It contains\n"
 "a number of components: Writer, a word processor; Calc, a spreadsheet\n"
@@ -7744,74 +8385,89 @@ msgid ""
 "Math for editing mathematics."
 msgstr ""
 
-#: gnu/packages/linux.scm:211
+#: gnu/packages/linux.scm:224
 msgid "GNU Linux-Libre kernel headers"
-msgstr ""
+msgstr "Cabeceras de núcleo GNU Linux-Libre"
 
-#: gnu/packages/linux.scm:212
+#: gnu/packages/linux.scm:225
 msgid "Headers of the Linux-Libre kernel."
-msgstr ""
+msgstr "Cabeceras de núcleo Linux-Libre."
 
-#: gnu/packages/linux.scm:363
+#: gnu/packages/linux.scm:420
 msgid "100% free redistribution of a cleaned Linux kernel"
-msgstr ""
+msgstr "Redistribución 100% libre de un núcleo Linux limpio"
 
-#: gnu/packages/linux.scm:365
+#: gnu/packages/linux.scm:422
 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:463
+#: gnu/packages/linux.scm:457
+msgid "Kernel module that emulates SCSI devices"
+msgstr ""
+
+#: gnu/packages/linux.scm:458
+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
 msgid "Pluggable authentication modules for Linux"
 msgstr ""
 
-#: gnu/packages/linux.scm:465
+#: gnu/packages/linux.scm:605
 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."
 msgstr ""
+"Un proyecto *Libre* para implementar RFC 86.0 de OSF.\n"
+"Módulos autenticados adjuntos son objetos compartidos pequeños que\n"
+"pueden ser utilizados a través de API PAM para realizar tareas, como \n"
+"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:507
+#: gnu/packages/linux.scm:647
 msgid "Small utilities that use the proc file system"
 msgstr ""
 
-#: gnu/packages/linux.scm:509
+#: gnu/packages/linux.scm:649
 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:591
+#: gnu/packages/linux.scm:741
 msgid "Collection of utilities for the Linux kernel"
-msgstr ""
+msgstr "Colección de utilidades para el núcleo Linux"
 
-#: gnu/packages/linux.scm:592
+#: gnu/packages/linux.scm:742
 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:616
+#: gnu/packages/linux.scm:766
 msgid "PERPETUAL DATE CONVERTER FROM GREGORIAN TO POEE CALENDAR"
 msgstr ""
 
-#: gnu/packages/linux.scm:618
+#: gnu/packages/linux.scm:768
 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:663
+#: gnu/packages/linux.scm:804
 msgid "Utilities that give information about processes"
 msgstr ""
 
-#: gnu/packages/linux.scm:665
+#: gnu/packages/linux.scm:806
 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"
@@ -7819,47 +8475,47 @@ msgid ""
 "slabtop, and skill."
 msgstr ""
 
-#: gnu/packages/linux.scm:691
+#: gnu/packages/linux.scm:832
 msgid "Tools for working with USB devices, such as lsusb"
 msgstr ""
 
-#: gnu/packages/linux.scm:693
+#: gnu/packages/linux.scm:834
 msgid "Tools for working with USB devices, such as lsusb."
 msgstr ""
 
-#: gnu/packages/linux.scm:769
+#: gnu/packages/linux.scm:910
 msgid "Creating and checking ext2/ext3/ext4 file systems"
-msgstr ""
+msgstr "Creando y comprobando sistemas de ficheros ext2/ext3/ext4"
 
-#: gnu/packages/linux.scm:771
+#: gnu/packages/linux.scm:912
 msgid "This package provides tools for manipulating ext2/ext3/ext4 file systems."
 msgstr ""
 
-#: gnu/packages/linux.scm:812
+#: gnu/packages/linux.scm:954
 msgid "Statically-linked e2fsck command from e2fsprogs"
 msgstr ""
 
-#: gnu/packages/linux.scm:813
+#: gnu/packages/linux.scm:955
 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:832
+#: gnu/packages/linux.scm:976
 msgid "Recover deleted files from ext2/3/4 partitions"
 msgstr ""
 
-#: gnu/packages/linux.scm:834
+#: gnu/packages/linux.scm:978
 msgid ""
 "Extundelete is a set of tools that can recover deleted files from an\n"
 "ext3 or ext4 partition."
 msgstr ""
 
-#: gnu/packages/linux.scm:865
+#: gnu/packages/linux.scm:1009
 msgid "Zero non-allocated regions in ext2/ext3/ext4 file systems"
 msgstr ""
 
-#: gnu/packages/linux.scm:867
+#: gnu/packages/linux.scm:1011
 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"
@@ -7867,47 +8523,46 @@ msgid ""
 "Zerofree requires the file system to be unmounted or mounted read-only."
 msgstr ""
 
-#: gnu/packages/linux.scm:895
-#, fuzzy
+#: gnu/packages/linux.scm:1043
 msgid "System call tracer for Linux"
-msgstr "fallado la llamada al sistema `fork'"
+msgstr "Traza de llamada al sistema para Linux"
 
-#: gnu/packages/linux.scm:897
+#: gnu/packages/linux.scm:1045
 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:918
+#: gnu/packages/linux.scm:1066
 msgid "Library call tracer for Linux"
-msgstr ""
+msgstr "Traza de llamada bibliotecaria para Linux"
 
-#: gnu/packages/linux.scm:920
+#: gnu/packages/linux.scm:1068
 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:939
+#: gnu/packages/linux.scm:1087
 msgid "The Advanced Linux Sound Architecture libraries"
 msgstr ""
 
-#: gnu/packages/linux.scm:941 gnu/packages/linux.scm:985
+#: gnu/packages/linux.scm:1089 gnu/packages/linux.scm:1133
 msgid ""
 "The Advanced Linux Sound Architecture (ALSA) provides audio and\n"
 "MIDI functionality to the Linux-based operating system."
 msgstr ""
 
-#: gnu/packages/linux.scm:983
+#: gnu/packages/linux.scm:1131
 msgid "Utilities for the Advanced Linux Sound Architecture (ALSA)"
 msgstr ""
 
-#: gnu/packages/linux.scm:1043
+#: gnu/packages/linux.scm:1195
 msgid "Plugins for the Advanced Linux Sound Architecture (ALSA)"
 msgstr ""
 
-#: gnu/packages/linux.scm:1045
+#: gnu/packages/linux.scm:1197
 msgid ""
 "The Advanced Linux Sound Architecture (ALSA) provides audio and\n"
 "MIDI functionality to the Linux-based operating system.  This package enhances ALSA\n"
@@ -7916,25 +8571,27 @@ msgid ""
 "external rate conversion."
 msgstr ""
 
-#: gnu/packages/linux.scm:1079
-msgid "Program to configure the Linux IP packet filtering rules"
+#: gnu/packages/linux.scm:1231
+msgid "Programs to configure Linux IP packet filtering rules"
 msgstr ""
 
-#: gnu/packages/linux.scm:1081
+#: gnu/packages/linux.scm:1233
 msgid ""
-"iptables is the userspace command line program used to configure the\n"
-"Linux 2.4.x and later IPv4 packet filtering ruleset (firewall).  It is targeted at\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:1135
+#: gnu/packages/linux.scm:1289
 msgid "Ethernet bridge frame table administration"
 msgstr ""
 
-#: gnu/packages/linux.scm:1138
+#: gnu/packages/linux.scm:1292
 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"
@@ -7942,11 +8599,11 @@ msgid ""
 "that the Ethernet protocol is much simpler than the IP protocol."
 msgstr ""
 
-#: gnu/packages/linux.scm:1186
+#: gnu/packages/linux.scm:1345
 msgid "Utilities for controlling TCP/IP networking and traffic in Linux"
 msgstr ""
 
-#: gnu/packages/linux.scm:1188
+#: gnu/packages/linux.scm:1347
 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"
@@ -7958,11 +8615,11 @@ msgid ""
 "inadequately in modern network environments, and both should be deprecated."
 msgstr ""
 
-#: gnu/packages/linux.scm:1274
+#: gnu/packages/linux.scm:1424
 msgid "Tools for controlling the network subsystem in Linux"
 msgstr ""
 
-#: gnu/packages/linux.scm:1276
+#: gnu/packages/linux.scm:1426
 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"
@@ -7971,22 +8628,21 @@ msgid ""
 "configuration (iptunnel, ipmaddr)."
 msgstr ""
 
-#: gnu/packages/linux.scm:1415
+#: gnu/packages/linux.scm:1464
 msgid "Library for working with POSIX capabilities"
-msgstr ""
+msgstr "Biblioteca para trabajar con capacidades POSIX"
 
-#: gnu/packages/linux.scm:1417
+#: gnu/packages/linux.scm:1466
 msgid ""
 "Libcap2 provides a programming interface to POSIX capabilities on\n"
 "Linux-based operating systems."
 msgstr ""
 
-#: gnu/packages/linux.scm:1460
-#, fuzzy
+#: gnu/packages/linux.scm:1509
 msgid "Manipulate Ethernet bridges"
-msgstr "Dispositivo Ethernet sobre ATA"
+msgstr "Puente manipulador Ethernet"
 
-#: gnu/packages/linux.scm:1462
+#: gnu/packages/linux.scm:1511
 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"
@@ -7995,11 +8651,12 @@ msgid ""
 "transparently through a bridge."
 msgstr ""
 
-#: gnu/packages/linux.scm:1530
+#: gnu/packages/linux.scm:1577
+#, fuzzy
 msgid "NetLink protocol library suite"
-msgstr ""
+msgstr "Biblioteca utilitaria para Netlink"
 
-#: gnu/packages/linux.scm:1532
+#: gnu/packages/linux.scm:1579
 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"
@@ -8008,21 +8665,21 @@ msgid ""
 "configuration and monitoring interfaces."
 msgstr ""
 
-#: gnu/packages/linux.scm:1562
+#: gnu/packages/linux.scm:1609
 msgid "Tool for configuring wireless devices"
 msgstr ""
 
-#: gnu/packages/linux.scm:1564
+#: gnu/packages/linux.scm:1611
 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:1610
+#: gnu/packages/linux.scm:1655
 msgid "Analyze power consumption on Intel-based laptops"
-msgstr ""
+msgstr "Analiza consumo de energía en portátiles basados en Intel"
 
-#: gnu/packages/linux.scm:1612
+#: gnu/packages/linux.scm:1657
 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"
@@ -8031,31 +8688,31 @@ msgid ""
 "settings."
 msgstr ""
 
-#: gnu/packages/linux.scm:1634
+#: gnu/packages/linux.scm:1679
 msgid "Audio mixer for X and the console"
 msgstr ""
 
-#: gnu/packages/linux.scm:1636
+#: gnu/packages/linux.scm:1681
 msgid ""
 "Aumix adjusts an audio mixer from X, the console, a terminal,\n"
 "the command line or a script."
 msgstr ""
 
-#: gnu/packages/linux.scm:1660
+#: gnu/packages/linux.scm:1705
 msgid "Displays the IO activity of running processes"
 msgstr ""
 
-#: gnu/packages/linux.scm:1662
+#: gnu/packages/linux.scm:1707
 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:1716
+#: gnu/packages/linux.scm:1761
 msgid "Support file systems implemented in user space"
-msgstr ""
+msgstr "Sistema de fichero compatible implementado en espacio de usuario"
 
-#: gnu/packages/linux.scm:1718
+#: gnu/packages/linux.scm:1763
 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"
@@ -8065,11 +8722,11 @@ msgid ""
 "user-space processes."
 msgstr ""
 
-#: gnu/packages/linux.scm:1752
+#: gnu/packages/linux.scm:1794
 msgid "User-space union file system"
-msgstr ""
+msgstr "Unión de espacio de usuario al fichero de sistema"
 
-#: gnu/packages/linux.scm:1754
+#: gnu/packages/linux.scm:1796
 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"
@@ -8077,15 +8734,15 @@ msgid ""
 "UnionFS-FUSE additionally supports copy-on-write."
 msgstr ""
 
-#: gnu/packages/linux.scm:1779
+#: gnu/packages/linux.scm:1824
 msgid "User-space union file system (statically linked)"
-msgstr ""
+msgstr "Unión de espacio de usuario al fichero de sistema (enlazado estático)"
 
-#: gnu/packages/linux.scm:1827
+#: gnu/packages/linux.scm:1874
 msgid "Mount remote file systems over SSH"
 msgstr ""
 
-#: gnu/packages/linux.scm:1829
+#: gnu/packages/linux.scm:1876
 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"
@@ -8093,11 +8750,11 @@ msgid ""
 "file system is as easy as logging into the server with an SSH client."
 msgstr ""
 
-#: gnu/packages/linux.scm:1852
+#: gnu/packages/linux.scm:1903
 msgid "Tool for mounting archive files with FUSE"
 msgstr ""
 
-#: gnu/packages/linux.scm:1853
+#: gnu/packages/linux.scm:1904
 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"
@@ -8106,11 +8763,11 @@ msgid ""
 "compressed, transparent to other programs, without decompressing them."
 msgstr ""
 
-#: gnu/packages/linux.scm:1883
+#: gnu/packages/linux.scm:1933
 msgid "Tools for non-uniform memory access (NUMA) machines"
 msgstr ""
 
-#: gnu/packages/linux.scm:1885
+#: gnu/packages/linux.scm:1935
 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"
@@ -8123,44 +8780,46 @@ msgid ""
 "system."
 msgstr ""
 
-#: gnu/packages/linux.scm:1921
-#, fuzzy
+#: gnu/packages/linux.scm:1971
 msgid "Neo2 console layout"
-msgstr "Personalizar Diseño"
+msgstr "Entorno de consola Neo2"
 
-#: gnu/packages/linux.scm:1923
+#: gnu/packages/linux.scm:1973
 msgid ""
 "Kbd-neo provides the Neo2 keyboard layout for use with\n"
 "@command{loadkeys(1)} from @code{kbd(4)}."
 msgstr ""
 
-#: gnu/packages/linux.scm:1986
+#: gnu/packages/linux.scm:2039
 msgid "Linux keyboard utilities and keyboard maps"
 msgstr ""
 
-#: gnu/packages/linux.scm:1988
+#: gnu/packages/linux.scm:2041
 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:2077
+msgid "Statically-linked @command{loadkeys} program"
 msgstr ""
 
-#: gnu/packages/linux.scm:2007
+#: gnu/packages/linux.scm:2102
 msgid "Monitor file accesses"
 msgstr "Monitor de acceso a fichero"
 
-#: gnu/packages/linux.scm:2009
+#: gnu/packages/linux.scm:2104
 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:2047
-#, fuzzy
+#: gnu/packages/linux.scm:2143
 msgid "Kernel module tools"
-msgstr "  núcleo: ~a~%"
+msgstr "Herramientas de módulo del núcleo"
 
-#: gnu/packages/linux.scm:2048
+#: gnu/packages/linux.scm:2144
 msgid ""
 "Kmod is a set of tools to handle common tasks with Linux\n"
 "kernel modules like insert, remove, list, check properties, resolve\n"
@@ -8171,86 +8830,96 @@ msgid ""
 "from the module-init-tools project."
 msgstr ""
 
-#: gnu/packages/linux.scm:2092
-#, fuzzy
+#: gnu/packages/linux.scm:2213
 msgid "Userspace device management"
-msgstr "Gestionar Proyecto"
+msgstr "Gestión de dispositivo en espacio de usuario"
 
-#: gnu/packages/linux.scm:2093
+#: gnu/packages/linux.scm:2214
 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:2168
+#: gnu/packages/linux.scm:2293
 msgid "Logical volume management for Linux"
-msgstr ""
+msgstr "Gesto de volumen lógico para Linux"
 
-#: gnu/packages/linux.scm:2170
+#: gnu/packages/linux.scm:2295
 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:2192
+#: gnu/packages/linux.scm:2317
 msgid "Logical volume management for Linux (statically linked)"
-msgstr ""
+msgstr "Gesto de volumen lógico para Linux (enlace estático)"
 
-#: gnu/packages/linux.scm:2222
+#: gnu/packages/linux.scm:2347
 msgid "Tools for manipulating Linux Wireless Extensions"
 msgstr ""
 
-#: gnu/packages/linux.scm:2223
+#: gnu/packages/linux.scm:2348
 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:2295
+#: gnu/packages/linux.scm:2425
 msgid "Central regulatory domain agent (CRDA) for WiFi"
 msgstr ""
 
-#: gnu/packages/linux.scm:2297
+#: gnu/packages/linux.scm:2427
 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:2343
-#, fuzzy
+#: gnu/packages/linux.scm:2480
 msgid "Wireless regulatory database"
-msgstr "base de datos"
+msgstr "BB regulatorio sin cable de red"
 
-#: gnu/packages/linux.scm:2345
+#: gnu/packages/linux.scm:2482
 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:2422
+#: gnu/packages/linux.scm:2559
 msgid "Utilities to read temperature/voltage/fan sensors"
 msgstr ""
 
-#: gnu/packages/linux.scm:2424
+#: gnu/packages/linux.scm:2561
 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:2451
+#: gnu/packages/linux.scm:2579
 #, fuzzy
+#| msgid "Manipulate Ethernet bridges"
+msgid "Manipulate Intel microcode bundles"
+msgstr "Puente manipulador Ethernet"
+
+#: gnu/packages/linux.scm:2581
+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
 msgid "I2C tools for Linux"
-msgstr "Herramientas contenedoras Linux"
+msgstr "Herramientas I2C para Linux"
 
-#: gnu/packages/linux.scm:2453
+#: gnu/packages/linux.scm:2612
 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"
@@ -8258,35 +8927,35 @@ msgid ""
 "SMBus access."
 msgstr ""
 
-#: gnu/packages/linux.scm:2490
+#: gnu/packages/linux.scm:2649
 msgid "Hardware health information viewer"
-msgstr ""
+msgstr "Visor de información para salud del hardware"
 
-#: gnu/packages/linux.scm:2492
+#: gnu/packages/linux.scm:2651
 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:2542
+#: gnu/packages/linux.scm:2701
 msgid "Linux profiling with performance counters"
-msgstr ""
+msgstr "Perfilado Linux con monitorización de rendimiento"
 
-#: gnu/packages/linux.scm:2544
+#: gnu/packages/linux.scm:2703
 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:2567
+#: gnu/packages/linux.scm:2726
 msgid "Simple tool for creating Linux namespace containers"
 msgstr ""
 
-#: gnu/packages/linux.scm:2568
+#: gnu/packages/linux.scm:2727
 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"
@@ -8295,11 +8964,25 @@ msgid ""
 "thanks to the use of namespaces."
 msgstr ""
 
-#: gnu/packages/linux.scm:2597
+#: gnu/packages/linux.scm:2782
+#, fuzzy
+#| msgid "Action platformer game"
+msgid "Container platform"
+msgstr "Juego de plataforma de acción"
+
+#: gnu/packages/linux.scm:2783
+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:2811
 msgid "View and tune ATA disk drive parameters"
 msgstr ""
 
-#: gnu/packages/linux.scm:2599
+#: gnu/packages/linux.scm:2813
 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"
@@ -8309,27 +8992,26 @@ msgid ""
 "\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 @dfn{SCSI-ATA\n"
-"Command Translation} (SAT) are also supported."
+"IDE driver subsystem.  Many external USB drive enclosures with SCSI-ATA Command\n"
+"Translation (@dfn{SAT}) are also supported."
 msgstr ""
 
-#: gnu/packages/linux.scm:2630
+#: gnu/packages/linux.scm:2844
 msgid "Tool for enabling and disabling wireless devices"
 msgstr ""
 
-#: gnu/packages/linux.scm:2632
+#: gnu/packages/linux.scm:2846
 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:2651
-#, fuzzy
+#: gnu/packages/linux.scm:2867
 msgid "Display information on ACPI devices"
-msgstr "  dispositivos   : enseña todas los dispositivos de bloques activos\n"
+msgstr "Enseña información sobre dispositivos ACPI"
 
-#: gnu/packages/linux.scm:2652
+#: gnu/packages/linux.scm:2868
 msgid ""
 "@code{acpi} attempts to replicate the functionality of the\n"
 "\"old\" @code{apm} command on ACPI systems, including battery and thermal\n"
@@ -8337,11 +9019,11 @@ msgid ""
 "about ACPI devices."
 msgstr ""
 
-#: gnu/packages/linux.scm:2671
+#: gnu/packages/linux.scm:2887
 msgid "Daemon for delivering ACPI events to user-space programs"
 msgstr ""
 
-#: gnu/packages/linux.scm:2673
+#: gnu/packages/linux.scm:2889
 msgid ""
 "acpid is designed to notify user-space programs of Advanced\n"
 "Configuration and Power Interface (ACPI) events.  acpid should be started\n"
@@ -8350,37 +9032,37 @@ msgid ""
 "specified in /etc/acpi/events and execute the rules that match the event."
 msgstr ""
 
-#: gnu/packages/linux.scm:2695
+#: gnu/packages/linux.scm:2911
 msgid "System utilities based on Linux sysfs"
 msgstr ""
 
-#: gnu/packages/linux.scm:2697
+#: gnu/packages/linux.scm:2913
 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:2726
+#: gnu/packages/linux.scm:2943
 msgid "System utilities based on Linux sysfs (version 1.x)"
 msgstr ""
 
-#: gnu/packages/linux.scm:2749
+#: gnu/packages/linux.scm:2966
 msgid "Utilities to get and set CPU frequency on Linux"
 msgstr ""
 
-#: gnu/packages/linux.scm:2751
+#: gnu/packages/linux.scm:2968
 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:2770
+#: gnu/packages/linux.scm:2987
 msgid "Interface library for the Linux IEEE1394 drivers"
 msgstr ""
 
-#: gnu/packages/linux.scm:2772
+#: gnu/packages/linux.scm:2989
 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"
@@ -8389,46 +9071,46 @@ msgid ""
 "protocol in question."
 msgstr ""
 
-#: gnu/packages/linux.scm:2796
+#: gnu/packages/linux.scm:3013
 msgid "AV/C protocol library for IEEE 1394"
-msgstr ""
+msgstr "Biblioteca de protocolo AV/C para IEEE 1394"
 
-#: gnu/packages/linux.scm:2798
+#: gnu/packages/linux.scm:3015
 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:2820
+#: gnu/packages/linux.scm:3037
 msgid "Isochronous streaming media library for IEEE 1394"
-msgstr ""
+msgstr "Flujo isocrono de biblioteca de medio para IEEE 1394"
 
-#: gnu/packages/linux.scm:2822
+#: gnu/packages/linux.scm:3039
 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:2871
+#: gnu/packages/linux.scm:3088
 msgid "Tool for managing Linux Software RAID arrays"
 msgstr ""
 
-#: gnu/packages/linux.scm:2873
+#: gnu/packages/linux.scm:3090
 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:2905
+#: gnu/packages/linux.scm:3122
 msgid "Statically-linked 'mdadm' command for use in an initrd"
 msgstr ""
 
-#: gnu/packages/linux.scm:2970
+#: gnu/packages/linux.scm:3187
 msgid "Access block devices through multiple paths"
-msgstr ""
+msgstr "Acceso de bloque de dispositivos a través de rutas múltiples"
 
-#: gnu/packages/linux.scm:2972
+#: gnu/packages/linux.scm:3189
 msgid ""
 "This package provides the following binaries to drive the\n"
 "Linux Device Mapper multipathing driver:\n"
@@ -8441,96 +9123,108 @@ msgid ""
 "@end enumerate"
 msgstr ""
 
-#: gnu/packages/linux.scm:3004
+#: gnu/packages/linux.scm:3221
 msgid "Linux-native asynchronous I/O access library"
 msgstr ""
 
-#: gnu/packages/linux.scm:3006
+#: gnu/packages/linux.scm:3223
 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:3028
+#: gnu/packages/linux.scm:3245
 msgid "Bluetooth subband audio codec"
-msgstr ""
+msgstr "Código de sonido versátil Bluetooth"
 
-#: gnu/packages/linux.scm:3030
+#: gnu/packages/linux.scm:3247
 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:3098
+#: gnu/packages/linux.scm:3313
 msgid "Linux Bluetooth protocol stack"
 msgstr ""
 
-#: gnu/packages/linux.scm:3100
+#: gnu/packages/linux.scm:3315
 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:3122
-#, fuzzy
+#: gnu/packages/linux.scm:3337
 msgid "Mount exFAT file systems"
-msgstr "no se ha procesado ningún sistema de ficheros"
+msgstr "Montar fichero del sistema exFAT"
 
-#: gnu/packages/linux.scm:3124
+#: gnu/packages/linux.scm:3339
 msgid ""
 "This package provides a FUSE-based file system that provides read and\n"
 "write access to exFAT devices."
 msgstr ""
 
-#: gnu/packages/linux.scm:3166
+#: gnu/packages/linux.scm:3362
+#, fuzzy
+#| msgid "Mount exFAT file systems"
+msgid "Mount ISO file system images"
+msgstr "Montar fichero del sistema exFAT"
+
+#: gnu/packages/linux.scm:3364
+msgid ""
+"FuseISO is a FUSE module to mount ISO filesystem 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
 msgid "Mouse support for the Linux console"
 msgstr ""
 
-#: gnu/packages/linux.scm:3168
+#: gnu/packages/linux.scm:3409
 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:3225
+#: gnu/packages/linux.scm:3473
 msgid "Create and manage btrfs copy-on-write file systems"
 msgstr ""
 
-#: gnu/packages/linux.scm:3226
+#: gnu/packages/linux.scm:3474
 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:3258
+#: gnu/packages/linux.scm:3507
 msgid "Statically-linked btrfs command from btrfs-progs"
 msgstr ""
 
-#: gnu/packages/linux.scm:3259
+#: gnu/packages/linux.scm:3508
 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:3290
+#: gnu/packages/linux.scm:3545
 msgid "Userland tools for f2fs"
 msgstr "Herramientas de usuario para f2fs"
 
-#: gnu/packages/linux.scm:3292
+#: gnu/packages/linux.scm:3547
 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:3321
+#: gnu/packages/linux.scm:3595
 msgid "Free-fall protection for spinning laptop hard drives"
 msgstr ""
 
-#: gnu/packages/linux.scm:3323
+#: gnu/packages/linux.scm:3597
 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"
@@ -8540,12 +9234,11 @@ msgid ""
 "feature, and a laptop with an accelerometer.  It has no effect on SSDs."
 msgstr ""
 
-#: gnu/packages/linux.scm:3377
-#, fuzzy
+#: gnu/packages/linux.scm:3654
 msgid "Simple fan control program"
-msgstr "Terminal controladora simple"
+msgstr "Programa simple del control del ventilador"
 
-#: gnu/packages/linux.scm:3379
+#: gnu/packages/linux.scm:3656
 msgid ""
 "Thinkfan is a simple fan control program.  It reads temperatures,\n"
 "checks them against configured limits and switches to appropriate (also\n"
@@ -8554,22 +9247,22 @@ msgid ""
 "from userspace."
 msgstr ""
 
-#: gnu/packages/linux.scm:3414
+#: gnu/packages/linux.scm:3706
 msgid "Read-write access to NTFS file systems"
-msgstr ""
+msgstr "Acceso lectura-escritura para sistema de ficheros NTFS"
 
-#: gnu/packages/linux.scm:3416
+#: gnu/packages/linux.scm:3708
 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:3461
+#: gnu/packages/linux.scm:3750
 msgid "Utilities and libraries for working with RDMA devices"
 msgstr ""
 
-#: gnu/packages/linux.scm:3463
+#: gnu/packages/linux.scm:3752
 msgid ""
 "This package provides userspace components for the InfiniBand\n"
 "subsystem of the Linux kernel.  Specifically it contains userspace\n"
@@ -8589,49 +9282,74 @@ msgid ""
 "@end enumerate"
 msgstr ""
 
-#: gnu/packages/linux.scm:3502
-msgid "Random number generator daemon"
+#: gnu/packages/linux.scm:3805
+msgid "Open Fabrics Enterprise Distribution (OFED) Performance Tests"
 msgstr ""
 
-#: gnu/packages/linux.scm:3504
+#: gnu/packages/linux.scm:3806
+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:3844
+msgid "Random number generator daemon"
+msgstr "Demonio generador de número aleatorias"
+
+#: gnu/packages/linux.scm:3846
 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:3542
+#: gnu/packages/linux.scm:3885
 msgid "CPU frequency and voltage scaling tools for Linux"
 msgstr ""
 
-#: gnu/packages/linux.scm:3544
+#: gnu/packages/linux.scm:3887
 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:3563
+#: gnu/packages/linux.scm:3907
 msgid "Entropy source for the Linux random number generator"
 msgstr ""
 
-#: gnu/packages/linux.scm:3565
+#: gnu/packages/linux.scm:3909
 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 HArdware\n"
-"Volatile Entropy Gathering and Expansion (HAVEGE) algorithm.  It tunes itself to\n"
-"its environment and provides the same built-in test suite for the output stream\n"
-"as used on certified hardware security devices."
+"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"
+"\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:3604
+#: gnu/packages/linux.scm:3994
 msgid "eCryptfs cryptographic file system utilities"
 msgstr ""
 
-#: gnu/packages/linux.scm:3606
+#: gnu/packages/linux.scm:3996
 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"
@@ -8641,11 +9359,11 @@ msgid ""
 "2.6.19.  This package contains the userland utilities to manage it."
 msgstr ""
 
-#: gnu/packages/linux.scm:3637
+#: gnu/packages/linux.scm:4027
 msgid "NFSv4 support library for name/ID mapping"
 msgstr ""
 
-#: gnu/packages/linux.scm:3638
+#: gnu/packages/linux.scm:4028
 msgid ""
 "Libnfsidmap is a library holding mulitiple methods of\n"
 "mapping names to ids and visa versa, mainly for NFSv4.  It provides an\n"
@@ -8653,21 +9371,21 @@ msgid ""
 "the default @code{nsswitch} and the experimental @code{umich_ldap}."
 msgstr ""
 
-#: gnu/packages/linux.scm:3672
+#: gnu/packages/linux.scm:4062
 msgid "Tools for loading and managing Linux kernel modules"
 msgstr ""
 
-#: gnu/packages/linux.scm:3674
+#: gnu/packages/linux.scm:4064
 msgid ""
-"Tools for loading and managing Linux kernel modules, such as `modprobe',\n"
-"`insmod', `lsmod', and more."
+"Tools for loading and managing Linux kernel modules, such as\n"
+"@code{modprobe}, @code{insmod}, @code{lsmod}, and more."
 msgstr ""
 
-#: gnu/packages/linux.scm:3708
+#: gnu/packages/linux.scm:4101
 msgid "Machine check monitor for x86 Linux systems"
 msgstr ""
 
-#: gnu/packages/linux.scm:3710
+#: gnu/packages/linux.scm:4103
 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"
@@ -8675,21 +9393,21 @@ msgid ""
 "are exceeded."
 msgstr ""
 
-#: gnu/packages/linux.scm:3739
+#: gnu/packages/linux.scm:4132
 msgid "MTD Flash Storage Utilities"
 msgstr ""
 
-#: gnu/packages/linux.scm:3740
+#: gnu/packages/linux.scm:4133
 msgid ""
 "This package provides utilities for testing, partitioning, etc\n"
 "of flash storage."
 msgstr ""
 
-#: gnu/packages/linux.scm:3763
+#: gnu/packages/linux.scm:4156
 msgid "Interface to Linux's seccomp syscall filtering mechanism"
 msgstr ""
 
-#: gnu/packages/linux.scm:3764
+#: gnu/packages/linux.scm:4157
 msgid ""
 "The libseccomp library provides an easy to use, platform\n"
 "independent, interface to the Linux Kernel's syscall filtering mechanism.  The\n"
@@ -8699,11 +9417,11 @@ msgid ""
 "developers."
 msgstr ""
 
-#: gnu/packages/linux.scm:3806
+#: gnu/packages/linux.scm:4201
 msgid "Usage monitor for AMD Radeon graphics"
 msgstr ""
 
-#: gnu/packages/linux.scm:3807
+#: gnu/packages/linux.scm:4202
 msgid ""
 "RadeonTop monitors resource consumption on supported AMD\n"
 "Radeon Graphics Processing Units (GPUs), either in real time as bar graphs on\n"
@@ -8713,21 +9431,21 @@ msgid ""
 "under OpenGL graphics workloads."
 msgstr ""
 
-#: gnu/packages/linux.scm:3842
+#: gnu/packages/linux.scm:4238
 msgid "Tool and library to manipulate EFI variables"
 msgstr ""
 
-#: gnu/packages/linux.scm:3843
+#: gnu/packages/linux.scm:4239
 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:3884
+#: gnu/packages/linux.scm:4273
 msgid "Modify the Extensible Firmware Interface (EFI) boot manager"
 msgstr ""
 
-#: gnu/packages/linux.scm:3886
+#: gnu/packages/linux.scm:4275
 msgid ""
 "@code{efibootmgr} is a user-space application to modify the Intel\n"
 "Extensible Firmware Interface (EFI) Boot Manager.  This application can\n"
@@ -8735,12 +9453,11 @@ msgid ""
 "running boot option, and more."
 msgstr ""
 
-#: gnu/packages/linux.scm:3922
-#, fuzzy
+#: gnu/packages/linux.scm:4311
 msgid "Performance monitoring tools for Linux"
-msgstr "Herramientas contenedoras Linux"
+msgstr "Herramientas monitorizada de rendimiento para Linux"
 
-#: gnu/packages/linux.scm:3923
+#: gnu/packages/linux.scm:4312
 msgid ""
 "The sysstat utilities are a collection of performance\n"
 "monitoring tools for Linux.  These include @code{mpstat}, @code{iostat},\n"
@@ -8748,11 +9465,11 @@ msgid ""
 "@code{sadf} and @code{sa}."
 msgstr ""
 
-#: gnu/packages/linux.scm:3955
+#: gnu/packages/linux.scm:4336
 msgid "GNU/Linux application to control backlights"
-msgstr ""
+msgstr "Aplicación GNU/Linux para controlar luces de fondo"
 
-#: gnu/packages/linux.scm:3957
+#: gnu/packages/linux.scm:4338
 msgid ""
 "Light is a program to send commands to screen backlight controllers\n"
 "under GNU/Linux.  Features include:\n"
@@ -8768,11 +9485,25 @@ msgid ""
 "Light is the successor of lightscript."
 msgstr ""
 
-#: gnu/packages/linux.scm:4059
+#: gnu/packages/linux.scm:4381
+msgid "Backlight and LED brightness control"
+msgstr ""
+
+#: gnu/packages/linux.scm:4383
+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:4484
 msgid "Power management tool for Linux"
 msgstr "Herramienta de gestor de energía para Linux"
 
-#: gnu/packages/linux.scm:4060
+#: gnu/packages/linux.scm:4485
 msgid ""
 "TLP is a power management tool for Linux.  It comes with\n"
 "a default configuration already optimized for battery life.  Nevertheless,\n"
@@ -8780,12 +9511,11 @@ msgid ""
 "every time the power supply source is changed."
 msgstr ""
 
-#: gnu/packages/linux.scm:4087
-#, fuzzy
+#: gnu/packages/linux.scm:4511
 msgid "List hardware information"
-msgstr "Información de paquete: lista de versiones"
+msgstr "Información listada de hardware"
 
-#: gnu/packages/linux.scm:4089
+#: gnu/packages/linux.scm:4513
 msgid ""
 "@command{lshw} (Hardware Lister) is a small tool to provide\n"
 "detailed information on the hardware configuration of the machine.\n"
@@ -8795,12 +9525,11 @@ msgid ""
 "machines (PowerMac G4 is known to work)."
 msgstr ""
 
-#: gnu/packages/linux.scm:4112
-#, fuzzy
+#: gnu/packages/linux.scm:4536
 msgid "Netlink utility library"
-msgstr "Biblioteca utilitaria para NetSurf"
+msgstr "Biblioteca utilitaria para Netlink"
 
-#: gnu/packages/linux.scm:4113
+#: gnu/packages/linux.scm:4537
 msgid ""
 "Libmnl is a minimalistic user-space library oriented to\n"
 "Netlink developers.  There are a lot of common tasks in parsing, validating,\n"
@@ -8809,11 +9538,11 @@ msgid ""
 "re-use code and to avoid re-inventing the wheel."
 msgstr ""
 
-#: gnu/packages/linux.scm:4138
+#: gnu/packages/linux.scm:4561
 msgid "Netlink programming interface to the Linux nf_tables subsystem"
 msgstr ""
 
-#: gnu/packages/linux.scm:4139
+#: gnu/packages/linux.scm:4562
 msgid ""
 "Libnftnl is a userspace library providing a low-level netlink\n"
 "programming interface to the in-kernel nf_tables subsystem.  The library\n"
@@ -8821,11 +9550,11 @@ msgid ""
 "used by nftables."
 msgstr ""
 
-#: gnu/packages/linux.scm:4166
+#: gnu/packages/linux.scm:4591
 msgid "Userspace utility for Linux packet filtering"
 msgstr ""
 
-#: gnu/packages/linux.scm:4167
+#: gnu/packages/linux.scm:4592
 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"
@@ -8835,16 +9564,16 @@ msgid ""
 "userspace queueing component and the logging subsystem."
 msgstr ""
 
-#: gnu/packages/linux.scm:4265
+#: gnu/packages/linux.scm:4689
 msgid "Unprivileged chroot, bind mount, and binfmt_misc"
 msgstr ""
 
-#: gnu/packages/linux.scm:4267
+#: gnu/packages/linux.scm:4691
 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"
-"filesystem, making files accessible somewhere else in the file system\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"
@@ -8852,15 +9581,15 @@ msgid ""
 "available in the kernel Linux."
 msgstr ""
 
-#: gnu/packages/linux.scm:4283
+#: gnu/packages/linux.scm:4707
 msgid "Unprivileged chroot, bind mount, and binfmt_misc (statically linked)"
 msgstr ""
 
-#: gnu/packages/linux.scm:4329
+#: gnu/packages/linux.scm:4753
 msgid "Linux tool to dump x86 CPUID information about the CPU(s)"
 msgstr ""
 
-#: gnu/packages/linux.scm:4330
+#: gnu/packages/linux.scm:4754
 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"
@@ -8868,23 +9597,22 @@ msgid ""
 "NexGen, Rise, and SiS CPUs."
 msgstr ""
 
-#: gnu/packages/linux.scm:4357
-msgid "Use a FUSE filesystem to access data over MTP"
+#: gnu/packages/linux.scm:4781
+msgid "Use a FUSE file system to access data over MTP"
 msgstr ""
 
-#: gnu/packages/linux.scm:4358
+#: gnu/packages/linux.scm:4782
 msgid ""
-"jmtpfs uses FUSE (filesystem in userspace) to provide access\n"
+"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 filesystem."
+"the MTP device as a file system."
 msgstr ""
 
-#: gnu/packages/linux.scm:4380
-#, fuzzy
+#: gnu/packages/linux.scm:4805
 msgid "Utility to show process environment"
-msgstr "Muestra anillos de procesos"
+msgstr "Utilidad para mostrar entorno de procesos"
 
-#: gnu/packages/linux.scm:4381
+#: gnu/packages/linux.scm:4806
 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"
@@ -8892,12 +9620,11 @@ msgid ""
 "comparing system environments."
 msgstr ""
 
-#: gnu/packages/linux.scm:4408
-#, fuzzy
+#: gnu/packages/linux.scm:4833
 msgid "Open Fabric Interfaces"
-msgstr "_Abrir…"
+msgstr "Abrir Interfaz Fábrica"
 
-#: gnu/packages/linux.scm:4410
+#: gnu/packages/linux.scm:4835
 msgid ""
 "OpenFabrics Interfaces (OFI) is a framework focused on exporting fabric\n"
 "communication services to applications.  OFI is best described as a collection\n"
@@ -8911,11 +9638,11 @@ msgid ""
 "libraries, which are often integrated directly into libfabric."
 msgstr ""
 
-#: gnu/packages/linux.scm:4456
+#: gnu/packages/linux.scm:4888
 msgid "Intel Performance Scaled Messaging (PSM) Libraries"
 msgstr ""
 
-#: gnu/packages/linux.scm:4458
+#: gnu/packages/linux.scm:4890
 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"
@@ -8923,12 +9650,158 @@ msgid ""
 "interfaces in parallel environments."
 msgstr ""
 
-#: gnu/packages/lout.scm:109
+#: gnu/packages/linux.scm:4931
+msgid "Take screenshots of one or more Linux text consoles"
+msgstr ""
+
+#: gnu/packages/linux.scm:4933
+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
+msgid "Take a screenshot of the contents of the Linux framebuffer"
+msgstr ""
+
+#: gnu/packages/linux.scm:4989
+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:5020
+#, fuzzy
+#| msgid "Multiple repository management tool"
+msgid "Control groups management tools"
+msgstr "Herramienta gestora de múltiples repositorios"
+
+#: gnu/packages/linux.scm:5021
+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
+msgid "Control fan speed on Macbooks"
+msgstr ""
+
+#: gnu/packages/linux.scm:5057
+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:5100
+msgid "Intel Performance Scaled Messaging 2 (PSM2) library"
+msgstr ""
+
+#: gnu/packages/linux.scm:5102
+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:5142
+#, fuzzy
+#| msgid "Performance monitoring tools for Linux"
+msgid "Performance event monitoring library"
+msgstr "Herramientas monitorizada de rendimiento para Linux"
+
+#: gnu/packages/linux.scm:5144
+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:5172
+msgid "Low-level netfilter netlink communication library"
+msgstr ""
+
+#: gnu/packages/linux.scm:5174
+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:5204
 #, fuzzy
+#| msgid "Mount exFAT file systems"
+msgid "XFS file system tools"
+msgstr "Montar fichero del sistema exFAT"
+
+#: gnu/packages/linux.scm:5205
+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"
+msgstr ""
+
+#: gnu/packages/linux.scm:5244
+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"
+"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
+msgid "Provides a fake root environment"
+msgstr ""
+
+#: gnu/packages/linux.scm:5308
+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:5355
+msgid "Dispatch input peripherals events to a device file"
+msgstr ""
+
+#: gnu/packages/linux.scm:5356
+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/lout.scm:100
 msgid "Document layout system"
-msgstr "Personalizar Diseño"
+msgstr "Sistema de diseño documental"
 
-#: 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"
@@ -8947,11 +9820,11 @@ msgid ""
 "beginning."
 msgstr ""
 
-#: gnu/packages/messaging.scm:115
+#: gnu/packages/messaging.scm:123
 msgid "Off-the-Record (OTR) Messaging Library and Toolkit"
 msgstr ""
 
-#: gnu/packages/messaging.scm:117
+#: gnu/packages/messaging.scm:125
 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"
@@ -8964,11 +9837,11 @@ msgid ""
 "keys, no previous conversation is compromised."
 msgstr ""
 
-#: gnu/packages/messaging.scm:151
+#: gnu/packages/messaging.scm:159
 msgid "Implementation of a ratcheting forward secrecy protocol"
 msgstr ""
 
-#: gnu/packages/messaging.scm:152
+#: gnu/packages/messaging.scm:160
 msgid ""
 "libsignal-protocol-c is an implementation of a ratcheting\n"
 "forward secrecy protocol that works in synchronous and asynchronous\n"
@@ -8976,11 +9849,11 @@ msgid ""
 "end-to-end encryption."
 msgstr ""
 
-#: gnu/packages/messaging.scm:190
+#: gnu/packages/messaging.scm:201
 msgid "IRC to instant messaging gateway"
-msgstr ""
+msgstr "IRC para pórtico de mensajería instantánea"
 
-#: gnu/packages/messaging.scm:191
+#: gnu/packages/messaging.scm:202
 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"
@@ -8990,12 +9863,23 @@ msgid ""
 "identi.ca and status.net)."
 msgstr ""
 
-#: gnu/packages/messaging.scm:252
+#: gnu/packages/messaging.scm:248
 #, fuzzy
+#| msgid "LV2 plugins for live use"
+msgid "Discord plugin for Bitlbee"
+msgstr "Complementos LV2 para usar live"
+
+#: gnu/packages/messaging.scm:249
+msgid ""
+"Bitlbee-discord is a plugin for Bitlbee witch provides\n"
+"access to servers running the Discord protocol."
+msgstr ""
+
+#: gnu/packages/messaging.scm:296
 msgid "Graphical IRC Client"
-msgstr "Unir discursiones IRC"
+msgstr "Cliente IRC gráfico"
 
-#: gnu/packages/messaging.scm:254
+#: gnu/packages/messaging.scm:298
 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"
@@ -9004,11 +9888,11 @@ msgid ""
 "dictionaries.  HexChat can be extended with multiple addons."
 msgstr ""
 
-#: gnu/packages/messaging.scm:319
+#: gnu/packages/messaging.scm:363
 msgid "Lightweight Internet Relay Chat server for small networks"
 msgstr ""
 
-#: gnu/packages/messaging.scm:321
+#: gnu/packages/messaging.scm:365
 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"
@@ -9016,21 +9900,21 @@ msgid ""
 "authentication."
 msgstr ""
 
-#: gnu/packages/messaging.scm:393
+#: gnu/packages/messaging.scm:437
 msgid "Graphical multi-protocol instant messaging client"
 msgstr ""
 
-#: gnu/packages/messaging.scm:395
+#: gnu/packages/messaging.scm:439
 msgid ""
 "Pidgin is a modular instant messaging client that supports many popular\n"
 "chat protocols."
 msgstr ""
 
-#: gnu/packages/messaging.scm:433
+#: gnu/packages/messaging.scm:477
 msgid "Off-the-Record Messaging plugin for Pidgin"
-msgstr ""
+msgstr "Complemento de mensajería Off-the-Record para Pidgin"
 
-#: gnu/packages/messaging.scm:435
+#: gnu/packages/messaging.scm:479
 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"
@@ -9045,35 +9929,34 @@ msgid ""
 "compromised."
 msgstr ""
 
-#: gnu/packages/messaging.scm:486
-#, fuzzy
+#: gnu/packages/messaging.scm:546
 msgid "IRC network bouncer"
-msgstr "Unir discursiones IRC"
+msgstr "Red IRC limitada"
 
-#: gnu/packages/messaging.scm:487
+#: gnu/packages/messaging.scm:547
 msgid ""
-"ZNC is an IRC network bouncer or BNC.  It can detach the\n"
-"client from the actual IRC server, and also from selected channels.  Multiple\n"
-"clients from different locations can connect to a single ZNC account\n"
+"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:508
+#: gnu/packages/messaging.scm:568
 msgid "Non-blocking Jabber/XMPP module"
 msgstr ""
 
-#: gnu/packages/messaging.scm:510
+#: gnu/packages/messaging.scm:570
 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:560
+#: gnu/packages/messaging.scm:675
 msgid "Jabber (XMPP) client"
 msgstr "Cliente Jabber (XMPP)"
 
-#: gnu/packages/messaging.scm:561
+#: gnu/packages/messaging.scm:676
 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"
@@ -9082,21 +9965,32 @@ msgid ""
 "end-to-end encryption support; XML console."
 msgstr ""
 
-#: gnu/packages/messaging.scm:630
+#: gnu/packages/messaging.scm:711
+msgid "Gajim OMEMO plugin"
+msgstr ""
+
+#: gnu/packages/messaging.scm:713
+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:777
 msgid "Graphical Jabber (XMPP) client"
 msgstr "Cliente Jabber gráfico (XMPP)"
 
-#: gnu/packages/messaging.scm:631
+#: gnu/packages/messaging.scm:778
 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:720
+#: gnu/packages/messaging.scm:865
 msgid "Jabber (XMPP) server"
 msgstr "Servidor Jabber (XMPP)"
 
-#: gnu/packages/messaging.scm:721
+#: gnu/packages/messaging.scm:866
 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"
@@ -9105,57 +9999,77 @@ msgid ""
 "protocols."
 msgstr ""
 
-#: gnu/packages/messaging.scm:763 gnu/packages/messaging.scm:793
+#: gnu/packages/messaging.scm:900
+msgid "XEP-0363: Allow clients to upload files over HTTP"
+msgstr ""
+
+#: gnu/packages/messaging.scm:901
+msgid ""
+"This module implements XEP-0363: it allows clients to\n"
+"upload files over HTTP."
+msgstr ""
+
+#: gnu/packages/messaging.scm:932
+msgid "XEP-0198: Reliability and fast reconnects for XMPP"
+msgstr ""
+
+#: gnu/packages/messaging.scm:933
+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
 msgid "Library for the Tox encrypted messenger protocol"
 msgstr ""
 
-#: gnu/packages/messaging.scm:765
+#: gnu/packages/messaging.scm:968
 msgid "C library implementation of the Tox encrypted messenger protocol."
 msgstr ""
 
-#: gnu/packages/messaging.scm:795
+#: gnu/packages/messaging.scm:1002
 msgid ""
 "Official fork of the C library implementation of the Tox encrypted\n"
 "messenger protocol."
 msgstr ""
 
-#: gnu/packages/messaging.scm:847
+#: gnu/packages/messaging.scm:1057
 msgid "Lightweight Tox client"
-msgstr "Cliente Tox ligero"
+msgstr "Cliente ligero Tox"
 
-#: gnu/packages/messaging.scm:849
+#: gnu/packages/messaging.scm:1059
 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:898
+#: gnu/packages/messaging.scm:1116
 msgid "Tox chat client using Qt"
 msgstr ""
 
-#: gnu/packages/messaging.scm:899
+#: gnu/packages/messaging.scm:1117
 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:991
+#: gnu/packages/messaging.scm:1210
 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:993
-#, fuzzy
+#: gnu/packages/messaging.scm:1212
 msgid "Distributed peer-to-peer communication"
-msgstr "verificando parte certificado: %s"
+msgstr "Comunicación distribuida peer-to-peer"
 
-#: gnu/packages/messaging.scm:1012
+#: gnu/packages/messaging.scm:1231
 msgid "Multi-user chat program"
 msgstr ""
 
-#: gnu/packages/messaging.scm:1013
+#: gnu/packages/messaging.scm:1232
 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"
@@ -9163,11 +10077,11 @@ msgid ""
 "with several different talk daemons at the same time."
 msgstr ""
 
-#: gnu/packages/messaging.scm:1038
+#: gnu/packages/messaging.scm:1257
 msgid "Portable high-level Jabber/XMPP library for C++"
 msgstr ""
 
-#: gnu/packages/messaging.scm:1040
+#: gnu/packages/messaging.scm:1259
 msgid ""
 "gloox is a full-featured Jabber/XMPP client library,\n"
 "written in ANSI C++.  It makes writing spec-compliant clients easy\n"
@@ -9175,7 +10089,7 @@ msgid ""
 "into existing applications."
 msgstr ""
 
-#: gnu/packages/messaging.scm:1113
+#: gnu/packages/messaging.scm:1330
 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"
@@ -9183,26 +10097,26 @@ msgid ""
 "for @uref{https://torproject.org,tor} router) and many more."
 msgstr ""
 
-#: gnu/packages/messaging.scm:1117
+#: gnu/packages/messaging.scm:1334
 msgid "Perl implementation of PSYC protocol"
-msgstr ""
+msgstr "Implementación Perl de protocolo PSYC"
 
-#: gnu/packages/messaging.scm:1156
+#: gnu/packages/messaging.scm:1373
 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:1159
+#: gnu/packages/messaging.scm:1376
 msgid "PSYC library in C"
 msgstr "Biblioteca PSYC en C"
 
-#: gnu/packages/messaging.scm:1226
+#: gnu/packages/messaging.scm:1443
 msgid "psycLPC is a multi-user network server programming language"
 msgstr ""
 
-#: gnu/packages/messaging.scm:1228
+#: gnu/packages/messaging.scm:1445
 msgid ""
 "LPC is a bytecode language, invented to specifically implement\n"
 "multi user virtual environments on the internet.  This technology is used for\n"
@@ -9211,7 +10125,7 @@ msgid ""
 "many bug fixes."
 msgstr ""
 
-#: gnu/packages/messaging.scm:1259
+#: gnu/packages/messaging.scm:1476
 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"
@@ -9219,11 +10133,11 @@ msgid ""
 "protocol allows."
 msgstr ""
 
-#: gnu/packages/messaging.scm:1263
+#: gnu/packages/messaging.scm:1480
 msgid "Asynchronous XMPP library"
 msgstr "Biblioteca XMPP asíncrona)"
 
-#: gnu/packages/messaging.scm:1295
+#: gnu/packages/messaging.scm:1512
 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"
@@ -9231,15 +10145,15 @@ msgid ""
 "support, and more."
 msgstr ""
 
-#: gnu/packages/messaging.scm:1299
+#: gnu/packages/messaging.scm:1516
 msgid "Small XMPP console client"
 msgstr "Cliente pequeño de consola XMPP"
 
-#: gnu/packages/messaging.scm:1345
+#: gnu/packages/messaging.scm:1559
 msgid "Extensible console-based Jabber client"
-msgstr ""
+msgstr "Cliente extensible Jabber basado en consola"
 
-#: gnu/packages/messaging.scm:1347
+#: gnu/packages/messaging.scm:1561
 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"
@@ -9247,40 +10161,39 @@ msgid ""
 "is also scriptable and extensible via Guile."
 msgstr ""
 
-#: gnu/packages/messaging.scm:1381 gnu/packages/messaging.scm:1416
+#: gnu/packages/messaging.scm:1590 gnu/packages/messaging.scm:1619
 msgid "C library for writing XMPP clients"
 msgstr ""
 
-#: gnu/packages/messaging.scm:1382
+#: gnu/packages/messaging.scm:1591
 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:1417
+#: gnu/packages/messaging.scm:1620
 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:1453
-#, fuzzy
+#: gnu/packages/messaging.scm:1656
 msgid "Console-based XMPP client"
-msgstr "Cliente Jabber (XMPP)"
+msgstr "Cliente XMPP basado en consola"
 
-#: gnu/packages/messaging.scm:1454
+#: gnu/packages/messaging.scm:1657
 msgid ""
 "Profanity is a console based XMPP client written in C\n"
 "using ncurses and libmesode, inspired by Irssi."
 msgstr ""
 
-#: gnu/packages/messaging.scm:1484
+#: gnu/packages/messaging.scm:1686
 msgid "Library implementing the client IRC protocol"
 msgstr ""
 
-#: gnu/packages/messaging.scm:1485
+#: gnu/packages/messaging.scm:1687
 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"
@@ -9288,33 +10201,83 @@ msgid ""
 "building the IRC clients and bots."
 msgstr ""
 
-#: gnu/packages/messaging.scm:1535
+#: gnu/packages/messaging.scm:1738
 msgid "Tox chat client using ncurses"
 msgstr ""
 
-#: gnu/packages/messaging.scm:1536
+#: gnu/packages/messaging.scm:1739
 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/mpd.scm:70
-msgid "Music Player Daemon client library"
+#: gnu/packages/messaging.scm:1765
+msgid "Qt5 client library for the Matrix instant messaging protocol"
 msgstr ""
 
-#: gnu/packages/mpd.scm:71
+#: gnu/packages/messaging.scm:1766
+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:1812
+msgid "Graphical client for the Matrix instant messaging protocol"
+msgstr ""
+
+#: gnu/packages/messaging.scm:1813
+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"
+"QMatrixClient project."
+msgstr ""
+
+#: gnu/packages/messaging.scm:1855
+msgid "Instant messaging client for Google Hangouts"
+msgstr ""
+
+#: gnu/packages/messaging.scm:1857
+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:1937
+#, 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
+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
+msgid "Music Player Daemon client library"
+msgstr "Biblioteca cliente del Demonio de Reproductor Musical"
+
+#: gnu/packages/mpd.scm:86
 msgid ""
 "A stable, documented, asynchronous API library for\n"
 "interfacing MPD in the C, C++ & Objective C languages."
 msgstr ""
 
-#: gnu/packages/mpd.scm:142
-#, fuzzy
+#: gnu/packages/mpd.scm:163
 msgid "Music Player Daemon"
-msgstr "música por:"
+msgstr "Demonio de Reproductor de Música"
 
-#: gnu/packages/mpd.scm:143
+#: 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"
@@ -9322,31 +10285,31 @@ msgid ""
 "protocol."
 msgstr ""
 
-#: gnu/packages/mpd.scm:166
+#: gnu/packages/mpd.scm:189
 msgid "Music Player Daemon client"
-msgstr ""
+msgstr "Cliente del Demonio Reproductor Musical"
 
-#: gnu/packages/mpd.scm:167
+#: 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:190
+#: gnu/packages/mpd.scm:233
 msgid "Curses Music Player Daemon client"
-msgstr ""
+msgstr "Cliente de Maldiciones del Demonio de Reproductor Musical"
 
-#: gnu/packages/mpd.scm:191
+#: gnu/packages/mpd.scm:234
 msgid ""
 "ncmpc is a fully featured MPD client, which runs in a\n"
 "terminal using ncurses."
 msgstr ""
 
-#: gnu/packages/mpd.scm:221
+#: gnu/packages/mpd.scm:264
 msgid "Featureful ncurses based MPD client inspired by ncmpc"
-msgstr ""
+msgstr "Característica ncurses basada en cliente MPD inspirado por ncmpc"
 
-#: gnu/packages/mpd.scm:222
+#: gnu/packages/mpd.scm:265
 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"
@@ -9354,43 +10317,42 @@ msgid ""
 "sort playlists, and a local file system browser."
 msgstr ""
 
-#: gnu/packages/mpd.scm:245
+#: gnu/packages/mpd.scm:288
 msgid "MPD client for track scrobbling"
-msgstr ""
+msgstr "Cliente MPD para seguimiento de rollo de papel"
 
-#: gnu/packages/mpd.scm:246
+#: gnu/packages/mpd.scm:289
 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:271
+#: gnu/packages/mpd.scm:312
 msgid "Python MPD client library"
-msgstr ""
+msgstr "Cliente biblioteca Python MPD"
 
-#: gnu/packages/mpd.scm:272
+#: gnu/packages/mpd.scm:313
 msgid ""
 "Python-mpd2 is a Python library which provides a client\n"
 "interface for the Music Player Daemon."
 msgstr ""
 
-#: gnu/packages/mpd.scm:321
+#: gnu/packages/mpd.scm:362
 msgid "Elegant client for the Music Player Daemon"
-msgstr ""
+msgstr "Cliente elegante para el Demonio de Reproductor Musical"
 
-#: gnu/packages/mpd.scm:322
+#: gnu/packages/mpd.scm:363
 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:178
-#, fuzzy
+#: gnu/packages/netpbm.scm:184
 msgid "Toolkit for manipulation of images"
-msgstr "(Kit de herramientas de accesibilidad GNOME"
+msgstr "Herramientas para manipulación de imágenes"
 
-#: gnu/packages/netpbm.scm:180
+#: gnu/packages/netpbm.scm:186
 msgid ""
 "Netpbm is a toolkit for the manipulation of graphic images, including\n"
 "the conversion of images between a variety of different formats.\n"
@@ -9398,11 +10360,11 @@ msgid ""
 "about 100 graphics formats."
 msgstr ""
 
-#: gnu/packages/nettle.scm:51
+#: gnu/packages/nettle.scm:66
 msgid "C library for low-level cryptographic functionality"
-msgstr ""
+msgstr "Biblioteca C para funcionalidad criptográfica de bajo nivel"
 
-#: gnu/packages/nettle.scm:53
+#: 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"
@@ -9410,11 +10372,11 @@ msgid ""
 "themselves."
 msgstr ""
 
-#: gnu/packages/networking.scm:99
+#: gnu/packages/networking.scm:124
 msgid "Viewing and manipulating MAC addresses of network interfaces"
 msgstr ""
 
-#: gnu/packages/networking.scm:100
+#: gnu/packages/networking.scm:125
 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"
@@ -9422,22 +10384,22 @@ msgid ""
 "or, more generally, MAC addresses of the same category of hardware."
 msgstr ""
 
-#: gnu/packages/networking.scm:128
+#: gnu/packages/networking.scm:154
 msgid "Teredo IPv6 tunneling software"
 msgstr ""
 
-#: gnu/packages/networking.scm:130
+#: gnu/packages/networking.scm:156
 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:152
+#: gnu/packages/networking.scm:178
 msgid "Open bidirectional communication channels from the command line"
 msgstr ""
 
-#: gnu/packages/networking.scm:154
+#: gnu/packages/networking.scm:180
 msgid ""
 "socat is a relay for bidirectional data transfer between two independent\n"
 "data channels---files, pipes, devices, sockets, etc.  It can create\n"
@@ -9450,22 +10412,22 @@ msgid ""
 "or server shell scripts with network connections."
 msgstr ""
 
-#: gnu/packages/networking.scm:235
+#: gnu/packages/networking.scm:262
 msgid "Monitor and filter incoming requests for network services"
 msgstr ""
 
-#: gnu/packages/networking.scm:236
+#: gnu/packages/networking.scm:263
 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:256
+#: gnu/packages/networking.scm:283
 msgid "Library for message-based applications"
 msgstr ""
 
-#: gnu/packages/networking.scm:258
+#: gnu/packages/networking.scm:285
 msgid ""
 "The 0MQ lightweight messaging kernel is a library which extends the\n"
 "standard socket interfaces with features traditionally provided by specialized\n"
@@ -9475,44 +10437,65 @@ msgid ""
 "more."
 msgstr ""
 
-#: gnu/packages/networking.scm:297
-msgid "Apache Kafka C/C++ client library"
+#: gnu/packages/networking.scm:323
+#, 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
+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
+msgid "C++ bindings for the ØMQ messaging library"
 msgstr ""
 
-#: gnu/packages/networking.scm:299
+#: gnu/packages/networking.scm:354
+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
+msgid "Apache Kafka C/C++ client library"
+msgstr "Biblioteca cliente Apache Kafka C/C++"
+
+#: gnu/packages/networking.scm:391
 msgid ""
 "librdkafka is a C library implementation of the Apache Kafka protocol,\n"
 "containing both Producer and Consumer support."
 msgstr ""
 
-#: gnu/packages/networking.scm:316
+#: gnu/packages/networking.scm:408
 msgid "Library for Neighbor Discovery Protocol"
 msgstr ""
 
-#: gnu/packages/networking.scm:318
+#: gnu/packages/networking.scm:410
 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:336
-#, fuzzy
+#: gnu/packages/networking.scm:428
 msgid "Display or change Ethernet device settings"
-msgstr "Modifica o enseña opciones del paginador."
+msgstr "Enseña o modifica opciones de dispositivos Ethernet"
 
-#: gnu/packages/networking.scm:338
+#: gnu/packages/networking.scm:430
 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:375
+#: gnu/packages/networking.scm:470
 msgid "Text based network interface status monitor"
 msgstr ""
 
-#: gnu/packages/networking.scm:377
+#: gnu/packages/networking.scm:472
 msgid ""
 "IFStatus is a simple, easy-to-use program for displaying commonly\n"
 "needed/wanted real-time traffic statistics of multiple network\n"
@@ -9520,11 +10503,11 @@ msgid ""
 "intended as a substitute for the PPPStatus and EthStatus projects."
 msgstr ""
 
-#: gnu/packages/networking.scm:397
+#: gnu/packages/networking.scm:492
 msgid "Realtime console network usage monitor"
 msgstr ""
 
-#: gnu/packages/networking.scm:399
+#: gnu/packages/networking.scm:494
 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"
@@ -9532,11 +10515,11 @@ msgid ""
 "and min/max network usage."
 msgstr ""
 
-#: gnu/packages/networking.scm:442
+#: gnu/packages/networking.scm:539
 msgid "Tunnel IPv4 data through a DNS server"
 msgstr ""
 
-#: gnu/packages/networking.scm:443
+#: gnu/packages/networking.scm:540
 msgid ""
 "Iodine tunnels IPv4 data through a DNS server.  This\n"
 "can be useful in different situations where internet access is firewalled, but\n"
@@ -9544,34 +10527,38 @@ msgid ""
 "and up to 1 Mbit/s downstream."
 msgstr ""
 
-#: gnu/packages/networking.scm:481
-msgid "Improved whois client"
-msgstr "Cliente whois mejorado"
+#: gnu/packages/networking.scm:577
+msgid "Intelligent client for the WHOIS directory service"
+msgstr ""
 
-#: gnu/packages/networking.scm:482
+#: gnu/packages/networking.scm:579
 msgid ""
-"This whois client is intelligent and can\n"
-"automatically select the appropriate whois server for most queries.\n"
-"Because of historical reasons this also includes a tool called mkpasswd\n"
-"which can be used to encrypt a password with @code{crypt(3)}."
+"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:535
+#: gnu/packages/networking.scm:652
 msgid "Network traffic analyzer"
-msgstr ""
+msgstr "Análisis del tráfico de red"
 
-#: gnu/packages/networking.scm:536
+#: gnu/packages/networking.scm:653
 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:556
+#: gnu/packages/networking.scm:672
 msgid "Send ICMP ECHO_REQUEST packets to network hosts"
 msgstr ""
 
-#: gnu/packages/networking.scm:558
+#: gnu/packages/networking.scm:674
 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"
@@ -9582,11 +10569,24 @@ msgid ""
 "fashion."
 msgstr ""
 
-#: gnu/packages/networking.scm:592
+#: gnu/packages/networking.scm:725
+#, 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
+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
 msgid "Web server latency and throughput monitor"
 msgstr ""
 
-#: gnu/packages/networking.scm:594
+#: gnu/packages/networking.scm:759
 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"
@@ -9595,11 +10595,11 @@ msgid ""
 "application stack itself."
 msgstr ""
 
-#: gnu/packages/networking.scm:625
+#: gnu/packages/networking.scm:791
 msgid "Visualize curl statistics"
 msgstr "Visualizar estadísticas curl"
 
-#: gnu/packages/networking.scm:627
+#: gnu/packages/networking.scm:793
 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"
@@ -9607,21 +10607,21 @@ msgid ""
 "TCP connection, TLS handshake and so on) in the terminal."
 msgstr ""
 
-#: gnu/packages/networking.scm:647
+#: gnu/packages/networking.scm:827
 msgid "Console based live network and disk I/O bandwidth monitor"
 msgstr ""
 
-#: gnu/packages/networking.scm:648
+#: gnu/packages/networking.scm:828
 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:702
+#: gnu/packages/networking.scm:888
 msgid "Assess WiFi network security"
-msgstr ""
+msgstr "Evaluar seguridad de redes WiFi"
 
-#: gnu/packages/networking.scm:704
+#: gnu/packages/networking.scm:890
 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"
@@ -9629,105 +10629,130 @@ msgid ""
 "allows for heavy scripting."
 msgstr ""
 
-#: gnu/packages/networking.scm:729
+#: gnu/packages/networking.scm:912
+msgid "Event loop and event-driven async socket base class"
+msgstr ""
+
+#: gnu/packages/networking.scm:914
+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:938
+msgid "IPv4 and IPv6 validation methods"
+msgstr ""
+
+#: gnu/packages/networking.scm:940
+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:967
 msgid "Perl Interface to the Domain Name System"
 msgstr ""
 
-#: gnu/packages/networking.scm:730
+#: gnu/packages/networking.scm:968
 msgid "Net::DNS is the Perl Interface to the Domain Name System."
 msgstr ""
 
-#: gnu/packages/networking.scm:761
+#: gnu/packages/networking.scm:999
 msgid "IPv6 related part of the C socket.h defines and structure manipulators for Perl"
 msgstr ""
 
-#: gnu/packages/networking.scm:762
+#: gnu/packages/networking.scm:1000
 msgid ""
 "Socket6 binds the IPv6 related part of the C socket header\n"
 "definitions and structure manipulators for Perl."
 msgstr ""
 
-#: gnu/packages/networking.scm:788
+#: gnu/packages/networking.scm:1026
 msgid "Programmable DNS resolver class for offline emulation of DNS"
 msgstr ""
 
-#: gnu/packages/networking.scm:789
+#: gnu/packages/networking.scm:1027
 msgid ""
 "Net::DNS::Resolver::Programmable is a programmable DNS resolver for\n"
 "offline emulation of DNS."
 msgstr ""
 
-#: gnu/packages/networking.scm:822
+#: gnu/packages/networking.scm:1060
 msgid "Manages IPv4 and IPv6 addresses and subnets"
-msgstr ""
+msgstr "Gestiona direcciones IPv4 e IPv6 y subredes"
 
-#: gnu/packages/networking.scm:823
+#: gnu/packages/networking.scm:1061
 msgid "NetAddr::IP manages IPv4 and IPv6 addresses and subsets."
 msgstr ""
 
-#: gnu/packages/networking.scm:847
+#: gnu/packages/networking.scm:1085
 msgid "Patricia Trie Perl module for fast IP address lookups"
-msgstr ""
+msgstr "Módulo Perl Patricia Trie para direccionamiento de bucles IP rápido"
 
-#: gnu/packages/networking.scm:849
+#: gnu/packages/networking.scm:1087
 msgid "Net::Patricia does IP address lookups quickly in Perl."
 msgstr ""
 
-#: gnu/packages/networking.scm:872
+#: gnu/packages/networking.scm:1110
 msgid "Perl extension for merging IPv4 or IPv6 CIDR addresses"
 msgstr ""
 
-#: gnu/packages/networking.scm:873
+#: gnu/packages/networking.scm:1111
 msgid "Net::CIDR::Lite merges IPv4 or IPv6 CIDR addresses."
 msgstr ""
 
-#: gnu/packages/networking.scm:895
+#: gnu/packages/networking.scm:1133
 msgid "Look up location and network information by IP Address in Perl"
 msgstr ""
 
-#: gnu/packages/networking.scm:896
+#: gnu/packages/networking.scm:1134
 msgid ""
-"The Perl module 'Geo::IP'.  It looks up location and network\n"
-"information by IP Address."
+"The Perl module @code{Geo::IP}.  It looks up location and\n"
+"network information by IP Address."
 msgstr ""
 
-#: gnu/packages/networking.scm:925
+#: gnu/packages/networking.scm:1163
 msgid "Perl object interface for AF_INET/AF_INET6 domain sockets"
 msgstr ""
 
-#: gnu/packages/networking.scm:926
+#: gnu/packages/networking.scm:1164
 msgid ""
 "IO::Socket::INET6 is an interface for AF_INET/AF_INET6 domain\n"
 "sockets in Perl."
 msgstr ""
 
-#: gnu/packages/networking.scm:955
+#: gnu/packages/networking.scm:1193
 msgid "Library providing automatic proxy configuration management"
 msgstr ""
 
-#: gnu/packages/networking.scm:956
+#: gnu/packages/networking.scm:1194
 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:989
+#: gnu/packages/networking.scm:1229
 msgid "Redirect any TCP connection through a proxy or proxy chain"
 msgstr ""
 
-#: gnu/packages/networking.scm:990
+#: gnu/packages/networking.scm:1230
 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:1011
+#: gnu/packages/networking.scm:1250
 msgid "Network communication layer on top of UDP"
 msgstr ""
 
-#: gnu/packages/networking.scm:1013
+#: gnu/packages/networking.scm:1252
 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"
@@ -9737,11 +10762,11 @@ msgid ""
 "library remains flexible, portable, and easily embeddable."
 msgstr ""
 
-#: gnu/packages/networking.scm:1076
+#: gnu/packages/networking.scm:1317
 msgid "Applicative network protocol demultiplexer"
 msgstr ""
 
-#: gnu/packages/networking.scm:1078
+#: gnu/packages/networking.scm:1319
 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"
@@ -9753,11 +10778,11 @@ msgid ""
 "that block port 22."
 msgstr ""
 
-#: gnu/packages/networking.scm:1101
+#: gnu/packages/networking.scm:1342
 msgid "TCP, UDP and SCTP bandwidth measurement tool"
 msgstr ""
 
-#: gnu/packages/networking.scm:1103
+#: gnu/packages/networking.scm:1344
 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"
@@ -9765,11 +10790,12 @@ msgid ""
 "the bandwidth, loss, and other parameters."
 msgstr ""
 
-#: gnu/packages/networking.scm:1136
+#: gnu/packages/networking.scm:1377
+#, fuzzy
 msgid "Per-process bandwidth monitor"
-msgstr ""
+msgstr "Monitor ancho de banda"
 
-#: gnu/packages/networking.scm:1137
+#: gnu/packages/networking.scm:1378
 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"
@@ -9781,12 +10807,11 @@ msgid ""
 "gone wild and are suddenly taking up your bandwidth."
 msgstr ""
 
-#: gnu/packages/networking.scm:1183
-#, fuzzy
+#: gnu/packages/networking.scm:1424
 msgid "Usenet binary file downloader"
-msgstr "%s: no se puede ejecutar el fichero binario"
+msgstr "Descargador de fichero binario Usenet"
 
-#: gnu/packages/networking.scm:1185
+#: gnu/packages/networking.scm:1426
 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"
@@ -9796,12 +10821,11 @@ msgid ""
 "procedure calls (RPCs)."
 msgstr ""
 
-#: gnu/packages/networking.scm:1239
-#, fuzzy
+#: gnu/packages/networking.scm:1480
 msgid "Virtual network switch"
-msgstr "Máscara de red"
+msgstr "Intercambio de red virtual"
 
-#: gnu/packages/networking.scm:1242
+#: gnu/packages/networking.scm:1483
 msgid ""
 "Open vSwitch is a multilayer virtual switch.  It is designed to enable\n"
 "massive network automation through programmatic extension, while still\n"
@@ -9809,56 +10833,56 @@ msgid ""
 "IPFIX, RSPAN, CLI, LACP, 802.1ag)."
 msgstr ""
 
-#: gnu/packages/networking.scm:1264
+#: gnu/packages/networking.scm:1505
 msgid "Python class and tools for handling IP addresses and networks"
 msgstr ""
 
-#: gnu/packages/networking.scm:1265
+#: gnu/packages/networking.scm:1506
 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:1285
-#, fuzzy
+#: gnu/packages/networking.scm:1529
 msgid "Internet bandwidth tester"
-msgstr "Demonio de servicios de Internet"
+msgstr "Probando anchura de banda Internet"
 
-#: gnu/packages/networking.scm:1287
+#: gnu/packages/networking.scm:1531
 msgid ""
 "Command line interface for testing internet bandwidth using\n"
 "speedtest.net."
 msgstr ""
+"Interfaz de mandato lineal para probar ancho de banda de \n"
+"interred utilizando speedtest.net."
 
-#: gnu/packages/networking.scm:1305
+#: gnu/packages/networking.scm:1549
 msgid "HPA's tftp client"
 msgstr "Cliente tftp de HPA"
 
-#: gnu/packages/networking.scm:1307
+#: gnu/packages/networking.scm:1551
 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:1335
-#, fuzzy
+#: gnu/packages/networking.scm:1579
 msgid "Small Ident Daemon"
-msgstr "ident"
+msgstr "Demonio Ident Pequeño"
 
-#: gnu/packages/networking.scm:1337
+#: gnu/packages/networking.scm:1581
 msgid ""
 "@dfn{Pidentd} (Peter's Ident Daemon) is a 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:1384
+#: gnu/packages/networking.scm:1628
 msgid "Create secure pipes between sockets"
 msgstr ""
 
-#: gnu/packages/networking.scm:1385
+#: gnu/packages/networking.scm:1629
 msgid ""
 "Spiped (pronounced \"ess-pipe-dee\") is a utility for creating\n"
 "symmetrically encrypted and authenticated pipes between socket addresses, so\n"
@@ -9868,12 +10892,11 @@ msgid ""
 "does not use SSH and requires a pre-shared symmetric key."
 msgstr ""
 
-#: gnu/packages/networking.scm:1412
-#, fuzzy
+#: gnu/packages/networking.scm:1656
 msgid "Routing Software Suite"
 msgstr "Enrutando Suite Software"
 
-#: gnu/packages/networking.scm:1413
+#: gnu/packages/networking.scm:1657
 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"
@@ -9885,22 +10908,22 @@ msgid ""
 "updates to the zebra daemon."
 msgstr ""
 
-#: gnu/packages/networking.scm:1461
+#: gnu/packages/networking.scm:1708
 msgid "IPv6 security research toolkit"
-msgstr ""
+msgstr "Kit de herramientas de análisis de seguridad IPv6"
 
-#: gnu/packages/networking.scm:1462
+#: gnu/packages/networking.scm:1709
 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:1488
+#: gnu/packages/networking.scm:1735
 msgid "Bandwidth monitor"
 msgstr "Monitor ancho de banda"
 
-#: gnu/packages/networking.scm:1489
+#: gnu/packages/networking.scm:1736
 msgid ""
 "bmon is a monitoring and debugging tool to capture\n"
 "networking-related statistics and prepare them visually in a human-friendly\n"
@@ -9908,11 +10931,11 @@ msgid ""
 "interface and a programmable text output for scripting."
 msgstr ""
 
-#: gnu/packages/networking.scm:1531
+#: gnu/packages/networking.scm:1778
 msgid "Framework for low-level network packet construction"
 msgstr ""
 
-#: gnu/packages/networking.scm:1533
+#: gnu/packages/networking.scm:1780
 msgid ""
 "Libnet provides a fairly portable framework for network packet\n"
 "construction and injection.  It features portable packet creation interfaces\n"
@@ -9921,78 +10944,279 @@ msgid ""
 "can be whipped up with little effort."
 msgstr ""
 
-#: gnu/packages/pdf.scm:127
+#: gnu/packages/networking.scm:1808
+msgid "Network diagnostic tool"
+msgstr ""
+
+#: gnu/packages/networking.scm:1810
+msgid ""
+"@dfn{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:1862
 #, fuzzy
-msgid "PDF rendering library"
-msgstr "Renderizando boletín «~a»…"
+#| msgid "GNOME settings daemon"
+msgid "IKEv1/v2 keying daemon"
+msgstr "GNOME configurando demonios"
 
-#: gnu/packages/pdf.scm:129
-msgid "Poppler is a PDF rendering library based on the xpdf-3.0 code base."
+#: gnu/packages/networking.scm:1863
+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/pdf.scm:138
-msgid "Qt4 frontend for the Poppler PDF rendering library"
+#: gnu/packages/networking.scm:1947
+msgid "Peer-to-peer client for the eD2K and Kademlia networks"
 msgstr ""
 
-#: gnu/packages/pdf.scm:149
-msgid "Qt5 frontend for the Poppler PDF rendering library"
+#: gnu/packages/networking.scm:1949
+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/pdf.scm:182
-#, fuzzy
-msgid "Python bindings for Poppler-Qt4"
-msgstr "Enlazando XOSD para Guile"
+#: gnu/packages/networking.scm:1972
+msgid "Framework for proximity-based peer-to-peer applications"
+msgstr ""
 
-#: gnu/packages/pdf.scm:184
+#: gnu/packages/networking.scm:1973
 msgid ""
-"This package provides Python bindings for the Qt4 interface of the\n"
-"Poppler PDF rendering library."
+"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:2013
+msgid "CAN utilities"
 msgstr ""
 
-#: gnu/packages/pdf.scm:229
+#: gnu/packages/networking.scm:2014
+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:2050
+msgid "C++ library for ASynchronous network I/O"
+msgstr ""
+
+#: gnu/packages/networking.scm:2051
+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
+msgid "Fast tunnel proxy that helps you bypass firewalls"
+msgstr ""
+
+#: gnu/packages/networking.scm:2077
+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:2155
+msgid "Simple Network Management Protocol library and tools"
+msgstr ""
+
+#: gnu/packages/networking.scm:2156
+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:2197
+msgid "Bridge for UDP tunnels, Ethernet, TAP and VMnet interfaces"
+msgstr ""
+
+#: gnu/packages/networking.scm:2198
+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
+msgid "Capture wlan traffic to hashcat and John the Ripper"
+msgstr ""
+
+#: gnu/packages/networking.scm:2246
+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
+msgid "Small tool to capture packets from wlan devices"
+msgstr ""
+
+#: gnu/packages/networking.scm:2275
+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:2302
+msgid "SOCKS server and client"
+msgstr ""
+
+#: gnu/packages/networking.scm:2303
+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:2356
+msgid "Asynchronous RESTful functionality to C++11 applications"
+msgstr ""
+
+#: gnu/packages/networking.scm:2357
+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
+msgid "Distributed Hash Table (DHT) library"
+msgstr ""
+
+#: gnu/packages/networking.scm:2397
+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
 #, fuzzy
+msgid "IP routing protocol suite"
+msgstr "Biblioteca utilitaria para Netlink"
+
+#: gnu/packages/networking.scm:2426
+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/pdf.scm:129
+msgid "PDF rendering library"
+msgstr "Biblioteca renderizadora de PDF"
+
+#: gnu/packages/pdf.scm:131
+msgid "Poppler is a PDF rendering library based on the xpdf-3.0 code base."
+msgstr ""
+
+#: gnu/packages/pdf.scm:156
+msgid "Poppler encoding files for rendering of CJK and Cyrillic text"
+msgstr ""
+
+#: gnu/packages/pdf.scm:157
+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
+msgid "Qt4 frontend for the Poppler PDF rendering library"
+msgstr ""
+
+#: gnu/packages/pdf.scm:177
+msgid "Qt5 frontend for the Poppler PDF rendering library"
+msgstr ""
+
+#: gnu/packages/pdf.scm:220
 msgid "Python bindings for Poppler-Qt5"
-msgstr "Enlazando XOSD para Guile"
+msgstr "Enlaces binarios para Poppler-Qt5"
 
-#: gnu/packages/pdf.scm:231
+#: gnu/packages/pdf.scm:222
 msgid ""
 "This package provides Python bindings for the Qt5 interface of the\n"
 "Poppler PDF rendering library."
 msgstr ""
 
-#: gnu/packages/pdf.scm:268
+#: gnu/packages/pdf.scm:256
 msgid "Library for generating PDF files"
 msgstr "Biblioteca para generación de ficheros PDF"
 
-#: gnu/packages/pdf.scm:270
+#: gnu/packages/pdf.scm:258
 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:317
+#: gnu/packages/pdf.scm:305
 msgid "Viewer for PDF files based on the Motif toolkit"
 msgstr ""
 
-#: gnu/packages/pdf.scm:319
+#: gnu/packages/pdf.scm:307
 msgid "Xpdf is a viewer for Portable Document Format (PDF) files."
 msgstr ""
 
-#: gnu/packages/pdf.scm:349
+#: gnu/packages/pdf.scm:341
 msgid "Comic book support for zathura (libarchive backend)"
 msgstr ""
 
-#: gnu/packages/pdf.scm:350
+#: gnu/packages/pdf.scm:342
 msgid ""
 "The zathura-cb plugin adds comic book support to zathura\n"
 "using libarchive."
 msgstr ""
 
-#: gnu/packages/pdf.scm:380
+#: gnu/packages/pdf.scm:376
 msgid "PS support for zathura (libspectre backend)"
-msgstr ""
+msgstr "Apoyo PS para zathura (libspectre backend)"
 
-#: gnu/packages/pdf.scm:381
+#: gnu/packages/pdf.scm:377
 msgid ""
 "The zathura-ps plugin adds PS support to zathura\n"
 "using libspectre."
@@ -10000,7 +11224,7 @@ msgstr ""
 
 #: gnu/packages/pdf.scm:412
 msgid "DjVu support for zathura (DjVuLibre backend)"
-msgstr ""
+msgstr "Apoyo DjVu para zathura (DjVuLibre backend)"
 
 #: gnu/packages/pdf.scm:413
 msgid ""
@@ -10008,43 +11232,42 @@ msgid ""
 "using the DjVuLibre library."
 msgstr ""
 
-#: gnu/packages/pdf.scm:447
+#: gnu/packages/pdf.scm:456
 msgid "PDF support for zathura (mupdf backend)"
-msgstr ""
+msgstr "Apoyo PDF para zathura (mupdf backend)"
 
-#: gnu/packages/pdf.scm:448
+#: gnu/packages/pdf.scm:457
 msgid ""
 "The zathura-pdf-mupdf plugin adds PDF support to zathura\n"
 "by using the @code{mupdf} rendering library."
 msgstr ""
 
-#: gnu/packages/pdf.scm:480
+#: gnu/packages/pdf.scm:492
 msgid "PDF support for zathura (poppler backend)"
-msgstr ""
+msgstr "Apoyo PDF para zathura (poppler backend)"
 
-#: gnu/packages/pdf.scm:481
+#: gnu/packages/pdf.scm:493
 msgid ""
 "The zathura-pdf-poppler plugin adds PDF support to zathura\n"
 "by using the poppler rendering engine."
 msgstr ""
 
-#: gnu/packages/pdf.scm:518
+#: gnu/packages/pdf.scm:546
 msgid "Lightweight keyboard-driven PDF viewer"
 msgstr ""
 
-#: gnu/packages/pdf.scm:519
+#: gnu/packages/pdf.scm:547
 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:558
-#, fuzzy
+#: gnu/packages/pdf.scm:590
 msgid "Tools to work with the PDF file format"
-msgstr "Elección del nombre del formato de exportación en PDF"
+msgstr "Herramientas para trabajar con el formato de fichero PDF"
 
-#: gnu/packages/pdf.scm:560
+#: gnu/packages/pdf.scm:592
 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"
@@ -10053,11 +11276,11 @@ msgid ""
 "extracting content or merging files."
 msgstr ""
 
-#: gnu/packages/pdf.scm:609
+#: gnu/packages/pdf.scm:647
 msgid "Lightweight PDF viewer and toolkit"
 msgstr ""
 
-#: gnu/packages/pdf.scm:611
+#: gnu/packages/pdf.scm:649
 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"
@@ -10069,11 +11292,11 @@ msgid ""
 "@command{pdfclean}, and examining the file structure @command{pdfshow}."
 msgstr ""
 
-#: gnu/packages/pdf.scm:663
+#: gnu/packages/pdf.scm:708
 msgid "Command-line tools and library for transforming PDF files"
 msgstr ""
 
-#: gnu/packages/pdf.scm:665
+#: gnu/packages/pdf.scm:710
 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"
@@ -10082,33 +11305,32 @@ msgid ""
 "program capable of converting PDF into other formats."
 msgstr ""
 
-#: gnu/packages/pdf.scm:695
-#, fuzzy
+#: gnu/packages/pdf.scm:742
 msgid "Notetaking using a stylus"
-msgstr "  empleando "
+msgstr "Anotación utilizando un estilo"
 
-#: gnu/packages/pdf.scm:697
+#: gnu/packages/pdf.scm:744
 msgid ""
 "Xournal is an application for notetaking, sketching, keeping a journal\n"
 "using a stylus."
 msgstr ""
 
-#: gnu/packages/pdf.scm:719
+#: gnu/packages/pdf.scm:768
 msgid "Python library for generating PDFs and graphics"
 msgstr ""
 
-#: gnu/packages/pdf.scm:720
+#: gnu/packages/pdf.scm:769
 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:773
+#: gnu/packages/pdf.scm:822
 msgid "PDF presentation tool with visual effects"
-msgstr ""
+msgstr "Herramienta de presentación PDF con efectos visuales"
 
-#: gnu/packages/pdf.scm:775
+#: gnu/packages/pdf.scm:824
 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"
@@ -10116,32 +11338,31 @@ msgid ""
 "the PDF pages."
 msgstr ""
 
-#: gnu/packages/pdf.scm:823
+#: gnu/packages/pdf.scm:873
 msgid "Framebuffer and drm-based image viewer"
 msgstr ""
 
-#: gnu/packages/pdf.scm:825
+#: gnu/packages/pdf.scm:875
 msgid ""
 "fbida contains a few applications for viewing and editing images on\n"
 "the framebuffer."
 msgstr ""
 
-#: gnu/packages/pdf.scm:850
-#, fuzzy
+#: gnu/packages/pdf.scm:900
 msgid "PDF to SVG converter"
-msgstr "Exporta al fichero PDF"
+msgstr "Conversor PDF a SVG"
 
-#: gnu/packages/pdf.scm:851
+#: gnu/packages/pdf.scm:901
 msgid ""
 "@command{pdf2svg} is a simple command-line PDF to SVG\n"
 "converter using the Poppler and Cairo libraries."
 msgstr ""
 
-#: gnu/packages/pdf.scm:882 gnu/packages/pdf.scm:919
+#: gnu/packages/pdf.scm:932 gnu/packages/pdf.scm:969
 msgid "Pure Python PDF toolkit"
 msgstr ""
 
-#: gnu/packages/pdf.scm:883
+#: gnu/packages/pdf.scm:933
 msgid ""
 "PyPDF2 is a pure Python PDF library capable of:\n"
 "\n"
@@ -10161,7 +11382,7 @@ msgid ""
 "manage or manipulate PDFs."
 msgstr ""
 
-#: gnu/packages/pdf.scm:920
+#: gnu/packages/pdf.scm:970
 msgid ""
 "PyPDF2 is a pure Python PDF toolkit.\n"
 "\n"
@@ -10169,11 +11390,11 @@ msgid ""
 "python-pypdf2 instead."
 msgstr ""
 
-#: gnu/packages/pdf.scm:944
+#: gnu/packages/pdf.scm:994
 msgid "Scale and tile PDF images/pages to print on multiple pages"
 msgstr ""
 
-#: gnu/packages/pdf.scm:945
+#: gnu/packages/pdf.scm:995
 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"
@@ -10186,11 +11407,11 @@ msgid ""
 "PDF.  Indeed @command{pdfposter} was inspired by @command{poster}."
 msgstr ""
 
-#: gnu/packages/pdf.scm:976
+#: gnu/packages/pdf.scm:1026
 msgid "Command-line utility to search text in PDF files"
-msgstr ""
+msgstr "Utilidad de línea de mandato para buscar texto en ficheros PDF"
 
-#: gnu/packages/pdf.scm:978
+#: gnu/packages/pdf.scm:1028
 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"
@@ -10198,6 +11419,33 @@ msgid ""
 "multiple files."
 msgstr ""
 
+#: gnu/packages/pdf.scm:1062
+msgid "Presenter console with multi-monitor support for PDF files"
+msgstr ""
+
+#: gnu/packages/pdf.scm:1064
+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:1109
+#, fuzzy
+#| msgid "DVI to PostScript drivers"
+msgid "Pango to PostScript converter"
+msgstr "Controladores DVI a PostScript"
+
+#: gnu/packages/pdf.scm:1111
+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."
+msgstr ""
+
 #: gnu/packages/pem.scm:41
 msgid "Personal expenses manager"
 msgstr "Gestor de gastos personales"
@@ -10211,31 +11459,33 @@ msgid ""
 "feature."
 msgstr ""
 
-#: gnu/packages/perl.scm:148
+#: gnu/packages/perl.scm:158
 msgid "Implementation of the Perl programming language"
-msgstr ""
+msgstr "Implementación del lenguaje de programación Perl"
 
-#: gnu/packages/perl.scm:150
+#: gnu/packages/perl.scm:160
 msgid ""
-"Perl 5 is a highly capable, feature-rich programming language with over\n"
-"24 years of development."
+"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:169
+#: gnu/packages/perl.scm:181
 msgid "Module for merging hierarchies using the C3 algorithm"
 msgstr ""
 
-#: gnu/packages/perl.scm:170
+#: gnu/packages/perl.scm:182
 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:188
+#: gnu/packages/perl.scm:200
 msgid "Compute differences between two files or lists"
 msgstr ""
 
-#: gnu/packages/perl.scm:189
+#: gnu/packages/perl.scm:201
 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"
@@ -10244,11 +11494,11 @@ msgid ""
 "differences."
 msgstr ""
 
-#: gnu/packages/perl.scm:211
+#: gnu/packages/perl.scm:223
 msgid "Use shorter versions of class names"
 msgstr ""
 
-#: gnu/packages/perl.scm:212
+#: gnu/packages/perl.scm:224
 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"
@@ -10256,11 +11506,11 @@ msgid ""
 "implicitly."
 msgstr ""
 
-#: gnu/packages/perl.scm:234
+#: gnu/packages/perl.scm:246
 msgid "Transparently use Moose or Mouse modules"
 msgstr ""
 
-#: gnu/packages/perl.scm:236
+#: gnu/packages/perl.scm:248
 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"
@@ -10269,37 +11519,31 @@ msgid ""
 "variable ANY_MOOSE to be Moose or Mouse."
 msgstr ""
 
-#: gnu/packages/perl.scm:259
-#, fuzzy
+#: gnu/packages/perl.scm:271
 msgid "Configuration files and command line parsing"
-msgstr "línea %d: Error al procesar %%files: %s\n"
+msgstr "Ficheros de configuración e interpretando mandatos de línea"
 
-#: gnu/packages/perl.scm:260
+#: gnu/packages/perl.scm:272
 msgid ""
 "AppConfig is a bundle of Perl5 modules for reading\n"
 "configuration files and parsing command line arguments."
 msgstr ""
 
-#: gnu/packages/perl.scm:278
-#, fuzzy
-msgid "Perl API to zip files"
-msgstr "Configuración del API (ficheros *.ini)"
-
-#: gnu/packages/perl.scm:300
+#: gnu/packages/perl.scm:292
 msgid "Small utils for array manipulation"
 msgstr ""
 
-#: gnu/packages/perl.scm:301
+#: gnu/packages/perl.scm:293
 msgid ""
 "@code{Array::Utils} is a small pure-perl module containing\n"
 "list manipulation routines."
 msgstr ""
 
-#: gnu/packages/perl.scm:320
+#: gnu/packages/perl.scm:314
 msgid "Allow C/XS libraries to interrupt perl asynchronously"
-msgstr ""
+msgstr "Permite bibliotecas C/XS para interrumpir perl asíncronamente"
 
-#: gnu/packages/perl.scm:322
+#: gnu/packages/perl.scm:316
 msgid ""
 "@code{Async::Interrupt} implements a single feature only of interest\n"
 "to advanced perl modules, namely asynchronous interruptions (think \"UNIX\n"
@@ -10317,11 +11561,11 @@ msgid ""
 "sometimes even without using a single syscall."
 msgstr ""
 
-#: gnu/packages/perl.scm:352
+#: gnu/packages/perl.scm:346
 msgid "Lexically disable autovivification"
 msgstr "Léxicamente desactiva autovivificación"
 
-#: gnu/packages/perl.scm:353
+#: gnu/packages/perl.scm:347
 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"
@@ -10335,11 +11579,19 @@ msgid ""
 "error when it would have happened."
 msgstr ""
 
-#: gnu/packages/perl.scm:379 gnu/packages/perl.scm:6328
+#: gnu/packages/perl.scm:380
+msgid "Disables bareword filehandles"
+msgstr ""
+
+#: gnu/packages/perl.scm:381
+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:380
+#: 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"
@@ -10347,12 +11599,11 @@ msgid ""
 "parent."
 msgstr ""
 
-#: gnu/packages/perl.scm:400
-#, fuzzy
+#: gnu/packages/perl.scm:418
 msgid "Open a browser in a given URL"
-msgstr "Escuchando el url dado."
+msgstr "Abre un explorador dentro de una URL dada"
 
-#: gnu/packages/perl.scm:401
+#: gnu/packages/perl.scm:419
 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"
@@ -10360,21 +11611,29 @@ msgid ""
 "all known commands are checked."
 msgstr ""
 
-#: gnu/packages/perl.scm:426
+#: gnu/packages/perl.scm:444
 msgid "Execute code after a scope finished compilation"
 msgstr ""
 
-#: gnu/packages/perl.scm:427
+#: gnu/packages/perl.scm:445
 msgid ""
 "This module allows you to execute code when perl finished\n"
 "compiling the surrounding scope."
 msgstr ""
 
-#: gnu/packages/perl.scm:445
+#: gnu/packages/perl.scm:466
+msgid "Wrap OP check callbacks"
+msgstr ""
+
+#: gnu/packages/perl.scm:467
+msgid "This module allows you to wrap OP check callbacks."
+msgstr ""
+
+#: gnu/packages/perl.scm:483
 msgid "Lists of reserved barewords and symbol names"
 msgstr ""
 
-#: gnu/packages/perl.scm:446
+#: gnu/packages/perl.scm:484
 msgid ""
 "@code{B::Keywords} supplies several arrays of exportable\n"
 "keywords: @code{@@Scalars, @@Arrays, @@Hashes, @@Filehandles, @@Symbols,\n"
@@ -10382,11 +11641,11 @@ msgid ""
 "@@ExporterSymbols}."
 msgstr ""
 
-#: gnu/packages/perl.scm:469
+#: gnu/packages/perl.scm:507
 msgid "Benchmarking with statistical confidence"
 msgstr "Medición con confianza estadísticas"
 
-#: gnu/packages/perl.scm:471
+#: gnu/packages/perl.scm:509
 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"
@@ -10395,12 +11654,11 @@ msgid ""
 "but don't want to go all out and profile your code."
 msgstr ""
 
-#: gnu/packages/perl.scm:496
-#, fuzzy
+#: gnu/packages/perl.scm:533
 msgid "Bit vector library"
-msgstr "no se admite el registro de índice de vector"
+msgstr "Biblioteca vectorial bit"
 
-#: gnu/packages/perl.scm:497
+#: gnu/packages/perl.scm:534
 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"
@@ -10410,64 +11668,62 @@ msgid ""
 "library can nevertheless be used stand-alone, without Perl."
 msgstr ""
 
-#: gnu/packages/perl.scm:519
+#: gnu/packages/perl.scm:555
 msgid "Boolean support for Perl"
 msgstr "Apoyo booleano para Perl"
 
-#: gnu/packages/perl.scm:520
+#: gnu/packages/perl.scm:556
 msgid ""
 "This module provides basic Boolean support, by defining two\n"
 "special objects: true and false."
 msgstr ""
 
-#: gnu/packages/perl.scm:538
-#, fuzzy
+#: gnu/packages/perl.scm:574
 msgid "Data files for Business::ISBN"
-msgstr "NT_PROCSTAT_FILES (datos ficheros)"
+msgstr "Datos de fichero para  Business::ISBN"
 
-#: gnu/packages/perl.scm:539
+#: gnu/packages/perl.scm:575
 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:561
+#: gnu/packages/perl.scm:597
 msgid "Work with International Standard Book Numbers"
 msgstr ""
 
-#: gnu/packages/perl.scm:562
+#: gnu/packages/perl.scm:598
 msgid ""
 "This modules provides tools to deal with International\n"
 "Standard Book Numbers, including ISBN-10 and ISBN-13."
 msgstr ""
 
-#: gnu/packages/perl.scm:580
+#: gnu/packages/perl.scm:616
 msgid "Work with International Standard Serial Numbers"
 msgstr ""
 
-#: gnu/packages/perl.scm:581
+#: gnu/packages/perl.scm:617
 msgid ""
 "This modules provides tools to deal with International\n"
 "Standard Serial Numbers."
 msgstr ""
 
-#: gnu/packages/perl.scm:601
+#: gnu/packages/perl.scm:636
 msgid "Work with International Standard Music Numbers"
 msgstr ""
 
-#: gnu/packages/perl.scm:602
+#: gnu/packages/perl.scm:637
 msgid ""
 "This modules provides tools to deal with International\n"
 "Standard Music Numbers."
 msgstr ""
 
-#: gnu/packages/perl.scm:623
-#, fuzzy
+#: gnu/packages/perl.scm:658
 msgid "Cache interface for Perl"
-msgstr ", sin-caché"
+msgstr "Caché de interfaz para Perl"
 
-#: gnu/packages/perl.scm:624
+#: gnu/packages/perl.scm:659
 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"
@@ -10478,11 +11734,11 @@ msgid ""
 "easy to use abstraction of the file system or shared memory."
 msgstr ""
 
-#: gnu/packages/perl.scm:647
+#: gnu/packages/perl.scm:681
 msgid "Shared memory interprocess cache via mmap"
 msgstr ""
 
-#: gnu/packages/perl.scm:648
+#: gnu/packages/perl.scm:682
 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"
@@ -10490,11 +11746,11 @@ msgid ""
 "algorithm to keep the most used entries in the cache."
 msgstr ""
 
-#: gnu/packages/perl.scm:669
+#: gnu/packages/perl.scm:703
 msgid "Capture STDOUT and STDERR from Perl, XS or external programs"
 msgstr ""
 
-#: gnu/packages/perl.scm:671
+#: gnu/packages/perl.scm:705
 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"
@@ -10502,53 +11758,68 @@ msgid ""
 "is captured while being passed through to the original file handles."
 msgstr ""
 
-#: gnu/packages/perl.scm:690
+#: gnu/packages/perl.scm:724
 msgid "Check compatibility with the installed perl version"
 msgstr ""
 
-#: gnu/packages/perl.scm:692
+#: gnu/packages/perl.scm:726
 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:712
+#: gnu/packages/perl.scm:744
+msgid "Alternative warn and die for modules"
+msgstr ""
+
+#: gnu/packages/perl.scm:745
+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:770
 msgid "Warns and dies noisily with stack backtraces/"
 msgstr ""
 
-#: gnu/packages/perl.scm:713
+#: gnu/packages/perl.scm:771
 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:732
-#, fuzzy
+#: gnu/packages/perl.scm:790
 msgid "Executable comments for Perl"
-msgstr "ejecutable"
+msgstr "Comentarios ejecutable para Perl"
 
-#: gnu/packages/perl.scm:733
+#: gnu/packages/perl.scm:791
 msgid ""
 "Carp::Assert is intended for a purpose like the ANSI C\n"
 "library assert.h."
 msgstr ""
 
-#: gnu/packages/perl.scm:755
+#: gnu/packages/perl.scm:813
 msgid "Convenience wrappers around Carp::Assert"
 msgstr ""
 
-#: gnu/packages/perl.scm:756
+#: gnu/packages/perl.scm:814
 msgid ""
 "Carp::Assert::More is a set of handy assertion functions for\n"
 "Perl."
 msgstr ""
 
-#: gnu/packages/perl.scm:776
+#: gnu/packages/perl.scm:834
 msgid "Report errors from a \"clan\" of modules"
 msgstr ""
 
-#: gnu/packages/perl.scm:777
+#: gnu/packages/perl.scm:835
 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"
@@ -10556,84 +11827,86 @@ msgid ""
 "the Carp.pm module doesn't help."
 msgstr ""
 
-#: gnu/packages/perl.scm:797
+#: gnu/packages/perl.scm:855
 msgid "Read the CDDB entry for an audio CD in your drive"
 msgstr ""
 
-#: gnu/packages/perl.scm:798
+#: gnu/packages/perl.scm:856
 msgid "This module can retrieve information from the CDDB."
 msgstr ""
 
-#: gnu/packages/perl.scm:820
+#: gnu/packages/perl.scm:878
 msgid "Automated accessor generation"
 msgstr "Generación accesor automático"
 
-#: gnu/packages/perl.scm:821
+#: gnu/packages/perl.scm:879
 msgid ""
 "This module automagically generates accessors/mutators for\n"
 "your class."
 msgstr ""
 
-#: gnu/packages/perl.scm:843
+#: gnu/packages/perl.scm:901
 msgid "Faster, but less expandable, chained accessors"
 msgstr ""
 
-#: gnu/packages/perl.scm:844
+#: gnu/packages/perl.scm:902
 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 ""
+"Un accesor encadenado es uno que siempre devuelve el objeto\n"
+"cuando es llamado con parámetros (para establecer), y el valor del campo cuando\n"
+"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:871
-#, fuzzy
+#: gnu/packages/perl.scm:928
 msgid "Build groups of accessors"
-msgstr "compilar"
+msgstr "Compilar grupos de accesorios"
 
-#: gnu/packages/perl.scm:872
+#: gnu/packages/perl.scm:929
 msgid ""
 "This class lets you build groups of accessors that will call\n"
 "different getters and setters."
 msgstr ""
 
-#: gnu/packages/perl.scm:892
+#: gnu/packages/perl.scm:948
 msgid "Pragma to use the C3 method resolution order algorithm"
 msgstr ""
 
-#: gnu/packages/perl.scm:893
+#: gnu/packages/perl.scm:949
 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:917
-#, fuzzy
+#: gnu/packages/perl.scm:973
 msgid "Drop-in replacement for NEXT"
-msgstr "cadenas de reemplazo de campos vacíos conflictivas"
+msgstr "Soltar sustitución para NEXT"
 
-#: gnu/packages/perl.scm:918
+#: gnu/packages/perl.scm:974
 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:943
+#: gnu/packages/perl.scm:998
 msgid "Load mix-ins or components to your C3-based class"
 msgstr ""
 
-#: gnu/packages/perl.scm:944
+#: gnu/packages/perl.scm:999
 msgid ""
 "This module will inject base classes to your module using\n"
 "the Class::C3 method resolution order."
 msgstr ""
 
-#: gnu/packages/perl.scm:962
+#: gnu/packages/perl.scm:1017
 msgid "Inheritable, overridable class data"
 msgstr ""
 
-#: gnu/packages/perl.scm:963
+#: gnu/packages/perl.scm:1018
 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"
@@ -10641,22 +11914,21 @@ msgid ""
 "subclasses and can be overridden."
 msgstr ""
 
-#: gnu/packages/perl.scm:984
+#: gnu/packages/perl.scm:1038
 msgid "Class for easy date and time manipulation"
-msgstr ""
+msgstr "Clase para manipulación de fecha y hora fácil"
 
-#: gnu/packages/perl.scm:985
+#: gnu/packages/perl.scm:1039
 msgid ""
 "This module provides a general-purpose date and datetime\n"
 "type for perl."
 msgstr ""
 
-#: gnu/packages/perl.scm:1002
-#, fuzzy
+#: gnu/packages/perl.scm:1056
 msgid "Base class for error handling"
-msgstr "Clase base C++ no definida"
+msgstr "Clase base para manipulado de error"
 
-#: gnu/packages/perl.scm:1004
+#: gnu/packages/perl.scm:1058
 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"
@@ -10664,105 +11936,107 @@ msgid ""
 "to the calling program."
 msgstr ""
 
-#: gnu/packages/perl.scm:1025
+#: gnu/packages/perl.scm:1079
 msgid "Utility methods for factory classes"
 msgstr "Métodos utilizados para clases factoriales"
 
-#: gnu/packages/perl.scm:1026
+#: gnu/packages/perl.scm:1080
 msgid "This module exports methods useful for factory classes."
 msgstr ""
 
-#: gnu/packages/perl.scm:1043
+#: gnu/packages/perl.scm:1097
 msgid "Get information about a class and its structure"
 msgstr ""
 
-#: gnu/packages/perl.scm:1044
+#: gnu/packages/perl.scm:1098
 msgid ""
 "Class::Inspector allows you to get information about a\n"
 "loaded class."
 msgstr ""
 
-#: gnu/packages/perl.scm:1072
+#: gnu/packages/perl.scm:1126
 msgid "Working (require \"Class::Name\") and more"
 msgstr ""
 
-#: gnu/packages/perl.scm:1073
+#: gnu/packages/perl.scm:1127
 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 ""
+"«requerir EXPR» solo acepta nombres de estilo Clase/Nombre.pm\n"
+"modulares, no Clase::Nombre.  Por eso, este módulo proporciona \n"
+"«load_class 'Clase::Nombre'»."
 
-#: gnu/packages/perl.scm:1096
+#: gnu/packages/perl.scm:1151
 msgid "XS implementation of parts of Class::Load"
 msgstr ""
 
-#: gnu/packages/perl.scm:1097
+#: gnu/packages/perl.scm:1152
 msgid ""
 "This module provides an XS implementation for portions of\n"
 "Class::Load."
 msgstr ""
 
-#: gnu/packages/perl.scm:1116
+#: gnu/packages/perl.scm:1171
 msgid "Create generic methods for OO Perl"
 msgstr ""
 
-#: gnu/packages/perl.scm:1117
+#: gnu/packages/perl.scm:1172
 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:1138
+#: gnu/packages/perl.scm:1193
 msgid "Moose-like method modifiers"
 msgstr ""
 
-#: gnu/packages/perl.scm:1139
+#: gnu/packages/perl.scm:1194
 msgid ""
-"Class::Method::Modifiers provides three modifiers: 'before',\n"
-"'around', and 'after'.  'before' and 'after' are run just before and after the\n"
-"method they modify, but can not really affect that original method.  'around'\n"
-"is run in place of the original method, with a hook to easily call that\n"
-"original method."
+"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:1160
+#: gnu/packages/perl.scm:1215
 msgid "Implementation of a singleton class for Perl"
-msgstr ""
+msgstr "Implementación de una clase simple para Perl"
 
-#: gnu/packages/perl.scm:1161
+#: gnu/packages/perl.scm:1216
 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:1180
-#, fuzzy
+#: gnu/packages/perl.scm:1235
 msgid "Minimalist class construction"
-msgstr "(dentro de clase)"
+msgstr "Construcción de clase minimalista"
 
-#: gnu/packages/perl.scm:1181
+#: gnu/packages/perl.scm:1236
 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:1201
+#: gnu/packages/perl.scm:1256
 msgid "Unload a class"
 msgstr "Descarga una clase"
 
-#: gnu/packages/perl.scm:1202
+#: gnu/packages/perl.scm:1257
 msgid ""
 "Class:Unload unloads a given class by clearing out its\n"
 "symbol table and removing it from %INC."
 msgstr ""
 
-#: gnu/packages/perl.scm:1220
+#: gnu/packages/perl.scm:1275
 msgid "Generate fast XS accessors without runtime compilation"
 msgstr ""
 
-#: gnu/packages/perl.scm:1221
+#: gnu/packages/perl.scm:1276
 msgid ""
 "Class::XSAccessor implements fast read, write, and\n"
 "read/write accessors in XS.  Additionally, it can provide predicates such as\n"
@@ -10772,18 +12046,18 @@ msgid ""
 "arrays for their internal representation."
 msgstr ""
 
-#: gnu/packages/perl.scm:1241 gnu/packages/perl.scm:1264
+#: gnu/packages/perl.scm:1296 gnu/packages/perl.scm:1318
 msgid "Recursively copy Perl datatypes"
 msgstr "Copiar recursivamente tipos de datos Perl"
 
-#: gnu/packages/perl.scm:1243
+#: gnu/packages/perl.scm:1298
 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:1265
+#: gnu/packages/perl.scm:1319
 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"
@@ -10791,42 +12065,57 @@ msgid ""
 "and objects."
 msgstr ""
 
-#: gnu/packages/perl.scm:1285
+#: gnu/packages/perl.scm:1339
 msgid "Sane defaults for Perl programs"
-msgstr ""
+msgstr "Predeterminación Sane para progrmas Perl"
 
-#: gnu/packages/perl.scm:1286
+#: gnu/packages/perl.scm:1340
 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:1306
+#: gnu/packages/perl.scm:1364
+#, 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
+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:1389
 msgid "Load configuration from different file formats"
 msgstr ""
 
-#: gnu/packages/perl.scm:1307
+#: gnu/packages/perl.scm:1390
 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:1328
+#: gnu/packages/perl.scm:1411
 msgid "Module to implement some AutoConf macros in Perl"
 msgstr ""
 
-#: gnu/packages/perl.scm:1329
+#: gnu/packages/perl.scm:1412
 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:1347
+#: gnu/packages/perl.scm:1429
 msgid "Generic Config Module"
 msgstr "Módulo Configurable Genérico"
 
-#: gnu/packages/perl.scm:1348
+#: gnu/packages/perl.scm:1430
 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"
@@ -10837,32 +12126,44 @@ msgid ""
 "options."
 msgstr ""
 
-#: gnu/packages/perl.scm:1375
+#: gnu/packages/perl.scm:1460
+#, 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
+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
 msgid "Simple .ini-file format reader and writer"
 msgstr ""
 
-#: gnu/packages/perl.scm:1376
+#: gnu/packages/perl.scm:1485
 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:1397
+#: gnu/packages/perl.scm:1506
 msgid "Preserve context during subroutine call"
 msgstr ""
 
-#: gnu/packages/perl.scm:1398
+#: gnu/packages/perl.scm:1507
 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:1423
+#: gnu/packages/perl.scm:1532
 msgid "Extract data from Macintosh BinHex files"
 msgstr ""
 
-#: gnu/packages/perl.scm:1425
+#: gnu/packages/perl.scm:1534
 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"
@@ -10870,31 +12171,53 @@ msgid ""
 "data."
 msgstr ""
 
-#: gnu/packages/perl.scm:1447
+#: gnu/packages/perl.scm:1555
+#, 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
+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
+msgid "Extract the name and version from a distribution filename"
+msgstr ""
+
+#: gnu/packages/perl.scm:1579
+msgid ""
+"@code{CPAN::DistnameInfo} uses heuristics to extract the distribution\n"
+"name and version from filenames."
+msgstr ""
+
+#: gnu/packages/perl.scm:1599
 msgid "Verify requirements in a CPAN::Meta object"
 msgstr ""
 
-#: gnu/packages/perl.scm:1448
+#: gnu/packages/perl.scm:1600
 msgid ""
 "This module verifies if requirements described in a\n"
 "CPAN::Meta object are present."
 msgstr ""
 
-#: gnu/packages/perl.scm:1468
+#: gnu/packages/perl.scm:1619
 msgid "JSON::XS for Cpanel"
 msgstr "JSON::XS para Cpanel"
 
-#: gnu/packages/perl.scm:1469 gnu/packages/perl.scm:4193
+#: gnu/packages/perl.scm:1620 gnu/packages/perl.scm:4627
 msgid ""
 "This module converts Perl data structures to JSON and vice\n"
 "versa."
 msgstr ""
 
-#: gnu/packages/perl.scm:1487
+#: gnu/packages/perl.scm:1638
 msgid "Random password generator"
 msgstr "Generador de contraseñas aleatorias"
 
-#: gnu/packages/perl.scm:1488
+#: gnu/packages/perl.scm:1639
 msgid ""
 "Crypt::RandPasswd provides three functions that can be used\n"
 "to generate random passwords, constructed from words, letters, or characters.\n"
@@ -10905,42 +12228,40 @@ msgid ""
 "Password Generator\"."
 msgstr ""
 
-#: gnu/packages/perl.scm:1513
+#: gnu/packages/perl.scm:1664
 msgid "Perl implementation of the RC4 encryption algorithm"
 msgstr ""
 
-#: gnu/packages/perl.scm:1514
+#: gnu/packages/perl.scm:1665
 msgid "A pure Perl implementation of the RC4 algorithm."
-msgstr ""
+msgstr "Una implementación Perl pura del algoritmo RC4."
 
-#: gnu/packages/perl.scm:1533
-#, fuzzy
+#: gnu/packages/perl.scm:1684
 msgid "Temporarily change working directory"
-msgstr "no se puede obtener directorio ocupado"
+msgstr "Temporalmente modificar directorio de trabajo"
 
-#: gnu/packages/perl.scm:1535
+#: gnu/packages/perl.scm:1686
 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:1573
-#, fuzzy
+#: gnu/packages/perl.scm:1723
 msgid "Library for genomic analysis"
-msgstr "Análisis de señal…"
+msgstr "Biblioteca para análisis genómico"
 
-#: gnu/packages/perl.scm:1574
+#: gnu/packages/perl.scm:1724
 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:1603 gnu/packages/perl.scm:1769
+#: gnu/packages/perl.scm:1753 gnu/packages/perl.scm:1940
 msgid "Base classes wrapping fundamental Perl data types"
-msgstr ""
+msgstr "Clases base cubriendo tipos de datos fundamentales Perl"
 
-#: gnu/packages/perl.scm:1604
+#: gnu/packages/perl.scm:1754
 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"
@@ -10949,63 +12270,75 @@ msgid ""
 "input."
 msgstr ""
 
-#: gnu/packages/perl.scm:1627
-#, fuzzy
+#: gnu/packages/perl.scm:1777
 msgid "Compare Perl data structures"
-msgstr "Construye estructuras desde datos CGI"
+msgstr "Compara datos Perl estructurados"
 
-#: gnu/packages/perl.scm:1628
+#: gnu/packages/perl.scm:1778
 msgid ""
 "This module compares arbitrary data structures to see if\n"
 "they are copies of each other."
 msgstr ""
 
-#: gnu/packages/perl.scm:1646
+#: gnu/packages/perl.scm:1796
 msgid "Perl extension for generating unique identifiers"
 msgstr ""
 
-#: gnu/packages/perl.scm:1647
+#: gnu/packages/perl.scm:1797
 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"
 "short and handy (e.g. to use it as part of a URL)."
 msgstr ""
 
-#: gnu/packages/perl.scm:1666
-#, fuzzy
+#: gnu/packages/perl.scm:1816
 msgid "Pretty printing of data structures"
-msgstr "Pretty-printing:\n"
+msgstr "Impresión bonita de estructura de datos"
 
-#: gnu/packages/perl.scm:1667
+#: gnu/packages/perl.scm:1817
 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:1686
+#: gnu/packages/perl.scm:1836
+#, fuzzy
+#| msgid "Compare Perl data structures"
+msgid "Convert data structures to strings"
+msgstr "Compara datos Perl estructurados"
+
+#: gnu/packages/perl.scm:1837
+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:1857
 msgid "Concise data dumper"
 msgstr "Volcador de fechas concisas"
 
-#: gnu/packages/perl.scm:1687
+#: gnu/packages/perl.scm:1858
 msgid ""
 "Data::Dumper::Concise provides a dumper with Less\n"
 "indentation and newlines plus sub deparsing."
 msgstr ""
 
-#: gnu/packages/perl.scm:1709
+#: gnu/packages/perl.scm:1880
 msgid "Parse and validate simple name/value option pairs"
 msgstr ""
 
-#: gnu/packages/perl.scm:1711
+#: gnu/packages/perl.scm:1882
 msgid "Data::OptList provides a simple syntax for name/value option pairs."
 msgstr ""
 
-#: gnu/packages/perl.scm:1733
+#: gnu/packages/perl.scm:1904
 msgid "Help when paging through sets of results"
-msgstr ""
+msgstr "Ayuda cuando paginado a través de conjuntos de resultados"
 
-#: gnu/packages/perl.scm:1734
+#: gnu/packages/perl.scm:1905
 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"
@@ -11013,7 +12346,7 @@ msgid ""
 "The maths behind this is unfortunately fiddly, hence this module."
 msgstr ""
 
-#: gnu/packages/perl.scm:1771
+#: gnu/packages/perl.scm:1942
 msgid ""
 "@code{Data::Perl} is a container class for the following classes:\n"
 "@itemize\n"
@@ -11027,21 +12360,21 @@ msgid ""
 "@end itemize"
 msgstr ""
 
-#: gnu/packages/perl.scm:1802
+#: gnu/packages/perl.scm:1973
 msgid "Colored pretty-print of Perl data structures and objects"
 msgstr ""
 
-#: gnu/packages/perl.scm:1803
+#: gnu/packages/perl.scm:1974
 msgid ""
 "Display Perl variables and objects on screen, properly\n"
 "formatted (to be inspected by a human)."
 msgstr ""
 
-#: gnu/packages/perl.scm:1826
+#: gnu/packages/perl.scm:1997
 msgid "Conditionally split data into records"
 msgstr ""
 
-#: gnu/packages/perl.scm:1827
+#: gnu/packages/perl.scm:1998
 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"
@@ -11050,12 +12383,21 @@ msgid ""
 "like split on newlines unless newlines are embedded in quotes."
 msgstr ""
 
-#: gnu/packages/perl.scm:1850
-#, fuzzy
+#: gnu/packages/perl.scm:2026
+msgid "Read multiple hunks of data out of your DATA section"
+msgstr ""
+
+#: gnu/packages/perl.scm:2027
+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
 msgid "Structured tags datastructures"
-msgstr "Etiquetas EXIF:"
+msgstr "Etiquetas estructuradas de estructura de datos"
 
-#: gnu/packages/perl.scm:1852
+#: gnu/packages/perl.scm:2049
 msgid ""
 "This module is for manipulating data as hierarchical tag/value\n"
 "pairs (Structured TAGs or Simple Tree AGgregates).  These datastructures can\n"
@@ -11063,11 +12405,11 @@ msgid ""
 "Perl."
 msgstr ""
 
-#: gnu/packages/perl.scm:1879
+#: gnu/packages/perl.scm:2076
 msgid "N at a time iteration API"
 msgstr ""
 
-#: gnu/packages/perl.scm:1880
+#: gnu/packages/perl.scm:2077
 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"
@@ -11076,21 +12418,21 @@ msgid ""
 "necessary later on."
 msgstr ""
 
-#: gnu/packages/perl.scm:1905
+#: gnu/packages/perl.scm:2101
 msgid "Dynamic generation of nested combinations of variants"
 msgstr ""
 
-#: gnu/packages/perl.scm:1906
+#: gnu/packages/perl.scm:2102
 msgid ""
 "Data::Tumbler - Dynamic generation of nested combinations of\n"
 "variants."
 msgstr ""
 
-#: gnu/packages/perl.scm:1932
+#: gnu/packages/perl.scm:2128
 msgid "Visitor style traversal of Perl data structures"
 msgstr ""
 
-#: gnu/packages/perl.scm:1933
+#: gnu/packages/perl.scm:2129
 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"
@@ -11100,11 +12442,11 @@ msgid ""
 "structures, and all ref types (hashes, arrays, scalars, code, globs)."
 msgstr ""
 
-#: gnu/packages/perl.scm:1958
+#: gnu/packages/perl.scm:2154
 msgid "Gregorian calendar date calculations"
 msgstr ""
 
-#: gnu/packages/perl.scm:1959
+#: gnu/packages/perl.scm:2155
 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"
@@ -11112,33 +12454,32 @@ msgid ""
 "applicable)."
 msgstr ""
 
-#: gnu/packages/perl.scm:1983
+#: gnu/packages/perl.scm:2179
 msgid "XS wrapper for Date::Calc"
 msgstr ""
 
-#: gnu/packages/perl.scm:1984
+#: gnu/packages/perl.scm:2180
 msgid ""
 "Date::Calc::XS is an XS wrapper and C library plug-in for\n"
 "Date::Calc."
 msgstr ""
 
-#: gnu/packages/perl.scm:2008
-#, fuzzy
+#: gnu/packages/perl.scm:2203
 msgid "Date manipulation routines"
-msgstr "Manipulación de Base de Datos"
+msgstr "Fecha del rutinas de manipulación"
 
-#: gnu/packages/perl.scm:2009
+#: gnu/packages/perl.scm:2204
 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:2028
+#: gnu/packages/perl.scm:2223
 msgid "Simple date handling"
 msgstr "Manipular fecha simple"
 
-#: gnu/packages/perl.scm:2029
+#: gnu/packages/perl.scm:2224
 msgid ""
 "Dates are complex enough without times and timezones.  This\n"
 "module may be used to create simple date objects.  It handles validation,\n"
@@ -11146,22 +12487,22 @@ msgid ""
 "hours, minutes, seconds, and time zones."
 msgstr ""
 
-#: gnu/packages/perl.scm:2061
+#: gnu/packages/perl.scm:2256
 msgid "Date and time object for Perl"
 msgstr "Objetos de fecha y hora para Perl"
 
-#: gnu/packages/perl.scm:2062
+#: gnu/packages/perl.scm:2257
 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:2084
+#: gnu/packages/perl.scm:2278
 msgid "Dates in the Julian calendar"
 msgstr "Fechas en el calendario juliano"
 
-#: gnu/packages/perl.scm:2085
+#: gnu/packages/perl.scm:2279
 msgid ""
 "This package is a companion module to @code{DateTime.pm}.\n"
 "It implements the Julian calendar.  It supports everything that\n"
@@ -11169,11 +12510,11 @@ msgid ""
 "precise."
 msgstr ""
 
-#: gnu/packages/perl.scm:2111
+#: gnu/packages/perl.scm:2305
 msgid "DateTime set objects"
 msgstr "Objetos establecen FechaHora"
 
-#: gnu/packages/perl.scm:2112
+#: gnu/packages/perl.scm:2306
 msgid ""
 "The DateTime::Set module provides a date/time sets\n"
 "implementation.  It allows, for example, the generation of groups of dates,\n"
@@ -11181,21 +12522,21 @@ msgid ""
 "within a time range."
 msgstr ""
 
-#: gnu/packages/perl.scm:2135
+#: gnu/packages/perl.scm:2329
 msgid "DateTime rfc2445 recurrences"
 msgstr "Recurrencia FechaHora rfc2445"
 
-#: gnu/packages/perl.scm:2136
+#: gnu/packages/perl.scm:2330
 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:2157
+#: gnu/packages/perl.scm:2351
 msgid "DateTime::Set extension for basic recurrences"
 msgstr ""
 
-#: gnu/packages/perl.scm:2158
+#: gnu/packages/perl.scm:2352
 msgid ""
 "This module provides convenience methods that let you easily\n"
 "create DateTime::Set objects for various recurrences, such as \"once a month\"\n"
@@ -11203,11 +12544,11 @@ msgid ""
 "\"every Monday, Wednesday and Thursday at 10:00 AM and 2:00 PM\"."
 msgstr ""
 
-#: gnu/packages/perl.scm:2183
+#: gnu/packages/perl.scm:2377
 msgid "Create DateTime parser classes and objects"
 msgstr ""
 
-#: gnu/packages/perl.scm:2184
+#: gnu/packages/perl.scm:2378
 msgid ""
 "DateTime::Format::Builder creates DateTime parsers.  Many\n"
 "string formats of dates and times are simple and just require a basic regular\n"
@@ -11215,44 +12556,43 @@ msgid ""
 "to do this without writing reams of structural code."
 msgstr ""
 
-#: gnu/packages/perl.scm:2211
-#, fuzzy
+#: gnu/packages/perl.scm:2405
 msgid "Parse data/time strings"
-msgstr "No se han podido analizar los datos EXIF."
+msgstr "Interpreta cadenas textuales de datos/hora"
 
-#: gnu/packages/perl.scm:2212
+#: gnu/packages/perl.scm:2406
 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:2238
+#: gnu/packages/perl.scm:2432
 msgid "Parse and format iCal datetime and duration strings"
-msgstr ""
+msgstr "Interpreta y formatea fecha y hora iCal y cadenas de duración"
 
-#: gnu/packages/perl.scm:2239
+#: gnu/packages/perl.scm:2433
 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:2271
+#: gnu/packages/perl.scm:2464
 msgid "Machine-readable date/time with natural parsing"
 msgstr ""
 
-#: gnu/packages/perl.scm:2272
+#: gnu/packages/perl.scm:2465
 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:2299
+#: gnu/packages/perl.scm:2492
 msgid "Parse and format strp and strf time patterns"
-msgstr ""
+msgstr "Interpreta y formatea patrones temporales strp y strf"
 
-#: gnu/packages/perl.scm:2300
+#: gnu/packages/perl.scm:2493
 msgid ""
 "This module implements most of `strptime(3)`, the POSIX\n"
 "function that is the reverse of `strftime(3)`, for `DateTime`.  While\n"
@@ -11260,22 +12600,21 @@ msgid ""
 "takes a string and a pattern and returns the `DateTime` object associated."
 msgstr ""
 
-#: gnu/packages/perl.scm:2332
+#: gnu/packages/perl.scm:2526
 msgid "Localization support for DateTime.pm"
 msgstr "Apoyo a localización para  DateTime.pm"
 
-#: gnu/packages/perl.scm:2333
+#: gnu/packages/perl.scm:2527
 msgid ""
 "The DateTime::Locale modules provide localization data for\n"
 "the DateTime.pm class."
 msgstr ""
 
-#: gnu/packages/perl.scm:2361
-#, fuzzy
+#: gnu/packages/perl.scm:2568
 msgid "Time zone object for Perl"
-msgstr "_Zona horaria:"
+msgstr "Objeto de zona horaria para Perl"
 
-#: gnu/packages/perl.scm:2362
+#: gnu/packages/perl.scm:2569
 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"
@@ -11285,32 +12624,32 @@ msgid ""
 "DateTime::TimeZone methods."
 msgstr ""
 
-#: gnu/packages/perl.scm:2392
+#: gnu/packages/perl.scm:2599
 msgid "Parse date/time strings"
-msgstr "Interpretar cadenas textuales de fecha/hora"
+msgstr "Interpreta cadenas textuales de fecha/hora"
 
-#: gnu/packages/perl.scm:2393
+#: gnu/packages/perl.scm:2600
 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:2414
+#: gnu/packages/perl.scm:2621
 msgid "Convert between DateTime and RFC2822/822 formats"
 msgstr ""
 
-#: gnu/packages/perl.scm:2415
+#: gnu/packages/perl.scm:2622
 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:2437
+#: gnu/packages/perl.scm:2644
 msgid "Parse and format W3CDTF datetime strings"
-msgstr ""
+msgstr "Interpreta y rellena cadenas de fecha y hora W3CDTF"
 
-#: gnu/packages/perl.scm:2439
+#: gnu/packages/perl.scm:2646
 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"
@@ -11318,107 +12657,127 @@ msgid ""
 "the appropriate objects."
 msgstr ""
 
-#: gnu/packages/perl.scm:2461
-#, fuzzy
+#: gnu/packages/perl.scm:2668
 msgid "Meatier version of caller"
-msgstr "Llamador del marco: "
+msgstr "Versión carnosa de llamador"
 
-#: gnu/packages/perl.scm:2462
+#: gnu/packages/perl.scm:2669
 msgid "Devel::Caller provides meatier version of caller."
 msgstr ""
 
-#: gnu/packages/perl.scm:2480
+#: gnu/packages/perl.scm:2687
 msgid "Check that a command is available"
 msgstr "Marcar que una función está disponible"
 
-#: gnu/packages/perl.scm:2481
+#: gnu/packages/perl.scm:2688
 msgid ""
 "Devel::CheckBin is a perl module that checks whether a\n"
 "particular command is available."
 msgstr ""
 
-#: gnu/packages/perl.scm:2500
+#: gnu/packages/perl.scm:2708
 #, 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
+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:2731
 msgid "Check compiler availability"
-msgstr "   compilador : %.*s\n"
+msgstr "Marcar disponibilidad del compilador"
 
-#: gnu/packages/perl.scm:2501
+#: gnu/packages/perl.scm:2732
 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:2523
+#: gnu/packages/perl.scm:2754
 msgid "Find memory cycles in objects"
-msgstr ""
+msgstr "Encontrar ciclos de memoria en objetos"
 
-#: gnu/packages/perl.scm:2525
+#: gnu/packages/perl.scm:2756
 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:2546
+#: gnu/packages/perl.scm:2777
 msgid "Provides equivalent of ${^GLOBAL_PHASE} eq 'DESTRUCT' for older perls"
 msgstr ""
 
-#: gnu/packages/perl.scm:2547
+#: gnu/packages/perl.scm:2778
 msgid ""
 "Devel::GlobalDestruction provides a function returning the\n"
 "equivalent of \"$@{^GLOBAL_PHASE@} eq 'DESTRUCT'\" for older perls."
 msgstr ""
 
-#: gnu/packages/perl.scm:2568
+#: gnu/packages/perl.scm:2798
 msgid "Forces the unavailability of specified Perl modules (for testing)"
-msgstr ""
+msgstr "Fuerza la indisponibilidad de módulos Perl especificados (para pruebas)"
 
-#: gnu/packages/perl.scm:2569
+#: gnu/packages/perl.scm:2799
 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:2590
+#: gnu/packages/perl.scm:2818
+msgid "Utility for looking for perl objects that are not reclaimed"
+msgstr ""
+
+#: gnu/packages/perl.scm:2820
+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
 msgid "Alias lexical variables"
 msgstr "Variables léxicas alias"
 
-#: gnu/packages/perl.scm:2591
+#: gnu/packages/perl.scm:2841
 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:2615
-#, fuzzy
+#: gnu/packages/perl.scm:2865
 msgid "Introspect overloaded operators"
-msgstr "Operadores de sufijo `#' redundantes"
+msgstr "Introspección de operadores sobrecargados"
 
-#: gnu/packages/perl.scm:2616
+#: gnu/packages/perl.scm:2866
 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:2643
+#: gnu/packages/perl.scm:2893
 msgid "Partial dumping of data structures"
 msgstr "Volcado parcial de estructuras de datos"
 
-#: gnu/packages/perl.scm:2644
+#: gnu/packages/perl.scm:2894
 msgid ""
 "This module is a data dumper optimized for logging of\n"
 "arbitrary parameters."
 msgstr ""
 
-#: gnu/packages/perl.scm:2662
-#, fuzzy
+#: gnu/packages/perl.scm:2912
 msgid "Object representing a stack trace"
-msgstr "traza de pila finalizada"
+msgstr "Objeto representando una traza de pila"
 
-#: gnu/packages/perl.scm:2663
+#: gnu/packages/perl.scm:2913
 msgid ""
 "The Devel::StackTrace module contains two classes,\n"
 "Devel::StackTrace and Devel::StackTrace::Frame.  These objects encapsulate the\n"
@@ -11426,12 +12785,11 @@ msgid ""
 "providing a simple interface to this data."
 msgstr ""
 
-#: gnu/packages/perl.scm:2685
-#, fuzzy
+#: gnu/packages/perl.scm:2935
 msgid "Displays stack trace in HTML"
-msgstr "traza de pila finalizada"
+msgstr "Enseña trazas de pilas en HTML"
 
-#: gnu/packages/perl.scm:2686
+#: gnu/packages/perl.scm:2936
 msgid ""
 "Devel::StackTrace::AsHTML adds as_html method to\n"
 "Devel::StackTrace which displays the stack trace in beautiful HTML, with code\n"
@@ -11440,29 +12798,29 @@ msgid ""
 "each stack frame."
 msgstr ""
 
-#: gnu/packages/perl.scm:2707
+#: gnu/packages/perl.scm:2957
 msgid "Dump symbol names or the symbol table"
 msgstr "Volcar nombres de símbolos o la distribución simbólica"
 
-#: gnu/packages/perl.scm:2708
+#: gnu/packages/perl.scm:2958
 msgid "Devel::Symdump provides access to the perl symbol table."
 msgstr ""
 
-#: gnu/packages/perl.scm:2725
+#: gnu/packages/perl.scm:2975
 msgid "Keyed-Hashing for Message Authentication"
-msgstr ""
+msgstr "Hash del Ojo para Mensaje Autenticado"
 
-#: gnu/packages/perl.scm:2726
+#: gnu/packages/perl.scm:2976
 msgid ""
 "The Digest::HMAC module follows the common Digest::\n"
 "interface for the RFC 2104 HMAC mechanism."
 msgstr ""
 
-#: gnu/packages/perl.scm:2751
+#: gnu/packages/perl.scm:3002
 msgid "Perl interface to the MD-5 algorithm"
-msgstr ""
+msgstr "Interfaz Perl para algoritmo MD-5"
 
-#: gnu/packages/perl.scm:2753
+#: gnu/packages/perl.scm:3004
 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"
@@ -11470,61 +12828,61 @@ msgid ""
 "128-bit \"fingerprint\" or \"message digest\" of the input."
 msgstr ""
 
-#: gnu/packages/perl.scm:2771
+#: gnu/packages/perl.scm:3022
 msgid "Perl implementation of the SHA-1 message digest algorithm"
 msgstr ""
 
-#: gnu/packages/perl.scm:2773
+#: gnu/packages/perl.scm:3024
 msgid ""
-"This package provides 'Digest::SHA1', an implementation of the NIST\n"
+"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:2795
+#: gnu/packages/perl.scm:3045
 msgid "Declare version conflicts for your dist"
-msgstr ""
+msgstr "Declara conflictos de versiones para su distro"
 
-#: gnu/packages/perl.scm:2796
+#: gnu/packages/perl.scm:3046
 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:2816
+#: gnu/packages/perl.scm:3066
 msgid "Detect the encoding of data"
 msgstr "Detecta la codificación de datos"
 
-#: gnu/packages/perl.scm:2817
+#: gnu/packages/perl.scm:3067
 msgid ""
 "This package provides a class @code{Encode::Detect} to detect\n"
 "the encoding of data."
 msgstr ""
 
-#: gnu/packages/perl.scm:2835
+#: gnu/packages/perl.scm:3085
 msgid "ASCII mapping for eucJP encoding"
 msgstr ""
 
-#: gnu/packages/perl.scm:2836
+#: gnu/packages/perl.scm:3086
 msgid ""
 "This package provides an ASCII mapping for the eucJP\n"
 "encoding."
 msgstr ""
 
-#: gnu/packages/perl.scm:2854
+#: gnu/packages/perl.scm:3104
 msgid "JIS X 0212 (aka JIS 2000) encodings"
-msgstr ""
+msgstr "Codificaciones JIS X 0212 (aka JIS 2000)"
 
-#: gnu/packages/perl.scm:2855
+#: gnu/packages/perl.scm:3105
 msgid ""
 "This package provides encodings for JIS X 0212, which is\n"
 "also known as JIS 2000."
 msgstr ""
 
-#: gnu/packages/perl.scm:2878
+#: gnu/packages/perl.scm:3128
 msgid "Additional Chinese encodings"
 msgstr "Codificación china adicional"
 
-#: gnu/packages/perl.scm:2879
+#: gnu/packages/perl.scm:3129
 msgid ""
 "This Perl module provides Chinese encodings that are not\n"
 "part of Perl by default, including \"BIG5-1984\", \"BIG5-2003\", \"BIG5PLUS\",\n"
@@ -11532,11 +12890,11 @@ msgid ""
 "\"UNISYS\"."
 msgstr ""
 
-#: gnu/packages/perl.scm:2901
+#: gnu/packages/perl.scm:3151
 msgid "Advanced operations on path variables"
-msgstr ""
+msgstr "Operaciones avanzadas en rutas variables"
 
-#: gnu/packages/perl.scm:2902
+#: gnu/packages/perl.scm:3152
 msgid ""
 "@code{Env::Path} presents an object-oriented interface to\n"
 "path variables, defined as that subclass of environment variables which name\n"
@@ -11544,11 +12902,11 @@ msgid ""
 "separator."
 msgstr ""
 
-#: gnu/packages/perl.scm:2922
+#: gnu/packages/perl.scm:3172
 msgid "OO-ish Error/Exception handling for Perl"
 msgstr ""
 
-#: gnu/packages/perl.scm:2923
+#: gnu/packages/perl.scm:3173
 msgid ""
 "The Error package provides two interfaces.  Firstly Error\n"
 "provides a procedural interface to exception handling.  Secondly Error is a\n"
@@ -11556,11 +12914,11 @@ msgid ""
 "catch, or can simply be recorded."
 msgstr ""
 
-#: gnu/packages/perl.scm:2948
+#: gnu/packages/perl.scm:3198
 msgid "Safely and cleanly create closures via string eval"
 msgstr ""
 
-#: gnu/packages/perl.scm:2949
+#: gnu/packages/perl.scm:3199
 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"
@@ -11574,32 +12932,32 @@ msgid ""
 "errors are rethrown automatically."
 msgstr ""
 
-#: gnu/packages/perl.scm:2978
+#: gnu/packages/perl.scm:3228
 msgid "Allows you to declare real exception classes in Perl"
-msgstr ""
+msgstr "Permite a usted declarar excepciones reales de clases en Perl"
 
-#: gnu/packages/perl.scm:2979
+#: gnu/packages/perl.scm:3229
 msgid ""
 "Exception::Class allows you to declare exception hierarchies\n"
 "in your modules in a \"Java-esque\" manner."
 msgstr ""
 
-#: gnu/packages/perl.scm:2995
+#: gnu/packages/perl.scm:3245
 msgid "Lightweight exporting of functions and variables"
 msgstr ""
 
-#: gnu/packages/perl.scm:2997
+#: gnu/packages/perl.scm:3247
 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:3017
+#: gnu/packages/perl.scm:3266
 msgid "Exporter with the features of Sub::Exporter but only core dependencies"
 msgstr ""
 
-#: gnu/packages/perl.scm:3018
+#: gnu/packages/perl.scm:3267
 msgid ""
 "Exporter::Tiny supports many of Sub::Exporter's\n"
 "external-facing features including renaming imported functions with the `-as`,\n"
@@ -11608,33 +12966,32 @@ msgid ""
 "only about 40% as many lines of code and with zero non-core dependencies."
 msgstr ""
 
-#: gnu/packages/perl.scm:3041
+#: gnu/packages/perl.scm:3290
 msgid "Build.PL install path logic made easy"
 msgstr ""
 
-#: gnu/packages/perl.scm:3042
+#: gnu/packages/perl.scm:3291
 msgid ""
 "This module tries to make install path resolution as easy as\n"
 "possible."
 msgstr ""
 
-#: gnu/packages/perl.scm:3060
-#, fuzzy
+#: gnu/packages/perl.scm:3309
 msgid "Wrapper for perl's configuration"
-msgstr "La cubierta del enlazador"
+msgstr "Recubridor de configuración de Perl"
 
-#: gnu/packages/perl.scm:3061
+#: gnu/packages/perl.scm:3310
 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:3081
+#: gnu/packages/perl.scm:3330
 msgid "Easily build XS extensions that depend on XS extensions"
 msgstr ""
 
-#: gnu/packages/perl.scm:3083
+#: gnu/packages/perl.scm:3332
 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"
@@ -11642,21 +12999,21 @@ msgid ""
 "XS interface besides the perl one."
 msgstr ""
 
-#: gnu/packages/perl.scm:3103
+#: gnu/packages/perl.scm:3352
 msgid "Various portability utilities for module builders"
 msgstr ""
 
-#: gnu/packages/perl.scm:3104
+#: gnu/packages/perl.scm:3353
 msgid ""
 "This module provides various portable helper functions for\n"
 "module building modules."
 msgstr ""
 
-#: gnu/packages/perl.scm:3124
+#: gnu/packages/perl.scm:3373
 msgid "Tool to build C libraries"
-msgstr ""
+msgstr "Herramienta para compilar bibliotecas C"
 
-#: gnu/packages/perl.scm:3125
+#: gnu/packages/perl.scm:3374
 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"
@@ -11664,11 +13021,11 @@ msgid ""
 "self-contained C libraries.  This module main goal is to help in that task."
 msgstr ""
 
-#: gnu/packages/perl.scm:3146
+#: gnu/packages/perl.scm:3395
 msgid "Simplistic interface to pkg-config"
 msgstr ""
 
-#: gnu/packages/perl.scm:3148
+#: gnu/packages/perl.scm:3397
 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"
@@ -11676,22 +13033,21 @@ msgid ""
 "It is really just boilerplate code that you would have written yourself."
 msgstr ""
 
-#: gnu/packages/perl.scm:3180
+#: gnu/packages/perl.scm:3429
 msgid "Watch for changes to files"
 msgstr "Vigile modificaciones a ficheros"
 
-#: gnu/packages/perl.scm:3181
+#: gnu/packages/perl.scm:3430
 msgid ""
 "This module provides a class to monitor a directory for\n"
 "changes made to any file."
 msgstr ""
 
-#: gnu/packages/perl.scm:3202
-#, fuzzy
+#: gnu/packages/perl.scm:3451
 msgid "Get directories of configuration files"
-msgstr "los dos ficheros que hay que comparar son directorios"
+msgstr "Obtiene directorios de ficheros de configuración"
 
-#: gnu/packages/perl.scm:3203
+#: gnu/packages/perl.scm:3452
 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"
@@ -11699,45 +13055,44 @@ msgid ""
 "configuration files from more than one location."
 msgstr ""
 
-#: gnu/packages/perl.scm:3223
-#, fuzzy
+#: gnu/packages/perl.scm:3472
 msgid "Recursively copy files and directories"
-msgstr "Copia directorios recursivamente"
+msgstr "Copia recursivamente de ficheros y directorios"
 
-#: gnu/packages/perl.scm:3224
+#: gnu/packages/perl.scm:3473
 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:3246
+#: gnu/packages/perl.scm:3495
 msgid "Alternative interface to File::Find"
 msgstr "Interfaz alternativo para Fichero::Encontrar"
 
-#: gnu/packages/perl.scm:3247
+#: gnu/packages/perl.scm:3496
 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:3270
+#: gnu/packages/perl.scm:3519
 msgid "Common rules for searching for Perl things"
 msgstr ""
 
-#: gnu/packages/perl.scm:3271
+#: gnu/packages/perl.scm:3520
 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:3292
+#: gnu/packages/perl.scm:3541
 msgid "Matches patterns in a series of files"
 msgstr ""
 
-#: gnu/packages/perl.scm:3293
+#: gnu/packages/perl.scm:3542
 msgid ""
 "@code{File::Grep} provides similar functionality as perl's\n"
 "builtin @code{grep}, @code{map}, and @code{foreach} commands, but iterating\n"
@@ -11745,34 +13100,34 @@ msgid ""
 "provide a quick dropin when such functionality is needed."
 msgstr ""
 
-#: gnu/packages/perl.scm:3316
+#: gnu/packages/perl.scm:3565
 msgid "Find your home and other directories on any platform"
 msgstr ""
 
-#: gnu/packages/perl.scm:3317
+#: gnu/packages/perl.scm:3566
 msgid ""
 "File::HomeDir is a module for locating the directories that\n"
-"are \"owned\" by a user (typically your user) and to solve the various issues\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:3339
+#: gnu/packages/perl.scm:3587
 msgid "Create or remove directory trees"
 msgstr "Crear o quitar árboles directóricos"
 
-#: gnu/packages/perl.scm:3340
+#: gnu/packages/perl.scm:3588
 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:3363
+#: gnu/packages/perl.scm:3611
 msgid "Change directory temporarily for a limited scope"
-msgstr ""
+msgstr "Temporalmente modificar directorio para un ámbito limitado"
 
-#: gnu/packages/perl.scm:3364
+#: gnu/packages/perl.scm:3612
 msgid ""
 "@code{File::pushd} does a temporary @code{chdir} that is\n"
 "easily and automatically reverted, similar to @code{pushd} in some Unix\n"
@@ -11783,37 +13138,52 @@ msgid ""
 "at the end of the scope."
 msgstr ""
 
-#: gnu/packages/perl.scm:3392
+#: gnu/packages/perl.scm:3640
 msgid ""
 "Perl extension for crawling directory trees and compiling\n"
 "lists of files"
 msgstr ""
 
-#: gnu/packages/perl.scm:3395
+#: gnu/packages/perl.scm:3643
 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:3414
-#, fuzzy
+#: gnu/packages/perl.scm:3664
+msgid "Read a file backwards by lines"
+msgstr ""
+
+#: gnu/packages/perl.scm:3665
+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:3691
 msgid "Remove files and directories in Perl"
-msgstr "los dos ficheros que hay que comparar son directorios"
+msgstr "Quita ficheros y directorios en Perl"
 
-#: gnu/packages/perl.scm:3415
+#: gnu/packages/perl.scm:3692
 msgid ""
-"File::Remove::remove removes files and directories.  It acts\n"
-"like /bin/rm, for the most part.  Although \"unlink\" can be given a list of\n"
-"files, it will not remove directories; this module remedies that.  It also\n"
-"accepts wildcards, * and ?, as arguments for file names."
+"@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:3439
+#: gnu/packages/perl.scm:3715
 msgid "Locate per-dist and per-module shared files"
 msgstr ""
 
-#: gnu/packages/perl.scm:3440
+#: gnu/packages/perl.scm:3716
 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"
@@ -11823,96 +13193,106 @@ msgid ""
 "the installation."
 msgstr ""
 
-#: gnu/packages/perl.scm:3462
+#: gnu/packages/perl.scm:3737
 msgid "Locate per-dist shared files"
 msgstr ""
 
-#: gnu/packages/perl.scm:3463
+#: gnu/packages/perl.scm:3738
 msgid ""
 "File::ShareDir::Dist finds share directories for\n"
 "distributions.  It is a companion module to File::ShareDir."
 msgstr ""
 
-#: gnu/packages/perl.scm:3483
-#, fuzzy
+#: gnu/packages/perl.scm:3758
 msgid "Install shared files"
-msgstr "no instalar ficheros de configuración"
+msgstr "Instalar ficheros compartidos"
 
-#: gnu/packages/perl.scm:3484
+#: gnu/packages/perl.scm:3759
 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:3503
+#: gnu/packages/perl.scm:3777
 msgid "Reading/Writing/Modifying of complete files"
 msgstr ""
 
-#: gnu/packages/perl.scm:3504
+#: gnu/packages/perl.scm:3778
 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:3527
+#: gnu/packages/perl.scm:3803
 msgid "Simple, sane and efficient module to slurp a file"
 msgstr ""
 
-#: gnu/packages/perl.scm:3528
+#: gnu/packages/perl.scm:3804
 msgid ""
 "This module provides functions for fast and correct file\n"
 "slurping and spewing.  All functions are optionally exported."
 msgstr ""
 
-#: gnu/packages/perl.scm:3545
-#, fuzzy
+#: gnu/packages/perl.scm:3821
 msgid "Simple file reader and writer"
-msgstr "copias de seguridad simples para cada fichero"
+msgstr "Lectura y escritura simple de ficheros"
 
-#: gnu/packages/perl.scm:3547
+#: gnu/packages/perl.scm:3823
 msgid "This module provides functions for fast reading and writing of files."
 msgstr ""
 
-#: gnu/packages/perl.scm:3566
+#: gnu/packages/perl.scm:3841
 msgid "Return name and handle of a temporary file safely"
 msgstr ""
 
-#: gnu/packages/perl.scm:3567
+#: gnu/packages/perl.scm:3842
 msgid ""
 "File::Temp can be used to create and open temporary files in\n"
 "a safe way."
 msgstr ""
 
-#: gnu/packages/perl.scm:3584
+#: gnu/packages/perl.scm:3859
 msgid "Portable implementation of the `which' utility"
 msgstr ""
 
-#: gnu/packages/perl.scm:3586
+#: gnu/packages/perl.scm:3861
 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:3609
+#: gnu/packages/perl.scm:3883
 msgid "Extended Unix style glob functionality"
 msgstr ""
 
-#: gnu/packages/perl.scm:3610
+#: gnu/packages/perl.scm:3884
 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:3629
-#, fuzzy
+#: gnu/packages/perl.scm:3905
+msgid "Simple and dumb file system watcher"
+msgstr ""
+
+#: gnu/packages/perl.scm:3907
+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."
+msgstr ""
+
+#: gnu/packages/perl.scm:3928
 msgid "Module to handle parsing command line options"
-msgstr "Error interno durante el análisis de las opciones de línea de órdenes.\n"
+msgstr "Módulo para  manipular opciones de líneas de mandatos interpretandos"
 
-#: gnu/packages/perl.scm:3630
+#: gnu/packages/perl.scm:3929
 msgid ""
 "The @code{Getopt::Long} module implements an extended getopt\n"
 "function called @code{GetOptions()}.  It parses the command line from\n"
@@ -11926,11 +13306,11 @@ msgid ""
 "single-letter approach, is provided but not enabled by default."
 msgstr ""
 
-#: gnu/packages/perl.scm:3664
+#: gnu/packages/perl.scm:3963
 msgid "Getopt::Long, but simpler and more powerful"
 msgstr ""
 
-#: gnu/packages/perl.scm:3665
+#: gnu/packages/perl.scm:3964
 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"
@@ -11938,31 +13318,31 @@ msgid ""
 "usage (help) messages, data validation, and a few other useful features."
 msgstr ""
 
-#: gnu/packages/perl.scm:3683
+#: gnu/packages/perl.scm:3982
 msgid "Table-driven argument parsing for Perl"
 msgstr ""
 
-#: gnu/packages/perl.scm:3685
+#: gnu/packages/perl.scm:3984
 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:3707
+#: gnu/packages/perl.scm:4005
 msgid "Graph data structures and algorithms"
 msgstr "Estructuras y algoritmos de datos gráficos"
 
-#: gnu/packages/perl.scm:3708
+#: gnu/packages/perl.scm:4006
 msgid ""
 "This is @code{Graph}, a Perl module for dealing with graphs,\n"
 "the abstract data structures."
 msgstr ""
 
-#: gnu/packages/perl.scm:3725
+#: gnu/packages/perl.scm:4023
 msgid "Safe cleanup blocks implemented as guards"
 msgstr ""
 
-#: gnu/packages/perl.scm:3726
+#: gnu/packages/perl.scm:4024
 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"
@@ -11973,11 +13353,11 @@ msgid ""
 "which are tied to the scope exit."
 msgstr ""
 
-#: gnu/packages/perl.scm:3762
+#: gnu/packages/perl.scm:4060
 msgid "Lightweight field hash for inside-out objects"
 msgstr ""
 
-#: gnu/packages/perl.scm:3763
+#: gnu/packages/perl.scm:4061
 msgid ""
 "@code{Hash::FieldHash} provides the field hash mechanism\n"
 "which supports the inside-out technique.  It is an alternative to\n"
@@ -11985,11 +13365,11 @@ msgid ""
 "relic support."
 msgstr ""
 
-#: gnu/packages/perl.scm:3783
+#: gnu/packages/perl.scm:4081
 msgid "Merge arbitrarily deep hashes into a single hash"
-msgstr ""
+msgstr "Combina arbitrariamente hashes profundos dentro de un hash único"
 
-#: gnu/packages/perl.scm:3784
+#: gnu/packages/perl.scm:4082
 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"
@@ -11999,21 +13379,21 @@ msgid ""
 "merged."
 msgstr ""
 
-#: gnu/packages/perl.scm:3806
+#: gnu/packages/perl.scm:4104
 msgid "Store multiple values per key"
 msgstr ""
 
-#: gnu/packages/perl.scm:3807
+#: gnu/packages/perl.scm:4105
 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:3825
+#: gnu/packages/perl.scm:4123
 msgid "Alternative but compatible interface to modules that export symbols"
-msgstr ""
+msgstr "Interfaz alternativo pero compatible para módulos que exportan símbolos"
 
-#: gnu/packages/perl.scm:3826
+#: gnu/packages/perl.scm:4124
 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"
@@ -12023,14 +13403,11 @@ msgid ""
 "variables."
 msgstr ""
 
-#: gnu/packages/perl.scm:3850
-#, fuzzy
+#: gnu/packages/perl.scm:4148
 msgid "Import packages into other packages"
-msgstr ""
-"Paquetes a ser reinstalados\n"
-" Estos paquetes serán reinstalados."
+msgstr "Importar paquetes dentro de otros paquetes"
 
-#: gnu/packages/perl.scm:3851
+#: gnu/packages/perl.scm:4149
 msgid ""
 "Writing exporters is a pain.  Some use Exporter, some use\n"
 "Sub::Exporter, some use Moose::Exporter, some use Exporter::Declare ... and\n"
@@ -12040,22 +13417,71 @@ msgid ""
 "compilation.  Import::Into provides global methods to make this painless."
 msgstr ""
 
-#: gnu/packages/perl.scm:3873
+#: gnu/packages/perl.scm:4171
 msgid "Use modules in inc/ if newer than installed"
 msgstr ""
 
-#: gnu/packages/perl.scm:3874
+#: gnu/packages/perl.scm:4172
 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:3895
+#: gnu/packages/perl.scm:4192
+msgid "Lexically warn about using the indirect method call syntax"
+msgstr ""
+
+#: gnu/packages/perl.scm:4194
+msgid "Indirect warns about using the indirect method call syntax."
+msgstr ""
+
+#: gnu/packages/perl.scm:4214
+#, 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
+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:4245
+#, fuzzy
+#| msgid "Babel support for English"
+msgid "C Language Support for Inline"
+msgstr "Capacidad Babel para inglés"
+
+#: gnu/packages/perl.scm:4246
+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:4272
+msgid "@code{IO::All} to Larry Wall!"
+msgstr ""
+
+#: gnu/packages/perl.scm:4273
+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:4295
 msgid "Capture STDOUT and STDERR from Perl code, subprocesses or XS"
 msgstr ""
 
-#: gnu/packages/perl.scm:3896
+#: gnu/packages/perl.scm:4296
 msgid ""
 "@code{IO::CaptureOutput} provides routines for capturing\n"
 "@code{STDOUT} and @code{STDERR} from perl subroutines, forked system\n"
@@ -12065,66 +13491,74 @@ msgid ""
 "try @code{Capture::Tiny} instead."
 msgstr ""
 
-#: gnu/packages/perl.scm:3918
-#, fuzzy
+#: gnu/packages/perl.scm:4317
 msgid "Utilities for interactive I/O"
-msgstr "fuerza E/S interactiva"
+msgstr "Utilidades para E/S interactiva"
 
-#: gnu/packages/perl.scm:3919
+#: gnu/packages/perl.scm:4318
 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:3938
+#: gnu/packages/perl.scm:4352
+msgid "Select a pager and pipe text to it"
+msgstr ""
+
+#: gnu/packages/perl.scm:4354
+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
 msgid "Emulate file interface for in-core strings"
 msgstr ""
 
-#: gnu/packages/perl.scm:3939
+#: gnu/packages/perl.scm:4373
 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:3957
+#: gnu/packages/perl.scm:4391
 msgid "IO:: interface for reading/writing an array of lines"
 msgstr ""
 
-#: gnu/packages/perl.scm:3958
+#: gnu/packages/perl.scm:4392
 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:3976
+#: gnu/packages/perl.scm:4410
 msgid "Perl interface to pseudo ttys"
-msgstr ""
+msgstr "Interfaz Perl para pseudo ttys"
 
-#: gnu/packages/perl.scm:3978
+#: gnu/packages/perl.scm:4412
 msgid ""
-"This package provides the 'IO::Pty' and 'IO::Tty' Perl interfaces to\n"
-"pseudo ttys."
+"This package provides the @code{IO::Pty} and @code{IO::Tty} Perl\n"
+"interfaces to pseudo ttys."
 msgstr ""
 
-#: gnu/packages/perl.scm:3996
-#, fuzzy
+#: gnu/packages/perl.scm:4429
 msgid "Run interactive command-line programs"
-msgstr "¡Este guión debe ser ejecutado desde la línea de órdenes!"
+msgstr "Ejecución interactiva de programa por línea de mandato"
 
-#: gnu/packages/perl.scm:3997
+#: gnu/packages/perl.scm:4430
 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:4026
+#: gnu/packages/perl.scm:4459
 msgid "Run system() and background procs w/ piping, redirs, ptys"
 msgstr ""
 
-#: gnu/packages/perl.scm:4027
+#: gnu/packages/perl.scm:4460
 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"
@@ -12132,11 +13566,11 @@ msgid ""
 "both supported and may be mixed."
 msgstr ""
 
-#: gnu/packages/perl.scm:4045
+#: gnu/packages/perl.scm:4478
 msgid "Run a subprocess with input/output redirection"
 msgstr ""
 
-#: gnu/packages/perl.scm:4047
+#: gnu/packages/perl.scm:4480
 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"
@@ -12144,22 +13578,21 @@ msgid ""
 "Perlish API and none of the bloat and rarely used features of IPC::Run."
 msgstr ""
 
-#: gnu/packages/perl.scm:4071
-#, fuzzy
+#: gnu/packages/perl.scm:4503
 msgid "Lightweight interface to shared memory"
-msgstr "objeto de memoria compartido"
+msgstr "Interfaz ligero para memoria compartida"
 
-#: gnu/packages/perl.scm:4072
+#: gnu/packages/perl.scm:4504
 msgid ""
 "IPC::ShareLite provides a simple interface to shared memory,\n"
 "allowing data to be efficiently communicated between processes."
 msgstr ""
 
-#: gnu/packages/perl.scm:4090
+#: gnu/packages/perl.scm:4522
 msgid "Run commands simply, with detailed diagnostics"
 msgstr ""
 
-#: gnu/packages/perl.scm:4091
+#: gnu/packages/perl.scm:4523
 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"
@@ -12170,21 +13603,21 @@ msgid ""
 "commands."
 msgstr ""
 
-#: gnu/packages/perl.scm:4116
+#: gnu/packages/perl.scm:4548
 msgid "JSON encoder/decoder for Perl"
-msgstr ""
+msgstr "Codificador/decodificador JSON para Perl"
 
-#: gnu/packages/perl.scm:4117
+#: gnu/packages/perl.scm:4549
 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:4142
+#: gnu/packages/perl.scm:4574
 msgid "Wrapper for Perl JSON classes"
-msgstr ""
+msgstr "Recubridor de clases JSON de Perl"
 
-#: gnu/packages/perl.scm:4144
+#: gnu/packages/perl.scm:4576
 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"
@@ -12192,11 +13625,11 @@ msgid ""
 "installed."
 msgstr ""
 
-#: gnu/packages/perl.scm:4168
+#: gnu/packages/perl.scm:4600
 msgid "Cpanel::JSON::XS with fallback"
-msgstr ""
+msgstr "Cpanel::JSON::XS con retroceso"
 
-#: gnu/packages/perl.scm:4169
+#: gnu/packages/perl.scm:4601
 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"
@@ -12204,15 +13637,23 @@ msgid ""
 "either uses the first module it finds or throws an error."
 msgstr ""
 
-#: gnu/packages/perl.scm:4192
+#: gnu/packages/perl.scm:4626
 msgid "JSON serialising/deserialising for Perl"
+msgstr "Serialización/deserialización de JSON para Perl"
+
+#: gnu/packages/perl.scm:4649
+msgid "Prevent leakage of lexical hints"
 msgstr ""
 
-#: gnu/packages/perl.scm:4211
+#: gnu/packages/perl.scm:4651
+msgid "Lexical::SealRequireHints prevents leakage of lexical hints"
+msgstr ""
+
+#: gnu/packages/perl.scm:4667
 msgid "Bringing loggers and listeners together"
 msgstr ""
 
-#: gnu/packages/perl.scm:4212
+#: gnu/packages/perl.scm:4668
 msgid ""
 "@code{Log::Any} provides a standard log production API for\n"
 "modules.  @code{Log::Any::Adapter} allows applications to choose the mechanism\n"
@@ -12225,122 +13666,121 @@ msgid ""
 "\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 'null' logging activity, so a module can safely log without\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:4248
+#: gnu/packages/perl.scm:4704
 msgid "Log::Any adapter for Log::Log4perl"
 msgstr ""
 
-#: gnu/packages/perl.scm:4249
+#: gnu/packages/perl.scm:4705
 msgid ""
 "@code{Log::Any::Adapter::Log4perl} provides a\n"
 "@code{Log::Any} adapter using @code{Log::Log4perl} for logging."
 msgstr ""
 
-#: gnu/packages/perl.scm:4270
+#: gnu/packages/perl.scm:4726
 msgid "Log4j implementation for Perl"
 msgstr "Implementación Log4j para Perl"
 
-#: gnu/packages/perl.scm:4271
+#: gnu/packages/perl.scm:4727
 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:4291
-#, fuzzy
+#: gnu/packages/perl.scm:4747
 msgid "Log::Report in the lightest form"
-msgstr "informe de registro"
+msgstr "Log::Report en formato ligero"
 
-#: gnu/packages/perl.scm:4293
+#: gnu/packages/perl.scm:4749
 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 'Optional' will also use the full\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:4318
+#: gnu/packages/perl.scm:4774
 msgid "Get messages to users and logs"
-msgstr ""
+msgstr "Obtiene mensajes para usuarios y boletines"
 
-#: gnu/packages/perl.scm:4320
+#: gnu/packages/perl.scm:4776
 msgid ""
 "@code{Log::Report} combines three tasks which are closely related in\n"
 "one: logging, exceptions, and translations."
 msgstr ""
 
-#: gnu/packages/perl.scm:4349
+#: gnu/packages/perl.scm:4804
 msgid "High-level interface to Uniforum message translation"
 msgstr ""
 
-#: gnu/packages/perl.scm:4350
+#: gnu/packages/perl.scm:4805
 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:4369
+#: gnu/packages/perl.scm:4824
 msgid "Transliterate text between writing systems"
 msgstr ""
 
-#: gnu/packages/perl.scm:4370
+#: gnu/packages/perl.scm:4825
 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:4394
+#: gnu/packages/perl.scm:4849
 msgid "Combination of List::Util and List::MoreUtils"
 msgstr ""
 
-#: gnu/packages/perl.scm:4395
+#: gnu/packages/perl.scm:4850
 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:4417
+#: gnu/packages/perl.scm:4872
 msgid "Compare elements of two or more lists"
 msgstr ""
 
-#: gnu/packages/perl.scm:4418
+#: gnu/packages/perl.scm:4873
 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:4453 gnu/packages/perl.scm:4504
+#: gnu/packages/perl.scm:4908 gnu/packages/perl.scm:4958
 msgid "Provide the stuff missing in List::Util"
 msgstr ""
 
-#: gnu/packages/perl.scm:4454
+#: gnu/packages/perl.scm:4909
 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:4476
+#: gnu/packages/perl.scm:4931
 msgid "Provide the stuff missing in List::Util in XS"
 msgstr ""
 
-#: gnu/packages/perl.scm:4477
+#: gnu/packages/perl.scm:4932
 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:4505
+#: gnu/packages/perl.scm:4959
 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"
@@ -12352,11 +13792,11 @@ msgid ""
 "portions of this module couldn't be compiled on this machine."
 msgstr ""
 
-#: gnu/packages/perl.scm:4534
+#: gnu/packages/perl.scm:4988
 msgid "Bundle of ancient email modules"
 msgstr ""
 
-#: gnu/packages/perl.scm:4535
+#: gnu/packages/perl.scm:4989
 msgid ""
 "MailTools contains the following modules:\n"
 "@table @asis\n"
@@ -12383,56 +13823,87 @@ msgid ""
 "@end table"
 msgstr ""
 
-#: gnu/packages/perl.scm:4574
+#: gnu/packages/perl.scm:5028
+msgid "Solution of bezier curves"
+msgstr ""
+
+#: gnu/packages/perl.scm:5029
+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
+#, 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
+msgid ""
+"@code{Math::Round} provides functions to round numbers,\n"
+"both positive and negative, in various ways."
+msgstr ""
+
+#: gnu/packages/perl.scm:5067
+msgid "Make functions faster by trading space for time"
+msgstr ""
+
+#: gnu/packages/perl.scm:5068
+msgid ""
+"This package transparently speeds up functions by caching\n"
+"return values, trading space for time."
+msgstr ""
+
+#: gnu/packages/perl.scm:5086
 msgid "Expiry plug-in for Memoize that adds LRU cache expiration"
 msgstr ""
 
-#: gnu/packages/perl.scm:4575
+#: gnu/packages/perl.scm:5087
 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:4593
-#, fuzzy
+#: gnu/packages/perl.scm:5105
 msgid "Charset information for MIME messages"
-msgstr "depura mensajes incluido información fuente"
+msgstr "Información del conjunto de caracteres en mensajes MIME"
 
-#: gnu/packages/perl.scm:4595
+#: gnu/packages/perl.scm:5107
 msgid ""
 "@code{MIME::Charset} provides information about character sets used for\n"
 "MIME messages on Internet."
 msgstr ""
 
-#: gnu/packages/perl.scm:4622
+#: gnu/packages/perl.scm:5134
 msgid "Tools to manipulate MIME messages"
-msgstr ""
+msgstr "Herramientas para manipulación de mensajes MIME"
 
-#: gnu/packages/perl.scm:4624
+#: gnu/packages/perl.scm:5136
 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:4643
-#, fuzzy
+#: gnu/packages/perl.scm:5155
 msgid "Definition of MIME types"
-msgstr "  Tipo MIME:   «%s»\n"
+msgstr "Definición de tipos MIME"
 
-#: gnu/packages/perl.scm:4644
+#: gnu/packages/perl.scm:5156
 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:4666
+#: gnu/packages/perl.scm:5178
 msgid "Write your linewise code for handles; this does the rest"
 msgstr ""
 
-#: gnu/packages/perl.scm:4667
+#: gnu/packages/perl.scm:5179
 msgid ""
 "It's boring to deal with opening files for IO, converting\n"
 "strings to handle-like objects, and all that.  With\n"
@@ -12441,22 +13912,21 @@ msgid ""
 "file names are added for you."
 msgstr ""
 
-#: gnu/packages/perl.scm:4693
+#: gnu/packages/perl.scm:5204
 msgid "Enable all of the features of Modern Perl with one import"
 msgstr ""
 
-#: gnu/packages/perl.scm:4694
+#: gnu/packages/perl.scm:5205
 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:4722
-#, fuzzy
+#: gnu/packages/perl.scm:5233
 msgid "Tiny replacement for Module::Build"
-msgstr " -m                       construye un módulo de carga dinámicamente (predeterminado)"
+msgstr "Pequeña sustitución para Module::Build"
 
-#: gnu/packages/perl.scm:4723
+#: gnu/packages/perl.scm:5234
 msgid ""
 "Many Perl distributions use a Build.PL file instead of a\n"
 "Makefile.PL file to drive distribution configuration, build, test and\n"
@@ -12466,11 +13936,11 @@ msgid ""
 "has less than 120, yet supports the features needed by most distributions."
 msgstr ""
 
-#: gnu/packages/perl.scm:4751
+#: gnu/packages/perl.scm:5262
 msgid "Module::Build class for building XS modules"
 msgstr ""
 
-#: gnu/packages/perl.scm:4753
+#: gnu/packages/perl.scm:5264
 msgid ""
 "@code{Module::Build::XSUtil} is subclass of @code{Module::Build}\n"
 "for support building XS modules.\n"
@@ -12494,11 +13964,11 @@ msgid ""
 "@end enumerate"
 msgstr ""
 
-#: gnu/packages/perl.scm:4789
+#: gnu/packages/perl.scm:5300
 msgid "Find and use installed modules in a (sub)category"
 msgstr ""
 
-#: gnu/packages/perl.scm:4790
+#: gnu/packages/perl.scm:5301
 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"
@@ -12506,11 +13976,11 @@ msgid ""
 "subcategories."
 msgstr ""
 
-#: gnu/packages/perl.scm:4816
+#: gnu/packages/perl.scm:5327
 msgid "Loads alternate underlying implementations for a module"
 msgstr ""
 
-#: gnu/packages/perl.scm:4817
+#: gnu/packages/perl.scm:5328
 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"
@@ -12519,11 +13989,11 @@ msgid ""
 "implementations."
 msgstr ""
 
-#: gnu/packages/perl.scm:4855
+#: gnu/packages/perl.scm:5366
 msgid "Standalone, extensible Perl module installer"
 msgstr ""
 
-#: gnu/packages/perl.scm:4856
+#: gnu/packages/perl.scm:5367
 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"
@@ -12531,53 +14001,66 @@ msgid ""
 "installation version 5.005 or newer."
 msgstr ""
 
-#: gnu/packages/perl.scm:4877
+#: gnu/packages/perl.scm:5393
+msgid "Parse and examine a Perl distribution @file{MANIFEST} file"
+msgstr ""
+
+#: gnu/packages/perl.scm:5395
+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:5418
 msgid "Give your Perl module the ability to have plugins"
 msgstr ""
 
-#: gnu/packages/perl.scm:4878
+#: gnu/packages/perl.scm:5419
 msgid ""
 "This module provides a simple but extensible way of having\n"
-"'plugins' for your Perl module."
+"@code{plugins} for your Perl module."
 msgstr ""
 
-#: gnu/packages/perl.scm:4897
+#: gnu/packages/perl.scm:5438
 msgid "Perl runtime module handling"
 msgstr ""
 
-#: gnu/packages/perl.scm:4898
+#: gnu/packages/perl.scm:5439
 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:4921
+#: gnu/packages/perl.scm:5462
 msgid "Provide information on conflicts for Module::Runtime"
 msgstr ""
 
-#: gnu/packages/perl.scm:4922
+#: gnu/packages/perl.scm:5463
 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:4943
+#: gnu/packages/perl.scm:5484
 msgid "Recursively scan Perl code for dependencies"
 msgstr ""
 
-#: gnu/packages/perl.scm:4944
+#: gnu/packages/perl.scm:5485
 msgid ""
 "Module::ScanDeps is a module to recursively scan Perl\n"
 "programs for dependencies."
 msgstr ""
 
-#: gnu/packages/perl.scm:4964
-#, fuzzy
+#: gnu/packages/perl.scm:5505
 msgid "Module name tools and transformations"
-msgstr "nombre de módulo inválido: %s"
+msgstr "Herramientas de nombre modular y transformaciones"
 
-#: gnu/packages/perl.scm:4965
+#: gnu/packages/perl.scm:5506
 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"
@@ -12585,11 +14068,11 @@ msgid ""
 "module names to relative paths."
 msgstr ""
 
-#: gnu/packages/perl.scm:4995
+#: gnu/packages/perl.scm:5536
 msgid "Minimalist Object Orientation (with Moose compatibility)"
 msgstr ""
 
-#: gnu/packages/perl.scm:4996
+#: gnu/packages/perl.scm:5537
 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"
@@ -12597,11 +14080,11 @@ msgid ""
 "Moose and is optimised for rapid startup."
 msgstr ""
 
-#: gnu/packages/perl.scm:5072
+#: gnu/packages/perl.scm:5644
 msgid "Postmodern object system for Perl 5"
 msgstr ""
 
-#: gnu/packages/perl.scm:5074
+#: gnu/packages/perl.scm:5646
 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"
@@ -12612,11 +14095,11 @@ msgid ""
 "sentences."
 msgstr ""
 
-#: gnu/packages/perl.scm:5103
+#: gnu/packages/perl.scm:5674
 msgid "Emulate Class::Accessor::Fast behavior using Moose attributes"
 msgstr ""
 
-#: gnu/packages/perl.scm:5104
+#: gnu/packages/perl.scm:5675
 msgid ""
 "This module attempts to emulate the behavior of\n"
 "Class::Accessor::Fast as accurately as possible using the Moose attribute\n"
@@ -12624,21 +14107,21 @@ msgid ""
 "private methods are not."
 msgstr ""
 
-#: gnu/packages/perl.scm:5136
+#: gnu/packages/perl.scm:5709
 msgid "Moose role for processing command line options"
 msgstr ""
 
-#: gnu/packages/perl.scm:5137
+#: gnu/packages/perl.scm:5710
 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:5158
+#: gnu/packages/perl.scm:5731
 msgid "Mark overload code symbols as methods"
 msgstr ""
 
-#: gnu/packages/perl.scm:5159
+#: gnu/packages/perl.scm:5732
 msgid ""
 "MooseX::MarkAsMethods allows one to easily mark certain\n"
 "functions as Moose methods.  This will allow other packages such as\n"
@@ -12648,21 +14131,21 @@ msgid ""
 "overloads will \"just work\"."
 msgstr ""
 
-#: gnu/packages/perl.scm:5189
+#: gnu/packages/perl.scm:5762
 msgid "Code attribute introspection"
 msgstr "Interprospección código atributado"
 
-#: gnu/packages/perl.scm:5190
+#: gnu/packages/perl.scm:5763
 msgid ""
 "This module allows code attributes of methods to be\n"
 "introspected using Moose meta method objects."
 msgstr ""
 
-#: gnu/packages/perl.scm:5216
+#: gnu/packages/perl.scm:5789
 msgid "Subclassing of non-Moose classes"
 msgstr ""
 
-#: gnu/packages/perl.scm:5217
+#: gnu/packages/perl.scm:5790
 msgid ""
 "MooseX::NonMoose allows for easily subclassing non-Moose\n"
 "classes with Moose, taking care of the details connected with doing this, such\n"
@@ -12671,31 +14154,31 @@ msgid ""
 "BUILD methods are called.  It tries to be as non-intrusive as possible."
 msgstr ""
 
-#: gnu/packages/perl.scm:5246
+#: gnu/packages/perl.scm:5818
 msgid "Extension of Params::Validate using Moose's types"
 msgstr ""
 
-#: gnu/packages/perl.scm:5247
+#: gnu/packages/perl.scm:5819
 msgid ""
 "This module fills a gap in Moose by adding method parameter\n"
 "validation to Moose."
 msgstr ""
 
-#: gnu/packages/perl.scm:5268
+#: gnu/packages/perl.scm:5840
 msgid "Apply roles to a related Perl class"
-msgstr ""
+msgstr "Aplica oficios a una clase Perl relativa"
 
-#: gnu/packages/perl.scm:5269
+#: gnu/packages/perl.scm:5841
 msgid ""
 "This module applies roles to make a subclass instead of\n"
 "manually setting up a subclass."
 msgstr ""
 
-#: gnu/packages/perl.scm:5296
+#: gnu/packages/perl.scm:5867
 msgid "Moose roles with composition parameters"
-msgstr ""
+msgstr "Actores alce con composiciones paramétricas"
 
-#: gnu/packages/perl.scm:5297
+#: gnu/packages/perl.scm:5868
 msgid ""
 "Because Moose roles serve many different masters, they\n"
 "usually provide only the least common denominator of functionality.  To\n"
@@ -12705,11 +14188,11 @@ msgid ""
 "Parameterized roles offer a solution to these (and other) kinds of problems."
 msgstr ""
 
-#: gnu/packages/perl.scm:5323
+#: gnu/packages/perl.scm:5894
 msgid "Roles which support overloading"
 msgstr ""
 
-#: gnu/packages/perl.scm:5324
+#: gnu/packages/perl.scm:5895
 msgid ""
 "MooseX::Role::WithOverloading allows you to write a\n"
 "Moose::Role which defines overloaded operators and allows those overload\n"
@@ -12717,11 +14200,11 @@ msgid ""
 "where plain Moose::Roles would lose the overloading."
 msgstr ""
 
-#: gnu/packages/perl.scm:5346
+#: gnu/packages/perl.scm:5917
 msgid "Name your accessors foo() and set_foo()"
 msgstr ""
 
-#: gnu/packages/perl.scm:5347
+#: gnu/packages/perl.scm:5918
 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"
@@ -12729,82 +14212,84 @@ msgid ""
 "accessor, while set methods are prefixed with \"_set_\"."
 msgstr ""
 
-#: gnu/packages/perl.scm:5373
+#: gnu/packages/perl.scm:5944
 msgid "Strict object constructors for Moose"
 msgstr ""
 
-#: gnu/packages/perl.scm:5374
+#: gnu/packages/perl.scm:5945
 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:5402
+#: gnu/packages/perl.scm:5973
 msgid "Trait loading and resolution for Moose"
 msgstr ""
 
-#: gnu/packages/perl.scm:5403
+#: gnu/packages/perl.scm:5974
 msgid ""
 "Adds support on top of MooseX::Traits for class precedence\n"
 "search for traits and some extra attributes."
 msgstr ""
+"Añade apoyo en máximo de MooseX::Traits para clases precedente\n"
+"busca tratados y algunos atributos adicionales."
 
-#: gnu/packages/perl.scm:5429
+#: gnu/packages/perl.scm:6000
 msgid "Organise your Moose types in libraries"
 msgstr ""
 
-#: gnu/packages/perl.scm:5430
+#: gnu/packages/perl.scm:6001
 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:5461
+#: gnu/packages/perl.scm:6032
 msgid "DateTime related constraints and coercions for Moose"
 msgstr ""
 
-#: gnu/packages/perl.scm:5462
+#: gnu/packages/perl.scm:6033
 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:5494
+#: gnu/packages/perl.scm:6064
 msgid "Extensions to MooseX::Types::DateTime"
 msgstr ""
 
-#: gnu/packages/perl.scm:5495
+#: gnu/packages/perl.scm:6065
 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:5524
+#: gnu/packages/perl.scm:6093
 msgid "ClassName type constraints for Moose"
 msgstr ""
 
-#: gnu/packages/perl.scm:5525
+#: gnu/packages/perl.scm:6094
 msgid ""
 "MooseX::Types::LoadableClass provides a ClassName type\n"
 "constraint with coercion to load the class."
 msgstr ""
 
-#: gnu/packages/perl.scm:5551
+#: gnu/packages/perl.scm:6120
 msgid "Using Moo and MooX:: packages the most lazy way"
 msgstr ""
 
-#: gnu/packages/perl.scm:5552
+#: gnu/packages/perl.scm:6121
 msgid "Contains the MooX and MooX::Role packages."
 msgstr ""
 
-#: gnu/packages/perl.scm:5579
+#: gnu/packages/perl.scm:6147
 msgid "Giving an easy Moo style way to make command organized CLI apps"
 msgstr ""
 
-#: gnu/packages/perl.scm:5580
+#: gnu/packages/perl.scm:6148
 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"
@@ -12813,11 +14298,11 @@ msgid ""
 "most specific one) is instantiated."
 msgstr ""
 
-#: gnu/packages/perl.scm:5613
+#: gnu/packages/perl.scm:6181
 msgid "Moo eXtension for initializing objects from config file"
 msgstr ""
 
-#: gnu/packages/perl.scm:5614
+#: gnu/packages/perl.scm:6182
 msgid ""
 "This module is intended to easily load initialization values\n"
 "for attributes on object construction from an appropriate config file.  The\n"
@@ -12825,33 +14310,33 @@ msgid ""
 "@code{MooX::ConfigFromFile} ensures that the role is applied."
 msgstr ""
 
-#: gnu/packages/perl.scm:5638
+#: gnu/packages/perl.scm:6206
 msgid "Moo eXtension for @code{File::ConfigDir}"
 msgstr ""
 
-#: gnu/packages/perl.scm:5639
+#: gnu/packages/perl.scm:6207
 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:5674
+#: gnu/packages/perl.scm:6242
 msgid "NativeTrait-like behavior for Moo"
 msgstr ""
 
-#: gnu/packages/perl.scm:5676
+#: gnu/packages/perl.scm:6244
 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."
 msgstr ""
 
-#: gnu/packages/perl.scm:5707
+#: gnu/packages/perl.scm:6275
 msgid "Easily translate Moose code to Moo"
 msgstr ""
 
-#: gnu/packages/perl.scm:5709
+#: gnu/packages/perl.scm:6277
 msgid ""
 "MooX::late does the following:\n"
 "@enumerate\n"
@@ -12865,11 +14350,11 @@ msgid ""
 "@end enumerate"
 msgstr ""
 
-#: gnu/packages/perl.scm:5764
+#: gnu/packages/perl.scm:6332
 msgid "Explicit Options eXtension for Object Class"
 msgstr ""
 
-#: gnu/packages/perl.scm:5765
+#: gnu/packages/perl.scm:6333
 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"
@@ -12878,35 +14363,32 @@ msgid ""
 "generate a command line tool."
 msgstr ""
 
-#: gnu/packages/perl.scm:5792
-#, fuzzy
+#: gnu/packages/perl.scm:6359
 msgid "Moosish types and type builder"
-msgstr ""
-"tipo de compactación inválido:  %s\n"
-"los tipos conocidos son:\n"
+msgstr "Tipos de alce y tipo de constructor"
 
-#: gnu/packages/perl.scm:5793
+#: gnu/packages/perl.scm:6360
 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:5822
+#: gnu/packages/perl.scm:6389
 msgid "Fast Moose-compatible object system for perl5"
 msgstr ""
 
-#: gnu/packages/perl.scm:5824
+#: gnu/packages/perl.scm:6391
 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:5847
+#: gnu/packages/perl.scm:6414
 msgid "Extend attribute interfaces for Mouse"
-msgstr ""
+msgstr "Extiende atributo interfaz para Ratón"
 
-#: gnu/packages/perl.scm:5849
+#: gnu/packages/perl.scm:6416
 msgid ""
 "While @code{Mouse} attributes provide a way to name your accessors,\n"
 "readers, writers, clearers and predicates, @code{MouseX::NativeTraits}\n"
@@ -12914,22 +14396,30 @@ msgid ""
 "of data."
 msgstr ""
 
-#: gnu/packages/perl.scm:5869
+#: gnu/packages/perl.scm:6436
 msgid "Mozilla's CA cert bundle in PEM format"
 msgstr ""
 
-#: gnu/packages/perl.scm:5870
+#: gnu/packages/perl.scm:6437
 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:5889
+#: gnu/packages/perl.scm:6463
+msgid "Disable multidimensional array emulation"
+msgstr ""
+
+#: gnu/packages/perl.scm:6465
+msgid "Multidimensional disables multidimensional array emulation."
+msgstr ""
+
+#: gnu/packages/perl.scm:6482
 msgid "MRO interface compatibility for Perls < 5.9.5"
 msgstr ""
 
-#: gnu/packages/perl.scm:5890
+#: gnu/packages/perl.scm:6483
 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"
@@ -12937,11 +14427,11 @@ msgid ""
 "Perl (back to 5.6.0)."
 msgstr ""
 
-#: gnu/packages/perl.scm:5917
+#: gnu/packages/perl.scm:6510
 msgid "Keep imports out of your namespace"
 msgstr ""
 
-#: gnu/packages/perl.scm:5918
+#: gnu/packages/perl.scm:6511
 msgid ""
 "The namespace::autoclean pragma will remove all imported\n"
 "symbols at the end of the current package's compile cycle.  Functions called\n"
@@ -12952,11 +14442,11 @@ msgid ""
 "anything that looks like a method."
 msgstr ""
 
-#: gnu/packages/perl.scm:5944
+#: gnu/packages/perl.scm:6537
 msgid "Keep imports and functions out of your namespace"
 msgstr ""
 
-#: gnu/packages/perl.scm:5945
+#: gnu/packages/perl.scm:6538
 msgid ""
 "The namespace::clean pragma will remove all previously\n"
 "declared or imported symbols at the end of the current package's compile\n"
@@ -12964,11 +14454,24 @@ msgid ""
 "name, but they won't show up as methods on your class or instances."
 msgstr ""
 
-#: gnu/packages/perl.scm:5972
+#: gnu/packages/perl.scm:6558
+msgid "Non-blocking system DNS resolver"
+msgstr ""
+
+#: gnu/packages/perl.scm:6560
+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:6583
 msgid "Internationalizing Domain Names in Applications (IDNA)"
 msgstr ""
 
-#: gnu/packages/perl.scm:5974
+#: gnu/packages/perl.scm:6585
 msgid ""
 "Internationalized Domain Names (IDNs) use characters drawn from a large\n"
 "repertoire (Unicode), but IDNA allows the non-ASCII characters to be\n"
@@ -12979,42 +14482,69 @@ msgid ""
 "using whatever IDNA standard is the best choice at the moment."
 msgstr ""
 
-#: gnu/packages/perl.scm:6000
+#: gnu/packages/perl.scm:6611
 msgid "Perl client for Etsy's statsd daemon"
-msgstr ""
+msgstr "Cliente Perl para estadísticas del demonio Etsys"
 
-#: gnu/packages/perl.scm:6001
+#: gnu/packages/perl.scm:6612
 msgid ""
 "This module implement a UDP client for the statsd statistics\n"
 "collector daemon in use at Etsy.com."
 msgstr ""
 
-#: gnu/packages/perl.scm:6019
+#: gnu/packages/perl.scm:6630
 msgid "Numeric comparisons"
 msgstr "Comparaciones numéricas"
 
-#: gnu/packages/perl.scm:6020
+#: gnu/packages/perl.scm:6631
 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:6040
+#: gnu/packages/perl.scm:6649
+msgid "Convert numbers to strings with pretty formatting"
+msgstr ""
+
+#: gnu/packages/perl.scm:6650
+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:6674
+#, 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
+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
 msgid "Generate cryptographic signatures for objects"
 msgstr ""
 
-#: gnu/packages/perl.scm:6041
+#: gnu/packages/perl.scm:6695
 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:6062
+#: gnu/packages/perl.scm:6716
 msgid "Read and write OLE storage files"
-msgstr ""
+msgstr "Fichero almacén de lectura y escritura OLE"
 
-#: gnu/packages/perl.scm:6063
+#: gnu/packages/perl.scm:6717
 msgid ""
 "This module allows you to read and write\n"
 "an OLE-Structured file.  @dfn{OLE} (Object Linking and Embedding) is a\n"
@@ -13022,45 +14552,43 @@ msgid ""
 "documents within a single file."
 msgstr ""
 
-#: gnu/packages/perl.scm:6086
-#, fuzzy
+#: gnu/packages/perl.scm:6740
 msgid "Anonymous packages"
-msgstr "Usuario anónimo"
+msgstr "Paquetes anónimos"
 
-#: gnu/packages/perl.scm:6087
+#: gnu/packages/perl.scm:6741
 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:6115
+#: gnu/packages/perl.scm:6769
 msgid "Manage deprecation warnings for your distribution"
 msgstr ""
 
-#: gnu/packages/perl.scm:6116
+#: gnu/packages/perl.scm:6770
 msgid ""
 "This module allows you to manage a set of deprecations for\n"
 "one or more modules."
 msgstr ""
 
-#: gnu/packages/perl.scm:6143
-#, fuzzy
+#: gnu/packages/perl.scm:6796
 msgid "Routines for manipulating stashes"
-msgstr "Rutinas para manipular estadísticas"
+msgstr "Rutinas para manipulación de alijos"
 
-#: gnu/packages/perl.scm:6144
+#: gnu/packages/perl.scm:6797
 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:6167
+#: gnu/packages/perl.scm:6819
 msgid "Faster implementation of the Package::Stash API"
 msgstr ""
 
-#: gnu/packages/perl.scm:6168
+#: gnu/packages/perl.scm:6820
 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"
@@ -13068,11 +14596,11 @@ msgid ""
 "compiler."
 msgstr ""
 
-#: gnu/packages/perl.scm:6188
+#: gnu/packages/perl.scm:6839
 msgid "Play with other peoples' lexical variables"
 msgstr ""
 
-#: gnu/packages/perl.scm:6189
+#: gnu/packages/perl.scm:6840
 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"
@@ -13080,43 +14608,42 @@ msgid ""
 "is particularly useful for debugging."
 msgstr ""
 
-#: gnu/packages/perl.scm:6213
+#: gnu/packages/perl.scm:6864
 msgid "Simple parallel processing fork manager"
 msgstr ""
 
-#: gnu/packages/perl.scm:6214
+#: gnu/packages/perl.scm:6865
 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:6234
+#: gnu/packages/perl.scm:6885
 msgid "Simple, compact and correct param-checking functions"
 msgstr ""
 
-#: gnu/packages/perl.scm:6236
+#: gnu/packages/perl.scm:6887
 msgid ""
 "Params::Util provides a basic set of importable functions that makes\n"
 "checking parameters easier."
 msgstr ""
 
-#: gnu/packages/perl.scm:6260
-#, fuzzy
+#: gnu/packages/perl.scm:6911
 msgid "Validate method/function parameters"
-msgstr "tipo equivocado para la función del método C++"
+msgstr "Valida parámetros de métodos/función"
 
-#: gnu/packages/perl.scm:6261
+#: gnu/packages/perl.scm:6912
 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:6287
+#: gnu/packages/perl.scm:6939
 msgid "Build an optimized subroutine parameter validator"
 msgstr ""
 
-#: gnu/packages/perl.scm:6288
+#: gnu/packages/perl.scm:6940
 msgid ""
 "This module creates a customized, highly efficient\n"
 "parameter checking subroutine.  It can handle named or positional\n"
@@ -13125,79 +14652,105 @@ msgid ""
 "defaults, optional parameters, and extra \"slurpy\" parameters."
 msgstr ""
 
-#: gnu/packages/perl.scm:6309
+#: gnu/packages/perl.scm:6961
 msgid "Create and manipulate PAR distributions"
 msgstr ""
 
-#: gnu/packages/perl.scm:6310
+#: gnu/packages/perl.scm:6962
 msgid ""
 "PAR::Dist is a toolkit to create and manipulate PAR\n"
 "distributions."
 msgstr ""
 
-#: gnu/packages/perl.scm:6329
+#: 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:6348
+#: gnu/packages/perl.scm:6999
 msgid "Path specification manipulation"
 msgstr "Manipulación especificante de ruta"
 
-#: gnu/packages/perl.scm:6349
+#: gnu/packages/perl.scm:7000
 msgid ""
 "Path::Class is a module for manipulation of file and\n"
 "directory specifications in a cross-platform manner."
 msgstr ""
 
-#: gnu/packages/perl.scm:6373
+#: gnu/packages/perl.scm:7030
+#, 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
+msgid ""
+"This package provides functions to work with directory and\n"
+"file names."
+msgstr ""
+
+#: gnu/packages/perl.scm:7055
 msgid "File path utility"
 msgstr "Ruta de fichero de utilidad"
 
-#: gnu/packages/perl.scm:6374
+#: gnu/packages/perl.scm:7056
 msgid ""
 "This module provides a small, fast utility for working\n"
 "with file paths."
 msgstr ""
 
-#: gnu/packages/perl.scm:6395
+#: gnu/packages/perl.scm:7077
 msgid "Fast and correct UTF-8 IO"
-msgstr ""
+msgstr "Rápida y correcta E/S UTF-8"
 
-#: gnu/packages/perl.scm:6396
+#: gnu/packages/perl.scm:7078
 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:6417
+#: gnu/packages/perl.scm:7101
+msgid "Acmeist PEG Parser Framework"
+msgstr ""
+
+#: gnu/packages/perl.scm:7102
+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:7126
 msgid "Check for comprehensive documentation of a module"
 msgstr ""
 
-#: gnu/packages/perl.scm:6418
+#: gnu/packages/perl.scm:7127
 msgid ""
 "This module provides a mechanism for determining if the pod\n"
 "for a given module is comprehensive."
 msgstr ""
 
-#: gnu/packages/perl.scm:6435
+#: gnu/packages/perl.scm:7144
 msgid "Parsing library for text in Pod format"
 msgstr "Interpreta biblioteca para texto en formato Pod"
 
-#: gnu/packages/perl.scm:6436
+#: gnu/packages/perl.scm:7145
 msgid ""
-"Pod::Simple is a Perl library for parsing text in\n"
-"the Pod (plain old documentation) markup language that is typically\n"
+"@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:6457
+#: gnu/packages/perl.scm:7166
 msgid "GNU C library compatible strftime for loggers and servers"
 msgstr ""
 
-#: gnu/packages/perl.scm:6458
+#: gnu/packages/perl.scm:7167
 msgid ""
 "POSIX::strftime::Compiler provides GNU C library compatible\n"
 "strftime(3).  But this module is not affected by the system locale.  This\n"
@@ -13205,33 +14758,32 @@ msgid ""
 "applications."
 msgstr ""
 
-#: gnu/packages/perl.scm:6476
-#, fuzzy
+#: gnu/packages/perl.scm:7185
 msgid "Information about the currently running perl"
-msgstr "Muestra información sobre los usuarios que están actualmente conectados.\n"
+msgstr "Información sobre la actualmente ejecución de perl"
 
-#: gnu/packages/perl.scm:6478
+#: gnu/packages/perl.scm:7187
 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:6506
+#: gnu/packages/perl.scm:7214
 msgid "Interface to external editor from Perl"
 msgstr ""
 
-#: gnu/packages/perl.scm:6507
+#: gnu/packages/perl.scm:7215
 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:6526
+#: gnu/packages/perl.scm:7234
 msgid "Create read-only scalars, arrays, hashes"
 msgstr ""
 
-#: gnu/packages/perl.scm:6527
+#: gnu/packages/perl.scm:7235
 msgid ""
 "This module provides a facility for creating non-modifiable\n"
 "variables in Perl.  This is useful for configuration files, headers, etc.  It\n"
@@ -13239,11 +14791,11 @@ msgid ""
 "variables that should not be changed."
 msgstr ""
 
-#: gnu/packages/perl.scm:6547
+#: gnu/packages/perl.scm:7255
 msgid "XS implementation for Ref::Util"
 msgstr ""
 
-#: gnu/packages/perl.scm:6548
+#: gnu/packages/perl.scm:7256
 msgid ""
 "@code{Ref::Util::XS} is the XS implementation of\n"
 "@code{Ref::Util}, which provides several functions to help identify references\n"
@@ -13251,13 +14803,13 @@ msgid ""
 "of @code{ref}."
 msgstr ""
 
-#: gnu/packages/perl.scm:6566
+#: gnu/packages/perl.scm:7274
 msgid "Provide commonly requested regular expressions"
 msgstr ""
 
-#: gnu/packages/perl.scm:6568
+#: gnu/packages/perl.scm:7276
 msgid ""
-"This module exports a single hash (`%RE') that stores or generates\n"
+"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"
@@ -13265,11 +14817,11 @@ msgid ""
 "codes."
 msgstr ""
 
-#: gnu/packages/perl.scm:6593
+#: gnu/packages/perl.scm:7300
 msgid "Selection of general-utility regexp subroutines"
 msgstr ""
 
-#: gnu/packages/perl.scm:6594
+#: gnu/packages/perl.scm:7301
 msgid ""
 "This package provides a selection of regular expression\n"
 "subroutines including @code{is_regexp}, @code{regexp_seen_evals},\n"
@@ -13277,29 +14829,29 @@ msgid ""
 "and @code{deserialize_regexp}."
 msgstr ""
 
-#: gnu/packages/perl.scm:6619
+#: gnu/packages/perl.scm:7326
 msgid "Roles, as a slice of Moose"
 msgstr "Actores, como una rodaja de Moose"
 
-#: gnu/packages/perl.scm:6620
+#: gnu/packages/perl.scm:7327
 msgid "Role::Tiny is a minimalist role composition tool."
 msgstr ""
 
-#: gnu/packages/perl.scm:6637
+#: gnu/packages/perl.scm:7358
 msgid "Call isa, can, does, and DOES safely"
 msgstr ""
 
-#: gnu/packages/perl.scm:6638
+#: gnu/packages/perl.scm:7359
 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:6656
+#: gnu/packages/perl.scm:7377
 msgid "Lexically-scoped resource management"
 msgstr ""
 
-#: gnu/packages/perl.scm:6657
+#: gnu/packages/perl.scm:7378
 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"
@@ -13310,31 +14862,39 @@ msgid ""
 "collector."
 msgstr ""
 
-#: gnu/packages/perl.scm:6680
-#, fuzzy
+#: gnu/packages/perl.scm:7401
 msgid "Infinite sets"
-msgstr "infinito"
+msgstr "Conjuntos infinitos"
 
-#: gnu/packages/perl.scm:6681
+#: gnu/packages/perl.scm:7402
 msgid "Set::Infinite is a set theory module for infinite sets."
 msgstr ""
 
-#: gnu/packages/perl.scm:6701
+#: gnu/packages/perl.scm:7419
+msgid "Manage sets of integers"
+msgstr ""
+
+#: gnu/packages/perl.scm:7420
+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
 msgid "Unordered collections of Perl Objects"
 msgstr ""
 
-#: gnu/packages/perl.scm:6702
+#: gnu/packages/perl.scm:7441
 msgid ""
 "Set::Object provides efficient sets, unordered collections\n"
 "of Perl objects without duplicates for scalars and references."
 msgstr ""
 
-#: gnu/packages/perl.scm:6720
-#, fuzzy
+#: gnu/packages/perl.scm:7459
 msgid "Set operations for Perl"
-msgstr "escribir conjunto dependiente perl(...)"
+msgstr "Establece operaciones para Perl"
 
-#: gnu/packages/perl.scm:6721
+#: gnu/packages/perl.scm:7460
 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"
@@ -13342,21 +14902,21 @@ msgid ""
 "compact."
 msgstr ""
 
-#: gnu/packages/perl.scm:6741
+#: gnu/packages/perl.scm:7480
 msgid "Sort arrays by one or multiple calculated keys"
 msgstr ""
 
-#: gnu/packages/perl.scm:6742
+#: gnu/packages/perl.scm:7481
 msgid ""
 "This Perl module provides various functions to quickly sort\n"
 "arrays by one or multiple calculated keys."
 msgstr ""
 
-#: gnu/packages/perl.scm:6760
+#: gnu/packages/perl.scm:7499
 msgid "Sort lexically, but sort numeral parts numerically"
 msgstr ""
 
-#: gnu/packages/perl.scm:6761
+#: gnu/packages/perl.scm:7500
 msgid ""
 "This module exports two functions, @code{nsort} and\n"
 "@code{ncmp}; they are used in implementing a \"natural sorting\" algorithm.\n"
@@ -13364,11 +14924,11 @@ msgid ""
 "word-characters are compared lexically."
 msgstr ""
 
-#: gnu/packages/perl.scm:6789
+#: gnu/packages/perl.scm:7528
 msgid "Classes for representing type constraints and coercion"
 msgstr ""
 
-#: gnu/packages/perl.scm:6790
+#: gnu/packages/perl.scm:7529
 msgid ""
 "The Specio distribution provides classes for representing type\n"
 "constraints and coercion, along with syntax sugar for declaring them.  Note that\n"
@@ -13379,11 +14939,11 @@ msgid ""
 "coerce values to that type."
 msgstr ""
 
-#: gnu/packages/perl.scm:6813
+#: gnu/packages/perl.scm:7552
 msgid "Spiffy Perl Interface Framework For You"
 msgstr ""
 
-#: gnu/packages/perl.scm:6814
+#: gnu/packages/perl.scm:7553
 msgid ""
 "Spiffy is a framework and methodology for doing object\n"
 "oriented (OO) programming in Perl.  Spiffy combines the best parts of\n"
@@ -13393,11 +14953,21 @@ msgid ""
 "other OO languages like Python, Ruby, Java and Perl 6."
 msgstr ""
 
-#: gnu/packages/perl.scm:6836
+#: gnu/packages/perl.scm:7577
+msgid "Collection of very basic statistics modules"
+msgstr ""
+
+#: gnu/packages/perl.scm:7578
+msgid ""
+"This package provides basic statistics functions like\n"
+"@code{median()}, @code{mean()}, @code{variance()} and @code{stddev()}."
+msgstr ""
+
+#: gnu/packages/perl.scm:7596
 msgid "Temporary buffer to save bytes"
 msgstr ""
 
-#: gnu/packages/perl.scm:6837
+#: gnu/packages/perl.scm:7597
 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"
@@ -13405,62 +14975,96 @@ msgid ""
 "on the length of the size."
 msgstr ""
 
-#: gnu/packages/perl.scm:6857
+#: gnu/packages/perl.scm:7617
 msgid "Turn on strict and make all warnings fatal"
 msgstr ""
 
-#: gnu/packages/perl.scm:6858
+#: gnu/packages/perl.scm:7618
 msgid ""
 "Strictures turns on strict and make all warnings fatal when\n"
 "run from within a source-controlled directory."
 msgstr ""
 
-#: gnu/packages/perl.scm:6886
+#: gnu/packages/perl.scm:7658
 msgid "Camelcase and de-camelcase"
 msgstr ""
 
-#: gnu/packages/perl.scm:6887
+#: gnu/packages/perl.scm:7659
 msgid ""
 "This module may be used to convert from under_score text to\n"
 "CamelCase and back again."
 msgstr ""
 
-#: gnu/packages/perl.scm:6907
+#: gnu/packages/perl.scm:7678
+msgid "Backslash escapes, quoted phrase, word elision, etc."
+msgstr ""
+
+#: gnu/packages/perl.scm:7679
+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:7704
+msgid "Build your own sprintf-like functions"
+msgstr ""
+
+#: gnu/packages/perl.scm:7706
+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
 msgid "Rewrite strings based on a set of known prefixes"
 msgstr ""
 
-#: gnu/packages/perl.scm:6908
+#: gnu/packages/perl.scm:7728
 msgid ""
 "This module allows you to rewrite strings based on a set of\n"
 "known prefixes."
 msgstr ""
 
-#: gnu/packages/perl.scm:6927
-msgid "String printing alternatives to printf"
+#: gnu/packages/perl.scm:7748
+msgid "Quote strings for passing through a shell"
+msgstr ""
+
+#: gnu/packages/perl.scm:7750
+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:6929
+#: gnu/packages/perl.scm:7769
+msgid "String printing alternatives to printf"
+msgstr "Escritura de cadenas alternativas para imprimir"
+
+#: gnu/packages/perl.scm:7771
 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:6952
+#: gnu/packages/perl.scm:7794
 msgid "Sophisticated exporter for custom-built routines"
 msgstr ""
 
-#: gnu/packages/perl.scm:6954
+#: gnu/packages/perl.scm:7796
 msgid ""
 "Sub::Exporter provides a sophisticated alternative to Exporter.pm for\n"
 "custom-built routines."
 msgstr ""
 
-#: gnu/packages/perl.scm:6973
+#: gnu/packages/perl.scm:7815
 msgid "Only use Sub::Exporter if you need it"
 msgstr ""
 
-#: gnu/packages/perl.scm:6974
+#: gnu/packages/perl.scm:7816
 msgid ""
 "Sub::Exporter is an incredibly powerful module, but with\n"
 "that power comes great responsibility, as well as some runtime penalties.\n"
@@ -13470,68 +15074,87 @@ msgid ""
 "renaming exports, if they try to use them."
 msgstr ""
 
-#: gnu/packages/perl.scm:6996
+#: gnu/packages/perl.scm:7838
 msgid "Retrieve names of code references"
 msgstr ""
 
-#: gnu/packages/perl.scm:6997
+#: gnu/packages/perl.scm:7839
 msgid ""
 "Sub::Identify allows you to retrieve the real name of code\n"
 "references."
 msgstr ""
 
-#: gnu/packages/perl.scm:7017
+#: gnu/packages/perl.scm:7859
 msgid "Tool to inspect subroutines"
 msgstr "Herramienta para inspeccionar subrutinas"
 
-#: gnu/packages/perl.scm:7018
+#: gnu/packages/perl.scm:7860
 msgid ""
 "This package provides tools for inspecting subroutines\n"
 "in Perl."
 msgstr ""
 
-#: gnu/packages/perl.scm:7037
-#, fuzzy
+#: gnu/packages/perl.scm:7879
 msgid "Install subroutines into packages easily"
-msgstr ""
-"\n"
-"  -i, --install PAQUETE ...\n"
-"                         install PAQUETEs"
+msgstr "Instala subrutinas dentro de paquetes fácilmente"
 
-#: gnu/packages/perl.scm:7039
+#: gnu/packages/perl.scm:7881
 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:7060
+#: gnu/packages/perl.scm:7902
 msgid "(Re)name a sub"
 msgstr "(Re)nombrar un sub"
 
-#: gnu/packages/perl.scm:7061
+#: gnu/packages/perl.scm:7903
 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:7080
-msgid "Apparently run a function in a higher stack frame"
+#: gnu/packages/perl.scm:7926
+msgid "Efficient generation of subroutines via string eval"
 msgstr ""
 
-#: gnu/packages/perl.scm:7081
+#: gnu/packages/perl.scm:7927
+msgid ""
+"Sub::Quote provides an efficient generation of subroutines\n"
+"via string eval."
+msgstr ""
+
+#: gnu/packages/perl.scm:7945
+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
 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:7100
+#: gnu/packages/perl.scm:7968
+msgid "Control superclass method dispatching"
+msgstr ""
+
+#: gnu/packages/perl.scm:7970
+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:7990
 msgid "Perl extension for generating SVG documents"
 msgstr ""
 
-#: gnu/packages/perl.scm:7101
+#: gnu/packages/perl.scm:7991
 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"
@@ -13540,43 +15163,53 @@ msgid ""
 "animation content."
 msgstr ""
 
-#: gnu/packages/perl.scm:7122
-#, fuzzy
+#: gnu/packages/perl.scm:8012
 msgid "Switch statement for Perl"
-msgstr "scripts internos empotrados en perl."
+msgstr "Declaración intercambio para Perl"
 
-#: gnu/packages/perl.scm:7123
+#: gnu/packages/perl.scm:8013
 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:7169
+#: gnu/packages/perl.scm:8060
 msgid "Perl extension for getting CPU information"
 msgstr ""
 
-#: gnu/packages/perl.scm:7171
+#: gnu/packages/perl.scm:8062
 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:7192
+#: gnu/packages/perl.scm:8082
 msgid "Get full hostname in Perl"
-msgstr ""
+msgstr "Obtiene nombre de anfitrión completo en Perl"
 
-#: gnu/packages/perl.scm:7193
+#: gnu/packages/perl.scm:8083
 msgid ""
 "Sys::Hostname::Long tries very hard to get the full hostname\n"
 "of a system."
 msgstr ""
 
-#: gnu/packages/perl.scm:7220
+#: gnu/packages/perl.scm:8102
+msgid "Access system calls that Perl doesn't normally provide access to"
+msgstr ""
+
+#: gnu/packages/perl.scm:8104
+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
 msgid "Ensure that a platform has weaken support"
 msgstr ""
 
-#: gnu/packages/perl.scm:7221
+#: gnu/packages/perl.scm:8133
 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"
@@ -13586,12 +15219,11 @@ msgid ""
 "error encouraging the user to seek support."
 msgstr ""
 
-#: gnu/packages/perl.scm:7246
-#, fuzzy
+#: gnu/packages/perl.scm:8158
 msgid "Template processing system for Perl"
-msgstr "Ocurrió un error al procesar la plantilla:"
+msgstr "Sistema procesando plantilla para Perl"
 
-#: gnu/packages/perl.scm:7247
+#: gnu/packages/perl.scm:8159
 msgid ""
 "The Template Toolkit is a collection of modules which\n"
 "implement an extensible template processing system.  It was originally\n"
@@ -13600,43 +15232,56 @@ msgid ""
 "documents: HTML, XML, POD, PostScript, LaTeX, and so on."
 msgstr ""
 
-#: gnu/packages/perl.scm:7270
+#: gnu/packages/perl.scm:8182
 msgid "Profiling for Template Toolkit"
 msgstr "Perfilando para Plantillas de Kit de Herramientas"
 
-#: gnu/packages/perl.scm:7271
+#: gnu/packages/perl.scm:8183
 msgid ""
 "Template::Timer provides inline profiling of the template\n"
 "processing in Perl code."
 msgstr ""
 
-#: gnu/packages/perl.scm:7291
-#, fuzzy
+#: gnu/packages/perl.scm:8203
+msgid "Template Toolkit reimplemented in as little code as possible"
+msgstr ""
+
+#: gnu/packages/perl.scm:8205
+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:8229
 msgid "Detect encoding of the current terminal"
-msgstr "Localización actual emplea codificación %s.\n"
+msgstr "Detecta codificación del terminal actual"
 
-#: gnu/packages/perl.scm:7292
+#: gnu/packages/perl.scm:8230
 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:7316
+#: gnu/packages/perl.scm:8254
 msgid "Progress meter on a standard terminal"
 msgstr ""
 
-#: gnu/packages/perl.scm:7317
+#: gnu/packages/perl.scm:8255
 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:7340
+#: gnu/packages/perl.scm:8278
 msgid "Progress meter if run interactively"
 msgstr ""
 
-#: gnu/packages/perl.scm:7341
+#: gnu/packages/perl.scm:8279
 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"
@@ -13644,22 +15289,22 @@ msgid ""
 "a cron job) then it does not show the progress bar."
 msgstr ""
 
-#: gnu/packages/perl.scm:7363
+#: gnu/packages/perl.scm:8301
 #, fuzzy
 msgid "Simple progress bars"
-msgstr "En progreso"
+msgstr "# prohibe el registro"
 
-#: gnu/packages/perl.scm:7364
+#: gnu/packages/perl.scm:8302
 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:7382
+#: gnu/packages/perl.scm:8320
 msgid "Simple terminal control"
-msgstr "Terminal controladora simple"
+msgstr "Terminal controladora única"
 
-#: gnu/packages/perl.scm:7383
+#: gnu/packages/perl.scm:8321
 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"
@@ -13668,12 +15313,11 @@ msgid ""
 "screen size, and retrieval/modification of the control characters."
 msgstr ""
 
-#: gnu/packages/perl.scm:7408
-#, fuzzy
+#: gnu/packages/perl.scm:8346
 msgid "Retrieve terminal size"
-msgstr "Ningún dato a obtener."
+msgstr "Obtener tamaño del terminal"
 
-#: gnu/packages/perl.scm:7409
+#: gnu/packages/perl.scm:8347
 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"
@@ -13681,63 +15325,62 @@ msgid ""
 "the job on behalf of @code{Term::Size::Any}."
 msgstr ""
 
-#: gnu/packages/perl.scm:7429
+#: gnu/packages/perl.scm:8366
 msgid "Perl extension for retrieving terminal size (Perl version)"
 msgstr ""
 
-#: gnu/packages/perl.scm:7430
+#: gnu/packages/perl.scm:8367
 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:7450
+#: gnu/packages/perl.scm:8387
 msgid "Format a header and rows into a table"
 msgstr "Formatear una cabecera y filas dentro de una tabla"
 
-#: gnu/packages/perl.scm:7451
+#: gnu/packages/perl.scm:8388
 msgid ""
 "This module is able to generically format rows of data\n"
 "into tables."
 msgstr ""
 
-#: gnu/packages/perl.scm:7470
+#: gnu/packages/perl.scm:8406
 msgid "Align text"
-msgstr ""
+msgstr "Texto alineado"
 
-#: gnu/packages/perl.scm:7471
+#: gnu/packages/perl.scm:8407
 msgid ""
 "Text::Aligner exports a single function, align(), which is\n"
 "used to justify strings to various alignment styles."
 msgstr ""
 
-#: gnu/packages/perl.scm:7489
+#: gnu/packages/perl.scm:8425
 msgid "Extract delimited text sequences from strings"
 msgstr ""
 
-#: gnu/packages/perl.scm:7490
+#: gnu/packages/perl.scm:8426
 msgid ""
 "The Text::Balanced module can be used to extract delimited\n"
 "text sequences from strings."
 msgstr ""
 
-#: gnu/packages/perl.scm:7508
+#: gnu/packages/perl.scm:8443
 msgid "Manipulate comma-separated values"
 msgstr "Manipula valorer separados por coma"
 
-#: gnu/packages/perl.scm:7509
+#: gnu/packages/perl.scm:8444
 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:7528
-#, fuzzy
+#: gnu/packages/perl.scm:8462
 msgid "Rountines for manipulating CSV files"
-msgstr "Descargando, subiendo y manipulando ficheros"
+msgstr "Rutinas para manipulación de ficheros CSV"
 
-#: gnu/packages/perl.scm:7529
+#: gnu/packages/perl.scm:8463
 msgid ""
 "@code{Text::CSV_XS} provides facilities for the composition\n"
 "and decomposition of comma-separated values.  An instance of the\n"
@@ -13747,11 +15390,11 @@ msgid ""
 "and escapes."
 msgstr ""
 
-#: gnu/packages/perl.scm:7553
+#: gnu/packages/perl.scm:8487
 msgid "Perform diffs on files and record sets"
 msgstr ""
 
-#: gnu/packages/perl.scm:7554
+#: gnu/packages/perl.scm:8488
 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"
@@ -13760,33 +15403,44 @@ msgid ""
 "generally slower on larger files."
 msgstr ""
 
-#: gnu/packages/perl.scm:7576
+#: gnu/packages/perl.scm:8513
+msgid "Various subroutines to format text"
+msgstr ""
+
+#: gnu/packages/perl.scm:8514
+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
 msgid "Match globbing patterns against text"
 msgstr ""
 
-#: gnu/packages/perl.scm:7577
+#: gnu/packages/perl.scm:8535
 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:7600
+#: gnu/packages/perl.scm:8558
 msgid "Fast, middleweight template engine"
 msgstr ""
 
-#: gnu/packages/perl.scm:7602
+#: gnu/packages/perl.scm:8560
 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:7621
+#: gnu/packages/perl.scm:8579
 msgid "Convert between Roman and Arabic algorisms"
 msgstr ""
 
-#: gnu/packages/perl.scm:7622
+#: gnu/packages/perl.scm:8580
 msgid ""
 "This package provides functions to convert between Roman and\n"
 "Arabic algorisms.  It supports both conventional Roman algorisms (which range\n"
@@ -13794,27 +15448,27 @@ msgid ""
 "algorism to indicate multiplication by 1000."
 msgstr ""
 
-#: gnu/packages/perl.scm:7642
+#: gnu/packages/perl.scm:8599
 msgid "Simple ASCII tables"
 msgstr "Distribución simple ASCII"
 
-#: gnu/packages/perl.scm:7643
+#: gnu/packages/perl.scm:8600
 msgid "Text::SimpleTable draws simple ASCII tables."
 msgstr ""
 
-#: gnu/packages/perl.scm:7664
+#: gnu/packages/perl.scm:8621
 msgid "Organize Data in Tables"
 msgstr "Organizar Datos en Tablas"
 
-#: gnu/packages/perl.scm:7665
+#: gnu/packages/perl.scm:8622
 msgid "Text::Table renders plaintext tables."
 msgstr ""
 
-#: gnu/packages/perl.scm:7686
+#: gnu/packages/perl.scm:8646
 msgid "Expand template text with embedded Perl"
 msgstr ""
 
-#: gnu/packages/perl.scm:7688
+#: gnu/packages/perl.scm:8648
 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"
@@ -13822,11 +15476,11 @@ msgid ""
 "evaluate the little programs and replace them with their values."
 msgstr ""
 
-#: gnu/packages/perl.scm:7708
+#: gnu/packages/perl.scm:8667
 msgid "Provide plain ASCII transliterations of Unicode text"
 msgstr ""
 
-#: gnu/packages/perl.scm:7709
+#: gnu/packages/perl.scm:8668
 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"
@@ -13836,22 +15490,31 @@ msgid ""
 "system."
 msgstr ""
 
-#: gnu/packages/perl.scm:7737
+#: gnu/packages/perl.scm:8689
 #, fuzzy
+#| msgid "Perl interface to pseudo ttys"
+msgid "Perl interpreter-based threads"
+msgstr "Interfaz Perl para pseudo ttys"
+
+#: gnu/packages/perl.scm:8690
+msgid "This module exposes interpreter threads to the Perl level."
+msgstr ""
+
+#: gnu/packages/perl.scm:8713
 msgid "Role for classes that can be thrown"
-msgstr "Cargo para clases que puedan ser referenciads"
+msgstr "Cargo para clases que puedan ser referenciada"
 
-#: gnu/packages/perl.scm:7738
+#: gnu/packages/perl.scm:8714
 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:7755
+#: gnu/packages/perl.scm:8731
 msgid "Perl script tidier"
 msgstr "Guiones Perl tipado"
 
-#: gnu/packages/perl.scm:7756
+#: gnu/packages/perl.scm:8732
 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"
@@ -13859,21 +15522,21 @@ msgid ""
 "approximately follow the suggestions in the Perl Style Guide."
 msgstr ""
 
-#: gnu/packages/perl.scm:7776
+#: gnu/packages/perl.scm:8752
 msgid "Cycle through a list of values"
 msgstr ""
 
-#: gnu/packages/perl.scm:7777
+#: gnu/packages/perl.scm:8753
 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:7796
+#: gnu/packages/perl.scm:8772
 msgid "Ordered associative arrays for Perl"
-msgstr ""
+msgstr "Matrices asociadas ordenadas para Perl"
 
-#: gnu/packages/perl.scm:7797
+#: gnu/packages/perl.scm:8773
 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"
@@ -13882,44 +15545,63 @@ msgid ""
 "operations can also be performed on the IxHash."
 msgstr ""
 
-#: gnu/packages/perl.scm:7820
-#, fuzzy
+#: gnu/packages/perl.scm:8796
+msgid "Special file handle that hides the beginning of a file"
+msgstr ""
+
+#: gnu/packages/perl.scm:8798
+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
 msgid "Tie to an existing Perl object"
-msgstr "No se puede borrar un objeto que no existe."
+msgstr "Vínculo a un objeto existente para Perl"
 
-#: gnu/packages/perl.scm:7821
+#: gnu/packages/perl.scm:8819
 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:7844
+#: gnu/packages/perl.scm:8842
 msgid "English expression of durations"
 msgstr "Expresión inglesa de duraciones"
 
-#: gnu/packages/perl.scm:7845
+#: gnu/packages/perl.scm:8843
 msgid ""
 "This module provides functions for expressing durations in\n"
 "rounded or exact terms."
 msgstr ""
 
-#: gnu/packages/perl.scm:7867
-#, fuzzy
+#: gnu/packages/perl.scm:8864
 msgid "Parse time duration strings"
-msgstr "%s error:  '%s' no es una duración temporal reconocible\n"
+msgstr "Interpreta cadenas textuales de duración temporal"
 
-#: gnu/packages/perl.scm:7868
+#: gnu/packages/perl.scm:8865
 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:7886
+#: gnu/packages/perl.scm:8883
+msgid "High resolution alarm, sleep, gettimeofday, interval timers"
+msgstr ""
+
+#: gnu/packages/perl.scm:8884
+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
 msgid "Efficiently compute time from local and GMT time"
 msgstr ""
 
-#: gnu/packages/perl.scm:7887
+#: gnu/packages/perl.scm:8904
 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"
@@ -13927,64 +15609,74 @@ msgid ""
 "the system epoch."
 msgstr ""
 
-#: gnu/packages/perl.scm:7907
-msgid "Date parsing/formatting subroutines"
+#: gnu/packages/perl.scm:8924
+msgid "Object-Oriented time objects"
+msgstr ""
+
+#: gnu/packages/perl.scm:8926
+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:7908
+#: gnu/packages/perl.scm:8946
+msgid "Date parsing/formatting subroutines"
+msgstr "Interpretando/formando datos de subrutinas"
+
+#: gnu/packages/perl.scm:8947
 msgid ""
 "This module provides routines for parsing date string into\n"
 "time values and formatting dates into ASCII strings."
 msgstr ""
 
-#: gnu/packages/perl.scm:7930
+#: gnu/packages/perl.scm:8969
 msgid "Shift and scale time"
 msgstr "Mayúsculas y escala temporal"
 
-#: gnu/packages/perl.scm:7931
+#: gnu/packages/perl.scm:8970
 msgid ""
 "This module allows you to speed up your sleep(), alarm(),\n"
 "and time() calls."
 msgstr ""
 
-#: gnu/packages/perl.scm:7954
-#, fuzzy
+#: gnu/packages/perl.scm:8992
 msgid "Simple tree object"
-msgstr "Lista los contenidos de un árbol de objeto."
+msgstr "Objeto arbóreo único"
 
-#: gnu/packages/perl.scm:7955
+#: gnu/packages/perl.scm:8993
 msgid ""
 "This module in a fully object-oriented implementation of a\n"
 "simple n-ary tree."
 msgstr ""
 
-#: gnu/packages/perl.scm:7979
+#: gnu/packages/perl.scm:9016
 msgid "Factory object for dispensing Visitor objects"
 msgstr ""
 
-#: gnu/packages/perl.scm:7980
+#: gnu/packages/perl.scm:9017
 msgid ""
 "This module is a factory for dispensing\n"
 "Tree::Simple::Visitor::* objects."
 msgstr ""
 
-#: gnu/packages/perl.scm:7998
+#: gnu/packages/perl.scm:9035
 msgid "Minimal try/catch with proper preservation of $@@"
 msgstr ""
 
-#: gnu/packages/perl.scm:7999
+#: gnu/packages/perl.scm:9036
 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:8024
-#, fuzzy
+#: gnu/packages/perl.scm:9060
 msgid "Tie a variable to a type constraint"
-msgstr "no puede definir variable de tipo inespecificado"
+msgstr "Vincula una variable a un tipo constante"
 
-#: gnu/packages/perl.scm:8025
+#: gnu/packages/perl.scm:9061
 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"
@@ -13993,11 +15685,11 @@ msgid ""
 "variable conform."
 msgstr ""
 
-#: gnu/packages/perl.scm:8058
+#: gnu/packages/perl.scm:9093
 msgid "Tiny, yet Moo(se)-compatible type constraint"
 msgstr ""
 
-#: gnu/packages/perl.scm:8059
+#: gnu/packages/perl.scm:9094
 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"
@@ -14006,11 +15698,11 @@ msgid ""
 "be used with Moose, Mouse and Moo (or none of the above)."
 msgstr ""
 
-#: gnu/packages/perl.scm:8080
+#: gnu/packages/perl.scm:9114
 msgid "Provides an XS boost for some of Type::Tiny's built-in type constraints"
 msgstr ""
 
-#: gnu/packages/perl.scm:8081
+#: gnu/packages/perl.scm:9115
 msgid ""
 "This module is optionally used by @code{Type::Tiny} to\n"
 "provide faster, C-based implementations of some type constraints.  This\n"
@@ -14018,11 +15710,11 @@ msgid ""
 "so other data validation frameworks might also consider using it."
 msgstr ""
 
-#: gnu/packages/perl.scm:8106
+#: gnu/packages/perl.scm:9139
 msgid "Types and coercions for Moose and Moo"
 msgstr ""
 
-#: gnu/packages/perl.scm:8107
+#: gnu/packages/perl.scm:9140
 msgid ""
 "This module provides @code{Path::Tiny} types for Moose, Moo,\n"
 "etc.  It handles two important types of coercion: coercing objects with\n"
@@ -14030,81 +15722,91 @@ msgid ""
 "to ensure that files or directories exist."
 msgstr ""
 
-#: gnu/packages/perl.scm:8129
+#: gnu/packages/perl.scm:9162
 msgid "Data types for common serialisation formats"
 msgstr ""
 
-#: gnu/packages/perl.scm:8130
+#: gnu/packages/perl.scm:9163
 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:8157
-#, fuzzy
+#: gnu/packages/perl.scm:9190
 msgid "Unicode normalization forms"
-msgstr "Con normalización Unicode.\n"
+msgstr "Formato de normalización Unicode"
 
-#: gnu/packages/perl.scm:8158
+#: gnu/packages/perl.scm:9191
 msgid "This Perl module provides Unicode normalization forms."
 msgstr ""
 
-#: gnu/packages/perl.scm:8187
+#: gnu/packages/perl.scm:9219
 msgid "Unicode collation algorithm"
 msgstr "Algoritmo adoptado Unicode"
 
-#: gnu/packages/perl.scm:8188
+#: gnu/packages/perl.scm:9220
 msgid ""
 "This package provides tools for sorting and comparing\n"
 "Unicode data."
 msgstr ""
 
-#: gnu/packages/perl.scm:8209
+#: gnu/packages/perl.scm:9241
 msgid "Unicode line breaking algorithm"
 msgstr "Línea Unicode dividiendo algoritmo"
 
-#: gnu/packages/perl.scm:8211
+#: gnu/packages/perl.scm:9243
 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:8234
+#: gnu/packages/perl.scm:9269
 msgid "Encoding and decoding of UTF-8 encoding form"
 msgstr "Codificación y decodificación de relleno en UTF-8"
 
-#: gnu/packages/perl.scm:8236
+#: gnu/packages/perl.scm:9271
 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:8254
+#: gnu/packages/perl.scm:9289
 msgid "UNIVERSAL::can() reimplementation"
 msgstr "UNIVERSAL::can() reimplementación"
 
-#: gnu/packages/perl.scm:8255
+#: gnu/packages/perl.scm:9290
 msgid ""
 "This module attempts to work around people calling\n"
 "UNIVERSAL::can() as a function, which it is not."
 msgstr ""
 
-#: gnu/packages/perl.scm:8275
+#: gnu/packages/perl.scm:9310
 msgid "UNIVERSAL::isa() reimplementation"
 msgstr "UNIVERSAL::isa() reimplementación"
 
-#: gnu/packages/perl.scm:8276
+#: gnu/packages/perl.scm:9311
 msgid ""
 "This module attempts to recover from people calling\n"
 "UNIVERSAL::isa as a function."
 msgstr ""
 
-#: gnu/packages/perl.scm:8294
+#: gnu/packages/perl.scm:9330
+msgid "Require modules from a variable"
+msgstr ""
+
+#: gnu/packages/perl.scm:9331
+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
 msgid "Associate user-defined magic to variables from Perl"
 msgstr ""
 
-#: gnu/packages/perl.scm:8295
+#: gnu/packages/perl.scm:9351
 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"
@@ -14113,11 +15815,11 @@ msgid ""
 "having to write a single line of XS."
 msgstr ""
 
-#: gnu/packages/perl.scm:8318
+#: gnu/packages/perl.scm:9374
 msgid "Easily generate well-formed, namespace-aware XML"
 msgstr ""
 
-#: gnu/packages/perl.scm:8319
+#: gnu/packages/perl.scm:9375
 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"
@@ -14127,11 +15829,11 @@ msgid ""
 "attribute names."
 msgstr ""
 
-#: gnu/packages/perl.scm:8346
+#: gnu/packages/perl.scm:9402
 msgid "Opaque, extensible XS pointer backed objects using sv_magic"
 msgstr ""
 
-#: gnu/packages/perl.scm:8348
+#: gnu/packages/perl.scm:9404
 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"
@@ -14139,63 +15841,62 @@ msgid ""
 "neither visible nor modifiable from Perl space)."
 msgstr ""
 
-#: gnu/packages/perl.scm:8370
-#, fuzzy
+#: gnu/packages/perl.scm:9426
 msgid "YAML for Perl"
-msgstr "scripts internos empotrados en perl."
+msgstr "YAML para Perl"
 
-#: gnu/packages/perl.scm:8371
+#: gnu/packages/perl.scm:9427
 msgid ""
 "The YAML.pm module implements a YAML Loader and Dumper based\n"
 "on the YAML 1.0 specification."
 msgstr ""
 
-#: gnu/packages/perl.scm:8393
+#: gnu/packages/perl.scm:9448
 msgid "Perl YAML Serialization using XS and libyaml"
 msgstr ""
 
-#: gnu/packages/perl.scm:8395
+#: gnu/packages/perl.scm:9450
 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:8418
+#: gnu/packages/perl.scm:9473
 msgid "Read/Write YAML files"
 msgstr "Ficheros Lectura/Escritura YAML"
 
-#: gnu/packages/perl.scm:8419
+#: gnu/packages/perl.scm:9474
 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:8443
+#: gnu/packages/perl.scm:9498
 msgid "Generate recursive-descent parsers"
 msgstr ""
 
-#: gnu/packages/perl.scm:8445
+#: gnu/packages/perl.scm:9500
 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:8465
+#: gnu/packages/perl.scm:9520
 msgid "Generate and use LALR parsers"
-msgstr ""
+msgstr "Genera y utiliza intérpretes LALR"
 
-#: gnu/packages/perl.scm:8466
+#: gnu/packages/perl.scm:9521
 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:8492
+#: gnu/packages/perl.scm:9547
 msgid "Distribution metadata for a CPAN dist"
-msgstr ""
+msgstr "Distribuir matadatos para un dist CPAN"
 
-#: gnu/packages/perl.scm:8493
+#: gnu/packages/perl.scm:9548
 msgid ""
 "Software distributions released to the CPAN include a\n"
 "META.json or, for older distributions, META.yml, which describes the\n"
@@ -14206,11 +15907,11 @@ msgid ""
 "methods for interrogating that data."
 msgstr ""
 
-#: gnu/packages/perl.scm:8516
+#: gnu/packages/perl.scm:9571
 msgid "Set of version requirements for a CPAN dist"
 msgstr ""
 
-#: gnu/packages/perl.scm:8517
+#: gnu/packages/perl.scm:9572
 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"
@@ -14219,22 +15920,22 @@ msgid ""
 "representation."
 msgstr ""
 
-#: gnu/packages/perl.scm:8540
+#: gnu/packages/perl.scm:9595
 msgid "Read and write a subset of YAML for CPAN Meta files"
 msgstr ""
 
-#: gnu/packages/perl.scm:8541
+#: gnu/packages/perl.scm:9596
 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:8562
+#: gnu/packages/perl.scm:9617
 msgid "Build and install Perl modules"
-msgstr ""
+msgstr "Compila e instala módulos Perl"
 
-#: gnu/packages/perl.scm:8563
+#: gnu/packages/perl.scm:9618
 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"
@@ -14245,21 +15946,21 @@ msgid ""
 "system---most of the @code{Module::Build} code is pure-Perl."
 msgstr ""
 
-#: gnu/packages/perl.scm:8589
+#: gnu/packages/perl.scm:9644
 msgid "Parse META.yml and META.json CPAN metadata files"
 msgstr ""
 
-#: gnu/packages/perl.scm:8590
+#: gnu/packages/perl.scm:9645
 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:8608
+#: gnu/packages/perl.scm:9663
 msgid "Common Scalar and List utility subroutines"
 msgstr ""
 
-#: gnu/packages/perl.scm:8609
+#: gnu/packages/perl.scm:9664
 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"
@@ -14267,50 +15968,86 @@ msgid ""
 "such that being individual extensions would be wasteful."
 msgstr ""
 
-#: gnu/packages/perl.scm:8633
+#: gnu/packages/perl.scm:9688
 msgid "Cross-platform functions emulating common shell commands"
 msgstr ""
 
-#: gnu/packages/perl.scm:8635
+#: gnu/packages/perl.scm:9690
 msgid "Shell::Command is a thin wrapper around ExtUtils::Command."
 msgstr ""
 
-#: gnu/packages/perl.scm:8662
+#: gnu/packages/perl.scm:9717
 msgid "Object-oriented File::Find replacement in Perl"
 msgstr ""
 
-#: gnu/packages/perl.scm:8663
+#: gnu/packages/perl.scm:9718
 msgid ""
 "File::Find::Object is an object-oriented\n"
 "File::Find replacement in Perl."
 msgstr ""
+"File::Find::Object es un objecto-orientado\n"
+"File::Find sustitución en Perl."
 
-#: gnu/packages/perl.scm:8692
+#: gnu/packages/perl.scm:9746
 msgid "Alternative interface to File::Find::Object"
 msgstr "Interfaz alternativo para Fichero::Encontrar::Objeto"
 
-#: gnu/packages/perl.scm:8693
+#: gnu/packages/perl.scm:9747
 msgid ""
 "File::Find::Object::Rule is an alternative Perl\n"
 "interface to File::Find::Object."
 msgstr ""
 
-#: gnu/packages/perl.scm:8723
+#: gnu/packages/perl.scm:9768
+msgid "Wrapper for @code{File::Find} ala @code{find(1)}"
+msgstr ""
+
+#: gnu/packages/perl.scm:9770
+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:9799
+#, fuzzy
+#| msgid "Boolean support for Perl"
+msgid "TTF font support for Perl"
+msgstr "Apoyo booleano para Perl"
+
+#: gnu/packages/perl.scm:9800
+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:9838
 msgid "Collection of Perl modules for time/date manipulation"
 msgstr ""
 
-#: gnu/packages/perl.scm:8724
+#: gnu/packages/perl.scm:9839
 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:8753
+#: gnu/packages/perl.scm:9868
 msgid "Perl library for testing if a time() is in a specific period"
 msgstr ""
 
-#: gnu/packages/perl.scm:8754
+#: gnu/packages/perl.scm:9869
 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"
@@ -14320,87 +16057,155 @@ msgid ""
 "1998\"."
 msgstr ""
 
-#: gnu/packages/photo.scm:78
+#: gnu/packages/perl.scm:9900
+msgid "Iterative, recursive file finder"
+msgstr ""
+
+#: gnu/packages/perl.scm:9901
+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:9941
+msgid "Include constants from POD"
+msgstr ""
+
+#: gnu/packages/perl.scm:9942
+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:9968
+msgid "Collection of regexp patterns"
+msgstr ""
+
+#: gnu/packages/perl.scm:9969
+msgid ""
+"Regexp::Pattern is a convention for organizing reusable\n"
+"regexp patterns in modules."
+msgstr ""
+
+#: gnu/packages/perl.scm:9993
 #, 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
+msgid ""
+"Data::SExpression parses Lisp S-Expressions into Perl data\n"
+"structures."
+msgstr ""
+
+#: gnu/packages/photo.scm:89
 msgid "Raw image decoder"
-msgstr "                                        : Imagen\n"
+msgstr "Decodificador de imagen cruda"
 
-#: gnu/packages/photo.scm:80
+#: gnu/packages/photo.scm:91
 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:97
+#: gnu/packages/photo.scm:126
 msgid "Read and manipulate EXIF data in digital photographs"
 msgstr ""
 
-#: gnu/packages/photo.scm:99
+#: gnu/packages/photo.scm:128
 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:125
+#: gnu/packages/photo.scm:154
 msgid "Accessing digital cameras"
 msgstr "Accediendo cámaras digitales"
 
-#: gnu/packages/photo.scm:127
+#: gnu/packages/photo.scm:156
 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:169
+#: gnu/packages/photo.scm:198
 msgid "Command-line tools to access digital cameras"
 msgstr ""
 
-#: gnu/packages/photo.scm:171
+#: gnu/packages/photo.scm:200
 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:204
+#: gnu/packages/photo.scm:240
 msgid "Program and Perl library to manipulate EXIF and other metadata"
 msgstr ""
 
-#: gnu/packages/photo.scm:205
+#: gnu/packages/photo.scm:241
 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:229
+#: gnu/packages/photo.scm:265
 msgid "Library for panoramic images"
 msgstr "Biblioteca para imágenes panorámicas"
 
-#: gnu/packages/photo.scm:231
+#: gnu/packages/photo.scm:267
 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:275
+#: gnu/packages/photo.scm:311
 msgid "Tools for combining and blending images"
 msgstr ""
 
-#: gnu/packages/photo.scm:277
+#: gnu/packages/photo.scm:313
 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:308
+#: gnu/packages/photo.scm:344
 msgid "Library to correct optical lens defects with a lens database"
 msgstr ""
 
-#: gnu/packages/photo.scm:309
+#: gnu/packages/photo.scm:345
 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"
@@ -14414,11 +16219,11 @@ msgid ""
 "photographic equipment."
 msgstr ""
 
-#: gnu/packages/photo.scm:385
+#: gnu/packages/photo.scm:420
 msgid "Virtual lighttable and darkroom for photographers"
 msgstr ""
 
-#: gnu/packages/photo.scm:386
+#: gnu/packages/photo.scm:421
 msgid ""
 "Darktable is a photography workflow application and RAW\n"
 "developer.  It manages your digital negatives in a database, lets you view\n"
@@ -14426,23 +16231,36 @@ msgid ""
 "and enhance them."
 msgstr ""
 
-#: gnu/packages/photo.scm:457
-#, fuzzy
+#: gnu/packages/photo.scm:492
 msgid "Panorama photo stitcher"
-msgstr "Foto panorámica"
+msgstr "Grapadora de foto panorámica"
 
-#: gnu/packages/photo.scm:459
+#: gnu/packages/photo.scm:494
 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/ratpoison.scm:86
+#: gnu/packages/photo.scm:545
+msgid "Raw image developing and processing"
+msgstr ""
+
+#: gnu/packages/photo.scm:546
+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 ""
 
-#: gnu/packages/ratpoison.scm:88
+#: 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"
@@ -14458,11 +16276,11 @@ msgid ""
 "cripples Emacs and other quality pieces of software."
 msgstr ""
 
-#: gnu/packages/readline.scm:82
+#: gnu/packages/readline.scm:94
 msgid "Edit command lines while typing, with history support"
 msgstr ""
 
-#: gnu/packages/readline.scm:84
+#: gnu/packages/readline.scm:96
 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"
@@ -14471,11 +16289,11 @@ msgid ""
 "comfortable for anyone."
 msgstr ""
 
-#: gnu/packages/readline.scm:121
+#: gnu/packages/readline.scm:135
 msgid "Wrapper to allow the editing of keyboard commands"
 msgstr ""
 
-#: gnu/packages/readline.scm:123
+#: gnu/packages/readline.scm:137
 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"
@@ -14484,11 +16302,11 @@ msgid ""
 "'special effects' using the filter mechanism."
 msgstr ""
 
-#: gnu/packages/scanner.scm:87
+#: gnu/packages/scanner.scm:100
 msgid "Raster image scanner library and drivers, without scanner support"
 msgstr ""
 
-#: gnu/packages/scanner.scm:88
+#: gnu/packages/scanner.scm:101
 msgid ""
 "SANE stands for \"Scanner Access Now Easy\" and is an API\n"
 "proving access to any raster image scanner hardware (flatbed scanner,\n"
@@ -14496,11 +16314,11 @@ msgid ""
 "package contains the library, but no drivers."
 msgstr ""
 
-#: gnu/packages/scanner.scm:126
+#: gnu/packages/scanner.scm:140
 msgid "Raster image scanner library and drivers, with scanner support"
 msgstr ""
 
-#: gnu/packages/scanner.scm:127
+#: gnu/packages/scanner.scm:141
 msgid ""
 "SANE stands for \"Scanner Access Now Easy\" and is an API\n"
 "proving access to any raster image scanner hardware (flatbed scanner,\n"
@@ -14508,39 +16326,37 @@ msgid ""
 "package contains the library and drivers."
 msgstr ""
 
-#: gnu/packages/scheme.scm:191
+#: gnu/packages/scheme.scm:216
 msgid "A Scheme implementation with integrated editor and debugger"
-msgstr ""
+msgstr "Una implementación Scheme con editor integrado y depurador"
 
-#: gnu/packages/scheme.scm:193
+#: gnu/packages/scheme.scm:218
 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:276
-#, fuzzy
+#: gnu/packages/scheme.scm:311
 msgid "Efficient Scheme compiler"
-msgstr "no puede obtener esquema URL: %s"
+msgstr "Compilador eficiente Scheme"
 
-#: gnu/packages/scheme.scm:278
+#: gnu/packages/scheme.scm:313
 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:327
+#: gnu/packages/scheme.scm:364
 msgid "Multi-tier programming language for the Web 2.0"
 msgstr ""
 
-#: gnu/packages/scheme.scm:329
+#: gnu/packages/scheme.scm:366
 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"
@@ -14549,33 +16365,33 @@ msgid ""
 "mashups, office (web agendas, mail clients, ...), etc."
 msgstr ""
 
-#: gnu/packages/scheme.scm:373
+#: gnu/packages/scheme.scm:407
 msgid "R5RS Scheme implementation that compiles native code via C"
-msgstr ""
+msgstr "Implementación Scheme S5R5 que compila código nativo vía C"
 
-#: gnu/packages/scheme.scm:375
+#: 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:394
+#: gnu/packages/scheme.scm:428
 msgid "Scheme implementation using a bytecode interpreter"
 msgstr ""
 
-#: gnu/packages/scheme.scm:396
+#: gnu/packages/scheme.scm:430
 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:509
+#: gnu/packages/scheme.scm:549
 msgid "Implementation of Scheme and related languages"
-msgstr ""
+msgstr "Implementación de Scheme y lenguajes relacionados"
 
-#: gnu/packages/scheme.scm:511
+#: gnu/packages/scheme.scm:551
 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"
@@ -14583,11 +16399,11 @@ msgid ""
 "of libraries."
 msgstr ""
 
-#: gnu/packages/scheme.scm:549
+#: gnu/packages/scheme.scm:578
 msgid "Efficient Scheme interpreter and compiler"
-msgstr ""
+msgstr "Interpretador y compilador Scheme eficiente"
 
-#: gnu/packages/scheme.scm:551
+#: gnu/packages/scheme.scm:580
 msgid ""
 "Gambit consists of two main programs: gsi, the Gambit Scheme\n"
 "interpreter, and gsc, the Gambit Scheme compiler.  The interpreter contains\n"
@@ -14598,11 +16414,11 @@ msgid ""
 "mixed."
 msgstr ""
 
-#: gnu/packages/scheme.scm:585
+#: gnu/packages/scheme.scm:614
 msgid "Small embeddable Scheme implementation"
-msgstr ""
+msgstr "Pequeña implementación Scheme embebible"
 
-#: gnu/packages/scheme.scm:587
+#: gnu/packages/scheme.scm:616
 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"
@@ -14611,11 +16427,11 @@ msgid ""
 "threads."
 msgstr ""
 
-#: gnu/packages/scheme.scm:757
+#: gnu/packages/scheme.scm:788
 msgid "Scmutils library for MIT Scheme"
-msgstr ""
+msgstr "Biblioteca Scmutils para MIT Scheme"
 
-#: gnu/packages/scheme.scm:758
+#: 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"
@@ -14623,11 +16439,11 @@ msgid ""
 "engineering."
 msgstr ""
 
-#: gnu/packages/scheme.scm:808
+#: gnu/packages/scheme.scm:838
 msgid "Structure and Interpretation of Computer Programs"
 msgstr ""
 
-#: gnu/packages/scheme.scm:809
+#: gnu/packages/scheme.scm:839
 msgid ""
 "Structure and Interpretation of Computer Programs (SICP) is\n"
 "a textbook aiming to teach the principles of computer programming.\n"
@@ -14637,31 +16453,31 @@ msgid ""
 "metalinguistic abstraction, recursion, interpreters, and modular programming."
 msgstr ""
 
-#: gnu/packages/scheme.scm:850
+#: gnu/packages/scheme.scm:881
 msgid "SRE String pattern-matching library for scheme48"
 msgstr ""
 
-#: gnu/packages/scheme.scm:852
+#: gnu/packages/scheme.scm:883
 msgid ""
 "String pattern-matching library for scheme48 based on the SRE\n"
 "regular-expression notation."
 msgstr ""
 
-#: gnu/packages/scheme.scm:884
+#: gnu/packages/scheme.scm:916
 msgid "Compatibility and utility library for Scheme"
 msgstr "Compatibilizar y utilidad bibliotecaria para Scheme"
 
-#: gnu/packages/scheme.scm:885
+#: gnu/packages/scheme.scm:917
 msgid ""
 "SLIB is a portable Scheme library providing compatibility and\n"
 "utility functions for all standard Scheme implementations."
 msgstr ""
 
-#: gnu/packages/scheme.scm:946
+#: gnu/packages/scheme.scm:973
 msgid "Scheme implementation conforming to R5RS and IEEE P1178"
 msgstr ""
 
-#: gnu/packages/scheme.scm:947
+#: gnu/packages/scheme.scm:974
 msgid ""
 "GNU SCM is an implementation of Scheme.  This\n"
 "implementation includes Hobbit, a Scheme-to-C compiler, which can\n"
@@ -14669,11 +16485,74 @@ msgid ""
 "linked with a SCM executable."
 msgstr ""
 
-#: gnu/packages/search.scm:66
+#: gnu/packages/scheme.scm:1031
+#, 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
+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:1112
+msgid "Brutally efficient Scheme compiler"
+msgstr "Compilador Scheme brutalmente eficiente"
+
+#: gnu/packages/scheme.scm:1114
+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:1167
+msgid "Scheme-like lisp implementation"
+msgstr "Implementación de lisp de tipo Scheme"
+
+#: gnu/packages/scheme.scm:1169
+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
+msgid "Scheme scripting engine"
+msgstr ""
+
+#: gnu/packages/scheme.scm:1241
+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/search.scm:77
 msgid "Search Engine Library"
 msgstr "Biblioteca de Motor de Búsqueda"
 
-#: gnu/packages/search.scm:68
+#: gnu/packages/search.scm:79
 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"
@@ -14681,15 +16560,26 @@ msgid ""
 "rich set of boolean query operators."
 msgstr ""
 
-#: gnu/packages/search.scm:98
+#: gnu/packages/search.scm:111
 msgid "Python bindings for the Xapian search engine library"
 msgstr ""
 
-#: gnu/packages/search.scm:137
+#: gnu/packages/search.scm:132
+msgid "Perl XS frontend to the Xapian C++ search library"
+msgstr ""
+
+#: gnu/packages/search.scm:134
+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
 msgid "Tool for Obsessive Compulsive Classifiers"
 msgstr ""
 
-#: gnu/packages/search.scm:139
+#: gnu/packages/search.scm:177
 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"
@@ -14697,22 +16587,21 @@ msgid ""
 "files and directories."
 msgstr ""
 
-#: gnu/packages/search.scm:161
-#, fuzzy
+#: gnu/packages/search.scm:199
 msgid "Command-line interface to libtocc"
-msgstr "línea de órdenes"
+msgstr "Interfaz de mandato lineal para libtocc"
 
-#: gnu/packages/search.scm:163
+#: gnu/packages/search.scm:201
 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:181
+#: gnu/packages/search.scm:219
 msgid "Finding text and HTML files that match boolean expressions"
 msgstr ""
 
-#: gnu/packages/search.scm:183
+#: gnu/packages/search.scm:221
 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"
@@ -14723,25 +16612,24 @@ msgid ""
 "for parsing HTML files."
 msgstr ""
 
-#: gnu/packages/search.scm:213
-#, fuzzy
+#: gnu/packages/search.scm:251
 msgid "Full-text search system"
-msgstr "busca para texto dentro de todas las páginas"
+msgstr "Sistema de búsqueda de texto completo"
 
-#: gnu/packages/search.scm:214
+#: gnu/packages/search.scm:252
 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:232
+#: gnu/packages/search.scm:270
 msgid "Locate files on the file system"
 msgstr "Localiza ficheros en el sistema del fichero"
 
-#: gnu/packages/search.scm:234
+#: gnu/packages/search.scm:272
 msgid ""
-"mlocate is a locate/updatedb implementation.  The 'm' stands for\n"
+"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"
@@ -14749,18 +16637,30 @@ msgid ""
 "conflict with slocate compatibility."
 msgstr ""
 
-#: gnu/packages/search.scm:299
-#, fuzzy
+#: gnu/packages/search.scm:337
 msgid "Web indexing system"
-msgstr "Web:"
+msgstr "Sistema indizado web"
 
-#: gnu/packages/search.scm:301
+#: gnu/packages/search.scm:339
 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
+msgid "Personal document indexing system"
+msgstr "Sistema personal de indexado de documentos"
+
+#: gnu/packages/search.scm:408
+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 ""
@@ -14776,11 +16676,11 @@ msgid ""
 "server and an IRC server."
 msgstr ""
 
-#: gnu/packages/shells.scm:79
+#: gnu/packages/shells.scm:82
 msgid "POSIX-compliant shell optimised for size"
 msgstr ""
 
-#: gnu/packages/shells.scm:81
+#: gnu/packages/shells.scm:84
 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"
@@ -14788,46 +16688,48 @@ msgid ""
 "direct descendant of NetBSD's Almquist Shell (@command{ash})."
 msgstr ""
 
-#: gnu/packages/shells.scm:136
-#, fuzzy
+#: gnu/packages/shells.scm:194
 msgid "The friendly interactive shell"
-msgstr "Shell: "
+msgstr "El shell interactivo amigable"
 
-#: gnu/packages/shells.scm:138
+#: gnu/packages/shells.scm:196
 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 help command gives access to\n"
-"all the fish documentation in your web browser.  Other features include smart\n"
-"terminal handling based on terminfo, an easy to search history, and syntax\n"
-"highlighting."
+"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:170
-msgid "Fish completions for Guix"
-msgstr "Complementaciones de pez para Guix"
+#: gnu/packages/shells.scm:249
+msgid "Foreign environment interface for fish shell"
+msgstr ""
 
-#: gnu/packages/shells.scm:172
-msgid "Fish-guix provides completions for Guix for users of the fish shell."
+#: gnu/packages/shells.scm:250
+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:213
+#: gnu/packages/shells.scm:288
 msgid "Alternative implementation of the rc shell by Byron Rakitzis"
-msgstr ""
+msgstr "Implementación alternativa de los rc shell por Byron Rakitzis"
 
-#: gnu/packages/shells.scm:215
+#: gnu/packages/shells.scm:290
 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:246
+#: gnu/packages/shells.scm:321
 msgid "Extensible shell with higher-order functions"
 msgstr ""
 
-#: gnu/packages/shells.scm:248
+#: gnu/packages/shells.scm:323
 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"
@@ -14836,12 +16738,11 @@ msgid ""
 "written by Paul Haahr and Byron Rakitzis."
 msgstr ""
 
-#: gnu/packages/shells.scm:308
-#, fuzzy
+#: gnu/packages/shells.scm:383
 msgid "Unix shell based on csh"
-msgstr "Unix Shell:"
+msgstr "Unix shell basada en csh"
 
-#: gnu/packages/shells.scm:310
+#: gnu/packages/shells.scm:385
 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"
@@ -14850,11 +16751,11 @@ msgid ""
 "history mechanism, job control and a C-like syntax."
 msgstr ""
 
-#: gnu/packages/shells.scm:359
+#: gnu/packages/shells.scm:444
 msgid "Powerful shell for interactive use and scripting"
 msgstr ""
 
-#: gnu/packages/shells.scm:360
+#: gnu/packages/shells.scm:445
 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"
@@ -14863,12 +16764,11 @@ msgid ""
 "ksh, and tcsh."
 msgstr ""
 
-#: gnu/packages/shells.scm:399
-#, fuzzy
+#: gnu/packages/shells.scm:484
 msgid "Python-ish shell"
-msgstr "SHELL            "
+msgstr "Shell Pytoniso"
 
-#: gnu/packages/shells.scm:401
+#: gnu/packages/shells.scm:486
 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"
@@ -14877,12 +16777,11 @@ msgid ""
 "use of experts and novices alike."
 msgstr ""
 
-#: gnu/packages/shells.scm:448
-#, fuzzy
+#: gnu/packages/shells.scm:530
 msgid "Unix shell embedded in Scheme"
-msgstr "Unix Shell:"
+msgstr "Unix shell embebido en Scheme"
 
-#: gnu/packages/shells.scm:450
+#: gnu/packages/shells.scm:532
 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"
@@ -14890,11 +16789,11 @@ msgid ""
 "operating system."
 msgstr ""
 
-#: gnu/packages/shells.scm:489
+#: gnu/packages/shells.scm:571
 msgid "Minimal zero-config readline replacement"
 msgstr ""
 
-#: gnu/packages/shells.scm:491
+#: gnu/packages/shells.scm:573
 msgid ""
 "Linenoise is a minimal, zero-config, readline replacement.\n"
 "Its features include:\n"
@@ -14908,11 +16807,11 @@ msgid ""
 "@end enumerate\n"
 msgstr ""
 
-#: gnu/packages/shells.scm:551
+#: gnu/packages/shells.scm:635
 msgid "Extremely minimal shell with the simplest syntax possible"
 msgstr ""
 
-#: gnu/packages/shells.scm:553
+#: gnu/packages/shells.scm:637
 msgid ""
 "S is a new shell that aims to be extremely simple.\n"
 "S does not implemnt the POSIX shell standard.\n"
@@ -14925,42 +16824,56 @@ msgid ""
 "A @code{andglob} program is also provided along with s."
 msgstr ""
 
-#: gnu/packages/shells.scm:581
+#: gnu/packages/shells.scm:665
 msgid "Port of OpenBSD Korn Shell"
-msgstr ""
+msgstr "Puerto de Shell Korn OpenBSD"
 
-#: gnu/packages/shells.scm:583
+#: gnu/packages/shells.scm:667
 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:615
+#: gnu/packages/shells.scm:699
 msgid "Korn Shell from OpenBSD"
-msgstr ""
+msgstr "Shell Korn desde OpenBSD"
 
-#: gnu/packages/shells.scm:617
+#: gnu/packages/shells.scm:701
 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:655
+#: gnu/packages/shells.scm:740
 msgid "Korn Shell from MirBSD"
-msgstr ""
+msgstr "Shell Korn de MirBSD"
 
-#: gnu/packages/shells.scm:656
+#: gnu/packages/shells.scm:741
 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/telephony.scm:66
-msgid "(u)Common C++ framework for threaded applications"
+#: gnu/packages/shells.scm:783
+msgid "Bash-compatible Unix shell"
+msgstr "Shell de Unix compatible con Bash"
+
+#: gnu/packages/shells.scm:784
+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."
 msgstr ""
 
-#: gnu/packages/telephony.scm:67
+# FUZZY
+#: gnu/packages/telephony.scm:100
+msgid "(u)Common C++ framework for threaded applications"
+msgstr "Biblioteca (u)Common C++ para aplicaciones multihilo"
+
+#: gnu/packages/telephony.scm:101
 msgid ""
 "GNU Common C++ is an portable, optimized class framework for\n"
 "threaded applications, supporting concurrent synchronization, inter-process\n"
@@ -14969,11 +16882,12 @@ msgid ""
 "reimplementation."
 msgstr ""
 
-#: gnu/packages/telephony.scm:87
+# FUZZY
+#: gnu/packages/telephony.scm:121
 msgid "Common C++ framework for threaded applications"
-msgstr ""
+msgstr "Biblioteca Common C++ para aplicaciones multihilo"
 
-#: gnu/packages/telephony.scm:88
+#: gnu/packages/telephony.scm:122
 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"
@@ -14981,11 +16895,11 @@ msgid ""
 "support."
 msgstr ""
 
-#: gnu/packages/telephony.scm:110
+#: gnu/packages/telephony.scm:144
 msgid "Implementation of RTP (real-time transport protocol)"
-msgstr ""
+msgstr "Implementación de RTP (protocolo de transporte en tiempo real)"
 
-#: gnu/packages/telephony.scm:111
+#: gnu/packages/telephony.scm:145
 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"
@@ -14994,25 +16908,22 @@ msgid ""
 "packet-manipulation library."
 msgstr ""
 
-#: gnu/packages/telephony.scm:133
+#: gnu/packages/telephony.scm:167
 msgid "Library implementing SIP (RFC-3261)"
-msgstr ""
+msgstr "Biblioteca implementando SIP (RFC-3261)"
 
-#: gnu/packages/telephony.scm:134
+#: gnu/packages/telephony.scm:168
 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:153
-#, fuzzy
+#: gnu/packages/telephony.scm:187
 msgid "Sip abstraction library"
-msgstr ""
-"\t-l biblioteca\t\t--load=biblioteca\n"
-"\n"
+msgstr "Biblioteca de abstracción de Sip"
 
-#: gnu/packages/telephony.scm:154
+#: gnu/packages/telephony.scm:188
 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"
@@ -15021,11 +16932,11 @@ msgid ""
 "multiplayer games."
 msgstr ""
 
-#: gnu/packages/telephony.scm:197
+#: gnu/packages/telephony.scm:231
 msgid "Secure peer-to-peer VoIP server for the SIP protocol"
 msgstr ""
 
-#: gnu/packages/telephony.scm:198
+#: gnu/packages/telephony.scm:232
 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"
@@ -15035,32 +16946,52 @@ msgid ""
 "internet."
 msgstr ""
 
-#: gnu/packages/telephony.scm:243
+#: gnu/packages/telephony.scm:259
 msgid "Secure RTP (SRTP) Reference Implementation"
 msgstr ""
 
-#: gnu/packages/telephony.scm:244
+#: gnu/packages/telephony.scm:261
+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 ""
-"This package provides an implementation of the Secure\n"
-"Real-time Transport Protocol (SRTP), the Universal Security Transform (UST),\n"
-"and a supporting cryptographic kernel."
+"oRTP is a library implementing the Real-time transport\n"
+"protocol (RFC 3550)."
 msgstr ""
 
-#: gnu/packages/telephony.scm:279
+#: gnu/packages/telephony.scm:335
 msgid "Inter-Asterisk-Protocol library"
 msgstr ""
 
-#: gnu/packages/telephony.scm:280
+#: gnu/packages/telephony.scm:336
 msgid ""
 "LibIAX2 implements the Inter-Asterisk-Protocol for relaying\n"
 "Voice-over-IP (VoIP) communications."
 msgstr ""
 
-#: gnu/packages/telephony.scm:311
+#: gnu/packages/telephony.scm:367
 msgid "Simple VoIP program to create conferences from the terminal"
 msgstr ""
 
-#: gnu/packages/telephony.scm:313
+#: gnu/packages/telephony.scm:369
 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"
@@ -15069,11 +17000,11 @@ msgid ""
 "address of one of the participants."
 msgstr ""
 
-#: gnu/packages/telephony.scm:425
+#: gnu/packages/telephony.scm:482
 msgid "Low-latency, high quality voice chat software"
 msgstr ""
 
-#: gnu/packages/telephony.scm:427
+#: gnu/packages/telephony.scm:484
 msgid ""
 "Mumble is an low-latency, high quality voice chat\n"
 "software primarily intended for use while gaming.\n"
@@ -15081,12 +17012,72 @@ msgid ""
 "@code{mumble} for the client, and @code{murmur} for the server."
 msgstr ""
 
-#: gnu/packages/tex.scm:192 gnu/packages/tex.scm:3844
-#: gnu/packages/tex.scm:3906
+#: gnu/packages/telephony.scm:549
+msgid "Softphone for voice over IP and instant messaging"
+msgstr ""
+
+#: gnu/packages/telephony.scm:550
+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"
+msgstr ""
+
+#: gnu/packages/telephony.scm:632
+msgid "Session Initiation Protocol (SIP) stack"
+msgstr ""
+
+#: gnu/packages/telephony.scm:633
+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."
+msgstr ""
+
+#: gnu/packages/telephony.scm:901
+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/tex.scm:253 gnu/packages/tex.scm:5227
+#: gnu/packages/tex.scm:5290
 msgid "TeX Live, a package of the TeX typesetting system"
 msgstr ""
 
-#: gnu/packages/tex.scm:194
+#: gnu/packages/tex.scm:255
 msgid ""
 "TeX Live provides a comprehensive TeX document production system.\n"
 "It includes all the major TeX-related programs, macro packages, and fonts\n"
@@ -15096,22 +17087,21 @@ msgid ""
 "This package contains the binaries."
 msgstr ""
 
-#: gnu/packages/tex.scm:259
-#, fuzzy
+#: gnu/packages/tex.scm:323
 msgid "DVI to PostScript drivers"
-msgstr "PostScript:\n"
+msgstr "Controladores DVI a PostScript"
 
-#: gnu/packages/tex.scm:260
+#: gnu/packages/tex.scm:324
 msgid ""
 "This package provides files needed for converting DVI files\n"
 "to PostScript."
 msgstr ""
 
-#: gnu/packages/tex.scm:293
+#: gnu/packages/tex.scm:358
 msgid "Unicode data and loaders for TeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:294
+#: gnu/packages/tex.scm:359
 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"
@@ -15124,12 +17114,11 @@ msgid ""
 "out to date by @code{unicode-letters.tex}. "
 msgstr ""
 
-#: gnu/packages/tex.scm:331
-#, fuzzy
+#: gnu/packages/tex.scm:397
 msgid "Hyphenation patterns for German"
 msgstr "Patrones hipernacionales para Alemán"
 
-#: gnu/packages/tex.scm:332
+#: gnu/packages/tex.scm:398
 msgid ""
 "The package provides experimental hyphenation patterns for\n"
 "the German language, covering both traditional and reformed orthography.  The\n"
@@ -15137,11 +17126,11 @@ msgid ""
 "bundle."
 msgstr ""
 
-#: gnu/packages/tex.scm:366
+#: gnu/packages/tex.scm:433
 msgid "Files for creating TeX formats"
-msgstr ""
+msgstr "Ficheros para creación de formatos TeX"
 
-#: gnu/packages/tex.scm:367
+#: gnu/packages/tex.scm:434
 msgid ""
 "This bundle provides a collection of model \".ini\" files\n"
 "for creating TeX formats.  These files are commonly used to introduced\n"
@@ -15149,12 +17138,18 @@ msgid ""
 "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 ""
+"Este manojo proporciona una colección de modelo de fichero \".ini\"\n"
+"para creación de formatos TeX.  Estos ficheros son normalmente utilizados\n"
+"para variaciones introducidas dependientes de distribuciones en formatos.\n"
+"También  son utilizados para permitir ficheros origen existentes formateados\n"
+"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:400
+#: gnu/packages/tex.scm:468
 msgid "Hyphenation patterns expressed in UTF-8"
-msgstr ""
+msgstr "Patrones hipernacionales expresados en UTF-8"
 
-#: gnu/packages/tex.scm:401
+#: 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"
@@ -15167,21 +17162,35 @@ msgid ""
 "converters, will completely supplant the older patterns."
 msgstr ""
 
-#: gnu/packages/tex.scm:476
+#: gnu/packages/tex.scm:545
 msgid "Metafont base files"
-msgstr "Ficheros Metafont base"
+msgstr "Ficheros Metafont básicos"
 
-#: gnu/packages/tex.scm:477
+#: gnu/packages/tex.scm:546
 msgid ""
 "This package provides the Metafont base files needed to\n"
 "build fonts using the Metafont system."
 msgstr ""
 
-#: gnu/packages/tex.scm:508
-msgid "Scheme for naming fonts in TeX"
+#: gnu/packages/tex.scm:577
+msgid "Tools for converting and installing fonts for TeX and LaTeX"
+msgstr ""
+
+#: gnu/packages/tex.scm:578
+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:509
+#: gnu/packages/tex.scm:613
+msgid "Scheme for naming fonts in TeX"
+msgstr "Esquema para el nombrado de tipografías en TeX"
+
+#: gnu/packages/tex.scm:614
 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"
@@ -15189,11 +17198,11 @@ msgid ""
 "documents."
 msgstr ""
 
-#: gnu/packages/tex.scm:576
+#: gnu/packages/tex.scm:705
 msgid "Computer Modern fonts for TeX"
-msgstr ""
+msgstr "Tipografías de Computer Modern para TeX"
 
-#: gnu/packages/tex.scm:577
+#: gnu/packages/tex.scm:706
 msgid ""
 "This package provides the Computer Modern fonts by Donald\n"
 "Knuth.  The Computer Modern font family is a large collection of text,\n"
@@ -15201,23 +17210,47 @@ msgid ""
 "8A."
 msgstr ""
 
-#: gnu/packages/tex.scm:640
-#, fuzzy
+#: gnu/packages/tex.scm:813
+msgid "Computer Modern Super family of fonts"
+msgstr "Familia de tipografías Computer Modern Super"
+
+#: gnu/packages/tex.scm:814
+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:851
+msgid "Latin Modern family of fonts"
+msgstr ""
+
+#: gnu/packages/tex.scm:852
+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
 msgid "Small library of METAFONT sources"
-msgstr "Biblioteca de Herramientas. Pequeños consejos de codificación."
+msgstr "Pequeña biblioteca de fuentes de METAFONT"
 
-#: gnu/packages/tex.scm:641
+#: gnu/packages/tex.scm:923
 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:713
+#: gnu/packages/tex.scm:997
 msgid "Collection of fonts used in LaTeX distributions"
 msgstr ""
 
-#: gnu/packages/tex.scm:714
+#: gnu/packages/tex.scm:998
 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"
@@ -15225,11 +17258,35 @@ msgid ""
 "symbol fonts."
 msgstr ""
 
-#: gnu/packages/tex.scm:791 gnu/packages/tex.scm:821
-msgid "TeX fonts from the American Mathematical Society"
+#: gnu/packages/tex.scm:1018
+msgid "LaTeX support for Metafont logo fonts"
 msgstr ""
 
-#: gnu/packages/tex.scm:793
+#: gnu/packages/tex.scm:1020
+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
+msgid "Metafont logo font"
+msgstr ""
+
+#: gnu/packages/tex.scm:1089
+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:1285 gnu/packages/tex.scm:1316
+msgid "TeX fonts from the American Mathematical Society"
+msgstr "Tipografías TeX desde la Sociedad Americana de Matemáticas"
+
+#: gnu/packages/tex.scm:1287
 msgid ""
 "This package provides an extended set of fonts for use in mathematics,\n"
 "including: extra mathematical symbols; blackboard bold letters (uppercase\n"
@@ -15243,29 +17300,29 @@ msgid ""
 "details can be found in the documentation."
 msgstr ""
 
-#: gnu/packages/tex.scm:823
+#: gnu/packages/tex.scm:1318
 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}."
 msgstr ""
 
-#: gnu/packages/tex.scm:856
+#: gnu/packages/tex.scm:1352
 msgid "Plain TeX format and supporting files"
-msgstr ""
+msgstr "Formato Tex simple y soportando ficheros"
 
-#: gnu/packages/tex.scm:858
+#: gnu/packages/tex.scm:1354
 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)."
 msgstr ""
 
-#: gnu/packages/tex.scm:1004
+#: gnu/packages/tex.scm:1533
 msgid "Base sources of LaTeX"
 msgstr "Orígenes base de LaTeX"
 
-#: gnu/packages/tex.scm:1006
+#: gnu/packages/tex.scm:1535
 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"
@@ -15273,11 +17330,11 @@ msgid ""
 "contain."
 msgstr ""
 
-#: gnu/packages/tex.scm:1025
+#: gnu/packages/tex.scm:1555
 msgid "Extended filecontents and filecontents* environments"
 msgstr ""
 
-#: gnu/packages/tex.scm:1027
+#: gnu/packages/tex.scm:1557
 msgid ""
 "LaTeX2e's @code{filecontents} and @code{filecontents*} environments\n"
 "enable a LaTeX source file to generate external files as it runs through\n"
@@ -15288,22 +17345,22 @@ msgid ""
 "@code{filecontents*} anywhere."
 msgstr ""
 
-#: gnu/packages/tex.scm:1053
+#: gnu/packages/tex.scm:1584
 msgid "Am I running under XeTeX?"
-msgstr ""
+msgstr "¿Estoy ejecutando bajo XeTeX?"
 
-#: gnu/packages/tex.scm:1055
+#: gnu/packages/tex.scm:1586
 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:1086
+#: gnu/packages/tex.scm:1618
 msgid "Simple macros for EPS inclusion"
 msgstr ""
 
-#: gnu/packages/tex.scm:1088
+#: gnu/packages/tex.scm:1620
 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"
@@ -15313,12 +17370,11 @@ msgid ""
 "users, via its Plain TeX version.)"
 msgstr ""
 
-#: gnu/packages/tex.scm:1113
-#, fuzzy
+#: gnu/packages/tex.scm:1644
 msgid "Sophisticated verbatim text"
-msgstr "vuelca resultados obtenidos tal cual"
+msgstr "Texto verborreo sofisticado"
 
-#: gnu/packages/tex.scm:1115
+#: gnu/packages/tex.scm:1646
 msgid ""
 "This package provides tools for the flexible handling of verbatim text\n"
 "including: verbatim commands in footnotes; a variety of verbatim environments\n"
@@ -15328,11 +17384,11 @@ msgid ""
 "verbatim source)."
 msgstr ""
 
-#: gnu/packages/tex.scm:1177
+#: gnu/packages/tex.scm:1715
 msgid "LaTeX standard graphics bundle"
-msgstr ""
+msgstr "Manojo de gráficos comunes en LaTeX"
 
-#: gnu/packages/tex.scm:1179
+#: gnu/packages/tex.scm:1717
 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"
@@ -15340,11 +17396,11 @@ msgid ""
 "keyval, and lscape."
 msgstr ""
 
-#: gnu/packages/tex.scm:1200
+#: gnu/packages/tex.scm:1739
 msgid "Driver-independent color extensions for LaTeX and pdfLaTeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:1202
+#: gnu/packages/tex.scm:1741
 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"
@@ -15355,11 +17411,11 @@ msgid ""
 "tables."
 msgstr ""
 
-#: gnu/packages/tex.scm:1228
+#: gnu/packages/tex.scm:1770
 msgid "Extensive support for hypertext in LaTeX"
-msgstr ""
+msgstr "Apoyo extensivo para hipertexto en LaTeX"
 
-#: gnu/packages/tex.scm:1230
+#: gnu/packages/tex.scm:1772
 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"
@@ -15371,22 +17427,22 @@ msgid ""
 "@code{nameref} packages, which make use of the facilities of @code{hyperref}."
 msgstr ""
 
-#: gnu/packages/tex.scm:1263
+#: gnu/packages/tex.scm:1808
 msgid "Bundle of packages submitted by Heiko Oberdiek"
 msgstr ""
 
-#: gnu/packages/tex.scm:1265
+#: gnu/packages/tex.scm:1810
 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:1285
+#: gnu/packages/tex.scm:1831
 msgid "LaTeX standard tools bundle"
-msgstr ""
+msgstr "Manojo de herramientas LaTeX común"
 
-#: gnu/packages/tex.scm:1287
+#: gnu/packages/tex.scm:1833
 msgid ""
 "This package is a collection of (variously) simple tools provided as\n"
 "part of the LaTeX required tools distribution, comprising the following\n"
@@ -15396,11 +17452,11 @@ msgid ""
 "xr, and xspace."
 msgstr ""
 
-#: gnu/packages/tex.scm:1321
+#: gnu/packages/tex.scm:1868
 msgid "Verbatim with URL-sensitive line breaks"
 msgstr ""
 
-#: gnu/packages/tex.scm:1322
+#: gnu/packages/tex.scm:1869
 msgid ""
 "The command @code{\\url} is a form of verbatim command that\n"
 "allows linebreaks at certain characters or combinations of characters, accepts\n"
@@ -15412,12 +17468,11 @@ msgid ""
 "of file names."
 msgstr ""
 
-#: gnu/packages/tex.scm:1348
-#, fuzzy
+#: gnu/packages/tex.scm:1896
 msgid "LaTeX3 programmers’ interface"
-msgstr "Interfaz: "
+msgstr "Interfaz de programadores LaTeX3"
 
-#: gnu/packages/tex.scm:1350
+#: gnu/packages/tex.scm:1898
 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"
@@ -15426,11 +17481,11 @@ msgid ""
 "that the LaTeX3 conventions can be used with regular LaTeX 2e packages."
 msgstr ""
 
-#: gnu/packages/tex.scm:1387
+#: gnu/packages/tex.scm:1943
 msgid "High-level LaTeX3 concepts"
 msgstr ""
 
-#: gnu/packages/tex.scm:1389
+#: gnu/packages/tex.scm:1945
 msgid ""
 "This bundle holds prototype implementations of concepts for a LaTeX\n"
 "designer interface, to be used with the experimental LaTeX kernel as\n"
@@ -15447,11 +17502,11 @@ msgid ""
 "@end enumerate\n"
 msgstr ""
 
-#: gnu/packages/tex.scm:1421
+#: gnu/packages/tex.scm:2005
 msgid "Advanced font selection in XeLaTeX and LuaLaTeX"
-msgstr ""
+msgstr "Selección tipográfica avanzada en XeLaTeX y LuaLaTeX"
 
-#: gnu/packages/tex.scm:1423
+#: gnu/packages/tex.scm:2007
 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"
@@ -15459,22 +17514,37 @@ msgid ""
 "the l3kernel and xparse bundles from the LaTeX 3 development team."
 msgstr ""
 
-#: gnu/packages/tex.scm:1458
+#: gnu/packages/tex.scm:2043
 msgid "Lua modules for general programming (in the (La)TeX world)"
 msgstr ""
 
-#: gnu/packages/tex.scm:1460
+#: gnu/packages/tex.scm:2045
 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:1479
-msgid "AMS mathematical facilities for LaTeX"
+#: gnu/packages/tex.scm:2133
+#, fuzzy
+#| msgid "e-TeX tools for LaTeX"
+msgid "OpenType font loader for LuaTeX"
+msgstr "Herramientas e-TeX para LaTeX"
+
+#: gnu/packages/tex.scm:2135
+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:1481
+#: gnu/packages/tex.scm:2157
+msgid "AMS mathematical facilities for LaTeX"
+msgstr "Capacidad matemática AMS para LaTeX"
+
+#: gnu/packages/tex.scm:2159
 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"
@@ -15489,11 +17559,11 @@ msgid ""
 "definitions."
 msgstr ""
 
-#: gnu/packages/tex.scm:1508
+#: gnu/packages/tex.scm:2187
 msgid "AMS document classes for LaTeX"
-msgstr ""
+msgstr "Clases documentales AMS para LaTeX"
 
-#: gnu/packages/tex.scm:1510
+#: gnu/packages/tex.scm:2189
 msgid ""
 "This bundle contains three AMS classes: @code{amsartamsart} (for writing\n"
 "articles for the AMS), @code{amsbookamsbook} (for books) and\n"
@@ -15502,11 +17572,11 @@ msgid ""
 "distribution."
 msgstr ""
 
-#: gnu/packages/tex.scm:1540
+#: gnu/packages/tex.scm:2220
 msgid "Multilingual support for Plain TeX or LaTeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:1542
+#: gnu/packages/tex.scm:2222
 msgid ""
 "The package manages culturally-determined typographical (and other)\n"
 "rules, and hyphenation patterns for a wide range of languages.  A document may\n"
@@ -15517,11 +17587,11 @@ msgid ""
 "polyglossia package rather than Babel."
 msgstr ""
 
-#: gnu/packages/tex.scm:1565
+#: gnu/packages/tex.scm:2245
 msgid "Babel support for English"
 msgstr "Capacidad Babel para inglés"
 
-#: gnu/packages/tex.scm:1567
+#: gnu/packages/tex.scm:2247
 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"
@@ -15529,11 +17599,26 @@ msgid ""
 "for Canadian and USA text."
 msgstr ""
 
-#: gnu/packages/tex.scm:1587
+#: gnu/packages/tex.scm:2267
+#, fuzzy
+#| msgid "Babel support for English"
+msgid "Babel support for German"
+msgstr "Capacidad Babel para inglés"
+
+#: gnu/packages/tex.scm:2269
+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:2291
 msgid "Support for Cyrillic fonts in LaTeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:1589
+#: gnu/packages/tex.scm:2293
 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"
@@ -15541,11 +17626,11 @@ msgid ""
 "language that is written in a Cyrillic alphabet."
 msgstr ""
 
-#: gnu/packages/tex.scm:1608
+#: gnu/packages/tex.scm:2313
 msgid "Font support for common PostScript fonts"
-msgstr ""
+msgstr "Capacidad de tipografía para tipos PostScript comunes"
 
-#: gnu/packages/tex.scm:1610
+#: gnu/packages/tex.scm:2315
 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"
@@ -15556,27 +17641,31 @@ msgid ""
 "packages."
 msgstr ""
 
-#: gnu/packages/tex.scm:1695
-msgid "Union of TeX Live packages"
+#: gnu/packages/tex.scm:2356
+msgid "TeX Live base packages"
 msgstr ""
 
-#: gnu/packages/tex.scm:1696
+#: gnu/packages/tex.scm:2357 gnu/packages/tex.scm:2445
 msgid ""
-"This package provides a subset of the TeX Live\n"
-"distribution."
+"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
+msgid "Union of TeX Live packages"
 msgstr ""
 
-#: gnu/packages/tex.scm:1711
+#: gnu/packages/tex.scm:2429
 msgid ""
-"This is a very limited subset of the TeX Live distribution.\n"
-"It includes little more than the required set of LaTeX packages."
+"This package provides a subset of the TeX Live\n"
+"distribution."
 msgstr ""
 
-#: gnu/packages/tex.scm:1728
+#: gnu/packages/tex.scm:2462
 msgid "LaTeX-based replacement for BibTeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:1730
+#: gnu/packages/tex.scm:2464
 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"
@@ -15584,11 +17673,11 @@ msgid ""
 "conjunction with BibTeX or as a replacement for BibTeX."
 msgstr ""
 
-#: gnu/packages/tex.scm:1757
+#: gnu/packages/tex.scm:2491
 msgid "Footnotes for critical editions"
-msgstr ""
+msgstr "Anotaciones pie para ediciones críticas"
 
-#: gnu/packages/tex.scm:1759
+#: gnu/packages/tex.scm:2493
 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"
@@ -15602,11 +17691,11 @@ msgid ""
 "@code{suffix} packages."
 msgstr ""
 
-#: gnu/packages/tex.scm:1785
+#: gnu/packages/tex.scm:2519
 msgid "Producing 'blind' text for testing"
 msgstr ""
 
-#: gnu/packages/tex.scm:1787
+#: gnu/packages/tex.scm:2521
 msgid ""
 "The package provides the commands @code{\\blindtext} and\n"
 "@code{\\Blindtext} for creating \"blind\" text useful in testing new classes\n"
@@ -15617,11 +17706,11 @@ msgid ""
 "ipsum\" text, see the @code{lipsum} package)."
 msgstr ""
 
-#: gnu/packages/tex.scm:1817
+#: gnu/packages/tex.scm:2558
 msgid "German letter DIN style"
-msgstr ""
+msgstr "Estilo DIN de letra alemana"
 
-#: gnu/packages/tex.scm:1819
+#: gnu/packages/tex.scm:2560
 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"
@@ -15633,11 +17722,11 @@ msgid ""
 "package."
 msgstr ""
 
-#: gnu/packages/tex.scm:1843
+#: gnu/packages/tex.scm:2584
 msgid "Put a grey textual watermark on document pages"
 msgstr ""
 
-#: gnu/packages/tex.scm:1845
+#: gnu/packages/tex.scm:2586
 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"
@@ -15647,11 +17736,11 @@ msgid ""
 "on everypage."
 msgstr ""
 
-#: gnu/packages/tex.scm:1867
+#: gnu/packages/tex.scm:2608
 msgid "New interface for environments in LaTeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:1869
+#: gnu/packages/tex.scm:2610
 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"
@@ -15659,11 +17748,11 @@ msgid ""
 "define a new author interface to creating new environments."
 msgstr ""
 
-#: gnu/packages/tex.scm:1889
+#: gnu/packages/tex.scm:2630
 msgid "Create equal-widthed parboxes"
 msgstr ""
 
-#: gnu/packages/tex.scm:1891
+#: gnu/packages/tex.scm:2632
 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"
@@ -15677,12 +17766,11 @@ msgid ""
 "also provided."
 msgstr ""
 
-#: gnu/packages/tex.scm:1925
-#, fuzzy
+#: gnu/packages/tex.scm:2666
 msgid "Expanded description environments"
-msgstr "Descripción:"
+msgstr "Entorno descripción expandido"
 
-#: gnu/packages/tex.scm:1927
+#: gnu/packages/tex.scm:2668
 msgid ""
 "The package provides additional features for the LaTeX\n"
 "@code{description} environment, including adjustable left margin.  The package\n"
@@ -15691,11 +17779,11 @@ msgid ""
 "@code{enumerate} lists, and numbered lists remain in sequence)."
 msgstr ""
 
-#: gnu/packages/tex.scm:1960
+#: gnu/packages/tex.scm:2702
 msgid "Provide file modification times, and compare them"
 msgstr ""
 
-#: gnu/packages/tex.scm:1962
+#: gnu/packages/tex.scm:2704
 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"
@@ -15707,11 +17795,11 @@ msgid ""
 "but non-expandable ones."
 msgstr ""
 
-#: gnu/packages/tex.scm:1986
+#: gnu/packages/tex.scm:2728
 msgid "Conditionals to test which platform is being used"
 msgstr ""
 
-#: gnu/packages/tex.scm:1988
+#: gnu/packages/tex.scm:2730
 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"
@@ -15722,11 +17810,11 @@ msgid ""
 "classes of systems."
 msgstr ""
 
-#: gnu/packages/tex.scm:2010
+#: gnu/packages/tex.scm:2753
 msgid "Flexible bibliography support"
 msgstr "Compatibilidad bibliográfica flexible"
 
-#: gnu/packages/tex.scm:2012
+#: gnu/packages/tex.scm:2755
 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"
@@ -15736,11 +17824,11 @@ msgid ""
 "designed from the start to be compatible with @code{natbib}."
 msgstr ""
 
-#: gnu/packages/tex.scm:2034
+#: gnu/packages/tex.scm:2777
 msgid "Replace strings in encapsulated PostScript figures"
 msgstr ""
 
-#: gnu/packages/tex.scm:2036
+#: gnu/packages/tex.scm:2779
 msgid ""
 "This package allows LaTeX constructions (equations, picture\n"
 "environments, etc.) to be precisely superimposed over Encapsulated PostScript\n"
@@ -15751,11 +17839,26 @@ msgid ""
 "rotated."
 msgstr ""
 
-#: gnu/packages/tex.scm:2072
-msgid "Process PostScript graphisc within pdfLaTeX documents"
+#: 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
+msgid "Process PostScript graphics within pdfLaTeX documents"
 msgstr ""
 
-#: gnu/packages/tex.scm:2074
+#: gnu/packages/tex.scm:2853
 msgid ""
 "This is a package for processing PostScript graphics with @code{psfrag}\n"
 "labels within pdfLaTeX documents.  Every graphic is compiled individually,\n"
@@ -15763,12 +17866,11 @@ msgid ""
 "re-processing."
 msgstr ""
 
-#: gnu/packages/tex.scm:2097
-#, fuzzy
+#: gnu/packages/tex.scm:2886
 msgid "Make overhead slides"
-msgstr "no se reconoce la especificación de adelanto de objeto C++"
+msgstr "Crear ranuras suspendidas"
 
-#: gnu/packages/tex.scm:2100
+#: gnu/packages/tex.scm:2889
 msgid ""
 "This package provides a class that produces overhead\n"
 "slides (transparencies), with many facilities.  Seminar is not nowadays\n"
@@ -15777,11 +17879,11 @@ msgid ""
 "21st-century presentation styles."
 msgstr ""
 
-#: gnu/packages/tex.scm:2132
+#: gnu/packages/tex.scm:2922
 msgid "Trim spaces around an argument or within a macro"
 msgstr ""
 
-#: gnu/packages/tex.scm:2134
+#: gnu/packages/tex.scm:2924
 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"
@@ -15789,22 +17891,36 @@ msgid ""
 "space-stripped macros."
 msgstr ""
 
-#: gnu/packages/tex.scm:2167
+#: gnu/packages/tex.scm:2957
 #, fuzzy
 msgid "Captions on more than floats"
-msgstr "se ha especificado más de un elemento de formato"
+msgstr "Se ha especificado más de una fecha tope"
 
-#: gnu/packages/tex.scm:2169
+#: gnu/packages/tex.scm:2959
 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:2200
-msgid "e-TeX tools for LaTeX"
+#: gnu/packages/tex.scm:2990
+msgid "Create correct hyperlinks for DOI numbers"
 msgstr ""
 
-#: gnu/packages/tex.scm:2202
+#: gnu/packages/tex.scm:2992
+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:3028
+msgid "e-TeX tools for LaTeX"
+msgstr "Herramientas e-TeX para LaTeX"
+
+#: gnu/packages/tex.scm:3030
 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"
@@ -15815,11 +17931,11 @@ msgid ""
 "of the LaTeX kernel."
 msgstr ""
 
-#: gnu/packages/tex.scm:2238
+#: gnu/packages/tex.scm:3066
 msgid "Seven predefined chapter heading styles"
 msgstr ""
 
-#: gnu/packages/tex.scm:2240
+#: gnu/packages/tex.scm:3068
 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"
@@ -15827,11 +17943,11 @@ msgid ""
 "headings."
 msgstr ""
 
-#: gnu/packages/tex.scm:2273
+#: gnu/packages/tex.scm:3101
 msgid "Framed or shaded regions that can break across pages"
 msgstr ""
 
-#: gnu/packages/tex.scm:2275
+#: gnu/packages/tex.scm:3103
 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"
@@ -15842,12 +17958,11 @@ msgid ""
 "@code{\\MakeFramed} to make your own framed-style environments."
 msgstr ""
 
-#: gnu/packages/tex.scm:2307
-#, fuzzy
+#: gnu/packages/tex.scm:3135
 msgid "Letter document class"
-msgstr "Ahí está esa carta."
+msgstr "Clase de documentos de carta"
 
-#: gnu/packages/tex.scm:2309
+#: gnu/packages/tex.scm:3137
 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"
@@ -15855,22 +17970,21 @@ msgid ""
 "\"old\" and a \"new\" version of g-brief."
 msgstr ""
 
-#: gnu/packages/tex.scm:2329
-#, fuzzy
+#: gnu/packages/tex.scm:3157
 msgid "Typeset Galois connections"
-msgstr "escucha conexiones en SOCKET"
+msgstr "Conexiones Typeset Galois"
 
-#: gnu/packages/tex.scm:2331
+#: gnu/packages/tex.scm:3159
 msgid ""
 "The package deals with connections in two-dimensional style, optionally\n"
 "in colour."
 msgstr ""
 
-#: gnu/packages/tex.scm:2349
+#: gnu/packages/tex.scm:3177
 msgid "Citations in a reader-friendly style"
-msgstr ""
+msgstr "Citaciones dentro de un estilo lector-amistoso"
 
-#: gnu/packages/tex.scm:2351
+#: gnu/packages/tex.scm:3179
 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"
@@ -15880,11 +17994,11 @@ msgid ""
 "BibLaTeX, and is considered experimental."
 msgstr ""
 
-#: gnu/packages/tex.scm:2373
+#: gnu/packages/tex.scm:3203
 msgid "Flexible and complete interface to document dimensions"
 msgstr ""
 
-#: gnu/packages/tex.scm:2375
+#: gnu/packages/tex.scm:3205
 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"
@@ -15895,11 +18009,11 @@ msgid ""
 "ability to communicate the paper size it's set up to the output."
 msgstr ""
 
-#: gnu/packages/tex.scm:2398
+#: gnu/packages/tex.scm:3228
 msgid "Miscellaneous tools by Mark Wooding"
-msgstr ""
+msgstr "Varias herramientas por Mark Wooding"
 
-#: gnu/packages/tex.scm:2400
+#: gnu/packages/tex.scm:3230
 msgid ""
 "This collection of tools includes: @code{atsupport} for short commands\n"
 "starting with @code{@@}, macros to sanitize the OT1 encoding of the\n"
@@ -15909,21 +18023,21 @@ msgid ""
 "array environments; verbatim handling; and syntax diagrams."
 msgstr ""
 
-#: gnu/packages/tex.scm:2422
+#: gnu/packages/tex.scm:3252
 msgid "Alternative to babel for XeLaTeX and LuaLaTeX"
-msgstr ""
+msgstr "Alternativo a babel para XeLaTeX y LuaLaTeX"
 
-#: gnu/packages/tex.scm:2424
+#: gnu/packages/tex.scm:3254
 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:2442
+#: gnu/packages/tex.scm:3272
 msgid "Multi-page tables package"
 msgstr ""
 
-#: gnu/packages/tex.scm:2444
+#: gnu/packages/tex.scm:3274
 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"
@@ -15931,11 +18045,11 @@ msgid ""
 "situations where longtable has problems."
 msgstr ""
 
-#: gnu/packages/tex.scm:2476
+#: gnu/packages/tex.scm:3307
 msgid "TeX macros to handle Texinfo files"
 msgstr ""
 
-#: gnu/packages/tex.scm:2478
+#: gnu/packages/tex.scm:3309
 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"
@@ -15944,11 +18058,11 @@ msgid ""
 "hypertext linkages in some cases)."
 msgstr ""
 
-#: gnu/packages/tex.scm:2499
+#: gnu/packages/tex.scm:3330
 msgid "Show \"realistic\" quotes in verbatim"
 msgstr ""
 
-#: gnu/packages/tex.scm:2501
+#: gnu/packages/tex.scm:3332
 msgid ""
 "Typewriter-style fonts are best for program listings, but Computer\n"
 "Modern Typewriter prints @code{`} and @code{'} as bent opening and closing\n"
@@ -15962,22 +18076,22 @@ msgid ""
 "does not affect @code{\\tt}, @code{\\texttt}, etc."
 msgstr ""
 
-#: gnu/packages/tex.scm:2539
+#: gnu/packages/tex.scm:3371
 msgid "Simple package to set up document margins"
 msgstr ""
 
-#: gnu/packages/tex.scm:2541
+#: gnu/packages/tex.scm:3373
 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:2559
+#: gnu/packages/tex.scm:3392
 msgid "Extra control of appendices"
-msgstr "Control adicional de adyacencias"
+msgstr "Control adicional de apéndices"
 
-#: gnu/packages/tex.scm:2561
+#: gnu/packages/tex.scm:3394
 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"
@@ -15986,45 +18100,44 @@ msgid ""
 "command."
 msgstr ""
 
-#: gnu/packages/tex.scm:2581
+#: gnu/packages/tex.scm:3415
 msgid "Generate changebars in LaTeX documents"
-msgstr ""
+msgstr "Genera modificaciones de barras en documentos LaTeX"
 
-#: gnu/packages/tex.scm:2583
+#: gnu/packages/tex.scm:3417
 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 'drivers' to place the bars; the available drivers can work with\n"
-"@code{dvitoln03}, @code{dvitops}, @code{dvips}, the emTeX and TeXtures DVI\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:2618
-#, fuzzy
+#: gnu/packages/tex.scm:3452
 msgid "CMap support for PDF files"
-msgstr "Este sistema de ficheros no soporta el envío de ficheros."
+msgstr "Compatibilidad CMap para ficheros PDF"
 
-#: gnu/packages/tex.scm:2620
+#: gnu/packages/tex.scm:3454
 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:2637
+#: gnu/packages/tex.scm:3472
 msgid "Add colour to LaTeX tables"
-msgstr ""
+msgstr "Añade color a tablas LaTeX"
 
-#: gnu/packages/tex.scm:2639
+#: gnu/packages/tex.scm:3474
 msgid ""
 "This package allows rows, columns, and even individual cells in LaTeX\n"
 "tables to be coloured."
 msgstr ""
 
-#: gnu/packages/tex.scm:2669
+#: gnu/packages/tex.scm:3505
 msgid "Variants of \\fbox and other games with boxes"
 msgstr ""
 
-#: gnu/packages/tex.scm:2671
+#: gnu/packages/tex.scm:3507
 msgid ""
 "This package provides variants of @code{\\fbox}: @code{\\shadowbox},\n"
 "@code{\\doublebox}, @code{\\ovalbox}, @code{\\Ovalbox}, with helpful tools for\n"
@@ -16032,22 +18145,22 @@ msgid ""
 "floats, center, flushleft, and flushright, lists, and pages."
 msgstr ""
 
-#: gnu/packages/tex.scm:2703
+#: gnu/packages/tex.scm:3540
 msgid "Extensive control of page headers and footers in LaTeX2e"
 msgstr ""
 
-#: gnu/packages/tex.scm:2705
+#: gnu/packages/tex.scm:3542
 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:2723
+#: gnu/packages/tex.scm:3561
 msgid "Improved interface for floating objects"
 msgstr ""
 
-#: gnu/packages/tex.scm:2725
+#: gnu/packages/tex.scm:3563
 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"
@@ -16057,12 +18170,11 @@ msgid ""
 "with @code{\\floatplacement{figure}{H}}."
 msgstr ""
 
-#: gnu/packages/tex.scm:2746
-#, fuzzy
+#: gnu/packages/tex.scm:3585
 msgid "Range of footnote options"
-msgstr " Las opciones son:\n"
+msgstr "Ancho de opciones de anotaciones"
 
-#: gnu/packages/tex.scm:2748
+#: gnu/packages/tex.scm:3587
 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"
@@ -16072,11 +18184,11 @@ msgid ""
 "footnotes with symbols rather than numbers."
 msgstr ""
 
-#: gnu/packages/tex.scm:2771
+#: gnu/packages/tex.scm:3611
 msgid "Typeset source code listings using LaTeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:2773
+#: gnu/packages/tex.scm:3613
 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"
@@ -16084,11 +18196,11 @@ msgid ""
 "styles.  Support for @code{hyperref} is provided."
 msgstr ""
 
-#: gnu/packages/tex.scm:2805
+#: gnu/packages/tex.scm:3646
 msgid "Miscellaneous packages by Joerg Knappen"
-msgstr ""
+msgstr "Varios paquetes por Joerg Knappen"
 
-#: gnu/packages/tex.scm:2807
+#: gnu/packages/tex.scm:3648
 msgid ""
 "This package provides miscellaneous macros by Joerg Knappen, including:\n"
 "represent counters in greek; Maxwell's non-commutative division;\n"
@@ -16100,11 +18212,11 @@ msgid ""
 "in SGML; use maths minus in text as appropriate; simple Young tableaux."
 msgstr ""
 
-#: gnu/packages/tex.scm:2880
+#: gnu/packages/tex.scm:3723
 msgid "Computer modern fonts in T1 and TS1 encodings"
 msgstr ""
 
-#: gnu/packages/tex.scm:2882
+#: gnu/packages/tex.scm:3725
 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"
@@ -16121,11 +18233,34 @@ msgid ""
 "differs from the EC in a number of particulars."
 msgstr ""
 
-#: gnu/packages/tex.scm:2961
-msgid "Ralph Smith's Formal Script font"
+#: gnu/packages/tex.scm:3897 gnu/packages/tex.scm:4060
+#: gnu/packages/tex.scm:4195
+msgid "URW Base 35 font pack for LaTeX"
+msgstr ""
+
+#: gnu/packages/tex.scm:3899
+msgid ""
+"This package provides a drop-in replacements for the Times font from\n"
+"Adobe's basic set."
+msgstr ""
+
+#: gnu/packages/tex.scm:4062
+msgid ""
+"This package provides a drop-in replacements for the Palatino font from\n"
+"Adobe's basic set."
+msgstr ""
+
+#: gnu/packages/tex.scm:4197
+msgid ""
+"This package provides a drop-in replacements for the Zapfding font from\n"
+"Adobe's basic set."
 msgstr ""
 
-#: gnu/packages/tex.scm:2963
+#: gnu/packages/tex.scm:4267
+msgid "Ralph Smith's Formal Script font"
+msgstr "Tipografía de Guión Formal de Ralph Smith"
+
+#: gnu/packages/tex.scm:4269
 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"
@@ -16135,22 +18270,22 @@ msgid ""
 "one of the packages @code{calrsfs} and @code{mathrsfs}."
 msgstr ""
 
-#: gnu/packages/tex.scm:2984
+#: gnu/packages/tex.scm:4291
 msgid "Add picture commands (or backgrounds) to every page"
-msgstr ""
+msgstr "Añade mandatos pictóricos (o fondos) a cada página"
 
-#: gnu/packages/tex.scm:2986
+#: gnu/packages/tex.scm:4293
 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:3017
+#: gnu/packages/tex.scm:4325
 msgid "Extensions to epic and the LaTeX drawing tools"
 msgstr ""
 
-#: gnu/packages/tex.scm:3019
+#: gnu/packages/tex.scm:4327
 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"
@@ -16160,12 +18295,11 @@ msgid ""
 "@code{\\special} commands."
 msgstr ""
 
-#: gnu/packages/tex.scm:3054
-#, fuzzy
+#: gnu/packages/tex.scm:4362
 msgid "Customize basic list environments"
-msgstr "Personalize la lista"
+msgstr "Adaptar lista básica de entornos"
 
-#: gnu/packages/tex.scm:3056
+#: gnu/packages/tex.scm:4364
 msgid ""
 "This package is intended to ease customizing the three basic list\n"
 "environments: @code{enumerate}, @code{itemize} and @code{description}.  It\n"
@@ -16174,22 +18308,22 @@ msgid ""
 "@code{\\begin{itemize}[itemsep=1ex,leftmargin=1cm]}."
 msgstr ""
 
-#: gnu/packages/tex.scm:3076
+#: gnu/packages/tex.scm:4385
 msgid "Create tabular cells spanning multiple rows"
 msgstr ""
 
-#: gnu/packages/tex.scm:3078
+#: gnu/packages/tex.scm:4387
 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:3109
+#: gnu/packages/tex.scm:4419
 msgid "Combine LaTeX commands over included graphics"
 msgstr ""
 
-#: gnu/packages/tex.scm:3111
+#: gnu/packages/tex.scm:4421
 msgid ""
 "The @code{overpic} environment is a cross between the LaTeX\n"
 "@code{picture} environment and the @code{\\includegraphics} command of\n"
@@ -16198,22 +18332,22 @@ msgid ""
 "positions; a grid for orientation is available."
 msgstr ""
 
-#: gnu/packages/tex.scm:3145
+#: gnu/packages/tex.scm:4455
 msgid "Layout with zero \\parindent, non-zero \\parskip"
 msgstr ""
 
-#: gnu/packages/tex.scm:3147
+#: gnu/packages/tex.scm:4457
 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:3165
+#: gnu/packages/tex.scm:4476
 msgid "Include PDF documents in LaTeX"
-msgstr ""
+msgstr "Incluye documentos PDF en LaTeX"
 
-#: gnu/packages/tex.scm:3167
+#: gnu/packages/tex.scm:4478
 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"
@@ -16223,11 +18357,11 @@ msgid ""
 "use this package to insert PostScript files, in addition to PDF files."
 msgstr ""
 
-#: gnu/packages/tex.scm:3198
+#: gnu/packages/tex.scm:4510
 msgid "St Mary Road symbols for theoretical computer science"
 msgstr ""
 
-#: gnu/packages/tex.scm:3200
+#: gnu/packages/tex.scm:4512
 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"
@@ -16236,11 +18370,11 @@ msgid ""
 "the whole font."
 msgstr ""
 
-#: gnu/packages/tex.scm:3220
+#: gnu/packages/tex.scm:4533
 msgid "Figures divided into subfigures"
 msgstr "Figuras divididas dentro de subfiguras"
 
-#: gnu/packages/tex.scm:3222
+#: gnu/packages/tex.scm:4535
 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"
@@ -16253,12 +18387,11 @@ msgid ""
 "the more recent @code{subcaption} package more satisfactory."
 msgstr ""
 
-#: gnu/packages/tex.scm:3247
-#, fuzzy
+#: gnu/packages/tex.scm:4560
 msgid "Tabular with variable width columns balanced"
-msgstr "se descarta el ancho inválido de la variable de entorno COLUMNS: %s"
+msgstr "Tabulado con ancho de columna variable equilibrado"
 
-#: gnu/packages/tex.scm:3249
+#: gnu/packages/tex.scm:4562
 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"
@@ -16269,11 +18402,11 @@ msgid ""
 "according to the natural width of the widest cell in the column."
 msgstr ""
 
-#: gnu/packages/tex.scm:3284
+#: gnu/packages/tex.scm:4598
 msgid "Tables with captions and notes all the same width"
 msgstr ""
 
-#: gnu/packages/tex.scm:3286
+#: gnu/packages/tex.scm:4600
 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"
@@ -16282,11 +18415,11 @@ msgid ""
 "environment."
 msgstr ""
 
-#: gnu/packages/tex.scm:3407
+#: gnu/packages/tex.scm:4721
 msgid "Times-like fonts in support of mathematics"
 msgstr ""
 
-#: gnu/packages/tex.scm:3409
+#: gnu/packages/tex.scm:4723
 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"
@@ -16302,11 +18435,26 @@ msgid ""
 "TeX metrics (VF and TFM files) and macros for use with LaTeX."
 msgstr ""
 
-#: gnu/packages/tex.scm:3450
+#: gnu/packages/tex.scm:4770
+msgid "Sans-serif typeface for TeX"
+msgstr ""
+
+#: gnu/packages/tex.scm:4771
+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:4807
 msgid "Select alternative section titles"
 msgstr ""
 
-#: gnu/packages/tex.scm:3452
+#: gnu/packages/tex.scm:4809
 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"
@@ -16315,11 +18463,11 @@ msgid ""
 "floats in a page.  You may assign headers/footers to individual floats, too."
 msgstr ""
 
-#: gnu/packages/tex.scm:3473
+#: gnu/packages/tex.scm:4830
 msgid "Arbitrary size font selection in LaTeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:3475
+#: gnu/packages/tex.scm:4832
 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"
@@ -16328,17 +18476,17 @@ msgid ""
 "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 scaleable versions of the fonts.  Note that the LaTeX distribution\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:3501
+#: gnu/packages/tex.scm:4859
 msgid "Cyrillic fonts that support LaTeX standard encodings"
 msgstr ""
 
-#: gnu/packages/tex.scm:3503
+#: gnu/packages/tex.scm:4861
 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"
@@ -16351,44 +18499,43 @@ msgid ""
 "OT2 encoded fonts, CM bright shaped fonts and Concrete shaped fonts."
 msgstr ""
 
-#: gnu/packages/tex.scm:3540
+#: gnu/packages/tex.scm:4899
 msgid "Create scalable illustrations"
 msgstr "Crea ilustraciones escalables"
 
-#: gnu/packages/tex.scm:3542
+#: gnu/packages/tex.scm:4901
 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:3561
+#: gnu/packages/tex.scm:4920
 msgid "Class for typesetting publications of ACM"
 msgstr ""
 
-#: gnu/packages/tex.scm:3563
+#: gnu/packages/tex.scm:4922
 msgid ""
 "This package provides a class for typesetting publications of the\n"
 "Association for Computing Machinery (ACM)."
 msgstr ""
 
-#: gnu/packages/tex.scm:3594
-#, fuzzy
+#: gnu/packages/tex.scm:4953
 msgid "Variable-width minipage"
-msgstr "A_nchura:"
+msgstr "Minipaginado de anchura variable"
 
-#: gnu/packages/tex.scm:3596
+#: gnu/packages/tex.scm:4955
 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:3614
+#: gnu/packages/tex.scm:4974
 msgid "LaTeX support file to use the WASY2 fonts"
 msgstr ""
 
-#: gnu/packages/tex.scm:3616
+#: gnu/packages/tex.scm:4976
 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"
@@ -16396,22 +18543,22 @@ msgid ""
 "to use interface for these symbols."
 msgstr ""
 
-#: gnu/packages/tex.scm:3649
+#: gnu/packages/tex.scm:5009
 msgid "Produces figures which text can flow around"
 msgstr ""
 
-#: gnu/packages/tex.scm:3651
+#: gnu/packages/tex.scm:5011
 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:3683
+#: gnu/packages/tex.scm:5043
 msgid "Extended UTF-8 input encoding support for LaTeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:3685
+#: gnu/packages/tex.scm:5045
 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"
@@ -16424,11 +18571,11 @@ msgid ""
 "package of that name now exists."
 msgstr ""
 
-#: gnu/packages/tex.scm:3717
+#: gnu/packages/tex.scm:5077
 msgid "Extract bits of a LaTeX source for output"
-msgstr ""
+msgstr "Extrae varios bit de una fuente LaTeX para salida"
 
-#: gnu/packages/tex.scm:3719
+#: gnu/packages/tex.scm:5079
 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"
@@ -16439,11 +18586,11 @@ msgid ""
 "files."
 msgstr ""
 
-#: gnu/packages/tex.scm:3742
+#: gnu/packages/tex.scm:5102
 msgid "Expand acronyms at least once"
 msgstr ""
 
-#: gnu/packages/tex.scm:3744
+#: gnu/packages/tex.scm:5104
 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"
@@ -16452,17 +18599,17 @@ msgid ""
 "e-TeX."
 msgstr ""
 
-#: gnu/packages/tex.scm:3777
+#: gnu/packages/tex.scm:5155
 msgid "TeX extension for direct creation of PDF"
 msgstr ""
 
-#: gnu/packages/tex.scm:3779
+#: gnu/packages/tex.scm:5157
 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:3846
+#: gnu/packages/tex.scm:5229
 msgid ""
 "TeX Live provides a comprehensive TeX document production system.\n"
 "It includes all the major TeX-related programs, macro packages, and fonts\n"
@@ -16472,7 +18619,7 @@ msgid ""
 "This package contains the complete tree of texmf-dist data."
 msgstr ""
 
-#: gnu/packages/tex.scm:3908
+#: gnu/packages/tex.scm:5292
 msgid ""
 "TeX Live provides a comprehensive TeX document production system.\n"
 "It includes all the major TeX-related programs, macro packages, and fonts\n"
@@ -16482,11 +18629,11 @@ msgid ""
 "This package contains the complete TeX Live distribution."
 msgstr ""
 
-#: gnu/packages/tex.scm:3951
+#: gnu/packages/tex.scm:5335
 msgid "Interface to read and parse BibTeX files"
-msgstr ""
+msgstr "Interfaz para leer e interpretar ficheros BibTeX"
 
-#: gnu/packages/tex.scm:3952
+#: gnu/packages/tex.scm:5336
 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"
@@ -16495,21 +18642,21 @@ msgid ""
 "values (strings, macros, or numbers) pasted together."
 msgstr ""
 
-#: gnu/packages/tex.scm:4034
+#: gnu/packages/tex.scm:5422
 msgid "Backend for the BibLaTeX citation management tool"
-msgstr ""
+msgstr "Backend para herramienta de gestión de citados BiblaTeX"
 
-#: gnu/packages/tex.scm:4035
+#: gnu/packages/tex.scm:5423
 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:4059
+#: gnu/packages/tex.scm:5447
 msgid "Wrapper for LaTeX and friends"
 msgstr "Recubridor para LaTeX y similares"
 
-#: gnu/packages/tex.scm:4061
+#: gnu/packages/tex.scm:5449
 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"
@@ -16519,32 +18666,345 @@ msgid ""
 "PDF documents."
 msgstr ""
 
-#: gnu/packages/tex.scm:4103
+#: gnu/packages/tex.scm:5491
 msgid "LaTeX editor"
 msgstr "Editor LaTeX"
 
-#: gnu/packages/tex.scm:4104
+#: gnu/packages/tex.scm:5492
 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:4143
+#: gnu/packages/tex.scm:5533
 msgid "Book on TeX, plain TeX and Eplain"
-msgstr ""
+msgstr "Libro en TeX, TeX simple y Eplain"
 
-#: gnu/packages/tex.scm:4144
+#: gnu/packages/tex.scm:5534
 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/texinfo.scm:56
+#: gnu/packages/tex.scm:5630
+#, fuzzy
+#| msgid "Document layout system"
+msgid "Document preparation system with GUI"
+msgstr "Sistema de diseño documental"
+
+#: gnu/packages/tex.scm:5631
+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:5665
+msgid "Multimedia inclusion package with Adobe Reader-9/X compatibility"
+msgstr ""
+
+#: gnu/packages/tex.scm:5667
+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:5705
+msgid "Provide OCG (Optional Content Groups) support within a PDF document"
+msgstr ""
+
+#: gnu/packages/tex.scm:5707
+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:5739
+msgid "Various LATEX packages by Martin Schröder"
+msgstr ""
+
+#: gnu/packages/tex.scm:5741
+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:5771
+msgid "Insert pagebreak if not enough space"
+msgstr ""
+
+#: gnu/packages/tex.scm:5773
+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
+msgid "Margin adjustment and detection of odd/even pages"
+msgstr ""
+
+#: gnu/packages/tex.scm:5798
+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:5832
+msgid "UK format dates, with weekday"
+msgstr ""
+
+#: gnu/packages/tex.scm:5834
+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:5868
+msgid "Underline text in TeX"
+msgstr ""
+
+#: gnu/packages/tex.scm:5870
+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:5924
+msgid "Create PostScript and PDF graphics in TeX"
+msgstr ""
+
+#: gnu/packages/tex.scm:5926
+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:5971
+msgid "Bundle of versatile classes and packages"
+msgstr ""
+
+#: gnu/packages/tex.scm:5973
+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:6023
+msgid "Grab items in lists using user-specified separation character"
+msgstr ""
+
+#: gnu/packages/tex.scm:6025
+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
+msgid "Read, store and recall array-formatted data"
+msgstr ""
+
+#: gnu/packages/tex.scm:6061
+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:6096
+#, fuzzy
+#| msgid "Sophisticated verbatim text"
+msgid "Deposit verbatim text in a box"
+msgstr "Texto verborreo sofisticado"
+
+#: gnu/packages/tex.scm:6098
+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:6133
+msgid "Verbatim phrases and listings in LaTeX"
+msgstr ""
+
+#: gnu/packages/tex.scm:6135
+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:6175
+msgid "Flexible diagramming macros for TeX"
+msgstr ""
+
+#: gnu/packages/tex.scm:6177
+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)."
+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
+msgid "Process bibliographies for LaTeX"
+msgstr ""
+
+#: gnu/packages/tex.scm:6291
+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:6359
+msgid "Charter fonts for TeX"
+msgstr ""
+
+#: gnu/packages/tex.scm:6360
+msgid ""
+"A commercial text font donated for the common good.  Support\n"
+"for use with LaTeX is available in @code{freenfss}, part of\n"
+"@command{psnfss}. "
+msgstr ""
+
+#: gnu/packages/tex.scm:6393
+msgid "Full featured, parameter driven macro package for TeX"
+msgstr ""
+
+#: gnu/packages/tex.scm:6394
+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
+msgid "LaTeX class for producing presentations and slides"
+msgstr ""
+
+#: gnu/packages/tex.scm:6451
+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:6478
+msgid "Include eXtensible Metadata Platform data in pdfLaTeX"
+msgstr ""
+
+#: gnu/packages/tex.scm:6480
+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:6532
+msgid "PDF/X and PDF/A support for pdfTeX, LuaTeX and XeTeX"
+msgstr ""
+
+#: gnu/packages/tex.scm:6534
+msgid ""
+"This package helps LaTeX users to create PDF/X, PFD/A and other\n"
+"standards-compliant PDF documents with pdfTeX, LuaTeX and XeTeX."
+msgstr ""
+
+#: gnu/packages/texinfo.scm:55
 msgid "The GNU documentation format"
 msgstr "El formato de documentación GNU"
 
-#: gnu/packages/texinfo.scm:58
+#: gnu/packages/texinfo.scm:57
 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"
@@ -16554,15 +19014,15 @@ msgid ""
 "is on expressing the content semantically, avoiding physical markup commands."
 msgstr ""
 
-#: gnu/packages/texinfo.scm:139
+#: gnu/packages/texinfo.scm:126
 msgid "Standalone Info documentation reader"
 msgstr ""
 
-#: gnu/packages/texinfo.scm:169
+#: gnu/packages/texinfo.scm:158
 msgid "Convert Texinfo to HTML"
 msgstr "Convierte Texinfo a HTML"
 
-#: gnu/packages/texinfo.scm:171
+#: gnu/packages/texinfo.scm:160
 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"
@@ -16577,21 +19037,23 @@ msgid ""
 "Texi2HTML."
 msgstr ""
 
-#: gnu/packages/textutils.scm:76
+#: gnu/packages/textutils.scm:82
 msgid "DOS/Mac to Unix and vice versa text file format converter"
-msgstr ""
+msgstr "Conversor de ficheros de texto de formato DOS/Mac a Unix y viceversa"
 
-#: gnu/packages/textutils.scm:78
+#: gnu/packages/textutils.scm:84
 msgid ""
 "dos2unix is a tool to convert line breaks in a text file from Unix format\n"
 "to DOS format and vice versa."
 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:111
+#: gnu/packages/textutils.scm:109
 msgid "Text encoding converter"
 msgstr "Texto codificando conversor"
 
-#: gnu/packages/textutils.scm:112
+#: gnu/packages/textutils.scm:110
 msgid ""
 "The Recode library converts files between character sets and\n"
 "usages.  It recognises or produces over 200 different character sets (or about\n"
@@ -16601,61 +19063,74 @@ msgid ""
 "handy front-end to the library."
 msgstr ""
 
-#: gnu/packages/textutils.scm:140
+#: gnu/packages/textutils.scm:134
 msgid "Text encoding detection tool"
-msgstr ""
+msgstr "Herramienta de detección de codificación del texto"
 
-#: gnu/packages/textutils.scm:141
+#: gnu/packages/textutils.scm:135
 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:191
+#: gnu/packages/textutils.scm:185
 msgid "C library for processing UTF-8 Unicode data"
 msgstr ""
 
-#: gnu/packages/textutils.scm:192
+#: gnu/packages/textutils.scm:186
 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:220
+#: gnu/packages/textutils.scm:205 gnu/packages/textutils.scm:616
+msgid "Configuration file parser library"
+msgstr "Biblioteca interpreta fichero de configuración"
+
+#: gnu/packages/textutils.scm:206
+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:236
 msgid "Gordon's text utils library"
 msgstr "Biblioteca de utilidades textuales de Gordon"
 
-#: gnu/packages/textutils.scm:222
+#: gnu/packages/textutils.scm:238
 msgid ""
 "libgtextutils is a text utilities library used by the fastx toolkit from\n"
 "the Hannon Lab."
 msgstr ""
 
-#: gnu/packages/textutils.scm:254
+#: gnu/packages/textutils.scm:270
 msgid "C++ hash functions for strings"
 msgstr ""
 
-#: gnu/packages/textutils.scm:256
+#: gnu/packages/textutils.scm:272
 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:294
+#: gnu/packages/textutils.scm:310
 msgid "String library with very low memory overhead"
 msgstr ""
 
-#: gnu/packages/textutils.scm:296
+#: gnu/packages/textutils.scm:312
 msgid "Ustr is a string library for C with very low memory overhead."
 msgstr ""
 
-#: gnu/packages/textutils.scm:317
+#: gnu/packages/textutils.scm:333
 msgid "C/C++ configuration file library"
 msgstr "Biblioteca de fichero de configuración C/C++"
 
-#: gnu/packages/textutils.scm:319
+#: gnu/packages/textutils.scm:335
 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"
@@ -16663,11 +19138,11 @@ msgid ""
 "application code."
 msgstr ""
 
-#: gnu/packages/textutils.scm:339
+#: gnu/packages/textutils.scm:355
 msgid "Probabilistic fast file fingerprinting tool"
 msgstr ""
 
-#: gnu/packages/textutils.scm:341
+#: gnu/packages/textutils.scm:357
 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"
@@ -16676,22 +19151,22 @@ msgid ""
 "as existing hashing techniques, with provably negligible risk of collisions."
 msgstr ""
 
-#: gnu/packages/textutils.scm:362
+#: gnu/packages/textutils.scm:378
 msgid "Regular expression library"
 msgstr "Biblioteca de expresión regular"
 
-#: gnu/packages/textutils.scm:363
+#: gnu/packages/textutils.scm:379
 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:396
+#: gnu/packages/textutils.scm:433
 msgid "Microsoft Word document reader"
 msgstr "Lector de documento Word Microsoft"
 
-#: gnu/packages/textutils.scm:397
+#: gnu/packages/textutils.scm:434
 msgid ""
 "Antiword is an application for displaying Microsoft Word\n"
 "documents.  It can also convert the document to PostScript or XML.  Only\n"
@@ -16701,11 +19176,11 @@ msgid ""
 "runs Word\"."
 msgstr ""
 
-#: gnu/packages/textutils.scm:430
+#: gnu/packages/textutils.scm:467
 msgid "MS-Word to TeX or plain text converter"
-msgstr ""
+msgstr "Conversor de MS-Word a TeX o texto simple"
 
-#: gnu/packages/textutils.scm:431
+#: gnu/packages/textutils.scm:468
 msgid ""
 "@command{catdoc} extracts text from MS-Word files, trying to\n"
 "preserve as many special printable characters as possible.  It supports\n"
@@ -16721,21 +19196,21 @@ msgid ""
 "@command{catppt}, which extracts data from PowerPoint presentations."
 msgstr ""
 
-#: gnu/packages/textutils.scm:479
+#: gnu/packages/textutils.scm:509
 msgid "Portable C++ library for handling UTF-8"
 msgstr ""
 
-#: gnu/packages/textutils.scm:480
+#: gnu/packages/textutils.scm:510
 msgid ""
 "UTF8-CPP is a C++ library for handling UTF-8 encoded text\n"
 "in a portable way."
 msgstr ""
 
-#: gnu/packages/textutils.scm:546
+#: gnu/packages/textutils.scm:578
 msgid "Bayesian text and email classifier"
-msgstr ""
+msgstr "Texto baesiano y clasificador de correo-e"
 
-#: gnu/packages/textutils.scm:548
+#: gnu/packages/textutils.scm:580
 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"
@@ -16743,19 +19218,15 @@ msgid ""
 "categories."
 msgstr ""
 
-#: gnu/packages/textutils.scm:590
-msgid "Configuration file parser library"
-msgstr "Biblioteca interpreta fichero de configuración"
-
-#: gnu/packages/textutils.scm:592
+#: gnu/packages/textutils.scm:618
 msgid "C library for creating and parsing configuration files."
-msgstr ""
+msgstr "Biblioteca C para crear e interpretar ficheros de configuración."
 
-#: gnu/packages/textutils.scm:620
+#: gnu/packages/textutils.scm:646
 msgid "Syntax highlighting text component for Java Swing"
 msgstr ""
 
-#: gnu/packages/textutils.scm:621
+#: gnu/packages/textutils.scm:647
 msgid ""
 "RSyntaxTextArea is a syntax highlighting, code folding text\n"
 "component for Java Swing.  It extends @code{JTextComponent} so it integrates\n"
@@ -16764,53 +19235,111 @@ msgid ""
 "source code."
 msgstr ""
 
-#: gnu/packages/textutils.scm:658
+#: gnu/packages/textutils.scm:685
 msgid "Fast implementation of the edit distance (Levenshtein distance)"
 msgstr ""
 
-#: gnu/packages/textutils.scm:660
+#: gnu/packages/textutils.scm:687
 msgid ""
 "This library simply implements Levenshtein distance algorithm with C++\n"
 "and Cython."
 msgstr ""
 
-#: gnu/packages/version-control.scm:121
+#: gnu/packages/textutils.scm:707
+msgid "@code{runewidth} provides Go functions to work with string widths"
+msgstr ""
+
+#: gnu/packages/textutils.scm:709
+msgid ""
+"The @code{runewidth} library provides Go functions for padding,\n"
+"measuring and checking the width of strings, with support east asian text."
+msgstr ""
+
+#: gnu/packages/textutils.scm:760
+msgid "Recover text from @file{.docx} files, with good formatting"
+msgstr ""
+
+#: gnu/packages/textutils.scm:762
+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:814
+msgid "Convert between Traditional Chinese and Simplified Chinese"
+msgstr ""
+
+#: gnu/packages/textutils.scm:815
+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:849
+#, fuzzy
+#| msgid "Network traffic analyzer"
+msgid "Network Kanji Filter"
+msgstr "Análisis del tráfico de red"
+
+#: gnu/packages/textutils.scm:850
+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
 msgid "Version control system supporting both distributed and centralized workflows"
 msgstr ""
 
-#: gnu/packages/version-control.scm:123
+#: gnu/packages/version-control.scm:137
 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:354
+#: gnu/packages/version-control.scm:451
 msgid "Distributed version control system"
 msgstr "Sistema de control de versión distribuída"
 
-#: gnu/packages/version-control.scm:356
+#: gnu/packages/version-control.scm:453
 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:402
+#: gnu/packages/version-control.scm:575
 msgid "Library providing Git core methods"
 msgstr ""
 
-#: gnu/packages/version-control.scm:404
+#: gnu/packages/version-control.scm:577
 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:440
+#: gnu/packages/version-control.scm:614
 msgid "Transparent encryption of files in a git repository"
 msgstr ""
 
-#: gnu/packages/version-control.scm:441
+#: gnu/packages/version-control.scm:615
 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"
@@ -16822,12 +19351,11 @@ msgid ""
 "to lock down your entire repository."
 msgstr ""
 
-#: gnu/packages/version-control.scm:476
-#, fuzzy
+#: gnu/packages/version-control.scm:650
 msgid "Whole remote repository encryption"
-msgstr "Listado referencial dentro de un repositorio remoto."
+msgstr "Cifrado de repositorio remoto completo"
 
-#: gnu/packages/version-control.scm:477
+#: gnu/packages/version-control.scm:651
 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"
@@ -16846,31 +19374,58 @@ msgid ""
 "collaboration using typical untrusted file hosts or services."
 msgstr ""
 
-#: gnu/packages/version-control.scm:556
+#: gnu/packages/version-control.scm:770
 msgid "Web frontend for git repositories"
 msgstr "Web frontal para repositorios git"
 
-#: gnu/packages/version-control.scm:558
+#: gnu/packages/version-control.scm:772
 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:587
+#: gnu/packages/version-control.scm:800
 msgid "Copy directory to the gh-pages branch"
 msgstr ""
 
-#: gnu/packages/version-control.scm:588
+#: gnu/packages/version-control.scm:801
 msgid ""
 "Script that copies a directory to the gh-pages branch (by\n"
 "default) of the repository."
 msgstr ""
 
-#: gnu/packages/version-control.scm:633
+#: gnu/packages/version-control.scm:859
+msgid "Python implementation of the Git object database"
+msgstr ""
+
+#: gnu/packages/version-control.scm:861
+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:900
+msgid "Python library for interacting with Git repositories"
+msgstr ""
+
+#: gnu/packages/version-control.scm:902
+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:941
 msgid "Command-line flags library for shell scripts"
 msgstr ""
 
-#: gnu/packages/version-control.scm:635
+#: gnu/packages/version-control.scm:943
 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"
@@ -16881,11 +19436,11 @@ msgid ""
 "will work."
 msgstr ""
 
-#: gnu/packages/version-control.scm:678
+#: gnu/packages/version-control.scm:987
 msgid "Git extensions for Vincent Driessen's branching model"
 msgstr ""
 
-#: gnu/packages/version-control.scm:680
+#: gnu/packages/version-control.scm:989
 msgid ""
 "Vincent Driessen's branching model is a git branching and release\n"
 "management strategy that helps developers keep track of features, hotfixes,\n"
@@ -16894,11 +19449,11 @@ msgid ""
 "lot easier."
 msgstr ""
 
-#: gnu/packages/version-control.scm:713
+#: gnu/packages/version-control.scm:1023
 msgid "Stacked Git"
 msgstr "Apilados Git"
 
-#: gnu/packages/version-control.scm:715
+#: gnu/packages/version-control.scm:1025
 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"
@@ -16907,11 +19462,11 @@ msgid ""
 "manipulate them in various ways."
 msgstr ""
 
-#: gnu/packages/version-control.scm:751
+#: gnu/packages/version-control.scm:1062
 msgid "Version control system for @code{$HOME}"
-msgstr ""
+msgstr "Sistema de control de versión para @code{$HOME}"
 
-#: gnu/packages/version-control.scm:753
+#: gnu/packages/version-control.scm:1064
 msgid ""
 "vcsh version-controls configuration files in several Git repositories,\n"
 "all in one single directory.  They all maintain their working trees without\n"
@@ -16920,43 +19475,43 @@ msgid ""
 "though this can be overridden."
 msgstr ""
 
-#: gnu/packages/version-control.scm:788
+#: gnu/packages/version-control.scm:1100
 msgid "Run a command over a sequence of commits"
-msgstr ""
+msgstr "Ejecuta una orden sobre una secuencia de revisiones"
 
-#: gnu/packages/version-control.scm:790
+#: gnu/packages/version-control.scm:1102
 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:851
+#: gnu/packages/version-control.scm:1215
 msgid "Git access control layer"
 msgstr "Placa de control de acceso Git"
 
-#: gnu/packages/version-control.scm:853
+#: gnu/packages/version-control.scm:1217
 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:877
+#: gnu/packages/version-control.scm:1241
 msgid "Decentralized version control system"
 msgstr "Sistema de control de versión descentralizado"
 
-#: gnu/packages/version-control.scm:879
+#: gnu/packages/version-control.scm:1243
 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:913
+#: gnu/packages/version-control.scm:1277
 msgid "HTTP and WebDAV client library"
-msgstr ""
+msgstr "Biblioteca de cliente HTTP y WebDAV"
 
-#: gnu/packages/version-control.scm:915
+#: gnu/packages/version-control.scm:1279
 msgid ""
 "Neon is an HTTP and WebDAV client library, with a C interface and the\n"
 "following features:\n"
@@ -16978,24 +19533,24 @@ msgid ""
 "@end enumerate\n"
 msgstr ""
 
-#: gnu/packages/version-control.scm:999
+#: gnu/packages/version-control.scm:1368
 msgid "Revision control system"
-msgstr "Sistema de control de revisión"
+msgstr "Sistema de control de revisiones"
 
-#: gnu/packages/version-control.scm:1001
+#: gnu/packages/version-control.scm:1370
 msgid ""
-"Subversion exists to be universally recognized and adopted as a\n"
+"@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:1023
+#: gnu/packages/version-control.scm:1392
 msgid "Per-file local revision control system"
-msgstr ""
+msgstr "Sistema de control local de revisiones por fichero"
 
-#: gnu/packages/version-control.scm:1025
+#: gnu/packages/version-control.scm:1394
 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"
@@ -17004,11 +19559,11 @@ msgid ""
 "machine."
 msgstr ""
 
-#: gnu/packages/version-control.scm:1053
+#: gnu/packages/version-control.scm:1422
 msgid "Historical centralized version control system"
-msgstr ""
+msgstr "Sistema histórico de control de versiones centralizado"
 
-#: gnu/packages/version-control.scm:1055
+#: gnu/packages/version-control.scm:1424
 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"
@@ -17016,11 +19571,11 @@ msgid ""
 "RCS, PRCS, and Aegis packages."
 msgstr ""
 
-#: gnu/packages/version-control.scm:1096
+#: gnu/packages/version-control.scm:1462
 msgid "Export an RCS or CVS history as a fast-import stream"
 msgstr ""
 
-#: gnu/packages/version-control.scm:1097
+#: gnu/packages/version-control.scm:1463
 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"
@@ -17033,11 +19588,11 @@ msgid ""
 "masters from remote CVS hosts."
 msgstr ""
 
-#: gnu/packages/version-control.scm:1124
+#: gnu/packages/version-control.scm:1490
 msgid "Version-control-agnostic ChangeLog diff and commit tool"
 msgstr ""
 
-#: gnu/packages/version-control.scm:1126
+#: gnu/packages/version-control.scm:1492
 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"
@@ -17047,33 +19602,33 @@ msgid ""
 "standards-compliant ChangeLog entries based on the changes that it detects."
 msgstr ""
 
-#: gnu/packages/version-control.scm:1151
+#: gnu/packages/version-control.scm:1517
 msgid "Make histograms from the output of @command{diff}"
-msgstr ""
+msgstr "Genera histogramas de la salida de @command{diff}"
 
-#: gnu/packages/version-control.scm:1153
+#: gnu/packages/version-control.scm:1519
 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:1192
+#: gnu/packages/version-control.scm:1558
 msgid "File-based version control like SCCS"
-msgstr ""
+msgstr "Control de versión basado en ficheros como SCCS"
 
-#: gnu/packages/version-control.scm:1193
+#: gnu/packages/version-control.scm:1559
 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:1272
+#: gnu/packages/version-control.scm:1647
 msgid "Project change supervisor"
-msgstr "Supervisor de modificación de proyecto"
+msgstr "Supervisor de cambios en el proyecto"
 
-#: gnu/packages/version-control.scm:1273
+#: gnu/packages/version-control.scm:1648
 msgid ""
 "Aegis is a project change supervisor, and performs some of\n"
 "the Software Configuration Management needed in a CASE environment.  Aegis\n"
@@ -17083,12 +19638,21 @@ msgid ""
 "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:1322
+"Aegis es un supervisor de cambios en el proyecto, y realiza parte de\n"
+"la gestión de configuración del software necesaria para un entorno\n"
+"CASE. Aegis proporciona un marco de trabajo dentro del que un equipo\n"
+"de desarrolladoras puede trabajar en muchos cambios en un programa de\n"
+"manera independiente, y Aegis coordina la integración de dichos\n"
+"cambios de vuelta a las fuentes principales del programa, con la menor\n"
+"disrupción posible. La resolución de contención por ficheros de\n"
+"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
 msgid "Edit version-control repository history"
 msgstr ""
 
-#: gnu/packages/version-control.scm:1323
+#: gnu/packages/version-control.scm:1723
 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"
@@ -17099,32 +19663,32 @@ msgid ""
 "from Subversion to any supported Distributed Version Control System (DVCS)."
 msgstr ""
 
-#: gnu/packages/version-control.scm:1362
+#: gnu/packages/version-control.scm:1762
 msgid "Ncurses-based text user interface for Git"
 msgstr ""
 
-#: gnu/packages/version-control.scm:1364
+#: gnu/packages/version-control.scm:1764
 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 'git' command."
+"output of the @code{git} command."
 msgstr ""
 
-#: gnu/packages/version-control.scm:1390
+#: gnu/packages/version-control.scm:1786
 msgid "Print the modification time of the latest file"
-msgstr ""
+msgstr "Escribe las horas de modificación del último fichero"
 
-#: gnu/packages/version-control.scm:1392
+#: gnu/packages/version-control.scm:1788
 msgid ""
 "Recursively find the newest file in a file tree and print its\n"
 "modification time."
 msgstr ""
 
-#: gnu/packages/version-control.scm:1417
+#: gnu/packages/version-control.scm:1833
 msgid "Multiple repository management tool"
 msgstr "Herramienta gestora de múltiples repositorios"
 
-#: gnu/packages/version-control.scm:1419
+#: gnu/packages/version-control.scm:1835
 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"
@@ -17132,74 +19696,111 @@ msgid ""
 "Mercurial, Bazaar, Darcs, CVS, Fossil, and Veracity."
 msgstr ""
 
-#: gnu/packages/version-control.scm:1449
+#: gnu/packages/version-control.scm:1865
 msgid "Use hubic as a git-annex remote"
 msgstr ""
 
-#: gnu/packages/version-control.scm:1451
+#: gnu/packages/version-control.scm:1867
 msgid ""
 "This package allows you to use your hubic account as a \"special\n"
 "repository\" with git-annex."
 msgstr ""
 
-#: gnu/packages/version-control.scm:1503
+#: gnu/packages/version-control.scm:1929
 msgid "Software configuration management system"
 msgstr "Sistema de gestión de configuración de software"
 
-#: gnu/packages/version-control.scm:1505
+#: gnu/packages/version-control.scm:1931
 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:1533
+#: gnu/packages/version-control.scm:1959
 msgid "Static git page generator"
 msgstr ""
 
-#: gnu/packages/version-control.scm:1534
+#: gnu/packages/version-control.scm:1960
 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:1622
-msgid "Distributed Revision Control System"
-msgstr "Sistema de Control de Revisión Distribuido"
+#: gnu/packages/version-control.scm:1995
+msgid "3D visualisation tool for source control repositories"
+msgstr ""
 
-#: gnu/packages/version-control.scm:1624
+#: gnu/packages/version-control.scm:1996
 msgid ""
-"Darcs is a revision control system.  It is:\n"
-"\n"
-"@enumerate\n"
-"@item Distributed: Every user has access to the full command set, removing boundaries\n"
-"between server and client or committer and non-committers.\n"
-"@item Interactive: Darcs is easy to learn and efficient to use because it asks you\n"
-"questions in response to simple commands, giving you choices in your work flow.\n"
-"You can choose to record one change in a file, while ignoring another.  As you update\n"
-"from upstream, you can review each patch name, even the full diff for interesting\n"
-"patches.\n"
-"@item Smart: Originally developed by physicist David Roundy, darcs is based on a\n"
-"unique algebra of patches called @url{http://darcs.net/Theory,Patchtheory}.\n"
-"@end enumerate"
+"@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:1676
-msgid "Java library implementing the Git version control system"
+#: gnu/packages/version-control.scm:2042
+#, fuzzy
+#| msgid "Simple terminal control"
+msgid "Simple revision control"
+msgstr "Terminal controladora única"
+
+#: gnu/packages/version-control.scm:2045
+#, 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:2097
+msgid "Determine when a commit was merged into a Git branch"
+msgstr ""
+
+#: gnu/packages/version-control.scm:2098
+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:2142
+#, fuzzy
+#| msgid "Incremental journaling archiver"
+msgid "Incremental merge for Git"
+msgstr "Archivador diario incremental"
+
+#: gnu/packages/version-control.scm:2143
+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:1677
+#: gnu/packages/version-control.scm:2167
+#, 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
 msgid ""
-"JGit is a lightweight, pure Java library implementing the\n"
-"Git version control system, providing repository access routines, support for\n"
-"network protocols, and core version control algorithms."
+"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:177
+#: gnu/packages/virtualization.scm:227
 msgid "Machine emulator and virtualizer"
 msgstr "Máquina emuladora y virtualizadora"
 
-#: gnu/packages/virtualization.scm:179
+#: gnu/packages/virtualization.scm:229
 msgid ""
 "QEMU is a generic machine emulator and virtualizer.\n"
 "\n"
@@ -17214,16 +19815,16 @@ msgid ""
 "server and embedded PowerPC, and S390 guests."
 msgstr ""
 
-#: gnu/packages/virtualization.scm:201
+#: gnu/packages/virtualization.scm:251
+#, fuzzy
 msgid "Machine emulator and virtualizer (without GUI)"
-msgstr ""
+msgstr "Máquina emuladora y virtualizadora"
 
-#: gnu/packages/virtualization.scm:268
-#, fuzzy
+#: gnu/packages/virtualization.scm:343
 msgid "Operating system information database"
-msgstr "inicializando sistema operativo bajo '~a'...~%"
+msgstr "BD de información del sistema operativo"
 
-#: gnu/packages/virtualization.scm:269
+#: gnu/packages/virtualization.scm:344
 msgid ""
 "libosinfo is a GObject based library API for managing\n"
 "information about operating systems, hypervisors and the (virtual) hardware\n"
@@ -17233,22 +19834,22 @@ msgid ""
 "all common programming languages.  Vala bindings are also provided."
 msgstr ""
 
-#: gnu/packages/virtualization.scm:317
+#: gnu/packages/virtualization.scm:393
 msgid "Linux container tools"
 msgstr "Herramientas contenedoras Linux"
 
-#: gnu/packages/virtualization.scm:320
+#: gnu/packages/virtualization.scm:396
 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:404
+#: gnu/packages/virtualization.scm:481
 msgid "Simple API for virtualization"
 msgstr "API simple para virtualización"
 
-#: gnu/packages/virtualization.scm:405
+#: gnu/packages/virtualization.scm:482
 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"
@@ -17256,11 +19857,11 @@ msgid ""
 "to integrate other virtualization mechanisms if needed."
 msgstr ""
 
-#: gnu/packages/virtualization.scm:446
+#: gnu/packages/virtualization.scm:523
 msgid "GLib wrapper around libvirt"
 msgstr ""
 
-#: gnu/packages/virtualization.scm:447
+#: gnu/packages/virtualization.scm:524
 msgid ""
 "libvirt-glib wraps the libvirt library to provide a\n"
 "high-level object-oriented API better suited for glib-based applications, via\n"
@@ -17273,21 +19874,21 @@ msgid ""
 "@end enumerate\n"
 msgstr ""
 
-#: gnu/packages/virtualization.scm:489
+#: gnu/packages/virtualization.scm:566
 msgid "Python bindings to libvirt"
 msgstr "Enlazando Python para libvirt"
 
-#: gnu/packages/virtualization.scm:490
+#: gnu/packages/virtualization.scm:567
 msgid ""
 "This package provides Python bindings to the libvirt\n"
 "virtualization library."
 msgstr ""
 
-#: gnu/packages/virtualization.scm:585
+#: gnu/packages/virtualization.scm:661
 msgid "Manage virtual machines"
 msgstr "Gestionar máquinas virtuales"
 
-#: gnu/packages/virtualization.scm:587
+#: gnu/packages/virtualization.scm:663
 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"
@@ -17295,11 +19896,11 @@ msgid ""
 "domains, their live performance and resource utilization statistics."
 msgstr ""
 
-#: gnu/packages/virtualization.scm:677
+#: gnu/packages/virtualization.scm:769
 msgid "Checkpoint and restore in user space"
-msgstr ""
+msgstr "Comprobador y restauración dentro del espacio de usuario"
 
-#: gnu/packages/virtualization.scm:678
+#: gnu/packages/virtualization.scm:770
 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"
@@ -17308,22 +19909,145 @@ msgid ""
 "mainly implemented in user space."
 msgstr ""
 
-#: gnu/packages/webkit.scm:134
+#: gnu/packages/virtualization.scm:795
+msgid "Backup and restore QEMU machines"
+msgstr ""
+
+#: gnu/packages/virtualization.scm:796
+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
+msgid "KVM Frame Relay (KVMFR) implementation"
+msgstr ""
+
+#: gnu/packages/virtualization.scm:844
+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:904
+msgid "Open container initiative runtime"
+msgstr ""
+
+#: gnu/packages/virtualization.scm:907
+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:953
+msgid "Tool for modifying Open Container images"
+msgstr ""
+
+#: gnu/packages/virtualization.scm:955
+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
+msgid "Interact with container images and container image registries"
+msgstr ""
+
+#: gnu/packages/virtualization.scm:1003
+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:1037
+#, fuzzy
+#| msgid "Python bindings for cairo"
+msgid "Python bindings for Vagrant"
+msgstr "Enlace Python para cairo"
+
+#: gnu/packages/virtualization.scm:1039
+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
+msgid "Unprivileged sandboxing tool"
+msgstr ""
+
+#: gnu/packages/virtualization.scm:1091
+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."
+msgstr ""
+
+#: gnu/packages/virtualization.scm:1117
+msgid "Emulator for x86 PC"
+msgstr ""
+
+#: gnu/packages/virtualization.scm:1119
+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:1322
+#, fuzzy
+#| msgid "Manage virtual machines"
+msgid "Xen Virtual Machine Monitor"
+msgstr "Gestionar máquinas virtuales"
+
+#: gnu/packages/virtualization.scm:1323
+msgid ""
+"This package provides the Xen Virtual Machine Monitor\n"
+"which is a hypervisor."
+msgstr ""
+
+#: gnu/packages/webkit.scm:152
 msgid "Web content engine for GTK+"
 msgstr ""
 
-#: gnu/packages/webkit.scm:136
+#: gnu/packages/webkit.scm:154
 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:136
+#: gnu/packages/web.scm:153
 msgid "Featureful HTTP server"
 msgstr "Característica completa servidor HTTP"
 
-#: gnu/packages/web.scm:138
+#: gnu/packages/web.scm:155
 msgid ""
 "The Apache HTTP Server Project is a collaborative software development\n"
 "effort aimed at creating a robust, commercial-grade, featureful, and\n"
@@ -17333,120 +20057,148 @@ msgid ""
 "and its related documentation."
 msgstr ""
 
-#: gnu/packages/web.scm:226
+#: gnu/packages/web.scm:187
+msgid "Apache HTTPD module for Python WSGI applications"
+msgstr ""
+
+#: gnu/packages/web.scm:189
+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
 msgid "HTTP and reverse proxy server"
 msgstr "HTTP y servidor proxy reverso"
 
-#: gnu/packages/web.scm:228
+#: gnu/packages/web.scm:280
 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 standalone web 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:273
+#: gnu/packages/web.scm:325
 msgid "XSLScript with NGinx specific modifications"
 msgstr ""
 
-#: gnu/packages/web.scm:275
+#: gnu/packages/web.scm:327
 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:328
+#: gnu/packages/web.scm:380
 #, fuzzy
-msgid "Documentation for nginx web server"
-msgstr "Especifica la URL completa del Servidor Web MantisBT."
+#| msgid "Documentation for nginx web server"
+msgid "Documentation for the nginx web server"
+msgstr "Documentación para servidor web nginx"
 
-#: gnu/packages/web.scm:330
+#: gnu/packages/web.scm:382
 msgid "This package provides HTML documentation for the nginx web server."
 msgstr ""
 
-#: gnu/packages/web.scm:353
+#: gnu/packages/web.scm:405
 msgid "Language-independent, high-performant extension to CGI"
 msgstr ""
 
-#: gnu/packages/web.scm:354
+#: gnu/packages/web.scm:406
 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:390
+#: gnu/packages/web.scm:437
 msgid "Simple server for running CGI applications over FastCGI"
 msgstr ""
 
-#: gnu/packages/web.scm:391
+#: gnu/packages/web.scm:438
 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:422
-#, fuzzy
+#: gnu/packages/web.scm:469
 msgid "PSGI/Plack web server"
-msgstr "Especifica la URL completa del Servidor Web MantisBT."
+msgstr "Servicio web PSGI/Plack"
 
-#: gnu/packages/web.scm:423
+#: gnu/packages/web.scm:470
 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:455
-#, fuzzy
+#: gnu/packages/web.scm:502
 msgid "Java Web Start"
-msgstr "escribir conjunto dependiente java(...)"
+msgstr "Inicio de Web Java"
 
-#: gnu/packages/web.scm:457
+#: gnu/packages/web.scm:504
 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:478
+#: gnu/packages/web.scm:527
 msgid "JSON C library"
 msgstr "Biblioteca C JSON"
 
-#: gnu/packages/web.scm:480
+#: gnu/packages/web.scm:529
 msgid ""
 "Jansson is a C library for encoding, decoding and manipulating JSON\n"
 "data."
 msgstr ""
 
-#: gnu/packages/web.scm:512
+#: gnu/packages/web.scm:556
 msgid "JSON implementation in C"
 msgstr "Implementación JSON en C"
 
-#: gnu/packages/web.scm:514
+#: gnu/packages/web.scm:558
 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."
+"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:609
+msgid "JSON parser written in ANSI C"
+msgstr ""
+
+#: gnu/packages/web.scm:610
+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:552
+#: gnu/packages/web.scm:654
 msgid "Library that maps JSON data to QVariant objects"
 msgstr ""
 
-#: gnu/packages/web.scm:553
+#: gnu/packages/web.scm:655
 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:637
+#: gnu/packages/web.scm:739
 msgid "Hierarchical data exploration with zoomable HTML5 pie charts"
 msgstr ""
 
-#: gnu/packages/web.scm:639
+#: gnu/packages/web.scm:741
 msgid ""
 "Krona is a flexible tool for exploring the relative proportions of\n"
 "hierarchical data, such as metagenomic classifications, using a radial,\n"
@@ -17455,42 +20207,42 @@ msgid ""
 "current version of any major web browser."
 msgstr ""
 
-#: gnu/packages/web.scm:672
+#: gnu/packages/web.scm:782
 msgid "JSON parser/generator for C++ with both SAX/DOM style API"
 msgstr ""
 
-#: gnu/packages/web.scm:674
+#: gnu/packages/web.scm:784
 msgid ""
 "RapidJSON is a fast JSON parser/generator for C++ with both SAX/DOM\n"
 "style API."
 msgstr ""
 
-#: gnu/packages/web.scm:692
+#: gnu/packages/web.scm:811
 msgid "C library for parsing JSON"
-msgstr "Biblioteca en C para interpretar JSON"
+msgstr "Biblioteca C para interpretar JSON"
 
-#: gnu/packages/web.scm:694
+#: gnu/packages/web.scm:813
 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:724
+#: gnu/packages/web.scm:843
 msgid "WebSockets library written in C"
 msgstr "Biblioteca WebSockets escrita en C"
 
-#: gnu/packages/web.scm:726
+#: gnu/packages/web.scm:845
 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:754
+#: gnu/packages/web.scm:873
 msgid "C library for the Publix Suffix List"
 msgstr ""
 
-#: gnu/packages/web.scm:756
+#: gnu/packages/web.scm:875
 msgid ""
 "A \"public suffix\" is a domain name under which Internet users can\n"
 "directly register own names.\n"
@@ -17507,22 +20259,36 @@ msgid ""
 "domains (UTF-8 and IDNA2008 Punycode), is thread-safe, and handles IDNA2008\n"
 "UTS#46."
 msgstr ""
-
-#: gnu/packages/web.scm:801
+"Un «sufijo público» es un nombre de dominio bajo el cual usuarios\n"
+"de Internet pueden registrar directamente nombres propios.\n"
+"\n"
+"Examinadores y otras clientes web pueden utilizarlo para evitar\n"
+"pérdidas privadas «supergalletas», evita pérdidas privativas\n"
+"«super dominios» certificados, partes resaltadas de dominios en un\n"
+"interfaz de usuario, y ordenando listas por lugar.\n"
+"\n"
+" Libpsl tiene datos PSL internos para rápido acceso, permitiendo cargar datos\n"
+"PSL desde ficheros, marca si un dominio dado es un sufijo público, proporciona\n"
+"galletas inmediatas de verificación del dominio, encuentra la parte pública más\n"
+"larga de un dominio dado, encuentra la parte privada más corta de un dominio\n"
+"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
 msgid "HTML validator and tidier"
 msgstr "Validador y tipado HTML"
 
-#: gnu/packages/web.scm:802
+#: gnu/packages/web.scm:922
 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:837
+#: gnu/packages/web.scm:954
 msgid "Light-weight HTTP/HTTPS proxy daemon"
 msgstr ""
 
-#: gnu/packages/web.scm:838
+#: gnu/packages/web.scm:955
 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"
@@ -17531,22 +20297,22 @@ msgid ""
 "unavailable."
 msgstr ""
 
-#: gnu/packages/web.scm:871
+#: gnu/packages/web.scm:988
 msgid "Small caching web proxy"
 msgstr ""
 
-#: gnu/packages/web.scm:873
+#: gnu/packages/web.scm:990
 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:900
+#: gnu/packages/web.scm:1018
 msgid "WebSockets support for any application/server"
 msgstr ""
 
-#: gnu/packages/web.scm:901
+#: gnu/packages/web.scm:1019
 msgid ""
 "Websockify translates WebSockets traffic to normal socket\n"
 "traffic.  Websockify accepts the WebSockets handshake, parses it, and then\n"
@@ -17554,11 +20320,11 @@ msgid ""
 "directions."
 msgstr ""
 
-#: gnu/packages/web.scm:927
+#: gnu/packages/web.scm:1045
 msgid "Caching web proxy optimized for intermittent internet links"
 msgstr ""
 
-#: gnu/packages/web.scm:928
+#: gnu/packages/web.scm:1046
 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"
@@ -17567,11 +20333,11 @@ msgid ""
 "changes, and much more."
 msgstr ""
 
-#: gnu/packages/web.scm:953
+#: gnu/packages/web.scm:1071
 msgid "C library implementing the OAuth API"
 msgstr ""
 
-#: gnu/packages/web.scm:955
+#: gnu/packages/web.scm:1073
 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"
@@ -17580,42 +20346,42 @@ msgid ""
 "hash/signatures."
 msgstr ""
 
-#: gnu/packages/web.scm:979
+#: gnu/packages/web.scm:1096
 msgid "YAML 1.1 parser and emitter written in C"
 msgstr ""
 
-#: gnu/packages/web.scm:981
+#: gnu/packages/web.scm:1098
 msgid "LibYAML is a YAML 1.1 parser and emitter written in C."
-msgstr ""
+msgstr "LibYAML es un YAML 1.1 interpretador y emisor escrito en C."
 
-#: gnu/packages/web.scm:998 gnu/packages/web.scm:1032
-#: gnu/packages/web.scm:1055
+#: gnu/packages/web.scm:1115 gnu/packages/web.scm:1149
+#: gnu/packages/web.scm:1172
 msgid "Media stream URL parser"
 msgstr ""
 
-#: gnu/packages/web.scm:999
+#: gnu/packages/web.scm:1116
 msgid ""
 "This package contains support scripts called by libquvi to\n"
 "parse media stream properties."
 msgstr ""
 
-#: gnu/packages/web.scm:1033
+#: gnu/packages/web.scm:1150
 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:1056
+#: gnu/packages/web.scm:1173
 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:1146
+#: gnu/packages/web.scm:1245
 msgid "High-performance asynchronous HTTP client library"
 msgstr ""
 
-#: gnu/packages/web.scm:1148
+#: gnu/packages/web.scm:1247
 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"
@@ -17623,49 +20389,61 @@ msgid ""
 "minimum to provide high performance operation."
 msgstr ""
 
-#: gnu/packages/web.scm:1202
+#: gnu/packages/web.scm:1281
+msgid "SASS Compiler, implemented as a C/C++ library"
+msgstr ""
+
+#: gnu/packages/web.scm:1283
+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:1332
 msgid "CSS pre-processor"
 msgstr "CSS pre-procesador"
 
-#: gnu/packages/web.scm:1203
+#: gnu/packages/web.scm:1333
 msgid ""
 "SassC is a compiler written in C for the CSS pre-processor\n"
 "language known as SASS."
 msgstr ""
 
-#: gnu/packages/web.scm:1232
+#: gnu/packages/web.scm:1361
 msgid "Compile a log format string to perl-code"
 msgstr ""
 
-#: gnu/packages/web.scm:1233
+#: gnu/packages/web.scm:1362
 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:1261
+#: gnu/packages/web.scm:1390
 msgid "SASL authentication framework"
 msgstr "Marco de trabajo para autenticación SASL"
 
-#: gnu/packages/web.scm:1262
+#: gnu/packages/web.scm:1391
 msgid "Authen::SASL provides an SASL authentication framework."
 msgstr ""
 
-#: gnu/packages/web.scm:1287
+#: gnu/packages/web.scm:1416
 msgid "Sensible default Catalyst action"
-msgstr ""
+msgstr "Distingue acción Catalyst predeterminada"
 
-#: gnu/packages/web.scm:1288
+#: gnu/packages/web.scm:1417
 msgid ""
 "This Catalyst action implements a sensible default end\n"
 "action, which will forward to the first available view."
 msgstr ""
 
-#: gnu/packages/web.scm:1320
+#: gnu/packages/web.scm:1449
 msgid "Automated REST Method Dispatching"
 msgstr ""
 
-#: gnu/packages/web.scm:1321
+#: gnu/packages/web.scm:1450
 msgid ""
 "This Action handles doing automatic method dispatching for\n"
 "REST requests.  It takes a normal Catalyst action, and changes the dispatch to\n"
@@ -17674,32 +20452,32 @@ msgid ""
 "regular method."
 msgstr ""
 
-#: gnu/packages/web.scm:1358
+#: gnu/packages/web.scm:1487
 msgid "Storage class for Catalyst authentication using DBIx::Class"
 msgstr ""
 
-#: gnu/packages/web.scm:1359
+#: gnu/packages/web.scm:1488
 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:1385
+#: gnu/packages/web.scm:1514
 msgid "Create only one instance of Moose component per context"
 msgstr ""
 
-#: gnu/packages/web.scm:1386
+#: gnu/packages/web.scm:1515
 msgid ""
 "Catalyst::Component::InstancePerContext returns a new\n"
 "instance of a component on each request."
 msgstr ""
 
-#: gnu/packages/web.scm:1423
+#: gnu/packages/web.scm:1552
 msgid "Catalyst Development Tools"
 msgstr "Herramientas Desarrollo Catalyst"
 
-#: gnu/packages/web.scm:1424
+#: gnu/packages/web.scm:1553
 msgid ""
 "The Catalyst-Devel distribution includes a variety of\n"
 "modules useful for the development of Catalyst applications, but not required\n"
@@ -17709,11 +20487,11 @@ msgid ""
 "modules."
 msgstr ""
 
-#: gnu/packages/web.scm:1453
+#: gnu/packages/web.scm:1582
 msgid "Regex DispatchType for Catalyst"
 msgstr "Exreg DispatchType para Catalyst"
 
-#: gnu/packages/web.scm:1454
+#: gnu/packages/web.scm:1583
 msgid ""
 "Dispatch type managing path-matching behaviour using\n"
 "regexes.  Regex dispatch types have been deprecated and removed from Catalyst\n"
@@ -17723,32 +20501,32 @@ msgid ""
 "when the dispatch type is first seen in your application."
 msgstr ""
 
-#: gnu/packages/web.scm:1503
+#: gnu/packages/web.scm:1632
 msgid "DBIx::Class::Schema Model Class"
-msgstr ""
+msgstr "Modelo de Clase DBIx::Class::Schema"
 
-#: gnu/packages/web.scm:1504
+#: gnu/packages/web.scm:1633
 msgid ""
 "This is a Catalyst Model for DBIx::Class::Schema-based\n"
 "Models."
 msgstr ""
 
-#: gnu/packages/web.scm:1527
+#: gnu/packages/web.scm:1656
 msgid "Request logging from within Catalyst"
 msgstr ""
 
-#: gnu/packages/web.scm:1528
+#: gnu/packages/web.scm:1657
 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:1562
+#: gnu/packages/web.scm:1691
 msgid "Infrastructure plugin for the Catalyst authentication framework"
 msgstr ""
 
-#: gnu/packages/web.scm:1563
+#: gnu/packages/web.scm:1692
 msgid ""
 "The authentication plugin provides generic user support for\n"
 "Catalyst apps.  It is the basis for both authentication (checking the user is\n"
@@ -17756,52 +20534,52 @@ msgid ""
 "system authorises them to do)."
 msgstr ""
 
-#: gnu/packages/web.scm:1594
+#: gnu/packages/web.scm:1723
 msgid "Role-based authorization for Catalyst"
-msgstr ""
+msgstr "Autorización de cargo basado para Catalyst"
 
-#: gnu/packages/web.scm:1595
+#: gnu/packages/web.scm:1724
 msgid ""
 "Catalyst::Plugin::Authorization::Roles provides role-based\n"
 "authorization for Catalyst based on Catalyst::Plugin::Authentication."
 msgstr ""
 
-#: gnu/packages/web.scm:1618
+#: gnu/packages/web.scm:1747
 msgid "Captchas for Catalyst"
-msgstr ""
+msgstr "Vista para Catalyst"
 
-#: gnu/packages/web.scm:1619
+#: gnu/packages/web.scm:1748
 msgid ""
 "This plugin creates and validates Captcha images for\n"
 "Catalyst."
 msgstr ""
 
-#: gnu/packages/web.scm:1646
+#: gnu/packages/web.scm:1775
 msgid "Load config files of various types"
 msgstr ""
 
-#: gnu/packages/web.scm:1647
+#: gnu/packages/web.scm:1776
 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:1679
+#: gnu/packages/web.scm:1807
 msgid "Catalyst generic session plugin"
-msgstr ""
+msgstr "Política de sesión genérica complementaria"
 
-#: gnu/packages/web.scm:1680
+#: gnu/packages/web.scm:1808
 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:1708
+#: gnu/packages/web.scm:1836
 msgid "Maintain session IDs using cookies"
 msgstr ""
 
-#: gnu/packages/web.scm:1709
+#: gnu/packages/web.scm:1837
 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"
@@ -17809,22 +20587,22 @@ msgid ""
 "cookie mechanism."
 msgstr ""
 
-#: gnu/packages/web.scm:1739
+#: gnu/packages/web.scm:1867
 msgid "FastMmap session storage backend"
 msgstr ""
 
-#: gnu/packages/web.scm:1740
+#: gnu/packages/web.scm:1868
 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:1765
+#: gnu/packages/web.scm:1893
 msgid "Stack trace on the Catalyst debug screen"
 msgstr ""
 
-#: gnu/packages/web.scm:1766
+#: gnu/packages/web.scm:1894
 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"
@@ -17832,11 +20610,11 @@ msgid ""
 "number, file name, and code context surrounding the line number."
 msgstr ""
 
-#: gnu/packages/web.scm:1794
+#: gnu/packages/web.scm:1922
 msgid "Simple serving of static pages"
-msgstr ""
+msgstr "Servicio simple de páginas estáticas"
 
-#: gnu/packages/web.scm:1795
+#: gnu/packages/web.scm:1923
 msgid ""
 "The Static::Simple plugin is designed to make serving static\n"
 "content in your application during development quick and easy, without\n"
@@ -17847,12 +20625,11 @@ msgid ""
 "MIME type directly to the browser, without being processed through Catalyst."
 msgstr ""
 
-#: gnu/packages/web.scm:1863
-#, fuzzy
+#: gnu/packages/web.scm:1985
 msgid "The Catalyst Framework Runtime"
-msgstr "configuración de tiempo de ejecución"
+msgstr "El Armazón Catalyst en Tiempo de Ejecución"
 
-#: gnu/packages/web.scm:1864
+#: gnu/packages/web.scm:1986
 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"
@@ -17860,11 +20637,11 @@ msgid ""
 "\"plug in\" existing Perl modules that do what you need."
 msgstr ""
 
-#: gnu/packages/web.scm:1895
+#: gnu/packages/web.scm:2017
 msgid "Replace request base with value passed by HTTP proxy"
 msgstr ""
 
-#: gnu/packages/web.scm:1896
+#: gnu/packages/web.scm:2018
 msgid ""
 "This module is a Moose::Role which allows you more\n"
 "flexibility in your application's deployment configurations when deployed\n"
@@ -17872,43 +20649,42 @@ msgid ""
 "replaced with the contents of the X-Request-Base header."
 msgstr ""
 
-#: gnu/packages/web.scm:1923
-#, fuzzy
+#: gnu/packages/web.scm:2045
 msgid "Download data in many formats"
-msgstr "Demasiados sufijos de descarga\n"
+msgstr "Descarga datos en muchos formatos"
 
-#: gnu/packages/web.scm:1924
+#: gnu/packages/web.scm:2046
 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:1950
+#: gnu/packages/web.scm:2072
 msgid "Catalyst JSON view"
 msgstr "Vista catalyst JSON"
 
-#: gnu/packages/web.scm:1951
+#: gnu/packages/web.scm:2073
 msgid ""
 "Catalyst::View::JSON is a Catalyst View handler that returns\n"
 "stash data in JSON format."
 msgstr ""
 
-#: gnu/packages/web.scm:1977
+#: gnu/packages/web.scm:2099
 msgid "Template View Class"
 msgstr "Plantilla Vista Clase"
 
-#: gnu/packages/web.scm:1978
+#: gnu/packages/web.scm:2100
 msgid ""
 "This module is a Catalyst view class for the Template\n"
 "Toolkit."
 msgstr ""
 
-#: gnu/packages/web.scm:2007
+#: gnu/packages/web.scm:2129
 msgid "Trait Loading and Resolution for Catalyst Components"
 msgstr ""
 
-#: gnu/packages/web.scm:2008
+#: gnu/packages/web.scm:2130
 msgid ""
 "Adds a \"COMPONENT\" in Catalyst::Component method to your\n"
 "Catalyst component base class that reads the optional \"traits\" parameter\n"
@@ -17917,31 +20693,32 @@ msgid ""
 "MooseX::Traits::Pluggable."
 msgstr ""
 
-#: gnu/packages/web.scm:2033
+#: gnu/packages/web.scm:2155
 msgid "Apply roles to Catalyst classes"
-msgstr ""
+msgstr "Aplicar oficios a clases Catalyst"
 
-#: gnu/packages/web.scm:2034
+#: gnu/packages/web.scm:2156
 msgid ""
 "CatalystX::RoleApplicator applies roles to Catalyst\n"
 "application classes."
 msgstr ""
 
-#: gnu/packages/web.scm:2061
+#: gnu/packages/web.scm:2183
+#, fuzzy
 msgid "Catalyst development server with Starman"
-msgstr ""
+msgstr "Herramientas Desarrollo Catalyst"
 
-#: gnu/packages/web.scm:2062
+#: gnu/packages/web.scm:2184
 msgid ""
 "This module provides a Catalyst extension to replace the\n"
 "development server with Starman."
 msgstr ""
 
-#: gnu/packages/web.scm:2086
+#: gnu/packages/web.scm:2208
 msgid "Handle Common Gateway Interface requests and responses"
 msgstr ""
 
-#: gnu/packages/web.scm:2087
+#: gnu/packages/web.scm:2209
 msgid ""
 "CGI.pm is a stable, complete and mature solution for\n"
 "processing and preparing HTTP requests and responses.  Major features include\n"
@@ -17950,63 +20727,72 @@ msgid ""
 "headers."
 msgstr ""
 
-#: gnu/packages/web.scm:2115
+#: gnu/packages/web.scm:2234
+msgid "Generate and process stateful forms"
+msgstr ""
+
+#: gnu/packages/web.scm:2236
+msgid ""
+"@code{CGI::FormBuilder} provides an easy way to generate and process CGI\n"
+"form-based applications."
+msgstr ""
+
+#: gnu/packages/web.scm:2261
 msgid "Persistent session data in CGI applications"
 msgstr ""
 
-#: gnu/packages/web.scm:2117
+#: gnu/packages/web.scm:2263
 msgid ""
 "@code{CGI::Session} provides modular session management system across\n"
 "HTTP requests."
 msgstr ""
 
-#: gnu/packages/web.scm:2138
+#: gnu/packages/web.scm:2285
 msgid "CGI interface that is CGI.pm compliant"
 msgstr ""
 
-#: gnu/packages/web.scm:2139
+#: gnu/packages/web.scm:2286
 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:2160
+#: gnu/packages/web.scm:2307
 msgid "Build structures from CGI data"
 msgstr "Construye estructuras desde datos CGI"
 
-#: gnu/packages/web.scm:2161
+#: gnu/packages/web.scm:2308
 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:2184
+#: gnu/packages/web.scm:2331
 msgid "Date conversion routines"
 msgstr "Fecha del conversión de rutinas"
 
-#: gnu/packages/web.scm:2185
+#: gnu/packages/web.scm:2332
 msgid ""
 "This module provides functions that deal with the date\n"
 "formats used by the HTTP protocol."
 msgstr ""
 
-#: gnu/packages/web.scm:2205
+#: gnu/packages/web.scm:2352
 msgid "MD5 sums for files and urls"
 msgstr ""
 
-#: gnu/packages/web.scm:2206
+#: gnu/packages/web.scm:2353
 msgid ""
 "Digest::MD5::File is a Perl extension for getting MD5 sums\n"
 "for files and urls."
 msgstr ""
 
-#: gnu/packages/web.scm:2224
-#, fuzzy
+#: gnu/packages/web.scm:2371
 msgid "Perl locale encoding determination"
-msgstr "Localización actual emplea codificación %s.\n"
+msgstr "Determinación de codificación Perl local"
 
-#: gnu/packages/web.scm:2226
+#: gnu/packages/web.scm:2373
 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"
@@ -18018,111 +20804,110 @@ msgid ""
 "with Encode::decode(locale => $string)."
 msgstr ""
 
-#: gnu/packages/web.scm:2261
+#: gnu/packages/web.scm:2408
 msgid "Syndication feed auto-discovery"
 msgstr ""
 
-#: gnu/packages/web.scm:2262
+#: gnu/packages/web.scm:2409
 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:2283
-#, fuzzy
+#: gnu/packages/web.scm:2430
 msgid "Perl directory listing parser"
-msgstr "%s: no se muestra el directorio ya mostrado"
+msgstr "Directorio Perl listando intérprete"
 
-#: gnu/packages/web.scm:2285
+#: gnu/packages/web.scm:2432
 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:2317
+#: gnu/packages/web.scm:2463
 msgid "Stock and mutual fund quotes"
 msgstr "Acciones y fondos de inversión"
 
-#: gnu/packages/web.scm:2319
+#: gnu/packages/web.scm:2465
 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:2341
+#: gnu/packages/web.scm:2487
 msgid "Perl extension providing access to the GSSAPIv2 library"
 msgstr ""
 
-#: gnu/packages/web.scm:2342
+#: gnu/packages/web.scm:2488
 msgid ""
 "This is a Perl extension for using GSSAPI C bindings as\n"
 "described in RFC 2744."
 msgstr ""
 
-#: gnu/packages/web.scm:2362
+#: gnu/packages/web.scm:2508
 msgid "Manipulate tables of HTML::Element"
-msgstr ""
+msgstr "Manipula tablas de HTML::Element"
 
-#: gnu/packages/web.scm:2364
+#: gnu/packages/web.scm:2510
 msgid ""
 "HTML::Element::Extended is a Perl extension for manipulating a table\n"
 "composed of HTML::Element style components."
 msgstr ""
 
-#: gnu/packages/web.scm:2388
+#: gnu/packages/web.scm:2534
 msgid "Perl class representing an HTML form element"
 msgstr ""
 
-#: gnu/packages/web.scm:2389
+#: gnu/packages/web.scm:2535
 msgid ""
 "Objects of the HTML::Form class represents a single HTML\n"
 "<form> ... </form> instance."
 msgstr ""
 
-#: gnu/packages/web.scm:2419
+#: gnu/packages/web.scm:2566
 msgid "Perl extension for scrubbing/sanitizing html"
 msgstr ""
 
-#: gnu/packages/web.scm:2421
+#: gnu/packages/web.scm:2568
 msgid "@code{HTML::Scrubber} Perl extension for scrubbing/sanitizing HTML."
 msgstr ""
 
-#: gnu/packages/web.scm:2442
+#: gnu/packages/web.scm:2588
 msgid "Check for HTML errors in a string or file"
 msgstr ""
 
-#: gnu/packages/web.scm:2443
+#: gnu/packages/web.scm:2589
 msgid ""
 "HTML::Lint is a pure-Perl HTML parser and checker for\n"
 "syntactic legitmacy."
 msgstr ""
 
-#: gnu/packages/web.scm:2464
+#: gnu/packages/web.scm:2610
 msgid "Extract contents from HTML tables"
 msgstr ""
 
-#: gnu/packages/web.scm:2466
+#: gnu/packages/web.scm:2612
 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:2491
+#: gnu/packages/web.scm:2637
 msgid "Work with HTML in a DOM-like tree structure"
 msgstr ""
 
-#: gnu/packages/web.scm:2492
+#: gnu/packages/web.scm:2638
 msgid ""
 "This distribution contains a suite of modules for\n"
 "representing, creating, and extracting information from HTML syntax trees."
 msgstr ""
 
-#: gnu/packages/web.scm:2513
+#: gnu/packages/web.scm:2659
 msgid "Perl HTML parser class"
-msgstr ""
+msgstr "Clase interpretada HTML en Perl"
 
-#: gnu/packages/web.scm:2515
+#: gnu/packages/web.scm:2661
 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"
@@ -18130,21 +20915,21 @@ msgid ""
 "are invoked."
 msgstr ""
 
-#: gnu/packages/web.scm:2535
+#: gnu/packages/web.scm:2681
 msgid "Perl data tables useful in parsing HTML"
 msgstr ""
 
-#: gnu/packages/web.scm:2537
+#: gnu/packages/web.scm:2683
 msgid ""
 "The HTML::Tagset module contains several data tables useful in various\n"
 "kinds of HTML parsing operations."
 msgstr ""
 
-#: gnu/packages/web.scm:2556
+#: gnu/packages/web.scm:2702
 msgid "HTML-like templates"
 msgstr "Plantillas parecidas a HTML"
 
-#: gnu/packages/web.scm:2558
+#: gnu/packages/web.scm:2704
 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"
@@ -18155,73 +20940,72 @@ msgid ""
 "you to separate design from the data."
 msgstr ""
 
-#: gnu/packages/web.scm:2586
+#: gnu/packages/web.scm:2732
 msgid "HTTP Body Parser"
 msgstr "Interpretador Cuerpo HTTP"
 
-#: gnu/packages/web.scm:2587
+#: gnu/packages/web.scm:2733
 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:2614
+#: gnu/packages/web.scm:2760
 msgid "Minimalist HTTP user agent cookie jar"
 msgstr ""
 
-#: gnu/packages/web.scm:2615
+#: gnu/packages/web.scm:2761
 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:2635
+#: gnu/packages/web.scm:2781
 msgid "Perl HTTP cookie jars"
 msgstr ""
 
-#: gnu/packages/web.scm:2637
+#: gnu/packages/web.scm:2783
 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:2659
+#: gnu/packages/web.scm:2805
 msgid "Perl simple http server class"
 msgstr ""
 
-#: gnu/packages/web.scm:2661
+#: gnu/packages/web.scm:2807
 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:2680
-#, fuzzy
+#: gnu/packages/web.scm:2826
 msgid "Perl date conversion routines"
-msgstr "Fecha del cambio de monedas"
+msgstr "Rutinas de conversión de fecha Perl"
 
-#: gnu/packages/web.scm:2682
+#: gnu/packages/web.scm:2828
 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:2706
+#: gnu/packages/web.scm:2854
 msgid "Perl HTTP style message"
 msgstr ""
 
-#: gnu/packages/web.scm:2708
+#: gnu/packages/web.scm:2856
 msgid "An HTTP::Message object contains some headers and a content body."
-msgstr ""
+msgstr "Un objeto HTTP::Message contiene algunas cabeceras y un cuerpo de contenido."
 
-#: gnu/packages/web.scm:2727
+#: gnu/packages/web.scm:2875
 msgid "Perl http content negotiation"
-msgstr ""
+msgstr "Negociación de contenido http Perl"
 
-#: gnu/packages/web.scm:2729
+#: gnu/packages/web.scm:2877
 msgid ""
 "The HTTP::Negotiate module provides a complete implementation of the\n"
 "HTTP content negotiation algorithm specified in\n"
@@ -18231,86 +21015,98 @@ msgid ""
 "fields in the request."
 msgstr ""
 
-#: gnu/packages/web.scm:2754
+#: gnu/packages/web.scm:2902
 msgid "Parse HTTP/1.1 requests"
-msgstr "Interpretar peticiones HTTP/1.1"
+msgstr "Interpreta peticiones HTTP/1.1"
 
-#: gnu/packages/web.scm:2755
+#: gnu/packages/web.scm:2903
 msgid ""
 "This is an HTTP request parser.  It takes chunks of text as\n"
-"received and returns a 'hint' as to what is required, or returns the\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:2777
+#: gnu/packages/web.scm:2925
 msgid "Fast HTTP request parser"
 msgstr "Intérprete de peticiones HTTP rápida"
 
-#: gnu/packages/web.scm:2778
+#: gnu/packages/web.scm:2926
 msgid ""
 "HTTP::Parser::XS is a fast, primitive HTTP request/response\n"
 "parser."
 msgstr ""
 
-#: gnu/packages/web.scm:2799
+#: gnu/packages/web.scm:2947
 msgid "Set up a CGI environment from an HTTP::Request"
 msgstr ""
 
-#: gnu/packages/web.scm:2800
+#: gnu/packages/web.scm:2948
 msgid ""
 "This module provides a convenient way to set up a CGI\n"
 "environment from an HTTP::Request."
 msgstr ""
 
-#: gnu/packages/web.scm:2833
+#: gnu/packages/web.scm:2981
 msgid "Lightweight HTTP server"
-msgstr "Servidor HTTP ligero"
+msgstr "Servidor ligero HTTP"
 
-#: gnu/packages/web.scm:2834
+#: gnu/packages/web.scm:2982
 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:2859
+#: gnu/packages/web.scm:3007
 msgid "HTTP/1.1 client"
 msgstr "HTTP/1.1 cliente"
 
-#: gnu/packages/web.scm:2860
+#: gnu/packages/web.scm:3008
 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:2879
+#: gnu/packages/web.scm:3032
+msgid "@code{HTTP::Tiny} compatible HTTP client wrappers"
+msgstr ""
+
+#: gnu/packages/web.scm:3034
+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:3054
 msgid "Perl module to open an HTML file with automatic charset detection"
 msgstr ""
 
-#: gnu/packages/web.scm:2881
+#: gnu/packages/web.scm:3056
 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:2901
+#: gnu/packages/web.scm:3076
 msgid "Family-neutral IP socket supporting both IPv4 and IPv6"
 msgstr ""
 
-#: gnu/packages/web.scm:2902
+#: gnu/packages/web.scm:3077
 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:2924
+#: gnu/packages/web.scm:3099
 msgid "Nearly transparent SSL encapsulation for IO::Socket::INET"
 msgstr ""
 
-#: gnu/packages/web.scm:2926
+#: gnu/packages/web.scm:3101
 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"
@@ -18319,12 +21115,11 @@ msgid ""
 "select or poll."
 msgstr ""
 
-#: gnu/packages/web.scm:2960
-#, fuzzy
+#: gnu/packages/web.scm:3140
 msgid "Perl modules for the WWW"
-msgstr "scripts internos empotrados en perl."
+msgstr "Módulos Perl para la WWW"
 
-#: gnu/packages/web.scm:2962
+#: gnu/packages/web.scm:3142
 msgid ""
 "The libwww-perl collection is a set of Perl modules which provides a\n"
 "simple and consistent application programming interface to the\n"
@@ -18334,11 +21129,11 @@ msgid ""
 "help you implement simple HTTP servers."
 msgstr ""
 
-#: gnu/packages/web.scm:2990
+#: gnu/packages/web.scm:3170
 msgid "Checks whether your process has access to the web"
 msgstr ""
 
-#: gnu/packages/web.scm:2991
+#: gnu/packages/web.scm:3171
 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"
@@ -18348,11 +21143,11 @@ msgid ""
 "not have DNS.  We might not have a network card at all!"
 msgstr ""
 
-#: gnu/packages/web.scm:3013
+#: gnu/packages/web.scm:3193
 msgid "Perl module to guess the media type for a file or a URL"
 msgstr ""
 
-#: gnu/packages/web.scm:3015
+#: gnu/packages/web.scm:3195
 #, scheme-format
 msgid ""
 "The LWP::MediaTypes module provides functions for handling media (also\n"
@@ -18361,21 +21156,21 @@ msgid ""
 "exists it is used instead."
 msgstr ""
 
-#: gnu/packages/web.scm:3041
+#: gnu/packages/web.scm:3224
 msgid "HTTPS support for LWP::UserAgent"
 msgstr ""
 
-#: gnu/packages/web.scm:3042
+#: gnu/packages/web.scm:3225
 msgid ""
 "The LWP::Protocol::https module provides support for using\n"
 "https schemed URLs with LWP."
 msgstr ""
 
-#: gnu/packages/web.scm:3062
+#: gnu/packages/web.scm:3245
 msgid "Virtual browser that retries errors"
 msgstr ""
 
-#: gnu/packages/web.scm:3063
+#: gnu/packages/web.scm:3246
 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"
@@ -18383,19 +21178,19 @@ msgid ""
 "and retry a few times."
 msgstr ""
 
-#: gnu/packages/web.scm:3108
+#: gnu/packages/web.scm:3291
 msgid "Perl interface to Amazon S3"
-msgstr ""
+msgstr "Interfaz Perl para Amazon S3"
 
-#: gnu/packages/web.scm:3109
+#: gnu/packages/web.scm:3292
 msgid "This module provides a Perlish interface to Amazon S3."
-msgstr ""
+msgstr "Este módulo proporciona un interfaz Perlish para Amazon S3."
 
-#: gnu/packages/web.scm:3129
+#: gnu/packages/web.scm:3312
 msgid "Perl low-level HTTP connection (client)"
 msgstr ""
 
-#: gnu/packages/web.scm:3131
+#: gnu/packages/web.scm:3314
 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"
@@ -18403,11 +21198,11 @@ msgid ""
 "HTTP/1.1."
 msgstr ""
 
-#: gnu/packages/web.scm:3151
+#: gnu/packages/web.scm:3334
 msgid "Extensible Perl server engine"
 msgstr ""
 
-#: gnu/packages/web.scm:3152
+#: gnu/packages/web.scm:3335
 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"
@@ -18421,21 +21216,19 @@ msgid ""
 "or to multiple server ports."
 msgstr ""
 
-#: gnu/packages/web.scm:3180
-#, fuzzy
+#: gnu/packages/web.scm:3363
 msgid "SSL support for Net::SMTP"
-msgstr "El soporte de SSL no se compiló.\n"
+msgstr "Capacidad SSL para Net::SMTP"
 
-#: gnu/packages/web.scm:3181
-#, fuzzy
+#: gnu/packages/web.scm:3364
 msgid "SSL support for Net::SMTP."
-msgstr "El soporte de SSL no se compiló.\n"
+msgstr "Capacidad SSL para Net::SMTP."
 
-#: gnu/packages/web.scm:3215
+#: gnu/packages/web.scm:3398
 msgid "Perl Superglue for Web frameworks and servers (PSGI toolkit)"
 msgstr ""
 
-#: gnu/packages/web.scm:3216
+#: gnu/packages/web.scm:3399
 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"
@@ -18443,21 +21236,34 @@ msgid ""
 "WSGI."
 msgstr ""
 
-#: gnu/packages/web.scm:3242
+#: gnu/packages/web.scm:3425
+msgid "Compress response body with Gzip or Deflate"
+msgstr ""
+
+#: gnu/packages/web.scm:3427
+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:3454
 msgid "Plack::Middleware which sets body for redirect response"
 msgstr ""
 
-#: gnu/packages/web.scm:3243
+#: gnu/packages/web.scm:3455
 msgid ""
 "This module sets the body in redirect response, if it's not\n"
 "already set."
 msgstr ""
 
-#: gnu/packages/web.scm:3266
+#: gnu/packages/web.scm:3477
 msgid "Override REST methods to Plack apps via POST"
 msgstr ""
 
-#: gnu/packages/web.scm:3267
+#: gnu/packages/web.scm:3478
 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"
@@ -18465,72 +21271,72 @@ msgid ""
 "can say what method it actually meant."
 msgstr ""
 
-#: gnu/packages/web.scm:3291
+#: gnu/packages/web.scm:3501
 msgid "Plack::Middleware which removes body for HTTP response"
 msgstr ""
 
-#: gnu/packages/web.scm:3292
+#: gnu/packages/web.scm:3502
 msgid ""
 "This module removes the body in an HTTP response if it's not\n"
 "required."
 msgstr ""
 
-#: gnu/packages/web.scm:3315
+#: gnu/packages/web.scm:3524
 msgid "Supports app to run as a reverse proxy backend"
 msgstr ""
 
-#: gnu/packages/web.scm:3316
+#: gnu/packages/web.scm:3525
 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 'enable_if' directive in your app.psgi."
+"and stop fake requests using @code{enable_if} directive in your app.psgi."
 msgstr ""
 
-#: gnu/packages/web.scm:3337
+#: gnu/packages/web.scm:3545
 msgid "Run HTTP tests on external live servers"
 msgstr ""
 
-#: gnu/packages/web.scm:3338
+#: gnu/packages/web.scm:3546
 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:3360
+#: gnu/packages/web.scm:3567
 msgid "Testing TCP programs"
 msgstr "Probando programa TCP"
 
-#: gnu/packages/web.scm:3361
+#: gnu/packages/web.scm:3568
 msgid "Test::TCP is test utilities for TCP/IP programs."
 msgstr ""
 
-#: gnu/packages/web.scm:3391
+#: gnu/packages/web.scm:3592
 msgid "Testing-specific WWW::Mechanize subclass"
 msgstr ""
 
-#: gnu/packages/web.scm:3392
+#: gnu/packages/web.scm:3593
 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:3426
+#: gnu/packages/web.scm:3626
 msgid "Test::WWW::Mechanize for Catalyst"
-msgstr ""
+msgstr "Test::WWW::Mechanize para Catalyst"
 
-#: gnu/packages/web.scm:3427
+#: gnu/packages/web.scm:3627
 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:3451
+#: gnu/packages/web.scm:3651
 msgid "Test PSGI programs using WWW::Mechanize"
 msgstr ""
 
-#: gnu/packages/web.scm:3452
+#: gnu/packages/web.scm:3652
 msgid ""
 "PSGI is a specification to decouple web server environments\n"
 "from web application framework code.  Test::WWW::Mechanize is a subclass of\n"
@@ -18539,34 +21345,33 @@ msgid ""
 "applications."
 msgstr ""
 
-#: gnu/packages/web.scm:3472
+#: gnu/packages/web.scm:3675
 msgid "Perl Uniform Resource Identifiers (absolute and relative)"
 msgstr ""
 
-#: gnu/packages/web.scm:3474
+#: gnu/packages/web.scm:3677
 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:3498
+#: gnu/packages/web.scm:3701
 msgid "Smart URI fetching/caching"
 msgstr ""
 
-#: gnu/packages/web.scm:3499
+#: gnu/packages/web.scm:3702
 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:3522
-#, fuzzy
+#: gnu/packages/web.scm:3725
 msgid "Find URIs in arbitrary text"
-msgstr "%s: no se puede encontrar la sección .text en %s\n"
+msgstr "Encuentra URI en texto arbitrario"
 
-#: gnu/packages/web.scm:3523
+#: gnu/packages/web.scm:3726
 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"
@@ -18574,61 +21379,61 @@ msgid ""
 "URI::Find::Schemeless.  For a command-line interface, urifind is provided."
 msgstr ""
 
-#: gnu/packages/web.scm:3545
+#: gnu/packages/web.scm:3748
 msgid "WebSocket support for URI package"
 msgstr ""
 
-#: gnu/packages/web.scm:3546
+#: gnu/packages/web.scm:3749
 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:3570
+#: gnu/packages/web.scm:3773
 msgid "Object for handling URI templates"
 msgstr ""
 
-#: gnu/packages/web.scm:3571
+#: gnu/packages/web.scm:3774
 msgid ""
 "This perl module provides a wrapper around URI templates as described in\n"
 "RFC 6570."
 msgstr ""
 
-#: gnu/packages/web.scm:3603
+#: gnu/packages/web.scm:3806
 msgid "Perl extension interface for libcurl"
-msgstr ""
+msgstr "Extensión de interfaz Perl para libcurl"
 
-#: gnu/packages/web.scm:3605
+#: gnu/packages/web.scm:3808
 msgid ""
 "This is a Perl extension interface for the libcurl file downloading\n"
 "library."
 msgstr ""
 
-#: gnu/packages/web.scm:3639
+#: gnu/packages/web.scm:3841
 msgid "Web browsing in a Perl object"
-msgstr ""
+msgstr "Explorador web dentro de un objeto Perl"
 
-#: gnu/packages/web.scm:3640
+#: gnu/packages/web.scm:3842
 msgid ""
 "WWW::Mechanize is a Perl module for stateful programmatic\n"
 "web browsing, used for automating interaction with websites."
 msgstr ""
 
-#: gnu/packages/web.scm:3676
+#: gnu/packages/web.scm:3878
 msgid "Search A9 OpenSearch compatible engines"
 msgstr ""
 
-#: gnu/packages/web.scm:3678
+#: gnu/packages/web.scm:3880
 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:3698
+#: gnu/packages/web.scm:3900
 msgid "Perl database of robots.txt-derived permissions"
 msgstr ""
 
-#: gnu/packages/web.scm:3700
+#: gnu/packages/web.scm:3902
 msgid ""
 "The WWW::RobotRules module parses /robots.txt files as specified in\n"
 "\"A Standard for Robot Exclusion\", at\n"
@@ -18637,153 +21442,42 @@ msgid ""
 "their web site."
 msgstr ""
 
-#: gnu/packages/web.scm:3723
+#: gnu/packages/web.scm:3925
 msgid "Parse feeds in Python"
 msgstr "Interpreta novedades para Python"
 
-#: gnu/packages/web.scm:3725
+#: gnu/packages/web.scm:3927
 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:3746
-msgid "HTTP and WebSocket server library for R"
-msgstr ""
-
-#: gnu/packages/web.scm:3748
-msgid ""
-"The httpuv package provides low-level socket and protocol support for\n"
-"handling HTTP and WebSocket requests directly from within R.  It is primarily\n"
-"intended as a building block for other packages, rather than making it\n"
-"particularly easy to create complete web applications using httpuv alone."
-msgstr ""
-
-#: gnu/packages/web.scm:3769
-msgid "Robust, high performance JSON parser and generator for R"
-msgstr ""
-
-#: gnu/packages/web.scm:3771
-msgid ""
-"The jsonlite package provides a fast JSON parser and generator optimized\n"
-"for statistical data and the web.  It offers flexible, robust, high\n"
-"performance tools for working with JSON in R and is particularly powerful for\n"
-"building pipelines and interacting with a web API.  In addition to converting\n"
-"JSON data from/to R objects, jsonlite contains functions to stream, validate,\n"
-"and prettify JSON data.  The unit tests included with the package verify that\n"
-"all edge cases are encoded and decoded consistently for use with dynamic data\n"
-"in systems and applications."
-msgstr ""
-
-#: gnu/packages/web.scm:3799
-msgid "Simple HTTP server to serve static files or dynamic documents"
-msgstr ""
-
-#: gnu/packages/web.scm:3801
-msgid ""
-"Servr provides an HTTP server in R to serve static files, or dynamic\n"
-"documents that can be converted to HTML files (e.g., R Markdown) under a given\n"
-"directory."
-msgstr ""
-
-#: gnu/packages/web.scm:3835
-msgid "R tools for HTML"
-msgstr "Herramientas R para HTML"
-
-#: gnu/packages/web.scm:3837
-msgid "This package provides tools for HTML generation and output in R."
-msgstr ""
-
-#: gnu/packages/web.scm:3856
-msgid "HTML Widgets for R"
-msgstr "Cubiertas HTML para R"
-
-#: gnu/packages/web.scm:3858
-msgid ""
-"HTML widgets is a framework for creating HTML widgets that render in\n"
-"various contexts including the R console, R Markdown documents, and Shiny web\n"
-"applications."
-msgstr ""
-
-#: gnu/packages/web.scm:3883
-msgid "Advanced tables for Markdown/HTML"
-msgstr ""
-
-#: gnu/packages/web.scm:3885
-msgid ""
-"This package provides functions to build tables with advanced layout\n"
-"elements such as row spanners, column spanners, table spanners, zebra\n"
-"striping, and more.  While allowing advanced layout, the underlying\n"
-"CSS-structure is simple in order to maximize compatibility with word\n"
-"processors such as LibreOffice.  The package also contains a few text\n"
-"formatting functions that help outputting text compatible with HTML or\n"
-"LaTeX."
-msgstr ""
-
-#: gnu/packages/web.scm:3922
-msgid "HTTP client for R"
-msgstr "Cliente HTTP para R"
-
-#: gnu/packages/web.scm:3924
-msgid ""
-"The @code{curl()} and @code{curl_download()} functions provide highly\n"
-"configurable drop-in replacements for base @code{url()} and\n"
-"@code{download.file()} with better performance, support for encryption, gzip\n"
-"compression, authentication, and other @code{libcurl} goodies.  The core of\n"
-"the package implements a framework for performing fully customized requests\n"
-"where data can be processed either in memory, on disk, or streaming via the\n"
-"callback or connection interfaces."
-msgstr ""
-
-#: gnu/packages/web.scm:3946
-#, fuzzy
-msgid "Output R objects in HTML format"
-msgstr "el formato de salida binario no es compatible con -shared o -pie o -r"
-
-#: gnu/packages/web.scm:3948
-msgid ""
-"This package provides easy-to-use and versatile functions to output R\n"
-"objects in HTML format."
-msgstr ""
-
-#: gnu/packages/web.scm:3965
-msgid "JSON library for R"
-msgstr "Biblioteca JSON para R"
-
-#: gnu/packages/web.scm:3967
-msgid ""
-"This package provides functions to convert R objects into JSON objects\n"
-"and vice-versa."
-msgstr ""
-
-#: gnu/packages/web.scm:3996
+#: gnu/packages/web.scm:3956
 msgid "HTML5 parsing library"
 msgstr "Biblioteca interpretando HTML5"
 
-#: gnu/packages/web.scm:3998
+#: gnu/packages/web.scm:3958
 msgid ""
 "Gumbo is an implementation of the HTML5 parsing algorithm implemented as\n"
 "a pure C99 library."
 msgstr ""
 
-#: gnu/packages/web.scm:4069
-#, fuzzy
+#: gnu/packages/web.scm:4029
 msgid "Application container server"
-msgstr "Aplicación\n"
+msgstr "Aplicación contenedora de servicio"
 
-#: gnu/packages/web.scm:4071
+#: gnu/packages/web.scm:4031
 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:4101
-#, fuzzy
+#: gnu/packages/web.scm:4057
 msgid "Command-line JSON processor"
-msgstr "línea de comando demasiado corta"
+msgstr "Procesador mandato lineal JSON"
 
-#: gnu/packages/web.scm:4102
+#: gnu/packages/web.scm:4058
 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"
@@ -18793,107 +21487,106 @@ msgid ""
 "you'd expect."
 msgstr ""
 
-#: gnu/packages/web.scm:4141
+#: gnu/packages/web.scm:4088
 msgid "Library for mocking web service APIs which use HTTP or HTTPS"
 msgstr ""
 
-#: gnu/packages/web.scm:4143
+#: gnu/packages/web.scm:4090
 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:4178
-#, fuzzy
+#: gnu/packages/web.scm:4125
 msgid "Single file web server"
-msgstr "Especifica la URL completa del Servidor Web MantisBT."
+msgstr "Fichero web simple de servidor"
 
-#: gnu/packages/web.scm:4179
+#: gnu/packages/web.scm:4126
 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:4205
+#: gnu/packages/web.scm:4152
 msgid "Build system for the Netsurf project"
-msgstr ""
+msgstr "Sistema compilador para proyecto Netsurf"
 
-#: gnu/packages/web.scm:4207
+#: gnu/packages/web.scm:4154
 msgid ""
 "This package provides the shared build system for Netsurf project\n"
 "libraries."
 msgstr ""
 
-#: gnu/packages/web.scm:4242
+#: gnu/packages/web.scm:4189
 msgid "Parser building library"
 msgstr "Interpretador construyendo biblioteca"
 
-#: gnu/packages/web.scm:4244
+#: gnu/packages/web.scm:4191
 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:4272
+#: gnu/packages/web.scm:4219
 msgid "HTML5 compliant parsing library"
 msgstr "Biblioteca interpretando HTML5 completo"
 
-#: gnu/packages/web.scm:4274
+#: gnu/packages/web.scm:4221
 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:4349
+#: gnu/packages/web.scm:4302
 msgid "Wiki compiler, capable of generating HTML"
 msgstr ""
 
-#: gnu/packages/web.scm:4351
+#: gnu/packages/web.scm:4304
 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:4375
+#: gnu/packages/web.scm:4328
 msgid "String internment library"
 msgstr "Biblioteca de cadena interna"
 
-#: gnu/packages/web.scm:4377
+#: gnu/packages/web.scm:4330
 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:4404
+#: gnu/packages/web.scm:4357
 msgid "CSS parser and selection library"
-msgstr ""
+msgstr "Intérprete CSS y selección de biblioteca"
 
-#: gnu/packages/web.scm:4406
+#: gnu/packages/web.scm:4359
 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:4440
+#: gnu/packages/web.scm:4393
 msgid "Implementation of the W3C DOM"
 msgstr "Implementación de DOM W3C"
 
-#: gnu/packages/web.scm:4442
+#: gnu/packages/web.scm:4395
 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:4469
+#: gnu/packages/web.scm:4422
 msgid "Library for parsing SVG files"
 msgstr "Biblioteca para interpretar ficheros SVG"
 
-#: gnu/packages/web.scm:4471
+#: gnu/packages/web.scm:4424
 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"
@@ -18901,95 +21594,94 @@ msgid ""
 "project."
 msgstr ""
 
-#: gnu/packages/web.scm:4494
+#: gnu/packages/web.scm:4447
 msgid "Decoding library for BMP and ICO files"
 msgstr "Descodificando biblioteca para ficheros BMP e ICO"
 
-#: gnu/packages/web.scm:4496
+#: gnu/packages/web.scm:4449
 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:4517
+#: gnu/packages/web.scm:4470
 msgid "Decoding library for GIF files"
 msgstr "Biblioteca descodificante para ficheros GIF"
 
-#: gnu/packages/web.scm:4519
+#: gnu/packages/web.scm:4472
 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:4540
+#: gnu/packages/web.scm:4493
 msgid "Utility library for NetSurf"
 msgstr "Biblioteca utilitaria para NetSurf"
 
-#: gnu/packages/web.scm:4542
+#: gnu/packages/web.scm:4495
 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:4563
+#: gnu/packages/web.scm:4516
 msgid "Library to generate a static Public Suffix List"
 msgstr ""
 
-#: gnu/packages/web.scm:4565
+#: gnu/packages/web.scm:4518
 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:4591
+#: gnu/packages/web.scm:4544
 msgid "Generate JavaScript to DOM bindings"
-msgstr ""
+msgstr "Genera JavaScript para enlaces DOM"
 
-#: gnu/packages/web.scm:4593
+#: gnu/packages/web.scm:4546
 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:4704
+#: gnu/packages/web.scm:4658
 msgid "Web browser"
 msgstr "Explorador web"
 
-#: gnu/packages/web.scm:4706
+#: gnu/packages/web.scm:4660
 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:4739
+#: gnu/packages/web.scm:4701
 msgid "Unix command line interface to the www"
-msgstr ""
+msgstr "Interfaz Unix de mandato lineal para www"
 
-#: gnu/packages/web.scm:4740
+#: gnu/packages/web.scm:4702
 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:4771
-#, fuzzy
+#: gnu/packages/web.scm:4733
 msgid "Simple static web server"
-msgstr "Especifica la URL completa del Servidor Web MantisBT."
+msgstr "Servicio web estático simple"
 
-#: gnu/packages/web.scm:4772
+#: gnu/packages/web.scm:4734
 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:4802
+#: gnu/packages/web.scm:4765
 msgid "Analyze Web server logs in real time"
-msgstr ""
+msgstr "Analiza boletines de servicios Web en tiempo real"
 
-#: gnu/packages/web.scm:4804
+#: gnu/packages/web.scm:4767
 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"
@@ -18997,11 +21689,11 @@ msgid ""
 "on the fly."
 msgstr ""
 
-#: gnu/packages/web.scm:4839
+#: gnu/packages/web.scm:4803
 msgid "Tunnel data connections through HTTP requests"
 msgstr ""
 
-#: gnu/packages/web.scm:4840
+#: gnu/packages/web.scm:4804
 msgid ""
 "httptunnel creates a bidirectional virtual data connection\n"
 "tunnelled through HTTP (HyperText Transfer Protocol) requests.  This can be\n"
@@ -19010,11 +21702,11 @@ msgid ""
 "tools like SSH (Secure Shell) to reach the outside world."
 msgstr ""
 
-#: gnu/packages/web.scm:4865
+#: gnu/packages/web.scm:4850
 msgid "TLS proxy for clients or servers"
 msgstr ""
 
-#: gnu/packages/web.scm:4866
+#: gnu/packages/web.scm:4851
 msgid ""
 "Stunnel is a proxy designed to add TLS encryption\n"
 "functionality to existing clients and servers without any changes in the\n"
@@ -19023,11 +21715,36 @@ msgid ""
 "deployments."
 msgstr ""
 
-#: gnu/packages/web.scm:4890
+#: gnu/packages/web.scm:4920
+#, fuzzy
+#| msgid "Store application preferences"
+msgid "Web application accelerator"
+msgstr "Almacena preferencias de aplicación"
+
+#: gnu/packages/web.scm:4922
+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:4950
+msgid "Collection of Varnish modules"
+msgstr ""
+
+#: gnu/packages/web.scm:4952
+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"
+"additional capabilities."
+msgstr ""
+
+#: gnu/packages/web.scm:4979
 msgid "Internet services daemon"
 msgstr "Demonio de servicios de Internet"
 
-#: gnu/packages/web.scm:4891
+#: gnu/packages/web.scm:4980
 msgid ""
 "@code{xinetd}, a more secure replacement for @code{inetd},\n"
 "listens for incoming requests over a network and launches the appropriate\n"
@@ -19036,11 +21753,11 @@ msgid ""
 "used to start services with both privileged and non-privileged port numbers."
 msgstr ""
 
-#: gnu/packages/web.scm:4935
+#: gnu/packages/web.scm:5024
 msgid "HTML Tidy with HTML5 support"
-msgstr ""
+msgstr "HTML Tidy con apoyo HTML5"
 
-#: gnu/packages/web.scm:4937
+#: gnu/packages/web.scm:5026
 msgid ""
 "Tidy is a console application which corrects and cleans up\n"
 "HTML and XML documents by fixing markup errors and upgrading\n"
@@ -19051,22 +21768,22 @@ msgid ""
 "functions of Tidy."
 msgstr ""
 
-#: gnu/packages/web.scm:4993
+#: gnu/packages/web.scm:5089
 msgid "Webserver with focus on security"
 msgstr "Servidor web centrado en seguridad"
 
-#: gnu/packages/web.scm:4995
+#: gnu/packages/web.scm:5091
 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:5019
+#: gnu/packages/web.scm:5115
 msgid "HTTP request and response service"
 msgstr "Petición HTTP y respuesta de servicio"
 
-#: gnu/packages/web.scm:5020
+#: gnu/packages/web.scm:5116
 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"
@@ -19074,22 +21791,22 @@ msgid ""
 "JSON-encoded."
 msgstr ""
 
-#: gnu/packages/web.scm:5048
+#: gnu/packages/web.scm:5144
 msgid "Test your HTTP library against a local copy of httpbin"
 msgstr ""
 
-#: gnu/packages/web.scm:5050
+#: gnu/packages/web.scm:5146
 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:5081
+#: gnu/packages/web.scm:5177
 msgid "HTTP request/response parser for C"
 msgstr "Petición/respuestas HTTP interpretadas para C"
 
-#: gnu/packages/web.scm:5082
+#: gnu/packages/web.scm:5178
 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"
@@ -19099,103 +21816,64 @@ msgid ""
 "message stream (in a web server that is per connection)."
 msgstr ""
 
-#: gnu/packages/web.scm:5134
+#: gnu/packages/web.scm:5211 gnu/packages/web.scm:5260
 msgid "HTTP client mock for Python"
-msgstr ""
+msgstr "Cliente mofa HTTP para Python"
 
-#: gnu/packages/web.scm:5135
+#: gnu/packages/web.scm:5212 gnu/packages/web.scm:5261
 msgid ""
 "@code{httpretty} is a helper for faking web requests,\n"
 "inspired by Ruby's @code{fakeweb}."
 msgstr ""
 
-#: gnu/packages/web.scm:5153
-#, fuzzy
+#: gnu/packages/web.scm:5279
 msgid "Output JSON from a shell"
-msgstr "Salida desde servidor:\n"
+msgstr "Salida JSON desde una shell"
 
-#: gnu/packages/web.scm:5154
+#: gnu/packages/web.scm:5280
 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:5203
-#, fuzzy
+#: gnu/packages/web.scm:5328
 msgid "Command-line interface to archive.org"
-msgstr "línea de órdenes"
+msgstr "Interfaz de mandato lineal para archive.org"
 
-#: gnu/packages/web.scm:5204
+#: gnu/packages/web.scm:5329
 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."
 msgstr ""
 
-#: gnu/packages/web.scm:5259
+#: gnu/packages/web.scm:5385
 msgid "Search code snippets on @url{https://commandlinefu.com}"
 msgstr ""
 
-#: gnu/packages/web.scm:5260
+#: gnu/packages/web.scm:5386
 msgid ""
 "@code{clf} is a command line tool for searching code\n"
 "snippets on @url{https://commandlinefu.com}."
 msgstr ""
 
-#: gnu/packages/web.scm:5362
-msgid "Easy interactive web applications with R"
-msgstr ""
-
-#: gnu/packages/web.scm:5364
-msgid ""
-"Makes it incredibly easy to build interactive web applications\n"
-"with R.  Automatic \"reactive\" binding between inputs and outputs and\n"
-"extensive prebuilt widgets make it possible to build beautiful,\n"
-"responsive, and powerful applications with minimal effort."
-msgstr ""
-
-#: gnu/packages/web.scm:5390
-msgid "Inter-widget interactivity for HTML widgets"
-msgstr ""
-
-#: gnu/packages/web.scm:5392
-msgid ""
-"This package provides building blocks for allowing HTML widgets to\n"
-"communicate with each other, with Shiny or without (i.e.  static @code{.html}\n"
-"files).  It currently supports linked brushing and filtering."
-msgstr ""
-
-#: gnu/packages/web.scm:5412
-#, fuzzy
-msgid "Web server interface for R"
-msgstr "  -R, --remove       Utiliza control interfaz remoto\n"
-
-#: gnu/packages/web.scm:5414
-msgid ""
-"This package contains the Rook specification and convenience software\n"
-"for building and running Rook applications.  A Rook application is an R\n"
-"reference class object that implements a @code{call} method or an R closure\n"
-"that takes exactly one argument, an environment, and returns a list with three\n"
-"named elements: the @code{status}, the @code{headers}, and the @code{body}."
-msgstr ""
-
-#: gnu/packages/web.scm:5454
+#: gnu/packages/web.scm:5420
 msgid "Generate Atom feeds for social networking websites"
 msgstr ""
 
-#: gnu/packages/web.scm:5455
+#: gnu/packages/web.scm:5421
 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:5487
+#: gnu/packages/web.scm:5475
 msgid "Check websites for broken links"
 msgstr ""
 
-#: gnu/packages/web.scm:5488
+#: gnu/packages/web.scm:5476
 msgid ""
 "LinkChecker is a website validator.  It checks for broken\n"
 "links in websites.  It is recursive and multithreaded providing output in\n"
@@ -19204,100 +21882,101 @@ msgid ""
 "file links."
 msgstr ""
 
-#: gnu/packages/web.scm:5529
-#, fuzzy
+#: gnu/packages/web.scm:5512
 msgid "Command-line WebDAV client"
-msgstr "Respuesta inesperada a orrden de CLIENTE: `%s'"
+msgstr "Cliente WebDAV por mandato lineal"
 
-#: gnu/packages/web.scm:5531
+#: gnu/packages/web.scm:5514
 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:5549
+#: gnu/packages/web.scm:5532
 msgid "Universal Binary JSON encoder/decoder"
-msgstr ""
+msgstr "Codificador/decodificador JSON Binario Universal"
 
-#: gnu/packages/web.scm:5551
+#: gnu/packages/web.scm:5534
 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:5599
+#: gnu/packages/web.scm:5596
 msgid ""
 "Java Servlet, JavaServer Pages, Java Expression Language and Java\n"
 "WebSocket"
 msgstr ""
+"Java Servlet, JavaServer Pages, Java Expression Language y Java\n"
+"WebSocket"
 
-#: gnu/packages/web.scm:5601
+#: gnu/packages/web.scm:5598
 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:5651
+#: gnu/packages/web.scm:5649
 msgid "Helper classes for jetty tests"
 msgstr "Clases ayudante para pruebas Jetty"
 
-#: gnu/packages/web.scm:5652
+#: gnu/packages/web.scm:5650
 msgid ""
 "This packages contains helper classes for testing the Jetty\n"
 "Web Server."
 msgstr ""
 
-#: gnu/packages/web.scm:5714
+#: gnu/packages/web.scm:5712
 msgid "Utility classes for Jetty"
 msgstr "Clases utilidad para Jetty"
 
-#: gnu/packages/web.scm:5715
+#: gnu/packages/web.scm:5713
 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:5786
+#: gnu/packages/web.scm:5784
 msgid "Jetty :: IO Utility"
 msgstr "Utilidad Jetty :: E/S"
 
-#: gnu/packages/web.scm:5787
+#: gnu/packages/web.scm:5785
 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:5830
+#: gnu/packages/web.scm:5828
 msgid "Jetty :: Http Utility"
 msgstr "Utilidad Jetty :: Http"
 
-#: gnu/packages/web.scm:5831
+#: gnu/packages/web.scm:5829
 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:5864
+#: gnu/packages/web.scm:5862
 msgid "Jetty :: JMX Management"
 msgstr "Gestión Jetty :: JMX"
 
-#: gnu/packages/web.scm:5865
+#: gnu/packages/web.scm:5863
 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:5951
+#: gnu/packages/web.scm:5950
 msgid "Core jetty server artifact"
 msgstr ""
 
-#: gnu/packages/web.scm:5952
+#: gnu/packages/web.scm:5951
 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"
@@ -19329,11 +22008,24 @@ msgid ""
 "container."
 msgstr ""
 
-#: gnu/packages/web.scm:6087
+#: gnu/packages/web.scm:6204
+#, fuzzy
+#| msgid "Perl HTML parser class"
+msgid "HTML parser"
+msgstr "Clase interpretada HTML en Perl"
+
+#: gnu/packages/web.scm:6205
+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
 msgid "Validate HTML"
 msgstr "Validar HTML"
 
-#: gnu/packages/web.scm:6088
+#: gnu/packages/web.scm:6227
 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"
@@ -19343,22 +22035,112 @@ msgid ""
 "based on this library, allowing Perl programmers to easily validate HTML."
 msgstr ""
 
-#: gnu/packages/web.scm:6129
+#: gnu/packages/web.scm:6268
 msgid "(X)HTML validation in a Perl object"
-msgstr ""
+msgstr "Validación (X)HTML dentro de objeto Perl"
 
-#: gnu/packages/web.scm:6130
+#: gnu/packages/web.scm:6269
 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/wordnet.scm:86
+#: gnu/packages/web.scm:6296
+msgid "Small Gopher server"
+msgstr ""
+
+#: gnu/packages/web.scm:6298
+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:6346
+#, fuzzy
+#| msgid "Random password generator"
+msgid "Random avatar generator"
+msgstr "Generador de contraseñas aleatorias"
+
+#: gnu/packages/web.scm:6347
+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
+msgid "HTTP/2 protocol client, proxy, server, and library"
+msgstr ""
+
+#: gnu/packages/web.scm:6415
+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 compatibilty 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:6515
+msgid "Web interface for cluster deployments of Guix"
+msgstr ""
+
+#: gnu/packages/web.scm:6516
+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
+msgid "Easy-to-use offline browser utility"
+msgstr ""
+
+#: gnu/packages/web.scm:6538
+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"
+"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/wordnet.scm:92
 msgid "Lexical database for the English language"
 msgstr ""
 
-#: gnu/packages/wordnet.scm:88
+#: 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 (synsets),\n"
@@ -19370,11 +22152,11 @@ msgid ""
 "language processing."
 msgstr ""
 
-#: gnu/packages/xiph.scm:68
+#: gnu/packages/xiph.scm:70
 msgid "Library for manipulating the ogg multimedia format"
 msgstr ""
 
-#: gnu/packages/xiph.scm:70
+#: gnu/packages/xiph.scm:72
 msgid ""
 "The libogg library allows to manipulate the ogg multimedia container\n"
 "format, which encapsulates raw compressed data and allows the interleaving of\n"
@@ -19383,11 +22165,11 @@ msgid ""
 "periodic timestamps for seeking."
 msgstr ""
 
-#: gnu/packages/xiph.scm:94
+#: gnu/packages/xiph.scm:96
 msgid "Library implementing the vorbis audio format"
 msgstr ""
 
-#: gnu/packages/xiph.scm:96
+#: gnu/packages/xiph.scm:98
 msgid ""
 "The libvorbis library implements the ogg vorbis audio format,\n"
 "a fully open, non-proprietary, patent-and-royalty-free, general-purpose\n"
@@ -19396,22 +22178,22 @@ msgid ""
 "128 kbps/channel."
 msgstr ""
 
-#: gnu/packages/xiph.scm:121
+#: gnu/packages/xiph.scm:123
 msgid "Library implementing the Theora video format"
 msgstr ""
 
-#: gnu/packages/xiph.scm:123
+#: gnu/packages/xiph.scm:125
 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:148
+#: gnu/packages/xiph.scm:150
 msgid "Library for patent-free audio compression format"
 msgstr ""
 
-#: gnu/packages/xiph.scm:150
+#: gnu/packages/xiph.scm:152
 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"
@@ -19419,21 +22201,21 @@ msgid ""
 "stereo encoding, and voice activity detection."
 msgstr ""
 
-#: gnu/packages/xiph.scm:176
+#: gnu/packages/xiph.scm:178
 msgid "Speex processing library"
 msgstr "Biblioteca de procesamiento Speex"
 
-#: gnu/packages/xiph.scm:178
+#: gnu/packages/xiph.scm:180
 msgid ""
 "SpeexDSP is a @dfn{DSP} (Digital Signal Processing) library based on\n"
 "work from the @code{speex} codec."
 msgstr ""
 
-#: gnu/packages/xiph.scm:205
+#: gnu/packages/xiph.scm:207
 msgid "Cross platform audio library"
-msgstr ""
+msgstr "Plataforma de biblioteca de sonido cruzada"
 
-#: gnu/packages/xiph.scm:207
+#: gnu/packages/xiph.scm:209
 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"
@@ -19459,21 +22241,21 @@ msgid ""
 "@end enumerate\n"
 msgstr ""
 
-#: gnu/packages/xiph.scm:249
+#: gnu/packages/xiph.scm:252
 msgid "Free lossless audio codec"
-msgstr ""
+msgstr "Código de sonido sin pérdida libre"
 
-#: gnu/packages/xiph.scm:251
+#: gnu/packages/xiph.scm:254
 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:277
+#: gnu/packages/xiph.scm:288
 msgid "Karaoke and text codec for embedding in ogg"
-msgstr ""
+msgstr "Karaoke y código textual para empotrar en ogg"
 
-#: gnu/packages/xiph.scm:279
+#: gnu/packages/xiph.scm:290
 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"
@@ -19488,11 +22270,11 @@ msgid ""
 "Kate stream."
 msgstr ""
 
-#: gnu/packages/xiph.scm:317
+#: gnu/packages/xiph.scm:328
 msgid "Ogg vorbis tools"
 msgstr "Herramientas Ogg Vorbis"
 
-#: gnu/packages/xiph.scm:319
+#: gnu/packages/xiph.scm:330
 msgid ""
 "Ogg vorbis is a non-proprietary, patent-and-royalty-free,\n"
 "general-purpose compressed audio format.\n"
@@ -19505,11 +22287,11 @@ msgid ""
 "         an ogg vorbis file."
 msgstr ""
 
-#: gnu/packages/xiph.scm:343 gnu/packages/xiph.scm:406
+#: gnu/packages/xiph.scm:354 gnu/packages/xiph.scm:420
 msgid "Versatile audio codec"
 msgstr "Código de sonido versátil"
 
-#: gnu/packages/xiph.scm:345
+#: gnu/packages/xiph.scm:356
 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"
@@ -19518,29 +22300,41 @@ msgid ""
 "incorporated technology from Skype's SILK codec and Xiph.Org's CELT codec."
 msgstr ""
 
-#: gnu/packages/xiph.scm:379
+#: gnu/packages/xiph.scm:393
 msgid "Command line utilities to encode, inspect, and decode .opus files"
-msgstr ""
+msgstr "Utilidades de línea de mandato para codificar, inspeccionar y decodificar ficheros .opus"
 
-#: gnu/packages/xiph.scm:380
+#: gnu/packages/xiph.scm:394
 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:408
+#: gnu/packages/xiph.scm:422
 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:438
+#: gnu/packages/xiph.scm:444
+#, 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
+msgid ""
+"The libopusenc libraries provide a high-level API for\n"
+"encoding Opus files and streams."
+msgstr ""
+
+#: gnu/packages/xiph.scm:474
 msgid "Streaming media server"
 msgstr "Medio por flujo del servidor"
 
-#: gnu/packages/xiph.scm:439
+#: gnu/packages/xiph.scm:475
 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"
@@ -19548,37 +22342,46 @@ msgid ""
 "things in between."
 msgstr ""
 
-#: gnu/packages/xiph.scm:467
+#: gnu/packages/xiph.scm:503
 msgid "Audio streaming library for icecast encoders"
 msgstr ""
 
-#: gnu/packages/xiph.scm:469
+#: gnu/packages/xiph.scm:505
 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:212
+#: 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
 msgid ""
 "Populate the @file{/etc/fstab} based on the given file\n"
 "system objects."
 msgstr ""
 
-#: gnu/services/base.scm:356
+#: gnu/services/base.scm:527
 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:555
+#: gnu/services/base.scm:617
 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:694
+#: gnu/services/base.scm:783
 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"
@@ -19589,56 +22392,56 @@ msgid ""
 "@end example\n"
 msgstr ""
 
-#: gnu/services/base.scm:737
+#: gnu/services/base.scm:827
 msgid ""
 "Provide a console log-in service as specified by its\n"
 "configuration value, a @code{login-configuration} object."
 msgstr ""
 
-#: gnu/services/base.scm:956
+#: gnu/services/base.scm:1090
 msgid ""
 "Provide console login using the @command{agetty}\n"
 "program."
 msgstr ""
 
-#: gnu/services/base.scm:1010
+#: gnu/services/base.scm:1151
 msgid ""
 "Provide console login using the @command{mingetty}\n"
 "program."
 msgstr ""
 
-#: gnu/services/base.scm:1182
+#: gnu/services/base.scm:1368
 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:1282
+#: gnu/services/base.scm:1468
 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:1458
+#: gnu/services/base.scm:1714
 msgid "Run the build daemon of GNU@tie{}Guix, aka. @command{guix-daemon}."
 msgstr ""
 
-#: gnu/services/base.scm:1558
+#: gnu/services/base.scm:1816
 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:1749
+#: gnu/services/base.scm:2026
 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:1824
+#: gnu/services/base.scm:2108
 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"
@@ -19646,7 +22449,7 @@ msgid ""
 "@code{ps2} protocol, which works for both USB and PS/2 mice."
 msgstr ""
 
-#: gnu/services/networking.scm:258
+#: gnu/services/base.scm:2292
 msgid ""
 "Turn up the specified network interfaces upon startup,\n"
 "with the given IP address, gateway, netmask, and so on.  The value for\n"
@@ -19654,58 +22457,222 @@ msgid ""
 "network interface."
 msgstr ""
 
-#: gnu/services/networking.scm:432
+#: gnu/services/certbot.scm:168
+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
 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:534
+#: gnu/services/networking.scm:488
+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
 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:689
+#: gnu/services/networking.scm:755
 msgid ""
 "Run the @uref{https://torproject.org, Tor} anonymous\n"
 "networking daemon."
 msgstr ""
 
-#: gnu/services/networking.scm:712
+#: gnu/services/networking.scm:779
 msgid "Define a new Tor @dfn{hidden service}."
-msgstr ""
-
-#: gnu/services/networking.scm:821
-msgid ""
-"Run @url{http://bitlbee.org,BitlBee}, a daemon that acts as\n"
-"a gateway between IRC and chat networks."
-msgstr ""
+msgstr "Define un Tor nuevo @dfn{servicio oculto}."
 
-#: gnu/services/networking.scm:888
+#: gnu/services/networking.scm:847
 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:977
+#: gnu/services/networking.scm:947
 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:1035
+#: gnu/services/networking.scm:1015
 msgid ""
 "Run @url{https://01.org/connman,Connman},\n"
 "a network connection manager."
 msgstr ""
 
-#: gnu/services/networking.scm:1124
+#: gnu/services/networking.scm:1038
+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
+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
 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
+msgid "Run @command{iptables-restore}, setting up the specified rules."
+msgstr ""
+
+#: gnu/services/version-control.scm:160
+msgid ""
+"Expose Git respositories 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 "Web server interface for R"
+#~ msgstr "Servicio web para R"
+
+#~ msgid "JSON library for R"
+#~ msgstr "Biblioteca JSON para R"
+
+#~ msgid "Output R objects in HTML format"
+#~ msgstr "Salida de objetos R en formato HTML"
+
+#~ msgid "HTTP client for R"
+#~ msgstr "Cliente HTTP para R"
+
+#~ msgid "Advanced tables for Markdown/HTML"
+#~ msgstr "Distribuciones avanzadas para Markdown/HTML"
+
+#~ msgid "HTML Widgets for R"
+#~ msgstr "Cubiertas HTML para R"
+
+#~ msgid "R tools for HTML"
+#~ msgstr "Herramientas R para HTML"
+
+#~ msgid "Distributed Revision Control System"
+#~ msgstr "Sistema de Control de Revisión Distribuido"
+
+#~ msgid "Fish completions for Guix"
+#~ msgstr "Complementaciones de pez para Guix"
+
+#~ msgid "Perl API to zip files"
+#~ msgstr "API Perl para ficheros zip"
+
+#~ msgid "Python bindings for Poppler-Qt4"
+#~ msgstr "Enlaces binarios para Poppler-Qt4"
+
+#~ msgid "Improved whois client"
+#~ msgstr "Cliente whois mejorado"
+
+#~ msgid "Colorized REPL for Guile"
+#~ msgstr "REPL colorizado para Guile"
+
+#~ msgid "Extend Bash using Guile"
+#~ msgstr "Extiende Bash utilizando Guile"
+
+#, fuzzy
+#~ msgid "Spell-checking from Guile"
+#~ msgstr "BD Access SQLite desde Guile"
+
+#~ msgid "CommonMark parser for Guile"
+#~ msgstr "Interprete CommonMark para Guile"
+
+#~ msgid "XOSD bindings for Guile"
+#~ msgstr "Enlazando XOSD para Guile"
+
+#~ msgid "DSV module for Guile"
+#~ msgstr "Módulo DSV para Guile"
+
+#~ msgid "Guile DBI driver for SQLite"
+#~ msgstr "Controlador DBI Guile para SQLite"
+
+#~ msgid "Guile database abstraction layer"
+#~ msgstr "Capa abstracta de BBDD Guile"
+
+#~ msgid "2D/3D game engine for GNU Guile"
+#~ msgstr "Motor de juego 2D/3D para GNU Guile"
+
+#~ 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"
+
+#, fuzzy
+#~ msgid "S-expression based regular expressions"
+#~ msgstr "%s: la expresión regular no es válida: %s"
+
+#~ msgid "Guile bindings to ncurses"
+#~ msgstr "Enlazando Guile para ncurses"
+
+#~ msgid "Package manager for Guile"
+#~ msgstr "Gestor de Paquetes para Guile"
+
+#~ msgid "Network Security Services"
+#~ msgstr "Seguridad de Servicios de Red"
+
+#~ msgid "Nintendo multi-system emulator"
+#~ msgstr "Emulador Nintendo multi-sistema"
+
+#~ msgid "Nintendo DS emulator"
+#~ msgstr "Emulador Nintendo DS"
+
+#~ msgid "Ball and paddle game"
+#~ msgstr "Juego de pelota y paleta"
+
+#~ msgid "The SQLite database management system"
+#~ msgstr "El sistema gestor de BBDD SQLite"
+
+#~ msgid "Berkeley database"
+#~ msgstr "DB Berkeley"
+
+#~ msgid "XZ in Java"
+#~ msgstr "XZ en Java"
+
+#~ msgid "Provides an interface to ZIP archive files"
+#~ msgstr "Proporciona un interfaz para ficheros archivos ZIP"
+
+#~ msgid "Java bzip2 compression/decompression library"
+#~ msgstr "Biblioteca compresión/descompresión bzip2 en Java"
+
+#~ msgid "Java port of snappy"
+#~ msgstr "Puerto Java ágil"
+
+#~ msgid "Compression/decompression algorithm in Java"
+#~ msgstr "Compresión/descompresión algorítmica en Java"
+
+#~ msgid "String compression"
+#~ msgstr "Compresión de cadena"
+
+#~ 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 6a69172c7a..9f4c1ff378 100644
--- a/po/packages/fr.po
+++ b/po/packages/fr.po
@@ -5,10 +5,10 @@
 # Julien Lepiller <julien@lepiller.eu>, 2018.
 msgid ""
 msgstr ""
-"Project-Id-Version: guix-packages 0.16.0\n"
+"Project-Id-Version: guix-packages 1.0.0-pre2\n"
 "Report-Msgid-Bugs-To: ludo@gnu.org\n"
-"POT-Creation-Date: 2018-11-28 15:05+0100\n"
-"PO-Revision-Date: 2018-11-30 21:50+0100\n"
+"POT-Creation-Date: 2019-04-24 13:25+0200\n"
+"PO-Revision-Date: 2019-04-24 21:46+0200\n"
 "Last-Translator: Julien Lepiller <julien@lepiller.eu>\n"
 "Language-Team: French <traduc@traduc.org>\n"
 "Language: fr\n"
@@ -19,7 +19,7 @@ msgstr ""
 "X-Bugs: Report translation errors to the Language-Team address.\n"
 "X-Generator: Offlate 0.1\n"
 
-#: gnu/packages/abiword.scm:114
+#: gnu/packages/abiword.scm:115
 msgid "Word processing program"
 msgstr "Éditeur de texte"
 
@@ -27,7 +27,7 @@ msgstr "Éditeur de texte"
 #. 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:123
+#: gnu/packages/abiword.scm:124
 msgid ""
 "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"
@@ -38,7 +38,7 @@ msgstr ""
 "pour votre travail quotidien, vos besoins personnels ou juste pour\n"
 "le plaisir de taper."
 
-#: gnu/packages/aspell.scm:85 gnu/packages/libreoffice.scm:777
+#: gnu/packages/aspell.scm:85 gnu/packages/libreoffice.scm:771
 msgid "Spell checker"
 msgstr "Correcteur orthographique"
 
@@ -60,7 +60,7 @@ msgstr ""
 "Ce paquet fournit un dictionnaire pour le correcteur orthographique\n"
 "GNU Aspell."
 
-#: gnu/packages/aspell.scm:310 gnu/packages/libreoffice.scm:827
+#: gnu/packages/aspell.scm:324 gnu/packages/libreoffice.scm:821
 msgid ""
 "This package provides a dictionary for the Hunspell spell-checking\n"
 "library."
@@ -68,35 +68,35 @@ msgstr ""
 "Ce paquet fournit un dictionnaire pour le correcteur orthographique\n"
 "Hunspell."
 
-#: gnu/packages/aspell.scm:328
+#: gnu/packages/aspell.scm:342
 msgid "Hunspell dictionary for English"
 msgstr "Dictionnaire Hunspell pour l'anglais"
 
-#: gnu/packages/aspell.scm:332
+#: gnu/packages/aspell.scm:346
 msgid "Hunspell dictionary for Australian English"
 msgstr "Dictionnaire Hunspell pour l'anglais australien"
 
-#: gnu/packages/aspell.scm:336
+#: gnu/packages/aspell.scm:350
 msgid "Hunspell dictionary for Canadian English"
 msgstr "Dictionnaire Hunspell pour l'anglais canadien"
 
-#: gnu/packages/aspell.scm:340
+#: gnu/packages/aspell.scm:354
 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:344
+#: gnu/packages/aspell.scm:358
 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:348
+#: gnu/packages/aspell.scm:362
 msgid "Hunspell dictionary for United States English"
 msgstr "Dictionnaire Hunspell pour l'anglais états-unien"
 
-#: gnu/packages/audio.scm:140
+#: gnu/packages/audio.scm:147
 msgid "Realtime modular synthesizer and effect processor"
 msgstr "Synthétiseur modulaire en temps réel et traitement d'effets"
 
-#: gnu/packages/audio.scm:142
+#: gnu/packages/audio.scm:149
 msgid ""
 "AlsaModularSynth is a digital implementation of a classical analog\n"
 "modular synthesizer system.  It uses virtual control voltages to control the\n"
@@ -110,11 +110,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:181
+#: gnu/packages/audio.scm:188
 msgid "Library for audio labelling"
 msgstr "Bibliothèque pour l'étiquetage de fichiers audio"
 
-#: gnu/packages/audio.scm:183
+#: gnu/packages/audio.scm:190
 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"
@@ -126,11 +126,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:285
+#: gnu/packages/audio.scm:314
 msgid "Digital audio workstation"
 msgstr "Station de travail audio numérique"
 
-#: gnu/packages/audio.scm:287
+#: gnu/packages/audio.scm:316
 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"
@@ -141,11 +141,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:425
+#: gnu/packages/audio.scm:454
 msgid "Software for recording and editing sounds"
 msgstr "Logiciel pour enregistrer et modifier des sons"
 
-#: gnu/packages/audio.scm:427
+#: gnu/packages/audio.scm:456
 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"
@@ -155,22 +155,22 @@ msgstr ""
 "et modifier des sons numériques. Il propose des effets numériques et des\n"
 "outils d'analyse spectrale."
 
-#: gnu/packages/audio.scm:463
+#: gnu/packages/audio.scm:492
 msgid "Pitch-correction LADSPA audio plugin"
 msgstr ""
 
-#: gnu/packages/audio.scm:465
+#: gnu/packages/audio.scm:494
 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:509
+#: gnu/packages/audio.scm:538
 msgid "Tonewheel organ synthesizer"
 msgstr "Synthétiseur d'organe tonewheel"
 
-#: gnu/packages/audio.scm:511
+#: gnu/packages/audio.scm:540
 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"
@@ -179,11 +179,11 @@ msgid ""
 "plugins are provided."
 msgstr ""
 
-#: gnu/packages/audio.scm:548
+#: gnu/packages/audio.scm:577
 msgid "Audio plug-in pack for LV2 and JACK environments"
 msgstr ""
 
-#: gnu/packages/audio.scm:550
+#: gnu/packages/audio.scm:579
 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"
@@ -192,46 +192,33 @@ msgid ""
 "tools (analyzer, mono/stereo tools, crossovers)."
 msgstr ""
 
-#: gnu/packages/audio.scm:593
+#: gnu/packages/audio.scm:622
 msgid "LV2 port of the CAPS audio plugin colection"
 msgstr "Port LV2 de la collection de greffons audio CAPS"
 
-#: gnu/packages/audio.scm:595
+#: gnu/packages/audio.scm:624
 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:645
-msgid "Software speech synthesizer"
-msgstr ""
-
-#: gnu/packages/audio.scm:646
-msgid ""
-"eSpeak is a software speech synthesizer for English and\n"
-"other languages.  eSpeak uses a \"formant synthesis\" method.  This allows many\n"
-"languages to be provided in a small size.  The speech is clear, and can be used\n"
-"at high speeds, but is not as natural or smooth as larger synthesizers which are\n"
-"based on human speech recordings."
-msgstr ""
-
-#: gnu/packages/audio.scm:685
+#: gnu/packages/audio.scm:661
 msgid "LV2 plugins for live use"
 msgstr ""
 
-#: gnu/packages/audio.scm:687
+#: gnu/packages/audio.scm:663
 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:729
+#: gnu/packages/audio.scm:705
 msgid "SWH plugins in LV2 format"
 msgstr ""
 
-#: gnu/packages/audio.scm:731
+#: gnu/packages/audio.scm:707
 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 +226,42 @@ msgid ""
 "emulation (valve, tape), bit fiddling (decimator, pointer-cast), etc."
 msgstr ""
 
-#: gnu/packages/audio.scm:765
+#: gnu/packages/audio.scm:741
 msgid "Sound and music computing system"
 msgstr ""
 
-#: gnu/packages/audio.scm:767
+#: gnu/packages/audio.scm:743
 msgid ""
 "Csound is a user-programmable and user-extensible sound processing\n"
 "language and software synthesizer."
 msgstr ""
 
-#: gnu/packages/audio.scm:808 gnu/packages/audio.scm:3085
+#: gnu/packages/audio.scm:785 gnu/packages/audio.scm:3112
 msgid "C++ wrapper around the ALSA API"
 msgstr ""
 
-#: gnu/packages/audio.scm:810
+#: gnu/packages/audio.scm:787
 msgid ""
 "clalsadrv is a C++ wrapper around the ALSA API simplifying access to\n"
 "ALSA PCM devices."
 msgstr ""
 
-#: gnu/packages/audio.scm:847
+#: gnu/packages/audio.scm:824
 msgid "LADSPA ambisonics plugins"
 msgstr ""
 
-#: gnu/packages/audio.scm:849
+#: gnu/packages/audio.scm:826
 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:884
+#: gnu/packages/audio.scm:861
 msgid "Chorus, phaser, and vintage high-pass and low-pass filters"
 msgstr ""
 
-#: gnu/packages/audio.scm:886
+#: gnu/packages/audio.scm:863
 msgid ""
 "This package provides various LADSPA plugins.  @code{cs_chorus} and\n"
 "@code{cs_phaser} provide chorus and phaser effects, respectively;\n"
@@ -284,21 +271,21 @@ msgid ""
 "the non-linear circuit elements of their original analog counterparts."
 msgstr ""
 
-#: gnu/packages/audio.scm:924
+#: gnu/packages/audio.scm:901
 msgid "LADSPA reverb plugin"
 msgstr ""
 
-#: gnu/packages/audio.scm:926
+#: gnu/packages/audio.scm:903
 msgid ""
 "This package provides a stereo reverb LADSPA plugin based on the\n"
 "well-known greverb."
 msgstr ""
 
-#: gnu/packages/audio.scm:960
+#: gnu/packages/audio.scm:937
 msgid "LADSPA four-band parametric equalizer plugin"
 msgstr ""
 
-#: gnu/packages/audio.scm:962
+#: gnu/packages/audio.scm:939
 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"
@@ -307,17 +294,17 @@ msgid ""
 "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 'live'\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:1005
+#: gnu/packages/audio.scm:982
 msgid "LADSPA stereo width plugin"
 msgstr ""
 
-#: gnu/packages/audio.scm:1007
+#: gnu/packages/audio.scm:984
 msgid ""
 "This package provides a LADSPA plugin to manipulate the stereo width of\n"
 "audio signals."
@@ -325,11 +312,11 @@ msgstr ""
 "Ce paquet fournit des un greffon LADSPA pour manipuler la profondeur\n"
 "des signaux audio."
 
-#: gnu/packages/audio.scm:1042
+#: gnu/packages/audio.scm:1019
 msgid "LADSPA plugin for synthesizer oscillators"
 msgstr ""
 
-#: gnu/packages/audio.scm:1044
+#: gnu/packages/audio.scm:1021
 msgid ""
 "The @code{blvco} LADSPA plugin provides three anti-aliased oscillators:\n"
 "\n"
@@ -344,11 +331,11 @@ msgid ""
 "output of analog synthesizers such as the Moog Voyager."
 msgstr ""
 
-#: gnu/packages/audio.scm:1086
+#: gnu/packages/audio.scm:1063
 msgid "LADSPA Autowah effect plugin"
 msgstr ""
 
-#: gnu/packages/audio.scm:1088
+#: gnu/packages/audio.scm:1065
 msgid ""
 "This package provides a LADSPA plugin for a Wah effect with envelope\n"
 "follower."
@@ -356,19 +343,19 @@ msgstr ""
 "Ce paquet fournit un greffon LADSPA pour l'effet Wah avec un suiveur\n"
 "d'enveloppe."
 
-#: gnu/packages/audio.scm:1122
+#: gnu/packages/audio.scm:1099
 msgid "LADSPA stereo reverb plugin"
 msgstr ""
 
-#: gnu/packages/audio.scm:1124
+#: gnu/packages/audio.scm:1101
 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:1163
+#: gnu/packages/audio.scm:1140
 msgid "SoundFont synthesizer"
 msgstr ""
 
-#: gnu/packages/audio.scm:1165
+#: gnu/packages/audio.scm:1142
 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"
@@ -376,39 +363,39 @@ msgid ""
 "also play midifiles using a Soundfont."
 msgstr ""
 
-#: gnu/packages/audio.scm:1212
+#: gnu/packages/audio.scm:1189
 msgid "MPEG-4 and MPEG-2 AAC decoder"
 msgstr ""
 
-#: gnu/packages/audio.scm:1214
+#: 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+."
 msgstr ""
 
-#: gnu/packages/audio.scm:1254
+#: gnu/packages/audio.scm:1231
 msgid "Signal processing language"
 msgstr ""
 
-#: gnu/packages/audio.scm:1256
+#: gnu/packages/audio.scm:1233
 msgid "Faust is a programming language for realtime audio signal processing."
 msgstr ""
 
-#: gnu/packages/audio.scm:1323
+#: gnu/packages/audio.scm:1300
 msgid "GUS compatible patches for MIDI players"
 msgstr ""
 
-#: gnu/packages/audio.scm:1325
+#: gnu/packages/audio.scm:1302
 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:1378
+#: gnu/packages/audio.scm:1368
 msgid "Virtual guitar amplifier"
 msgstr ""
 
-#: gnu/packages/audio.scm:1379
+#: gnu/packages/audio.scm:1369
 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"
@@ -419,11 +406,11 @@ msgid ""
 "auto-wah."
 msgstr ""
 
-#: gnu/packages/audio.scm:1433
+#: gnu/packages/audio.scm:1423
 msgid "Audio effects processor"
 msgstr ""
 
-#: gnu/packages/audio.scm:1435
+#: gnu/packages/audio.scm:1425
 msgid ""
 "Rakarrack is a richly featured multi-effects processor emulating a\n"
 "guitar effects pedalboard.  Effects include compressor, expander, noise gate,\n"
@@ -435,22 +422,22 @@ msgid ""
 "well suited to all musical instruments and vocals."
 msgstr ""
 
-#: gnu/packages/audio.scm:1486
+#: gnu/packages/audio.scm:1476
 msgid "LV2 convolution reverb"
 msgstr ""
 
-#: gnu/packages/audio.scm:1488
+#: gnu/packages/audio.scm:1478
 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:1526
+#: gnu/packages/audio.scm:1516
 msgid "JACK audio connection kit"
 msgstr ""
 
-#: gnu/packages/audio.scm:1528
+#: gnu/packages/audio.scm:1518
 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"
@@ -460,32 +447,32 @@ msgid ""
 "synchronous execution of all clients, and low latency operation."
 msgstr ""
 
-#: gnu/packages/audio.scm:1624
+#: gnu/packages/audio.scm:1616
 msgid "Simple LV2 host for JACK"
 msgstr ""
 
-#: gnu/packages/audio.scm:1626
+#: gnu/packages/audio.scm:1618
 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:1669
+#: gnu/packages/audio.scm:1662
 msgid "Linux Audio Developer's Simple Plugin API (LADSPA)"
 msgstr ""
 
-#: gnu/packages/audio.scm:1671
+#: gnu/packages/audio.scm:1664
 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:1717
+#: gnu/packages/audio.scm:1710
 msgid "Audio application session manager"
 msgstr ""
 
-#: gnu/packages/audio.scm:1719
+#: gnu/packages/audio.scm:1712
 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"
@@ -493,11 +480,11 @@ msgid ""
 "connections between them."
 msgstr ""
 
-#: gnu/packages/audio.scm:1740
+#: gnu/packages/audio.scm:1733
 msgid "Bauer stereophonic-to-binaural DSP"
 msgstr ""
 
-#: gnu/packages/audio.scm:1742
+#: gnu/packages/audio.scm:1735
 msgid ""
 "The Bauer stereophonic-to-binaural DSP (bs2b) library and plugins is\n"
 "designed to improve headphone listening of stereo audio records.  Recommended\n"
@@ -505,21 +492,21 @@ msgid ""
 "essential distortions."
 msgstr ""
 
-#: gnu/packages/audio.scm:1765
+#: gnu/packages/audio.scm:1758
 msgid "Implementation of the Open Sound Control protocol"
 msgstr "Implantation du protocole Open Sound Control"
 
-#: gnu/packages/audio.scm:1767
+#: gnu/packages/audio.scm:1760
 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:1790
+#: gnu/packages/audio.scm:1779
 msgid "Bindings for PortAudio v19"
 msgstr "Liaisons pour PortAudio v19"
 
-#: gnu/packages/audio.scm:1791
+#: gnu/packages/audio.scm:1780
 msgid ""
 "This package provides bindings for PortAudio v19, the\n"
 "cross-platform audio input/output stream library."
@@ -527,11 +514,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:1816
+#: gnu/packages/audio.scm:1805
 msgid "Python bindings for liblo"
 msgstr ""
 
-#: gnu/packages/audio.scm:1818
+#: gnu/packages/audio.scm:1807
 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"
@@ -539,22 +526,22 @@ msgid ""
 "included are the command line utilities @code{send_osc} and @code{dump_osc}."
 msgstr ""
 
-#: gnu/packages/audio.scm:1859
+#: gnu/packages/audio.scm:1848
 msgid "Library to simplify use of LV2 plugins in applications"
 msgstr ""
 
-#: gnu/packages/audio.scm:1861
+#: gnu/packages/audio.scm:1850
 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:1887
+#: gnu/packages/audio.scm:1876
 msgid "LV2 audio plugin specification"
 msgstr ""
 
-#: gnu/packages/audio.scm:1889
+#: gnu/packages/audio.scm:1878
 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"
@@ -562,38 +549,38 @@ msgid ""
 "software."
 msgstr ""
 
-#: gnu/packages/audio.scm:1941
+#: gnu/packages/audio.scm:1914
 msgid "LV2 port of the mda Piano plugin"
 msgstr "Port LV2 du greffon mda Piano"
 
-#: gnu/packages/audio.scm:1942
+#: gnu/packages/audio.scm:1915
 msgid "An LV2 port of the mda Piano VSTi."
 msgstr "Un port LV2 du VSTi mda Piano."
 
-#: gnu/packages/audio.scm:1955
+#: gnu/packages/audio.scm:1928
 msgid "LV2 port of the mda EPiano plugin"
 msgstr "Port LV2 du greffon mda EPiano"
 
-#: gnu/packages/audio.scm:1956
+#: gnu/packages/audio.scm:1929
 msgid "An LV2 port of the mda EPiano VSTi."
 msgstr "Un port LV2 du VSTi mda EPiano."
 
-#: gnu/packages/audio.scm:2001
+#: gnu/packages/audio.scm:1974
 msgid "C++ libraries for LV2 plugins"
 msgstr ""
 
-#: gnu/packages/audio.scm:2003
+#: gnu/packages/audio.scm:1976
 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:2044
+#: gnu/packages/audio.scm:2017
 msgid "3D audio API"
 msgstr ""
 
-#: gnu/packages/audio.scm:2046
+#: gnu/packages/audio.scm:2019
 msgid ""
 "OpenAL provides capabilities for playing audio in a virtual 3D\n"
 "environment.  Distance attenuation, doppler shift, and directional sound\n"
@@ -603,50 +590,60 @@ msgid ""
 "buffers, and audio capture."
 msgstr ""
 
-#: gnu/packages/audio.scm:2076
+#: gnu/packages/audio.scm:2049
 msgid "Free implementation of OpenAL's ALUT standard"
 msgstr ""
 
-#: gnu/packages/audio.scm:2077
+#: gnu/packages/audio.scm:2050
 msgid "freealut is the OpenAL Utility Toolkit."
 msgstr ""
 
-#: gnu/packages/audio.scm:2106
+#: gnu/packages/audio.scm:2081
 msgid "Modular patch bay for audio and MIDI systems"
 msgstr ""
 
-#: gnu/packages/audio.scm:2108
+#: gnu/packages/audio.scm:2083
 msgid ""
 "Patchage is a modular patch bay for audio and MIDI systems based on JACK\n"
 "and ALSA."
 msgstr ""
 
-#: gnu/packages/audio.scm:2135
+#: gnu/packages/audio.scm:2111
+msgid "Portable C audio library"
+msgstr "Bibliothèque audio portable en C"
+
+#: gnu/packages/audio.scm:2113
+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
 msgid "Jack server control application"
 msgstr ""
 
-#: gnu/packages/audio.scm:2136
+#: gnu/packages/audio.scm:2144
 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:2169
+#: gnu/packages/audio.scm:2177
 msgid "Stereo audio recorder for JACK"
 msgstr ""
 
-#: gnu/packages/audio.scm:2170
+#: gnu/packages/audio.scm:2178
 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:2267
+#: gnu/packages/audio.scm:2261
 msgid "Synthesis engine and programming language"
 msgstr "Moteur de synthèse et langage de programmation"
 
-#: gnu/packages/audio.scm:2268
+#: gnu/packages/audio.scm:2262
 msgid ""
 "SuperCollider is a synthesis engine (@code{scsynth} or\n"
 "@code{supernova}) and programming language (@code{sclang}).  It can be used\n"
@@ -655,55 +652,55 @@ msgid ""
 "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 GuixSD."
+"using Guix System."
 msgstr ""
 
-#: gnu/packages/audio.scm:2299
+#: gnu/packages/audio.scm:2293
 msgid "Real-time audio utility library"
 msgstr ""
 
-#: gnu/packages/audio.scm:2301
+#: gnu/packages/audio.scm:2295
 msgid ""
 "Raul (Real-time Audio Utility Library) is a C++ utility library primarily\n"
 "aimed at audio/musical applications."
 msgstr ""
 
-#: gnu/packages/audio.scm:2345
+#: gnu/packages/audio.scm:2349
 msgid "Audio time-stretching and pitch-shifting library"
 msgstr ""
 
-#: gnu/packages/audio.scm:2347
+#: gnu/packages/audio.scm:2351
 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:2391
+#: gnu/packages/audio.scm:2395
 msgid "Cross-platform MIDI library for C++"
 msgstr ""
 
-#: gnu/packages/audio.scm:2393
+#: gnu/packages/audio.scm:2397
 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:2418
+#: gnu/packages/audio.scm:2422
 msgid "Library for serialising LV2 atoms to/from RDF"
 msgstr ""
 
-#: gnu/packages/audio.scm:2420
+#: gnu/packages/audio.scm:2424
 msgid ""
 "Sratom is a library for serialising LV2 atoms to/from RDF, particularly\n"
 "the Turtle syntax."
 msgstr ""
 
-#: gnu/packages/audio.scm:2448
+#: gnu/packages/audio.scm:2452
 msgid "Library for loading and wrapping LV2 plugin UIs"
 msgstr ""
 
-#: gnu/packages/audio.scm:2450
+#: gnu/packages/audio.scm:2454
 msgid ""
 "Suil is a lightweight C library for loading and wrapping LV2 plugin UIs.\n"
 "\n"
@@ -715,11 +712,11 @@ msgid ""
 "Suil currently supports every combination of Gtk, Qt, and X11."
 msgstr ""
 
-#: gnu/packages/audio.scm:2507
+#: gnu/packages/audio.scm:2511
 msgid "Software synthesizer for playing MIDI files"
 msgstr ""
 
-#: gnu/packages/audio.scm:2509
+#: gnu/packages/audio.scm:2513
 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"
@@ -728,43 +725,43 @@ msgid ""
 "disks as various audio file formats."
 msgstr ""
 
-#: gnu/packages/audio.scm:2547
+#: gnu/packages/audio.scm:2551
 msgid "Modular and extensible audio processing system"
 msgstr ""
 
-#: gnu/packages/audio.scm:2549
+#: gnu/packages/audio.scm:2553
 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:2588
+#: gnu/packages/audio.scm:2593
 msgid "Library for time stretching and pitch scaling of audio"
 msgstr ""
 
-#: gnu/packages/audio.scm:2590
+#: gnu/packages/audio.scm:2595
 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:2612
+#: gnu/packages/audio.scm:2617
 msgid "Hybrid lossless audio codec"
 msgstr ""
 
-#: gnu/packages/audio.scm:2614
+#: gnu/packages/audio.scm:2619
 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:2633
+#: gnu/packages/audio.scm:2638
 msgid "Mod file playing library"
 msgstr ""
 
-#: gnu/packages/audio.scm:2635
+#: gnu/packages/audio.scm:2640
 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"
@@ -772,33 +769,33 @@ msgid ""
 "surround and reverb."
 msgstr ""
 
-#: gnu/packages/audio.scm:2654
+#: gnu/packages/audio.scm:2659
 msgid "Module player library"
 msgstr ""
 
-#: gnu/packages/audio.scm:2656
+#: gnu/packages/audio.scm:2661
 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:2679
+#: gnu/packages/audio.scm:2684
 msgid "Extended module player"
 msgstr ""
 
-#: gnu/packages/audio.scm:2681
+#: gnu/packages/audio.scm:2686
 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:2709
+#: gnu/packages/audio.scm:2714
 msgid "Audio processing library for changing tempo, pitch and playback rate"
 msgstr ""
 
-#: gnu/packages/audio.scm:2711
+#: gnu/packages/audio.scm:2716
 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"
@@ -806,11 +803,11 @@ msgid ""
 "control functionality, or just for playing around with the sound effects."
 msgstr ""
 
-#: gnu/packages/audio.scm:2748
+#: gnu/packages/audio.scm:2753
 msgid "Sound processing utility"
 msgstr ""
 
-#: gnu/packages/audio.scm:2750
+#: gnu/packages/audio.scm:2755
 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"
@@ -818,92 +815,92 @@ msgid ""
 "can play and record audio files."
 msgstr ""
 
-#: gnu/packages/audio.scm:2773
+#: gnu/packages/audio.scm:2778
 msgid "One-dimensional sample-rate conversion library"
 msgstr ""
 
-#: gnu/packages/audio.scm:2775
+#: gnu/packages/audio.scm:2780
 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:2805
+#: gnu/packages/audio.scm:2810
 msgid "MPEG Audio Layer 2 (MP2) encoder"
 msgstr ""
 
-#: gnu/packages/audio.scm:2807
+#: gnu/packages/audio.scm:2812
 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:2840
+#: gnu/packages/audio.scm:2864
 msgid "Audio I/O library"
 msgstr ""
 
-#: gnu/packages/audio.scm:2842
+#: gnu/packages/audio.scm:2866
 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:2872
+#: gnu/packages/audio.scm:2895
 msgid "Graphical user interface for FluidSynth"
 msgstr ""
 
-#: gnu/packages/audio.scm:2874
+#: gnu/packages/audio.scm:2897
 msgid ""
 "Qsynth is a GUI front-end application for the FluidSynth SoundFont\n"
 "synthesizer written in C++."
 msgstr ""
 
-#: gnu/packages/audio.scm:2911
+#: gnu/packages/audio.scm:2934
 msgid "Networked audio system"
 msgstr ""
 
-#: gnu/packages/audio.scm:2913
+#: gnu/packages/audio.scm:2936
 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:2944
+#: gnu/packages/audio.scm:2967
 msgid "JACK audio frequency analyzer and display"
 msgstr ""
 
-#: gnu/packages/audio.scm:2946
+#: gnu/packages/audio.scm:2969
 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:2992
+#: gnu/packages/audio.scm:3017
 msgid "Fast, partitioned convolution engine library"
 msgstr ""
 
-#: gnu/packages/audio.scm:2994
+#: gnu/packages/audio.scm:3019
 msgid ""
 "Zita convolver is a C++ library providing a real-time convolution\n"
 "engine."
 msgstr ""
 
-#: gnu/packages/audio.scm:3041
+#: gnu/packages/audio.scm:3067
 msgid "C++ library for resampling audio signals"
 msgstr "Bibliothèque C++ pour ré-échantillonner des signaux audio"
 
-#: gnu/packages/audio.scm:3043
+#: gnu/packages/audio.scm:3069
 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:3087
+#: gnu/packages/audio.scm:3114
 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"
@@ -911,11 +908,11 @@ msgid ""
 "point audio data."
 msgstr ""
 
-#: gnu/packages/audio.scm:3113
+#: gnu/packages/audio.scm:3140
 msgid "Cue and toc file parsers and utilities"
 msgstr ""
 
-#: gnu/packages/audio.scm:3114
+#: gnu/packages/audio.scm:3141
 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"
@@ -923,11 +920,11 @@ msgid ""
 "machine-readable ASCII format."
 msgstr ""
 
-#: gnu/packages/audio.scm:3133
+#: gnu/packages/audio.scm:3160
 msgid "WAVE audio data processing tool"
 msgstr ""
 
-#: gnu/packages/audio.scm:3134
+#: gnu/packages/audio.scm:3161
 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"
@@ -936,63 +933,63 @@ msgid ""
 "use them split WAVE data into multiple files."
 msgstr ""
 
-#: gnu/packages/audio.scm:3173
+#: gnu/packages/audio.scm:3200
 msgid "DTS Coherent Acoustics decoder"
 msgstr ""
 
-#: gnu/packages/audio.scm:3174
+#: gnu/packages/audio.scm:3201
 msgid ""
 "Dcadec is a DTS Coherent Acoustics surround sound decoder\n"
 "with support for HD extensions."
 msgstr ""
 
-#: gnu/packages/audio.scm:3195
+#: gnu/packages/audio.scm:3231
 msgid "Tool to adjust loudness of media files"
 msgstr ""
 
-#: gnu/packages/audio.scm:3197
+#: gnu/packages/audio.scm:3233
 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:3228
+#: gnu/packages/audio.scm:3264
 msgid "Lightweight audio filtering library"
 msgstr ""
 
-#: gnu/packages/audio.scm:3229
+#: gnu/packages/audio.scm:3265
 msgid ""
 "An easy to use audio filtering library made from webrtc\n"
 "code, used in @code{libtoxcore}."
 msgstr ""
 
-#: gnu/packages/audio.scm:3273
+#: gnu/packages/audio.scm:3311
 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:3274
+#: gnu/packages/audio.scm:3312
 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:3295
+#: gnu/packages/audio.scm:3333
 msgid "ALSA wrappers for Python"
 msgstr ""
 
-#: gnu/packages/audio.scm:3297
+#: gnu/packages/audio.scm:3335
 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:3335
+#: gnu/packages/audio.scm:3373
 msgid "Bluetooth ALSA backend"
 msgstr ""
 
-#: gnu/packages/audio.scm:3336
+#: gnu/packages/audio.scm:3374
 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"
@@ -1005,22 +1002,22 @@ msgid ""
 "on the ALSA software PCM plugin."
 msgstr ""
 
-#: gnu/packages/audio.scm:3398
+#: gnu/packages/audio.scm:3436
 msgid "Sound editor"
 msgstr "Éditeur de son"
 
-#: gnu/packages/audio.scm:3401
+#: gnu/packages/audio.scm:3439
 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:3434
+#: gnu/packages/audio.scm:3472
 msgid "LV2 plugin for broadband noise reduction"
 msgstr ""
 
-#: gnu/packages/audio.scm:3435
+#: gnu/packages/audio.scm:3473
 msgid ""
 "Noise Repellent is an LV2 plugin to reduce noise.  It has\n"
 "the following features:\n"
@@ -1040,40 +1037,40 @@ msgid ""
 "@end enumerate\n"
 msgstr ""
 
-#: gnu/packages/audio.scm:3504
+#: gnu/packages/audio.scm:3542
 msgid "Command-line audio visualizer"
 msgstr "Visionneuse audio en ligne de commande"
 
-#: gnu/packages/audio.scm:3505
+#: gnu/packages/audio.scm:3543
 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:3556
+#: gnu/packages/audio.scm:3596
 msgid "Console audio visualizer for ALSA, MPD, and PulseAudio"
 msgstr ""
 
-#: gnu/packages/audio.scm:3557
+#: gnu/packages/audio.scm:3597
 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:3590
+#: gnu/packages/audio.scm:3630
 msgid "Pro-quality GM soundfont"
 msgstr ""
 
-#: gnu/packages/audio.scm:3591
+#: gnu/packages/audio.scm:3631
 msgid "Fluid-3 is Frank Wen's pro-quality GM soundfont."
 msgstr ""
 
-#: gnu/packages/audio.scm:3617
+#: gnu/packages/audio.scm:3657
 msgid "Fraunhofer FDK AAC library"
 msgstr ""
 
-#: gnu/packages/audio.scm:3618
+#: gnu/packages/audio.scm:3658
 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"
@@ -1084,22 +1081,32 @@ msgid ""
 "surround)."
 msgstr ""
 
-#: gnu/packages/audio.scm:3657
+#: gnu/packages/audio.scm:3697
 msgid "Audio editing and playback for OpenShot"
 msgstr ""
 
-#: gnu/packages/audio.scm:3658
+#: gnu/packages/audio.scm:3698
 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/backup.scm:122
+#: gnu/packages/audio.scm:3724
+msgid "XAudio reimplementation"
+msgstr "Réimplémentation de XAudio"
+
+#: gnu/packages/audio.scm:3725
+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"
 msgstr "Système de sauvegarde chiffrée utilisant l'algorithme rsync"
 
-#: gnu/packages/backup.scm:124
+#: gnu/packages/backup.scm:127
 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"
@@ -1115,11 +1122,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:149
+#: gnu/packages/backup.scm:152
 msgid "File verification and repair tools"
 msgstr ""
 
-#: gnu/packages/backup.scm:150
+#: gnu/packages/backup.scm:153
 msgid ""
 "Par2cmdline uses Reed-Solomon error-correcting codes to\n"
 "generate and verify PAR2 recovery files.  These files can be distributed\n"
@@ -1131,11 +1138,11 @@ msgid ""
 "can even repair them."
 msgstr ""
 
-#: gnu/packages/backup.scm:186
+#: gnu/packages/backup.scm:189
 msgid "Simple incremental backup tool"
 msgstr "Outil simple de sauvegarde incrémentale"
 
-#: gnu/packages/backup.scm:188
+#: gnu/packages/backup.scm:191
 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"
@@ -1147,11 +1154,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:262
+#: gnu/packages/backup.scm:266
 msgid "Multi-format archive and compression library"
 msgstr "Bibliothèque de compression et d'archivage multi-format"
 
-#: gnu/packages/backup.scm:264
+#: gnu/packages/backup.scm:268
 msgid ""
 "Libarchive provides a flexible interface for reading and writing\n"
 "archives in various formats such as tar and cpio.  Libarchive also supports\n"
@@ -1169,11 +1176,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:322
+#: gnu/packages/backup.scm:342
 msgid "Provide a list of files to backup"
 msgstr "Fournit une liste des fichiers à sauvegarder"
 
-#: gnu/packages/backup.scm:324
+#: gnu/packages/backup.scm:344
 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"
@@ -1185,11 +1192,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:354
+#: gnu/packages/backup.scm:374
 msgid "Tar-compatible archiver"
 msgstr "Archiveur compatible avec le format tar"
 
-#: gnu/packages/backup.scm:356
+#: gnu/packages/backup.scm:376
 msgid ""
 "Btar is a tar-compatible archiver which allows arbitrary compression and\n"
 "ciphering, redundancy, differential backup, indexed extraction, multicore\n"
@@ -1201,11 +1208,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:382
+#: gnu/packages/backup.scm:402
 msgid "Local/remote mirroring+incremental backup"
 msgstr "Sauvegarde mirroir/incrémentales, locales ou distantes"
 
-#: gnu/packages/backup.scm:384
+#: gnu/packages/backup.scm:404
 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"
@@ -1232,11 +1239,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:426
+#: gnu/packages/backup.scm:446
 msgid "Deduplicating snapshot backup utility based on rsync"
 msgstr "Utilitaire de sauvegarde dédupliquées basé sur rsync"
 
-#: gnu/packages/backup.scm:427
+#: gnu/packages/backup.scm:447
 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"
@@ -1249,11 +1256,11 @@ msgstr ""
 "pour chaque sauvegarde, rsnapshot utilise des liens en dur pour dédupliquer\n"
 "les fichiers identiques."
 
-#: gnu/packages/backup.scm:480
+#: gnu/packages/backup.scm:500
 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:482
+#: gnu/packages/backup.scm:502
 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"
@@ -1272,11 +1279,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:606
+#: gnu/packages/backup.scm:620
 msgid "Deduplicated, encrypted, authenticated and compressed backups"
 msgstr "Sauvegardes dédupliquées, chiffrées, authentifiées et compressées"
 
-#: gnu/packages/backup.scm:607
+#: gnu/packages/backup.scm:621
 msgid ""
 "Borg is a deduplicating backup program.  Optionally, it\n"
 "supports compression and authenticated encryption.  The main goal of Borg is to\n"
@@ -1293,11 +1300,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:653
+#: gnu/packages/backup.scm:665
 msgid "Deduplicating backup program"
 msgstr "Programme de sauvegardes dédupliquées"
 
-#: gnu/packages/backup.scm:654
+#: gnu/packages/backup.scm:666
 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"
@@ -1309,11 +1316,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:684
+#: gnu/packages/backup.scm:696
 msgid "WIM file manipulation library and utilities"
 msgstr "Bibliothèque et utilitaires de manipulation de fichiers WIM"
 
-#: gnu/packages/backup.scm:685
+#: gnu/packages/backup.scm:697
 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"
@@ -1326,11 +1333,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:742
+#: gnu/packages/backup.scm:754
 msgid "Retired backup program"
 msgstr "Programme de sauvegardes obsolète"
 
-#: gnu/packages/backup.scm:744
+#: 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"
@@ -1350,22 +1357,22 @@ msgstr ""
 "ou en ligne avec le protocole SSH SFTP.  Le serveur de sauvegarde, s'il est\n"
 "utilisé, ne requiert aucun programme spécifique en dehors de SSH."
 
-#: gnu/packages/backup.scm:852
+#: gnu/packages/backup.scm:864
 msgid "Fast, disk based, rotating network backup system"
 msgstr ""
 
-#: gnu/packages/backup.scm:854
+#: gnu/packages/backup.scm:866
 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:952
+#: gnu/packages/backup.scm:964
 msgid "Backup program with multiple revisions, encryption and more"
 msgstr ""
 
-#: gnu/packages/backup.scm:953
+#: gnu/packages/backup.scm:965
 msgid ""
 "Restic is a program that does backups right and was designed\n"
 "with the following principles in mind:\n"
@@ -1397,11 +1404,22 @@ msgid ""
 "@end itemize"
 msgstr ""
 
-#: gnu/packages/base.scm:79
+#: gnu/packages/backup.scm:1016
+msgid "Differential backup and restore"
+msgstr ""
+
+#: gnu/packages/backup.scm:1017
+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
 msgid "Hello, GNU world: An example GNU package"
 msgstr "Hello, GNU world: Un exemple de paquet GNU"
 
-#: gnu/packages/base.scm:81
+#: gnu/packages/base.scm:85
 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"
@@ -1411,11 +1429,11 @@ msgstr ""
 "d'exemple pour les pratiques de programmation GNU standard. Il supporte\n"
 "les arguments en ligne de commande, plusieurs langages, etc."
 
-#: gnu/packages/base.scm:116
+#: gnu/packages/base.scm:129
 msgid "Print lines matching a pattern"
 msgstr "Affiche les lignes correspondant à un pattern donné"
 
-#: gnu/packages/base.scm:118
+#: gnu/packages/base.scm:131
 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"
@@ -1433,11 +1451,11 @@ msgstr ""
 "les numéros de ligne. GNU grep offre de nombreuses extensions, incluant par exemple\n"
 "la recherche récursive sur des répertoires."
 
-#: gnu/packages/base.scm:140
+#: gnu/packages/base.scm:153
 msgid "Stream editor"
 msgstr "Éditeur de flux"
 
-#: gnu/packages/base.scm:156
+#: gnu/packages/base.scm:169
 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"
@@ -1451,11 +1469,11 @@ msgstr ""
 "des morceaux de texte dans un flux. L'implantation GNU ajoute plusieurs extensions\n"
 "à l'utilitaire standard."
 
-#: gnu/packages/base.scm:216
+#: gnu/packages/base.scm:229
 msgid "Managing tar archives"
 msgstr "Gestion d'archives tar"
 
-#: gnu/packages/base.scm:218
+#: gnu/packages/base.scm:231
 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"
@@ -1471,11 +1489,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:247
+#: gnu/packages/base.scm:260
 msgid "Apply differences to originals, with optional backups"
 msgstr "Applique les différences aux originaux, avec sauvegardes optionnelles"
 
-#: gnu/packages/base.scm:249
+#: gnu/packages/base.scm:262
 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"
@@ -1489,11 +1507,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:270
+#: gnu/packages/base.scm:283
 msgid "Comparing and merging files"
 msgstr "Comparaison et fusion des fichiers"
 
-#: gnu/packages/base.scm:272
+#: gnu/packages/base.scm:285
 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"
@@ -1507,11 +1525,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:315
+#: gnu/packages/base.scm:330
 msgid "Operating on files matching given criteria"
 msgstr "Opération sur les fichiers correspondant au critère donné"
 
-#: gnu/packages/base.scm:317
+#: gnu/packages/base.scm:332
 msgid ""
 "Findutils supplies the basic file directory searching utilities of the\n"
 "GNU system.  It consists of two primary searching utilities: \"find\"\n"
@@ -1527,11 +1545,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:375
+#: gnu/packages/base.scm:400
 msgid "Core GNU utilities (file, text, shell)"
 msgstr "Utilitaires GNU (fichier, texte, shell)"
 
-#: gnu/packages/base.scm:377
+#: gnu/packages/base.scm:402
 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"
@@ -1543,11 +1561,11 @@ msgstr ""
 "de fichiers, du shell et de textes d'un système GNU. Ils offrent pour la plupart\n"
 "des fonctionnalités étendues au-delà de ce qui est défini dans le standard POSIX."
 
-#: gnu/packages/base.scm:424
+#: gnu/packages/base.scm:449
 msgid "Remake files automatically"
 msgstr "Recompiler les fichiers automatiquement"
 
-#: gnu/packages/base.scm:426
+#: gnu/packages/base.scm:451
 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"
@@ -1564,11 +1582,11 @@ msgstr ""
 "regénérés. GNU make possède beaucoup d'extensions en plus de\n"
 "l'utilitaire standard."
 
-#: gnu/packages/base.scm:472
+#: gnu/packages/base.scm:497
 msgid "Binary utilities: bfd gas gprof ld"
 msgstr "Utilitaires binaires: bfd gas gprof ld"
 
-#: gnu/packages/base.scm:474
+#: gnu/packages/base.scm:499
 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"
@@ -1584,25 +1602,25 @@ 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:560
+#: gnu/packages/base.scm:601
 msgid "The linker wrapper"
 msgstr "L'enveloppe de l'éditeur de lien"
 
-#: gnu/packages/base.scm:562
+#: gnu/packages/base.scm:603
 msgid ""
-"The linker wrapper (or 'ld-wrapper') wraps the linker to add any\n"
-"missing '-rpath' flags, and to detect any misuse of libraries outside of the\n"
-"store."
+"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 ""
-"L'enveloppe de l'éditeur de lien (ou « ld-wrapper ») enveloppe l'éditeur de\n"
-"liens pour ajouter les drapeaux « -rpath » manquants et pour détecter la\n"
-"mauvaise utilisation de bibliothèques en dehors du store."
+"L'enveloppe de l'éditeur de lien (ou @code{ld-wrapper}) enveloppe l'éditeur de\n"
+"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:782
+#: gnu/packages/base.scm:866
 msgid "The GNU C Library"
 msgstr "La bibliothèque GNU C"
 
-#: gnu/packages/base.scm:784
+#: gnu/packages/base.scm:868
 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"
@@ -1616,47 +1634,43 @@ 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:861
-msgid "The GNU C Library (GNU Hurd variant)"
-msgstr "La bibliothèque GNU C (variante GNU Hurd)"
-
-#: gnu/packages/base.scm:1015
+#: gnu/packages/base.scm:1019
 msgid "All the locales supported by the GNU C Library"
 msgstr ""
 
-#: gnu/packages/base.scm:1017
+#: gnu/packages/base.scm:1021
 msgid ""
 "This package provides all the locales supported by the GNU C Library,\n"
-"more than 400 in total.  To use them set the 'LOCPATH' environment variable to\n"
-"the 'share/locale' sub-directory of this package."
+"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:1086
+#: gnu/packages/base.scm:1090
 msgid "Small sample of UTF-8 locales"
 msgstr ""
 
-#: gnu/packages/base.scm:1088
+#: gnu/packages/base.scm:1092
 msgid ""
 "This package provides a small sample of UTF-8 locales mostly useful in\n"
 "test environments."
 msgstr ""
 
-#: gnu/packages/base.scm:1106
+#: gnu/packages/base.scm:1122
 msgid "Find full path of shell commands"
 msgstr ""
 
-#: gnu/packages/base.scm:1108
+#: gnu/packages/base.scm:1124
 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:1211
+#: gnu/packages/base.scm:1220
 msgid "Database of current and historical time zones"
 msgstr "Base de données des fuseaux horaires courant et historiques"
 
-#: gnu/packages/base.scm:1212
+#: gnu/packages/base.scm:1221
 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"
@@ -1670,22 +1684,22 @@ 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:1266
+#: gnu/packages/base.scm:1277
 msgid "Character set conversion library"
 msgstr "Bibliothèque de conversion de jeux de caractères"
 
-#: gnu/packages/base.scm:1268
+#: gnu/packages/base.scm:1279
 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:113
+#: gnu/packages/bittorrent.scm:114
 msgid "Fast and easy BitTorrent client"
 msgstr ""
 
-#: gnu/packages/bittorrent.scm:115
+#: 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"
@@ -1693,72 +1707,72 @@ msgid ""
 "DHT, µTP, PEX and Magnet Links."
 msgstr ""
 
-#: gnu/packages/bittorrent.scm:147
+#: gnu/packages/bittorrent.scm:148
 msgid "BitTorrent library of rtorrent"
 msgstr ""
 
-#: gnu/packages/bittorrent.scm:149
+#: 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:176
+#: gnu/packages/bittorrent.scm:177
 msgid "BitTorrent client with ncurses interface"
 msgstr ""
 
-#: gnu/packages/bittorrent.scm:178
+#: 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:209 gnu/packages/bittorrent.scm:250
+#: gnu/packages/bittorrent.scm:210 gnu/packages/bittorrent.scm:251
 msgid "Console client for the Transmission BitTorrent daemon"
 msgstr ""
 
-#: gnu/packages/bittorrent.scm:210
+#: gnu/packages/bittorrent.scm:211
 msgid ""
 "Tremc is a console client, with a curses interface, for the\n"
 "Transmission BitTorrent daemon."
 msgstr ""
 
-#: gnu/packages/bittorrent.scm:251
+#: gnu/packages/bittorrent.scm:252
 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:299
+#: gnu/packages/bittorrent.scm:301
 msgid "Utility for parallel downloading files"
 msgstr ""
 
-#: gnu/packages/bittorrent.scm:301
+#: 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:332
+#: gnu/packages/bittorrent.scm:334
 msgid "Universal download manager with GTK+ interface"
 msgstr ""
 
-#: gnu/packages/bittorrent.scm:334
+#: 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:363
+#: gnu/packages/bittorrent.scm:366
 msgid "Utility to create BitTorrent metainfo files"
 msgstr ""
 
-#: gnu/packages/bittorrent.scm:365
+#: 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"
@@ -1768,22 +1782,22 @@ msgid ""
 "and will take advantage of multiple processor cores where possible."
 msgstr ""
 
-#: gnu/packages/bittorrent.scm:416
+#: gnu/packages/bittorrent.scm:419
 msgid "Feature complete BitTorrent implementation"
 msgstr ""
 
-#: gnu/packages/bittorrent.scm:418
+#: gnu/packages/bittorrent.scm:421
 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:456
+#: gnu/packages/bittorrent.scm:459
 msgid "Graphical BitTorrent client"
 msgstr ""
 
-#: gnu/packages/bittorrent.scm:458
+#: gnu/packages/bittorrent.scm:461
 msgid ""
 "qBittorrent is a BitTorrent client programmed in C++/Qt that uses\n"
 "libtorrent (sometimes called libtorrent-rasterbar) by Arvid Norberg.\n"
@@ -1793,11 +1807,11 @@ msgid ""
 "features."
 msgstr ""
 
-#: gnu/packages/bittorrent.scm:493
+#: gnu/packages/bittorrent.scm:496
 msgid "Fully-featured cross-platform ​BitTorrent client"
 msgstr ""
 
-#: gnu/packages/bittorrent.scm:495
+#: gnu/packages/bittorrent.scm:498
 msgid ""
 "Deluge contains the common features to BitTorrent clients such as\n"
 "Protocol Encryption, DHT, Local Peer Discovery (LSD), Peer Exchange\n"
@@ -1839,11 +1853,11 @@ msgid ""
 "within Guix."
 msgstr ""
 
-#: gnu/packages/compression.scm:104
+#: gnu/packages/compression.scm:108
 msgid "Compression library"
 msgstr "Bibliothèque de compression"
 
-#: gnu/packages/compression.scm:106
+#: gnu/packages/compression.scm:110
 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"
@@ -1856,42 +1870,42 @@ msgid ""
 "in compression."
 msgstr ""
 
-#: gnu/packages/compression.scm:134
+#: gnu/packages/compression.scm:138
 msgid "Zip Compression library"
 msgstr ""
 
-#: gnu/packages/compression.scm:136
+#: gnu/packages/compression.scm:140
 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:155
+#: gnu/packages/compression.scm:159
 msgid "Replacement for Sun's 'jar' utility"
 msgstr ""
 
-#: gnu/packages/compression.scm:157
+#: gnu/packages/compression.scm:161
 msgid ""
-"FastJar is an attempt to create a much faster replacement for Sun's 'jar'\n"
-"utility.  Instead of being written in Java, FastJar is written in C."
+"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:186
+#: gnu/packages/compression.scm:190
 msgid "C library for manipulating POSIX tar files"
 msgstr "Bibliothèque C pour manipuler des fichiers tar POSIX"
 
-#: gnu/packages/compression.scm:188
+#: gnu/packages/compression.scm:192
 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:205
+#: gnu/packages/compression.scm:209
 msgid "General file (de)compression (using lzw)"
 msgstr ""
 
-#: gnu/packages/compression.scm:219
+#: gnu/packages/compression.scm:238
 msgid ""
 "GNU Gzip provides data compression and decompression utilities; the\n"
 "typical extension is \".gz\".  Unlike the \"zip\" format, it compresses a single\n"
@@ -1899,11 +1913,11 @@ msgid ""
 "\".tar.gz\" or \".tgz\", etc."
 msgstr ""
 
-#: gnu/packages/compression.scm:304
+#: gnu/packages/compression.scm:332
 msgid "High-quality data compression program"
 msgstr ""
 
-#: gnu/packages/compression.scm:306
+#: gnu/packages/compression.scm:334
 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"
@@ -1912,11 +1926,11 @@ msgid ""
 "decompression."
 msgstr ""
 
-#: gnu/packages/compression.scm:327
+#: gnu/packages/compression.scm:368
 msgid "Parallel bzip2 compression utility"
 msgstr ""
 
-#: gnu/packages/compression.scm:329
+#: gnu/packages/compression.scm:370
 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"
@@ -1926,11 +1940,11 @@ msgid ""
 "compatible with bzip2 – both at file format and command line level."
 msgstr ""
 
-#: gnu/packages/compression.scm:359
+#: gnu/packages/compression.scm:400
 msgid "Parallel bzip2 implementation"
 msgstr ""
 
-#: gnu/packages/compression.scm:361
+#: gnu/packages/compression.scm:402
 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"
@@ -1938,11 +1952,11 @@ msgid ""
 "compressed with pbzip2 can be decompressed with bzip2)."
 msgstr ""
 
-#: gnu/packages/compression.scm:382
+#: gnu/packages/compression.scm:423
 msgid "General-purpose data compression"
 msgstr ""
 
-#: gnu/packages/compression.scm:384
+#: gnu/packages/compression.scm:425
 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"
@@ -1955,11 +1969,25 @@ msgid ""
 "than gzip and 15 % smaller output than bzip2."
 msgstr ""
 
-#: gnu/packages/compression.scm:412
+#: gnu/packages/compression.scm:461
+msgid "LHA archive decompressor"
+msgstr ""
+
+#: gnu/packages/compression.scm:462
+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:486
 msgid "Data compression library suitable for real-time data de-/compression"
 msgstr ""
 
-#: gnu/packages/compression.scm:414
+#: gnu/packages/compression.scm:488
 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"
@@ -1969,22 +1997,11 @@ msgid ""
 "format are designed to be portable across platforms."
 msgstr ""
 
-#: gnu/packages/compression.scm:450
-msgid "Python bindings for the LZO data compression library"
-msgstr "Liaisons python pour la bibliothèque de compression LZO"
-
-#: gnu/packages/compression.scm:452
-msgid ""
-"Python-LZO provides Python bindings for LZO, i.e. you can access\n"
-"the LZO library from your Python scripts thereby compressing ordinary\n"
-"Python strings."
-msgstr ""
-
-#: gnu/packages/compression.scm:475
+#: gnu/packages/compression.scm:511
 msgid "Compress or expand files"
 msgstr "Compresse et décompresse des fichiers"
 
-#: gnu/packages/compression.scm:477
+#: gnu/packages/compression.scm:513
 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"
@@ -1992,11 +2009,11 @@ msgid ""
 "some compression ratio)."
 msgstr ""
 
-#: gnu/packages/compression.scm:496
+#: gnu/packages/compression.scm:532
 msgid "Lossless data compressor based on the LZMA algorithm"
 msgstr ""
 
-#: gnu/packages/compression.scm:498
+#: gnu/packages/compression.scm:534
 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"
@@ -2004,11 +2021,11 @@ msgid ""
 "archiving.  Lzip is a clean implementation of the LZMA algorithm."
 msgstr ""
 
-#: gnu/packages/compression.scm:517
+#: gnu/packages/compression.scm:553
 msgid "Recover and decompress data from damaged lzip files"
 msgstr ""
 
-#: gnu/packages/compression.scm:519
+#: gnu/packages/compression.scm:555
 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"
@@ -2024,11 +2041,11 @@ msgid ""
 "decompressors when faced with corrupted input."
 msgstr ""
 
-#: gnu/packages/compression.scm:561
+#: gnu/packages/compression.scm:610
 msgid "Archives in shell scripts, uuencode/uudecode"
 msgstr ""
 
-#: gnu/packages/compression.scm:563
+#: gnu/packages/compression.scm:612
 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"
@@ -2036,71 +2053,41 @@ msgid ""
 "This package is mostly for compatibility and historical interest."
 msgstr ""
 
-#: gnu/packages/compression.scm:594
+#: gnu/packages/compression.scm:643
 msgid "Library for SoundFont decompression"
 msgstr ""
 
-#: gnu/packages/compression.scm:596
+#: gnu/packages/compression.scm:645
 msgid ""
 "SfArkLib is a C++ library for decompressing SoundFont files compressed\n"
 "with the sfArk algorithm."
 msgstr ""
 
-#: gnu/packages/compression.scm:631
+#: gnu/packages/compression.scm:680
 msgid "Basic sfArk decompressor"
 msgstr ""
 
-#: gnu/packages/compression.scm:632
+#: gnu/packages/compression.scm:681
 msgid ""
 "SfArk extractor converts SoundFonts in the compressed legacy\n"
 "sfArk file format to the uncompressed sf2 format."
 msgstr ""
 
-#: gnu/packages/compression.scm:650
+#: gnu/packages/compression.scm:699
 msgid "Compression tools for some formats used by Microsoft"
 msgstr ""
 
-#: gnu/packages/compression.scm:652
+#: gnu/packages/compression.scm:701
 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:671
-msgid "Low-level interface to bzip2 compression library"
-msgstr ""
-
-#: gnu/packages/compression.scm:672
-msgid ""
-"This module provides a Perl interface to the bzip2\n"
-"compression library."
-msgstr ""
-
-#: gnu/packages/compression.scm:706
-msgid "Low-level interface to zlib compression library"
-msgstr ""
-
-#: gnu/packages/compression.scm:707
-msgid ""
-"This module provides a Perl interface to the zlib\n"
-"compression library."
-msgstr ""
-
-#: gnu/packages/compression.scm:728
-msgid "IO Interface to compressed files/buffers"
-msgstr ""
-
-#: gnu/packages/compression.scm:729
-msgid ""
-"IO-Compress provides a Perl interface to allow reading and\n"
-"writing of compressed data created with the zlib and bzip2 libraries."
-msgstr ""
-
-#: gnu/packages/compression.scm:755
+#: gnu/packages/compression.scm:727
 msgid "Compression algorithm focused on speed"
 msgstr ""
 
-#: gnu/packages/compression.scm:756
+#: gnu/packages/compression.scm:728
 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"
@@ -2109,30 +2096,11 @@ msgid ""
 "time for compression ratio."
 msgstr ""
 
-#: gnu/packages/compression.scm:781
-msgid "LZ4 bindings for Python"
-msgstr "Liaisons LZ4 pour Python"
-
-#: gnu/packages/compression.scm:783
-msgid ""
-"This package provides python bindings for the lz4 compression library\n"
-"by Yann Collet.  The project contains bindings for the LZ4 block format and\n"
-"the LZ4 frame format."
-msgstr ""
-
-#: gnu/packages/compression.scm:806
-msgid "String compression"
-msgstr ""
-
-#: gnu/packages/compression.scm:807
-msgid "Lz-string is a string compressor library for Python."
-msgstr ""
-
-#: gnu/packages/compression.scm:845
+#: gnu/packages/compression.scm:777
 msgid "Tools to create and extract squashfs file systems"
 msgstr ""
 
-#: gnu/packages/compression.scm:847
+#: gnu/packages/compression.scm:779
 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"
@@ -2142,21 +2110,21 @@ msgid ""
 "extract such file systems."
 msgstr ""
 
-#: gnu/packages/compression.scm:901
+#: gnu/packages/compression.scm:833
 msgid "Parallel implementation of gzip"
 msgstr ""
 
-#: gnu/packages/compression.scm:903
+#: gnu/packages/compression.scm:835
 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:927
+#: gnu/packages/compression.scm:859
 msgid "Parallel indexing implementation of LZMA"
 msgstr ""
 
-#: gnu/packages/compression.scm:929
+#: gnu/packages/compression.scm:861
 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"
@@ -2165,11 +2133,11 @@ msgid ""
 "tarballs."
 msgstr ""
 
-#: gnu/packages/compression.scm:971
+#: gnu/packages/compression.scm:903
 msgid "Implementation of the Brotli compression algorithm"
 msgstr ""
 
-#: gnu/packages/compression.scm:973
+#: 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"
@@ -2177,11 +2145,11 @@ msgid ""
 "respectively, based on the reference implementation from Google."
 msgstr ""
 
-#: gnu/packages/compression.scm:1007
+#: gnu/packages/compression.scm:939
 msgid "Patch binary files"
 msgstr ""
 
-#: gnu/packages/compression.scm:1009
+#: gnu/packages/compression.scm:941
 msgid ""
 "@command{bsdiff} and @command{bspatch} are tools for building and\n"
 "applying patches to binary files.  By using suffix sorting (specifically\n"
@@ -2190,19 +2158,19 @@ msgid ""
 "smaller than those produced by @code{Xdelta}."
 msgstr ""
 
-#: gnu/packages/compression.scm:1055
+#: gnu/packages/compression.scm:987
 msgid "Tool to unpack Cabinet archives"
 msgstr ""
 
-#: gnu/packages/compression.scm:1056
+#: gnu/packages/compression.scm:988
 msgid "Extracts files out of Microsoft Cabinet (.cab) archives"
 msgstr ""
 
-#: gnu/packages/compression.scm:1089
+#: gnu/packages/compression.scm:1021
 msgid "Delta encoder for binary files"
 msgstr ""
 
-#: gnu/packages/compression.scm:1090
+#: gnu/packages/compression.scm:1022
 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"
@@ -2211,11 +2179,11 @@ msgid ""
 "human-readable output."
 msgstr ""
 
-#: gnu/packages/compression.scm:1123
+#: gnu/packages/compression.scm:1055
 msgid "Large file compressor with a very high compression ratio"
 msgstr ""
 
-#: gnu/packages/compression.scm:1124
+#: gnu/packages/compression.scm:1056
 msgid ""
 "lrzip is a compression utility that uses long-range\n"
 "redundancy reduction to improve the subsequent compression ratio of\n"
@@ -2226,22 +2194,11 @@ msgid ""
 "well as bzip2."
 msgstr ""
 
-#: gnu/packages/compression.scm:1154
-msgid "Filter for improving compression of typed binary data"
-msgstr ""
-
-#: gnu/packages/compression.scm:1155
-msgid ""
-"Bitshuffle is an algorithm that rearranges typed, binary data\n"
-"for improving compression, as well as a python/C package that implements this\n"
-"algorithm within the Numpy framework."
-msgstr ""
-
-#: gnu/packages/compression.scm:1176
+#: gnu/packages/compression.scm:1083
 msgid "Fast compressor/decompressor"
 msgstr ""
 
-#: gnu/packages/compression.scm:1177
+#: gnu/packages/compression.scm:1084
 msgid ""
 "Snappy is a compression/decompression library.  It does not\n"
 "aim for maximum compression, or compatibility with any other compression library;\n"
@@ -2251,63 +2208,31 @@ msgid ""
 "100% bigger."
 msgstr ""
 
-#: gnu/packages/compression.scm:1306
-msgid "Compression/decompression algorithm in Java"
-msgstr ""
-
-#: gnu/packages/compression.scm:1307
-msgid ""
-"Snappy-java is a Java port of snappy, a fast C++\n"
-"compressor/decompressor."
-msgstr ""
-
-#: gnu/packages/compression.scm:1412
-msgid "Java port of the Snappy (de)compressor"
-msgstr ""
-
-#: gnu/packages/compression.scm:1414
-msgid ""
-"Iq80-snappy is a port of the Snappy compressor and decompressor rewritten\n"
-"in pure Java.  This compression code produces a byte-for-byte exact copy of the\n"
-"output created by the original C++ code, and is extremely fast."
-msgstr ""
-
-#: gnu/packages/compression.scm:1453
-msgid "Java bzip2 compression/decompression library"
-msgstr "Bibliothèque de compression et décompression bzip2 pour Java"
-
-#: gnu/packages/compression.scm:1454
-msgid ""
-"Jbzip2 is a Java bzip2 compression/decompression library.\n"
-"It can be used as a replacement for the Apache @code{CBZip2InputStream} /\n"
-"@code{CBZip2OutputStream} classes."
-msgstr ""
-
-#: gnu/packages/compression.scm:1520
+#: gnu/packages/compression.scm:1153
 msgid "Command-line file archiver with high compression ratio"
 msgstr ""
 
-#: gnu/packages/compression.scm:1521
+#: gnu/packages/compression.scm:1154
 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:1562
+#: gnu/packages/compression.scm:1195
 msgid "Compressed C++ iostream"
 msgstr ""
 
-#: gnu/packages/compression.scm:1563
+#: gnu/packages/compression.scm:1196
 msgid ""
 "gzstream is a small library for providing zlib\n"
 "functionality in a C++ iostream."
 msgstr ""
 
-#: gnu/packages/compression.scm:1612
+#: gnu/packages/compression.scm:1245
 msgid "Incremental journaling archiver"
 msgstr ""
 
-#: gnu/packages/compression.scm:1613
+#: gnu/packages/compression.scm:1246
 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"
@@ -2321,21 +2246,21 @@ msgid ""
 "or junctions, and always follows hard links."
 msgstr ""
 
-#: gnu/packages/compression.scm:1695
+#: gnu/packages/compression.scm:1345
 msgid "Extract CAB files from InstallShield installers"
 msgstr ""
 
-#: gnu/packages/compression.scm:1697
+#: gnu/packages/compression.scm:1347
 msgid ""
 "@command{unshield} is a tool and library for extracting @file{.cab}\n"
 " archives from InstallShield installers."
 msgstr ""
 
-#: gnu/packages/compression.scm:1727
+#: gnu/packages/compression.scm:1377
 msgid "Zstandard real-time compression algorithm"
 msgstr ""
 
-#: gnu/packages/compression.scm:1728
+#: gnu/packages/compression.scm:1378
 msgid ""
 "Zstandard (@command{zstd}) is a lossless compression algorithm\n"
 "that combines very fast operation with a compression ratio comparable to that of\n"
@@ -2345,11 +2270,11 @@ msgid ""
 "speed."
 msgstr ""
 
-#: gnu/packages/compression.scm:1770
+#: gnu/packages/compression.scm:1420
 msgid "Threaded implementation of the Zstandard compression algorithm"
 msgstr ""
 
-#: gnu/packages/compression.scm:1771
+#: gnu/packages/compression.scm:1421
 msgid ""
 "Parallel Zstandard (PZstandard or @command{pzstd}) is a\n"
 "multi-threaded implementation of the @uref{http://zstd.net/, Zstandard\n"
@@ -2362,11 +2287,11 @@ msgid ""
 "the actual decompression, the other input and output."
 msgstr ""
 
-#: gnu/packages/compression.scm:1809
+#: gnu/packages/compression.scm:1459
 msgid "Compression and file packing utility"
 msgstr "Utilitaire de compression et de paquetage de fichiers"
 
-#: gnu/packages/compression.scm:1811
+#: gnu/packages/compression.scm:1461
 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"
@@ -2394,11 +2319,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:1873
+#: gnu/packages/compression.scm:1523
 msgid "Decompression and file extraction utility"
 msgstr "Utilitaire de décompression et d'extraction de fichiers"
 
-#: gnu/packages/compression.scm:1875
+#: gnu/packages/compression.scm:1525
 msgid ""
 "UnZip is an extraction utility for archives compressed in .zip format,\n"
 "also called \"zipfiles\".\n"
@@ -2415,31 +2340,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:1906
+#: gnu/packages/compression.scm:1556
 msgid "Library for accessing zip files"
 msgstr "Bibliothèque de manipulation des fichiers zip"
 
-#: gnu/packages/compression.scm:1908
+#: gnu/packages/compression.scm:1558
 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:1930
-msgid "Provides an interface to Zip archive files"
-msgstr "Fournit une interface pour les fichiers d'archives ZIP"
-
-#: gnu/packages/compression.scm:1931
-msgid ""
-"The @code{Archive::Zip} module allows a Perl program to\n"
-"create, manipulate, read, and write Zip archive files."
-msgstr ""
-"Le module @code{Archive::Zip} permet à un programme Perl de créer,\n"
-"manipuler, lire et écrire des fichiers d'archives Zip."
-
-#: gnu/packages/compression.scm:1953
+#: gnu/packages/compression.scm:1580
 msgid "C library for reading, creating, and modifying zip archives"
 msgstr ""
 
-#: gnu/packages/compression.scm:1954
+#: gnu/packages/compression.scm:1581
 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"
@@ -2447,11 +2360,11 @@ msgid ""
 "archive can be reverted."
 msgstr ""
 
-#: gnu/packages/compression.scm:1987
+#: gnu/packages/compression.scm:1614
 msgid "Universal tool to manage file archives of various types"
 msgstr ""
 
-#: gnu/packages/compression.scm:1988
+#: gnu/packages/compression.scm:1615
 msgid ""
 "The main command is @command{aunpack} which extracts files\n"
 "from an archive.  The other commands provided are @command{apack} (to create\n"
@@ -2461,33 +2374,11 @@ msgid ""
 "of archives."
 msgstr ""
 
-#: gnu/packages/compression.scm:2010
-msgid "Generic archive extracting mechanism"
-msgstr ""
-
-#: gnu/packages/compression.scm:2011
-msgid ""
-"It allows you to extract any archive file of the type .tar,\n"
-".tar.gz, .gz, .Z, tar.bz2, .tbz, .bz2, .zip, .xz,, .txz, .tar.xz or .lzma\n"
-"without having to worry how it does so, or use different interfaces for each\n"
-"type by using either Perl modules, or command-line tools on your system."
-msgstr ""
-
-#: gnu/packages/compression.scm:2047
-msgid "XZ in Java"
-msgstr ""
-
-#: gnu/packages/compression.scm:2048
-msgid ""
-"Tukaani-xz is an implementation of xz compression/decompression\n"
-"algorithms in Java."
-msgstr ""
-
-#: gnu/packages/compression.scm:2068
+#: gnu/packages/compression.scm:1639
 msgid "Small, stand-alone lzip decompressor"
 msgstr ""
 
-#: gnu/packages/compression.scm:2070
+#: gnu/packages/compression.scm:1641
 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"
@@ -2497,11 +2388,11 @@ msgid ""
 "Lunzip is intended to be fully compatible with the regular lzip package."
 msgstr ""
 
-#: gnu/packages/compression.scm:2095
+#: gnu/packages/compression.scm:1666
 msgid "Small, stand-alone lzip compressor and decompressor"
 msgstr "Compresseur et décompresseur lzip léger et autonome"
 
-#: gnu/packages/compression.scm:2097
+#: gnu/packages/compression.scm:1668
 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"
@@ -2510,11 +2401,11 @@ msgid ""
 "Clzip is intended to be fully compatible with the regular lzip package."
 msgstr ""
 
-#: gnu/packages/compression.scm:2124
+#: gnu/packages/compression.scm:1693
 msgid "Lzip data compression C library"
 msgstr "Bibliothèque C de compression lzip"
 
-#: gnu/packages/compression.scm:2126
+#: gnu/packages/compression.scm:1695
 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"
@@ -2522,11 +2413,11 @@ msgid ""
 "corrupted input."
 msgstr ""
 
-#: gnu/packages/compression.scm:2148
+#: gnu/packages/compression.scm:1717
 msgid "Parallel lossless data compressor for the lzip format"
 msgstr ""
 
-#: gnu/packages/compression.scm:2150
+#: gnu/packages/compression.scm:1719
 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"
@@ -2540,21 +2431,21 @@ msgid ""
 "single-member files which can't be decompressed in parallel."
 msgstr ""
 
-#: gnu/packages/compression.scm:2184
+#: gnu/packages/compression.scm:1753
 msgid "Tool for extracting Inno Setup installers"
 msgstr ""
 
-#: gnu/packages/compression.scm:2185
+#: gnu/packages/compression.scm:1754
 msgid ""
 "innoextract allows extracting Inno Setup installers under\n"
 "non-Windows systems without running the actual installer using wine."
 msgstr ""
 
-#: gnu/packages/compression.scm:2221
+#: gnu/packages/compression.scm:1792
 msgid "General-purpose lossless compression"
 msgstr ""
 
-#: gnu/packages/compression.scm:2222
+#: gnu/packages/compression.scm:1793
 msgid ""
 "This package provides the reference implementation of Brotli,\n"
 "a generic-purpose lossless compression algorithm that compresses data using a\n"
@@ -2566,11 +2457,11 @@ msgid ""
 "The specification of the Brotli Compressed Data Format is defined in RFC 7932."
 msgstr ""
 
-#: gnu/packages/compression.scm:2245
+#: gnu/packages/compression.scm:1816
 msgid "Portable lossless data compression library"
 msgstr "Bibliothèque de compression de données sans perte portable"
 
-#: gnu/packages/compression.scm:2246
+#: gnu/packages/compression.scm:1817
 msgid ""
 "UCL implements a number of compression algorithms that\n"
 "achieve an excellent compression ratio while allowing fast decompression.\n"
@@ -2580,11 +2471,11 @@ msgid ""
 "decompression is a little bit slower."
 msgstr ""
 
-#: gnu/packages/compression.scm:2302
+#: gnu/packages/compression.scm:1873
 msgid "Compression tool for executables"
 msgstr "Outil de compression pour les exécutables"
 
-#: gnu/packages/compression.scm:2304
+#: gnu/packages/compression.scm:1875
 msgid ""
 "The Ultimate Packer for eXecutables (UPX) is an executable file\n"
 "compressor.  UPX typically reduces the file size of programs and shared\n"
@@ -2592,88 +2483,64 @@ msgid ""
 "download times, and other distribution and storage costs."
 msgstr ""
 
-#: gnu/packages/databases.scm:159
+#: gnu/packages/databases.scm:161
 msgid "Clustered RDF storage and query engine"
 msgstr ""
 
-#: gnu/packages/databases.scm:160
+#: gnu/packages/databases.scm:162
 msgid ""
 "4store is a RDF/SPARQL store written in C, supporting\n"
 "either single machines or networked clusters."
 msgstr ""
 
-#: gnu/packages/databases.scm:179
-msgid "Hash library of database functions compatible with traditional dbm"
-msgstr ""
-
-#: gnu/packages/databases.scm:181
-msgid ""
-"GDBM is a library for manipulating hashed databases.  It is used to\n"
-"store key/value pairs in a file in a manner similar to the Unix dbm library\n"
-"and provides interfaces to the traditional file format."
-msgstr ""
-
-#: gnu/packages/databases.scm:222
+#: gnu/packages/databases.scm:204
 msgid "@code{mgo} offers a rich MongoDB driver for Go."
 msgstr ""
 
-#: gnu/packages/databases.scm:224
+#: gnu/packages/databases.scm:206
 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:274
-msgid "Berkeley database"
-msgstr "Base de données Berkeley"
-
-#: gnu/packages/databases.scm:276
-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."
-msgstr ""
-"Berkeley DB est une base de données embarquée proposant aux développeurs\n"
-"le choix de SQL, clé/valeur, XML/XQuery ou Java Object Storage pour leur\n"
-"modèle de données."
-
-#: gnu/packages/databases.scm:353
+#: gnu/packages/databases.scm:232
 msgid "Utility for dumping and restoring ElasticSearch indexes"
 msgstr ""
 
-#: gnu/packages/databases.scm:355
+#: gnu/packages/databases.scm:234
 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:393
+#: gnu/packages/databases.scm:259
 msgid "Fast key-value storage library"
 msgstr ""
 
-#: gnu/packages/databases.scm:395
+#: gnu/packages/databases.scm:261
 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:416
+#: gnu/packages/databases.scm:281
 msgid "In-memory caching service"
 msgstr ""
 
-#: gnu/packages/databases.scm:417
+#: gnu/packages/databases.scm:282
 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:541
+#: gnu/packages/databases.scm:405
 msgid "High performance and high availability document database"
 msgstr ""
 
-#: gnu/packages/databases.scm:543
+#: gnu/packages/databases.scm:407
 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"
@@ -2681,11 +2548,11 @@ msgid ""
 "RDBMS systems (which are deep in functionality)."
 msgstr ""
 
-#: gnu/packages/databases.scm:613
+#: gnu/packages/databases.scm:477
 msgid "Fast, easy to use, and popular database"
 msgstr "Base de données rapide, facile d'utilisation et populaire"
 
-#: gnu/packages/databases.scm:615
+#: gnu/packages/databases.scm:479
 msgid ""
 "MySQL is a fast, reliable, and easy to use relational database\n"
 "management system that supports the standardized Structured Query\n"
@@ -2694,21 +2561,21 @@ 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:797
+#: gnu/packages/databases.scm:667
 msgid "SQL database server"
 msgstr ""
 
-#: gnu/packages/databases.scm:799
+#: gnu/packages/databases.scm:669
 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:838
+#: gnu/packages/databases.scm:709
 msgid "Powerful object-relational database system"
 msgstr "Système de base de données relationnelle puissant"
 
-#: gnu/packages/databases.scm:840
+#: gnu/packages/databases.scm:711
 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"
@@ -2724,21 +2591,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:880
+#: gnu/packages/databases.scm:750
 msgid "Pure-Python MySQL driver"
 msgstr ""
 
-#: gnu/packages/databases.scm:882
+#: gnu/packages/databases.scm:752
 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:907
+#: gnu/packages/databases.scm:777
 msgid "Key-value database"
 msgstr "Base de données clef-valeur"
 
-#: gnu/packages/databases.scm:908
+#: gnu/packages/databases.scm:778
 msgid ""
 "QDBM is a library of routines for managing a\n"
 "database.  The database is a simple data file containing key-value\n"
@@ -2748,11 +2615,11 @@ msgid ""
 "organized in a hash table or B+ tree."
 msgstr ""
 
-#: gnu/packages/databases.scm:963
+#: gnu/packages/databases.scm:814
 msgid "Manipulate plain text files as databases"
 msgstr "Manipule les fichiers texte comme des bases de données"
 
-#: gnu/packages/databases.scm:965
+#: gnu/packages/databases.scm:816
 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"
@@ -2767,11 +2634,11 @@ msgstr ""
 "les timestamps et plus encore. De nombreux types de champs sont supportés, tout comme\n"
 "le chiffrement."
 
-#: gnu/packages/databases.scm:1061
+#: gnu/packages/databases.scm:913
 msgid "Persistent key-value store for fast storage"
 msgstr ""
 
-#: gnu/packages/databases.scm:1063
+#: gnu/packages/databases.scm:915
 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"
@@ -2782,14 +2649,14 @@ msgid ""
 "data in a single database.  RocksDB is partially based on @code{LevelDB}."
 msgstr ""
 
-#: gnu/packages/databases.scm:1123
+#: gnu/packages/databases.scm:975
 msgid "Command-line tool for accessing SPARQL endpoints over HTTP"
 msgstr ""
 
-#: gnu/packages/databases.scm:1124
+#: gnu/packages/databases.scm:976
 msgid ""
 "Sparql-query is a command-line tool for accessing SPARQL\n"
-"endpoints over HTTP.  It has been intentionally designed to 'feel' similar to\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"
@@ -2797,11 +2664,21 @@ msgid ""
 "for example from a shell script."
 msgstr ""
 
-#: gnu/packages/databases.scm:1158
+#: gnu/packages/databases.scm:1067
+msgid "Database change management tool"
+msgstr ""
+
+#: gnu/packages/databases.scm:1069
+msgid ""
+"Sqitch is a standalone change management system for database schemas,\n"
+"which uses SQL to describe changes."
+msgstr ""
+
+#: gnu/packages/databases.scm:1096
 msgid "Text console-based database viewer and editor"
 msgstr ""
 
-#: gnu/packages/databases.scm:1160
+#: gnu/packages/databases.scm:1098
 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"
@@ -2809,27 +2686,11 @@ msgid ""
 "changes."
 msgstr ""
 
-#: gnu/packages/databases.scm:1197
-msgid "The SQLite database management system"
-msgstr "Le système de gestion de bases de données SQLite"
-
-#: gnu/packages/databases.scm:1199
-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."
-msgstr ""
-"SQLite est une bibliothèque logicielle implémantant un moteur de bases\n"
-"de données SQL indépendant, sans serveur, sans configuration et transactionnel.\n"
-"SQLite est le moteur de bases de données SQL le plus déployé de part le monde.\n"
-"Le code source de SQLite est dans le domaine public."
-
-#: gnu/packages/databases.scm:1255
+#: gnu/packages/databases.scm:1134
 msgid "Trivial database"
 msgstr "Base de données triviale"
 
-#: gnu/packages/databases.scm:1257
+#: gnu/packages/databases.scm:1136
 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"
@@ -2841,19 +2702,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:1276
+#: gnu/packages/databases.scm:1155
 msgid "Database independent interface for Perl"
 msgstr "Interface de base de données pour Perl"
 
-#: gnu/packages/databases.scm:1277
+#: gnu/packages/databases.scm:1156
 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:1325
+#: gnu/packages/databases.scm:1204
 msgid "Extensible and flexible object <-> relational mapper"
 msgstr ""
 
-#: gnu/packages/databases.scm:1326
+#: gnu/packages/databases.scm:1205
 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"
@@ -2865,21 +2726,21 @@ msgid ""
 "\"ORDER BY\" and \"HAVING\" support."
 msgstr ""
 
-#: gnu/packages/databases.scm:1357
+#: gnu/packages/databases.scm:1236
 msgid "Cursor with built-in caching support"
 msgstr ""
 
-#: gnu/packages/databases.scm:1358
+#: gnu/packages/databases.scm:1237
 msgid ""
 "DBIx::Class::Cursor::Cached provides a cursor class with\n"
 "built-in caching support."
 msgstr ""
 
-#: gnu/packages/databases.scm:1380
+#: gnu/packages/databases.scm:1259
 msgid "Introspect many-to-many relationships"
 msgstr ""
 
-#: gnu/packages/databases.scm:1381
+#: gnu/packages/databases.scm:1260
 msgid ""
 "Because the many-to-many relationships are not real\n"
 "relationships, they can not be introspected with DBIx::Class.  Many-to-many\n"
@@ -2889,22 +2750,22 @@ msgid ""
 "introspected and examined."
 msgstr ""
 
-#: gnu/packages/databases.scm:1439
+#: gnu/packages/databases.scm:1318
 msgid "Create a DBIx::Class::Schema based on a database"
 msgstr ""
 
-#: gnu/packages/databases.scm:1440
+#: gnu/packages/databases.scm:1319
 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:1464
+#: gnu/packages/databases.scm:1343
 msgid "DBI PostgreSQL interface"
 msgstr "Interface DBI PostgreSQL"
 
-#: gnu/packages/databases.scm:1465
+#: gnu/packages/databases.scm:1344
 msgid ""
 "This package provides a PostgreSQL driver for the Perl5\n"
 "@dfn{Database Interface} (DBI)."
@@ -2912,11 +2773,11 @@ msgstr ""
 "Ce paquet fournit un pilote PostgreSQL pour la @dfn{Database Interface}\n"
 "(DBI) de Perl5."
 
-#: gnu/packages/databases.scm:1502
+#: gnu/packages/databases.scm:1380
 msgid "DBI MySQL interface"
 msgstr "Interface DBI MySQL"
 
-#: gnu/packages/databases.scm:1503
+#: gnu/packages/databases.scm:1381
 msgid ""
 "This package provides a MySQL driver for the Perl5\n"
 "@dfn{Database Interface} (DBI)."
@@ -2924,11 +2785,11 @@ msgstr ""
 "Ce paquet fournit un pilote MySQL pour la @dfn{Database Interface}\n"
 "(DBI) de Perl5."
 
-#: gnu/packages/databases.scm:1522
+#: gnu/packages/databases.scm:1400
 msgid "SQlite interface for Perl"
 msgstr "Interface SQLite pour Perl"
 
-#: gnu/packages/databases.scm:1523
+#: gnu/packages/databases.scm:1401
 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"
@@ -2939,11 +2800,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:1554
+#: gnu/packages/databases.scm:1424
+#, scheme-format
+msgid "Parse and utilize MySQL's /etc/my.cnf and ~/.my.cnf files"
+msgstr ""
+
+#: gnu/packages/databases.scm:1426
+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"
+"@code{Getopt::Long}."
+msgstr ""
+
+#: gnu/packages/databases.scm:1454
 msgid "Generate SQL from Perl data structures"
 msgstr ""
 
-#: gnu/packages/databases.scm:1555
+#: gnu/packages/databases.scm:1455
 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"
@@ -2953,32 +2826,32 @@ msgid ""
 "time your data changes."
 msgstr ""
 
-#: gnu/packages/databases.scm:1584
+#: gnu/packages/databases.scm:1484
 msgid "Split SQL code into atomic statements"
 msgstr ""
 
-#: gnu/packages/databases.scm:1585
+#: gnu/packages/databases.scm:1485
 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:1603
+#: gnu/packages/databases.scm:1503
 msgid "SQL tokenizer"
 msgstr ""
 
-#: gnu/packages/databases.scm:1604
+#: gnu/packages/databases.scm:1504
 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:1622
+#: gnu/packages/databases.scm:1522
 msgid "Data source abstraction library"
 msgstr "Bibliothèque d'abstraction de source de données"
 
-#: gnu/packages/databases.scm:1623
+#: gnu/packages/databases.scm:1523
 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"
@@ -2988,11 +2861,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:1647
+#: gnu/packages/databases.scm:1547
 msgid "In-memory key/value and document store"
 msgstr ""
 
-#: gnu/packages/databases.scm:1649
+#: gnu/packages/databases.scm:1549
 msgid ""
 "UnQLite is an in-process software library which implements a\n"
 "self-contained, serverless, zero-configuration, transactional NoSQL\n"
@@ -3001,33 +2874,33 @@ msgid ""
 "similar to BerkeleyDB, LevelDB, etc."
 msgstr ""
 
-#: gnu/packages/databases.scm:1677
+#: gnu/packages/databases.scm:1577
 msgid "Key-value cache and store"
 msgstr ""
 
-#: gnu/packages/databases.scm:1678
+#: gnu/packages/databases.scm:1578
 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:1705
+#: gnu/packages/databases.scm:1605
 msgid "Kyoto Cabinet is a modern implementation of the DBM database"
 msgstr ""
 
-#: gnu/packages/databases.scm:1707
+#: gnu/packages/databases.scm:1607
 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:1733
+#: gnu/packages/databases.scm:1633
 msgid "Tokyo Cabinet is a modern implementation of the DBM database"
 msgstr ""
 
-#: gnu/packages/databases.scm:1735
+#: gnu/packages/databases.scm:1635
 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"
@@ -3037,11 +2910,11 @@ msgid ""
 "organized in hash table, B+ tree, or fixed-length array."
 msgstr ""
 
-#: gnu/packages/databases.scm:1771
+#: gnu/packages/databases.scm:1671
 msgid "NoSQL data engine"
 msgstr ""
 
-#: gnu/packages/databases.scm:1773
+#: gnu/packages/databases.scm:1673
 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"
@@ -3050,11 +2923,11 @@ msgid ""
 "trees (LSM), for sustained throughput under random insert workloads."
 msgstr ""
 
-#: gnu/packages/databases.scm:1824
+#: gnu/packages/databases.scm:1724
 msgid "WiredTiger bindings for GNU Guile"
 msgstr "Liaisons WiredTiger pour GNU Guile"
 
-#: gnu/packages/databases.scm:1826
+#: gnu/packages/databases.scm:1726
 msgid ""
 "This package provides Guile bindings to the WiredTiger ``NoSQL''\n"
 "database."
@@ -3062,19 +2935,19 @@ msgstr ""
 "Ce paquet fournit les liaisons Guile pour le système de base de données « NoSQL »\n"
 "WiredTiger."
 
-#: gnu/packages/databases.scm:1858
+#: gnu/packages/databases.scm:1758
 msgid "Perl5 access to Berkeley DB version 1.x"
 msgstr ""
 
-#: gnu/packages/databases.scm:1860
+#: gnu/packages/databases.scm:1760
 msgid "The DB::File module provides Perl bindings to the Berkeley DB version 1.x."
 msgstr ""
 
-#: gnu/packages/databases.scm:1887
+#: gnu/packages/databases.scm:1788
 msgid "Lightning Memory-Mapped Database library"
 msgstr ""
 
-#: gnu/packages/databases.scm:1889
+#: gnu/packages/databases.scm:1790
 msgid ""
 "The @dfn{Lightning Memory-Mapped Database} (LMDB) is a high-performance\n"
 "transactional database.  Unlike more complex relational databases, LMDB handles\n"
@@ -3087,22 +2960,22 @@ msgid ""
 "virtual address space — not physical RAM."
 msgstr ""
 
-#: gnu/packages/databases.scm:1926
+#: gnu/packages/databases.scm:1827
 msgid "C++ connector for PostgreSQL"
 msgstr ""
 
-#: gnu/packages/databases.scm:1928
+#: gnu/packages/databases.scm:1829
 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:1951
+#: gnu/packages/databases.scm:1852
 msgid "Small object-relational mapping utility"
 msgstr ""
 
-#: gnu/packages/databases.scm:1953
+#: gnu/packages/databases.scm:1854
 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"
@@ -3111,11 +2984,11 @@ msgid ""
 "can autogenerate peewee models using @code{pwiz}, a model generator."
 msgstr ""
 
-#: gnu/packages/databases.scm:2000
+#: gnu/packages/databases.scm:1900
 msgid "Library providing transparent encryption of SQLite database files"
 msgstr ""
 
-#: gnu/packages/databases.scm:2001
+#: gnu/packages/databases.scm:1901
 msgid ""
 "SQLCipher is an implementation of SQLite, extended to\n"
 "provide transparent 256-bit AES encryption of database files.  Pages are\n"
@@ -3124,27 +2997,27 @@ msgid ""
 "development."
 msgstr ""
 
-#: gnu/packages/databases.scm:2033 gnu/packages/databases.scm:2060
+#: gnu/packages/databases.scm:1933 gnu/packages/databases.scm:1959
 msgid "Python ODBC Library"
 msgstr "La bibliothèque Python ODBC"
 
-#: gnu/packages/databases.scm:2034
+#: gnu/packages/databases.scm:1934
 msgid ""
 "@code{python-pyodbc-c} provides a Python DB-API driver\n"
 "for ODBC."
 msgstr ""
 
-#: gnu/packages/databases.scm:2061
+#: gnu/packages/databases.scm:1960
 msgid ""
 "@code{python-pyodbc} provides a Python DB-API driver\n"
 "for ODBC."
 msgstr ""
 
-#: gnu/packages/databases.scm:2093
+#: gnu/packages/databases.scm:1992
 msgid "Read Microsoft Access databases"
 msgstr ""
 
-#: gnu/packages/databases.scm:2094
+#: gnu/packages/databases.scm:1993
 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"
@@ -3153,77 +3026,65 @@ msgid ""
 "etc., and an SQL engine for performing simple SQL queries."
 msgstr ""
 
-#: gnu/packages/databases.scm:2137
+#: gnu/packages/databases.scm:2036
 msgid "Python binding for the ‘Lightning’ database (LMDB)"
 msgstr ""
 
-#: gnu/packages/databases.scm:2139
+#: gnu/packages/databases.scm:2038
 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:2193
+#: gnu/packages/databases.scm:2092
 msgid "ActiveRecord ORM for Python"
 msgstr ""
 
-#: gnu/packages/databases.scm:2195
+#: gnu/packages/databases.scm:2094
 msgid ""
 "Orator provides a simple ActiveRecord-like Object Relational Mapping\n"
 "implementation for Python."
 msgstr ""
 
-#: gnu/packages/databases.scm:2228
+#: gnu/packages/databases.scm:2127
 msgid "Multi-model database system"
 msgstr "Système de base de données multi-modèles"
 
-#: gnu/packages/databases.scm:2229
+#: gnu/packages/databases.scm:2128
 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:2260
-msgid "Database interface and MySQL driver for R"
-msgstr "Interface de base de données et pilote MySQL pour R"
-
-#: gnu/packages/databases.scm:2262
-msgid ""
-"This package provides a DBI interface to MySQL / MariaDB.  The RMySQL\n"
-"package contains an old implementation based on legacy code from S-PLUS which\n"
-"is being phased out.  A modern MySQL client based on Rcpp is available from\n"
-"the RMariaDB package."
-msgstr ""
-
-#: gnu/packages/databases.scm:2287
+#: gnu/packages/databases.scm:2154
 msgid ""
 "Cassandra Cluster Manager for Apache Cassandra clusters on\n"
 "localhost"
 msgstr ""
 
-#: gnu/packages/databases.scm:2289
+#: gnu/packages/databases.scm:2156
 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:2315
+#: gnu/packages/databases.scm:2182
 msgid "SQLite bindings for Python"
 msgstr "Liaisons SQLite pour Python"
 
-#: gnu/packages/databases.scm:2317
+#: gnu/packages/databases.scm:2184
 msgid ""
 "Pysqlite provides SQLite bindings for Python that comply to the\n"
 "Database API 2.0T."
 msgstr ""
 
-#: gnu/packages/databases.scm:2344
+#: gnu/packages/databases.scm:2209
 msgid "Database abstraction library"
 msgstr "Bibliothèque d'abstraction de bases de données"
 
-#: gnu/packages/databases.scm:2346
+#: gnu/packages/databases.scm:2211
 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"
@@ -3232,11 +3093,11 @@ msgid ""
 "simple and Pythonic domain language."
 msgstr ""
 
-#: gnu/packages/databases.scm:2385
+#: gnu/packages/databases.scm:2250
 msgid "Various utility functions for SQLAlchemy"
 msgstr ""
 
-#: gnu/packages/databases.scm:2387
+#: gnu/packages/databases.scm:2252
 msgid ""
 "SQLAlchemy-utils provides various utility functions and custom data types\n"
 "for SQLAlchemy.  SQLAlchemy is an SQL database abstraction library for Python.\n"
@@ -3253,21 +3114,21 @@ msgid ""
 "@end enumerate\n"
 msgstr ""
 
-#: gnu/packages/databases.scm:2428
+#: gnu/packages/databases.scm:2293
 msgid "Database migration tool for SQLAlchemy"
 msgstr ""
 
-#: gnu/packages/databases.scm:2430
+#: gnu/packages/databases.scm:2295
 msgid ""
 "Alembic is a lightweight database migration tool for usage with the\n"
 "SQLAlchemy Database Toolkit for Python."
 msgstr ""
 
-#: gnu/packages/databases.scm:2456
+#: gnu/packages/databases.scm:2321
 msgid "Tiny key value database with concurrency support"
 msgstr ""
 
-#: gnu/packages/databases.scm:2458
+#: gnu/packages/databases.scm:2323
 msgid ""
 "PickleShare is a small ‘shelve’-like datastore with concurrency support.\n"
 "Like shelve, a PickleShareDB object acts like a normal dictionary.  Unlike\n"
@@ -3278,11 +3139,11 @@ msgid ""
 "PickleShare."
 msgstr ""
 
-#: gnu/packages/databases.scm:2510
+#: gnu/packages/databases.scm:2375
 msgid "Another Python SQLite Wrapper"
 msgstr ""
 
-#: gnu/packages/databases.scm:2511
+#: gnu/packages/databases.scm:2376
 msgid ""
 "APSW is a Python wrapper for the SQLite\n"
 "embedded relational database engine.  In contrast to other wrappers such as\n"
@@ -3290,22 +3151,22 @@ msgid ""
 "translate the complete SQLite API into Python."
 msgstr ""
 
-#: gnu/packages/databases.scm:2535
+#: gnu/packages/databases.scm:2400
 msgid "Neo4j driver code written in Python"
 msgstr ""
 
-#: gnu/packages/databases.scm:2536
+#: gnu/packages/databases.scm:2401
 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:2555
+#: gnu/packages/databases.scm:2420
 msgid "Library and toolkit for working with Neo4j in Python"
 msgstr ""
 
-#: gnu/packages/databases.scm:2556
+#: gnu/packages/databases.scm:2421
 msgid ""
 "This package provides a client library and toolkit for\n"
 "working with Neo4j from within Python applications and from the command\n"
@@ -3313,32 +3174,32 @@ msgid ""
 "designed to be easy and intuitive to use."
 msgstr ""
 
-#: gnu/packages/databases.scm:2581
+#: gnu/packages/databases.scm:2445
 msgid "Python PostgreSQL adapter"
 msgstr "Adaptateur Python pour PostgreSQL"
 
-#: gnu/packages/databases.scm:2583
+#: gnu/packages/databases.scm:2447
 msgid ""
 "psycopg2 is a thread-safe PostgreSQL adapter that implements DB-API\n"
 "2.0."
 msgstr ""
 
-#: gnu/packages/databases.scm:2608
+#: gnu/packages/databases.scm:2472
 msgid "SQLAlchemy schema displayer"
 msgstr ""
 
-#: gnu/packages/databases.scm:2609
+#: gnu/packages/databases.scm:2473
 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:2639
+#: gnu/packages/databases.scm:2503
 msgid "MySQLdb is an interface to the popular MySQL database server for Python"
 msgstr ""
 
-#: gnu/packages/databases.scm:2640
+#: gnu/packages/databases.scm:2504
 msgid ""
 "MySQLdb is an interface to the popular MySQL database server\n"
 "for Python.  The design goals are:\n"
@@ -3349,21 +3210,21 @@ msgid ""
 "@end enumerate"
 msgstr ""
 
-#: gnu/packages/databases.scm:2668
+#: gnu/packages/databases.scm:2532
 msgid "Python extension that wraps protocol parsing code in hiredis"
 msgstr ""
 
-#: gnu/packages/databases.scm:2669
+#: gnu/packages/databases.scm:2533
 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:2692
+#: gnu/packages/databases.scm:2556
 msgid "Fake implementation of redis API for testing purposes"
 msgstr ""
 
-#: gnu/packages/databases.scm:2694
+#: gnu/packages/databases.scm:2558
 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"
@@ -3374,61 +3235,61 @@ msgid ""
 "reasonable substitute."
 msgstr ""
 
-#: gnu/packages/databases.scm:2723
+#: gnu/packages/databases.scm:2587
 msgid "Redis Python client"
 msgstr ""
 
-#: gnu/packages/databases.scm:2725
+#: gnu/packages/databases.scm:2589
 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:2746
+#: gnu/packages/databases.scm:2610
 msgid "Simple job queues for Python"
 msgstr ""
 
-#: gnu/packages/databases.scm:2748
+#: gnu/packages/databases.scm:2612
 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:2771
+#: gnu/packages/databases.scm:2635
 msgid "Port of asyncio-redis to trollius"
 msgstr ""
 
-#: gnu/packages/databases.scm:2772
+#: gnu/packages/databases.scm:2636
 msgid ""
 "@code{trollius-redis} is a Redis client for Python\n"
 "  trollius.  It is an asynchronious IO (PEP 3156) implementation of the\n"
 "  Redis protocol."
 msgstr ""
 
-#: gnu/packages/databases.scm:2799
+#: gnu/packages/databases.scm:2663
 msgid "Non-validating SQL parser"
 msgstr ""
 
-#: gnu/packages/databases.scm:2800
+#: gnu/packages/databases.scm:2664
 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:2820
+#: gnu/packages/databases.scm:2683
 msgid "Library to write SQL queries in a pythonic way"
 msgstr ""
 
-#: gnu/packages/databases.scm:2821
+#: gnu/packages/databases.scm:2684
 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:2906
+#: gnu/packages/databases.scm:2781
 msgid "Various tools for interacting with MongoDB and BSON"
 msgstr ""
 
-#: gnu/packages/databases.scm:2908
+#: gnu/packages/databases.scm:2783
 msgid ""
 "This package includes a collection of tools related to MongoDB.\n"
 "@table @code\n"
@@ -3453,11 +3314,11 @@ msgid ""
 "@end table"
 msgstr ""
 
-#: gnu/packages/databases.scm:2994
+#: gnu/packages/databases.scm:2867
 msgid "Columnar in-memory analytics"
 msgstr ""
 
-#: gnu/packages/databases.scm:2995
+#: gnu/packages/databases.scm:2868
 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"
@@ -3466,22 +3327,22 @@ msgid ""
 "algorithm implementations."
 msgstr ""
 
-#: gnu/packages/databases.scm:3039
+#: gnu/packages/databases.scm:2913
 msgid "Python bindings for Apache Arrow"
 msgstr "Liaisons python pour Apache Arrow"
 
-#: gnu/packages/databases.scm:3040
+#: gnu/packages/databases.scm:2914
 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."
 msgstr ""
 
-#: gnu/packages/debug.scm:80
+#: gnu/packages/debug.scm:85
 msgid "Heuristical file minimizer"
 msgstr ""
 
-#: gnu/packages/debug.scm:82
+#: gnu/packages/debug.scm:87
 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"
@@ -3489,11 +3350,11 @@ msgid ""
 "program to exhibit a bug."
 msgstr ""
 
-#: gnu/packages/debug.scm:138
+#: gnu/packages/debug.scm:147
 msgid "Reducer for interesting code"
 msgstr ""
 
-#: gnu/packages/debug.scm:140
+#: gnu/packages/debug.scm:149
 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"
@@ -3502,11 +3363,11 @@ msgid ""
 "tools that process C/C++ code."
 msgstr ""
 
-#: gnu/packages/debug.scm:248
+#: gnu/packages/debug.scm:256
 msgid "Security-oriented fuzzer"
 msgstr ""
 
-#: gnu/packages/debug.scm:250
+#: gnu/packages/debug.scm:258
 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"
@@ -3517,11 +3378,11 @@ msgid ""
 "down the road."
 msgstr ""
 
-#: gnu/packages/debug.scm:305
+#: gnu/packages/debug.scm:314
 msgid "Expose race conditions in Makefiles"
 msgstr ""
 
-#: gnu/packages/debug.scm:307
+#: gnu/packages/debug.scm:316
 msgid ""
 "Stress Make is a customized GNU Make that explicitely manages the order\n"
 "in which concurrent jobs are run to provoke erroneous behavior into becoming\n"
@@ -3531,17 +3392,30 @@ msgid ""
 "conditions."
 msgstr ""
 
-#: gnu/packages/debug.scm:334
+#: gnu/packages/debug.scm:343
 msgid "Transparent application input fuzzer"
 msgstr ""
 
-#: gnu/packages/debug.scm:335
+#: gnu/packages/debug.scm:344
 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:397
+msgid "Memory scanner"
+msgstr ""
+
+#: gnu/packages/debug.scm:398
+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/dejagnu.scm:78
 msgid "GNU software testing framework"
 msgstr ""
@@ -3553,25 +3427,53 @@ msgid ""
 "multiple test suites, which are then all managed by a single harness."
 msgstr ""
 
-#: gnu/packages/games.scm:176
+#: gnu/packages/games.scm:230
+msgid "Action game in four spatial dimensions"
+msgstr ""
+
+#: gnu/packages/games.scm:232
+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:282
+msgid "Retro platform game"
+msgstr ""
+
+#: gnu/packages/games.scm:284
+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:311
 msgid "Tron clone in 3D"
 msgstr ""
 
-#: gnu/packages/games.scm:177
+#: gnu/packages/games.scm:312
 msgid ""
-"Armagetron is a multiplayer game in 3d that attempts to\n"
-"emulate and expand on the lightcycle sequence from the movie Tron.  It's\n"
-"an old school arcade game slung into the 21st century.  Highlights include\n"
-"a customizable playing arena, HUD, unique graphics, and AI bots.  For the\n"
-"more advanced player there are new game modes and a wide variety of physics\n"
-"settings to tweak as well."
+"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:239
+#: gnu/packages/games.scm:377
 msgid "Antagonistic Tetris-style falling brick game for text terminals"
 msgstr ""
 
-#: gnu/packages/games.scm:241
+#: gnu/packages/games.scm:379
 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"
@@ -3581,26 +3483,27 @@ msgid ""
 "canyons and wait for the long I-shaped block to clear four rows at a time."
 msgstr ""
 
-#: gnu/packages/games.scm:305
+#: gnu/packages/games.scm:440
 msgid "Survival horror roguelike video game"
 msgstr ""
 
-#: gnu/packages/games.scm:307
+#: gnu/packages/games.scm:442
 msgid ""
-"Cataclysm: Dark Days Ahead is a roguelike set in a post-apocalyptic\n"
-"world.  Struggle to survive in a harsh, persistent, procedurally generated\n"
-"world.  Scavenge the remnants of a dead civilization for food, equipment, or,\n"
-"if you are lucky, a vehicle with a full tank of gas to get you out of Dodge.\n"
-"Fight to defeat or escape from a wide variety of powerful monstrosities, from\n"
-"zombies to giant insects to killer robots and things far stranger and deadlier,\n"
-"and against the others like yourself, that want what you have."
+"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:348
+#: gnu/packages/games.scm:487
 msgid "Speaking cow text filter"
 msgstr ""
 
-#: gnu/packages/games.scm:349
+#: gnu/packages/games.scm:488
 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"
@@ -3608,11 +3511,11 @@ msgid ""
 "tired of cows, a variety of other ASCII-art messengers are available."
 msgstr ""
 
-#: gnu/packages/games.scm:416
+#: gnu/packages/games.scm:557
 msgid "Free content game based on the Doom engine"
 msgstr "Jeu au contenu libre basé sur le moteur Doom"
 
-#: gnu/packages/games.scm:425
+#: gnu/packages/games.scm:566
 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"
@@ -3626,11 +3529,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:473
+#: gnu/packages/games.scm:614
 msgid "Isometric role-playing game against killer robots"
 msgstr ""
 
-#: gnu/packages/games.scm:475
+#: gnu/packages/games.scm:616
 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"
@@ -3640,11 +3543,11 @@ msgid ""
 "real-time combat."
 msgstr ""
 
-#: gnu/packages/games.scm:552
+#: gnu/packages/games.scm:693
 msgid "Software for exploring cellular automata"
 msgstr ""
 
-#: gnu/packages/games.scm:554
+#: gnu/packages/games.scm:695
 msgid ""
 "Golly simulates Conway's Game of Life and many other types of cellular\n"
 "automata.  The following features are available:\n"
@@ -3665,11 +3568,11 @@ msgid ""
 "@end enumerate"
 msgstr ""
 
-#: gnu/packages/games.scm:602
+#: gnu/packages/games.scm:740
 msgid "Puzzle/platform game"
 msgstr ""
 
-#: gnu/packages/games.scm:603
+#: gnu/packages/games.scm:741
 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"
@@ -3677,11 +3580,11 @@ msgid ""
 "shadow mimic them to reach blocks you couldn't reach alone."
 msgstr ""
 
-#: gnu/packages/games.scm:638
+#: gnu/packages/games.scm:776
 msgid "Multiplayer dungeon game involving knights and quests"
 msgstr ""
 
-#: gnu/packages/games.scm:639
+#: gnu/packages/games.scm:777
 msgid ""
 "Knights is a multiplayer game involving several knights who\n"
 "must run around a dungeon and complete various quests.  Each game revolves\n"
@@ -3693,29 +3596,29 @@ msgid ""
 "destroying an ancient book using a special wand."
 msgstr ""
 
-#: gnu/packages/games.scm:676
+#: gnu/packages/games.scm:814
 msgid "Backgammon game"
 msgstr "Jeu de backgammon"
 
-#: gnu/packages/games.scm:677
+#: gnu/packages/games.scm:815
 msgid ""
-"The GNU backgammon application can be used for playing,\n"
-"analyzing and teaching the game.  It has an advanced evaluation engine based on\n"
-"artificial 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 ""
-"L'application GNU backgammon peut être utilisée pour jouer, analyser et\n"
-"apprendre le jeu.  Il possède un moteur d'analyse avancé basé sur des réseaux\n"
-"neuronaux artificiels adaptés aux débutants et au joueurs avancés.  En plus\n"
-"d'une interface en ligne de commande, il possède aussi une représentation 3D\n"
-"attractive du plateau de jeu."
+"L'application GNU backgammon (aussi connue sous le nom de « gnubg ») peut\n"
+"être utilisée pour jouer, analyser et apprendre le jeu.  Il possède un moteur\n"
+"d'analyse avancé basé sur des réseaux neuronaux artificiels adaptés aux débutants\n"
+"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:706
+#: gnu/packages/games.scm:847
 msgid "3d Rubik's cube game"
 msgstr "Jeu de Rubik's cube en 3d"
 
-#: gnu/packages/games.scm:708
+#: gnu/packages/games.scm:849
 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"
@@ -3729,11 +3632,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:730
+#: gnu/packages/games.scm:871
 msgid "The game of Shogi (Japanese chess)"
 msgstr "Le jeu de Shōgi (les échecs japonais)"
 
-#: gnu/packages/games.scm:731
+#: gnu/packages/games.scm:872
 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."
@@ -3741,11 +3644,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:762
+#: gnu/packages/games.scm:903
 msgid "Tetris clone based on the SDL library"
 msgstr ""
 
-#: gnu/packages/games.scm:764
+#: gnu/packages/games.scm:905
 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"
@@ -3759,11 +3662,11 @@ msgid ""
 "watch your CPU playing while enjoying a cup of tea!"
 msgstr ""
 
-#: gnu/packages/games.scm:886
+#: gnu/packages/games.scm:1028
 msgid "Classic dungeon crawl game"
 msgstr ""
 
-#: gnu/packages/games.scm:887
+#: gnu/packages/games.scm:1029
 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"
@@ -3777,11 +3680,11 @@ msgid ""
 "role, and your gender."
 msgstr ""
 
-#: gnu/packages/games.scm:932
+#: gnu/packages/games.scm:1073
 msgid "Logical tile puzzle"
 msgstr ""
 
-#: gnu/packages/games.scm:934
+#: gnu/packages/games.scm:1075
 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"
@@ -3790,31 +3693,31 @@ msgid ""
 "Every puzzle has a complete solution, although there may be more than one."
 msgstr ""
 
-#: gnu/packages/games.scm:982
+#: gnu/packages/games.scm:1122
 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:984
+#: gnu/packages/games.scm:1124
 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:1032
+#: gnu/packages/games.scm:1172
 msgid "Action platformer game"
 msgstr ""
 
-#: gnu/packages/games.scm:1034
+#: gnu/packages/games.scm:1174
 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:1140
+#: gnu/packages/games.scm:1280
 msgid "A classical roguelike/sandbox game"
 msgstr ""
 
-#: gnu/packages/games.scm:1142
+#: gnu/packages/games.scm:1282
 msgid ""
 "RogueBox Adventures is a graphical roguelike with strong influences\n"
 "from sandbox games like Minecraft or Terraria.  The main idea of RogueBox\n"
@@ -3822,19 +3725,19 @@ msgid ""
 "can be explored and changed freely."
 msgstr ""
 
-#: gnu/packages/games.scm:1169
+#: gnu/packages/games.scm:1309
 msgid "User interface for gnushogi"
 msgstr "Interface pour gnushogi"
 
-#: gnu/packages/games.scm:1170
+#: gnu/packages/games.scm:1310
 msgid "A graphical user interface for the package @code{gnushogi}."
 msgstr "Une interface utilisateur graphique pour le paquet @code{gnushogi}"
 
-#: gnu/packages/games.scm:1221
+#: gnu/packages/games.scm:1361
 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:1222
+#: gnu/packages/games.scm:1362
 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"
@@ -3843,11 +3746,11 @@ msgid ""
 "that beneath its ruins lay buried an ancient evil."
 msgstr ""
 
-#: gnu/packages/games.scm:1275
+#: gnu/packages/games.scm:1418
 msgid "Dungeon exploration roguelike"
 msgstr "Roguelike d'exploration de donjon"
 
-#: gnu/packages/games.scm:1276
+#: gnu/packages/games.scm:1419
 msgid ""
 "Angband is a Classic dungeon exploration roguelike.  Explore\n"
 "the depths below Angband, seeking riches, fighting monsters, and preparing to\n"
@@ -3857,11 +3760,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:1312
+#: gnu/packages/games.scm:1457
 msgid "Lemmings clone"
 msgstr "Clone de Lemmings"
 
-#: gnu/packages/games.scm:1314
+#: gnu/packages/games.scm:1459
 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"
@@ -3876,11 +3779,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:1336
+#: gnu/packages/games.scm:1481
 msgid "Convert English text to humorous dialects"
 msgstr "Convertit du texte en anglais vers des dialectes rigolos"
 
-#: gnu/packages/games.scm:1337
+#: gnu/packages/games.scm:1482
 msgid ""
 "The GNU Talk Filters are programs that convert English text\n"
 "into stereotyped or otherwise humorous dialects.  The filters are provided as\n"
@@ -3890,11 +3793,11 @@ 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:1369
+#: gnu/packages/games.scm:1513
 msgid "Simulate the display from \"The Matrix\""
 msgstr "Simule l'affichage comme dans « Matrix »"
 
-#: gnu/packages/games.scm:1370
+#: gnu/packages/games.scm:1514
 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"
@@ -3906,11 +3809,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:1390
+#: gnu/packages/games.scm:1534
 msgid "Full chess implementation"
 msgstr "Implémentation complète du jeu d'échecs"
 
-#: gnu/packages/games.scm:1391
+#: gnu/packages/games.scm:1535
 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"
@@ -3921,11 +3824,11 @@ msgstr ""
 "textuelle par défaut soit via une interface visuelle externe comme\n"
 "GNU XBoard."
 
-#: gnu/packages/games.scm:1419
+#: gnu/packages/games.scm:1575
 msgid "Twisted adventures of young pig farmer Dink Smallwood"
 msgstr ""
 
-#: gnu/packages/games.scm:1421
+#: gnu/packages/games.scm:1577
 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"
@@ -3933,29 +3836,29 @@ msgid ""
 "To that extent, it also includes a front-end for managing all of your D-Mods."
 msgstr ""
 
-#: gnu/packages/games.scm:1446
+#: gnu/packages/games.scm:1603
 msgid "Game data for GNU Freedink"
 msgstr "Données de jeu pour GNU Freedink"
 
-#: gnu/packages/games.scm:1448
+#: gnu/packages/games.scm:1605
 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:1469
+#: gnu/packages/games.scm:1628
 msgid "Front-end for managing and playing Dink Modules"
 msgstr "Interface pour gérer et jouer à des modules pour Dink"
 
-#: gnu/packages/games.scm:1470
+#: gnu/packages/games.scm:1629
 msgid ""
 "DFArc makes it easy to play and manage the GNU FreeDink game\n"
 "and its numerous D-Mods."
 msgstr ""
 
-#: gnu/packages/games.scm:1522
+#: gnu/packages/games.scm:1681
 msgid "Graphical user interface for chess programs"
 msgstr "Interface utilisateur Graphique pour les programmes d'échecs"
 
-#: gnu/packages/games.scm:1523
+#: gnu/packages/games.scm:1682
 msgid ""
 "GNU XBoard is a graphical board for all varieties of chess,\n"
 "including international chess, xiangqi (Chinese chess), shogi (Japanese chess)\n"
@@ -3969,23 +3872,11 @@ 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:1577
-msgid "Ball and paddle game"
-msgstr ""
-
-#: gnu/packages/games.scm:1578
-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:1612
+#: gnu/packages/games.scm:1716
 msgid "Typing tutor"
 msgstr "Tutorial pour apprendre à taper"
 
-#: gnu/packages/games.scm:1614
+#: gnu/packages/games.scm:1718
 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"
@@ -3994,11 +3885,11 @@ msgid ""
 "are primarily in English, however some in other languages are provided."
 msgstr ""
 
-#: gnu/packages/games.scm:1680
+#: gnu/packages/games.scm:1784
 msgid "3D game engine written in C++"
 msgstr "Moteur de jeu 3D écrit en C++"
 
-#: gnu/packages/games.scm:1682
+#: gnu/packages/games.scm:1786
 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"
@@ -4011,11 +3902,11 @@ msgstr ""
 "effets spéciaux, le support pour des formats de fichiers graphiques usuels et la\n"
 "détection de collision."
 
-#: gnu/packages/games.scm:1734
+#: gnu/packages/games.scm:1838
 msgid "2D space shooter"
 msgstr "Jeu de tir spatial en 2D"
 
-#: gnu/packages/games.scm:1736
+#: gnu/packages/games.scm:1840
 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"
@@ -4023,19 +3914,19 @@ msgid ""
 "match, cannon keep, and grave-itation pit."
 msgstr ""
 
-#: gnu/packages/games.scm:1770
+#: gnu/packages/games.scm:1874
 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:1772
-msgid "Game data for the Minetest infinite-world block sandox game."
+#: gnu/packages/games.scm:1876
+msgid "Game data for the Minetest infinite-world block sandbox game."
 msgstr ""
 
-#: gnu/packages/games.scm:1832
+#: gnu/packages/games.scm:1936
 msgid "Infinite-world block sandbox game"
 msgstr ""
 
-#: gnu/packages/games.scm:1834
+#: gnu/packages/games.scm:1938
 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"
@@ -4044,11 +3935,11 @@ msgid ""
 "in different ways."
 msgstr ""
 
-#: gnu/packages/games.scm:1873
+#: gnu/packages/games.scm:1977
 msgid "Curses Implementation of the Glk API"
 msgstr "Implémentation en Curses de l'API Glk"
 
-#: gnu/packages/games.scm:1875
+#: gnu/packages/games.scm:1979
 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"
@@ -4063,11 +3954,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:1913
+#: gnu/packages/games.scm:2017
 msgid "Interpreter for Glulx VM"
 msgstr "Interpréteur pour Glulx VM"
 
-#: gnu/packages/games.scm:1915
+#: gnu/packages/games.scm:2019
 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"
@@ -4079,11 +3970,11 @@ 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:1949
+#: gnu/packages/games.scm:2053
 msgid "Z-machine interpreter"
 msgstr "Interpréteur Z-machine"
 
-#: gnu/packages/games.scm:1951
+#: gnu/packages/games.scm:2055
 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"
@@ -4093,11 +3984,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:1969
+#: gnu/packages/games.scm:2073
 msgid "Play the game of Go"
 msgstr "Jouer au jeu de Go"
 
-#: gnu/packages/games.scm:1971
+#: gnu/packages/games.scm:2075
 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"
@@ -4115,11 +4006,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:1999
+#: gnu/packages/games.scm:2103
 msgid "High-speed arctic racing game based on Tux Racer"
 msgstr ""
 
-#: gnu/packages/games.scm:2001
+#: gnu/packages/games.scm:2105
 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"
@@ -4132,11 +4023,11 @@ msgid ""
 "This game is based on the GPL version of the famous game TuxRacer."
 msgstr ""
 
-#: gnu/packages/games.scm:2083
+#: gnu/packages/games.scm:2177
 msgid "3D kart racing game"
 msgstr "Jeu de course de karts en 3D"
 
-#: gnu/packages/games.scm:2084
+#: gnu/packages/games.scm:2178
 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"
@@ -4148,12 +4039,12 @@ 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:2116
+#: gnu/packages/games.scm:2210
 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:2118
+#: gnu/packages/games.scm:2212
 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"
@@ -4166,11 +4057,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:2152
+#: gnu/packages/games.scm:2246
 msgid "Turn-based strategy game"
 msgstr "Jeu de stratégie en tour par tour"
 
-#: gnu/packages/games.scm:2154
+#: gnu/packages/games.scm:2248
 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"
@@ -4190,11 +4081,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:2176
+#: gnu/packages/games.scm:2273
 msgid "Dedicated @emph{Battle for Wesnoth} server"
 msgstr "Serveur dédié pour la @emph{Bataille pour Wesnoth}"
 
-#: gnu/packages/games.scm:2177
+#: gnu/packages/games.scm:2274
 msgid ""
 "This package contains a dedicated server for @emph{The\n"
 "Battle for Wesnoth}."
@@ -4202,11 +4093,11 @@ msgstr ""
 "Ce paquet contient un serveur dédié pour @emph{La bataille\n"
 "pour Wesnoth}."
 
-#: gnu/packages/games.scm:2218
+#: gnu/packages/games.scm:2318
 msgid "Mouse and keyboard discovery for children"
 msgstr "Découverte de la souris et du clavier pour les enfants"
 
-#: gnu/packages/games.scm:2220
+#: gnu/packages/games.scm:2320
 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"
@@ -4216,25 +4107,12 @@ msgstr ""
 "souris et le clavier. L'enfant utilise la souris pour dessiner des points colorés\n"
 "et des lignes sur l'écran et le clavier pour afficher des lettres."
 
-#: gnu/packages/games.scm:2260
-msgid "Puzzle game with a cat in lead role"
-msgstr ""
-
-#: gnu/packages/games.scm:2261
-msgid ""
-"Project Raincat is a game developed by Carnegie Mellon\n"
-"students through GCS during the Fall 2008 semester.  Raincat features game\n"
-"play inspired from classics Lemmings and The Incredible Machine.  The project\n"
-"proved to be an excellent learning experience for the programmers.  Everything\n"
-"is programmed in Haskell."
-msgstr ""
-
 # Traductino officielle du nom du jeu ?
-#: gnu/packages/games.scm:2295
+#: gnu/packages/games.scm:2353
 msgid "Client for 'The Mana World' and similar games"
 msgstr "Client pour « the Mana World » et des jeux similaires"
 
-#: gnu/packages/games.scm:2297
+#: gnu/packages/games.scm:2355
 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"
@@ -4245,11 +4123,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:2365
-msgid "Transportation economics simulator"
+#: gnu/packages/games.scm:2422
+msgid "Transportation economics simulator game"
 msgstr "Simulateur de l'économie du transport"
 
-#: gnu/packages/games.scm:2366
+#: gnu/packages/games.scm:2423
 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"
@@ -4266,11 +4144,11 @@ 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:2423
+#: gnu/packages/games.scm:2480
 msgid "Base graphics set for OpenTTD"
 msgstr ""
 
-#: gnu/packages/games.scm:2425
+#: gnu/packages/games.scm:2482
 msgid ""
 "The OpenGFX projects is an implementation of the OpenTTD base grahics\n"
 "set that aims to ensure the best possible out-of-the-box experience.\n"
@@ -4285,49 +4163,49 @@ msgid ""
 "@end enumerate"
 msgstr ""
 
-#: gnu/packages/games.scm:2470
+#: gnu/packages/games.scm:2527
 msgid "Base sounds for OpenTTD"
 msgstr ""
 
-#: gnu/packages/games.scm:2471
+#: gnu/packages/games.scm:2528
 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:2508
+#: gnu/packages/games.scm:2565
 msgid "Music set for OpenTTD"
 msgstr ""
 
-#: gnu/packages/games.scm:2509
+#: gnu/packages/games.scm:2566
 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:2578
+#: gnu/packages/games.scm:2635
 msgid "Title sequences for OpenRCT2"
 msgstr ""
 
-#: gnu/packages/games.scm:2580
+#: gnu/packages/games.scm:2637
 msgid "openrct2-title-sequences is a set of title sequences for OpenRCT2."
 msgstr ""
 
-#: gnu/packages/games.scm:2619
+#: gnu/packages/games.scm:2675
 msgid "Objects for OpenRCT2"
 msgstr ""
 
-#: gnu/packages/games.scm:2621
+#: gnu/packages/games.scm:2677
 msgid "openrct2-objects is a set of objects for OpenRCT2."
 msgstr ""
 
-#: gnu/packages/games.scm:2684
+#: gnu/packages/games.scm:2742
 msgid "Free software re-implementation of RollerCoaster Tycoon 2"
 msgstr ""
 
-#: gnu/packages/games.scm:2685
+#: gnu/packages/games.scm:2743
 msgid ""
 "OpenRCT2 is a free software re-implementation of\n"
 "RollerCoaster Tycoon 2 (RCT2).  The gameplay revolves around building and\n"
@@ -4337,43 +4215,43 @@ msgid ""
 "images, etc.)"
 msgstr ""
 
-#: gnu/packages/games.scm:2727
+#: gnu/packages/games.scm:2785
 msgid "Pinball simulator"
 msgstr ""
 
-#: gnu/packages/games.scm:2728
+#: gnu/packages/games.scm:2786
 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:2751
+#: gnu/packages/games.scm:2809
 msgid "Board game inspired by The Settlers of Catan"
 msgstr ""
 
-#: gnu/packages/games.scm:2752
+#: gnu/packages/games.scm:2810
 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:2793 gnu/packages/gnome.scm:2655
+#: gnu/packages/games.scm:2851 gnu/packages/gnome.scm:2746
 msgid "Logic puzzle game"
 msgstr ""
 
-#: gnu/packages/games.scm:2794
+#: gnu/packages/games.scm:2852
 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:2823
+#: gnu/packages/games.scm:2880
 msgid "MUD and telnet client"
 msgstr ""
 
-#: gnu/packages/games.scm:2825
+#: gnu/packages/games.scm:2882
 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"
@@ -4381,33 +4259,33 @@ msgid ""
 "http://lavachat.symlynx.com/unix/"
 msgstr ""
 
-#: gnu/packages/games.scm:3000
+#: gnu/packages/games.scm:3057
 msgid "Arena shooter derived from the Cube 2 engine"
 msgstr ""
 
-#: gnu/packages/games.scm:3002
+#: gnu/packages/games.scm:3059
 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:3062
+#: gnu/packages/games.scm:3119
 msgid "Text adventure game"
 msgstr ""
 
-#: gnu/packages/games.scm:3064
+#: gnu/packages/games.scm:3121
 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:3106
+#: gnu/packages/games.scm:3163
 msgid "Old-school earthworm action game"
 msgstr ""
 
-#: gnu/packages/games.scm:3108
+#: gnu/packages/games.scm:3165
 msgid ""
 "lierolibre is an earthworm action game where you fight another player\n"
 "(or the computer) underground using a wide array of weapons.\n"
@@ -4432,11 +4310,11 @@ msgid ""
 "fullscreen, use F5 or Alt+Enter."
 msgstr ""
 
-#: gnu/packages/games.scm:3181
+#: gnu/packages/games.scm:3239
 msgid "3D Real-time strategy and real-time tactics game"
 msgstr ""
 
-#: gnu/packages/games.scm:3183
+#: gnu/packages/games.scm:3241
 msgid ""
 "Warzone 2100 offers campaign, multi-player, and single-player skirmish\n"
 "modes. An extensive tech tree with over 400 different technologies, combined\n"
@@ -4444,11 +4322,11 @@ msgid ""
 "tactics."
 msgstr ""
 
-#: gnu/packages/games.scm:3216
+#: gnu/packages/games.scm:3274
 msgid "2D scrolling shooter game"
 msgstr ""
 
-#: gnu/packages/games.scm:3218
+#: gnu/packages/games.scm:3276
 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"
@@ -4457,11 +4335,11 @@ msgid ""
 "in strikes against the evil corporation."
 msgstr ""
 
-#: gnu/packages/games.scm:3249
+#: gnu/packages/games.scm:3310
 msgid "Fast-paced, arcade-style, top-scrolling space shooter"
 msgstr ""
 
-#: gnu/packages/games.scm:3251
+#: gnu/packages/games.scm:3312
 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"
@@ -4469,11 +4347,11 @@ msgid ""
 "safety of the Chromium vessel."
 msgstr ""
 
-#: gnu/packages/games.scm:3327
+#: gnu/packages/games.scm:3394
 msgid "Drawing software for children"
 msgstr ""
 
-#: gnu/packages/games.scm:3329
+#: gnu/packages/games.scm:3396
 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"
@@ -4482,52 +4360,52 @@ msgid ""
 "your child be creative."
 msgstr ""
 
-#: gnu/packages/games.scm:3368
+#: gnu/packages/games.scm:3435
 msgid "Stamp images for Tux Paint"
 msgstr ""
 
-#: gnu/packages/games.scm:3370
+#: gnu/packages/games.scm:3437
 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:3417
+#: gnu/packages/games.scm:3484
 msgid "Configure Tux Paint"
 msgstr ""
 
-#: gnu/packages/games.scm:3419
+#: gnu/packages/games.scm:3486
 msgid "Tux Paint Config is a graphical configuration editor for Tux Paint."
 msgstr ""
 
-#: gnu/packages/games.scm:3451
+#: gnu/packages/games.scm:3518
 msgid "2D platformer game"
 msgstr ""
 
-#: gnu/packages/games.scm:3452
+#: gnu/packages/games.scm:3519
 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."
 msgstr ""
 
-#: gnu/packages/games.scm:3486
+#: gnu/packages/games.scm:3554
 msgid "MUD client"
 msgstr ""
 
-#: gnu/packages/games.scm:3488
+#: gnu/packages/games.scm:3556
 msgid ""
-"TinTin++ is a MUD client which supports MCCP (Mud Client Compression Protocol),\n"
-"MMCP (Mud Master Chat Protocol), xterm 256 colors, most TELNET options used by MUDs,\n"
-"as well as those required to login via telnet on Linux / Mac OS X servers, and an\n"
-"auto mapper with a VT100 map display."
+"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:3525
+#: gnu/packages/games.scm:3600
 msgid "Programming game"
 msgstr ""
 
-#: gnu/packages/games.scm:3526
+#: gnu/packages/games.scm:3601
 msgid ""
 "Learn programming, playing with ants and spider webs ;-)\n"
 "Your robot ant can be programmed in many languages: OCaml, Python, C, C++,\n"
@@ -4535,22 +4413,22 @@ msgid ""
 "programmers may also add their own favorite language."
 msgstr ""
 
-#: gnu/packages/games.scm:3571
+#: gnu/packages/games.scm:3646
 msgid "Keyboard mashing and doodling game for babies"
 msgstr ""
 
-#: gnu/packages/games.scm:3572
+#: gnu/packages/games.scm:3647
 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:3636
+#: gnu/packages/games.scm:3711
 msgid "Arcade-style fire fighting game"
 msgstr ""
 
-#: gnu/packages/games.scm:3638
+#: gnu/packages/games.scm:3713
 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"
@@ -4558,11 +4436,11 @@ msgid ""
 "throwing people around in pseudo-randomly generated buildings."
 msgstr ""
 
-#: gnu/packages/games.scm:3747
+#: gnu/packages/games.scm:3822
 msgid "Non-euclidean graphical rogue-like game"
 msgstr ""
 
-#: gnu/packages/games.scm:3749
+#: gnu/packages/games.scm:3824
 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"
@@ -4576,21 +4454,21 @@ msgid ""
 "symbols, it still needs graphics to render the non-euclidean world."
 msgstr ""
 
-#: gnu/packages/games.scm:3792
+#: gnu/packages/games.scm:3867
 msgid "Shooter with space station destruction"
 msgstr ""
 
-#: gnu/packages/games.scm:3794
+#: gnu/packages/games.scm:3869
 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:3826
+#: gnu/packages/games.scm:3901
 msgid "Turn based empire building strategy game"
 msgstr ""
 
-#: gnu/packages/games.scm:3827
+#: gnu/packages/games.scm:3902
 msgid ""
 "Freeciv is a turn based empire building strategy game\n"
 "inspired by the history of human civilization.  The game commences in\n"
@@ -4598,11 +4476,11 @@ msgid ""
 "to the Space Age."
 msgstr ""
 
-#: gnu/packages/games.scm:3858
+#: gnu/packages/games.scm:3933
 msgid "Recreation of data decryption effect in \"Sneakers\""
 msgstr ""
 
-#: gnu/packages/games.scm:3860
+#: gnu/packages/games.scm:3935
 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"
@@ -4613,41 +4491,41 @@ msgid ""
 "starting a decryption sequence to reveal the original plaintext characters."
 msgstr ""
 
-#: gnu/packages/games.scm:3887
+#: gnu/packages/games.scm:3962
 msgid "Data files for MegaGlest"
 msgstr "Fichiers de données pour MegaGlest"
 
-#: gnu/packages/games.scm:3888
+#: gnu/packages/games.scm:3963
 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:3941
+#: gnu/packages/games.scm:4016
 msgid "3D real-time strategy (RTS) game"
 msgstr ""
 
-#: gnu/packages/games.scm:3942
+#: gnu/packages/games.scm:4017
 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:3993
+#: gnu/packages/games.scm:4068
 msgid "Side-scrolling physics platformer with a ball of tar"
 msgstr ""
 
-#: gnu/packages/games.scm:3994
+#: gnu/packages/games.scm:4069
 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:4030
+#: gnu/packages/games.scm:4105
 msgid "Classic overhead run-and-gun game"
 msgstr ""
 
-#: gnu/packages/games.scm:4031
+#: gnu/packages/games.scm:4106
 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"
@@ -4655,33 +4533,33 @@ msgid ""
 "over 100 user-created campaigns."
 msgstr ""
 
-#: gnu/packages/games.scm:4131
+#: gnu/packages/games.scm:4206
 msgid "3D puzzle game"
 msgstr ""
 
-#: gnu/packages/games.scm:4132
+#: gnu/packages/games.scm:4207
 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:4264
+#: gnu/packages/games.scm:4341
 msgid "2D retro multiplayer shooter game"
 msgstr ""
 
-#: gnu/packages/games.scm:4265
+#: gnu/packages/games.scm:4342
 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:4318
+#: gnu/packages/games.scm:4395
 msgid "Puzzle game with a dexterity component"
 msgstr ""
 
-#: gnu/packages/games.scm:4319
+#: gnu/packages/games.scm:4396
 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"
@@ -4693,11 +4571,11 @@ msgid ""
 "with the mouse isn’t always trivial."
 msgstr ""
 
-#: gnu/packages/games.scm:4352
+#: gnu/packages/games.scm:4429
 msgid "Abstract puzzle game"
 msgstr ""
 
-#: gnu/packages/games.scm:4353
+#: gnu/packages/games.scm:4430
 msgid ""
 "Chroma is an abstract puzzle game. A variety of colourful\n"
 "shapes are arranged in a series of increasingly complex patterns, forming\n"
@@ -4707,11 +4585,11 @@ msgid ""
 " becoming difficult enough to tax even the brightest of minds."
 msgstr ""
 
-#: gnu/packages/games.scm:4422
+#: gnu/packages/games.scm:4499
 msgid "Puzzle game"
 msgstr ""
 
-#: gnu/packages/games.scm:4423
+#: gnu/packages/games.scm:4500
 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"
@@ -4720,26 +4598,26 @@ msgid ""
 "fish.  The whole game is accompanied by quiet, comforting music."
 msgstr ""
 
-#: gnu/packages/games.scm:4487
+#: gnu/packages/games.scm:4576
 msgid "Roguelike dungeon crawler game"
 msgstr ""
 
-#: gnu/packages/games.scm:4488
+#: gnu/packages/games.scm:4577
 msgid ""
-"Dungeon Crawl Stone Soup is a roguelike adventure through\n"
-"dungeons filled with dangerous monsters in a quest to find the mystifyingly\n"
-"fabulous Orb of Zot."
+"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:4534
+#: gnu/packages/games.scm:4626
 msgid "Graphical roguelike dungeon crawler game"
 msgstr ""
 
-#: gnu/packages/games.scm:4564
+#: gnu/packages/games.scm:4659
 msgid "Cross-platform third-person action game"
 msgstr ""
 
-#: gnu/packages/games.scm:4565
+#: gnu/packages/games.scm:4660
 msgid ""
 "Lugaru is a third-person action game.  The main character,\n"
 "Turner, is an anthropomorphic rebel bunny rabbit with impressive combat skills.\n"
@@ -4749,19 +4627,19 @@ msgid ""
 "fight against their plot and save his fellow rabbits from slavery."
 msgstr ""
 
-#: gnu/packages/games.scm:4615
+#: gnu/packages/games.scm:4710
 msgid "Data files for 0ad"
 msgstr ""
 
-#: gnu/packages/games.scm:4616
+#: gnu/packages/games.scm:4711
 msgid "0ad-data provides the data files required by the game 0ad."
 msgstr ""
 
-#: gnu/packages/games.scm:4734
+#: gnu/packages/games.scm:4829
 msgid "3D real-time strategy game of ancient warfare"
 msgstr ""
 
-#: gnu/packages/games.scm:4735
+#: gnu/packages/games.scm:4830
 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"
@@ -4771,11 +4649,11 @@ msgid ""
 "0ad needs a window manager that supports 'Extended Window Manager Hints'."
 msgstr ""
 
-#: gnu/packages/games.scm:4810
+#: gnu/packages/games.scm:4905
 msgid "Colossal Cave Adventure"
 msgstr ""
 
-#: gnu/packages/games.scm:4811
+#: gnu/packages/games.scm:4906
 msgid ""
 "The original Colossal Cave Adventure from 1976 was the\n"
 "origin of all text adventures, dungeon-crawl (computer) games, and\n"
@@ -4784,11 +4662,11 @@ msgid ""
 "\"adventure 2.5\" and \"430-point adventure\"."
 msgstr ""
 
-#: gnu/packages/games.scm:4822
+#: gnu/packages/games.scm:4917
 msgid "Single-player, RPG roguelike game set in the world of Eyal"
 msgstr ""
 
-#: gnu/packages/games.scm:4930
+#: gnu/packages/games.scm:5027
 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"
@@ -4799,29 +4677,29 @@ msgid ""
 "Tales of Maj’Eyal offers engaging roguelike gameplay for the 21st century."
 msgstr ""
 
-#: gnu/packages/games.scm:4976
+#: gnu/packages/games.scm:5076
 msgid "First person shooter engine for Quake 1"
 msgstr ""
 
-#: gnu/packages/games.scm:4977
+#: gnu/packages/games.scm:5077
 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:5027
+#: gnu/packages/games.scm:5127
 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:5078
+#: gnu/packages/games.scm:5178
 msgid "First person shooter engine based on quake2"
 msgstr ""
 
-#: gnu/packages/games.scm:5079
+#: gnu/packages/games.scm:5179
 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"
@@ -4831,30 +4709,30 @@ msgid ""
 "making Yamagi Quake II one of the most solid Quake II implementations available."
 msgstr ""
 
-#: gnu/packages/games.scm:5107
+#: gnu/packages/games.scm:5207
 msgid "Sudoku for your terminal"
 msgstr ""
 
-#: gnu/packages/games.scm:5108
+#: gnu/packages/games.scm:5208
 msgid "Nudoku is a ncurses-based Sudoku game for your terminal."
 msgstr ""
 
-#: gnu/packages/games.scm:5154
+#: gnu/packages/games.scm:5254
 msgid "Realistic physics puzzle game"
 msgstr ""
 
-#: gnu/packages/games.scm:5155
+#: gnu/packages/games.scm:5255
 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:5206
+#: gnu/packages/games.scm:5306
 msgid "Game of lonely space adventure"
 msgstr ""
 
-#: gnu/packages/games.scm:5208
+#: gnu/packages/games.scm:5308
 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"
@@ -4865,22 +4743,22 @@ msgid ""
 "whatever you make of it."
 msgstr ""
 
-#: gnu/packages/games.scm:5235
+#: gnu/packages/games.scm:5335
 msgid "Hacking contribution graphs in git"
 msgstr ""
 
-#: gnu/packages/games.scm:5237
+#: gnu/packages/games.scm:5337
 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:5315
+#: gnu/packages/games.scm:5410
 msgid "Educational programming strategy game"
 msgstr ""
 
-#: gnu/packages/games.scm:5316
+#: gnu/packages/games.scm:5411
 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"
@@ -4888,11 +4766,11 @@ msgid ""
 "You can save humanity and get programming skills!"
 msgstr ""
 
-#: gnu/packages/games.scm:5399
+#: gnu/packages/games.scm:5494
 msgid "Modern Doom 2 source port"
 msgstr ""
 
-#: gnu/packages/games.scm:5400
+#: gnu/packages/games.scm:5495
 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"
@@ -4900,29 +4778,40 @@ msgid ""
 "Strife, Chex Quest, and fan-created games like Harmony, Hacx and Freedoom."
 msgstr ""
 
-#: gnu/packages/games.scm:5470
+#: gnu/packages/games.scm:5531
+msgid "Multiplayer Doom port"
+msgstr ""
+
+#: gnu/packages/games.scm:5532
+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
 msgid "The Fortune Cookie program from BSD games"
 msgstr ""
 
-#: gnu/packages/games.scm:5471
+#: gnu/packages/games.scm:5599
 msgid ""
 "Fortune is a command-line utility which displays a random\n"
 "quotation from a collection of quotes."
 msgstr ""
 
-#: gnu/packages/games.scm:5511
+#: gnu/packages/games.scm:5639
 msgid "Data files for Xonotic"
 msgstr "Fichiers de données pour Xonotic"
 
-#: gnu/packages/games.scm:5513
+#: gnu/packages/games.scm:5641
 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:5707
+#: gnu/packages/games.scm:5835
 msgid "Fast-paced first-person shooter game"
 msgstr ""
 
-#: gnu/packages/games.scm:5709
+#: gnu/packages/games.scm:5837
 msgid ""
 "Xonotic is a free, fast-paced first-person shooter.\n"
 "The project is geared towards providing addictive arena shooter\n"
@@ -4932,11 +4821,11 @@ msgid ""
 "open-source FPS of its kind."
 msgstr ""
 
-#: gnu/packages/games.scm:5759
+#: gnu/packages/games.scm:5887
 msgid "Portable Z-machine interpreter (ncurses version) for text adventure games"
 msgstr ""
 
-#: gnu/packages/games.scm:5760
+#: gnu/packages/games.scm:5888
 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"
@@ -4945,11 +4834,11 @@ msgid ""
 "ncurses for text display."
 msgstr ""
 
-#: gnu/packages/games.scm:5801
+#: gnu/packages/games.scm:5929
 msgid "Portable Z-machine dumb interpreter for text adventure games"
 msgstr ""
 
-#: gnu/packages/games.scm:5802
+#: gnu/packages/games.scm:5930
 msgid ""
 "Frotz is an interpreter for Infocom games and\n"
 "other Z-machine games in the text adventure/interactive fiction genre.\n"
@@ -4961,11 +4850,11 @@ msgid ""
 "to play games on webpages.  It can also be made into a chat bot."
 msgstr ""
 
-#: gnu/packages/games.scm:5865
+#: gnu/packages/games.scm:5993
 msgid "Portable Z-machine interpreter (SDL port) for text adventure games"
 msgstr ""
 
-#: gnu/packages/games.scm:5866
+#: gnu/packages/games.scm:5994
 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"
@@ -4975,6 +4864,218 @@ msgid ""
 "when packaged in Blorb container files or optionally from individual files."
 msgstr ""
 
+#: gnu/packages/games.scm:6025
+msgid "Game controller library"
+msgstr ""
+
+#: gnu/packages/games.scm:6026
+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:6061
+msgid "GNOME version of Tetris"
+msgstr ""
+
+#: gnu/packages/games.scm:6062
+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:6116
+msgid "2D space trading and combat game"
+msgstr ""
+
+#: gnu/packages/games.scm:6117
+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:6266
+msgid "Advanced rhythm game designed for both home and arcade use"
+msgstr ""
+
+#: gnu/packages/games.scm:6267
+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:6351
+msgid "Multiplayer tank battle game"
+msgstr ""
+
+#: gnu/packages/games.scm:6352
+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:6385
+msgid "Simple 2D shooting strategy game set in space"
+msgstr ""
+
+#: gnu/packages/games.scm:6386
+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:6432
+msgid "4D Tetris"
+msgstr ""
+
+#: gnu/packages/games.scm:6433
+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
+msgid "Port of Arx Fatalis, a first-person role-playing game"
+msgstr ""
+
+#: gnu/packages/games.scm:6510
+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."
+msgstr ""
+
+#: gnu/packages/games.scm:6556
+msgid "2d action platformer game"
+msgstr ""
+
+#: gnu/packages/games.scm:6557
+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:6645
+msgid "Multiplayer action game where you control small and nimble humanoids"
+msgstr ""
+
+#: gnu/packages/games.scm:6646
+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"
+"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
+msgid "Action Roleplaying Engine"
+msgstr ""
+
+#: gnu/packages/games.scm:6678
+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
+msgid "Fantasy action RPG using the FLARE engine"
+msgstr ""
+
+#: gnu/packages/games.scm:6743
+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
+msgid "Action-adventure dungeon crawl game"
+msgstr ""
+
+#: gnu/packages/games.scm:6795
+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:6858
+msgid "Guide a marble across fractal landscapes"
+msgstr ""
+
+#: gnu/packages/games.scm:6859
+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:6900
+msgid "Libraries for 3D simulations and games"
+msgstr ""
+
+#: gnu/packages/games.scm:6901
+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:6993
+msgid "Flight simulator"
+msgstr ""
+
+#: gnu/packages/games.scm:6994
+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/gcc.scm:348
 msgid "GNU Compiler Collection"
 msgstr "GNU Compiler Collection"
@@ -4989,7 +5090,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:516
+#: gnu/packages/gcc.scm:504
 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"
@@ -4999,25 +5100,25 @@ 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:561
+#: gnu/packages/gcc.scm:549
 msgid "GNU C++ standard library"
 msgstr "Bibliothèque standard C++ GNU"
 
-#: gnu/packages/gcc.scm:596
+#: gnu/packages/gcc.scm:584
 msgid "Collection of subroutines used by various GNU programs"
 msgstr "Collection de sous-routines utilisées par divers programmes GNU"
 
-#: gnu/packages/gcc.scm:803
+#: gnu/packages/gcc.scm:791
 msgid "GNU libstdc++ documentation"
 msgstr "Documentation de GNU libstdc++"
 
-#: gnu/packages/gcc.scm:873
+#: gnu/packages/gcc.scm:861
 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:876
+#: gnu/packages/gcc.scm:864
 msgid ""
 "isl is a library for manipulating sets and relations of integer points\n"
 "bounded by linear constraints.  Supported operations on sets include\n"
@@ -5029,11 +5130,11 @@ msgid ""
 "dependence analysis and bounds on piecewise step-polynomials."
 msgstr ""
 
-#: gnu/packages/gcc.scm:926
+#: gnu/packages/gcc.scm:928
 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:928
+#: gnu/packages/gcc.scm:930
 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"
@@ -5059,11 +5160,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:983
+#: gnu/packages/gcc.scm:985
 msgid "Reference manual for the C programming language"
 msgstr "Manuel de référence pour le langage de programmation C"
 
-#: gnu/packages/gcc.scm:985
+#: gnu/packages/gcc.scm:987
 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"
@@ -5096,11 +5197,11 @@ msgstr ""
 msgid "Tools and documentation for translation"
 msgstr "Outils et documentation pour la traduction"
 
-#: gnu/packages/gettext.scm:201
+#: gnu/packages/gettext.scm:206
 msgid "Scripts to ease maintenance of translations"
 msgstr "Scripts pour faciliter la maintenance des traductions"
 
-#: gnu/packages/gettext.scm:203
+#: gnu/packages/gettext.scm:208
 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"
@@ -5202,36 +5303,36 @@ 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"
-"transfering the style of an image."
+"transferring the style of an image."
 msgstr ""
 
-#: gnu/packages/gnome.scm:208
+#: gnu/packages/gnome.scm:221
 msgid "CD/DVD burning tool for Gnome"
 msgstr ""
 
-#: gnu/packages/gnome.scm:209
+#: gnu/packages/gnome.scm:222
 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:284
+#: gnu/packages/gnome.scm:297
 msgid "Simple backup tool, for regular encrypted backups"
 msgstr ""
 
-#: gnu/packages/gnome.scm:286
+#: gnu/packages/gnome.scm:299
 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:333
+#: gnu/packages/gnome.scm:346
 msgid "Diagram creation for GNOME"
 msgstr ""
 
-#: gnu/packages/gnome.scm:334
+#: gnu/packages/gnome.scm:347
 msgid ""
 "Dia can be used to draw different types of diagrams, and\n"
 "includes support for UML static structure diagrams (class diagrams), entity\n"
@@ -5239,33 +5340,33 @@ msgid ""
 "formats like PNG, SVG, PDF and EPS."
 msgstr ""
 
-#: gnu/packages/gnome.scm:390
+#: gnu/packages/gnome.scm:397
 msgid "Library for accessing online service APIs"
 msgstr "Bibliothèque d'accès à des API de services en ligne"
 
-#: gnu/packages/gnome.scm:392
+#: gnu/packages/gnome.scm:399
 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:425
+#: gnu/packages/gnome.scm:432
 msgid "GObject-based library for handling and rendering XPS documents"
 msgstr ""
 
-#: gnu/packages/gnome.scm:427
+#: gnu/packages/gnome.scm:434
 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:447
+#: gnu/packages/gnome.scm:454
 msgid "Bootstrap GNOME modules built from Git"
 msgstr ""
 
-#: gnu/packages/gnome.scm:448
+#: gnu/packages/gnome.scm:455
 msgid ""
 "gnome-common contains various files needed to bootstrap\n"
 "GNOME modules built from Git.  It contains a common \"autogen.sh\" script that\n"
@@ -5273,11 +5374,11 @@ msgid ""
 "commonly used macros."
 msgstr ""
 
-#: gnu/packages/gnome.scm:499
+#: gnu/packages/gnome.scm:506
 msgid "Libgnome-desktop, gnome-about, and desktop-wide documents"
 msgstr ""
 
-#: gnu/packages/gnome.scm:501
+#: gnu/packages/gnome.scm:508
 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"
@@ -5287,49 +5388,49 @@ msgid ""
 "The gnome-about program helps find which version of GNOME is installed."
 msgstr ""
 
-#: gnu/packages/gnome.scm:534
+#: gnu/packages/gnome.scm:541
 msgid "Documentation utilities for the Gnome project"
 msgstr "Utilitaires de documentation pour le projet Gnome"
 
-#: gnu/packages/gnome.scm:536
+#: gnu/packages/gnome.scm:543
 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:575
+#: gnu/packages/gnome.scm:582
 msgid "Disk management utility for GNOME"
 msgstr ""
 
-#: gnu/packages/gnome.scm:576
+#: gnu/packages/gnome.scm:583
 msgid "Disk management utility for GNOME."
 msgstr ""
 
-#: gnu/packages/gnome.scm:619
+#: gnu/packages/gnome.scm:626
 msgid "Libraries for displaying certificates and accessing key stores"
 msgstr ""
 
-#: gnu/packages/gnome.scm:621
+#: gnu/packages/gnome.scm:628
 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:650
+#: gnu/packages/gnome.scm:657
 msgid "Accessing passwords from the GNOME keyring"
 msgstr ""
 
-#: gnu/packages/gnome.scm:652
+#: gnu/packages/gnome.scm:659
 msgid "Client library to access passwords from the GNOME keyring."
 msgstr ""
 
-#: gnu/packages/gnome.scm:722
+#: gnu/packages/gnome.scm:729
 msgid "Daemon to store passwords and encryption keys"
 msgstr ""
 
-#: gnu/packages/gnome.scm:724
+#: gnu/packages/gnome.scm:731
 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"
@@ -5340,11 +5441,11 @@ msgid ""
 "forgotten when the session ends."
 msgstr ""
 
-#: gnu/packages/gnome.scm:798
+#: gnu/packages/gnome.scm:805
 msgid "GNOME's document viewer"
 msgstr ""
 
-#: gnu/packages/gnome.scm:800
+#: gnu/packages/gnome.scm:807
 msgid ""
 "Evince is a document viewer for multiple document formats.  It\n"
 "currently supports PDF, PostScript, DjVu, TIFF and DVI.  The goal\n"
@@ -5352,50 +5453,50 @@ msgid ""
 "on the GNOME Desktop with a single simple application."
 msgstr ""
 
-#: gnu/packages/gnome.scm:829
+#: gnu/packages/gnome.scm:836
 msgid "GNOME settings for various desktop components"
 msgstr ""
 
-#: gnu/packages/gnome.scm:831
+#: gnu/packages/gnome.scm:838
 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:865
+#: gnu/packages/gnome.scm:872
 msgid "Utility to implement the Freedesktop Icon Naming Specification"
 msgstr ""
 
-#: gnu/packages/gnome.scm:867
+#: gnu/packages/gnome.scm:874
 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:898
+#: gnu/packages/gnome.scm:905
 msgid "GNOME icon theme"
 msgstr ""
 
-#: gnu/packages/gnome.scm:900
+#: gnu/packages/gnome.scm:907
 msgid "Icons for the GNOME desktop."
 msgstr ""
 
-#: gnu/packages/gnome.scm:937
+#: gnu/packages/gnome.scm:944
 msgid "Tango icon theme"
 msgstr ""
 
-#: gnu/packages/gnome.scm:938
+#: gnu/packages/gnome.scm:945
 msgid ""
 "This is an icon theme that follows the Tango visual\n"
 "guidelines."
 msgstr ""
 
-#: gnu/packages/gnome.scm:964
+#: gnu/packages/gnome.scm:971
 msgid "Database of common MIME types"
 msgstr ""
 
-#: gnu/packages/gnome.scm:966
+#: gnu/packages/gnome.scm:973
 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"
@@ -5404,19 +5505,30 @@ msgid ""
 "database is translated at Transifex."
 msgstr ""
 
-#: gnu/packages/gnome.scm:990
+#: gnu/packages/gnome.scm:1055
+msgid "CUPS administration tool"
+msgstr ""
+
+#: gnu/packages/gnome.scm:1057
+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:1079
 msgid "Freedesktop icon theme"
 msgstr ""
 
-#: gnu/packages/gnome.scm:992
+#: gnu/packages/gnome.scm:1081
 msgid "Freedesktop icon theme."
 msgstr ""
 
-#: gnu/packages/gnome.scm:1020
+#: gnu/packages/gnome.scm:1109
 msgid "GNOME desktop notification library"
 msgstr ""
 
-#: gnu/packages/gnome.scm:1022
+#: gnu/packages/gnome.scm:1111
 msgid ""
 "Libnotify is a library that sends desktop notifications to a\n"
 "notification daemon, as defined in the Desktop Notifications spec.  These\n"
@@ -5424,11 +5536,11 @@ msgid ""
 "some form of information without getting in the user's way."
 msgstr ""
 
-#: gnu/packages/gnome.scm:1056
+#: gnu/packages/gnome.scm:1145
 msgid "GObject plugin system"
 msgstr ""
 
-#: gnu/packages/gnome.scm:1058
+#: gnu/packages/gnome.scm:1147
 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"
@@ -5437,33 +5549,33 @@ msgid ""
 "API."
 msgstr ""
 
-#: gnu/packages/gnome.scm:1097
+#: gnu/packages/gnome.scm:1186
 msgid "OpenGL extension to GTK+"
 msgstr ""
 
-#: gnu/packages/gnome.scm:1098
+#: gnu/packages/gnome.scm:1187
 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:1141
+#: gnu/packages/gnome.scm:1230
 msgid "GTK+ rapid application development tool"
 msgstr ""
 
-#: gnu/packages/gnome.scm:1142
+#: gnu/packages/gnome.scm:1231
 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:1170
+#: gnu/packages/gnome.scm:1259
 msgid "CSS2 parsing and manipulation library"
 msgstr ""
 
-#: gnu/packages/gnome.scm:1172
+#: gnu/packages/gnome.scm:1261
 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"
@@ -5471,31 +5583,31 @@ msgid ""
 "XML/CSS rendering engine."
 msgstr ""
 
-#: gnu/packages/gnome.scm:1205
+#: gnu/packages/gnome.scm:1294
 msgid "GNOME's Structured File Library"
 msgstr ""
 
-#: gnu/packages/gnome.scm:1207
+#: gnu/packages/gnome.scm:1296
 msgid ""
 "Libgsf aims to provide an efficient extensible I/O abstraction for\n"
 "dealing with different structured file formats."
 msgstr ""
 
-#: gnu/packages/gnome.scm:1272
+#: gnu/packages/gnome.scm:1361
 msgid "Render SVG files using Cairo"
 msgstr ""
 
-#: gnu/packages/gnome.scm:1274
+#: gnu/packages/gnome.scm:1363
 msgid ""
 "Librsvg is a C library to render SVG files using the Cairo 2D graphics\n"
 "library."
 msgstr ""
 
-#: gnu/packages/gnome.scm:1298
+#: gnu/packages/gnome.scm:1387
 msgid "Create trees of CORBA Interface Definition Language files"
 msgstr ""
 
-#: gnu/packages/gnome.scm:1299
+#: gnu/packages/gnome.scm:1388
 msgid ""
 "Libidl is a library for creating trees of CORBA Interface\n"
 "Definition Language (idl) files, which is a specification for defining\n"
@@ -5504,144 +5616,144 @@ msgid ""
 "functionality was designed to be as reusable and portable as possible."
 msgstr ""
 
-#: gnu/packages/gnome.scm:1339
+#: gnu/packages/gnome.scm:1432
 msgid "CORBA 2.4-compliant Object Request Broker"
 msgstr ""
 
-#: gnu/packages/gnome.scm:1340
+#: gnu/packages/gnome.scm:1433
 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:1387
+#: gnu/packages/gnome.scm:1488
 msgid "Framework for creating reusable components for use in GNOME applications"
 msgstr ""
 
-#: gnu/packages/gnome.scm:1388
+#: gnu/packages/gnome.scm:1489
 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:1419
+#: gnu/packages/gnome.scm:1520
 msgid "Store application preferences"
 msgstr ""
 
-#: gnu/packages/gnome.scm:1420
+#: gnu/packages/gnome.scm:1521
 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:1454
+#: gnu/packages/gnome.scm:1555
 msgid "Base MIME and Application database for GNOME"
 msgstr ""
 
-#: gnu/packages/gnome.scm:1455
+#: gnu/packages/gnome.scm:1556
 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:1498
+#: gnu/packages/gnome.scm:1599
 msgid "Access files and folders in GNOME applications"
 msgstr ""
 
-#: gnu/packages/gnome.scm:1500
+#: gnu/packages/gnome.scm:1601
 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:1545
+#: gnu/packages/gnome.scm:1646
 msgid "Useful routines for building applications"
 msgstr ""
 
-#: gnu/packages/gnome.scm:1546
+#: gnu/packages/gnome.scm:1647
 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:1569
+#: gnu/packages/gnome.scm:1670
 msgid "2D drawing library"
 msgstr "Bibliothèque de dessin 2D"
 
-#: gnu/packages/gnome.scm:1570
+#: gnu/packages/gnome.scm:1671
 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:1597
+#: gnu/packages/gnome.scm:1698
 msgid "Flexible widget for creating interactive structured graphics"
 msgstr ""
 
-#: gnu/packages/gnome.scm:1598
+#: gnu/packages/gnome.scm:1699
 msgid ""
 "The GnomeCanvas widget provides a flexible widget for\n"
 "creating interactive structured graphics."
 msgstr ""
 
-#: gnu/packages/gnome.scm:1622
+#: gnu/packages/gnome.scm:1723
 msgid "C++ bindings to the GNOME Canvas library"
 msgstr ""
 
-#: gnu/packages/gnome.scm:1623
+#: gnu/packages/gnome.scm:1724
 msgid "C++ bindings to the GNOME Canvas library."
 msgstr ""
 
-#: gnu/packages/gnome.scm:1655
+#: gnu/packages/gnome.scm:1756
 msgid "Additional widgets for applications"
 msgstr ""
 
-#: gnu/packages/gnome.scm:1656
+#: gnu/packages/gnome.scm:1757
 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:1682
+#: gnu/packages/gnome.scm:1783
 msgid "Load glade interfaces and access the glade built widgets"
 msgstr ""
 
-#: gnu/packages/gnome.scm:1683
+#: gnu/packages/gnome.scm:1784
 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:1713 gnu/packages/gnome.scm:1745
+#: gnu/packages/gnome.scm:1814 gnu/packages/gnome.scm:1846
 msgid "Printing framework for GNOME"
 msgstr ""
 
-#: gnu/packages/gnome.scm:1715
+#: gnu/packages/gnome.scm:1816
 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:1789
+#: gnu/packages/gnome.scm:1890
 msgid "Some user interface controls using Bonobo"
 msgstr ""
 
-#: gnu/packages/gnome.scm:1790
+#: gnu/packages/gnome.scm:1891
 msgid ""
 "The Bonobo UI library provides a number of user interface\n"
 "controls using the Bonobo component framework."
 msgstr ""
 
-#: gnu/packages/gnome.scm:1815
+#: gnu/packages/gnome.scm:1916
 msgid "Window Navigator Construction Kit"
 msgstr ""
 
-#: gnu/packages/gnome.scm:1817
+#: gnu/packages/gnome.scm:1918
 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"
@@ -5649,19 +5761,19 @@ msgid ""
 "Hints specification (EWMH)."
 msgstr ""
 
-#: gnu/packages/gnome.scm:1870
+#: gnu/packages/gnome.scm:1971
 msgid "Document-centric objects and utilities"
 msgstr ""
 
-#: gnu/packages/gnome.scm:1871
+#: gnu/packages/gnome.scm:1972
 msgid "A GLib/GTK+ set of document-centric objects and utilities."
 msgstr ""
 
-#: gnu/packages/gnome.scm:1955
+#: gnu/packages/gnome.scm:2056
 msgid "Spreadsheet application"
 msgstr ""
 
-#: gnu/packages/gnome.scm:1957
+#: gnu/packages/gnome.scm:2058
 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"
@@ -5670,29 +5782,29 @@ msgid ""
 "engineering."
 msgstr ""
 
-#: gnu/packages/gnome.scm:1997
+#: gnu/packages/gnome.scm:2098
 msgid "Default GNOME 3 themes"
 msgstr ""
 
-#: gnu/packages/gnome.scm:1999
+#: gnu/packages/gnome.scm:2100
 msgid "The default GNOME 3 themes (Adwaita and some accessibility themes)."
 msgstr ""
 
-#: gnu/packages/gnome.scm:2032
+#: gnu/packages/gnome.scm:2133
 msgid "Manage encryption keys and passwords in the GNOME keyring"
 msgstr ""
 
-#: gnu/packages/gnome.scm:2034
+#: gnu/packages/gnome.scm:2135
 msgid ""
 "Seahorse is a GNOME application for managing encryption keys and\n"
 "passwords in the GNOME keyring."
 msgstr ""
 
-#: gnu/packages/gnome.scm:2072 gnu/packages/gnome.scm:2296
+#: gnu/packages/gnome.scm:2178 gnu/packages/gnome.scm:2411
 msgid "Compiler for the GObject type system"
 msgstr ""
 
-#: gnu/packages/gnome.scm:2074
+#: gnu/packages/gnome.scm:2180
 msgid ""
 "Vala is a programming language that aims to bring modern programming\n"
 "language features to GNOME developers without imposing any additional runtime\n"
@@ -5700,11 +5812,11 @@ msgid ""
 "libraries written in C."
 msgstr ""
 
-#: gnu/packages/gnome.scm:2106
+#: gnu/packages/gnome.scm:2212
 msgid "Virtual Terminal Emulator"
 msgstr ""
 
-#: gnu/packages/gnome.scm:2108
+#: gnu/packages/gnome.scm:2214
 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"
@@ -5712,39 +5824,39 @@ msgid ""
 "editors, IDEs, etc."
 msgstr ""
 
-#: gnu/packages/gnome.scm:2140
+#: gnu/packages/gnome.scm:2246
 msgid "Enhanced VTE terminal widget"
 msgstr ""
 
-#: gnu/packages/gnome.scm:2142
+#: gnu/packages/gnome.scm:2248
 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:2228
+#: gnu/packages/gnome.scm:2344
 msgid "Remote desktop viewer for GNOME"
 msgstr ""
 
-#: gnu/packages/gnome.scm:2229
+#: gnu/packages/gnome.scm:2345
 msgid ""
 "Vinagre is a remote display client supporting the VNC, SPICE\n"
 "and RDP protocols."
 msgstr ""
 
-#: gnu/packages/gnome.scm:2268
+#: gnu/packages/gnome.scm:2384
 msgid "Low-level GNOME configuration system"
 msgstr ""
 
-#: gnu/packages/gnome.scm:2269
+#: gnu/packages/gnome.scm:2385
 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:2298
+#: gnu/packages/gnome.scm:2413
 msgid ""
 "JSON-GLib is a C library based on GLib providing serialization and\n"
 "deserialization support for the JavaScript Object Notation (JSON) format\n"
@@ -5753,11 +5865,11 @@ msgid ""
 "and objects."
 msgstr ""
 
-#: gnu/packages/gnome.scm:2337
+#: gnu/packages/gnome.scm:2452
 msgid "High-level API for X Keyboard Extension"
 msgstr ""
 
-#: gnu/packages/gnome.scm:2339
+#: gnu/packages/gnome.scm:2454
 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"
@@ -5765,58 +5877,58 @@ msgid ""
 "indicators etc)."
 msgstr ""
 
-#: gnu/packages/gnome.scm:2367
+#: gnu/packages/gnome.scm:2482
 msgid "Python bindings to librsvg"
 msgstr ""
 
-#: gnu/packages/gnome.scm:2369
+#: gnu/packages/gnome.scm:2484
 msgid ""
 "This packages provides Python bindings to librsvg, the SVG rendering\n"
 "library."
 msgstr ""
 
-#: gnu/packages/gnome.scm:2419
+#: gnu/packages/gnome.scm:2523
 msgid "Network-related GIO modules"
 msgstr ""
 
-#: gnu/packages/gnome.scm:2421
+#: gnu/packages/gnome.scm:2525
 msgid ""
 "This package contains various network related extensions for the GIO\n"
 "library."
 msgstr ""
 
-#: gnu/packages/gnome.scm:2452
+#: gnu/packages/gnome.scm:2556
 msgid "RESTful web api query library"
 msgstr ""
 
-#: gnu/packages/gnome.scm:2454
+#: gnu/packages/gnome.scm:2558
 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:2577
+#: gnu/packages/gnome.scm:2668
 msgid "GLib-based HTTP Library"
 msgstr ""
 
-#: gnu/packages/gnome.scm:2579
+#: gnu/packages/gnome.scm:2670
 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:2625
+#: gnu/packages/gnome.scm:2716
 msgid "GObject bindings for \"Secret Service\" API"
 msgstr ""
 
-#: gnu/packages/gnome.scm:2627
+#: gnu/packages/gnome.scm:2718
 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:2656
+#: gnu/packages/gnome.scm:2747
 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"
@@ -5824,21 +5936,21 @@ msgid ""
 " Try to last as long as possible."
 msgstr ""
 
-#: gnu/packages/gnome.scm:2694
+#: gnu/packages/gnome.scm:2785
 msgid "Minesweeper game"
 msgstr ""
 
-#: gnu/packages/gnome.scm:2696
+#: gnu/packages/gnome.scm:2787
 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:2727
+#: gnu/packages/gnome.scm:2818
 msgid "Japanese logic game"
 msgstr ""
 
-#: gnu/packages/gnome.scm:2729
+#: gnu/packages/gnome.scm:2820
 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"
@@ -5846,11 +5958,11 @@ msgid ""
 "more fun."
 msgstr ""
 
-#: gnu/packages/gnome.scm:2775
+#: gnu/packages/gnome.scm:2866
 msgid "Terminal emulator"
 msgstr ""
 
-#: gnu/packages/gnome.scm:2777
+#: gnu/packages/gnome.scm:2868
 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"
@@ -5860,22 +5972,22 @@ msgid ""
 "keyboard shortcuts."
 msgstr ""
 
-#: gnu/packages/gnome.scm:2843
+#: gnu/packages/gnome.scm:2934
 msgid "Color management service"
 msgstr ""
 
-#: gnu/packages/gnome.scm:2844
+#: gnu/packages/gnome.scm:2935
 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:2889
+#: gnu/packages/gnome.scm:2980
 msgid "Geolocation service"
 msgstr ""
 
-#: gnu/packages/gnome.scm:2890
+#: gnu/packages/gnome.scm:2981
 msgid ""
 "Geoclue is a D-Bus service that provides location\n"
 "information.  The primary goal of the Geoclue project is to make creating\n"
@@ -5884,11 +5996,11 @@ msgid ""
 "permission from user."
 msgstr ""
 
-#: gnu/packages/gnome.scm:2925
+#: gnu/packages/gnome.scm:3016
 msgid "Geocoding and reverse-geocoding library"
 msgstr ""
 
-#: gnu/packages/gnome.scm:2927
+#: gnu/packages/gnome.scm:3018
 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"
@@ -5896,11 +6008,11 @@ msgid ""
 "faster results and to avoid unnecessary server load."
 msgstr ""
 
-#: gnu/packages/gnome.scm:2974
+#: gnu/packages/gnome.scm:3065
 msgid "System daemon for managing power devices"
 msgstr ""
 
-#: gnu/packages/gnome.scm:2976
+#: gnu/packages/gnome.scm:3067
 msgid ""
 "UPower is an abstraction for enumerating power devices,\n"
 "listening to device events and querying history and statistics.  Any\n"
@@ -5908,21 +6020,21 @@ msgid ""
 "service via the system message bus."
 msgstr ""
 
-#: gnu/packages/gnome.scm:3034
+#: gnu/packages/gnome.scm:3125
 msgid "Location, time zone, and weather library for GNOME"
 msgstr ""
 
-#: gnu/packages/gnome.scm:3036
+#: gnu/packages/gnome.scm:3127
 msgid ""
 "libgweather is a library to access weather information from online\n"
 "services for numerous locations."
 msgstr ""
 
-#: gnu/packages/gnome.scm:3087
+#: gnu/packages/gnome.scm:3178
 msgid "GNOME settings daemon"
 msgstr ""
 
-#: gnu/packages/gnome.scm:3089
+#: gnu/packages/gnome.scm:3180
 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"
@@ -5930,42 +6042,42 @@ msgid ""
 "settings, themes, mouse settings, and startup of other daemons."
 msgstr ""
 
-#: gnu/packages/gnome.scm:3126
+#: gnu/packages/gnome.scm:3217
 msgid "Library to parse and save media playlists for GNOME"
 msgstr ""
 
-#: gnu/packages/gnome.scm:3127
+#: gnu/packages/gnome.scm:3218
 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:3161
+#: gnu/packages/gnome.scm:3252
 msgid "Solitaire card games"
 msgstr ""
 
-#: gnu/packages/gnome.scm:3163
+#: gnu/packages/gnome.scm:3254
 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:3187
+#: gnu/packages/gnome.scm:3278
 msgid "API documentation browser for GNOME"
 msgstr ""
 
-#: gnu/packages/gnome.scm:3189
+#: gnu/packages/gnome.scm:3280
 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:3256
+#: gnu/packages/gnome.scm:3347
 msgid "Object oriented GL/GLES Abstraction/Utility Layer"
 msgstr ""
 
-#: gnu/packages/gnome.scm:3258
+#: gnu/packages/gnome.scm:3349
 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"
@@ -5973,38 +6085,38 @@ msgid ""
 "without stepping on each others toes."
 msgstr ""
 
-#: gnu/packages/gnome.scm:3315
-msgid "Open GL based interactive canvas library"
+#: gnu/packages/gnome.scm:3406
+msgid "OpenGL-based interactive canvas library"
 msgstr ""
 
-#: gnu/packages/gnome.scm:3317 gnu/packages/gnome.scm:3346
+#: gnu/packages/gnome.scm:3408 gnu/packages/gnome.scm:3437
 msgid ""
-"Clutter is an Open GL based interactive canvas library, designed for\n"
+"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:3344
-msgid "Open GL based interactive canvas library GTK+ widget"
+#: gnu/packages/gnome.scm:3435
+msgid "OpenGL-based interactive canvas library GTK+ widget"
 msgstr ""
 
-#: gnu/packages/gnome.scm:3374
+#: gnu/packages/gnome.scm:3464
 msgid "Integration library for using GStreamer with Clutter"
 msgstr ""
 
-#: gnu/packages/gnome.scm:3376
+#: gnu/packages/gnome.scm:3466
 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 Open\n"
-"GL based interactive canvas library."
+"implements the ClutterGstPlayer interface using playbin.  Clutter is an\n"
+"OpenGL-based interactive canvas library."
 msgstr ""
 
-#: gnu/packages/gnome.scm:3410
+#: gnu/packages/gnome.scm:3500
 msgid "C library providing a ClutterActor to display maps"
 msgstr ""
 
-#: gnu/packages/gnome.scm:3412
+#: gnu/packages/gnome.scm:3502
 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"
@@ -6012,32 +6124,32 @@ msgid ""
 "such as OpenStreetMap, OpenCycleMap, OpenAerialMap, and Maps for free."
 msgstr ""
 
-#: gnu/packages/gnome.scm:3443
+#: gnu/packages/gnome.scm:3533
 msgid "Object mapper from GObjects to SQLite"
 msgstr ""
 
-#: gnu/packages/gnome.scm:3445
+#: gnu/packages/gnome.scm:3535
 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:3480
+#: gnu/packages/gnome.scm:3570
 msgid "Useful functionality shared among GNOME games"
 msgstr ""
 
-#: gnu/packages/gnome.scm:3482
+#: gnu/packages/gnome.scm:3572
 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:3510
+#: gnu/packages/gnome.scm:3600
 msgid "Sliding block puzzles"
 msgstr ""
 
-#: gnu/packages/gnome.scm:3512
+#: gnu/packages/gnome.scm:3602
 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"
@@ -6045,55 +6157,55 @@ msgid ""
 "as possible!"
 msgstr ""
 
-#: gnu/packages/gnome.scm:3566
+#: gnu/packages/gnome.scm:3656
 msgid "Framework for discovering and browsing media"
 msgstr ""
 
-#: gnu/packages/gnome.scm:3568 gnu/packages/gnome.scm:3621
+#: gnu/packages/gnome.scm:3658 gnu/packages/gnome.scm:3711
 msgid ""
 "Grilo is a framework focused on making media discovery and browsing easy\n"
 "for application developers."
 msgstr ""
 
-#: gnu/packages/gnome.scm:3619
+#: gnu/packages/gnome.scm:3709
 msgid "Plugins for the Grilo media discovery library"
 msgstr ""
 
-#: gnu/packages/gnome.scm:3722
+#: gnu/packages/gnome.scm:3812
 msgid "Simple media player for GNOME based on GStreamer"
 msgstr ""
 
-#: gnu/packages/gnome.scm:3723
+#: gnu/packages/gnome.scm:3813
 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:3824
+#: gnu/packages/gnome.scm:3914
 msgid "Music player for GNOME"
 msgstr ""
 
-#: gnu/packages/gnome.scm:3825
+#: gnu/packages/gnome.scm:3915
 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:3875
+#: gnu/packages/gnome.scm:3965
 msgid "GNOME image viewer"
 msgstr ""
 
-#: gnu/packages/gnome.scm:3876
+#: gnu/packages/gnome.scm:3966
 msgid ""
 "Eye of GNOME is the GNOME image viewer.  It\n"
 "supports image conversion, rotation, and slideshows."
 msgstr ""
 
-#: gnu/packages/gnome.scm:3898
+#: gnu/packages/gnome.scm:3988
 msgid "Extensions for the Eye of GNOME image viewer"
 msgstr ""
 
-#: gnu/packages/gnome.scm:3910
+#: gnu/packages/gnome.scm:4000
 msgid ""
 "This package provides plugins for the Eye of GNOME (EOG) image viewer,\n"
 "notably:\n"
@@ -6106,21 +6218,21 @@ msgid ""
 "@end itemize\n"
 msgstr ""
 
-#: gnu/packages/gnome.scm:3946
+#: gnu/packages/gnome.scm:4036
 msgid "GObject bindings for libudev"
 msgstr "Liaisons GObject pour libudev"
 
-#: gnu/packages/gnome.scm:3948
+#: gnu/packages/gnome.scm:4038
 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:3996
+#: gnu/packages/gnome.scm:4086
 msgid "Userspace virtual file system for GIO"
 msgstr ""
 
-#: gnu/packages/gnome.scm:3998
+#: gnu/packages/gnome.scm:4088
 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"
@@ -6131,11 +6243,11 @@ msgid ""
 "DAV, and others."
 msgstr ""
 
-#: gnu/packages/gnome.scm:4031
+#: gnu/packages/gnome.scm:4121
 msgid "GLib binding for libusb1"
 msgstr "Liaisons GLib pour libusb1"
 
-#: gnu/packages/gnome.scm:4033
+#: gnu/packages/gnome.scm:4123
 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"
@@ -6143,11 +6255,11 @@ msgid ""
 "USB transfers with your high-level application or system daemon."
 msgstr ""
 
-#: gnu/packages/gnome.scm:4084
+#: gnu/packages/gnome.scm:4174
 msgid "Document and image scanner"
 msgstr ""
 
-#: gnu/packages/gnome.scm:4085
+#: gnu/packages/gnome.scm:4175
 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"
@@ -6156,62 +6268,62 @@ msgid ""
 "work and the interface is well tested."
 msgstr ""
 
-#: gnu/packages/gnome.scm:4152
+#: gnu/packages/gnome.scm:4242
 msgid "Web browser for GNOME"
 msgstr ""
 
-#: gnu/packages/gnome.scm:4154
+#: gnu/packages/gnome.scm:4244
 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:4211
+#: gnu/packages/gnome.scm:4301
 msgid "GNOME web browser"
 msgstr ""
 
-#: gnu/packages/gnome.scm:4213
+#: gnu/packages/gnome.scm:4303
 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:4269
+#: gnu/packages/gnome.scm:4359
 msgid "D-Bus debugger"
 msgstr ""
 
-#: gnu/packages/gnome.scm:4271
+#: gnu/packages/gnome.scm:4361
 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:4293
+#: gnu/packages/gnome.scm:4383
 msgid "XSL stylesheets for Yelp"
 msgstr ""
 
-#: gnu/packages/gnome.scm:4295
+#: gnu/packages/gnome.scm:4385
 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:4326
+#: gnu/packages/gnome.scm:4416
 msgid "GNOME help browser"
 msgstr ""
 
-#: gnu/packages/gnome.scm:4328
+#: gnu/packages/gnome.scm:4418
 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:4356
+#: gnu/packages/gnome.scm:4446
 msgid "Yelp documentation tools"
 msgstr ""
 
-#: gnu/packages/gnome.scm:4358
+#: gnu/packages/gnome.scm:4448
 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"
@@ -6219,32 +6331,32 @@ msgid ""
 "wraps things up in a developer-friendly way."
 msgstr ""
 
-#: gnu/packages/gnome.scm:4395
+#: gnu/packages/gnome.scm:4485
 msgid "GObject collection library"
 msgstr ""
 
-#: gnu/packages/gnome.scm:4397
+#: gnu/packages/gnome.scm:4487
 msgid ""
 "Libgee is a utility library providing GObject-based interfaces and\n"
 "classes for commonly used data structures."
 msgstr ""
 
-#: gnu/packages/gnome.scm:4424
+#: gnu/packages/gnome.scm:4514
 msgid "GObject wrapper around the Exiv2 photo metadata library"
 msgstr ""
 
-#: gnu/packages/gnome.scm:4426
+#: gnu/packages/gnome.scm:4516
 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:4470
+#: gnu/packages/gnome.scm:4560
 msgid "Photo manager for GNOME 3"
 msgstr ""
 
-#: gnu/packages/gnome.scm:4472
+#: gnu/packages/gnome.scm:4562
 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"
@@ -6252,62 +6364,62 @@ msgid ""
 "share them with others via social networking and more."
 msgstr ""
 
-#: gnu/packages/gnome.scm:4513
+#: gnu/packages/gnome.scm:4603
 msgid "Graphical archive manager for GNOME"
 msgstr ""
 
-#: gnu/packages/gnome.scm:4514
+#: gnu/packages/gnome.scm:4604
 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:4592
+#: gnu/packages/gnome.scm:4680
 msgid "Session manager for GNOME"
 msgstr ""
 
-#: gnu/packages/gnome.scm:4594
+#: gnu/packages/gnome.scm:4682
 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:4659
+#: gnu/packages/gnome.scm:4735
 msgid "Javascript bindings for GNOME"
 msgstr ""
 
-#: gnu/packages/gnome.scm:4662
+#: gnu/packages/gnome.scm:4738
 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:4721
+#: gnu/packages/gnome.scm:4797
 msgid "GNOME text editor"
 msgstr "Éditeur de texte GNOME"
 
-#: gnu/packages/gnome.scm:4722
+#: gnu/packages/gnome.scm:4798
 msgid ""
 "While aiming at simplicity and ease of use, gedit is a\n"
 "powerful general purpose text editor."
 msgstr ""
 
-#: gnu/packages/gnome.scm:4746
+#: gnu/packages/gnome.scm:4822
 msgid "Display graphical dialog boxes from shell scripts"
 msgstr ""
 
-#: gnu/packages/gnome.scm:4749
+#: gnu/packages/gnome.scm:4825
 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:4848
+#: gnu/packages/gnome.scm:4924
 msgid "Window and compositing manager"
 msgstr ""
 
-#: gnu/packages/gnome.scm:4851
+#: gnu/packages/gnome.scm:4927
 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"
@@ -6315,11 +6427,11 @@ msgid ""
 "window manager."
 msgstr ""
 
-#: gnu/packages/gnome.scm:4885
+#: gnu/packages/gnome.scm:4977
 msgid "Single sign-on framework for GNOME"
 msgstr ""
 
-#: gnu/packages/gnome.scm:4888
+#: gnu/packages/gnome.scm:4980
 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"
@@ -6327,32 +6439,32 @@ msgid ""
 "Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos."
 msgstr ""
 
-#: gnu/packages/gnome.scm:4972
+#: gnu/packages/gnome.scm:5098
 msgid "Store address books and calendars"
 msgstr ""
 
-#: gnu/packages/gnome.scm:4975
+#: gnu/packages/gnome.scm:5101
 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:5038
+#: gnu/packages/gnome.scm:5164
 msgid "Text entry and UI navigation application"
 msgstr ""
 
-#: gnu/packages/gnome.scm:5041
+#: gnu/packages/gnome.scm:5167
 msgid ""
 "Caribou is an input assistive technology intended for switch and pointer\n"
 "users."
 msgstr ""
 
-#: gnu/packages/gnome.scm:5159
+#: gnu/packages/gnome.scm:5285
 msgid "Network connection manager"
 msgstr ""
 
-#: gnu/packages/gnome.scm:5162
+#: gnu/packages/gnome.scm:5288
 msgid ""
 "NetworkManager is a system network service that manages your network\n"
 "devices and connections, attempting to keep active network connectivity when\n"
@@ -6361,39 +6473,39 @@ msgid ""
 "services."
 msgstr ""
 
-#: gnu/packages/gnome.scm:5196
+#: gnu/packages/gnome.scm:5322
 msgid "OpenVPN plug-in for NetworkManager"
 msgstr ""
 
-#: gnu/packages/gnome.scm:5198
+#: gnu/packages/gnome.scm:5324
 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:5220
+#: gnu/packages/gnome.scm:5346
 msgid "Database of broadband connection configuration"
 msgstr ""
 
-#: gnu/packages/gnome.scm:5221
+#: gnu/packages/gnome.scm:5347
 msgid "Database of broadband connection configuration."
 msgstr ""
 
-#: gnu/packages/gnome.scm:5255
+#: gnu/packages/gnome.scm:5381
 msgid "Applet for managing network connections"
 msgstr ""
 
-#: gnu/packages/gnome.scm:5258
+#: gnu/packages/gnome.scm:5384
 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:5283
+#: gnu/packages/gnome.scm:5409
 msgid "C++ wrapper for XML parser library libxml2"
 msgstr ""
 
-#: gnu/packages/gnome.scm:5285
+#: gnu/packages/gnome.scm:5411
 msgid ""
 "This package provides a C++ wrapper for the XML parser library\n"
 "libxml2."
@@ -6401,31 +6513,31 @@ msgstr ""
 "Ce paquet fournit une enveloppe C++ autour de la bibliothèque d'analyseur XML\n"
 "libxml2."
 
-#: gnu/packages/gnome.scm:5422
+#: gnu/packages/gnome.scm:5575
 msgid "Display manager for GNOME"
 msgstr ""
 
-#: gnu/packages/gnome.scm:5425
+#: gnu/packages/gnome.scm:5578
 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:5449
+#: gnu/packages/gnome.scm:5602
 msgid "Portable system access library"
 msgstr ""
 
-#: gnu/packages/gnome.scm:5452
+#: gnu/packages/gnome.scm:5605
 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:5482
+#: gnu/packages/gnome.scm:5635
 msgid "GNOME Bluetooth subsystem"
 msgstr ""
 
-#: gnu/packages/gnome.scm:5485
+#: gnu/packages/gnome.scm:5638
 msgid ""
 "This package contains tools for managing and manipulating Bluetooth\n"
 "devices using the GNOME desktop."
@@ -6433,11 +6545,11 @@ msgstr ""
 "Ce paquet contient des outils pour gérer et manipuler des appareils bluetooth\n"
 "depuis le bureau GNOME."
 
-#: gnu/packages/gnome.scm:5551
+#: gnu/packages/gnome.scm:5705
 msgid "Utilities to configure the GNOME desktop"
 msgstr ""
 
-#: gnu/packages/gnome.scm:5554
+#: gnu/packages/gnome.scm:5708
 msgid ""
 "This package contains configuration applets for the GNOME desktop,\n"
 "allowing to set accessibility configuration, desktop fonts, keyboard and mouse\n"
@@ -6445,21 +6557,21 @@ msgid ""
 "properties, screen resolution, and other GNOME parameters."
 msgstr ""
 
-#: gnu/packages/gnome.scm:5639
+#: gnu/packages/gnome.scm:5853
 msgid "Desktop shell for GNOME"
 msgstr ""
 
-#: gnu/packages/gnome.scm:5642
+#: gnu/packages/gnome.scm:5856
 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:5677
+#: gnu/packages/gnome.scm:5891
 msgid "VNC viewer widget for GTK+"
 msgstr ""
 
-#: gnu/packages/gnome.scm:5679
+#: gnu/packages/gnome.scm:5893
 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"
@@ -6467,43 +6579,43 @@ msgid ""
 "as SASL, TLS and VeNCrypt.  Additionally it supports encoding extensions."
 msgstr ""
 
-#: gnu/packages/gnome.scm:5707
+#: gnu/packages/gnome.scm:5921
 msgid "Archives integration support for GNOME"
 msgstr ""
 
-#: gnu/packages/gnome.scm:5710
+#: gnu/packages/gnome.scm:5924
 msgid ""
 "GNOME Autoar is a library which makes creating and extracting archives\n"
 "easy, safe, and automatic."
 msgstr ""
 
-#: gnu/packages/gnome.scm:5762
+#: gnu/packages/gnome.scm:5976
 msgid "Metadata database, indexer and search tool"
 msgstr ""
 
-#: gnu/packages/gnome.scm:5765
+#: gnu/packages/gnome.scm:5979
 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:5816
+#: gnu/packages/gnome.scm:6030
 msgid "File manager for GNOME"
 msgstr ""
 
-#: gnu/packages/gnome.scm:5819
+#: gnu/packages/gnome.scm:6033
 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:5851
+#: gnu/packages/gnome.scm:6065
 msgid "Disk usage analyzer for GNOME"
 msgstr ""
 
-#: gnu/packages/gnome.scm:5853
+#: gnu/packages/gnome.scm:6067
 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"
@@ -6511,11 +6623,11 @@ msgid ""
 "is complete it provides a graphical representation of each selected folder."
 msgstr ""
 
-#: gnu/packages/gnome.scm:5877
+#: gnu/packages/gnome.scm:6091
 msgid "Background images for the GNOME desktop"
 msgstr ""
 
-#: gnu/packages/gnome.scm:5879
+#: gnu/packages/gnome.scm:6093
 msgid ""
 "GNOME backgrounds package contains a collection of graphics files which\n"
 "can be used as backgrounds in the GNOME Desktop environment.  Additionally,\n"
@@ -6523,33 +6635,33 @@ msgid ""
 "can add your own files to the collection."
 msgstr ""
 
-#: gnu/packages/gnome.scm:5912
+#: gnu/packages/gnome.scm:6126
 msgid "Take pictures of your screen"
 msgstr ""
 
-#: gnu/packages/gnome.scm:5914
+#: gnu/packages/gnome.scm:6128
 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:5951
+#: gnu/packages/gnome.scm:6165
 msgid "Graphical editor for GNOME's dconf configuration system"
 msgstr ""
 
-#: gnu/packages/gnome.scm:5953
+#: gnu/packages/gnome.scm:6167
 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:5982
+#: gnu/packages/gnome.scm:6196
 msgid "Default MIME type associations for the GNOME desktop"
 msgstr ""
 
-#: gnu/packages/gnome.scm:5984
+#: gnu/packages/gnome.scm:6198
 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"
@@ -6558,94 +6670,94 @@ msgid ""
 "associations for GNOME."
 msgstr ""
 
-#: gnu/packages/gnome.scm:6043
+#: gnu/packages/gnome.scm:6258
 msgid "The GNU desktop environment"
 msgstr ""
 
-#: gnu/packages/gnome.scm:6046
+#: gnu/packages/gnome.scm:6261
 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:6098
+#: gnu/packages/gnome.scm:6313
 msgid "Desktop recording program"
 msgstr ""
 
-#: gnu/packages/gnome.scm:6099
+#: gnu/packages/gnome.scm:6314
 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:6126
+#: gnu/packages/gnome.scm:6341
 msgid "GObject wrapper for libcanberra"
 msgstr ""
 
-#: gnu/packages/gnome.scm:6128
+#: gnu/packages/gnome.scm:6343
 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:6155
+#: gnu/packages/gnome.scm:6370
 msgid "Library for accessing SkyDrive and Hotmail"
 msgstr "Bibliothèque pour accéder à SkyDrive et Hotmail"
 
-#: gnu/packages/gnome.scm:6157
+#: gnu/packages/gnome.scm:6372
 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:6193
+#: gnu/packages/gnome.scm:6408
 msgid "GNOME's clock application"
 msgstr ""
 
-#: gnu/packages/gnome.scm:6195
+#: gnu/packages/gnome.scm:6410
 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:6227
+#: gnu/packages/gnome.scm:6443
 msgid "GNOME's calendar application"
 msgstr ""
 
-#: gnu/packages/gnome.scm:6229
+#: gnu/packages/gnome.scm:6445
 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:6279
+#: gnu/packages/gnome.scm:6496
 msgid "GNOME's ToDo Application"
 msgstr ""
 
-#: gnu/packages/gnome.scm:6281
+#: gnu/packages/gnome.scm:6498
 msgid ""
 "GNOME To Do is a simplistic personal task manager designed to perfectly\n"
 "fit the GNOME desktop."
 msgstr ""
 
-#: gnu/packages/gnome.scm:6319
+#: gnu/packages/gnome.scm:6536
 msgid "Look up words in dictionary sources"
 msgstr ""
 
-#: gnu/packages/gnome.scm:6321
+#: gnu/packages/gnome.scm:6538
 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:6381
+#: gnu/packages/gnome.scm:6598
 msgid "Customize advanced GNOME 3 options"
 msgstr ""
 
-#: gnu/packages/gnome.scm:6384
+#: gnu/packages/gnome.scm:6601
 msgid ""
 "GNOME Tweak Tool allows adjusting advanced configuration settings in\n"
 "GNOME 3.  This includes things like the fonts used in user interface elements,\n"
@@ -6653,63 +6765,63 @@ msgid ""
 "GNOME Shell appearance and extension, etc."
 msgstr ""
 
-#: gnu/packages/gnome.scm:6411
+#: gnu/packages/gnome.scm:6628
 msgid "Extensions for GNOME Shell"
 msgstr ""
 
-#: gnu/packages/gnome.scm:6412
+#: gnu/packages/gnome.scm:6629
 msgid ""
 "GNOME Shell extensions modify and extend GNOME Shell\n"
 "functionality and behavior."
 msgstr ""
 
-#: gnu/packages/gnome.scm:6442
+#: gnu/packages/gnome.scm:6664
 msgid "A flat GTK+ theme with transparent elements"
 msgstr ""
 
-#: gnu/packages/gnome.scm:6443
+#: gnu/packages/gnome.scm:6665
 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:6474
+#: gnu/packages/gnome.scm:6696
 msgid "Faba icon theme"
 msgstr ""
 
-#: gnu/packages/gnome.scm:6476
+#: gnu/packages/gnome.scm:6698
 msgid ""
 "Faba is a minimal icon set used as a basis for other themes such as\n"
 "Moka"
 msgstr ""
 
-#: gnu/packages/gnome.scm:6500
+#: gnu/packages/gnome.scm:6722
 msgid "Moka icon theme"
 msgstr ""
 
-#: gnu/packages/gnome.scm:6501
+#: gnu/packages/gnome.scm:6723
 msgid ""
 "Moka is a stylized desktop icon set, designed to be clear,\n"
 "simple and consistent."
 msgstr ""
 
-#: gnu/packages/gnome.scm:6533
+#: gnu/packages/gnome.scm:6755
 msgid "Arc icon theme"
 msgstr ""
 
-#: gnu/packages/gnome.scm:6534
+#: gnu/packages/gnome.scm:6756
 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:6566
+#: gnu/packages/gnome.scm:6788
 msgid "Library to aggregate data about people"
 msgstr ""
 
-#: gnu/packages/gnome.scm:6567
+#: gnu/packages/gnome.scm:6789
 msgid ""
 "Libfolks is a library that aggregates information about people\n"
 "from multiple sources (e.g., Telepathy connection managers for IM contacts,\n"
@@ -6718,31 +6830,31 @@ msgid ""
 "compiled."
 msgstr ""
 
-#: gnu/packages/gnome.scm:6602
+#: gnu/packages/gnome.scm:6824
 msgid "GLib/GObject wrapper for the Facebook API"
 msgstr ""
 
-#: gnu/packages/gnome.scm:6603
+#: gnu/packages/gnome.scm:6825
 msgid ""
 "This library allows you to use the Facebook API from\n"
 "GLib/GObject code."
 msgstr ""
 
-#: gnu/packages/gnome.scm:6631
+#: gnu/packages/gnome.scm:6853
 msgid "GNOME keyboard configuration library"
 msgstr ""
 
-#: gnu/packages/gnome.scm:6633
+#: gnu/packages/gnome.scm:6855
 msgid ""
 "Libgnomekbd is a keyboard configuration library for the GNOME desktop\n"
 "environment, which can notably display keyboard layouts."
 msgstr ""
 
-#: gnu/packages/gnome.scm:6667
+#: gnu/packages/gnome.scm:6889
 msgid "Library for writing single instance applications"
 msgstr "Bibliothèque pour écrire des applications à instance unique"
 
-#: gnu/packages/gnome.scm:6669
+#: gnu/packages/gnome.scm:6891
 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"
@@ -6752,32 +6864,32 @@ msgid ""
 "handling the startup notification side."
 msgstr ""
 
-#: gnu/packages/gnome.scm:6702
+#: gnu/packages/gnome.scm:6924
 msgid "Desktop calculator"
 msgstr ""
 
-#: gnu/packages/gnome.scm:6704
+#: gnu/packages/gnome.scm:6926
 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:6732
+#: gnu/packages/gnome.scm:6954
 msgid "Virtual sticky note"
 msgstr ""
 
-#: gnu/packages/gnome.scm:6734
+#: gnu/packages/gnome.scm:6956
 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:6764
+#: gnu/packages/gnome.scm:6986
 msgid "Unicode character picker and font browser"
 msgstr ""
 
-#: gnu/packages/gnome.scm:6766
+#: gnu/packages/gnome.scm:6988
 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"
@@ -6785,22 +6897,22 @@ msgid ""
 "only know by its Unicode name or code point."
 msgstr ""
 
-#: gnu/packages/gnome.scm:6796
+#: gnu/packages/gnome.scm:7018
 msgid "Web development studio"
 msgstr ""
 
-#: gnu/packages/gnome.scm:6798
+#: gnu/packages/gnome.scm:7020
 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:6830
+#: gnu/packages/gnome.scm:7052
 msgid "Process viewer and system resource monitor for GNOME"
 msgstr ""
 
-#: gnu/packages/gnome.scm:6832
+#: gnu/packages/gnome.scm:7054
 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"
@@ -6809,43 +6921,43 @@ msgid ""
 "kill/reinice processes."
 msgstr ""
 
-#: gnu/packages/gnome.scm:6858
+#: gnu/packages/gnome.scm:7080
 msgid "Python client bindings for D-Bus AT-SPI"
 msgstr ""
 
-#: gnu/packages/gnome.scm:6862
+#: gnu/packages/gnome.scm:7084
 msgid ""
 "This package includes a python client library for the AT-SPI D-Bus\n"
 "accessibility infrastructure."
 msgstr ""
 
-#: gnu/packages/gnome.scm:6921
+#: gnu/packages/gnome.scm:7143
 msgid "Screen reader for individuals who are blind or visually impaired"
 msgstr ""
 
-#: gnu/packages/gnome.scm:6924
+#: gnu/packages/gnome.scm:7146
 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:6976
+#: gnu/packages/gnome.scm:7198
 msgid "GNOME's alternative spell checker"
 msgstr ""
 
-#: gnu/packages/gnome.scm:6978
+#: gnu/packages/gnome.scm:7200
 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:7020
+#: gnu/packages/gnome.scm:7242
 msgid "Project management software for the GNOME desktop"
 msgstr ""
 
-#: gnu/packages/gnome.scm:7022
+#: gnu/packages/gnome.scm:7244
 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"
@@ -6857,11 +6969,11 @@ msgid ""
 "views can be printed as PDF or PostScript files, or exported to HTML."
 msgstr ""
 
-#: gnu/packages/gnome.scm:7088
+#: gnu/packages/gnome.scm:7310
 msgid "GNOME music playing application"
 msgstr ""
 
-#: gnu/packages/gnome.scm:7090
+#: gnu/packages/gnome.scm:7312
 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"
@@ -6869,31 +6981,31 @@ msgid ""
 "automatically and it can stream songs from online music services and charts."
 msgstr ""
 
-#: gnu/packages/gnome.scm:7117
+#: gnu/packages/gnome.scm:7339
 msgid "Video effects for Cheese and other GNOME applications"
 msgstr ""
 
-#: gnu/packages/gnome.scm:7119
+#: gnu/packages/gnome.scm:7341
 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:7179
+#: gnu/packages/gnome.scm:7401
 msgid "Webcam photo booth software for GNOME"
 msgstr ""
 
-#: gnu/packages/gnome.scm:7181
+#: gnu/packages/gnome.scm:7403
 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:7218
+#: gnu/packages/gnome.scm:7440
 msgid "Audio music cd ripper"
 msgstr ""
 
-#: gnu/packages/gnome.scm:7219
+#: gnu/packages/gnome.scm:7441
 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"
@@ -6901,99 +7013,99 @@ msgid ""
 "mp3, Ogg Vorbis and FLAC"
 msgstr ""
 
-#: gnu/packages/gnome.scm:7283
+#: gnu/packages/gnome.scm:7498
 msgid "Convert between audio formats with a graphical interface"
 msgstr ""
 
-#: gnu/packages/gnome.scm:7285
+#: gnu/packages/gnome.scm:7500
 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:7330
+#: gnu/packages/gnome.scm:7543
 msgid "Tool to help prevent repetitive strain injury (RSI)"
 msgstr ""
 
-#: gnu/packages/gnome.scm:7332
+#: gnu/packages/gnome.scm:7545
 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:7361
+#: gnu/packages/gnome.scm:7574
 msgid "GNOME hexadecimal editor"
 msgstr "Éditeur hexadécimal de GNOME"
 
-#: gnu/packages/gnome.scm:7362
+#: gnu/packages/gnome.scm:7575
 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/gnuzilla.scm:127
-msgid "Mozilla javascript engine"
+#: gnu/packages/gnome.scm:7619
+msgid "Companion library to GObject and Gtk+"
 msgstr ""
 
-#: gnu/packages/gnuzilla.scm:128
+#: gnu/packages/gnome.scm:7620
 msgid ""
-"SpiderMonkey is Mozilla's JavaScript engine written\n"
-"in C/C++."
+"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/gnuzilla.scm:357
-msgid "Netscape API for system level and libc-like functions"
+#: gnu/packages/gnome.scm:7668
+msgid "Manage your email, contacts and schedule"
 msgstr ""
 
-#: gnu/packages/gnuzilla.scm:358
+#: gnu/packages/gnome.scm:7669
 msgid ""
-"Netscape Portable Runtime (@dfn{NSPR}) provides a\n"
-"platform-neutral API for system level and libc-like functions.  It is used\n"
-"in the Mozilla clients."
+"Evolution is a personal information management application\n"
+"that provides integrated mail, calendaring and address book\n"
+"functionality."
 msgstr ""
 
-#: gnu/packages/gnuzilla.scm:464
-msgid "Network Security Services"
+#: gnu/packages/gnuzilla.scm:137
+msgid "Mozilla javascript engine"
 msgstr ""
 
-#: gnu/packages/gnuzilla.scm:466
+#: gnu/packages/gnuzilla.scm:138
 msgid ""
-"Network Security Services (@dfn{NSS}) is a set of libraries designed to\n"
-"support cross-platform development of security-enabled client and server\n"
-"applications.  Applications built with NSS can support SSL v2 and v3, TLS,\n"
-"PKCS #5, PKCS #7, PKCS #11, PKCS #12, S/MIME, X.509 v3 certificates, and other\n"
-"security standards."
+"SpiderMonkey is Mozilla's JavaScript engine written\n"
+"in C/C++."
 msgstr ""
 
-#: gnu/packages/gnuzilla.scm:840
+#: gnu/packages/gnuzilla.scm:955
 msgid "Entirely free browser derived from Mozilla Firefox"
 msgstr ""
 
-#: gnu/packages/gnuzilla.scm:842
+#: gnu/packages/gnuzilla.scm:957
 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."
 msgstr ""
 
-#: gnu/packages/gtk.scm:105
+#: gnu/packages/gtk.scm:109
 msgid "GNOME accessibility toolkit"
 msgstr ""
 
-#: gnu/packages/gtk.scm:107
+#: gnu/packages/gtk.scm:111
 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:147
+#: gnu/packages/gtk.scm:150
 msgid "2D graphics library"
 msgstr "Bibliothèque graphique 2D"
 
-#: gnu/packages/gtk.scm:149
+#: gnu/packages/gtk.scm:152
 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"
@@ -7011,56 +7123,56 @@ msgid ""
 "affine transformation (scale, rotation, shear, etc.)."
 msgstr ""
 
-#: gnu/packages/gtk.scm:177
+#: gnu/packages/gtk.scm:180
 msgid "2D graphics library (with X11 support)"
 msgstr ""
 
-#: gnu/packages/gtk.scm:211
+#: gnu/packages/gtk.scm:214
 msgid "OpenType text shaping engine"
 msgstr ""
 
-#: gnu/packages/gtk.scm:213
+#: gnu/packages/gtk.scm:216
 msgid "HarfBuzz is an OpenType text shaping engine."
 msgstr ""
 
-#: gnu/packages/gtk.scm:250
+#: gnu/packages/gtk.scm:252
 msgid "GNOME text and font handling library"
 msgstr ""
 
-#: gnu/packages/gtk.scm:252
+#: gnu/packages/gtk.scm:254
 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:291
+#: gnu/packages/gtk.scm:280
 msgid "Obsolete pango functions"
 msgstr ""
 
-#: gnu/packages/gtk.scm:292
+#: gnu/packages/gtk.scm:281
 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:329
+#: gnu/packages/gtk.scm:319
 msgid "GTK+ widget for interactive graph-like environments"
 msgstr ""
 
-#: gnu/packages/gtk.scm:331
+#: gnu/packages/gtk.scm:321
 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:400
+#: gnu/packages/gtk.scm:390
 msgid "Widget that extends the standard GTK+ 2.x 'GtkTextView' widget"
 msgstr ""
 
-#: gnu/packages/gtk.scm:402
+#: gnu/packages/gtk.scm:392
 msgid ""
 "GtkSourceView is a portable C library that extends the standard GTK+\n"
 "framework for multiline text editing with support for configurable syntax\n"
@@ -7068,56 +7180,56 @@ msgid ""
 "printing and other features typical of a source code editor."
 msgstr ""
 
-#: gnu/packages/gtk.scm:451
+#: gnu/packages/gtk.scm:441
 msgid "GNOME source code widget"
 msgstr ""
 
-#: gnu/packages/gtk.scm:452
+#: gnu/packages/gtk.scm:442
 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:502
+#: gnu/packages/gtk.scm:509
 msgid "GNOME image loading and manipulation library"
 msgstr ""
 
-#: gnu/packages/gtk.scm:504
+#: gnu/packages/gtk.scm:511
 msgid ""
 "GdkPixbuf is a library for image loading and manipulation developed\n"
 "in the GNOME project."
 msgstr ""
 
-#: gnu/packages/gtk.scm:538
+#: gnu/packages/gtk.scm:545
 msgid "GNOME image loading and manipulation library, with SVG support"
 msgstr ""
 
-#: gnu/packages/gtk.scm:578
+#: gnu/packages/gtk.scm:585
 msgid "Assistive Technology Service Provider Interface, core components"
 msgstr ""
 
-#: gnu/packages/gtk.scm:580
+#: gnu/packages/gtk.scm:587
 msgid ""
 "The Assistive Technology Service Provider Interface, core components,\n"
 "is part of the GNOME accessibility project."
 msgstr ""
 
-#: gnu/packages/gtk.scm:613
+#: gnu/packages/gtk.scm:620
 msgid "Assistive Technology Service Provider Interface, ATK bindings"
 msgstr ""
 
-#: gnu/packages/gtk.scm:615
+#: gnu/packages/gtk.scm:622
 msgid ""
 "The Assistive Technology Service Provider Interface\n"
 "is part of the GNOME accessibility project."
 msgstr ""
 
-#: gnu/packages/gtk.scm:675
+#: gnu/packages/gtk.scm:682
 msgid "Cross-platform toolkit for creating graphical user interfaces"
 msgstr ""
 
-#: gnu/packages/gtk.scm:677
+#: gnu/packages/gtk.scm:684
 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"
@@ -7125,11 +7237,11 @@ msgid ""
 "application suites."
 msgstr ""
 
-#: gnu/packages/gtk.scm:811
+#: gnu/packages/gtk.scm:840
 msgid "Cairo bindings for GNU Guile"
 msgstr "Liaisons Cairo pour GNU Guile"
 
-#: gnu/packages/gtk.scm:813
+#: gnu/packages/gtk.scm:842
 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"
@@ -7139,21 +7251,21 @@ msgid ""
 "exceptions, macros, and a dynamic programming environment."
 msgstr ""
 
-#: gnu/packages/gtk.scm:861
+#: gnu/packages/gtk.scm:890
 msgid "Render SVG images using Cairo from Guile"
 msgstr ""
 
-#: gnu/packages/gtk.scm:863
+#: gnu/packages/gtk.scm:892
 msgid ""
 "Guile-RSVG wraps the RSVG library for Guile, allowing you to render SVG\n"
 "images onto Cairo surfaces."
 msgstr ""
 
-#: gnu/packages/gtk.scm:903
+#: gnu/packages/gtk.scm:932
 msgid "Create SVG or PDF presentations in Guile"
 msgstr "Création de SVG et de présentations PDF en Guile"
 
-#: gnu/packages/gtk.scm:905
+#: gnu/packages/gtk.scm:934
 msgid ""
 "Guile-Present defines a declarative vocabulary for presentations,\n"
 "together with tools to render presentation documents as SVG or PDF.\n"
@@ -7162,51 +7274,51 @@ msgid ""
 "documents."
 msgstr ""
 
-#: gnu/packages/gtk.scm:959
+#: gnu/packages/gtk.scm:988
 msgid "Guile interface for GTK+ programming for GNOME"
 msgstr ""
 
-#: gnu/packages/gtk.scm:961
+#: gnu/packages/gtk.scm:990
 msgid ""
 "Includes guile-clutter, guile-gnome-gstreamer,\n"
 "guile-gnome-platform (GNOME developer libraries), and guile-gtksourceview."
 msgstr ""
 
-#: gnu/packages/gtk.scm:994
+#: gnu/packages/gtk.scm:1023
 msgid "C++ bindings to the Cairo 2D graphics library"
 msgstr ""
 
-#: gnu/packages/gtk.scm:996
+#: gnu/packages/gtk.scm:1025
 msgid ""
 "Cairomm provides a C++ programming interface to the Cairo 2D graphics\n"
 "library."
 msgstr ""
 
-#: gnu/packages/gtk.scm:1020
+#: gnu/packages/gtk.scm:1049
 msgid "C++ interface to the Pango text rendering library"
 msgstr ""
 
-#: gnu/packages/gtk.scm:1022
+#: gnu/packages/gtk.scm:1051
 msgid ""
 "Pangomm provides a C++ programming interface to the Pango text rendering\n"
 "library."
 msgstr ""
 
-#: gnu/packages/gtk.scm:1043
+#: gnu/packages/gtk.scm:1072
 msgid "C++ interface to the ATK accessibility library"
 msgstr ""
 
-#: gnu/packages/gtk.scm:1045
+#: gnu/packages/gtk.scm:1074
 msgid ""
 "ATKmm provides a C++ programming interface to the ATK accessibility\n"
 "toolkit."
 msgstr ""
 
-#: gnu/packages/gtk.scm:1089
+#: gnu/packages/gtk.scm:1118
 msgid "C++ interface to the GTK+ graphical user interface library"
 msgstr ""
 
-#: gnu/packages/gtk.scm:1091
+#: gnu/packages/gtk.scm:1120
 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"
@@ -7215,11 +7327,11 @@ msgid ""
 "extensive documentation, including API reference and a tutorial."
 msgstr ""
 
-#: gnu/packages/gtk.scm:1140
+#: gnu/packages/gtk.scm:1169
 msgid "C++ interface to the GTK+ 'GtkTextView' widget"
 msgstr ""
 
-#: gnu/packages/gtk.scm:1142
+#: gnu/packages/gtk.scm:1171
 msgid ""
 "gtksourceviewmm is a portable C++ library that extends the standard GTK+\n"
 "framework for multiline text editing with support for configurable syntax\n"
@@ -7227,41 +7339,41 @@ msgid ""
 "printing and other features typical of a source code editor."
 msgstr ""
 
-#: gnu/packages/gtk.scm:1172
+#: gnu/packages/gtk.scm:1201
 msgid "Python bindings for cairo"
 msgstr ""
 
-#: gnu/packages/gtk.scm:1174
+#: gnu/packages/gtk.scm:1203
 msgid "Pycairo is a set of Python bindings for the Cairo graphics library."
 msgstr ""
 
-#: gnu/packages/gtk.scm:1247
+#: gnu/packages/gtk.scm:1276
 msgid "Python bindings for GTK+"
 msgstr ""
 
-#: gnu/packages/gtk.scm:1249
+#: gnu/packages/gtk.scm:1278
 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:1273
+#: gnu/packages/gtk.scm:1302
 msgid "Perl interface to the cairo 2d vector graphics library"
 msgstr ""
 
-#: gnu/packages/gtk.scm:1274
+#: gnu/packages/gtk.scm:1303
 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:1299
+#: gnu/packages/gtk.scm:1328
 msgid "Perl interface to the 2.x series of the Gimp Toolkit library"
 msgstr ""
 
-#: gnu/packages/gtk.scm:1300
+#: gnu/packages/gtk.scm:1329
 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"
@@ -7269,11 +7381,11 @@ msgid ""
 "yet remaining very close in spirit to original API."
 msgstr ""
 
-#: gnu/packages/gtk.scm:1327
+#: gnu/packages/gtk.scm:1356
 msgid "Layout and render international text"
 msgstr ""
 
-#: gnu/packages/gtk.scm:1328
+#: gnu/packages/gtk.scm:1357
 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"
@@ -7290,11 +7402,11 @@ msgid ""
 "and routines to assist in editing internationalized text."
 msgstr ""
 
-#: gnu/packages/gtk.scm:1381
+#: gnu/packages/gtk.scm:1410
 msgid "Library for minimalistic gtk+3 user interfaces"
 msgstr ""
 
-#: gnu/packages/gtk.scm:1382
+#: gnu/packages/gtk.scm:1411
 msgid ""
 "Girara is a library that implements a user interface that\n"
 "focuses on simplicity and minimalism.  Currently based on GTK+, a\n"
@@ -7305,97 +7417,97 @@ msgid ""
 "information."
 msgstr ""
 
-#: gnu/packages/gtk.scm:1481
+#: gnu/packages/gtk.scm:1510
 msgid "Documentation generator from C source code"
 msgstr ""
 
-#: gnu/packages/gtk.scm:1483
+#: gnu/packages/gtk.scm:1512
 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:1511
+#: gnu/packages/gtk.scm:1540
 msgid "Theming engines for GTK+ 2.x"
 msgstr ""
 
-#: gnu/packages/gtk.scm:1513
+#: gnu/packages/gtk.scm:1542
 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:1541
+#: gnu/packages/gtk.scm:1570
 msgid "Cairo-based theming engine for GTK+ 2.x"
 msgstr ""
 
-#: gnu/packages/gtk.scm:1543
+#: gnu/packages/gtk.scm:1572
 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:1569
+#: gnu/packages/gtk.scm:1598
 msgid "Spell-checking addon for GTK's TextView widget"
 msgstr ""
 
-#: gnu/packages/gtk.scm:1571
+#: gnu/packages/gtk.scm:1600
 msgid ""
 "GtkSpell provides word-processor-style highlighting and replacement of\n"
 "misspelled words in a GtkTextView widget."
 msgstr ""
 
-#: gnu/packages/gtk.scm:1594
+#: gnu/packages/gtk.scm:1626
 msgid "Lightweight GTK+ clipboard manager"
 msgstr ""
 
-#: gnu/packages/gtk.scm:1596
+#: gnu/packages/gtk.scm:1628
 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:1633
+#: gnu/packages/gtk.scm:1660
 msgid "Thin layer of graphic data types"
 msgstr ""
 
-#: gnu/packages/gtk.scm:1634
+#: gnu/packages/gtk.scm:1661
 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."
 msgstr ""
 
-#: gnu/packages/gtk.scm:1659
+#: gnu/packages/gtk.scm:1686
 msgid "Gtk+ widget for dealing with 2-D tabular data"
 msgstr ""
 
-#: gnu/packages/gtk.scm:1661
+#: gnu/packages/gtk.scm:1688
 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:1702
+#: gnu/packages/gtk.scm:1729
 msgid "GTK+ dialog boxes for shell scripts"
 msgstr ""
 
-#: gnu/packages/gtk.scm:1704
+#: gnu/packages/gtk.scm:1731
 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:141 gnu/packages/guile.scm:220
+#: gnu/packages/guile.scm:125 gnu/packages/guile.scm:206
 msgid "Scheme implementation intended especially for extensions"
 msgstr "Implantation de Scheme spécialement destinée aux extensions"
 
-#: gnu/packages/guile.scm:143 gnu/packages/guile.scm:222
+#: gnu/packages/guile.scm:127 gnu/packages/guile.scm:208
 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"
@@ -7408,149 +7520,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:410
+#: gnu/packages/guile.scm:364
 msgid "Line editing support for GNU Guile"
 msgstr "Support de l'édition de ligne pour GNU Guile"
 
-#: gnu/packages/guile.scm:412
+#: gnu/packages/guile.scm:366
 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:528
-msgid "Package manager for Guile"
-msgstr ""
-
-#: gnu/packages/guile.scm:530
-msgid ""
-"Guildhall is a package manager written for Guile Scheme.  A guild is\n"
-"an association of independent craftspeople.  A guildhall is where they meet.\n"
-"This Guildhall aims to make a virtual space for Guile wizards and journeyfolk\n"
-"to share code.\n"
-"\n"
-"On a practical level, Guildhall lets you share Scheme modules and programs\n"
-"over the internet, and install code that has been shared by others.  Guildhall\n"
-"can handle dependencies, so when a program requires several libraries, and\n"
-"each of those has further dependencies, all of the prerequisites for the\n"
-"program can be installed in one go."
-msgstr ""
-
-#: gnu/packages/guile.scm:623
-msgid "Web application framework written in Guile"
-msgstr ""
-
-#: gnu/packages/guile.scm:624
-msgid ""
-"GNU Artanis is a web application framework written in Guile\n"
-"Scheme.  A web application framework (WAF) is a software framework that is\n"
-"designed to support the development of dynamic websites, web applications, web\n"
-"services and web resources.  The framework aims to alleviate the overhead\n"
-"associated with common activities performed in web development.  Artanis\n"
-"provides several tools for web development: database access, templating\n"
-"frameworks, session management, URL-remapping for RESTful, page caching, and\n"
-"more."
-msgstr ""
-
-#: gnu/packages/guile.scm:650
-msgid "Framework for building readers for GNU Guile"
-msgstr "Framework pour la construction de lecteurs GNU Guile"
-
-#: gnu/packages/guile.scm:652
-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"
-"\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)."
-msgstr ""
-"Guile-Reader est un framework permettant de construire des lecteurs pour\n"
-"GNU Guile. L'idée est de rendre facile la construction de procédures étendant\n"
-"la procédure de lecture de Guile. Il est possible d'écrire facilement des lecteurs\n"
-"supportant de nombreuses syntaxes. Par exemple, Guile-Reader est utilisé pour\n"
-"implanter la syntaxe de documents basés sur R5RS de Skribilo.\n"
-"\n"
-"L'approche de Guile-Reader est similaire à la table de lecture de Lisp, mais\n"
-"plus puissante et plus flexible (il est par exemple possible d'instancier autant\n"
-"de lecteurs que nécessaires)."
-
-#: gnu/packages/guile.scm:706
-msgid "Guile bindings to ncurses"
-msgstr "Bindings Guile pour ncurses"
-
-#: gnu/packages/guile.scm:708
-msgid ""
-"guile-ncurses provides Guile language bindings for the ncurses\n"
-"library."
-msgstr "guile-ncurses fournit un binding Guile pour la biliothèque ncurses."
-
-#: gnu/packages/guile.scm:766
-msgid "Run jobs at scheduled times"
-msgstr "Plannification de tâches"
-
-#: gnu/packages/guile.scm:768
-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."
-msgstr ""
-"GNU Mcron est un remplaçant à Vixie cron. Il est utilisé pour la planification\n"
-"de tâches à intervalles réguliers (toutes les heures, tous les lundi, etc...).\n"
-"Mcron est écrit en Guile et peut donc être configuré en Scheme ; le format cron\n"
-"original est aussi supporté."
-
-#: gnu/packages/guile.scm:836
-msgid "Guile project tooling"
-msgstr ""
-
-#: gnu/packages/guile.scm:838
-msgid ""
-"Hall is a command-line application and a set of Guile libraries that\n"
-"allow you to quickly create and publish Guile projects.  It allows you to\n"
-"transparently support the GNU build system, manage a project hierarchy &\n"
-"provides tight coupling to Guix."
-msgstr ""
-
-#: gnu/packages/guile.scm:870
-msgid "Guile parser library for the iCalendar format"
-msgstr ""
-
-#: gnu/packages/guile.scm:872
-msgid ""
-"Guile-ICS is an iCalendar (RFC5545) format parser library written in\n"
-"pure Scheme.  The library can be used to read and write iCalendar data.\n"
-"\n"
-"The library is shipped with documentation in Info format and usage examples."
-msgstr ""
-
-#: gnu/packages/guile.scm:907
-msgid "Collection of useful Guile Scheme modules"
-msgstr "Collection de modules Scheme utiles pour Guile"
-
-#: gnu/packages/guile.scm:909
-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\"."
-msgstr ""
-"Guile-Lib est conçue comme une collection de modules Scheme pour Guile permettant\n"
-"aux utilisateurs d'intégrer leurs modules Guile au sein d'une bilbiothéque commune\n"
-"et cohérente. Voyez Guile-Lib comme une version plus simple de CPAN limitée à Guile."
-
-#: gnu/packages/guile.scm:944
+#: gnu/packages/guile.scm:446
 msgid "JSON module for Guile"
 msgstr "Module JSON pour Guile"
 
-#: gnu/packages/guile.scm:946
+#: gnu/packages/guile.scm:448
 msgid ""
 "Guile-JSON supports parsing and building JSON documents according to the\n"
 "specification.  These are the main features:\n"
@@ -7572,213 +7557,29 @@ msgstr ""
 "@item formatage élégant.\n"
 "@end itemize\n"
 
-#: gnu/packages/guile.scm:982
-msgid "MiniKanren declarative logic system, packaged for Guile"
-msgstr ""
-
-#: gnu/packages/guile.scm:984
-msgid ""
-"MiniKanren is a relational programming extension to the Scheme\n"
-"programming Language, written as a smaller version of Kanren suitable for\n"
-"pedagogical purposes.  It is featured in the book, The Reasoned Schemer,\n"
-"written by Dan Friedman, William Byrd, and Oleg Kiselyov.\n"
-"\n"
-"This is Ian Price's r6rs packaged version of miniKanren, which deviates\n"
-"slightly from miniKanren mainline.\n"
-"\n"
-"See http://minikanren.org/ for more on miniKanren generally."
-msgstr ""
-
-#: gnu/packages/guile.scm:1020
-msgid ""
-"Minimal implementation of incremental computation in Guile\n"
-"Scheme"
-msgstr ""
-
-#: gnu/packages/guile.scm:1022
-msgid ""
-"This package provides a complete Scheme implementation of\n"
-"miniAdapton, which implements the core functionality of the Adapton system for\n"
-"incremental computation (also known as self-adjusting computation).  Like\n"
-"Adapton, miniAdapton allows programmers to safely combine mutation and\n"
-"memoization.  miniAdapton is built on top of an even simpler system,\n"
-"microAdapton.  Both miniAdapton and microAdapton are designed to be easy to\n"
-"understand, extend, and port to host languages other than Scheme."
-msgstr ""
-
-#: gnu/packages/guile.scm:1064
-msgid "S-expression based regular expressions"
-msgstr ""
-
-#: gnu/packages/guile.scm:1066
-msgid ""
-"Irregex is an s-expression based alternative to your classic\n"
-"string-based regular expressions.  It implements SRFI 115 and is deeply\n"
-"inspired by the SCSH regular expression system."
-msgstr ""
-
-#: gnu/packages/guile.scm:1120
+#: gnu/packages/guile.scm:524
 msgid "Guile bindings to the GDBM library via Guile's FFI"
 msgstr ""
 
-#: gnu/packages/guile.scm:1122
+#: gnu/packages/guile.scm:526
 msgid ""
 "Guile bindings to the GDBM key-value storage system, using\n"
 "Guile's foreign function interface."
 msgstr ""
 
-#: gnu/packages/guile.scm:1154
+#: gnu/packages/guile.scm:558
 msgid "Access SQLite databases from Guile"
 msgstr ""
 
-#: gnu/packages/guile.scm:1156
+#: gnu/packages/guile.scm:560
 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:1219
-msgid "Functional static site generator"
-msgstr ""
-
-#: gnu/packages/guile.scm:1220
-msgid ""
-"Haunt is a static site generator written in Guile\n"
-"Scheme.  Haunt features a functional build system and an extensible\n"
-"interface for reading articles in any format."
-msgstr ""
-
-#: gnu/packages/guile.scm:1252
-msgid "Guile application configuration parsing library."
-msgstr ""
-
-#: gnu/packages/guile.scm:1254
-msgid ""
-"Guile Config is a library providing a declarative approach to\n"
-"application configuration specification.  The library provides clean\n"
-"configuration declaration forms, and processors that take care of:\n"
-"configuration file creation; configuration file parsing; command-line\n"
-"parameter parsing using getopt-long; basic GNU command-line parameter\n"
-"generation (--help, --usage, --version); automatic output generation for the\n"
-"above command-line parameters."
-msgstr ""
-
-#: gnu/packages/guile.scm:1282
-msgid "Redis client library for Guile"
-msgstr ""
-
-#: gnu/packages/guile.scm:1283
-msgid ""
-"Guile-redis provides a Scheme interface to the Redis\n"
-"key-value cache and store."
-msgstr ""
-
-#: gnu/packages/guile.scm:1360
-msgid "Whitespace to lisp syntax for Guile"
-msgstr ""
-
-#: gnu/packages/guile.scm:1361
-msgid ""
-"Wisp is a syntax for Guile which provides a Python-like\n"
-"whitespace-significant language.  It may be easier on the eyes for some\n"
-"users and in some situations."
-msgstr ""
-
-#: gnu/packages/guile.scm:1412
-msgid "2D/3D game engine for GNU Guile"
-msgstr ""
-
-#: gnu/packages/guile.scm:1413
-msgid ""
-"Sly is a 2D/3D game engine written in Guile Scheme.  Sly\n"
-"features a functional reactive programming interface and live coding\n"
-"capabilities."
-msgstr ""
-
-#: gnu/packages/guile.scm:1449
-msgid "Generate C bindings for Guile"
-msgstr "Génère des liaisons C pour Guile"
-
-#: gnu/packages/guile.scm:1450
-msgid ""
-"G-Wrap is a tool and Guile library for generating function\n"
-"wrappers for inter-language calls.  It currently only supports generating Guile\n"
-"wrappers for C functions.  Given a definition of the types and prototypes for\n"
-"a given C interface, G-Wrap will automatically generate the C code that\n"
-"provides access to that interface and its types from the Scheme level."
-msgstr ""
-
-#: gnu/packages/guile.scm:1492
-msgid "Guile database abstraction layer"
-msgstr "Couche d'abstraction de base de données pour Guile"
-
-#: gnu/packages/guile.scm:1495
-msgid ""
-"guile-dbi is a library for Guile that provides a convenient interface to\n"
-"SQL databases.  Database programming with guile-dbi is generic in that the same\n"
-"programming interface is presented regardless of which database system is used.\n"
-"It currently supports MySQL, Postgres and SQLite3."
-msgstr ""
-
-#: gnu/packages/guile.scm:1529
-msgid "Guile DBI driver for SQLite"
-msgstr ""
-
-#: gnu/packages/guile.scm:1532
-msgid ""
-"guile-dbi is a library for Guile that provides a convenient interface to\n"
-"SQL databases.  This package implements the interface for SQLite."
-msgstr ""
-
-#: gnu/packages/guile.scm:1575
-msgid "DSV module for Guile"
-msgstr "Module DSV pour Guile"
-
-#: gnu/packages/guile.scm:1577
-msgid ""
-"Guile-DSV is a GNU Guile module for working with the\n"
-"delimiter-separated values (DSV) data format.  Guile-DSV supports the\n"
-"Unix-style DSV format and RFC 4180 format."
-msgstr ""
-
-#: gnu/packages/guile.scm:1604
-msgid "XOSD bindings for Guile"
-msgstr ""
-
-#: gnu/packages/guile.scm:1606
-msgid ""
-"Guile-XOSD provides Guile bindings for @code{libxosd},\n"
-"@uref{http://sourceforge.net/projects/libxosd/, the X On Screen Display\n"
-"library}."
-msgstr ""
-
-#: gnu/packages/guile.scm:1629
-msgid "Evaluate code in a running Guile process"
-msgstr ""
-
-#: gnu/packages/guile.scm:1631
-msgid ""
-"Guile-Daemon is a small Guile program that loads your initial\n"
-"configuration file, and then reads and evaluates Guile expressions that\n"
-"you send to a FIFO file."
-msgstr ""
-
-#: gnu/packages/guile.scm:1665
-msgid "CommonMark parser for Guile"
-msgstr ""
-
-#: gnu/packages/guile.scm:1667
-msgid ""
-"guile-commonmark is a library for parsing CommonMark, a fully specified\n"
-"variant of Markdown.  The library is written in Guile Scheme and is designed\n"
-"to transform a CommonMark document to SXML.  guile-commonmark tries to closely\n"
-"follow the @uref{http://commonmark.org/, CommonMark spec}, the main difference\n"
-"is no support for parsing block and inline level HTML."
-msgstr ""
-
-#: gnu/packages/guile.scm:1698
+#: gnu/packages/guile.scm:584
 msgid "Structured access to bytevector contents for Guile"
 msgstr ""
 
-#: gnu/packages/guile.scm:1700
+#: gnu/packages/guile.scm:586
 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"
@@ -7787,216 +7588,16 @@ msgid ""
 "type system, elevating types to first-class status."
 msgstr ""
 
-#: gnu/packages/guile.scm:1744
-msgid "Spell-checking from Guile"
-msgstr ""
-
-#: gnu/packages/guile.scm:1746
-msgid ""
-"guile-aspell is a Guile Scheme library for comparing a string against a\n"
-"dictionary and suggesting spelling corrections."
-msgstr ""
-
-#: gnu/packages/guile.scm:1795
-msgid "Extend Bash using Guile"
-msgstr ""
-
-#: gnu/packages/guile.scm:1797
-#, scheme-format
-msgid ""
-"Guile-Bash provides a shared library and set of Guile modules,\n"
-"allowing you to extend Bash in Scheme.  Scheme interfaces allow you to access\n"
-"the following aspects of Bash:\n"
-"\n"
-"@itemize\n"
-"@item aliases;\n"
-"@item setting and getting Bash variables;\n"
-"@item creating dynamic variables;\n"
-"@item creating Bash functions with a Scheme implementation;\n"
-"@item reader macro for output capturing;\n"
-"@item reader macro for evaluating raw Bash commands.\n"
-"@end itemize\n"
-"\n"
-"To enable it, run:\n"
-"\n"
-"@example\n"
-"enable -f ~/.guix-profile/lib/bash/libguile-bash.so scm\n"
-"@end example\n"
-"\n"
-"and then run @command{scm example.scm}."
-msgstr ""
-
-#: gnu/packages/guile.scm:1844
-msgid "Asynchronous actor model library for Guile"
-msgstr ""
-
-#: gnu/packages/guile.scm:1846
-msgid ""
-"GNU 8sync (pronounced \"eight-sync\") is an asynchronous programming\n"
-"library for GNU Guile based on the actor model.\n"
-"\n"
-"Note that 8sync is only available for Guile 2.2."
-msgstr ""
-
-#: gnu/packages/guile.scm:1883
-msgid "Lightweight concurrency facility for Guile"
-msgstr ""
-
-#: gnu/packages/guile.scm:1885
-msgid ""
-"Fibers is a Guile library that implements a a lightweight concurrency\n"
-"facility, inspired by systems like Concurrent ML, Go, and Erlang.  A fiber is\n"
-"like a \"goroutine\" from the Go language: a lightweight thread-like\n"
-"abstraction.  Systems built with Fibers can scale up to millions of concurrent\n"
-"fibers, tens of thousands of concurrent socket connections, and many parallel\n"
-"cores.  The Fibers library also provides Concurrent ML-like channels for\n"
-"communication between fibers.\n"
-"\n"
-"Note that Fibers makes use of some Guile 2.1/2.2-specific features and\n"
-"is not available for Guile 2.0."
-msgstr ""
-
-#: gnu/packages/guile.scm:1922
+#: gnu/packages/guile.scm:620
 msgid "Guile bindings for libgit2"
 msgstr "Liaisons Guile pour libgit2"
 
-#: gnu/packages/guile.scm:1924
+#: gnu/packages/guile.scm:622
 msgid ""
 "This package provides Guile bindings to libgit2, a library to\n"
 "manipulate repositories of the Git version control system."
 msgstr ""
 
-#: gnu/packages/guile.scm:1949
-msgid "General-purpose syntax highlighter for GNU Guile"
-msgstr ""
-
-#: gnu/packages/guile.scm:1950
-msgid ""
-"Guile-syntax-highlight is a general-purpose syntax\n"
-"highlighting library for GNU Guile.  It can parse code written in various\n"
-"programming languages into a simple s-expression that can be converted to\n"
-"HTML (via SXML) or any other format for rendering."
-msgstr ""
-
-#: gnu/packages/guile.scm:1976
-msgid "S-expression based json reader/writer for Guile"
-msgstr ""
-
-#: gnu/packages/guile.scm:1977
-msgid ""
-"guile-sjson is a json reader/writer for Guile.\n"
-"It has a nice, simple s-expression based syntax."
-msgstr ""
-
-#: gnu/packages/guile.scm:1997
-msgid "Colorized REPL for Guile"
-msgstr ""
-
-#: gnu/packages/guile.scm:1999
-msgid "Guile-colorized provides you with a colorized REPL for GNU Guile."
-msgstr ""
-
-#: gnu/packages/guile.scm:2054
-msgid "Purely functional data structures for Guile"
-msgstr ""
-
-#: gnu/packages/guile.scm:2056
-msgid ""
-"This package provides purely functional data structures written in R6RS\n"
-"Scheme and compiled for Guile.  It has been tested with Racket, Guile 2,\n"
-"Vicare Scheme and IronScheme.  Right now it contains:\n"
-"\n"
-"@itemize\n"
-"@item queues\n"
-"@item deques\n"
-"@item bbtrees\n"
-"@item sets\n"
-"@item dlists\n"
-"@item priority search queues (PSQs)\n"
-"@item finger trees\n"
-"@item sequences\n"
-"@item heaps\n"
-"@item hash array mapped tries (HAMTs).\n"
-"@end itemize\n"
-msgstr ""
-
-#: gnu/packages/guile.scm:2089
-msgid "AA tree data structure for Guile"
-msgstr ""
-
-#: gnu/packages/guile.scm:2091
-msgid ""
-"This package provides an implementation of @dfn{AA trees}, a\n"
-"self-balancing binary tree data structure, for Guile.  It ensure @math{O(log\n"
-"n)} worst case performance for core operations.  The module provides\n"
-"non-mutating insert, delete, and search operations, with support for\n"
-"convenient nested tree operations."
-msgstr ""
-
-#: gnu/packages/guile.scm:2130
-msgid "Guile wrapper over ZeroMQ library"
-msgstr ""
-
-#: gnu/packages/guile.scm:2132
-msgid ""
-"This package provides a Guile programming interface to the ZeroMQ\n"
-"messaging library."
-msgstr ""
-"Ce paquet fournit une interface de programmation Guile pour la bibliothèque\n"
-"de messages ZeroMQ."
-
-#: gnu/packages/guile.scm:2218
-msgid "Guile kernel for the Jupyter Notebook"
-msgstr ""
-
-#: gnu/packages/guile.scm:2220
-msgid ""
-"This package provides a Guile 2.x kernel for the Jupyter Notebook.  It\n"
-"allows users to interact with the Guile REPL through Jupyter."
-msgstr ""
-
-#: gnu/packages/guile.scm:2243
-msgid "SPARQL module for Guile"
-msgstr "Module SPARQL pour Guile"
-
-#: gnu/packages/guile.scm:2244
-msgid ""
-"This package provides the functionality to query a SPARQL\n"
-"endpoint.  Additionally, it provides an interface to write SPARQL queries\n"
-"using S-expressions."
-msgstr ""
-
-#: gnu/packages/guile.scm:2270
-msgid "Guile interface to the Debbugs bug tracking service"
-msgstr ""
-
-#: gnu/packages/guile.scm:2272
-msgid ""
-"This package provides a Guile library to communicate with a Debbugs bug\n"
-"tracker's SOAP service, such as @url{https://bugs.gnu.org}."
-msgstr ""
-
-#: gnu/packages/guile.scm:2300
-msgid "Guile email parser"
-msgstr ""
-
-#: gnu/packages/guile.scm:2301
-msgid ""
-"This package provides an email parser written in pure\n"
-"Guile."
-msgstr "Ce paquet fournit un analyseur de courriels en pur Guile."
-
-#: gnu/packages/guile.scm:2357
-msgid "Guile bindings to Newt"
-msgstr "Liaisons Guile pour Newt"
-
-#: gnu/packages/guile.scm:2359
-msgid ""
-"This package provides bindings for Newt, a programming library for\n"
-"color text mode, widget based user interfaces.  The bindings are written in pure\n"
-"Scheme by using Guile’s foreign function interface."
-msgstr ""
-
 #: gnu/packages/imagemagick.scm:113 gnu/packages/imagemagick.scm:216
 msgid "Create, edit, compose, or convert bitmap images"
 msgstr ""
@@ -8030,63 +7631,52 @@ msgid ""
 "processing, and 2D vector rendering."
 msgstr ""
 
-#: gnu/packages/image.scm:103
+#: gnu/packages/image.scm:109
 msgid "Library for handling PNG files"
 msgstr "Bibliothèque pour manipuler des fichiers PNG"
 
-#: gnu/packages/image.scm:105
+#: gnu/packages/image.scm:111
 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:169
+#: gnu/packages/image.scm:194
 msgid "APNG patch for libpng"
 msgstr ""
 
-#: gnu/packages/image.scm:171
+#: gnu/packages/image.scm:196
 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:211
-msgid "Read and write PNG images"
-msgstr ""
-
-#: gnu/packages/image.scm:213
-msgid ""
-"This package provides an easy and simple way to read, write and display\n"
-"bitmap images stored in the PNG format.  It can read and write both files and\n"
-"in-memory raw vectors."
-msgstr ""
-
-#: gnu/packages/image.scm:248
+#: gnu/packages/image.scm:251
 msgid "Utility to compress PNG files"
 msgstr ""
 
-#: gnu/packages/image.scm:249
+#: gnu/packages/image.scm:252
 msgid ""
 "pngcrusqh is an optimizer for PNG (Portable Network Graphics)\n"
 "files.  It can compress them as much as 40% losslessly."
 msgstr ""
 
-#: gnu/packages/image.scm:307
+#: gnu/packages/image.scm:310
 msgid "Pretty small png library"
 msgstr "Bibliothèque png très petite"
 
-#: gnu/packages/image.scm:308
+#: gnu/packages/image.scm:311
 msgid ""
 "A pretty small png library.\n"
 "Currently all documentation resides in @file{pnglite.h}."
 msgstr ""
 
-#: gnu/packages/image.scm:323
+#: gnu/packages/image.scm:326
 msgid "Library for handling JPEG files"
 msgstr "Bibliothèque de manipulation des fichiers JPEG"
 
-#: gnu/packages/image.scm:325
+#: gnu/packages/image.scm:328
 msgid ""
 "Libjpeg implements JPEG image encoding, decoding, and transcoding.\n"
 "JPEG is a standardized compression method for full-color and gray-scale\n"
@@ -8103,32 +7693,32 @@ msgid ""
 "@end enumerate"
 msgstr ""
 
-#: gnu/packages/image.scm:398
+#: gnu/packages/image.scm:401
 msgid "Implementation of the JPEG XR standard"
 msgstr "Implémentation du standard JPEG XR"
 
-#: gnu/packages/image.scm:399
+#: gnu/packages/image.scm:402
 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:421
+#: gnu/packages/image.scm:424
 msgid "Optimize JPEG images"
 msgstr ""
 
-#: gnu/packages/image.scm:423
+#: gnu/packages/image.scm:426
 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:448
+#: gnu/packages/image.scm:451
 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:450
+#: gnu/packages/image.scm:453
 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"
@@ -8150,11 +7740,11 @@ msgid ""
 "collection of tools for doing simple manipulations of TIFF images."
 msgstr ""
 
-#: gnu/packages/image.scm:551
+#: gnu/packages/image.scm:541
 msgid "Library and tools for image processing and analysis"
 msgstr ""
 
-#: gnu/packages/image.scm:553
+#: gnu/packages/image.scm:543
 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"
@@ -8164,13 +7754,13 @@ msgid ""
 "arithmetic ops."
 msgstr ""
 
-#: gnu/packages/image.scm:576
+#: gnu/packages/image.scm:566
 msgid "Decoder of the JBIG2 image compression format"
 msgstr ""
 
-#: gnu/packages/image.scm:578
+#: gnu/packages/image.scm:568
 msgid ""
-"JBIG2 is designed for lossy or lossless encoding of 'bilevel' (1-bit\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"
@@ -8181,11 +7771,11 @@ msgid ""
 "work."
 msgstr ""
 
-#: gnu/packages/image.scm:628
+#: gnu/packages/image.scm:604
 msgid "JPEG 2000 codec"
 msgstr ""
 
-#: gnu/packages/image.scm:630
+#: gnu/packages/image.scm:606
 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"
@@ -8198,11 +7788,11 @@ msgid ""
 "error-resilience, a Java-viewer for j2k-images, ..."
 msgstr ""
 
-#: gnu/packages/image.scm:697
+#: gnu/packages/image.scm:687
 msgid "Tools and library for working with GIF images"
 msgstr "Outils et bibliothèque pour travailler avec les images GIF"
 
-#: gnu/packages/image.scm:699
+#: gnu/packages/image.scm:689
 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"
@@ -8210,19 +7800,19 @@ msgid ""
 "compose, and analyze GIF images."
 msgstr ""
 
-#: gnu/packages/image.scm:721
+#: gnu/packages/image.scm:711
 msgid "GIF decompression library"
 msgstr "Bibliothèque de décompression GIF"
 
-#: gnu/packages/image.scm:723
+#: gnu/packages/image.scm:713
 msgid "libungif is the old GIF decompression library by the GIFLIB project."
 msgstr ""
 
-#: gnu/packages/image.scm:752
+#: gnu/packages/image.scm:742
 msgid "Loading, saving, rendering and manipulating image files"
 msgstr ""
 
-#: gnu/packages/image.scm:754
+#: gnu/packages/image.scm:744
 msgid ""
 "Imlib2 is a library that does image file loading and saving as well as\n"
 "rendering, manipulation, arbitrary polygon support, etc.\n"
@@ -8235,32 +7825,32 @@ msgid ""
 "more modular, simple, and flexible."
 msgstr ""
 
-#: gnu/packages/image.scm:786
+#: gnu/packages/image.scm:776
 msgid "Wrapper library for imlib2"
 msgstr ""
 
-#: gnu/packages/image.scm:788
+#: gnu/packages/image.scm:778
 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:869
+#: gnu/packages/image.scm:859
 msgid "Library for handling popular graphics image formats"
 msgstr ""
 
-#: gnu/packages/image.scm:871
+#: gnu/packages/image.scm:861
 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:933
+#: gnu/packages/image.scm:927
 msgid "Computer vision library"
 msgstr ""
 
-#: gnu/packages/image.scm:935
+#: gnu/packages/image.scm:929
 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"
@@ -8268,22 +7858,22 @@ msgid ""
 "multi-dimensional image processing."
 msgstr ""
 
-#: gnu/packages/image.scm:968
+#: gnu/packages/image.scm:962
 msgid "C interface to the VIGRA computer vision library"
 msgstr "Interface C à la bibliothèque de vision par ordinateur VIGRA"
 
-#: gnu/packages/image.scm:970
+#: gnu/packages/image.scm:964
 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:1010
+#: gnu/packages/image.scm:1004
 msgid "Lossless and lossy image compression"
 msgstr ""
 
-#: gnu/packages/image.scm:1012
+#: gnu/packages/image.scm:1006
 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"
@@ -8295,52 +7885,52 @@ msgid ""
 "channels."
 msgstr ""
 
-#: gnu/packages/image.scm:1040
+#: gnu/packages/image.scm:1034
 msgid "Library for handling MNG files"
 msgstr "Bibliothèque de manipulation des fichiers MNG"
 
-#: gnu/packages/image.scm:1042
+#: gnu/packages/image.scm:1036
 msgid "Libmng is the MNG (Multiple-image Network Graphics) reference library."
 msgstr ""
 
-#: gnu/packages/image.scm:1070
+#: gnu/packages/image.scm:1064
 msgid "Library and command-line utility to manage image metadata"
 msgstr ""
 
-#: gnu/packages/image.scm:1072
+#: gnu/packages/image.scm:1066
 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:1112
+#: gnu/packages/image.scm:1106
 msgid "Library for manipulating many image formats"
 msgstr ""
 
-#: gnu/packages/image.scm:1113
+#: gnu/packages/image.scm:1107
 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:1133
+#: gnu/packages/image.scm:1128
 msgid "JPEG-2000 library"
 msgstr ""
 
-#: gnu/packages/image.scm:1134
+#: gnu/packages/image.scm:1129
 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:1164
+#: gnu/packages/image.scm:1160
 msgid "Scaling, colorspace conversion, and dithering library"
 msgstr ""
 
-#: gnu/packages/image.scm:1165
+#: gnu/packages/image.scm:1161
 msgid ""
 "Zimg implements the commonly required image processing basics\n"
 "of scaling, colorspace conversion, and depth conversion.  A simple API enables\n"
@@ -8348,11 +7938,11 @@ msgid ""
 "the programmer."
 msgstr ""
 
-#: gnu/packages/image.scm:1198
+#: gnu/packages/image.scm:1195
 msgid "Perceptual image comparison utility"
 msgstr ""
 
-#: gnu/packages/image.scm:1199
+#: gnu/packages/image.scm:1196
 msgid ""
 "PerceptualDiff visually compares two images to determine\n"
 "whether they look alike.  It uses a computational model of the human visual\n"
@@ -8360,33 +7950,33 @@ msgid ""
 "differences in file encoding, image quality, and other small variations."
 msgstr ""
 
-#: gnu/packages/image.scm:1239
+#: gnu/packages/image.scm:1236
 msgid "Image and audio steganography"
 msgstr ""
 
-#: gnu/packages/image.scm:1241
+#: gnu/packages/image.scm:1238
 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:1266
+#: gnu/packages/image.scm:1263
 msgid "Image library for Extempore"
 msgstr ""
 
-#: gnu/packages/image.scm:1268
+#: 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:1305
+#: gnu/packages/image.scm:1302
 msgid "Optimizer that recompresses PNG image files to a smaller size"
 msgstr ""
 
-#: gnu/packages/image.scm:1306
+#: gnu/packages/image.scm:1303
 msgid ""
 "OptiPNG is a PNG optimizer that recompresses image\n"
 "files to a smaller size, without losing any information.  This program\n"
@@ -8394,11 +7984,11 @@ msgid ""
 "PNG, and performs PNG integrity checks and corrections."
 msgstr ""
 
-#: gnu/packages/image.scm:1331
+#: gnu/packages/image.scm:1329
 msgid "SIMD-accelerated JPEG image handling library"
 msgstr ""
 
-#: gnu/packages/image.scm:1332
+#: gnu/packages/image.scm:1330
 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"
@@ -8411,11 +8001,11 @@ msgid ""
 "and decompress to 32-bit and big-endian pixel buffers (RGBX, XBGR, etc.)."
 msgstr ""
 
-#: gnu/packages/image.scm:1382
+#: gnu/packages/image.scm:1392
 msgid "Library for reading and writing files in the nifti-1 format"
 msgstr ""
 
-#: gnu/packages/image.scm:1383
+#: gnu/packages/image.scm:1393
 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"
@@ -8423,19 +8013,19 @@ msgid ""
 "(fMRI) brain images."
 msgstr ""
 
-#: gnu/packages/image.scm:1422
+#: gnu/packages/image.scm:1434
 msgid "Color picker"
 msgstr ""
 
-#: gnu/packages/image.scm:1423
+#: gnu/packages/image.scm:1435
 msgid "Gpick is an advanced color picker and palette editing tool."
 msgstr ""
 
-#: gnu/packages/image.scm:1441
+#: gnu/packages/image.scm:1453
 msgid "IPTC metadata manipulation library"
 msgstr "Bibliothèque de manipulation de métadonnées IPTC"
 
-#: gnu/packages/image.scm:1443
+#: gnu/packages/image.scm:1455
 msgid ""
 "Libiptcdata is a C library for manipulating the International Press\n"
 "Telecommunications Council (@dfn{IPTC}) metadata stored within multimedia files\n"
@@ -8444,11 +8034,11 @@ msgid ""
 "parsing, viewing, modifying, and saving this metadata."
 msgstr ""
 
-#: gnu/packages/image.scm:1479
+#: gnu/packages/image.scm:1492
 msgid "Powerful yet simple to use screenshot software"
 msgstr ""
 
-#: gnu/packages/image.scm:1480
+#: gnu/packages/image.scm:1493
 msgid ""
 "Flameshot is a screenshot program.\n"
 "Features:\n"
@@ -8462,22 +8052,22 @@ msgid ""
 "@end itemize\n"
 msgstr ""
 
-#: gnu/packages/image.scm:1506
+#: gnu/packages/image.scm:1519
 msgid "Read and write JPEG images with R"
 msgstr ""
 
-#: gnu/packages/image.scm:1507
+#: 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:1541
+#: gnu/packages/image.scm:1553
 msgid "Edit GIF images and animations"
 msgstr ""
 
-#: gnu/packages/image.scm:1542
+#: gnu/packages/image.scm:1554
 msgid ""
 "Gifsicle is a command-line GIF image manipulation tool that:\n"
 "\n"
@@ -8496,19 +8086,37 @@ msgid ""
 "identical visual appearance."
 msgstr ""
 
-#: gnu/packages/image.scm:1581
+#: gnu/packages/image.scm:1594
 msgid "Convert JPEG images to ASCII"
 msgstr ""
 
-#: gnu/packages/image.scm:1583
+#: gnu/packages/image.scm:1596
 msgid "Jp2a is a small utility that converts JPEG images to ASCII."
 msgstr ""
 
-#: gnu/packages/image-viewers.scm:93
-msgid "Fast and light imlib2-based image viewer"
+#: gnu/packages/image.scm:1620
+msgid "Create screenshots from a Wayland compositor"
+msgstr ""
+
+#: gnu/packages/image.scm:1621
+msgid "grim can create screenshots from a Wayland compositor."
+msgstr ""
+
+#: gnu/packages/image.scm:1645
+msgid "Select a region in a Wayland compositor"
+msgstr ""
+
+#: gnu/packages/image.scm:1646
+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
+msgid "Fast and light imlib2-based image viewer"
+msgstr ""
+
+#: gnu/packages/image-viewers.scm:97
 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"
@@ -8517,11 +8125,11 @@ msgid ""
 "actions."
 msgstr ""
 
-#: gnu/packages/image-viewers.scm:156
+#: gnu/packages/image-viewers.scm:155
 msgid "Lightweight GTK+ based image viewer"
 msgstr ""
 
-#: gnu/packages/image-viewers.scm:158
+#: 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"
@@ -8531,21 +8139,21 @@ msgid ""
 "collection.  Geeqie was initially based on GQview."
 msgstr ""
 
-#: gnu/packages/image-viewers.scm:183
+#: gnu/packages/image-viewers.scm:182
 msgid "Simple and fast image viewer for X"
 msgstr ""
 
-#: gnu/packages/image-viewers.scm:184
+#: 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:225
+#: gnu/packages/image-viewers.scm:224
 msgid "Simple X Image Viewer"
 msgstr ""
 
-#: gnu/packages/image-viewers.scm:227
+#: gnu/packages/image-viewers.scm:226
 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"
@@ -8554,11 +8162,11 @@ msgid ""
 "it and customize it for your needs."
 msgstr ""
 
-#: gnu/packages/image-viewers.scm:267
+#: gnu/packages/image-viewers.scm:268
 msgid "Simple, fast and elegant image viewer"
 msgstr ""
 
-#: gnu/packages/image-viewers.scm:268
+#: gnu/packages/image-viewers.scm:269
 msgid ""
 "Viewnior is an image viewer program.  Created to be simple,\n"
 "fast and elegant.  Its minimalistic interface provides more screenspace for\n"
@@ -8576,21 +8184,21 @@ msgid ""
 "@end enumerate\n"
 msgstr ""
 
-#: gnu/packages/image-viewers.scm:336
+#: gnu/packages/image-viewers.scm:324
 msgid "Render images in the terminal"
 msgstr ""
 
-#: gnu/packages/image-viewers.scm:338
+#: gnu/packages/image-viewers.scm:326
 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:389
+#: gnu/packages/image-viewers.scm:377
 msgid "High dynamic range (HDR) imaging application"
 msgstr ""
 
-#: gnu/packages/image-viewers.scm:391
+#: gnu/packages/image-viewers.scm:379
 msgid ""
 "Luminance HDR (formerly QtPFSGui) is a graphical user interface\n"
 "application that aims to provide a workflow for high dynamic range (HDR)\n"
@@ -8606,11 +8214,11 @@ msgid ""
 "@end itemize\n"
 msgstr ""
 
-#: gnu/packages/image-viewers.scm:439
+#: gnu/packages/image-viewers.scm:427
 msgid "Image viewer for comics"
 msgstr ""
 
-#: gnu/packages/image-viewers.scm:440
+#: gnu/packages/image-viewers.scm:428
 msgid ""
 "MComix is a customizable image viewer that specializes as\n"
 "a comic and manga reader.  It supports a variety of container formats\n"
@@ -8630,21 +8238,21 @@ 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:64
+#: gnu/packages/jemalloc.scm:63
 msgid "General-purpose scalable concurrent malloc implementation"
 msgstr ""
 
-#: gnu/packages/jemalloc.scm:66
+#: gnu/packages/jemalloc.scm:65
 msgid ""
 "This library providing a malloc(3) implementation that emphasizes\n"
 "fragmentation avoidance and scalable concurrency support."
 msgstr ""
 
-#: gnu/packages/key-mon.scm:50
+#: gnu/packages/key-mon.scm:51
 msgid "Show keyboard and mouse status"
 msgstr ""
 
-#: gnu/packages/key-mon.scm:52
+#: 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."
@@ -8671,11 +8279,11 @@ msgstr ""
 msgid "Clone of the Motif toolkit for the X window system."
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:100
+#: gnu/packages/libreoffice.scm:103
 msgid "General purpose formula parser and interpreter"
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:101
+#: gnu/packages/libreoffice.scm:104
 msgid ""
 "Ixion is a library for calculating the results of formula\n"
 "expressions stored in multiple named targets, or \"cells\".  The cells can\n"
@@ -8683,11 +8291,11 @@ msgid ""
 "their dependencies automatically upon calculation."
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:128
+#: gnu/packages/libreoffice.scm:131
 msgid "File import filter library for spreadsheet documents"
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:129
+#: gnu/packages/libreoffice.scm:132
 msgid ""
 "Orcus is a library that provides a collection of standalone\n"
 "file processing filters.  It is currently focused on providing filters for\n"
@@ -8697,33 +8305,33 @@ msgid ""
 "CSV, CSS and XML."
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:163
+#: gnu/packages/libreoffice.scm:166
 msgid "Document importer for office suites"
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:164
+#: gnu/packages/libreoffice.scm:167
 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:189
+#: gnu/packages/libreoffice.scm:192
 msgid "Library for importing WordPerfect documents"
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:190
+#: gnu/packages/libreoffice.scm:193
 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:223
+#: gnu/packages/libreoffice.scm:226
 msgid "Library for import of reflowable e-book formats"
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:224
+#: gnu/packages/libreoffice.scm:227
 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"
@@ -8733,22 +8341,22 @@ msgid ""
 "ZVR (simple compressed text format)."
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:254
+#: gnu/packages/libreoffice.scm:257
 msgid "EPUB generator library for librevenge"
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:255
+#: gnu/packages/libreoffice.scm:258
 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:281
+#: gnu/packages/libreoffice.scm:284
 msgid "Library and tools for the WordPerfect Graphics format"
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:282
+#: gnu/packages/libreoffice.scm:285
 msgid ""
 "The libwpg project provides a library and tools for\n"
 "working with graphics in the WPG (WordPerfect Graphics) format."
@@ -8775,31 +8383,31 @@ msgid ""
 "AbiWord documents."
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:387
+#: gnu/packages/libreoffice.scm:384
 msgid "Library for parsing the CorelDRAW format"
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:388
+#: gnu/packages/libreoffice.scm:385
 msgid ""
 "Libcdr is a library that parses the file format of\n"
 "CorelDRAW documents of all versions."
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:420
+#: gnu/packages/libreoffice.scm:418
 msgid "Library for parsing the Apple Keynote format"
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:421
+#: gnu/packages/libreoffice.scm:419
 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:445
+#: gnu/packages/libreoffice.scm:443
 msgid "Library to access tags for identifying languages"
 msgstr "Bibliothèque pour accéder aux étiquettes qui identifient les langues"
 
-#: gnu/packages/libreoffice.scm:446
+#: gnu/packages/libreoffice.scm:444
 msgid ""
 "Liblangtag implements an interface to work with tags\n"
 "for identifying languages as described in RFC 5646.  It supports the\n"
@@ -8808,73 +8416,73 @@ msgid ""
 "standard 21.0.2."
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:466
+#: gnu/packages/libreoffice.scm:464
 msgid "Text Categorization library"
 msgstr "Bibliothèque de catégorisation de textes"
 
-#: gnu/packages/libreoffice.scm:467
+#: gnu/packages/libreoffice.scm:465
 msgid ""
 "Libexttextcat is an N-Gram-Based Text Categorization\n"
 "library primarily intended for language guessing."
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:497
+#: gnu/packages/libreoffice.scm:495
 msgid "Library for parsing the FreeHand format"
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:498
+#: gnu/packages/libreoffice.scm:496
 msgid ""
 "Libfreehand is a library that parses the file format of\n"
 "Aldus/Macromedia/Adobe FreeHand documents."
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:524
+#: gnu/packages/libreoffice.scm:522
 msgid "Library for parsing the Microsoft Publisher format"
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:525
+#: gnu/packages/libreoffice.scm:523
 msgid ""
 "Libmspub is a library that parses the file format of\n"
 "Microsoft Publisher documents of all versions."
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:551
+#: gnu/packages/libreoffice.scm:543
 msgid "Language-neutral @code{NUMBERTEXT} and @code{MONEYTEXT} functions"
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:553
+#: gnu/packages/libreoffice.scm:545
 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:579
+#: gnu/packages/libreoffice.scm:571
 msgid "Library for parsing the PageMaker format"
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:580
+#: gnu/packages/libreoffice.scm:572
 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:610
+#: gnu/packages/libreoffice.scm:602
 msgid "Library for parsing the Microsoft Visio format"
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:611
+#: gnu/packages/libreoffice.scm:603
 msgid ""
 "Libvisio is a library that parses the file format of\n"
 "Microsoft Visio documents of all versions."
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:639
+#: gnu/packages/libreoffice.scm:631
 msgid "ODF (Open Document Format) library"
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:640
+#: gnu/packages/libreoffice.scm:632
 msgid ""
 "Libodfgen is a library for generating documents in the\n"
 "Open Document Format (ODF).  It provides generator implementations for all\n"
@@ -8882,49 +8490,49 @@ msgid ""
 "text documents, vector drawings, presentations and spreadsheets."
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:667
+#: gnu/packages/libreoffice.scm:659
 msgid "Import library for some old Macintosh text documents"
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:668
+#: gnu/packages/libreoffice.scm:660
 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:691
+#: gnu/packages/libreoffice.scm:683
 msgid "Provides LibreOffice support for old StarOffice documents"
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:692
+#: gnu/packages/libreoffice.scm:684
 msgid ""
 "@code{libstaroffice} is an import filter for the document formats\n"
 "from the old StarOffice (.sdc, .sdw, ...)."
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:717
+#: gnu/packages/libreoffice.scm:709
 msgid "Import library for Microsoft Works text documents"
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:718
+#: gnu/packages/libreoffice.scm:710
 msgid ""
 "Libwps is a library for importing files in the Microsoft\n"
 "Works word processor file format."
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:748
+#: gnu/packages/libreoffice.scm:740
 msgid "Parses file format of Zoner Callisto/Draw documents"
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:749
+#: gnu/packages/libreoffice.scm:741
 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:778
+#: gnu/packages/libreoffice.scm:772
 msgid ""
 "Hunspell is a spell checker and morphological analyzer\n"
 "library and program designed for languages with rich morphology and complex\n"
@@ -8932,59 +8540,59 @@ msgid ""
 msgstr ""
 
 #. TRANSLATORS: In French, this is "Français classique".
-#: gnu/packages/libreoffice.scm:841
+#: gnu/packages/libreoffice.scm:835
 msgid "Hunspell dictionary for ``classic'' French (recommended)"
 msgstr ""
 
 #. TRANSLATORS: In French, this is "Français moderne".
-#: gnu/packages/libreoffice.scm:846
+#: gnu/packages/libreoffice.scm:840
 msgid "Hunspell dictionary for ``modern'' French"
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:850
+#: gnu/packages/libreoffice.scm:844
 msgid "Hunspell dictionary for the post @dfn{1990 réforme} French"
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:854
+#: gnu/packages/libreoffice.scm:848
 msgid "Hunspell dictionary for all variants of French"
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:872
+#: gnu/packages/libreoffice.scm:866
 msgid "Hyphenation library"
 msgstr "Bibliothèque de césures"
 
-#: gnu/packages/libreoffice.scm:873
+#: gnu/packages/libreoffice.scm:867
 msgid ""
 "Hyphen is a hyphenation library using TeX hyphenation\n"
 "patterns, which are pre-processed by a perl script."
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:896
+#: gnu/packages/libreoffice.scm:890
 msgid "Thesaurus"
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:897
+#: gnu/packages/libreoffice.scm:891
 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:925
+#: gnu/packages/libreoffice.scm:919
 msgid "Library and tools for the QuarkXPress file format"
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:926
+#: gnu/packages/libreoffice.scm:920
 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:1126
+#: gnu/packages/libreoffice.scm:1162
 msgid "Office suite"
 msgstr ""
 
-#: gnu/packages/libreoffice.scm:1127
+#: gnu/packages/libreoffice.scm:1163
 msgid ""
 "LibreOffice is a comprehensive office suite.  It contains\n"
 "a number of components: Writer, a word processor; Calc, a spreadsheet\n"
@@ -8993,19 +8601,19 @@ msgid ""
 "Math for editing mathematics."
 msgstr ""
 
-#: gnu/packages/linux.scm:220
+#: gnu/packages/linux.scm:224
 msgid "GNU Linux-Libre kernel headers"
 msgstr "Fichiers d'en-tête pour le noyau GNU Linux-Libre"
 
-#: gnu/packages/linux.scm:221
+#: gnu/packages/linux.scm:225
 msgid "Headers of the Linux-Libre kernel."
 msgstr "Fichiers d'en-tête pour le noyau Linux-Libre."
 
-#: gnu/packages/linux.scm:396
+#: gnu/packages/linux.scm:420
 msgid "100% free redistribution of a cleaned Linux kernel"
 msgstr "Redistribution 100% libre d'un noyau Linux propre"
 
-#: gnu/packages/linux.scm:398
+#: gnu/packages/linux.scm:422
 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."
@@ -9013,11 +8621,21 @@ 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:529
+#: gnu/packages/linux.scm:457
+msgid "Kernel module that emulates SCSI devices"
+msgstr ""
+
+#: gnu/packages/linux.scm:458
+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
 msgid "Pluggable authentication modules for Linux"
 msgstr "Modules d'authentification pour Linux"
 
-#: gnu/packages/linux.scm:531
+#: gnu/packages/linux.scm:605
 msgid ""
 "A *Free* project to implement OSF's RFC 86.0.\n"
 "Pluggable authentication modules are small shared object files that can\n"
@@ -9030,11 +8648,11 @@ msgstr ""
 "d'un utilisateur au moment de la connexion. Ses principales fonctionnalités sont\n"
 "la reconfiguration locale et dynamique."
 
-#: gnu/packages/linux.scm:573
+#: gnu/packages/linux.scm:647
 msgid "Small utilities that use the proc file system"
 msgstr "Petits utilitaires utilisant le système de fichier proc"
 
-#: gnu/packages/linux.scm:575
+#: gnu/packages/linux.scm:649
 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"
@@ -9045,33 +8663,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:660
+#: gnu/packages/linux.scm:741
 msgid "Collection of utilities for the Linux kernel"
 msgstr "Collection d'utilitaires pour le noyau Linux"
 
-#: gnu/packages/linux.scm:661
+#: gnu/packages/linux.scm:742
 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:685
+#: gnu/packages/linux.scm:766
 msgid "PERPETUAL DATE CONVERTER FROM GREGORIAN TO POEE CALENDAR"
 msgstr ""
 
-#: gnu/packages/linux.scm:687
+#: gnu/packages/linux.scm:768
 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:723
+#: gnu/packages/linux.scm:804
 msgid "Utilities that give information about processes"
 msgstr "Utilitaires fournissant des informations sur les processus"
 
-#: gnu/packages/linux.scm:725
+#: gnu/packages/linux.scm:806
 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"
@@ -9083,27 +8701,27 @@ msgstr ""
 "Le paquet inclut les programmes ps, top, vmstat, w, kill, free,\n"
 "slabtop et skill."
 
-#: gnu/packages/linux.scm:751
+#: gnu/packages/linux.scm:832
 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:753
+#: gnu/packages/linux.scm:834
 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:829
+#: gnu/packages/linux.scm:910
 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:831
+#: gnu/packages/linux.scm:912
 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:873
+#: gnu/packages/linux.scm:954
 msgid "Statically-linked e2fsck command from e2fsprogs"
 msgstr "Commandes de e2fsck liées statiquement provenant de e2fsprogs"
 
-#: gnu/packages/linux.scm:874
+#: gnu/packages/linux.scm:955
 msgid ""
 "This package provides statically-linked e2fsck command taken\n"
 "from the e2fsprogs package.  It is meant to be used in initrds."
@@ -9111,21 +8729,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:895
+#: gnu/packages/linux.scm:976
 msgid "Recover deleted files from ext2/3/4 partitions"
 msgstr ""
 
-#: gnu/packages/linux.scm:897
+#: gnu/packages/linux.scm:978
 msgid ""
 "Extundelete is a set of tools that can recover deleted files from an\n"
 "ext3 or ext4 partition."
 msgstr ""
 
-#: gnu/packages/linux.scm:928
+#: gnu/packages/linux.scm:1009
 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:930
+#: gnu/packages/linux.scm:1011
 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"
@@ -9133,11 +8751,11 @@ msgid ""
 "Zerofree requires the file system to be unmounted or mounted read-only."
 msgstr ""
 
-#: gnu/packages/linux.scm:962
+#: gnu/packages/linux.scm:1043
 msgid "System call tracer for Linux"
 msgstr "Traceur d'appel système pour Linux"
 
-#: gnu/packages/linux.scm:964
+#: gnu/packages/linux.scm:1045
 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."
@@ -9145,22 +8763,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:985
+#: gnu/packages/linux.scm:1066
 msgid "Library call tracer for Linux"
 msgstr "Traceur d'appel système pour Linux"
 
-#: gnu/packages/linux.scm:987
+#: gnu/packages/linux.scm:1068
 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:1006
+#: gnu/packages/linux.scm:1087
 msgid "The Advanced Linux Sound Architecture libraries"
 msgstr "Bibliothèques ALSA (Advanced Linux Sound Architecture)"
 
-#: gnu/packages/linux.scm:1008 gnu/packages/linux.scm:1052
+#: gnu/packages/linux.scm:1089 gnu/packages/linux.scm:1133
 msgid ""
 "The Advanced Linux Sound Architecture (ALSA) provides audio and\n"
 "MIDI functionality to the Linux-based operating system."
@@ -9168,15 +8786,15 @@ msgstr ""
 "ALSA fournit des fonctionnalités audio et MIDI pour les sytèmes\n"
 "basés sur Linux."
 
-#: gnu/packages/linux.scm:1050
+#: gnu/packages/linux.scm:1131
 msgid "Utilities for the Advanced Linux Sound Architecture (ALSA)"
 msgstr "Utilitaires pour ALSA (Advanced Linux Sound Architecture)"
 
-#: gnu/packages/linux.scm:1119
+#: gnu/packages/linux.scm:1195
 msgid "Plugins for the Advanced Linux Sound Architecture (ALSA)"
 msgstr "Greffons pour ALSA (Advanced Linux Sound Architecture)"
 
-#: gnu/packages/linux.scm:1121
+#: gnu/packages/linux.scm:1197
 msgid ""
 "The Advanced Linux Sound Architecture (ALSA) provides audio and\n"
 "MIDI functionality to the Linux-based operating system.  This package enhances ALSA\n"
@@ -9185,11 +8803,11 @@ msgid ""
 "external rate conversion."
 msgstr ""
 
-#: gnu/packages/linux.scm:1155
+#: gnu/packages/linux.scm:1231
 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:1157
+#: gnu/packages/linux.scm:1233
 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"
@@ -9209,11 +8827,11 @@ msgstr ""
 "\n"
 "Les deux commandes sont destinées aux administrateurs système."
 
-#: gnu/packages/linux.scm:1213
+#: gnu/packages/linux.scm:1289
 msgid "Ethernet bridge frame table administration"
 msgstr ""
 
-#: gnu/packages/linux.scm:1216
+#: gnu/packages/linux.scm:1292
 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"
@@ -9221,11 +8839,11 @@ msgid ""
 "that the Ethernet protocol is much simpler than the IP protocol."
 msgstr ""
 
-#: gnu/packages/linux.scm:1264
+#: gnu/packages/linux.scm:1345
 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:1266
+#: gnu/packages/linux.scm:1347
 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"
@@ -9237,11 +8855,11 @@ msgid ""
 "inadequately in modern network environments, and both should be deprecated."
 msgstr ""
 
-#: gnu/packages/linux.scm:1343
+#: gnu/packages/linux.scm:1424
 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:1345
+#: gnu/packages/linux.scm:1426
 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"
@@ -9255,21 +8873,21 @@ msgstr ""
 "particulières (pliconfig, slattach) et à des aspects avancés de la configuration\n"
 "réseau (iptunnel, ipmaddr)."
 
-#: gnu/packages/linux.scm:1383
+#: gnu/packages/linux.scm:1464
 msgid "Library for working with POSIX capabilities"
 msgstr "Bibliothèque pour travailler avec les possibilités de POSIX"
 
-#: gnu/packages/linux.scm:1385
+#: gnu/packages/linux.scm:1466
 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:1428
+#: gnu/packages/linux.scm:1509
 msgid "Manipulate Ethernet bridges"
 msgstr "Manipulation des ponts Ethernet"
 
-#: gnu/packages/linux.scm:1430
+#: gnu/packages/linux.scm:1511
 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"
@@ -9284,11 +8902,11 @@ msgstr ""
 "niveau 2, tous les protocoles peuvent transiter de manière transparente sur un\n"
 "un pont."
 
-#: gnu/packages/linux.scm:1498
+#: gnu/packages/linux.scm:1577
 msgid "NetLink protocol library suite"
 msgstr "Bibliothèqye pour le protocole NetLink"
 
-#: gnu/packages/linux.scm:1500
+#: gnu/packages/linux.scm:1579
 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"
@@ -9302,21 +8920,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:1530
+#: gnu/packages/linux.scm:1609
 msgid "Tool for configuring wireless devices"
 msgstr "Outils de configuration d'extensions sans fil"
 
-#: gnu/packages/linux.scm:1532
+#: gnu/packages/linux.scm:1611
 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:1578
+#: gnu/packages/linux.scm:1655
 msgid "Analyze power consumption on Intel-based laptops"
 msgstr "Analyse de la consommation des portables basés sur Intel"
 
-#: gnu/packages/linux.scm:1580
+#: gnu/packages/linux.scm:1657
 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"
@@ -9331,11 +8949,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:1602
+#: gnu/packages/linux.scm:1679
 msgid "Audio mixer for X and the console"
 msgstr "Table de mixage audio basée sur X et la console"
 
-#: gnu/packages/linux.scm:1604
+#: gnu/packages/linux.scm:1681
 msgid ""
 "Aumix adjusts an audio mixer from X, the console, a terminal,\n"
 "the command line or a script."
@@ -9343,11 +8961,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:1628
+#: gnu/packages/linux.scm:1705
 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:1630
+#: gnu/packages/linux.scm:1707
 msgid ""
 "Iotop is a Python program with a top like user interface to show the\n"
 "processes currently causing I/O."
@@ -9355,11 +8973,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:1684
+#: gnu/packages/linux.scm:1761
 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:1686
+#: gnu/packages/linux.scm:1763
 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"
@@ -9376,11 +8994,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:1717
+#: gnu/packages/linux.scm:1794
 msgid "User-space union file system"
 msgstr ""
 
-#: gnu/packages/linux.scm:1719
+#: gnu/packages/linux.scm:1796
 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"
@@ -9388,15 +9006,15 @@ msgid ""
 "UnionFS-FUSE additionally supports copy-on-write."
 msgstr ""
 
-#: gnu/packages/linux.scm:1747
+#: gnu/packages/linux.scm:1824
 msgid "User-space union file system (statically linked)"
 msgstr ""
 
-#: gnu/packages/linux.scm:1797
+#: gnu/packages/linux.scm:1874
 msgid "Mount remote file systems over SSH"
 msgstr "Montage de systèmes de fichier distants avec SSH"
 
-#: gnu/packages/linux.scm:1799
+#: gnu/packages/linux.scm:1876
 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"
@@ -9409,11 +9027,11 @@ msgstr ""
 "aussi facile de monter le système de fichiers que de se connecter avec un client\n"
 "SSH."
 
-#: gnu/packages/linux.scm:1822
+#: gnu/packages/linux.scm:1903
 msgid "Tool for mounting archive files with FUSE"
 msgstr ""
 
-#: gnu/packages/linux.scm:1823
+#: gnu/packages/linux.scm:1904
 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"
@@ -9422,11 +9040,11 @@ msgid ""
 "compressed, transparent to other programs, without decompressing them."
 msgstr ""
 
-#: gnu/packages/linux.scm:1852
+#: gnu/packages/linux.scm:1933
 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:1854
+#: gnu/packages/linux.scm:1935
 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"
@@ -9443,32 +9061,36 @@ msgstr ""
 "une application sur des noeuds CPU et mémoire spécifiques au moyen de politiques\n"
 "fournies au système d'exploitation avant le lancement du programme."
 
-#: gnu/packages/linux.scm:1890
+#: gnu/packages/linux.scm:1971
 msgid "Neo2 console layout"
 msgstr ""
 
-#: gnu/packages/linux.scm:1892
+#: gnu/packages/linux.scm:1973
 msgid ""
 "Kbd-neo provides the Neo2 keyboard layout for use with\n"
 "@command{loadkeys(1)} from @code{kbd(4)}."
 msgstr ""
 
-#: gnu/packages/linux.scm:1958
+#: gnu/packages/linux.scm:2039
 msgid "Linux keyboard utilities and keyboard maps"
 msgstr ""
 
-#: gnu/packages/linux.scm:1960
+#: gnu/packages/linux.scm:2041
 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:1984
+#: gnu/packages/linux.scm:2077
+msgid "Statically-linked @command{loadkeys} program"
+msgstr "Programme @command{loadkeys} lié statiquement"
+
+#: gnu/packages/linux.scm:2102
 msgid "Monitor file accesses"
 msgstr "Surveillance des accès fichier"
 
-#: gnu/packages/linux.scm:1986
+#: gnu/packages/linux.scm:2104
 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."
@@ -9477,11 +9099,11 @@ msgstr ""
 "permettant d'utiliser le mécanisme inotify de Linux qui autorise la surveillance\n"
 "des accès fichier."
 
-#: gnu/packages/linux.scm:2025
+#: gnu/packages/linux.scm:2143
 msgid "Kernel module tools"
 msgstr "Outils de module noyau"
 
-#: gnu/packages/linux.scm:2026
+#: gnu/packages/linux.scm:2144
 msgid ""
 "Kmod is a set of tools to handle common tasks with Linux\n"
 "kernel modules like insert, remove, list, check properties, resolve\n"
@@ -9499,11 +9121,11 @@ 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:2089
+#: gnu/packages/linux.scm:2213
 msgid "Userspace device management"
 msgstr "Gestion de périphériques utilisateurs"
 
-#: gnu/packages/linux.scm:2090
+#: gnu/packages/linux.scm:2214
 msgid ""
 "Udev is a daemon which dynamically creates and removes\n"
 "device nodes from /dev/, handles hotplug events and loads drivers at boot\n"
@@ -9513,61 +9135,61 @@ 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:2169
+#: gnu/packages/linux.scm:2293
 msgid "Logical volume management for Linux"
 msgstr "Gestion de volumes logiques pour Linux"
 
-#: gnu/packages/linux.scm:2171
+#: gnu/packages/linux.scm:2295
 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:2193
+#: gnu/packages/linux.scm:2317
 msgid "Logical volume management for Linux (statically linked)"
 msgstr "Gestion de volumes logiques pour Linux (lié statiquement)"
 
-#: gnu/packages/linux.scm:2223
+#: gnu/packages/linux.scm:2347
 msgid "Tools for manipulating Linux Wireless Extensions"
 msgstr "Outils de manipulation d'extensions sans fil pour Linux"
 
-#: gnu/packages/linux.scm:2224
+#: gnu/packages/linux.scm:2348
 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:2301
+#: gnu/packages/linux.scm:2425
 msgid "Central regulatory domain agent (CRDA) for WiFi"
 msgstr ""
 
-#: gnu/packages/linux.scm:2303
+#: gnu/packages/linux.scm:2427
 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:2356
+#: gnu/packages/linux.scm:2480
 msgid "Wireless regulatory database"
 msgstr "Base de données sans fil réglementaire"
 
-#: gnu/packages/linux.scm:2358
+#: gnu/packages/linux.scm:2482
 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:2435
+#: gnu/packages/linux.scm:2559
 msgid "Utilities to read temperature/voltage/fan sensors"
 msgstr "Utilitaires pour la lecture de capteurs de tempéture/voltage/ventilateur"
 
-#: gnu/packages/linux.scm:2437
+#: gnu/packages/linux.scm:2561
 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"
@@ -9578,22 +9200,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:2455
+#: gnu/packages/linux.scm:2579
 msgid "Manipulate Intel microcode bundles"
 msgstr "Manipulation des lots de microcodes Intel"
 
-#: gnu/packages/linux.scm:2457
+#: gnu/packages/linux.scm:2581
 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:2486
+#: gnu/packages/linux.scm:2610
 msgid "I2C tools for Linux"
 msgstr ""
 
-#: gnu/packages/linux.scm:2488
+#: gnu/packages/linux.scm:2612
 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"
@@ -9601,11 +9223,11 @@ msgid ""
 "SMBus access."
 msgstr ""
 
-#: gnu/packages/linux.scm:2525
+#: gnu/packages/linux.scm:2649
 msgid "Hardware health information viewer"
 msgstr "Utiltaire de monitoring hardware"
 
-#: gnu/packages/linux.scm:2527
+#: gnu/packages/linux.scm:2651
 msgid ""
 "Xsensors reads data from the libsensors library regarding hardware\n"
 "health such as temperature, voltage and fan speed and displays the information\n"
@@ -9615,24 +9237,24 @@ msgstr ""
 "la vitesse des ventilateurs depuis la bibliothèque libsensors et affiche les informations\n"
 "numériquement."
 
-#: gnu/packages/linux.scm:2579
+#: gnu/packages/linux.scm:2701
 msgid "Linux profiling with performance counters"
 msgstr ""
 
-#: gnu/packages/linux.scm:2581
+#: gnu/packages/linux.scm:2703
 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:2604
+#: gnu/packages/linux.scm:2726
 msgid "Simple tool for creating Linux namespace containers"
 msgstr ""
 
-#: gnu/packages/linux.scm:2605
+#: gnu/packages/linux.scm:2727
 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"
@@ -9641,11 +9263,11 @@ msgid ""
 "thanks to the use of namespaces."
 msgstr ""
 
-#: gnu/packages/linux.scm:2651
+#: gnu/packages/linux.scm:2782
 msgid "Container platform"
 msgstr ""
 
-#: gnu/packages/linux.scm:2652
+#: gnu/packages/linux.scm:2783
 msgid ""
 "Singularity is a container platform supporting a number of\n"
 "container image formats.  It can build SquashFS container images or import\n"
@@ -9653,11 +9275,11 @@ msgid ""
 "isolation or root privileges."
 msgstr ""
 
-#: gnu/packages/linux.scm:2680
+#: gnu/packages/linux.scm:2811
 msgid "View and tune ATA disk drive parameters"
 msgstr ""
 
-#: gnu/packages/linux.scm:2682
+#: gnu/packages/linux.scm:2813
 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"
@@ -9671,22 +9293,22 @@ msgid ""
 "Translation (@dfn{SAT}) are also supported."
 msgstr ""
 
-#: gnu/packages/linux.scm:2713
+#: gnu/packages/linux.scm:2844
 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:2715
+#: gnu/packages/linux.scm:2846
 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:2736
+#: gnu/packages/linux.scm:2867
 msgid "Display information on ACPI devices"
 msgstr ""
 
-#: gnu/packages/linux.scm:2737
+#: gnu/packages/linux.scm:2868
 msgid ""
 "@code{acpi} attempts to replicate the functionality of the\n"
 "\"old\" @code{apm} command on ACPI systems, including battery and thermal\n"
@@ -9694,11 +9316,11 @@ msgid ""
 "about ACPI devices."
 msgstr ""
 
-#: gnu/packages/linux.scm:2756
+#: gnu/packages/linux.scm:2887
 msgid "Daemon for delivering ACPI events to user-space programs"
 msgstr ""
 
-#: gnu/packages/linux.scm:2758
+#: gnu/packages/linux.scm:2889
 msgid ""
 "acpid is designed to notify user-space programs of Advanced\n"
 "Configuration and Power Interface (ACPI) events.  acpid should be started\n"
@@ -9707,37 +9329,37 @@ msgid ""
 "specified in /etc/acpi/events and execute the rules that match the event."
 msgstr ""
 
-#: gnu/packages/linux.scm:2780
+#: gnu/packages/linux.scm:2911
 msgid "System utilities based on Linux sysfs"
 msgstr ""
 
-#: gnu/packages/linux.scm:2782
+#: gnu/packages/linux.scm:2913
 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:2812
+#: gnu/packages/linux.scm:2943
 msgid "System utilities based on Linux sysfs (version 1.x)"
 msgstr ""
 
-#: gnu/packages/linux.scm:2835
+#: gnu/packages/linux.scm:2966
 msgid "Utilities to get and set CPU frequency on Linux"
 msgstr ""
 
-#: gnu/packages/linux.scm:2837
+#: gnu/packages/linux.scm:2968
 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:2856
+#: gnu/packages/linux.scm:2987
 msgid "Interface library for the Linux IEEE1394 drivers"
 msgstr ""
 
-#: gnu/packages/linux.scm:2858
+#: gnu/packages/linux.scm:2989
 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"
@@ -9746,46 +9368,46 @@ msgid ""
 "protocol in question."
 msgstr ""
 
-#: gnu/packages/linux.scm:2882
+#: gnu/packages/linux.scm:3013
 msgid "AV/C protocol library for IEEE 1394"
 msgstr ""
 
-#: gnu/packages/linux.scm:2884
+#: gnu/packages/linux.scm:3015
 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:2906
+#: gnu/packages/linux.scm:3037
 msgid "Isochronous streaming media library for IEEE 1394"
 msgstr ""
 
-#: gnu/packages/linux.scm:2908
+#: gnu/packages/linux.scm:3039
 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:2957
+#: gnu/packages/linux.scm:3088
 msgid "Tool for managing Linux Software RAID arrays"
 msgstr ""
 
-#: gnu/packages/linux.scm:2959
+#: gnu/packages/linux.scm:3090
 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:2991
+#: gnu/packages/linux.scm:3122
 msgid "Statically-linked 'mdadm' command for use in an initrd"
 msgstr "Commandes mdadm liées statiquement à utiliser dans un initrd"
 
-#: gnu/packages/linux.scm:3056
+#: gnu/packages/linux.scm:3187
 msgid "Access block devices through multiple paths"
 msgstr ""
 
-#: gnu/packages/linux.scm:3058
+#: gnu/packages/linux.scm:3189
 msgid ""
 "This package provides the following binaries to drive the\n"
 "Linux Device Mapper multipathing driver:\n"
@@ -9798,74 +9420,85 @@ msgid ""
 "@end enumerate"
 msgstr ""
 
-#: gnu/packages/linux.scm:3090
+#: gnu/packages/linux.scm:3221
 msgid "Linux-native asynchronous I/O access library"
 msgstr ""
 
-#: gnu/packages/linux.scm:3092
+#: gnu/packages/linux.scm:3223
 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:3114
+#: gnu/packages/linux.scm:3245
 msgid "Bluetooth subband audio codec"
 msgstr ""
 
-#: gnu/packages/linux.scm:3116
+#: gnu/packages/linux.scm:3247
 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:3182
+#: gnu/packages/linux.scm:3313
 msgid "Linux Bluetooth protocol stack"
 msgstr ""
 
-#: gnu/packages/linux.scm:3184
+#: gnu/packages/linux.scm:3315
 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:3206
+#: gnu/packages/linux.scm:3337
 msgid "Mount exFAT file systems"
 msgstr "Montage de systèmes de fichier exFAT"
 
-#: gnu/packages/linux.scm:3208
+#: gnu/packages/linux.scm:3339
 msgid ""
 "This package provides a FUSE-based file system that provides read and\n"
 "write access to exFAT devices."
 msgstr ""
 
-#: gnu/packages/linux.scm:3250
+#: gnu/packages/linux.scm:3362
+msgid "Mount ISO file system images"
+msgstr "Montage de systèmes de fichier ISO"
+
+#: gnu/packages/linux.scm:3364
+msgid ""
+"FuseISO is a FUSE module to mount ISO filesystem 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
 msgid "Mouse support for the Linux console"
 msgstr ""
 
-#: gnu/packages/linux.scm:3252
+#: gnu/packages/linux.scm:3409
 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:3315
+#: gnu/packages/linux.scm:3473
 msgid "Create and manage btrfs copy-on-write file systems"
 msgstr ""
 
-#: gnu/packages/linux.scm:3316
+#: gnu/packages/linux.scm:3474
 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:3349
+#: gnu/packages/linux.scm:3507
 msgid "Statically-linked btrfs command from btrfs-progs"
 msgstr "Commandes btrfs de btrfs-progs liées statiquement"
 
-#: gnu/packages/linux.scm:3350
+#: gnu/packages/linux.scm:3508
 msgid ""
 "This package provides the statically-linked @command{btrfs}\n"
 "from the btrfs-progs package.  It is meant to be used in initrds."
@@ -9873,22 +9506,22 @@ 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:3387
+#: gnu/packages/linux.scm:3545
 msgid "Userland tools for f2fs"
 msgstr ""
 
-#: gnu/packages/linux.scm:3389
+#: gnu/packages/linux.scm:3547
 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:3437
+#: gnu/packages/linux.scm:3595
 msgid "Free-fall protection for spinning laptop hard drives"
 msgstr ""
 
-#: gnu/packages/linux.scm:3439
+#: gnu/packages/linux.scm:3597
 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"
@@ -9898,11 +9531,11 @@ msgid ""
 "feature, and a laptop with an accelerometer.  It has no effect on SSDs."
 msgstr ""
 
-#: gnu/packages/linux.scm:3494
+#: gnu/packages/linux.scm:3654
 msgid "Simple fan control program"
 msgstr ""
 
-#: gnu/packages/linux.scm:3496
+#: gnu/packages/linux.scm:3656
 msgid ""
 "Thinkfan is a simple fan control program.  It reads temperatures,\n"
 "checks them against configured limits and switches to appropriate (also\n"
@@ -9911,22 +9544,22 @@ msgid ""
 "from userspace."
 msgstr ""
 
-#: gnu/packages/linux.scm:3544
+#: gnu/packages/linux.scm:3706
 msgid "Read-write access to NTFS file systems"
 msgstr ""
 
-#: gnu/packages/linux.scm:3546
+#: gnu/packages/linux.scm:3708
 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:3588
+#: gnu/packages/linux.scm:3750
 msgid "Utilities and libraries for working with RDMA devices"
 msgstr ""
 
-#: gnu/packages/linux.scm:3590
+#: gnu/packages/linux.scm:3752
 msgid ""
 "This package provides userspace components for the InfiniBand\n"
 "subsystem of the Linux kernel.  Specifically it contains userspace\n"
@@ -9946,11 +9579,11 @@ msgid ""
 "@end enumerate"
 msgstr ""
 
-#: gnu/packages/linux.scm:3643
+#: gnu/packages/linux.scm:3805
 msgid "Open Fabrics Enterprise Distribution (OFED) Performance Tests"
 msgstr ""
 
-#: gnu/packages/linux.scm:3644
+#: gnu/packages/linux.scm:3806
 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"
@@ -9966,32 +9599,32 @@ msgid ""
 "@end enumerate"
 msgstr ""
 
-#: gnu/packages/linux.scm:3681
+#: gnu/packages/linux.scm:3844
 msgid "Random number generator daemon"
 msgstr ""
 
-#: gnu/packages/linux.scm:3683
+#: gnu/packages/linux.scm:3846
 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:3720
+#: gnu/packages/linux.scm:3885
 msgid "CPU frequency and voltage scaling tools for Linux"
 msgstr ""
 
-#: gnu/packages/linux.scm:3722
+#: gnu/packages/linux.scm:3887
 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:3742
+#: gnu/packages/linux.scm:3907
 msgid "Entropy source for the Linux random number generator"
 msgstr ""
 
-#: gnu/packages/linux.scm:3744
+#: gnu/packages/linux.scm:3909
 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"
@@ -10009,11 +9642,11 @@ msgid ""
 "not as a replacement for it."
 msgstr ""
 
-#: gnu/packages/linux.scm:3829
+#: gnu/packages/linux.scm:3994
 msgid "eCryptfs cryptographic file system utilities"
 msgstr ""
 
-#: gnu/packages/linux.scm:3831
+#: gnu/packages/linux.scm:3996
 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"
@@ -10023,11 +9656,11 @@ msgid ""
 "2.6.19.  This package contains the userland utilities to manage it."
 msgstr ""
 
-#: gnu/packages/linux.scm:3862
+#: gnu/packages/linux.scm:4027
 msgid "NFSv4 support library for name/ID mapping"
 msgstr ""
 
-#: gnu/packages/linux.scm:3863
+#: gnu/packages/linux.scm:4028
 msgid ""
 "Libnfsidmap is a library holding mulitiple methods of\n"
 "mapping names to ids and visa versa, mainly for NFSv4.  It provides an\n"
@@ -10035,23 +9668,23 @@ msgid ""
 "the default @code{nsswitch} and the experimental @code{umich_ldap}."
 msgstr ""
 
-#: gnu/packages/linux.scm:3897
+#: gnu/packages/linux.scm:4062
 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:3899
+#: gnu/packages/linux.scm:4064
 msgid ""
-"Tools for loading and managing Linux kernel modules, such as `modprobe',\n"
-"`insmod', `lsmod', and more."
+"Tools for loading and managing Linux kernel modules, such as\n"
+"@code{modprobe}, @code{insmod}, @code{lsmod}, and more."
 msgstr ""
 "Outils pour le chargement et la gestion des modules noyau Linux, tels que\n"
-"\"modprob\", \"insmod\", \"lsmod\" et plus."
+"@code{modprobe}, @code{insmod}, @code{lsmod} et plus."
 
-#: gnu/packages/linux.scm:3936
+#: gnu/packages/linux.scm:4101
 msgid "Machine check monitor for x86 Linux systems"
 msgstr ""
 
-#: gnu/packages/linux.scm:3938
+#: gnu/packages/linux.scm:4103
 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"
@@ -10059,11 +9692,11 @@ msgid ""
 "are exceeded."
 msgstr ""
 
-#: gnu/packages/linux.scm:3967
+#: gnu/packages/linux.scm:4132
 msgid "MTD Flash Storage Utilities"
 msgstr ""
 
-#: gnu/packages/linux.scm:3968
+#: gnu/packages/linux.scm:4133
 msgid ""
 "This package provides utilities for testing, partitioning, etc\n"
 "of flash storage."
@@ -10071,11 +9704,11 @@ msgstr ""
 "Ce paquet fournit des outils pour tester, partitionner, etc\n"
 "les périphériques flash."
 
-#: gnu/packages/linux.scm:3991
+#: gnu/packages/linux.scm:4156
 msgid "Interface to Linux's seccomp syscall filtering mechanism"
 msgstr ""
 
-#: gnu/packages/linux.scm:3992
+#: gnu/packages/linux.scm:4157
 msgid ""
 "The libseccomp library provides an easy to use, platform\n"
 "independent, interface to the Linux Kernel's syscall filtering mechanism.  The\n"
@@ -10085,11 +9718,11 @@ msgid ""
 "developers."
 msgstr ""
 
-#: gnu/packages/linux.scm:4034
+#: gnu/packages/linux.scm:4201
 msgid "Usage monitor for AMD Radeon graphics"
 msgstr ""
 
-#: gnu/packages/linux.scm:4035
+#: gnu/packages/linux.scm:4202
 msgid ""
 "RadeonTop monitors resource consumption on supported AMD\n"
 "Radeon Graphics Processing Units (GPUs), either in real time as bar graphs on\n"
@@ -10099,21 +9732,21 @@ msgid ""
 "under OpenGL graphics workloads."
 msgstr ""
 
-#: gnu/packages/linux.scm:4071
+#: gnu/packages/linux.scm:4238
 msgid "Tool and library to manipulate EFI variables"
 msgstr ""
 
-#: gnu/packages/linux.scm:4072
+#: gnu/packages/linux.scm:4239
 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:4110
+#: gnu/packages/linux.scm:4273
 msgid "Modify the Extensible Firmware Interface (EFI) boot manager"
 msgstr ""
 
-#: gnu/packages/linux.scm:4112
+#: gnu/packages/linux.scm:4275
 msgid ""
 "@code{efibootmgr} is a user-space application to modify the Intel\n"
 "Extensible Firmware Interface (EFI) Boot Manager.  This application can\n"
@@ -10121,11 +9754,11 @@ msgid ""
 "running boot option, and more."
 msgstr ""
 
-#: gnu/packages/linux.scm:4148
+#: gnu/packages/linux.scm:4311
 msgid "Performance monitoring tools for Linux"
 msgstr ""
 
-#: gnu/packages/linux.scm:4149
+#: gnu/packages/linux.scm:4312
 msgid ""
 "The sysstat utilities are a collection of performance\n"
 "monitoring tools for Linux.  These include @code{mpstat}, @code{iostat},\n"
@@ -10133,11 +9766,11 @@ msgid ""
 "@code{sadf} and @code{sa}."
 msgstr ""
 
-#: gnu/packages/linux.scm:4173
+#: gnu/packages/linux.scm:4336
 msgid "GNU/Linux application to control backlights"
 msgstr ""
 
-#: gnu/packages/linux.scm:4175
+#: gnu/packages/linux.scm:4338
 msgid ""
 "Light is a program to send commands to screen backlight controllers\n"
 "under GNU/Linux.  Features include:\n"
@@ -10153,11 +9786,25 @@ msgid ""
 "Light is the successor of lightscript."
 msgstr ""
 
-#: gnu/packages/linux.scm:4282
+#: gnu/packages/linux.scm:4381
+msgid "Backlight and LED brightness control"
+msgstr ""
+
+#: gnu/packages/linux.scm:4383
+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:4484
 msgid "Power management tool for Linux"
 msgstr "Outil de gestion de l'énergie pour Linux"
 
-#: gnu/packages/linux.scm:4283
+#: gnu/packages/linux.scm:4485
 msgid ""
 "TLP is a power management tool for Linux.  It comes with\n"
 "a default configuration already optimized for battery life.  Nevertheless,\n"
@@ -10165,11 +9812,11 @@ msgid ""
 "every time the power supply source is changed."
 msgstr ""
 
-#: gnu/packages/linux.scm:4310
+#: gnu/packages/linux.scm:4511
 msgid "List hardware information"
 msgstr "Liste les informations sur le matériel"
 
-#: gnu/packages/linux.scm:4312
+#: gnu/packages/linux.scm:4513
 msgid ""
 "@command{lshw} (Hardware Lister) is a small tool to provide\n"
 "detailed information on the hardware configuration of the machine.\n"
@@ -10179,11 +9826,11 @@ msgid ""
 "machines (PowerMac G4 is known to work)."
 msgstr ""
 
-#: gnu/packages/linux.scm:4335
+#: gnu/packages/linux.scm:4536
 msgid "Netlink utility library"
 msgstr "Bibliothèque pour le protocole NetLink"
 
-#: gnu/packages/linux.scm:4336
+#: gnu/packages/linux.scm:4537
 msgid ""
 "Libmnl is a minimalistic user-space library oriented to\n"
 "Netlink developers.  There are a lot of common tasks in parsing, validating,\n"
@@ -10192,11 +9839,11 @@ msgid ""
 "re-use code and to avoid re-inventing the wheel."
 msgstr ""
 
-#: gnu/packages/linux.scm:4361
+#: gnu/packages/linux.scm:4561
 msgid "Netlink programming interface to the Linux nf_tables subsystem"
 msgstr ""
 
-#: gnu/packages/linux.scm:4362
+#: gnu/packages/linux.scm:4562
 msgid ""
 "Libnftnl is a userspace library providing a low-level netlink\n"
 "programming interface to the in-kernel nf_tables subsystem.  The library\n"
@@ -10204,11 +9851,11 @@ msgid ""
 "used by nftables."
 msgstr ""
 
-#: gnu/packages/linux.scm:4389
+#: gnu/packages/linux.scm:4591
 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:4390
+#: gnu/packages/linux.scm:4592
 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"
@@ -10218,11 +9865,11 @@ msgid ""
 "userspace queueing component and the logging subsystem."
 msgstr ""
 
-#: gnu/packages/linux.scm:4487
+#: gnu/packages/linux.scm:4689
 msgid "Unprivileged chroot, bind mount, and binfmt_misc"
 msgstr ""
 
-#: gnu/packages/linux.scm:4489
+#: gnu/packages/linux.scm:4691
 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"
@@ -10235,15 +9882,15 @@ msgid ""
 "available in the kernel Linux."
 msgstr ""
 
-#: gnu/packages/linux.scm:4505
+#: gnu/packages/linux.scm:4707
 msgid "Unprivileged chroot, bind mount, and binfmt_misc (statically linked)"
 msgstr ""
 
-#: gnu/packages/linux.scm:4551
+#: gnu/packages/linux.scm:4753
 msgid "Linux tool to dump x86 CPUID information about the CPU(s)"
 msgstr ""
 
-#: gnu/packages/linux.scm:4552
+#: gnu/packages/linux.scm:4754
 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"
@@ -10251,22 +9898,22 @@ msgid ""
 "NexGen, Rise, and SiS CPUs."
 msgstr ""
 
-#: gnu/packages/linux.scm:4579
+#: gnu/packages/linux.scm:4781
 msgid "Use a FUSE file system to access data over MTP"
 msgstr ""
 
-#: gnu/packages/linux.scm:4580
+#: gnu/packages/linux.scm:4782
 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:4603
+#: gnu/packages/linux.scm:4805
 msgid "Utility to show process environment"
 msgstr ""
 
-#: gnu/packages/linux.scm:4604
+#: gnu/packages/linux.scm:4806
 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"
@@ -10274,11 +9921,11 @@ msgid ""
 "comparing system environments."
 msgstr ""
 
-#: gnu/packages/linux.scm:4631
+#: gnu/packages/linux.scm:4833
 msgid "Open Fabric Interfaces"
 msgstr ""
 
-#: gnu/packages/linux.scm:4633
+#: gnu/packages/linux.scm:4835
 msgid ""
 "OpenFabrics Interfaces (OFI) is a framework focused on exporting fabric\n"
 "communication services to applications.  OFI is best described as a collection\n"
@@ -10292,11 +9939,11 @@ msgid ""
 "libraries, which are often integrated directly into libfabric."
 msgstr ""
 
-#: gnu/packages/linux.scm:4679
+#: gnu/packages/linux.scm:4888
 msgid "Intel Performance Scaled Messaging (PSM) Libraries"
 msgstr ""
 
-#: gnu/packages/linux.scm:4681
+#: gnu/packages/linux.scm:4890
 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"
@@ -10304,22 +9951,22 @@ msgid ""
 "interfaces in parallel environments."
 msgstr ""
 
-#: gnu/packages/linux.scm:4722
+#: gnu/packages/linux.scm:4931
 msgid "Take screenshots of one or more Linux text consoles"
 msgstr ""
 
-#: gnu/packages/linux.scm:4724
+#: gnu/packages/linux.scm:4933
 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:4778
+#: gnu/packages/linux.scm:4987
 msgid "Take a screenshot of the contents of the Linux framebuffer"
 msgstr ""
 
-#: gnu/packages/linux.scm:4780
+#: gnu/packages/linux.scm:4989
 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"
@@ -10331,22 +9978,22 @@ msgid ""
 "emulates the behaviour of Gunnar Monell's older fbgrab utility."
 msgstr ""
 
-#: gnu/packages/linux.scm:4811
+#: gnu/packages/linux.scm:5020
 msgid "Control groups management tools"
 msgstr ""
 
-#: gnu/packages/linux.scm:4812
+#: gnu/packages/linux.scm:5021
 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:4846
+#: gnu/packages/linux.scm:5055
 msgid "Control fan speed on Macbooks"
 msgstr ""
 
-#: gnu/packages/linux.scm:4848
+#: gnu/packages/linux.scm:5057
 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"
@@ -10354,11 +10001,11 @@ msgid ""
 "privileges."
 msgstr ""
 
-#: gnu/packages/linux.scm:4891
+#: gnu/packages/linux.scm:5100
 msgid "Intel Performance Scaled Messaging 2 (PSM2) library"
 msgstr ""
 
-#: gnu/packages/linux.scm:4893
+#: gnu/packages/linux.scm:5102
 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"
@@ -10366,11 +10013,11 @@ msgid ""
 "high-speed networking devices."
 msgstr ""
 
-#: gnu/packages/linux.scm:4933
+#: gnu/packages/linux.scm:5142
 msgid "Performance event monitoring library"
 msgstr "Bibliothèque de surveillance d'événements de performance"
 
-#: gnu/packages/linux.scm:4935
+#: gnu/packages/linux.scm:5144
 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"
@@ -10385,11 +10032,11 @@ msgid ""
 "introduced in Linux 2.6.31."
 msgstr ""
 
-#: gnu/packages/linux.scm:4963
+#: gnu/packages/linux.scm:5172
 msgid "Low-level netfilter netlink communication library"
 msgstr ""
 
-#: gnu/packages/linux.scm:4965
+#: gnu/packages/linux.scm:5174
 msgid ""
 "@code{libnfnetlink} is the low-level library for netfilter related\n"
 "kernel/userspace communication.  It provides a generic messaging\n"
@@ -10398,6 +10045,55 @@ msgid ""
 "management tools in userspace."
 msgstr ""
 
+#: gnu/packages/linux.scm:5204
+msgid "XFS file system tools"
+msgstr "Outils du système de fichier XFS"
+
+#: gnu/packages/linux.scm:5205
+msgid ""
+"This package provides commands to create and check XFS\n"
+"file systems."
+msgstr ""
+"Ce paquet fournit des fonctions pour créer et vérifier\n"
+"des systèmes de fichiers XFS."
+
+#: gnu/packages/linux.scm:5243
+msgid "Generate ext2 filesystem as a normal user"
+msgstr ""
+
+#: gnu/packages/linux.scm:5244
+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"
+"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
+msgid "Provides a fake root environment"
+msgstr ""
+
+#: gnu/packages/linux.scm:5308
+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:5355
+msgid "Dispatch input peripherals events to a device file"
+msgstr ""
+
+#: gnu/packages/linux.scm:5356
+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/lout.scm:100
 msgid "Document layout system"
 msgstr ""
@@ -10421,11 +10117,11 @@ msgid ""
 "beginning."
 msgstr ""
 
-#: gnu/packages/messaging.scm:119
+#: gnu/packages/messaging.scm:123
 msgid "Off-the-Record (OTR) Messaging Library and Toolkit"
 msgstr ""
 
-#: gnu/packages/messaging.scm:121
+#: gnu/packages/messaging.scm:125
 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"
@@ -10438,11 +10134,11 @@ msgid ""
 "keys, no previous conversation is compromised."
 msgstr ""
 
-#: gnu/packages/messaging.scm:155
+#: gnu/packages/messaging.scm:159
 msgid "Implementation of a ratcheting forward secrecy protocol"
 msgstr "Implémentation d'un protocole de confidentialité persistante ajustable"
 
-#: gnu/packages/messaging.scm:156
+#: gnu/packages/messaging.scm:160
 msgid ""
 "libsignal-protocol-c is an implementation of a ratcheting\n"
 "forward secrecy protocol that works in synchronous and asynchronous\n"
@@ -10450,11 +10146,11 @@ msgid ""
 "end-to-end encryption."
 msgstr ""
 
-#: gnu/packages/messaging.scm:197
+#: gnu/packages/messaging.scm:201
 msgid "IRC to instant messaging gateway"
 msgstr ""
 
-#: gnu/packages/messaging.scm:198
+#: gnu/packages/messaging.scm:202
 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"
@@ -10464,21 +10160,21 @@ msgid ""
 "identi.ca and status.net)."
 msgstr ""
 
-#: gnu/packages/messaging.scm:244
+#: gnu/packages/messaging.scm:248
 msgid "Discord plugin for Bitlbee"
 msgstr ""
 
-#: gnu/packages/messaging.scm:245
+#: gnu/packages/messaging.scm:249
 msgid ""
 "Bitlbee-discord is a plugin for Bitlbee witch provides\n"
 "access to servers running the Discord protocol."
 msgstr ""
 
-#: gnu/packages/messaging.scm:292
+#: gnu/packages/messaging.scm:296
 msgid "Graphical IRC Client"
 msgstr ""
 
-#: gnu/packages/messaging.scm:294
+#: gnu/packages/messaging.scm:298
 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"
@@ -10487,11 +10183,11 @@ msgid ""
 "dictionaries.  HexChat can be extended with multiple addons."
 msgstr ""
 
-#: gnu/packages/messaging.scm:359
+#: gnu/packages/messaging.scm:363
 msgid "Lightweight Internet Relay Chat server for small networks"
 msgstr ""
 
-#: gnu/packages/messaging.scm:361
+#: gnu/packages/messaging.scm:365
 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"
@@ -10499,21 +10195,21 @@ msgid ""
 "authentication."
 msgstr ""
 
-#: gnu/packages/messaging.scm:433
+#: gnu/packages/messaging.scm:437
 msgid "Graphical multi-protocol instant messaging client"
 msgstr ""
 
-#: gnu/packages/messaging.scm:435
+#: gnu/packages/messaging.scm:439
 msgid ""
 "Pidgin is a modular instant messaging client that supports many popular\n"
 "chat protocols."
 msgstr ""
 
-#: gnu/packages/messaging.scm:473
+#: gnu/packages/messaging.scm:477
 msgid "Off-the-Record Messaging plugin for Pidgin"
 msgstr ""
 
-#: gnu/packages/messaging.scm:475
+#: gnu/packages/messaging.scm:479
 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"
@@ -10528,11 +10224,11 @@ msgid ""
 "compromised."
 msgstr ""
 
-#: gnu/packages/messaging.scm:542
+#: gnu/packages/messaging.scm:546
 msgid "IRC network bouncer"
 msgstr ""
 
-#: gnu/packages/messaging.scm:543
+#: gnu/packages/messaging.scm:547
 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"
@@ -10540,22 +10236,22 @@ msgid ""
 "simultaneously and therefore appear under the same nickname on IRC."
 msgstr ""
 
-#: gnu/packages/messaging.scm:564
+#: gnu/packages/messaging.scm:568
 msgid "Non-blocking Jabber/XMPP module"
 msgstr ""
 
-#: gnu/packages/messaging.scm:566
+#: gnu/packages/messaging.scm:570
 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:652
+#: gnu/packages/messaging.scm:675
 msgid "Jabber (XMPP) client"
 msgstr ""
 
-#: gnu/packages/messaging.scm:653
+#: gnu/packages/messaging.scm:676
 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"
@@ -10564,21 +10260,32 @@ msgid ""
 "end-to-end encryption support; XML console."
 msgstr ""
 
-#: gnu/packages/messaging.scm:722
+#: gnu/packages/messaging.scm:711
+msgid "Gajim OMEMO plugin"
+msgstr ""
+
+#: gnu/packages/messaging.scm:713
+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:777
 msgid "Graphical Jabber (XMPP) client"
 msgstr ""
 
-#: gnu/packages/messaging.scm:723
+#: gnu/packages/messaging.scm:778
 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:812
+#: gnu/packages/messaging.scm:865
 msgid "Jabber (XMPP) server"
 msgstr ""
 
-#: gnu/packages/messaging.scm:813
+#: gnu/packages/messaging.scm:866
 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"
@@ -10587,56 +10294,77 @@ msgid ""
 "protocols."
 msgstr ""
 
-#: gnu/packages/messaging.scm:848 gnu/packages/messaging.scm:882
+#: gnu/packages/messaging.scm:900
+msgid "XEP-0363: Allow clients to upload files over HTTP"
+msgstr ""
+
+#: gnu/packages/messaging.scm:901
+msgid ""
+"This module implements XEP-0363: it allows clients to\n"
+"upload files over HTTP."
+msgstr ""
+
+#: gnu/packages/messaging.scm:932
+msgid "XEP-0198: Reliability and fast reconnects for XMPP"
+msgstr ""
+
+#: gnu/packages/messaging.scm:933
+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
 msgid "Library for the Tox encrypted messenger protocol"
 msgstr ""
 
-#: gnu/packages/messaging.scm:850
+#: gnu/packages/messaging.scm:968
 msgid "C library implementation of the Tox encrypted messenger protocol."
 msgstr ""
 
-#: gnu/packages/messaging.scm:884
+#: gnu/packages/messaging.scm:1002
 msgid ""
 "Official fork of the C library implementation of the Tox encrypted\n"
 "messenger protocol."
 msgstr ""
 
-#: gnu/packages/messaging.scm:939
+#: gnu/packages/messaging.scm:1057
 msgid "Lightweight Tox client"
 msgstr "Client Tox léger"
 
-#: gnu/packages/messaging.scm:941
+#: gnu/packages/messaging.scm:1059
 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:998
+#: gnu/packages/messaging.scm:1116
 msgid "Tox chat client using Qt"
 msgstr ""
 
-#: gnu/packages/messaging.scm:999
+#: gnu/packages/messaging.scm:1117
 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:1092
+#: gnu/packages/messaging.scm:1210
 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:1094
+#: gnu/packages/messaging.scm:1212
 msgid "Distributed peer-to-peer communication"
 msgstr ""
 
-#: gnu/packages/messaging.scm:1113
+#: gnu/packages/messaging.scm:1231
 msgid "Multi-user chat program"
 msgstr ""
 
-#: gnu/packages/messaging.scm:1114
+#: gnu/packages/messaging.scm:1232
 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"
@@ -10644,11 +10372,11 @@ msgid ""
 "with several different talk daemons at the same time."
 msgstr ""
 
-#: gnu/packages/messaging.scm:1139
+#: gnu/packages/messaging.scm:1257
 msgid "Portable high-level Jabber/XMPP library for C++"
 msgstr ""
 
-#: gnu/packages/messaging.scm:1141
+#: gnu/packages/messaging.scm:1259
 msgid ""
 "gloox is a full-featured Jabber/XMPP client library,\n"
 "written in ANSI C++.  It makes writing spec-compliant clients easy\n"
@@ -10656,7 +10384,7 @@ msgid ""
 "into existing applications."
 msgstr ""
 
-#: gnu/packages/messaging.scm:1216
+#: gnu/packages/messaging.scm:1330
 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"
@@ -10664,26 +10392,26 @@ msgid ""
 "for @uref{https://torproject.org,tor} router) and many more."
 msgstr ""
 
-#: gnu/packages/messaging.scm:1220
+#: gnu/packages/messaging.scm:1334
 msgid "Perl implementation of PSYC protocol"
 msgstr ""
 
-#: gnu/packages/messaging.scm:1259
+#: gnu/packages/messaging.scm:1373
 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:1262
+#: gnu/packages/messaging.scm:1376
 msgid "PSYC library in C"
 msgstr ""
 
-#: gnu/packages/messaging.scm:1329
+#: gnu/packages/messaging.scm:1443
 msgid "psycLPC is a multi-user network server programming language"
 msgstr ""
 
-#: gnu/packages/messaging.scm:1331
+#: gnu/packages/messaging.scm:1445
 msgid ""
 "LPC is a bytecode language, invented to specifically implement\n"
 "multi user virtual environments on the internet.  This technology is used for\n"
@@ -10692,7 +10420,7 @@ msgid ""
 "many bug fixes."
 msgstr ""
 
-#: gnu/packages/messaging.scm:1362
+#: gnu/packages/messaging.scm:1476
 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"
@@ -10700,11 +10428,11 @@ msgid ""
 "protocol allows."
 msgstr ""
 
-#: gnu/packages/messaging.scm:1366
+#: gnu/packages/messaging.scm:1480
 msgid "Asynchronous XMPP library"
 msgstr ""
 
-#: gnu/packages/messaging.scm:1398
+#: gnu/packages/messaging.scm:1512
 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"
@@ -10712,15 +10440,15 @@ msgid ""
 "support, and more."
 msgstr ""
 
-#: gnu/packages/messaging.scm:1402
+#: gnu/packages/messaging.scm:1516
 msgid "Small XMPP console client"
 msgstr ""
 
-#: gnu/packages/messaging.scm:1448
+#: gnu/packages/messaging.scm:1559
 msgid "Extensible console-based Jabber client"
 msgstr ""
 
-#: gnu/packages/messaging.scm:1450
+#: gnu/packages/messaging.scm:1561
 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"
@@ -10728,39 +10456,39 @@ msgid ""
 "is also scriptable and extensible via Guile."
 msgstr ""
 
-#: gnu/packages/messaging.scm:1479 gnu/packages/messaging.scm:1508
+#: gnu/packages/messaging.scm:1590 gnu/packages/messaging.scm:1619
 msgid "C library for writing XMPP clients"
 msgstr "Bibliothèque C pour écrire des clients XMPP"
 
-#: gnu/packages/messaging.scm:1480
+#: gnu/packages/messaging.scm:1591
 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:1509
+#: gnu/packages/messaging.scm:1620
 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:1545
+#: gnu/packages/messaging.scm:1656
 msgid "Console-based XMPP client"
 msgstr ""
 
-#: gnu/packages/messaging.scm:1546
+#: gnu/packages/messaging.scm:1657
 msgid ""
 "Profanity is a console based XMPP client written in C\n"
 "using ncurses and libmesode, inspired by Irssi."
 msgstr ""
 
-#: gnu/packages/messaging.scm:1575
+#: gnu/packages/messaging.scm:1686
 msgid "Library implementing the client IRC protocol"
 msgstr ""
 
-#: gnu/packages/messaging.scm:1576
+#: gnu/packages/messaging.scm:1687
 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"
@@ -10768,22 +10496,22 @@ msgid ""
 "building the IRC clients and bots."
 msgstr ""
 
-#: gnu/packages/messaging.scm:1626
+#: gnu/packages/messaging.scm:1738
 msgid "Tox chat client using ncurses"
 msgstr ""
 
-#: gnu/packages/messaging.scm:1627
+#: gnu/packages/messaging.scm:1739
 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:1653
+#: gnu/packages/messaging.scm:1765
 msgid "Qt5 client library for the Matrix instant messaging protocol"
 msgstr ""
 
-#: gnu/packages/messaging.scm:1654
+#: gnu/packages/messaging.scm:1766
 msgid ""
 "libqmatrixclient is a Qt5 library to write clients for the\n"
 "Matrix instant messaging protocol.  Quaternion is the reference client\n"
@@ -10791,11 +10519,11 @@ msgid ""
 "QMatrixClient project."
 msgstr ""
 
-#: gnu/packages/messaging.scm:1700
+#: gnu/packages/messaging.scm:1812
 msgid "Graphical client for the Matrix instant messaging protocol"
 msgstr ""
 
-#: gnu/packages/messaging.scm:1701
+#: gnu/packages/messaging.scm:1813
 msgid ""
 "Quaternion is a Qt5 desktop client for the Matrix instant\n"
 "messaging protocol.  It uses libqmatrixclient and is its reference client\n"
@@ -10803,11 +10531,11 @@ msgid ""
 "QMatrixClient project."
 msgstr ""
 
-#: gnu/packages/messaging.scm:1740
+#: gnu/packages/messaging.scm:1855
 msgid "Instant messaging client for Google Hangouts"
 msgstr ""
 
-#: gnu/packages/messaging.scm:1742
+#: gnu/packages/messaging.scm:1857
 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"
@@ -10817,32 +10545,32 @@ msgid ""
 "messaging that aren’t available to clients that connect over XMPP."
 msgstr ""
 
-#: gnu/packages/messaging.scm:1822
+#: gnu/packages/messaging.scm:1937
 msgid "Telegram messaging support for Pidgin"
 msgstr ""
 
-#: gnu/packages/messaging.scm:1824
+#: gnu/packages/messaging.scm:1939
 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:84
+#: gnu/packages/mpd.scm:85
 msgid "Music Player Daemon client library"
 msgstr ""
 
-#: gnu/packages/mpd.scm:85
+#: gnu/packages/mpd.scm:86
 msgid ""
 "A stable, documented, asynchronous API library for\n"
 "interfacing MPD in the C, C++ & Objective C languages."
 msgstr ""
 
-#: gnu/packages/mpd.scm:157
+#: gnu/packages/mpd.scm:163
 msgid "Music Player Daemon"
 msgstr ""
 
-#: gnu/packages/mpd.scm:158
+#: 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"
@@ -10850,31 +10578,31 @@ msgid ""
 "protocol."
 msgstr ""
 
-#: gnu/packages/mpd.scm:183
+#: gnu/packages/mpd.scm:189
 msgid "Music Player Daemon client"
 msgstr ""
 
-#: gnu/packages/mpd.scm:184
+#: 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:227
+#: gnu/packages/mpd.scm:233
 msgid "Curses Music Player Daemon client"
 msgstr ""
 
-#: gnu/packages/mpd.scm:228
+#: gnu/packages/mpd.scm:234
 msgid ""
 "ncmpc is a fully featured MPD client, which runs in a\n"
 "terminal using ncurses."
 msgstr ""
 
-#: gnu/packages/mpd.scm:258
+#: gnu/packages/mpd.scm:264
 msgid "Featureful ncurses based MPD client inspired by ncmpc"
 msgstr ""
 
-#: gnu/packages/mpd.scm:259
+#: gnu/packages/mpd.scm:265
 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"
@@ -10882,42 +10610,42 @@ msgid ""
 "sort playlists, and a local file system browser."
 msgstr ""
 
-#: gnu/packages/mpd.scm:282
+#: gnu/packages/mpd.scm:288
 msgid "MPD client for track scrobbling"
 msgstr ""
 
-#: gnu/packages/mpd.scm:283
+#: gnu/packages/mpd.scm:289
 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:306
+#: gnu/packages/mpd.scm:312
 msgid "Python MPD client library"
 msgstr ""
 
-#: gnu/packages/mpd.scm:307
+#: gnu/packages/mpd.scm:313
 msgid ""
 "Python-mpd2 is a Python library which provides a client\n"
 "interface for the Music Player Daemon."
 msgstr ""
 
-#: gnu/packages/mpd.scm:356
+#: gnu/packages/mpd.scm:362
 msgid "Elegant client for the Music Player Daemon"
 msgstr ""
 
-#: gnu/packages/mpd.scm:357
+#: gnu/packages/mpd.scm:363
 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:179
+#: gnu/packages/netpbm.scm:184
 msgid "Toolkit for manipulation of images"
 msgstr "Outils de manipulation d'images"
 
-#: gnu/packages/netpbm.scm:181
+#: gnu/packages/netpbm.scm:186
 msgid ""
 "Netpbm is a toolkit for the manipulation of graphic images, including\n"
 "the conversion of images between a variety of different formats.\n"
@@ -10925,11 +10653,11 @@ msgid ""
 "about 100 graphics formats."
 msgstr ""
 
-#: gnu/packages/nettle.scm:52
+#: gnu/packages/nettle.scm:66
 msgid "C library for low-level cryptographic functionality"
 msgstr ""
 
-#: gnu/packages/nettle.scm:54
+#: 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"
@@ -10937,11 +10665,11 @@ msgid ""
 "themselves."
 msgstr ""
 
-#: gnu/packages/networking.scm:120
+#: gnu/packages/networking.scm:124
 msgid "Viewing and manipulating MAC addresses of network interfaces"
 msgstr ""
 
-#: gnu/packages/networking.scm:121
+#: gnu/packages/networking.scm:125
 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"
@@ -10949,22 +10677,22 @@ msgid ""
 "or, more generally, MAC addresses of the same category of hardware."
 msgstr ""
 
-#: gnu/packages/networking.scm:149
+#: gnu/packages/networking.scm:154
 msgid "Teredo IPv6 tunneling software"
 msgstr ""
 
-#: gnu/packages/networking.scm:151
+#: gnu/packages/networking.scm:156
 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:173
+#: gnu/packages/networking.scm:178
 msgid "Open bidirectional communication channels from the command line"
 msgstr ""
 
-#: gnu/packages/networking.scm:175
+#: gnu/packages/networking.scm:180
 msgid ""
 "socat is a relay for bidirectional data transfer between two independent\n"
 "data channels---files, pipes, devices, sockets, etc.  It can create\n"
@@ -10977,22 +10705,22 @@ msgid ""
 "or server shell scripts with network connections."
 msgstr ""
 
-#: gnu/packages/networking.scm:256
+#: gnu/packages/networking.scm:262
 msgid "Monitor and filter incoming requests for network services"
 msgstr ""
 
-#: gnu/packages/networking.scm:257
+#: gnu/packages/networking.scm:263
 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:277
+#: gnu/packages/networking.scm:283
 msgid "Library for message-based applications"
 msgstr ""
 
-#: gnu/packages/networking.scm:279
+#: gnu/packages/networking.scm:285
 msgid ""
 "The 0MQ lightweight messaging kernel is a library which extends the\n"
 "standard socket interfaces with features traditionally provided by specialized\n"
@@ -11002,63 +10730,63 @@ msgid ""
 "more."
 msgstr ""
 
-#: gnu/packages/networking.scm:317
+#: gnu/packages/networking.scm:323
 msgid "High-level C bindings for ØMQ"
 msgstr "Liaisons de haut-niveau pour ØMQ"
 
-#: gnu/packages/networking.scm:319
+#: gnu/packages/networking.scm:325
 msgid ""
 "czmq provides bindings for the ØMQ core API that hides the differences\n"
 "between different versions of ØMQ."
 msgstr ""
 
-#: gnu/packages/networking.scm:346
+#: gnu/packages/networking.scm:352
 msgid "C++ bindings for the ØMQ messaging library"
 msgstr "Liaisons C++ pour la bibliothèque de messagerie ØMQ"
 
-#: gnu/packages/networking.scm:348
+#: gnu/packages/networking.scm:354
 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:383
+#: gnu/packages/networking.scm:389
 msgid "Apache Kafka C/C++ client library"
 msgstr ""
 
-#: gnu/packages/networking.scm:385
+#: gnu/packages/networking.scm:391
 msgid ""
 "librdkafka is a C library implementation of the Apache Kafka protocol,\n"
 "containing both Producer and Consumer support."
 msgstr ""
 
-#: gnu/packages/networking.scm:402
+#: gnu/packages/networking.scm:408
 msgid "Library for Neighbor Discovery Protocol"
 msgstr ""
 
-#: gnu/packages/networking.scm:404
+#: gnu/packages/networking.scm:410
 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:422
+#: gnu/packages/networking.scm:428
 msgid "Display or change Ethernet device settings"
 msgstr ""
 
-#: gnu/packages/networking.scm:424
+#: gnu/packages/networking.scm:430
 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:463
+#: gnu/packages/networking.scm:470
 msgid "Text based network interface status monitor"
 msgstr ""
 
-#: gnu/packages/networking.scm:465
+#: gnu/packages/networking.scm:472
 msgid ""
 "IFStatus is a simple, easy-to-use program for displaying commonly\n"
 "needed/wanted real-time traffic statistics of multiple network\n"
@@ -11066,11 +10794,11 @@ msgid ""
 "intended as a substitute for the PPPStatus and EthStatus projects."
 msgstr ""
 
-#: gnu/packages/networking.scm:485
+#: gnu/packages/networking.scm:492
 msgid "Realtime console network usage monitor"
 msgstr ""
 
-#: gnu/packages/networking.scm:487
+#: gnu/packages/networking.scm:494
 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"
@@ -11078,11 +10806,11 @@ msgid ""
 "and min/max network usage."
 msgstr ""
 
-#: gnu/packages/networking.scm:530
+#: gnu/packages/networking.scm:539
 msgid "Tunnel IPv4 data through a DNS server"
 msgstr ""
 
-#: gnu/packages/networking.scm:531
+#: gnu/packages/networking.scm:540
 msgid ""
 "Iodine tunnels IPv4 data through a DNS server.  This\n"
 "can be useful in different situations where internet access is firewalled, but\n"
@@ -11090,11 +10818,11 @@ msgid ""
 "and up to 1 Mbit/s downstream."
 msgstr ""
 
-#: gnu/packages/networking.scm:568
+#: gnu/packages/networking.scm:577
 msgid "Intelligent client for the WHOIS directory service"
 msgstr ""
 
-#: gnu/packages/networking.scm:570
+#: gnu/packages/networking.scm:579
 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"
@@ -11106,22 +10834,22 @@ msgid ""
 "of the same name."
 msgstr ""
 
-#: gnu/packages/networking.scm:645
+#: gnu/packages/networking.scm:652
 msgid "Network traffic analyzer"
 msgstr ""
 
-#: gnu/packages/networking.scm:646
+#: gnu/packages/networking.scm:653
 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:666
+#: gnu/packages/networking.scm:672
 msgid "Send ICMP ECHO_REQUEST packets to network hosts"
 msgstr ""
 
-#: gnu/packages/networking.scm:668
+#: gnu/packages/networking.scm:674
 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"
@@ -11132,22 +10860,22 @@ msgid ""
 "fashion."
 msgstr ""
 
-#: gnu/packages/networking.scm:719
+#: gnu/packages/networking.scm:725
 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:721
+#: gnu/packages/networking.scm:727
 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:751
+#: gnu/packages/networking.scm:757
 msgid "Web server latency and throughput monitor"
 msgstr ""
 
-#: gnu/packages/networking.scm:753
+#: gnu/packages/networking.scm:759
 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"
@@ -11156,11 +10884,11 @@ msgid ""
 "application stack itself."
 msgstr ""
 
-#: gnu/packages/networking.scm:784
+#: gnu/packages/networking.scm:791
 msgid "Visualize curl statistics"
 msgstr ""
 
-#: gnu/packages/networking.scm:786
+#: gnu/packages/networking.scm:793
 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"
@@ -11168,21 +10896,21 @@ msgid ""
 "TCP connection, TLS handshake and so on) in the terminal."
 msgstr ""
 
-#: gnu/packages/networking.scm:806
+#: gnu/packages/networking.scm:827
 msgid "Console based live network and disk I/O bandwidth monitor"
 msgstr ""
 
-#: gnu/packages/networking.scm:807
+#: gnu/packages/networking.scm:828
 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:867
+#: gnu/packages/networking.scm:888
 msgid "Assess WiFi network security"
 msgstr ""
 
-#: gnu/packages/networking.scm:869
+#: gnu/packages/networking.scm:890
 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"
@@ -11190,11 +10918,23 @@ msgid ""
 "allows for heavy scripting."
 msgstr ""
 
-#: gnu/packages/networking.scm:893
+#: gnu/packages/networking.scm:912
+msgid "Event loop and event-driven async socket base class"
+msgstr ""
+
+#: gnu/packages/networking.scm:914
+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:938
 msgid "IPv4 and IPv6 validation methods"
 msgstr ""
 
-#: gnu/packages/networking.scm:895
+#: gnu/packages/networking.scm:940
 msgid ""
 "This module provides several IP address validation subroutines that both\n"
 "validate and untaint their input.  This includes both basic validation\n"
@@ -11203,105 +10943,105 @@ msgid ""
 "private (reserved)."
 msgstr ""
 
-#: gnu/packages/networking.scm:923
+#: gnu/packages/networking.scm:967
 msgid "Perl Interface to the Domain Name System"
 msgstr ""
 
-#: gnu/packages/networking.scm:924
+#: gnu/packages/networking.scm:968
 msgid "Net::DNS is the Perl Interface to the Domain Name System."
 msgstr ""
 
-#: gnu/packages/networking.scm:955
+#: gnu/packages/networking.scm:999
 msgid "IPv6 related part of the C socket.h defines and structure manipulators for Perl"
 msgstr ""
 
-#: gnu/packages/networking.scm:956
+#: gnu/packages/networking.scm:1000
 msgid ""
 "Socket6 binds the IPv6 related part of the C socket header\n"
 "definitions and structure manipulators for Perl."
 msgstr ""
 
-#: gnu/packages/networking.scm:982
+#: gnu/packages/networking.scm:1026
 msgid "Programmable DNS resolver class for offline emulation of DNS"
 msgstr ""
 
-#: gnu/packages/networking.scm:983
+#: gnu/packages/networking.scm:1027
 msgid ""
 "Net::DNS::Resolver::Programmable is a programmable DNS resolver for\n"
 "offline emulation of DNS."
 msgstr ""
 
-#: gnu/packages/networking.scm:1016
+#: gnu/packages/networking.scm:1060
 msgid "Manages IPv4 and IPv6 addresses and subnets"
 msgstr ""
 
-#: gnu/packages/networking.scm:1017
+#: gnu/packages/networking.scm:1061
 msgid "NetAddr::IP manages IPv4 and IPv6 addresses and subsets."
 msgstr ""
 
-#: gnu/packages/networking.scm:1041
+#: gnu/packages/networking.scm:1085
 msgid "Patricia Trie Perl module for fast IP address lookups"
 msgstr ""
 
-#: gnu/packages/networking.scm:1043
+#: gnu/packages/networking.scm:1087
 msgid "Net::Patricia does IP address lookups quickly in Perl."
 msgstr ""
 
-#: gnu/packages/networking.scm:1066
+#: gnu/packages/networking.scm:1110
 msgid "Perl extension for merging IPv4 or IPv6 CIDR addresses"
 msgstr ""
 
-#: gnu/packages/networking.scm:1067
+#: gnu/packages/networking.scm:1111
 msgid "Net::CIDR::Lite merges IPv4 or IPv6 CIDR addresses."
 msgstr ""
 
-#: gnu/packages/networking.scm:1089
+#: gnu/packages/networking.scm:1133
 msgid "Look up location and network information by IP Address in Perl"
 msgstr ""
 
-#: gnu/packages/networking.scm:1090
+#: gnu/packages/networking.scm:1134
 msgid ""
-"The Perl module 'Geo::IP'.  It looks up location and network\n"
-"information by IP Address."
+"The Perl module @code{Geo::IP}.  It looks up location and\n"
+"network information by IP Address."
 msgstr ""
 
-#: gnu/packages/networking.scm:1119
+#: gnu/packages/networking.scm:1163
 msgid "Perl object interface for AF_INET/AF_INET6 domain sockets"
 msgstr ""
 
-#: gnu/packages/networking.scm:1120
+#: gnu/packages/networking.scm:1164
 msgid ""
 "IO::Socket::INET6 is an interface for AF_INET/AF_INET6 domain\n"
 "sockets in Perl."
 msgstr ""
 
-#: gnu/packages/networking.scm:1149
+#: gnu/packages/networking.scm:1193
 msgid "Library providing automatic proxy configuration management"
 msgstr ""
 
-#: gnu/packages/networking.scm:1150
+#: gnu/packages/networking.scm:1194
 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:1186
+#: gnu/packages/networking.scm:1229
 msgid "Redirect any TCP connection through a proxy or proxy chain"
 msgstr ""
 
-#: gnu/packages/networking.scm:1187
+#: gnu/packages/networking.scm:1230
 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:1208
+#: gnu/packages/networking.scm:1250
 msgid "Network communication layer on top of UDP"
 msgstr ""
 
-#: gnu/packages/networking.scm:1210
+#: gnu/packages/networking.scm:1252
 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"
@@ -11311,11 +11051,11 @@ msgid ""
 "library remains flexible, portable, and easily embeddable."
 msgstr ""
 
-#: gnu/packages/networking.scm:1274
+#: gnu/packages/networking.scm:1317
 msgid "Applicative network protocol demultiplexer"
 msgstr ""
 
-#: gnu/packages/networking.scm:1276
+#: gnu/packages/networking.scm:1319
 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"
@@ -11327,11 +11067,11 @@ msgid ""
 "that block port 22."
 msgstr ""
 
-#: gnu/packages/networking.scm:1299
+#: gnu/packages/networking.scm:1342
 msgid "TCP, UDP and SCTP bandwidth measurement tool"
 msgstr ""
 
-#: gnu/packages/networking.scm:1301
+#: gnu/packages/networking.scm:1344
 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"
@@ -11339,11 +11079,11 @@ msgid ""
 "the bandwidth, loss, and other parameters."
 msgstr ""
 
-#: gnu/packages/networking.scm:1334
+#: gnu/packages/networking.scm:1377
 msgid "Per-process bandwidth monitor"
 msgstr ""
 
-#: gnu/packages/networking.scm:1335
+#: gnu/packages/networking.scm:1378
 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"
@@ -11355,11 +11095,11 @@ msgid ""
 "gone wild and are suddenly taking up your bandwidth."
 msgstr ""
 
-#: gnu/packages/networking.scm:1381
+#: gnu/packages/networking.scm:1424
 msgid "Usenet binary file downloader"
 msgstr ""
 
-#: gnu/packages/networking.scm:1383
+#: gnu/packages/networking.scm:1426
 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"
@@ -11369,11 +11109,11 @@ msgid ""
 "procedure calls (RPCs)."
 msgstr ""
 
-#: gnu/packages/networking.scm:1437
+#: gnu/packages/networking.scm:1480
 msgid "Virtual network switch"
 msgstr ""
 
-#: gnu/packages/networking.scm:1440
+#: gnu/packages/networking.scm:1483
 msgid ""
 "Open vSwitch is a multilayer virtual switch.  It is designed to enable\n"
 "massive network automation through programmatic extension, while still\n"
@@ -11381,54 +11121,54 @@ msgid ""
 "IPFIX, RSPAN, CLI, LACP, 802.1ag)."
 msgstr ""
 
-#: gnu/packages/networking.scm:1462
+#: gnu/packages/networking.scm:1505
 msgid "Python class and tools for handling IP addresses and networks"
 msgstr ""
 
-#: gnu/packages/networking.scm:1463
+#: gnu/packages/networking.scm:1506
 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:1487
+#: gnu/packages/networking.scm:1529
 msgid "Internet bandwidth tester"
 msgstr ""
 
-#: gnu/packages/networking.scm:1489
+#: gnu/packages/networking.scm:1531
 msgid ""
 "Command line interface for testing internet bandwidth using\n"
 "speedtest.net."
 msgstr ""
 
-#: gnu/packages/networking.scm:1507
+#: gnu/packages/networking.scm:1549
 msgid "HPA's tftp client"
 msgstr ""
 
-#: gnu/packages/networking.scm:1509
+#: gnu/packages/networking.scm:1551
 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:1537
+#: gnu/packages/networking.scm:1579
 msgid "Small Ident Daemon"
 msgstr ""
 
-#: gnu/packages/networking.scm:1539
+#: gnu/packages/networking.scm:1581
 msgid ""
 "@dfn{Pidentd} (Peter's Ident Daemon) is a 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:1586
+#: gnu/packages/networking.scm:1628
 msgid "Create secure pipes between sockets"
 msgstr ""
 
-#: gnu/packages/networking.scm:1587
+#: gnu/packages/networking.scm:1629
 msgid ""
 "Spiped (pronounced \"ess-pipe-dee\") is a utility for creating\n"
 "symmetrically encrypted and authenticated pipes between socket addresses, so\n"
@@ -11438,11 +11178,11 @@ msgid ""
 "does not use SSH and requires a pre-shared symmetric key."
 msgstr ""
 
-#: gnu/packages/networking.scm:1614
+#: gnu/packages/networking.scm:1656
 msgid "Routing Software Suite"
 msgstr ""
 
-#: gnu/packages/networking.scm:1615
+#: gnu/packages/networking.scm:1657
 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"
@@ -11454,22 +11194,22 @@ msgid ""
 "updates to the zebra daemon."
 msgstr ""
 
-#: gnu/packages/networking.scm:1666
+#: gnu/packages/networking.scm:1708
 msgid "IPv6 security research toolkit"
 msgstr ""
 
-#: gnu/packages/networking.scm:1667
+#: gnu/packages/networking.scm:1709
 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:1693
+#: gnu/packages/networking.scm:1735
 msgid "Bandwidth monitor"
 msgstr ""
 
-#: gnu/packages/networking.scm:1694
+#: gnu/packages/networking.scm:1736
 msgid ""
 "bmon is a monitoring and debugging tool to capture\n"
 "networking-related statistics and prepare them visually in a human-friendly\n"
@@ -11477,11 +11217,11 @@ msgid ""
 "interface and a programmable text output for scripting."
 msgstr ""
 
-#: gnu/packages/networking.scm:1734
+#: gnu/packages/networking.scm:1778
 msgid "Framework for low-level network packet construction"
 msgstr ""
 
-#: gnu/packages/networking.scm:1736
+#: gnu/packages/networking.scm:1780
 msgid ""
 "Libnet provides a fairly portable framework for network packet\n"
 "construction and injection.  It features portable packet creation interfaces\n"
@@ -11490,11 +11230,11 @@ msgid ""
 "can be whipped up with little effort."
 msgstr ""
 
-#: gnu/packages/networking.scm:1764
+#: gnu/packages/networking.scm:1808
 msgid "Network diagnostic tool"
 msgstr ""
 
-#: gnu/packages/networking.scm:1766
+#: gnu/packages/networking.scm:1810
 msgid ""
 "@dfn{mtr} (My TraceRoute) combines the functionality of the\n"
 "@command{traceroute} and @command{ping} programs in a single network diagnostic\n"
@@ -11504,22 +11244,22 @@ msgid ""
 "displays the results in real time."
 msgstr ""
 
-#: gnu/packages/networking.scm:1818
+#: gnu/packages/networking.scm:1862
 msgid "IKEv1/v2 keying daemon"
 msgstr ""
 
-#: gnu/packages/networking.scm:1819
+#: gnu/packages/networking.scm:1863
 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:1902
+#: gnu/packages/networking.scm:1947
 msgid "Peer-to-peer client for the eD2K and Kademlia networks"
 msgstr ""
 
-#: gnu/packages/networking.scm:1904
+#: gnu/packages/networking.scm:1949
 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"
@@ -11528,11 +11268,11 @@ msgid ""
 "remotely."
 msgstr ""
 
-#: gnu/packages/networking.scm:1927
+#: gnu/packages/networking.scm:1972
 msgid "Framework for proximity-based peer-to-peer applications"
 msgstr ""
 
-#: gnu/packages/networking.scm:1928
+#: gnu/packages/networking.scm:1973
 msgid ""
 "Zyre provides reliable group messaging over local area\n"
 "networks using zeromq.  It has these key characteristics:\n"
@@ -11549,11 +11289,11 @@ msgid ""
 "@end itemize"
 msgstr ""
 
-#: gnu/packages/networking.scm:1968
+#: gnu/packages/networking.scm:2013
 msgid "CAN utilities"
 msgstr ""
 
-#: gnu/packages/networking.scm:1969
+#: gnu/packages/networking.scm:2014
 msgid ""
 "This package provides CAN utilities in the following areas:\n"
 "\n"
@@ -11569,22 +11309,22 @@ msgid ""
 "@end itemize"
 msgstr ""
 
-#: gnu/packages/networking.scm:2006
+#: gnu/packages/networking.scm:2050
 msgid "C++ library for ASynchronous network I/O"
 msgstr ""
 
-#: gnu/packages/networking.scm:2007
+#: gnu/packages/networking.scm:2051
 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:2031
+#: gnu/packages/networking.scm:2075
 msgid "Fast tunnel proxy that helps you bypass firewalls"
 msgstr ""
 
-#: gnu/packages/networking.scm:2033
+#: gnu/packages/networking.scm:2077
 msgid ""
 "This package is a fast tunnel proxy that helps you bypass firewalls.\n"
 "\n"
@@ -11598,11 +11338,11 @@ msgid ""
 "@end itemize"
 msgstr ""
 
-#: gnu/packages/networking.scm:2111
+#: gnu/packages/networking.scm:2155
 msgid "Simple Network Management Protocol library and tools"
 msgstr ""
 
-#: gnu/packages/networking.scm:2112
+#: gnu/packages/networking.scm:2156
 msgid ""
 "The @dfn{Simple Network Management Protocol} (SNMP) is a\n"
 "widely used protocol for monitoring the health and welfare of network\n"
@@ -11611,32 +11351,32 @@ msgid ""
 "SNMP v3 using both IPv4 and IPv6."
 msgstr ""
 
-#: gnu/packages/networking.scm:2153
+#: gnu/packages/networking.scm:2197
 msgid "Bridge for UDP tunnels, Ethernet, TAP and VMnet interfaces"
 msgstr ""
 
-#: gnu/packages/networking.scm:2154
+#: gnu/packages/networking.scm:2198
 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:2200
+#: gnu/packages/networking.scm:2244
 msgid "Capture wlan traffic to hashcat and John the Ripper"
 msgstr ""
 
-#: gnu/packages/networking.scm:2202
+#: gnu/packages/networking.scm:2246
 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:2229
+#: gnu/packages/networking.scm:2273
 msgid "Small tool to capture packets from wlan devices"
 msgstr ""
 
-#: gnu/packages/networking.scm:2231
+#: gnu/packages/networking.scm:2275
 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"
@@ -11646,11 +11386,11 @@ msgid ""
 "and check if the WLAN key or the master key was transmitted unencrypted."
 msgstr ""
 
-#: gnu/packages/networking.scm:2258
+#: gnu/packages/networking.scm:2302
 msgid "SOCKS server and client"
 msgstr ""
 
-#: gnu/packages/networking.scm:2259
+#: gnu/packages/networking.scm:2303
 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"
@@ -11659,37 +11399,69 @@ msgid ""
 "never see any machines other than the one Dante is running on."
 msgstr ""
 
-#: gnu/packages/pdf.scm:125
+#: gnu/packages/networking.scm:2356
+msgid "Asynchronous RESTful functionality to C++11 applications"
+msgstr ""
+
+#: gnu/packages/networking.scm:2357
+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
+msgid "Distributed Hash Table (DHT) library"
+msgstr ""
+
+#: gnu/packages/networking.scm:2397
+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
+msgid "IP routing protocol suite"
+msgstr "Suite protocolaire pour le routage IP"
+
+#: gnu/packages/networking.scm:2426
+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/pdf.scm:129
 msgid "PDF rendering library"
 msgstr "Bibliothèque de rendu PDF"
 
-#: gnu/packages/pdf.scm:127
+#: gnu/packages/pdf.scm:131
 msgid "Poppler is a PDF rendering library based on the xpdf-3.0 code base."
 msgstr ""
 
-#: gnu/packages/pdf.scm:160
+#: gnu/packages/pdf.scm:156
 msgid "Poppler encoding files for rendering of CJK and Cyrillic text"
 msgstr ""
 
-#: gnu/packages/pdf.scm:161
+#: gnu/packages/pdf.scm:157
 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:174
+#: gnu/packages/pdf.scm:170
 msgid "Qt4 frontend for the Poppler PDF rendering library"
 msgstr ""
 
-#: gnu/packages/pdf.scm:181
+#: gnu/packages/pdf.scm:177
 msgid "Qt5 frontend for the Poppler PDF rendering library"
 msgstr ""
 
-#: gnu/packages/pdf.scm:224
+#: gnu/packages/pdf.scm:220
 msgid "Python bindings for Poppler-Qt5"
 msgstr ""
 
-#: gnu/packages/pdf.scm:226
+#: gnu/packages/pdf.scm:222
 msgid ""
 "This package provides Python bindings for the Qt5 interface of the\n"
 "Poppler PDF rendering library."
@@ -11697,90 +11469,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:260
+#: gnu/packages/pdf.scm:256
 msgid "Library for generating PDF files"
 msgstr "Bibliothèque de génération de fichiers PDF"
 
-#: gnu/packages/pdf.scm:262
+#: gnu/packages/pdf.scm:258
 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:309
+#: gnu/packages/pdf.scm:305
 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:311
+#: gnu/packages/pdf.scm:307
 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:345
+#: gnu/packages/pdf.scm:341
 msgid "Comic book support for zathura (libarchive backend)"
 msgstr ""
 
-#: gnu/packages/pdf.scm:346
+#: gnu/packages/pdf.scm:342
 msgid ""
 "The zathura-cb plugin adds comic book support to zathura\n"
 "using libarchive."
 msgstr ""
 
-#: gnu/packages/pdf.scm:380
+#: gnu/packages/pdf.scm:376
 msgid "PS support for zathura (libspectre backend)"
 msgstr ""
 
-#: gnu/packages/pdf.scm:381
+#: gnu/packages/pdf.scm:377
 msgid ""
 "The zathura-ps plugin adds PS support to zathura\n"
 "using libspectre."
 msgstr ""
 
-#: gnu/packages/pdf.scm:416
+#: gnu/packages/pdf.scm:412
 msgid "DjVu support for zathura (DjVuLibre backend)"
 msgstr ""
 
-#: gnu/packages/pdf.scm:417
+#: gnu/packages/pdf.scm:413
 msgid ""
 "The zathura-djvu plugin adds DjVu support to zathura\n"
 "using the DjVuLibre library."
 msgstr ""
 
-#: gnu/packages/pdf.scm:448
+#: gnu/packages/pdf.scm:456
 msgid "PDF support for zathura (mupdf backend)"
 msgstr ""
 
-#: gnu/packages/pdf.scm:449
+#: gnu/packages/pdf.scm:457
 msgid ""
 "The zathura-pdf-mupdf plugin adds PDF support to zathura\n"
 "by using the @code{mupdf} rendering library."
 msgstr ""
 
-#: gnu/packages/pdf.scm:484
+#: gnu/packages/pdf.scm:492
 msgid "PDF support for zathura (poppler backend)"
 msgstr ""
 
-#: gnu/packages/pdf.scm:485
+#: gnu/packages/pdf.scm:493
 msgid ""
 "The zathura-pdf-poppler plugin adds PDF support to zathura\n"
 "by using the poppler rendering engine."
 msgstr ""
 
-#: gnu/packages/pdf.scm:540
+#: gnu/packages/pdf.scm:546
 msgid "Lightweight keyboard-driven PDF viewer"
 msgstr "Visionneuse de PDF légère gérée au clavier"
 
-#: gnu/packages/pdf.scm:541
+#: gnu/packages/pdf.scm:547
 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:583
+#: gnu/packages/pdf.scm:590
 msgid "Tools to work with the PDF file format"
 msgstr "Outils de manipulation de fichiers PDF"
 
-#: gnu/packages/pdf.scm:585
+#: gnu/packages/pdf.scm:592
 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"
@@ -11789,11 +11561,11 @@ msgid ""
 "extracting content or merging files."
 msgstr ""
 
-#: gnu/packages/pdf.scm:640
+#: gnu/packages/pdf.scm:647
 msgid "Lightweight PDF viewer and toolkit"
 msgstr "Boite à outils légère pour la visualisation de documents PDF"
 
-#: gnu/packages/pdf.scm:642
+#: gnu/packages/pdf.scm:649
 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"
@@ -11813,11 +11585,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:701
+#: gnu/packages/pdf.scm:708
 msgid "Command-line tools and library for transforming PDF files"
 msgstr ""
 
-#: gnu/packages/pdf.scm:703
+#: gnu/packages/pdf.scm:710
 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"
@@ -11826,32 +11598,32 @@ msgid ""
 "program capable of converting PDF into other formats."
 msgstr ""
 
-#: gnu/packages/pdf.scm:735
+#: gnu/packages/pdf.scm:742
 msgid "Notetaking using a stylus"
 msgstr ""
 
-#: gnu/packages/pdf.scm:737
+#: gnu/packages/pdf.scm:744
 msgid ""
 "Xournal is an application for notetaking, sketching, keeping a journal\n"
 "using a stylus."
 msgstr ""
 
-#: gnu/packages/pdf.scm:759
+#: gnu/packages/pdf.scm:768
 msgid "Python library for generating PDFs and graphics"
 msgstr ""
 
-#: gnu/packages/pdf.scm:760
+#: gnu/packages/pdf.scm:769
 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:813
+#: gnu/packages/pdf.scm:822
 msgid "PDF presentation tool with visual effects"
 msgstr ""
 
-#: gnu/packages/pdf.scm:815
+#: gnu/packages/pdf.scm:824
 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"
@@ -11859,31 +11631,31 @@ msgid ""
 "the PDF pages."
 msgstr ""
 
-#: gnu/packages/pdf.scm:863
+#: gnu/packages/pdf.scm:873
 msgid "Framebuffer and drm-based image viewer"
 msgstr ""
 
-#: gnu/packages/pdf.scm:865
+#: gnu/packages/pdf.scm:875
 msgid ""
 "fbida contains a few applications for viewing and editing images on\n"
 "the framebuffer."
 msgstr ""
 
-#: gnu/packages/pdf.scm:890
+#: gnu/packages/pdf.scm:900
 msgid "PDF to SVG converter"
 msgstr ""
 
-#: gnu/packages/pdf.scm:891
+#: gnu/packages/pdf.scm:901
 msgid ""
 "@command{pdf2svg} is a simple command-line PDF to SVG\n"
 "converter using the Poppler and Cairo libraries."
 msgstr ""
 
-#: gnu/packages/pdf.scm:922 gnu/packages/pdf.scm:959
+#: gnu/packages/pdf.scm:932 gnu/packages/pdf.scm:969
 msgid "Pure Python PDF toolkit"
 msgstr ""
 
-#: gnu/packages/pdf.scm:923
+#: gnu/packages/pdf.scm:933
 msgid ""
 "PyPDF2 is a pure Python PDF library capable of:\n"
 "\n"
@@ -11903,7 +11675,7 @@ msgid ""
 "manage or manipulate PDFs."
 msgstr ""
 
-#: gnu/packages/pdf.scm:960
+#: gnu/packages/pdf.scm:970
 msgid ""
 "PyPDF2 is a pure Python PDF toolkit.\n"
 "\n"
@@ -11911,11 +11683,11 @@ msgid ""
 "python-pypdf2 instead."
 msgstr ""
 
-#: gnu/packages/pdf.scm:984
+#: gnu/packages/pdf.scm:994
 msgid "Scale and tile PDF images/pages to print on multiple pages"
 msgstr ""
 
-#: gnu/packages/pdf.scm:985
+#: gnu/packages/pdf.scm:995
 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"
@@ -11928,11 +11700,11 @@ msgid ""
 "PDF.  Indeed @command{pdfposter} was inspired by @command{poster}."
 msgstr ""
 
-#: gnu/packages/pdf.scm:1016
+#: gnu/packages/pdf.scm:1026
 msgid "Command-line utility to search text in PDF files"
 msgstr ""
 
-#: gnu/packages/pdf.scm:1018
+#: gnu/packages/pdf.scm:1028
 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"
@@ -11940,11 +11712,11 @@ msgid ""
 "multiple files."
 msgstr ""
 
-#: gnu/packages/pdf.scm:1052
+#: gnu/packages/pdf.scm:1062
 msgid "Presenter console with multi-monitor support for PDF files"
 msgstr ""
 
-#: gnu/packages/pdf.scm:1054
+#: gnu/packages/pdf.scm:1064
 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"
@@ -11954,6 +11726,17 @@ msgid ""
 "presentation.  The input files processed by pdfpc are PDF documents."
 msgstr ""
 
+#: gnu/packages/pdf.scm:1109
+msgid "Pango to PostScript converter"
+msgstr ""
+
+#: gnu/packages/pdf.scm:1111
+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."
+msgstr ""
+
 #: gnu/packages/pem.scm:41
 msgid "Personal expenses manager"
 msgstr ""
@@ -11967,11 +11750,11 @@ msgid ""
 "feature."
 msgstr ""
 
-#: gnu/packages/perl.scm:157
+#: gnu/packages/perl.scm:158
 msgid "Implementation of the Perl programming language"
 msgstr "Implémentation du langage de programmation Perl"
 
-#: gnu/packages/perl.scm:159
+#: gnu/packages/perl.scm:160
 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"
@@ -11979,21 +11762,21 @@ msgid ""
 "more."
 msgstr ""
 
-#: gnu/packages/perl.scm:215
+#: gnu/packages/perl.scm:181
 msgid "Module for merging hierarchies using the C3 algorithm"
 msgstr ""
 
-#: gnu/packages/perl.scm:216
+#: gnu/packages/perl.scm:182
 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:234
+#: gnu/packages/perl.scm:200
 msgid "Compute differences between two files or lists"
 msgstr ""
 
-#: gnu/packages/perl.scm:235
+#: gnu/packages/perl.scm:201
 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"
@@ -12002,11 +11785,11 @@ msgid ""
 "differences."
 msgstr ""
 
-#: gnu/packages/perl.scm:257
+#: gnu/packages/perl.scm:223
 msgid "Use shorter versions of class names"
 msgstr ""
 
-#: gnu/packages/perl.scm:258
+#: gnu/packages/perl.scm:224
 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"
@@ -12014,11 +11797,11 @@ msgid ""
 "implicitly."
 msgstr ""
 
-#: gnu/packages/perl.scm:280
+#: gnu/packages/perl.scm:246
 msgid "Transparently use Moose or Mouse modules"
 msgstr ""
 
-#: gnu/packages/perl.scm:282
+#: gnu/packages/perl.scm:248
 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"
@@ -12027,31 +11810,31 @@ msgid ""
 "variable ANY_MOOSE to be Moose or Mouse."
 msgstr ""
 
-#: gnu/packages/perl.scm:305
+#: gnu/packages/perl.scm:271
 msgid "Configuration files and command line parsing"
 msgstr ""
 
-#: gnu/packages/perl.scm:306
+#: gnu/packages/perl.scm:272
 msgid ""
 "AppConfig is a bundle of Perl5 modules for reading\n"
 "configuration files and parsing command line arguments."
 msgstr ""
 
-#: gnu/packages/perl.scm:326
+#: gnu/packages/perl.scm:292
 msgid "Small utils for array manipulation"
 msgstr ""
 
-#: gnu/packages/perl.scm:327
+#: gnu/packages/perl.scm:293
 msgid ""
 "@code{Array::Utils} is a small pure-perl module containing\n"
 "list manipulation routines."
 msgstr ""
 
-#: gnu/packages/perl.scm:346
+#: gnu/packages/perl.scm:314
 msgid "Allow C/XS libraries to interrupt perl asynchronously"
 msgstr ""
 
-#: gnu/packages/perl.scm:348
+#: gnu/packages/perl.scm:316
 msgid ""
 "@code{Async::Interrupt} implements a single feature only of interest\n"
 "to advanced perl modules, namely asynchronous interruptions (think \"UNIX\n"
@@ -12069,11 +11852,11 @@ msgid ""
 "sometimes even without using a single syscall."
 msgstr ""
 
-#: gnu/packages/perl.scm:378
+#: gnu/packages/perl.scm:346
 msgid "Lexically disable autovivification"
 msgstr ""
 
-#: gnu/packages/perl.scm:379
+#: gnu/packages/perl.scm:347
 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"
@@ -12087,19 +11870,19 @@ msgid ""
 "error when it would have happened."
 msgstr ""
 
-#: gnu/packages/perl.scm:412
+#: gnu/packages/perl.scm:380
 msgid "Disables bareword filehandles"
 msgstr ""
 
-#: gnu/packages/perl.scm:413
+#: gnu/packages/perl.scm:381
 msgid "This module disables bareword filehandles."
 msgstr ""
 
-#: gnu/packages/perl.scm:430 gnu/packages/perl.scm:6861
+#: 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:431
+#: 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"
@@ -12107,11 +11890,11 @@ msgid ""
 "parent."
 msgstr ""
 
-#: gnu/packages/perl.scm:451
+#: gnu/packages/perl.scm:418
 msgid "Open a browser in a given URL"
 msgstr ""
 
-#: gnu/packages/perl.scm:452
+#: gnu/packages/perl.scm:419
 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"
@@ -12119,29 +11902,29 @@ msgid ""
 "all known commands are checked."
 msgstr ""
 
-#: gnu/packages/perl.scm:477
+#: gnu/packages/perl.scm:444
 msgid "Execute code after a scope finished compilation"
 msgstr ""
 
-#: gnu/packages/perl.scm:478
+#: gnu/packages/perl.scm:445
 msgid ""
 "This module allows you to execute code when perl finished\n"
 "compiling the surrounding scope."
 msgstr ""
 
-#: gnu/packages/perl.scm:499
+#: gnu/packages/perl.scm:466
 msgid "Wrap OP check callbacks"
 msgstr ""
 
-#: gnu/packages/perl.scm:500
+#: gnu/packages/perl.scm:467
 msgid "This module allows you to wrap OP check callbacks."
 msgstr ""
 
-#: gnu/packages/perl.scm:517
+#: gnu/packages/perl.scm:483
 msgid "Lists of reserved barewords and symbol names"
 msgstr ""
 
-#: gnu/packages/perl.scm:518
+#: gnu/packages/perl.scm:484
 msgid ""
 "@code{B::Keywords} supplies several arrays of exportable\n"
 "keywords: @code{@@Scalars, @@Arrays, @@Hashes, @@Filehandles, @@Symbols,\n"
@@ -12149,11 +11932,11 @@ msgid ""
 "@@ExporterSymbols}."
 msgstr ""
 
-#: gnu/packages/perl.scm:541
+#: gnu/packages/perl.scm:507
 msgid "Benchmarking with statistical confidence"
 msgstr ""
 
-#: gnu/packages/perl.scm:543
+#: gnu/packages/perl.scm:509
 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"
@@ -12162,11 +11945,11 @@ msgid ""
 "but don't want to go all out and profile your code."
 msgstr ""
 
-#: gnu/packages/perl.scm:567
+#: gnu/packages/perl.scm:533
 msgid "Bit vector library"
 msgstr ""
 
-#: gnu/packages/perl.scm:568
+#: gnu/packages/perl.scm:534
 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"
@@ -12176,62 +11959,62 @@ msgid ""
 "library can nevertheless be used stand-alone, without Perl."
 msgstr ""
 
-#: gnu/packages/perl.scm:590
+#: gnu/packages/perl.scm:555
 msgid "Boolean support for Perl"
 msgstr ""
 
-#: gnu/packages/perl.scm:591
+#: gnu/packages/perl.scm:556
 msgid ""
 "This module provides basic Boolean support, by defining two\n"
 "special objects: true and false."
 msgstr ""
 
-#: gnu/packages/perl.scm:609
+#: gnu/packages/perl.scm:574
 msgid "Data files for Business::ISBN"
 msgstr ""
 
-#: gnu/packages/perl.scm:610
+#: gnu/packages/perl.scm:575
 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:632
+#: gnu/packages/perl.scm:597
 msgid "Work with International Standard Book Numbers"
 msgstr ""
 
-#: gnu/packages/perl.scm:633
+#: gnu/packages/perl.scm:598
 msgid ""
 "This modules provides tools to deal with International\n"
 "Standard Book Numbers, including ISBN-10 and ISBN-13."
 msgstr ""
 
-#: gnu/packages/perl.scm:651
+#: gnu/packages/perl.scm:616
 msgid "Work with International Standard Serial Numbers"
 msgstr ""
 
-#: gnu/packages/perl.scm:652
+#: gnu/packages/perl.scm:617
 msgid ""
 "This modules provides tools to deal with International\n"
 "Standard Serial Numbers."
 msgstr ""
 
-#: gnu/packages/perl.scm:672
+#: gnu/packages/perl.scm:636
 msgid "Work with International Standard Music Numbers"
 msgstr ""
 
-#: gnu/packages/perl.scm:673
+#: gnu/packages/perl.scm:637
 msgid ""
 "This modules provides tools to deal with International\n"
 "Standard Music Numbers."
 msgstr ""
 
-#: gnu/packages/perl.scm:694
+#: gnu/packages/perl.scm:658
 msgid "Cache interface for Perl"
 msgstr "Interface de cache pour Perl"
 
-#: gnu/packages/perl.scm:695
+#: gnu/packages/perl.scm:659
 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"
@@ -12242,11 +12025,11 @@ msgid ""
 "easy to use abstraction of the file system or shared memory."
 msgstr ""
 
-#: gnu/packages/perl.scm:718
+#: gnu/packages/perl.scm:681
 msgid "Shared memory interprocess cache via mmap"
 msgstr ""
 
-#: gnu/packages/perl.scm:719
+#: gnu/packages/perl.scm:682
 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"
@@ -12254,11 +12037,11 @@ msgid ""
 "algorithm to keep the most used entries in the cache."
 msgstr ""
 
-#: gnu/packages/perl.scm:740
+#: gnu/packages/perl.scm:703
 msgid "Capture STDOUT and STDERR from Perl, XS or external programs"
 msgstr ""
 
-#: gnu/packages/perl.scm:742
+#: gnu/packages/perl.scm:705
 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"
@@ -12266,21 +12049,21 @@ msgid ""
 "is captured while being passed through to the original file handles."
 msgstr ""
 
-#: gnu/packages/perl.scm:761
+#: gnu/packages/perl.scm:724
 msgid "Check compatibility with the installed perl version"
 msgstr ""
 
-#: gnu/packages/perl.scm:763
+#: gnu/packages/perl.scm:726
 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:781
+#: gnu/packages/perl.scm:744
 msgid "Alternative warn and die for modules"
 msgstr ""
 
-#: gnu/packages/perl.scm:782
+#: gnu/packages/perl.scm:745
 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"
@@ -12292,42 +12075,42 @@ msgid ""
 "but it is a good educated guess."
 msgstr ""
 
-#: gnu/packages/perl.scm:808
+#: gnu/packages/perl.scm:770
 msgid "Warns and dies noisily with stack backtraces/"
 msgstr ""
 
-#: gnu/packages/perl.scm:809
+#: gnu/packages/perl.scm:771
 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:828
+#: gnu/packages/perl.scm:790
 msgid "Executable comments for Perl"
 msgstr ""
 
-#: gnu/packages/perl.scm:829
+#: gnu/packages/perl.scm:791
 msgid ""
 "Carp::Assert is intended for a purpose like the ANSI C\n"
 "library assert.h."
 msgstr ""
 
-#: gnu/packages/perl.scm:851
+#: gnu/packages/perl.scm:813
 msgid "Convenience wrappers around Carp::Assert"
 msgstr ""
 
-#: gnu/packages/perl.scm:852
+#: gnu/packages/perl.scm:814
 msgid ""
 "Carp::Assert::More is a set of handy assertion functions for\n"
 "Perl."
 msgstr ""
 
-#: gnu/packages/perl.scm:872
+#: gnu/packages/perl.scm:834
 msgid "Report errors from a \"clan\" of modules"
 msgstr ""
 
-#: gnu/packages/perl.scm:873
+#: gnu/packages/perl.scm:835
 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"
@@ -12335,29 +12118,29 @@ msgid ""
 "the Carp.pm module doesn't help."
 msgstr ""
 
-#: gnu/packages/perl.scm:893
+#: gnu/packages/perl.scm:855
 msgid "Read the CDDB entry for an audio CD in your drive"
 msgstr ""
 
-#: gnu/packages/perl.scm:894
+#: gnu/packages/perl.scm:856
 msgid "This module can retrieve information from the CDDB."
 msgstr ""
 
-#: gnu/packages/perl.scm:916
+#: gnu/packages/perl.scm:878
 msgid "Automated accessor generation"
 msgstr ""
 
-#: gnu/packages/perl.scm:917
+#: gnu/packages/perl.scm:879
 msgid ""
 "This module automagically generates accessors/mutators for\n"
 "your class."
 msgstr ""
 
-#: gnu/packages/perl.scm:939
+#: gnu/packages/perl.scm:901
 msgid "Faster, but less expandable, chained accessors"
 msgstr ""
 
-#: gnu/packages/perl.scm:940
+#: gnu/packages/perl.scm:902
 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"
@@ -12365,52 +12148,52 @@ msgid ""
 "the same mk_accessors interface."
 msgstr ""
 
-#: gnu/packages/perl.scm:967
+#: gnu/packages/perl.scm:928
 msgid "Build groups of accessors"
 msgstr ""
 
-#: gnu/packages/perl.scm:968
+#: gnu/packages/perl.scm:929
 msgid ""
 "This class lets you build groups of accessors that will call\n"
 "different getters and setters."
 msgstr ""
 
-#: gnu/packages/perl.scm:988
+#: gnu/packages/perl.scm:948
 msgid "Pragma to use the C3 method resolution order algorithm"
 msgstr ""
 
-#: gnu/packages/perl.scm:989
+#: gnu/packages/perl.scm:949
 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:1013
+#: gnu/packages/perl.scm:973
 msgid "Drop-in replacement for NEXT"
 msgstr ""
 
-#: gnu/packages/perl.scm:1014
+#: gnu/packages/perl.scm:974
 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:1039
+#: gnu/packages/perl.scm:998
 msgid "Load mix-ins or components to your C3-based class"
 msgstr ""
 
-#: gnu/packages/perl.scm:1040
+#: gnu/packages/perl.scm:999
 msgid ""
 "This module will inject base classes to your module using\n"
 "the Class::C3 method resolution order."
 msgstr ""
 
-#: gnu/packages/perl.scm:1058
+#: gnu/packages/perl.scm:1017
 msgid "Inheritable, overridable class data"
 msgstr ""
 
-#: gnu/packages/perl.scm:1059
+#: gnu/packages/perl.scm:1018
 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"
@@ -12418,21 +12201,21 @@ msgid ""
 "subclasses and can be overridden."
 msgstr ""
 
-#: gnu/packages/perl.scm:1080
+#: gnu/packages/perl.scm:1038
 msgid "Class for easy date and time manipulation"
 msgstr ""
 
-#: gnu/packages/perl.scm:1081
+#: gnu/packages/perl.scm:1039
 msgid ""
 "This module provides a general-purpose date and datetime\n"
 "type for perl."
 msgstr ""
 
-#: gnu/packages/perl.scm:1098
+#: gnu/packages/perl.scm:1056
 msgid "Base class for error handling"
 msgstr ""
 
-#: gnu/packages/perl.scm:1100
+#: gnu/packages/perl.scm:1058
 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"
@@ -12440,104 +12223,104 @@ msgid ""
 "to the calling program."
 msgstr ""
 
-#: gnu/packages/perl.scm:1121
+#: gnu/packages/perl.scm:1079
 msgid "Utility methods for factory classes"
 msgstr ""
 
-#: gnu/packages/perl.scm:1122
+#: gnu/packages/perl.scm:1080
 msgid "This module exports methods useful for factory classes."
 msgstr ""
 
-#: gnu/packages/perl.scm:1139
+#: gnu/packages/perl.scm:1097
 msgid "Get information about a class and its structure"
 msgstr ""
 
-#: gnu/packages/perl.scm:1140
+#: gnu/packages/perl.scm:1098
 msgid ""
 "Class::Inspector allows you to get information about a\n"
 "loaded class."
 msgstr ""
 
-#: gnu/packages/perl.scm:1169
+#: gnu/packages/perl.scm:1126
 msgid "Working (require \"Class::Name\") and more"
 msgstr ""
 
-#: gnu/packages/perl.scm:1170
+#: gnu/packages/perl.scm:1127
 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:1194
+#: gnu/packages/perl.scm:1151
 msgid "XS implementation of parts of Class::Load"
 msgstr ""
 
-#: gnu/packages/perl.scm:1195
+#: gnu/packages/perl.scm:1152
 msgid ""
 "This module provides an XS implementation for portions of\n"
 "Class::Load."
 msgstr ""
 
-#: gnu/packages/perl.scm:1214
+#: gnu/packages/perl.scm:1171
 msgid "Create generic methods for OO Perl"
 msgstr ""
 
-#: gnu/packages/perl.scm:1215
+#: gnu/packages/perl.scm:1172
 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:1236
+#: gnu/packages/perl.scm:1193
 msgid "Moose-like method modifiers"
 msgstr ""
 
-#: gnu/packages/perl.scm:1237
+#: gnu/packages/perl.scm:1194
 msgid ""
-"Class::Method::Modifiers provides three modifiers: 'before',\n"
-"'around', and 'after'.  'before' and 'after' are run just before and after the\n"
-"method they modify, but can not really affect that original method.  'around'\n"
-"is run in place of the original method, with a hook to easily call that\n"
-"original method."
+"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:1258
+#: gnu/packages/perl.scm:1215
 msgid "Implementation of a singleton class for Perl"
 msgstr ""
 
-#: gnu/packages/perl.scm:1259
+#: gnu/packages/perl.scm:1216
 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:1278
+#: gnu/packages/perl.scm:1235
 msgid "Minimalist class construction"
 msgstr ""
 
-#: gnu/packages/perl.scm:1279
+#: gnu/packages/perl.scm:1236
 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:1299
+#: gnu/packages/perl.scm:1256
 msgid "Unload a class"
 msgstr ""
 
-#: gnu/packages/perl.scm:1300
+#: gnu/packages/perl.scm:1257
 msgid ""
 "Class:Unload unloads a given class by clearing out its\n"
 "symbol table and removing it from %INC."
 msgstr ""
 
-#: gnu/packages/perl.scm:1318
+#: gnu/packages/perl.scm:1275
 msgid "Generate fast XS accessors without runtime compilation"
 msgstr ""
 
-#: gnu/packages/perl.scm:1319
+#: gnu/packages/perl.scm:1276
 msgid ""
 "Class::XSAccessor implements fast read, write, and\n"
 "read/write accessors in XS.  Additionally, it can provide predicates such as\n"
@@ -12547,18 +12330,18 @@ msgid ""
 "arrays for their internal representation."
 msgstr ""
 
-#: gnu/packages/perl.scm:1339 gnu/packages/perl.scm:1361
+#: gnu/packages/perl.scm:1296 gnu/packages/perl.scm:1318
 msgid "Recursively copy Perl datatypes"
 msgstr ""
 
-#: gnu/packages/perl.scm:1341
+#: gnu/packages/perl.scm:1298
 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:1362
+#: gnu/packages/perl.scm:1319
 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"
@@ -12566,42 +12349,55 @@ msgid ""
 "and objects."
 msgstr ""
 
-#: gnu/packages/perl.scm:1382
+#: gnu/packages/perl.scm:1339
 msgid "Sane defaults for Perl programs"
 msgstr ""
 
-#: gnu/packages/perl.scm:1383
+#: gnu/packages/perl.scm:1340
 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:1403
+#: gnu/packages/perl.scm:1364
+msgid "Perl extension for libconfig"
+msgstr "Extension Perl pour libconfig"
+
+#: gnu/packages/perl.scm:1366
+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:1389
 msgid "Load configuration from different file formats"
 msgstr ""
 
-#: gnu/packages/perl.scm:1404
+#: gnu/packages/perl.scm:1390
 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:1425
+#: gnu/packages/perl.scm:1411
 msgid "Module to implement some AutoConf macros in Perl"
 msgstr ""
 
-#: gnu/packages/perl.scm:1426
+#: gnu/packages/perl.scm:1412
 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:1444
+#: gnu/packages/perl.scm:1429
 msgid "Generic Config Module"
 msgstr ""
 
-#: gnu/packages/perl.scm:1445
+#: gnu/packages/perl.scm:1430
 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"
@@ -12612,32 +12408,42 @@ msgid ""
 "options."
 msgstr ""
 
-#: gnu/packages/perl.scm:1472
+#: gnu/packages/perl.scm:1460
+msgid "Parse Git style configuration files"
+msgstr ""
+
+#: gnu/packages/perl.scm:1462
+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
 msgid "Simple .ini-file format reader and writer"
 msgstr ""
 
-#: gnu/packages/perl.scm:1473
+#: gnu/packages/perl.scm:1485
 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:1494
+#: gnu/packages/perl.scm:1506
 msgid "Preserve context during subroutine call"
 msgstr ""
 
-#: gnu/packages/perl.scm:1495
+#: gnu/packages/perl.scm:1507
 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:1520
+#: gnu/packages/perl.scm:1532
 msgid "Extract data from Macintosh BinHex files"
 msgstr ""
 
-#: gnu/packages/perl.scm:1522
+#: gnu/packages/perl.scm:1534
 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"
@@ -12645,41 +12451,51 @@ msgid ""
 "data."
 msgstr ""
 
-#: gnu/packages/perl.scm:1543
+#: gnu/packages/perl.scm:1555
 msgid "Read and write @file{Changes} files"
 msgstr ""
 
-#: gnu/packages/perl.scm:1545
+#: gnu/packages/perl.scm:1557
 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:1565
+#: gnu/packages/perl.scm:1577
+msgid "Extract the name and version from a distribution filename"
+msgstr ""
+
+#: gnu/packages/perl.scm:1579
+msgid ""
+"@code{CPAN::DistnameInfo} uses heuristics to extract the distribution\n"
+"name and version from filenames."
+msgstr ""
+
+#: gnu/packages/perl.scm:1599
 msgid "Verify requirements in a CPAN::Meta object"
 msgstr ""
 
-#: gnu/packages/perl.scm:1566
+#: gnu/packages/perl.scm:1600
 msgid ""
 "This module verifies if requirements described in a\n"
 "CPAN::Meta object are present."
 msgstr ""
 
-#: gnu/packages/perl.scm:1586
+#: gnu/packages/perl.scm:1619
 msgid "JSON::XS for Cpanel"
 msgstr ""
 
-#: gnu/packages/perl.scm:1587 gnu/packages/perl.scm:4486
+#: gnu/packages/perl.scm:1620 gnu/packages/perl.scm:4627
 msgid ""
 "This module converts Perl data structures to JSON and vice\n"
 "versa."
 msgstr ""
 
-#: gnu/packages/perl.scm:1605
+#: gnu/packages/perl.scm:1638
 msgid "Random password generator"
 msgstr ""
 
-#: gnu/packages/perl.scm:1606
+#: gnu/packages/perl.scm:1639
 msgid ""
 "Crypt::RandPasswd provides three functions that can be used\n"
 "to generate random passwords, constructed from words, letters, or characters.\n"
@@ -12690,40 +12506,40 @@ msgid ""
 "Password Generator\"."
 msgstr ""
 
-#: gnu/packages/perl.scm:1631
+#: gnu/packages/perl.scm:1664
 msgid "Perl implementation of the RC4 encryption algorithm"
 msgstr ""
 
-#: gnu/packages/perl.scm:1632
+#: gnu/packages/perl.scm:1665
 msgid "A pure Perl implementation of the RC4 algorithm."
 msgstr ""
 
-#: gnu/packages/perl.scm:1651
+#: gnu/packages/perl.scm:1684
 msgid "Temporarily change working directory"
 msgstr ""
 
-#: gnu/packages/perl.scm:1653
+#: gnu/packages/perl.scm:1686
 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:1691
+#: gnu/packages/perl.scm:1723
 msgid "Library for genomic analysis"
 msgstr "Bibliothèque d'analyse génomique"
 
-#: gnu/packages/perl.scm:1692
+#: gnu/packages/perl.scm:1724
 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:1721 gnu/packages/perl.scm:1887
+#: gnu/packages/perl.scm:1753 gnu/packages/perl.scm:1940
 msgid "Base classes wrapping fundamental Perl data types"
 msgstr ""
 
-#: gnu/packages/perl.scm:1722
+#: gnu/packages/perl.scm:1754
 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"
@@ -12732,61 +12548,73 @@ msgid ""
 "input."
 msgstr ""
 
-#: gnu/packages/perl.scm:1745
+#: gnu/packages/perl.scm:1777
 msgid "Compare Perl data structures"
 msgstr ""
 
-#: gnu/packages/perl.scm:1746
+#: gnu/packages/perl.scm:1778
 msgid ""
 "This module compares arbitrary data structures to see if\n"
 "they are copies of each other."
 msgstr ""
 
-#: gnu/packages/perl.scm:1764
+#: gnu/packages/perl.scm:1796
 msgid "Perl extension for generating unique identifiers"
 msgstr ""
 
-#: gnu/packages/perl.scm:1765
+#: gnu/packages/perl.scm:1797
 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"
 "short and handy (e.g. to use it as part of a URL)."
 msgstr ""
 
-#: gnu/packages/perl.scm:1784
+#: gnu/packages/perl.scm:1816
 msgid "Pretty printing of data structures"
 msgstr ""
 
-#: gnu/packages/perl.scm:1785
+#: gnu/packages/perl.scm:1817
 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:1804
+#: gnu/packages/perl.scm:1836
+msgid "Convert data structures to strings"
+msgstr ""
+
+#: gnu/packages/perl.scm:1837
+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:1857
 msgid "Concise data dumper"
 msgstr ""
 
-#: gnu/packages/perl.scm:1805
+#: gnu/packages/perl.scm:1858
 msgid ""
 "Data::Dumper::Concise provides a dumper with Less\n"
 "indentation and newlines plus sub deparsing."
 msgstr ""
 
-#: gnu/packages/perl.scm:1827
+#: gnu/packages/perl.scm:1880
 msgid "Parse and validate simple name/value option pairs"
 msgstr ""
 
-#: gnu/packages/perl.scm:1829
+#: gnu/packages/perl.scm:1882
 msgid "Data::OptList provides a simple syntax for name/value option pairs."
 msgstr ""
 
-#: gnu/packages/perl.scm:1851
+#: gnu/packages/perl.scm:1904
 msgid "Help when paging through sets of results"
 msgstr ""
 
-#: gnu/packages/perl.scm:1852
+#: gnu/packages/perl.scm:1905
 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"
@@ -12794,7 +12622,7 @@ msgid ""
 "The maths behind this is unfortunately fiddly, hence this module."
 msgstr ""
 
-#: gnu/packages/perl.scm:1889
+#: gnu/packages/perl.scm:1942
 msgid ""
 "@code{Data::Perl} is a container class for the following classes:\n"
 "@itemize\n"
@@ -12808,21 +12636,21 @@ msgid ""
 "@end itemize"
 msgstr ""
 
-#: gnu/packages/perl.scm:1920
+#: gnu/packages/perl.scm:1973
 msgid "Colored pretty-print of Perl data structures and objects"
 msgstr ""
 
-#: gnu/packages/perl.scm:1921
+#: gnu/packages/perl.scm:1974
 msgid ""
 "Display Perl variables and objects on screen, properly\n"
 "formatted (to be inspected by a human)."
 msgstr ""
 
-#: gnu/packages/perl.scm:1944
+#: gnu/packages/perl.scm:1997
 msgid "Conditionally split data into records"
 msgstr ""
 
-#: gnu/packages/perl.scm:1945
+#: gnu/packages/perl.scm:1998
 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"
@@ -12831,21 +12659,21 @@ msgid ""
 "like split on newlines unless newlines are embedded in quotes."
 msgstr ""
 
-#: gnu/packages/perl.scm:1973
+#: gnu/packages/perl.scm:2026
 msgid "Read multiple hunks of data out of your DATA section"
 msgstr ""
 
-#: gnu/packages/perl.scm:1974
+#: gnu/packages/perl.scm:2027
 msgid ""
 "This package provides a Perl library to read multiple hunks\n"
 "of data out of your DATA section."
 msgstr ""
 
-#: gnu/packages/perl.scm:1994
+#: gnu/packages/perl.scm:2047
 msgid "Structured tags datastructures"
 msgstr ""
 
-#: gnu/packages/perl.scm:1996
+#: gnu/packages/perl.scm:2049
 msgid ""
 "This module is for manipulating data as hierarchical tag/value\n"
 "pairs (Structured TAGs or Simple Tree AGgregates).  These datastructures can\n"
@@ -12853,11 +12681,11 @@ msgid ""
 "Perl."
 msgstr ""
 
-#: gnu/packages/perl.scm:2023
+#: gnu/packages/perl.scm:2076
 msgid "N at a time iteration API"
 msgstr ""
 
-#: gnu/packages/perl.scm:2024
+#: gnu/packages/perl.scm:2077
 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"
@@ -12866,21 +12694,21 @@ msgid ""
 "necessary later on."
 msgstr ""
 
-#: gnu/packages/perl.scm:2049
+#: gnu/packages/perl.scm:2101
 msgid "Dynamic generation of nested combinations of variants"
 msgstr ""
 
-#: gnu/packages/perl.scm:2050
+#: gnu/packages/perl.scm:2102
 msgid ""
 "Data::Tumbler - Dynamic generation of nested combinations of\n"
 "variants."
 msgstr ""
 
-#: gnu/packages/perl.scm:2076
+#: gnu/packages/perl.scm:2128
 msgid "Visitor style traversal of Perl data structures"
 msgstr ""
 
-#: gnu/packages/perl.scm:2077
+#: gnu/packages/perl.scm:2129
 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"
@@ -12890,11 +12718,11 @@ msgid ""
 "structures, and all ref types (hashes, arrays, scalars, code, globs)."
 msgstr ""
 
-#: gnu/packages/perl.scm:2102
+#: gnu/packages/perl.scm:2154
 msgid "Gregorian calendar date calculations"
 msgstr ""
 
-#: gnu/packages/perl.scm:2103
+#: gnu/packages/perl.scm:2155
 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"
@@ -12902,32 +12730,32 @@ msgid ""
 "applicable)."
 msgstr ""
 
-#: gnu/packages/perl.scm:2127
+#: gnu/packages/perl.scm:2179
 msgid "XS wrapper for Date::Calc"
 msgstr ""
 
-#: gnu/packages/perl.scm:2128
+#: gnu/packages/perl.scm:2180
 msgid ""
 "Date::Calc::XS is an XS wrapper and C library plug-in for\n"
 "Date::Calc."
 msgstr ""
 
-#: gnu/packages/perl.scm:2152
+#: gnu/packages/perl.scm:2203
 msgid "Date manipulation routines"
 msgstr ""
 
-#: gnu/packages/perl.scm:2153
+#: gnu/packages/perl.scm:2204
 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:2172
+#: gnu/packages/perl.scm:2223
 msgid "Simple date handling"
 msgstr ""
 
-#: gnu/packages/perl.scm:2173
+#: gnu/packages/perl.scm:2224
 msgid ""
 "Dates are complex enough without times and timezones.  This\n"
 "module may be used to create simple date objects.  It handles validation,\n"
@@ -12935,22 +12763,22 @@ msgid ""
 "hours, minutes, seconds, and time zones."
 msgstr ""
 
-#: gnu/packages/perl.scm:2205
+#: gnu/packages/perl.scm:2256
 msgid "Date and time object for Perl"
 msgstr ""
 
-#: gnu/packages/perl.scm:2206
+#: gnu/packages/perl.scm:2257
 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:2228
+#: gnu/packages/perl.scm:2278
 msgid "Dates in the Julian calendar"
 msgstr ""
 
-#: gnu/packages/perl.scm:2229
+#: gnu/packages/perl.scm:2279
 msgid ""
 "This package is a companion module to @code{DateTime.pm}.\n"
 "It implements the Julian calendar.  It supports everything that\n"
@@ -12958,11 +12786,11 @@ msgid ""
 "precise."
 msgstr ""
 
-#: gnu/packages/perl.scm:2255
+#: gnu/packages/perl.scm:2305
 msgid "DateTime set objects"
 msgstr ""
 
-#: gnu/packages/perl.scm:2256
+#: gnu/packages/perl.scm:2306
 msgid ""
 "The DateTime::Set module provides a date/time sets\n"
 "implementation.  It allows, for example, the generation of groups of dates,\n"
@@ -12970,21 +12798,21 @@ msgid ""
 "within a time range."
 msgstr ""
 
-#: gnu/packages/perl.scm:2279
+#: gnu/packages/perl.scm:2329
 msgid "DateTime rfc2445 recurrences"
 msgstr ""
 
-#: gnu/packages/perl.scm:2280
+#: gnu/packages/perl.scm:2330
 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:2301
+#: gnu/packages/perl.scm:2351
 msgid "DateTime::Set extension for basic recurrences"
 msgstr ""
 
-#: gnu/packages/perl.scm:2302
+#: gnu/packages/perl.scm:2352
 msgid ""
 "This module provides convenience methods that let you easily\n"
 "create DateTime::Set objects for various recurrences, such as \"once a month\"\n"
@@ -12992,11 +12820,11 @@ msgid ""
 "\"every Monday, Wednesday and Thursday at 10:00 AM and 2:00 PM\"."
 msgstr ""
 
-#: gnu/packages/perl.scm:2327
+#: gnu/packages/perl.scm:2377
 msgid "Create DateTime parser classes and objects"
 msgstr ""
 
-#: gnu/packages/perl.scm:2328
+#: gnu/packages/perl.scm:2378
 msgid ""
 "DateTime::Format::Builder creates DateTime parsers.  Many\n"
 "string formats of dates and times are simple and just require a basic regular\n"
@@ -13004,43 +12832,43 @@ msgid ""
 "to do this without writing reams of structural code."
 msgstr ""
 
-#: gnu/packages/perl.scm:2355
+#: gnu/packages/perl.scm:2405
 msgid "Parse data/time strings"
 msgstr ""
 
-#: gnu/packages/perl.scm:2356
+#: gnu/packages/perl.scm:2406
 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:2382
+#: gnu/packages/perl.scm:2432
 msgid "Parse and format iCal datetime and duration strings"
 msgstr ""
 
-#: gnu/packages/perl.scm:2383
+#: gnu/packages/perl.scm:2433
 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:2415
+#: gnu/packages/perl.scm:2464
 msgid "Machine-readable date/time with natural parsing"
 msgstr ""
 
-#: gnu/packages/perl.scm:2416
+#: gnu/packages/perl.scm:2465
 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:2443
+#: gnu/packages/perl.scm:2492
 msgid "Parse and format strp and strf time patterns"
 msgstr ""
 
-#: gnu/packages/perl.scm:2444
+#: gnu/packages/perl.scm:2493
 msgid ""
 "This module implements most of `strptime(3)`, the POSIX\n"
 "function that is the reverse of `strftime(3)`, for `DateTime`.  While\n"
@@ -13048,21 +12876,21 @@ msgid ""
 "takes a string and a pattern and returns the `DateTime` object associated."
 msgstr ""
 
-#: gnu/packages/perl.scm:2476
+#: gnu/packages/perl.scm:2526
 msgid "Localization support for DateTime.pm"
 msgstr ""
 
-#: gnu/packages/perl.scm:2477
+#: gnu/packages/perl.scm:2527
 msgid ""
 "The DateTime::Locale modules provide localization data for\n"
 "the DateTime.pm class."
 msgstr ""
 
-#: gnu/packages/perl.scm:2505
+#: gnu/packages/perl.scm:2568
 msgid "Time zone object for Perl"
 msgstr "Objet de fuseau horaire pour Perl"
 
-#: gnu/packages/perl.scm:2506
+#: gnu/packages/perl.scm:2569
 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"
@@ -13078,11 +12906,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:2536
+#: gnu/packages/perl.scm:2599
 msgid "Parse date/time strings"
 msgstr "Analyse des chaînes de date et temps"
 
-#: gnu/packages/perl.scm:2537
+#: gnu/packages/perl.scm:2600
 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"
@@ -13092,11 +12920,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:2558
+#: gnu/packages/perl.scm:2621
 msgid "Convert between DateTime and RFC2822/822 formats"
 msgstr "Convertit entre les formats DateTime et RFC2822/822"
 
-#: gnu/packages/perl.scm:2559
+#: gnu/packages/perl.scm:2622
 msgid ""
 "RFCs 2822 and 822 specify date formats to be used by email.\n"
 "This module parses and emits such dates."
@@ -13104,11 +12932,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:2581
+#: gnu/packages/perl.scm:2644
 msgid "Parse and format W3CDTF datetime strings"
 msgstr "Analyse et formate les chaînes de date W3CDTF"
 
-#: gnu/packages/perl.scm:2583
+#: gnu/packages/perl.scm:2646
 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"
@@ -13120,19 +12948,19 @@ 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:2605
+#: gnu/packages/perl.scm:2668
 msgid "Meatier version of caller"
 msgstr ""
 
-#: gnu/packages/perl.scm:2606
+#: gnu/packages/perl.scm:2669
 msgid "Devel::Caller provides meatier version of caller."
 msgstr ""
 
-#: gnu/packages/perl.scm:2624
+#: gnu/packages/perl.scm:2687
 msgid "Check that a command is available"
 msgstr "Vérifie qu'une commande est disponible"
 
-#: gnu/packages/perl.scm:2625
+#: gnu/packages/perl.scm:2688
 msgid ""
 "Devel::CheckBin is a perl module that checks whether a\n"
 "particular command is available."
@@ -13140,11 +12968,11 @@ msgstr ""
 "Devel::CheckBin est un module perl qui vérifie si une commande\n"
 "particulière est disponible."
 
-#: gnu/packages/perl.scm:2645
+#: gnu/packages/perl.scm:2708
 msgid "Check that a library is available"
 msgstr "Vérifie qu'une bibliothèque est disponible"
 
-#: gnu/packages/perl.scm:2647
+#: gnu/packages/perl.scm:2710
 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"
@@ -13152,11 +12980,11 @@ msgid ""
 "particular results."
 msgstr ""
 
-#: gnu/packages/perl.scm:2668
+#: gnu/packages/perl.scm:2731
 msgid "Check compiler availability"
 msgstr "Vérifie la disponibilité d'un compilateur"
 
-#: gnu/packages/perl.scm:2669
+#: gnu/packages/perl.scm:2732
 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"
@@ -13167,22 +12995,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:2691
+#: gnu/packages/perl.scm:2754
 msgid "Find memory cycles in objects"
 msgstr ""
 
-#: gnu/packages/perl.scm:2693
+#: gnu/packages/perl.scm:2756
 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:2714
+#: gnu/packages/perl.scm:2777
 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:2715
+#: gnu/packages/perl.scm:2778
 msgid ""
 "Devel::GlobalDestruction provides a function returning the\n"
 "equivalent of \"$@{^GLOBAL_PHASE@} eq 'DESTRUCT'\" for older perls."
@@ -13190,53 +13018,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:2736
+#: gnu/packages/perl.scm:2798
 msgid "Forces the unavailability of specified Perl modules (for testing)"
 msgstr ""
 
-#: gnu/packages/perl.scm:2737
+#: gnu/packages/perl.scm:2799
 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:2758
+#: gnu/packages/perl.scm:2818
+msgid "Utility for looking for perl objects that are not reclaimed"
+msgstr ""
+
+#: gnu/packages/perl.scm:2820
+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
 msgid "Alias lexical variables"
 msgstr ""
 
-#: gnu/packages/perl.scm:2759
+#: gnu/packages/perl.scm:2841
 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:2783
+#: gnu/packages/perl.scm:2865
 msgid "Introspect overloaded operators"
 msgstr ""
 
-#: gnu/packages/perl.scm:2784
+#: gnu/packages/perl.scm:2866
 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:2811
+#: gnu/packages/perl.scm:2893
 msgid "Partial dumping of data structures"
 msgstr ""
 
-#: gnu/packages/perl.scm:2812
+#: gnu/packages/perl.scm:2894
 msgid ""
 "This module is a data dumper optimized for logging of\n"
 "arbitrary parameters."
 msgstr ""
 
-#: gnu/packages/perl.scm:2830
+#: gnu/packages/perl.scm:2912
 msgid "Object representing a stack trace"
 msgstr ""
 
-#: gnu/packages/perl.scm:2831
+#: gnu/packages/perl.scm:2913
 msgid ""
 "The Devel::StackTrace module contains two classes,\n"
 "Devel::StackTrace and Devel::StackTrace::Frame.  These objects encapsulate the\n"
@@ -13244,11 +13082,11 @@ msgid ""
 "providing a simple interface to this data."
 msgstr ""
 
-#: gnu/packages/perl.scm:2853
+#: gnu/packages/perl.scm:2935
 msgid "Displays stack trace in HTML"
 msgstr ""
 
-#: gnu/packages/perl.scm:2854
+#: gnu/packages/perl.scm:2936
 msgid ""
 "Devel::StackTrace::AsHTML adds as_html method to\n"
 "Devel::StackTrace which displays the stack trace in beautiful HTML, with code\n"
@@ -13257,29 +13095,29 @@ msgid ""
 "each stack frame."
 msgstr ""
 
-#: gnu/packages/perl.scm:2875
+#: gnu/packages/perl.scm:2957
 msgid "Dump symbol names or the symbol table"
 msgstr ""
 
-#: gnu/packages/perl.scm:2876
+#: gnu/packages/perl.scm:2958
 msgid "Devel::Symdump provides access to the perl symbol table."
 msgstr ""
 
-#: gnu/packages/perl.scm:2893
+#: gnu/packages/perl.scm:2975
 msgid "Keyed-Hashing for Message Authentication"
 msgstr ""
 
-#: gnu/packages/perl.scm:2894
+#: gnu/packages/perl.scm:2976
 msgid ""
 "The Digest::HMAC module follows the common Digest::\n"
 "interface for the RFC 2104 HMAC mechanism."
 msgstr ""
 
-#: gnu/packages/perl.scm:2919
+#: gnu/packages/perl.scm:3002
 msgid "Perl interface to the MD-5 algorithm"
 msgstr ""
 
-#: gnu/packages/perl.scm:2921
+#: gnu/packages/perl.scm:3004
 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"
@@ -13287,41 +13125,41 @@ msgid ""
 "128-bit \"fingerprint\" or \"message digest\" of the input."
 msgstr ""
 
-#: gnu/packages/perl.scm:2939
+#: gnu/packages/perl.scm:3022
 msgid "Perl implementation of the SHA-1 message digest algorithm"
 msgstr ""
 
-#: gnu/packages/perl.scm:2941
+#: gnu/packages/perl.scm:3024
 msgid ""
-"This package provides 'Digest::SHA1', an implementation of the NIST\n"
+"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:2962
+#: gnu/packages/perl.scm:3045
 msgid "Declare version conflicts for your dist"
 msgstr ""
 
-#: gnu/packages/perl.scm:2963
+#: gnu/packages/perl.scm:3046
 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:2983
+#: gnu/packages/perl.scm:3066
 msgid "Detect the encoding of data"
 msgstr ""
 
-#: gnu/packages/perl.scm:2984
+#: gnu/packages/perl.scm:3067
 msgid ""
 "This package provides a class @code{Encode::Detect} to detect\n"
 "the encoding of data."
 msgstr ""
 
-#: gnu/packages/perl.scm:3002
+#: gnu/packages/perl.scm:3085
 msgid "ASCII mapping for eucJP encoding"
 msgstr ""
 
-#: gnu/packages/perl.scm:3003
+#: gnu/packages/perl.scm:3086
 msgid ""
 "This package provides an ASCII mapping for the eucJP\n"
 "encoding."
@@ -13329,21 +13167,21 @@ msgstr ""
 "Ce paquet fournit une correspondance entre ASCII et l'encodage\n"
 "eucJP."
 
-#: gnu/packages/perl.scm:3021
+#: gnu/packages/perl.scm:3104
 msgid "JIS X 0212 (aka JIS 2000) encodings"
 msgstr ""
 
-#: gnu/packages/perl.scm:3022
+#: gnu/packages/perl.scm:3105
 msgid ""
 "This package provides encodings for JIS X 0212, which is\n"
 "also known as JIS 2000."
 msgstr ""
 
-#: gnu/packages/perl.scm:3045
+#: gnu/packages/perl.scm:3128
 msgid "Additional Chinese encodings"
 msgstr ""
 
-#: gnu/packages/perl.scm:3046
+#: gnu/packages/perl.scm:3129
 msgid ""
 "This Perl module provides Chinese encodings that are not\n"
 "part of Perl by default, including \"BIG5-1984\", \"BIG5-2003\", \"BIG5PLUS\",\n"
@@ -13351,11 +13189,11 @@ msgid ""
 "\"UNISYS\"."
 msgstr ""
 
-#: gnu/packages/perl.scm:3068
+#: gnu/packages/perl.scm:3151
 msgid "Advanced operations on path variables"
 msgstr ""
 
-#: gnu/packages/perl.scm:3069
+#: gnu/packages/perl.scm:3152
 msgid ""
 "@code{Env::Path} presents an object-oriented interface to\n"
 "path variables, defined as that subclass of environment variables which name\n"
@@ -13363,11 +13201,11 @@ msgid ""
 "separator."
 msgstr ""
 
-#: gnu/packages/perl.scm:3089
+#: gnu/packages/perl.scm:3172
 msgid "OO-ish Error/Exception handling for Perl"
 msgstr ""
 
-#: gnu/packages/perl.scm:3090
+#: gnu/packages/perl.scm:3173
 msgid ""
 "The Error package provides two interfaces.  Firstly Error\n"
 "provides a procedural interface to exception handling.  Secondly Error is a\n"
@@ -13375,11 +13213,11 @@ msgid ""
 "catch, or can simply be recorded."
 msgstr ""
 
-#: gnu/packages/perl.scm:3115
+#: gnu/packages/perl.scm:3198
 msgid "Safely and cleanly create closures via string eval"
 msgstr ""
 
-#: gnu/packages/perl.scm:3116
+#: gnu/packages/perl.scm:3199
 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"
@@ -13393,32 +13231,32 @@ msgid ""
 "errors are rethrown automatically."
 msgstr ""
 
-#: gnu/packages/perl.scm:3145
+#: gnu/packages/perl.scm:3228
 msgid "Allows you to declare real exception classes in Perl"
 msgstr ""
 
-#: gnu/packages/perl.scm:3146
+#: gnu/packages/perl.scm:3229
 msgid ""
 "Exception::Class allows you to declare exception hierarchies\n"
 "in your modules in a \"Java-esque\" manner."
 msgstr ""
 
-#: gnu/packages/perl.scm:3162
+#: gnu/packages/perl.scm:3245
 msgid "Lightweight exporting of functions and variables"
 msgstr ""
 
-#: gnu/packages/perl.scm:3164
+#: gnu/packages/perl.scm:3247
 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:3184
+#: gnu/packages/perl.scm:3266
 msgid "Exporter with the features of Sub::Exporter but only core dependencies"
 msgstr ""
 
-#: gnu/packages/perl.scm:3185
+#: gnu/packages/perl.scm:3267
 msgid ""
 "Exporter::Tiny supports many of Sub::Exporter's\n"
 "external-facing features including renaming imported functions with the `-as`,\n"
@@ -13427,32 +13265,32 @@ msgid ""
 "only about 40% as many lines of code and with zero non-core dependencies."
 msgstr ""
 
-#: gnu/packages/perl.scm:3208
+#: gnu/packages/perl.scm:3290
 msgid "Build.PL install path logic made easy"
 msgstr ""
 
-#: gnu/packages/perl.scm:3209
+#: gnu/packages/perl.scm:3291
 msgid ""
 "This module tries to make install path resolution as easy as\n"
 "possible."
 msgstr ""
 
-#: gnu/packages/perl.scm:3227
+#: gnu/packages/perl.scm:3309
 msgid "Wrapper for perl's configuration"
 msgstr ""
 
-#: gnu/packages/perl.scm:3228
+#: gnu/packages/perl.scm:3310
 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:3248
+#: gnu/packages/perl.scm:3330
 msgid "Easily build XS extensions that depend on XS extensions"
 msgstr ""
 
-#: gnu/packages/perl.scm:3250
+#: gnu/packages/perl.scm:3332
 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"
@@ -13460,21 +13298,21 @@ msgid ""
 "XS interface besides the perl one."
 msgstr ""
 
-#: gnu/packages/perl.scm:3270
+#: gnu/packages/perl.scm:3352
 msgid "Various portability utilities for module builders"
 msgstr ""
 
-#: gnu/packages/perl.scm:3271
+#: gnu/packages/perl.scm:3353
 msgid ""
 "This module provides various portable helper functions for\n"
 "module building modules."
 msgstr ""
 
-#: gnu/packages/perl.scm:3291
+#: gnu/packages/perl.scm:3373
 msgid "Tool to build C libraries"
 msgstr ""
 
-#: gnu/packages/perl.scm:3292
+#: gnu/packages/perl.scm:3374
 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"
@@ -13482,11 +13320,11 @@ msgid ""
 "self-contained C libraries.  This module main goal is to help in that task."
 msgstr ""
 
-#: gnu/packages/perl.scm:3313
+#: gnu/packages/perl.scm:3395
 msgid "Simplistic interface to pkg-config"
 msgstr ""
 
-#: gnu/packages/perl.scm:3315
+#: gnu/packages/perl.scm:3397
 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"
@@ -13494,21 +13332,21 @@ msgid ""
 "It is really just boilerplate code that you would have written yourself."
 msgstr ""
 
-#: gnu/packages/perl.scm:3347
+#: gnu/packages/perl.scm:3429
 msgid "Watch for changes to files"
 msgstr ""
 
-#: gnu/packages/perl.scm:3348
+#: gnu/packages/perl.scm:3430
 msgid ""
 "This module provides a class to monitor a directory for\n"
 "changes made to any file."
 msgstr ""
 
-#: gnu/packages/perl.scm:3369
+#: gnu/packages/perl.scm:3451
 msgid "Get directories of configuration files"
 msgstr ""
 
-#: gnu/packages/perl.scm:3370
+#: gnu/packages/perl.scm:3452
 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"
@@ -13516,44 +13354,44 @@ msgid ""
 "configuration files from more than one location."
 msgstr ""
 
-#: gnu/packages/perl.scm:3390
+#: gnu/packages/perl.scm:3472
 msgid "Recursively copy files and directories"
 msgstr ""
 
-#: gnu/packages/perl.scm:3391
+#: gnu/packages/perl.scm:3473
 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:3413
+#: gnu/packages/perl.scm:3495
 msgid "Alternative interface to File::Find"
 msgstr ""
 
-#: gnu/packages/perl.scm:3414
+#: gnu/packages/perl.scm:3496
 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:3437
+#: gnu/packages/perl.scm:3519
 msgid "Common rules for searching for Perl things"
 msgstr ""
 
-#: gnu/packages/perl.scm:3438
+#: gnu/packages/perl.scm:3520
 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:3459
+#: gnu/packages/perl.scm:3541
 msgid "Matches patterns in a series of files"
 msgstr ""
 
-#: gnu/packages/perl.scm:3460
+#: gnu/packages/perl.scm:3542
 msgid ""
 "@code{File::Grep} provides similar functionality as perl's\n"
 "builtin @code{grep}, @code{map}, and @code{foreach} commands, but iterating\n"
@@ -13561,34 +13399,34 @@ msgid ""
 "provide a quick dropin when such functionality is needed."
 msgstr ""
 
-#: gnu/packages/perl.scm:3483
+#: gnu/packages/perl.scm:3565
 msgid "Find your home and other directories on any platform"
 msgstr ""
 
-#: gnu/packages/perl.scm:3484
+#: gnu/packages/perl.scm:3566
 msgid ""
 "File::HomeDir is a module for locating the directories that\n"
-"are \"owned\" by a user (typically your user) and to solve the various issues\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:3506
+#: gnu/packages/perl.scm:3587
 msgid "Create or remove directory trees"
 msgstr ""
 
-#: gnu/packages/perl.scm:3507
+#: gnu/packages/perl.scm:3588
 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:3530
+#: gnu/packages/perl.scm:3611
 msgid "Change directory temporarily for a limited scope"
 msgstr ""
 
-#: gnu/packages/perl.scm:3531
+#: gnu/packages/perl.scm:3612
 msgid ""
 "@code{File::pushd} does a temporary @code{chdir} that is\n"
 "easily and automatically reverted, similar to @code{pushd} in some Unix\n"
@@ -13599,24 +13437,24 @@ msgid ""
 "at the end of the scope."
 msgstr ""
 
-#: gnu/packages/perl.scm:3559
+#: gnu/packages/perl.scm:3640
 msgid ""
 "Perl extension for crawling directory trees and compiling\n"
 "lists of files"
 msgstr ""
 
-#: gnu/packages/perl.scm:3562
+#: gnu/packages/perl.scm:3643
 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:3583
+#: gnu/packages/perl.scm:3664
 msgid "Read a file backwards by lines"
 msgstr ""
 
-#: gnu/packages/perl.scm:3584
+#: gnu/packages/perl.scm:3665
 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"
@@ -13628,23 +13466,23 @@ msgid ""
 "the input record separator string on a per file basis."
 msgstr ""
 
-#: gnu/packages/perl.scm:3608
+#: gnu/packages/perl.scm:3691
 msgid "Remove files and directories in Perl"
 msgstr ""
 
-#: gnu/packages/perl.scm:3609
+#: gnu/packages/perl.scm:3692
 msgid ""
-"File::Remove::remove removes files and directories.  It acts\n"
-"like /bin/rm, for the most part.  Although \"unlink\" can be given a list of\n"
-"files, it will not remove directories; this module remedies that.  It also\n"
-"accepts wildcards, * and ?, as arguments for file names."
+"@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:3633
+#: gnu/packages/perl.scm:3715
 msgid "Locate per-dist and per-module shared files"
 msgstr ""
 
-#: gnu/packages/perl.scm:3634
+#: gnu/packages/perl.scm:3716
 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"
@@ -13654,93 +13492,106 @@ msgid ""
 "the installation."
 msgstr ""
 
-#: gnu/packages/perl.scm:3656
+#: gnu/packages/perl.scm:3737
 msgid "Locate per-dist shared files"
 msgstr ""
 
-#: gnu/packages/perl.scm:3657
+#: gnu/packages/perl.scm:3738
 msgid ""
 "File::ShareDir::Dist finds share directories for\n"
 "distributions.  It is a companion module to File::ShareDir."
 msgstr ""
 
-#: gnu/packages/perl.scm:3677
+#: gnu/packages/perl.scm:3758
 msgid "Install shared files"
 msgstr ""
 
-#: gnu/packages/perl.scm:3678
+#: gnu/packages/perl.scm:3759
 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:3697
+#: gnu/packages/perl.scm:3777
 msgid "Reading/Writing/Modifying of complete files"
 msgstr ""
 
-#: gnu/packages/perl.scm:3698
+#: gnu/packages/perl.scm:3778
 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:3721
+#: gnu/packages/perl.scm:3803
 msgid "Simple, sane and efficient module to slurp a file"
 msgstr ""
 
-#: gnu/packages/perl.scm:3722
+#: gnu/packages/perl.scm:3804
 msgid ""
 "This module provides functions for fast and correct file\n"
 "slurping and spewing.  All functions are optionally exported."
 msgstr ""
 
-#: gnu/packages/perl.scm:3739
+#: gnu/packages/perl.scm:3821
 msgid "Simple file reader and writer"
 msgstr ""
 
-#: gnu/packages/perl.scm:3741
+#: gnu/packages/perl.scm:3823
 msgid "This module provides functions for fast reading and writing of files."
 msgstr ""
 
-#: gnu/packages/perl.scm:3760
+#: gnu/packages/perl.scm:3841
 msgid "Return name and handle of a temporary file safely"
 msgstr ""
 
-#: gnu/packages/perl.scm:3761
+#: gnu/packages/perl.scm:3842
 msgid ""
 "File::Temp can be used to create and open temporary files in\n"
 "a safe way."
 msgstr ""
 
-#: gnu/packages/perl.scm:3778
+#: gnu/packages/perl.scm:3859
 msgid "Portable implementation of the `which' utility"
 msgstr ""
 
-#: gnu/packages/perl.scm:3780
+#: gnu/packages/perl.scm:3861
 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:3802
+#: gnu/packages/perl.scm:3883
 msgid "Extended Unix style glob functionality"
 msgstr ""
 
-#: gnu/packages/perl.scm:3803
+#: gnu/packages/perl.scm:3884
 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:3822
+#: gnu/packages/perl.scm:3905
+msgid "Simple and dumb file system watcher"
+msgstr ""
+
+#: gnu/packages/perl.scm:3907
+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."
+msgstr ""
+
+#: gnu/packages/perl.scm:3928
 msgid "Module to handle parsing command line options"
 msgstr ""
 
-#: gnu/packages/perl.scm:3823
+#: gnu/packages/perl.scm:3929
 msgid ""
 "The @code{Getopt::Long} module implements an extended getopt\n"
 "function called @code{GetOptions()}.  It parses the command line from\n"
@@ -13754,11 +13605,11 @@ msgid ""
 "single-letter approach, is provided but not enabled by default."
 msgstr ""
 
-#: gnu/packages/perl.scm:3857
+#: gnu/packages/perl.scm:3963
 msgid "Getopt::Long, but simpler and more powerful"
 msgstr ""
 
-#: gnu/packages/perl.scm:3858
+#: gnu/packages/perl.scm:3964
 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"
@@ -13766,31 +13617,31 @@ msgid ""
 "usage (help) messages, data validation, and a few other useful features."
 msgstr ""
 
-#: gnu/packages/perl.scm:3876
+#: gnu/packages/perl.scm:3982
 msgid "Table-driven argument parsing for Perl"
 msgstr ""
 
-#: gnu/packages/perl.scm:3878
+#: gnu/packages/perl.scm:3984
 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:3899
+#: gnu/packages/perl.scm:4005
 msgid "Graph data structures and algorithms"
 msgstr ""
 
-#: gnu/packages/perl.scm:3900
+#: gnu/packages/perl.scm:4006
 msgid ""
 "This is @code{Graph}, a Perl module for dealing with graphs,\n"
 "the abstract data structures."
 msgstr ""
 
-#: gnu/packages/perl.scm:3917
+#: gnu/packages/perl.scm:4023
 msgid "Safe cleanup blocks implemented as guards"
 msgstr ""
 
-#: gnu/packages/perl.scm:3918
+#: gnu/packages/perl.scm:4024
 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"
@@ -13801,11 +13652,11 @@ msgid ""
 "which are tied to the scope exit."
 msgstr ""
 
-#: gnu/packages/perl.scm:3954
+#: gnu/packages/perl.scm:4060
 msgid "Lightweight field hash for inside-out objects"
 msgstr ""
 
-#: gnu/packages/perl.scm:3955
+#: gnu/packages/perl.scm:4061
 msgid ""
 "@code{Hash::FieldHash} provides the field hash mechanism\n"
 "which supports the inside-out technique.  It is an alternative to\n"
@@ -13813,11 +13664,11 @@ msgid ""
 "relic support."
 msgstr ""
 
-#: gnu/packages/perl.scm:3975
+#: gnu/packages/perl.scm:4081
 msgid "Merge arbitrarily deep hashes into a single hash"
 msgstr ""
 
-#: gnu/packages/perl.scm:3976
+#: gnu/packages/perl.scm:4082
 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"
@@ -13827,21 +13678,21 @@ msgid ""
 "merged."
 msgstr ""
 
-#: gnu/packages/perl.scm:3998
+#: gnu/packages/perl.scm:4104
 msgid "Store multiple values per key"
 msgstr ""
 
-#: gnu/packages/perl.scm:3999
+#: gnu/packages/perl.scm:4105
 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:4017
+#: gnu/packages/perl.scm:4123
 msgid "Alternative but compatible interface to modules that export symbols"
 msgstr ""
 
-#: gnu/packages/perl.scm:4018
+#: gnu/packages/perl.scm:4124
 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"
@@ -13851,11 +13702,11 @@ msgid ""
 "variables."
 msgstr ""
 
-#: gnu/packages/perl.scm:4042
+#: gnu/packages/perl.scm:4148
 msgid "Import packages into other packages"
 msgstr ""
 
-#: gnu/packages/perl.scm:4043
+#: gnu/packages/perl.scm:4149
 msgid ""
 "Writing exporters is a pain.  Some use Exporter, some use\n"
 "Sub::Exporter, some use Moose::Exporter, some use Exporter::Declare ... and\n"
@@ -13865,30 +13716,30 @@ msgid ""
 "compilation.  Import::Into provides global methods to make this painless."
 msgstr ""
 
-#: gnu/packages/perl.scm:4065
+#: gnu/packages/perl.scm:4171
 msgid "Use modules in inc/ if newer than installed"
 msgstr ""
 
-#: gnu/packages/perl.scm:4066
+#: gnu/packages/perl.scm:4172
 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:4086
+#: gnu/packages/perl.scm:4192
 msgid "Lexically warn about using the indirect method call syntax"
 msgstr ""
 
-#: gnu/packages/perl.scm:4088
+#: gnu/packages/perl.scm:4194
 msgid "Indirect warns about using the indirect method call syntax."
 msgstr ""
 
-#: gnu/packages/perl.scm:4108
+#: gnu/packages/perl.scm:4214
 msgid "Write Perl subroutines in other programming languages"
 msgstr "Écrire des sous-routines Perl dans d'autres langages de programmation"
 
-#: gnu/packages/perl.scm:4109
+#: gnu/packages/perl.scm:4215
 msgid ""
 "The @code{Inline} module allows you to put source code\n"
 "from other programming languages directly (inline) in a Perl script or\n"
@@ -13896,11 +13747,11 @@ msgid ""
 "for immediate access from Perl."
 msgstr ""
 
-#: gnu/packages/perl.scm:4139
+#: gnu/packages/perl.scm:4245
 msgid "C Language Support for Inline"
 msgstr ""
 
-#: gnu/packages/perl.scm:4140
+#: gnu/packages/perl.scm:4246
 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"
@@ -13909,11 +13760,11 @@ msgid ""
 "It also goes a bit into Perl C internals."
 msgstr ""
 
-#: gnu/packages/perl.scm:4166
+#: gnu/packages/perl.scm:4272
 msgid "@code{IO::All} to Larry Wall!"
 msgstr ""
 
-#: gnu/packages/perl.scm:4167
+#: gnu/packages/perl.scm:4273
 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"
@@ -13921,11 +13772,11 @@ msgid ""
 "@code{IO::All} object.  And that object can do it all!"
 msgstr ""
 
-#: gnu/packages/perl.scm:4189
+#: gnu/packages/perl.scm:4295
 msgid "Capture STDOUT and STDERR from Perl code, subprocesses or XS"
 msgstr ""
 
-#: gnu/packages/perl.scm:4190
+#: gnu/packages/perl.scm:4296
 msgid ""
 "@code{IO::CaptureOutput} provides routines for capturing\n"
 "@code{STDOUT} and @code{STDERR} from perl subroutines, forked system\n"
@@ -13935,66 +13786,76 @@ msgid ""
 "try @code{Capture::Tiny} instead."
 msgstr ""
 
-#: gnu/packages/perl.scm:4212
+#: gnu/packages/perl.scm:4317
 msgid "Utilities for interactive I/O"
 msgstr ""
 
-#: gnu/packages/perl.scm:4213
+#: gnu/packages/perl.scm:4318
 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:4232
+#: gnu/packages/perl.scm:4352
+msgid "Select a pager and pipe text to it"
+msgstr ""
+
+#: gnu/packages/perl.scm:4354
+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
 msgid "Emulate file interface for in-core strings"
 msgstr ""
 
-#: gnu/packages/perl.scm:4233
+#: gnu/packages/perl.scm:4373
 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:4251
+#: gnu/packages/perl.scm:4391
 msgid "IO:: interface for reading/writing an array of lines"
 msgstr ""
 
-#: gnu/packages/perl.scm:4252
+#: gnu/packages/perl.scm:4392
 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:4270
+#: gnu/packages/perl.scm:4410
 msgid "Perl interface to pseudo ttys"
 msgstr ""
 
-#: gnu/packages/perl.scm:4272
+#: gnu/packages/perl.scm:4412
 msgid ""
-"This package provides the 'IO::Pty' and 'IO::Tty' Perl interfaces to\n"
-"pseudo ttys."
+"This package provides the @code{IO::Pty} and @code{IO::Tty} Perl\n"
+"interfaces to pseudo ttys."
 msgstr ""
-"Ce paquet fournit les interfaces Perl « IO::Pty » et « IO::Tty » avec\n"
+"Ce paquet fournit les interfaces Perl @code{IO::Pty} et @code{IO::Tty} avec\n"
 "les pseudo tty."
 
-#: gnu/packages/perl.scm:4290
+#: gnu/packages/perl.scm:4429
 msgid "Run interactive command-line programs"
 msgstr ""
 
-#: gnu/packages/perl.scm:4291
+#: gnu/packages/perl.scm:4430
 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:4320
+#: gnu/packages/perl.scm:4459
 msgid "Run system() and background procs w/ piping, redirs, ptys"
 msgstr ""
 
-#: gnu/packages/perl.scm:4321
+#: gnu/packages/perl.scm:4460
 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"
@@ -14002,11 +13863,11 @@ msgid ""
 "both supported and may be mixed."
 msgstr ""
 
-#: gnu/packages/perl.scm:4339
+#: gnu/packages/perl.scm:4478
 msgid "Run a subprocess with input/output redirection"
 msgstr ""
 
-#: gnu/packages/perl.scm:4341
+#: gnu/packages/perl.scm:4480
 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"
@@ -14014,21 +13875,21 @@ msgid ""
 "Perlish API and none of the bloat and rarely used features of IPC::Run."
 msgstr ""
 
-#: gnu/packages/perl.scm:4364
+#: gnu/packages/perl.scm:4503
 msgid "Lightweight interface to shared memory"
 msgstr "Interface légère pour la mémoire partagée"
 
-#: gnu/packages/perl.scm:4365
+#: gnu/packages/perl.scm:4504
 msgid ""
 "IPC::ShareLite provides a simple interface to shared memory,\n"
 "allowing data to be efficiently communicated between processes."
 msgstr ""
 
-#: gnu/packages/perl.scm:4383
+#: gnu/packages/perl.scm:4522
 msgid "Run commands simply, with detailed diagnostics"
 msgstr ""
 
-#: gnu/packages/perl.scm:4384
+#: gnu/packages/perl.scm:4523
 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"
@@ -14039,21 +13900,21 @@ msgid ""
 "commands."
 msgstr ""
 
-#: gnu/packages/perl.scm:4409
+#: gnu/packages/perl.scm:4548
 msgid "JSON encoder/decoder for Perl"
 msgstr ""
 
-#: gnu/packages/perl.scm:4410
+#: gnu/packages/perl.scm:4549
 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:4435
+#: gnu/packages/perl.scm:4574
 msgid "Wrapper for Perl JSON classes"
 msgstr ""
 
-#: gnu/packages/perl.scm:4437
+#: gnu/packages/perl.scm:4576
 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"
@@ -14061,11 +13922,11 @@ msgid ""
 "installed."
 msgstr ""
 
-#: gnu/packages/perl.scm:4461
+#: gnu/packages/perl.scm:4600
 msgid "Cpanel::JSON::XS with fallback"
 msgstr ""
 
-#: gnu/packages/perl.scm:4462
+#: gnu/packages/perl.scm:4601
 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"
@@ -14073,23 +13934,23 @@ msgid ""
 "either uses the first module it finds or throws an error."
 msgstr ""
 
-#: gnu/packages/perl.scm:4485
+#: gnu/packages/perl.scm:4626
 msgid "JSON serialising/deserialising for Perl"
 msgstr ""
 
-#: gnu/packages/perl.scm:4508
+#: gnu/packages/perl.scm:4649
 msgid "Prevent leakage of lexical hints"
 msgstr ""
 
-#: gnu/packages/perl.scm:4510
+#: gnu/packages/perl.scm:4651
 msgid "Lexical::SealRequireHints prevents leakage of lexical hints"
 msgstr ""
 
-#: gnu/packages/perl.scm:4527
+#: gnu/packages/perl.scm:4667
 msgid "Bringing loggers and listeners together"
 msgstr ""
 
-#: gnu/packages/perl.scm:4528
+#: gnu/packages/perl.scm:4668
 msgid ""
 "@code{Log::Any} provides a standard log production API for\n"
 "modules.  @code{Log::Any::Adapter} allows applications to choose the mechanism\n"
@@ -14102,121 +13963,121 @@ msgid ""
 "\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 'null' logging activity, so a module can safely log without\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:4564
+#: gnu/packages/perl.scm:4704
 msgid "Log::Any adapter for Log::Log4perl"
 msgstr ""
 
-#: gnu/packages/perl.scm:4565
+#: gnu/packages/perl.scm:4705
 msgid ""
 "@code{Log::Any::Adapter::Log4perl} provides a\n"
 "@code{Log::Any} adapter using @code{Log::Log4perl} for logging."
 msgstr ""
 
-#: gnu/packages/perl.scm:4586
+#: gnu/packages/perl.scm:4726
 msgid "Log4j implementation for Perl"
 msgstr ""
 
-#: gnu/packages/perl.scm:4587
+#: gnu/packages/perl.scm:4727
 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:4607
+#: gnu/packages/perl.scm:4747
 msgid "Log::Report in the lightest form"
 msgstr ""
 
-#: gnu/packages/perl.scm:4609
+#: gnu/packages/perl.scm:4749
 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 'Optional' will also use the full\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:4634
+#: gnu/packages/perl.scm:4774
 msgid "Get messages to users and logs"
 msgstr ""
 
-#: gnu/packages/perl.scm:4636
+#: gnu/packages/perl.scm:4776
 msgid ""
 "@code{Log::Report} combines three tasks which are closely related in\n"
 "one: logging, exceptions, and translations."
 msgstr ""
 
-#: gnu/packages/perl.scm:4665
+#: gnu/packages/perl.scm:4804
 msgid "High-level interface to Uniforum message translation"
 msgstr ""
 
-#: gnu/packages/perl.scm:4666
+#: gnu/packages/perl.scm:4805
 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:4685
+#: gnu/packages/perl.scm:4824
 msgid "Transliterate text between writing systems"
 msgstr ""
 
-#: gnu/packages/perl.scm:4686
+#: gnu/packages/perl.scm:4825
 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:4710
+#: gnu/packages/perl.scm:4849
 msgid "Combination of List::Util and List::MoreUtils"
 msgstr ""
 
-#: gnu/packages/perl.scm:4711
+#: gnu/packages/perl.scm:4850
 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:4733
+#: gnu/packages/perl.scm:4872
 msgid "Compare elements of two or more lists"
 msgstr ""
 
-#: gnu/packages/perl.scm:4734
+#: gnu/packages/perl.scm:4873
 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:4769 gnu/packages/perl.scm:4820
+#: gnu/packages/perl.scm:4908 gnu/packages/perl.scm:4958
 msgid "Provide the stuff missing in List::Util"
 msgstr ""
 
-#: gnu/packages/perl.scm:4770
+#: gnu/packages/perl.scm:4909
 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:4792
+#: gnu/packages/perl.scm:4931
 msgid "Provide the stuff missing in List::Util in XS"
 msgstr ""
 
-#: gnu/packages/perl.scm:4793
+#: gnu/packages/perl.scm:4932
 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:4821
+#: gnu/packages/perl.scm:4959
 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"
@@ -14228,11 +14089,11 @@ msgid ""
 "portions of this module couldn't be compiled on this machine."
 msgstr ""
 
-#: gnu/packages/perl.scm:4850
+#: gnu/packages/perl.scm:4988
 msgid "Bundle of ancient email modules"
 msgstr ""
 
-#: gnu/packages/perl.scm:4851
+#: gnu/packages/perl.scm:4989
 msgid ""
 "MailTools contains the following modules:\n"
 "@table @asis\n"
@@ -14259,85 +14120,85 @@ msgid ""
 "@end table"
 msgstr ""
 
-#: gnu/packages/perl.scm:4890
+#: gnu/packages/perl.scm:5028
 msgid "Solution of bezier curves"
 msgstr ""
 
-#: gnu/packages/perl.scm:4891
+#: gnu/packages/perl.scm:5029
 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:4910
+#: gnu/packages/perl.scm:5048
 msgid "Perl extension for rounding numbers"
 msgstr "Extension Perl pour arrondir des nombres"
 
-#: gnu/packages/perl.scm:4911
+#: gnu/packages/perl.scm:5049
 msgid ""
 "@code{Math::Round} provides functions to round numbers,\n"
 "both positive and negative, in various ways."
 msgstr ""
 
-#: gnu/packages/perl.scm:4929
+#: gnu/packages/perl.scm:5067
 msgid "Make functions faster by trading space for time"
 msgstr ""
 
-#: gnu/packages/perl.scm:4930
+#: gnu/packages/perl.scm:5068
 msgid ""
 "This package transparently speeds up functions by caching\n"
 "return values, trading space for time."
 msgstr ""
 
-#: gnu/packages/perl.scm:4948
+#: gnu/packages/perl.scm:5086
 msgid "Expiry plug-in for Memoize that adds LRU cache expiration"
 msgstr ""
 
-#: gnu/packages/perl.scm:4949
+#: gnu/packages/perl.scm:5087
 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:4967
+#: gnu/packages/perl.scm:5105
 msgid "Charset information for MIME messages"
 msgstr ""
 
-#: gnu/packages/perl.scm:4969
+#: gnu/packages/perl.scm:5107
 msgid ""
 "@code{MIME::Charset} provides information about character sets used for\n"
 "MIME messages on Internet."
 msgstr ""
 
-#: gnu/packages/perl.scm:4996
+#: gnu/packages/perl.scm:5134
 msgid "Tools to manipulate MIME messages"
 msgstr "Outils de manipulation des messages MIME"
 
-#: gnu/packages/perl.scm:4998
+#: gnu/packages/perl.scm:5136
 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:5017
+#: gnu/packages/perl.scm:5155
 msgid "Definition of MIME types"
 msgstr ""
 
-#: gnu/packages/perl.scm:5018
+#: gnu/packages/perl.scm:5156
 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:5040
+#: gnu/packages/perl.scm:5178
 msgid "Write your linewise code for handles; this does the rest"
 msgstr ""
 
-#: gnu/packages/perl.scm:5041
+#: gnu/packages/perl.scm:5179
 msgid ""
 "It's boring to deal with opening files for IO, converting\n"
 "strings to handle-like objects, and all that.  With\n"
@@ -14346,21 +14207,21 @@ msgid ""
 "file names are added for you."
 msgstr ""
 
-#: gnu/packages/perl.scm:5067
+#: gnu/packages/perl.scm:5204
 msgid "Enable all of the features of Modern Perl with one import"
 msgstr ""
 
-#: gnu/packages/perl.scm:5068
+#: gnu/packages/perl.scm:5205
 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:5096
+#: gnu/packages/perl.scm:5233
 msgid "Tiny replacement for Module::Build"
 msgstr ""
 
-#: gnu/packages/perl.scm:5097
+#: gnu/packages/perl.scm:5234
 msgid ""
 "Many Perl distributions use a Build.PL file instead of a\n"
 "Makefile.PL file to drive distribution configuration, build, test and\n"
@@ -14370,11 +14231,11 @@ msgid ""
 "has less than 120, yet supports the features needed by most distributions."
 msgstr ""
 
-#: gnu/packages/perl.scm:5125
+#: gnu/packages/perl.scm:5262
 msgid "Module::Build class for building XS modules"
 msgstr ""
 
-#: gnu/packages/perl.scm:5127
+#: gnu/packages/perl.scm:5264
 msgid ""
 "@code{Module::Build::XSUtil} is subclass of @code{Module::Build}\n"
 "for support building XS modules.\n"
@@ -14398,11 +14259,11 @@ msgid ""
 "@end enumerate"
 msgstr ""
 
-#: gnu/packages/perl.scm:5163
+#: gnu/packages/perl.scm:5300
 msgid "Find and use installed modules in a (sub)category"
 msgstr ""
 
-#: gnu/packages/perl.scm:5164
+#: gnu/packages/perl.scm:5301
 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"
@@ -14410,11 +14271,11 @@ msgid ""
 "subcategories."
 msgstr ""
 
-#: gnu/packages/perl.scm:5190
+#: gnu/packages/perl.scm:5327
 msgid "Loads alternate underlying implementations for a module"
 msgstr ""
 
-#: gnu/packages/perl.scm:5191
+#: gnu/packages/perl.scm:5328
 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"
@@ -14423,11 +14284,11 @@ msgid ""
 "implementations."
 msgstr ""
 
-#: gnu/packages/perl.scm:5229
+#: gnu/packages/perl.scm:5366
 msgid "Standalone, extensible Perl module installer"
 msgstr ""
 
-#: gnu/packages/perl.scm:5230
+#: gnu/packages/perl.scm:5367
 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"
@@ -14435,11 +14296,11 @@ msgid ""
 "installation version 5.005 or newer."
 msgstr ""
 
-#: gnu/packages/perl.scm:5256
+#: gnu/packages/perl.scm:5393
 msgid "Parse and examine a Perl distribution @file{MANIFEST} file"
 msgstr ""
 
-#: gnu/packages/perl.scm:5258
+#: gnu/packages/perl.scm:5395
 msgid ""
 "@code{Module::Manifest} is a simple utility module created originally for\n"
 "use in @code{Module::Inspector}.\n"
@@ -14449,52 +14310,52 @@ msgid ""
 "@file{MANIFEST.SKIP} file and check that."
 msgstr ""
 
-#: gnu/packages/perl.scm:5281
+#: gnu/packages/perl.scm:5418
 msgid "Give your Perl module the ability to have plugins"
 msgstr ""
 
-#: gnu/packages/perl.scm:5282
+#: gnu/packages/perl.scm:5419
 msgid ""
 "This module provides a simple but extensible way of having\n"
-"'plugins' for your Perl module."
+"@code{plugins} for your Perl module."
 msgstr ""
 
-#: gnu/packages/perl.scm:5301
+#: gnu/packages/perl.scm:5438
 msgid "Perl runtime module handling"
 msgstr ""
 
-#: gnu/packages/perl.scm:5302
+#: gnu/packages/perl.scm:5439
 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:5325
+#: gnu/packages/perl.scm:5462
 msgid "Provide information on conflicts for Module::Runtime"
 msgstr ""
 
-#: gnu/packages/perl.scm:5326
+#: gnu/packages/perl.scm:5463
 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:5347
+#: gnu/packages/perl.scm:5484
 msgid "Recursively scan Perl code for dependencies"
 msgstr ""
 
-#: gnu/packages/perl.scm:5348
+#: gnu/packages/perl.scm:5485
 msgid ""
 "Module::ScanDeps is a module to recursively scan Perl\n"
 "programs for dependencies."
 msgstr ""
 
-#: gnu/packages/perl.scm:5368
+#: gnu/packages/perl.scm:5505
 msgid "Module name tools and transformations"
 msgstr ""
 
-#: gnu/packages/perl.scm:5369
+#: gnu/packages/perl.scm:5506
 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"
@@ -14502,11 +14363,11 @@ msgid ""
 "module names to relative paths."
 msgstr ""
 
-#: gnu/packages/perl.scm:5399
+#: gnu/packages/perl.scm:5536
 msgid "Minimalist Object Orientation (with Moose compatibility)"
 msgstr ""
 
-#: gnu/packages/perl.scm:5400
+#: gnu/packages/perl.scm:5537
 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"
@@ -14514,11 +14375,11 @@ msgid ""
 "Moose and is optimised for rapid startup."
 msgstr ""
 
-#: gnu/packages/perl.scm:5507
+#: gnu/packages/perl.scm:5644
 msgid "Postmodern object system for Perl 5"
 msgstr ""
 
-#: gnu/packages/perl.scm:5509
+#: gnu/packages/perl.scm:5646
 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"
@@ -14529,11 +14390,11 @@ msgid ""
 "sentences."
 msgstr ""
 
-#: gnu/packages/perl.scm:5538
+#: gnu/packages/perl.scm:5674
 msgid "Emulate Class::Accessor::Fast behavior using Moose attributes"
 msgstr ""
 
-#: gnu/packages/perl.scm:5539
+#: gnu/packages/perl.scm:5675
 msgid ""
 "This module attempts to emulate the behavior of\n"
 "Class::Accessor::Fast as accurately as possible using the Moose attribute\n"
@@ -14541,21 +14402,21 @@ msgid ""
 "private methods are not."
 msgstr ""
 
-#: gnu/packages/perl.scm:5574
+#: gnu/packages/perl.scm:5709
 msgid "Moose role for processing command line options"
 msgstr ""
 
-#: gnu/packages/perl.scm:5575
+#: gnu/packages/perl.scm:5710
 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:5596
+#: gnu/packages/perl.scm:5731
 msgid "Mark overload code symbols as methods"
 msgstr ""
 
-#: gnu/packages/perl.scm:5597
+#: gnu/packages/perl.scm:5732
 msgid ""
 "MooseX::MarkAsMethods allows one to easily mark certain\n"
 "functions as Moose methods.  This will allow other packages such as\n"
@@ -14565,21 +14426,21 @@ msgid ""
 "overloads will \"just work\"."
 msgstr ""
 
-#: gnu/packages/perl.scm:5627
+#: gnu/packages/perl.scm:5762
 msgid "Code attribute introspection"
 msgstr ""
 
-#: gnu/packages/perl.scm:5628
+#: gnu/packages/perl.scm:5763
 msgid ""
 "This module allows code attributes of methods to be\n"
 "introspected using Moose meta method objects."
 msgstr ""
 
-#: gnu/packages/perl.scm:5654
+#: gnu/packages/perl.scm:5789
 msgid "Subclassing of non-Moose classes"
 msgstr ""
 
-#: gnu/packages/perl.scm:5655
+#: gnu/packages/perl.scm:5790
 msgid ""
 "MooseX::NonMoose allows for easily subclassing non-Moose\n"
 "classes with Moose, taking care of the details connected with doing this, such\n"
@@ -14588,31 +14449,31 @@ msgid ""
 "BUILD methods are called.  It tries to be as non-intrusive as possible."
 msgstr ""
 
-#: gnu/packages/perl.scm:5684
+#: gnu/packages/perl.scm:5818
 msgid "Extension of Params::Validate using Moose's types"
 msgstr ""
 
-#: gnu/packages/perl.scm:5685
+#: gnu/packages/perl.scm:5819
 msgid ""
 "This module fills a gap in Moose by adding method parameter\n"
 "validation to Moose."
 msgstr ""
 
-#: gnu/packages/perl.scm:5706
+#: gnu/packages/perl.scm:5840
 msgid "Apply roles to a related Perl class"
 msgstr ""
 
-#: gnu/packages/perl.scm:5707
+#: gnu/packages/perl.scm:5841
 msgid ""
 "This module applies roles to make a subclass instead of\n"
 "manually setting up a subclass."
 msgstr ""
 
-#: gnu/packages/perl.scm:5734
+#: gnu/packages/perl.scm:5867
 msgid "Moose roles with composition parameters"
 msgstr ""
 
-#: gnu/packages/perl.scm:5735
+#: gnu/packages/perl.scm:5868
 msgid ""
 "Because Moose roles serve many different masters, they\n"
 "usually provide only the least common denominator of functionality.  To\n"
@@ -14622,11 +14483,11 @@ msgid ""
 "Parameterized roles offer a solution to these (and other) kinds of problems."
 msgstr ""
 
-#: gnu/packages/perl.scm:5761
+#: gnu/packages/perl.scm:5894
 msgid "Roles which support overloading"
 msgstr ""
 
-#: gnu/packages/perl.scm:5762
+#: gnu/packages/perl.scm:5895
 msgid ""
 "MooseX::Role::WithOverloading allows you to write a\n"
 "Moose::Role which defines overloaded operators and allows those overload\n"
@@ -14634,11 +14495,11 @@ msgid ""
 "where plain Moose::Roles would lose the overloading."
 msgstr ""
 
-#: gnu/packages/perl.scm:5784
+#: gnu/packages/perl.scm:5917
 msgid "Name your accessors foo() and set_foo()"
 msgstr ""
 
-#: gnu/packages/perl.scm:5785
+#: gnu/packages/perl.scm:5918
 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"
@@ -14646,82 +14507,82 @@ msgid ""
 "accessor, while set methods are prefixed with \"_set_\"."
 msgstr ""
 
-#: gnu/packages/perl.scm:5811
+#: gnu/packages/perl.scm:5944
 msgid "Strict object constructors for Moose"
 msgstr ""
 
-#: gnu/packages/perl.scm:5812
+#: gnu/packages/perl.scm:5945
 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:5840
+#: gnu/packages/perl.scm:5973
 msgid "Trait loading and resolution for Moose"
 msgstr ""
 
-#: gnu/packages/perl.scm:5841
+#: gnu/packages/perl.scm:5974
 msgid ""
 "Adds support on top of MooseX::Traits for class precedence\n"
 "search for traits and some extra attributes."
 msgstr ""
 
-#: gnu/packages/perl.scm:5867
+#: gnu/packages/perl.scm:6000
 msgid "Organise your Moose types in libraries"
 msgstr ""
 
-#: gnu/packages/perl.scm:5868
+#: gnu/packages/perl.scm:6001
 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:5899
+#: gnu/packages/perl.scm:6032
 msgid "DateTime related constraints and coercions for Moose"
 msgstr ""
 
-#: gnu/packages/perl.scm:5900
+#: gnu/packages/perl.scm:6033
 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:5932
+#: gnu/packages/perl.scm:6064
 msgid "Extensions to MooseX::Types::DateTime"
 msgstr ""
 
-#: gnu/packages/perl.scm:5933
+#: gnu/packages/perl.scm:6065
 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:5962
+#: gnu/packages/perl.scm:6093
 msgid "ClassName type constraints for Moose"
 msgstr ""
 
-#: gnu/packages/perl.scm:5963
+#: gnu/packages/perl.scm:6094
 msgid ""
 "MooseX::Types::LoadableClass provides a ClassName type\n"
 "constraint with coercion to load the class."
 msgstr ""
 
-#: gnu/packages/perl.scm:5989
+#: gnu/packages/perl.scm:6120
 msgid "Using Moo and MooX:: packages the most lazy way"
 msgstr ""
 
-#: gnu/packages/perl.scm:5990
+#: gnu/packages/perl.scm:6121
 msgid "Contains the MooX and MooX::Role packages."
 msgstr ""
 
-#: gnu/packages/perl.scm:6017
+#: gnu/packages/perl.scm:6147
 msgid "Giving an easy Moo style way to make command organized CLI apps"
 msgstr ""
 
-#: gnu/packages/perl.scm:6018
+#: gnu/packages/perl.scm:6148
 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"
@@ -14730,11 +14591,11 @@ msgid ""
 "most specific one) is instantiated."
 msgstr ""
 
-#: gnu/packages/perl.scm:6051
+#: gnu/packages/perl.scm:6181
 msgid "Moo eXtension for initializing objects from config file"
 msgstr ""
 
-#: gnu/packages/perl.scm:6052
+#: gnu/packages/perl.scm:6182
 msgid ""
 "This module is intended to easily load initialization values\n"
 "for attributes on object construction from an appropriate config file.  The\n"
@@ -14742,33 +14603,33 @@ msgid ""
 "@code{MooX::ConfigFromFile} ensures that the role is applied."
 msgstr ""
 
-#: gnu/packages/perl.scm:6076
+#: gnu/packages/perl.scm:6206
 msgid "Moo eXtension for @code{File::ConfigDir}"
 msgstr ""
 
-#: gnu/packages/perl.scm:6077
+#: gnu/packages/perl.scm:6207
 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:6112
+#: gnu/packages/perl.scm:6242
 msgid "NativeTrait-like behavior for Moo"
 msgstr ""
 
-#: gnu/packages/perl.scm:6114
+#: gnu/packages/perl.scm:6244
 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."
 msgstr ""
 
-#: gnu/packages/perl.scm:6145
+#: gnu/packages/perl.scm:6275
 msgid "Easily translate Moose code to Moo"
 msgstr ""
 
-#: gnu/packages/perl.scm:6147
+#: gnu/packages/perl.scm:6277
 msgid ""
 "MooX::late does the following:\n"
 "@enumerate\n"
@@ -14782,11 +14643,11 @@ msgid ""
 "@end enumerate"
 msgstr ""
 
-#: gnu/packages/perl.scm:6202
+#: gnu/packages/perl.scm:6332
 msgid "Explicit Options eXtension for Object Class"
 msgstr ""
 
-#: gnu/packages/perl.scm:6203
+#: gnu/packages/perl.scm:6333
 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"
@@ -14795,32 +14656,32 @@ msgid ""
 "generate a command line tool."
 msgstr ""
 
-#: gnu/packages/perl.scm:6230
+#: gnu/packages/perl.scm:6359
 msgid "Moosish types and type builder"
 msgstr ""
 
-#: gnu/packages/perl.scm:6231
+#: gnu/packages/perl.scm:6360
 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:6260
+#: gnu/packages/perl.scm:6389
 msgid "Fast Moose-compatible object system for perl5"
 msgstr ""
 
-#: gnu/packages/perl.scm:6262
+#: gnu/packages/perl.scm:6391
 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:6285
+#: gnu/packages/perl.scm:6414
 msgid "Extend attribute interfaces for Mouse"
 msgstr "Interfaces d'attribut étendu pour Mouse"
 
-#: gnu/packages/perl.scm:6287
+#: gnu/packages/perl.scm:6416
 msgid ""
 "While @code{Mouse} attributes provide a way to name your accessors,\n"
 "readers, writers, clearers and predicates, @code{MouseX::NativeTraits}\n"
@@ -14828,30 +14689,30 @@ msgid ""
 "of data."
 msgstr ""
 
-#: gnu/packages/perl.scm:6307
+#: gnu/packages/perl.scm:6436
 msgid "Mozilla's CA cert bundle in PEM format"
 msgstr ""
 
-#: gnu/packages/perl.scm:6308
+#: gnu/packages/perl.scm:6437
 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:6334
+#: gnu/packages/perl.scm:6463
 msgid "Disable multidimensional array emulation"
 msgstr ""
 
-#: gnu/packages/perl.scm:6336
+#: gnu/packages/perl.scm:6465
 msgid "Multidimensional disables multidimensional array emulation."
 msgstr ""
 
-#: gnu/packages/perl.scm:6353
+#: gnu/packages/perl.scm:6482
 msgid "MRO interface compatibility for Perls < 5.9.5"
 msgstr ""
 
-#: gnu/packages/perl.scm:6354
+#: gnu/packages/perl.scm:6483
 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"
@@ -14859,11 +14720,11 @@ msgid ""
 "Perl (back to 5.6.0)."
 msgstr ""
 
-#: gnu/packages/perl.scm:6381
+#: gnu/packages/perl.scm:6510
 msgid "Keep imports out of your namespace"
 msgstr ""
 
-#: gnu/packages/perl.scm:6382
+#: gnu/packages/perl.scm:6511
 msgid ""
 "The namespace::autoclean pragma will remove all imported\n"
 "symbols at the end of the current package's compile cycle.  Functions called\n"
@@ -14874,11 +14735,11 @@ msgid ""
 "anything that looks like a method."
 msgstr ""
 
-#: gnu/packages/perl.scm:6408
+#: gnu/packages/perl.scm:6537
 msgid "Keep imports and functions out of your namespace"
 msgstr ""
 
-#: gnu/packages/perl.scm:6409
+#: gnu/packages/perl.scm:6538
 msgid ""
 "The namespace::clean pragma will remove all previously\n"
 "declared or imported symbols at the end of the current package's compile\n"
@@ -14886,11 +14747,11 @@ msgid ""
 "name, but they won't show up as methods on your class or instances."
 msgstr ""
 
-#: gnu/packages/perl.scm:6429
+#: gnu/packages/perl.scm:6558
 msgid "Non-blocking system DNS resolver"
 msgstr ""
 
-#: gnu/packages/perl.scm:6431
+#: gnu/packages/perl.scm:6560
 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"
@@ -14899,11 +14760,11 @@ msgid ""
 "system threads instead of Perl threads."
 msgstr ""
 
-#: gnu/packages/perl.scm:6459
+#: gnu/packages/perl.scm:6583
 msgid "Internationalizing Domain Names in Applications (IDNA)"
 msgstr ""
 
-#: gnu/packages/perl.scm:6461
+#: gnu/packages/perl.scm:6585
 msgid ""
 "Internationalized Domain Names (IDNs) use characters drawn from a large\n"
 "repertoire (Unicode), but IDNA allows the non-ASCII characters to be\n"
@@ -14914,31 +14775,31 @@ msgid ""
 "using whatever IDNA standard is the best choice at the moment."
 msgstr ""
 
-#: gnu/packages/perl.scm:6487
+#: gnu/packages/perl.scm:6611
 msgid "Perl client for Etsy's statsd daemon"
 msgstr ""
 
-#: gnu/packages/perl.scm:6488
+#: gnu/packages/perl.scm:6612
 msgid ""
 "This module implement a UDP client for the statsd statistics\n"
 "collector daemon in use at Etsy.com."
 msgstr ""
 
-#: gnu/packages/perl.scm:6506
+#: gnu/packages/perl.scm:6630
 msgid "Numeric comparisons"
 msgstr ""
 
-#: gnu/packages/perl.scm:6507
+#: gnu/packages/perl.scm:6631
 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:6525
+#: gnu/packages/perl.scm:6649
 msgid "Convert numbers to strings with pretty formatting"
 msgstr ""
 
-#: gnu/packages/perl.scm:6526
+#: gnu/packages/perl.scm:6650
 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"
@@ -14949,32 +14810,32 @@ msgid ""
 "the locale information or can be specified by the user."
 msgstr ""
 
-#: gnu/packages/perl.scm:6550
+#: gnu/packages/perl.scm:6674
 msgid "Perl extension defining ranges of numbers"
 msgstr "Extension Perl pour définir des intervalles de nombres"
 
-#: gnu/packages/perl.scm:6551
+#: gnu/packages/perl.scm:6675
 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:6571
+#: gnu/packages/perl.scm:6694
 msgid "Generate cryptographic signatures for objects"
 msgstr ""
 
-#: gnu/packages/perl.scm:6572
+#: gnu/packages/perl.scm:6695
 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:6593
+#: gnu/packages/perl.scm:6716
 msgid "Read and write OLE storage files"
 msgstr ""
 
-#: gnu/packages/perl.scm:6594
+#: gnu/packages/perl.scm:6717
 msgid ""
 "This module allows you to read and write\n"
 "an OLE-Structured file.  @dfn{OLE} (Object Linking and Embedding) is a\n"
@@ -14982,43 +14843,43 @@ msgid ""
 "documents within a single file."
 msgstr ""
 
-#: gnu/packages/perl.scm:6617
+#: gnu/packages/perl.scm:6740
 msgid "Anonymous packages"
 msgstr ""
 
-#: gnu/packages/perl.scm:6618
+#: gnu/packages/perl.scm:6741
 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:6646
+#: gnu/packages/perl.scm:6769
 msgid "Manage deprecation warnings for your distribution"
 msgstr ""
 
-#: gnu/packages/perl.scm:6647
+#: gnu/packages/perl.scm:6770
 msgid ""
 "This module allows you to manage a set of deprecations for\n"
 "one or more modules."
 msgstr ""
 
-#: gnu/packages/perl.scm:6674
+#: gnu/packages/perl.scm:6796
 msgid "Routines for manipulating stashes"
 msgstr ""
 
-#: gnu/packages/perl.scm:6675
+#: gnu/packages/perl.scm:6797
 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:6698
+#: gnu/packages/perl.scm:6819
 msgid "Faster implementation of the Package::Stash API"
 msgstr ""
 
-#: gnu/packages/perl.scm:6699
+#: gnu/packages/perl.scm:6820
 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"
@@ -15026,11 +14887,11 @@ msgid ""
 "compiler."
 msgstr ""
 
-#: gnu/packages/perl.scm:6719
+#: gnu/packages/perl.scm:6839
 msgid "Play with other peoples' lexical variables"
 msgstr ""
 
-#: gnu/packages/perl.scm:6720
+#: gnu/packages/perl.scm:6840
 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"
@@ -15038,42 +14899,42 @@ msgid ""
 "is particularly useful for debugging."
 msgstr ""
 
-#: gnu/packages/perl.scm:6744
+#: gnu/packages/perl.scm:6864
 msgid "Simple parallel processing fork manager"
 msgstr ""
 
-#: gnu/packages/perl.scm:6745
+#: gnu/packages/perl.scm:6865
 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:6765
+#: gnu/packages/perl.scm:6885
 msgid "Simple, compact and correct param-checking functions"
 msgstr ""
 
-#: gnu/packages/perl.scm:6767
+#: gnu/packages/perl.scm:6887
 msgid ""
 "Params::Util provides a basic set of importable functions that makes\n"
 "checking parameters easier."
 msgstr ""
 
-#: gnu/packages/perl.scm:6791
+#: gnu/packages/perl.scm:6911
 msgid "Validate method/function parameters"
 msgstr ""
 
-#: gnu/packages/perl.scm:6792
+#: gnu/packages/perl.scm:6912
 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:6820
+#: gnu/packages/perl.scm:6939
 msgid "Build an optimized subroutine parameter validator"
 msgstr ""
 
-#: gnu/packages/perl.scm:6821
+#: gnu/packages/perl.scm:6940
 msgid ""
 "This module creates a customized, highly efficient\n"
 "parameter checking subroutine.  It can handle named or positional\n"
@@ -15082,37 +14943,37 @@ msgid ""
 "defaults, optional parameters, and extra \"slurpy\" parameters."
 msgstr ""
 
-#: gnu/packages/perl.scm:6842
+#: gnu/packages/perl.scm:6961
 msgid "Create and manipulate PAR distributions"
 msgstr ""
 
-#: gnu/packages/perl.scm:6843
+#: gnu/packages/perl.scm:6962
 msgid ""
 "PAR::Dist is a toolkit to create and manipulate PAR\n"
 "distributions."
 msgstr ""
 
-#: gnu/packages/perl.scm:6862
+#: 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:6881
+#: gnu/packages/perl.scm:6999
 msgid "Path specification manipulation"
 msgstr ""
 
-#: gnu/packages/perl.scm:6882
+#: gnu/packages/perl.scm:7000
 msgid ""
 "Path::Class is a module for manipulation of file and\n"
 "directory specifications in a cross-platform manner."
 msgstr ""
 
-#: gnu/packages/perl.scm:6911
+#: gnu/packages/perl.scm:7030
 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:6912
+#: gnu/packages/perl.scm:7031
 msgid ""
 "This package provides functions to work with directory and\n"
 "file names."
@@ -15120,32 +14981,32 @@ msgstr ""
 "Ce paquet fournit des fonctions pour travailler avec des noms\n"
 "de répertoires et de fichiers."
 
-#: gnu/packages/perl.scm:6936
+#: gnu/packages/perl.scm:7055
 msgid "File path utility"
 msgstr ""
 
-#: gnu/packages/perl.scm:6937
+#: gnu/packages/perl.scm:7056
 msgid ""
 "This module provides a small, fast utility for working\n"
 "with file paths."
 msgstr ""
 
-#: gnu/packages/perl.scm:6958
+#: gnu/packages/perl.scm:7077
 msgid "Fast and correct UTF-8 IO"
 msgstr ""
 
-#: gnu/packages/perl.scm:6959
+#: gnu/packages/perl.scm:7078
 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:6982
+#: gnu/packages/perl.scm:7101
 msgid "Acmeist PEG Parser Framework"
 msgstr ""
 
-#: gnu/packages/perl.scm:6983
+#: gnu/packages/perl.scm:7102
 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"
@@ -15155,32 +15016,32 @@ msgid ""
 "available."
 msgstr ""
 
-#: gnu/packages/perl.scm:7007
+#: gnu/packages/perl.scm:7126
 msgid "Check for comprehensive documentation of a module"
 msgstr ""
 
-#: gnu/packages/perl.scm:7008
+#: gnu/packages/perl.scm:7127
 msgid ""
 "This module provides a mechanism for determining if the pod\n"
 "for a given module is comprehensive."
 msgstr ""
 
-#: gnu/packages/perl.scm:7025
+#: gnu/packages/perl.scm:7144
 msgid "Parsing library for text in Pod format"
 msgstr ""
 
-#: gnu/packages/perl.scm:7026
+#: gnu/packages/perl.scm:7145
 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:7047
+#: gnu/packages/perl.scm:7166
 msgid "GNU C library compatible strftime for loggers and servers"
 msgstr ""
 
-#: gnu/packages/perl.scm:7048
+#: gnu/packages/perl.scm:7167
 msgid ""
 "POSIX::strftime::Compiler provides GNU C library compatible\n"
 "strftime(3).  But this module is not affected by the system locale.  This\n"
@@ -15188,32 +15049,32 @@ msgid ""
 "applications."
 msgstr ""
 
-#: gnu/packages/perl.scm:7066
+#: gnu/packages/perl.scm:7185
 msgid "Information about the currently running perl"
 msgstr ""
 
-#: gnu/packages/perl.scm:7068
+#: gnu/packages/perl.scm:7187
 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:7095
+#: gnu/packages/perl.scm:7214
 msgid "Interface to external editor from Perl"
 msgstr ""
 
-#: gnu/packages/perl.scm:7096
+#: gnu/packages/perl.scm:7215
 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:7115
+#: gnu/packages/perl.scm:7234
 msgid "Create read-only scalars, arrays, hashes"
 msgstr ""
 
-#: gnu/packages/perl.scm:7116
+#: gnu/packages/perl.scm:7235
 msgid ""
 "This module provides a facility for creating non-modifiable\n"
 "variables in Perl.  This is useful for configuration files, headers, etc.  It\n"
@@ -15221,11 +15082,11 @@ msgid ""
 "variables that should not be changed."
 msgstr ""
 
-#: gnu/packages/perl.scm:7136
+#: gnu/packages/perl.scm:7255
 msgid "XS implementation for Ref::Util"
 msgstr ""
 
-#: gnu/packages/perl.scm:7137
+#: gnu/packages/perl.scm:7256
 msgid ""
 "@code{Ref::Util::XS} is the XS implementation of\n"
 "@code{Ref::Util}, which provides several functions to help identify references\n"
@@ -15233,13 +15094,13 @@ msgid ""
 "of @code{ref}."
 msgstr ""
 
-#: gnu/packages/perl.scm:7155
+#: gnu/packages/perl.scm:7274
 msgid "Provide commonly requested regular expressions"
 msgstr ""
 
-#: gnu/packages/perl.scm:7157
+#: gnu/packages/perl.scm:7276
 msgid ""
-"This module exports a single hash (`%RE') that stores or generates\n"
+"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"
@@ -15247,11 +15108,11 @@ msgid ""
 "codes."
 msgstr ""
 
-#: gnu/packages/perl.scm:7181
+#: gnu/packages/perl.scm:7300
 msgid "Selection of general-utility regexp subroutines"
 msgstr ""
 
-#: gnu/packages/perl.scm:7182
+#: gnu/packages/perl.scm:7301
 msgid ""
 "This package provides a selection of regular expression\n"
 "subroutines including @code{is_regexp}, @code{regexp_seen_evals},\n"
@@ -15259,29 +15120,29 @@ msgid ""
 "and @code{deserialize_regexp}."
 msgstr ""
 
-#: gnu/packages/perl.scm:7207
+#: gnu/packages/perl.scm:7326
 msgid "Roles, as a slice of Moose"
 msgstr ""
 
-#: gnu/packages/perl.scm:7208
+#: gnu/packages/perl.scm:7327
 msgid "Role::Tiny is a minimalist role composition tool."
 msgstr ""
 
-#: gnu/packages/perl.scm:7239
+#: gnu/packages/perl.scm:7358
 msgid "Call isa, can, does, and DOES safely"
 msgstr ""
 
-#: gnu/packages/perl.scm:7240
+#: gnu/packages/perl.scm:7359
 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:7258
+#: gnu/packages/perl.scm:7377
 msgid "Lexically-scoped resource management"
 msgstr "Gestion de ressources à portée lexicale"
 
-#: gnu/packages/perl.scm:7259
+#: gnu/packages/perl.scm:7378
 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"
@@ -15292,39 +15153,39 @@ msgid ""
 "collector."
 msgstr ""
 
-#: gnu/packages/perl.scm:7282
+#: gnu/packages/perl.scm:7401
 msgid "Infinite sets"
 msgstr ""
 
-#: gnu/packages/perl.scm:7283
+#: gnu/packages/perl.scm:7402
 msgid "Set::Infinite is a set theory module for infinite sets."
 msgstr ""
 
-#: gnu/packages/perl.scm:7300
+#: gnu/packages/perl.scm:7419
 msgid "Manage sets of integers"
 msgstr ""
 
-#: gnu/packages/perl.scm:7301
+#: gnu/packages/perl.scm:7420
 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:7322
+#: gnu/packages/perl.scm:7440
 msgid "Unordered collections of Perl Objects"
 msgstr ""
 
-#: gnu/packages/perl.scm:7323
+#: gnu/packages/perl.scm:7441
 msgid ""
 "Set::Object provides efficient sets, unordered collections\n"
 "of Perl objects without duplicates for scalars and references."
 msgstr ""
 
-#: gnu/packages/perl.scm:7341
+#: gnu/packages/perl.scm:7459
 msgid "Set operations for Perl"
 msgstr "Opération ensemblistes pour Perl"
 
-#: gnu/packages/perl.scm:7342
+#: gnu/packages/perl.scm:7460
 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"
@@ -15332,21 +15193,21 @@ msgid ""
 "compact."
 msgstr ""
 
-#: gnu/packages/perl.scm:7362
+#: gnu/packages/perl.scm:7480
 msgid "Sort arrays by one or multiple calculated keys"
 msgstr ""
 
-#: gnu/packages/perl.scm:7363
+#: gnu/packages/perl.scm:7481
 msgid ""
 "This Perl module provides various functions to quickly sort\n"
 "arrays by one or multiple calculated keys."
 msgstr ""
 
-#: gnu/packages/perl.scm:7381
+#: gnu/packages/perl.scm:7499
 msgid "Sort lexically, but sort numeral parts numerically"
 msgstr ""
 
-#: gnu/packages/perl.scm:7382
+#: gnu/packages/perl.scm:7500
 msgid ""
 "This module exports two functions, @code{nsort} and\n"
 "@code{ncmp}; they are used in implementing a \"natural sorting\" algorithm.\n"
@@ -15354,11 +15215,11 @@ msgid ""
 "word-characters are compared lexically."
 msgstr ""
 
-#: gnu/packages/perl.scm:7410
+#: gnu/packages/perl.scm:7528
 msgid "Classes for representing type constraints and coercion"
 msgstr ""
 
-#: gnu/packages/perl.scm:7411
+#: gnu/packages/perl.scm:7529
 msgid ""
 "The Specio distribution provides classes for representing type\n"
 "constraints and coercion, along with syntax sugar for declaring them.  Note that\n"
@@ -15369,11 +15230,11 @@ msgid ""
 "coerce values to that type."
 msgstr ""
 
-#: gnu/packages/perl.scm:7434
+#: gnu/packages/perl.scm:7552
 msgid "Spiffy Perl Interface Framework For You"
 msgstr ""
 
-#: gnu/packages/perl.scm:7435
+#: gnu/packages/perl.scm:7553
 msgid ""
 "Spiffy is a framework and methodology for doing object\n"
 "oriented (OO) programming in Perl.  Spiffy combines the best parts of\n"
@@ -15383,21 +15244,21 @@ msgid ""
 "other OO languages like Python, Ruby, Java and Perl 6."
 msgstr ""
 
-#: gnu/packages/perl.scm:7459
+#: gnu/packages/perl.scm:7577
 msgid "Collection of very basic statistics modules"
 msgstr "Collection de modules de statistiques très basiques"
 
-#: gnu/packages/perl.scm:7460
+#: gnu/packages/perl.scm:7578
 msgid ""
 "This package provides basic statistics functions like\n"
 "@code{median()}, @code{mean()}, @code{variance()} and @code{stddev()}."
 msgstr ""
 
-#: gnu/packages/perl.scm:7478
+#: gnu/packages/perl.scm:7596
 msgid "Temporary buffer to save bytes"
 msgstr ""
 
-#: gnu/packages/perl.scm:7479
+#: gnu/packages/perl.scm:7597
 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"
@@ -15405,31 +15266,31 @@ msgid ""
 "on the length of the size."
 msgstr ""
 
-#: gnu/packages/perl.scm:7499
+#: gnu/packages/perl.scm:7617
 msgid "Turn on strict and make all warnings fatal"
 msgstr ""
 
-#: gnu/packages/perl.scm:7500
+#: gnu/packages/perl.scm:7618
 msgid ""
 "Strictures turns on strict and make all warnings fatal when\n"
 "run from within a source-controlled directory."
 msgstr ""
 
-#: gnu/packages/perl.scm:7542
+#: gnu/packages/perl.scm:7658
 msgid "Camelcase and de-camelcase"
 msgstr ""
 
-#: gnu/packages/perl.scm:7543
+#: gnu/packages/perl.scm:7659
 msgid ""
 "This module may be used to convert from under_score text to\n"
 "CamelCase and back again."
 msgstr ""
 
-#: gnu/packages/perl.scm:7562
+#: gnu/packages/perl.scm:7678
 msgid "Backslash escapes, quoted phrase, word elision, etc."
 msgstr ""
 
-#: gnu/packages/perl.scm:7563
+#: gnu/packages/perl.scm:7679
 msgid ""
 "This module provides a flexible calling interface to some\n"
 "frequently-performed string conversion functions, including applying and\n"
@@ -15438,42 +15299,63 @@ msgid ""
 "removing double-quotes, and truncating to fit within a desired length."
 msgstr ""
 
-#: gnu/packages/perl.scm:7585
+#: gnu/packages/perl.scm:7704
+msgid "Build your own sprintf-like functions"
+msgstr ""
+
+#: gnu/packages/perl.scm:7706
+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
 msgid "Rewrite strings based on a set of known prefixes"
 msgstr ""
 
-#: gnu/packages/perl.scm:7586
+#: gnu/packages/perl.scm:7728
 msgid ""
 "This module allows you to rewrite strings based on a set of\n"
 "known prefixes."
 msgstr ""
 
-#: gnu/packages/perl.scm:7605
+#: gnu/packages/perl.scm:7748
+msgid "Quote strings for passing through a shell"
+msgstr ""
+
+#: gnu/packages/perl.scm:7750
+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
 msgid "String printing alternatives to printf"
 msgstr ""
 
-#: gnu/packages/perl.scm:7607
+#: gnu/packages/perl.scm:7771
 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:7630
+#: gnu/packages/perl.scm:7794
 msgid "Sophisticated exporter for custom-built routines"
 msgstr ""
 
-#: gnu/packages/perl.scm:7632
+#: gnu/packages/perl.scm:7796
 msgid ""
 "Sub::Exporter provides a sophisticated alternative to Exporter.pm for\n"
 "custom-built routines."
 msgstr ""
 
-#: gnu/packages/perl.scm:7651
+#: gnu/packages/perl.scm:7815
 msgid "Only use Sub::Exporter if you need it"
 msgstr ""
 
-#: gnu/packages/perl.scm:7652
+#: gnu/packages/perl.scm:7816
 msgid ""
 "Sub::Exporter is an incredibly powerful module, but with\n"
 "that power comes great responsibility, as well as some runtime penalties.\n"
@@ -15483,21 +15365,21 @@ msgid ""
 "renaming exports, if they try to use them."
 msgstr ""
 
-#: gnu/packages/perl.scm:7674
+#: gnu/packages/perl.scm:7838
 msgid "Retrieve names of code references"
 msgstr ""
 
-#: gnu/packages/perl.scm:7675
+#: gnu/packages/perl.scm:7839
 msgid ""
 "Sub::Identify allows you to retrieve the real name of code\n"
 "references."
 msgstr ""
 
-#: gnu/packages/perl.scm:7695
+#: gnu/packages/perl.scm:7859
 msgid "Tool to inspect subroutines"
 msgstr ""
 
-#: gnu/packages/perl.scm:7696
+#: gnu/packages/perl.scm:7860
 msgid ""
 "This package provides tools for inspecting subroutines\n"
 "in Perl."
@@ -15505,54 +15387,54 @@ msgstr ""
 "Ce paquet fournit des outils pour inspecter les sous-routines\n"
 "en Perl."
 
-#: gnu/packages/perl.scm:7715
+#: gnu/packages/perl.scm:7879
 msgid "Install subroutines into packages easily"
 msgstr ""
 
-#: gnu/packages/perl.scm:7717
+#: gnu/packages/perl.scm:7881
 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:7738
+#: gnu/packages/perl.scm:7902
 msgid "(Re)name a sub"
 msgstr ""
 
-#: gnu/packages/perl.scm:7739
+#: gnu/packages/perl.scm:7903
 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:7763
+#: gnu/packages/perl.scm:7926
 msgid "Efficient generation of subroutines via string eval"
 msgstr ""
 
-#: gnu/packages/perl.scm:7764
+#: gnu/packages/perl.scm:7927
 msgid ""
 "Sub::Quote provides an efficient generation of subroutines\n"
 "via string eval."
 msgstr ""
 
-#: gnu/packages/perl.scm:7782
+#: gnu/packages/perl.scm:7945
 msgid "Apparently run a function in a higher stack frame"
 msgstr ""
 
-#: gnu/packages/perl.scm:7783
+#: gnu/packages/perl.scm:7946
 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:7805
+#: gnu/packages/perl.scm:7968
 msgid "Control superclass method dispatching"
 msgstr ""
 
-#: gnu/packages/perl.scm:7807
+#: gnu/packages/perl.scm:7970
 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"
@@ -15561,11 +15443,11 @@ msgid ""
 "support for run-time mix-ins and roles."
 msgstr ""
 
-#: gnu/packages/perl.scm:7828
+#: gnu/packages/perl.scm:7990
 msgid "Perl extension for generating SVG documents"
 msgstr ""
 
-#: gnu/packages/perl.scm:7829
+#: gnu/packages/perl.scm:7991
 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"
@@ -15574,42 +15456,53 @@ msgid ""
 "animation content."
 msgstr ""
 
-#: gnu/packages/perl.scm:7850
+#: gnu/packages/perl.scm:8012
 msgid "Switch statement for Perl"
 msgstr "Commande switch pour Perl"
 
-#: gnu/packages/perl.scm:7851
+#: gnu/packages/perl.scm:8013
 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:7898
+#: gnu/packages/perl.scm:8060
 msgid "Perl extension for getting CPU information"
 msgstr ""
 
-#: gnu/packages/perl.scm:7900
+#: gnu/packages/perl.scm:8062
 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:7920
+#: gnu/packages/perl.scm:8082
 msgid "Get full hostname in Perl"
 msgstr ""
 
-#: gnu/packages/perl.scm:7921
+#: gnu/packages/perl.scm:8083
 msgid ""
 "Sys::Hostname::Long tries very hard to get the full hostname\n"
 "of a system."
 msgstr ""
 
-#: gnu/packages/perl.scm:7948
+#: gnu/packages/perl.scm:8102
+msgid "Access system calls that Perl doesn't normally provide access to"
+msgstr ""
+
+#: gnu/packages/perl.scm:8104
+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
 msgid "Ensure that a platform has weaken support"
 msgstr ""
 
-#: gnu/packages/perl.scm:7949
+#: gnu/packages/perl.scm:8133
 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"
@@ -15619,11 +15512,11 @@ msgid ""
 "error encouraging the user to seek support."
 msgstr ""
 
-#: gnu/packages/perl.scm:7974
+#: gnu/packages/perl.scm:8158
 msgid "Template processing system for Perl"
 msgstr ""
 
-#: gnu/packages/perl.scm:7975
+#: gnu/packages/perl.scm:8159
 msgid ""
 "The Template Toolkit is a collection of modules which\n"
 "implement an extensible template processing system.  It was originally\n"
@@ -15632,42 +15525,56 @@ msgid ""
 "documents: HTML, XML, POD, PostScript, LaTeX, and so on."
 msgstr ""
 
-#: gnu/packages/perl.scm:7998
+#: gnu/packages/perl.scm:8182
 msgid "Profiling for Template Toolkit"
 msgstr ""
 
-#: gnu/packages/perl.scm:7999
+#: gnu/packages/perl.scm:8183
 msgid ""
 "Template::Timer provides inline profiling of the template\n"
 "processing in Perl code."
 msgstr ""
 
-#: gnu/packages/perl.scm:8019
+#: gnu/packages/perl.scm:8203
+msgid "Template Toolkit reimplemented in as little code as possible"
+msgstr ""
+
+#: gnu/packages/perl.scm:8205
+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:8229
 msgid "Detect encoding of the current terminal"
 msgstr ""
 
-#: gnu/packages/perl.scm:8020
+#: gnu/packages/perl.scm:8230
 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:8044
+#: gnu/packages/perl.scm:8254
 msgid "Progress meter on a standard terminal"
 msgstr ""
 
-#: gnu/packages/perl.scm:8045
+#: gnu/packages/perl.scm:8255
 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:8068
+#: gnu/packages/perl.scm:8278
 msgid "Progress meter if run interactively"
 msgstr ""
 
-#: gnu/packages/perl.scm:8069
+#: gnu/packages/perl.scm:8279
 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"
@@ -15675,21 +15582,21 @@ msgid ""
 "a cron job) then it does not show the progress bar."
 msgstr ""
 
-#: gnu/packages/perl.scm:8091
+#: gnu/packages/perl.scm:8301
 msgid "Simple progress bars"
 msgstr ""
 
-#: gnu/packages/perl.scm:8092
+#: gnu/packages/perl.scm:8302
 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:8110
+#: gnu/packages/perl.scm:8320
 msgid "Simple terminal control"
 msgstr "Contrôle de terminal simple"
 
-#: gnu/packages/perl.scm:8111
+#: gnu/packages/perl.scm:8321
 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"
@@ -15698,11 +15605,11 @@ msgid ""
 "screen size, and retrieval/modification of the control characters."
 msgstr ""
 
-#: gnu/packages/perl.scm:8136
+#: gnu/packages/perl.scm:8346
 msgid "Retrieve terminal size"
 msgstr ""
 
-#: gnu/packages/perl.scm:8137
+#: gnu/packages/perl.scm:8347
 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"
@@ -15710,62 +15617,62 @@ msgid ""
 "the job on behalf of @code{Term::Size::Any}."
 msgstr ""
 
-#: gnu/packages/perl.scm:8157
+#: gnu/packages/perl.scm:8366
 msgid "Perl extension for retrieving terminal size (Perl version)"
 msgstr ""
 
-#: gnu/packages/perl.scm:8158
+#: gnu/packages/perl.scm:8367
 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:8178
+#: gnu/packages/perl.scm:8387
 msgid "Format a header and rows into a table"
 msgstr ""
 
-#: gnu/packages/perl.scm:8179
+#: gnu/packages/perl.scm:8388
 msgid ""
 "This module is able to generically format rows of data\n"
 "into tables."
 msgstr ""
 
-#: gnu/packages/perl.scm:8198
+#: gnu/packages/perl.scm:8406
 msgid "Align text"
 msgstr ""
 
-#: gnu/packages/perl.scm:8199
+#: gnu/packages/perl.scm:8407
 msgid ""
 "Text::Aligner exports a single function, align(), which is\n"
 "used to justify strings to various alignment styles."
 msgstr ""
 
-#: gnu/packages/perl.scm:8217
+#: gnu/packages/perl.scm:8425
 msgid "Extract delimited text sequences from strings"
 msgstr ""
 
-#: gnu/packages/perl.scm:8218
+#: gnu/packages/perl.scm:8426
 msgid ""
 "The Text::Balanced module can be used to extract delimited\n"
 "text sequences from strings."
 msgstr ""
 
-#: gnu/packages/perl.scm:8236
+#: gnu/packages/perl.scm:8443
 msgid "Manipulate comma-separated values"
 msgstr ""
 
-#: gnu/packages/perl.scm:8237
+#: gnu/packages/perl.scm:8444
 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:8256
+#: gnu/packages/perl.scm:8462
 msgid "Rountines for manipulating CSV files"
 msgstr ""
 
-#: gnu/packages/perl.scm:8257
+#: gnu/packages/perl.scm:8463
 msgid ""
 "@code{Text::CSV_XS} provides facilities for the composition\n"
 "and decomposition of comma-separated values.  An instance of the\n"
@@ -15775,11 +15682,11 @@ msgid ""
 "and escapes."
 msgstr ""
 
-#: gnu/packages/perl.scm:8281
+#: gnu/packages/perl.scm:8487
 msgid "Perform diffs on files and record sets"
 msgstr ""
 
-#: gnu/packages/perl.scm:8282
+#: gnu/packages/perl.scm:8488
 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"
@@ -15788,44 +15695,44 @@ msgid ""
 "generally slower on larger files."
 msgstr ""
 
-#: gnu/packages/perl.scm:8307
+#: gnu/packages/perl.scm:8513
 msgid "Various subroutines to format text"
 msgstr ""
 
-#: gnu/packages/perl.scm:8308
+#: gnu/packages/perl.scm:8514
 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:8328
+#: gnu/packages/perl.scm:8534
 msgid "Match globbing patterns against text"
 msgstr ""
 
-#: gnu/packages/perl.scm:8329
+#: gnu/packages/perl.scm:8535
 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:8352
+#: gnu/packages/perl.scm:8558
 msgid "Fast, middleweight template engine"
 msgstr ""
 
-#: gnu/packages/perl.scm:8354
+#: gnu/packages/perl.scm:8560
 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:8373
+#: gnu/packages/perl.scm:8579
 msgid "Convert between Roman and Arabic algorisms"
 msgstr ""
 
-#: gnu/packages/perl.scm:8374
+#: gnu/packages/perl.scm:8580
 msgid ""
 "This package provides functions to convert between Roman and\n"
 "Arabic algorisms.  It supports both conventional Roman algorisms (which range\n"
@@ -15833,27 +15740,27 @@ msgid ""
 "algorism to indicate multiplication by 1000."
 msgstr ""
 
-#: gnu/packages/perl.scm:8394
+#: gnu/packages/perl.scm:8599
 msgid "Simple ASCII tables"
 msgstr ""
 
-#: gnu/packages/perl.scm:8395
+#: gnu/packages/perl.scm:8600
 msgid "Text::SimpleTable draws simple ASCII tables."
 msgstr ""
 
-#: gnu/packages/perl.scm:8416
+#: gnu/packages/perl.scm:8621
 msgid "Organize Data in Tables"
 msgstr ""
 
-#: gnu/packages/perl.scm:8417
+#: gnu/packages/perl.scm:8622
 msgid "Text::Table renders plaintext tables."
 msgstr ""
 
-#: gnu/packages/perl.scm:8438
+#: gnu/packages/perl.scm:8646
 msgid "Expand template text with embedded Perl"
 msgstr ""
 
-#: gnu/packages/perl.scm:8440
+#: gnu/packages/perl.scm:8648
 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"
@@ -15861,11 +15768,11 @@ msgid ""
 "evaluate the little programs and replace them with their values."
 msgstr ""
 
-#: gnu/packages/perl.scm:8460
+#: gnu/packages/perl.scm:8667
 msgid "Provide plain ASCII transliterations of Unicode text"
 msgstr ""
 
-#: gnu/packages/perl.scm:8461
+#: gnu/packages/perl.scm:8668
 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"
@@ -15875,29 +15782,29 @@ msgid ""
 "system."
 msgstr ""
 
-#: gnu/packages/perl.scm:8482
+#: gnu/packages/perl.scm:8689
 msgid "Perl interpreter-based threads"
 msgstr ""
 
-#: gnu/packages/perl.scm:8483
+#: gnu/packages/perl.scm:8690
 msgid "This module exposes interpreter threads to the Perl level."
 msgstr ""
 
-#: gnu/packages/perl.scm:8506
+#: gnu/packages/perl.scm:8713
 msgid "Role for classes that can be thrown"
 msgstr ""
 
-#: gnu/packages/perl.scm:8507
+#: gnu/packages/perl.scm:8714
 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:8524
+#: gnu/packages/perl.scm:8731
 msgid "Perl script tidier"
 msgstr ""
 
-#: gnu/packages/perl.scm:8525
+#: gnu/packages/perl.scm:8732
 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"
@@ -15905,21 +15812,21 @@ msgid ""
 "approximately follow the suggestions in the Perl Style Guide."
 msgstr ""
 
-#: gnu/packages/perl.scm:8545
+#: gnu/packages/perl.scm:8752
 msgid "Cycle through a list of values"
 msgstr ""
 
-#: gnu/packages/perl.scm:8546
+#: gnu/packages/perl.scm:8753
 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:8565
+#: gnu/packages/perl.scm:8772
 msgid "Ordered associative arrays for Perl"
 msgstr ""
 
-#: gnu/packages/perl.scm:8566
+#: gnu/packages/perl.scm:8773
 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"
@@ -15928,53 +15835,63 @@ msgid ""
 "operations can also be performed on the IxHash."
 msgstr ""
 
-#: gnu/packages/perl.scm:8589
+#: gnu/packages/perl.scm:8796
+msgid "Special file handle that hides the beginning of a file"
+msgstr ""
+
+#: gnu/packages/perl.scm:8798
+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
 msgid "Tie to an existing Perl object"
 msgstr ""
 
-#: gnu/packages/perl.scm:8590
+#: gnu/packages/perl.scm:8819
 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:8613
+#: gnu/packages/perl.scm:8842
 msgid "English expression of durations"
 msgstr ""
 
-#: gnu/packages/perl.scm:8614
+#: gnu/packages/perl.scm:8843
 msgid ""
 "This module provides functions for expressing durations in\n"
 "rounded or exact terms."
 msgstr ""
 
-#: gnu/packages/perl.scm:8636
+#: gnu/packages/perl.scm:8864
 msgid "Parse time duration strings"
 msgstr ""
 
-#: gnu/packages/perl.scm:8637
+#: gnu/packages/perl.scm:8865
 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:8655
+#: gnu/packages/perl.scm:8883
 msgid "High resolution alarm, sleep, gettimeofday, interval timers"
 msgstr ""
 
-#: gnu/packages/perl.scm:8656
+#: gnu/packages/perl.scm:8884
 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:8675
+#: gnu/packages/perl.scm:8903
 msgid "Efficiently compute time from local and GMT time"
 msgstr ""
 
-#: gnu/packages/perl.scm:8676
+#: gnu/packages/perl.scm:8904
 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"
@@ -15982,11 +15899,11 @@ msgid ""
 "the system epoch."
 msgstr ""
 
-#: gnu/packages/perl.scm:8696
+#: gnu/packages/perl.scm:8924
 msgid "Object-Oriented time objects"
 msgstr ""
 
-#: gnu/packages/perl.scm:8698
+#: gnu/packages/perl.scm:8926
 msgid ""
 "This module replaces the standard @code{localtime} and @code{gmtime}\n"
 "functions with implementations that return objects.  It does so in a\n"
@@ -15994,62 +15911,62 @@ msgid ""
 "still work as expected."
 msgstr ""
 
-#: gnu/packages/perl.scm:8718
+#: gnu/packages/perl.scm:8946
 msgid "Date parsing/formatting subroutines"
 msgstr ""
 
-#: gnu/packages/perl.scm:8719
+#: gnu/packages/perl.scm:8947
 msgid ""
 "This module provides routines for parsing date string into\n"
 "time values and formatting dates into ASCII strings."
 msgstr ""
 
-#: gnu/packages/perl.scm:8741
+#: gnu/packages/perl.scm:8969
 msgid "Shift and scale time"
 msgstr ""
 
-#: gnu/packages/perl.scm:8742
+#: gnu/packages/perl.scm:8970
 msgid ""
 "This module allows you to speed up your sleep(), alarm(),\n"
 "and time() calls."
 msgstr ""
 
-#: gnu/packages/perl.scm:8765
+#: gnu/packages/perl.scm:8992
 msgid "Simple tree object"
 msgstr ""
 
-#: gnu/packages/perl.scm:8766
+#: gnu/packages/perl.scm:8993
 msgid ""
 "This module in a fully object-oriented implementation of a\n"
 "simple n-ary tree."
 msgstr ""
 
-#: gnu/packages/perl.scm:8790
+#: gnu/packages/perl.scm:9016
 msgid "Factory object for dispensing Visitor objects"
 msgstr ""
 
-#: gnu/packages/perl.scm:8791
+#: gnu/packages/perl.scm:9017
 msgid ""
 "This module is a factory for dispensing\n"
 "Tree::Simple::Visitor::* objects."
 msgstr ""
 
-#: gnu/packages/perl.scm:8809
+#: gnu/packages/perl.scm:9035
 msgid "Minimal try/catch with proper preservation of $@@"
 msgstr ""
 
-#: gnu/packages/perl.scm:8810
+#: gnu/packages/perl.scm:9036
 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:8835
+#: gnu/packages/perl.scm:9060
 msgid "Tie a variable to a type constraint"
 msgstr ""
 
-#: gnu/packages/perl.scm:8836
+#: gnu/packages/perl.scm:9061
 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"
@@ -16058,11 +15975,11 @@ msgid ""
 "variable conform."
 msgstr ""
 
-#: gnu/packages/perl.scm:8869
+#: gnu/packages/perl.scm:9093
 msgid "Tiny, yet Moo(se)-compatible type constraint"
 msgstr ""
 
-#: gnu/packages/perl.scm:8870
+#: gnu/packages/perl.scm:9094
 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"
@@ -16071,11 +15988,11 @@ msgid ""
 "be used with Moose, Mouse and Moo (or none of the above)."
 msgstr ""
 
-#: gnu/packages/perl.scm:8891
+#: gnu/packages/perl.scm:9114
 msgid "Provides an XS boost for some of Type::Tiny's built-in type constraints"
 msgstr ""
 
-#: gnu/packages/perl.scm:8892
+#: gnu/packages/perl.scm:9115
 msgid ""
 "This module is optionally used by @code{Type::Tiny} to\n"
 "provide faster, C-based implementations of some type constraints.  This\n"
@@ -16083,11 +16000,11 @@ msgid ""
 "so other data validation frameworks might also consider using it."
 msgstr ""
 
-#: gnu/packages/perl.scm:8917
+#: gnu/packages/perl.scm:9139
 msgid "Types and coercions for Moose and Moo"
 msgstr ""
 
-#: gnu/packages/perl.scm:8918
+#: gnu/packages/perl.scm:9140
 msgid ""
 "This module provides @code{Path::Tiny} types for Moose, Moo,\n"
 "etc.  It handles two important types of coercion: coercing objects with\n"
@@ -16095,29 +16012,29 @@ msgid ""
 "to ensure that files or directories exist."
 msgstr ""
 
-#: gnu/packages/perl.scm:8940
+#: gnu/packages/perl.scm:9162
 msgid "Data types for common serialisation formats"
 msgstr ""
 
-#: gnu/packages/perl.scm:8941
+#: gnu/packages/perl.scm:9163
 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:8968
+#: gnu/packages/perl.scm:9190
 msgid "Unicode normalization forms"
 msgstr ""
 
-#: gnu/packages/perl.scm:8969
+#: gnu/packages/perl.scm:9191
 msgid "This Perl module provides Unicode normalization forms."
 msgstr ""
 
-#: gnu/packages/perl.scm:8998
+#: gnu/packages/perl.scm:9219
 msgid "Unicode collation algorithm"
 msgstr ""
 
-#: gnu/packages/perl.scm:8999
+#: gnu/packages/perl.scm:9220
 msgid ""
 "This package provides tools for sorting and comparing\n"
 "Unicode data."
@@ -16125,63 +16042,63 @@ msgstr ""
 "Ce paquet fournit des outils pour trier et comparer des\n"
 "données Unicode."
 
-#: gnu/packages/perl.scm:9020
+#: gnu/packages/perl.scm:9241
 msgid "Unicode line breaking algorithm"
 msgstr ""
 
-#: gnu/packages/perl.scm:9022
+#: gnu/packages/perl.scm:9243
 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:9045
+#: gnu/packages/perl.scm:9269
 msgid "Encoding and decoding of UTF-8 encoding form"
 msgstr ""
 
-#: gnu/packages/perl.scm:9047
+#: gnu/packages/perl.scm:9271
 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:9065
+#: gnu/packages/perl.scm:9289
 msgid "UNIVERSAL::can() reimplementation"
 msgstr ""
 
-#: gnu/packages/perl.scm:9066
+#: gnu/packages/perl.scm:9290
 msgid ""
 "This module attempts to work around people calling\n"
 "UNIVERSAL::can() as a function, which it is not."
 msgstr ""
 
-#: gnu/packages/perl.scm:9086
+#: gnu/packages/perl.scm:9310
 msgid "UNIVERSAL::isa() reimplementation"
 msgstr ""
 
-#: gnu/packages/perl.scm:9087
+#: gnu/packages/perl.scm:9311
 msgid ""
 "This module attempts to recover from people calling\n"
 "UNIVERSAL::isa as a function."
 msgstr ""
 
-#: gnu/packages/perl.scm:9106
+#: gnu/packages/perl.scm:9330
 msgid "Require modules from a variable"
 msgstr ""
 
-#: gnu/packages/perl.scm:9107
+#: gnu/packages/perl.scm:9331
 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:9126
+#: gnu/packages/perl.scm:9350
 msgid "Associate user-defined magic to variables from Perl"
 msgstr ""
 
-#: gnu/packages/perl.scm:9127
+#: gnu/packages/perl.scm:9351
 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"
@@ -16190,11 +16107,11 @@ msgid ""
 "having to write a single line of XS."
 msgstr ""
 
-#: gnu/packages/perl.scm:9150
+#: gnu/packages/perl.scm:9374
 msgid "Easily generate well-formed, namespace-aware XML"
 msgstr ""
 
-#: gnu/packages/perl.scm:9151
+#: gnu/packages/perl.scm:9375
 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"
@@ -16204,11 +16121,11 @@ msgid ""
 "attribute names."
 msgstr ""
 
-#: gnu/packages/perl.scm:9178
+#: gnu/packages/perl.scm:9402
 msgid "Opaque, extensible XS pointer backed objects using sv_magic"
 msgstr ""
 
-#: gnu/packages/perl.scm:9180
+#: gnu/packages/perl.scm:9404
 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"
@@ -16216,62 +16133,62 @@ msgid ""
 "neither visible nor modifiable from Perl space)."
 msgstr ""
 
-#: gnu/packages/perl.scm:9202
+#: gnu/packages/perl.scm:9426
 msgid "YAML for Perl"
 msgstr ""
 
-#: gnu/packages/perl.scm:9203
+#: gnu/packages/perl.scm:9427
 msgid ""
 "The YAML.pm module implements a YAML Loader and Dumper based\n"
 "on the YAML 1.0 specification."
 msgstr ""
 
-#: gnu/packages/perl.scm:9225
+#: gnu/packages/perl.scm:9448
 msgid "Perl YAML Serialization using XS and libyaml"
 msgstr ""
 
-#: gnu/packages/perl.scm:9227
+#: gnu/packages/perl.scm:9450
 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:9250
+#: gnu/packages/perl.scm:9473
 msgid "Read/Write YAML files"
 msgstr ""
 
-#: gnu/packages/perl.scm:9251
+#: gnu/packages/perl.scm:9474
 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:9275
+#: gnu/packages/perl.scm:9498
 msgid "Generate recursive-descent parsers"
 msgstr ""
 
-#: gnu/packages/perl.scm:9277
+#: gnu/packages/perl.scm:9500
 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:9297
+#: gnu/packages/perl.scm:9520
 msgid "Generate and use LALR parsers"
 msgstr ""
 
-#: gnu/packages/perl.scm:9298
+#: gnu/packages/perl.scm:9521
 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:9324
+#: gnu/packages/perl.scm:9547
 msgid "Distribution metadata for a CPAN dist"
 msgstr ""
 
-#: gnu/packages/perl.scm:9325
+#: gnu/packages/perl.scm:9548
 msgid ""
 "Software distributions released to the CPAN include a\n"
 "META.json or, for older distributions, META.yml, which describes the\n"
@@ -16282,11 +16199,11 @@ msgid ""
 "methods for interrogating that data."
 msgstr ""
 
-#: gnu/packages/perl.scm:9348
+#: gnu/packages/perl.scm:9571
 msgid "Set of version requirements for a CPAN dist"
 msgstr ""
 
-#: gnu/packages/perl.scm:9349
+#: gnu/packages/perl.scm:9572
 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"
@@ -16295,22 +16212,22 @@ msgid ""
 "representation."
 msgstr ""
 
-#: gnu/packages/perl.scm:9372
+#: gnu/packages/perl.scm:9595
 msgid "Read and write a subset of YAML for CPAN Meta files"
 msgstr ""
 
-#: gnu/packages/perl.scm:9373
+#: gnu/packages/perl.scm:9596
 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:9394
+#: gnu/packages/perl.scm:9617
 msgid "Build and install Perl modules"
 msgstr ""
 
-#: gnu/packages/perl.scm:9395
+#: gnu/packages/perl.scm:9618
 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"
@@ -16321,21 +16238,21 @@ msgid ""
 "system---most of the @code{Module::Build} code is pure-Perl."
 msgstr ""
 
-#: gnu/packages/perl.scm:9421
+#: gnu/packages/perl.scm:9644
 msgid "Parse META.yml and META.json CPAN metadata files"
 msgstr ""
 
-#: gnu/packages/perl.scm:9422
+#: gnu/packages/perl.scm:9645
 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:9440
+#: gnu/packages/perl.scm:9663
 msgid "Common Scalar and List utility subroutines"
 msgstr ""
 
-#: gnu/packages/perl.scm:9441
+#: gnu/packages/perl.scm:9664
 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"
@@ -16343,39 +16260,39 @@ msgid ""
 "such that being individual extensions would be wasteful."
 msgstr ""
 
-#: gnu/packages/perl.scm:9465
+#: gnu/packages/perl.scm:9688
 msgid "Cross-platform functions emulating common shell commands"
 msgstr ""
 
-#: gnu/packages/perl.scm:9467
+#: gnu/packages/perl.scm:9690
 msgid "Shell::Command is a thin wrapper around ExtUtils::Command."
 msgstr ""
 
-#: gnu/packages/perl.scm:9494
+#: gnu/packages/perl.scm:9717
 msgid "Object-oriented File::Find replacement in Perl"
 msgstr ""
 
-#: gnu/packages/perl.scm:9495
+#: gnu/packages/perl.scm:9718
 msgid ""
 "File::Find::Object is an object-oriented\n"
 "File::Find replacement in Perl."
 msgstr ""
 
-#: gnu/packages/perl.scm:9524
+#: gnu/packages/perl.scm:9746
 msgid "Alternative interface to File::Find::Object"
 msgstr ""
 
-#: gnu/packages/perl.scm:9525
+#: gnu/packages/perl.scm:9747
 msgid ""
 "File::Find::Object::Rule is an alternative Perl\n"
 "interface to File::Find::Object."
 msgstr ""
 
-#: gnu/packages/perl.scm:9546
+#: gnu/packages/perl.scm:9768
 msgid "Wrapper for @code{File::Find} ala @code{find(1)}"
 msgstr ""
 
-#: gnu/packages/perl.scm:9548
+#: gnu/packages/perl.scm:9770
 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"
@@ -16390,11 +16307,11 @@ msgid ""
 "used as the head of many different sequences."
 msgstr ""
 
-#: gnu/packages/perl.scm:9577
+#: gnu/packages/perl.scm:9799
 msgid "TTF font support for Perl"
 msgstr "Support des polices TTF pour Perl"
 
-#: gnu/packages/perl.scm:9578
+#: gnu/packages/perl.scm:9800
 msgid ""
 "This package provides a Perl module for TrueType/OpenType\n"
 "font hacking.  It supports reading, processing and writing of the following\n"
@@ -16403,22 +16320,22 @@ msgid ""
 "prop, vhea, vmtx and the reading and writing of all other table types."
 msgstr ""
 
-#: gnu/packages/perl.scm:9616
+#: gnu/packages/perl.scm:9838
 msgid "Collection of Perl modules for time/date manipulation"
 msgstr ""
 
-#: gnu/packages/perl.scm:9617
+#: gnu/packages/perl.scm:9839
 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:9646
+#: gnu/packages/perl.scm:9868
 msgid "Perl library for testing if a time() is in a specific period"
 msgstr ""
 
-#: gnu/packages/perl.scm:9647
+#: gnu/packages/perl.scm:9869
 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"
@@ -16428,11 +16345,11 @@ msgid ""
 "1998\"."
 msgstr ""
 
-#: gnu/packages/perl.scm:9679
+#: gnu/packages/perl.scm:9900
 msgid "Iterative, recursive file finder"
 msgstr ""
 
-#: gnu/packages/perl.scm:9680
+#: gnu/packages/perl.scm:9901
 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"
@@ -16459,11 +16376,11 @@ msgid ""
 "arduous to type for one-liners."
 msgstr ""
 
-#: gnu/packages/perl.scm:9720
+#: gnu/packages/perl.scm:9941
 msgid "Include constants from POD"
 msgstr ""
 
-#: gnu/packages/perl.scm:9721
+#: gnu/packages/perl.scm:9942
 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"
@@ -16475,96 +16392,106 @@ msgid ""
 "(or it can't find %INC{caller()})."
 msgstr ""
 
-#: gnu/packages/perl.scm:9748
+#: gnu/packages/perl.scm:9968
 msgid "Collection of regexp patterns"
 msgstr ""
 
-#: gnu/packages/perl.scm:9749
+#: gnu/packages/perl.scm:9969
 msgid ""
 "Regexp::Pattern is a convention for organizing reusable\n"
 "regexp patterns in modules."
 msgstr ""
 
-#: gnu/packages/photo.scm:88
+#: gnu/packages/perl.scm:9993
+msgid "Parse Lisp S-Expressions into Perl data structures"
+msgstr ""
+
+#: gnu/packages/perl.scm:9994
+msgid ""
+"Data::SExpression parses Lisp S-Expressions into Perl data\n"
+"structures."
+msgstr ""
+
+#: gnu/packages/photo.scm:89
 msgid "Raw image decoder"
 msgstr ""
 
-#: gnu/packages/photo.scm:90
+#: gnu/packages/photo.scm:91
 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:125
+#: gnu/packages/photo.scm:126
 msgid "Read and manipulate EXIF data in digital photographs"
 msgstr ""
 
-#: gnu/packages/photo.scm:127
+#: gnu/packages/photo.scm:128
 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:153
+#: gnu/packages/photo.scm:154
 msgid "Accessing digital cameras"
 msgstr ""
 
-#: gnu/packages/photo.scm:155
+#: gnu/packages/photo.scm:156
 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:197
+#: gnu/packages/photo.scm:198
 msgid "Command-line tools to access digital cameras"
 msgstr ""
 
-#: gnu/packages/photo.scm:199
+#: gnu/packages/photo.scm:200
 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:232
+#: gnu/packages/photo.scm:240
 msgid "Program and Perl library to manipulate EXIF and other metadata"
 msgstr ""
 
-#: gnu/packages/photo.scm:233
+#: gnu/packages/photo.scm:241
 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:257
+#: gnu/packages/photo.scm:265
 msgid "Library for panoramic images"
 msgstr "Bibliothèque de d'images panoramiques"
 
-#: gnu/packages/photo.scm:259
+#: gnu/packages/photo.scm:267
 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:303
+#: gnu/packages/photo.scm:311
 msgid "Tools for combining and blending images"
 msgstr "Outils de combinaison et mélange d'images"
 
-#: gnu/packages/photo.scm:305
+#: gnu/packages/photo.scm:313
 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:336
+#: gnu/packages/photo.scm:344
 msgid "Library to correct optical lens defects with a lens database"
 msgstr ""
 
-#: gnu/packages/photo.scm:337
+#: gnu/packages/photo.scm:345
 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"
@@ -16578,11 +16505,11 @@ msgid ""
 "photographic equipment."
 msgstr ""
 
-#: gnu/packages/photo.scm:413
+#: gnu/packages/photo.scm:420
 msgid "Virtual lighttable and darkroom for photographers"
 msgstr ""
 
-#: gnu/packages/photo.scm:414
+#: gnu/packages/photo.scm:421
 msgid ""
 "Darktable is a photography workflow application and RAW\n"
 "developer.  It manages your digital negatives in a database, lets you view\n"
@@ -16590,22 +16517,22 @@ msgid ""
 "and enhance them."
 msgstr ""
 
-#: gnu/packages/photo.scm:485
+#: gnu/packages/photo.scm:492
 msgid "Panorama photo stitcher"
 msgstr ""
 
-#: gnu/packages/photo.scm:487
+#: gnu/packages/photo.scm:494
 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:538
+#: gnu/packages/photo.scm:545
 msgid "Raw image developing and processing"
 msgstr ""
 
-#: gnu/packages/photo.scm:539
+#: gnu/packages/photo.scm:546
 msgid ""
 "RawTherapee is a raw image processing suite.  It comprises a\n"
 "subset of image editing operations specifically aimed at non-destructive raw\n"
@@ -16615,11 +16542,11 @@ msgid ""
 "from Foveon and X-Trans sensors."
 msgstr ""
 
-#: gnu/packages/ratpoison.scm:86
+#: gnu/packages/ratpoison.scm:85
 msgid "Simple mouse-free tiling window manager"
 msgstr ""
 
-#: gnu/packages/ratpoison.scm:88
+#: 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"
@@ -16635,11 +16562,11 @@ msgid ""
 "cripples Emacs and other quality pieces of software."
 msgstr ""
 
-#: gnu/packages/readline.scm:92
+#: gnu/packages/readline.scm:94
 msgid "Edit command lines while typing, with history support"
 msgstr ""
 
-#: gnu/packages/readline.scm:94
+#: gnu/packages/readline.scm:96
 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"
@@ -16648,11 +16575,11 @@ msgid ""
 "comfortable for anyone."
 msgstr ""
 
-#: gnu/packages/readline.scm:133
+#: gnu/packages/readline.scm:135
 msgid "Wrapper to allow the editing of keyboard commands"
 msgstr ""
 
-#: gnu/packages/readline.scm:135
+#: gnu/packages/readline.scm:137
 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"
@@ -16661,11 +16588,11 @@ msgid ""
 "'special effects' using the filter mechanism."
 msgstr ""
 
-#: gnu/packages/scanner.scm:91
+#: gnu/packages/scanner.scm:100
 msgid "Raster image scanner library and drivers, without scanner support"
 msgstr ""
 
-#: gnu/packages/scanner.scm:92
+#: gnu/packages/scanner.scm:101
 msgid ""
 "SANE stands for \"Scanner Access Now Easy\" and is an API\n"
 "proving access to any raster image scanner hardware (flatbed scanner,\n"
@@ -16673,11 +16600,11 @@ msgid ""
 "package contains the library, but no drivers."
 msgstr ""
 
-#: gnu/packages/scanner.scm:130
+#: gnu/packages/scanner.scm:140
 msgid "Raster image scanner library and drivers, with scanner support"
 msgstr ""
 
-#: gnu/packages/scanner.scm:131
+#: gnu/packages/scanner.scm:141
 msgid ""
 "SANE stands for \"Scanner Access Now Easy\" and is an API\n"
 "proving access to any raster image scanner hardware (flatbed scanner,\n"
@@ -16685,11 +16612,11 @@ msgid ""
 "package contains the library and drivers."
 msgstr ""
 
-#: gnu/packages/scheme.scm:200
+#: gnu/packages/scheme.scm:216
 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:202
+#: gnu/packages/scheme.scm:218
 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"
@@ -16699,36 +16626,35 @@ 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:290
+#: gnu/packages/scheme.scm:311
 msgid "Efficient Scheme compiler"
 msgstr "Compilateur Scheme efficace"
 
-#: gnu/packages/scheme.scm:292
+#: gnu/packages/scheme.scm:313
 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 ""
-"Bigloo est une implantation de Scheme tournée vers un seul but: \n"
+"Bigloo est une implantation de Scheme tournée vers un seul but : \n"
 "permettre un style de programmation basé sur Scheme là où C(++)\n"
 "est généralement requis. Bigloo essaye de rendre Scheme pratique\n"
-"en offrant des fonctionnalité traditionnellement présentes dans les\n"
+"en offrant des fonctionnalités traditionnellement présentes dans les\n"
 "langages de programmation traditionnels mais pas offertes par\n"
 "Scheme et la programmation fonctionnelle. Bigloo compile des modules\n"
 "Scheme. Il produit des exécutables indépendants, rapides et petits.\n"
 "Bigloo permet de connecter complètement des programmes Scheme et C\n"
 "et des programmes Scheme et Java."
 
-#: gnu/packages/scheme.scm:340
+#: gnu/packages/scheme.scm:364
 msgid "Multi-tier programming language for the Web 2.0"
 msgstr ""
 
-#: gnu/packages/scheme.scm:342
+#: gnu/packages/scheme.scm:366
 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"
@@ -16737,11 +16663,11 @@ msgid ""
 "mashups, office (web agendas, mail clients, ...), etc."
 msgstr ""
 
-#: gnu/packages/scheme.scm:383
+#: gnu/packages/scheme.scm:407
 msgid "R5RS Scheme implementation that compiles native code via C"
 msgstr ""
 
-#: gnu/packages/scheme.scm:385
+#: 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"
@@ -16751,11 +16677,11 @@ msgstr ""
 "produit du C portable et efficace, supporte l'essentiel du standard R5RS et\n"
 "incult de nombreuses améliorations et extensions."
 
-#: gnu/packages/scheme.scm:404
+#: gnu/packages/scheme.scm:428
 msgid "Scheme implementation using a bytecode interpreter"
 msgstr "Implantation de Scheme utilisanat un interpréteur pour bytecode"
 
-#: gnu/packages/scheme.scm:406
+#: gnu/packages/scheme.scm:430
 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"
@@ -16765,11 +16691,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:525
+#: gnu/packages/scheme.scm:549
 msgid "Implementation of Scheme and related languages"
 msgstr "Implantation de Scheme et d'autres langages associés"
 
-#: gnu/packages/scheme.scm:527
+#: gnu/packages/scheme.scm:551
 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"
@@ -16781,11 +16707,11 @@ msgstr ""
 "une machine virtuelle avec compilation à la volée ainsi qu'un ensemble de\n"
 "bibliothèques."
 
-#: gnu/packages/scheme.scm:554
+#: gnu/packages/scheme.scm:578
 msgid "Efficient Scheme interpreter and compiler"
 msgstr "Compilateur et interpréteur Scheme efficace"
 
-#: gnu/packages/scheme.scm:556
+#: gnu/packages/scheme.scm:580
 msgid ""
 "Gambit consists of two main programs: gsi, the Gambit Scheme\n"
 "interpreter, and gsc, the Gambit Scheme compiler.  The interpreter contains\n"
@@ -16796,11 +16722,11 @@ msgid ""
 "mixed."
 msgstr ""
 
-#: gnu/packages/scheme.scm:590
+#: gnu/packages/scheme.scm:614
 msgid "Small embeddable Scheme implementation"
 msgstr ""
 
-#: gnu/packages/scheme.scm:592
+#: gnu/packages/scheme.scm:616
 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"
@@ -16809,11 +16735,11 @@ msgid ""
 "threads."
 msgstr ""
 
-#: gnu/packages/scheme.scm:764
+#: gnu/packages/scheme.scm:788
 msgid "Scmutils library for MIT Scheme"
 msgstr ""
 
-#: gnu/packages/scheme.scm:765
+#: 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"
@@ -16821,11 +16747,11 @@ msgid ""
 "engineering."
 msgstr ""
 
-#: gnu/packages/scheme.scm:814
+#: gnu/packages/scheme.scm:838
 msgid "Structure and Interpretation of Computer Programs"
 msgstr ""
 
-#: gnu/packages/scheme.scm:815
+#: gnu/packages/scheme.scm:839
 msgid ""
 "Structure and Interpretation of Computer Programs (SICP) is\n"
 "a textbook aiming to teach the principles of computer programming.\n"
@@ -16835,31 +16761,31 @@ msgid ""
 "metalinguistic abstraction, recursion, interpreters, and modular programming."
 msgstr ""
 
-#: gnu/packages/scheme.scm:857
+#: gnu/packages/scheme.scm:881
 msgid "SRE String pattern-matching library for scheme48"
 msgstr ""
 
-#: gnu/packages/scheme.scm:859
+#: gnu/packages/scheme.scm:883
 msgid ""
 "String pattern-matching library for scheme48 based on the SRE\n"
 "regular-expression notation."
 msgstr ""
 
-#: gnu/packages/scheme.scm:892
+#: gnu/packages/scheme.scm:916
 msgid "Compatibility and utility library for Scheme"
 msgstr ""
 
-#: gnu/packages/scheme.scm:893
+#: gnu/packages/scheme.scm:917
 msgid ""
 "SLIB is a portable Scheme library providing compatibility and\n"
 "utility functions for all standard Scheme implementations."
 msgstr ""
 
-#: gnu/packages/scheme.scm:949
+#: gnu/packages/scheme.scm:973
 msgid "Scheme implementation conforming to R5RS and IEEE P1178"
 msgstr ""
 
-#: gnu/packages/scheme.scm:950
+#: gnu/packages/scheme.scm:974
 msgid ""
 "GNU SCM is an implementation of Scheme.  This\n"
 "implementation includes Hobbit, a Scheme-to-C compiler, which can\n"
@@ -16867,11 +16793,11 @@ msgid ""
 "linked with a SCM executable."
 msgstr ""
 
-#: gnu/packages/scheme.scm:1007
+#: gnu/packages/scheme.scm:1031
 msgid "Light-weight interpreter for the Scheme programming language"
 msgstr "Interpréteur léger pour le langage de programmation Scheme"
 
-#: gnu/packages/scheme.scm:1009
+#: gnu/packages/scheme.scm:1033
 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"
@@ -16887,11 +16813,11 @@ msgid ""
 "small program, it is easy to comprehend, get to grips with, and use."
 msgstr ""
 
-#: gnu/packages/scheme.scm:1088
+#: gnu/packages/scheme.scm:1112
 msgid "Brutally efficient Scheme compiler"
 msgstr "Compilateur Scheme extrêmement efficace"
 
-#: gnu/packages/scheme.scm:1090
+#: gnu/packages/scheme.scm:1114
 msgid ""
 "Stalin is an aggressively optimizing whole-program compiler\n"
 "for Scheme that does polyvariant interprocedural flow analysis,\n"
@@ -16903,22 +16829,36 @@ msgid ""
 "generation."
 msgstr ""
 
-#: gnu/packages/scheme.scm:1142
+#: gnu/packages/scheme.scm:1167
 msgid "Scheme-like lisp implementation"
 msgstr "Implémentation lisp proche de Scheme"
 
-#: gnu/packages/scheme.scm:1144
+#: gnu/packages/scheme.scm:1169
 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/search.scm:75
-msgid "Search Engine Library"
+#: gnu/packages/scheme.scm:1240
+msgid "Scheme scripting engine"
+msgstr ""
+
+#: gnu/packages/scheme.scm:1241
+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/search.scm:77
+msgid "Search Engine Library"
+msgstr ""
+
+#: gnu/packages/search.scm:79
 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"
@@ -16926,15 +16866,26 @@ msgid ""
 "rich set of boolean query operators."
 msgstr ""
 
-#: gnu/packages/search.scm:109
+#: gnu/packages/search.scm:111
 msgid "Python bindings for the Xapian search engine library"
 msgstr "Liaisons python pour la bibliothèque de moteur de recherche Xapian"
 
-#: gnu/packages/search.scm:148
+#: gnu/packages/search.scm:132
+msgid "Perl XS frontend to the Xapian C++ search library"
+msgstr "Liaisons Perl XS pour la bibliothèque de recherche Xapian"
+
+#: gnu/packages/search.scm:134
+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
 msgid "Tool for Obsessive Compulsive Classifiers"
 msgstr ""
 
-#: gnu/packages/search.scm:150
+#: gnu/packages/search.scm:177
 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"
@@ -16942,21 +16893,21 @@ msgid ""
 "files and directories."
 msgstr ""
 
-#: gnu/packages/search.scm:172
+#: gnu/packages/search.scm:199
 msgid "Command-line interface to libtocc"
 msgstr ""
 
-#: gnu/packages/search.scm:174
+#: gnu/packages/search.scm:201
 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:192
+#: gnu/packages/search.scm:219
 msgid "Finding text and HTML files that match boolean expressions"
 msgstr ""
 
-#: gnu/packages/search.scm:194
+#: gnu/packages/search.scm:221
 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"
@@ -16967,24 +16918,24 @@ msgid ""
 "for parsing HTML files."
 msgstr ""
 
-#: gnu/packages/search.scm:224
+#: gnu/packages/search.scm:251
 msgid "Full-text search system"
 msgstr ""
 
-#: gnu/packages/search.scm:225
+#: gnu/packages/search.scm:252
 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:243
+#: gnu/packages/search.scm:270
 msgid "Locate files on the file system"
 msgstr ""
 
-#: gnu/packages/search.scm:245
+#: gnu/packages/search.scm:272
 msgid ""
-"mlocate is a locate/updatedb implementation.  The 'm' stands for\n"
+"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"
@@ -16992,22 +16943,22 @@ msgid ""
 "conflict with slocate compatibility."
 msgstr ""
 
-#: gnu/packages/search.scm:310
+#: gnu/packages/search.scm:337
 msgid "Web indexing system"
 msgstr ""
 
-#: gnu/packages/search.scm:312
+#: gnu/packages/search.scm:339
 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:379
+#: gnu/packages/search.scm:406
 msgid "Personal document indexing system"
 msgstr ""
 
-#: gnu/packages/search.scm:381
+#: gnu/packages/search.scm:408
 msgid ""
 "Xapers is a personal document indexing system,\n"
 "geared towards academic journal articles build on the Xapian search engine.\n"
@@ -17031,11 +16982,11 @@ msgid ""
 "server and an IRC server."
 msgstr ""
 
-#: gnu/packages/shells.scm:79
+#: gnu/packages/shells.scm:82
 msgid "POSIX-compliant shell optimised for size"
 msgstr ""
 
-#: gnu/packages/shells.scm:81
+#: gnu/packages/shells.scm:84
 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"
@@ -17043,11 +16994,11 @@ msgid ""
 "direct descendant of NetBSD's Almquist Shell (@command{ash})."
 msgstr ""
 
-#: gnu/packages/shells.scm:137
+#: gnu/packages/shells.scm:194
 msgid "The friendly interactive shell"
 msgstr ""
 
-#: gnu/packages/shells.scm:139
+#: gnu/packages/shells.scm:196
 msgid ""
 "Fish (friendly interactive shell) is a shell focused on interactive use,\n"
 "discoverability, and friendliness.  Fish has very user-friendly and powerful\n"
@@ -17059,21 +17010,32 @@ msgid ""
 "and syntax highlighting."
 msgstr ""
 
-#: gnu/packages/shells.scm:183
+#: gnu/packages/shells.scm:249
+msgid "Foreign environment interface for fish shell"
+msgstr "Interface d'environnement externe pour le shell fish"
+
+#: gnu/packages/shells.scm:250
+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
 msgid "Alternative implementation of the rc shell by Byron Rakitzis"
 msgstr ""
 
-#: gnu/packages/shells.scm:185
+#: gnu/packages/shells.scm:290
 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:216
+#: gnu/packages/shells.scm:321
 msgid "Extensible shell with higher-order functions"
 msgstr ""
 
-#: gnu/packages/shells.scm:218
+#: gnu/packages/shells.scm:323
 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"
@@ -17082,11 +17044,11 @@ msgid ""
 "written by Paul Haahr and Byron Rakitzis."
 msgstr ""
 
-#: gnu/packages/shells.scm:278
+#: gnu/packages/shells.scm:383
 msgid "Unix shell based on csh"
 msgstr ""
 
-#: gnu/packages/shells.scm:280
+#: gnu/packages/shells.scm:385
 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"
@@ -17095,11 +17057,11 @@ msgid ""
 "history mechanism, job control and a C-like syntax."
 msgstr ""
 
-#: gnu/packages/shells.scm:339
+#: gnu/packages/shells.scm:444
 msgid "Powerful shell for interactive use and scripting"
 msgstr "Shell puissant pour un usage interactif et l'écriture de scripts"
 
-#: gnu/packages/shells.scm:340
+#: gnu/packages/shells.scm:445
 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"
@@ -17112,11 +17074,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:379
+#: gnu/packages/shells.scm:484
 msgid "Python-ish shell"
 msgstr ""
 
-#: gnu/packages/shells.scm:381
+#: gnu/packages/shells.scm:486
 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"
@@ -17125,11 +17087,11 @@ msgid ""
 "use of experts and novices alike."
 msgstr ""
 
-#: gnu/packages/shells.scm:425
+#: gnu/packages/shells.scm:530
 msgid "Unix shell embedded in Scheme"
 msgstr ""
 
-#: gnu/packages/shells.scm:427
+#: gnu/packages/shells.scm:532
 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"
@@ -17137,11 +17099,11 @@ msgid ""
 "operating system."
 msgstr ""
 
-#: gnu/packages/shells.scm:466
+#: gnu/packages/shells.scm:571
 msgid "Minimal zero-config readline replacement"
 msgstr ""
 
-#: gnu/packages/shells.scm:468
+#: gnu/packages/shells.scm:573
 msgid ""
 "Linenoise is a minimal, zero-config, readline replacement.\n"
 "Its features include:\n"
@@ -17155,11 +17117,11 @@ msgid ""
 "@end enumerate\n"
 msgstr ""
 
-#: gnu/packages/shells.scm:530
+#: gnu/packages/shells.scm:635
 msgid "Extremely minimal shell with the simplest syntax possible"
 msgstr ""
 
-#: gnu/packages/shells.scm:532
+#: gnu/packages/shells.scm:637
 msgid ""
 "S is a new shell that aims to be extremely simple.\n"
 "S does not implemnt the POSIX shell standard.\n"
@@ -17172,42 +17134,42 @@ msgid ""
 "A @code{andglob} program is also provided along with s."
 msgstr ""
 
-#: gnu/packages/shells.scm:560
+#: gnu/packages/shells.scm:665
 msgid "Port of OpenBSD Korn Shell"
 msgstr ""
 
-#: gnu/packages/shells.scm:562
+#: gnu/packages/shells.scm:667
 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:594
+#: gnu/packages/shells.scm:699
 msgid "Korn Shell from OpenBSD"
 msgstr ""
 
-#: gnu/packages/shells.scm:596
+#: gnu/packages/shells.scm:701
 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:635
+#: gnu/packages/shells.scm:740
 msgid "Korn Shell from MirBSD"
 msgstr ""
 
-#: gnu/packages/shells.scm:636
+#: gnu/packages/shells.scm:741
 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:678
+#: gnu/packages/shells.scm:783
 msgid "Bash-compatible Unix shell"
 msgstr "Shell Unix compatible avec Bash"
 
-#: gnu/packages/shells.scm:679
+#: gnu/packages/shells.scm:784
 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"
@@ -17216,11 +17178,11 @@ msgid ""
 "is commonly written."
 msgstr ""
 
-#: gnu/packages/telephony.scm:77
+#: gnu/packages/telephony.scm:100
 msgid "(u)Common C++ framework for threaded applications"
 msgstr ""
 
-#: gnu/packages/telephony.scm:78
+#: gnu/packages/telephony.scm:101
 msgid ""
 "GNU Common C++ is an portable, optimized class framework for\n"
 "threaded applications, supporting concurrent synchronization, inter-process\n"
@@ -17229,11 +17191,11 @@ msgid ""
 "reimplementation."
 msgstr ""
 
-#: gnu/packages/telephony.scm:98
+#: gnu/packages/telephony.scm:121
 msgid "Common C++ framework for threaded applications"
 msgstr ""
 
-#: gnu/packages/telephony.scm:99
+#: gnu/packages/telephony.scm:122
 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"
@@ -17241,11 +17203,11 @@ msgid ""
 "support."
 msgstr ""
 
-#: gnu/packages/telephony.scm:121
+#: gnu/packages/telephony.scm:144
 msgid "Implementation of RTP (real-time transport protocol)"
 msgstr ""
 
-#: gnu/packages/telephony.scm:122
+#: gnu/packages/telephony.scm:145
 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"
@@ -17254,22 +17216,22 @@ msgid ""
 "packet-manipulation library."
 msgstr ""
 
-#: gnu/packages/telephony.scm:144
+#: gnu/packages/telephony.scm:167
 msgid "Library implementing SIP (RFC-3261)"
 msgstr ""
 
-#: gnu/packages/telephony.scm:145
+#: gnu/packages/telephony.scm:168
 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:164
+#: gnu/packages/telephony.scm:187
 msgid "Sip abstraction library"
 msgstr "Bibliothèque d'abstraction de Sip"
 
-#: gnu/packages/telephony.scm:165
+#: gnu/packages/telephony.scm:188
 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"
@@ -17278,11 +17240,11 @@ msgid ""
 "multiplayer games."
 msgstr ""
 
-#: gnu/packages/telephony.scm:208
+#: gnu/packages/telephony.scm:231
 msgid "Secure peer-to-peer VoIP server for the SIP protocol"
 msgstr ""
 
-#: gnu/packages/telephony.scm:209
+#: gnu/packages/telephony.scm:232
 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"
@@ -17292,52 +17254,52 @@ msgid ""
 "internet."
 msgstr ""
 
-#: gnu/packages/telephony.scm:236
+#: gnu/packages/telephony.scm:259
 msgid "Secure RTP (SRTP) Reference Implementation"
 msgstr ""
 
-#: gnu/packages/telephony.scm:238
+#: gnu/packages/telephony.scm:261
 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:262
+#: gnu/packages/telephony.scm:285
 msgid "Utilities library for linphone software"
 msgstr ""
 
-#: gnu/packages/telephony.scm:263
+#: gnu/packages/telephony.scm:286
 msgid ""
 "BCtoolbox is a utilities library used by Belledonne\n"
 "Communications softwares like linphone."
 msgstr ""
 
-#: gnu/packages/telephony.scm:285
+#: gnu/packages/telephony.scm:308
 msgid "Implementation of the Real-time transport protocol"
 msgstr "Implémentation du protocole de transport en temps réel (RTTP)"
 
-#: gnu/packages/telephony.scm:286
+#: gnu/packages/telephony.scm:309
 msgid ""
 "oRTP is a library implementing the Real-time transport\n"
 "protocol (RFC 3550)."
 msgstr ""
 
-#: gnu/packages/telephony.scm:312
+#: gnu/packages/telephony.scm:335
 msgid "Inter-Asterisk-Protocol library"
 msgstr "Bibliothèque pour le protocole Inter-Asterisk"
 
-#: gnu/packages/telephony.scm:313
+#: gnu/packages/telephony.scm:336
 msgid ""
 "LibIAX2 implements the Inter-Asterisk-Protocol for relaying\n"
 "Voice-over-IP (VoIP) communications."
 msgstr ""
 
-#: gnu/packages/telephony.scm:344
+#: gnu/packages/telephony.scm:367
 msgid "Simple VoIP program to create conferences from the terminal"
 msgstr ""
 
-#: gnu/packages/telephony.scm:346
+#: gnu/packages/telephony.scm:369
 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"
@@ -17346,11 +17308,11 @@ msgid ""
 "address of one of the participants."
 msgstr ""
 
-#: gnu/packages/telephony.scm:459
+#: gnu/packages/telephony.scm:482
 msgid "Low-latency, high quality voice chat software"
 msgstr ""
 
-#: gnu/packages/telephony.scm:461
+#: gnu/packages/telephony.scm:484
 msgid ""
 "Mumble is an low-latency, high quality voice chat\n"
 "software primarily intended for use while gaming.\n"
@@ -17358,11 +17320,11 @@ msgid ""
 "@code{mumble} for the client, and @code{murmur} for the server."
 msgstr ""
 
-#: gnu/packages/telephony.scm:526
+#: gnu/packages/telephony.scm:549
 msgid "Softphone for voice over IP and instant messaging"
 msgstr ""
 
-#: gnu/packages/telephony.scm:527
+#: gnu/packages/telephony.scm:550
 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"
@@ -17370,12 +17332,58 @@ msgid ""
 "calls and messages"
 msgstr ""
 
-#: gnu/packages/tex.scm:219 gnu/packages/tex.scm:4056
-#: gnu/packages/tex.scm:4119
+#: gnu/packages/telephony.scm:632
+msgid "Session Initiation Protocol (SIP) stack"
+msgstr ""
+
+#: gnu/packages/telephony.scm:633
+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
+msgid "Distributed multimedia communications platform"
+msgstr ""
+
+#: 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."
+msgstr ""
+
+#: gnu/packages/telephony.scm:901
+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/tex.scm:253 gnu/packages/tex.scm:5227
+#: gnu/packages/tex.scm:5290
 msgid "TeX Live, a package of the TeX typesetting system"
 msgstr ""
 
-#: gnu/packages/tex.scm:221
+#: gnu/packages/tex.scm:255
 msgid ""
 "TeX Live provides a comprehensive TeX document production system.\n"
 "It includes all the major TeX-related programs, macro packages, and fonts\n"
@@ -17385,11 +17393,11 @@ msgid ""
 "This package contains the binaries."
 msgstr ""
 
-#: gnu/packages/tex.scm:289
+#: gnu/packages/tex.scm:323
 msgid "DVI to PostScript drivers"
 msgstr ""
 
-#: gnu/packages/tex.scm:290
+#: gnu/packages/tex.scm:324
 msgid ""
 "This package provides files needed for converting DVI files\n"
 "to PostScript."
@@ -17397,11 +17405,11 @@ msgstr ""
 "Ce paquet fournit des outils requis pour convertir des fichiers\n"
 "DVI en PostScript."
 
-#: gnu/packages/tex.scm:324
+#: gnu/packages/tex.scm:358
 msgid "Unicode data and loaders for TeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:325
+#: gnu/packages/tex.scm:359
 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"
@@ -17414,11 +17422,11 @@ msgid ""
 "out to date by @code{unicode-letters.tex}. "
 msgstr ""
 
-#: gnu/packages/tex.scm:363
+#: gnu/packages/tex.scm:397
 msgid "Hyphenation patterns for German"
 msgstr ""
 
-#: gnu/packages/tex.scm:364
+#: gnu/packages/tex.scm:398
 msgid ""
 "The package provides experimental hyphenation patterns for\n"
 "the German language, covering both traditional and reformed orthography.  The\n"
@@ -17426,11 +17434,11 @@ msgid ""
 "bundle."
 msgstr ""
 
-#: gnu/packages/tex.scm:399
+#: gnu/packages/tex.scm:433
 msgid "Files for creating TeX formats"
 msgstr ""
 
-#: gnu/packages/tex.scm:400
+#: gnu/packages/tex.scm:434
 msgid ""
 "This bundle provides a collection of model \".ini\" files\n"
 "for creating TeX formats.  These files are commonly used to introduced\n"
@@ -17439,11 +17447,11 @@ msgid ""
 "to adapt the plain e-TeX source file to work with XeTeX and LuaTeX."
 msgstr ""
 
-#: gnu/packages/tex.scm:434
+#: gnu/packages/tex.scm:468
 msgid "Hyphenation patterns expressed in UTF-8"
 msgstr ""
 
-#: gnu/packages/tex.scm:435
+#: 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"
@@ -17456,21 +17464,35 @@ msgid ""
 "converters, will completely supplant the older patterns."
 msgstr ""
 
-#: gnu/packages/tex.scm:511
+#: gnu/packages/tex.scm:545
 msgid "Metafont base files"
 msgstr ""
 
-#: gnu/packages/tex.scm:512
+#: gnu/packages/tex.scm:546
 msgid ""
 "This package provides the Metafont base files needed to\n"
 "build fonts using the Metafont system."
 msgstr ""
 
-#: gnu/packages/tex.scm:543
+#: gnu/packages/tex.scm:577
+msgid "Tools for converting and installing fonts for TeX and LaTeX"
+msgstr ""
+
+#: gnu/packages/tex.scm:578
+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:613
 msgid "Scheme for naming fonts in TeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:544
+#: gnu/packages/tex.scm:614
 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"
@@ -17478,11 +17500,11 @@ msgid ""
 "documents."
 msgstr ""
 
-#: gnu/packages/tex.scm:613
+#: gnu/packages/tex.scm:705
 msgid "Computer Modern fonts for TeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:614
+#: gnu/packages/tex.scm:706
 msgid ""
 "This package provides the Computer Modern fonts by Donald\n"
 "Knuth.  The Computer Modern font family is a large collection of text,\n"
@@ -17490,22 +17512,47 @@ msgid ""
 "8A."
 msgstr ""
 
-#: gnu/packages/tex.scm:678
+#: gnu/packages/tex.scm:813
+msgid "Computer Modern Super family of fonts"
+msgstr ""
+
+#: gnu/packages/tex.scm:814
+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:851
+msgid "Latin Modern family of fonts"
+msgstr ""
+
+#: gnu/packages/tex.scm:852
+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
 msgid "Small library of METAFONT sources"
 msgstr ""
 
-#: gnu/packages/tex.scm:679
+#: gnu/packages/tex.scm:923
 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:753
+#: gnu/packages/tex.scm:997
 msgid "Collection of fonts used in LaTeX distributions"
 msgstr ""
 
-#: gnu/packages/tex.scm:754
+#: gnu/packages/tex.scm:998
 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"
@@ -17513,11 +17560,35 @@ msgid ""
 "symbol fonts."
 msgstr ""
 
-#: gnu/packages/tex.scm:835 gnu/packages/tex.scm:866
+#: gnu/packages/tex.scm:1018
+msgid "LaTeX support for Metafont logo fonts"
+msgstr ""
+
+#: gnu/packages/tex.scm:1020
+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
+msgid "Metafont logo font"
+msgstr ""
+
+#: gnu/packages/tex.scm:1089
+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:1285 gnu/packages/tex.scm:1316
 msgid "TeX fonts from the American Mathematical Society"
 msgstr ""
 
-#: gnu/packages/tex.scm:837
+#: gnu/packages/tex.scm:1287
 msgid ""
 "This package provides an extended set of fonts for use in mathematics,\n"
 "including: extra mathematical symbols; blackboard bold letters (uppercase\n"
@@ -17531,29 +17602,29 @@ msgid ""
 "details can be found in the documentation."
 msgstr ""
 
-#: gnu/packages/tex.scm:868
+#: gnu/packages/tex.scm:1318
 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}."
 msgstr ""
 
-#: gnu/packages/tex.scm:902
+#: gnu/packages/tex.scm:1352
 msgid "Plain TeX format and supporting files"
 msgstr ""
 
-#: gnu/packages/tex.scm:904
+#: gnu/packages/tex.scm:1354
 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)."
 msgstr ""
 
-#: gnu/packages/tex.scm:1073
+#: gnu/packages/tex.scm:1533
 msgid "Base sources of LaTeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:1075
+#: gnu/packages/tex.scm:1535
 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"
@@ -17561,11 +17632,11 @@ msgid ""
 "contain."
 msgstr ""
 
-#: gnu/packages/tex.scm:1095
+#: gnu/packages/tex.scm:1555
 msgid "Extended filecontents and filecontents* environments"
 msgstr ""
 
-#: gnu/packages/tex.scm:1097
+#: gnu/packages/tex.scm:1557
 msgid ""
 "LaTeX2e's @code{filecontents} and @code{filecontents*} environments\n"
 "enable a LaTeX source file to generate external files as it runs through\n"
@@ -17576,22 +17647,22 @@ msgid ""
 "@code{filecontents*} anywhere."
 msgstr ""
 
-#: gnu/packages/tex.scm:1124
+#: gnu/packages/tex.scm:1584
 msgid "Am I running under XeTeX?"
 msgstr ""
 
-#: gnu/packages/tex.scm:1126
+#: gnu/packages/tex.scm:1586
 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:1158
+#: gnu/packages/tex.scm:1618
 msgid "Simple macros for EPS inclusion"
 msgstr ""
 
-#: gnu/packages/tex.scm:1160
+#: gnu/packages/tex.scm:1620
 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"
@@ -17601,11 +17672,11 @@ msgid ""
 "users, via its Plain TeX version.)"
 msgstr ""
 
-#: gnu/packages/tex.scm:1186
+#: gnu/packages/tex.scm:1644
 msgid "Sophisticated verbatim text"
 msgstr ""
 
-#: gnu/packages/tex.scm:1188
+#: gnu/packages/tex.scm:1646
 msgid ""
 "This package provides tools for the flexible handling of verbatim text\n"
 "including: verbatim commands in footnotes; a variety of verbatim environments\n"
@@ -17615,11 +17686,11 @@ msgid ""
 "verbatim source)."
 msgstr ""
 
-#: gnu/packages/tex.scm:1257
+#: gnu/packages/tex.scm:1715
 msgid "LaTeX standard graphics bundle"
 msgstr ""
 
-#: gnu/packages/tex.scm:1259
+#: gnu/packages/tex.scm:1717
 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"
@@ -17627,11 +17698,11 @@ msgid ""
 "keyval, and lscape."
 msgstr ""
 
-#: gnu/packages/tex.scm:1281
+#: gnu/packages/tex.scm:1739
 msgid "Driver-independent color extensions for LaTeX and pdfLaTeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:1283
+#: gnu/packages/tex.scm:1741
 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"
@@ -17642,11 +17713,11 @@ msgid ""
 "tables."
 msgstr ""
 
-#: gnu/packages/tex.scm:1309
+#: gnu/packages/tex.scm:1770
 msgid "Extensive support for hypertext in LaTeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:1311
+#: gnu/packages/tex.scm:1772
 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"
@@ -17658,22 +17729,22 @@ msgid ""
 "@code{nameref} packages, which make use of the facilities of @code{hyperref}."
 msgstr ""
 
-#: gnu/packages/tex.scm:1345
+#: gnu/packages/tex.scm:1808
 msgid "Bundle of packages submitted by Heiko Oberdiek"
 msgstr ""
 
-#: gnu/packages/tex.scm:1347
+#: gnu/packages/tex.scm:1810
 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:1368
+#: gnu/packages/tex.scm:1831
 msgid "LaTeX standard tools bundle"
 msgstr ""
 
-#: gnu/packages/tex.scm:1370
+#: gnu/packages/tex.scm:1833
 msgid ""
 "This package is a collection of (variously) simple tools provided as\n"
 "part of the LaTeX required tools distribution, comprising the following\n"
@@ -17683,11 +17754,11 @@ msgid ""
 "xr, and xspace."
 msgstr ""
 
-#: gnu/packages/tex.scm:1405
+#: gnu/packages/tex.scm:1868
 msgid "Verbatim with URL-sensitive line breaks"
 msgstr ""
 
-#: gnu/packages/tex.scm:1406
+#: gnu/packages/tex.scm:1869
 msgid ""
 "The command @code{\\url} is a form of verbatim command that\n"
 "allows linebreaks at certain characters or combinations of characters, accepts\n"
@@ -17699,11 +17770,11 @@ msgid ""
 "of file names."
 msgstr ""
 
-#: gnu/packages/tex.scm:1433
+#: gnu/packages/tex.scm:1896
 msgid "LaTeX3 programmers’ interface"
 msgstr ""
 
-#: gnu/packages/tex.scm:1435
+#: gnu/packages/tex.scm:1898
 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"
@@ -17712,11 +17783,11 @@ msgid ""
 "that the LaTeX3 conventions can be used with regular LaTeX 2e packages."
 msgstr ""
 
-#: gnu/packages/tex.scm:1480
+#: gnu/packages/tex.scm:1943
 msgid "High-level LaTeX3 concepts"
 msgstr ""
 
-#: gnu/packages/tex.scm:1482
+#: gnu/packages/tex.scm:1945
 msgid ""
 "This bundle holds prototype implementations of concepts for a LaTeX\n"
 "designer interface, to be used with the experimental LaTeX kernel as\n"
@@ -17733,11 +17804,11 @@ msgid ""
 "@end enumerate\n"
 msgstr ""
 
-#: gnu/packages/tex.scm:1515
+#: gnu/packages/tex.scm:2005
 msgid "Advanced font selection in XeLaTeX and LuaLaTeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:1517
+#: gnu/packages/tex.scm:2007
 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"
@@ -17745,22 +17816,35 @@ msgid ""
 "the l3kernel and xparse bundles from the LaTeX 3 development team."
 msgstr ""
 
-#: gnu/packages/tex.scm:1553
+#: gnu/packages/tex.scm:2043
 msgid "Lua modules for general programming (in the (La)TeX world)"
 msgstr ""
 
-#: gnu/packages/tex.scm:1555
+#: gnu/packages/tex.scm:2045
 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:1575
+#: gnu/packages/tex.scm:2133
+msgid "OpenType font loader for LuaTeX"
+msgstr ""
+
+#: gnu/packages/tex.scm:2135
+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:2157
 msgid "AMS mathematical facilities for LaTeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:1577
+#: gnu/packages/tex.scm:2159
 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"
@@ -17775,11 +17859,11 @@ msgid ""
 "definitions."
 msgstr ""
 
-#: gnu/packages/tex.scm:1605
+#: gnu/packages/tex.scm:2187
 msgid "AMS document classes for LaTeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:1607
+#: gnu/packages/tex.scm:2189
 msgid ""
 "This bundle contains three AMS classes: @code{amsartamsart} (for writing\n"
 "articles for the AMS), @code{amsbookamsbook} (for books) and\n"
@@ -17788,11 +17872,11 @@ msgid ""
 "distribution."
 msgstr ""
 
-#: gnu/packages/tex.scm:1638
+#: gnu/packages/tex.scm:2220
 msgid "Multilingual support for Plain TeX or LaTeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:1640
+#: gnu/packages/tex.scm:2222
 msgid ""
 "The package manages culturally-determined typographical (and other)\n"
 "rules, and hyphenation patterns for a wide range of languages.  A document may\n"
@@ -17803,11 +17887,11 @@ msgid ""
 "polyglossia package rather than Babel."
 msgstr ""
 
-#: gnu/packages/tex.scm:1663
+#: gnu/packages/tex.scm:2245
 msgid "Babel support for English"
 msgstr ""
 
-#: gnu/packages/tex.scm:1665
+#: gnu/packages/tex.scm:2247
 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"
@@ -17815,11 +17899,24 @@ msgid ""
 "for Canadian and USA text."
 msgstr ""
 
-#: gnu/packages/tex.scm:1686
+#: gnu/packages/tex.scm:2267
+msgid "Babel support for German"
+msgstr "Prise en charge de l'allemand dans Babel"
+
+#: gnu/packages/tex.scm:2269
+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:2291
 msgid "Support for Cyrillic fonts in LaTeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:1688
+#: gnu/packages/tex.scm:2293
 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"
@@ -17827,11 +17924,11 @@ msgid ""
 "language that is written in a Cyrillic alphabet."
 msgstr ""
 
-#: gnu/packages/tex.scm:1708
+#: gnu/packages/tex.scm:2313
 msgid "Font support for common PostScript fonts"
 msgstr ""
 
-#: gnu/packages/tex.scm:1710
+#: gnu/packages/tex.scm:2315
 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"
@@ -17842,27 +17939,31 @@ msgid ""
 "packages."
 msgstr ""
 
-#: gnu/packages/tex.scm:1795
+#: gnu/packages/tex.scm:2356
+msgid "TeX Live base packages"
+msgstr ""
+
+#: gnu/packages/tex.scm:2357 gnu/packages/tex.scm:2445
+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
 msgid "Union of TeX Live packages"
 msgstr ""
 
-#: gnu/packages/tex.scm:1796
+#: gnu/packages/tex.scm:2429
 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:1811
-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:1828
+#: gnu/packages/tex.scm:2462
 msgid "LaTeX-based replacement for BibTeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:1830
+#: gnu/packages/tex.scm:2464
 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"
@@ -17870,11 +17971,11 @@ msgid ""
 "conjunction with BibTeX or as a replacement for BibTeX."
 msgstr ""
 
-#: gnu/packages/tex.scm:1857
+#: gnu/packages/tex.scm:2491
 msgid "Footnotes for critical editions"
 msgstr ""
 
-#: gnu/packages/tex.scm:1859
+#: gnu/packages/tex.scm:2493
 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"
@@ -17888,11 +17989,11 @@ msgid ""
 "@code{suffix} packages."
 msgstr ""
 
-#: gnu/packages/tex.scm:1885
+#: gnu/packages/tex.scm:2519
 msgid "Producing 'blind' text for testing"
 msgstr ""
 
-#: gnu/packages/tex.scm:1887
+#: gnu/packages/tex.scm:2521
 msgid ""
 "The package provides the commands @code{\\blindtext} and\n"
 "@code{\\Blindtext} for creating \"blind\" text useful in testing new classes\n"
@@ -17903,11 +18004,11 @@ msgid ""
 "ipsum\" text, see the @code{lipsum} package)."
 msgstr ""
 
-#: gnu/packages/tex.scm:1917
+#: gnu/packages/tex.scm:2558
 msgid "German letter DIN style"
 msgstr ""
 
-#: gnu/packages/tex.scm:1919
+#: gnu/packages/tex.scm:2560
 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"
@@ -17919,11 +18020,11 @@ msgid ""
 "package."
 msgstr ""
 
-#: gnu/packages/tex.scm:1943
+#: gnu/packages/tex.scm:2584
 msgid "Put a grey textual watermark on document pages"
 msgstr ""
 
-#: gnu/packages/tex.scm:1945
+#: gnu/packages/tex.scm:2586
 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"
@@ -17933,11 +18034,11 @@ msgid ""
 "on everypage."
 msgstr ""
 
-#: gnu/packages/tex.scm:1967
+#: gnu/packages/tex.scm:2608
 msgid "New interface for environments in LaTeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:1969
+#: gnu/packages/tex.scm:2610
 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"
@@ -17945,11 +18046,11 @@ msgid ""
 "define a new author interface to creating new environments."
 msgstr ""
 
-#: gnu/packages/tex.scm:1989
+#: gnu/packages/tex.scm:2630
 msgid "Create equal-widthed parboxes"
 msgstr ""
 
-#: gnu/packages/tex.scm:1991
+#: gnu/packages/tex.scm:2632
 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"
@@ -17963,11 +18064,11 @@ msgid ""
 "also provided."
 msgstr ""
 
-#: gnu/packages/tex.scm:2025
+#: gnu/packages/tex.scm:2666
 msgid "Expanded description environments"
 msgstr ""
 
-#: gnu/packages/tex.scm:2027
+#: gnu/packages/tex.scm:2668
 msgid ""
 "The package provides additional features for the LaTeX\n"
 "@code{description} environment, including adjustable left margin.  The package\n"
@@ -17976,11 +18077,11 @@ msgid ""
 "@code{enumerate} lists, and numbered lists remain in sequence)."
 msgstr ""
 
-#: gnu/packages/tex.scm:2061
+#: gnu/packages/tex.scm:2702
 msgid "Provide file modification times, and compare them"
 msgstr ""
 
-#: gnu/packages/tex.scm:2063
+#: gnu/packages/tex.scm:2704
 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"
@@ -17992,11 +18093,11 @@ msgid ""
 "but non-expandable ones."
 msgstr ""
 
-#: gnu/packages/tex.scm:2087
+#: gnu/packages/tex.scm:2728
 msgid "Conditionals to test which platform is being used"
 msgstr ""
 
-#: gnu/packages/tex.scm:2089
+#: gnu/packages/tex.scm:2730
 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"
@@ -18007,11 +18108,11 @@ msgid ""
 "classes of systems."
 msgstr ""
 
-#: gnu/packages/tex.scm:2112
+#: gnu/packages/tex.scm:2753
 msgid "Flexible bibliography support"
 msgstr ""
 
-#: gnu/packages/tex.scm:2114
+#: gnu/packages/tex.scm:2755
 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"
@@ -18021,11 +18122,11 @@ msgid ""
 "designed from the start to be compatible with @code{natbib}."
 msgstr ""
 
-#: gnu/packages/tex.scm:2136
+#: gnu/packages/tex.scm:2777
 msgid "Replace strings in encapsulated PostScript figures"
 msgstr ""
 
-#: gnu/packages/tex.scm:2138
+#: gnu/packages/tex.scm:2779
 msgid ""
 "This package allows LaTeX constructions (equations, picture\n"
 "environments, etc.) to be precisely superimposed over Encapsulated PostScript\n"
@@ -18036,11 +18137,26 @@ msgid ""
 "rotated."
 msgstr ""
 
-#: gnu/packages/tex.scm:2174
-msgid "Process PostScript graphisc within pdfLaTeX documents"
+#: gnu/packages/tex.scm:2802
+msgid "Macros for defining and setting keys"
+msgstr "Macros pour définir et utiliser des touches"
+
+#: 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:2176
+#: gnu/packages/tex.scm:2851
+msgid "Process PostScript graphics within pdfLaTeX documents"
+msgstr ""
+
+#: gnu/packages/tex.scm:2853
 msgid ""
 "This is a package for processing PostScript graphics with @code{psfrag}\n"
 "labels within pdfLaTeX documents.  Every graphic is compiled individually,\n"
@@ -18048,11 +18164,11 @@ msgid ""
 "re-processing."
 msgstr ""
 
-#: gnu/packages/tex.scm:2200
+#: gnu/packages/tex.scm:2886
 msgid "Make overhead slides"
 msgstr ""
 
-#: gnu/packages/tex.scm:2203
+#: gnu/packages/tex.scm:2889
 msgid ""
 "This package provides a class that produces overhead\n"
 "slides (transparencies), with many facilities.  Seminar is not nowadays\n"
@@ -18061,11 +18177,11 @@ msgid ""
 "21st-century presentation styles."
 msgstr ""
 
-#: gnu/packages/tex.scm:2236
+#: gnu/packages/tex.scm:2922
 msgid "Trim spaces around an argument or within a macro"
 msgstr ""
 
-#: gnu/packages/tex.scm:2238
+#: gnu/packages/tex.scm:2924
 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"
@@ -18073,21 +18189,21 @@ msgid ""
 "space-stripped macros."
 msgstr ""
 
-#: gnu/packages/tex.scm:2271
+#: gnu/packages/tex.scm:2957
 msgid "Captions on more than floats"
 msgstr ""
 
-#: gnu/packages/tex.scm:2273
+#: gnu/packages/tex.scm:2959
 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:2304
+#: gnu/packages/tex.scm:2990
 msgid "Create correct hyperlinks for DOI numbers"
 msgstr ""
 
-#: gnu/packages/tex.scm:2306
+#: gnu/packages/tex.scm:2992
 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"
@@ -18097,11 +18213,11 @@ msgid ""
 "hyperlink to the target of the DOI."
 msgstr ""
 
-#: gnu/packages/tex.scm:2342
+#: gnu/packages/tex.scm:3028
 msgid "e-TeX tools for LaTeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:2344
+#: gnu/packages/tex.scm:3030
 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"
@@ -18112,11 +18228,11 @@ msgid ""
 "of the LaTeX kernel."
 msgstr ""
 
-#: gnu/packages/tex.scm:2380
+#: gnu/packages/tex.scm:3066
 msgid "Seven predefined chapter heading styles"
 msgstr ""
 
-#: gnu/packages/tex.scm:2382
+#: gnu/packages/tex.scm:3068
 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"
@@ -18124,11 +18240,11 @@ msgid ""
 "headings."
 msgstr ""
 
-#: gnu/packages/tex.scm:2415
+#: gnu/packages/tex.scm:3101
 msgid "Framed or shaded regions that can break across pages"
 msgstr ""
 
-#: gnu/packages/tex.scm:2417
+#: gnu/packages/tex.scm:3103
 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"
@@ -18139,11 +18255,11 @@ msgid ""
 "@code{\\MakeFramed} to make your own framed-style environments."
 msgstr ""
 
-#: gnu/packages/tex.scm:2449
+#: gnu/packages/tex.scm:3135
 msgid "Letter document class"
 msgstr ""
 
-#: gnu/packages/tex.scm:2451
+#: gnu/packages/tex.scm:3137
 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"
@@ -18151,21 +18267,21 @@ msgid ""
 "\"old\" and a \"new\" version of g-brief."
 msgstr ""
 
-#: gnu/packages/tex.scm:2471
+#: gnu/packages/tex.scm:3157
 msgid "Typeset Galois connections"
 msgstr ""
 
-#: gnu/packages/tex.scm:2473
+#: gnu/packages/tex.scm:3159
 msgid ""
 "The package deals with connections in two-dimensional style, optionally\n"
 "in colour."
 msgstr ""
 
-#: gnu/packages/tex.scm:2491
+#: gnu/packages/tex.scm:3177
 msgid "Citations in a reader-friendly style"
 msgstr ""
 
-#: gnu/packages/tex.scm:2493
+#: gnu/packages/tex.scm:3179
 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"
@@ -18175,11 +18291,11 @@ msgid ""
 "BibLaTeX, and is considered experimental."
 msgstr ""
 
-#: gnu/packages/tex.scm:2515
+#: gnu/packages/tex.scm:3203
 msgid "Flexible and complete interface to document dimensions"
 msgstr ""
 
-#: gnu/packages/tex.scm:2517
+#: gnu/packages/tex.scm:3205
 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"
@@ -18190,11 +18306,11 @@ msgid ""
 "ability to communicate the paper size it's set up to the output."
 msgstr ""
 
-#: gnu/packages/tex.scm:2540
+#: gnu/packages/tex.scm:3228
 msgid "Miscellaneous tools by Mark Wooding"
 msgstr ""
 
-#: gnu/packages/tex.scm:2542
+#: gnu/packages/tex.scm:3230
 msgid ""
 "This collection of tools includes: @code{atsupport} for short commands\n"
 "starting with @code{@@}, macros to sanitize the OT1 encoding of the\n"
@@ -18204,21 +18320,21 @@ msgid ""
 "array environments; verbatim handling; and syntax diagrams."
 msgstr ""
 
-#: gnu/packages/tex.scm:2564
+#: gnu/packages/tex.scm:3252
 msgid "Alternative to babel for XeLaTeX and LuaLaTeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:2566
+#: gnu/packages/tex.scm:3254
 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:2584
+#: gnu/packages/tex.scm:3272
 msgid "Multi-page tables package"
 msgstr ""
 
-#: gnu/packages/tex.scm:2586
+#: gnu/packages/tex.scm:3274
 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"
@@ -18226,11 +18342,11 @@ msgid ""
 "situations where longtable has problems."
 msgstr ""
 
-#: gnu/packages/tex.scm:2619
+#: gnu/packages/tex.scm:3307
 msgid "TeX macros to handle Texinfo files"
 msgstr ""
 
-#: gnu/packages/tex.scm:2621
+#: gnu/packages/tex.scm:3309
 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"
@@ -18239,11 +18355,11 @@ msgid ""
 "hypertext linkages in some cases)."
 msgstr ""
 
-#: gnu/packages/tex.scm:2642
+#: gnu/packages/tex.scm:3330
 msgid "Show \"realistic\" quotes in verbatim"
 msgstr ""
 
-#: gnu/packages/tex.scm:2644
+#: gnu/packages/tex.scm:3332
 msgid ""
 "Typewriter-style fonts are best for program listings, but Computer\n"
 "Modern Typewriter prints @code{`} and @code{'} as bent opening and closing\n"
@@ -18257,22 +18373,22 @@ msgid ""
 "does not affect @code{\\tt}, @code{\\texttt}, etc."
 msgstr ""
 
-#: gnu/packages/tex.scm:2683
+#: gnu/packages/tex.scm:3371
 msgid "Simple package to set up document margins"
 msgstr ""
 
-#: gnu/packages/tex.scm:2685
+#: gnu/packages/tex.scm:3373
 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:2704
+#: gnu/packages/tex.scm:3392
 msgid "Extra control of appendices"
 msgstr ""
 
-#: gnu/packages/tex.scm:2706
+#: gnu/packages/tex.scm:3394
 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"
@@ -18281,44 +18397,44 @@ msgid ""
 "command."
 msgstr ""
 
-#: gnu/packages/tex.scm:2727
+#: gnu/packages/tex.scm:3415
 msgid "Generate changebars in LaTeX documents"
 msgstr ""
 
-#: gnu/packages/tex.scm:2729
+#: gnu/packages/tex.scm:3417
 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 'drivers' to place the bars; the available drivers can work with\n"
-"@code{dvitoln03}, @code{dvitops}, @code{dvips}, the emTeX and TeXtures DVI\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:2764
+#: gnu/packages/tex.scm:3452
 msgid "CMap support for PDF files"
 msgstr ""
 
-#: gnu/packages/tex.scm:2766
+#: gnu/packages/tex.scm:3454
 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:2784
+#: gnu/packages/tex.scm:3472
 msgid "Add colour to LaTeX tables"
 msgstr ""
 
-#: gnu/packages/tex.scm:2786
+#: gnu/packages/tex.scm:3474
 msgid ""
 "This package allows rows, columns, and even individual cells in LaTeX\n"
 "tables to be coloured."
 msgstr ""
 
-#: gnu/packages/tex.scm:2817
+#: gnu/packages/tex.scm:3505
 msgid "Variants of \\fbox and other games with boxes"
 msgstr ""
 
-#: gnu/packages/tex.scm:2819
+#: gnu/packages/tex.scm:3507
 msgid ""
 "This package provides variants of @code{\\fbox}: @code{\\shadowbox},\n"
 "@code{\\doublebox}, @code{\\ovalbox}, @code{\\Ovalbox}, with helpful tools for\n"
@@ -18326,22 +18442,22 @@ msgid ""
 "floats, center, flushleft, and flushright, lists, and pages."
 msgstr ""
 
-#: gnu/packages/tex.scm:2852
+#: gnu/packages/tex.scm:3540
 msgid "Extensive control of page headers and footers in LaTeX2e"
 msgstr ""
 
-#: gnu/packages/tex.scm:2854
+#: gnu/packages/tex.scm:3542
 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:2873
+#: gnu/packages/tex.scm:3561
 msgid "Improved interface for floating objects"
 msgstr ""
 
-#: gnu/packages/tex.scm:2875
+#: gnu/packages/tex.scm:3563
 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"
@@ -18351,11 +18467,11 @@ msgid ""
 "with @code{\\floatplacement{figure}{H}}."
 msgstr ""
 
-#: gnu/packages/tex.scm:2897
+#: gnu/packages/tex.scm:3585
 msgid "Range of footnote options"
 msgstr ""
 
-#: gnu/packages/tex.scm:2899
+#: gnu/packages/tex.scm:3587
 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"
@@ -18365,11 +18481,11 @@ msgid ""
 "footnotes with symbols rather than numbers."
 msgstr ""
 
-#: gnu/packages/tex.scm:2923
+#: gnu/packages/tex.scm:3611
 msgid "Typeset source code listings using LaTeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:2925
+#: gnu/packages/tex.scm:3613
 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"
@@ -18377,11 +18493,11 @@ msgid ""
 "styles.  Support for @code{hyperref} is provided."
 msgstr ""
 
-#: gnu/packages/tex.scm:2958
+#: gnu/packages/tex.scm:3646
 msgid "Miscellaneous packages by Joerg Knappen"
 msgstr ""
 
-#: gnu/packages/tex.scm:2960
+#: gnu/packages/tex.scm:3648
 msgid ""
 "This package provides miscellaneous macros by Joerg Knappen, including:\n"
 "represent counters in greek; Maxwell's non-commutative division;\n"
@@ -18393,11 +18509,11 @@ msgid ""
 "in SGML; use maths minus in text as appropriate; simple Young tableaux."
 msgstr ""
 
-#: gnu/packages/tex.scm:3035
+#: gnu/packages/tex.scm:3723
 msgid "Computer modern fonts in T1 and TS1 encodings"
 msgstr ""
 
-#: gnu/packages/tex.scm:3037
+#: gnu/packages/tex.scm:3725
 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"
@@ -18414,11 +18530,40 @@ msgid ""
 "differs from the EC in a number of particulars."
 msgstr ""
 
-#: gnu/packages/tex.scm:3118
+#: gnu/packages/tex.scm:3897 gnu/packages/tex.scm:4060
+#: gnu/packages/tex.scm:4195
+msgid "URW Base 35 font pack for LaTeX"
+msgstr ""
+
+#: gnu/packages/tex.scm:3899
+msgid ""
+"This package provides a drop-in replacements for the Times font from\n"
+"Adobe's basic set."
+msgstr ""
+"Ce paquet fournit un remplaçant direct aux polices Times de\n"
+"l'ensemble Adobe de base."
+
+#: gnu/packages/tex.scm:4062
+msgid ""
+"This package provides a drop-in replacements for the Palatino font from\n"
+"Adobe's basic set."
+msgstr ""
+"Ce paquet fournit un remplaçant direct aux polices Palatino de\n"
+"l'ensemble Adobe de base."
+
+#: gnu/packages/tex.scm:4197
+msgid ""
+"This package provides a drop-in replacements for the Zapfding font from\n"
+"Adobe's basic set."
+msgstr ""
+"Ce paquet fournit un remplaçant direct aux polices Zapfding de\n"
+"l'ensemble Adobe de base."
+
+#: gnu/packages/tex.scm:4267
 msgid "Ralph Smith's Formal Script font"
 msgstr ""
 
-#: gnu/packages/tex.scm:3120
+#: gnu/packages/tex.scm:4269
 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"
@@ -18428,22 +18573,22 @@ msgid ""
 "one of the packages @code{calrsfs} and @code{mathrsfs}."
 msgstr ""
 
-#: gnu/packages/tex.scm:3142
+#: gnu/packages/tex.scm:4291
 msgid "Add picture commands (or backgrounds) to every page"
 msgstr ""
 
-#: gnu/packages/tex.scm:3144
+#: gnu/packages/tex.scm:4293
 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:3176
+#: gnu/packages/tex.scm:4325
 msgid "Extensions to epic and the LaTeX drawing tools"
 msgstr ""
 
-#: gnu/packages/tex.scm:3178
+#: gnu/packages/tex.scm:4327
 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"
@@ -18453,11 +18598,11 @@ msgid ""
 "@code{\\special} commands."
 msgstr ""
 
-#: gnu/packages/tex.scm:3213
+#: gnu/packages/tex.scm:4362
 msgid "Customize basic list environments"
 msgstr ""
 
-#: gnu/packages/tex.scm:3215
+#: gnu/packages/tex.scm:4364
 msgid ""
 "This package is intended to ease customizing the three basic list\n"
 "environments: @code{enumerate}, @code{itemize} and @code{description}.  It\n"
@@ -18466,22 +18611,22 @@ msgid ""
 "@code{\\begin{itemize}[itemsep=1ex,leftmargin=1cm]}."
 msgstr ""
 
-#: gnu/packages/tex.scm:3236
+#: gnu/packages/tex.scm:4385
 msgid "Create tabular cells spanning multiple rows"
 msgstr ""
 
-#: gnu/packages/tex.scm:3238
+#: gnu/packages/tex.scm:4387
 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:3270
+#: gnu/packages/tex.scm:4419
 msgid "Combine LaTeX commands over included graphics"
 msgstr ""
 
-#: gnu/packages/tex.scm:3272
+#: gnu/packages/tex.scm:4421
 msgid ""
 "The @code{overpic} environment is a cross between the LaTeX\n"
 "@code{picture} environment and the @code{\\includegraphics} command of\n"
@@ -18490,22 +18635,22 @@ msgid ""
 "positions; a grid for orientation is available."
 msgstr ""
 
-#: gnu/packages/tex.scm:3306
+#: gnu/packages/tex.scm:4455
 msgid "Layout with zero \\parindent, non-zero \\parskip"
 msgstr ""
 
-#: gnu/packages/tex.scm:3308
+#: gnu/packages/tex.scm:4457
 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:3327
+#: gnu/packages/tex.scm:4476
 msgid "Include PDF documents in LaTeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:3329
+#: gnu/packages/tex.scm:4478
 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"
@@ -18515,11 +18660,11 @@ msgid ""
 "use this package to insert PostScript files, in addition to PDF files."
 msgstr ""
 
-#: gnu/packages/tex.scm:3361
+#: gnu/packages/tex.scm:4510
 msgid "St Mary Road symbols for theoretical computer science"
 msgstr ""
 
-#: gnu/packages/tex.scm:3363
+#: gnu/packages/tex.scm:4512
 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"
@@ -18528,11 +18673,11 @@ msgid ""
 "the whole font."
 msgstr ""
 
-#: gnu/packages/tex.scm:3384
+#: gnu/packages/tex.scm:4533
 msgid "Figures divided into subfigures"
 msgstr ""
 
-#: gnu/packages/tex.scm:3386
+#: gnu/packages/tex.scm:4535
 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"
@@ -18545,11 +18690,11 @@ msgid ""
 "the more recent @code{subcaption} package more satisfactory."
 msgstr ""
 
-#: gnu/packages/tex.scm:3411
+#: gnu/packages/tex.scm:4560
 msgid "Tabular with variable width columns balanced"
 msgstr ""
 
-#: gnu/packages/tex.scm:3413
+#: gnu/packages/tex.scm:4562
 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"
@@ -18560,11 +18705,11 @@ msgid ""
 "according to the natural width of the widest cell in the column."
 msgstr ""
 
-#: gnu/packages/tex.scm:3449
+#: gnu/packages/tex.scm:4598
 msgid "Tables with captions and notes all the same width"
 msgstr ""
 
-#: gnu/packages/tex.scm:3451
+#: gnu/packages/tex.scm:4600
 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"
@@ -18573,11 +18718,11 @@ msgid ""
 "environment."
 msgstr ""
 
-#: gnu/packages/tex.scm:3572
+#: gnu/packages/tex.scm:4721
 msgid "Times-like fonts in support of mathematics"
 msgstr ""
 
-#: gnu/packages/tex.scm:3574
+#: gnu/packages/tex.scm:4723
 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"
@@ -18593,11 +18738,11 @@ msgid ""
 "TeX metrics (VF and TFM files) and macros for use with LaTeX."
 msgstr ""
 
-#: gnu/packages/tex.scm:3621
+#: gnu/packages/tex.scm:4770
 msgid "Sans-serif typeface for TeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:3622
+#: gnu/packages/tex.scm:4771
 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"
@@ -18608,11 +18753,11 @@ msgid ""
 "of ink traps which typify the Kurier font."
 msgstr ""
 
-#: gnu/packages/tex.scm:3658
+#: gnu/packages/tex.scm:4807
 msgid "Select alternative section titles"
 msgstr ""
 
-#: gnu/packages/tex.scm:3660
+#: gnu/packages/tex.scm:4809
 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"
@@ -18621,11 +18766,11 @@ msgid ""
 "floats in a page.  You may assign headers/footers to individual floats, too."
 msgstr ""
 
-#: gnu/packages/tex.scm:3681
+#: gnu/packages/tex.scm:4830
 msgid "Arbitrary size font selection in LaTeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:3683
+#: gnu/packages/tex.scm:4832
 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"
@@ -18640,11 +18785,11 @@ msgid ""
 "@code{ec} fonts."
 msgstr ""
 
-#: gnu/packages/tex.scm:3710
+#: gnu/packages/tex.scm:4859
 msgid "Cyrillic fonts that support LaTeX standard encodings"
 msgstr ""
 
-#: gnu/packages/tex.scm:3712
+#: gnu/packages/tex.scm:4861
 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"
@@ -18657,43 +18802,43 @@ msgid ""
 "OT2 encoded fonts, CM bright shaped fonts and Concrete shaped fonts."
 msgstr ""
 
-#: gnu/packages/tex.scm:3750
+#: gnu/packages/tex.scm:4899
 msgid "Create scalable illustrations"
 msgstr ""
 
-#: gnu/packages/tex.scm:3752
+#: gnu/packages/tex.scm:4901
 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:3771
+#: gnu/packages/tex.scm:4920
 msgid "Class for typesetting publications of ACM"
 msgstr ""
 
-#: gnu/packages/tex.scm:3773
+#: gnu/packages/tex.scm:4922
 msgid ""
 "This package provides a class for typesetting publications of the\n"
 "Association for Computing Machinery (ACM)."
 msgstr ""
 
-#: gnu/packages/tex.scm:3804
+#: gnu/packages/tex.scm:4953
 msgid "Variable-width minipage"
 msgstr ""
 
-#: gnu/packages/tex.scm:3806
+#: gnu/packages/tex.scm:4955
 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:3825
+#: gnu/packages/tex.scm:4974
 msgid "LaTeX support file to use the WASY2 fonts"
 msgstr ""
 
-#: gnu/packages/tex.scm:3827
+#: gnu/packages/tex.scm:4976
 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"
@@ -18701,22 +18846,22 @@ msgid ""
 "to use interface for these symbols."
 msgstr ""
 
-#: gnu/packages/tex.scm:3860
+#: gnu/packages/tex.scm:5009
 msgid "Produces figures which text can flow around"
 msgstr ""
 
-#: gnu/packages/tex.scm:3862
+#: gnu/packages/tex.scm:5011
 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:3894
+#: gnu/packages/tex.scm:5043
 msgid "Extended UTF-8 input encoding support for LaTeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:3896
+#: gnu/packages/tex.scm:5045
 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"
@@ -18729,11 +18874,11 @@ msgid ""
 "package of that name now exists."
 msgstr ""
 
-#: gnu/packages/tex.scm:3928
+#: gnu/packages/tex.scm:5077
 msgid "Extract bits of a LaTeX source for output"
 msgstr ""
 
-#: gnu/packages/tex.scm:3930
+#: gnu/packages/tex.scm:5079
 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"
@@ -18744,11 +18889,11 @@ msgid ""
 "files."
 msgstr ""
 
-#: gnu/packages/tex.scm:3953
+#: gnu/packages/tex.scm:5102
 msgid "Expand acronyms at least once"
 msgstr ""
 
-#: gnu/packages/tex.scm:3955
+#: gnu/packages/tex.scm:5104
 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"
@@ -18757,17 +18902,17 @@ msgid ""
 "e-TeX."
 msgstr ""
 
-#: gnu/packages/tex.scm:3989
+#: gnu/packages/tex.scm:5155
 msgid "TeX extension for direct creation of PDF"
 msgstr ""
 
-#: gnu/packages/tex.scm:3991
+#: gnu/packages/tex.scm:5157
 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:4058
+#: gnu/packages/tex.scm:5229
 msgid ""
 "TeX Live provides a comprehensive TeX document production system.\n"
 "It includes all the major TeX-related programs, macro packages, and fonts\n"
@@ -18777,7 +18922,7 @@ msgid ""
 "This package contains the complete tree of texmf-dist data."
 msgstr ""
 
-#: gnu/packages/tex.scm:4121
+#: gnu/packages/tex.scm:5292
 msgid ""
 "TeX Live provides a comprehensive TeX document production system.\n"
 "It includes all the major TeX-related programs, macro packages, and fonts\n"
@@ -18787,11 +18932,11 @@ msgid ""
 "This package contains the complete TeX Live distribution."
 msgstr ""
 
-#: gnu/packages/tex.scm:4164
+#: gnu/packages/tex.scm:5335
 msgid "Interface to read and parse BibTeX files"
 msgstr ""
 
-#: gnu/packages/tex.scm:4165
+#: gnu/packages/tex.scm:5336
 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"
@@ -18800,21 +18945,21 @@ msgid ""
 "values (strings, macros, or numbers) pasted together."
 msgstr ""
 
-#: gnu/packages/tex.scm:4247
+#: gnu/packages/tex.scm:5422
 msgid "Backend for the BibLaTeX citation management tool"
 msgstr ""
 
-#: gnu/packages/tex.scm:4248
+#: gnu/packages/tex.scm:5423
 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:4272
+#: gnu/packages/tex.scm:5447
 msgid "Wrapper for LaTeX and friends"
 msgstr ""
 
-#: gnu/packages/tex.scm:4274
+#: gnu/packages/tex.scm:5449
 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"
@@ -18824,32 +18969,32 @@ msgid ""
 "PDF documents."
 msgstr ""
 
-#: gnu/packages/tex.scm:4316
+#: gnu/packages/tex.scm:5491
 msgid "LaTeX editor"
 msgstr "Éditeur de LaTeX"
 
-#: gnu/packages/tex.scm:4317
+#: gnu/packages/tex.scm:5492
 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:4356
+#: gnu/packages/tex.scm:5533
 msgid "Book on TeX, plain TeX and Eplain"
 msgstr ""
 
-#: gnu/packages/tex.scm:4357
+#: gnu/packages/tex.scm:5534
 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:4441
+#: gnu/packages/tex.scm:5630
 msgid "Document preparation system with GUI"
 msgstr ""
 
-#: gnu/packages/tex.scm:4442
+#: gnu/packages/tex.scm:5631
 msgid ""
 "LyX is a document preparation system.  It excels at letting\n"
 "you create complex technical and scientific articles with mathematics,\n"
@@ -18858,11 +19003,11 @@ msgid ""
 "required: automatic sectioning and pagination, spell checking and so forth."
 msgstr ""
 
-#: gnu/packages/tex.scm:4476
+#: gnu/packages/tex.scm:5665
 msgid "Multimedia inclusion package with Adobe Reader-9/X compatibility"
 msgstr ""
 
-#: gnu/packages/tex.scm:4478
+#: gnu/packages/tex.scm:5667
 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"
@@ -18875,11 +19020,11 @@ msgid ""
 "specification.  It replaces the now obsolete @code{movie15} package."
 msgstr ""
 
-#: gnu/packages/tex.scm:4516
+#: gnu/packages/tex.scm:5705
 msgid "Provide OCG (Optional Content Groups) support within a PDF document"
 msgstr ""
 
-#: gnu/packages/tex.scm:4518
+#: gnu/packages/tex.scm:5707
 msgid ""
 "This package provides OCG (Optional Content Groups) support within a PDF\n"
 "document.\n"
@@ -18897,11 +19042,11 @@ msgid ""
 "It also ensures compatibility with the @code{media9} and @code{animate} packages."
 msgstr ""
 
-#: gnu/packages/tex.scm:4550
+#: gnu/packages/tex.scm:5739
 msgid "Various LATEX packages by Martin Schröder"
 msgstr ""
 
-#: gnu/packages/tex.scm:4552
+#: gnu/packages/tex.scm:5741
 msgid ""
 "A bundle of LATEX packages by Martin Schröder; the collection comprises:\n"
 "\n"
@@ -18915,22 +19060,34 @@ msgid ""
 "@end itemize\n"
 msgstr ""
 
-#: gnu/packages/tex.scm:4582
+#: gnu/packages/tex.scm:5771
 msgid "Insert pagebreak if not enough space"
 msgstr ""
 
-#: gnu/packages/tex.scm:4584
+#: gnu/packages/tex.scm:5773
 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:4617
+#: gnu/packages/tex.scm:5796
+msgid "Margin adjustment and detection of odd/even pages"
+msgstr ""
+
+#: gnu/packages/tex.scm:5798
+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:5832
 msgid "UK format dates, with weekday"
 msgstr ""
 
-#: gnu/packages/tex.scm:4619
+#: gnu/packages/tex.scm:5834
 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"
@@ -18938,11 +19095,11 @@ msgid ""
 "@code{\\maketitle} of the article class, \"June 26, 2008\", the 'US format'."
 msgstr ""
 
-#: gnu/packages/tex.scm:4653
+#: gnu/packages/tex.scm:5868
 msgid "Underline text in TeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:4655
+#: gnu/packages/tex.scm:5870
 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"
@@ -18951,11 +19108,11 @@ msgid ""
 "striking out (line through words) and crossing out (/// over words)."
 msgstr ""
 
-#: gnu/packages/tex.scm:4707
+#: gnu/packages/tex.scm:5924
 msgid "Create PostScript and PDF graphics in TeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:4709
+#: gnu/packages/tex.scm:5926
 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"
@@ -18967,11 +19124,11 @@ msgid ""
 "produce either PostScript or PDF output."
 msgstr ""
 
-#: gnu/packages/tex.scm:4754
+#: gnu/packages/tex.scm:5971
 msgid "Bundle of versatile classes and packages"
 msgstr ""
 
-#: gnu/packages/tex.scm:4756
+#: gnu/packages/tex.scm:5973
 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"
@@ -18996,22 +19153,22 @@ msgid ""
 "typearea (which are the main parts of the bundle)."
 msgstr ""
 
-#: gnu/packages/tex.scm:4806
-msgid "Grab items in lists using user-specified seperation character"
+#: gnu/packages/tex.scm:6023
+msgid "Grab items in lists using user-specified separation character"
 msgstr ""
 
-#: gnu/packages/tex.scm:4808
+#: gnu/packages/tex.scm:6025
 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:4842
+#: gnu/packages/tex.scm:6059
 msgid "Read, store and recall array-formatted data"
 msgstr ""
 
-#: gnu/packages/tex.scm:4844
+#: gnu/packages/tex.scm:6061
 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"
@@ -19019,11 +19176,11 @@ msgid ""
 "formatted text."
 msgstr ""
 
-#: gnu/packages/tex.scm:4879
+#: gnu/packages/tex.scm:6096
 msgid "Deposit verbatim text in a box"
 msgstr ""
 
-#: gnu/packages/tex.scm:4881
+#: gnu/packages/tex.scm:6098
 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"
@@ -19033,11 +19190,11 @@ msgid ""
 "@code{trivlist}) may not appear."
 msgstr ""
 
-#: gnu/packages/tex.scm:4916
+#: gnu/packages/tex.scm:6133
 msgid "Verbatim phrases and listings in LaTeX"
 msgstr ""
 
-#: gnu/packages/tex.scm:4918
+#: gnu/packages/tex.scm:6135
 msgid ""
 "Examplep provides sophisticated features for typesetting verbatim source\n"
 "code listings, including the display of the source code and its compiled LaTeX\n"
@@ -19050,11 +19207,103 @@ msgid ""
 "titles."
 msgstr ""
 
-#: gnu/packages/texinfo.scm:54
+#: gnu/packages/tex.scm:6175
+msgid "Flexible diagramming macros for TeX"
+msgstr ""
+
+#: gnu/packages/tex.scm:6177
+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)."
+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 "Ce paquet fournit les polices XY-pic."
+
+#: gnu/packages/tex.scm:6289
+msgid "Process bibliographies for LaTeX"
+msgstr ""
+
+#: gnu/packages/tex.scm:6291
+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:6359
+msgid "Charter fonts for TeX"
+msgstr ""
+
+#: gnu/packages/tex.scm:6360
+msgid ""
+"A commercial text font donated for the common good.  Support\n"
+"for use with LaTeX is available in @code{freenfss}, part of\n"
+"@command{psnfss}. "
+msgstr ""
+
+#: gnu/packages/tex.scm:6393
+msgid "Full featured, parameter driven macro package for TeX"
+msgstr ""
+
+#: gnu/packages/tex.scm:6394
+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
+msgid "LaTeX class for producing presentations and slides"
+msgstr ""
+
+#: gnu/packages/tex.scm:6451
+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:6478
+msgid "Include eXtensible Metadata Platform data in pdfLaTeX"
+msgstr ""
+
+#: gnu/packages/tex.scm:6480
+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:6532
+msgid "PDF/X and PDF/A support for pdfTeX, LuaTeX and XeTeX"
+msgstr ""
+
+#: gnu/packages/tex.scm:6534
+msgid ""
+"This package helps LaTeX users to create PDF/X, PFD/A and other\n"
+"standards-compliant PDF documents with pdfTeX, LuaTeX and XeTeX."
+msgstr ""
+
+#: gnu/packages/texinfo.scm:55
 msgid "The GNU documentation format"
 msgstr "Le format de documentation de GNU"
 
-#: gnu/packages/texinfo.scm:56
+#: gnu/packages/texinfo.scm:57
 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"
@@ -19064,15 +19313,15 @@ msgid ""
 "is on expressing the content semantically, avoiding physical markup commands."
 msgstr ""
 
-#: gnu/packages/texinfo.scm:124
+#: gnu/packages/texinfo.scm:126
 msgid "Standalone Info documentation reader"
 msgstr ""
 
-#: gnu/packages/texinfo.scm:156
+#: gnu/packages/texinfo.scm:158
 msgid "Convert Texinfo to HTML"
 msgstr ""
 
-#: gnu/packages/texinfo.scm:158
+#: gnu/packages/texinfo.scm:160
 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"
@@ -19087,21 +19336,21 @@ msgid ""
 "Texi2HTML."
 msgstr ""
 
-#: gnu/packages/textutils.scm:79
+#: gnu/packages/textutils.scm:82
 msgid "DOS/Mac to Unix and vice versa text file format converter"
 msgstr ""
 
-#: gnu/packages/textutils.scm:81
+#: gnu/packages/textutils.scm:84
 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:106
+#: gnu/packages/textutils.scm:109
 msgid "Text encoding converter"
 msgstr ""
 
-#: gnu/packages/textutils.scm:107
+#: gnu/packages/textutils.scm:110
 msgid ""
 "The Recode library converts files between character sets and\n"
 "usages.  It recognises or produces over 200 different character sets (or about\n"
@@ -19111,61 +19360,74 @@ msgid ""
 "handy front-end to the library."
 msgstr ""
 
-#: gnu/packages/textutils.scm:131
+#: gnu/packages/textutils.scm:134
 msgid "Text encoding detection tool"
 msgstr ""
 
-#: gnu/packages/textutils.scm:132
+#: gnu/packages/textutils.scm:135
 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:182
+#: gnu/packages/textutils.scm:185
 msgid "C library for processing UTF-8 Unicode data"
 msgstr ""
 
-#: gnu/packages/textutils.scm:183
+#: gnu/packages/textutils.scm:186
 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
+msgid "Configuration file parser library"
+msgstr ""
+
 #: gnu/packages/textutils.scm:206
+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:236
 msgid "Gordon's text utils library"
 msgstr ""
 
-#: gnu/packages/textutils.scm:208
+#: gnu/packages/textutils.scm:238
 msgid ""
 "libgtextutils is a text utilities library used by the fastx toolkit from\n"
 "the Hannon Lab."
 msgstr ""
 
-#: gnu/packages/textutils.scm:240
+#: gnu/packages/textutils.scm:270
 msgid "C++ hash functions for strings"
 msgstr ""
 
-#: gnu/packages/textutils.scm:242
+#: gnu/packages/textutils.scm:272
 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:280
+#: gnu/packages/textutils.scm:310
 msgid "String library with very low memory overhead"
 msgstr ""
 
-#: gnu/packages/textutils.scm:282
+#: gnu/packages/textutils.scm:312
 msgid "Ustr is a string library for C with very low memory overhead."
 msgstr ""
 
-#: gnu/packages/textutils.scm:303
+#: gnu/packages/textutils.scm:333
 msgid "C/C++ configuration file library"
 msgstr ""
 
-#: gnu/packages/textutils.scm:305
+#: gnu/packages/textutils.scm:335
 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"
@@ -19173,11 +19435,11 @@ msgid ""
 "application code."
 msgstr ""
 
-#: gnu/packages/textutils.scm:325
+#: gnu/packages/textutils.scm:355
 msgid "Probabilistic fast file fingerprinting tool"
 msgstr ""
 
-#: gnu/packages/textutils.scm:327
+#: gnu/packages/textutils.scm:357
 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"
@@ -19186,22 +19448,22 @@ msgid ""
 "as existing hashing techniques, with provably negligible risk of collisions."
 msgstr ""
 
-#: gnu/packages/textutils.scm:348
+#: gnu/packages/textutils.scm:378
 msgid "Regular expression library"
 msgstr "Bibliothèque d'expressions régulières"
 
-#: gnu/packages/textutils.scm:349
+#: gnu/packages/textutils.scm:379
 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:403
+#: gnu/packages/textutils.scm:433
 msgid "Microsoft Word document reader"
 msgstr ""
 
-#: gnu/packages/textutils.scm:404
+#: gnu/packages/textutils.scm:434
 msgid ""
 "Antiword is an application for displaying Microsoft Word\n"
 "documents.  It can also convert the document to PostScript or XML.  Only\n"
@@ -19211,11 +19473,11 @@ msgid ""
 "runs Word\"."
 msgstr ""
 
-#: gnu/packages/textutils.scm:437
+#: gnu/packages/textutils.scm:467
 msgid "MS-Word to TeX or plain text converter"
 msgstr ""
 
-#: gnu/packages/textutils.scm:438
+#: gnu/packages/textutils.scm:468
 msgid ""
 "@command{catdoc} extracts text from MS-Word files, trying to\n"
 "preserve as many special printable characters as possible.  It supports\n"
@@ -19231,21 +19493,21 @@ msgid ""
 "@command{catppt}, which extracts data from PowerPoint presentations."
 msgstr ""
 
-#: gnu/packages/textutils.scm:479
+#: gnu/packages/textutils.scm:509
 msgid "Portable C++ library for handling UTF-8"
 msgstr ""
 
-#: gnu/packages/textutils.scm:480
+#: gnu/packages/textutils.scm:510
 msgid ""
 "UTF8-CPP is a C++ library for handling UTF-8 encoded text\n"
 "in a portable way."
 msgstr ""
 
-#: gnu/packages/textutils.scm:548
+#: gnu/packages/textutils.scm:578
 msgid "Bayesian text and email classifier"
 msgstr ""
 
-#: gnu/packages/textutils.scm:550
+#: gnu/packages/textutils.scm:580
 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"
@@ -19253,19 +19515,15 @@ msgid ""
 "categories."
 msgstr ""
 
-#: gnu/packages/textutils.scm:586
-msgid "Configuration file parser library"
-msgstr ""
-
-#: gnu/packages/textutils.scm:588
+#: gnu/packages/textutils.scm:618
 msgid "C library for creating and parsing configuration files."
 msgstr ""
 
-#: gnu/packages/textutils.scm:616
+#: gnu/packages/textutils.scm:646
 msgid "Syntax highlighting text component for Java Swing"
 msgstr ""
 
-#: gnu/packages/textutils.scm:617
+#: gnu/packages/textutils.scm:647
 msgid ""
 "RSyntaxTextArea is a syntax highlighting, code folding text\n"
 "component for Java Swing.  It extends @code{JTextComponent} so it integrates\n"
@@ -19274,31 +19532,31 @@ msgid ""
 "source code."
 msgstr ""
 
-#: gnu/packages/textutils.scm:655
+#: gnu/packages/textutils.scm:685
 msgid "Fast implementation of the edit distance (Levenshtein distance)"
 msgstr ""
 
-#: gnu/packages/textutils.scm:657
+#: gnu/packages/textutils.scm:687
 msgid ""
 "This library simply implements Levenshtein distance algorithm with C++\n"
 "and Cython."
 msgstr ""
 
-#: gnu/packages/textutils.scm:677
+#: gnu/packages/textutils.scm:707
 msgid "@code{runewidth} provides Go functions to work with string widths"
 msgstr ""
 
-#: gnu/packages/textutils.scm:679
+#: gnu/packages/textutils.scm:709
 msgid ""
 "The @code{runewidth} library provides Go functions for padding,\n"
 "measuring and checking the width of strings, with support east asian text."
 msgstr ""
 
-#: gnu/packages/textutils.scm:730
+#: gnu/packages/textutils.scm:760
 msgid "Recover text from @file{.docx} files, with good formatting"
 msgstr ""
 
-#: gnu/packages/textutils.scm:732
+#: gnu/packages/textutils.scm:762
 msgid ""
 "@command{docx2txt} is a Perl based command line utility to convert\n"
 "Microsoft Office @file{.docx} documents to equivalent text documents.  Latest\n"
@@ -19317,11 +19575,11 @@ msgid ""
 "@end itemize\n"
 msgstr ""
 
-#: gnu/packages/textutils.scm:766
+#: gnu/packages/textutils.scm:814
 msgid "Convert between Traditional Chinese and Simplified Chinese"
 msgstr ""
 
-#: gnu/packages/textutils.scm:767
+#: gnu/packages/textutils.scm:815
 msgid ""
 "Open Chinese Convert (OpenCC) converts between Traditional\n"
 "Chinese and Simplified Chinese, supporting character-level conversion,\n"
@@ -19329,43 +19587,54 @@ msgid ""
 "Mainland China, Taiwan, and Hong-Kong."
 msgstr ""
 
-#: gnu/packages/version-control.scm:137
+#: gnu/packages/textutils.scm:849
+msgid "Network Kanji Filter"
+msgstr ""
+
+#: gnu/packages/textutils.scm:850
+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
 msgid "Version control system supporting both distributed and centralized workflows"
 msgstr ""
 
-#: gnu/packages/version-control.scm:139
+#: gnu/packages/version-control.scm:137
 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:453
+#: gnu/packages/version-control.scm:451
 msgid "Distributed version control system"
 msgstr ""
 
-#: gnu/packages/version-control.scm:455
+#: gnu/packages/version-control.scm:453
 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:572
+#: gnu/packages/version-control.scm:575
 msgid "Library providing Git core methods"
 msgstr ""
 
-#: gnu/packages/version-control.scm:574
+#: gnu/packages/version-control.scm:577
 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:610
+#: gnu/packages/version-control.scm:614
 msgid "Transparent encryption of files in a git repository"
 msgstr ""
 
-#: gnu/packages/version-control.scm:611
+#: gnu/packages/version-control.scm:615
 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"
@@ -19377,11 +19646,11 @@ msgid ""
 "to lock down your entire repository."
 msgstr ""
 
-#: gnu/packages/version-control.scm:646
+#: gnu/packages/version-control.scm:650
 msgid "Whole remote repository encryption"
 msgstr ""
 
-#: gnu/packages/version-control.scm:647
+#: gnu/packages/version-control.scm:651
 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"
@@ -19400,31 +19669,31 @@ msgid ""
 "collaboration using typical untrusted file hosts or services."
 msgstr ""
 
-#: gnu/packages/version-control.scm:766
+#: gnu/packages/version-control.scm:770
 msgid "Web frontend for git repositories"
 msgstr ""
 
-#: gnu/packages/version-control.scm:768
+#: gnu/packages/version-control.scm:772
 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:797
+#: gnu/packages/version-control.scm:800
 msgid "Copy directory to the gh-pages branch"
 msgstr ""
 
-#: gnu/packages/version-control.scm:798
+#: gnu/packages/version-control.scm:801
 msgid ""
 "Script that copies a directory to the gh-pages branch (by\n"
 "default) of the repository."
 msgstr ""
 
-#: gnu/packages/version-control.scm:856
+#: gnu/packages/version-control.scm:859
 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:858
+#: gnu/packages/version-control.scm:861
 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"
@@ -19432,11 +19701,11 @@ msgid ""
 "allowing to handle large objects with a small memory footprint."
 msgstr ""
 
-#: gnu/packages/version-control.scm:897
+#: gnu/packages/version-control.scm:900
 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:899
+#: gnu/packages/version-control.scm:902
 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"
@@ -19447,11 +19716,11 @@ msgid ""
 "@command{git} command implementation."
 msgstr ""
 
-#: gnu/packages/version-control.scm:939
+#: gnu/packages/version-control.scm:941
 msgid "Command-line flags library for shell scripts"
 msgstr ""
 
-#: gnu/packages/version-control.scm:941
+#: gnu/packages/version-control.scm:943
 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"
@@ -19462,11 +19731,11 @@ msgid ""
 "will work."
 msgstr ""
 
-#: gnu/packages/version-control.scm:985
+#: gnu/packages/version-control.scm:987
 msgid "Git extensions for Vincent Driessen's branching model"
 msgstr ""
 
-#: gnu/packages/version-control.scm:987
+#: gnu/packages/version-control.scm:989
 msgid ""
 "Vincent Driessen's branching model is a git branching and release\n"
 "management strategy that helps developers keep track of features, hotfixes,\n"
@@ -19475,11 +19744,11 @@ msgid ""
 "lot easier."
 msgstr ""
 
-#: gnu/packages/version-control.scm:1020
+#: gnu/packages/version-control.scm:1023
 msgid "Stacked Git"
 msgstr ""
 
-#: gnu/packages/version-control.scm:1022
+#: gnu/packages/version-control.scm:1025
 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"
@@ -19488,11 +19757,11 @@ msgid ""
 "manipulate them in various ways."
 msgstr ""
 
-#: gnu/packages/version-control.scm:1058
+#: gnu/packages/version-control.scm:1062
 msgid "Version control system for @code{$HOME}"
 msgstr ""
 
-#: gnu/packages/version-control.scm:1060
+#: gnu/packages/version-control.scm:1064
 msgid ""
 "vcsh version-controls configuration files in several Git repositories,\n"
 "all in one single directory.  They all maintain their working trees without\n"
@@ -19501,43 +19770,43 @@ msgid ""
 "though this can be overridden."
 msgstr ""
 
-#: gnu/packages/version-control.scm:1096
+#: gnu/packages/version-control.scm:1100
 msgid "Run a command over a sequence of commits"
 msgstr ""
 
-#: gnu/packages/version-control.scm:1098
+#: gnu/packages/version-control.scm:1102
 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:1211
+#: gnu/packages/version-control.scm:1215
 msgid "Git access control layer"
 msgstr ""
 
-#: gnu/packages/version-control.scm:1213
+#: gnu/packages/version-control.scm:1217
 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:1237
+#: gnu/packages/version-control.scm:1241
 msgid "Decentralized version control system"
 msgstr ""
 
-#: gnu/packages/version-control.scm:1239
+#: gnu/packages/version-control.scm:1243
 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:1273
+#: gnu/packages/version-control.scm:1277
 msgid "HTTP and WebDAV client library"
 msgstr ""
 
-#: gnu/packages/version-control.scm:1275
+#: gnu/packages/version-control.scm:1279
 msgid ""
 "Neon is an HTTP and WebDAV client library, with a C interface and the\n"
 "following features:\n"
@@ -19559,24 +19828,24 @@ msgid ""
 "@end enumerate\n"
 msgstr ""
 
-#: gnu/packages/version-control.scm:1364
+#: gnu/packages/version-control.scm:1368
 msgid "Revision control system"
 msgstr ""
 
-#: gnu/packages/version-control.scm:1366
+#: gnu/packages/version-control.scm:1370
 msgid ""
-"Subversion exists to be universally recognized and adopted as a\n"
+"@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:1388
+#: gnu/packages/version-control.scm:1392
 msgid "Per-file local revision control system"
 msgstr ""
 
-#: gnu/packages/version-control.scm:1390
+#: gnu/packages/version-control.scm:1394
 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"
@@ -19585,11 +19854,11 @@ msgid ""
 "machine."
 msgstr ""
 
-#: gnu/packages/version-control.scm:1418
+#: gnu/packages/version-control.scm:1422
 msgid "Historical centralized version control system"
 msgstr ""
 
-#: gnu/packages/version-control.scm:1420
+#: gnu/packages/version-control.scm:1424
 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"
@@ -19597,11 +19866,11 @@ msgid ""
 "RCS, PRCS, and Aegis packages."
 msgstr ""
 
-#: gnu/packages/version-control.scm:1466
+#: gnu/packages/version-control.scm:1462
 msgid "Export an RCS or CVS history as a fast-import stream"
 msgstr ""
 
-#: gnu/packages/version-control.scm:1467
+#: gnu/packages/version-control.scm:1463
 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"
@@ -19614,11 +19883,11 @@ msgid ""
 "masters from remote CVS hosts."
 msgstr ""
 
-#: gnu/packages/version-control.scm:1494
+#: gnu/packages/version-control.scm:1490
 msgid "Version-control-agnostic ChangeLog diff and commit tool"
 msgstr ""
 
-#: gnu/packages/version-control.scm:1496
+#: gnu/packages/version-control.scm:1492
 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"
@@ -19628,33 +19897,33 @@ msgid ""
 "standards-compliant ChangeLog entries based on the changes that it detects."
 msgstr ""
 
-#: gnu/packages/version-control.scm:1521
+#: gnu/packages/version-control.scm:1517
 msgid "Make histograms from the output of @command{diff}"
 msgstr ""
 
-#: gnu/packages/version-control.scm:1523
+#: gnu/packages/version-control.scm:1519
 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:1562
+#: gnu/packages/version-control.scm:1558
 msgid "File-based version control like SCCS"
 msgstr ""
 
-#: gnu/packages/version-control.scm:1563
+#: gnu/packages/version-control.scm:1559
 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:1651
+#: gnu/packages/version-control.scm:1647
 msgid "Project change supervisor"
 msgstr ""
 
-#: gnu/packages/version-control.scm:1652
+#: gnu/packages/version-control.scm:1648
 msgid ""
 "Aegis is a project change supervisor, and performs some of\n"
 "the Software Configuration Management needed in a CASE environment.  Aegis\n"
@@ -19665,11 +19934,11 @@ msgid ""
 "any project with more than one developer, is one of Aegis's major functions."
 msgstr ""
 
-#: gnu/packages/version-control.scm:1726
+#: gnu/packages/version-control.scm:1722
 msgid "Edit version-control repository history"
 msgstr ""
 
-#: gnu/packages/version-control.scm:1727
+#: gnu/packages/version-control.scm:1723
 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"
@@ -19680,32 +19949,32 @@ msgid ""
 "from Subversion to any supported Distributed Version Control System (DVCS)."
 msgstr ""
 
-#: gnu/packages/version-control.scm:1766
+#: gnu/packages/version-control.scm:1762
 msgid "Ncurses-based text user interface for Git"
 msgstr ""
 
-#: gnu/packages/version-control.scm:1768
+#: gnu/packages/version-control.scm:1764
 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:1789
+#: gnu/packages/version-control.scm:1786
 msgid "Print the modification time of the latest file"
 msgstr ""
 
-#: gnu/packages/version-control.scm:1791
+#: gnu/packages/version-control.scm:1788
 msgid ""
 "Recursively find the newest file in a file tree and print its\n"
 "modification time."
 msgstr ""
 
-#: gnu/packages/version-control.scm:1836
+#: gnu/packages/version-control.scm:1833
 msgid "Multiple repository management tool"
 msgstr ""
 
-#: gnu/packages/version-control.scm:1838
+#: gnu/packages/version-control.scm:1835
 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"
@@ -19713,74 +19982,42 @@ msgid ""
 "Mercurial, Bazaar, Darcs, CVS, Fossil, and Veracity."
 msgstr ""
 
-#: gnu/packages/version-control.scm:1868
+#: gnu/packages/version-control.scm:1865
 msgid "Use hubic as a git-annex remote"
 msgstr ""
 
-#: gnu/packages/version-control.scm:1870
+#: gnu/packages/version-control.scm:1867
 msgid ""
 "This package allows you to use your hubic account as a \"special\n"
 "repository\" with git-annex."
 msgstr ""
 
-#: gnu/packages/version-control.scm:1923
+#: gnu/packages/version-control.scm:1929
 msgid "Software configuration management system"
 msgstr "Système de gestion de configuration logicielle"
 
-#: gnu/packages/version-control.scm:1925
+#: gnu/packages/version-control.scm:1931
 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:1953
+#: gnu/packages/version-control.scm:1959
 msgid "Static git page generator"
 msgstr ""
 
-#: gnu/packages/version-control.scm:1954
+#: gnu/packages/version-control.scm:1960
 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:2040
-msgid "Distributed Revision Control System"
-msgstr ""
-
-#: gnu/packages/version-control.scm:2042
-msgid ""
-"Darcs is a revision control system.  It is:\n"
-"\n"
-"@enumerate\n"
-"@item Distributed: Every user has access to the full command set, removing boundaries\n"
-"between server and client or committer and non-committers.\n"
-"@item Interactive: Darcs is easy to learn and efficient to use because it asks you\n"
-"questions in response to simple commands, giving you choices in your work flow.\n"
-"You can choose to record one change in a file, while ignoring another.  As you update\n"
-"from upstream, you can review each patch name, even the full diff for interesting\n"
-"patches.\n"
-"@item Smart: Originally developed by physicist David Roundy, darcs is based on a\n"
-"unique algebra of patches called @url{http://darcs.net/Theory,Patchtheory}.\n"
-"@end enumerate"
-msgstr ""
-
-#: gnu/packages/version-control.scm:2095
-msgid "Java library implementing the Git version control system"
-msgstr ""
-
-#: gnu/packages/version-control.scm:2096
-msgid ""
-"JGit is a lightweight, pure Java library implementing the\n"
-"Git version control system, providing repository access routines, support for\n"
-"network protocols, and core version control algorithms."
-msgstr ""
-
-#: gnu/packages/version-control.scm:2163
+#: gnu/packages/version-control.scm:1995
 msgid "3D visualisation tool for source control repositories"
 msgstr ""
 
-#: gnu/packages/version-control.scm:2164
+#: gnu/packages/version-control.scm:1996
 msgid ""
 "@code{gource} provides a software version control\n"
 "visualization.  The repository is displayed as a tree where the root of the\n"
@@ -19789,11 +20026,11 @@ msgid ""
 "specific files and directories."
 msgstr ""
 
-#: gnu/packages/version-control.scm:2210
+#: gnu/packages/version-control.scm:2042
 msgid "Simple revision control"
 msgstr "Contrôle de version simple"
 
-#: gnu/packages/version-control.scm:2213
+#: gnu/packages/version-control.scm:2045
 #, scheme-format
 msgid ""
 "SRC (or src) is simple revision control, a version-control system for\n"
@@ -19803,23 +20040,11 @@ msgid ""
 "directory full of HOWTOs."
 msgstr ""
 
-#: gnu/packages/version-control.scm:2338
-msgid "Manage files with Git, without checking in their contents"
-msgstr ""
-
-#: gnu/packages/version-control.scm:2339
-msgid ""
-"This package allows managing files with Git, without\n"
-"checking the file contents into Git.  It can store files in many places,\n"
-"such as local hard drives and cloud storage services.  It can also be\n"
-"used to keep a folder in sync between computers."
-msgstr ""
-
-#: gnu/packages/version-control.scm:2392
+#: gnu/packages/version-control.scm:2097
 msgid "Determine when a commit was merged into a Git branch"
 msgstr ""
 
-#: gnu/packages/version-control.scm:2393
+#: gnu/packages/version-control.scm:2098
 msgid ""
 "This Git extension defines a subcommand,\n"
 "@code{when-merged}, whose core operation is to find the merge that brought a\n"
@@ -19827,11 +20052,35 @@ msgid ""
 "how information about the merge is displayed."
 msgstr ""
 
-#: gnu/packages/virtualization.scm:214
+#: gnu/packages/version-control.scm:2142
+msgid "Incremental merge for Git"
+msgstr ""
+
+#: gnu/packages/version-control.scm:2143
+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:2167
+msgid "Git extension for versioning large files"
+msgstr "Extension Git pour gérer de grands fichiers"
+
+#: gnu/packages/version-control.scm:2169
+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
 msgid "Machine emulator and virtualizer"
 msgstr ""
 
-#: gnu/packages/virtualization.scm:216
+#: gnu/packages/virtualization.scm:229
 msgid ""
 "QEMU is a generic machine emulator and virtualizer.\n"
 "\n"
@@ -19846,15 +20095,15 @@ msgid ""
 "server and embedded PowerPC, and S390 guests."
 msgstr ""
 
-#: gnu/packages/virtualization.scm:238
+#: gnu/packages/virtualization.scm:251
 msgid "Machine emulator and virtualizer (without GUI)"
 msgstr ""
 
-#: gnu/packages/virtualization.scm:330
+#: gnu/packages/virtualization.scm:343
 msgid "Operating system information database"
 msgstr ""
 
-#: gnu/packages/virtualization.scm:331
+#: gnu/packages/virtualization.scm:344
 msgid ""
 "libosinfo is a GObject based library API for managing\n"
 "information about operating systems, hypervisors and the (virtual) hardware\n"
@@ -19864,22 +20113,22 @@ msgid ""
 "all common programming languages.  Vala bindings are also provided."
 msgstr ""
 
-#: gnu/packages/virtualization.scm:378
+#: gnu/packages/virtualization.scm:393
 msgid "Linux container tools"
 msgstr ""
 
-#: gnu/packages/virtualization.scm:381
+#: gnu/packages/virtualization.scm:396
 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:464
+#: gnu/packages/virtualization.scm:481
 msgid "Simple API for virtualization"
 msgstr ""
 
-#: gnu/packages/virtualization.scm:465
+#: gnu/packages/virtualization.scm:482
 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"
@@ -19887,11 +20136,11 @@ msgid ""
 "to integrate other virtualization mechanisms if needed."
 msgstr ""
 
-#: gnu/packages/virtualization.scm:506
+#: gnu/packages/virtualization.scm:523
 msgid "GLib wrapper around libvirt"
 msgstr ""
 
-#: gnu/packages/virtualization.scm:507
+#: gnu/packages/virtualization.scm:524
 msgid ""
 "libvirt-glib wraps the libvirt library to provide a\n"
 "high-level object-oriented API better suited for glib-based applications, via\n"
@@ -19904,21 +20153,21 @@ msgid ""
 "@end enumerate\n"
 msgstr ""
 
-#: gnu/packages/virtualization.scm:549
+#: gnu/packages/virtualization.scm:566
 msgid "Python bindings to libvirt"
 msgstr ""
 
-#: gnu/packages/virtualization.scm:550
+#: gnu/packages/virtualization.scm:567
 msgid ""
 "This package provides Python bindings to the libvirt\n"
 "virtualization library."
 msgstr ""
 
-#: gnu/packages/virtualization.scm:645
+#: gnu/packages/virtualization.scm:661
 msgid "Manage virtual machines"
 msgstr "Gestion de machines virtuelles"
 
-#: gnu/packages/virtualization.scm:647
+#: gnu/packages/virtualization.scm:663
 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"
@@ -19926,11 +20175,11 @@ msgid ""
 "domains, their live performance and resource utilization statistics."
 msgstr ""
 
-#: gnu/packages/virtualization.scm:737
+#: gnu/packages/virtualization.scm:769
 msgid "Checkpoint and restore in user space"
 msgstr ""
 
-#: gnu/packages/virtualization.scm:738
+#: gnu/packages/virtualization.scm:770
 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"
@@ -19939,22 +20188,22 @@ msgid ""
 "mainly implemented in user space."
 msgstr ""
 
-#: gnu/packages/virtualization.scm:763
+#: gnu/packages/virtualization.scm:795
 msgid "Backup and restore QEMU machines"
 msgstr ""
 
-#: gnu/packages/virtualization.scm:764
+#: gnu/packages/virtualization.scm:796
 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:808
+#: gnu/packages/virtualization.scm:843
 msgid "KVM Frame Relay (KVMFR) implementation"
 msgstr ""
 
-#: gnu/packages/virtualization.scm:809
+#: gnu/packages/virtualization.scm:844
 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"
@@ -19962,11 +20211,11 @@ msgid ""
 "monitor/GPU."
 msgstr ""
 
-#: gnu/packages/virtualization.scm:864
+#: gnu/packages/virtualization.scm:904
 msgid "Open container initiative runtime"
 msgstr ""
 
-#: gnu/packages/virtualization.scm:867
+#: gnu/packages/virtualization.scm:907
 msgid ""
 "@command{runc} is a command line client for running applications\n"
 "packaged according to the\n"
@@ -19975,21 +20224,21 @@ msgid ""
 "Open Container Initiative specification."
 msgstr ""
 
-#: gnu/packages/virtualization.scm:913
+#: gnu/packages/virtualization.scm:953
 msgid "Tool for modifying Open Container images"
 msgstr "Outil de modification d'image Open Container"
 
-#: gnu/packages/virtualization.scm:915
+#: gnu/packages/virtualization.scm:955
 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:960
+#: gnu/packages/virtualization.scm:1001
 msgid "Interact with container images and container image registries"
 msgstr ""
 
-#: gnu/packages/virtualization.scm:962
+#: gnu/packages/virtualization.scm:1003
 msgid ""
 "@command{skopeo} is a command line utility providing various operations\n"
 "with container images and container image registries.  It can:\n"
@@ -20010,22 +20259,22 @@ msgid ""
 "@end enumerate"
 msgstr ""
 
-#: gnu/packages/virtualization.scm:996
+#: gnu/packages/virtualization.scm:1037
 msgid "Python bindings for Vagrant"
 msgstr "Liaisons python pour Vagrant"
 
-#: gnu/packages/virtualization.scm:998
+#: gnu/packages/virtualization.scm:1039
 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:1049
+#: gnu/packages/virtualization.scm:1090
 msgid "Unprivileged sandboxing tool"
 msgstr ""
 
-#: gnu/packages/virtualization.scm:1050
+#: gnu/packages/virtualization.scm:1091
 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"
@@ -20035,6 +20284,31 @@ msgid ""
 "and can be made readonly."
 msgstr ""
 
+#: gnu/packages/virtualization.scm:1117
+msgid "Emulator for x86 PC"
+msgstr ""
+
+#: gnu/packages/virtualization.scm:1119
+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:1322
+msgid "Xen Virtual Machine Monitor"
+msgstr "Xen Virtual Machine Monitor"
+
+#: gnu/packages/virtualization.scm:1323
+msgid ""
+"This package provides the Xen Virtual Machine Monitor\n"
+"which is a hypervisor."
+msgstr ""
+"Ce paquet fournit le moniteur de machines virtuelles Xen\n"
+"qui est un hyperviseur."
+
 #: gnu/packages/webkit.scm:152
 msgid "Web content engine for GTK+"
 msgstr ""
@@ -20046,11 +20320,11 @@ msgid ""
 "HTML/CSS applications to full-fledged web browsers."
 msgstr ""
 
-#: gnu/packages/web.scm:152
+#: gnu/packages/web.scm:153
 msgid "Featureful HTTP server"
 msgstr ""
 
-#: gnu/packages/web.scm:154
+#: gnu/packages/web.scm:155
 msgid ""
 "The Apache HTTP Server Project is a collaborative software development\n"
 "effort aimed at creating a robust, commercial-grade, featureful, and\n"
@@ -20060,106 +20334,106 @@ msgid ""
 "and its related documentation."
 msgstr ""
 
-#: gnu/packages/web.scm:186
+#: gnu/packages/web.scm:187
 msgid "Apache HTTPD module for Python WSGI applications"
 msgstr ""
 
-#: gnu/packages/web.scm:188
+#: gnu/packages/web.scm:189
 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:275
+#: gnu/packages/web.scm:278
 msgid "HTTP and reverse proxy server"
 msgstr ""
 
-#: gnu/packages/web.scm:277
+#: gnu/packages/web.scm:280
 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:322
+#: gnu/packages/web.scm:325
 msgid "XSLScript with NGinx specific modifications"
 msgstr ""
 
-#: gnu/packages/web.scm:324
+#: gnu/packages/web.scm:327
 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:378
+#: gnu/packages/web.scm:380
 msgid "Documentation for the nginx web server"
 msgstr "Documentation du serveur web nginx"
 
-#: gnu/packages/web.scm:380
+#: gnu/packages/web.scm:382
 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:403
+#: gnu/packages/web.scm:405
 msgid "Language-independent, high-performant extension to CGI"
 msgstr ""
 
-#: gnu/packages/web.scm:404
+#: gnu/packages/web.scm:406
 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:435
+#: gnu/packages/web.scm:437
 msgid "Simple server for running CGI applications over FastCGI"
 msgstr ""
 
-#: gnu/packages/web.scm:436
+#: gnu/packages/web.scm:438
 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:467
+#: gnu/packages/web.scm:469
 msgid "PSGI/Plack web server"
 msgstr ""
 
-#: gnu/packages/web.scm:468
+#: gnu/packages/web.scm:470
 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:500
+#: gnu/packages/web.scm:502
 msgid "Java Web Start"
 msgstr ""
 
-#: gnu/packages/web.scm:502
+#: gnu/packages/web.scm:504
 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:523
+#: gnu/packages/web.scm:527
 msgid "JSON C library"
 msgstr "La bibliothèque C JSON"
 
-#: gnu/packages/web.scm:525
+#: gnu/packages/web.scm:529
 msgid ""
 "Jansson is a C library for encoding, decoding and manipulating JSON\n"
 "data."
 msgstr ""
 
-#: gnu/packages/web.scm:552
+#: gnu/packages/web.scm:556
 msgid "JSON implementation in C"
 msgstr ""
 
-#: gnu/packages/web.scm:554
+#: gnu/packages/web.scm:558
 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"
@@ -20167,11 +20441,11 @@ msgid ""
 "It aims to conform to RFC 7159."
 msgstr ""
 
-#: gnu/packages/web.scm:605
+#: gnu/packages/web.scm:609
 msgid "JSON parser written in ANSI C"
 msgstr ""
 
-#: gnu/packages/web.scm:606
+#: gnu/packages/web.scm:610
 msgid ""
 "This package provides a very low footprint JSON parser\n"
 "written in portable ANSI C.\n"
@@ -20184,22 +20458,22 @@ msgid ""
 "@end itemize"
 msgstr ""
 
-#: gnu/packages/web.scm:650
+#: gnu/packages/web.scm:654
 msgid "Library that maps JSON data to QVariant objects"
 msgstr ""
 
-#: gnu/packages/web.scm:651
+#: gnu/packages/web.scm:655
 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:735
+#: gnu/packages/web.scm:739
 msgid "Hierarchical data exploration with zoomable HTML5 pie charts"
 msgstr ""
 
-#: gnu/packages/web.scm:737
+#: gnu/packages/web.scm:741
 msgid ""
 "Krona is a flexible tool for exploring the relative proportions of\n"
 "hierarchical data, such as metagenomic classifications, using a radial,\n"
@@ -20208,42 +20482,42 @@ msgid ""
 "current version of any major web browser."
 msgstr ""
 
-#: gnu/packages/web.scm:777
+#: gnu/packages/web.scm:782
 msgid "JSON parser/generator for C++ with both SAX/DOM style API"
 msgstr ""
 
-#: gnu/packages/web.scm:779
+#: gnu/packages/web.scm:784
 msgid ""
 "RapidJSON is a fast JSON parser/generator for C++ with both SAX/DOM\n"
 "style API."
 msgstr ""
 
-#: gnu/packages/web.scm:805
+#: gnu/packages/web.scm:811
 msgid "C library for parsing JSON"
 msgstr ""
 
-#: gnu/packages/web.scm:807
+#: gnu/packages/web.scm:813
 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:837
+#: gnu/packages/web.scm:843
 msgid "WebSockets library written in C"
 msgstr ""
 
-#: gnu/packages/web.scm:839
+#: gnu/packages/web.scm:845
 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:867
+#: gnu/packages/web.scm:873
 msgid "C library for the Publix Suffix List"
 msgstr ""
 
-#: gnu/packages/web.scm:869
+#: gnu/packages/web.scm:875
 msgid ""
 "A \"public suffix\" is a domain name under which Internet users can\n"
 "directly register own names.\n"
@@ -20261,21 +20535,21 @@ msgid ""
 "UTS#46."
 msgstr ""
 
-#: gnu/packages/web.scm:915
+#: gnu/packages/web.scm:921
 msgid "HTML validator and tidier"
 msgstr ""
 
-#: gnu/packages/web.scm:916
+#: gnu/packages/web.scm:922
 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:948
+#: gnu/packages/web.scm:954
 msgid "Light-weight HTTP/HTTPS proxy daemon"
 msgstr ""
 
-#: gnu/packages/web.scm:949
+#: gnu/packages/web.scm:955
 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"
@@ -20284,22 +20558,22 @@ msgid ""
 "unavailable."
 msgstr ""
 
-#: gnu/packages/web.scm:982
+#: gnu/packages/web.scm:988
 msgid "Small caching web proxy"
 msgstr ""
 
-#: gnu/packages/web.scm:984
+#: gnu/packages/web.scm:990
 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:1011
+#: gnu/packages/web.scm:1018
 msgid "WebSockets support for any application/server"
 msgstr ""
 
-#: gnu/packages/web.scm:1012
+#: gnu/packages/web.scm:1019
 msgid ""
 "Websockify translates WebSockets traffic to normal socket\n"
 "traffic.  Websockify accepts the WebSockets handshake, parses it, and then\n"
@@ -20307,11 +20581,11 @@ msgid ""
 "directions."
 msgstr ""
 
-#: gnu/packages/web.scm:1038
+#: gnu/packages/web.scm:1045
 msgid "Caching web proxy optimized for intermittent internet links"
 msgstr ""
 
-#: gnu/packages/web.scm:1039
+#: gnu/packages/web.scm:1046
 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"
@@ -20320,11 +20594,11 @@ msgid ""
 "changes, and much more."
 msgstr ""
 
-#: gnu/packages/web.scm:1064
+#: gnu/packages/web.scm:1071
 msgid "C library implementing the OAuth API"
 msgstr "Bibliothèque C implémentant l'API OAuth"
 
-#: gnu/packages/web.scm:1066
+#: gnu/packages/web.scm:1073
 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"
@@ -20333,42 +20607,42 @@ msgid ""
 "hash/signatures."
 msgstr ""
 
-#: gnu/packages/web.scm:1089
+#: gnu/packages/web.scm:1096
 msgid "YAML 1.1 parser and emitter written in C"
 msgstr ""
 
-#: gnu/packages/web.scm:1091
+#: gnu/packages/web.scm:1098
 msgid "LibYAML is a YAML 1.1 parser and emitter written in C."
 msgstr ""
 
-#: gnu/packages/web.scm:1108 gnu/packages/web.scm:1142
-#: gnu/packages/web.scm:1165
+#: gnu/packages/web.scm:1115 gnu/packages/web.scm:1149
+#: gnu/packages/web.scm:1172
 msgid "Media stream URL parser"
 msgstr ""
 
-#: gnu/packages/web.scm:1109
+#: gnu/packages/web.scm:1116
 msgid ""
 "This package contains support scripts called by libquvi to\n"
 "parse media stream properties."
 msgstr ""
 
-#: gnu/packages/web.scm:1143
+#: gnu/packages/web.scm:1150
 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:1166
+#: gnu/packages/web.scm:1173
 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:1238
+#: gnu/packages/web.scm:1245
 msgid "High-performance asynchronous HTTP client library"
 msgstr ""
 
-#: gnu/packages/web.scm:1240
+#: gnu/packages/web.scm:1247
 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"
@@ -20376,49 +20650,61 @@ msgid ""
 "minimum to provide high performance operation."
 msgstr ""
 
-#: gnu/packages/web.scm:1292
+#: gnu/packages/web.scm:1281
+msgid "SASS Compiler, implemented as a C/C++ library"
+msgstr ""
+
+#: gnu/packages/web.scm:1283
+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:1332
 msgid "CSS pre-processor"
 msgstr ""
 
-#: gnu/packages/web.scm:1293
+#: gnu/packages/web.scm:1333
 msgid ""
 "SassC is a compiler written in C for the CSS pre-processor\n"
 "language known as SASS."
 msgstr ""
 
-#: gnu/packages/web.scm:1322
+#: gnu/packages/web.scm:1361
 msgid "Compile a log format string to perl-code"
 msgstr ""
 
-#: gnu/packages/web.scm:1323
+#: gnu/packages/web.scm:1362
 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:1351
+#: gnu/packages/web.scm:1390
 msgid "SASL authentication framework"
 msgstr ""
 
-#: gnu/packages/web.scm:1352
+#: gnu/packages/web.scm:1391
 msgid "Authen::SASL provides an SASL authentication framework."
 msgstr ""
 
-#: gnu/packages/web.scm:1377
+#: gnu/packages/web.scm:1416
 msgid "Sensible default Catalyst action"
 msgstr ""
 
-#: gnu/packages/web.scm:1378
+#: gnu/packages/web.scm:1417
 msgid ""
 "This Catalyst action implements a sensible default end\n"
 "action, which will forward to the first available view."
 msgstr ""
 
-#: gnu/packages/web.scm:1410
+#: gnu/packages/web.scm:1449
 msgid "Automated REST Method Dispatching"
 msgstr ""
 
-#: gnu/packages/web.scm:1411
+#: gnu/packages/web.scm:1450
 msgid ""
 "This Action handles doing automatic method dispatching for\n"
 "REST requests.  It takes a normal Catalyst action, and changes the dispatch to\n"
@@ -20427,32 +20713,32 @@ msgid ""
 "regular method."
 msgstr ""
 
-#: gnu/packages/web.scm:1448
+#: gnu/packages/web.scm:1487
 msgid "Storage class for Catalyst authentication using DBIx::Class"
 msgstr ""
 
-#: gnu/packages/web.scm:1449
+#: gnu/packages/web.scm:1488
 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:1475
+#: gnu/packages/web.scm:1514
 msgid "Create only one instance of Moose component per context"
 msgstr ""
 
-#: gnu/packages/web.scm:1476
+#: gnu/packages/web.scm:1515
 msgid ""
 "Catalyst::Component::InstancePerContext returns a new\n"
 "instance of a component on each request."
 msgstr ""
 
-#: gnu/packages/web.scm:1513
+#: gnu/packages/web.scm:1552
 msgid "Catalyst Development Tools"
 msgstr ""
 
-#: gnu/packages/web.scm:1514
+#: gnu/packages/web.scm:1553
 msgid ""
 "The Catalyst-Devel distribution includes a variety of\n"
 "modules useful for the development of Catalyst applications, but not required\n"
@@ -20462,11 +20748,11 @@ msgid ""
 "modules."
 msgstr ""
 
-#: gnu/packages/web.scm:1543
+#: gnu/packages/web.scm:1582
 msgid "Regex DispatchType for Catalyst"
 msgstr ""
 
-#: gnu/packages/web.scm:1544
+#: gnu/packages/web.scm:1583
 msgid ""
 "Dispatch type managing path-matching behaviour using\n"
 "regexes.  Regex dispatch types have been deprecated and removed from Catalyst\n"
@@ -20476,32 +20762,32 @@ msgid ""
 "when the dispatch type is first seen in your application."
 msgstr ""
 
-#: gnu/packages/web.scm:1593
+#: gnu/packages/web.scm:1632
 msgid "DBIx::Class::Schema Model Class"
 msgstr ""
 
-#: gnu/packages/web.scm:1594
+#: gnu/packages/web.scm:1633
 msgid ""
 "This is a Catalyst Model for DBIx::Class::Schema-based\n"
 "Models."
 msgstr ""
 
-#: gnu/packages/web.scm:1617
+#: gnu/packages/web.scm:1656
 msgid "Request logging from within Catalyst"
 msgstr ""
 
-#: gnu/packages/web.scm:1618
+#: gnu/packages/web.scm:1657
 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:1652
+#: gnu/packages/web.scm:1691
 msgid "Infrastructure plugin for the Catalyst authentication framework"
 msgstr ""
 
-#: gnu/packages/web.scm:1653
+#: gnu/packages/web.scm:1692
 msgid ""
 "The authentication plugin provides generic user support for\n"
 "Catalyst apps.  It is the basis for both authentication (checking the user is\n"
@@ -20509,52 +20795,52 @@ msgid ""
 "system authorises them to do)."
 msgstr ""
 
-#: gnu/packages/web.scm:1684
+#: gnu/packages/web.scm:1723
 msgid "Role-based authorization for Catalyst"
 msgstr ""
 
-#: gnu/packages/web.scm:1685
+#: gnu/packages/web.scm:1724
 msgid ""
 "Catalyst::Plugin::Authorization::Roles provides role-based\n"
 "authorization for Catalyst based on Catalyst::Plugin::Authentication."
 msgstr ""
 
-#: gnu/packages/web.scm:1708
+#: gnu/packages/web.scm:1747
 msgid "Captchas for Catalyst"
 msgstr ""
 
-#: gnu/packages/web.scm:1709
+#: gnu/packages/web.scm:1748
 msgid ""
 "This plugin creates and validates Captcha images for\n"
 "Catalyst."
 msgstr ""
 
-#: gnu/packages/web.scm:1736
+#: gnu/packages/web.scm:1775
 msgid "Load config files of various types"
 msgstr ""
 
-#: gnu/packages/web.scm:1737
+#: gnu/packages/web.scm:1776
 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:1769
+#: gnu/packages/web.scm:1807
 msgid "Catalyst generic session plugin"
 msgstr ""
 
-#: gnu/packages/web.scm:1770
+#: gnu/packages/web.scm:1808
 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:1798
+#: gnu/packages/web.scm:1836
 msgid "Maintain session IDs using cookies"
 msgstr ""
 
-#: gnu/packages/web.scm:1799
+#: gnu/packages/web.scm:1837
 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"
@@ -20562,22 +20848,22 @@ msgid ""
 "cookie mechanism."
 msgstr ""
 
-#: gnu/packages/web.scm:1829
+#: gnu/packages/web.scm:1867
 msgid "FastMmap session storage backend"
 msgstr ""
 
-#: gnu/packages/web.scm:1830
+#: gnu/packages/web.scm:1868
 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:1855
+#: gnu/packages/web.scm:1893
 msgid "Stack trace on the Catalyst debug screen"
 msgstr ""
 
-#: gnu/packages/web.scm:1856
+#: gnu/packages/web.scm:1894
 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"
@@ -20585,11 +20871,11 @@ msgid ""
 "number, file name, and code context surrounding the line number."
 msgstr ""
 
-#: gnu/packages/web.scm:1884
+#: gnu/packages/web.scm:1922
 msgid "Simple serving of static pages"
 msgstr ""
 
-#: gnu/packages/web.scm:1885
+#: gnu/packages/web.scm:1923
 msgid ""
 "The Static::Simple plugin is designed to make serving static\n"
 "content in your application during development quick and easy, without\n"
@@ -20600,11 +20886,11 @@ msgid ""
 "MIME type directly to the browser, without being processed through Catalyst."
 msgstr ""
 
-#: gnu/packages/web.scm:1947
+#: gnu/packages/web.scm:1985
 msgid "The Catalyst Framework Runtime"
 msgstr ""
 
-#: gnu/packages/web.scm:1948
+#: gnu/packages/web.scm:1986
 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"
@@ -20612,11 +20898,11 @@ msgid ""
 "\"plug in\" existing Perl modules that do what you need."
 msgstr ""
 
-#: gnu/packages/web.scm:1979
+#: gnu/packages/web.scm:2017
 msgid "Replace request base with value passed by HTTP proxy"
 msgstr ""
 
-#: gnu/packages/web.scm:1980
+#: gnu/packages/web.scm:2018
 msgid ""
 "This module is a Moose::Role which allows you more\n"
 "flexibility in your application's deployment configurations when deployed\n"
@@ -20624,42 +20910,42 @@ msgid ""
 "replaced with the contents of the X-Request-Base header."
 msgstr ""
 
-#: gnu/packages/web.scm:2007
+#: gnu/packages/web.scm:2045
 msgid "Download data in many formats"
 msgstr ""
 
-#: gnu/packages/web.scm:2008
+#: gnu/packages/web.scm:2046
 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:2034
+#: gnu/packages/web.scm:2072
 msgid "Catalyst JSON view"
 msgstr ""
 
-#: gnu/packages/web.scm:2035
+#: gnu/packages/web.scm:2073
 msgid ""
 "Catalyst::View::JSON is a Catalyst View handler that returns\n"
 "stash data in JSON format."
 msgstr ""
 
-#: gnu/packages/web.scm:2061
+#: gnu/packages/web.scm:2099
 msgid "Template View Class"
 msgstr ""
 
-#: gnu/packages/web.scm:2062
+#: gnu/packages/web.scm:2100
 msgid ""
 "This module is a Catalyst view class for the Template\n"
 "Toolkit."
 msgstr ""
 
-#: gnu/packages/web.scm:2091
+#: gnu/packages/web.scm:2129
 msgid "Trait Loading and Resolution for Catalyst Components"
 msgstr ""
 
-#: gnu/packages/web.scm:2092
+#: gnu/packages/web.scm:2130
 msgid ""
 "Adds a \"COMPONENT\" in Catalyst::Component method to your\n"
 "Catalyst component base class that reads the optional \"traits\" parameter\n"
@@ -20668,31 +20954,31 @@ msgid ""
 "MooseX::Traits::Pluggable."
 msgstr ""
 
-#: gnu/packages/web.scm:2117
+#: gnu/packages/web.scm:2155
 msgid "Apply roles to Catalyst classes"
 msgstr ""
 
-#: gnu/packages/web.scm:2118
+#: gnu/packages/web.scm:2156
 msgid ""
 "CatalystX::RoleApplicator applies roles to Catalyst\n"
 "application classes."
 msgstr ""
 
-#: gnu/packages/web.scm:2145
+#: gnu/packages/web.scm:2183
 msgid "Catalyst development server with Starman"
 msgstr ""
 
-#: gnu/packages/web.scm:2146
+#: gnu/packages/web.scm:2184
 msgid ""
 "This module provides a Catalyst extension to replace the\n"
 "development server with Starman."
 msgstr ""
 
-#: gnu/packages/web.scm:2170
+#: gnu/packages/web.scm:2208
 msgid "Handle Common Gateway Interface requests and responses"
 msgstr ""
 
-#: gnu/packages/web.scm:2171
+#: gnu/packages/web.scm:2209
 msgid ""
 "CGI.pm is a stable, complete and mature solution for\n"
 "processing and preparing HTTP requests and responses.  Major features include\n"
@@ -20701,72 +20987,72 @@ msgid ""
 "headers."
 msgstr ""
 
-#: gnu/packages/web.scm:2196
+#: gnu/packages/web.scm:2234
 msgid "Generate and process stateful forms"
 msgstr ""
 
-#: gnu/packages/web.scm:2198
+#: gnu/packages/web.scm:2236
 msgid ""
 "@code{CGI::FormBuilder} provides an easy way to generate and process CGI\n"
 "form-based applications."
 msgstr ""
 
-#: gnu/packages/web.scm:2223
+#: gnu/packages/web.scm:2261
 msgid "Persistent session data in CGI applications"
 msgstr ""
 
-#: gnu/packages/web.scm:2225
+#: gnu/packages/web.scm:2263
 msgid ""
 "@code{CGI::Session} provides modular session management system across\n"
 "HTTP requests."
 msgstr ""
 
-#: gnu/packages/web.scm:2248
+#: gnu/packages/web.scm:2285
 msgid "CGI interface that is CGI.pm compliant"
 msgstr ""
 
-#: gnu/packages/web.scm:2249
+#: gnu/packages/web.scm:2286
 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:2270
+#: gnu/packages/web.scm:2307
 msgid "Build structures from CGI data"
 msgstr ""
 
-#: gnu/packages/web.scm:2271
+#: gnu/packages/web.scm:2308
 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:2294
+#: gnu/packages/web.scm:2331
 msgid "Date conversion routines"
 msgstr ""
 
-#: gnu/packages/web.scm:2295
+#: gnu/packages/web.scm:2332
 msgid ""
 "This module provides functions that deal with the date\n"
 "formats used by the HTTP protocol."
 msgstr ""
 
-#: gnu/packages/web.scm:2315
+#: gnu/packages/web.scm:2352
 msgid "MD5 sums for files and urls"
 msgstr ""
 
-#: gnu/packages/web.scm:2316
+#: gnu/packages/web.scm:2353
 msgid ""
 "Digest::MD5::File is a Perl extension for getting MD5 sums\n"
 "for files and urls."
 msgstr ""
 
-#: gnu/packages/web.scm:2334
+#: gnu/packages/web.scm:2371
 msgid "Perl locale encoding determination"
 msgstr ""
 
-#: gnu/packages/web.scm:2336
+#: gnu/packages/web.scm:2373
 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"
@@ -20778,110 +21064,110 @@ msgid ""
 "with Encode::decode(locale => $string)."
 msgstr ""
 
-#: gnu/packages/web.scm:2371
+#: gnu/packages/web.scm:2408
 msgid "Syndication feed auto-discovery"
 msgstr ""
 
-#: gnu/packages/web.scm:2372
+#: gnu/packages/web.scm:2409
 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:2393
+#: gnu/packages/web.scm:2430
 msgid "Perl directory listing parser"
 msgstr ""
 
-#: gnu/packages/web.scm:2395
+#: gnu/packages/web.scm:2432
 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:2427
+#: gnu/packages/web.scm:2463
 msgid "Stock and mutual fund quotes"
 msgstr ""
 
-#: gnu/packages/web.scm:2429
+#: gnu/packages/web.scm:2465
 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:2451
+#: gnu/packages/web.scm:2487
 msgid "Perl extension providing access to the GSSAPIv2 library"
 msgstr ""
 
-#: gnu/packages/web.scm:2452
+#: gnu/packages/web.scm:2488
 msgid ""
 "This is a Perl extension for using GSSAPI C bindings as\n"
 "described in RFC 2744."
 msgstr ""
 
-#: gnu/packages/web.scm:2472
+#: gnu/packages/web.scm:2508
 msgid "Manipulate tables of HTML::Element"
 msgstr ""
 
-#: gnu/packages/web.scm:2474
+#: gnu/packages/web.scm:2510
 msgid ""
 "HTML::Element::Extended is a Perl extension for manipulating a table\n"
 "composed of HTML::Element style components."
 msgstr ""
 
-#: gnu/packages/web.scm:2498
+#: gnu/packages/web.scm:2534
 msgid "Perl class representing an HTML form element"
 msgstr ""
 
-#: gnu/packages/web.scm:2499
+#: gnu/packages/web.scm:2535
 msgid ""
 "Objects of the HTML::Form class represents a single HTML\n"
 "<form> ... </form> instance."
 msgstr ""
 
-#: gnu/packages/web.scm:2530
+#: gnu/packages/web.scm:2566
 msgid "Perl extension for scrubbing/sanitizing html"
 msgstr ""
 
-#: gnu/packages/web.scm:2532
+#: gnu/packages/web.scm:2568
 msgid "@code{HTML::Scrubber} Perl extension for scrubbing/sanitizing HTML."
 msgstr ""
 
-#: gnu/packages/web.scm:2553
+#: gnu/packages/web.scm:2588
 msgid "Check for HTML errors in a string or file"
 msgstr ""
 
-#: gnu/packages/web.scm:2554
+#: gnu/packages/web.scm:2589
 msgid ""
 "HTML::Lint is a pure-Perl HTML parser and checker for\n"
 "syntactic legitmacy."
 msgstr ""
 
-#: gnu/packages/web.scm:2575
+#: gnu/packages/web.scm:2610
 msgid "Extract contents from HTML tables"
 msgstr ""
 
-#: gnu/packages/web.scm:2577
+#: gnu/packages/web.scm:2612
 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:2602
+#: gnu/packages/web.scm:2637
 msgid "Work with HTML in a DOM-like tree structure"
 msgstr ""
 
-#: gnu/packages/web.scm:2603
+#: gnu/packages/web.scm:2638
 msgid ""
 "This distribution contains a suite of modules for\n"
 "representing, creating, and extracting information from HTML syntax trees."
 msgstr ""
 
-#: gnu/packages/web.scm:2624
+#: gnu/packages/web.scm:2659
 msgid "Perl HTML parser class"
 msgstr ""
 
-#: gnu/packages/web.scm:2626
+#: gnu/packages/web.scm:2661
 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"
@@ -20889,21 +21175,21 @@ msgid ""
 "are invoked."
 msgstr ""
 
-#: gnu/packages/web.scm:2646
+#: gnu/packages/web.scm:2681
 msgid "Perl data tables useful in parsing HTML"
 msgstr ""
 
-#: gnu/packages/web.scm:2648
+#: gnu/packages/web.scm:2683
 msgid ""
 "The HTML::Tagset module contains several data tables useful in various\n"
 "kinds of HTML parsing operations."
 msgstr ""
 
-#: gnu/packages/web.scm:2667
+#: gnu/packages/web.scm:2702
 msgid "HTML-like templates"
 msgstr ""
 
-#: gnu/packages/web.scm:2669
+#: gnu/packages/web.scm:2704
 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"
@@ -20914,72 +21200,72 @@ msgid ""
 "you to separate design from the data."
 msgstr ""
 
-#: gnu/packages/web.scm:2697
+#: gnu/packages/web.scm:2732
 msgid "HTTP Body Parser"
 msgstr ""
 
-#: gnu/packages/web.scm:2698
+#: gnu/packages/web.scm:2733
 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:2725
+#: gnu/packages/web.scm:2760
 msgid "Minimalist HTTP user agent cookie jar"
 msgstr ""
 
-#: gnu/packages/web.scm:2726
+#: gnu/packages/web.scm:2761
 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:2746
+#: gnu/packages/web.scm:2781
 msgid "Perl HTTP cookie jars"
 msgstr ""
 
-#: gnu/packages/web.scm:2748
+#: gnu/packages/web.scm:2783
 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:2770
+#: gnu/packages/web.scm:2805
 msgid "Perl simple http server class"
 msgstr ""
 
-#: gnu/packages/web.scm:2772
+#: gnu/packages/web.scm:2807
 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:2791
+#: gnu/packages/web.scm:2826
 msgid "Perl date conversion routines"
 msgstr ""
 
-#: gnu/packages/web.scm:2793
+#: gnu/packages/web.scm:2828
 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:2819
+#: gnu/packages/web.scm:2854
 msgid "Perl HTTP style message"
 msgstr ""
 
-#: gnu/packages/web.scm:2821
+#: gnu/packages/web.scm:2856
 msgid "An HTTP::Message object contains some headers and a content body."
 msgstr ""
 
-#: gnu/packages/web.scm:2840
+#: gnu/packages/web.scm:2875
 msgid "Perl http content negotiation"
 msgstr ""
 
-#: gnu/packages/web.scm:2842
+#: gnu/packages/web.scm:2877
 msgid ""
 "The HTTP::Negotiate module provides a complete implementation of the\n"
 "HTTP content negotiation algorithm specified in\n"
@@ -20989,86 +21275,98 @@ msgid ""
 "fields in the request."
 msgstr ""
 
-#: gnu/packages/web.scm:2867
+#: gnu/packages/web.scm:2902
 msgid "Parse HTTP/1.1 requests"
 msgstr ""
 
-#: gnu/packages/web.scm:2868
+#: gnu/packages/web.scm:2903
 msgid ""
 "This is an HTTP request parser.  It takes chunks of text as\n"
-"received and returns a 'hint' as to what is required, or returns the\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:2890
+#: gnu/packages/web.scm:2925
 msgid "Fast HTTP request parser"
 msgstr ""
 
-#: gnu/packages/web.scm:2891
+#: gnu/packages/web.scm:2926
 msgid ""
 "HTTP::Parser::XS is a fast, primitive HTTP request/response\n"
 "parser."
 msgstr ""
 
-#: gnu/packages/web.scm:2912
+#: gnu/packages/web.scm:2947
 msgid "Set up a CGI environment from an HTTP::Request"
 msgstr ""
 
-#: gnu/packages/web.scm:2913
+#: gnu/packages/web.scm:2948
 msgid ""
 "This module provides a convenient way to set up a CGI\n"
 "environment from an HTTP::Request."
 msgstr ""
 
-#: gnu/packages/web.scm:2946
+#: gnu/packages/web.scm:2981
 msgid "Lightweight HTTP server"
 msgstr ""
 
-#: gnu/packages/web.scm:2947
+#: gnu/packages/web.scm:2982
 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:2972
+#: gnu/packages/web.scm:3007
 msgid "HTTP/1.1 client"
 msgstr ""
 
-#: gnu/packages/web.scm:2973
+#: gnu/packages/web.scm:3008
 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:2992
+#: gnu/packages/web.scm:3032
+msgid "@code{HTTP::Tiny} compatible HTTP client wrappers"
+msgstr ""
+
+#: gnu/packages/web.scm:3034
+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:3054
 msgid "Perl module to open an HTML file with automatic charset detection"
 msgstr ""
 
-#: gnu/packages/web.scm:2994
+#: gnu/packages/web.scm:3056
 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:3014
+#: gnu/packages/web.scm:3076
 msgid "Family-neutral IP socket supporting both IPv4 and IPv6"
 msgstr ""
 
-#: gnu/packages/web.scm:3015
+#: gnu/packages/web.scm:3077
 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:3037
+#: gnu/packages/web.scm:3099
 msgid "Nearly transparent SSL encapsulation for IO::Socket::INET"
 msgstr ""
 
-#: gnu/packages/web.scm:3039
+#: gnu/packages/web.scm:3101
 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"
@@ -21077,11 +21375,11 @@ msgid ""
 "select or poll."
 msgstr ""
 
-#: gnu/packages/web.scm:3078
+#: gnu/packages/web.scm:3140
 msgid "Perl modules for the WWW"
 msgstr ""
 
-#: gnu/packages/web.scm:3080
+#: gnu/packages/web.scm:3142
 msgid ""
 "The libwww-perl collection is a set of Perl modules which provides a\n"
 "simple and consistent application programming interface to the\n"
@@ -21091,11 +21389,11 @@ msgid ""
 "help you implement simple HTTP servers."
 msgstr ""
 
-#: gnu/packages/web.scm:3108
+#: gnu/packages/web.scm:3170
 msgid "Checks whether your process has access to the web"
 msgstr ""
 
-#: gnu/packages/web.scm:3109
+#: gnu/packages/web.scm:3171
 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"
@@ -21105,11 +21403,11 @@ msgid ""
 "not have DNS.  We might not have a network card at all!"
 msgstr ""
 
-#: gnu/packages/web.scm:3131
+#: gnu/packages/web.scm:3193
 msgid "Perl module to guess the media type for a file or a URL"
 msgstr ""
 
-#: gnu/packages/web.scm:3133
+#: gnu/packages/web.scm:3195
 #, scheme-format
 msgid ""
 "The LWP::MediaTypes module provides functions for handling media (also\n"
@@ -21118,21 +21416,21 @@ msgid ""
 "exists it is used instead."
 msgstr ""
 
-#: gnu/packages/web.scm:3162
+#: gnu/packages/web.scm:3224
 msgid "HTTPS support for LWP::UserAgent"
 msgstr ""
 
-#: gnu/packages/web.scm:3163
+#: gnu/packages/web.scm:3225
 msgid ""
 "The LWP::Protocol::https module provides support for using\n"
 "https schemed URLs with LWP."
 msgstr ""
 
-#: gnu/packages/web.scm:3183
+#: gnu/packages/web.scm:3245
 msgid "Virtual browser that retries errors"
 msgstr ""
 
-#: gnu/packages/web.scm:3184
+#: gnu/packages/web.scm:3246
 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"
@@ -21140,19 +21438,19 @@ msgid ""
 "and retry a few times."
 msgstr ""
 
-#: gnu/packages/web.scm:3229
+#: gnu/packages/web.scm:3291
 msgid "Perl interface to Amazon S3"
 msgstr ""
 
-#: gnu/packages/web.scm:3230
+#: gnu/packages/web.scm:3292
 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:3250
+#: gnu/packages/web.scm:3312
 msgid "Perl low-level HTTP connection (client)"
 msgstr ""
 
-#: gnu/packages/web.scm:3252
+#: gnu/packages/web.scm:3314
 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"
@@ -21160,11 +21458,11 @@ msgid ""
 "HTTP/1.1."
 msgstr ""
 
-#: gnu/packages/web.scm:3272
+#: gnu/packages/web.scm:3334
 msgid "Extensible Perl server engine"
 msgstr ""
 
-#: gnu/packages/web.scm:3273
+#: gnu/packages/web.scm:3335
 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"
@@ -21178,19 +21476,19 @@ msgid ""
 "or to multiple server ports."
 msgstr ""
 
-#: gnu/packages/web.scm:3301
+#: gnu/packages/web.scm:3363
 msgid "SSL support for Net::SMTP"
 msgstr ""
 
-#: gnu/packages/web.scm:3302
+#: gnu/packages/web.scm:3364
 msgid "SSL support for Net::SMTP."
 msgstr ""
 
-#: gnu/packages/web.scm:3336
+#: gnu/packages/web.scm:3398
 msgid "Perl Superglue for Web frameworks and servers (PSGI toolkit)"
 msgstr ""
 
-#: gnu/packages/web.scm:3337
+#: gnu/packages/web.scm:3399
 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"
@@ -21198,21 +21496,34 @@ msgid ""
 "WSGI."
 msgstr ""
 
-#: gnu/packages/web.scm:3363
+#: gnu/packages/web.scm:3425
+msgid "Compress response body with Gzip or Deflate"
+msgstr ""
+
+#: gnu/packages/web.scm:3427
+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:3454
 msgid "Plack::Middleware which sets body for redirect response"
 msgstr ""
 
-#: gnu/packages/web.scm:3364
+#: gnu/packages/web.scm:3455
 msgid ""
 "This module sets the body in redirect response, if it's not\n"
 "already set."
 msgstr ""
 
-#: gnu/packages/web.scm:3387
+#: gnu/packages/web.scm:3477
 msgid "Override REST methods to Plack apps via POST"
 msgstr ""
 
-#: gnu/packages/web.scm:3388
+#: gnu/packages/web.scm:3478
 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"
@@ -21220,72 +21531,72 @@ msgid ""
 "can say what method it actually meant."
 msgstr ""
 
-#: gnu/packages/web.scm:3412
+#: gnu/packages/web.scm:3501
 msgid "Plack::Middleware which removes body for HTTP response"
 msgstr ""
 
-#: gnu/packages/web.scm:3413
+#: gnu/packages/web.scm:3502
 msgid ""
 "This module removes the body in an HTTP response if it's not\n"
 "required."
 msgstr ""
 
-#: gnu/packages/web.scm:3436
+#: gnu/packages/web.scm:3524
 msgid "Supports app to run as a reverse proxy backend"
 msgstr ""
 
-#: gnu/packages/web.scm:3437
+#: gnu/packages/web.scm:3525
 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 'enable_if' directive in your app.psgi."
+"and stop fake requests using @code{enable_if} directive in your app.psgi."
 msgstr ""
 
-#: gnu/packages/web.scm:3458
+#: gnu/packages/web.scm:3545
 msgid "Run HTTP tests on external live servers"
 msgstr ""
 
-#: gnu/packages/web.scm:3459
+#: gnu/packages/web.scm:3546
 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:3481
+#: gnu/packages/web.scm:3567
 msgid "Testing TCP programs"
 msgstr ""
 
-#: gnu/packages/web.scm:3482
+#: gnu/packages/web.scm:3568
 msgid "Test::TCP is test utilities for TCP/IP programs."
 msgstr ""
 
-#: gnu/packages/web.scm:3507
+#: gnu/packages/web.scm:3592
 msgid "Testing-specific WWW::Mechanize subclass"
 msgstr ""
 
-#: gnu/packages/web.scm:3508
+#: gnu/packages/web.scm:3593
 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:3542
+#: gnu/packages/web.scm:3626
 msgid "Test::WWW::Mechanize for Catalyst"
 msgstr ""
 
-#: gnu/packages/web.scm:3543
+#: gnu/packages/web.scm:3627
 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:3567
+#: gnu/packages/web.scm:3651
 msgid "Test PSGI programs using WWW::Mechanize"
 msgstr ""
 
-#: gnu/packages/web.scm:3568
+#: gnu/packages/web.scm:3652
 msgid ""
 "PSGI is a specification to decouple web server environments\n"
 "from web application framework code.  Test::WWW::Mechanize is a subclass of\n"
@@ -21294,33 +21605,33 @@ msgid ""
 "applications."
 msgstr ""
 
-#: gnu/packages/web.scm:3591
+#: gnu/packages/web.scm:3675
 msgid "Perl Uniform Resource Identifiers (absolute and relative)"
 msgstr ""
 
-#: gnu/packages/web.scm:3593
+#: gnu/packages/web.scm:3677
 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:3617
+#: gnu/packages/web.scm:3701
 msgid "Smart URI fetching/caching"
 msgstr ""
 
-#: gnu/packages/web.scm:3618
+#: gnu/packages/web.scm:3702
 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:3641
+#: gnu/packages/web.scm:3725
 msgid "Find URIs in arbitrary text"
 msgstr ""
 
-#: gnu/packages/web.scm:3642
+#: gnu/packages/web.scm:3726
 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"
@@ -21328,61 +21639,61 @@ msgid ""
 "URI::Find::Schemeless.  For a command-line interface, urifind is provided."
 msgstr ""
 
-#: gnu/packages/web.scm:3664
+#: gnu/packages/web.scm:3748
 msgid "WebSocket support for URI package"
 msgstr ""
 
-#: gnu/packages/web.scm:3665
+#: gnu/packages/web.scm:3749
 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:3689
+#: gnu/packages/web.scm:3773
 msgid "Object for handling URI templates"
 msgstr ""
 
-#: gnu/packages/web.scm:3690
+#: gnu/packages/web.scm:3774
 msgid ""
 "This perl module provides a wrapper around URI templates as described in\n"
 "RFC 6570."
 msgstr ""
 
-#: gnu/packages/web.scm:3722
+#: gnu/packages/web.scm:3806
 msgid "Perl extension interface for libcurl"
 msgstr "Interface d'extension Perl pour libcurl"
 
-#: gnu/packages/web.scm:3724
+#: gnu/packages/web.scm:3808
 msgid ""
 "This is a Perl extension interface for the libcurl file downloading\n"
 "library."
 msgstr ""
 
-#: gnu/packages/web.scm:3758
+#: gnu/packages/web.scm:3841
 msgid "Web browsing in a Perl object"
 msgstr ""
 
-#: gnu/packages/web.scm:3759
+#: gnu/packages/web.scm:3842
 msgid ""
 "WWW::Mechanize is a Perl module for stateful programmatic\n"
 "web browsing, used for automating interaction with websites."
 msgstr ""
 
-#: gnu/packages/web.scm:3795
+#: gnu/packages/web.scm:3878
 msgid "Search A9 OpenSearch compatible engines"
 msgstr ""
 
-#: gnu/packages/web.scm:3797
+#: gnu/packages/web.scm:3880
 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:3817
+#: gnu/packages/web.scm:3900
 msgid "Perl database of robots.txt-derived permissions"
 msgstr ""
 
-#: gnu/packages/web.scm:3819
+#: gnu/packages/web.scm:3902
 msgid ""
 "The WWW::RobotRules module parses /robots.txt files as specified in\n"
 "\"A Standard for Robot Exclusion\", at\n"
@@ -21391,150 +21702,42 @@ msgid ""
 "their web site."
 msgstr ""
 
-#: gnu/packages/web.scm:3842
+#: gnu/packages/web.scm:3925
 msgid "Parse feeds in Python"
 msgstr ""
 
-#: gnu/packages/web.scm:3844
+#: gnu/packages/web.scm:3927
 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:3871
-msgid "HTTP and WebSocket server library for R"
-msgstr ""
-
-#: gnu/packages/web.scm:3873
-msgid ""
-"The httpuv package provides low-level socket and protocol support for\n"
-"handling HTTP and WebSocket requests directly from within R.  It is primarily\n"
-"intended as a building block for other packages, rather than making it\n"
-"particularly easy to create complete web applications using httpuv alone."
-msgstr ""
-
-#: gnu/packages/web.scm:3894
-msgid "Robust, high performance JSON parser and generator for R"
-msgstr ""
-
-#: gnu/packages/web.scm:3896
-msgid ""
-"The jsonlite package provides a fast JSON parser and generator optimized\n"
-"for statistical data and the web.  It offers flexible, robust, high\n"
-"performance tools for working with JSON in R and is particularly powerful for\n"
-"building pipelines and interacting with a web API.  In addition to converting\n"
-"JSON data from/to R objects, jsonlite contains functions to stream, validate,\n"
-"and prettify JSON data.  The unit tests included with the package verify that\n"
-"all edge cases are encoded and decoded consistently for use with dynamic data\n"
-"in systems and applications."
-msgstr ""
-
-#: gnu/packages/web.scm:3923
-msgid "Simple HTTP server to serve static files or dynamic documents"
-msgstr ""
-
-#: gnu/packages/web.scm:3925
-msgid ""
-"Servr provides an HTTP server in R to serve static files, or dynamic\n"
-"documents that can be converted to HTML files (e.g., R Markdown) under a given\n"
-"directory."
-msgstr ""
-
-#: gnu/packages/web.scm:3959
-msgid "R tools for HTML"
-msgstr ""
-
-#: gnu/packages/web.scm:3961
-msgid "This package provides tools for HTML generation and output in R."
-msgstr "Ce paquet fournit des outils pour générer du HTML en R."
-
-#: gnu/packages/web.scm:3980
-msgid "HTML Widgets for R"
-msgstr ""
-
-#: gnu/packages/web.scm:3982
-msgid ""
-"HTML widgets is a framework for creating HTML widgets that render in\n"
-"various contexts including the R console, R Markdown documents, and Shiny web\n"
-"applications."
-msgstr ""
-
-#: gnu/packages/web.scm:4009
-msgid "Advanced tables for Markdown/HTML"
-msgstr ""
-
-#: gnu/packages/web.scm:4011
-msgid ""
-"This package provides functions to build tables with advanced layout\n"
-"elements such as row spanners, column spanners, table spanners, zebra\n"
-"striping, and more.  While allowing advanced layout, the underlying\n"
-"CSS-structure is simple in order to maximize compatibility with word\n"
-"processors such as LibreOffice.  The package also contains a few text\n"
-"formatting functions that help outputting text compatible with HTML or\n"
-"LaTeX."
-msgstr ""
-
-#: gnu/packages/web.scm:4048
-msgid "HTTP client for R"
-msgstr ""
-
-#: gnu/packages/web.scm:4050
-msgid ""
-"The @code{curl()} and @code{curl_download()} functions provide highly\n"
-"configurable drop-in replacements for base @code{url()} and\n"
-"@code{download.file()} with better performance, support for encryption, gzip\n"
-"compression, authentication, and other @code{libcurl} goodies.  The core of\n"
-"the package implements a framework for performing fully customized requests\n"
-"where data can be processed either in memory, on disk, or streaming via the\n"
-"callback or connection interfaces."
-msgstr ""
-
-#: gnu/packages/web.scm:4072
-msgid "Output R objects in HTML format"
-msgstr ""
-
-#: gnu/packages/web.scm:4074
-msgid ""
-"This package provides easy-to-use and versatile functions to output R\n"
-"objects in HTML format."
-msgstr ""
-
-#: gnu/packages/web.scm:4091
-msgid "JSON library for R"
-msgstr ""
-
-#: gnu/packages/web.scm:4093
-msgid ""
-"This package provides functions to convert R objects into JSON objects\n"
-"and vice-versa."
-msgstr ""
-
-#: gnu/packages/web.scm:4118
+#: gnu/packages/web.scm:3956
 msgid "HTML5 parsing library"
 msgstr "Bibliothèque d'analyse d'HTML5"
 
-#: gnu/packages/web.scm:4120
+#: gnu/packages/web.scm:3958
 msgid ""
 "Gumbo is an implementation of the HTML5 parsing algorithm implemented as\n"
 "a pure C99 library."
 msgstr ""
 
-#: gnu/packages/web.scm:4191
+#: gnu/packages/web.scm:4029
 msgid "Application container server"
 msgstr ""
 
-#: gnu/packages/web.scm:4193
+#: gnu/packages/web.scm:4031
 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:4219
+#: gnu/packages/web.scm:4057
 msgid "Command-line JSON processor"
 msgstr ""
 
-#: gnu/packages/web.scm:4220
+#: gnu/packages/web.scm:4058
 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"
@@ -21544,106 +21747,106 @@ msgid ""
 "you'd expect."
 msgstr ""
 
-#: gnu/packages/web.scm:4259
+#: gnu/packages/web.scm:4088
 msgid "Library for mocking web service APIs which use HTTP or HTTPS"
 msgstr ""
 
-#: gnu/packages/web.scm:4261
+#: gnu/packages/web.scm:4090
 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:4296
+#: gnu/packages/web.scm:4125
 msgid "Single file web server"
 msgstr ""
 
-#: gnu/packages/web.scm:4297
+#: gnu/packages/web.scm:4126
 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:4323
+#: gnu/packages/web.scm:4152
 msgid "Build system for the Netsurf project"
 msgstr ""
 
-#: gnu/packages/web.scm:4325
+#: gnu/packages/web.scm:4154
 msgid ""
 "This package provides the shared build system for Netsurf project\n"
 "libraries."
 msgstr ""
 
-#: gnu/packages/web.scm:4360
+#: gnu/packages/web.scm:4189
 msgid "Parser building library"
 msgstr "Bibliothèque de construction d'analyseur"
 
-#: gnu/packages/web.scm:4362
+#: gnu/packages/web.scm:4191
 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:4390
+#: gnu/packages/web.scm:4219
 msgid "HTML5 compliant parsing library"
 msgstr ""
 
-#: gnu/packages/web.scm:4392
+#: gnu/packages/web.scm:4221
 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:4473
+#: gnu/packages/web.scm:4302
 msgid "Wiki compiler, capable of generating HTML"
 msgstr ""
 
-#: gnu/packages/web.scm:4475
+#: gnu/packages/web.scm:4304
 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:4499
+#: gnu/packages/web.scm:4328
 msgid "String internment library"
 msgstr ""
 
-#: gnu/packages/web.scm:4501
+#: gnu/packages/web.scm:4330
 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:4528
+#: gnu/packages/web.scm:4357
 msgid "CSS parser and selection library"
 msgstr "Bibliothèque d'analyse et de sélection de CSS"
 
-#: gnu/packages/web.scm:4530
+#: gnu/packages/web.scm:4359
 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:4564
+#: gnu/packages/web.scm:4393
 msgid "Implementation of the W3C DOM"
 msgstr ""
 
-#: gnu/packages/web.scm:4566
+#: gnu/packages/web.scm:4395
 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:4593
+#: gnu/packages/web.scm:4422
 msgid "Library for parsing SVG files"
 msgstr "Bibliothèque pour analyser des fichiers SVG"
 
-#: gnu/packages/web.scm:4595
+#: gnu/packages/web.scm:4424
 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"
@@ -21651,94 +21854,94 @@ msgid ""
 "project."
 msgstr ""
 
-#: gnu/packages/web.scm:4618
+#: gnu/packages/web.scm:4447
 msgid "Decoding library for BMP and ICO files"
 msgstr ""
 
-#: gnu/packages/web.scm:4620
+#: gnu/packages/web.scm:4449
 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:4641
+#: gnu/packages/web.scm:4470
 msgid "Decoding library for GIF files"
 msgstr ""
 
-#: gnu/packages/web.scm:4643
+#: gnu/packages/web.scm:4472
 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:4664
+#: gnu/packages/web.scm:4493
 msgid "Utility library for NetSurf"
 msgstr ""
 
-#: gnu/packages/web.scm:4666
+#: gnu/packages/web.scm:4495
 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:4687
+#: gnu/packages/web.scm:4516
 msgid "Library to generate a static Public Suffix List"
 msgstr ""
 
-#: gnu/packages/web.scm:4689
+#: gnu/packages/web.scm:4518
 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:4715
+#: gnu/packages/web.scm:4544
 msgid "Generate JavaScript to DOM bindings"
 msgstr ""
 
-#: gnu/packages/web.scm:4717
+#: gnu/packages/web.scm:4546
 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:4829
+#: gnu/packages/web.scm:4658
 msgid "Web browser"
 msgstr ""
 
-#: gnu/packages/web.scm:4831
+#: gnu/packages/web.scm:4660
 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:4871
+#: gnu/packages/web.scm:4701
 msgid "Unix command line interface to the www"
 msgstr ""
 
-#: gnu/packages/web.scm:4872
+#: gnu/packages/web.scm:4702
 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:4903
+#: gnu/packages/web.scm:4733
 msgid "Simple static web server"
 msgstr ""
 
-#: gnu/packages/web.scm:4904
+#: gnu/packages/web.scm:4734
 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:4935
+#: gnu/packages/web.scm:4765
 msgid "Analyze Web server logs in real time"
 msgstr ""
 
-#: gnu/packages/web.scm:4937
+#: gnu/packages/web.scm:4767
 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"
@@ -21746,11 +21949,11 @@ msgid ""
 "on the fly."
 msgstr ""
 
-#: gnu/packages/web.scm:4973
+#: gnu/packages/web.scm:4803
 msgid "Tunnel data connections through HTTP requests"
 msgstr ""
 
-#: gnu/packages/web.scm:4974
+#: gnu/packages/web.scm:4804
 msgid ""
 "httptunnel creates a bidirectional virtual data connection\n"
 "tunnelled through HTTP (HyperText Transfer Protocol) requests.  This can be\n"
@@ -21759,11 +21962,11 @@ msgid ""
 "tools like SSH (Secure Shell) to reach the outside world."
 msgstr ""
 
-#: gnu/packages/web.scm:5021
+#: gnu/packages/web.scm:4850
 msgid "TLS proxy for clients or servers"
 msgstr ""
 
-#: gnu/packages/web.scm:5022
+#: gnu/packages/web.scm:4851
 msgid ""
 "Stunnel is a proxy designed to add TLS encryption\n"
 "functionality to existing clients and servers without any changes in the\n"
@@ -21772,11 +21975,11 @@ msgid ""
 "deployments."
 msgstr ""
 
-#: gnu/packages/web.scm:5088
+#: gnu/packages/web.scm:4920
 msgid "Web application accelerator"
 msgstr ""
 
-#: gnu/packages/web.scm:5090
+#: gnu/packages/web.scm:4922
 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"
@@ -21784,22 +21987,22 @@ msgid ""
 "configuration language."
 msgstr ""
 
-#: gnu/packages/web.scm:5118
+#: gnu/packages/web.scm:4950
 msgid "Collection of Varnish modules"
 msgstr "Collection de modules Varnish"
 
-#: gnu/packages/web.scm:5120
+#: gnu/packages/web.scm:4952
 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"
 "additional capabilities."
 msgstr ""
 
-#: gnu/packages/web.scm:5145
+#: gnu/packages/web.scm:4979
 msgid "Internet services daemon"
 msgstr ""
 
-#: gnu/packages/web.scm:5146
+#: gnu/packages/web.scm:4980
 msgid ""
 "@code{xinetd}, a more secure replacement for @code{inetd},\n"
 "listens for incoming requests over a network and launches the appropriate\n"
@@ -21808,11 +22011,11 @@ msgid ""
 "used to start services with both privileged and non-privileged port numbers."
 msgstr ""
 
-#: gnu/packages/web.scm:5190
+#: gnu/packages/web.scm:5024
 msgid "HTML Tidy with HTML5 support"
 msgstr ""
 
-#: gnu/packages/web.scm:5192
+#: gnu/packages/web.scm:5026
 msgid ""
 "Tidy is a console application which corrects and cleans up\n"
 "HTML and XML documents by fixing markup errors and upgrading\n"
@@ -21823,22 +22026,22 @@ msgid ""
 "functions of Tidy."
 msgstr ""
 
-#: gnu/packages/web.scm:5256
+#: gnu/packages/web.scm:5089
 msgid "Webserver with focus on security"
 msgstr ""
 
-#: gnu/packages/web.scm:5258
+#: gnu/packages/web.scm:5091
 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:5282
+#: gnu/packages/web.scm:5115
 msgid "HTTP request and response service"
 msgstr ""
 
-#: gnu/packages/web.scm:5283
+#: gnu/packages/web.scm:5116
 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"
@@ -21846,22 +22049,22 @@ msgid ""
 "JSON-encoded."
 msgstr ""
 
-#: gnu/packages/web.scm:5311
+#: gnu/packages/web.scm:5144
 msgid "Test your HTTP library against a local copy of httpbin"
 msgstr ""
 
-#: gnu/packages/web.scm:5313
+#: gnu/packages/web.scm:5146
 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:5344
+#: gnu/packages/web.scm:5177
 msgid "HTTP request/response parser for C"
 msgstr ""
 
-#: gnu/packages/web.scm:5345
+#: gnu/packages/web.scm:5178
 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"
@@ -21871,123 +22074,64 @@ msgid ""
 "message stream (in a web server that is per connection)."
 msgstr ""
 
-#: gnu/packages/web.scm:5397
+#: gnu/packages/web.scm:5211 gnu/packages/web.scm:5260
 msgid "HTTP client mock for Python"
 msgstr ""
 
-#: gnu/packages/web.scm:5398
+#: gnu/packages/web.scm:5212 gnu/packages/web.scm:5261
 msgid ""
 "@code{httpretty} is a helper for faking web requests,\n"
 "inspired by Ruby's @code{fakeweb}."
 msgstr ""
 
-#: gnu/packages/web.scm:5416
+#: gnu/packages/web.scm:5279
 msgid "Output JSON from a shell"
 msgstr ""
 
-#: gnu/packages/web.scm:5417
+#: gnu/packages/web.scm:5280
 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:5465
+#: gnu/packages/web.scm:5328
 msgid "Command-line interface to archive.org"
 msgstr "Interface en ligne de commande pour archive.org"
 
-#: gnu/packages/web.scm:5466
+#: gnu/packages/web.scm:5329
 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."
 msgstr ""
 
-#: gnu/packages/web.scm:5522
+#: gnu/packages/web.scm:5385
 msgid "Search code snippets on @url{https://commandlinefu.com}"
 msgstr ""
 
-#: gnu/packages/web.scm:5523
+#: gnu/packages/web.scm:5386
 msgid ""
 "@code{clf} is a command line tool for searching code\n"
 "snippets on @url{https://commandlinefu.com}."
 msgstr ""
 
-#: gnu/packages/web.scm:5627
-msgid "Easy interactive web applications with R"
-msgstr ""
-
-#: gnu/packages/web.scm:5629
-msgid ""
-"Makes it incredibly easy to build interactive web applications\n"
-"with R.  Automatic \"reactive\" binding between inputs and outputs and\n"
-"extensive prebuilt widgets make it possible to build beautiful,\n"
-"responsive, and powerful applications with minimal effort."
-msgstr ""
-
-#: gnu/packages/web.scm:5669
-msgid "Create dashboards with shiny"
-msgstr ""
-
-#: gnu/packages/web.scm:5670
-msgid ""
-"This package provides an extension to the Shiny web\n"
-"application framework for R, making it easy to create attractive dashboards."
-msgstr ""
-
-#: gnu/packages/web.scm:5697
-msgid "Server-side file system viewer for Shiny"
-msgstr ""
-
-#: gnu/packages/web.scm:5699
-msgid ""
-"This package provides functionality for client-side navigation of the\n"
-"server side file system in shiny apps.  In case the app is running locally\n"
-"this gives the user direct access to the file system without the need to\n"
-"\"download\" files to a temporary location.  Both file and folder selection as\n"
-"well as file saving is available."
-msgstr ""
-
-#: gnu/packages/web.scm:5726
-msgid "Inter-widget interactivity for HTML widgets"
-msgstr ""
-
-#: gnu/packages/web.scm:5728
-msgid ""
-"This package provides building blocks for allowing HTML widgets to\n"
-"communicate with each other, with Shiny or without (i.e.  static @code{.html}\n"
-"files).  It currently supports linked brushing and filtering."
-msgstr ""
-
-#: gnu/packages/web.scm:5748
-msgid "Web server interface for R"
-msgstr "Serveur web d'interface pour R"
-
-#: gnu/packages/web.scm:5750
-msgid ""
-"This package contains the Rook specification and convenience software\n"
-"for building and running Rook applications.  A Rook application is an R\n"
-"reference class object that implements a @code{call} method or an R closure\n"
-"that takes exactly one argument, an environment, and returns a list with three\n"
-"named elements: the @code{status}, the @code{headers}, and the @code{body}."
-msgstr ""
-
-#: gnu/packages/web.scm:5789
+#: gnu/packages/web.scm:5420
 msgid "Generate Atom feeds for social networking websites"
 msgstr ""
 
-#: gnu/packages/web.scm:5790
+#: gnu/packages/web.scm:5421
 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:5817
+#: gnu/packages/web.scm:5475
 msgid "Check websites for broken links"
 msgstr ""
 
-#: gnu/packages/web.scm:5818
+#: gnu/packages/web.scm:5476
 msgid ""
 "LinkChecker is a website validator.  It checks for broken\n"
 "links in websites.  It is recursive and multithreaded providing output in\n"
@@ -21996,99 +22140,99 @@ msgid ""
 "file links."
 msgstr ""
 
-#: gnu/packages/web.scm:5854
+#: gnu/packages/web.scm:5512
 msgid "Command-line WebDAV client"
 msgstr ""
 
-#: gnu/packages/web.scm:5856
+#: gnu/packages/web.scm:5514
 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:5874
+#: gnu/packages/web.scm:5532
 msgid "Universal Binary JSON encoder/decoder"
 msgstr ""
 
-#: gnu/packages/web.scm:5876
+#: gnu/packages/web.scm:5534
 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:5938
+#: gnu/packages/web.scm:5596
 msgid ""
 "Java Servlet, JavaServer Pages, Java Expression Language and Java\n"
 "WebSocket"
 msgstr ""
 
-#: gnu/packages/web.scm:5940
+#: gnu/packages/web.scm:5598
 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:5990
+#: gnu/packages/web.scm:5649
 msgid "Helper classes for jetty tests"
 msgstr ""
 
-#: gnu/packages/web.scm:5991
+#: gnu/packages/web.scm:5650
 msgid ""
 "This packages contains helper classes for testing the Jetty\n"
 "Web Server."
 msgstr ""
 
-#: gnu/packages/web.scm:6053
+#: gnu/packages/web.scm:5712
 msgid "Utility classes for Jetty"
 msgstr ""
 
-#: gnu/packages/web.scm:6054
+#: gnu/packages/web.scm:5713
 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:6125
+#: gnu/packages/web.scm:5784
 msgid "Jetty :: IO Utility"
 msgstr ""
 
-#: gnu/packages/web.scm:6126
+#: gnu/packages/web.scm:5785
 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:6169
+#: gnu/packages/web.scm:5828
 msgid "Jetty :: Http Utility"
 msgstr ""
 
-#: gnu/packages/web.scm:6170
+#: gnu/packages/web.scm:5829
 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:6203
+#: gnu/packages/web.scm:5862
 msgid "Jetty :: JMX Management"
 msgstr ""
 
-#: gnu/packages/web.scm:6204
+#: gnu/packages/web.scm:5863
 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:6290
+#: gnu/packages/web.scm:5950
 msgid "Core jetty server artifact"
 msgstr ""
 
-#: gnu/packages/web.scm:6291
+#: gnu/packages/web.scm:5951
 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"
@@ -22096,11 +22240,11 @@ msgid ""
 "artifact."
 msgstr ""
 
-#: gnu/packages/web.scm:6335
+#: gnu/packages/web.scm:5995
 msgid "Jetty security infrastructure"
 msgstr ""
 
-#: gnu/packages/web.scm:6336
+#: gnu/packages/web.scm:5996
 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"
@@ -22108,11 +22252,11 @@ msgid ""
 "infrastructure"
 msgstr ""
 
-#: gnu/packages/web.scm:6379
+#: gnu/packages/web.scm:6039
 msgid "Jetty Servlet Container"
 msgstr ""
 
-#: gnu/packages/web.scm:6380
+#: gnu/packages/web.scm:6040
 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"
@@ -22120,22 +22264,22 @@ msgid ""
 "container."
 msgstr ""
 
-#: gnu/packages/web.scm:6544
+#: gnu/packages/web.scm:6204
 msgid "HTML parser"
 msgstr "Analyse d'HTML"
 
-#: gnu/packages/web.scm:6545
+#: gnu/packages/web.scm:6205
 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:6566
+#: gnu/packages/web.scm:6226
 msgid "Validate HTML"
 msgstr ""
 
-#: gnu/packages/web.scm:6567
+#: gnu/packages/web.scm:6227
 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"
@@ -22145,22 +22289,22 @@ msgid ""
 "based on this library, allowing Perl programmers to easily validate HTML."
 msgstr ""
 
-#: gnu/packages/web.scm:6608
+#: gnu/packages/web.scm:6268
 msgid "(X)HTML validation in a Perl object"
 msgstr ""
 
-#: gnu/packages/web.scm:6609
+#: gnu/packages/web.scm:6269
 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:6635
+#: gnu/packages/web.scm:6296
 msgid "Small Gopher server"
 msgstr ""
 
-#: gnu/packages/web.scm:6637
+#: gnu/packages/web.scm:6298
 msgid ""
 "Geomyidae is a server for distributed hypertext protocol Gopher.  Its\n"
 "features include:\n"
@@ -22174,22 +22318,22 @@ msgid ""
 "@end enumerate\n"
 msgstr ""
 
-#: gnu/packages/web.scm:6685
+#: gnu/packages/web.scm:6346
 msgid "Random avatar generator"
 msgstr ""
 
-#: gnu/packages/web.scm:6686
+#: gnu/packages/web.scm:6347
 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:6748
+#: gnu/packages/web.scm:6413
 msgid "HTTP/2 protocol client, proxy, server, and library"
 msgstr ""
 
-#: gnu/packages/web.scm:6750
+#: gnu/packages/web.scm:6415
 msgid ""
 "nghttp2 implements the Hypertext Transfer Protocol, version\n"
 "2 (@dfn{HTTP/2}).\n"
@@ -22215,25 +22359,33 @@ msgid ""
 "@end itemize\n"
 msgstr ""
 
-#: gnu/packages/web.scm:6850
+#: gnu/packages/web.scm:6515
 msgid "Web interface for cluster deployments of Guix"
 msgstr ""
 
-#: gnu/packages/web.scm:6851
+#: gnu/packages/web.scm:6516
 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:6873
-msgid "Shiny UI widgets for small screens"
+#: gnu/packages/web.scm:6537
+msgid "Easy-to-use offline browser utility"
 msgstr ""
 
-#: gnu/packages/web.scm:6875
+#: gnu/packages/web.scm:6538
 msgid ""
-"This package provides UI widget and layout functions for writing Shiny apps that\n"
-"work well on small screens."
+"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"
+"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/wordnet.scm:92
@@ -22349,21 +22501,21 @@ msgid ""
 "@end enumerate\n"
 msgstr ""
 
-#: gnu/packages/xiph.scm:251
+#: gnu/packages/xiph.scm:252
 msgid "Free lossless audio codec"
 msgstr ""
 
-#: gnu/packages/xiph.scm:253
+#: gnu/packages/xiph.scm:254
 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:279
+#: gnu/packages/xiph.scm:288
 msgid "Karaoke and text codec for embedding in ogg"
 msgstr ""
 
-#: gnu/packages/xiph.scm:281
+#: gnu/packages/xiph.scm:290
 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"
@@ -22378,11 +22530,11 @@ msgid ""
 "Kate stream."
 msgstr ""
 
-#: gnu/packages/xiph.scm:319
+#: gnu/packages/xiph.scm:328
 msgid "Ogg vorbis tools"
 msgstr "Outils pour Ogg vorbis"
 
-#: gnu/packages/xiph.scm:321
+#: gnu/packages/xiph.scm:330
 msgid ""
 "Ogg vorbis is a non-proprietary, patent-and-royalty-free,\n"
 "general-purpose compressed audio format.\n"
@@ -22404,11 +22556,11 @@ msgstr ""
 "ogginfo, pour obtenir des informations (tags, débit, longueur, etc) à propos\n"
 "         d'un fichier ogg vorbis."
 
-#: gnu/packages/xiph.scm:345 gnu/packages/xiph.scm:411
+#: gnu/packages/xiph.scm:354 gnu/packages/xiph.scm:420
 msgid "Versatile audio codec"
 msgstr "Codec audio polyvalent"
 
-#: gnu/packages/xiph.scm:347
+#: gnu/packages/xiph.scm:356
 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"
@@ -22423,11 +22575,11 @@ msgstr ""
 "qui contient les technologies du codec SILK de Skype et du code CELT de\n"
 "Xiph.Org."
 
-#: gnu/packages/xiph.scm:384
+#: gnu/packages/xiph.scm:393
 msgid "Command line utilities to encode, inspect, and decode .opus files"
 msgstr "Utilitaires en ligne de commande pour encoder, inspecter et décoder des fichiers .opus"
 
-#: gnu/packages/xiph.scm:385
+#: gnu/packages/xiph.scm:394
 msgid ""
 "Opus is a royalty-free, highly versatile audio codec.\n"
 "Opus-tools provide command line utilities for creating, inspecting and\n"
@@ -22437,7 +22589,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:413
+#: gnu/packages/xiph.scm:422
 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"
@@ -22447,21 +22599,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:435
+#: gnu/packages/xiph.scm:444
 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:436
+#: gnu/packages/xiph.scm:445
 msgid ""
 "The libopusenc libraries provide a high-level API for\n"
 "encoding Opus files and streams."
 msgstr ""
 
-#: gnu/packages/xiph.scm:465
+#: gnu/packages/xiph.scm:474
 msgid "Streaming media server"
 msgstr "Serveur de flux multimédia"
 
-#: gnu/packages/xiph.scm:466
+#: gnu/packages/xiph.scm:475
 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"
@@ -22473,11 +22625,11 @@ msgstr ""
 "utilisé pour créer une station radio internet ou un jukebox privé et bien\n"
 "d'autres choses."
 
-#: gnu/packages/xiph.scm:494
+#: gnu/packages/xiph.scm:503
 msgid "Audio streaming library for icecast encoders"
 msgstr "Bibliothèque de streaming audio pour les encodeurs icecast"
 
-#: gnu/packages/xiph.scm:496
+#: gnu/packages/xiph.scm:505
 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"
@@ -22487,7 +22639,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:294
+#: 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"
@@ -22501,7 +22653,7 @@ msgstr ""
 "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:346
+#: gnu/services/base.scm:350
 msgid ""
 "Populate the @file{/etc/fstab} based on the given file\n"
 "system objects."
@@ -22509,7 +22661,7 @@ msgstr ""
 "Rempli @file{/etc/fstab} en fonction des objets de systèmes de\n"
 "fichiers donnés."
 
-#: gnu/services/base.scm:523
+#: gnu/services/base.scm:527
 msgid ""
 "Provide Shepherd services to mount and unmount the given\n"
 "file systems, as well as corresponding @file{/etc/fstab} entries."
@@ -22517,7 +22669,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:613
+#: gnu/services/base.scm:617
 msgid ""
 "Seed the @file{/dev/urandom} pseudo-random number\n"
 "generator (RNG) with the value recorded when the system was last shut\n"
@@ -22526,7 +22678,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:777
+#: gnu/services/base.scm:783
 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"
@@ -22544,7 +22696,7 @@ msgstr ""
 "'((\"tty1\" . \"LatGrkCyr-8x16\"))\n"
 "@end example\n"
 
-#: gnu/services/base.scm:820
+#: gnu/services/base.scm:827
 msgid ""
 "Provide a console log-in service as specified by its\n"
 "configuration value, a @code{login-configuration} object."
@@ -22552,19 +22704,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:1083
+#: gnu/services/base.scm:1090
 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:1144
+#: gnu/services/base.scm:1151
 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:1360
+#: gnu/services/base.scm:1368
 msgid ""
 "Runs libc's @dfn{name service cache daemon} (nscd) with the\n"
 "given configuration---an @code{<nscd-configuration>} object.  @xref{Name\n"
@@ -22574,7 +22726,7 @@ msgstr ""
 "configuration donnée — un objet @code{<nscd-configuration>}.  @xref{Name\n"
 "Service Switch}, pour un exemple."
 
-#: gnu/services/base.scm:1460
+#: gnu/services/base.scm:1468
 msgid ""
 "Install the specified resource usage limits by populating\n"
 "@file{/etc/security/limits.conf} and using the @code{pam_limits}\n"
@@ -22584,11 +22736,11 @@ msgstr ""
 "en remplissant @file{/etc/security/limits.conf} et en utilisant le module\n"
 "d'authentification @code{pam_limits}."
 
-#: gnu/services/base.scm:1679
+#: gnu/services/base.scm:1714
 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:1779
+#: gnu/services/base.scm:1816
 msgid ""
 "Add a Shepherd service running @command{guix publish}, a\n"
 "command that allows you to share pre-built binaries with others over HTTP."
@@ -22596,7 +22748,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:1978
+#: gnu/services/base.scm:2026
 msgid ""
 "Run @command{udev}, which populates the @file{/dev}\n"
 "directory dynamically.  Get extra rules from the packages listed in the\n"
@@ -22606,7 +22758,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:2060
+#: gnu/services/base.scm:2108
 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"
@@ -22619,7 +22771,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:2243
+#: gnu/services/base.scm:2292
 msgid ""
 "Turn up the specified network interfaces upon startup,\n"
 "with the given IP address, gateway, netmask, and so on.  The value for\n"
@@ -22641,7 +22793,7 @@ msgstr ""
 "Encrypt} en ajustant la configuration du serveur web nginx et en invoquant\n"
 "périodiquement @command{certbot}."
 
-#: gnu/services/networking.scm:372
+#: gnu/services/networking.scm:374
 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"
@@ -22651,7 +22803,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:485
+#: gnu/services/networking.scm:488
 msgid ""
 "Run the @command{ntpd}, the Network Time Protocol (NTP)\n"
 "daemon, as implemented by @uref{http://www.openntpd.org, OpenNTPD}.  The\n"
@@ -22661,7 +22813,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:573
+#: gnu/services/networking.scm:576
 msgid ""
 "Start @command{inetd}, the @dfn{Internet superserver}.  It is responsible\n"
 "for listening on Internet sockets and spawning the corresponding services on\n"
@@ -22671,7 +22823,7 @@ msgstr ""
 "de l'écoute sur des sockets Internet et du démarrage des services correspondants\n"
 "à la demande."
 
-#: gnu/services/networking.scm:752
+#: gnu/services/networking.scm:755
 msgid ""
 "Run the @uref{https://torproject.org, Tor} anonymous\n"
 "networking daemon."
@@ -22679,11 +22831,11 @@ msgstr ""
 "Lance le démon de navigation anonyme\n"
 "@uref{https://torproject.org, Tor}."
 
-#: gnu/services/networking.scm:775
+#: gnu/services/networking.scm:779
 msgid "Define a new Tor @dfn{hidden service}."
 msgstr "Définie un nouveau @dfn{service caché} Tor."
 
-#: gnu/services/networking.scm:843
+#: gnu/services/networking.scm:847
 msgid ""
 "Run @url{https://launchpad.net/wicd,Wicd}, a network\n"
 "management daemon that aims to simplify wired and wireless networking."
@@ -22691,7 +22843,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:943
+#: gnu/services/networking.scm:947
 msgid ""
 "Run @uref{https://wiki.gnome.org/Projects/NetworkManager,\n"
 "NetworkManager}, a network management daemon that aims to simplify wired and\n"
@@ -22701,7 +22853,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:1004
+#: gnu/services/networking.scm:1015
 msgid ""
 "Run @url{https://01.org/connman,Connman},\n"
 "a network connection manager."
@@ -22709,7 +22861,7 @@ msgstr ""
 "Lance @url{https://01.org/connman,Connman}, un\n"
 "gestionnaire de connexion réseau."
 
-#: gnu/services/networking.scm:1027
+#: gnu/services/networking.scm:1038
 msgid ""
 "Run @uref{https://wiki.gnome.org/Projects/ModemManager,\n"
 "ModemManager}, a modem management daemon that aims to simplify dialup\n"
@@ -22719,13 +22871,13 @@ msgstr ""
 "ModemManager}, un démon de gestion de modem qui veut simplifier les\n"
 "connexions par ligne téléphonique."
 
-#: gnu/services/networking.scm:1089
+#: gnu/services/networking.scm:1101
 msgid ""
 "Run the WPA Supplicant daemon, a service that\n"
 "implements authentication, key negotiation and more for wireless networks."
 msgstr ""
 
-#: gnu/services/networking.scm:1151
+#: gnu/services/networking.scm:1163
 msgid ""
 "Run @uref{http://www.openvswitch.org, Open vSwitch}, a multilayer virtual\n"
 "switch designed to enable massive network automation through programmatic\n"
@@ -22735,7 +22887,7 @@ msgstr ""
 "multi-niveau conçu pour permettre une automatisation massive du réseau via des\n"
 "extensions programmables."
 
-#: gnu/services/networking.scm:1196
+#: gnu/services/networking.scm:1209
 msgid "Run @command{iptables-restore}, setting up the specified rules."
 msgstr ""
 
@@ -22753,6 +22905,150 @@ msgid ""
 "provide a web interface to view selected repositories."
 msgstr ""
 
+#~ msgid "The GNU C Library (GNU Hurd variant)"
+#~ msgstr "La bibliothèque GNU C (variante GNU Hurd)"
+
+#~ msgid "Python bindings for the LZO data compression library"
+#~ msgstr "Liaisons python pour la bibliothèque de compression LZO"
+
+#~ msgid "LZ4 bindings for Python"
+#~ msgstr "Liaisons LZ4 pour Python"
+
+#~ msgid "Java bzip2 compression/decompression library"
+#~ msgstr "Bibliothèque de compression et décompression bzip2 pour Java"
+
+#~ msgid "Provides an interface to Zip archive files"
+#~ msgstr "Fournit une interface pour les fichiers d'archives ZIP"
+
+#~ msgid ""
+#~ "The @code{Archive::Zip} module allows a Perl program to\n"
+#~ "create, manipulate, read, and write Zip archive files."
+#~ msgstr ""
+#~ "Le module @code{Archive::Zip} permet à un programme Perl de créer,\n"
+#~ "manipuler, lire et écrire des fichiers d'archives Zip."
+
+#~ msgid "Berkeley database"
+#~ msgstr "Base de données Berkeley"
+
+#~ 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."
+#~ msgstr ""
+#~ "Berkeley DB est une base de données embarquée proposant aux développeurs\n"
+#~ "le choix de SQL, clé/valeur, XML/XQuery ou Java Object Storage pour leur\n"
+#~ "modèle de données."
+
+#~ msgid "The SQLite database management system"
+#~ msgstr "Le système de gestion de bases de données SQLite"
+
+#~ 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."
+#~ msgstr ""
+#~ "SQLite est une bibliothèque logicielle implémantant un moteur de bases\n"
+#~ "de données SQL indépendant, sans serveur, sans configuration et transactionnel.\n"
+#~ "SQLite est le moteur de bases de données SQL le plus déployé de part le monde.\n"
+#~ "Le code source de SQLite est dans le domaine public."
+
+#~ msgid "Database interface and MySQL driver for R"
+#~ msgstr "Interface de base de données et pilote MySQL pour R"
+
+#~ msgid "Framework for building readers for GNU Guile"
+#~ msgstr "Framework pour la construction de lecteurs GNU Guile"
+
+#~ 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"
+#~ "\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)."
+#~ msgstr ""
+#~ "Guile-Reader est un framework permettant de construire des lecteurs pour\n"
+#~ "GNU Guile. L'idée est de rendre facile la construction de procédures étendant\n"
+#~ "la procédure de lecture de Guile. Il est possible d'écrire facilement des lecteurs\n"
+#~ "supportant de nombreuses syntaxes. Par exemple, Guile-Reader est utilisé pour\n"
+#~ "implanter la syntaxe de documents basés sur R5RS de Skribilo.\n"
+#~ "\n"
+#~ "L'approche de Guile-Reader est similaire à la table de lecture de Lisp, mais\n"
+#~ "plus puissante et plus flexible (il est par exemple possible d'instancier autant\n"
+#~ "de lecteurs que nécessaires)."
+
+#~ msgid "Guile bindings to ncurses"
+#~ msgstr "Bindings Guile pour ncurses"
+
+#~ msgid ""
+#~ "guile-ncurses provides Guile language bindings for the ncurses\n"
+#~ "library."
+#~ msgstr "guile-ncurses fournit un binding Guile pour la biliothèque ncurses."
+
+#~ msgid "Run jobs at scheduled times"
+#~ msgstr "Plannification de tâches"
+
+#~ 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."
+#~ msgstr ""
+#~ "GNU Mcron est un remplaçant à Vixie cron. Il est utilisé pour la planification\n"
+#~ "de tâches à intervalles réguliers (toutes les heures, tous les lundi, etc...).\n"
+#~ "Mcron est écrit en Guile et peut donc être configuré en Scheme ; le format cron\n"
+#~ "original est aussi supporté."
+
+#~ msgid "Collection of useful Guile Scheme modules"
+#~ msgstr "Collection de modules Scheme utiles pour Guile"
+
+#~ 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\"."
+#~ msgstr ""
+#~ "Guile-Lib est conçue comme une collection de modules Scheme pour Guile permettant\n"
+#~ "aux utilisateurs d'intégrer leurs modules Guile au sein d'une bilbiothéque commune\n"
+#~ "et cohérente. Voyez Guile-Lib comme une version plus simple de CPAN limitée à Guile."
+
+#~ msgid "Generate C bindings for Guile"
+#~ msgstr "Génère des liaisons C pour Guile"
+
+#~ msgid "Guile database abstraction layer"
+#~ msgstr "Couche d'abstraction de base de données pour Guile"
+
+#~ msgid "DSV module for Guile"
+#~ msgstr "Module DSV pour Guile"
+
+#~ msgid ""
+#~ "This package provides a Guile programming interface to the ZeroMQ\n"
+#~ "messaging library."
+#~ msgstr ""
+#~ "Ce paquet fournit une interface de programmation Guile pour la bibliothèque\n"
+#~ "de messages ZeroMQ."
+
+#~ msgid "SPARQL module for Guile"
+#~ msgstr "Module SPARQL pour Guile"
+
+#~ msgid ""
+#~ "This package provides an email parser written in pure\n"
+#~ "Guile."
+#~ msgstr "Ce paquet fournit un analyseur de courriels en pur Guile."
+
+#~ msgid "Guile bindings to Newt"
+#~ msgstr "Liaisons Guile pour Newt"
+
+#~ msgid "This package provides tools for HTML generation and output in R."
+#~ msgstr "Ce paquet fournit des outils pour générer du HTML en R."
+
+#~ msgid "Web server interface for R"
+#~ msgstr "Serveur web d'interface pour R"
+
 #~ msgid "Easy and secure backup program"
 #~ msgstr "Programme de sauvegarde sécurisées et faciles"
 
diff --git a/tests/accounts.scm b/tests/accounts.scm
index 127861042d..673dd42432 100644
--- a/tests/accounts.scm
+++ b/tests/accounts.scm
@@ -199,12 +199,10 @@ nobody:!:0::::::\n"))
                         (directory "/var/empty")))
   (allocate-passwd (list (user-account (name "alice")
                                        (comment "Alice")
-                                       (home-directory "/home/alice")
                                        (shell "/bin/sh")
                                        (group "users"))
                          (user-account (name "bob")
                                        (comment "Bob")
-                                       (home-directory "/home/bob")
                                        (shell "/bin/gash")
                                        (group "wheel"))
                          (user-account (name "sshd") (system? #t)
@@ -227,25 +225,23 @@ nobody:!:0::::::\n"))
   ;; Make sure bits of state are preserved: UID, no reuse of previously-used
   ;; UIDs, and shell.
   (list (password-entry (name "alice") (uid 1234) (gid 1000)
-                        (real-name "Alice Smith") (shell "/gnu/.../bin/gash")
+                        (real-name "Alice Smith") (shell "/bin/sh")
                         (directory "/home/alice"))
         (password-entry (name "charlie") (uid 1236) (gid 1000)
                         (real-name "Charlie") (shell "/bin/sh")
                         (directory "/home/charlie")))
   (allocate-passwd (list (user-account (name "alice")
                                        (comment "Alice")
-                                       (home-directory "/home/alice")
-                                       (shell "/bin/sh") ;ignored
+                                       (shell "/bin/sh") ;honored
                                        (group "users"))
                          (user-account (name "charlie")
                                        (comment "Charlie")
-                                       (home-directory "/home/charlie")
                                        (shell "/bin/sh")
                                        (group "users")))
                    (list (group-entry (name "users") (gid 1000)))
                    (list (password-entry (name "alice") (uid 1234) (gid 9999)
                                          (real-name "Alice Smith")
-                                         (shell "/gnu/.../bin/gash")
+                                         (shell "/gnu/.../bin/gash") ;ignored
                                          (directory "/home/alice"))
                          (password-entry (name "bob") (uid 1235) (gid 1001)
                                          (real-name "Bob") (shell "/bin/sh")
diff --git a/tests/containers.scm b/tests/containers.scm
index 5323e5037d..37408f380d 100644
--- a/tests/containers.scm
+++ b/tests/containers.scm
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2015 David Thompson <davet@gnu.org>
+;;; Copyright © 2016, 2017, 2019 Ludovic Courtès <ludo@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -52,6 +53,16 @@
      #:namespaces '(user))))
 
 (skip-if-unsupported)
+(test-assert "call-with-container, user namespace, guest UID/GID"
+  (zero?
+   (call-with-container '()
+     (lambda ()
+       (assert-exit (and (= 42 (getuid)) (= 77 (getgid)))))
+     #:guest-uid 42
+     #:guest-gid 77
+     #:namespaces '(user))))
+
+(skip-if-unsupported)
 (test-assert "call-with-container, uts namespace"
   (zero?
    (call-with-container '()
diff --git a/tests/guix-build.sh b/tests/guix-build.sh
index 66bf6be8d0..63a9fe68da 100644
--- a/tests/guix-build.sh
+++ b/tests/guix-build.sh
@@ -44,6 +44,13 @@ guix build -e '(@@ (gnu packages bootstrap) %bootstrap-guile)'
      guix build -e '(@@ (gnu packages bootstrap) %bootstrap-guile)';	\
   then exit 1; fi )
 
+# Passing one '-s' flag.
+test `guix build sed -s x86_64-linux -d | wc -l` = 1
+
+# Passing multiple '-s' flags.
+all_systems="-s x86_64-linux -s i686-linux -s armhf-linux -s aarch64-linux"
+test `guix build sed $all_systems -d | sort -u | wc -l` = 4
+
 # Check --sources option with its arguments
 module_dir="t-guix-build-$$"
 mkdir "$module_dir"
@@ -183,6 +190,13 @@ then false; else true; fi
 
 rm -f "$result"
 
+# Check relative file name canonicalization: <https://bugs.gnu.org/35271>.
+mkdir "$result"
+guix build -r "$result/x" -e '(@@ (gnu packages bootstrap) %bootstrap-guile)'
+test -x "$result/x/bin/guile"
+rm "$result/x"
+rmdir "$result"
+
 # Cross building.
 guix build coreutils --target=mips64el-linux-gnu --dry-run --no-substitutes
 
diff --git a/tests/guix-environment-container.sh b/tests/guix-environment-container.sh
index a2da9a0773..78507f76c0 100644
--- a/tests/guix-environment-container.sh
+++ b/tests/guix-environment-container.sh
@@ -44,6 +44,31 @@ else
     test $? = 42
 fi
 
+# By default, the UID inside the container should be the same as outside.
+uid="`id -u`"
+inner_uid="`guix environment -C --ad-hoc --bootstrap guile-bootstrap \
+  -- guile -c '(display (getuid))'`"
+test $inner_uid = $uid
+
+# When '--user' is passed, the UID should be 1000.  (Note: Use a separate HOME
+# so that we don't run into problems when the test directory is under /home.)
+export tmpdir
+inner_uid="`HOME=$tmpdir guix environment -C --ad-hoc --bootstrap guile-bootstrap \
+  --user=gnu-guix -- guile -c '(display (getuid))'`"
+test $inner_uid = 1000
+
+if test "x$USER" = "x"; then USER="`id -un`"; fi
+
+# Check whether /etc/passwd and /etc/group are valid.
+guix environment -C --ad-hoc --bootstrap guile-bootstrap \
+     -- guile -c "(exit (string=? \"$USER\" (passwd:name (getpwuid (getuid)))))"
+guix environment -C --ad-hoc --bootstrap guile-bootstrap \
+     -- guile -c '(exit (string? (group:name (getgrgid (getgid)))))'
+guix environment -C --ad-hoc --bootstrap guile-bootstrap \
+     -- guile -c '(use-modules (srfi srfi-1))
+                  (exit (every group:name
+                               (map getgrgid (vector->list (getgroups)))))'
+
 # Make sure file-not-found errors in mounts are reported.
 if guix environment --container --ad-hoc --bootstrap guile-bootstrap \
 	--expose=/does-not-exist -- guile -c 1 2> "$tmpdir/error"
@@ -111,7 +136,7 @@ rm $tmpdir/mounts
 
 # Test that user can be mocked.
 usertest='(exit (and (string=? (getenv "HOME") "/home/foognu")
-                     (string=? (passwd:name (getpwuid 0)) "foognu")
+                     (string=? (passwd:name (getpwuid 1000)) "foognu")
                      (file-exists? "/home/foognu/umock")))'
 touch "$tmpdir/umock"
 HOME="$tmpdir" guix environment --bootstrap --container --user=foognu \
diff --git a/tests/guix-gc.sh b/tests/guix-gc.sh
index ef2d9543b7..8284287730 100644
--- a/tests/guix-gc.sh
+++ b/tests/guix-gc.sh
@@ -1,5 +1,5 @@
 # GNU Guix --- Functional package management for GNU
-# Copyright © 2013, 2015, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
+# Copyright © 2013, 2015, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
 #
 # This file is part of GNU Guix.
 #
@@ -34,7 +34,7 @@ unset drv
 unset out
 
 # For some operations, passing extra arguments is an error.
-for option in "" "-C 500M" "--verify" "--optimize"
+for option in "" "-C 500M" "--verify" "--optimize" "--list-roots"
 do
     if guix gc $option whatever; then false; else true; fi
 done
@@ -69,6 +69,8 @@ guix gc --delete "$drv"
 drv="`guix build --root=guix-gc-root lsh -d`"
 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
diff --git a/tests/guix-package-aliases.sh b/tests/guix-package-aliases.sh
new file mode 100644
index 0000000000..5c68664093
--- /dev/null
+++ b/tests/guix-package-aliases.sh
@@ -0,0 +1,60 @@
+# GNU Guix --- Functional package management for GNU
+# Copyright © 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/>.
+
+#
+# Test the `guix package' aliases.
+#
+
+guix install --version
+
+readlink_base ()
+{
+    basename `readlink "$1"`
+}
+
+profile="t-profile-$$"
+rm -f "$profile"
+
+trap 'rm -f "$profile" "$profile-"[0-9]*' EXIT
+
+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
+test -x "$profile/bin/guile"
+
+guix upgrade --version
+guix upgrade -n
+guix upgrade gui.e -n
+if guix upgrade foo bar -n;
+then false; else true; fi
+
+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
+
+if guix remove -i guile-bootstrap -p "$profile" --bootstrap
+then false; else true; fi
+
+guix search '\<board\>' game | grep '^name: gnubg'
diff --git a/tests/pack.scm b/tests/pack.scm
index 40473a9fe9..ea88cd89f2 100644
--- a/tests/pack.scm
+++ b/tests/pack.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2017, 2018 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -206,7 +206,11 @@
                                       (file-exists? "var/guix/db/db.sqlite")
                                       (string=? (string-append #$%bootstrap-guile "/bin")
                                                 (pk 'binlink (readlink bin)))
-                                      (string=? (string-append #$profile "/bin")
+
+                                      ;; This is a relative symlink target.
+                                      (string=? (string-drop
+                                                 (string-append #$profile "/bin")
+                                                 1)
                                                 (pk 'guilelink (readlink "bin"))))
                              (mkdir #$output))))))))
       (built-derivations (list check)))))
diff --git a/tests/records.scm b/tests/records.scm
index d9469a78bd..16b7a9c35e 100644
--- a/tests/records.scm
+++ b/tests/records.scm
@@ -170,6 +170,64 @@
            (parameterize ((mark (cons 'a 'b)))
              (eq? (foo-bar y) (mark)))))))
 
+(test-assert "define-record-type* & thunked & this-record"
+  (begin
+    (define-record-type* <foo> foo make-foo
+      foo?
+      (bar foo-bar)
+      (baz foo-baz (thunked)))
+
+    (let ((x (foo (bar 40)
+                  (baz (+ (foo-bar this-record) 2)))))
+      (and (= 40 (foo-bar x))
+           (= 42 (foo-baz x))))))
+
+(test-assert "define-record-type* & thunked & default & this-record"
+  (begin
+    (define-record-type* <foo> foo make-foo
+      foo?
+      (bar foo-bar)
+      (baz foo-baz (thunked)
+           (default (+ (foo-bar this-record) 2))))
+
+    (let ((x (foo (bar 40))))
+      (and (= 40 (foo-bar x))
+           (= 42 (foo-baz x))))))
+
+(test-assert "define-record-type* & thunked & inherit & this-record"
+  (begin
+    (define-record-type* <foo> foo make-foo
+      foo?
+      (bar foo-bar)
+      (baz foo-baz (thunked)
+           (default (+ (foo-bar this-record) 2))))
+
+    (let* ((x (foo (bar 40)))
+           (y (foo (inherit x) (bar -2)))
+           (z (foo (inherit x) (baz -2))))
+      (and (= -2 (foo-bar y))
+           (=  0 (foo-baz y))
+           (= 40 (foo-bar z))
+           (= -2 (foo-baz z))))))
+
+(test-assert "define-record-type* & thunked & inherit & custom this"
+  (let ()
+    (define-record-type* <foo> foo make-foo
+      foo? this-foo
+      (thing foo-thing (thunked)))
+    (define-record-type* <bar> bar make-bar
+      bar? this-bar
+      (baz bar-baz (thunked)))
+
+    ;; Nest records and test the two self references.
+    (let* ((x (foo (thing (bar (baz (list this-bar this-foo))))))
+           (y (foo-thing x)))
+      (match (bar-baz y)
+        ((first second)
+         (and (eq? second x)
+              (bar? first)
+              (eq? first y)))))))
+
 (test-assert "define-record-type* & delayed"
   (begin
     (define-record-type* <foo> foo make-foo
diff --git a/tests/scripts.scm b/tests/scripts.scm
index efee271197..0315642f38 100644
--- a/tests/scripts.scm
+++ b/tests/scripts.scm
@@ -19,6 +19,7 @@
 
 (define-module (test-scripts)
   #:use-module (guix scripts)
+  #:use-module (guix tests)
   #:use-module ((guix scripts build)
                 #:select (%standard-build-options))
   #:use-module (srfi srfi-64))
diff --git a/tests/store-roots.scm b/tests/store-roots.scm
new file mode 100644
index 0000000000..5bcf1bc87e
--- /dev/null
+++ b/tests/store-roots.scm
@@ -0,0 +1,53 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 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-store-deduplication)
+  #:use-module (guix tests)
+  #:use-module (guix store)
+  #:use-module (guix store roots)
+  #:use-module ((guix utils) #:select (call-with-temporary-directory))
+  #:use-module (srfi srfi-1)
+  #:use-module (srfi srfi-64))
+
+(define %store
+  (open-connection))
+
+(test-begin "store-roots")
+
+(test-assert "gc-roots, regular root"
+  (let* ((item (add-text-to-store %store "something"
+                                  (random-text)))
+         (root (string-append %gc-roots-directory "/test-gc-root")))
+    (symlink item root)
+    (let ((result (member root (gc-roots))))
+      (delete-file root)
+      result)))
+
+(test-assert "gc-roots, indirect root"
+  (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 root (gc-roots))))
+         (delete-file root)
+         result)))))
+
+(test-end "store-roots")
diff --git a/tests/zlib.scm b/tests/zlib.scm
index 5455240a71..7c595a422c 100644
--- a/tests/zlib.scm
+++ b/tests/zlib.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2016 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2016, 2019 Ludovic Courtès <ludo@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -26,11 +26,10 @@
 
 ;; Test the (guix zlib) module.
 
-(unless (zlib-available?)
-  (exit 77))
-
 (test-begin "zlib")
 
+(unless (zlib-available?)
+  (test-skip 1))
 (test-assert "compression/decompression pipe"
   (let ((data (random-bytevector (+ (random 10000)
                                     (* 20 1024)))))